eeeeeeuuuu-ui
Version:
uView UI,是uni-app生态优秀的UI框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水
12 lines (11 loc) • 6.53 kB
JavaScript
require('../../../app.js');
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["uview-ui/components/u-upload/u-upload"],{"33c7":function(t,e,s){"use strict";var i=s("b563"),l=s.n(i);l.a},3424:function(t,e,s){"use strict";s.r(e);var i,l={uIcon:function(){return s.e("uview-ui/components/u-icon/u-icon").then(s.bind(null,"ece6"))},uLineProgress:function(){return s.e("uview-ui/components/u-line-progress/u-line-progress").then(s.bind(null,"3d18"))}},o=function(){var t=this,e=t.$createElement,s=(t._self._c,t.showUploadList?t.$u.addUnit(t.width):null),i=t.showUploadList?t.$u.addUnit(t.height):null,l=!t.disabled&&t.maxCount>t.lists.length&&!t.customBtn?t.$u.addUnit(t.width):null,o=!t.disabled&&t.maxCount>t.lists.length&&!t.customBtn?t.$u.addUnit(t.height):null;t.$mp.data=Object.assign({},{$root:{g0:s,g1:i,g2:l,g3:o}})},a=[],n=s("a0ad"),r=n["a"],u=(s("33c7"),s("f0c5")),h=Object(u["a"])(r,o,a,!1,null,"0d19e248",null,!1,l,i);e["default"]=h.exports},a0ad:function(t,e,s){"use strict";(function(t){e["a"]={name:"u-upload",props:{showUploadList:{type:Boolean,default:!0},action:{type:String,default:""},maxCount:{type:[String,Number],default:52},showProgress:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},imageMode:{type:String,default:"aspectFill"},header:{type:Object,default(){return{}}},formData:{type:Object,default(){return{}}},name:{type:String,default:"file"},sizeType:{type:Array,default(){return["original","compressed"]}},sourceType:{type:Array,default(){return["album","camera"]}},previewFullImage:{type:Boolean,default:!0},multiple:{type:Boolean,default:!0},deletable:{type:Boolean,default:!0},maxSize:{type:[String,Number],default:Number.MAX_VALUE},fileList:{type:Array,default(){return[]}},uploadText:{type:String,default:"选择图片"},autoUpload:{type:Boolean,default:!0},showTips:{type:Boolean,default:!0},customBtn:{type:Boolean,default:!1},width:{type:[String,Number],default:200},height:{type:[String,Number],default:200},delBgColor:{type:String,default:"#fa3534"},delColor:{type:String,default:"#ffffff"},delIcon:{type:String,default:"close"},toJson:{type:Boolean,default:!0},beforeUpload:{type:Function,default:null},limitType:{type:Array,default(){return["png","jpg","jpeg","webp","gif"]}},index:{type:[Number,String],default:""}},mounted(){},data(){return{lists:[],isInCount:!0,uploading:!1}},watch:{fileList:{immediate:!0,handler(t){t.map(t=>{let e=this.lists.some(e=>e.url==t.url);!e&&this.lists.push({url:t.url,error:!1,progress:100})})}},lists(t){this.$emit("on-list-change",t,this.index)}},methods:{clear(){this.lists=[]},reUpload(){this.uploadFile()},selectFile(){if(this.disabled)return;const{name:e="",maxCount:s,multiple:i,maxSize:l,sizeType:o,lists:a,camera:n,compressed:r,maxDuration:u,sourceType:h}=this;let d=null;const p=s-a.length;d=new Promise((e,s)=>{t.chooseImage({count:i?p>9?9:p:1,sourceType:h,sizeType:o,success:e,fail:s})}),d.then(t=>{let e=this.lists.length;t.tempFiles.map((t,e)=>{if(this.checkFileExt(t)&&(i||!(e>=1)))if(t.size>l)this.$emit("on-oversize",t,this.lists,this.index),this.showToast("超出允许的文件大小");else{if(s<=a.length)return this.$emit("on-exceed",t,this.lists,this.index),void this.showToast("超出最大允许的文件个数");a.push({url:t.path,progress:0,error:!1,file:t})}}),this.$emit("on-choose-complete",this.lists,this.index),this.autoUpload&&this.uploadFile(e)}).catch(t=>{})},showToast(e,s=!1){(this.showTips||s)&&t.showToast({title:e,icon:"none"})},upload(){this.uploadFile()},retry(e){this.lists[e].progress=0,this.lists[e].error=!1,this.lists[e].response=null,t.showLoading({title:"重新上传"}),this.uploadFile(e)},async uploadFile(e=0){if(this.disabled)return;if(this.uploading)return;if(e>=this.lists.length)return void this.$emit("on-uploaded",this.lists,this.index);if(100==this.lists[e].progress)return void(0==this.autoUpload&&this.uploadFile(e+1));if(this.beforeUpload&&"function"===typeof this.beforeUpload){let t=this.beforeUpload.bind(this.$u.$parent.call(this))(e,this.lists);if(t&&"function"===typeof t.then)await t.then(t=>{}).catch(t=>this.uploadFile(e+1));else if(!1===t)return this.uploadFile(e+1)}if(!this.action)return void this.showToast("请配置上传地址",!0);this.lists[e].error=!1,this.uploading=!0;const s=t.uploadFile({url:this.action,filePath:this.lists[e].url,name:this.name,formData:this.formData,header:this.header,success:t=>{let s=this.toJson&&this.$u.test.jsonString(t.data)?JSON.parse(t.data):t.data;[200,201,204].includes(t.statusCode)?(this.lists[e].response=s,this.lists[e].progress=100,this.lists[e].error=!1,this.$emit("on-success",s,e,this.lists,this.index)):this.uploadError(e,s)},fail:t=>{this.uploadError(e,t)},complete:s=>{t.hideLoading(),this.uploading=!1,this.uploadFile(e+1),this.$emit("on-change",s,e,this.lists,this.index)}});s.onProgressUpdate(t=>{t.progress>0&&(this.lists[e].progress=t.progress,this.$emit("on-progress",t,e,this.lists,this.index))})},uploadError(t,e){this.lists[t].progress=0,this.lists[t].error=!0,this.lists[t].response=null,this.$emit("on-error",e,t,this.lists,this.index),this.showToast("上传失败,请重试")},deleteItem(e){t.showModal({title:"提示",content:"您确定要删除此项吗?",success:t=>{t.confirm&&(this.lists[e].process<100&&this.lists[e].process>0&&"undefined"!=typeof this.lists[e].uploadTask&&this.lists[e].uploadTask.abort(),this.lists.splice(e,1),this.$forceUpdate(),this.$emit("on-remove",e,this.lists,this.index),this.showToast("移除成功"))}})},remove(t){t>=0&&t<this.lists.length&&(this.lists.splice(t,1),this.$emit("on-list-change",this.lists,this.index))},doPreviewImage(e,s){if(!this.previewFullImage)return;const i=this.lists.map(t=>t.url||t.path);t.previewImage({urls:i,current:e,success:()=>{this.$emit("on-preview",e,this.lists,this.index)},fail:()=>{t.showToast({title:"预览图片失败",icon:"none"})}})},checkFileExt(t){let e=!1,s="";const i=/.+\./;return s=t.path.replace(i,"").toLowerCase(),e=this.limitType.some(t=>t.toLowerCase()===s),e||this.showToast(`不允许选择${s}格式的文件`),e}}}}).call(this,s("543d")["default"])},b563:function(t,e,s){}}]);
;(global["webpackJsonp"] = global["webpackJsonp"] || []).push([
'uview-ui/components/u-upload/u-upload-create-component',
{
'uview-ui/components/u-upload/u-upload-create-component':(function(module, exports, __webpack_require__){
__webpack_require__('543d')['createComponent'](__webpack_require__("3424"))
})
},
[['uview-ui/components/u-upload/u-upload-create-component']]
]);