Files
----/后端源码/yifan.action-ai.cn/index/js/index.D5bzdJup.js

47 lines
14 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{x as e,y as a,h as l,w as t,U as o,V as n,aC as i,aS as u,i as r,aT as d,aU as s,l as c,al as m,am as p,aV as _,aW as f,u as v,ao as y,a9 as h,j as g,k as w,T as k,a1 as b,aX as C,v as x,E as V,D as z}from"./element-plus.C1XeB8_q.js";import{_ as R}from"./index.DSbwPKqQ.js";import{J as $,t as U,aP as T,S as j,_ as B,a1 as q,$ as F,a0 as D,a_ as K,a6 as L,T as S,a9 as A,aw as E,o as M,aa as P,a3 as O,a8 as W,H as G,ay as H,r as I,ak as J,j as X}from"./.pnpm.BudmgPu7.js";import{l as N}from"./index.Cvigsp8N.js";import{_ as Q}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./codemirror.BdleaLZh.js";const Y="/monitor/resource",Z={
/**
* 获取目录列表
* @param query 查询参数
*/
listResource:e=>N({url:`${Y}/list`,method:"get",params:e}),
/**
* 上传文件
* @param formData 文件数据
*/
uploadFile:e=>N({url:`${Y}/upload`,method:"post",data:e,headers:{"Content-Type":"multipart/form-data"}}),
/**
* 下载文件
* @param path 文件路径
*/
downloadFile:e=>N({url:`${Y}/download`,method:"get",params:{path:e},responseType:"blob"}),
/**
* 删除文件或目录
* @param body 文件路径数组
*/
deleteResource:e=>N({url:`${Y}/delete`,method:"delete",data:e}),
/**
* 移动文件或目录
* @param body 移动参数
*/
moveResource:e=>N({url:`${Y}/move`,method:"post",data:e}),
/**
* 复制文件或目录
* @param body 复制参数
*/
copyResource:e=>N({url:`${Y}/copy`,method:"post",data:e}),
/**
* 重命名文件或目录
* @param body 重命名参数
*/
renameResource:e=>N({url:`${Y}/rename`,method:"post",data:e}),
/**
* 创建目录
* @param body 创建目录参数
*/
createDirectory:e=>N({url:`${Y}/create-dir`,method:"post",data:e}),
/**
* 导出资源列表
* @param body 导出条件
*/
exportResource:e=>N({url:`${Y}/export`,method:"post",data:e,responseType:"blob"})},ee={class:"app-container"},ae={class:"search-container"},le={class:"card-header"},te={class:"breadcrumb-container"},oe={class:"data-table__toolbar"},ne={class:"data-table__toolbar--left"},ie={class:"data-table__toolbar--right"},ue={class:"file-name"},re=["onClick"],de={key:0},se={key:1,class:"grid-view"},ce=["onClick"],me={class:"item-icon"},pe={class:"item-name"},_e={key:0,class:"item-size"},fe=Q($({name:"ResourceMonitor",inheritAttrs:!1,__name:"index",setup($){const N=I([]),Q=I(!1),Y=I([]),fe=I([{name:"资源根目录",path:"/"}]),ve=I(!1),ye=I("list"),he=I(0),ge=I(!1),we=I(),ke=I("/"),be=J({page_no:1,page_size:10}),Ce=J({name:void 0,page_no:1,page_size:10}),xe=I(!1),Ve=I(!1),ze=I(!1),Re=I(!1),$e=I(),Ue=I([]),Te=J({dir_name:""}),je=J({new_name:"",old_path:""}),Be=X(()=>{const e={include_hidden:ve.value,page_no:be.page_no,page_size:be.page_size};return ke.value&&"/"!==ke.value&&(e.path=ke.value),Ce.name&&(e.name=Ce.name),e});async function qe(){var e;Q.value=!0;try{const a=null==(e=(await Z.listResource(Be.value)).data)?void 0:e.data;a&&Array.isArray(a.items)?(N.value=a.items,he.value=a.total,void 0!==a.page_no&&(be.page_no=a.page_no),void 0!==a.page_size&&(be.page_size=a.page_size)):(N.value=[],he.value=0)}catch(a){N.value=[],he.value=0}finally{Q.value=!1}}function Fe(){if("/"===ke.value)return void(fe.value=[{name:"资源根目录",path:"/"}]);const e=ke.value.split("/").filter(e=>""!==e);fe.value=[{name:"资源根目录",path:"/"},...e.map((a,l)=>({name:a,path:e.slice(0,l+1).join("/")}))]}function De(e){let a=e.file_url;a&&!a.startsWith("http")&&(a=`${window.location.origin}${a}`),window.open(a,"_blank")}function Ke(e){Y.value=e}function Le(){xe.value=!0,Ue.value=[]}function Se(e,a){Ue.value=a}async function Ae(){if(0!==Ue.value.length)try{Re.value=!0;const e=new FormData;Ue.value.forEach(a=>{e.append("file",a.raw)});const a="/"===ke.value?"":ke.value;e.append("target_path",a),await Z.uploadFile(e),xe.value=!1,qe()}catch(e){}finally{Re.value=!1}else V.warning("请选择要上传的文件")}function Ee(){xe.value=!1,Ue.value=[]}function Me(){Te.dir_name="",Ve.value=!0}async function Pe(){if(Te.dir_name.trim())try{const e="/"===ke.value?"":ke.value;await Z.createDirectory({parent_path:e,dir_name:Te.dir_name.trim()}),Ve.value=!1,qe()}catch(e){}else V.warning("请输入文件夹名称")}async function Oe(){await qe()}async function We(){Ce.page_no=1,await qe()}async function Ge(){we.value.resetFields(),Ce.page_no=1,ge.value=!1,await qe()}function He(){qe()}async function Ie(){if(je.new_name.trim())try{await Z.renameResource({old_path:je.old_path,new_name:je.new_name.trim()}),ze.value=!1,qe()}catch(e){}else V.warning("请输入新名称")}function Je(e){be.page_no=e.page,be.page_size=e.limit,qe()}async function Xe(){if(0!==Y.value.length)try{await z.confirm(`确定要删除选中的 ${Y.value.length} 个文件吗?`,"确认删除",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"});const e=Y.value.map(e=>e.file_url);await Z.deleteResource(e),qe()}catch(e){}else V.warning("请选择要删除的文件")}function Ne(e){if(!e||null===e)return"-";const a=["B","KB","MB","GB","TB"];let l=0,t=e;for(;t>=1024&&l<a.length-1;)t/=1024,l++;return`${t.toFixed(1)} ${a[l]}`}return U(()=>{qe()}),(V,$)=>{const U=a,I=e,J=l,X=t,ge=c,Be=w,Qe=g,Ye=n,Ze=o,ea=i,aa=r,la=u,ta=v,oa=p,na=m,ia=R,ua=k,ra=b,da=x,sa=T("hasPerm"),ca=y;return j(),B("div",ee,[q("div",ae,[F(X,{ref_key:"queryFormRef",ref:we,model:Ce,inline:!0,"label-suffix":":",onSubmit:E(We,["prevent"])},{default:D(()=>[F(I,{prop:"name",label:"关键词"},{default:D(()=>[F(U,{modelValue:Ce.name,"onUpdate:modelValue":$[0]||($[0]=e=>Ce.name=e),placeholder:"请输入文件名或目录名",clearable:"",style:{width:"200px"},onKeyup:K(We,["enter"])},null,8,["modelValue"])]),_:1}),F(I,{class:"search-buttons"},{default:D(()=>[L((j(),S(J,{type:"primary",icon:"search","native-type":"submit"},{default:D(()=>[...$[15]||($[15]=[A(" 查询 ",-1)])]),_:1})),[[sa,["module_monitor:resource:query"]]]),L((j(),S(J,{icon:"refresh",onClick:Ge},{default:D(()=>[...$[16]||($[16]=[A(" 重置 ",-1)])]),_:1})),[[sa,["module_monitor:resource:query"]]])]),_:1})]),_:1},8,["model"])]),F(ua,{class:"data-table"},{header:D(()=>[q("div",le,[q("span",null,[F(ge,{content:"资源文件管理系统: 点击路径可以快速返回上级目录"},{default:D(()=>[F(M(h),{class:"w-4 h-4 mx-1"})]),_:1}),$[17]||($[17]=A(" 文件列表(当前路径) ",-1))]),q("div",te,[$[18]||($[18]=q("span",{class:"breadcrumb-label"},null,-1)),F(Qe,{separator:"/"},{default:D(()=>[(j(!0),B(G,null,H(fe.value,(e,a)=>(j(),S(Be,{key:a,class:O({"is-link":a<fe.value.length-1}),onClick:a=>function(e){ke.value=e.path,Fe(),qe()}(e)},{default:D(()=>[A(P(e.name),1)]),_:2},1032,["class","onClick"]))),128))]),_:1})])])]),footer:D(()=>[F(ia,{total:he.value,"onUpdate:total":$[4]||($[4]=e=>he.value=e),page:be.page_no,"onUpdate:page":$[5]||($[5]=e=>be.page_no=e),limit:be.page_size,"onUpdate:limit":$[6]||($[6]=e=>be.page_size=e),onPagination:Je},null,8,["total","page","limit"])]),default:D(()=>[q("div",oe,[q("div",ne,[F(Ze,{gutter:10},{default:D(()=>[F(Ye,{span:1.5},{default:D(()=>[L((j(),S(J,{type:"success",icon:"plus",onClick:Le},{default:D(()=>[...$[19]||($[19]=[A(" 上传文件 ",-1)])]),_:1})),[[sa,["module_monitor:resource:upload"]]])]),_:1}),F(Ye,{span:1.5},{default:D(()=>[L((j(),S(J,{type:"primary",icon:"folder-add",onClick:Me},{default:D(()=>[...$[20]||($[20]=[A(" 新建文件夹 ",-1)])]),_:1})),[[sa,["module_monitor:resource:create_dir"]]])]),_:1}),F(Ye,{span:1.5},{default:D(()=>[L((j(),S(J,{type:"danger",icon:"delete",disabled:0===Y.value.length,onClick:Xe},{default:D(()=>[...$[21]||($[21]=[A(" 批量删除 ",-1)])]),_:1},8,["disabled"])),[[sa,["module_monitor:resource:delete"]]])]),_:1})]),_:1})]),q("div",ie,[F(Ze,{gutter:10},{default:D(()=>[F(Ye,{span:1.5},{default:D(()=>[L((j(),S(ea,{modelValue:ve.value,"onUpdate:modelValue":$[1]||($[1]=e=>ve.value=e),onChange:He},{default:D(()=>[...$[22]||($[22]=[A(" 显示隐藏文件 ",-1)])]),_:1},8,["modelValue"])),[[sa,["module_monitor:resource:query"]]])]),_:1}),F(Ye,{span:1.5},{default:D(()=>[F(la,null,{default:D(()=>[L((j(),S(J,{type:"list"===ye.value?"primary":"",onClick:$[2]||($[2]=e=>ye.value="list")},{default:D(()=>[F(aa,null,{default:D(()=>[F(M(d))]),_:1})]),_:1},8,["type"])),[[sa,["module_monitor:resource:query"]]]),L((j(),S(J,{type:"grid"===ye.value?"primary":"",onClick:$[3]||($[3]=e=>ye.value="grid")},{default:D(()=>[F(aa,null,{default:D(()=>[F(M(s))]),_:1})]),_:1},8,["type"])),[[sa,["module_monitor:resource:query"]]])]),_:1})]),_:1}),F(Ye,{span:1.5},{default:D(()=>[F(ge,{content:"刷新"},{default:D(()=>[L(F(J,{type:"primary",icon:"refresh",circle:"",onClick:Oe},null,512),[[sa,["module_monitor:resource:query"]]])]),_:1})]),_:1})]),_:1})])]),"list"===ye.value?L((j(),S(na,{key:0,ref:"dataTableRef",data:N.value,"row-key":"file_url",class:"data-table__content",height:"500","max-height":"500",border:"",stripe:"",onSelectionChange:Ke},{empty:D(()=>[F(ta,{"image-size":80,description:"暂无数据"})]),default:D(()=>[F(oa,{type:"selection","min-width":"40",align:"center"}),F(oa,{type:"index",fixed:"",label:"序号","min-width":"50"},{default:D(e=>[A(P((Ce.page_no-1)*Ce.page_size+e.$index+1),1)]),_:1}),F(oa,{label:"名称",prop:"name","min-width":"200"},{default:D(({row:e})=>[q("div",ue,[F(aa,{class:"file-icon"},{default:D(()=>[e.is_dir?(j(),S(M(_),{key:0})):(j(),S(M(f),{key:1}))]),_:2},1024),q("span",{class:O({"file-name-clickable":!0}),onClick:a=>function(e){e.is_dir?("/"===ke.value?ke.value=e.name:ke.value=ke.value+"/"+e.name,Fe(),qe()):De(e)}(e)},P(e.name),9,re)])]),_:1}),F(oa,{label:"大小",prop:"size","min-width":"120",align:"center"},{default:D(({row:e})=>[e.is_dir?W("",!0):(j(),B("span",de,P(Ne(e.size)),1))]),_:1}),F(oa,{label:"修改时间",prop:"modified_time","min-width":"180",sortable:""}),F(oa,{fixed:"right",label:"操作",align:"center","min-width":"200",class:"search-buttons"},{default:D(({row:e})=>[e.is_dir?W("",!0):L((j(),S(J,{key:0,type:"success",size:"small",link:"",icon:"download",onClick:a=>async function(e){try{const a=(await Z.downloadFile(e.file_url)).data,l=window.URL.createObjectURL(a),t=document.createElement("a");t.href=l,t.download=e.name,document.body.appendChild(t),t.click(),document.body.removeChild(t),window.URL.revokeObjectURL(l)}catch(a){}}(e)},{default:D(()=>[...$[23]||($[23]=[A(" 下载 ",-1)])]),_:1},8,["onClick"])),[[sa,["module_monitor:resource:download"]]]),L((j(),S(J,{type:"primary",size:"small",link:"",icon:"edit",onClick:a=>{return l=e,je.old_path=l.file_url,je.new_name=l.name,void(ze.value=!0);var l}},{default:D(()=>[...$[24]||($[24]=[A(" 重命名 ",-1)])]),_:1},8,["onClick"])),[[sa,["module_monitor:resource:rename"]]]),L((j(),S(J,{type:"danger",size:"small",link:"",icon:"delete",onClick:a=>async function(e){try{await z.confirm(`确定要删除 ${e.name} 吗?`,"确认删除",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),await Z.deleteResource([e.file_url]),qe()}catch(a){}}(e)},{default:D(()=>[...$[25]||($[25]=[A(" 删除 ",-1)])]),_:1},8,["onClick"])),[[sa,["module_monitor:resource:delete"]]])]),_:1})]),_:1},8,["data"])),[[ca,Q.value]]):(j(),B("div",se,[(j(!0),B(G,null,H(N.value,e=>(j(),B("div",{key:e.file_url,class:"grid-item",onClick:a=>function(e){e.is_dir?("/"===ke.value?ke.value=e.name:ke.value=ke.value+"/"+e.name,Fe(),qe()):De(e)}(e)},[q("div",me,[e.is_dir?(j(),S(aa,{key:0,size:"48"},{default:D(()=>[F(M(_))]),_:1})):(j(),S(aa,{key:1,size:"48"},{default:D(()=>[F(M(f))]),_:1}))]),q("div",pe,P(e.name),1),e.is_dir?W("",!0):(j(),B("div",_e,P(Ne(e.size)),1))],8,ce))),128))]))]),_:1}),F(da,{modelValue:xe.value,"onUpdate:modelValue":$[8]||($[8]=e=>xe.value=e),title:"上传文件",width:"500px","before-close":Ee},{footer:D(()=>[F(J,{onClick:$[7]||($[7]=e=>xe.value=!1)},{default:D(()=>[...$[28]||($[28]=[A("取消",-1)])]),_:1}),L((j(),S(J,{type:"primary",loading:Re.value,onClick:Ae},{default:D(()=>[...$[29]||($[29]=[A(" 确定上传 ",-1)])]),_:1},8,["loading"])),[[sa,["module_monitor:resource:upload"]]])]),default:D(()=>[F(ra,{ref_key:"uploadRef",ref:$e,"auto-upload":!1,multiple:!0,"file-list":Ue.value,drag:"",onChange:Se},{tip:D(()=>[...$[26]||($[26]=[q("div",{class:"el-upload__tip",style:{color:"red"}}," 不支持多文件上传单个文件不超过100MB多文件上传取最后一个文件上传 ",-1)])]),default:D(()=>[F(aa,{class:"el-icon--upload"},{default:D(()=>[F(M(C))]),_:1}),$[27]||($[27]=q("div",{class:"el-upload__text"},[A(" 将文件拖到此处,或 "),q("em",null,"点击上传")],-1))]),_:1},8,["file-list"])]),_:1},8,["modelValue"]),F(da,{modelValue:Ve.value,"onUpdate:modelValue":$[11]||($[11]=e=>Ve.value=e),title:"新建文件夹",width:"400px"},{footer:D(()=>[F(J,{onClick:$[10]||($[10]=e=>Ve.value=!1)},{default:D(()=>[...$[30]||($[30]=[A("取消",-1)])]),_:1}),L((j(),S(J,{type:"primary",onClick:Pe},{default:D(()=>[...$[31]||($[31]=[A(" 确定 ",-1)])]),_:1})),[[sa,["module_monitor:resource:create_dir"]]])]),default:D(()=>[F(X,{model:Te,"label-width":"80px"},{default:D(()=>[F(I,{label:"文件夹名",required:""},{default:D(()=>[F(U,{modelValue:Te.dir_name,"onUpdate:modelValue":$[9]||($[9]=e=>Te.dir_name=e),placeholder:"请输入文件夹名称",onKeyup:K(Pe,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),F(da,{modelValue:ze.value,"onUpdate:modelValue":$[14]||($[14]=e=>ze.value=e),title:"重命名",width:"400px"},{footer:D(()=>[F(J,{onClick:$[13]||($[13]=e=>ze.value=!1)},{default:D(()=>[...$[32]||($[32]=[A("取消",-1)])]),_:1}),L((j(),S(J,{type:"primary",onClick:Ie},{default:D(()=>[...$[33]||($[33]=[A(" 确定 ",-1)])]),_:1})),[[sa,["module_monitor:resource:rename"]]])]),default:D(()=>[F(X,{model:je,"label-width":"80px"},{default:D(()=>[F(I,{label:"新名称",required:""},{default:D(()=>[F(U,{modelValue:je.new_name,"onUpdate:modelValue":$[12]||($[12]=e=>je.new_name=e),placeholder:"请输入新名称",onKeyup:K(Ie,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-3f5db10f"]]);export{fe as default};