1 |
- "use strict";var _baseComponent=_interopRequireDefault(require("../helpers/baseComponent")),_classNames2=_interopRequireDefault(require("../helpers/libs/classNames")),_useNativeAPI=require("../helpers/hooks/useNativeAPI");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(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){var r;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(r="Object"===(r=Object.prototype.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])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 r=0,a=new Array(t);r<t;r++)a[r]=e[r];return a}function ownKeys(t,e){var r,a=Object.keys(t);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(t),e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),a.push.apply(a,r)),a}function _objectSpread(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(Object(r),!0).forEach(function(e){_defineProperty(t,e,r[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))})}return t}function _defineProperty(e,t,r){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _toPropertyKey(e){e=_toPrimitive(e,"string");return"symbol"==_typeof(e)?e:String(e)}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0===r)return("string"===t?String:Number)(e);r=r.call(e,t||"default");if("object"!=_typeof(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}(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,r){return{wrap:(0,_classNames2.default)(e,_defineProperty(_defineProperty({},"".concat(e,"--").concat(r),r),"".concat(e,"--disabled"),t)),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,e=e.max,t=this.calcValue(t,e),e=t.uploadMax,t=t.uploadCount;this.data.uploadMax===e&&this.data.uploadCount===t||this.setData({uploadMax:e,uploadCount:t})},calcValue:function(e,t){e=parseInt(e),t=-1<parseInt(t)?parseInt(t):-1;return{uploadMax:t,uploadCount:-1!==t&&t<=9&&t<e?t:e}},onSelect:function(){function e(e){t.tempFilePaths=e.tempFiles.map(function(e){return{url:e.tempFilePath,uid:t.getUid()}}),t.triggerEvent("before",_objectSpread(_objectSpread({},e),{},{fileList:l})),u&&t.uploadFile()}var t=this,r=this.data,a=r.uploadCount,o=r.uploadMax,i=r.sizeType,n=r.sourceType,u=r.uploaded,s=r.disabled,l=r.uploadFileList,c=r.isVideo,p=r.compressed,d=r.maxDuration,r=r.camera,a=this.calcValue(a,o-l.length).uploadCount;s||(c?(0,_useNativeAPI.chooseMedia)({mediaType:["video"],sourceType:n,compressed:p,maxDuration:d,camera:r,success:e}):(0,_useNativeAPI.chooseMedia)({mediaType:["image"],count:a,sizeType:i,sourceType:n,success:e}))},onChange:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.data.controlled||this.setData({uploadFileList:e.fileList}),this.triggerEvent("change",e)},onStart:function(e){e=_objectSpread(_objectSpread({},e),{},{status:"uploading"});this.onChange({file:e,fileList:[].concat(_toConsumableArray(this.data.uploadFileList),[e])})},onSuccess:function(e,t){var r=_toConsumableArray(this.data.uploadFileList),a=r.map(function(e){return e.uid}).indexOf(e.uid);-1!==a&&(t={file:e=_objectSpread(_objectSpread({},e),{},{status:"done",res:t}),fileList:r},r.splice(a,1,e),this.triggerEvent("success",t),this.onChange(t))},onFail:function(e,t){var r=_toConsumableArray(this.data.uploadFileList),a=r.map(function(e){return e.uid}).indexOf(e.uid);-1!==a&&(t={file:e=_objectSpread(_objectSpread({},e),{},{status:"error",res:t}),fileList:r},r.splice(a,1,e),this.triggerEvent("fail",t),this.onChange(t))},onProgress:function(e,t){var r=_toConsumableArray(this.data.uploadFileList),a=r.map(function(e){return e.uid}).indexOf(e.uid);-1!==a&&(t={file:e=_objectSpread(_objectSpread({},e),{},{progress:t.progress,res:t}),fileList:r},r.splice(a,1,e),this.triggerEvent("progress",t),this.onChange(t))},uploadFile:function(){var e,t,r,a,o,i,n,u,s,l=this;this.tempFilePaths.length&&(e=(i=this.data).url,t=i.name,r=i.header,a=i.formData,o=i.disabled,i=i.progress,n=this.tempFilePaths.shift(),u=n.uid,s=n.url,e)&&s&&!o&&(this.onStart(n),this.uploadTask[u]=(0,_useNativeAPI.uploadFile)({url:e,filePath:s,name:t,header:r,formData:a,success:function(e){return l.onSuccess(n,e)},fail:function(e){return l.onFail(n,e)},complete:function(e){delete l.uploadTask[u],l.triggerEvent("complete",e),l.uploadFile()}}),i)&&this.uploadTask[u].onProgressUpdate(function(e){return l.onProgress(n,e)})},onPreview:function(e){this.triggerEvent("preview",_objectSpread(_objectSpread({},e.currentTarget.dataset),{},{fileList:this.data.uploadFileList}))},onRemove:function(e){var t=e.currentTarget.dataset.file,r=_toConsumableArray(this.data.uploadFileList),a=r.map(function(e){return e.uid}).indexOf(t.uid);-1!==a&&(t={file:_objectSpread(_objectSpread({},t),{},{status:"remove"}),fileList:r},r.splice(a,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,r=e.defaultFileList,a=e.fileList,e=e.controlled;this.setData({uploadFileList:e?a:r,isVideo:"video"===t})},detached:function(){this.abort()}});
|