File: /www/server/panel/BTPanel/static/js/useMethod4.js
import{G as n,M as y,e as S,_ as $,H as I,w as A}from"./utils-lib.js?v=1777008528";import{g as u,r as l,H as L,aF as K,e as _,U as F}from"./base-lib.js?v=1777008528";import{a as H,b as M,g as q,c as J,d as U,f as G}from"./config.js?v=1777008528";import{d as p,i as C}from"./useMethod.js?v=1777008528";import{o as Q}from"./index3.js?v=1777008528";const ue=u(()=>p.value.operateType==="add"),m=u(()=>p.value.operateType==="restore"),ce=u(()=>p.value.operateType==="detail"),Y=l(["1"]),V=l({}),O=l(!1),W=l(!1);l(null);l("计算中...");const w=l([]),pe=l(!1);L({web:"",ftp:"",database:""});const b=l(!1),f=L({size:0,current:0});u(()=>f.size<f.current);l(0);const de=e=>{const a=new Date(new Date),s=a.getFullYear(),t=a.getMonth()+1,r=a.getDate(),o=a.getHours(),g=a.getMinutes();return"备份-".concat(s,"-").concat(t<10?"0"+t:t,"-").concat(r<10?"0"+r:r,"-").concat(o<10?"0"+o:o).concat(g<10?"0"+g:g)},X=async(e,a,s,t)=>{const r={site:"site",database:"database",wptools:"wp_tools",plugin:"plugin",runtime:"soft",Ftp:"ftp",Crontab:"crontab",Vmail:"vmail",Terminal:"ssh",Firewall:"firewall",node:"node"};if(V.value=e,i.status=1,i.progress=0,i.msg="准备"+(m.value?"还原":"备份")+"数据",e.exec_time===""&&p.value.operateType==="restore"&&(v.value=P()),p.value.operateType==="restore"){const c={timestamp:p.value.timestamp,auto_exit:O.value?1:0,force_restore:W.value?1:0},N=await H(c);return}const o=[];Object.entries(a).map(([c,N])=>{if(c==="database"&&t.length>0){o.push(r[c]);return}if(c==="site"&&s.length>0){o.push(r[c]);return}N&&o.push(r[c])});let g={backup_name:e.name,auto_exit:O.value?1:0,storage_type:e.path,timestamp:e.exec_time/1e3,site_id:JSON.stringify(s.map(c=>c.id)),database_id:JSON.stringify(t.map(c=>c.id)),data_list:JSON.stringify(o)};const x=await M(g);C.value=!0,y.request(x),e.exec_time===""&&x.status&&(v.value=P())},me=async e=>{b.value||(b.value=!0,await Z(void 0,!0),m.value&&(y.success("刷新成功"),e.disabled=f.size>f.current,b.value=!1))},P=e=>S({title:!1,component:()=>$(()=>import("./back-progress.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),compData:{type:e},area:52}),B=async e=>{const{data:a}=await q({type:m.value||e==="restore"?"restore":"backup"});if(typeof a.data=="string"){Object.assign(i,{status:1,progress:0,msg:"获取进度日志中...",time:0}),j.value=a.data+",或请稍等片刻后检查进度是否更新,若未更新请重新进行操作",v.value&&setTimeout(B,1500);return}i.status=a.data.task_status,i.time=a.data.left_time||0,j.value=a.data.exec_log||"暂无日志",a.data.task_status===2||a.data.task_status===3?(i.progress=100,i.msg="备份"+(a.data.task_status===2?"成功":"结束"),a.data.backup_file_info&&Object.assign(ae.value,{name:a.data.backup_file_info.backup_name,files_size:n(Number(a.data.backup_file_info.backup_file_size)),end_time:a.data.backup_file_info.done_time,time_count:a.data.backup_file_info.restore_total_time||a.data.backup_file_info.total_time,backup_file_sha256:a.data.backup_file_info.backup_file_sha256}),a.data.task_status===3&&(i.msg="备份失败",i.progress=0,te.value=a.data.err_info||[]),C.value=!0):(i.progress=a.data.progress,i.msg=a.data.task_msg,v.value&&setTimeout(B,1500))},Z=async(e,a)=>{try{if(b.value=!0,p.value.operateType==="restore"){const{data:s}=await J({timestamp:p.value.timestamp,type:"backup"});k(s.data.data_status),f.size=s.data.disk_use,f.current=s.data.disk_free,b.value=!1;return}if(!I(e)&&e!==void 0)k(e);else{const{data:s}=await U();p.value.operateType==="add"&&ee(s.data),k(s.data)}b.value=!1,a&&y.success("刷新成功")}catch(s){}},ee=e=>{var a,s,t;w.value=((a=e.oss_list)==null?void 0:a.map(r=>({label:r.name,value:r.value,status:!!r.status,disabled:r.value!=="localhost"&&!r.status,render:o=>_("div",{class:"flex items-center justify-between"},[_("span",null,[o.label]),_("span",{onClick:()=>{Q({name:o.value})},class:"float-right text-small text-danger cursor-pointer ml-12px ".concat(o.value!=="localhost"?"":"!hidden")},[o.status?"":"[未配置]"])])})))||[],(!w.value||((s=w.value[0])==null?void 0:s.value)!=="local")&&((t=w.value)==null||t.unshift({label:"本地存储",value:"local"}))},k=e=>{const a={command_size:"命令列表",ssh_size:"终端数据"},s={firewall_conutry:"地区规则",firewall_ip:"IP规则",firewall_forward:"端口转发规则",firewall_malicious_ip:"恶意IP",firewall_new:"端口规则"};z.value=e.site_list,E.value=e.database_list,se.value=e.btnode_list,d.value.ftpList=e.ftp_list,d.value.crontabList=e.crontab_list,d.value.vmailList=e.vmail_list,d.value.termList=Object.keys(e.ssh_list).filter(t=>t!=="status"&&t!=="err_msg").map(t=>({name:a[t],size:e.ssh_list[t]})),d.value.firewallList=Object.keys(e.firewall_list).length>0?Object.keys(s).filter(t=>t!=="firewall_conutry").map(t=>({name:s[t],total:e.firewall_list[t]||"--"})):[],D.value=e.plugin_list||[],T.value=e.soft_data||[],R.value=e.wp_tools_list||[],Object.keys(h.value).forEach(t=>h.value[t.toLowerCase()]=!1),p.value.operateType!=="restore"&&(f.size=e.disk_use,f.current=e.disk_free)},j=l(""),v=l(),i=L({status:1,progress:0,time:0,msg:"准备开始操作"}),ae=l({name:"",backup_file:"",files_size:"",end_time:"",time_count:"",backup_file_sha256:""}),te=l([]),fe=[{type:"index"},{label:"失败项",prop:"name"},{label:"失败原因",prop:"msg",width:140,render:e=>_("span",{class:"text-dangerDark"},[e.msg])},{label:"类型",prop:"type"}],ve=()=>{z.value=[],d.value.ftpList=[],d.value.crontabList=[],d.value.termList=[],d.value.firewallList=[],D.value=[],T.value=[],Object.keys(h.value).forEach(e=>h.value[e.toLowerCase()]=!0),Y.value=["1"]},_e=async()=>{try{await A({title:"确认继续"+(m.value?"还原":"备份"),content:"即将尝试继续"+(m.value?"还原":"备份")+"数据,是否继续操作?"}),(await v.value).unmount(),v.value=null,X(V.value)}catch(e){}},z=l([]),be=u(()=>n(z.value.reduce((e,a)=>e+Number(a.size),0))),E=l([]),ge=u(()=>n(E.value.reduce((e,a)=>e+Number(a.size),0))),se=l([]),R=l([]),ye=u(()=>n(R.value.reduce((e,a)=>e+Number(a.size),0))),D=l([]),we=u(()=>n(D.value.reduce((e,a)=>e+Number(a.size),0))),T=l([]),he=u(()=>n(T.value.reduce((e,a)=>e+Number(a.size),0))),d=l({ftpList:[],crontabList:[],vmailList:[],termList:[],firewallList:[]}),ke=e=>n(d.value[e].reduce((a,s)=>a+Number(s.size||s.vmail_size||0),0)),h=l({site:!0,database:!0,ftp:!0,crontab:!0,vmail:!0,terminal:!0,firewall:!0,wptools:!0,plugin:!0,runtime:!0,node:!0,other:!0}),Le=u(()=>({Ftp:{title:"FTP",icon:"ftp",dataKey:"ftpList",loadingKey:"ftp",tooltip:"仅备份FTP账号和密码,不备份FTP目录"},Crontab:{title:"计划任务",icon:"crontab",dataKey:"crontabList",loadingKey:"crontab"},Vmail:{title:"邮局服务器",icon:"mail",dataKey:"vmailList",loadingKey:"vmail",count:!0},Terminal:{title:"终端",icon:"xterm",dataKey:"termList",loadingKey:"terminal"},Firewall:{title:"系统防火墙",icon:"firewall",dataKey:"firewallList",loadingKey:"firewall"}})),Ce=u(()=>[...m.value?[]:[{type:"CheckBox",width:36,renderHeader:()=>K("div"),render:(e,a,{handleScopeChange:s})=>_(F,{modelValue:e.keys_scopes_status,"onUpdate:modelValue":t=>e.keys_scopes_status=t,onChange:t=>s(t,e,a,"id")},null)}],{label:"网站名称",prop:"name"},{label:"网站大小",render:e=>n(Number(e.size))},{label:"网站类型",prop:"type"}]),ze=u(()=>[...m.value?[]:[{type:"CheckBox",width:36,renderHeader:()=>K("div"),render:(e,a,{handleScopeChange:s})=>_(F,{modelValue:e.keys_scopes_status,"onUpdate:modelValue":t=>e.keys_scopes_status=t,onChange:t=>s(t,e,a,"id")},null)}],{label:"数据库名称",prop:"name"},{label:"数据库大小",render:e=>n(Number(e.size))},{label:"数据库类型",prop:"type"}]),De=[{label:"网站名称",prop:"name",width:120},{label:"网站大小",render:e=>n(Number(e.size))},{label:"网站类型",render:e=>e.type==="local"?"本地":"远程"}],Te=[{label:"插件名称",prop:"name"},{label:"大小",render:e=>n(Number(e.size))}],xe=[{label:"运行环境",prop:"name"},{label:"版本",prop:"version"},{label:"大小",render:e=>n(Number(e.size))}],Ne=[{label:"名称",prop:"name"},{label:"服务器IP",prop:"server_ip"}],Oe=async()=>{await A({title:"确认取消"+(m.value?"还原":"备份"),content:"即将取消"+(m.value?"还原":"备份")+"数据,是否继续操作?"});let e=y.load("正在取消任务,请稍后...");const a=await G({timestamp:p.value.timestamp});(await v.value).unmount(),v.value=null,e.close(),y.request(a),C.value=!0};export{ve as $,T as A,he as B,xe as C,Y as D,O as E,W as F,b as G,me as H,i as I,j as J,B as K,v as L,Oe as M,ae as N,fe as O,te as P,_e as Q,P as R,pe as S,X as a,f as b,de as c,ue as d,E as e,ce as f,Z as g,be as h,m as i,ge as j,ze as k,R as l,ye as m,De as n,w as o,D as p,se as q,Ne as r,Ce as s,h as t,d as u,ke as v,z as w,Le as x,we as y,Te as z};
function __vite__mapDeps(indexes) {
if (!__vite__mapDeps.viteFileDeps) {
__vite__mapDeps.viteFileDeps = []
}
return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
}