index-72381a11.js 16 KB

1
  1. var be=Object.defineProperty,ye=Object.defineProperties;var _e=Object.getOwnPropertyDescriptors;var Z=Object.getOwnPropertySymbols;var Ce=Object.prototype.hasOwnProperty,we=Object.prototype.propertyIsEnumerable;var X=(e,t,n)=>t in e?be(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,U=(e,t)=>{for(var n in t||(t={}))Ce.call(t,n)&&X(e,n,t[n]);if(Z)for(var n of Z(t))we.call(t,n)&&X(e,n,t[n]);return e},N=(e,t)=>ye(e,_e(t));var G=(e,t,n)=>new Promise((u,a)=>{var v=l=>{try{o(n.next(l))}catch(f){a(f)}},i=l=>{try{o(n.throw(l))}catch(f){a(f)}},o=l=>l.done?u(l.value):Promise.resolve(l.value).then(v,i);o((n=n.apply(e,t)).next())});import{e as L,f as T,ak as Se,a9 as Ue,cd as Pe,d as F,I as Q,cs as ke,aN as Ie,ae as ee,p as E,c as Te,bi as Le,J as Y,am as Re,a4 as q,b_ as Ae,j as z,k as h,o as y,m as $,F as D,D as $e,q as k,y as C,g as p,C as H,aq as Me,s as V,t as I,v as M,w as B,z as O,ad as Be,ct as De,l as g,dp as Fe,bb as W,a3 as K,ab as Ne,dq as Ee,dr as Oe,Z as ze,r as j,$ as xe,bz as Ge,co as je,af as He,ch as te,ds as Ve,bK as We,bP as qe}from"./index-610a1d46.js";import{c as Ke,B as ne,b as oe,u as J}from"./index-985aa6f5.js";import{D as Ze,M as Xe}from"./index-4ed0dc84.js";import{b as Ye}from"./uuid-98bbe2a6.js";import{a as Je}from"./download-a90dd227.js";const ae={helpText:{type:String,default:""},maxSize:{type:Number,default:2},maxNumber:{type:Number,default:1/0},accept:{type:Array,default:()=>[]},multiple:{type:Boolean,default:!0},uploadParams:{type:Object,default:()=>({})},api:{type:Function,default:null,required:!0},name:{type:String,default:"file"},filename:{type:String,default:null}},Qe=N(U({value:{type:Array,default:()=>[]}},ae),{showPreviewNumber:{type:Boolean,default:!0},emptyHidePreview:{type:Boolean,default:!1}}),et={value:{type:Array,default:()=>[]}},tt={columns:{type:[Array],default:null},actionColumn:{type:Object,default:null},dataSource:{type:Array,default:null}};function nt({acceptRef:e,helpTextRef:t,maxNumberRef:n,maxSizeRef:u}){const a=L(()=>{const o=T(e);return o&&o.length>0?o:[]}),v=L(()=>T(a).map(o=>o.indexOf("/")>0||o.startsWith(".")?o:`.${o}`).join(",")),i=L(()=>{const o=T(t);if(o)return o;const l=[],f=T(e);f.length>0&&l.push(`只能上传${[f.join(",")]}格式文件`);const s=T(u);s&&l.push(`单个文件不超过${s}MB`);const r=T(n);return r&&r!==1/0&&l.push(`最多只能上传${r}个文件`),l.join(",")});return{getAccept:a,getStringAccept:v,getHelpText:i}}var w=(e=>(e.SUCCESS="success",e.ERROR="error",e.UPLOADING="uploading",e))(w||{});function ot(e){return le(e.name)}function le(e){return/\.(jpg|jpeg|png|gif)$/i.test(e)}function at(e){return new Promise((t,n)=>{const u=new FileReader;u.readAsDataURL(e),u.onload=()=>t({result:u.result,file:e}),u.onerror=a=>n(a)})}const se=Symbol("basic-table");function Ot(e){Ue(se,e)}function lt(){return Se(se)}const{table:st}=Pe,{pageSizeOptions:rt,defaultPageSize:ut,fetchSetting:it,defaultSize:ct,defaultSortFn:dt,defaultFilterFn:pt}=st,zt="key",xt=rt,Gt=ut,jt=it,Ht=ct,Vt=dt,Wt=pt,qt="center",Kt="INDEX",ft="ACTION",Zt="TABLE_CUSTOM_STORAGE",mt=F({name:"TableAction",components:{Icon:Q,PopConfirmButton:ke,Divider:Ie,Dropdown:Ze,MoreOutlined:Xe,Tooltip:ee},props:{actions:{type:Array,default:null},dropDownActions:{type:Array,default:null},divider:E.bool.def(!0),outside:E.bool,stopButtonPropagation:E.bool.def(!1)},setup(e){const{prefixCls:t}=Te("basic-table-action");let n={};e.outside||(n=lt());const{hasPermission:u}=Le();function a(s){const r=s.ifShow;let b=!0;return Re(r)&&(b=r),q(r)&&(b=r(s)),b}const v=L(()=>(Y(e.actions)||[]).filter(s=>u(s.auth)&&a(s)).map(s=>{const{popConfirm:r}=s;return N(U(U({getPopupContainer:()=>{var b;return(b=T(n==null?void 0:n.wrapRef.value))!=null?b:document.body},type:"link",size:"small"},s),r||{}),{onConfirm:r==null?void 0:r.confirm,onCancel:r==null?void 0:r.cancel,enable:!!r})})),i=L(()=>{const s=(Y(e.dropDownActions)||[]).filter(r=>u(r.auth)&&a(r));return s.map((r,b)=>{const{label:c,popConfirm:d}=r;return N(U(U({},r),d),{onConfirm:d==null?void 0:d.confirm,onCancel:d==null?void 0:d.cancel,text:c,divider:b<s.length-1?e.divider:!1})})}),o=L(()=>{var b,c;const r=(((b=n==null?void 0:n.getColumns)==null?void 0:b.call(n))||[]).find(d=>d.flag===ft);return(c=r==null?void 0:r.align)!=null?c:"left"});function l(s){return U({getPopupContainer:()=>{var r;return(r=T(n==null?void 0:n.wrapRef.value))!=null?r:document.body},placement:"bottom"},Ae(s)?{title:s}:s)}function f(s){if(!e.stopButtonPropagation)return;s.composedPath().find(c=>{var d;return((d=c.tagName)==null?void 0:d.toUpperCase())==="BUTTON"})&&s.stopPropagation()}return{prefixCls:t,getActions:v,getDropdownList:i,getAlign:o,onCellClick:f,getTooltip:l}}});function gt(e,t,n,u,a,v){const i=h("Icon"),o=h("PopConfirmButton"),l=h("Tooltip"),f=h("Divider"),s=h("MoreOutlined"),r=h("a-button"),b=h("Dropdown");return y(),$("div",{class:V([e.prefixCls,e.getAlign]),onClick:t[0]||(t[0]=(...c)=>e.onCellClick&&e.onCellClick(...c))},[(y(!0),$(D,null,$e(e.getActions,(c,d)=>(y(),$(D,{key:`${d}-${c.label}`},[c.tooltip?(y(),k(l,H(O({key:0},e.getTooltip(c.tooltip))),{default:C(()=>[p(o,H(Me(c)),{default:C(()=>[c.icon?(y(),k(i,{key:0,icon:c.icon,class:V({"mr-1":!!c.label})},null,8,["icon","class"])):I("",!0),c.label?(y(),$(D,{key:1},[M(B(c.label),1)],64)):I("",!0)]),_:2},1040)]),_:2},1040)):(y(),k(o,H(O({key:1},c)),{default:C(()=>[c.icon?(y(),k(i,{key:0,icon:c.icon,class:V({"mr-1":!!c.label})},null,8,["icon","class"])):I("",!0),c.label?(y(),$(D,{key:1},[M(B(c.label),1)],64)):I("",!0)]),_:2},1040)),e.divider&&d<e.getActions.length-1?(y(),k(f,{key:2,type:"vertical",class:"action-divider"})):I("",!0)],64))),128)),e.dropDownActions&&e.getDropdownList.length>0?(y(),k(b,{key:0,trigger:["hover"],dropMenuList:e.getDropdownList,popconfirm:""},{default:C(()=>[Be(e.$slots,"more"),e.$slots.more?I("",!0):(y(),k(r,{key:0,type:"link",size:"small"},{default:C(()=>[p(s,{class:"icon-more"})]),_:1}))]),_:3},8,["dropMenuList"])):I("",!0)],2)}const re=z(mt,[["render",gt]]),ht=F({components:{Image:De},props:{fileUrl:E.string.def(""),fileName:E.string.def("")}});const vt={class:"thumb"};function bt(e,t,n,u,a,v){const i=h("Image");return y(),$("span",vt,[e.fileUrl?(y(),k(i,{key:0,src:e.fileUrl,width:104},null,8,["src"])):I("",!0)])}const ue=z(ht,[["render",bt]]);function yt(){return[{dataIndex:"thumbUrl",title:g.upload.legend,width:100,customRender:({record:e})=>{const{thumbUrl:t}=e||{};return t&&p(ue,{fileUrl:t},null)}},{dataIndex:"name",title:g.upload.fileName,align:"left",customRender:({text:e,record:t})=>{const{percent:n,status:u}=t||{};let a="normal";return u===w.ERROR?a="exception":u===w.UPLOADING?a="active":u===w.SUCCESS&&(a="success"),p("span",null,[p("p",{class:"truncate mb-1",title:e},[e]),p(Fe,{percent:n,size:"small",status:a},null)])}},{dataIndex:"size",title:g.upload.fileSize,width:100,customRender:({text:e=0})=>e&&(e/1024).toFixed(2)+"KB"},{dataIndex:"status",title:g.upload.fileStatue,width:100,customRender:({text:e})=>e===w.SUCCESS?p(W,{color:"green"},{default:()=>g.upload.uploadSuccess}):e===w.ERROR?p(W,{color:"red"},{default:()=>g.upload.uploadError}):e===w.UPLOADING?p(W,{color:"blue"},{default:()=>g.upload.uploading}):e}]}function _t(e){return{width:120,title:g.upload.operating,dataIndex:"action",fixed:!1,customRender:({record:t})=>{const n=[{label:g.upload.del,color:"error",onClick:e.bind(null,t)}];return p(re,{actions:n,outside:!0},null)}}}function Ct(){return[{dataIndex:"url",title:g.upload.legend,width:100,customRender:({record:e})=>{const{url:t}=e||{};return le(t)&&p(ue,{fileUrl:t},null)}},{dataIndex:"name",title:g.upload.fileName,align:"left"}]}function wt({handleRemove:e,handleDownload:t}){return{width:160,title:g.upload.operating,dataIndex:"action",fixed:!1,customRender:({record:n})=>{const u=[{label:g.upload.del,color:"error",onClick:e.bind(null,n)},{label:g.upload.download,onClick:t.bind(null,n)}];return p(re,{actions:u,outside:!0},null)}}}const ie=F({name:"FileList",props:tt,setup(e){const t=Ke();return K(()=>e.dataSource,()=>{Ne(()=>{var n;(n=t==null?void 0:t.redoModalHeight)==null||n.call(t)})}),()=>{const{columns:n,actionColumn:u,dataSource:a}=e,v=[...n,u];return p("table",{class:"file-table"},[p("colgroup",null,[v.map(i=>{const{width:o=0,dataIndex:l}=i,f={width:`${o}px`,minWidth:`${o}px`};return p("col",{style:o?f:{},key:l},null)})]),p("thead",null,[p("tr",{class:"file-table-tr"},[v.map(i=>{const{title:o="",align:l="center",dataIndex:f}=i;return p("th",{class:["file-table-th",l],key:f},[o])})])]),p("tbody",null,[a.map((i={},o)=>p("tr",{class:"file-table-tr",key:`${o+i.name||""}`},[v.map(l=>{const{dataIndex:f="",customRender:s,align:r="center"}=l,b=s&&q(s);return p("td",{class:["file-table-td",r],key:f},[b?s==null?void 0:s({text:i[f],record:i}):i[f]])})]))])])}}});const St=F({components:{BasicModal:ne,Upload:Ee,Alert:Oe,FileList:ie},props:N(U({},ae),{previewFileList:{type:Array,default:()=>[]}}),emits:["change","register","delete"],setup(e,{emit:t}){const n=ze({fileList:[]}),u=j(!1),a=j([]),{accept:v,helpText:i,maxNumber:o,maxSize:l}=xe(e),[f,{closeModal:s}]=oe(),{getStringAccept:r,getHelpText:b}=nt({acceptRef:v,helpTextRef:i,maxNumberRef:o,maxSizeRef:l}),{createMessage:c}=Ge(),d=L(()=>a.value.length>0&&!a.value.every(m=>m.status===w.SUCCESS)),ce=L(()=>{const m=a.value.some(_=>_.status===w.SUCCESS);return{disabled:u.value||a.value.length===0||!m}}),de=L(()=>{const m=a.value.some(_=>_.status===w.ERROR);return u.value?g.upload.uploading:m?g.upload.reUploadFailed:g.upload.startUpload});function pe(m){const{size:_,name:S}=m,{maxSize:P}=e;if(P&&m.size/1024/1024>=P)return c.error(g.upload.maxSizeMultiple,P),!1;const A={uuid:Ye(),file:m,size:_,name:S,percent:0,type:S.split(".").pop()};return ot(m)?at(m).then(({result:R})=>{a.value=[...T(a),U({thumbUrl:R},A)]}):a.value=[...T(a),A],!1}function fe(m){const _=a.value.findIndex(S=>S.uuid===m.uuid);_!==-1&&a.value.splice(_,1),t("delete",m)}function me(m){return G(this,null,function*(){var S;const{api:_}=e;if(!_||!q(_))return je("upload api must exist and be a function");try{const{data:P}=yield(S=e==null?void 0:e.api)==null?void 0:S.call(e,{data:U({},e.uploadParams||{}),file:m.file,name:e.name,filename:e.filename},function(R){const x=R.loaded/R.total*100|0;m.percent=x});m.status=w.SUCCESS,m.responseData=P;debugger;return{success:!0,error:null}}catch(P){return m.status=w.ERROR,{success:!1,error:P}}})}function ge(){return G(this,null,function*(){var _;const{maxNumber:m}=e;if(a.value.length+((_=e.previewFileList)==null?void 0:_.length)>m)return c.warning(g.upload.maxNumber,m);try{u.value=!0;const S=a.value.filter(R=>R.status!==w.SUCCESS)||[],P=yield Promise.all(S.map(R=>{const x=me(R);return x}));u.value=!1;const A=P.filter(R=>!R.success);if(A.length>0)throw A}catch(S){throw u.value=!1,S}})}function he(){const{maxNumber:m}=e;if(a.value.length>m)return c.warning(g.upload.maxNumber,m);if(u.value)return c.warning(g.upload.saveWarn);const _=[];for(const S of a.value){const{status:P,responseData:A}=S;P===w.SUCCESS&&A&&_.push(A.data.absolutePath)}if(_.length<=0)return c.warning(g.upload.saveError);a.value=[],s(),t("change",_)}function ve(){return G(this,null,function*(){return u.value?(c.warning(g.upload.uploadWait),!1):(a.value=[],!0)})}return{columns:yt(),actionColumn:_t(fe),register:f,closeModal:s,getHelpText:b,getStringAccept:r,getOkButtonProps:ce,beforeUpload:pe,fileListRef:a,state:n,isUploadingRef:u,handleStartUpload:ge,handleOk:he,handleCloseFunc:ve,getIsSelectFile:d,getUploadBtnText:de,locales:g}}});const Ut={class:"upload-modal-toolbar"};function Pt(e,t,n,u,a,v){const i=h("a-button"),o=h("Alert"),l=h("Upload"),f=h("FileList"),s=h("BasicModal");return y(),k(s,O({width:"800px",title:e.locales.upload.upload,okText:e.locales.upload.save},e.$attrs,{onRegister:e.register,onOk:e.handleOk,closeFunc:e.handleCloseFunc,maskClosable:!1,keyboard:!1,class:"upload-modal",okButtonProps:e.getOkButtonProps,cancelButtonProps:{disabled:e.isUploadingRef}}),{centerFooter:C(()=>[p(i,{onClick:e.handleStartUpload,color:"success",disabled:!e.getIsSelectFile,loading:e.isUploadingRef},{default:C(()=>[M(B(e.getUploadBtnText),1)]),_:1},8,["onClick","disabled","loading"])]),default:C(()=>[He("div",Ut,[p(o,{message:e.getHelpText,type:"info",banner:"",class:"upload-modal-toolbar__text"},null,8,["message"]),p(l,{accept:e.getStringAccept,multiple:e.multiple,"before-upload":e.beforeUpload,"show-upload-list":!1,class:"upload-modal-toolbar__btn"},{default:C(()=>[p(i,{type:"primary"},{default:C(()=>[M(B(e.locales.upload.choose),1)]),_:1})]),_:1},8,["accept","multiple","before-upload"])]),p(f,{dataSource:e.fileListRef,columns:e.columns,actionColumn:e.actionColumn},null,8,["dataSource","columns","actionColumn"])]),_:1},16,["title","okText","onRegister","onOk","closeFunc","okButtonProps","cancelButtonProps"])}const kt=z(St,[["render",Pt]]),It=F({components:{BasicModal:ne,FileList:ie},props:et,emits:["list-change","register","delete"],setup(e,{emit:t}){const[n,{closeModal:u}]=oe(),a=j([]);K(()=>e.value,o=>{te(o)||(o=[]),a.value=o.filter(l=>!!l).map(l=>({url:l,type:l.split(".").pop()||"",name:l.split("/").pop()||""}))},{immediate:!0});function v(o){const l=a.value.findIndex(f=>f.url===o.url);if(l!==-1){const f=a.value.splice(l,1);t("delete",f[0].url),t("list-change",a.value.map(s=>s.url))}}function i(o){const{url:l=""}=o;Je({url:l})}return{register:n,closeModal:u,fileListRef:a,columns:Ct(),actionColumn:wt({handleRemove:v,handleDownload:i})}}});function Tt(e,t,n,u,a,v){const i=h("FileList"),o=h("BasicModal");return y(),k(o,O({width:"800px",title:"预览",class:"upload-preview-modal"},e.$attrs,{onRegister:e.register,showOkBtn:!1}),{default:C(()=>[p(i,{dataSource:e.fileListRef,columns:e.columns,actionColumn:e.actionColumn},null,8,["dataSource","columns","actionColumn"])]),_:1},16,["onRegister"])}const Lt=z(It,[["render",Tt]]),Rt=F({name:"BasicUpload",components:{UploadModal:kt,Space:Ve,UploadPreviewModal:Lt,Icon:Q,Tooltip:ee},props:Qe,emits:["change","delete","preview-delete","update:value"],setup(e,{emit:t,attrs:n}){const[u,{openModal:a}]=J(),[v,{openModal:i}]=J(),o=j([]),l=L(()=>{const{emptyHidePreview:d}=e;return d&&d?o.value.length>0:!0}),f=L(()=>{const d=U(U({},n),e);return We(d,"onChange")});K(()=>e.value,(d=[])=>{o.value=te(d)?d:[]},{immediate:!0});function s(d){o.value=[...T(o),...d||[]],t("update:value",o.value),t("change",o.value)}function r(d){o.value=[...d||[]],t("update:value",o.value),t("change",o.value)}function b(d){t("delete",d)}function c(d){t("preview-delete",d)}return{registerUploadModal:u,openUploadModal:a,handleChange:s,handlePreviewChange:r,registerPreviewModal:v,openPreviewModal:i,fileList:o,showPreview:l,bindValue:f,handleDelete:b,handlePreviewDelete:c,locales:g}}});function At(e,t,n,u,a,v){const i=h("a-button"),o=h("Icon"),l=h("Tooltip"),f=h("Space"),s=h("UploadModal"),r=h("UploadPreviewModal");return y(),$("div",null,[p(f,null,{default:C(()=>[p(i,{type:"primary",onClick:e.openUploadModal,preIcon:"carbon:cloud-upload"},{default:C(()=>[M(B(e.locales.upload.upload),1)]),_:1},8,["onClick"]),e.showPreview?(y(),k(l,{key:0,placement:"bottom"},{title:C(()=>[M(B(e.locales.upload.uploaded)+" ",1),e.fileList.length?(y(),$(D,{key:0},[M(B(e.fileList.length),1)],64)):I("",!0)]),default:C(()=>[p(i,{onClick:e.openPreviewModal},{default:C(()=>[p(o,{icon:"bi:eye"}),e.fileList.length&&e.showPreviewNumber?(y(),$(D,{key:0},[M(B(e.fileList.length),1)],64)):I("",!0)]),_:1},8,["onClick"])]),_:1})):I("",!0)]),_:1}),p(s,O(e.bindValue,{previewFileList:e.fileList,onRegister:e.registerUploadModal,onChange:e.handleChange,onDelete:e.handleDelete}),null,16,["previewFileList","onRegister","onChange","onDelete"]),p(r,{value:e.fileList,onRegister:e.registerPreviewModal,onListChange:e.handlePreviewChange,onDelete:e.handlePreviewDelete},null,8,["value","onRegister","onListChange","onDelete"])])}const $t=z(Rt,[["render",At]]),Xt=qe($t);export{ft as A,Xt as B,qt as D,jt as F,Kt as I,Gt as P,zt as R,Zt as S,re as T,xt as a,Vt as b,Wt as c,Ht as d,Ot as e,lt as u};