File: /www/server/panel/BTPanel/static/js/index310.js
import{c as ne,R as se,G as re,k as i,M as _,w as ie,dt as ue,c4 as pe,d3 as de,K as me,cO as ce,cZ as ge}from"./utils-lib.js?v=1777008528";import{_ as fe}from"./index118.js?v=1777008528";import{c as ve,V as _e,r as o,H as be,aF as ke,o as we,I as z,j as b,k as V,e as n,v as s,x as k,p as t,J as D,Q as w,q as r,F as xe,B as ye,C as Ce,R as Be,y as Ve,z as De,am as qe,an as Ee}from"./base-lib.js?v=1777008528";import{_ as Re}from"./index217.js?v=1777008528";import{G as Se,g as he,e as Te}from"./index3.js?v=1777008528";import{x as Ue,j as Me}from"./useMethod5.js?v=1777008528";import{getBackupDatabase as Pe,getMysqlCloudServer as Ae,getMysqlBackupInfo as F,inputDatabase as Le,getMysqlAllBackup as ze,backupDatabase as Fe}from"./database.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";import"./index119.js?v=1777008528";import"./index116.js?v=1777008528";import"./useStore4.js?v=1777008528";const Ie={class:"p-20px"},Ne={class:"p-20px flex flex-col"},Oe={key:0},$e={class:"p-16px flex flex-col bg-base"},Ge=ve({__name:"index",setup(je,{expose:I}){var M;const{panel:N}=ne(),c=_e([]),p=o((M=c.value[0])==null?void 0:M.id),q=o(!1),E=o([]),u=be({p:1,limit:10,total:0}),R=o({}),d=o(""),g=o("detail"),f=o(!1),x=o([]),S=o(!1),h=o(),v=o(!1),y=o([]),O=[{label:"数据库名称",prop:"name"},{label:"大小",prop:"size",render:a=>re(a.size)}],$=(N.value.backupPath+"/database/mysql/all_backup/").replace(/\/\//g,"/"),T=async()=>{const a=await i({request:Pe({sid:p.value}),loading:S,data:{status:Boolean,msg:String,data:[Array,x]}});a.status||(_.error(a.msg||"获取数据库备份列表失败"),x.value=[])},G=async()=>{await j(),await T(),U.value=[Te(),{label:"数据库名称",prop:"name",width:200},{label:"表数量",prop:"table_num"},Me(c.value,"mysql"),{label:"大小",prop:"size"}],f.value=!0},j=async()=>{var a;await i({loading:"正在获取服务器数据,请稍后...",request:Ae(),data:[Array,c]}),p.value=(a=c.value[0])==null?void 0:a.id},H=async a=>{await i({request:F({file:a.path}),loading:"正在获取数据库详情,请稍后...",data:{data:[Array,y],msg:String},success:e=>{e.msg!=="ok"?_.error(e.msg):(g.value="detail",v.value=!0)}})},J=async a=>{await ie({title:"删除文件",content:"删除选中数据库备份文件后,该数据库备份文件将永久消失,是否继续操作?",icon:"warning-filled"}),await i({request:ue({path:a.path}),loading:"正在删除文件,请稍后...",message:!0}),m()},K=async a=>{R.value=a,await i({request:F({file:a.path}),loading:"正在获取数据库详情,请稍后...",data:{data:[Array,y]}}),v.value=!0,g.value="restore"},Q=async a=>{if(g.value==="detail")return a();if(d.value!=="我已知晓")return _.error("输入错误,请重新输入!"),!1;await i({request:Le({file:R.value.path}),loading:"正在导入数据库,请稍后...",message:!0}),d.value=""},Z=async a=>{window.open("/download?filename="+encodeURIComponent(a.path),"_blank","noopener,noreferrer")},m=async()=>{await i({request:ze({...u}),loading:q,data:{data:[Array,E],page:pe(u)}})},W=async()=>{const a=h.value.tableSelectList;if(!a.length)return _.error("请选择需要备份的数据库"),!1;await i({request:Fe({sid:p.value,db_list:JSON.stringify(a.map(e=>e.name))}),loading:"正在备份中,请稍后...",message:!0}),f.value=!1,m()},X=[{label:"文件名称",prop:"name"},{label:"备份时间",prop:"mtime",width:200,render:a=>{const e=new Date(a.mtime*1e3);return ke("span",se(e))}},Se({prop:"size",width:100}),he([{onClick:H,title:"详情"},{onClick:K,title:"恢复"},{onClick:Z,title:"下载"},{onClick:J,title:"删除"}])],U=o();return we(m),I({init:m}),(a,e)=>{const P=De,C=de,Y=Re,ee=qe,ae=Ee,A=fe,L=me,te=ce,B=z("bt-loading"),le=z("focus");return b(),V("div",null,[n(A,null,{"header-left":s(()=>[n(P,{onClick:G,type:"primary"},{default:s(()=>[...e[10]||(e[10]=[k("数据库备份",-1)])]),_:1}),n(P,{onClick:e[0]||(e[0]=l=>t(Ue)(()=>m(),t($)))},{default:s(()=>[...e[11]||(e[11]=[k("从本地上传",-1)])]),_:1})]),content:s(()=>[D(n(C,{column:X,data:t(E)},null,8,["data"]),[[B,t(q)]])]),"footer-right":s(()=>[n(Y,{total:t(u).total,page:t(u).p,"onUpdate:page":e[1]||(e[1]=l=>t(u).p=l),row:t(u).limit,"onUpdate:row":e[2]||(e[2]=l=>t(u).limit=l),onChange:e[3]||(e[3]=l=>m())},null,8,["total","page","row"])]),popup:s(()=>[n(L,{title:"数据库备份",modelValue:t(f),"onUpdate:modelValue":e[5]||(e[5]=l=>w(f)?f.value=l:null),onConfirm:W,showFooter:"",area:60},{default:s(()=>[r("div",Ie,[n(A,null,{"header-right":s(()=>[n(ae,{class:"!w-[16rem]",modelValue:t(p),"onUpdate:modelValue":e[4]||(e[4]=l=>w(p)?p.value=l:null),onChange:T},{default:s(()=>[(b(!0),V(xe,null,ye(t(c),(l,oe)=>(b(),Ce(ee,{key:oe,label:l.ps,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),content:s(()=>[D(n(C,{ref_key:"backupTableRef",ref:h,column:t(U),data:t(x),"max-height":"360"},null,8,["column","data"]),[[B,t(S)],[B,"正在加载列表,请稍后...","title"]])]),_:1})])]),_:1},8,["modelValue"]),n(L,{title:t(g)==="restore"?"恢复数据库":"数据库详情",modelValue:t(v),"onUpdate:modelValue":e[8]||(e[8]=l=>w(v)?v.value=l:null),showFooter:"",area:60,onConfirm:Q,onCancel:e[9]||(e[9]=l=>d.value="")},{default:s(()=>[r("div",Ne,[n(C,{column:O,data:t(y),"max-height":"360"},null,8,["data"]),t(g)==="restore"?(b(),V("div",Oe,[e[13]||(e[13]=r("div",{class:"flex items-center my-12px text-base"},[r("i",{class:"text-warning svgtofont-el-warning-filled !text-titleLarge mr-8px"}),r("span",null,"恢复后会覆盖当前数据库数据,此操作不可逆,是否继续操作?")],-1)),r("div",$e,[e[12]||(e[12]=r("span",{class:"mb-4px"},[k("请手动输入 "),r("span",{class:"text-danger"},'"我已知晓"'),k(" ,完成验证")],-1)),D(n(te,{modelValue:t(d),"onUpdate:modelValue":e[6]||(e[6]=l=>w(d)?d.value=l:null),width:"52rem",onPasteCapture:e[7]||(e[7]=Be(()=>{},["prevent"]))},null,8,["modelValue"]),[[le]])])])):Ve("",!0)])]),_:1},8,["title","modelValue"])]),_:1}),e[14]||(e[14]=r("ul",{class:"mt-16px leading-8 text-small list-disc ml-20px"},[r("li",null,"恢复仅限于在本页面进行的备份进行恢复,非本页面的备份数据可能无法正确恢复,请注意。")],-1))])}}}),la=ge(Ge,[["__scopeId","data-v-4c898673"]]);export{la as default};