| 1 |
- import{k as e,m as a,d as t,aJ as l,K as o,a as i,x as n,O as r,a1 as s,a2 as u,az as d,_ as c,aK as m,aL as p,aM as f,L as _,aN as h,z as v,A as y,t as w,q as j,P as b}from"./element-plus.DYHj_7Hl.js";import{M as g,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 P,bb as q,t as $,F,aX as K,au as M,bM as S,aU as T,aS as E}from"./@vue.DbmRtknU.js";import{R as I}from"./vite.Bl28RSoy.js";import{_ as A,a as O,P as D}from"./PageContent.DzqpeyM-.js";import{P as J}from"./tree.BFnI0hOR.js";import{E as Q}from"./wechat.DyF79Qxe.js";import{B as G,_ as H}from"./index.KDUAIHt0.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"./exceljs.DLSZe_6I.js";import"./@vueuse.0G3dmZIi.js";import"./vue-i18n.DXLOBfKS.js";import"./@intlify.DPMNdUn_.js";import"./project.BVpot7IW.js";import"./vue-router.yxIMtaxH.js";import"./pinia.BlfmsheH.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"./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";const N={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=H(g({name:"ResourceMonitor",inheritAttrs:!1,__name:"index",setup(g){const{searchRef:H,contentRef:le,handleQueryClick:oe,handleResetClick:ie,refreshList:ne}=G(),re=T([]),se=T([{name:"资源根目录",path:"/"}]),ue=T(!1),de=T("/"),ce=E({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=E({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=T(!1),fe=T(!1),_e=T(!1),he=T(!1),ve=T(),ye=T([]),we=E({dir_name:""}),je=E({new_name:"",old_path:""});function be(){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 ge(e){e.is_dir?("/"===de.value?de.value=e.name:de.value=de.value+"/"+e.name,be(),ne()):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,ne()}catch(e){}finally{he.value=!1}else j.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,ne()}catch(e){}else j.warning("请输入文件夹名称")}function Be(){ne()}async function Le(){if(je.new_name.trim())try{await I.renameResource({old_path:je.old_path,new_name:je.new_name.trim()}),_e.value=!1,ne()}catch(e){}else j.warning("请输入新名称")}async function Ue(){if(0!==re.value.length)try{await b.confirm(`确定要删除选中的 ${re.value.length} 个文件吗?`,"确认删除",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"});const e=re.value.map(e=>e.file_url);await I.deleteResource(e),ne()}catch(e){}else j.warning("请选择要删除的文件")}function Pe(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(j,g)=>{const T=c,E=f,G=p,qe=i,$e=u,Fe=s,Ke=d,Me=n,Se=a,Te=t,Ee=e,Ie=_,Ae=w,Oe=y,De=v,Je=k("hasPerm"),Qe=r;return C(),x("div",N,[R(J,{ref_key:"searchRef",ref:H,"search-config":ce,onQueryClick:V(oe),onResetClick:V(ie)},null,8,["search-config","onQueryClick","onResetClick"]),R(D,{ref_key:"contentRef",ref:le,"content-config":me},{header:z(()=>[B("div",W,[B("span",null,[R(T,{content:"资源文件管理系统: 点击路径可以快速返回上级目录"},{default:z(()=>[R(V(m),{class:"w-4 h-4 mx-1"})]),_:1}),g[9]||(g[9]=P(" 文件列表(当前路径): ",-1))]),B("div",X,[g[10]||(g[10]=B("span",{class:"breadcrumb-label"},null,-1)),R(G,{separator:"/"},{default:z(()=>[(C(!0),x(F,null,K(se.value,(e,a)=>(C(),U(E,{key:a,class:M({"is-link":a<se.value.length-1}),onClick:a=>function(e){de.value=e.path,be(),ne()}(e)},{default:z(()=>[P(q(e.name),1)]),_:2},1032,["class","onClick"]))),128))]),_:1})])])]),toolbar:z(({toolbarRight:e,onToolbar:a,removeIds:t,cols:l})=>[R(A,{"remove-ids":t},{default:z(()=>[R(Fe,{gutter:10},{default:z(()=>[R($e,{span:1.5},{default:z(()=>[L((C(),U(qe,{type:"success",icon:"plus",onClick:ke},{default:z(()=>[...g[11]||(g[11]=[P(" 上传文件 ",-1)])]),_:1})),[[Je,["module_monitor:resource:upload"]]])]),_:1}),R($e,{span:1.5},{default:z(()=>[L((C(),U(qe,{type:"primary",icon:"folder-add",onClick:Ve},{default:z(()=>[...g[12]||(g[12]=[P(" 新建文件夹 ",-1)])]),_:1})),[[Je,["module_monitor:resource:create_dir"]]])]),_:1}),R($e,{span:1.5},{default:z(()=>[L((C(),U(qe,{type:"danger",icon:"delete",disabled:0===t.length,onClick:Ue},{default:z(()=>[...g[13]||(g[13]=[P(" 批量删除 ",-1)])]),_:1},8,["disabled"])),[[Je,["module_monitor:resource:delete"]]])]),_:2},1024)]),_:2},1024)]),_:2},1032,["remove-ids"]),B("div",Y,[L((C(),U(Ke,{modelValue:ue.value,"onUpdate:modelValue":g[0]||(g[0]=e=>ue.value=e),onChange:Be},{default:z(()=>[...g[14]||(g[14]=[P(" 显示隐藏文件 ",-1)])]),_:1},8,["modelValue"])),[[Je,["module_monitor:resource:query"]]]),R(O,{buttons:e,cols:l,"on-toolbar":a},null,8,["buttons","cols","on-toolbar"])])]),table:z(({data:e,loading:a,tableRef:t,onSelectionChange:i,pagination:n})=>[B("div",Z,[L((C(),U(Ee,{ref:t,"row-key":"file_url",data:e,height:"100%",border:"",stripe:"",onSelectionChange:e=>{var a;a=e,re.value=a,i(e)}},{empty:z(()=>[R(Me,{"image-size":80,description:"暂无数据"})]),default:z(()=>[R(Se,{type:"selection","min-width":"40",align:"center"}),R(Se,{type:"index",fixed:"",label:"序号","min-width":"50"},{default:z(e=>[P(q((n.currentPage-1)*n.pageSize+e.$index+1),1)]),_:2},1024),R(Se,{label:"名称",prop:"name","min-width":"200"},{default:z(({row:e})=>[B("div",ee,[R(Te,{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=>ge(e)},q(e.name),9,ae)])]),_:1}),R(Se,{label:"大小",prop:"size","min-width":"120",align:"center"},{default:z(({row:e})=>[e.is_dir?$("",!0):(C(),x("span",te,q(Pe(e.size)),1))]),_:1}),R(Se,{label:"修改时间",prop:"modified_time","min-width":"180",sortable:""}),R(Se,{fixed:"right",label:"操作",align:"center","min-width":"200","class-name":"search-buttons"},{default:z(({row:e})=>[e.is_dir?$("",!0):L((C(),U(qe,{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(()=>[...g[15]||(g[15]=[P(" 下载 ",-1)])]),_:1},8,["onClick"])),[[Je,["module_monitor:resource:download"]]]),L((C(),U(qe,{type:"primary",size:"small",link:"",icon:"edit",onClick:a=>{return t=e,je.old_path=t.file_url,je.new_name=t.name,void(_e.value=!0);var t}},{default:z(()=>[...g[16]||(g[16]=[P(" 重命名 ",-1)])]),_:1},8,["onClick"])),[[Je,["module_monitor:resource:rename"]]]),L((C(),U(qe,{type:"danger",size:"small",link:"",icon:"delete",onClick:a=>async function(e){try{await b.confirm(`确定要删除 ${e.name} 吗?`,"确认删除",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),await I.deleteResource([e.file_url]),ne()}catch(a){}}(e)},{default:z(()=>[...g[17]||(g[17]=[P(" 删除 ",-1)])]),_:1},8,["onClick"])),[[Je,["module_monitor:resource:delete"]]])]),_:1})]),_:2},1032,["data","onSelectionChange"])),[[Qe,a]])])]),_:1},8,["content-config"]),R(Q,{modelValue:pe.value,"onUpdate:modelValue":g[2]||(g[2]=e=>pe.value=e),title:"上传文件",width:"500px",onClose:Re},{footer:z(()=>[R(qe,{onClick:g[1]||(g[1]=e=>pe.value=!1)},{default:z(()=>[...g[20]||(g[20]=[P("取消",-1)])]),_:1}),L((C(),U(qe,{type:"primary",loading:he.value,onClick:xe},{default:z(()=>[...g[21]||(g[21]=[P(" 确定上传 ",-1)])]),_:1},8,["loading"])),[[Je,["module_monitor:resource:upload"]]])]),default:z(()=>[R(Ie,{ref_key:"uploadRef",ref:ve,"auto-upload":!1,multiple:!0,"file-list":ye.value,drag:"",onChange:Ce},{tip:z(()=>[...g[18]||(g[18]=[B("div",{class:"el-upload__tip",style:{color:"red"}}," 不支持多文件上传,单个文件不超过100MB,多文件上传,取最后一个文件上传 ",-1)])]),default:z(()=>[R(Te,{class:"el-icon--upload"},{default:z(()=>[R(V(h))]),_:1}),g[19]||(g[19]=B("div",{class:"el-upload__text"},[P(" 将文件拖到此处,或 "),B("em",null,"点击上传")],-1))]),_:1},8,["file-list"])]),_:1},8,["modelValue"]),R(Q,{modelValue:fe.value,"onUpdate:modelValue":g[5]||(g[5]=e=>fe.value=e),title:"新建文件夹",width:"400px"},{footer:z(()=>[R(qe,{onClick:g[4]||(g[4]=e=>fe.value=!1)},{default:z(()=>[...g[22]||(g[22]=[P("取消",-1)])]),_:1}),L((C(),U(qe,{type:"primary",onClick:ze},{default:z(()=>[...g[23]||(g[23]=[P(" 确定 ",-1)])]),_:1})),[[Je,["module_monitor:resource:create_dir"]]])]),default:z(()=>[R(De,{model:we,"label-width":"80px"},{default:z(()=>[R(Oe,{label:"文件夹名",required:""},{default:z(()=>[R(Ae,{modelValue:we.dir_name,"onUpdate:modelValue":g[3]||(g[3]=e=>we.dir_name=e),placeholder:"请输入文件夹名称",onKeyup:S(ze,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),R(Q,{modelValue:_e.value,"onUpdate:modelValue":g[8]||(g[8]=e=>_e.value=e),title:"重命名",width:"400px"},{footer:z(()=>[R(qe,{onClick:g[7]||(g[7]=e=>_e.value=!1)},{default:z(()=>[...g[24]||(g[24]=[P("取消",-1)])]),_:1}),L((C(),U(qe,{type:"primary",onClick:Le},{default:z(()=>[...g[25]||(g[25]=[P(" 确定 ",-1)])]),_:1})),[[Je,["module_monitor:resource:rename"]]])]),default:z(()=>[R(De,{model:je,"label-width":"80px"},{default:z(()=>[R(Oe,{label:"新名称",required:""},{default:z(()=>[R(Ae,{modelValue:je.new_name,"onUpdate:modelValue":g[6]||(g[6]=e=>je.new_name=e),placeholder:"请输入新名称",onKeyup:S(Le,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-2d0f5ff0"]]);export{le as default};
|