1"use strict";(self.webpackChunknew_dust_fe=self.webpackChunknew_dust_fe||[]).push([[1866],{91866:function(e,a,t){t.r(a),t.d(a,{default:function(){return V}}),t(16274),t(24576),t(75447),t(39682),t(5042),t(42710),t(80625),t(16460),t(4087);var l=t(95395),o=t(91091),i=t(59593),n=t(11675),u=t(25673),s=t(22093),d=t(63835),c=t(10637),r=t(81307);const v={class:"resource-manager"},p={class:"page-header"},m=["disabled"],k={class:"view-tabs"},g={class:"toolbar"},y={class:"search-box"},f={class:"result-count"},L={key:0,class:"progress-track"},w={key:1,class:"state-panel"},b={key:2,class:"state-panel"},h={key:3,class:"resource-grid"},C={class:"preview"},E=["src","alt"],$=["src"],S={key:2,class:"audio-preview"},_=["src"],R={key:1,class:"deleted-preview"},A={class:"type-badge"},K={class:"card-body"},I=["title"],X=["title"],N={key:0,class:"card-actions"},T=["onClick"],U=["onClick"],x=["disabled","onClick"],F=["disabled","onClick"],P={key:1,class:"trash-actions"},D=["disabled","onClick"],W=["disabled","onClick"],B={key:4,class:"pagination-wrap"};var M={__name:"index",setup(e){const a={image:"image/jpeg,image/png,image/gif,image/bmp,image/webp",audio:"audio/mpeg,audio/wav,audio/ogg,audio/mp4,.mp3,.wav,.ogg,.m4a",video:"video/mp4,video/webm,video/ogg,.mp4,.webm,.ogv"},t=(0,n.KR)(null),M=(0,n.KR)([]),V=(0,n.KR)(0),j=(0,n.KR)(1),z=(0,n.KR)(!1),O=(0,n.KR)(!1),Q=(0,n.KR)(0),G=(0,n.KR)(""),H=(0,n.KR)(!1),J=(0,n.KR)("all"),q=(0,n.KR)("updatedAt"),Y=(0,n.KR)("desc"),Z=(0,n.KR)(""),ee=(0,n.KR)(""),ae=(0,l.EW)((()=>Math.max(1,Math.ceil(V.value/24))));let te;function le(e){return`${e.type}/${e.fileId}`}async function oe(){z.value=!0;try{const a=await(e={type:J.value,search:ee.value,sort:q.value,order:Y.value,deleted:H.value,page:j.value,pageSize:24},(0,c.A)({url:"/storage/resources",method:"GET",params:e}));if(200!==a.code)throw new Error(a.data||"å 载失败");M.value=a.data.items||[],V.value=a.data.total||0,j.value>ae.value&&(j.value=ae.value)}catch(e){(0,r.Su)("èµæºå 载失败",e.message||String(e))}finally{z.value=!1}var e}function ie(e){H.value!==e&&(H.value=e)}function ne(){var e;null===(e=t.value)||void 0===e||e.click()}function ue(e){if(e.type.startsWith("image/"))return"image";if(e.type.startsWith("audio/"))return"audio";if(e.type.startsWith("video/"))return"video";const a=e.name.split(".").pop().toLowerCase();return["jpg","jpeg","png","gif","bmp","webp"].includes(a)?"image":["mp3","wav","m4a"].includes(a)?"audio":"ogg"===a?e.type.startsWith("video/")?"video":"audio":["mp4","webm","ogv"].includes(a)?"video":""}async function se(e){var a;const t=null===(a=e.target.files)||void 0===a?void 0:a[0];if(e.target.value="",!t)return;const l=ue(t);if(!l)return void(0,r.Su)("䏿¯æçæä»¶ç±»å");const o=new FormData;o.append(l,t),O.value=!0,Q.value=0;const i=e=>{e.total&&(Q.value=Math.round(100*e.loaded/e.total))};try{"image"===l?await(0,s.V6)(o,i):"video"===l?await(0,d.t)(o,i):await(n=o,u=i,(0,c.A)({url:"/storage/upload-audio",method:"POST",data:n,timeout:3e5,onUploadProgress:u})),(0,r.Su)("èµæºä¸ä¼ æå"),j.value=1,await oe()}catch(e){(0,r.Su)("èµæºä¸ä¼ 失败",e.message||String(e))}finally{O.value=!1,Q.value=0}var n,u}async function de(e,a,t){G.value=le(e);try{const e=await a();if(200!==e.code)throw new Error(e.data||"æä½å¤±è´¥");(0,r.Su)(t),await oe()}catch(e){(0,r.Su)("èµæºæä½å¤±è´¥",e.message||String(e))}finally{G.value=""}}function ce(e){return`${e.url}?v=${new Date(e.updatedAt).getTime()}`}function re(e){return{image:"å¾ç",audio:"é³é¢",video:"è§é¢"}[e]||e}function ve(e){return e?new Date(e).toLocaleString("zh-CN",{hour12:!1}):"â"}return(0,l.wB)(Z,(e=>{clearTimeout(te),te=setTimeout((()=>{ee.value=e.trim(),j.value=1,oe()}),300)})),(0,l.wB)([J,q,Y,H],(()=>{j.value=1,oe()})),(0,l.sV)(oe),(0,l.xo)((()=>clearTimeout(te))),(e,n)=>((0,l.uX)(),(0,l.CE)("section",v,[(0,l.Lk)("header",p,[n[8]||(n[8]=(0,l.Lk)("div",null,[(0,l.Lk)("h2",null,"èµæºç®¡ç"),(0,l.Lk)("p",null,"ç»ä¸ç®¡çå¾çãé³é¢åè§é¢ãæ¿æ¢èµæºä¸ä¼æ¹åå访é®é¾æ¥ã")],-1)),(0,l.Lk)("button",{class:"primary-button",disabled:O.value,onClick:ne},[n[7]||(n[7]=(0,l.Lk)("span",{class:"iconfont icon-upload"},null,-1)),(0,l.eW)(" "+(0,o.v_)(O.value?`ä¸ä¼ ä¸ ${Q.value}%`:"ä¸ä¼ èµæº"),1)],8,m),(0,l.Lk)("input",{ref_key:"uploadInput",ref:t,class:"hidden-input",type:"file",accept:"image/jpeg,image/png,image/gif,image/bmp,image/webp,audio/mpeg,audio/wav,audio/ogg,audio/mp4,video/mp4,video/webm,video/ogg",onChange:se},null,544)]),(0,l.Lk)("div",k,[(0,l.Lk)("button",{class:(0,o.C4)({active:!H.value}),onClick:n[0]||(n[0]=e=>ie(!1))},"å½åèµæº",2),(0,l.Lk)("button",{class:(0,o.C4)({active:H.value}),onClick:n[1]||(n[1]=e=>ie(!0))},"åæ¶ç«",2)]),(0,l.Lk)("div",g,[(0,l.Lk)("label",y,[n[9]||(n[9]=(0,l.Lk)("span",{class:"iconfont icon-search"},null,-1)),(0,l.bo)((0,l.Lk)("input",{"onUpdate:modelValue":n[2]||(n[2]=e=>Z.value=e),type:"search",placeholder:"æç´¢æ¾ç¤ºåãæºæä»¶åæ fileId"},null,512),[[i.Jo,Z.value]])]),(0,l.bo)((0,l.Lk)("select",{"onUpdate:modelValue":n[3]||(n[3]=e=>J.value=e),"aria-label":"èµæºç±»å"},n[10]||(n[10]=[(0,l.Lk)("option",{value:"all"},"å
¨é¨ç±»å",-1),(0,l.Lk)("option",{value:"image"},"å¾ç",-1),(0,l.Lk)("option",{value:"audio"},"é³é¢",-1),(0,l.Lk)("option",{value:"video"},"è§é¢",-1)]),512),[[i.u1,J.value]]),(0,l.bo)((0,l.Lk)("select",{"onUpdate:modelValue":n[4]||(n[4]=e=>q.value=e),"aria-label":"æåºå段"},n[11]||(n[11]=[(0,l.Lk)("option",{value:"updatedAt"},"æ´æ°æ¶é´",-1),(0,l.Lk)("option",{value:"createdAt"},"å建æ¶é´",-1),(0,l.Lk)("option",{value:"name"},"åç§°",-1),(0,l.Lk)("option",{value:"type"},"ç±»å",-1)]),512),[[i.u1,q.value]]),(0,l.Lk)("button",{class:"order-button",onClick:n[5]||(n[5]=e=>Y.value="desc"===Y.value?"asc":"desc")},(0,o.v_)("desc"===Y.value?"éåº â":"ååº â"),1),(0,l.Lk)("span",f,"å
± "+(0,o.v_)(V.value)+" 项",1)]),O.value?((0,l.uX)(),(0,l.CE)("div",L,[(0,l.Lk)("span",{style:(0,o.Tr)({width:`${Q.value}%`})},null,4)])):(0,l.Q3)("",!0),z.value?((0,l.uX)(),(0,l.CE)("div",w,"èµæºå è½½ä¸â¦")):0===M.value.length?((0,l.uX)(),(0,l.CE)("div",b,(0,o.v_)(H.value?"åæ¶ç«ä¸ºç©º":"æ²¡ææ¾å°èµæº"),1)):((0,l.uX)(),(0,l.CE)("div",h,[((0,l.uX)(!0),(0,l.CE)(l.FK,null,(0,l.pI)(M.value,(e=>{return(0,l.uX)(),(0,l.CE)("article",{key:`${e.type}/${e.fileId}`,class:"resource-card"},[(0,l.Lk)("div",C,[H.value?((0,l.uX)(),(0,l.CE)("div",R,[(0,l.Lk)("span",{class:(0,o.C4)(["iconfont",(u=e.type,{image:"icon-image",audio:"icon-music",video:"icon-folder"}[u]||"icon-folder")])},null,2),n[13]||(n[13]=(0,l.Lk)("span",null,"å·²å é¤",-1))])):((0,l.uX)(),(0,l.CE)(l.FK,{key:0},["image"===e.type?((0,l.uX)(),(0,l.CE)("img",{key:0,src:ce(e),alt:e.displayName,loading:"lazy"},null,8,E)):"video"===e.type?((0,l.uX)(),(0,l.CE)("video",{key:1,src:ce(e),controls:"",preload:"metadata"},null,8,$)):((0,l.uX)(),(0,l.CE)("div",S,[n[12]||(n[12]=(0,l.Lk)("span",{class:"iconfont icon-music"},null,-1)),(0,l.Lk)("audio",{src:ce(e),controls:"",preload:"metadata"},null,8,_)]))],64)),(0,l.Lk)("span",A,(0,o.v_)(re(e.type)),1)]),(0,l.Lk)("div",K,[(0,l.Lk)("h3",{title:e.displayName},(0,o.v_)(e.displayName),9,I),(0,l.Lk)("p",{class:"source-name",title:e.sourceName},(0,o.v_)(e.sourceName),9,X),(0,l.Lk)("dl",null,[(0,l.Lk)("div",null,[n[14]||(n[14]=(0,l.Lk)("dt",null,"æ ¼å¼",-1)),(0,l.Lk)("dd",null,(0,o.v_)((i=e.mimeType,(i||"æªç¥").split("/").pop().toUpperCase())),1)]),(0,l.Lk)("div",null,[n[15]||(n[15]=(0,l.Lk)("dt",null,"大å°",-1)),(0,l.Lk)("dd",null,(0,o.v_)((t=e.size,Number.isFinite(t)?t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KB`:`${(t/1024/1024).toFixed(1)} MB`:"â")),1)]),(0,l.Lk)("div",null,[n[16]||(n[16]=(0,l.Lk)("dt",null,"å建",-1)),(0,l.Lk)("dd",null,(0,o.v_)(ve(e.createdAt)),1)]),(0,l.Lk)("div",null,[(0,l.Lk)("dt",null,(0,o.v_)(H.value?"å é¤":"æ´æ°"),1),(0,l.Lk)("dd",null,(0,o.v_)(ve(H.value?e.deletedAt:e.updatedAt)),1)])]),H.value?((0,l.uX)(),(0,l.CE)("div",P,[(0,l.Lk)("button",{disabled:G.value===le(e),onClick:a=>async function(e){await de(e,(()=>{return a=e.type,t=e.fileId,(0,c.A)({url:`/storage/resources/${a}/${encodeURIComponent(t)}/restore`,method:"POST"});var a,t}),"èµæºå·²æ¢å¤")}(e)},"æ¢å¤",8,D),(0,l.Lk)("button",{class:"danger-text",disabled:G.value===le(e),onClick:a=>async function(e){await(0,r.io)(`æ°¸ä¹
å é¤ã${e.displayName}ãï¼æ¤æä½æ æ³æ¤éã`)&&await de(e,(()=>{return a=e.type,t=e.fileId,(0,c.A)({url:`/storage/resources/${a}/${encodeURIComponent(t)}/permanent`,method:"DELETE"});var a,t}),"èµæºå·²æ°¸ä¹
å é¤")}(e)},"æ°¸ä¹
å é¤",8,W)])):((0,l.uX)(),(0,l.CE)("div",N,[(0,l.Lk)("button",{title:"å¤å¶é¾æ¥",onClick:a=>async function(e){try{await navigator.clipboard.writeText(new URL(e.url,window.location.origin).href),(0,r.Su)("èµæºé¾æ¥å·²å¤å¶")}catch(e){(0,r.Su)("å¤å¶å¤±è´¥",e.message||String(e))}}(e)},n[17]||(n[17]=[(0,l.Lk)("span",{class:"iconfont icon-copy"},null,-1)]),8,T),(0,l.Lk)("button",{title:"ä¿®æ¹åç§°",onClick:a=>async function(e){var a;const t=null===(a=window.prompt("请è¾å
¥æ°çèµæºåç§°",e.displayName))||void 0===a?void 0:a.trim();if(t&&t!==e.displayName)try{const a=await((e,a,t)=>(0,c.A)({url:`/storage/resources/${e}/${encodeURIComponent(a)}`,method:"PATCH",data:{displayName:t}}))(e.type,e.fileId,t);
1if(200!==a.code)throw new Error(a.data||"ä¿®æ¹å¤±è´¥");e.displayName=t,(0,r.Su)("èµæºåç§°å·²æ´æ°")}catch(e){(0,r.Su)("åç§°ä¿®æ¹å¤±è´¥",e.message||String(e))}}(e)},n[18]||(n[18]=[(0,l.Lk)("span",{class:"iconfont icon-write"},null,-1)]),8,U),(0,l.Lk)("button",{title:"æ¿æ¢èµæº",disabled:G.value===le(e),onClick:t=>function(e){const t=document.createElement("input");t.type="file",t.accept=a[e.type],t.addEventListener("change",(()=>{var a;const l=null===(a=t.files)||void 0===a?void 0:a[0];l&&async function(e,a){if(ue(a)!==e.type)return void(0,r.Su)("æ¿æ¢å¤±è´¥",`åªè½ä½¿ç¨${re(e.type)}æ¿æ¢å½åèµæº`);if(!await(0,r.io)(`ç¡®è®¤æ¿æ¢ã${e.displayName}ãï¼å龿¥ä¿æä¸åã`))return;const t=new FormData;t.append("file",a),G.value=le(e),O.value=!0,Q.value=0;try{const a=await(l=e.type,o=e.fileId,i=t,n=e=>{e.total&&(Q.value=Math.round(100*e.loaded/e.total))},(0,c.A)({url:`/storage/resources/${l}/${encodeURIComponent(o)}/replace`,method:"POST",data:i,timeout:3e5,onUploadProgress:n}));if(200!==a.code)throw new Error(a.data||"æ¿æ¢å¤±è´¥");(0,r.Su)("èµæºæ¿æ¢æå"),await oe()}catch(e){(0,r.Su)("èµæºæ¿æ¢å¤±è´¥",e.message||String(e))}finally{G.value="",O.value=!1,Q.value=0}var l,o,i,n}(e,l)}),{once:!0}),t.click()}(e)},n[19]||(n[19]=[(0,l.Lk)("span",{class:"iconfont icon-upload"},null,-1)]),8,x),(0,l.Lk)("button",{class:"danger",title:"ç§»å
¥åæ¶ç«",disabled:G.value===le(e),onClick:a=>async function(e){await(0,r.io)(`ç¡®å®å é¤ã${e.displayName}ãï¼å·²æé¡µé¢å¼ç¨å°ç«å³å¤±æï¼å¯ä»åæ¶ç«æ¢å¤ã`)&&await de(e,(()=>{return a=e.type,t=e.fileId,(0,c.A)({url:`/storage/resources/${a}/${encodeURIComponent(t)}`,method:"DELETE"});var a,t}),"èµæºå·²ç§»å
¥åæ¶ç«")}(e)},n[20]||(n[20]=[(0,l.Lk)("span",{class:"iconfont icon-delete"},null,-1)]),8,F)]))])]);var t,i,u})),128))])),ae.value>1?((0,l.uX)(),(0,l.CE)("div",B,[(0,l.bF)(u.A,{"current-page":j.value,"onUpdate:currentPage":[n[6]||(n[6]=e=>j.value=e),oe],total:ae.value},null,8,["current-page","total"])])):(0,l.Q3)("",!0)]))}},V=(0,t(91512).A)(M,[["__scopeId","data-v-3d1ad5c4"]])}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.