index.BkTJ59SX.js 12 KB

1
  1. import{k as e,m as a,d as t,aK as l,K as o,a as n,x as i,O as r,a1 as s,a2 as u,aA as d,_ as c,aL as m,aM as p,aN as f,L as _,aO as h,z as v,A as y,t as w,q as b,P as g}from"./element-plus.B27SxRGv.js";import{M as j,a_ as k,aL as C,u as x,I as R,bk as V,bJ as z,v as B,bL as L,s as U,H as q,bb as P,t as $,F,aX as M,au as S,bM as T,aU as K,aS as A}from"./@vue.DbmRtknU.js";import{y as E,$ as I,_ as O}from"./index.DYWCVKSk.js";import{_ as D,a as N,P as Q}from"./PageContent.2D3OI2WE.js";import{P as G}from"./wechat.DxkWAiK2.js";import{E as H}from"./sql.Cgn48OB5.js";import"./lodash-es.DaM9m3L-.js";import"./async-validator.j0i5Y79Y.js";import"./@popperjs.DxtSUbXb.js";import"./@ctrl.BEgk5vdO.js";import"./dayjs.DCWbrgJ0.js";import"./memoize-one.BAtLgO95.js";import"./normalize-wheel-es.TzhA1irr.js";import"./@floating-ui.8vigAAFV.js";import"./pinia.BlfmsheH.js";import"./@vueuse.Dnsd2JKX.js";import"./vue-i18n.DXLOBfKS.js";import"./@intlify.DPMNdUn_.js";import"./nprogress.BTjJXJ-u.js";import"./codemirror.CYSLATvI.js";import"./diff-match-patch.DkK4wJpa.js";import"./vue-web-terminal.D-rog7dz.js";import"./vue.MGxsMDTR.js";/* empty css */import"./vue-router.yxIMtaxH.js";import"./axios.Da-QW0H8.js";import"./qs.BQjOrGHM.js";import"./side-channel.4q28KFJj.js";import"./es-errors.DTEWvbA_.js";import"./object-inspect.DvQZIv3_.js";import"./side-channel-list.Do0-XmF5.js";import"./side-channel-map.DNHQ53lO.js";import"./get-intrinsic.Bbe5x-9b.js";import"./es-object-atoms.CyiuHMUS.js";import"./math-intrinsics.pM-JTNwN.js";import"./gopd.BudZp56J.js";import"./es-define-property.F0aoeP8o.js";import"./has-symbols.BcO-SUVM.js";import"./get-proto.Cb_fpw-j.js";import"./dunder-proto.WEH3rgQR.js";import"./call-bind-apply-helpers.DJjIjCF_.js";import"./function-bind.DrnB-baK.js";import"./hasown.BXcyoiLU.js";import"./call-bound.22gFUC2Q.js";import"./side-channel-weakmap.DpSeWE6i.js";import"./pinia-plugin-persistedstate.COWkwNh5.js";import"./exceljs.DLSZe_6I.js";const J={class:"app-container"},W={class:"card-header"},X={class:"breadcrumb-container"},Y={class:"data-table__toolbar--right flex flex-wrap items-center gap-3"},Z={class:"data-table__content"},ee={class:"file-name"},ae=["onClick"],te={key:0},le=O(j({name:"ResourceMonitor",inheritAttrs:!1,__name:"index",setup(j){const{searchRef:O,contentRef:le,handleQueryClick:oe,handleResetClick:ne,refreshList:ie}=E(),re=K([]),se=K([{name:"资源根目录",path:"/"}]),ue=K(!1),de=K("/"),ce=A({permPrefix:"module_monitor:resource",colon:!0,isExpandable:!1,showNumber:3,form:{labelWidth:"auto"},searchButtonPerm:"module_monitor:resource:query",resetButtonPerm:"module_monitor:resource:query",formItems:[{prop:"name",label:"关键词",type:"input",attrs:{placeholder:"请输入文件名或目录名",clearable:!0,style:{width:"200px"}}}]}),me=A({permPrefix:"module_monitor:resource",cols:[],hideColumnFilter:!0,toolbar:[],defaultToolbar:["refresh"],pk:"file_url",pagination:{pageSize:10,pageSizes:[10,20,30,50]},request:{page_no:"page_no",page_size:"page_size"},indexAction:async e=>{const a={...e,include_hidden:ue.value};de.value&&"/"!==de.value&&(a.path=de.value);const t=await I.listResource(a);return{total:t.data.data.total,list:t.data.data.items}}}),pe=K(!1),fe=K(!1),_e=K(!1),he=K(!1),ve=K(),ye=K([]),we=A({dir_name:""}),be=A({new_name:"",old_path:""});function ge(){if("/"===de.value)return void(se.value=[{name:"资源根目录",path:"/"}]);const e=de.value.split("/").filter(e=>""!==e);se.value=[{name:"资源根目录",path:"/"},...e.map((a,t)=>({name:a,path:e.slice(0,t+1).join("/")}))]}function je(e){e.is_dir?("/"===de.value?de.value=e.name:de.value=de.value+"/"+e.name,ge(),ie()):function(e){let a=e.file_url;a&&!a.startsWith("http")&&(a=`${window.location.origin}${a}`);window.open(a,"_blank")}(e)}function ke(){pe.value=!0,ye.value=[]}function Ce(e,a){ye.value=a}async function xe(){if(0!==ye.value.length)try{he.value=!0;const e=new FormData;ye.value.forEach(a=>{const t=a.raw;t&&e.append("file",t)});const a="/"===de.value?"":de.value;e.append("target_path",a),await I.uploadFile(e),pe.value=!1,ie()}catch(e){}finally{he.value=!1}else b.warning("请选择要上传的文件")}function Re(){pe.value=!1,ye.value=[]}function Ve(){we.dir_name="",fe.value=!0}async function ze(){if(we.dir_name.trim())try{const e="/"===de.value?"":de.value;await I.createDirectory({parent_path:e,dir_name:we.dir_name.trim()}),fe.value=!1,ie()}catch(e){}else b.warning("请输入文件夹名称")}function Be(){ie()}async function Le(){if(be.new_name.trim())try{await I.renameResource({old_path:be.old_path,new_name:be.new_name.trim()}),_e.value=!1,ie()}catch(e){}else b.warning("请输入新名称")}async function Ue(){if(0!==re.value.length)try{await g.confirm(`确定要删除选中的 ${re.value.length} 个文件吗?`,"确认删除",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"});const e=re.value.map(e=>e.file_url);await I.deleteResource(e),ie()}catch(e){}else b.warning("请选择要删除的文件")}function qe(e){if(!e||null===e)return"-";const a=["B","KB","MB","GB","TB"];let t=0,l=e;for(;l>=1024&&t<a.length-1;)l/=1024,t++;return`${l.toFixed(1)} ${a[t]}`}return(b,j)=>{const K=c,A=f,E=p,Pe=n,$e=u,Fe=s,Me=d,Se=i,Te=a,Ke=t,Ae=e,Ee=_,Ie=w,Oe=y,De=v,Ne=k("hasPerm"),Qe=r;return C(),x("div",J,[R(G,{ref_key:"searchRef",ref:O,"search-config":ce,onQueryClick:V(oe),onResetClick:V(ne)},null,8,["search-config","onQueryClick","onResetClick"]),R(Q,{ref_key:"contentRef",ref:le,"content-config":me},{header:z(()=>[B("div",W,[B("span",null,[R(K,{content:"资源文件管理系统: 点击路径可以快速返回上级目录"},{default:z(()=>[R(V(m),{class:"w-4 h-4 mx-1"})]),_:1}),j[9]||(j[9]=q(" 文件列表(当前路径): ",-1))]),B("div",X,[j[10]||(j[10]=B("span",{class:"breadcrumb-label"},null,-1)),R(E,{separator:"/"},{default:z(()=>[(C(!0),x(F,null,M(se.value,(e,a)=>(C(),U(A,{key:a,class:S({"is-link":a<se.value.length-1}),onClick:a=>function(e){de.value=e.path,ge(),ie()}(e)},{default:z(()=>[q(P(e.name),1)]),_:2},1032,["class","onClick"]))),128))]),_:1})])])]),toolbar:z(({toolbarRight:e,onToolbar:a,removeIds:t,cols:l})=>[R(D,{"remove-ids":t},{default:z(()=>[R(Fe,{gutter:10},{default:z(()=>[R($e,{span:1.5},{default:z(()=>[L((C(),U(Pe,{type:"success",icon:"plus",onClick:ke},{default:z(()=>[...j[11]||(j[11]=[q(" 上传文件 ",-1)])]),_:1})),[[Ne,["module_monitor:resource:upload"]]])]),_:1}),R($e,{span:1.5},{default:z(()=>[L((C(),U(Pe,{type:"primary",icon:"folder-add",onClick:Ve},{default:z(()=>[...j[12]||(j[12]=[q(" 新建文件夹 ",-1)])]),_:1})),[[Ne,["module_monitor:resource:create_dir"]]])]),_:1}),R($e,{span:1.5},{default:z(()=>[L((C(),U(Pe,{type:"danger",icon:"delete",disabled:0===t.length,onClick:Ue},{default:z(()=>[...j[13]||(j[13]=[q(" 批量删除 ",-1)])]),_:1},8,["disabled"])),[[Ne,["module_monitor:resource:delete"]]])]),_:2},1024)]),_:2},1024)]),_:2},1032,["remove-ids"]),B("div",Y,[L((C(),U(Me,{modelValue:ue.value,"onUpdate:modelValue":j[0]||(j[0]=e=>ue.value=e),onChange:Be},{default:z(()=>[...j[14]||(j[14]=[q(" 显示隐藏文件 ",-1)])]),_:1},8,["modelValue"])),[[Ne,["module_monitor:resource:query"]]]),R(N,{buttons:e,cols:l,"on-toolbar":a},null,8,["buttons","cols","on-toolbar"])])]),table:z(({data:e,loading:a,tableRef:t,onSelectionChange:n,pagination:i})=>[B("div",Z,[L((C(),U(Ae,{ref:t,"row-key":"file_url",data:e,height:"100%",border:"",stripe:"",onSelectionChange:e=>{var a;a=e,re.value=a,n(e)}},{empty:z(()=>[R(Se,{"image-size":80,description:"暂无数据"})]),default:z(()=>[R(Te,{type:"selection","min-width":"40",align:"center"}),R(Te,{type:"index",fixed:"",label:"序号","min-width":"50"},{default:z(e=>[q(P((i.currentPage-1)*i.pageSize+e.$index+1),1)]),_:2},1024),R(Te,{label:"名称",prop:"name","min-width":"200"},{default:z(({row:e})=>[B("div",ee,[R(Ke,{class:"file-icon"},{default:z(()=>[e.is_dir?(C(),U(V(l),{key:0})):(C(),U(V(o),{key:1}))]),_:2},1024),B("span",{class:"file-name-clickable",onClick:a=>je(e)},P(e.name),9,ae)])]),_:1}),R(Te,{label:"大小",prop:"size","min-width":"120",align:"center"},{default:z(({row:e})=>[e.is_dir?$("",!0):(C(),x("span",te,P(qe(e.size)),1))]),_:1}),R(Te,{label:"修改时间",prop:"modified_time","min-width":"180",sortable:""}),R(Te,{fixed:"right",label:"操作",align:"center","min-width":"200","class-name":"search-buttons"},{default:z(({row:e})=>[e.is_dir?$("",!0):L((C(),U(Pe,{key:0,type:"success",size:"small",link:"",icon:"download",onClick:a=>async function(e){try{const a=(await I.downloadFile(e.file_url)).data,t=window.URL.createObjectURL(a),l=document.createElement("a");l.href=t,l.download=e.name,document.body.appendChild(l),l.click(),document.body.removeChild(l),window.URL.revokeObjectURL(t)}catch(a){}}(e)},{default:z(()=>[...j[15]||(j[15]=[q(" 下载 ",-1)])]),_:1},8,["onClick"])),[[Ne,["module_monitor:resource:download"]]]),L((C(),U(Pe,{type:"primary",size:"small",link:"",icon:"edit",onClick:a=>{return t=e,be.old_path=t.file_url,be.new_name=t.name,void(_e.value=!0);var t}},{default:z(()=>[...j[16]||(j[16]=[q(" 重命名 ",-1)])]),_:1},8,["onClick"])),[[Ne,["module_monitor:resource:rename"]]]),L((C(),U(Pe,{type:"danger",size:"small",link:"",icon:"delete",onClick:a=>async function(e){try{await g.confirm(`确定要删除 ${e.name} 吗?`,"确认删除",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),await I.deleteResource([e.file_url]),ie()}catch(a){}}(e)},{default:z(()=>[...j[17]||(j[17]=[q(" 删除 ",-1)])]),_:1},8,["onClick"])),[[Ne,["module_monitor:resource:delete"]]])]),_:1})]),_:2},1032,["data","onSelectionChange"])),[[Qe,a]])])]),_:1},8,["content-config"]),R(H,{modelValue:pe.value,"onUpdate:modelValue":j[2]||(j[2]=e=>pe.value=e),title:"上传文件",width:"500px",onClose:Re},{footer:z(()=>[R(Pe,{onClick:j[1]||(j[1]=e=>pe.value=!1)},{default:z(()=>[...j[20]||(j[20]=[q("取消",-1)])]),_:1}),L((C(),U(Pe,{type:"primary",loading:he.value,onClick:xe},{default:z(()=>[...j[21]||(j[21]=[q(" 确定上传 ",-1)])]),_:1},8,["loading"])),[[Ne,["module_monitor:resource:upload"]]])]),default:z(()=>[R(Ee,{ref_key:"uploadRef",ref:ve,"auto-upload":!1,multiple:!0,"file-list":ye.value,drag:"",onChange:Ce},{tip:z(()=>[...j[18]||(j[18]=[B("div",{class:"el-upload__tip",style:{color:"red"}}," 不支持多文件上传,单个文件不超过100MB,多文件上传,取最后一个文件上传 ",-1)])]),default:z(()=>[R(Ke,{class:"el-icon--upload"},{default:z(()=>[R(V(h))]),_:1}),j[19]||(j[19]=B("div",{class:"el-upload__text"},[q(" 将文件拖到此处,或 "),B("em",null,"点击上传")],-1))]),_:1},8,["file-list"])]),_:1},8,["modelValue"]),R(H,{modelValue:fe.value,"onUpdate:modelValue":j[5]||(j[5]=e=>fe.value=e),title:"新建文件夹",width:"400px"},{footer:z(()=>[R(Pe,{onClick:j[4]||(j[4]=e=>fe.value=!1)},{default:z(()=>[...j[22]||(j[22]=[q("取消",-1)])]),_:1}),L((C(),U(Pe,{type:"primary",onClick:ze},{default:z(()=>[...j[23]||(j[23]=[q(" 确定 ",-1)])]),_:1})),[[Ne,["module_monitor:resource:create_dir"]]])]),default:z(()=>[R(De,{model:we,"label-width":"80px"},{default:z(()=>[R(Oe,{label:"文件夹名",required:""},{default:z(()=>[R(Ie,{modelValue:we.dir_name,"onUpdate:modelValue":j[3]||(j[3]=e=>we.dir_name=e),placeholder:"请输入文件夹名称",onKeyup:T(ze,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),R(H,{modelValue:_e.value,"onUpdate:modelValue":j[8]||(j[8]=e=>_e.value=e),title:"重命名",width:"400px"},{footer:z(()=>[R(Pe,{onClick:j[7]||(j[7]=e=>_e.value=!1)},{default:z(()=>[...j[24]||(j[24]=[q("取消",-1)])]),_:1}),L((C(),U(Pe,{type:"primary",onClick:Le},{default:z(()=>[...j[25]||(j[25]=[q(" 确定 ",-1)])]),_:1})),[[Ne,["module_monitor:resource:rename"]]])]),default:z(()=>[R(De,{model:be,"label-width":"80px"},{default:z(()=>[R(Oe,{label:"新名称",required:""},{default:z(()=>[R(Ie,{modelValue:be.new_name,"onUpdate:modelValue":j[6]||(j[6]=e=>be.new_name=e),placeholder:"请输入新名称",onKeyup:T(Le,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-2d0f5ff0"]]);export{le as default};