From 61de3a8c2cf3166025c83f7d4be999438edca822 Mon Sep 17 00:00:00 2001 From: chuzhongzai Date: Sat, 24 Feb 2024 10:19:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E6=96=87=E4=BB=B6=E6=97=B6=E8=83=BD=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8D=B4=E6=97=A0=E6=B3=95=E5=AF=BC=E5=85=A5=E7=9A=84bug;?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96=E5=85=AC=E7=BD=91ip?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../com/lion/sns/service/FileService.java | 2 +- src/main/java/com/lion/sns/util/IoUtil.java | 40 +++++++++++++++--- src/main/resources/sns.db | Bin 40960 -> 40960 bytes src/main/resources/static/index.js | 2 +- 5 files changed, 37 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 1bec7dd..96f1033 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,7 @@ cn.hutool hutool-all - 5.8.20 + 5.8.26 diff --git a/src/main/java/com/lion/sns/service/FileService.java b/src/main/java/com/lion/sns/service/FileService.java index 732d1db..56dde97 100644 --- a/src/main/java/com/lion/sns/service/FileService.java +++ b/src/main/java/com/lion/sns/service/FileService.java @@ -1189,7 +1189,7 @@ public class FileService { if(storagePath.startsWith(file.getParentFile().getPath())) fileNode.setPath(""); else - fileNode.setPath(file.getParentFile().getPath().replace(storagePath, "")); + fileNode.setPath(file.getParentFile().getPath().replace(storagePath, "") + "/"); response.success(objectMapper.valueToTree(fileNode)); } else { ShareFileQueryMessage shareFileQueryMessage = new ShareFileQueryMessage(); diff --git a/src/main/java/com/lion/sns/util/IoUtil.java b/src/main/java/com/lion/sns/util/IoUtil.java index dc45bf6..a85241b 100644 --- a/src/main/java/com/lion/sns/util/IoUtil.java +++ b/src/main/java/com/lion/sns/util/IoUtil.java @@ -3,7 +3,6 @@ package com.lion.sns.util; import cn.hutool.core.net.NetUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.URLUtil; -import cn.hutool.system.SystemUtil; import cn.hutool.system.oshi.CpuInfo; import cn.hutool.system.oshi.OshiUtil; import com.lion.sns.message.StatusMessage; @@ -17,14 +16,15 @@ import org.springframework.http.HttpHeaders; import oshi.hardware.*; import oshi.software.os.OperatingSystem; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.IOException; -import java.io.RandomAccessFile; +import java.io.*; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; import java.util.List; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; +import java.util.regex.Pattern; @Slf4j @Data @@ -103,7 +103,16 @@ public class IoUtil { public static PairMessage generatePairMessage(){ PairMessage pairMessage = new PairMessage(); - pairMessage.setIp(networkIF.getIPv4addr()[0].split("/")[0]); + String ip = networkIF.getIPv4addr()[0].split("/")[0]; + String privateIPPattern = "(^10\\.)|(^172\\.1[6-9]\\.)|(^172\\.2[0-9]\\.)|(^172\\.3[0-1]\\.)|(^192\\.168\\.)"; + if(Pattern.compile(privateIPPattern).matcher(ip).find()) + try { + ip = getPublicIP(); + }catch (IOException | URISyntaxException e){ + log.info("当前机器网卡为内网ip且无法获取公网ip,程序退出"); + Runtime.getRuntime().exit(1); + } + pairMessage.setIp(ip); pairMessage.setHostname(NetUtil.getLocalHostName()); OperatingSystem os = OshiUtil.getOs(); @@ -117,6 +126,25 @@ public class IoUtil { return pairMessage; } + public static String getPublicIP() throws IOException, URISyntaxException { + // 通过访问一个提供公网IP查询的服务,例如 httpbin.org + URL url = new URI("https://httpbin.org/ip").toURL(); + BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); + + // 读取返回的 JSON 数据 + StringBuilder response = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) { + response.append(line); + } + + // 从返回的 JSON 数据中提取公网IP + String json = response.toString(); + int startIndex = json.indexOf("\"origin\":") + 10; + int endIndex = json.indexOf("\"", startIndex + 1); + return json.substring(startIndex + 1, endIndex); + } + public static StatusMessage generateLoadMessage(int id, String path){ StatusMessage statusMessage = new StatusMessage(); statusMessage.setId(id); diff --git a/src/main/resources/sns.db b/src/main/resources/sns.db index f2e04ec126a0100350ead50f041d041966b84db8..3ebe8388f0c8c7b86fb9e346028181c2e2504037 100644 GIT binary patch delta 448 zcmZoTz|?SnX@WFk-b5K^#=MOQOZa&h`M)sme*qE<44j(<1#a?Beksq*!_6$qSzJ_< zm|b3Ku}Oj5fRl;ek8d{bW8N^J8du)Qp|O2hKpi_6)YXf{GdUR<7+8&2Sq;sN^b9Ta zj4kyH%`8(=lQI+Y^gz_)f>=F9i^+@Q)l7}dES)12oC87?92AW7Oby&Us+bsiPi=1P z)X&JzP1P^XD=yYAF3B%SOi$HkU>RAr0By%`ye z85j&%S&a7 z`P~}%7};c1SsOE9el#@EGc>i-v#``NHD~PY=$DlB&9BPL$w|~V)iY4g2+zz*$uBQf z@C#8eG|)4!RtWbGH#3?1rcP7IIim>VZVNL#13eQX69ZrXSSSQ1rX?0->YEyy>lvGE zYG~qTWS-pIZ^YsNbjReK{oWjm{3jXsPx99QL$jEFa{YWSK~qL{*+>Qs4tTIn?wv2e TryHJGlA-IIUzDm>m017)67GA` delta 394 zcmZoTz|?SnX@WGP-$WT_M!$^-OZa&h1Q;0jzwm!yU|`_fEGTf3fAULtZXO_yr?|`@ zF~vOFbdv(R0Ve~$AKz@gF5WPp8du)Qp|O1|pRB#SChNz`^8*!6Wl$9?7Wd}lv}RzK zyeh7gm!BCV3cY6nv?I()=>(t||e((t={exports:{}}).exports,t),t.exports);var Uue=pO((uo,co * vue-router v4.2.5 * (c) 2023 Eduardo San Martin Morote * @license MIT - */const ts=typeof window<"u";function kse(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const Kt=Object.assign;function th(e,t){const n={};for(const o in t){const r=t[o];n[o]=jo(r)?r.map(e):e(r)}return n}const Vi=()=>{},jo=Array.isArray,Ese=/\/$/,$se=e=>e.replace(Ese,"");function nh(e,t,n="/"){let o,r={},l="",a="";const s=t.indexOf("#");let u=t.indexOf("?");return s=0&&(u=-1),u>-1&&(o=t.slice(0,u),l=t.slice(u+1,s>-1?s:t.length),r=e(l)),s>-1&&(o=o||t.slice(0,s),a=t.slice(s,t.length)),o=Nse(o??t,n),{fullPath:o+(l&&"?")+l+a,path:o,query:r,hash:a}}function Tse(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function zw(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Ose(e,t,n){const o=t.matched.length-1,r=n.matched.length-1;return o>-1&&o===r&&js(t.matched[o],n.matched[r])&&XT(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function js(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function XT(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!xse(e[n],t[n]))return!1;return!0}function xse(e,t){return jo(e)?Kw(e,t):jo(t)?Kw(t,e):e===t}function Kw(e,t){return jo(t)?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function Nse(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),r=o[o.length-1];(r===".."||r===".")&&o.push("");let l=n.length-1,a,s;for(a=0;a1&&l--;else break;return n.slice(0,l).join("/")+"/"+o.slice(a-(a===o.length?1:0)).join("/")}var bu;(function(e){e.pop="pop",e.push="push"})(bu||(bu={}));var Hi;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Hi||(Hi={}));function Mse(e){if(!e)if(ts){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),$se(e)}const Rse=/^[^#]+#/;function Ise(e,t){return e.replace(Rse,"#")+t}function Pse(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}const Jf=()=>({left:window.pageXOffset,top:window.pageYOffset});function Ase(e){let t;if("el"in e){const n=e.el,o=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=Pse(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Ww(e,t){return(history.state?history.state.position-t:-1)+e}const Gv=new Map;function Lse(e,t){Gv.set(e,t)}function Fse(e){const t=Gv.get(e);return Gv.delete(e),t}let Dse=()=>location.protocol+"//"+location.host;function JT(e,t){const{pathname:n,search:o,hash:r}=t,l=e.indexOf("#");if(l>-1){let s=r.includes(e.slice(l))?e.slice(l).length:1,u=r.slice(s);return u[0]!=="/"&&(u="/"+u),zw(u,"")}return zw(n,e)+o+r}function Bse(e,t,n,o){let r=[],l=[],a=null;const s=({state:p})=>{const h=JT(e,location),m=n.value,v=t.value;let w=0;if(p){if(n.value=h,t.value=p,a&&a===m){a=null;return}w=v?p.position-v.position:0}else o(h);r.forEach(g=>{g(n.value,m,{delta:w,type:bu.pop,direction:w?w>0?Hi.forward:Hi.back:Hi.unknown})})};function u(){a=n.value}function c(p){r.push(p);const h=()=>{const m=r.indexOf(p);m>-1&&r.splice(m,1)};return l.push(h),h}function f(){const{history:p}=window;p.state&&p.replaceState(Kt({},p.state,{scroll:Jf()}),"")}function d(){for(const p of l)p();l=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:u,listen:c,destroy:d}}function jw(e,t,n,o=!1,r=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:r?Jf():null}}function Vse(e){const{history:t,location:n}=window,o={value:JT(e,n)},r={value:t.state};r.value||l(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function l(u,c,f){const d=e.indexOf("#"),p=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+u:Dse()+e+u;try{t[f?"replaceState":"pushState"](c,"",p),r.value=c}catch(h){console.error(h),n[f?"replace":"assign"](p)}}function a(u,c){const f=Kt({},t.state,jw(r.value.back,u,r.value.forward,!0),c,{position:r.value.position});l(u,f,!0),o.value=u}function s(u,c){const f=Kt({},r.value,t.state,{forward:u,scroll:Jf()});l(f.current,f,!0);const d=Kt({},jw(o.value,u,null),{position:f.position+1},c);l(u,d,!1),o.value=u}return{location:o,state:r,push:s,replace:a}}function Hse(e){e=Mse(e);const t=Vse(e),n=Bse(e,t.state,t.location,t.replace);function o(l,a=!0){a||n.pauseListeners(),history.go(l)}const r=Kt({location:"",base:e,go:o,createHref:Ise.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function zse(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Hse(e)}function Kse(e){return typeof e=="string"||e&&typeof e=="object"}function ZT(e){return typeof e=="string"||typeof e=="symbol"}const el={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},QT=Symbol("");var Uw;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Uw||(Uw={}));function Us(e,t){return Kt(new Error,{type:e,[QT]:!0},t)}function Er(e,t){return e instanceof Error&&QT in e&&(t==null||!!(e.type&t))}const qw="[^/]+?",Wse={sensitive:!1,strict:!1,start:!0,end:!0},jse=/[.+*?^${}()[\]/\\]/g;function Use(e,t){const n=Kt({},Wse,t),o=[];let r=n.start?"^":"";const l=[];for(const c of e){const f=c.length?[]:[90];n.strict&&!c.length&&(r+="/");for(let d=0;dt.length?t.length===1&&t[0]===80?1:-1:0}function Gse(e,t){let n=0;const o=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const Yse={type:0,value:""},Xse=/[a-zA-Z0-9_]/;function Jse(e){if(!e)return[[]];if(e==="/")return[[Yse]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${n})/"${c}": ${h}`)}let n=0,o=n;const r=[];let l;function a(){l&&r.push(l),l=[]}let s=0,u,c="",f="";function d(){c&&(n===0?l.push({type:0,value:c}):n===1||n===2||n===3?(l.length>1&&(u==="*"||u==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),l.push({type:1,value:c,regexp:f,repeatable:u==="*"||u==="+",optional:u==="*"||u==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=u}for(;s{a(_)}:Vi}function a(f){if(ZT(f)){const d=o.get(f);d&&(o.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(a),d.alias.forEach(a))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&o.delete(f.record.name),f.children.forEach(a),f.alias.forEach(a))}}function s(){return n}function u(f){let d=0;for(;d=0&&(f.record.path!==n[d].record.path||!eO(f,n[d]));)d++;n.splice(d,0,f),f.record.name&&!Xw(f)&&o.set(f.record.name,f)}function c(f,d){let p,h={},m,v;if("name"in f&&f.name){if(p=o.get(f.name),!p)throw Us(1,{location:f});v=p.record.name,h=Kt(Yw(d.params,p.keys.filter(_=>!_.optional).map(_=>_.name)),f.params&&Yw(f.params,p.keys.map(_=>_.name))),m=p.stringify(h)}else if("path"in f)m=f.path,p=n.find(_=>_.re.test(m)),p&&(h=p.parse(m),v=p.record.name);else{if(p=d.name?o.get(d.name):n.find(_=>_.re.test(d.path)),!p)throw Us(1,{location:f,currentLocation:d});v=p.record.name,h=Kt({},d.params,f.params),m=p.stringify(h)}const w=[];let g=p;for(;g;)w.unshift(g.record),g=g.parent;return{name:v,path:m,params:h,matched:w,meta:nie(w)}}return e.forEach(f=>l(f)),{addRoute:l,resolve:c,removeRoute:a,getRoutes:s,getRecordMatcher:r}}function Yw(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function eie(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:tie(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function tie(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]=typeof n=="object"?n[o]:n;return t}function Xw(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function nie(e){return e.reduce((t,n)=>Kt(t,n.meta),{})}function Jw(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}function eO(e,t){return t.children.some(n=>n===e||eO(e,n))}const tO=/#/g,oie=/&/g,rie=/\//g,lie=/=/g,aie=/\?/g,nO=/\+/g,sie=/%5B/g,iie=/%5D/g,oO=/%5E/g,uie=/%60/g,rO=/%7B/g,cie=/%7C/g,lO=/%7D/g,die=/%20/g;function Oy(e){return encodeURI(""+e).replace(cie,"|").replace(sie,"[").replace(iie,"]")}function fie(e){return Oy(e).replace(rO,"{").replace(lO,"}").replace(oO,"^")}function Yv(e){return Oy(e).replace(nO,"%2B").replace(die,"+").replace(tO,"%23").replace(oie,"%26").replace(uie,"`").replace(rO,"{").replace(lO,"}").replace(oO,"^")}function pie(e){return Yv(e).replace(lie,"%3D")}function hie(e){return Oy(e).replace(tO,"%23").replace(aie,"%3F")}function vie(e){return e==null?"":hie(e).replace(rie,"%2F")}function Jd(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function mie(e){const t={};if(e===""||e==="?")return t;const o=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rl&&Yv(l)):[o&&Yv(o)]).forEach(l=>{l!==void 0&&(t+=(t.length?"&":"")+n,l!=null&&(t+="="+l))})}return t}function gie(e){const t={};for(const n in e){const o=e[n];o!==void 0&&(t[n]=jo(o)?o.map(r=>r==null?null:""+r):o==null?o:""+o)}return t}const yie=Symbol(""),Qw=Symbol(""),Zf=Symbol(""),aO=Symbol(""),Xv=Symbol("");function mi(){let e=[];function t(o){return e.push(o),()=>{const r=e.indexOf(o);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function cl(e,t,n,o,r){const l=o&&(o.enterCallbacks[r]=o.enterCallbacks[r]||[]);return()=>new Promise((a,s)=>{const u=d=>{d===!1?s(Us(4,{from:n,to:t})):d instanceof Error?s(d):Kse(d)?s(Us(2,{from:t,to:d})):(l&&o.enterCallbacks[r]===l&&typeof d=="function"&&l.push(d),a())},c=e.call(o&&o.instances[r],t,n,u);let f=Promise.resolve(c);e.length<3&&(f=f.then(u)),f.catch(d=>s(d))})}function oh(e,t,n,o){const r=[];for(const l of e)for(const a in l.components){let s=l.components[a];if(!(t!=="beforeRouteEnter"&&!l.instances[a]))if(bie(s)){const c=(s.__vccOpts||s)[t];c&&r.push(cl(c,n,o,l,a))}else{let u=s();r.push(()=>u.then(c=>{if(!c)return Promise.reject(new Error(`Couldn't resolve component "${a}" at "${l.path}"`));const f=kse(c)?c.default:c;l.components[a]=f;const p=(f.__vccOpts||f)[t];return p&&cl(p,n,o,l,a)()}))}}return r}function bie(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function e_(e){const t=De(Zf),n=De(aO),o=C(()=>t.resolve(i(e.to))),r=C(()=>{const{matched:u}=o.value,{length:c}=u,f=u[c-1],d=n.matched;if(!f||!d.length)return-1;const p=d.findIndex(js.bind(null,f));if(p>-1)return p;const h=t_(u[c-2]);return c>1&&t_(f)===h&&d[d.length-1].path!==h?d.findIndex(js.bind(null,u[c-2])):p}),l=C(()=>r.value>-1&&Cie(n.params,o.value.params)),a=C(()=>r.value>-1&&r.value===n.matched.length-1&&XT(n.params,o.value.params));function s(u={}){return Sie(u)?t[i(e.replace)?"replace":"push"](i(e.to)).catch(Vi):Promise.resolve()}return{route:o,href:C(()=>o.value.href),isActive:l,isExactActive:a,navigate:s}}const wie=U({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:e_,setup(e,{slots:t}){const n=Et(e_(e)),{options:o}=De(Zf),r=C(()=>({[n_(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[n_(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const l=t.default&&t.default(n);return e.custom?l:je("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},l)}}}),_ie=wie;function Sie(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Cie(e,t){for(const n in t){const o=t[n],r=e[n];if(typeof o=="string"){if(o!==r)return!1}else if(!jo(r)||r.length!==o.length||o.some((l,a)=>l!==r[a]))return!1}return!0}function t_(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const n_=(e,t,n)=>e??t??n,kie=U({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=De(Xv),r=C(()=>e.route||o.value),l=De(Qw,0),a=C(()=>{let c=i(l);const{matched:f}=r.value;let d;for(;(d=f[c])&&!d.components;)c++;return c}),s=C(()=>r.value.matched[a.value]);gt(Qw,C(()=>a.value+1)),gt(yie,s),gt(Xv,r);const u=M();return ye(()=>[u.value,s.value,e.name],([c,f,d],[p,h,m])=>{f&&(f.instances[d]=c,h&&h!==f&&c&&c===p&&(f.leaveGuards.size||(f.leaveGuards=h.leaveGuards),f.updateGuards.size||(f.updateGuards=h.updateGuards))),c&&f&&(!h||!js(f,h)||!p)&&(f.enterCallbacks[d]||[]).forEach(v=>v(c))},{flush:"post"}),()=>{const c=r.value,f=e.name,d=s.value,p=d&&d.components[f];if(!p)return o_(n.default,{Component:p,route:c});const h=d.props[f],m=h?h===!0?c.params:typeof h=="function"?h(c):h:null,w=je(p,Kt({},m,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(d.instances[f]=null)},ref:u}));return o_(n.default,{Component:w,route:c})||w}}});function o_(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Eie=kie;function $ie(e){const t=Qse(e.routes,e),n=e.parseQuery||mie,o=e.stringifyQuery||Zw,r=e.history,l=mi(),a=mi(),s=mi(),u=Ft(el);let c=el;ts&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=th.bind(null,X=>""+X),d=th.bind(null,vie),p=th.bind(null,Jd);function h(X,Q){let ce,ue;return ZT(X)?(ce=t.getRecordMatcher(X),ue=Q):ue=X,t.addRoute(ue,ce)}function m(X){const Q=t.getRecordMatcher(X);Q&&t.removeRoute(Q)}function v(){return t.getRoutes().map(X=>X.record)}function w(X){return!!t.getRecordMatcher(X)}function g(X,Q){if(Q=Kt({},Q||u.value),typeof X=="string"){const J=nh(n,X,Q.path),ge=t.resolve({path:J.path},Q),$e=r.createHref(J.fullPath);return Kt(J,ge,{params:p(ge.params),hash:Jd(J.hash),redirectedFrom:void 0,href:$e})}let ce;if("path"in X)ce=Kt({},X,{path:nh(n,X.path,Q.path).path});else{const J=Kt({},X.params);for(const ge in J)J[ge]==null&&delete J[ge];ce=Kt({},X,{params:d(J)}),Q.params=d(Q.params)}const ue=t.resolve(ce,Q),we=X.hash||"";ue.params=f(p(ue.params));const Oe=Tse(o,Kt({},X,{hash:fie(we),path:ue.path})),q=r.createHref(Oe);return Kt({fullPath:Oe,hash:we,query:o===Zw?gie(X.query):X.query||{}},ue,{redirectedFrom:void 0,href:q})}function _(X){return typeof X=="string"?nh(n,X,u.value.path):Kt({},X)}function y(X,Q){if(c!==X)return Us(8,{from:Q,to:X})}function b(X){return T(X)}function $(X){return b(Kt(_(X),{replace:!0}))}function S(X){const Q=X.matched[X.matched.length-1];if(Q&&Q.redirect){const{redirect:ce}=Q;let ue=typeof ce=="function"?ce(X):ce;return typeof ue=="string"&&(ue=ue.includes("?")||ue.includes("#")?ue=_(ue):{path:ue},ue.params={}),Kt({query:X.query,hash:X.hash,params:"path"in ue?{}:X.params},ue)}}function T(X,Q){const ce=c=g(X),ue=u.value,we=X.state,Oe=X.force,q=X.replace===!0,J=S(ce);if(J)return T(Kt(_(J),{state:typeof J=="object"?Kt({},we,J.state):we,force:Oe,replace:q}),Q||ce);const ge=ce;ge.redirectedFrom=Q;let $e;return!Oe&&Ose(o,ue,ce)&&($e=Us(16,{to:ge,from:ue}),G(ue,ue,!0,!1)),($e?Promise.resolve($e):x(ge,ue)).catch(he=>Er(he)?Er(he,2)?he:K(he):z(he,ge,ue)).then(he=>{if(he){if(Er(he,2))return T(Kt({replace:q},_(he.to),{state:typeof he.to=="object"?Kt({},we,he.to.state):we,force:Oe}),Q||ge)}else he=F(ge,ue,!0,q,we);return A(ge,ue,he),he})}function k(X,Q){const ce=y(X,Q);return ce?Promise.reject(ce):Promise.resolve()}function R(X){const Q=fe.values().next().value;return Q&&typeof Q.runWithContext=="function"?Q.runWithContext(X):X()}function x(X,Q){let ce;const[ue,we,Oe]=Tie(X,Q);ce=oh(ue.reverse(),"beforeRouteLeave",X,Q);for(const J of ue)J.leaveGuards.forEach(ge=>{ce.push(cl(ge,X,Q))});const q=k.bind(null,X,Q);return ce.push(q),ie(ce).then(()=>{ce=[];for(const J of l.list())ce.push(cl(J,X,Q));return ce.push(q),ie(ce)}).then(()=>{ce=oh(we,"beforeRouteUpdate",X,Q);for(const J of we)J.updateGuards.forEach(ge=>{ce.push(cl(ge,X,Q))});return ce.push(q),ie(ce)}).then(()=>{ce=[];for(const J of Oe)if(J.beforeEnter)if(jo(J.beforeEnter))for(const ge of J.beforeEnter)ce.push(cl(ge,X,Q));else ce.push(cl(J.beforeEnter,X,Q));return ce.push(q),ie(ce)}).then(()=>(X.matched.forEach(J=>J.enterCallbacks={}),ce=oh(Oe,"beforeRouteEnter",X,Q),ce.push(q),ie(ce))).then(()=>{ce=[];for(const J of a.list())ce.push(cl(J,X,Q));return ce.push(q),ie(ce)}).catch(J=>Er(J,8)?J:Promise.reject(J))}function A(X,Q,ce){s.list().forEach(ue=>R(()=>ue(X,Q,ce)))}function F(X,Q,ce,ue,we){const Oe=y(X,Q);if(Oe)return Oe;const q=Q===el,J=ts?history.state:{};ce&&(ue||q?r.replace(X.fullPath,Kt({scroll:q&&J&&J.scroll},we)):r.push(X.fullPath,we)),u.value=X,G(X,Q,ce,q),K()}let B;function V(){B||(B=r.listen((X,Q,ce)=>{if(!ke.listening)return;const ue=g(X),we=S(ue);if(we){T(Kt(we,{replace:!0}),ue).catch(Vi);return}c=ue;const Oe=u.value;ts&&Lse(Ww(Oe.fullPath,ce.delta),Jf()),x(ue,Oe).catch(q=>Er(q,12)?q:Er(q,2)?(T(q.to,ue).then(J=>{Er(J,20)&&!ce.delta&&ce.type===bu.pop&&r.go(-1,!1)}).catch(Vi),Promise.reject()):(ce.delta&&r.go(-ce.delta,!1),z(q,ue,Oe))).then(q=>{q=q||F(ue,Oe,!1),q&&(ce.delta&&!Er(q,8)?r.go(-ce.delta,!1):ce.type===bu.pop&&Er(q,20)&&r.go(-1,!1)),A(ue,Oe,q)}).catch(Vi)}))}let j=mi(),D=mi(),L;function z(X,Q,ce){K(X);const ue=D.list();return ue.length?ue.forEach(we=>we(X,Q,ce)):console.error(X),Promise.reject(X)}function P(){return L&&u.value!==el?Promise.resolve():new Promise((X,Q)=>{j.add([X,Q])})}function K(X){return L||(L=!X,V(),j.list().forEach(([Q,ce])=>X?ce(X):Q()),j.reset()),X}function G(X,Q,ce,ue){const{scrollBehavior:we}=e;if(!ts||!we)return Promise.resolve();const Oe=!ce&&Fse(Ww(X.fullPath,0))||(ue||!ce)&&history.state&&history.state.scroll||null;return We().then(()=>we(X,Q,Oe)).then(q=>q&&Ase(q)).catch(q=>z(q,X,Q))}const Y=X=>r.go(X);let Z;const fe=new Set,ke={currentRoute:u,listening:!0,addRoute:h,removeRoute:m,hasRoute:w,getRoutes:v,resolve:g,options:e,push:b,replace:$,go:Y,back:()=>Y(-1),forward:()=>Y(1),beforeEach:l.add,beforeResolve:a.add,afterEach:s.add,onError:D.add,isReady:P,install(X){const Q=this;X.component("RouterLink",_ie),X.component("RouterView",Eie),X.config.globalProperties.$router=Q,Object.defineProperty(X.config.globalProperties,"$route",{enumerable:!0,get:()=>i(u)}),ts&&!Z&&u.value===el&&(Z=!0,b(r.location).catch(we=>{}));const ce={};for(const we in el)Object.defineProperty(ce,we,{get:()=>u.value[we],enumerable:!0});X.provide(Zf,Q),X.provide(aO,of(ce)),X.provide(Xv,u);const ue=X.unmount;fe.add(X),X.unmount=function(){fe.delete(X),fe.size<1&&(c=el,B&&B(),B=null,u.value=el,Z=!1,L=!1),ue()}}};function ie(X){return X.reduce((Q,ce)=>Q.then(()=>R(ce)),Promise.resolve())}return ke}function Tie(e,t){const n=[],o=[],r=[],l=Math.max(t.matched.length,e.matched.length);for(let a=0;ajs(c,s))?o.push(s):n.push(s));const u=e.matched[a];u&&(t.matched.find(c=>js(c,u))||r.push(u))}return[n,o,r]}function li(){return De(Zf)}const Oie={__name:"index",setup(e){let t=li(),n=M("all"),o=M({}),r=C(()=>Ye.state.sites),l=C(()=>Ye.getters.getOnlineSites),a=C(()=>Ye.getters.getOfflineSites),s=M([]),u=M();function c(d){n.value=d}function f(){let d=JSON.parse(JSON.stringify(t.currentRoute.value.query));switch(d.type=n.value,t.push({path:t.currentRoute.value.path,query:d}),n.value){case"all":s.value=r.value;break;case"online":s.value=l.value;break;case"offline":s.value=a.value;break}}return ye(Ye.getters.getStatues,()=>{o.value=Ye.getters.getStatues}),ye(n,()=>{f()}),ye(r,()=>{f()}),ye(t.currentRoute,()=>{t.currentRoute.value.path.startsWith("/index/status/")&&(t.currentRoute.value.query.type===void 0||t.currentRoute.value.query.type!=="all"&&t.currentRoute.value.query.type!=="online"&&t.currentRoute.value.query.type!=="offline"?n.value="all":n.value=t.currentRoute.value.query.type,f())}),nt(()=>{t.currentRoute.value.path.startsWith("/index/status/")&&(t.currentRoute.value.query.type===void 0||t.currentRoute.value.query.type!=="all"&&t.currentRoute.value.query.type!=="online"&&t.currentRoute.value.query.type!=="offline"?n.value="all":n.value=t.currentRoute.value.query.type,f())}),(d,p)=>{const h=Al,m=Pl,v=Rl,w=Ml;return E(),H("div",null,[i(Ye).state.config.isAdmin?(E(),ne(m,{key:0,mode:"horizontal","default-active":i(n),ref_key:"menu",ref:u},{default:I(()=>[N(h,{index:"all",onClick:p[0]||(p[0]=g=>c("all"))},{default:I(()=>[de("全部服务器")]),_:1}),N(h,{index:"online",onClick:p[1]||(p[1]=g=>c("online"))},{default:I(()=>[de("在线服务器")]),_:1}),N(h,{index:"offline",onClick:p[2]||(p[2]=g=>c("offline"))},{default:I(()=>[de("离线服务器")]),_:1})]),_:1},8,["default-active"])):(E(),ne(m,{key:1,mode:"horizontal","default-active":"all",router:"",ref_key:"menu",ref:u},{default:I(()=>[N(h,{index:"all"},{default:I(()=>[de("当前服务器")]),_:1})]),_:1},512)),N(w,null,{default:I(()=>[(E(!0),H(Le,null,ft(i(s),g=>(E(),ne(v,{span:7,key:g.id},{default:I(()=>[N(boe,{status:i(o)[g.id],site:g},null,8,["status","site"])]),_:2},1024))),128))]),_:1})])}}};var xy={};const Ny=ek(mM);var Ur={};Object.defineProperty(Ur,"__esModule",{value:!0});Ur.DEFAULT_ICON_CONFIGS=void 0;Ur.IconConverter=iO;Ur.IconProvider=void 0;Ur.IconWrapper=Mie;var Jv=Ny,sO={size:"1em",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round",rtl:!1,theme:"outline",colors:{outline:{fill:"#333",background:"transparent"},filled:{fill:"#333",background:"#FFF"},twoTone:{fill:"#333",twoTone:"#2F88FF"},multiColor:{outStrokeColor:"#333",outFillColor:"#2F88FF",innerStrokeColor:"#FFF",innerFillColor:"#43CCF8"}},prefix:"i"};Ur.DEFAULT_ICON_CONFIGS=sO;function xie(){return"icon-"+((1+Math.random())*4294967296|0).toString(16).substring(1)}function iO(e,t,n){var o=typeof t.fill=="string"?[t.fill]:t.fill||[],r=[],l=t.theme||n.theme;switch(l){case"outline":r.push(typeof o[0]=="string"?o[0]:"currentColor"),r.push("none"),r.push(typeof o[0]=="string"?o[0]:"currentColor"),r.push("none");break;case"filled":r.push(typeof o[0]=="string"?o[0]:"currentColor"),r.push(typeof o[0]=="string"?o[0]:"currentColor"),r.push("#FFF"),r.push("#FFF");break;case"two-tone":r.push(typeof o[0]=="string"?o[0]:"currentColor"),r.push(typeof o[1]=="string"?o[1]:n.colors.twoTone.twoTone),r.push(typeof o[0]=="string"?o[0]:"currentColor"),r.push(typeof o[1]=="string"?o[1]:n.colors.twoTone.twoTone);break;case"multi-color":r.push(typeof o[0]=="string"?o[0]:"currentColor"),r.push(typeof o[1]=="string"?o[1]:n.colors.multiColor.outFillColor),r.push(typeof o[2]=="string"?o[2]:n.colors.multiColor.innerStrokeColor),r.push(typeof o[3]=="string"?o[3]:n.colors.multiColor.innerFillColor);break}return{size:t.size||n.size,strokeWidth:t.strokeWidth||n.strokeWidth,strokeLinecap:t.strokeLinecap||n.strokeLinecap,strokeLinejoin:t.strokeLinejoin||n.strokeLinejoin,colors:r,id:e}}var uO=Symbol("icon-context"),Nie=function(t){(0,Jv.provide)(uO,t)};Ur.IconProvider=Nie;function Mie(e,t,n){var o={name:"icon-"+e,props:["size","strokeWidth","strokeLinecap","strokeLinejoin","theme","fill","spin"],setup:function(l){var a=xie(),s=(0,Jv.inject)(uO,sO);return function(){var u=l.size,c=l.strokeWidth,f=l.strokeLinecap,d=l.strokeLinejoin,p=l.theme,h=l.fill,m=l.spin,v=iO(a,{size:u,strokeWidth:c,strokeLinecap:f,strokeLinejoin:d,theme:p,fill:h},s),w=[s.prefix+"-icon"];return w.push(s.prefix+"-icon-"+e),t&&s.rtl&&w.push(s.prefix+"-icon-rtl"),m&&w.push(s.prefix+"-icon-spin"),(0,Jv.createVNode)("span",{class:w.join(" ")},[n(v)])}}};return o}Object.defineProperty(xy,"__esModule",{value:!0});var cO=xy.default=void 0,Ic=Ny,Rie=Ur,Iie=(0,Rie.IconWrapper)("hard-disk",!0,function(e){return(0,Ic.createVNode)("svg",{width:e.size,height:e.size,viewBox:"0 0 48 48",fill:"none"},[(0,Ic.createVNode)("path",{d:"M44 29H4V42H44V29Z",fill:e.colors[1],stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linejoin":e.strokeLinejoin},null),(0,Ic.createVNode)("path",{d:"M35.5 38C36.8807 38 38 36.8807 38 35.5C38 34.1193 36.8807 33 35.5 33C34.1193 33 33 34.1193 33 35.5C33 36.8807 34.1193 38 35.5 38Z",fill:e.colors[2]},null),(0,Ic.createVNode)("path",{d:"M4 28.9998L9.03837 4.99902H39.0205L44 28.9998",stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linejoin":e.strokeLinejoin},null)])});cO=xy.default=Iie;const Pie={key:0},Aie={key:1},Lie={style:{display:"inline-block"}},Fie={__name:"index",props:["isOperatingFile","operation","selectedFiles","currentSideId","currentPath","crossSite"],emits:["close"],setup(e,{emit:t}){let n=e,o=t,r=C(()=>n.isOperatingFile),l=C(()=>Ye.state.config.isAdmin),a=C(()=>{switch(n.operation){case"move":return"移动到";case"copy":return"复制到";case"extract":return"解包到"}}),s=M([]),u=M([]),c=C(()=>{let g=[];return s.value.length===0?f.value.forEach(_=>{g.push({name:_.hostname,site:!0,id:_.id})}):u.value.forEach(_=>{if(_.type==="FOLDER"){let y=!0;n.selectedFiles.forEach(b=>{b.type==="FOLDER"&&b.path===_.path&&(y=!1)}),y&&g.push(_)}}),g}),f=C(()=>Ye.getters.getOnlineSites),d=C(()=>{let g="";for(let _=0;_{u.value.push({name:g.hostname,site:!0})}):St.get(Ye.state.config.host+"file/get?"+en.stringify({path:d.value})).then(g=>{let _=new Date;g.data.result==="success"?(s.value.length===1?l.value&&n.crossSite&&u.value.push({name:"...",type:"FOLDER",size:0,lastModify:_.getTime()}):u.value.push({name:"...",type:"FOLDER",size:0,lastModify:_.getTime()}),u.value.push(...g.data.data)):et.error("文件查询失败:"+g.data.data)})}function m(g){s.value.splice(g),h()}function v(){o("close")}function w(){let g=n.currentPath,_=d.value,y=[];n.selectedFiles.forEach(b=>{y.push(b.name)}),n.operation==="extract"&&(_+=y[0].replace(".tar","")+"/",_.charAt(1)===":"&&_.substring(2)),l.value||(g=g.substring(2)),St.post(Ye.state.config.host+`file/${n.operation}?`,en.stringify({source:g,target:_,fileNames:y},{indices:!1})).then(b=>{b.data.result==="success"?et.success(b.data.data):et.error(b.data.data)}),v()}return ye(r,g=>{g&&(s.value.splice(0),(!l.value||!n.crossSite)&&(s.value[0]=n.currentSideId),h())}),(g,_)=>{const y=Dg,b=Zs,$=Be,S=ei,T=Qs,k=Ht,R=Il;return E(),ne(R,{title:i(a),modelValue:i(r),"onUpdate:modelValue":_[1]||(_[1]=x=>st(r)?r.value=x:r=x),top:"0",onClose:v,style:{"margin-bottom":"0"}},{footer:I(()=>[N(k,{type:"primary",disabled:i(s).length===0,onClick:w},{default:I(()=>[de("确定")]),_:1},8,["disabled"]),N(k,{onClick:v},{default:I(()=>[de("取消")]),_:1})]),default:I(()=>[!e.crossSite||!i(l)?(E(),ne(b,{key:0},{reference:I(()=>[N(y,{underline:!1,disabled:""},{default:I(()=>[de("全部节点")]),_:1})]),default:I(()=>[i(l)?(E(),H("span",Pie," 选择文件夹或打、解包时不能跨服务器 ")):(E(),H("span",Aie," 用户不能跨服务器 "))]),_:1})):(E(),ne(y,{key:1,underline:!1,onClick:_[0]||(_[0]=x=>m(0)),disabled:i(s).length===0||!e.crossSite},{default:I(()=>[de("全部节点")]),_:1},8,["disabled"])),(E(!0),H(Le,null,ft(i(s),(x,A)=>(E(),H("div",Lie,[de("  > "),N(y,{underline:!1,disabled:A===i(s).length-1,onClick:F=>m(A+1)},{default:I(()=>[de(le(x),1)]),_:2},1032,["disabled","onClick"])]))),256)),N(T,{data:i(c),"max-height":"72vh",onRowClick:p},{default:I(()=>[N(S,{width:"50px"},{default:I(x=>[x.row.site!==void 0?(E(),ne(i(cO),{key:0,theme:"outline",size:"24",fill:"#333"})):(E(),ne($,{key:1},{default:I(()=>[N(i(zC))]),_:1}))]),_:1}),N(S,{label:"目标文件夹"},{default:I(x=>[de(le(x.row.name),1)]),_:1})]),_:1},8,["data"])]),_:1},8,["title","modelValue"])}}},Die=W("br",null,null,-1),Bie=W("br",null,null,-1),Vie={__name:"index",props:["selectedFiles","isSharingFile","currentPath"],emits:["close"],setup(e,{emit:t}){let n=e,o=t,r=C(()=>n.isSharingFile),l=M(""),a=M(""),s=C(()=>Ye.state.config.isAdmin);function u(){o("close")}function c(){if(l.value<0)et.error("分享ip数不能小于0");else if(a.value<0)et.error("过期时间不能小于0");else{let f=[];n.selectedFiles.forEach(p=>{f.push(p.name)});let d;s.value?d=n.currentPath:d=n.currentPath.substring(2),St.post(Ye.state.config.host+"share/?",en.stringify({path:d,time:a.value,count:l.value,fileNames:f},{indices:!1})).then(p=>{p.data.result==="success"?et.success(p.data.data):et.error(p.data.data),u()})}}return(f,d)=>{const p=qk,h=on,m=Ng,v=xg,w=Ht,g=Il;return E(),ne(g,{title:"分享文件",onClose:u,modelValue:i(r),"onUpdate:modelValue":d[2]||(d[2]=_=>st(r)?r.value=_:r=_)},{footer:I(()=>[N(w,{type:"primary",onClick:c},{default:I(()=>[de("确定")]),_:1}),N(w,{onClick:u},{default:I(()=>[de("取消")]),_:1})]),default:I(()=>[de(" 请输入分享时长或可下载ip个数(留空为该项不限制,都留空则永久分享): "),N(v,null,{default:I(()=>[N(p,null,{default:I(()=>[de(" 已选择文件:"),Die,(E(!0),H(Le,null,ft(e.selectedFiles,_=>(E(),H("span",null,[de(le(_.name),1),Bie]))),256))]),_:1}),N(m,null,{default:I(()=>[N(h,{modelValue:i(a),"onUpdate:modelValue":d[0]||(d[0]=_=>st(a)?a.value=_:a=_)},{prepend:I(()=>[de(" 分享时长 ")]),append:I(()=>[de(" 小时 ")]),_:1},8,["modelValue"]),N(h,{modelValue:i(l),"onUpdate:modelValue":d[1]||(d[1]=_=>st(l)?l.value=_:l=_)},{prepend:I(()=>[de(" 下载ip个数 ")]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"])}}},Hie=W("br",null,null,-1),dO={__name:"index",props:["isAdjustingShare","currentFile","currentSiteId"],emits:["close"],setup(e,{emit:t}){let n=e,o=t,r=C(()=>n.isAdjustingShare),l=C(()=>Ye.state.config.isAdmin),a=M(null),s=M(null);function u(){let f=n.currentFile.shareCode;l.value&&(f=n.currentSiteId+":"+n.currentFile.shareCode),St.post(Ye.state.config.host+"share/adjust?",en.stringify({shareCode:f,time:a.value,count:s.value})).then(d=>{d.data.result==="success"?et.success(d.data.data):et.error(d.data.data),c()})}function c(){o("close")}return(f,d)=>{const p=Rl,h=Ml,m=on,v=Ht,w=Il;return E(),ne(w,{title:"调整分享",modelValue:i(r),"onUpdate:modelValue":d[2]||(d[2]=g=>st(r)?r.value=g:r=g),width:"625px",onClose:c},{footer:I(()=>[N(v,{type:"primary",onClick:u},{default:I(()=>[de("确定")]),_:1}),N(v,{onClick:c},{default:I(()=>[de("取消")]),_:1})]),default:I(()=>[N(h,null,{default:I(()=>[N(p,{span:10},{default:I(()=>[de("当前文件:"+le(e.currentFile.name),1)]),_:1}),N(p,{span:14},{default:I(()=>[de("(正数为添加,负数为减少,都留空则调整为永久分享)")]),_:1})]),_:1}),Hie,N(h,null,{default:I(()=>[N(p,{span:10},{default:I(()=>[de(" 过期时间:"+le(e.currentFile.expireTime===void 0?"不过期":i(xt).formatDate(e.currentFile.expireTime)),1)]),_:1}),N(m,{modelValue:i(a),"onUpdate:modelValue":d[0]||(d[0]=g=>st(a)?a.value=g:a=g),style:{width:"300px"}},{prepend:I(()=>[de(" 分享时长 ")]),append:I(()=>[de(" 小时 ")]),_:1},8,["modelValue"])]),_:1}),N(h,null,{default:I(()=>[N(p,{span:10},{default:I(()=>[de(" 剩余ip数:"+le(e.currentFile.availableCount===void 0?"不限制":e.currentFile.availableCount),1)]),_:1}),N(m,{modelValue:i(s),"onUpdate:modelValue":d[1]||(d[1]=g=>st(s)?s.value=g:s=g),style:{width:"300px"}},{prepend:I(()=>[de("分享ip数")]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["modelValue"])}}},zie={key:0},Kie=W("br",null,null,-1),Wie=W("br",null,null,-1),jie={__name:"index",props:["isImportFile","path"],emits:["close"],setup(e,{emit:t}){let n=e,o=t,r=C(()=>n.isImportFile),l=M(""),a=M(null);function s(){l.value.trim()===""?et.error("请输入分享码"):!l.value.includes(":")||l.value.split(":").length!==2?et.error("分享码格式错误"):St.get(Ye.state.config.host+"file/queryShareFile?"+en.stringify({shareCode:l.value})).then(f=>{f.data.result==="success"?(a.value=f.data.data,et.success("查询成功")):et.error(f.data.data)})}function u(){St.post(Ye.state.config.host+"file/import?"+en.stringify({shareCode:l.value,path:n.path.substring(2)})).then(f=>{f.data.result==="success"?(et.success(f.data.data),c()):et.error(f.data.data)})}function c(){o("close"),l.value="",a.value=null}return(f,d)=>{const p=on,h=Rl,m=Ht,v=Ml,w=Il;return E(),ne(w,{modelValue:i(r),"onUpdate:modelValue":d[1]||(d[1]=g=>st(r)?r.value=g:r=g),onClose:c,title:"导入文件"},{footer:I(()=>[N(m,{onClick:u,type:"primary",disabled:i(a)===null},{default:I(()=>[de("确认导入")]),_:1},8,["disabled"]),N(m,{onClick:c},{default:I(()=>[de("取消")]),_:1})]),default:I(()=>[N(v,null,{default:I(()=>[N(h,{span:10},{default:I(()=>[N(p,{modelValue:i(l),"onUpdate:modelValue":d[0]||(d[0]=g=>st(l)?l.value=g:l=g)},{prepend:I(()=>[de(" 分享码 ")]),_:1},8,["modelValue"])]),_:1}),N(h,{span:10},{default:I(()=>[N(m,{onClick:s},{default:I(()=>[de("查询文件")]),_:1})]),_:1})]),_:1}),i(a)!==null?(E(),H("div",zie,[N(v,null,{default:I(()=>[N(h,null,{default:I(()=>[de(" 文件名称:"+le(i(a).name),1),Kie,de(" 文件大小:"+le(i(xt).formatSize(i(a).size)),1),Wie]),_:1})]),_:1})])):te("",!0)]),_:1},8,["modelValue"])}}},Uie=W("br",null,null,-1),qie={style:{display:"inline-block"}},Gie=W("br",null,null,-1),Yie=W("br",null,null,-1),Xie=W("br",null,null,-1),Jie=["href"],Zie=W("br",null,null,-1),Qie={key:0},eue={class:"el-upload__text"},tue=W("em",null,"点击上传",-1),nue=W("div",{class:"el-upload__tip"}," 上传限制大小:10Gb ",-1),oue={__name:"index",setup(e){let t=li(),n=C(()=>Ye.getters.getOnlineSites),o=C(()=>Ye.getters.getFiles),r=C(()=>Ye.state.users),l=C(()=>{let se=m.value+":";return v.value.forEach(ve=>{se+=ve+"/"}),se}),a=C(()=>s.value?"move":u.value?"copy":"extract"),s=M(!1),u=M(!1),c=M(!1),f=M(!1),d=M(!1),p=M(!1),h=C(()=>Ye.state.config.isAdmin),m=M(0),v=M([]),w=M(),g=M(!0),_=M(!1),y=M(!1),b=M(!1),$=M(!1),S=M(!1),T=M(!1),k=[],R=M(!1);function x(se){Ye.dispatch("loadFiles",se)}function A(){R.value=!0}function F(se){se.result==="success"?(et.success("文件上传成功"),h.value||St.post(Ye.state.config.host+"verifySpace").then(()=>{Ye.dispatch("loadUsers")})):et.error(se.data)}function B(){let se="";h.value&&(se=m.value+":"),v.value.length!==0&&v.value.forEach(ve=>{se.endsWith(":")?se+=ve:se+="/"+ve}),x(se)}function V(se){let ve;return n.value.forEach(me=>{me.id===se&&(ve=me)}),ve}let j=0;function D(se){se.type==="FOLDER"&&(clearTimeout(j),j=setTimeout(()=>{se.name==="..."?v.value.pop():v.value.push(se.name),B(),L()},300))}function L(){let se=JSON.parse(JSON.stringify(t.currentRoute.value.query));se.path=l.value,t.push({path:t.currentRoute.value.path,query:se})}function z(){let se="";k.forEach(ve=>{se+=" "+ve.name}),rr.confirm("以下文件将被删除: "+se+" 是否确认删除?","删除文件",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"}).then(()=>{P()}).catch(()=>{})}function P(){let se=[];k.forEach(ve=>{se.push(ve.path)}),St.post(Ye.state.config.host+"file/delete",en.stringify({sourceId:m.value,paths:se},{indices:!1})).then(ve=>{ve.data.result==="success"?(et({type:"success",message:ve.data.data}),B(),he()):et({type:"error",message:ve.data.data})})}function K(){let se="";k.forEach(ve=>{se+=" "+ve.name}),rr.prompt(`以下文件即将被打包:${se},请输入压缩包名称`,"打包文件",{confirmButtonText:"打包",cancelButtonText:"取消",type:"info",inputValue:k[0].name+".tar"}).then(ve=>{if(ve.value.trim()===""){et.error("压缩包名不能为空");return}let me=[];k.forEach(Se=>{me.push(Se.path)});let Te="";h.value&&(Te=m.value+":"),v.value.push(ve.value),v.value.forEach(Se=>{Te.endsWith(":")||Te===""?Te+=Se:Te+="/"+Se}),v.value.pop(),St.post(Ye.state.config.host+"file/compress",en.stringify({paths:me,targetPath:Te},{indices:!1})).then(Se=>{Se.data.result==="success"?et({type:"success",message:"打包任务提交成功"}):et({type:"error",message:"打包任务提交失败:"+Se.data.data})})}).catch(()=>{})}function G(){rr.prompt("文件夹名称","新建文件夹",{confirmButtonText:"确认",cancelButtonText:"取消",inputValue:""}).then(se=>{if(se.value.trim()===""){et.error("新文件夹名不能为空");return}let ve="";h.value&&(ve=m.value+":"),v.value.forEach(me=>{ve+="/"+me}),ve+="/"+se.value,St.post(Ye.state.config.host+"file/create?"+en.stringify({path:ve})).then(me=>{me.data.result==="success"?(et({type:"success",message:"文件夹创建成功"}),B()):et({type:"error",message:"文件夹创建失败:"+me.data.data})})})}function Y(){rr.prompt(`即将重命名:${k[0].name},请输入新文件名`,"文件重命名",{confirmButtonText:"确定",cancelButtonText:"取消",type:"info",inputValue:k[0].name}).then(se=>{if(se.value.trim()===""){et.error("新文件名不能为空");return}let ve=k[0].path;h.value&&(ve=m.value+":"+ve),St.post(Ye.state.config.host+"file/rename",en.stringify({path:ve,name:se.value},{indices:!1})).then(me=>{me.data.result==="success"?(et({type:"success",message:"重命名成功"}),B()):et({type:"error",message:"重命名失败:"+me.data.data})})}).catch(()=>{})}function Z(se){v.value.splice(se),B(),L()}function fe(se){m.value=se,v.value.splice(0),B(),L()}function ke(se){k=se,S.value=!1,g.value=!0,b.value=!1,$.value=!1,y.value=!1,_.value=!1,T.value=!1;let ve=0,me=0;se.forEach(Te=>{Te.type==="FOLDER"?me++:(Te.shareCode!==void 0&&(S.value=!0),!T.value&&Te.name.endsWith(".tar")&&(T.value=!0),ve++)}),g.value=ve+me===0,ve===1?b.value=!0:ve>1&&(y.value=!0),me===1?$.value=!0:me>1&&(_.value=!0)}function ie(){c.value=!0}function X(){s.value=!0}function Q(){u.value=!0}function ce(){u.value=!1,s.value=!1,c.value=!1,setTimeout(()=>{B()},500)}function ue(){f.value=!1,setTimeout(()=>{B()},500)}function we(){d.value=!1,setTimeout(()=>{B()},500)}function Oe(se){h.value&&(se=m.value+":"+se),St.post(Ye.state.config.host+"share/cancel?",en.stringify({shareCode:se})).then(ve=>{ve.data.result==="success"?et.success(ve.data.data):et.error(ve.data.data),setTimeout(()=>{B()},500)})}function q(se){d.value=!0,w.value=se}function J(se){se.type==="FILE"&&rr.confirm(`是否下载文件:${se.name}?`,"下载文件",{confirmButtonText:"确认",cancelButtonText:"取消"}).then(()=>{window.open(V(m.value).host+`file/getFile/${se.name}?`+en.stringify({path:l.value.substring(l.value.indexOf(":")+1)+se.name,sessionId:Ye.state.config.sessionId}))}).catch(()=>{})}nt(()=>{if(t.currentRoute.value.query.path===void 0)$e();else{let se=t.currentRoute.value.query.path;if(!se.includes(":")){et.error("路径错误"),$e();return}ge(se),B()}});function ge(se){v.value.splice(0);let ve=se.split(":");if(m.value=Number(ve[0]),se=ve[1],se===void 0){B();return}se.includes("/")?se.split("/").forEach(me=>{me.trim()!==""&&v.value.push(me)}):se.trim()!==""&&v.value.push(se)}function $e(){t.push(`/index/fileManage/?path=${n.value[0].id}:`),m.value=n.value[0].id,B()}function he(){h.value?Ye.dispatch("loadSites"):St.post(Ye.state.config.host+"verifySpace").then(()=>{Ye.dispatch("loadUsers")}),B()}return ye(t.currentRoute,(se,ve)=>{se.path!==ve.path&&se.path==="/index/fileManage"&&(se.query.path===void 0?(t.replace(`/index/fileManage/?path=${n.value[0].id}:`),ge(`${n.value[0].id}:`)):ge(se.query.path),B())}),(se,ve)=>{const me=Al,Te=Pl,Se=Ht,Pe=If,He=ju,_e=Dg,Ae=ei,qe=Be,lt=Zs,vt=Qs,Ue=H$,be=Il;return E(),H(Le,null,[W("div",null,[N(Te,{mode:"horizontal","default-active":i(m)+""},{default:I(()=>[(E(!0),H(Le,null,ft(i(n),re=>(E(),ne(me,{index:re.id,onClick:ae=>fe(re.id)},{default:I(()=>[de(le(re.hostname),1)]),_:2},1032,["index","onClick"]))),256))]),_:1},8,["default-active"]),W("div",null,[N(Pe,null,{default:I(()=>[N(Se,{type:"primary",onClick:A},{default:I(()=>[de("上传文件")]),_:1}),i(h)?te("",!0):(E(),ne(Se,{key:0,type:"primary",onClick:ve[0]||(ve[0]=re=>st(p)?p.value=!0:p=!0)},{default:I(()=>[de("导入文件")]),_:1})),N(Se,{onClick:G},{default:I(()=>[de("新建文件夹")]),_:1}),N(Se,{disabled:i(g)||i(b),onClick:K},{default:I(()=>[de("打包")]),_:1},8,["disabled"]),N(Se,{disabled:!(i(b)&&i(T)),onClick:ie},{default:I(()=>[de("解包")]),_:1},8,["disabled"]),N(Se,{disabled:i(g),onClick:X},{default:I(()=>[de("移动到")]),_:1},8,["disabled"]),N(Se,{disabled:i(g),onClick:Q},{default:I(()=>[de("复制到")]),_:1},8,["disabled"]),N(Se,{disabled:!(i($)||i(b)),onClick:Y},{default:I(()=>[de("重命名")]),_:1},8,["disabled"]),N(Se,{disabled:i(g),onClick:z},{default:I(()=>[de("删除")]),_:1},8,["disabled"]),N(Se,{disabled:i(g)||i(_)||i($)||i(S),onClick:ve[1]||(ve[1]=re=>st(f)?f.value=!0:f=!0)},{default:I(()=>[de("创建分享链接")]),_:1},8,["disabled"]),N(Se,{onClick:he},{default:I(()=>[de("刷新")]),_:1})]),_:1}),i(h)&&V(i(m))!==void 0?(E(),ne(He,{key:0,percentage:(V(i(m)).totalSpace-V(i(m)).availableSpace)/V(i(m)).totalSpace*100,style:{width:"150px",display:"inline-block",float:"right"},color:i(xt).colors},{default:I(()=>[de(le(i(xt).formatSize(V(i(m)).totalSpace-V(i(m)).availableSpace))+" / "+le(i(xt).formatSize(V(i(m)).totalSpace)),1)]),_:1},8,["percentage","color"])):te("",!0),!i(h)&&i(r)[0]!==void 0?(E(),ne(He,{key:1,percentage:(i(r)[0].totalSpace-i(r)[0].availableSpace)/i(r)[0].totalSpace*100,style:{width:"150px",display:"inline-block",float:"right"},color:"Util.colors"},{default:I(()=>[de(le(i(xt).formatSize(i(r)[0].totalSpace-i(r)[0].availableSpace))+" / "+le(i(xt).formatSize(i(r)[0].totalSpace)),1)]),_:1},8,["percentage"])):te("",!0),Uie,N(_e,{underline:!1,onClick:ve[2]||(ve[2]=re=>Z(0)),disabled:i(v).length===0},{default:I(()=>[de("全部文件")]),_:1},8,["disabled"]),(E(!0),H(Le,null,ft(i(v),(re,ae)=>(E(),H("div",qie,[de("  > "),N(_e,{underline:!1,disabled:ae===i(v).length-1,onClick:Ee=>Z(ae+1)},{default:I(()=>[de(le(re),1)]),_:2},1032,["disabled","onClick"])]))),256))]),W("div",null,[N(vt,{data:i(o),size:"large",onRowClick:D,onSelectionChange:ke,"max-height":"76vh",onRowDblclick:J,"empty-text":"根目录下没有文件"},{default:I(()=>[N(Ae,{type:"selection",width:"55px"}),N(Ae,{width:"50px"},{default:I(re=>[tt(N(qe,null,{default:I(()=>[N(i(zC))]),_:2},1536),[[bt,re.row.type==="FOLDER"]]),tt(N(qe,null,{default:I(()=>[N(i(HC))]),_:2},1536),[[bt,re.row.type==="FILE"]])]),_:1}),N(Ae,{width:"50px"},{default:I(re=>[re.row.shareCode!==void 0?(E(),ne(lt,{key:0,width:"250px"},{reference:I(()=>[N(qe,null,{default:I(()=>[N(i(WC))]),_:1})]),default:I(()=>[de(" 分享码:"+le(i(m)+":"+re.row.shareCode),1),Gie,de(" 过期时间:"+le(re.row.expireTime===void 0?"不过期":i(xt).formatDate(re.row.expireTime)),1),Yie,de(" 剩余ip数:"+le(re.row.totalCount===void 0?"不限制":re.row.availableCount??0),1),Xie,de(" 下载链接:"),W("a",{href:V(i(m)).host+`getFileByShareCode/${re.row.name}?shareCode=${re.row.shareCode}`},"链接",8,Jie),Zie,N(Se,{type:"danger",onClick:ae=>Oe(re.row.shareCode)},{default:I(()=>[de("取消分享")]),_:2},1032,["onClick"]),N(Se,{onClick:ae=>q(re.row)},{default:I(()=>[de("调整分享")]),_:2},1032,["onClick"])]),_:2},1024)):te("",!0)]),_:1}),N(Ae,{label:"文件名",width:"500px"},{default:I(re=>[de(le(re.row.name),1)]),_:1}),N(Ae,{label:"大小",width:"100px"},{default:I(re=>[re.row.type==="FILE"?(E(),H("span",Qie,le(i(xt).formatSize(re.row.size)),1)):te("",!0)]),_:1}),N(Ae,{label:"修改时间"},{default:I(re=>[de(le(i(xt).formatDate(re.row.lastModify)),1)]),_:1})]),_:1},8,["data"])])]),N(be,{title:"上传文件",modelValue:i(R),"onUpdate:modelValue":ve[3]||(ve[3]=re=>st(R)?R.value=re:R=re),onClose:B},{default:I(()=>[N(Ue,{drag:"",action:V(i(m)).host+`file/upload/${i(l).substring(i(l).indexOf(":")+1)}?sessionId=${i(Ye).state.config.sessionId}`,multiple:"","on-success":F},{tip:I(()=>[nue]),default:I(()=>[N(qe,{class:"el-icon--upload"},{default:I(()=>[N(i(J8))]),_:1}),W("div",eue,[de(" 拖拽文件到这里或 "),tue,de(" 上传至 "+le(V(i(m)).hostname)+" ",1),(E(!0),H(Le,null,ft(i(v),re=>(E(),H("span",null," > "+le(re),1))),256))])]),_:1},8,["action"])]),_:1},8,["modelValue"]),N(Fie,{"selected-files":i(k),"is-operating-file":i(u)||i(s)||i(c),"cross-site":!(i($)||i(_)||i(c)),onClose:ce,"current-side-id":i(m),operation:i(a),"current-path":i(l)},null,8,["selected-files","is-operating-file","cross-site","current-side-id","operation","current-path"]),N(Vie,{"is-sharing-file":i(f),"selected-files":i(k),"current-path":i(l),onClose:ue},null,8,["is-sharing-file","selected-files","current-path"]),N(dO,{"current-file":i(w),"is-adjusting-share":i(d),"current-site-id":i(m),onClose:we},null,8,["current-file","is-adjusting-share","current-site-id"]),N(jie,{"is-import-file":i(p),path:i(l),onClose:ve[4]||(ve[4]=()=>{st(p)?p.value=!1:p=!1})},null,8,["is-import-file","path"])],64)}}},rue={key:0},lue=W("br",null,null,-1),aue=W("br",null,null,-1),sue={key:1},iue=W("br",null,null,-1),uue=W("br",null,null,-1),cue=W("br",null,null,-1),due={key:2},fue=W("br",null,null,-1),pue=W("br",null,null,-1),hue={__name:"index",setup(e){let t=li(),n=M(),o=[],r=M(!1),l=M("all"),a=C(()=>Ye.state.config.isAdmin),s=C(()=>Ye.state.tasks),u=C(()=>{let _=[];return s.value.forEach(y=>{y.status==="等待中"&&_.push(y)}),_}),c=C(()=>{let _=[];return s.value.forEach(y=>{y.status==="进行中"&&_.push(y)}),_}),f=C(()=>{let _=[];return s.value.forEach(y=>{y.complete&&_.push(y)}),_}),d=C(()=>Ye.state.users);function p(_){let y;return d.value.forEach(b=>{b.id===_&&(y=b.username)}),y}function h(_){_=Number(_);let y;return Ye.getters.getOnlineSites.forEach(b=>{b.id===_&&(y=b)}),y}function m(_){o=_,r.value=_.length!==0}function v(){let _=[];o.forEach(y=>{_.push(y.taskId)}),St.post(Ye.state.config.host+"file/cancel",en.stringify({passcode:Ye.state.config.passcode,taskIds:_},{indices:!1})).then(()=>{et.success("任务移除成功")}),Ye.commit("removeTasks",_)}function w(){let _=JSON.parse(JSON.stringify(t.currentRoute.value.query));switch(_.type=l.value,t.push({path:t.currentRoute.value.path,query:_}),l.value){case"all":n.value=s.value;break;case"complete":n.value=f.value;break;case"proceeding":n.value=c.value;break;case"waiting":n.value=u.value;break}}function g(_){l.value=_}return ye(l,()=>{w()}),nt(()=>{t.currentRoute.value.path.startsWith("/index/taskManage/")&&(t.currentRoute.value.query.type===void 0||t.currentRoute.value.query.type!=="all"&&t.currentRoute.value.query.type!=="online"&&t.currentRoute.value.query.type!=="offline"?l.value="all":l.value=t.currentRoute.value.query.type,w())}),ye(t.currentRoute,()=>{t.currentRoute.value.path.startsWith("/index/taskManage/")&&(t.currentRoute.value.query.type===void 0||t.currentRoute.value.query.type!=="all"&&t.currentRoute.value.query.type!=="complete"&&t.currentRoute.value.query.type!=="proceeding"&&t.currentRoute.value.query.type!=="waiting"?(t.replace("/index/taskManage/?type=all"),l.value="all"):l.value=t.currentRoute.value.query.type)}),(_,y)=>{const b=Al,$=Pl,S=Ht,T=If,k=ei,R=Be,x=Zs,A=ju,F=Qs;return E(),H("div",null,[N($,{mode:"horizontal","default-active":i(l)},{default:I(()=>[N(b,{index:"all",onClick:y[0]||(y[0]=B=>g("all"))},{default:I(()=>[de("全部")]),_:1}),N(b,{index:"complete",onClick:y[1]||(y[1]=B=>g("complete"))},{default:I(()=>[de("已完成/已停止")]),_:1}),N(b,{index:"proceeding",onClick:y[2]||(y[2]=B=>g("proceeding"))},{default:I(()=>[de("进行中")]),_:1}),N(b,{index:"waiting",onClick:y[3]||(y[3]=B=>g("waiting"))},{default:I(()=>[de("等待中")]),_:1})]),_:1},8,["default-active"]),N(T,null,{default:I(()=>[N(S,{onClick:v,disabled:!i(r)},{default:I(()=>[de("删除/取消")]),_:1},8,["disabled"])]),_:1}),N(F,{data:i(n),"empty-text":"当前分类没有任务",onSelectionChange:m,"row-key":"taskId"},{default:I(()=>[N(k,{type:"selection","reserve-selection":""}),N(k,{label:"任务id",width:"75px"},{default:I(B=>[de(le(B.row.taskId),1)]),_:1}),N(k,{label:"文件名"},{default:I(B=>[de(le(B.row.filename),1)]),_:1}),i(a)?(E(),ne(k,{key:0,label:"用户"},{default:I(B=>[de(le(p(B.row.userid)),1)]),_:1})):te("",!0),N(k,{label:"任务类型",width:"100px"},{default:I(B=>[de(le(B.row.type)+" ",1),i(a)||B.row.type!=="导入"?(E(),ne(x,{key:0,width:"450px"},{reference:I(()=>[N(R,null,{default:I(()=>[N(i(_f))]),_:1})]),default:I(()=>[B.row.type==="打包"?(E(),H("span",rue,[de(" 服务器:"+le(h(B.row.siteId).hostname),1),lue,de(" 源文件:"+le(B.row.paths),1),aue,de(" 目标文件:"+le(B.row.targetPath),1)])):te("",!0),B.row.type==="转移"?(E(),H("span",sue,[de(" 源服务器:"+le(h(B.row.sender).hostname),1),iue,de(" 源路径:"+le(B.row.sourcePath),1),uue,de(" 目标服务器:"+le(h(B.row.receiver).hostname),1),cue,de(" 目标路径:"+le(B.row.targetPath),1)])):te("",!0),B.row.type==="解包"?(E(),H("span",due,[de(" 服务器:"+le(h(B.row.siteId).hostname),1),fue,de(" 源文件:"+le(B.row.sourcePath+B.row.filename),1),pue,de(" 目标路径:"+le(B.row.targetPath),1)])):te("",!0)]),_:2},1024)):te("",!0)]),_:1}),N(k,{label:"任务进度"},{default:I(B=>[N(A,{percentage:B.row.percentage},null,8,["percentage"])]),_:1}),N(k,{label:"任务状态"},{default:I(B=>[de(le(B.row.status)+" ",1),B.row.status==="任务失败"?(E(),ne(x,{key:0,trigger:"hover"},{reference:I(()=>[N(R,null,{default:I(()=>[N(i(Lu))]),_:1})]),default:I(()=>[de(le(B.row.cause)+" ",1)]),_:2},1024)):te("",!0)]),_:1}),N(k,{label:"任务速度"},{default:I(B=>[de(le(i(xt).formatSize(B.row.speed)+"/S"),1)]),_:1}),N(k,{label:"任务大小"},{default:I(B=>[de(le(i(xt).formatSize(B.row.total)),1)]),_:1})]),_:1},8,["data"])])}}},vue={key:0,style:{"background-color":"white","padding-bottom":"410px","padding-left":"25px"}},mue=W("br",null,null,-1),gue={__name:"index",setup(e){let t=li(),n=M(),o=M(""),r=M(""),l=M(""),a=M(0),s=M("GB"),u=M(""),c=C(()=>Ye.getters.getSites),f=C(()=>{let m;return c.value.forEach(v=>{v.id===n.value&&(m=v)}),m});function d(m){n.value=m,t.replace("/index/siteManage/?id="+n.value)}function p(){let v={id:f.value.id},w;if(!isNaN(parseInt(a.value))&&a.value!==0){if(w=xt[s.value]*a.value,w<0&&f.availableSpace+w<0){et.error("减少空间不能小于可分配空间,可以考虑回收用户空间");return}v.availableSpace=w}if(o.value.trim()!==""&&(v.hostname=o.value),r.value.trim()!==""&&(v.domain=r.value),l.value.trim()!==""&&(v.reverseProxyPrefix=l.value),u.value.trim()!==""){v.storagePath=u.value,rr.confirm("修改服务器存储路径会导致服务器重启,是否继续?","警告",{confirmButtonText:"继续",cancelButtonText:"取消",type:"warning"}).then(()=>{St.post(Ye.state.config.host+"manage/site/alter?"+en.stringify({...v})).then(g=>{g.data.result==="success"?(et.success(g.data.data),Ye.dispatch("loadSites"),o.value="",r.value="",l.value="",a.value=0):et.error(g.data.data)})});return}St.post(Ye.state.config.host+"manage/site/alter?"+en.stringify({...v})).then(g=>{g.data.result==="success"?(et.success(g.data.data),Ye.dispatch("loadSites"),o.value="",r.value="",l.value="",a.value=0):et.error(g.data.data)})}function h(){St.post(Ye.state.config.host+"manage/site/unpair?"+en.stringify({passcode:Ye.state.config.passcode,id:n.value})).then(m=>{m.data.result==="success"?(et.success(m.data.data),Ye.dispatch("loadSites")):et.error(m.data.data)})}return ye(t.currentRoute,(m,v)=>{m.path!==v.path&&m.path.startsWith("/index/siteManage/")&&(t.currentRoute.value.query.id===void 0?(t.replace(`/index/siteManage/?id=${c.value[0].id}`),n.value=c.value[0].id):n.value=Number(t.currentRoute.value.query.id))}),nt(()=>{t.currentRoute.value.query.id===void 0?(t.replace(`/index/siteManage/?id=${c.value[0].id}`),n.value=c.value[0].id):n.value=Number(t.currentRoute.value.query.id)}),(m,v)=>{const w=Al,g=Pl,_=Rl,y=Ml,b=on,$=$l,S=Wo,T=Ht;return E(),H(Le,null,[N(g,{mode:"horizontal","default-active":i(n)},{default:I(()=>[(E(!0),H(Le,null,ft(i(c),k=>(E(),ne(w,{index:k.id,onClick:R=>d(k.id)},{default:I(()=>[de(le(k.hostname),1)]),_:2},1032,["index","onClick"]))),256))]),_:1},8,["default-active"]),i(f)!==void 0?(E(),H("div",vue,[N(y,null,{default:I(()=>[N(_,{span:8},{default:I(()=>[de(" 服务器id:"+le(i(f).id),1)]),_:1})]),_:1}),N(y,null,{default:I(()=>[N(_,{span:8},{default:I(()=>[de(" 服务器ip:"+le(i(f).ip),1)]),_:1}),N(_,{span:8},{default:I(()=>[de(' 域名跟反代前缀,若要去除,直接填"空" ')]),_:1})]),_:1}),N(y,null,{default:I(()=>[N(_,{span:8},{default:I(()=>[de(" 当前存储路径:"+le(i(f).storagePath),1)]),_:1}),N(_,{span:8},{default:I(()=>[N(b,{modelValue:i(u),"onUpdate:modelValue":v[0]||(v[0]=k=>st(u)?u.value=k:u=k)},{prepend:I(()=>[de("存储路径")]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(y,null,{default:I(()=>[N(_,{span:8},{default:I(()=>[de(" 当前服务器名:"+le(i(f).hostname),1)]),_:1}),N(_,{span:8},{default:I(()=>[N(b,{modelValue:i(o),"onUpdate:modelValue":v[1]||(v[1]=k=>st(o)?o.value=k:o=k)},{prepend:I(()=>[de(" 服务器名 ")]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(y,null,{default:I(()=>[N(_,{span:8},{default:I(()=>[de(" 当前服务器总预分配空间:"+le(i(xt).formatSize(i(f).totalSpace))+" ",1),mue,de(" 当前服务器可分配空间:"+le(i(xt).formatSize(i(f).availableSpace)),1)]),_:1}),N(_,{span:8,style:{"line-height":"40px"}},{default:I(()=>[N(b,{modelValue:i(a),"onUpdate:modelValue":v[3]||(v[3]=k=>st(a)?a.value=k:a=k)},{prepend:I(()=>[de(" 容量调整 ")]),append:I(()=>[N(S,{placeholder:"单位",modelValue:i(s),"onUpdate:modelValue":v[2]||(v[2]=k=>st(s)?s.value=k:s=k)},{default:I(()=>[N($,{value:"KB"}),N($,{value:"MB"}),N($,{value:"GB"})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(y,null,{default:I(()=>[N(_,{span:8},{default:I(()=>[de(" 当前服务器域名:"+le(i(f).domain===void 0?"无":i(f).domain),1)]),_:1}),N(_,{span:8},{default:I(()=>[N(b,{modelValue:i(r),"onUpdate:modelValue":v[4]||(v[4]=k=>st(r)?r.value=k:r=k)},{prepend:I(()=>[de(" 服务器域名 ")]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(y,null,{default:I(()=>[N(_,{span:8},{default:I(()=>[de(" 当前服务器反向代理前缀:"+le(i(f).reverseProxyPrefix===void 0?"无":i(f).reverseProxyPrefix),1)]),_:1}),N(_,{span:8},{default:I(()=>[N(b,{modelValue:i(l),"onUpdate:modelValue":v[5]||(v[5]=k=>st(l)?l.value=k:l=k)},{prepend:I(()=>[de(" 反向代理前缀 ")]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(y,null,{default:I(()=>[N(_,{span:8}),N(_,{span:5},{default:I(()=>[i(n)!==1?(E(),ne(T,{key:0,type:"danger",onClick:h},{default:I(()=>[de("删除服务器")]),_:1})):te("",!0),N(T,{type:"primary",onClick:p},{default:I(()=>[de("提交修改")]),_:1})]),_:1})]),_:1})])):te("",!0)],64)}}},yue={style:{display:"inline"}},bue={__name:"index",props:["isViewDownloadRecord","shareFiles","viewType","currentFile","currentSite"],emits:["close"],setup(e,{emit:t}){let n=e,o=t,r=C(()=>n.isViewDownloadRecord),l=C(()=>{let p=[];return n.viewType==="single"?p.push(...n.currentFile.downloadRecords):n.shareFiles.forEach(h=>{h.downloadRecords!==void 0&&h.downloadRecords.forEach(m=>{p.push({name:h.name,path:h.filePath,username:h.username,...m})})}),p}),a=M([]),s=[{label:"筛选时间",value:"time"},{label:"筛选ip",value:"ip"},{label:"筛选ua",value:"ua"}],u=M(""),c=M("ip");ye(n.viewType,()=>{n.viewType==="all"?s.length===3&&s.push({label:"筛选分享人",value:"sharer"}):s.length===4&&s.pop()}),ye(u,()=>{switch(a.value.splice(0),c.value){case"time":u.value[0]!==void 0&&l.value.forEach(p=>{u.value[0].getTime()<=p.time&&u.value[1].getTime()>=p.time&&a.value.push(p)});break;case"ip":u.value.trim()!==""&&l.value.forEach(p=>{p.ip.includes(u.value)&&a.value.push(p)});break;case"ua":u.value.trim()!==""&&l.value.forEach(p=>{p.ua.includes(u.value)&&a.value.push(p)});break;case"sharer":u.value.trim()!==""&&l.value.forEach(p=>{p.username.includes(u.value)&&a.value.push(p)})}});function f(){u.value=""}function d(){c.value="ip",u.value="",o("close")}return(p,h)=>{const m=Rl,v=Ml,w=$l,g=Wo,_=lE,y=on,b=ei,$=Zs,S=Qs,T=Il;return E(),ne(T,{title:"查看下载记录",modelValue:i(r),"onUpdate:modelValue":h[3]||(h[3]=k=>st(r)?r.value=k:r=k),width:e.viewType==="single"?null:"1250px",onClose:d,top:"0"},{default:I(()=>[N(v,null,{default:I(()=>[e.viewType==="single"?(E(),ne(m,{key:0,span:10},{default:I(()=>[de(" 当前文件:"+le(e.currentFile.name),1)]),_:1})):te("",!0),e.viewType==="all"?(E(),ne(m,{key:1,span:10},{default:I(()=>[de(" 当前节点:"+le(e.currentSite.hostname),1)]),_:1})):te("",!0)]),_:1}),N(v,null,{default:I(()=>[N(m,{span:24},{default:I(()=>[N(g,{placeholder:"筛选",modelValue:i(c),"onUpdate:modelValue":h[0]||(h[0]=k=>st(c)?c.value=k:c=k),onChange:f},{default:I(()=>[(E(!0),H(Le,null,ft(i(s),k=>(E(),ne(w,{label:k.label,value:k.value},null,8,["label","value"]))),256))]),_:1},8,["modelValue"]),tt(W("div",yue,[N(_,{type:"datetimerange",modelValue:i(u),"onUpdate:modelValue":h[1]||(h[1]=k=>st(u)?u.value=k:u=k)},null,8,["modelValue"])],512),[[bt,i(c)==="time"]]),tt(N(y,{style:{width:"300px"},modelValue:i(u),"onUpdate:modelValue":h[2]||(h[2]=k=>st(u)?u.value=k:u=k)},null,8,["modelValue"]),[[bt,i(c)!=="time"]])]),_:1})]),_:1}),N(S,{data:i(u).length>1?i(a):i(l),"empty-text":"没有记录"},{default:I(()=>[e.viewType==="all"?(E(),ne(b,{key:0,label:"文件",width:"400px"},{default:I(k=>[N(Vs,{str:k.row.path,length:"75"},null,8,["str"])]),_:1})):te("",!0),e.viewType==="all"?(E(),ne(b,{key:1,label:"分享人",width:"100px"},{default:I(k=>[N(Vs,{str:k.row.username,length:"10"},null,8,["str"])]),_:1})):te("",!0),N(b,{label:"下载时间",width:"200px"},{default:I(k=>[de(le(i(xt).formatDate(k.row.time)),1)]),_:1}),N(b,{label:"下载ip",width:"200px"},{default:I(k=>[de(le(k.row.ip),1)]),_:1}),N(b,{label:"下载ua",width:"300px"},{default:I(k=>[N($,{width:"300px"},{reference:I(()=>[de(le(k.row.ua.length>75?k.row.ua.substring(0,75)+"......":k.row.ua),1)]),default:I(()=>[de(le(k.row.ua),1)]),_:2},1024)]),_:1})]),_:1},8,["data"])]),_:1},8,["modelValue","width"])}}},wue={__name:"index",setup(e){let t=li(),n=C(()=>Ye.getters.getOnlineSites),o=M(),r=M([]),l=M(!1),a=M(!1),s=M(""),u=M();function c(y){let b;return n.value.forEach($=>{$.id===y&&(b=$)}),b}function f(y){o.value=y,t.replace("/index/shareManage/?id="+o.value),h()}function d(y){u.value=y,a.value=!0,s.value="single"}function p(){a.value=!0,s.value="all"}function h(){St.post(Ye.state.config.host+"share/get?",en.stringify({sourceId:o.value})).then(y=>{r.value.splice(0),y.data.result==="success"&&y.data.data.forEach(b=>{b.name=b.filePath.substring(b.filePath.lastIndexOf("/")+1),r.value.push(b)})})}function m(y){window.open(c(o.value).host+`file/getFile/${y.name}?`+en.stringify({path:y.filePath.substring(1)}))}function v(y){let b=c(o.value).host+`getFileByShareCode/${y.name}?shareCode=${y.shareCode}`;navigator.clipboard.writeText(b),et.success("复制成功")}function w(y){y.filePath.includes("\\")?y.name=y.filePath.substring(y.filePath.lastIndexOf("\\")+1):y.name=y.filePath.substring(y.filePath.lastIndexOf("/")+1),u.value=y,l.value=!0}function g(){l.value=!1,h()}function _(y){St.post(Ye.state.config.host+"share/cancel?",en.stringify({shareCode:o.value+":"+y})).then(b=>{b.data.result==="success"?et.success(b.data.data):et.error(b.data.data),h()})}return ye(t.currentRoute,(y,b)=>{y.path!==b.path&&b.path==="/index/shareManage/"&&b.query.id===void 0&&(t.replace(`/index/shareManage/?id=${n.value[0].id}`),o.value=n.value[0].id,h())}),nt(()=>{t.currentRoute.value.query.id===void 0?(t.replace(`/index/shareManage/?id=${n.value[0].id}`),o.value=n.value[0].id):o.value=Number(t.currentRoute.value.query.id),h()}),(y,b)=>{const $=Al,S=Pl,T=Ht,k=ei,R=Qs;return E(),H(Le,null,[N(S,{mode:"horizontal","default-active":i(o)},{default:I(()=>[(E(!0),H(Le,null,ft(i(n),x=>(E(),ne($,{index:x.id,onClick:A=>f(x.id)},{default:I(()=>[de(le(x.hostname),1)]),_:2},1032,["index","onClick"]))),256))]),_:1},8,["default-active"]),i(Ye).state.config.isAdmin?(E(),ne(T,{key:0,onClick:p},{default:I(()=>[de("查看当前节点下载记录")]),_:1})):te("",!0),N(R,{data:i(r),"empty-text":"此节点未分享文件"},{default:I(()=>[N(k,{label:"路径",width:"350px"},{default:I(x=>[N(Vs,{str:x.row.filePath,length:50},null,8,["str"])]),_:1}),i(Ye).state.config.isAdmin?(E(),ne(k,{key:0,label:"分享人",width:"100px"},{default:I(x=>[N(Vs,{str:x.row.username,length:10},null,8,["str"])]),_:1})):te("",!0),N(k,{label:"分享码",width:"90px"},{default:I(x=>[de(le(x.row.shareCode),1)]),_:1}),N(k,{label:"过期时间",width:"150px"},{default:I(x=>[de(le(x.row.expireTime===void 0?"不过期":i(xt).formatDate(x.row.expireTime)),1)]),_:1}),N(k,{label:"剩余ip数",width:"100px"},{default:I(x=>[de(le(x.row.availableCount===void 0?"不限制":x.row.availableCount),1)]),_:1}),N(k,{label:"操作"},{default:I(x=>[N(T,{type:"primary",onClick:A=>m(x.row)},{default:I(()=>[de("下载")]),_:2},1032,["onClick"]),N(T,{type:"primary",onClick:A=>w(x.row)},{default:I(()=>[de("调整")]),_:2},1032,["onClick"]),N(T,{type:"danger",onClick:A=>_(x.row.shareCode)},{default:I(()=>[de("取消")]),_:2},1032,["onClick"]),N(T,{onClick:A=>v(x.row)},{default:I(()=>[de("复制链接")]),_:2},1032,["onClick"]),x.row.downloadRecords!==void 0?(E(),ne(T,{key:0,onClick:A=>d(x.row)},{default:I(()=>[de("查看下载记录")]),_:2},1032,["onClick"])):te("",!0)]),_:1})]),_:1},8,["data"]),N(dO,{"current-site-id":i(o),"is-adjusting-share":i(l),"current-file":i(u),onClose:g},null,8,["current-site-id","is-adjusting-share","current-file"]),N(bue,{"current-file":i(u),"is-view-download-record":i(a),"share-files":i(r),"view-type":i(s),"current-site":c(i(o)),onClose:b[0]||(b[0]=x=>st(a)?a.value=!1:a=!1)},null,8,["current-file","is-view-download-record","share-files","view-type","current-site"])],64)}}},_ue={key:0,style:{"background-color":"white","padding-bottom":"400px","padding-left":"25px"}},Sue={key:0},Cue={key:0},kue={key:0},Eue=W("br",null,null,-1),$ue={key:0},Tue={key:0},Oue={__name:"index",setup(e){let t=M(),n=C(()=>{let S;return r.value.forEach(T=>{T.id===t.value&&(S=T)}),S}),o=C(()=>{let S=[];return l.value?d.value=1:S.push({id:0,hostname:"不修改服务器",availableSpace:0}),S.push(...Ye.state.sites),S}),r=C(()=>{let S=[];return Ye.state.users.forEach(T=>{T.id!==1&&S.push(T)}),S}),l=M(!1),a=M(""),s=M(""),u=M(0),c=M("GB"),f=M(""),d=M(0);function p(){a.value="",s.value="",u.value=0,f.value="",d.value=0}function h(S){let T;return o.value.forEach(k=>{k.id===S&&(T=k)}),T}function m(S){l.value=S===-1,t.value=S,p()}function v(S){let T;return o.value.forEach(k=>{k.id===S&&(T=k.hostname)}),T}function w(){l.value?g():_()}function g(){let S={},T;if(a.value.trim()!==""){let k="";if(r.value.forEach(R=>{R.username===a.value&&(k="不允许重复用户名")}),k!==""){et.error(k);return}S.username=a.value}else{et.error("请输入用户名");return}if(s.value.trim()!=="")S.passcode=s.value;else{et.error("请输入密码");return}if(isNaN(parseInt(u.value))){et.error("容量大小输入错误,请输入数字");return}else{if(T=u.value*xt[c.value],T<=0){et.error("请输入正确容量");return}else{let k=h(d.value);if(T>k.availableSpace){et.error("容量调整错误,不能超过服务器可分配空间,请先释放其他用户空间或增大服务器可分配看见后再尝试");return}}S.availableSpace=T,S.totalSpace=T}if(f.value.trim()!=="")f.value.endsWith("/")||f.value.endsWith("\\")||(f.value+="/"),(f.value.startsWith("/")||f.value.startsWith("\\"))&&(f.value=f.value.substring(0)),S.storagePath=f.value;else{et.error("请输入存储路径");return}if(d.value!==0){if(h(d.value).availableSpace{k.data.result==="success"?(et.success(k.data.data),p(),Ye.dispatch("loadUsers"),Ye.dispatch("loadSites")):et.error(k.data.data)})}function _(){let S={id:t.value},T;if(a.value.trim()!==""){let k="";if(r.value.forEach(R=>{R.id!==t.value&&R.username===a.value&&(k="重命名失败,不允许重复用户名")}),k!==""){et.error(k);return}S.username=a.value}if(s.value.trim()!==""&&(S.passcode=s.value),isNaN(parseInt(u.value))){if(u.value.trim()!==""){et.error("容量大小输入错误,请输入数字");return}}else if(u.value!==0){if(T=u.value*xt[c.value],T<0){if(T+n.value.availableSpace<0){et.error("容量调整错误,释放空间不能小于用户可用空间,请先删除用户空间并同步后再尝试");return}}else{let k=h(n.value.siteId);if(T>k.availableSpace){et.error("容量调整错误,增加空间不能超过服务器可分配空间,请先释放其他用户空间或增大服务器可分配看见后再尝试");return}}S.totalSpace=T}if(f.value.trim()!==""){if("totalSpace"in S){et.error("不允许同时调整容量以及存储路径,请重新输入");return}f.value.endsWith("/")||f.value.endsWith("\\")||(f.value+="/"),S.storagePath=f.value}if(d.value!==0){if("totalSpace"in S){et.error("不允许同时调整容量以及绑定服务器,请重新输入");return}if("storagePath"in S){et.error("不允许同时调整存储路径以及绑定服务器,请重新输入");return}rr.confirm("请注意,用户换绑服务器会导致原文件直接删除,请确保用户的文件已备份或转移到目标服务器了!","警告",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"}).then(()=>{S.siteId=d.value,St.post(Ye.state.config.host+"manage/user/alter?"+en.stringify(S)).then(k=>{k.data.result==="success"?(et.success(k.data.data),p(),Ye.dispatch("loadUsers"),Ye.dispatch("loadSites")):et.error(k.data.data)})});return}Object.keys(S).length!==1&&St.post(Ye.state.config.host+"manage/user/alter?"+en.stringify(S)).then(k=>{k.data.result==="success"?(et.success(k.data.data),p(),Ye.dispatch("loadUsers"),Ye.dispatch("loadSites")):et.error(k.data.data)})}function y(){rr.confirm("删除用户会直接删除用户的存储文件夹,请确保用户数据已备份,是否继续?","警告",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"}).then(()=>{St.post(Ye.state.config.host+"manage/user/remove?"+en.stringify({userid:t.value})).then(S=>{S.data.result==="success"?(et.success("用户删除成功"),Ye.dispatch("loadSites"),Ye.dispatch("loadUsers"),m(r.value[0].id)):et.error(S.data.data)})})}function b(){St.post(Ye.state.config.host+"manage/user/verifySpace?userid="+t.value).then(S=>{S.data.result==="success"?(et.success(S.data.data),Ye.dispatch("loadUsers")):et.error(S.data.data)})}function $(S){return S.id===0?"不修改服务器":S.id===n.value.siteId?"当前绑定服务器:"+S.id+" "+S.hostname+" 剩余空间:"+xt.formatSize(S.availableSpace):S.id+" "+S.hostname+" 剩余空间:"+xt.formatSize(S.availableSpace)}return ye(Lo.currentRoute,(S,T)=>{S.path!==T.path&&S.path.startsWith("/index/userManage/")&&(Lo.currentRoute.value.query.id===void 0&&Lo.replace(`/index/userManage/?id=${r.value[0].id}`),t.value=Number(r.value[0].id),r.value[0].id===-1&&(l.value=!0))}),nt(()=>{Lo.currentRoute.value.query.id===void 0?(Lo.replace(`/index/userManage/?id=${r.value[0].id}`),t.value=Number(r.value[0].id)):t.value=Number(Lo.currentRoute.value.query.id),t.value===-1&&(l.value=!0)}),(S,T)=>{const k=Al,R=Pl,x=Rl,A=on,F=Ml,B=$l,V=Wo,j=Ht;return E(),H(Le,null,[N(R,{mode:"horizontal","default-active":i(t)},{default:I(()=>[(E(!0),H(Le,null,ft(i(r),D=>(E(),ne(k,{index:D.id,onClick:L=>m(D.id)},{default:I(()=>[de(le(D.username),1)]),_:2},1032,["index","onClick"]))),256))]),_:1},8,["default-active"]),i(n)!==void 0?(E(),H("div",_ue,[N(F,null,{default:I(()=>[N(x,{span:8},{default:I(()=>[i(l)?te("",!0):(E(),H("span",Sue," 用户名:"+le(i(n).username),1))]),_:1}),N(x,{span:8},{default:I(()=>[N(A,{modelValue:i(a),"onUpdate:modelValue":T[0]||(T[0]=D=>st(a)?a.value=D:a=D)},{prepend:I(()=>[de(le(i(l)?"":"新")+"用户名 ",1)]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(F,null,{default:I(()=>[N(x,{span:8},{default:I(()=>[i(l)?te("",!0):(E(),H("span",Cue," 密码:"+le(i(n).passcode),1))]),_:1}),N(x,{span:8},{default:I(()=>[N(A,{modelValue:i(s),"onUpdate:modelValue":T[1]||(T[1]=D=>st(s)?s.value=D:s=D)},{prepend:I(()=>[de(le(i(l)?"":"新")+"密码 ",1)]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(F,null,{default:I(()=>[N(x,{span:8},{default:I(()=>[i(l)?te("",!0):(E(),H("span",kue,[de(" 当前可用空间:"+le(i(xt).formatSize(i(n).availableSpace)),1),Eue,de(" 总分配空间:"+le(i(xt).formatSize(i(n).totalSpace)),1)]))]),_:1}),N(x,{span:8,style:{"line-height":"37px"}},{default:I(()=>[N(A,{modelValue:i(u),"onUpdate:modelValue":T[3]||(T[3]=D=>st(u)?u.value=D:u=D)},{prepend:I(()=>[de(le((i(l)?"分配":"调整")+"空间"),1)]),append:I(()=>[N(V,{modelValue:i(c),"onUpdate:modelValue":T[2]||(T[2]=D=>st(c)?c.value=D:c=D),style:{width:"100px"}},{default:I(()=>[N(B,{value:"KB"}),N(B,{value:"MB"}),N(B,{value:"GB"})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(F,null,{default:I(()=>[N(x,{span:8},{default:I(()=>[i(l)?te("",!0):(E(),H("span",$ue," 存储路径:"+le(i(n).storagePath),1))]),_:1}),N(x,{span:8},{default:I(()=>[N(A,{modelValue:i(f),"onUpdate:modelValue":T[4]||(T[4]=D=>st(f)?f.value=D:f=D)},{prepend:I(()=>[de(le(i(l)?"":"新")+"存储路径 ",1)]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(F,null,{default:I(()=>[N(x,{span:8},{default:I(()=>[i(l)?te("",!0):(E(),H("span",Tue," 绑定服务器:"+le(v(i(n).siteId)),1))]),_:1}),N(x,{span:4},{default:I(()=>[N(V,{modelValue:i(d),"onUpdate:modelValue":T[5]||(T[5]=D=>st(d)?d.value=D:d=D),style:{width:"425px"}},{prefix:I(()=>[de(le(i(l)?"绑定服务器":""),1)]),default:I(()=>[(E(!0),H(Le,null,ft(i(o),D=>(E(),ne(B,{label:$(D),value:D.id,disabled:D.id===i(n).siteId||D.availableSpace===0},null,8,["label","value","disabled"]))),256))]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(F,null,{default:I(()=>[N(x,{span:8}),N(x,{span:8},{default:I(()=>[N(j,{onClick:w,type:"primary"},{default:I(()=>[de("提交"+le(i(l)?"新建":"修改"),1)]),_:1}),tt(N(j,{onClick:y,type:"danger"},{default:I(()=>[de("删除用户")]),_:1},512),[[bt,!i(l)]]),tt(N(j,{onClick:b},{default:I(()=>[de("校准用户可用空间")]),_:1},512),[[bt,!i(l)]])]),_:1})]),_:1})])):te("",!0)],64)}}},xue={class:"container"},Nue=W("br",null,null,-1),Mue={__name:"login",setup(e){let t=M(),n=M(),o=M(!1);function r(){if(n.value.trim()===""||t.value.trim()===""){et.error("请输入用户名或密码");return}St.post(Ye.state.config.host+`login?username=${t.value}&passcode=${n.value}`).then(l=>{if(l.data.result==="success"){Ye.state.config.username=t.value,Ye.state.config.passcode=n.value,Ye.state.config.isAdmin=l.data.isAdmin==="true",Ye.state.config.sessionId=l.data.sessionId,Ye.dispatch("loadSites"),Ye.dispatch("initWebsocket"),Ye.dispatch("loadUsers"),o.value&&(localStorage.setItem("username",t.value),localStorage.setItem("passcode",n.value));let a=localStorage.getItem("lastTime");et.success("登陆成功"),a!==null&&a.includes("?")?Lo.push(a):Lo.push("/index/status/?type=all")}else et.error(l.data.data)})}return nt(()=>{localStorage.getItem("logout")!==null?localStorage.removeItem("logout"):localStorage.getItem("passcode")!==null&&(t.value=localStorage.getItem("username"),n.value=localStorage.getItem("passcode"),r())}),(l,a)=>{const s=on,u=I2,c=ho,f=Ht;return E(),H("div",xue,[de(" 登录网盘"),Nue,N(u,null,{default:I(()=>[N(s,{modelValue:i(t),"onUpdate:modelValue":a[0]||(a[0]=d=>st(t)?t.value=d:t=d)},{prepend:I(()=>[de(" 用户名 ")]),_:1},8,["modelValue"]),N(s,{modelValue:i(n),"onUpdate:modelValue":a[1]||(a[1]=d=>st(n)?n.value=d:n=d),type:"password"},{prepend:I(()=>[de(" 密码 ")]),_:1},8,["modelValue"])]),_:1}),W("div",null,[N(c,{modelValue:i(o),"onUpdate:modelValue":a[2]||(a[2]=d=>st(o)?o.value=d:o=d),style:{float:"left"}},{default:I(()=>[de("是否记住密码")]),_:1},8,["modelValue"]),N(f,{onClick:a[3]||(a[3]=d=>r(i(n))),style:{"text-align":"right"}},{default:I(()=>[de("登录")]),_:1})])])}}};var My={};Object.defineProperty(My,"__esModule",{value:!0});var fO=My.default=void 0,Hl=Ny,Rue=Ur,Iue=(0,Rue.IconWrapper)("every-user",!1,function(e){return(0,Hl.createVNode)("svg",{width:e.size,height:e.size,viewBox:"0 0 48 48",fill:"none"},[(0,Hl.createVNode)("circle",{cx:"14",cy:"29",r:"5",fill:e.colors[1],stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),(0,Hl.createVNode)("circle",{cx:"34",cy:"29",r:"5",fill:e.colors[1],stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),(0,Hl.createVNode)("circle",{cx:"24",cy:"9",r:"5",fill:e.colors[1],stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),(0,Hl.createVNode)("path",{d:"M24 44C24 38.4772 19.5228 34 14 34C8.47715 34 4 38.4772 4 44",stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),(0,Hl.createVNode)("path",{d:"M44 44C44 38.4772 39.5228 34 34 34C28.4772 34 24 38.4772 24 44",stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),(0,Hl.createVNode)("path",{d:"M34 24C34 18.4772 29.5228 14 24 14C18.4772 14 14 18.4772 14 24",stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null)])});fO=My.default=Iue;const Pue={__name:"sideBar",setup(e){let t=li();function n(){localStorage.clear(),delete Ye.state.config.passcode,Ye.state.websocket.close(),Ye.commit("logout"),t.push("login")}function o(){rr.prompt("请输入新密码:","修改密码",{confirmButtonText:"确认",cancelButtonText:"取消",inputValue:""}).then(r=>{if(r.value.trim()===""){et.error("密码不能为空");return}St.post(Ye.state.config.host+"alterPasscode?"+en.stringify({passcode:r.value})).then(l=>{et.success(l.data.data),Ye.commit("updatePasscode",r.value),t.push("/login")})}).catch(()=>{})}return(r,l)=>{const a=Be,s=Al,u=Pl;return E(),ne(u,{"default-active":r.$router.currentRoute.value.path,router:""},{default:I(()=>[N(s,{index:"/index/status/"},{title:I(()=>[N(a,null,{default:I(()=>[N(i(m8))]),_:1}),de("服务器概览 ")]),_:1}),N(s,{index:"/index/fileManage/"},{title:I(()=>[N(a,null,{default:I(()=>[N(i(HC))]),_:1}),de(" 文件管理 ")]),_:1}),N(s,{index:"/index/taskManage/"},{title:I(()=>[N(a,null,{default:I(()=>[N(i(T8))]),_:1}),de(" 任务管理 ")]),_:1}),i(Ye).state.config.isAdmin?(E(),ne(s,{key:0,index:"/index/siteManage/"},{default:I(()=>[N(a,null,{default:I(()=>[N(i(Y8))]),_:1}),de(" 服务器管理 ")]),_:1})):te("",!0),i(Ye).state.config.isAdmin?(E(),ne(s,{key:1,index:"/index/userManage/"},{default:I(()=>[N(a,null,{default:I(()=>[N(i(fO),{theme:"outline"})]),_:1}),de(" 用户管理 ")]),_:1})):te("",!0),N(s,{index:"/index/shareManage/"},{default:I(()=>[N(a,null,{default:I(()=>[N(i(WC))]),_:1}),de(" 分享码管理 ")]),_:1}),N(s,{onClick:o},{default:I(()=>[N(a,null,{default:I(()=>[N(i(Q8))]),_:1}),de(" 修改密码 ")]),_:1}),N(s,{onClick:n},{default:I(()=>[N(a,null,{default:I(()=>[N(i(To))]),_:1}),de(" 退出登录 ")]),_:1})]),_:1},8,["default-active"])}}},Aue=W("br",null,null,-1),Lue=W("br",null,null,-1),Fue=W("br",null,null,-1),Due=W("br",null,null,-1),Bue=W("br",null,null,-1),Vue=W("br",null,null,-1),Hue=W("br",null,null,-1),zue=W("br",null,null,-1),Kue=W("br",null,null,-1),Wue={__name:"index",setup(e){let t=M(!1),n=M({}),o=M(0),r=M("GB");ye(Ye.getters.getPairMessage,()=>{n.value=Ye.getters.getPairMessage,t.value=!0});function l(a){let s;if(a){if(isNaN(o.value)||o.value.trim()===""){et.error("请输入正确的格式");return}if(s=o.value*xt[r.value],s<=0||s>n.value.availableSpace){et.error("容量输入错误,不能为0或超出服务器可用容量");return}}Ye.dispatch("processPairRequest",{result:a,totalSpace:s}),t.value=!1}return(a,s)=>{const u=at("router-view"),c=yr,f=Ng,d=xg,p=$l,h=Wo,m=on,v=Ht,w=Il;return E(),H(Le,null,[N(d,null,{default:I(()=>[N(Pue,{style:{width:"12vw"}}),N(f,{style:{height:"95vh",width:"88vw","padding-top":"0",overflow:"hidden"}},{default:I(()=>[N(c,{"max-height":"95vh"},{default:I(()=>[N(u)]),_:1})]),_:1})]),_:1}),N(w,{modelValue:i(t),"onUpdate:modelValue":s[4]||(s[4]=g=>st(t)?t.value=g:t=g),title:"配对请求"},{footer:I(()=>[N(v,{onClick:s[2]||(s[2]=g=>l(!0)),type:"primary"},{default:I(()=>[de("允许")]),_:1}),N(v,{onClick:s[3]||(s[3]=g=>l(!1))},{default:I(()=>[de("拒绝")]),_:1})]),default:I(()=>[de(" ip地址:"+le(i(n).ip),1),Aue,de(" 主机名:"+le(i(n).hostname),1),Lue,de(" 系统版本:"+le(i(n).system),1),Fue,de(" cpu架构:"+le(i(n).cpuArch),1),Due,de(" cpu核心数:"+le(i(n).cpuCore),1),Bue,de(" cpu线程数:"+le(i(n).cpuThread),1),Vue,de(" 反代前缀:"+le(i(n).reverseProxyPrefix===null?"无":i(n).reverseProxyPrefix),1),Hue,de(" 域名:"+le(i(n).domain===null?"无":i(n).domain),1),zue,de(" 可用空间:"+le(i(xt).formatSize(i(n).availableSpace)),1),Kue,N(m,{style:{width:"250px"},modelValue:i(o),"onUpdate:modelValue":s[1]||(s[1]=g=>st(o)?o.value=g:o=g)},{prepend:I(()=>[de(" 分配容量: ")]),append:I(()=>[N(h,{placeholder:"单位",modelValue:i(r),"onUpdate:modelValue":s[0]||(s[0]=g=>st(r)?r.value=g:r=g)},{default:I(()=>[N(p,{value:"KB"}),N(p,{value:"MB"}),N(p,{value:"GB"})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])],64)}}},jue=[{path:"/login",component:Mue},{path:"/index",component:Wue,children:[{path:"status",component:Oie},{path:"fileManage",component:oue},{path:"taskManage",component:hue},{path:"siteManage",component:gue},{path:"shareManage",component:wue},{path:"userManage",component:Oue}]}],Lo=$ie({history:zse(),routes:jue});ye(()=>Ye.state.isWsOnline,()=>{Ye.state.isWsOnline||Lo.push("/login")});Lo.beforeEach((e,t)=>{if(e.path!=="/login")return"passcode"in Ye.state.config?(localStorage.setItem("lastTime",e.fullPath),!0):{path:"/login"}});let Ry=Tm(bM);Ry.use(Lo);Ry.use(Une);Ry.mount("#app")});export default Uue(); + */const ts=typeof window<"u";function kse(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const Kt=Object.assign;function th(e,t){const n={};for(const o in t){const r=t[o];n[o]=jo(r)?r.map(e):e(r)}return n}const Vi=()=>{},jo=Array.isArray,Ese=/\/$/,$se=e=>e.replace(Ese,"");function nh(e,t,n="/"){let o,r={},l="",a="";const s=t.indexOf("#");let u=t.indexOf("?");return s=0&&(u=-1),u>-1&&(o=t.slice(0,u),l=t.slice(u+1,s>-1?s:t.length),r=e(l)),s>-1&&(o=o||t.slice(0,s),a=t.slice(s,t.length)),o=Nse(o??t,n),{fullPath:o+(l&&"?")+l+a,path:o,query:r,hash:a}}function Tse(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function zw(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Ose(e,t,n){const o=t.matched.length-1,r=n.matched.length-1;return o>-1&&o===r&&js(t.matched[o],n.matched[r])&&XT(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function js(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function XT(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!xse(e[n],t[n]))return!1;return!0}function xse(e,t){return jo(e)?Kw(e,t):jo(t)?Kw(t,e):e===t}function Kw(e,t){return jo(t)?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function Nse(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),r=o[o.length-1];(r===".."||r===".")&&o.push("");let l=n.length-1,a,s;for(a=0;a1&&l--;else break;return n.slice(0,l).join("/")+"/"+o.slice(a-(a===o.length?1:0)).join("/")}var bu;(function(e){e.pop="pop",e.push="push"})(bu||(bu={}));var Hi;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Hi||(Hi={}));function Mse(e){if(!e)if(ts){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),$se(e)}const Rse=/^[^#]+#/;function Ise(e,t){return e.replace(Rse,"#")+t}function Pse(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}const Jf=()=>({left:window.pageXOffset,top:window.pageYOffset});function Ase(e){let t;if("el"in e){const n=e.el,o=typeof n=="string"&&n.startsWith("#"),r=typeof n=="string"?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!r)return;t=Pse(r,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function Ww(e,t){return(history.state?history.state.position-t:-1)+e}const Gv=new Map;function Lse(e,t){Gv.set(e,t)}function Fse(e){const t=Gv.get(e);return Gv.delete(e),t}let Dse=()=>location.protocol+"//"+location.host;function JT(e,t){const{pathname:n,search:o,hash:r}=t,l=e.indexOf("#");if(l>-1){let s=r.includes(e.slice(l))?e.slice(l).length:1,u=r.slice(s);return u[0]!=="/"&&(u="/"+u),zw(u,"")}return zw(n,e)+o+r}function Bse(e,t,n,o){let r=[],l=[],a=null;const s=({state:p})=>{const h=JT(e,location),m=n.value,v=t.value;let w=0;if(p){if(n.value=h,t.value=p,a&&a===m){a=null;return}w=v?p.position-v.position:0}else o(h);r.forEach(g=>{g(n.value,m,{delta:w,type:bu.pop,direction:w?w>0?Hi.forward:Hi.back:Hi.unknown})})};function u(){a=n.value}function c(p){r.push(p);const h=()=>{const m=r.indexOf(p);m>-1&&r.splice(m,1)};return l.push(h),h}function f(){const{history:p}=window;p.state&&p.replaceState(Kt({},p.state,{scroll:Jf()}),"")}function d(){for(const p of l)p();l=[],window.removeEventListener("popstate",s),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",s),window.addEventListener("beforeunload",f,{passive:!0}),{pauseListeners:u,listen:c,destroy:d}}function jw(e,t,n,o=!1,r=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:r?Jf():null}}function Vse(e){const{history:t,location:n}=window,o={value:JT(e,n)},r={value:t.state};r.value||l(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function l(u,c,f){const d=e.indexOf("#"),p=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+u:Dse()+e+u;try{t[f?"replaceState":"pushState"](c,"",p),r.value=c}catch(h){console.error(h),n[f?"replace":"assign"](p)}}function a(u,c){const f=Kt({},t.state,jw(r.value.back,u,r.value.forward,!0),c,{position:r.value.position});l(u,f,!0),o.value=u}function s(u,c){const f=Kt({},r.value,t.state,{forward:u,scroll:Jf()});l(f.current,f,!0);const d=Kt({},jw(o.value,u,null),{position:f.position+1},c);l(u,d,!1),o.value=u}return{location:o,state:r,push:s,replace:a}}function Hse(e){e=Mse(e);const t=Vse(e),n=Bse(e,t.state,t.location,t.replace);function o(l,a=!0){a||n.pauseListeners(),history.go(l)}const r=Kt({location:"",base:e,go:o,createHref:Ise.bind(null,e)},t,n);return Object.defineProperty(r,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(r,"state",{enumerable:!0,get:()=>t.state.value}),r}function zse(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Hse(e)}function Kse(e){return typeof e=="string"||e&&typeof e=="object"}function ZT(e){return typeof e=="string"||typeof e=="symbol"}const el={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},QT=Symbol("");var Uw;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Uw||(Uw={}));function Us(e,t){return Kt(new Error,{type:e,[QT]:!0},t)}function Er(e,t){return e instanceof Error&&QT in e&&(t==null||!!(e.type&t))}const qw="[^/]+?",Wse={sensitive:!1,strict:!1,start:!0,end:!0},jse=/[.+*?^${}()[\]/\\]/g;function Use(e,t){const n=Kt({},Wse,t),o=[];let r=n.start?"^":"";const l=[];for(const c of e){const f=c.length?[]:[90];n.strict&&!c.length&&(r+="/");for(let d=0;dt.length?t.length===1&&t[0]===80?1:-1:0}function Gse(e,t){let n=0;const o=e.score,r=t.score;for(;n0&&t[t.length-1]<0}const Yse={type:0,value:""},Xse=/[a-zA-Z0-9_]/;function Jse(e){if(!e)return[[]];if(e==="/")return[[Yse]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(h){throw new Error(`ERR (${n})/"${c}": ${h}`)}let n=0,o=n;const r=[];let l;function a(){l&&r.push(l),l=[]}let s=0,u,c="",f="";function d(){c&&(n===0?l.push({type:0,value:c}):n===1||n===2||n===3?(l.length>1&&(u==="*"||u==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),l.push({type:1,value:c,regexp:f,repeatable:u==="*"||u==="+",optional:u==="*"||u==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=u}for(;s{a(_)}:Vi}function a(f){if(ZT(f)){const d=o.get(f);d&&(o.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(a),d.alias.forEach(a))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&o.delete(f.record.name),f.children.forEach(a),f.alias.forEach(a))}}function s(){return n}function u(f){let d=0;for(;d=0&&(f.record.path!==n[d].record.path||!eO(f,n[d]));)d++;n.splice(d,0,f),f.record.name&&!Xw(f)&&o.set(f.record.name,f)}function c(f,d){let p,h={},m,v;if("name"in f&&f.name){if(p=o.get(f.name),!p)throw Us(1,{location:f});v=p.record.name,h=Kt(Yw(d.params,p.keys.filter(_=>!_.optional).map(_=>_.name)),f.params&&Yw(f.params,p.keys.map(_=>_.name))),m=p.stringify(h)}else if("path"in f)m=f.path,p=n.find(_=>_.re.test(m)),p&&(h=p.parse(m),v=p.record.name);else{if(p=d.name?o.get(d.name):n.find(_=>_.re.test(d.path)),!p)throw Us(1,{location:f,currentLocation:d});v=p.record.name,h=Kt({},d.params,f.params),m=p.stringify(h)}const w=[];let g=p;for(;g;)w.unshift(g.record),g=g.parent;return{name:v,path:m,params:h,matched:w,meta:nie(w)}}return e.forEach(f=>l(f)),{addRoute:l,resolve:c,removeRoute:a,getRoutes:s,getRecordMatcher:r}}function Yw(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function eie(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:tie(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function tie(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]=typeof n=="object"?n[o]:n;return t}function Xw(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function nie(e){return e.reduce((t,n)=>Kt(t,n.meta),{})}function Jw(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}function eO(e,t){return t.children.some(n=>n===e||eO(e,n))}const tO=/#/g,oie=/&/g,rie=/\//g,lie=/=/g,aie=/\?/g,nO=/\+/g,sie=/%5B/g,iie=/%5D/g,oO=/%5E/g,uie=/%60/g,rO=/%7B/g,cie=/%7C/g,lO=/%7D/g,die=/%20/g;function Oy(e){return encodeURI(""+e).replace(cie,"|").replace(sie,"[").replace(iie,"]")}function fie(e){return Oy(e).replace(rO,"{").replace(lO,"}").replace(oO,"^")}function Yv(e){return Oy(e).replace(nO,"%2B").replace(die,"+").replace(tO,"%23").replace(oie,"%26").replace(uie,"`").replace(rO,"{").replace(lO,"}").replace(oO,"^")}function pie(e){return Yv(e).replace(lie,"%3D")}function hie(e){return Oy(e).replace(tO,"%23").replace(aie,"%3F")}function vie(e){return e==null?"":hie(e).replace(rie,"%2F")}function Jd(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function mie(e){const t={};if(e===""||e==="?")return t;const o=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rl&&Yv(l)):[o&&Yv(o)]).forEach(l=>{l!==void 0&&(t+=(t.length?"&":"")+n,l!=null&&(t+="="+l))})}return t}function gie(e){const t={};for(const n in e){const o=e[n];o!==void 0&&(t[n]=jo(o)?o.map(r=>r==null?null:""+r):o==null?o:""+o)}return t}const yie=Symbol(""),Qw=Symbol(""),Zf=Symbol(""),aO=Symbol(""),Xv=Symbol("");function mi(){let e=[];function t(o){return e.push(o),()=>{const r=e.indexOf(o);r>-1&&e.splice(r,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function cl(e,t,n,o,r){const l=o&&(o.enterCallbacks[r]=o.enterCallbacks[r]||[]);return()=>new Promise((a,s)=>{const u=d=>{d===!1?s(Us(4,{from:n,to:t})):d instanceof Error?s(d):Kse(d)?s(Us(2,{from:t,to:d})):(l&&o.enterCallbacks[r]===l&&typeof d=="function"&&l.push(d),a())},c=e.call(o&&o.instances[r],t,n,u);let f=Promise.resolve(c);e.length<3&&(f=f.then(u)),f.catch(d=>s(d))})}function oh(e,t,n,o){const r=[];for(const l of e)for(const a in l.components){let s=l.components[a];if(!(t!=="beforeRouteEnter"&&!l.instances[a]))if(bie(s)){const c=(s.__vccOpts||s)[t];c&&r.push(cl(c,n,o,l,a))}else{let u=s();r.push(()=>u.then(c=>{if(!c)return Promise.reject(new Error(`Couldn't resolve component "${a}" at "${l.path}"`));const f=kse(c)?c.default:c;l.components[a]=f;const p=(f.__vccOpts||f)[t];return p&&cl(p,n,o,l,a)()}))}}return r}function bie(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function e_(e){const t=De(Zf),n=De(aO),o=C(()=>t.resolve(i(e.to))),r=C(()=>{const{matched:u}=o.value,{length:c}=u,f=u[c-1],d=n.matched;if(!f||!d.length)return-1;const p=d.findIndex(js.bind(null,f));if(p>-1)return p;const h=t_(u[c-2]);return c>1&&t_(f)===h&&d[d.length-1].path!==h?d.findIndex(js.bind(null,u[c-2])):p}),l=C(()=>r.value>-1&&Cie(n.params,o.value.params)),a=C(()=>r.value>-1&&r.value===n.matched.length-1&&XT(n.params,o.value.params));function s(u={}){return Sie(u)?t[i(e.replace)?"replace":"push"](i(e.to)).catch(Vi):Promise.resolve()}return{route:o,href:C(()=>o.value.href),isActive:l,isExactActive:a,navigate:s}}const wie=U({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:e_,setup(e,{slots:t}){const n=Et(e_(e)),{options:o}=De(Zf),r=C(()=>({[n_(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[n_(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const l=t.default&&t.default(n);return e.custom?l:je("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:r.value},l)}}}),_ie=wie;function Sie(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Cie(e,t){for(const n in t){const o=t[n],r=e[n];if(typeof o=="string"){if(o!==r)return!1}else if(!jo(r)||r.length!==o.length||o.some((l,a)=>l!==r[a]))return!1}return!0}function t_(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const n_=(e,t,n)=>e??t??n,kie=U({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=De(Xv),r=C(()=>e.route||o.value),l=De(Qw,0),a=C(()=>{let c=i(l);const{matched:f}=r.value;let d;for(;(d=f[c])&&!d.components;)c++;return c}),s=C(()=>r.value.matched[a.value]);gt(Qw,C(()=>a.value+1)),gt(yie,s),gt(Xv,r);const u=M();return ye(()=>[u.value,s.value,e.name],([c,f,d],[p,h,m])=>{f&&(f.instances[d]=c,h&&h!==f&&c&&c===p&&(f.leaveGuards.size||(f.leaveGuards=h.leaveGuards),f.updateGuards.size||(f.updateGuards=h.updateGuards))),c&&f&&(!h||!js(f,h)||!p)&&(f.enterCallbacks[d]||[]).forEach(v=>v(c))},{flush:"post"}),()=>{const c=r.value,f=e.name,d=s.value,p=d&&d.components[f];if(!p)return o_(n.default,{Component:p,route:c});const h=d.props[f],m=h?h===!0?c.params:typeof h=="function"?h(c):h:null,w=je(p,Kt({},m,t,{onVnodeUnmounted:g=>{g.component.isUnmounted&&(d.instances[f]=null)},ref:u}));return o_(n.default,{Component:w,route:c})||w}}});function o_(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Eie=kie;function $ie(e){const t=Qse(e.routes,e),n=e.parseQuery||mie,o=e.stringifyQuery||Zw,r=e.history,l=mi(),a=mi(),s=mi(),u=Ft(el);let c=el;ts&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=th.bind(null,X=>""+X),d=th.bind(null,vie),p=th.bind(null,Jd);function h(X,Q){let ce,ue;return ZT(X)?(ce=t.getRecordMatcher(X),ue=Q):ue=X,t.addRoute(ue,ce)}function m(X){const Q=t.getRecordMatcher(X);Q&&t.removeRoute(Q)}function v(){return t.getRoutes().map(X=>X.record)}function w(X){return!!t.getRecordMatcher(X)}function g(X,Q){if(Q=Kt({},Q||u.value),typeof X=="string"){const J=nh(n,X,Q.path),ge=t.resolve({path:J.path},Q),$e=r.createHref(J.fullPath);return Kt(J,ge,{params:p(ge.params),hash:Jd(J.hash),redirectedFrom:void 0,href:$e})}let ce;if("path"in X)ce=Kt({},X,{path:nh(n,X.path,Q.path).path});else{const J=Kt({},X.params);for(const ge in J)J[ge]==null&&delete J[ge];ce=Kt({},X,{params:d(J)}),Q.params=d(Q.params)}const ue=t.resolve(ce,Q),we=X.hash||"";ue.params=f(p(ue.params));const Oe=Tse(o,Kt({},X,{hash:fie(we),path:ue.path})),q=r.createHref(Oe);return Kt({fullPath:Oe,hash:we,query:o===Zw?gie(X.query):X.query||{}},ue,{redirectedFrom:void 0,href:q})}function _(X){return typeof X=="string"?nh(n,X,u.value.path):Kt({},X)}function y(X,Q){if(c!==X)return Us(8,{from:Q,to:X})}function b(X){return T(X)}function $(X){return b(Kt(_(X),{replace:!0}))}function S(X){const Q=X.matched[X.matched.length-1];if(Q&&Q.redirect){const{redirect:ce}=Q;let ue=typeof ce=="function"?ce(X):ce;return typeof ue=="string"&&(ue=ue.includes("?")||ue.includes("#")?ue=_(ue):{path:ue},ue.params={}),Kt({query:X.query,hash:X.hash,params:"path"in ue?{}:X.params},ue)}}function T(X,Q){const ce=c=g(X),ue=u.value,we=X.state,Oe=X.force,q=X.replace===!0,J=S(ce);if(J)return T(Kt(_(J),{state:typeof J=="object"?Kt({},we,J.state):we,force:Oe,replace:q}),Q||ce);const ge=ce;ge.redirectedFrom=Q;let $e;return!Oe&&Ose(o,ue,ce)&&($e=Us(16,{to:ge,from:ue}),G(ue,ue,!0,!1)),($e?Promise.resolve($e):x(ge,ue)).catch(he=>Er(he)?Er(he,2)?he:K(he):z(he,ge,ue)).then(he=>{if(he){if(Er(he,2))return T(Kt({replace:q},_(he.to),{state:typeof he.to=="object"?Kt({},we,he.to.state):we,force:Oe}),Q||ge)}else he=F(ge,ue,!0,q,we);return A(ge,ue,he),he})}function k(X,Q){const ce=y(X,Q);return ce?Promise.reject(ce):Promise.resolve()}function R(X){const Q=fe.values().next().value;return Q&&typeof Q.runWithContext=="function"?Q.runWithContext(X):X()}function x(X,Q){let ce;const[ue,we,Oe]=Tie(X,Q);ce=oh(ue.reverse(),"beforeRouteLeave",X,Q);for(const J of ue)J.leaveGuards.forEach(ge=>{ce.push(cl(ge,X,Q))});const q=k.bind(null,X,Q);return ce.push(q),ie(ce).then(()=>{ce=[];for(const J of l.list())ce.push(cl(J,X,Q));return ce.push(q),ie(ce)}).then(()=>{ce=oh(we,"beforeRouteUpdate",X,Q);for(const J of we)J.updateGuards.forEach(ge=>{ce.push(cl(ge,X,Q))});return ce.push(q),ie(ce)}).then(()=>{ce=[];for(const J of Oe)if(J.beforeEnter)if(jo(J.beforeEnter))for(const ge of J.beforeEnter)ce.push(cl(ge,X,Q));else ce.push(cl(J.beforeEnter,X,Q));return ce.push(q),ie(ce)}).then(()=>(X.matched.forEach(J=>J.enterCallbacks={}),ce=oh(Oe,"beforeRouteEnter",X,Q),ce.push(q),ie(ce))).then(()=>{ce=[];for(const J of a.list())ce.push(cl(J,X,Q));return ce.push(q),ie(ce)}).catch(J=>Er(J,8)?J:Promise.reject(J))}function A(X,Q,ce){s.list().forEach(ue=>R(()=>ue(X,Q,ce)))}function F(X,Q,ce,ue,we){const Oe=y(X,Q);if(Oe)return Oe;const q=Q===el,J=ts?history.state:{};ce&&(ue||q?r.replace(X.fullPath,Kt({scroll:q&&J&&J.scroll},we)):r.push(X.fullPath,we)),u.value=X,G(X,Q,ce,q),K()}let B;function V(){B||(B=r.listen((X,Q,ce)=>{if(!ke.listening)return;const ue=g(X),we=S(ue);if(we){T(Kt(we,{replace:!0}),ue).catch(Vi);return}c=ue;const Oe=u.value;ts&&Lse(Ww(Oe.fullPath,ce.delta),Jf()),x(ue,Oe).catch(q=>Er(q,12)?q:Er(q,2)?(T(q.to,ue).then(J=>{Er(J,20)&&!ce.delta&&ce.type===bu.pop&&r.go(-1,!1)}).catch(Vi),Promise.reject()):(ce.delta&&r.go(-ce.delta,!1),z(q,ue,Oe))).then(q=>{q=q||F(ue,Oe,!1),q&&(ce.delta&&!Er(q,8)?r.go(-ce.delta,!1):ce.type===bu.pop&&Er(q,20)&&r.go(-1,!1)),A(ue,Oe,q)}).catch(Vi)}))}let j=mi(),D=mi(),L;function z(X,Q,ce){K(X);const ue=D.list();return ue.length?ue.forEach(we=>we(X,Q,ce)):console.error(X),Promise.reject(X)}function P(){return L&&u.value!==el?Promise.resolve():new Promise((X,Q)=>{j.add([X,Q])})}function K(X){return L||(L=!X,V(),j.list().forEach(([Q,ce])=>X?ce(X):Q()),j.reset()),X}function G(X,Q,ce,ue){const{scrollBehavior:we}=e;if(!ts||!we)return Promise.resolve();const Oe=!ce&&Fse(Ww(X.fullPath,0))||(ue||!ce)&&history.state&&history.state.scroll||null;return We().then(()=>we(X,Q,Oe)).then(q=>q&&Ase(q)).catch(q=>z(q,X,Q))}const Y=X=>r.go(X);let Z;const fe=new Set,ke={currentRoute:u,listening:!0,addRoute:h,removeRoute:m,hasRoute:w,getRoutes:v,resolve:g,options:e,push:b,replace:$,go:Y,back:()=>Y(-1),forward:()=>Y(1),beforeEach:l.add,beforeResolve:a.add,afterEach:s.add,onError:D.add,isReady:P,install(X){const Q=this;X.component("RouterLink",_ie),X.component("RouterView",Eie),X.config.globalProperties.$router=Q,Object.defineProperty(X.config.globalProperties,"$route",{enumerable:!0,get:()=>i(u)}),ts&&!Z&&u.value===el&&(Z=!0,b(r.location).catch(we=>{}));const ce={};for(const we in el)Object.defineProperty(ce,we,{get:()=>u.value[we],enumerable:!0});X.provide(Zf,Q),X.provide(aO,of(ce)),X.provide(Xv,u);const ue=X.unmount;fe.add(X),X.unmount=function(){fe.delete(X),fe.size<1&&(c=el,B&&B(),B=null,u.value=el,Z=!1,L=!1),ue()}}};function ie(X){return X.reduce((Q,ce)=>Q.then(()=>R(ce)),Promise.resolve())}return ke}function Tie(e,t){const n=[],o=[],r=[],l=Math.max(t.matched.length,e.matched.length);for(let a=0;ajs(c,s))?o.push(s):n.push(s));const u=e.matched[a];u&&(t.matched.find(c=>js(c,u))||r.push(u))}return[n,o,r]}function li(){return De(Zf)}const Oie={__name:"index",setup(e){let t=li(),n=M("all"),o=M({}),r=C(()=>Ye.state.sites),l=C(()=>Ye.getters.getOnlineSites),a=C(()=>Ye.getters.getOfflineSites),s=M([]),u=M();function c(d){n.value=d}function f(){let d=JSON.parse(JSON.stringify(t.currentRoute.value.query));switch(d.type=n.value,t.push({path:t.currentRoute.value.path,query:d}),n.value){case"all":s.value=r.value;break;case"online":s.value=l.value;break;case"offline":s.value=a.value;break}}return ye(Ye.getters.getStatues,()=>{o.value=Ye.getters.getStatues}),ye(n,()=>{f()}),ye(r,()=>{f()}),ye(t.currentRoute,()=>{t.currentRoute.value.path.startsWith("/index/status/")&&(t.currentRoute.value.query.type===void 0||t.currentRoute.value.query.type!=="all"&&t.currentRoute.value.query.type!=="online"&&t.currentRoute.value.query.type!=="offline"?n.value="all":n.value=t.currentRoute.value.query.type,f())}),nt(()=>{t.currentRoute.value.path.startsWith("/index/status/")&&(t.currentRoute.value.query.type===void 0||t.currentRoute.value.query.type!=="all"&&t.currentRoute.value.query.type!=="online"&&t.currentRoute.value.query.type!=="offline"?n.value="all":n.value=t.currentRoute.value.query.type,f())}),(d,p)=>{const h=Al,m=Pl,v=Rl,w=Ml;return E(),H("div",null,[i(Ye).state.config.isAdmin?(E(),ne(m,{key:0,mode:"horizontal","default-active":i(n),ref_key:"menu",ref:u},{default:I(()=>[N(h,{index:"all",onClick:p[0]||(p[0]=g=>c("all"))},{default:I(()=>[de("全部服务器")]),_:1}),N(h,{index:"online",onClick:p[1]||(p[1]=g=>c("online"))},{default:I(()=>[de("在线服务器")]),_:1}),N(h,{index:"offline",onClick:p[2]||(p[2]=g=>c("offline"))},{default:I(()=>[de("离线服务器")]),_:1})]),_:1},8,["default-active"])):(E(),ne(m,{key:1,mode:"horizontal","default-active":"all",router:"",ref_key:"menu",ref:u},{default:I(()=>[N(h,{index:"all"},{default:I(()=>[de("当前服务器")]),_:1})]),_:1},512)),N(w,null,{default:I(()=>[(E(!0),H(Le,null,ft(i(s),g=>(E(),ne(v,{span:7,key:g.id},{default:I(()=>[N(boe,{status:i(o)[g.id],site:g},null,8,["status","site"])]),_:2},1024))),128))]),_:1})])}}};var xy={};const Ny=ek(mM);var Ur={};Object.defineProperty(Ur,"__esModule",{value:!0});Ur.DEFAULT_ICON_CONFIGS=void 0;Ur.IconConverter=iO;Ur.IconProvider=void 0;Ur.IconWrapper=Mie;var Jv=Ny,sO={size:"1em",strokeWidth:4,strokeLinecap:"round",strokeLinejoin:"round",rtl:!1,theme:"outline",colors:{outline:{fill:"#333",background:"transparent"},filled:{fill:"#333",background:"#FFF"},twoTone:{fill:"#333",twoTone:"#2F88FF"},multiColor:{outStrokeColor:"#333",outFillColor:"#2F88FF",innerStrokeColor:"#FFF",innerFillColor:"#43CCF8"}},prefix:"i"};Ur.DEFAULT_ICON_CONFIGS=sO;function xie(){return"icon-"+((1+Math.random())*4294967296|0).toString(16).substring(1)}function iO(e,t,n){var o=typeof t.fill=="string"?[t.fill]:t.fill||[],r=[],l=t.theme||n.theme;switch(l){case"outline":r.push(typeof o[0]=="string"?o[0]:"currentColor"),r.push("none"),r.push(typeof o[0]=="string"?o[0]:"currentColor"),r.push("none");break;case"filled":r.push(typeof o[0]=="string"?o[0]:"currentColor"),r.push(typeof o[0]=="string"?o[0]:"currentColor"),r.push("#FFF"),r.push("#FFF");break;case"two-tone":r.push(typeof o[0]=="string"?o[0]:"currentColor"),r.push(typeof o[1]=="string"?o[1]:n.colors.twoTone.twoTone),r.push(typeof o[0]=="string"?o[0]:"currentColor"),r.push(typeof o[1]=="string"?o[1]:n.colors.twoTone.twoTone);break;case"multi-color":r.push(typeof o[0]=="string"?o[0]:"currentColor"),r.push(typeof o[1]=="string"?o[1]:n.colors.multiColor.outFillColor),r.push(typeof o[2]=="string"?o[2]:n.colors.multiColor.innerStrokeColor),r.push(typeof o[3]=="string"?o[3]:n.colors.multiColor.innerFillColor);break}return{size:t.size||n.size,strokeWidth:t.strokeWidth||n.strokeWidth,strokeLinecap:t.strokeLinecap||n.strokeLinecap,strokeLinejoin:t.strokeLinejoin||n.strokeLinejoin,colors:r,id:e}}var uO=Symbol("icon-context"),Nie=function(t){(0,Jv.provide)(uO,t)};Ur.IconProvider=Nie;function Mie(e,t,n){var o={name:"icon-"+e,props:["size","strokeWidth","strokeLinecap","strokeLinejoin","theme","fill","spin"],setup:function(l){var a=xie(),s=(0,Jv.inject)(uO,sO);return function(){var u=l.size,c=l.strokeWidth,f=l.strokeLinecap,d=l.strokeLinejoin,p=l.theme,h=l.fill,m=l.spin,v=iO(a,{size:u,strokeWidth:c,strokeLinecap:f,strokeLinejoin:d,theme:p,fill:h},s),w=[s.prefix+"-icon"];return w.push(s.prefix+"-icon-"+e),t&&s.rtl&&w.push(s.prefix+"-icon-rtl"),m&&w.push(s.prefix+"-icon-spin"),(0,Jv.createVNode)("span",{class:w.join(" ")},[n(v)])}}};return o}Object.defineProperty(xy,"__esModule",{value:!0});var cO=xy.default=void 0,Ic=Ny,Rie=Ur,Iie=(0,Rie.IconWrapper)("hard-disk",!0,function(e){return(0,Ic.createVNode)("svg",{width:e.size,height:e.size,viewBox:"0 0 48 48",fill:"none"},[(0,Ic.createVNode)("path",{d:"M44 29H4V42H44V29Z",fill:e.colors[1],stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linejoin":e.strokeLinejoin},null),(0,Ic.createVNode)("path",{d:"M35.5 38C36.8807 38 38 36.8807 38 35.5C38 34.1193 36.8807 33 35.5 33C34.1193 33 33 34.1193 33 35.5C33 36.8807 34.1193 38 35.5 38Z",fill:e.colors[2]},null),(0,Ic.createVNode)("path",{d:"M4 28.9998L9.03837 4.99902H39.0205L44 28.9998",stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linejoin":e.strokeLinejoin},null)])});cO=xy.default=Iie;const Pie={key:0},Aie={key:1},Lie={style:{display:"inline-block"}},Fie={__name:"index",props:["isOperatingFile","operation","selectedFiles","currentSideId","currentPath","crossSite"],emits:["close"],setup(e,{emit:t}){let n=e,o=t,r=C(()=>n.isOperatingFile),l=C(()=>Ye.state.config.isAdmin),a=C(()=>{switch(n.operation){case"move":return"移动到";case"copy":return"复制到";case"extract":return"解包到"}}),s=M([]),u=M([]),c=C(()=>{let g=[];return s.value.length===0?f.value.forEach(_=>{g.push({name:_.hostname,site:!0,id:_.id})}):u.value.forEach(_=>{if(_.type==="FOLDER"){let y=!0;n.selectedFiles.forEach(b=>{b.type==="FOLDER"&&b.path===_.path&&(y=!1)}),y&&g.push(_)}}),g}),f=C(()=>Ye.getters.getOnlineSites),d=C(()=>{let g="";for(let _=0;_{u.value.push({name:g.hostname,site:!0})}):St.get(Ye.state.config.host+"file/get?"+en.stringify({path:d.value})).then(g=>{let _=new Date;g.data.result==="success"?(s.value.length===1?l.value&&n.crossSite&&u.value.push({name:"...",type:"FOLDER",size:0,lastModify:_.getTime()}):u.value.push({name:"...",type:"FOLDER",size:0,lastModify:_.getTime()}),u.value.push(...g.data.data)):et.error("文件查询失败:"+g.data.data)})}function m(g){s.value.splice(g),h()}function v(){o("close")}function w(){let g=n.currentPath,_=d.value,y=[];n.selectedFiles.forEach(b=>{y.push(b.name)}),n.operation==="extract"&&(_+=y[0].replace(".tar","")+"/",_.charAt(1)===":"&&_.substring(2)),l.value||(g=g.substring(2)),St.post(Ye.state.config.host+`file/${n.operation}?`,en.stringify({source:g,target:_,fileNames:y},{indices:!1})).then(b=>{b.data.result==="success"?et.success(b.data.data):et.error(b.data.data)}),v()}return ye(r,g=>{g&&(s.value.splice(0),(!l.value||!n.crossSite)&&(s.value[0]=n.currentSideId),h())}),(g,_)=>{const y=Dg,b=Zs,$=Be,S=ei,T=Qs,k=Ht,R=Il;return E(),ne(R,{title:i(a),modelValue:i(r),"onUpdate:modelValue":_[1]||(_[1]=x=>st(r)?r.value=x:r=x),top:"0",onClose:v,style:{"margin-bottom":"0"}},{footer:I(()=>[N(k,{type:"primary",disabled:i(s).length===0,onClick:w},{default:I(()=>[de("确定")]),_:1},8,["disabled"]),N(k,{onClick:v},{default:I(()=>[de("取消")]),_:1})]),default:I(()=>[!e.crossSite||!i(l)?(E(),ne(b,{key:0},{reference:I(()=>[N(y,{underline:!1,disabled:""},{default:I(()=>[de("全部节点")]),_:1})]),default:I(()=>[i(l)?(E(),H("span",Pie," 选择文件夹或打、解包时不能跨服务器 ")):(E(),H("span",Aie," 用户不能跨服务器 "))]),_:1})):(E(),ne(y,{key:1,underline:!1,onClick:_[0]||(_[0]=x=>m(0)),disabled:i(s).length===0||!e.crossSite},{default:I(()=>[de("全部节点")]),_:1},8,["disabled"])),(E(!0),H(Le,null,ft(i(s),(x,A)=>(E(),H("div",Lie,[de("  > "),N(y,{underline:!1,disabled:A===i(s).length-1,onClick:F=>m(A+1)},{default:I(()=>[de(le(x),1)]),_:2},1032,["disabled","onClick"])]))),256)),N(T,{data:i(c),"max-height":"72vh",onRowClick:p},{default:I(()=>[N(S,{width:"50px"},{default:I(x=>[x.row.site!==void 0?(E(),ne(i(cO),{key:0,theme:"outline",size:"24",fill:"#333"})):(E(),ne($,{key:1},{default:I(()=>[N(i(zC))]),_:1}))]),_:1}),N(S,{label:"目标文件夹"},{default:I(x=>[de(le(x.row.name),1)]),_:1})]),_:1},8,["data"])]),_:1},8,["title","modelValue"])}}},Die=W("br",null,null,-1),Bie=W("br",null,null,-1),Vie={__name:"index",props:["selectedFiles","isSharingFile","currentPath"],emits:["close"],setup(e,{emit:t}){let n=e,o=t,r=C(()=>n.isSharingFile),l=M(""),a=M(""),s=C(()=>Ye.state.config.isAdmin);function u(){o("close")}function c(){if(l.value<0)et.error("分享ip数不能小于0");else if(a.value<0)et.error("过期时间不能小于0");else{let f=[];n.selectedFiles.forEach(p=>{f.push(p.name)});let d;s.value?d=n.currentPath:d=n.currentPath.substring(2),St.post(Ye.state.config.host+"share/?",en.stringify({path:d,time:a.value,count:l.value,fileNames:f},{indices:!1})).then(p=>{p.data.result==="success"?et.success(p.data.data):et.error(p.data.data),u()})}}return(f,d)=>{const p=qk,h=on,m=Ng,v=xg,w=Ht,g=Il;return E(),ne(g,{title:"分享文件",onClose:u,modelValue:i(r),"onUpdate:modelValue":d[2]||(d[2]=_=>st(r)?r.value=_:r=_)},{footer:I(()=>[N(w,{type:"primary",onClick:c},{default:I(()=>[de("确定")]),_:1}),N(w,{onClick:u},{default:I(()=>[de("取消")]),_:1})]),default:I(()=>[de(" 请输入分享时长或可下载ip个数(留空为该项不限制,都留空则永久分享): "),N(v,null,{default:I(()=>[N(p,null,{default:I(()=>[de(" 已选择文件:"),Die,(E(!0),H(Le,null,ft(e.selectedFiles,_=>(E(),H("span",null,[de(le(_.name),1),Bie]))),256))]),_:1}),N(m,null,{default:I(()=>[N(h,{modelValue:i(a),"onUpdate:modelValue":d[0]||(d[0]=_=>st(a)?a.value=_:a=_)},{prepend:I(()=>[de(" 分享时长 ")]),append:I(()=>[de(" 小时 ")]),_:1},8,["modelValue"]),N(h,{modelValue:i(l),"onUpdate:modelValue":d[1]||(d[1]=_=>st(l)?l.value=_:l=_)},{prepend:I(()=>[de(" 下载ip个数 ")]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"])}}},Hie=W("br",null,null,-1),dO={__name:"index",props:["isAdjustingShare","currentFile","currentSiteId"],emits:["close"],setup(e,{emit:t}){let n=e,o=t,r=C(()=>n.isAdjustingShare),l=C(()=>Ye.state.config.isAdmin),a=M(null),s=M(null);function u(){let f=n.currentFile.shareCode;l.value&&(f=n.currentSiteId+":"+n.currentFile.shareCode),St.post(Ye.state.config.host+"share/adjust?",en.stringify({shareCode:f,time:a.value,count:s.value})).then(d=>{d.data.result==="success"?et.success(d.data.data):et.error(d.data.data),c()})}function c(){o("close")}return(f,d)=>{const p=Rl,h=Ml,m=on,v=Ht,w=Il;return E(),ne(w,{title:"调整分享",modelValue:i(r),"onUpdate:modelValue":d[2]||(d[2]=g=>st(r)?r.value=g:r=g),width:"625px",onClose:c},{footer:I(()=>[N(v,{type:"primary",onClick:u},{default:I(()=>[de("确定")]),_:1}),N(v,{onClick:c},{default:I(()=>[de("取消")]),_:1})]),default:I(()=>[N(h,null,{default:I(()=>[N(p,{span:10},{default:I(()=>[de("当前文件:"+le(e.currentFile.name),1)]),_:1}),N(p,{span:14},{default:I(()=>[de("(正数为添加,负数为减少,都留空则调整为永久分享)")]),_:1})]),_:1}),Hie,N(h,null,{default:I(()=>[N(p,{span:10},{default:I(()=>[de(" 过期时间:"+le(e.currentFile.expireTime===void 0?"不过期":i(xt).formatDate(e.currentFile.expireTime)),1)]),_:1}),N(m,{modelValue:i(a),"onUpdate:modelValue":d[0]||(d[0]=g=>st(a)?a.value=g:a=g),style:{width:"300px"}},{prepend:I(()=>[de(" 分享时长 ")]),append:I(()=>[de(" 小时 ")]),_:1},8,["modelValue"])]),_:1}),N(h,null,{default:I(()=>[N(p,{span:10},{default:I(()=>[de(" 剩余ip数:"+le(e.currentFile.availableCount===void 0?"不限制":e.currentFile.availableCount),1)]),_:1}),N(m,{modelValue:i(s),"onUpdate:modelValue":d[1]||(d[1]=g=>st(s)?s.value=g:s=g),style:{width:"300px"}},{prepend:I(()=>[de("分享ip数")]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["modelValue"])}}},zie={key:0},Kie=W("br",null,null,-1),Wie=W("br",null,null,-1),jie={__name:"index",props:["isImportFile","path"],emits:["close"],setup(e,{emit:t}){let n=e,o=t,r=C(()=>n.isImportFile),l=M(""),a=M(null);function s(){l.value.trim()===""?et.error("请输入分享码"):!l.value.includes(":")||l.value.split(":").length!==2?et.error("分享码格式错误"):St.get(Ye.state.config.host+"file/queryShareFile?"+en.stringify({shareCode:l.value})).then(f=>{f.data.result==="success"?(a.value=f.data.data,et.success("查询成功")):et.error(f.data.data)})}function u(){St.post(Ye.state.config.host+"file/import?"+en.stringify({shareCode:l.value,path:n.path.substring(2)})).then(f=>{f.data.result==="success"?(et.success(f.data.data),c()):et.error(f.data.data)})}function c(){o("close"),l.value="",a.value=null}return(f,d)=>{const p=on,h=Rl,m=Ht,v=Ml,w=Il;return E(),ne(w,{modelValue:i(r),"onUpdate:modelValue":d[1]||(d[1]=g=>st(r)?r.value=g:r=g),onClose:c,title:"导入文件"},{footer:I(()=>[N(m,{onClick:u,type:"primary",disabled:i(a)===null},{default:I(()=>[de("确认导入")]),_:1},8,["disabled"]),N(m,{onClick:c},{default:I(()=>[de("取消")]),_:1})]),default:I(()=>[N(v,null,{default:I(()=>[N(h,{span:10},{default:I(()=>[N(p,{modelValue:i(l),"onUpdate:modelValue":d[0]||(d[0]=g=>st(l)?l.value=g:l=g)},{prepend:I(()=>[de(" 分享码 ")]),_:1},8,["modelValue"])]),_:1}),N(h,{span:10},{default:I(()=>[N(m,{onClick:s},{default:I(()=>[de("查询文件")]),_:1})]),_:1})]),_:1}),i(a)!==null?(E(),H("div",zie,[N(v,null,{default:I(()=>[N(h,null,{default:I(()=>[de(" 文件名称:"+le(i(a).name),1),Kie,de(" 文件大小:"+le(i(xt).formatSize(i(a).size)),1),Wie]),_:1})]),_:1})])):te("",!0)]),_:1},8,["modelValue"])}}},Uie=W("br",null,null,-1),qie={style:{display:"inline-block"}},Gie=W("br",null,null,-1),Yie=W("br",null,null,-1),Xie=W("br",null,null,-1),Jie=["href"],Zie=W("br",null,null,-1),Qie={key:0},eue={class:"el-upload__text"},tue=W("em",null,"点击上传",-1),nue=W("div",{class:"el-upload__tip"}," 上传限制大小:10Gb ",-1),oue={__name:"index",setup(e){let t=li(),n=C(()=>Ye.getters.getOnlineSites),o=C(()=>Ye.getters.getFiles),r=C(()=>Ye.state.users),l=C(()=>{let se=m.value+":";return v.value.forEach(ve=>{se+=ve+"/"}),se}),a=C(()=>s.value?"move":u.value?"copy":"extract"),s=M(!1),u=M(!1),c=M(!1),f=M(!1),d=M(!1),p=M(!1),h=C(()=>Ye.state.config.isAdmin),m=M(0),v=M([]),w=M(),g=M(!0),_=M(!1),y=M(!1),b=M(!1),$=M(!1),S=M(!1),T=M(!1),k=[],R=M(!1);function x(se){Ye.dispatch("loadFiles",se)}function A(){R.value=!0}function F(se){se.result==="success"?(et.success("文件上传成功"),h.value||St.post(Ye.state.config.host+"verifySpace").then(()=>{Ye.dispatch("loadUsers")})):et.error(se.data)}function B(){let se="";h.value&&(se=m.value+":"),v.value.length!==0&&v.value.forEach(ve=>{se.endsWith(":")?se+=ve:se+="/"+ve}),x(se)}function V(se){let ve;return n.value.forEach(me=>{me.id===se&&(ve=me)}),ve}let j=0;function D(se){se.type==="FOLDER"&&(clearTimeout(j),j=setTimeout(()=>{se.name==="..."?v.value.pop():v.value.push(se.name),B(),L()},300))}function L(){let se=JSON.parse(JSON.stringify(t.currentRoute.value.query));se.path=l.value,t.push({path:t.currentRoute.value.path,query:se})}function z(){let se="";k.forEach(ve=>{se+=" "+ve.name}),rr.confirm("以下文件将被删除: "+se+" 是否确认删除?","删除文件",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"}).then(()=>{P()}).catch(()=>{})}function P(){let se=[];k.forEach(ve=>{se.push(ve.path)}),St.post(Ye.state.config.host+"file/delete",en.stringify({sourceId:m.value,paths:se},{indices:!1})).then(ve=>{ve.data.result==="success"?(et({type:"success",message:ve.data.data}),B(),he()):et({type:"error",message:ve.data.data})})}function K(){let se="";k.forEach(ve=>{se+=" "+ve.name}),rr.prompt(`以下文件即将被打包:${se},请输入压缩包名称`,"打包文件",{confirmButtonText:"打包",cancelButtonText:"取消",type:"info",inputValue:k[0].name+".tar"}).then(ve=>{if(ve.value.trim()===""){et.error("压缩包名不能为空");return}let me=[];k.forEach(Se=>{me.push(Se.path)});let Te="";h.value&&(Te=m.value+":"),v.value.push(ve.value),v.value.forEach(Se=>{Te.endsWith(":")||Te===""?Te+=Se:Te+="/"+Se}),v.value.pop(),St.post(Ye.state.config.host+"file/compress",en.stringify({paths:me,targetPath:Te},{indices:!1})).then(Se=>{Se.data.result==="success"?et({type:"success",message:"打包任务提交成功"}):et({type:"error",message:"打包任务提交失败:"+Se.data.data})})}).catch(()=>{})}function G(){rr.prompt("文件夹名称","新建文件夹",{confirmButtonText:"确认",cancelButtonText:"取消",inputValue:""}).then(se=>{if(se.value.trim()===""){et.error("新文件夹名不能为空");return}let ve="";h.value&&(ve=m.value+":"),v.value.forEach(me=>{ve+="/"+me}),ve+="/"+se.value,St.post(Ye.state.config.host+"file/create?"+en.stringify({path:ve})).then(me=>{me.data.result==="success"?(et({type:"success",message:"文件夹创建成功"}),B()):et({type:"error",message:"文件夹创建失败:"+me.data.data})})})}function Y(){rr.prompt(`即将重命名:${k[0].name},请输入新文件名`,"文件重命名",{confirmButtonText:"确定",cancelButtonText:"取消",type:"info",inputValue:k[0].name}).then(se=>{if(se.value.trim()===""){et.error("新文件名不能为空");return}let ve=k[0].path;h.value&&(ve=m.value+":"+ve),St.post(Ye.state.config.host+"file/rename",en.stringify({path:ve,name:se.value},{indices:!1})).then(me=>{me.data.result==="success"?(et({type:"success",message:"重命名成功"}),B()):et({type:"error",message:"重命名失败:"+me.data.data})})}).catch(()=>{})}function Z(se){v.value.splice(se),B(),L()}function fe(se){m.value=se,v.value.splice(0),B(),L()}function ke(se){k=se,S.value=!1,g.value=!0,b.value=!1,$.value=!1,y.value=!1,_.value=!1,T.value=!1;let ve=0,me=0;se.forEach(Te=>{Te.type==="FOLDER"?me++:(Te.shareCode!==void 0&&(S.value=!0),!T.value&&Te.name.endsWith(".tar")&&(T.value=!0),ve++)}),g.value=ve+me===0,ve===1?b.value=!0:ve>1&&(y.value=!0),me===1?$.value=!0:me>1&&(_.value=!0)}function ie(){c.value=!0}function X(){s.value=!0}function Q(){u.value=!0}function ce(){u.value=!1,s.value=!1,c.value=!1,setTimeout(()=>{B()},500)}function ue(){f.value=!1,setTimeout(()=>{B()},500)}function we(){d.value=!1,setTimeout(()=>{B()},500)}function Oe(se){h.value&&(se=m.value+":"+se),St.post(Ye.state.config.host+"share/cancel?",en.stringify({shareCode:se})).then(ve=>{ve.data.result==="success"?et.success(ve.data.data):et.error(ve.data.data),setTimeout(()=>{B()},500)})}function q(se){d.value=!0,w.value=se}function J(se){se.type==="FILE"&&rr.confirm(`是否下载文件:${se.name}?`,"下载文件",{confirmButtonText:"确认",cancelButtonText:"取消"}).then(()=>{window.open(V(m.value).host+`file/getFile/${se.name}?`+en.stringify({path:l.value.substring(l.value.indexOf(":")+1)+se.name,sessionId:Ye.state.config.sessionId}))}).catch(()=>{})}nt(()=>{if(t.currentRoute.value.query.path===void 0)$e();else{let se=t.currentRoute.value.query.path;if(!se.includes(":")){et.error("路径错误"),$e();return}ge(se),B()}});function ge(se){v.value.splice(0);let ve=se.split(":");if(m.value=Number(ve[0]),se=ve[1],se===void 0){B();return}se.includes("/")?se.split("/").forEach(me=>{me.trim()!==""&&v.value.push(me)}):se.trim()!==""&&v.value.push(se)}function $e(){t.push(`/index/fileManage/?path=${n.value[0].id}:`),m.value=n.value[0].id,B()}function he(){h.value?Ye.dispatch("loadSites"):St.post(Ye.state.config.host+"verifySpace").then(()=>{Ye.dispatch("loadUsers")}),B()}return ye(t.currentRoute,(se,ve)=>{se.path!==ve.path&&se.path==="/index/fileManage"&&(se.query.path===void 0?(t.replace(`/index/fileManage/?path=${n.value[0].id}:`),ge(`${n.value[0].id}:`)):ge(se.query.path),B())}),(se,ve)=>{const me=Al,Te=Pl,Se=Ht,Pe=If,He=ju,_e=Dg,Ae=ei,qe=Be,lt=Zs,vt=Qs,Ue=H$,be=Il;return E(),H(Le,null,[W("div",null,[N(Te,{mode:"horizontal","default-active":i(m)+""},{default:I(()=>[(E(!0),H(Le,null,ft(i(n),re=>(E(),ne(me,{index:re.id,onClick:ae=>fe(re.id)},{default:I(()=>[de(le(re.hostname),1)]),_:2},1032,["index","onClick"]))),256))]),_:1},8,["default-active"]),W("div",null,[N(Pe,null,{default:I(()=>[N(Se,{type:"primary",onClick:A},{default:I(()=>[de("上传文件")]),_:1}),i(h)?te("",!0):(E(),ne(Se,{key:0,type:"primary",onClick:ve[0]||(ve[0]=re=>st(p)?p.value=!0:p=!0)},{default:I(()=>[de("导入文件")]),_:1})),N(Se,{onClick:G},{default:I(()=>[de("新建文件夹")]),_:1}),N(Se,{disabled:i(g)||i(b),onClick:K},{default:I(()=>[de("打包")]),_:1},8,["disabled"]),N(Se,{disabled:!(i(b)&&i(T)),onClick:ie},{default:I(()=>[de("解包")]),_:1},8,["disabled"]),N(Se,{disabled:i(g),onClick:X},{default:I(()=>[de("移动到")]),_:1},8,["disabled"]),N(Se,{disabled:i(g),onClick:Q},{default:I(()=>[de("复制到")]),_:1},8,["disabled"]),N(Se,{disabled:!(i($)||i(b)),onClick:Y},{default:I(()=>[de("重命名")]),_:1},8,["disabled"]),N(Se,{disabled:i(g),onClick:z},{default:I(()=>[de("删除")]),_:1},8,["disabled"]),N(Se,{disabled:i(g)||i(_)||i($)||i(S),onClick:ve[1]||(ve[1]=re=>st(f)?f.value=!0:f=!0)},{default:I(()=>[de("创建分享链接")]),_:1},8,["disabled"]),N(Se,{onClick:he},{default:I(()=>[de("刷新")]),_:1})]),_:1}),i(h)&&V(i(m))!==void 0?(E(),ne(He,{key:0,percentage:(V(i(m)).totalSpace-V(i(m)).availableSpace)/V(i(m)).totalSpace*100,style:{width:"150px",display:"inline-block",float:"right"},color:i(xt).colors},{default:I(()=>[de(le(i(xt).formatSize(V(i(m)).totalSpace-V(i(m)).availableSpace))+" / "+le(i(xt).formatSize(V(i(m)).totalSpace)),1)]),_:1},8,["percentage","color"])):te("",!0),!i(h)&&i(r)[0]!==void 0?(E(),ne(He,{key:1,percentage:(i(r)[0].totalSpace-i(r)[0].availableSpace)/i(r)[0].totalSpace*100,style:{width:"150px",display:"inline-block",float:"right"},color:"Util.colors"},{default:I(()=>[de(le(i(xt).formatSize(i(r)[0].totalSpace-i(r)[0].availableSpace))+" / "+le(i(xt).formatSize(i(r)[0].totalSpace)),1)]),_:1},8,["percentage"])):te("",!0),Uie,N(_e,{underline:!1,onClick:ve[2]||(ve[2]=re=>Z(0)),disabled:i(v).length===0},{default:I(()=>[de("全部文件")]),_:1},8,["disabled"]),(E(!0),H(Le,null,ft(i(v),(re,ae)=>(E(),H("div",qie,[de("  > "),N(_e,{underline:!1,disabled:ae===i(v).length-1,onClick:Ee=>Z(ae+1)},{default:I(()=>[de(le(re),1)]),_:2},1032,["disabled","onClick"])]))),256))]),W("div",null,[N(vt,{data:i(o),size:"large",onRowClick:D,onSelectionChange:ke,"max-height":"76vh",onRowDblclick:J,"empty-text":"根目录下没有文件"},{default:I(()=>[N(Ae,{type:"selection",width:"55px"}),N(Ae,{width:"50px"},{default:I(re=>[tt(N(qe,null,{default:I(()=>[N(i(zC))]),_:2},1536),[[bt,re.row.type==="FOLDER"]]),tt(N(qe,null,{default:I(()=>[N(i(HC))]),_:2},1536),[[bt,re.row.type==="FILE"]])]),_:1}),N(Ae,{width:"50px"},{default:I(re=>[re.row.shareCode!==void 0?(E(),ne(lt,{key:0,width:"250px"},{reference:I(()=>[N(qe,null,{default:I(()=>[N(i(WC))]),_:1})]),default:I(()=>[de(" 分享码:"+le(i(m)+":"+re.row.shareCode),1),Gie,de(" 过期时间:"+le(re.row.expireTime===void 0?"不过期":i(xt).formatDate(re.row.expireTime)),1),Yie,de(" 剩余ip数:"+le(re.row.totalCount===void 0?"不限制":re.row.availableCount??0),1),Xie,de(" 下载链接:"),W("a",{href:V(i(m)).host+`getFileByShareCode/${re.row.name}?shareCode=${re.row.shareCode}`},"链接",8,Jie),Zie,N(Se,{type:"danger",onClick:ae=>Oe(re.row.shareCode)},{default:I(()=>[de("取消分享")]),_:2},1032,["onClick"]),N(Se,{onClick:ae=>q(re.row)},{default:I(()=>[de("调整分享")]),_:2},1032,["onClick"])]),_:2},1024)):te("",!0)]),_:1}),N(Ae,{label:"文件名",width:"500px"},{default:I(re=>[de(le(re.row.name),1)]),_:1}),N(Ae,{label:"大小",width:"100px"},{default:I(re=>[re.row.type==="FILE"?(E(),H("span",Qie,le(i(xt).formatSize(re.row.size)),1)):te("",!0)]),_:1}),N(Ae,{label:"修改时间"},{default:I(re=>[de(le(i(xt).formatDate(re.row.lastModify)),1)]),_:1})]),_:1},8,["data"])])]),N(be,{title:"上传文件",modelValue:i(R),"onUpdate:modelValue":ve[3]||(ve[3]=re=>st(R)?R.value=re:R=re),onClose:B},{default:I(()=>[N(Ue,{drag:"",action:V(i(m)).host+`file/upload/${i(l).substring(i(l).indexOf(":")+1)}?sessionId=${i(Ye).state.config.sessionId}`,multiple:"","on-success":F},{tip:I(()=>[nue]),default:I(()=>[N(qe,{class:"el-icon--upload"},{default:I(()=>[N(i(J8))]),_:1}),W("div",eue,[de(" 拖拽文件到这里或 "),tue,de(" 上传至 "+le(V(i(m)).hostname)+" ",1),(E(!0),H(Le,null,ft(i(v),re=>(E(),H("span",null," > "+le(re),1))),256))])]),_:1},8,["action"])]),_:1},8,["modelValue"]),N(Fie,{"selected-files":i(k),"is-operating-file":i(u)||i(s)||i(c),"cross-site":!(i($)||i(_)||i(c)),onClose:ce,"current-side-id":i(m),operation:i(a),"current-path":i(l)},null,8,["selected-files","is-operating-file","cross-site","current-side-id","operation","current-path"]),N(Vie,{"is-sharing-file":i(f),"selected-files":i(k),"current-path":i(l),onClose:ue},null,8,["is-sharing-file","selected-files","current-path"]),N(dO,{"current-file":i(w),"is-adjusting-share":i(d),"current-site-id":i(m),onClose:we},null,8,["current-file","is-adjusting-share","current-site-id"]),N(jie,{"is-import-file":i(p),path:i(l),onClose:ve[4]||(ve[4]=()=>{st(p)?p.value=!1:p=!1})},null,8,["is-import-file","path"])],64)}}},rue={key:0},lue=W("br",null,null,-1),aue=W("br",null,null,-1),sue={key:1},iue=W("br",null,null,-1),uue=W("br",null,null,-1),cue=W("br",null,null,-1),due={key:2},fue=W("br",null,null,-1),pue=W("br",null,null,-1),hue={__name:"index",setup(e){let t=li(),n=M(),o=[],r=M(!1),l=M("all"),a=C(()=>Ye.state.config.isAdmin),s=C(()=>Ye.state.tasks),u=C(()=>{let _=[];return s.value.forEach(y=>{y.status==="等待中"&&_.push(y)}),_}),c=C(()=>{let _=[];return s.value.forEach(y=>{y.status==="进行中"&&_.push(y)}),_}),f=C(()=>{let _=[];return s.value.forEach(y=>{y.complete&&_.push(y)}),_}),d=C(()=>Ye.state.users);function p(_){let y;return d.value.forEach(b=>{b.id===_&&(y=b.username)}),y}function h(_){_=Number(_);let y;return Ye.getters.getOnlineSites.forEach(b=>{b.id===_&&(y=b)}),y}function m(_){o=_,r.value=_.length!==0}function v(){let _=[];o.forEach(y=>{_.push(y.taskId)}),St.post(Ye.state.config.host+"file/cancel",en.stringify({passcode:Ye.state.config.passcode,taskIds:_},{indices:!1})).then(()=>{et.success("任务移除成功")}),Ye.commit("removeTasks",_)}function w(){let _=JSON.parse(JSON.stringify(t.currentRoute.value.query));switch(_.type=l.value,t.push({path:t.currentRoute.value.path,query:_}),l.value){case"all":n.value=s.value;break;case"complete":n.value=f.value;break;case"proceeding":n.value=c.value;break;case"waiting":n.value=u.value;break}}function g(_){l.value=_}return ye(l,()=>{w()}),nt(()=>{t.currentRoute.value.path.startsWith("/index/taskManage/")&&(t.currentRoute.value.query.type===void 0||t.currentRoute.value.query.type!=="all"&&t.currentRoute.value.query.type!=="online"&&t.currentRoute.value.query.type!=="offline"?l.value="all":l.value=t.currentRoute.value.query.type,w())}),ye(t.currentRoute,()=>{t.currentRoute.value.path.startsWith("/index/taskManage/")&&(t.currentRoute.value.query.type===void 0||t.currentRoute.value.query.type!=="all"&&t.currentRoute.value.query.type!=="complete"&&t.currentRoute.value.query.type!=="proceeding"&&t.currentRoute.value.query.type!=="waiting"?(t.replace("/index/taskManage/?type=all"),l.value="all"):l.value=t.currentRoute.value.query.type)}),(_,y)=>{const b=Al,$=Pl,S=Ht,T=If,k=ei,R=Be,x=Zs,A=ju,F=Qs;return E(),H("div",null,[N($,{mode:"horizontal","default-active":i(l)},{default:I(()=>[N(b,{index:"all",onClick:y[0]||(y[0]=B=>g("all"))},{default:I(()=>[de("全部")]),_:1}),N(b,{index:"complete",onClick:y[1]||(y[1]=B=>g("complete"))},{default:I(()=>[de("已完成/已停止")]),_:1}),N(b,{index:"proceeding",onClick:y[2]||(y[2]=B=>g("proceeding"))},{default:I(()=>[de("进行中")]),_:1}),N(b,{index:"waiting",onClick:y[3]||(y[3]=B=>g("waiting"))},{default:I(()=>[de("等待中")]),_:1})]),_:1},8,["default-active"]),N(T,null,{default:I(()=>[N(S,{onClick:v,disabled:!i(r)},{default:I(()=>[de("删除/取消")]),_:1},8,["disabled"])]),_:1}),N(F,{data:i(n),"empty-text":"当前分类没有任务",onSelectionChange:m,"row-key":"taskId"},{default:I(()=>[N(k,{type:"selection","reserve-selection":""}),N(k,{label:"任务id",width:"75px"},{default:I(B=>[de(le(B.row.taskId),1)]),_:1}),N(k,{label:"文件名"},{default:I(B=>[de(le(B.row.filename),1)]),_:1}),i(a)?(E(),ne(k,{key:0,label:"用户"},{default:I(B=>[de(le(p(B.row.userid)),1)]),_:1})):te("",!0),N(k,{label:"任务类型",width:"100px"},{default:I(B=>[de(le(B.row.type)+" ",1),i(a)||B.row.type!=="导入"?(E(),ne(x,{key:0,width:"450px"},{reference:I(()=>[N(R,null,{default:I(()=>[N(i(_f))]),_:1})]),default:I(()=>[B.row.type==="打包"?(E(),H("span",rue,[de(" 服务器:"+le(h(B.row.siteId).hostname),1),lue,de(" 源文件:"+le(B.row.paths),1),aue,de(" 目标文件:"+le(B.row.targetPath),1)])):te("",!0),B.row.type==="转移"?(E(),H("span",sue,[de(" 源服务器:"+le(h(B.row.sender).hostname),1),iue,de(" 源路径:"+le(B.row.sourcePath),1),uue,de(" 目标服务器:"+le(h(B.row.receiver).hostname),1),cue,de(" 目标路径:"+le(B.row.targetPath),1)])):te("",!0),B.row.type==="解包"?(E(),H("span",due,[de(" 服务器:"+le(h(B.row.siteId).hostname),1),fue,de(" 源文件:"+le(B.row.sourcePath+B.row.filename),1),pue,de(" 目标路径:"+le(B.row.targetPath),1)])):te("",!0)]),_:2},1024)):te("",!0)]),_:1}),N(k,{label:"任务进度"},{default:I(B=>[N(A,{percentage:B.row.percentage},null,8,["percentage"])]),_:1}),N(k,{label:"任务状态"},{default:I(B=>[de(le(B.row.status)+" ",1),B.row.status==="任务失败"?(E(),ne(x,{key:0,trigger:"hover"},{reference:I(()=>[N(R,null,{default:I(()=>[N(i(Lu))]),_:1})]),default:I(()=>[de(le(B.row.cause)+" ",1)]),_:2},1024)):te("",!0)]),_:1}),N(k,{label:"任务速度"},{default:I(B=>[de(le(i(xt).formatSize(B.row.speed)+"/S"),1)]),_:1}),N(k,{label:"任务大小"},{default:I(B=>[de(le(i(xt).formatSize(B.row.total)),1)]),_:1})]),_:1},8,["data"])])}}},vue={key:0,style:{"background-color":"white","padding-bottom":"410px","padding-left":"25px"}},mue=W("br",null,null,-1),gue={__name:"index",setup(e){let t=li(),n=M(),o=M(""),r=M(""),l=M(""),a=M(0),s=M("GB"),u=M(""),c=C(()=>Ye.getters.getSites),f=C(()=>{let m;return c.value.forEach(v=>{v.id===n.value&&(m=v)}),m});function d(m){n.value=m,t.replace("/index/siteManage/?id="+n.value)}function p(){let v={id:f.value.id},w;if(!isNaN(parseInt(a.value))&&a.value!==0){if(w=xt[s.value]*a.value,w<0&&f.availableSpace+w<0){et.error("减少空间不能小于可分配空间,可以考虑回收用户空间");return}v.availableSpace=w}if(o.value.trim()!==""&&(v.hostname=o.value),r.value.trim()!==""&&(v.domain=r.value),l.value.trim()!==""&&(v.reverseProxyPrefix=l.value),u.value.trim()!==""){v.storagePath=u.value,rr.confirm("修改服务器存储路径会导致服务器重启,是否继续?","警告",{confirmButtonText:"继续",cancelButtonText:"取消",type:"warning"}).then(()=>{St.post(Ye.state.config.host+"manage/site/alter?"+en.stringify({...v})).then(g=>{g.data.result==="success"?(et.success(g.data.data),Ye.dispatch("loadSites"),o.value="",r.value="",l.value="",a.value=0):et.error(g.data.data)})});return}St.post(Ye.state.config.host+"manage/site/alter?"+en.stringify({...v})).then(g=>{g.data.result==="success"?(et.success(g.data.data),Ye.dispatch("loadSites"),o.value="",r.value="",l.value="",a.value=0):et.error(g.data.data)})}function h(){St.post(Ye.state.config.host+"manage/site/unpair?"+en.stringify({passcode:Ye.state.config.passcode,id:n.value})).then(m=>{m.data.result==="success"?(et.success(m.data.data),Ye.dispatch("loadSites")):et.error(m.data.data)})}return ye(t.currentRoute,(m,v)=>{m.path!==v.path&&m.path.startsWith("/index/siteManage/")&&(t.currentRoute.value.query.id===void 0?(t.replace(`/index/siteManage/?id=${c.value[0].id}`),n.value=c.value[0].id):n.value=Number(t.currentRoute.value.query.id))}),nt(()=>{t.currentRoute.value.query.id===void 0?(t.replace(`/index/siteManage/?id=${c.value[0].id}`),n.value=c.value[0].id):n.value=Number(t.currentRoute.value.query.id)}),(m,v)=>{const w=Al,g=Pl,_=Rl,y=Ml,b=on,$=$l,S=Wo,T=Ht;return E(),H(Le,null,[N(g,{mode:"horizontal","default-active":i(n)},{default:I(()=>[(E(!0),H(Le,null,ft(i(c),k=>(E(),ne(w,{index:k.id,onClick:R=>d(k.id)},{default:I(()=>[de(le(k.hostname),1)]),_:2},1032,["index","onClick"]))),256))]),_:1},8,["default-active"]),i(f)!==void 0?(E(),H("div",vue,[N(y,null,{default:I(()=>[N(_,{span:8},{default:I(()=>[de(" 服务器id:"+le(i(f).id),1)]),_:1})]),_:1}),N(y,null,{default:I(()=>[N(_,{span:8},{default:I(()=>[de(" 服务器ip:"+le(i(f).ip),1)]),_:1}),N(_,{span:8},{default:I(()=>[de(' 域名跟反代前缀,若要去除,直接填"空" ')]),_:1})]),_:1}),N(y,null,{default:I(()=>[N(_,{span:8},{default:I(()=>[de(" 当前存储路径:"+le(i(f).storagePath),1)]),_:1}),N(_,{span:8},{default:I(()=>[N(b,{modelValue:i(u),"onUpdate:modelValue":v[0]||(v[0]=k=>st(u)?u.value=k:u=k)},{prepend:I(()=>[de("存储路径")]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(y,null,{default:I(()=>[N(_,{span:8},{default:I(()=>[de(" 当前服务器名:"+le(i(f).hostname),1)]),_:1}),N(_,{span:8},{default:I(()=>[N(b,{modelValue:i(o),"onUpdate:modelValue":v[1]||(v[1]=k=>st(o)?o.value=k:o=k)},{prepend:I(()=>[de(" 服务器名 ")]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(y,null,{default:I(()=>[N(_,{span:8},{default:I(()=>[de(" 当前服务器总预分配空间:"+le(i(xt).formatSize(i(f).totalSpace))+" ",1),mue,de(" 当前服务器可分配空间:"+le(i(xt).formatSize(i(f).availableSpace)),1)]),_:1}),N(_,{span:8,style:{"line-height":"40px"}},{default:I(()=>[N(b,{modelValue:i(a),"onUpdate:modelValue":v[3]||(v[3]=k=>st(a)?a.value=k:a=k)},{prepend:I(()=>[de(" 容量调整 ")]),append:I(()=>[N(S,{placeholder:"单位",modelValue:i(s),"onUpdate:modelValue":v[2]||(v[2]=k=>st(s)?s.value=k:s=k)},{default:I(()=>[N($,{value:"KB"}),N($,{value:"MB"}),N($,{value:"GB"})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(y,null,{default:I(()=>[N(_,{span:8},{default:I(()=>[de(" 当前服务器域名:"+le(i(f).domain===void 0?"无":i(f).domain),1)]),_:1}),N(_,{span:8},{default:I(()=>[N(b,{modelValue:i(r),"onUpdate:modelValue":v[4]||(v[4]=k=>st(r)?r.value=k:r=k)},{prepend:I(()=>[de(" 服务器域名 ")]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(y,null,{default:I(()=>[N(_,{span:8},{default:I(()=>[de(" 当前服务器反向代理前缀:"+le(i(f).reverseProxyPrefix===void 0?"无":i(f).reverseProxyPrefix),1)]),_:1}),N(_,{span:8},{default:I(()=>[N(b,{modelValue:i(l),"onUpdate:modelValue":v[5]||(v[5]=k=>st(l)?l.value=k:l=k)},{prepend:I(()=>[de(" 反向代理前缀 ")]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(y,null,{default:I(()=>[N(_,{span:8}),N(_,{span:5},{default:I(()=>[i(n)!==1?(E(),ne(T,{key:0,type:"danger",onClick:h},{default:I(()=>[de("删除服务器")]),_:1})):te("",!0),N(T,{type:"primary",onClick:p},{default:I(()=>[de("提交修改")]),_:1})]),_:1})]),_:1})])):te("",!0)],64)}}},yue={style:{display:"inline"}},bue={__name:"index",props:["isViewDownloadRecord","shareFiles","viewType","currentFile","currentSite"],emits:["close"],setup(e,{emit:t}){let n=e,o=t,r=C(()=>n.isViewDownloadRecord),l=C(()=>{let p=[];return n.viewType==="single"?p.push(...n.currentFile.downloadRecords):n.shareFiles.forEach(h=>{h.downloadRecords!==void 0&&h.downloadRecords.forEach(m=>{p.push({name:h.name,path:h.filePath,username:h.username,...m})})}),p}),a=M([]),s=[{label:"筛选时间",value:"time"},{label:"筛选ip",value:"ip"},{label:"筛选ua",value:"ua"}],u=M(""),c=M("ip");ye(n.viewType,()=>{n.viewType==="all"?s.length===3&&s.push({label:"筛选分享人",value:"sharer"}):s.length===4&&s.pop()}),ye(u,()=>{switch(a.value.splice(0),c.value){case"time":u.value[0]!==void 0&&l.value.forEach(p=>{u.value[0].getTime()<=p.time&&u.value[1].getTime()>=p.time&&a.value.push(p)});break;case"ip":u.value.trim()!==""&&l.value.forEach(p=>{p.ip.includes(u.value)&&a.value.push(p)});break;case"ua":u.value.trim()!==""&&l.value.forEach(p=>{p.ua.includes(u.value)&&a.value.push(p)});break;case"sharer":u.value.trim()!==""&&l.value.forEach(p=>{p.username.includes(u.value)&&a.value.push(p)})}});function f(){u.value=""}function d(){c.value="ip",u.value="",o("close")}return(p,h)=>{const m=Rl,v=Ml,w=$l,g=Wo,_=lE,y=on,b=ei,$=Zs,S=Qs,T=Il;return E(),ne(T,{title:"查看下载记录",modelValue:i(r),"onUpdate:modelValue":h[3]||(h[3]=k=>st(r)?r.value=k:r=k),width:e.viewType==="single"?null:"1250px",onClose:d,top:"0"},{default:I(()=>[N(v,null,{default:I(()=>[e.viewType==="single"?(E(),ne(m,{key:0,span:10},{default:I(()=>[de(" 当前文件:"+le(e.currentFile.name),1)]),_:1})):te("",!0),e.viewType==="all"?(E(),ne(m,{key:1,span:10},{default:I(()=>[de(" 当前节点:"+le(e.currentSite.hostname),1)]),_:1})):te("",!0)]),_:1}),N(v,null,{default:I(()=>[N(m,{span:24},{default:I(()=>[N(g,{placeholder:"筛选",modelValue:i(c),"onUpdate:modelValue":h[0]||(h[0]=k=>st(c)?c.value=k:c=k),onChange:f},{default:I(()=>[(E(!0),H(Le,null,ft(i(s),k=>(E(),ne(w,{label:k.label,value:k.value},null,8,["label","value"]))),256))]),_:1},8,["modelValue"]),tt(W("div",yue,[N(_,{type:"datetimerange",modelValue:i(u),"onUpdate:modelValue":h[1]||(h[1]=k=>st(u)?u.value=k:u=k)},null,8,["modelValue"])],512),[[bt,i(c)==="time"]]),tt(N(y,{style:{width:"300px"},modelValue:i(u),"onUpdate:modelValue":h[2]||(h[2]=k=>st(u)?u.value=k:u=k)},null,8,["modelValue"]),[[bt,i(c)!=="time"]])]),_:1})]),_:1}),N(S,{data:i(u).length>1?i(a):i(l),"empty-text":"没有记录"},{default:I(()=>[e.viewType==="all"?(E(),ne(b,{key:0,label:"文件",width:"400px"},{default:I(k=>[N(Vs,{str:k.row.path,length:"75"},null,8,["str"])]),_:1})):te("",!0),e.viewType==="all"?(E(),ne(b,{key:1,label:"分享人",width:"100px"},{default:I(k=>[N(Vs,{str:k.row.username,length:"10"},null,8,["str"])]),_:1})):te("",!0),N(b,{label:"下载时间",width:"200px"},{default:I(k=>[de(le(i(xt).formatDate(k.row.time)),1)]),_:1}),N(b,{label:"下载ip",width:"200px"},{default:I(k=>[de(le(k.row.ip),1)]),_:1}),N(b,{label:"下载ua",width:"300px"},{default:I(k=>[N($,{width:"300px"},{reference:I(()=>[de(le(k.row.ua.length>75?k.row.ua.substring(0,75)+"......":k.row.ua),1)]),default:I(()=>[de(le(k.row.ua),1)]),_:2},1024)]),_:1})]),_:1},8,["data"])]),_:1},8,["modelValue","width"])}}},wue={__name:"index",setup(e){let t=li(),n=C(()=>Ye.getters.getOnlineSites),o=M(),r=M([]),l=M(!1),a=M(!1),s=M(""),u=M();function c(y){let b;return n.value.forEach($=>{$.id===y&&(b=$)}),b}function f(y){o.value=y,t.replace("/index/shareManage/?id="+o.value),h()}function d(y){u.value=y,a.value=!0,s.value="single"}function p(){a.value=!0,s.value="all"}function h(){St.post(Ye.state.config.host+"share/get?",en.stringify({sourceId:o.value})).then(y=>{r.value.splice(0),y.data.result==="success"&&y.data.data.forEach(b=>{b.name=b.filePath.substring(b.filePath.lastIndexOf("/")+1),r.value.push(b)})})}function m(y){window.open(c(o.value).host+`file/getFile/${y.name}?`+en.stringify({path:y.filePath.substring(1)}))}function v(y){let b=c(o.value).host+`getFileByShareCode/${y.name}?shareCode=${y.shareCode}`;navigator.clipboard.writeText(b),et.success("复制成功")}function w(y){y.filePath.includes("\\")?y.name=y.filePath.substring(y.filePath.lastIndexOf("\\")+1):y.name=y.filePath.substring(y.filePath.lastIndexOf("/")+1),u.value=y,l.value=!0}function g(){l.value=!1,h()}function _(y){St.post(Ye.state.config.host+"share/cancel?",en.stringify({shareCode:o.value+":"+y})).then(b=>{b.data.result==="success"?et.success(b.data.data):et.error(b.data.data),h()})}return ye(t.currentRoute,(y,b)=>{y.path!==b.path&&b.path==="/index/shareManage/"&&b.query.id===void 0&&(t.replace(`/index/shareManage/?id=${n.value[0].id}`),o.value=n.value[0].id,h())}),nt(()=>{t.currentRoute.value.query.id===void 0?(t.replace(`/index/shareManage/?id=${n.value[0].id}`),o.value=n.value[0].id):o.value=Number(t.currentRoute.value.query.id),h()}),(y,b)=>{const $=Al,S=Pl,T=Ht,k=ei,R=Qs;return E(),H(Le,null,[N(S,{mode:"horizontal","default-active":i(o)},{default:I(()=>[(E(!0),H(Le,null,ft(i(n),x=>(E(),ne($,{index:x.id,onClick:A=>f(x.id)},{default:I(()=>[de(le(x.hostname),1)]),_:2},1032,["index","onClick"]))),256))]),_:1},8,["default-active"]),i(Ye).state.config.isAdmin?(E(),ne(T,{key:0,onClick:p},{default:I(()=>[de("查看当前节点下载记录")]),_:1})):te("",!0),N(R,{data:i(r),"empty-text":"此节点未分享文件"},{default:I(()=>[N(k,{label:"路径",width:"350px"},{default:I(x=>[N(Vs,{str:x.row.filePath,length:50},null,8,["str"])]),_:1}),i(Ye).state.config.isAdmin?(E(),ne(k,{key:0,label:"分享人",width:"100px"},{default:I(x=>[N(Vs,{str:x.row.username,length:10},null,8,["str"])]),_:1})):te("",!0),N(k,{label:"分享码",width:"90px"},{default:I(x=>[de(le(x.row.shareCode),1)]),_:1}),N(k,{label:"过期时间",width:"150px"},{default:I(x=>[de(le(x.row.expireTime===void 0?"不过期":i(xt).formatDate(x.row.expireTime)),1)]),_:1}),N(k,{label:"剩余ip数",width:"100px"},{default:I(x=>[de(le(x.row.availableCount===void 0?"不限制":x.row.availableCount),1)]),_:1}),N(k,{label:"操作"},{default:I(x=>[N(T,{type:"primary",onClick:A=>m(x.row)},{default:I(()=>[de("下载")]),_:2},1032,["onClick"]),N(T,{type:"primary",onClick:A=>w(x.row)},{default:I(()=>[de("调整")]),_:2},1032,["onClick"]),N(T,{type:"danger",onClick:A=>_(x.row.shareCode)},{default:I(()=>[de("取消")]),_:2},1032,["onClick"]),N(T,{onClick:A=>v(x.row)},{default:I(()=>[de("复制链接")]),_:2},1032,["onClick"]),x.row.downloadRecords!==void 0?(E(),ne(T,{key:0,onClick:A=>d(x.row)},{default:I(()=>[de("查看下载记录")]),_:2},1032,["onClick"])):te("",!0)]),_:1})]),_:1},8,["data"]),N(dO,{"current-site-id":i(o),"is-adjusting-share":i(l),"current-file":i(u),onClose:g},null,8,["current-site-id","is-adjusting-share","current-file"]),N(bue,{"current-file":i(u),"is-view-download-record":i(a),"share-files":i(r),"view-type":i(s),"current-site":c(i(o)),onClose:b[0]||(b[0]=x=>st(a)?a.value=!1:a=!1)},null,8,["current-file","is-view-download-record","share-files","view-type","current-site"])],64)}}},_ue={key:0,style:{"background-color":"white","padding-bottom":"400px","padding-left":"25px"}},Sue={key:0},Cue={key:0},kue={key:0},Eue=W("br",null,null,-1),$ue={key:0},Tue={key:0},Oue={__name:"index",setup(e){let t=M(),n=C(()=>{let S;return r.value.forEach(T=>{T.id===t.value&&(S=T)}),S}),o=C(()=>{let S=[];return l.value?d.value=1:S.push({id:0,hostname:"不修改服务器",availableSpace:0}),S.push(...Ye.state.sites),S}),r=C(()=>{let S=[];return Ye.state.users.forEach(T=>{T.id!==1&&S.push(T)}),S}),l=M(!1),a=M(""),s=M(""),u=M(0),c=M("GB"),f=M(""),d=M(0);function p(){a.value="",s.value="",u.value=0,f.value="",d.value=0}function h(S){let T;return o.value.forEach(k=>{k.id===S&&(T=k)}),T}function m(S){l.value=S===-1,t.value=S,p()}function v(S){let T;return o.value.forEach(k=>{k.id===S&&(T=k.hostname)}),T}function w(){l.value?g():_()}function g(){let S={},T;if(a.value.trim()!==""){let k="";if(r.value.forEach(R=>{R.username===a.value&&(k="不允许重复用户名")}),k!==""){et.error(k);return}S.username=a.value}else{et.error("请输入用户名");return}if(s.value.trim()!=="")S.passcode=s.value;else{et.error("请输入密码");return}if(isNaN(parseInt(u.value))){et.error("容量大小输入错误,请输入数字");return}else{if(T=u.value*xt[c.value],T<=0){et.error("请输入正确容量");return}else{let k=h(d.value);if(T>k.availableSpace){et.error("容量调整错误,不能超过服务器可分配空间,请先释放其他用户空间或增大服务器可分配看见后再尝试");return}}S.availableSpace=T,S.totalSpace=T}if(f.value.trim()!=="")f.value.endsWith("/")||f.value.endsWith("\\")||(f.value+="/"),(f.value.startsWith("/")||f.value.startsWith("\\"))&&(f.value=f.value.substring(0)),S.storagePath=f.value;else{et.error("请输入存储路径");return}if(d.value!==0){if(h(d.value).availableSpace{k.data.result==="success"?(et.success(k.data.data),p(),Ye.dispatch("loadUsers"),Ye.dispatch("loadSites")):et.error(k.data.data)})}function _(){let S={id:t.value},T;if(a.value.trim()!==""){let k="";if(r.value.forEach(R=>{R.id!==t.value&&R.username===a.value&&(k="重命名失败,不允许重复用户名")}),k!==""){et.error(k);return}S.username=a.value}if(s.value.trim()!==""&&(S.passcode=s.value),isNaN(parseInt(u.value))){if(u.value.trim()!==""){et.error("容量大小输入错误,请输入数字");return}}else if(u.value!==0){if(T=u.value*xt[c.value],T<0){if(T+n.value.availableSpace<0){et.error("容量调整错误,释放空间不能小于用户可用空间,请先删除用户空间并同步后再尝试");return}}else{let k=h(n.value.siteId);if(T>k.availableSpace){et.error("容量调整错误,增加空间不能超过服务器可分配空间,请先释放其他用户空间或增大服务器可分配看见后再尝试");return}}S.totalSpace=T}if(f.value.trim()!==""){if("totalSpace"in S){et.error("不允许同时调整容量以及存储路径,请重新输入");return}f.value.endsWith("/")||f.value.endsWith("\\")||(f.value+="/"),S.storagePath=f.value}if(d.value!==0){if("totalSpace"in S){et.error("不允许同时调整容量以及绑定服务器,请重新输入");return}if("storagePath"in S){et.error("不允许同时调整存储路径以及绑定服务器,请重新输入");return}rr.confirm("请注意,用户换绑服务器会导致原文件直接删除,请确保用户的文件已备份或转移到目标服务器了!","警告",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"}).then(()=>{S.siteId=d.value,St.post(Ye.state.config.host+"manage/user/alter?"+en.stringify(S)).then(k=>{k.data.result==="success"?(et.success(k.data.data),p(),Ye.dispatch("loadUsers"),Ye.dispatch("loadSites")):et.error(k.data.data)})});return}Object.keys(S).length!==1&&St.post(Ye.state.config.host+"manage/user/alter?"+en.stringify(S)).then(k=>{k.data.result==="success"?(et.success(k.data.data),p(),Ye.dispatch("loadUsers"),Ye.dispatch("loadSites")):et.error(k.data.data)})}function y(){rr.confirm("删除用户会直接删除用户的存储文件夹,请确保用户数据已备份,是否继续?","警告",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"}).then(()=>{St.post(Ye.state.config.host+"manage/user/remove?"+en.stringify({userid:t.value})).then(S=>{S.data.result==="success"?(et.success("用户删除成功"),Ye.dispatch("loadSites"),Ye.dispatch("loadUsers"),m(r.value[0].id)):et.error(S.data.data)})})}function b(){St.post(Ye.state.config.host+"manage/user/verifySpace?userid="+t.value).then(S=>{S.data.result==="success"?(et.success(S.data.data),Ye.dispatch("loadUsers")):et.error(S.data.data)})}function $(S){return S.id===0?"不修改服务器":S.id===n.value.siteId?"当前绑定服务器:"+S.id+" "+S.hostname+" 剩余空间:"+xt.formatSize(S.availableSpace):S.id+" "+S.hostname+" 剩余空间:"+xt.formatSize(S.availableSpace)}return ye(Lo.currentRoute,(S,T)=>{S.path!==T.path&&S.path.startsWith("/index/userManage/")&&(Lo.currentRoute.value.query.id===void 0&&Lo.replace(`/index/userManage/?id=${r.value[0].id}`),t.value=Number(r.value[0].id),r.value[0].id===-1&&(l.value=!0))}),nt(()=>{Lo.currentRoute.value.query.id===void 0?(Lo.replace(`/index/userManage/?id=${r.value[0].id}`),t.value=Number(r.value[0].id)):t.value=Number(Lo.currentRoute.value.query.id),t.value===-1&&(l.value=!0)}),(S,T)=>{const k=Al,R=Pl,x=Rl,A=on,F=Ml,B=$l,V=Wo,j=Ht;return E(),H(Le,null,[N(R,{mode:"horizontal","default-active":i(t)},{default:I(()=>[(E(!0),H(Le,null,ft(i(r),D=>(E(),ne(k,{index:D.id,onClick:L=>m(D.id)},{default:I(()=>[de(le(D.username),1)]),_:2},1032,["index","onClick"]))),256))]),_:1},8,["default-active"]),i(n)!==void 0?(E(),H("div",_ue,[N(F,null,{default:I(()=>[N(x,{span:8},{default:I(()=>[i(l)?te("",!0):(E(),H("span",Sue," 用户名:"+le(i(n).username),1))]),_:1}),N(x,{span:8},{default:I(()=>[N(A,{modelValue:i(a),"onUpdate:modelValue":T[0]||(T[0]=D=>st(a)?a.value=D:a=D)},{prepend:I(()=>[de(le(i(l)?"":"新")+"用户名 ",1)]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(F,null,{default:I(()=>[N(x,{span:8},{default:I(()=>[i(l)?te("",!0):(E(),H("span",Cue," 密码:"+le(i(n).passcode),1))]),_:1}),N(x,{span:8},{default:I(()=>[N(A,{modelValue:i(s),"onUpdate:modelValue":T[1]||(T[1]=D=>st(s)?s.value=D:s=D)},{prepend:I(()=>[de(le(i(l)?"":"新")+"密码 ",1)]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(F,null,{default:I(()=>[N(x,{span:8},{default:I(()=>[i(l)?te("",!0):(E(),H("span",kue,[de(" 当前可用空间:"+le(i(xt).formatSize(i(n).availableSpace)),1),Eue,de(" 总分配空间:"+le(i(xt).formatSize(i(n).totalSpace)),1)]))]),_:1}),N(x,{span:8,style:{"line-height":"37px"}},{default:I(()=>[N(A,{modelValue:i(u),"onUpdate:modelValue":T[3]||(T[3]=D=>st(u)?u.value=D:u=D)},{prepend:I(()=>[de(le((i(l)?"分配":"调整")+"空间"),1)]),append:I(()=>[N(V,{modelValue:i(c),"onUpdate:modelValue":T[2]||(T[2]=D=>st(c)?c.value=D:c=D),style:{width:"100px"}},{default:I(()=>[N(B,{value:"KB"}),N(B,{value:"MB"}),N(B,{value:"GB"})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(F,null,{default:I(()=>[N(x,{span:8},{default:I(()=>[i(l)?te("",!0):(E(),H("span",$ue," 存储路径:"+le(i(n).storagePath),1))]),_:1}),N(x,{span:8},{default:I(()=>[N(A,{modelValue:i(f),"onUpdate:modelValue":T[4]||(T[4]=D=>st(f)?f.value=D:f=D)},{prepend:I(()=>[de(le(i(l)?"":"新")+"存储路径 ",1)]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(F,null,{default:I(()=>[N(x,{span:8},{default:I(()=>[i(l)?te("",!0):(E(),H("span",Tue," 绑定服务器:"+le(v(i(n).siteId)),1))]),_:1}),N(x,{span:4},{default:I(()=>[N(V,{modelValue:i(d),"onUpdate:modelValue":T[5]||(T[5]=D=>st(d)?d.value=D:d=D),style:{width:"425px"}},{prefix:I(()=>[de(le(i(l)?"绑定服务器":""),1)]),default:I(()=>[(E(!0),H(Le,null,ft(i(o),D=>(E(),ne(B,{label:$(D),value:D.id,disabled:D.id===i(n).siteId||D.availableSpace===0},null,8,["label","value","disabled"]))),256))]),_:1},8,["modelValue"])]),_:1})]),_:1}),N(F,null,{default:I(()=>[N(x,{span:8}),N(x,{span:8},{default:I(()=>[N(j,{onClick:w,type:"primary"},{default:I(()=>[de("提交"+le(i(l)?"新建":"修改"),1)]),_:1}),tt(N(j,{onClick:y,type:"danger"},{default:I(()=>[de("删除用户")]),_:1},512),[[bt,!i(l)]]),tt(N(j,{onClick:b},{default:I(()=>[de("校准用户可用空间")]),_:1},512),[[bt,!i(l)]])]),_:1})]),_:1})])):te("",!0)],64)}}},xue={class:"container"},Nue=W("br",null,null,-1),Mue={__name:"login",setup(e){let t=M(),n=M(),o=M(!1);function r(){if(n.value.trim()===""||t.value.trim()===""){et.error("请输入用户名或密码");return}St.post(Ye.state.config.host+`login?username=${t.value}&passcode=${n.value}`).then(l=>{if(l.data.result==="success"){Ye.state.config.username=t.value,Ye.state.config.passcode=n.value,Ye.state.config.isAdmin=l.data.isAdmin==="true",Ye.state.config.sessionId=l.data.sessionId,Ye.dispatch("loadSites"),Ye.dispatch("initWebsocket"),Ye.dispatch("loadUsers"),o.value&&(localStorage.setItem("username",t.value),localStorage.setItem("passcode",n.value));let a=localStorage.getItem("lastTime");et.success("登陆成功"),a!==null&&a.includes("?")?Lo.push(a):Lo.push("/index/status/?type=all")}else et.error(l.data.data)})}return nt(()=>{localStorage.getItem("logout")!==null?localStorage.removeItem("logout"):localStorage.getItem("passcode")!==null&&(t.value=localStorage.getItem("username"),n.value=localStorage.getItem("passcode"),r())}),(l,a)=>{const s=on,u=I2,c=ho,f=Ht;return E(),H("div",xue,[de(" 登录网盘"),Nue,N(u,null,{default:I(()=>[N(s,{modelValue:i(t),"onUpdate:modelValue":a[0]||(a[0]=d=>st(t)?t.value=d:t=d)},{prepend:I(()=>[de(" 用户名 ")]),_:1},8,["modelValue"]),N(s,{modelValue:i(n),"onUpdate:modelValue":a[1]||(a[1]=d=>st(n)?n.value=d:n=d),type:"password"},{prepend:I(()=>[de(" 密码 ")]),_:1},8,["modelValue"])]),_:1}),W("div",null,[N(c,{modelValue:i(o),"onUpdate:modelValue":a[2]||(a[2]=d=>st(o)?o.value=d:o=d),style:{float:"left"}},{default:I(()=>[de("是否记住密码")]),_:1},8,["modelValue"]),N(f,{onClick:a[3]||(a[3]=d=>r(i(n))),style:{"text-align":"right"}},{default:I(()=>[de("登录")]),_:1})])])}}};var My={};Object.defineProperty(My,"__esModule",{value:!0});var fO=My.default=void 0,Hl=Ny,Rue=Ur,Iue=(0,Rue.IconWrapper)("every-user",!1,function(e){return(0,Hl.createVNode)("svg",{width:e.size,height:e.size,viewBox:"0 0 48 48",fill:"none"},[(0,Hl.createVNode)("circle",{cx:"14",cy:"29",r:"5",fill:e.colors[1],stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),(0,Hl.createVNode)("circle",{cx:"34",cy:"29",r:"5",fill:e.colors[1],stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),(0,Hl.createVNode)("circle",{cx:"24",cy:"9",r:"5",fill:e.colors[1],stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),(0,Hl.createVNode)("path",{d:"M24 44C24 38.4772 19.5228 34 14 34C8.47715 34 4 38.4772 4 44",stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),(0,Hl.createVNode)("path",{d:"M44 44C44 38.4772 39.5228 34 34 34C28.4772 34 24 38.4772 24 44",stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null),(0,Hl.createVNode)("path",{d:"M34 24C34 18.4772 29.5228 14 24 14C18.4772 14 14 18.4772 14 24",stroke:e.colors[0],"stroke-width":e.strokeWidth,"stroke-linecap":e.strokeLinecap,"stroke-linejoin":e.strokeLinejoin},null)])});fO=My.default=Iue;const Pue={__name:"sideBar",setup(e){let t=li();function n(){localStorage.clear(),delete Ye.state.config.passcode,Ye.state.websocket.close(),Ye.commit("logout"),t.push("login")}function o(){rr.prompt("请输入新密码:","修改密码",{confirmButtonText:"确认",cancelButtonText:"取消",inputValue:""}).then(r=>{if(r.value.trim()===""){et.error("密码不能为空");return}St.post(Ye.state.config.host+"alterPasscode?"+en.stringify({passcode:r.value})).then(l=>{et.success(l.data.data),Ye.commit("updatePasscode",r.value),t.push("/login")})}).catch(()=>{})}return(r,l)=>{const a=Be,s=Al,u=Pl;return E(),ne(u,{"default-active":r.$router.currentRoute.value.path,router:""},{default:I(()=>[N(s,{index:"/index/status/"},{title:I(()=>[N(a,null,{default:I(()=>[N(i(m8))]),_:1}),de("服务器概览 ")]),_:1}),N(s,{index:"/index/fileManage/"},{title:I(()=>[N(a,null,{default:I(()=>[N(i(HC))]),_:1}),de(" 文件管理 ")]),_:1}),N(s,{index:"/index/taskManage/"},{title:I(()=>[N(a,null,{default:I(()=>[N(i(T8))]),_:1}),de(" 任务管理 ")]),_:1}),i(Ye).state.config.isAdmin?(E(),ne(s,{key:0,index:"/index/siteManage/"},{default:I(()=>[N(a,null,{default:I(()=>[N(i(Y8))]),_:1}),de(" 服务器管理 ")]),_:1})):te("",!0),i(Ye).state.config.isAdmin?(E(),ne(s,{key:1,index:"/index/userManage/"},{default:I(()=>[N(a,null,{default:I(()=>[N(i(fO),{theme:"outline"})]),_:1}),de(" 用户管理 ")]),_:1})):te("",!0),N(s,{index:"/index/shareManage/"},{default:I(()=>[N(a,null,{default:I(()=>[N(i(WC))]),_:1}),de(" 分享码管理 ")]),_:1}),N(s,{onClick:o},{default:I(()=>[N(a,null,{default:I(()=>[N(i(Q8))]),_:1}),de(" 修改密码 ")]),_:1}),N(s,{onClick:n},{default:I(()=>[N(a,null,{default:I(()=>[N(i(To))]),_:1}),de(" 退出登录 ")]),_:1})]),_:1},8,["default-active"])}}},Aue=W("br",null,null,-1),Lue=W("br",null,null,-1),Fue=W("br",null,null,-1),Due=W("br",null,null,-1),Bue=W("br",null,null,-1),Vue=W("br",null,null,-1),Hue=W("br",null,null,-1),zue=W("br",null,null,-1),Kue=W("br",null,null,-1),Wue={__name:"index",setup(e){let t=M(!1),n=M({}),o=M(0),r=M("GB");ye(Ye.getters.getPairMessage,()=>{n.value=Ye.getters.getPairMessage,t.value=!0});function l(a){let s;if(a){if(isNaN(o.value)||o.value.trim()===""){et.error("请输入正确的格式");return}if(s=o.value*xt[r.value],s<=0||s>n.value.availableSpace){et.error("容量输入错误,不能为0或超出服务器可用容量");return}}Ye.dispatch("processPairRequest",{result:a,totalSpace:s}),t.value=!1}return(a,s)=>{const u=at("router-view"),c=yr,f=Ng,d=xg,p=$l,h=Wo,m=on,v=Ht,w=Il;return E(),H(Le,null,[N(d,null,{default:I(()=>[N(Pue,{style:{width:"12vw"}}),N(f,{style:{height:"95vh",width:"88vw","padding-top":"0",overflow:"hidden"}},{default:I(()=>[N(c,{"max-height":"95vh"},{default:I(()=>[N(u)]),_:1})]),_:1})]),_:1}),N(w,{modelValue:i(t),"onUpdate:modelValue":s[4]||(s[4]=g=>st(t)?t.value=g:t=g),title:"配对请求"},{footer:I(()=>[N(v,{onClick:s[2]||(s[2]=g=>l(!0)),type:"primary"},{default:I(()=>[de("允许")]),_:1}),N(v,{onClick:s[3]||(s[3]=g=>l(!1))},{default:I(()=>[de("拒绝")]),_:1})]),default:I(()=>[de(" ip地址:"+le(i(n).ip),1),Aue,de(" 主机名:"+le(i(n).hostname),1),Lue,de(" 系统版本:"+le(i(n).system),1),Fue,de(" cpu架构:"+le(i(n).cpuArch),1),Due,de(" cpu核心数:"+le(i(n).cpuCore),1),Bue,de(" cpu线程数:"+le(i(n).cpuThread),1),Vue,de(" 反代前缀:"+le(i(n).reverseProxyPrefix===null?"无":i(n).reverseProxyPrefix),1),Hue,de(" 域名:"+le(i(n).domain===null?"无":i(n).domain),1),zue,de(" 可用空间:"+le(i(xt).formatSize(i(n).availableSpace)),1),Kue,N(m,{style:{width:"300px"},modelValue:i(o),"onUpdate:modelValue":s[1]||(s[1]=g=>st(o)?o.value=g:o=g)},{prepend:I(()=>[de(" 分配容量: ")]),append:I(()=>[N(h,{placeholder:"单位",modelValue:i(r),"onUpdate:modelValue":s[0]||(s[0]=g=>st(r)?r.value=g:r=g),style:{width:"75px"}},{default:I(()=>[N(p,{value:"KB"}),N(p,{value:"MB"}),N(p,{value:"GB"})]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])],64)}}},jue=[{path:"/login",component:Mue},{path:"/index",component:Wue,children:[{path:"status",component:Oie},{path:"fileManage",component:oue},{path:"taskManage",component:hue},{path:"siteManage",component:gue},{path:"shareManage",component:wue},{path:"userManage",component:Oue}]}],Lo=$ie({history:zse(),routes:jue});ye(()=>Ye.state.isWsOnline,()=>{Ye.state.isWsOnline||Lo.push("/login")});Lo.beforeEach((e,t)=>{if(e.path!=="/login")return"passcode"in Ye.state.config?(localStorage.setItem("lastTime",e.fullPath),!0):{path:"/login"}});let Ry=Tm(bM);Ry.use(Lo);Ry.use(Une);Ry.mount("#app")});export default Uue();