eleFileUploadFunction.js 3.9 KB

1
  1. function handleFileUploadSuccess(e,t,n,i){var o=[];i.forEach(function(e){o.push(e.id||e.response.id)}),e.entity[t]=o.join(",")}var imageSuffix=["jpg","bmp","png","gif","jpeg","icon"];function getFileListFromServer(t,n,e){axiosRequest(commonConfig.sysBackendContext+"/sys/attachment/findByIds","初始化附件列表","GET",{ids:e}).then(function(e){e.forEach(function(t){-1!==imageSuffix.indexOf(t.ext.toLowerCase())&&downloadFile(t.id,function(e){getImageBase64(t.ext,e,function(e){t.url=e})})}),t[n+"FileList"]=e})}function getFileBase64(e,t){var n=new FileReader;n.onload=function(e){t(e.target.result)},n.readAsDataURL(e)}function getImageBase64(n,e,i){getFileBase64(e,function(e){var t=e.split(",")[1];i("data:image/"+n+";base64,"+t)})}function downloadFile(e,t){axiosRequest(commonConfig.sysBackendContext+"/sys/attachment/download","下载文件","GET",{id:e},{responseType:"blob"}).then(function(e){t(e)})}function handleFileChange(r,s,c,e){if("ready"===c.status){for(var t=0;t<e.length;t++)if(e[t].name===c.name&&t!==e.length-1)return direwolfCommonTips("warning","相同名称的文件已经被选择"),void e.pop();r[s+"FileList"]=e;var n=new FileReader;n.onload=function(e){for(var t=e.target.result,n=new Uint8Array(t),i=n.byteLength,o="",a=0;a<i;a++)o+=String.fromCharCode(n[a]);c.md5=CryptoJS.MD5(o).toString();var l=r.$refs[s+"Upload"];l.data={md5:c.md5,id:c.uid,name:c.name,type:c.raw.type,lastModifiedDate:c.raw.lastModified,size:c.size,workspace:"",storeType:r.storeType,path:getFormattedDate("yyyy/MM/dd")},!l.autoUpload&&"picture-card"!==l.listType||r.$nextTick(function(){l.submit()})},n.readAsArrayBuffer(blobSlice(c.raw,0,10485760))}}function handleFilePreview(e){"success"===e.status?(e=getAttachmentInfo(e),-1===imageSuffix.indexOf(e.ext.toLowerCase())?direwolfCommonConfirm({message:"点击确定将文件保存到本地磁盘",title:"下载提示"},function(){saveFileToLocal(e)}):previewPicture(e)):direwolfCommonTips("warning","只有上传成功的文件才能预览或下载")}function handleFileRemove(e,t,n,i){"success"===n.status&&deleteFiles(e,t,[n])}function clearAllFiles(e,t){deleteFiles(e,t,e[t+"FileList"])}function assembleTip(e,t,n){var i,o=e.$refs[t+"Upload"],a=e[t+"FileList"],l="";return n||"picture-card"!==o.listType||(l="只能上传图片文件"),l+="限制上传"+o.limit+"个文件,当前",0<a.length?l+="已选择"+o.fileList.length+"个文件":l+="未选择任何文件",0<o.maxSize&&(l+=" 当前限制选择单个文件大小不得超过",l+=(i=o.maxSize/1024)<1?o.maxSize+"K":Math.floor(i)+"M"),l}function deleteFiles(n,i,e){0<e.length&&direwolfCommonConfirm({message:"确定要删除文件吗?",title:"删除提示"},function(){var t=[];e.forEach(function(e){t.push(e)}),t.forEach(function(e){-1===e.size?axiosRequest(commonConfig.sysBackendContext+"/sys/attachment/deleteAttachment","删除文件","GET",{id:e.id}).then(function(){removeFileFromData(n,i,e)}):removeFileFromData(n,i,e)})})}function removeFileFromData(e,t,n){var i=[],o=-1;e[t+"FileList"].forEach(function(e,t){n.md5===e.md5&&(o=t),i.push(getAttachmentInfo(e).id)}),e[t+"FileList"].splice(o,1),e.entity[t]=i.join(",")}function previewPicture(t){downloadFile(t.id,function(e){getImageBase64(t.ext,e,function(e){$(document.activeElement).blur(),top.layer.open({type:2,area:["800px","500px"],title:"预览图片",maxmin:!1,content:e,btn:["确定"],zIndex:getTopIndex()})})})}function saveFileToLocal(n){downloadFile(n.id,function(e){var t;0<navigator.appVersion.toString().indexOf(".NET")?window.navigator.msSaveBlob(e,n.name):((t=document.getElementById("downloadLink"))||((t=document.createElement("a")).id="downloadLink",t.style.display="none",document.body.appendChild(t)),t.href=window.URL.createObjectURL(new Blob([e],{type:e.type})),t.download=n.name,t.click(),window.URL.revokeObjectURL(t.href))})}function getAttachmentInfo(e){return e.path?e:e.response&&e.response.path?e.response:{}}function blobSlice(e,t,n){return e.slice?e.slice(t,n):e.webkitSlice?e.webkitSlice(t,n):e.mozSlice?e.mozSlice(t,n):null}