import{c as e,ad as t,M as s,N as i,an as l,o as a,d as o,w as n,e as h,L as r,_ as p,f as d,i as u,g as c,aS as f,aa as g,aT as m,aU as y,aR as b,bj as w,v as j,x as S,I as _,K as x,J as F,t as v,X as z,h as I}from"./index-Bg-cyXiH.js";import{_ as U}from"./u-button.RKSJ4Exc.js";import{r as L}from"./uni-app.es.CIL9UnT_.js";import{_ as O}from"./_plugin-vue_export-helper.BCo6x5W8.js";class R{constructor(e){this.dom=null,this.files=new Map,this.debug=e.debug||!1,this.id=e.id,this.width=e.width,this.height=e.height,this.option=e.option,this.instantly=e.instantly,this.prohibited=e.prohibited,this.onchange=e.onchange,this.onprogress=e.onprogress,this.uploadHandle=this._uploadHandle}create(e){if(!this.dom){let e=document.createElement("input");return e.type="file",e.value="",e.style.height=this.height,e.style.width=this.width,e.style.position="absolute",e.style.top=0,e.style.left=0,e.style.right=0,e.style.bottom=0,e.style.opacity=0,e.style.zIndex=999,e.accept=this.prohibited.accept,this.prohibited.multiple&&(e.multiple="multiple"),e.onchange=e=>{for(let t of e.target.files){if(this.files.size>=this.prohibited.count){this.toast(`只允许上传${this.prohibited.count}个文件`),this.dom.value="";break}this.addFile(t)}this._uploadAfter(),this.dom.value=""},this.dom=e,this.dom}}setData(){let[e,t=""]=arguments;"object"==typeof e?Object.assign(this.option,e):this._setValue(this.option,e,t),this.debug&&console.log(JSON.stringify(this.option))}async upload(e=""){if(!this.option.url)throw Error("未设置上传地址");if(e&&this.files.has(e))await this.uploadHandle(this.files.get(e));else for(let t of this.files.values())"waiting"!==t.type&&"fail"!==t.type||await this.uploadHandle(t)}addFile(e,t){let s=e.name;if(this.debug&&console.log("文件名称",s,"大小",e.size),e){let t="",i=s.substring(s.lastIndexOf(".")+1).toLowerCase(),l=this.prohibited.formats.toLowerCase();return t=URL.createObjectURL(e),l&&!l.includes(i)?(this.toast(`不支持上传${i.toUpperCase()}格式文件`),!1):e.size>1048576*Math.abs(this.prohibited.size)?(this.toast(`附件大小请勿超过${this.prohibited.size}M`),!1):(this.files.set(e.name,{file:e,path:t,name:e.name,size:e.size,progress:0,type:"waiting"}),!0)}}clear(e=""){return e?this.files.delete(e):this.files.clear(),this.onchange(this.files)}toast(t){e({title:t,icon:"none"})}chooseMessageFile(e,t){wx.chooseMessageFile({count:t,type:e,success:({tempFiles:e})=>{for(let t of e)this.addFile(t);this._uploadAfter()},fail:()=>{this.toast("打开失败")}})}_copyObject(e){return void 0!==e?JSON.parse(JSON.stringify(e)):e}_setValue(e,t,s){let i;i="object"==typeof s?this._copyObject(s):s;let l=new RegExp("([\\w$]+)|\\[(:\\d)\\]","g");const a=t.match(l);for(let o=0;o{this.instantly&&this.upload()}),1e3)}_overrideUrlLoading(){this.dom.overrideUrlLoading({mode:"reject"},(e=>{let{retype:t,item:s,files:i,end:l}=this._getRequest(e.url),a=this;switch(t){case"updateOption":this.dom.evalJS(`vm.setData('${JSON.stringify(a.option)}')`);break;case"change":try{a.files=new Map([...a.files,...JSON.parse(unescape(i))])}catch(o){return console.error("出错了,请检查代码")}a.onchange(a.files);break;case"progress":try{s=JSON.parse(unescape(s))}catch(o){return console.error("出错了,请检查代码")}a._changeFilesItem(s,l)}}))}_getRequest(e){let t=new Object,s=e.indexOf("?");if(-1!=s){let i=e.substring(s+1).split("&");for(let e=0;e{this.debug&&console.log("option",JSON.stringify(this.option));let{url:i,name:l,method:a="POST",header:o,formData:n,data:h}=this.option,r=new FormData;for(let e in n)r.append(e,n[e]);for(let e in h)r.append(e,h[e]);r.append(l,e.file);let p=new XMLHttpRequest;p.open(a,i,!0);for(let e in o)p.setRequestHeader(e,o[e]);p.upload.addEventListener("progress",(t=>{if(t.lengthComputable){let s=Math.ceil(100*t.loaded/t.total);s<=100&&(e.progress=s,this._changeFilesItem(e))}}),!1),p.ontimeout=()=>(console.error("请求超时"),e.type="fail",this._changeFilesItem(e,!0),t(!1)),p.onreadystatechange=s=>{if(4==p.readyState)return 200==p.status?(this.debug&&console.log("上传完成:"+p.responseText),e.responseText=p.responseText,e.type="success",this._changeFilesItem(e,!0),t(!0)):(0==p.status&&console.error("status = 0 :请检查请求头Content-Type与服务端是否匹配,服务端已正确开启跨域,并且nginx未拦截阻止请求"),console.error("--ERROR--:status = "+p.status),e.type="fail",this._changeFilesItem(e,!0),t(!1))},p.send(r)}))}_uploadHandleWX(e){return e.type="loading",delete e.responseText,new Promise(((s,i)=>{this.debug&&console.log("option",JSON.stringify(this.option));let l={filePath:e.file.path,...this.option,formData:this.option.data||{}};l.fail=({errMsg:t=""})=>(console.error("--ERROR--:"+t),e.type="fail",this._changeFilesItem(e,!0),s(!1)),l.success=t=>200==t.statusCode?(this.debug&&console.log("上传完成,微信端返回不一定是字符串,根据接口返回格式判断是否需要JSON.parse:"+t.data),e.responseText=t.data,e.type="success",this._changeFilesItem(e,!0),s(!0)):(e.type="fail",this._changeFilesItem(e,!0),s(!1)),t(l).onProgressUpdate((({progress:t=0})=>{t<=100&&(e.progress=t,this._changeFilesItem(e))}))}))}}const T=O({name:"Lsj-upload",props:{debug:{type:Boolean,default:!1},instantly:{type:Boolean,default:!1},option:{type:Object,default:()=>{}},size:{type:Number,default:10},count:{type:Number,default:9},multiple:{type:Boolean,default:!0},formats:{type:String,default:""},accept:{type:String,default:""},wxFileType:{type:String,default:"all"},childId:{type:String,default:"lsjUpload"},width:{type:String,default:"100%"},height:{type:String,default:"80rpx"},top:{type:[String,Number],default:""},left:{type:[String,Number],default:""},bottom:{type:[String,Number],default:""},right:{type:[String,Number],default:""},position:{type:String,default:"static"}},data:()=>({}),watch:{option(e){}},updated(){},computed:{getStyles(){let e={width:this.width,height:this.height};return"absolute"==this.position&&(e.top=this.top,e.bottom=this.bottom,e.left=this.left,e.right=this.right,e.position="fixed"),e}},mounted(){this._size=0;let e=this.childId+(new Date).getTime();this.lsjFile=new R({id:e,debug:this.debug,width:this.width,height:this.height,option:this.option,instantly:this.instantly,prohibited:{size:this.size,formats:this.formats,accept:this.accept,count:this.count,multiple:this.multiple},onchange:this.onchange,onprogress:this.onprogress}),this.create(),s("lsjShow",this.show)},beforeDestroy(){i("lsjShow",this.show)},methods:{setFiles(e){if(e instanceof Map)for(let[t,s]of e)s.progress=100,s.type="success",this.lsjFile.files.set(t,s);else Array.isArray(e)&&e.forEach((e=>{e.name&&(e.progress=100,e.type="success",this.lsjFile.files.set(e.name,e))}));this.onchange(this.lsjFile.files)},setData(){this.lsjFile&&this.lsjFile.setData(...arguments)},getDomStyles(e){l().in(this).select(".lsj-file").fields({size:!0,rect:!0},(({height:t,width:s,top:i,left:a,right:o,bottom:n})=>{l().selectViewport().scrollOffset((({scrollTop:l})=>e({top:parseInt(i)+parseInt(l)+"px",left:parseInt(a)+"px",width:parseInt(s)+"px",height:parseInt(t)+"px"}))).exec()})).exec()},show(){this._size&&this._size>=this.count||(this.isShow=!0,this.lsjFile.dom.style.display="inline")},hide(){this.isShow=!1,this.lsjFile.dom.style.display="none"},upload(e){this.lsjFile&&this.lsjFile.upload(e)},onchange(e){return this._size=e.size,e.size>=this.count?this.hide():this.show()},onprogress(e,t=!1){this.$emit("progress",e),t&&setTimeout((()=>{this.$emit("uploadEnd",e)}),0)},clear(e){this.lsjFile.clear(e)},create(){let e=this.lsjFile.create("/uni_modules/lsj-upload/hybrid/html/uploadFile.html");this.$refs.lsj.$el.appendChild(e),this.show()},onClick(){this._size>=this.count&&this.toast(`只允许上传${this.count}个文件`)},toast(t){e({title:t,icon:"none"})}}},[["render",function(e,t,s,i,l,c){const f=u;return a(),o(f,{class:"lsj-file",style:r([c.getStyles])},{default:n((()=>[h(f,{ref:"lsj",class:"hFile",style:r([c.getStyles]),onClick:c.onClick},{default:n((()=>[p(e.$slots,"default",{},(()=>[h(f,{class:"defview",style:r([c.getStyles])},{default:n((()=>[d("附件上传")])),_:1},8,["style"])]),!0)])),_:3},8,["style","onClick"])])),_:3},8,["style"])}],["__scopeId","data-v-2de973ae"]]),N=["png","jpg","jpeg","bmp","gif"];const $=O({name:"jnpf-upload-img",inheritAttrs:!1,props:{modelValue:{type:Array,default:()=>[]},disabled:{type:Boolean,default:!1},limit:{type:[Number,String],default:9},fileSize:{type:Number,default:5},sizeUnit:{type:String,default:"MB"},accept:{type:String,default:""},pathType:{type:String,default:"defaultPath"},tipText:{type:String,default:""},isAccount:{type:Number,default:0},folder:{type:String,default:""},vModel:{type:String,default:""},detailed:{type:Boolean,default:!1},align:{type:String,default:"right"},sortRule:{type:Array,default:()=>[]},timeFormat:{type:String,default:""}},data(){return{percent:"",fileList:[],option:{},params:{pathType:this.pathType,isAccount:this.isAccount,folder:this.folder,sortRule:(this.sortRule||[]).join(),timeFormat:this.timeFormat},instantly:!0,size:30,list:[],deletable:!1,childId:"upload"+this.$u.guid(3,!1,2),lsjUpload:"lsjUpload"+this.$u.guid(3,!1,2),width:"140rpx",height:"70rpx"}},computed:{baseURL(){return this.define.baseURL},comUploadUrl(){return this.define.comUploadUrl},getFormats(){let e=this.accept;return e=e.replace("image/*","png,jpg,jpeg,bmp,gif,webp,psd,svg,tiff"),e=e.replace("video/*","avi,wmv,mpg,mpeg,mov,rm,ram,swf,flv,mp4,wma,rm,rmvb,flv,mpg,mkv"),e=e.replace("audio/*","mp3,wav,aif,midi,m4a"),e}},created(){const e=c("token");this.option={url:this.baseURL+"/api/file/Uploader/annex",name:"file",header:{Authorization:e,uid:"27682",client:"app",accountid:"DP"},data:this.params}},watch:{modelValue:{handler(e){this.fileList=JSON.parse(JSON.stringify(e))},immediate:!0}},methods:{onuploadEnd(e){if(e.responseText){let t=JSON.parse(e.responseText);if(this.fileList.length>=this.limit)return this.$u.toast("已达最大上传数量");if(200!=t.code)return this.$u.toast(t.msg);this.fileList.push({name:e.name,fileId:t.data.name,url:t.data.url,fileExtension:t.data.fileExtension,fileSize:t.data.fileSize}),this.$emit("update:modelValue",this.fileList),this.$emit("change",this.fileList)}this.$forceUpdate()},downLoad(e){if(e.fileExtension&&N.includes(e.fileExtension))return this.previewImage(e);f("annex",e.fileId).then((t=>{const s=this.baseURL+t.data.url+"&name="+e.name;window.location.href=s}))},delFile(e){g({title:"提示",content:"是否删除该文件?",success:t=>{t.confirm?(this.fileList.splice(e,1),this.$emit("update:modelValue",this.fileList),this.$emit("change",this.fileList),this.fileList.length>=this.fileCount?this.deletable=!0:this.deletable=!1):t.cancel}})},previewFile(e){let t=e.url,s=t.split(".")[1];["doc","xls","ppt","pdf","docx","xlsx","pptx"].includes(s)?m({url:this.baseURL+t,success:e=>{var t=e.tempFilePath;y({filePath:encodeURI(t),showMenu:!0,fileType:s,success:e=>{console.log("打开文档成功")},fail(e){console.log("小程序",e)}})}}):this.$u.toast("该文件类型无法打开")},previewImage(t){if(!t.url)return;const s=this.baseURL+t.url;b({urls:[s],current:s,success:()=>{},fail:()=>{e({title:"预览图片失败",icon:"none"})}})},downloadFile(t){m({url:this.baseURL+t,success:t=>{200===t.statusCode&&w({tempFilePath:t.tempFilePath,success:t=>{e({icon:"none",mask:!0,title:"文件已保存:"+t.savedFilePath,duration:3e3}),setTimeout((()=>{y({filePath:t.savedFilePath,success:e=>{},fail(e){}})}),500)}})}})}}},[["render",function(e,t,s,i,l,p){const c=L(j("u-button"),U),f=u,g=L(j("lsj-upload"),T),m=I;return a(),o(f,{class:"jnpf-file"},{default:n((()=>[h(f,{class:"jnpf-file-box",style:r({textAlign:s.align})},{default:n((()=>[s.detailed||s.disabled?S("",!0):(a(),o(f,{key:0,class:"jnpf-file-box-line"},{default:n((()=>[s.disabled?S("",!0):(a(),o(g,{key:0,ref:l.lsjUpload,childId:l.childId,width:l.width,height:l.height,option:l.option,size:s.fileSize,formats:p.getFormats,instantly:l.instantly,onUploadEnd:p.onuploadEnd,lsjUpload:l.lsjUpload},{default:n((()=>[h(f,null,{default:n((()=>[h(c,{size:"mini"},{default:n((()=>[d("上传附件")])),_:1})])),_:1})])),_:1},8,["childId","width","height","option","size","formats","instantly","onUploadEnd","lsjUpload"]))])),_:1})),s.disabled?(a(),o(c,{key:1,size:"mini"},{default:n((()=>[d("上传附件")])),_:1})):S("",!0),(a(!0),_(x,null,F(l.fileList,((t,i)=>(a(),o(f,{key:i,class:"jnpf-file-item u-type-primary u-flex u-line-1",onClick:e=>p.downLoad(t)},{default:n((()=>[t.fileSize?(a(),o(f,{key:0,class:"jnpf-file-item-txt u-line-1"},{default:n((()=>[d(v(t.name+`(${e.jnpf.toFileSize(t.fileSize)} )`),1)])),_:2},1024)):(a(),o(f,{key:1,class:"jnpf-file-item-txt u-line-1"},{default:n((()=>[d(v(t.name),1)])),_:2},1024)),s.detailed||s.disabled?S("",!0):(a(),o(f,{key:2,class:"closeBox u-flex-col",onClick:z((e=>p.delFile(i)),["stop"])},{default:n((()=>[h(m,{class:"icon-ym icon-ym-nav-close closeTxt u-flex"})])),_:2},1032,["onClick"]))])),_:2},1032,["onClick"])))),128)),h(f,{class:"tipText u-p-l-20"},{default:n((()=>[d(v(s.tipText),1)])),_:1})])),_:1},8,["style"])])),_:1})}],["__scopeId","data-v-1522da08"]]);export{$ as _};