UNPKG

tt-mp

Version:

一套组件化、可复用、易扩展的头条小程序 UI 组件库

1 lines 7.14 kB
"use strict";var _baseComponent=_interopRequireDefault(require("../helpers/baseComponent")),_classNames2=_interopRequireDefault(require("../helpers/classNames"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(e,t):void 0}}function _iterableToArray(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,r=new Array(t);a<t;a++)r[a]=e[a];return r}function ownKeys(t,e){var a,r=Object.keys(t);return Object.getOwnPropertySymbols&&(a=Object.getOwnPropertySymbols(t),e&&(a=a.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,a)),r}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(a),!0).forEach(function(e){_defineProperty(t,e,a[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):ownKeys(Object(a)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))})}return t}function _defineProperty(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}(0,_baseComponent.default)({properties:{prefixCls:{type:String,value:"wux-upload"},max:{type:Number,value:-1,observer:"updated"},count:{type:Number,value:9,observer:"updated"},defaultFileType:{type:String,value:"image"},compressed:{type:Boolean,value:!0},maxDuration:{type:Number,value:60},camera:{type:String,value:"back"},sizeType:{type:Array,value:["original","compressed"]},sourceType:{type:Array,value:["album","camera"]},url:{type:String,value:""},name:{type:String,value:"file"},header:{type:Object,value:{}},formData:{type:Object,value:{}},uploaded:{type:Boolean,value:!0},disabled:{type:Boolean,value:!1},progress:{type:Boolean,value:!1},listType:{type:String,value:"text"},defaultFileList:{type:Array,value:[]},fileList:{type:Array,value:[],observer:function(e){this.data.controlled&&this.setData({uploadFileList:e})}},controlled:{type:Boolean,value:!1},showUploadList:{type:Boolean,value:!0},showRemoveIcon:{type:Boolean,value:!0}},data:{uploadMax:-1,uploadCount:9,uploadFileList:[],isVideo:!1},computed:{classes:["prefixCls, disabled, listType",function(e,t,a){var r;return{wrap:(0,_classNames2.default)(e,(_defineProperty(r={},"".concat(e,"--").concat(a),a),_defineProperty(r,"".concat(e,"--disabled"),t),r)),files:"".concat(e,"__files"),file:"".concat(e,"__file"),thumb:"".concat(e,"__thumb"),remove:"".concat(e,"__remove"),select:"".concat(e,"__select"),button:"".concat(e,"__button")}}]},methods:{updated:function(){var e=this.data,t=e.count,a=e.max,r=this.calcValue(t,a),o=r.uploadMax,i=r.uploadCount;this.data.uploadMax===o&&this.data.uploadCount===i||this.setData({uploadMax:o,uploadCount:i})},calcValue:function(e,t){var a=parseInt(e),r=-1<parseInt(t)?parseInt(t):-1;return{uploadMax:r,uploadCount:-1!==r&&r<=9&&r<a?r:a}},onSelect:function(){function e(e){e.tempFilePaths=e.tempFilePaths||[e.tempFilePath],t.tempFilePaths=e.tempFilePaths.map(function(e){return{url:e,uid:t.getUid()}}),t.triggerEvent("before",_objectSpread(_objectSpread({},e),{},{fileList:l})),s&&t.uploadFile()}var t=this,a=this.data,r=a.uploadCount,o=a.uploadMax,i=a.sizeType,n=a.sourceType,s=a.uploaded,u=a.disabled,l=a.uploadFileList,c=a.isVideo,p=a.compressed,d=a.maxDuration,f=a.camera,h=this.calcValue(r,o-l.length).uploadCount;u||(c?tt.chooseVideo({sourceType:n,compressed:p,maxDuration:d,camera:f,success:e}):tt.chooseImage({count:h,sizeType:i,sourceType:n,success:e}))},onChange:function(e){var t=0<arguments.length&&void 0!==e?e:{};this.data.controlled||this.setData({uploadFileList:t.fileList}),this.triggerEvent("change",t)},onStart:function(e){var t=_objectSpread(_objectSpread({},e),{},{status:"uploading"});this.onChange({file:t,fileList:[].concat(_toConsumableArray(this.data.uploadFileList),[t])})},onSuccess:function(e,t){var a,r,o=_toConsumableArray(this.data.uploadFileList),i=o.map(function(e){return e.uid}).indexOf(e.uid);-1!==i&&(r={file:a=_objectSpread(_objectSpread({},e),{},{status:"done",res:t}),fileList:o},o.splice(i,1,a),this.triggerEvent("success",r),this.onChange(r))},onFail:function(e,t){var a,r,o=_toConsumableArray(this.data.uploadFileList),i=o.map(function(e){return e.uid}).indexOf(e.uid);-1!==i&&(r={file:a=_objectSpread(_objectSpread({},e),{},{status:"error",res:t}),fileList:o},o.splice(i,1,a),this.triggerEvent("fail",r),this.onChange(r))},onProgress:function(e,t){var a,r,o=_toConsumableArray(this.data.uploadFileList),i=o.map(function(e){return e.uid}).indexOf(e.uid);-1!==i&&(r={file:a=_objectSpread(_objectSpread({},e),{},{progress:t.progress,res:t}),fileList:o},o.splice(i,1,a),this.triggerEvent("progress",r),this.onChange(r))},uploadFile:function(){var e,t,a,r,o,i,n,s,u,l,c=this;this.tempFilePaths.length&&(t=(e=this.data).url,a=e.name,r=e.header,o=e.formData,i=e.disabled,n=e.progress,s=this.tempFilePaths.shift(),u=s.uid,l=s.url,t&&l&&!i&&(this.onStart(s),this.uploadTask[u]=tt.uploadFile({url:t,filePath:l,name:a,header:r,formData:o,success:function(e){return c.onSuccess(s,e)},fail:function(e){return c.onFail(s,e)},complete:function(e){delete c.uploadTask[u],c.triggerEvent("complete",e),c.uploadFile()}}),n&&this.uploadTask[u].onProgressUpdate(function(e){return c.onProgress(s,e)})))},onPreview:function(e){this.triggerEvent("preview",_objectSpread(_objectSpread({},e.currentTarget.dataset),{},{fileList:this.data.uploadFileList}))},onRemove:function(e){var t,a=e.currentTarget.dataset.file,r=_toConsumableArray(this.data.uploadFileList),o=r.map(function(e){return e.uid}).indexOf(a.uid);-1!==o&&(t={file:_objectSpread(_objectSpread({},a),{},{status:"remove"}),fileList:r},r.splice(o,1),this.triggerEvent("remove",_objectSpread(_objectSpread({},e.currentTarget.dataset),t)),this.onChange(t))},abort:function(e){var t=this.uploadTask;e?t[e]&&(t[e].abort(),delete t[e]):Object.keys(t).forEach(function(e){t[e]&&(t[e].abort(),delete t[e])})}},created:function(){var e=this;this.index=0,this.createdAt=Date.now(),this.getUid=function(){return"wux-upload--".concat(e.createdAt,"-").concat(++e.index)},this.uploadTask={},this.tempFilePaths=[]},attached:function(){var e=this.data,t=e.defaultFileType,a=e.defaultFileList,r=e.fileList,o=e.controlled?r:a,i="video"===t;this.setData({uploadFileList:o,isVideo:i})},detached:function(){this.abort()}});