File: /www/server/panel/BTPanel/static/js/index136.js
import{c as de,da as Ee,R as Ve,k as w,e as ae,_ as se,w as R,M as L,cU as $e,G as qe,du as Te,cX as Ae,c4 as Ie,d3 as Re,d4 as Oe,K as ze,cO as Le,m as Se,n as Ue,cZ as Me,cR as je}from"./utils-lib.js?v=1777008528";import{c as X,g as re,H as I,r as g,o as me,j as B,k as N,p as l,C as G,y as he,q as i,s as A,J as ce,L as He,e as t,v as c,x as d,aF as we,a8 as Ne,aX as Ge,aV as Ye,z as Be,bw as Je,am as We,an as Ke,b7 as Xe,aC as Qe,I as Ze,F as et,Q as ue,K as tt,at,as as st,ar as lt,ad as nt,ab as ot,aE as it}from"./base-lib.js?v=1777008528";import{g as pe}from"./useStore4.js?v=1777008528";import{_ as rt}from"./index192.js?v=1777008528";import{_ as De}from"./index118.js?v=1777008528";import{g as Fe,b as ct,w as ut,e as dt,G as mt,E as pt}from"./index3.js?v=1777008528";import{getBinlogBackupFiles as _t,delBinlogBackupTask as ft,getBinlogBackupLogs as bt,deleteBinlogBackupFile as gt,clearBinlogBackup as kt,restoreBinlogData as vt,getBinlogBackupTask as xt,getIncrementBackupInfo as wt,getRestoreProgress as yt,backDatabase as ht,backModuleDatabase as Bt,delBackup as Dt,checkDatabasePass as Ft,restoreModuleBack as Ct,restoreBack as Pt}from"./database.js?v=1777008528";import{_ as Et}from"./index206.js?v=1777008528";import{_ as Vt}from"./index116.js?v=1777008528";import{_ as $t}from"./index217.js?v=1777008528";import{t as ye,y as qt}from"./useMethod5.js?v=1777008528";import"./__commonjsHelpers__.js?v=1777008528";import"./index119.js?v=1777008528";const Tt={key:0},At={class:"data-show"},It={class:"bg-lighter rounded-lg border border-light p-6 mb-4"},Rt={class:"grid grid-cols-1 md:grid-cols-3 gap-6 pb-6 border-b border-light"},Ot={class:"text-center md:text-left"},zt={class:"text-medium"},Lt={class:"grid grid-cols-2 col-span-2 gap-6","element-loading-text":"获取中..."},St={class:"text-center md:text-left"},Ut={class:"text-medium"},Mt={class:"text-center md:text-left"},jt={class:"text-medium"},Ht={class:"pt-6 pb-3"},Nt={class:"flex items-center justify-between"},Gt={class:"flex items-center space-x-8"},Yt={class:"pb-3"},Jt={class:"flex items-center space-x-4"},Wt={class:"text-small text-secondary"},Kt={class:"text-small text-secondary"},Xt={class:"flex items-center justify-between"},Qt={class:"flex items-center space-x-8"},Zt={class:"text-small font-medium"},ea={class:"text-small font-medium"},ta={class:"flex items-center gap-4"},aa={class:"flex items-center"},sa=X({__name:"index",props:{compData:{default:()=>[]},isRowBackup:{type:Boolean,default:!1}},setup(S,{expose:y}){const{payment:k}=de();re(()=>k.value.authType),pe();const p=S,h=I({name:"",tableCount:0,size:""}),Y=g(!1),o=I({database_name:"test_db",full_backup_schedule:{type:"daily",time:"02:30:00",weekday:0,interval_days:0,interval_hours:0},incremental_backup_interval:30,enabled:!0,create_time:"",last_full_backup:"",last_incremental_backup:"",next_full_backup:"",next_incremental_backup:"",space_free:!0}),_=I({time:"",type:"all"}),U=I({disabledDate:r=>{const n=new Date;n.setHours(23,59,59,999);const P=n.getTime();return r.getTime()>P},defaultTime:[new Date,new Date]}),M={title:"企业增量备份",ps:"企业增量备份只定时备份发生变化新增、修改、删除文件和数据,不会每次都备份所有数据",source:54,desc:[],tabImgs:[{title:"概览",imgSrc:"https://www.bt.cn/Public/new/plugin/introduce/database/database_enterprise_backup.png"}]},Q={0:"周日",1:"周一",2:"周二",3:"周三",4:"周四",5:"周五",6:"周六"},Z=re(()=>{if(!o.database_name)return"--";switch(o.full_backup_schedule.type){case"daily":return"每天 ".concat(o.full_backup_schedule.time," 备份");case"weekly":return"每周 ".concat(Q[o.full_backup_schedule.weekday]," ").concat(o.full_backup_schedule.time," 备份");case"interval":return"每隔 ".concat(o.full_backup_schedule.interval_days," 天后 ").concat(o.full_backup_schedule.time," 备份");case"hours":return"每隔 ".concat(o.full_backup_schedule.interval_hours," 小时 ").concat(o.full_backup_schedule.time||""," 备份")}}),le=re(()=>o.database_name?o.incremental_backup_interval>60?"每 ".concat(Math.floor(o.incremental_backup_interval/60),"小时").concat(o.incremental_backup_interval%60,"分钟备份"):"每 ".concat(o.incremental_backup_interval," 分钟备份"):"--"),_e=r=>r?"运行中":"已停止",C=async()=>{ae({title:"配置备份计划",area:85,component:()=>se(()=>import("./add-increment.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),showFooter:!0,compData:{...p.compData,backupPlan:o,refreshEvent:()=>{O()}}})},J=async()=>{o.enabled?(await R({title:"停止备份计划",content:"确定停止数据库【".concat(o.database_name,"】增量备份计划吗?停止后将无法进行增量备份")}),await w({loading:"停止备份计划中...",message:!0,request:ft({id:p.compData.id})}),O()):C()},$=()=>{ae({title:"备份日志",area:56,btns:!1,component:X({setup:()=>{const r=g("");return w({loading:"获取日志中...",request:bt({id:p.compData.id}),success:n=>{if(!n.data.status)return L.error(n.data.msg);r.value=n.data.data.join("\n")}}),()=>we("div",{class:"overflow-y-auto"},we(Et,{class:"!h-[40rem]",content:r.value,isHtml:!0}))}})})},ee=async r=>{await R({title:"删除备份",content:"确定删除该备份吗?删除后将无法恢复!"}),await w({loading:"删除备份中...",message:!0,request:gt({backup_id:r})}),q()},V=async()=>{await R({title:"清空备份",content:"当前将清空【".concat(p.compData.name,"】下通过备份计划备份的全量与增量备份(不会清除手动备份),请确保当前数据已正常,再清空备份"),type:"calc"}),await w({loading:"清空备份中...",message:!0,request:kt({id:p.compData.id})}),q()},D=async r=>{window.open("/download?filename="+r,"_blank")},ne=async r=>{await R({title:"还原备份【".concat(r.backup_time,"】"),content:"此操作将覆盖当前数据库的所有数据,请确保已经备份现有数据!",type:"calc"});const n=await w({loading:"还原备份中...",request:vt({id:p.compData.id,restore_time:r.backup_time})});if(n.data.status)ae({title:"还原进度",area:56,btns:!1,component:X({setup:(P,{emit:j})=>{const a=I({status:"preparing",progress:0,message:"准备还原数据...",restore_time:"",start_time:"",update_time:"",error:null,backup_files:[]}),E=g(null),b=g(!0),z={preparing:{text:"准备还原数据",color:"#20a53a",progress:0},analyzing:{text:"分析备份文件",color:"#20a53a",progress:10},restoring:{text:"正在还原数据",color:"#20a53a",progress:20},finalizing:{text:"完成还原操作",color:"#20a53a",progress:90},completed:{text:"还原完成",color:"#20a53a",progress:100},failed:{text:"还原失败",color:"#f56c6c",progress:0},not_found:{text:"任务不存在",color:"#e6a23c",progress:0}},H=async()=>{var e,u,m,v,T;if(b.value)try{const x=await w({request:yt({task_id:n.data.data.task_id})});if((e=x==null?void 0:x.data)!=null&&e.status){const F=x.data.data;a.status=F.status||"preparing",a.message=F.message||((u=z[a.status])==null?void 0:u.text)||"处理中...",a.restore_time=F.restore_time||"",a.start_time=F.start_time||"",a.update_time=F.update_time||"",a.backup_files=F.backup_files||[],a.error=F.error||null,F.progress!==void 0?a.progress=Math.min(Math.max(F.progress,0),100):a.progress=((m=z[a.status])==null?void 0:m.progress)||0;const te=["completed","failed","not_found"].includes(a.status);!te&&b.value?E.value=setTimeout(H,1500):te&&(a.status==="completed"?(L.success("数据库还原成功"),q()):a.status==="failed"&&L.error(a.error||"还原失败,请查看错误信息"),b.value=!1)}else a.status="failed",a.message=((v=x==null?void 0:x.data)==null?void 0:v.msg)||"获取进度失败",a.error=((T=x==null?void 0:x.data)==null?void 0:T.error_msg)||"未知错误",b.value=!1}catch(x){a.status="failed",a.message="获取进度失败,请检查网络连接",a.error="网络连接异常",b.value=!1}},s=()=>{E.value&&(clearTimeout(E.value),E.value=null),b.value=!1};return H(),Ne(s),()=>{var e,u;return t("div",{class:"p-[2rem]"},[t("div",{class:"flex items-center mb-[2rem]"},[t("i",{class:["!text-[3rem] mr-[1rem]",a.status==="completed"?"svgtofont-el-success-filled text-primary":a.status==="failed"?"svgtofont-el-circle-close-filled text-danger":"svgtofont-el-loading animate-spin text-primary"]},null),t("div",{class:"flex-1"},[t("div",{class:"text-medium font-medium mb-[4px]"},[a.status==="completed"?"还原成功":a.status==="failed"?"还原失败":"正在还原数据库"]),t("div",{class:"text-small text-secondary"},[d("数据库:"),p.compData.name])])]),!["completed","failed"].includes(a.status)&&t("div",{class:"mb-[2rem]"},[t("div",{class:"flex justify-between items-center mb-[8px]"},[t("span",{class:"text-base"},[a.message]),t("span",{class:"text-small text-secondary"},[a.progress,d("%")])]),t(Ge,{percentage:a.progress,"stroke-width":8,"show-text":!1,color:((e=z[a.status])==null?void 0:e.color)||"#20a53a"},null)]),t("div",{class:"bg-light rounded-lg p-[1.5rem] mb-[1.5rem]"},[t("div",{class:"text-base font-medium mb-[1rem] text-default"},[d("还原信息")]),t("div",{class:"space-y-[8px] text-small text-secondary"},[a.restore_time&&t("div",{class:"flex"},[t("span",{class:"w-[8rem] flex-shrink-0"},[d("还原时间点:")]),t("span",null,[a.restore_time])]),a.start_time&&t("div",{class:"flex"},[t("span",{class:"w-[8rem] flex-shrink-0"},[d("开始时间:")]),t("span",null,[a.start_time])]),a.update_time&&t("div",{class:"flex"},[t("span",{class:"w-[8rem] flex-shrink-0"},[d("更新时间:")]),t("span",null,[a.update_time])]),t("div",{class:"flex"},[t("span",{class:"w-[8rem] flex-shrink-0"},[d("当前状态:")]),t("span",{class:"flex items-center"},[t("span",{class:["w-[8px] h-[8px] rounded-full mr-[6px]",a.status==="completed"?"bg-primary":a.status==="failed"?"bg-[#ef0808]":"hidden"]},null),((u=z[a.status])==null?void 0:u.text)||a.message])])])]),a.backup_files&&a.backup_files.length>0&&t("div",{class:"bg-light rounded-lg p-[1.5rem] mb-[1.5rem]"},[t("div",{class:"text-base font-medium mb-[1rem] text-default"},[d("相关备份文件 ("),a.backup_files.length,d("个)")]),t("div",{class:"space-y-[4px] max-h-[8rem] overflow-y-auto"},[a.backup_files.map((m,v)=>t("div",{key:v,class:"text-[1.1rem] text-secondary bg-white px-[8px] py-[4px] rounded"},[m]))])]),a.status==="failed"&&a.error&&t("div",{class:"bg-light border rounded-lg p-[1.5rem] mb-[1.5rem]"},[t("div",{class:"text-base font-medium mb-[1rem] text-danger flex items-center"},[t("i",{class:"svgtofont-el-warning-filled mr-[6px]"},null),d("错误详情")]),t("div",{class:"text-small text-secondary whitespace-pre-wrap"},[a.error])])])}}})});else return L.error(n.data.msg)},oe=$e([{label:"删除备份",value:"delete",event:()=>{}}]),{BtTable:ie,BtPage:W,refresh:q,BtBatch:fe}=Ee({request:async r=>{const n={id:p.compData.id,page:r.p,limit:r.limit,backup_type:_.type,..._.time?{date:Ve(_.time,"yyyy-MM-dd")}:{}},{data:P}=await w({loading:"获取备份记录中...",request:_t(n)});return{data:P.data.list,total:P.data.total}},columns:[{label:"备份时间",prop:"backup_time",showOverflowTooltip:!0,minWidth:100},{label:"备份类型",prop:"backup_type",minWidth:100,render:r=>r.backup_type==="incremental"?"增量备份":"全量备份"},{label:"备份大小",prop:"formatted_size",minWidth:100},Fe([{onClick:r=>ne(r),title:"还原"},{onClick:r=>D(r.file_path),title:"下载"},{onClick:r=>ee(r.backup_id),title:"删除"}])],extension:[oe]}),O=async()=>{const{data:r}=await w({loading:"获取备份计划信息中...",request:xt({id:p.compData.id})});r.status?(o.database_name=r.data.database_name,o.full_backup_schedule=r.data.full_backup_schedule,o.incremental_backup_interval=r.data.incremental_backup_interval,o.enabled=r.data.enabled,o.create_time=r.data.create_time,o.last_full_backup=r.data.last_full_backup,o.last_incremental_backup=r.data.last_incremental_backup,o.next_full_backup=r.data.next_full_backup,o.next_incremental_backup=r.data.next_incremental_backup,o.space_free=r.data.space_free):o.database_name=""},K=async()=>{h.name=p.compData.name,O();const{data:r}=await w({loading:Y,request:wt({id:p.compData.id})});r.status&&(h.tableCount=r.data.table_count||0,h.size=qe(r.data.db_size)||"--")};return me(K),y({init:K}),(r,n)=>{const P=Ye,j=Be,a=Je,E=We,b=Ke,z=De,H=rt,s=Xe;return B(),N("div",null,[l(k).authType==="ltd"?(B(),N("div",Tt,[l(o).space_free?he("",!0):(B(),G(P,{key:0,title:"当前磁盘空间不足1GB,已自动停止增量备份,如需继续请释放磁盘空间",type:"warning","show-icon":"",class:"!mb-4"})),i("div",At,[i("div",It,[i("div",Rt,[i("div",Ot,[n[2]||(n[2]=i("div",{class:"text-small text-secondary mb-1"},"数据库名称",-1)),i("div",zt,A(l(h).name||"--"),1)]),ce((B(),N("div",Lt,[i("div",St,[n[3]||(n[3]=i("div",{class:"text-small text-secondary mb-1"},"表数量",-1)),i("div",Ut,A(l(h).tableCount||0),1)]),i("div",Mt,[n[4]||(n[4]=i("div",{class:"text-small text-secondary mb-1"},"数据库大小",-1)),i("div",jt,A(l(h).size||"--"),1)])])),[[s,l(Y)]])]),i("div",Ht,[i("div",Nt,[i("div",Gt,[n[5]||(n[5]=i("h3",{class:"text-base font-medium text-secondary"},"备份计划",-1)),i("span",{class:He(["px-3 py-1 rounded-full text-small font-medium cursor-pointer",l(o).enabled?"bg-[var(--el-color-primary-light-9)] text-primary":"bg-[var(--el-color-danger-light-9)] text-red-700"]),onClick:J},A(_e(l(o).enabled)),3)])])]),i("div",Yt,[i("div",Jt,[i("span",Wt,"全量: "+A(l(Z)),1),n[7]||(n[7]=i("span",{class:"text-gray-300"},"|",-1)),i("span",Kt,"增量: "+A(l(le)),1),t(j,{type:"primary",class:"ml-[1rem]",size:"small",text:"",onClick:$},{default:c(()=>[...n[6]||(n[6]=[d(" 查看日志 ",-1)])]),_:1})])]),i("div",null,[i("div",Xt,[i("div",Qt,[n[8]||(n[8]=i("div",{class:"text-small text-secondary"},"最近执行时间",-1)),i("div",Zt,A(l(o).last_incremental_backup||"--"),1),n[9]||(n[9]=i("div",{class:"text-small text-secondary"},"下次执行时间",-1)),i("div",ea,A(l(o).next_incremental_backup||"--"),1)]),n[10]||(n[10]=i("div",null,null,-1))])])])]),t(z,null,{"header-left":c(()=>[i("div",ta,[t(j,{type:"primary",onClick:C},{default:c(()=>[...n[11]||(n[11]=[d("编辑计划 ",-1)])]),_:1}),t(j,{type:"default",onClick:V},{default:c(()=>[...n[12]||(n[12]=[d("清空备份 ",-1)])]),_:1})])]),"header-right":c(()=>[i("div",aa,[t(a,{type:"date",modelValue:l(_).time,"onUpdate:modelValue":n[0]||(n[0]=e=>l(_).time=e),"show-after":100,class:"!w-[24rem] !h-[30px]","disabled-date":l(U).disabledDate,placeholder:"请选择日期",format:"YYYY-MM-DD","value-format":"x",onChange:l(q)},null,8,["modelValue","disabled-date","onChange"]),t(b,{modelValue:l(_).type,"onUpdate:modelValue":n[1]||(n[1]=e=>l(_).type=e),class:"rounded-none !w-[12rem] ml-[1rem]",onChange:l(q)},{default:c(()=>[t(E,{label:"全部类型",value:"all"}),t(E,{label:"增量备份",value:"incremental"}),t(E,{label:"全量备份",value:"full"})]),_:1},8,["modelValue","onChange"])])]),content:c(()=>[t(l(ie),{"max-height":221})]),"footer-left":c(()=>[...n[13]||(n[13]=[])]),"footer-right":c(()=>[t(l(W))]),popup:c(()=>[...n[14]||(n[14]=[])]),_:1}),n[15]||(n[15]=i("ul",{class:"mt-[8px] leading-8 text-small list-disc ml-[20px]"},[i("li",null,"还原数据等操作将会被增量备份记录,导致备份大小增大"),i("li",null,"建议确认数据正常后,手动备份并【清空备份】,重置为干净状态")],-1))])):(B(),G(H,{key:1,data:M,class:"p-20px"}))])}}}),la={class:"p-20px"},na={class:"p-20px"},oa={class:"mt-4px leading-8 text-small list-disc ml-[20px]"},ia=X({__name:"route-back",props:{compData:{default:()=>({id:0,name:""})}},setup(S){const y=S,{refs:{tabActive:k},refreshTableList:p}=pe(),{panel:h}=de(),Y=Qe("popupClose"),o=g(),_=g(),U=g(),M=g([]),Q=g(!1),Z=g(!1),{id:le,name:_e}=y.compData,C=I({search:le,type:1,table:"backup",total:0,p:1,limit:10}),J=g(!1),$=I({backupPath:""}),ee=g(),V=g(!1),D=I({pwd:""}),ne=[{label:"删除",value:"delete",event:async(s,e,u,m)=>{await s({title:"批量删除备份文件",content:"批量删除已选备份文件,是否继续操作?",column:[{prop:"filename",label:"文件名"},ct()],onConfirm:async()=>(await e(K),b(),p(),!1)})}}],oe=()=>{ut({type:"dir",path:$.backupPath,change:s=>{$.backupPath=s}})},ie=async()=>{await R({title:"提示",content:"修改默认备份目录,会导致网站和站点默认备份会备份到该目录下,是否继续操作?"}),h.value.backupPath=$.backupPath},W=({filename:s})=>(Se(s)||Ue(s))&&s.indexOf("|")!==-1,q=()=>{ae({title:"表备份",area:60,component:()=>se(()=>import("./table-back.js?v=1777008528"),__vite__mapDeps([]),import.meta.url),compData:{...y.compData,refreshFn:b},showFooter:!0})},fe=async()=>{const{router:s}=await se(()=>import("./utils-lib.js?v=1777008528").then(m=>m.mi),__vite__mapDeps([]),import.meta.url),{UIAutomator:e}=await se(()=>import("./utils-lib.js?v=1777008528").then(m=>m.mj),__vite__mapDeps([]),import.meta.url);Y(),await new e({humanize:!0}).exec(async()=>{await s.push("/crontab/task")},"跳转到计划任务页面").waitFor(".crontab_add_task",{timeout:8e3}).wait(500).click(".crontab_add_task").waitFor(".crontab_task_type",{timeout:5e3}).wait(500).click(".crontab_task_type .el-select__wrapper").waitFor(()=>!!document.querySelector(".el-select-dropdown__item"),{timeout:3e3}).wait(300).click('//li[contains(@class,"el-select-dropdown__item")]//span[text()="备份数据库"]').run()},O=async s=>{let e=null;k.value==="mysql"&&(e=ye({type:"backup",config:{path:"/tmp/import_sql.log",id:y.compData.id,name:y.compData.name}}));let u={id:y.compData.id};s&&(u.password=D.pwd),await w({loading:k.value==="mysql"?void 0:"正在备份数据库,请稍后...",request:k.value==="mysql"?ht(u):Bt({data:JSON.stringify(u)},k.value),message:!0,success:async m=>{const v=await e;v==null||v.unmount(),m.status&&(b(),p())}})},K=async(s,e=!1)=>{try{e&&await R({title:"删除备份",content:'<p>删除备份后,<span class="text-danger">备份数据将无法恢复</span>,是否继续?</p>',icon:"warning-filled",isHtml:!0});const u=await Dt({id:s.id});return e&&(L.request(u),b()),u}catch(u){}finally{Z.value&&Z.value.close()}},r=async s=>{if(k.value==="mysql"&&!s.localexist)if(W(s)){L.error("不支持从此处下载云存储备份,如需下载请在备份时勾选同时保留本地备份");return}else L.error("备份文件不存在");else window.open("/download?filename="+s.local,"_blank")},n=async(s,e=!1)=>{_.value=s,await R({title:"恢复数据库",content:"恢复备份文件将会覆盖当前数据库[".concat(y.compData.name,"],是否继续?"),type:"calc",icon:"warning-filled"});let u={file:s.localexist?s.local:s.filename,name:y.compData.name};if(e&&(u.disk_check=!0),k.value==="mysql"){const{data:m}=await Ft({file:s.localexist?s.local:s.filename});if(m){o.value=!0,V.value=!0;return}P(u,s)}else u.file=s.local,w({loading:"正在恢复数据库,请稍后...",request:Ct({data:JSON.stringify(u)},k.value),message:!0})},P=async(s,e)=>{const u=ye({type:"import",config:{path:"/tmp/import_sql.log",id:e.id,name:y.compData.name}});await w({request:Pt(s),message:!0,success:async v=>{var T;if(((T=v.msg)==null?void 0:T.indexOf("警告"))!==-1){await j(v.msg,"恢复"),n(e,!0);return}}});const m=await u;m==null||m.unmount()},j=(s,e)=>R({title:"提示",isHtml:!0,width:"50rem",confirmText:"继续".concat(e),content:'<div class="flex"><i class="svgtofont-el-warning-filled text-[4rem] text-warning mr-4"></i><div><div>'.concat(s,"</div><div>\n <p>如继续").concat(e,"可能会有以下影响:</p>\n <p>1.").concat(e,"数据不完整</p>\n <p>2.系统运行缓慢</p>\n <p>3.面板无法正常工作</p>\n <p>4.mysql无法正常运行</p></div></div></div>")}),a=s=>{switch(s){case"databaseBack":O(!1);break;case"backPath":break;case"databasePwdBack":V.value=!0;break;case"tableBack":q();break}},E=async()=>{if(await ee.value.validate(),o.value){const s={file:_.value.localexist?_.value.local:_.value.filename,name:y.compData.name,password:D.pwd};P(s,_.value),V.value=!1,o.value=!1}else O(!0),V.value=!1},b=async()=>{w({request:Ae({...C}),loading:Q,data:{data:[Array,M],page:Ie(C)}})},H=[dt(),{label:"文件名称",prop:"name",width:220,showOverflowTooltip:!0},{label:"存储对象",render:s=>{let e=!1,u="";return W(s)&&(e=!0,u=s.filename.match(/\|(.+)\|/,"$1")),t("span",null,[e?qt[u[1]]:"本地"])}},mt({prop:"size",width:100}),{width:160,prop:"addtime",label:"备份时间"},pt({table:"backup"}),Fe([{isHide:s=>W(s),onClick:s=>n(s),title:"恢复"},{onClick:s=>r(s),title:"下载"},{onClick:s=>K(s,!0),title:"删除"}])];return me(b),(s,e)=>{const u=at,m=st,v=lt,T=Be,x=Re,F=Oe,te=$t,be=Vt,ge=nt,ke=ot,ve=ze,Ce=Le,Pe=De,xe=Ze("bt-loading");return B(),N("div",null,[t(Pe,null,{"header-left":c(()=>[l(k)=="mysql"?(B(),G(v,{key:0,"split-button":"",type:"primary",onCommand:a,onClick:e[0]||(e[0]=f=>a("databaseBack"))},{dropdown:c(()=>[t(m,null,{default:c(()=>[t(u,{command:"databaseBack"},{default:c(()=>[...e[12]||(e[12]=[d(" 备份数据库 ",-1)])]),_:1}),t(u,{command:"databasePwdBack"},{default:c(()=>[...e[13]||(e[13]=[d(" 加密备份数据库 ",-1)])]),_:1}),t(u,{command:"tableBack"},{default:c(()=>[...e[14]||(e[14]=[d("表备份",-1)])]),_:1})]),_:1})]),default:c(()=>[e[15]||(e[15]=d(" 备份数据库 ",-1))]),_:1})):(B(),N(et,{key:1},[t(T,{type:"primary",onClick:e[1]||(e[1]=f=>O(!1))},{default:c(()=>[...e[16]||(e[16]=[d(" 备份数据库 ",-1)])]),_:1}),t(T,{type:"default",onClick:e[2]||(e[2]=f=>q())},{default:c(()=>[...e[17]||(e[17]=[d(" 表备份 ",-1)])]),_:1})],64))]),"header-right":c(()=>[...e[18]||(e[18]=[])]),content:c(()=>[ce(t(x,{ref_key:"routeBackupRef",ref:U,data:l(M),description:"暂无数据","max-height":460,column:l(H)},null,8,["data","column"]),[[xe,l(Q)],[xe,"正在加载中,请稍后...","title"]])]),"footer-left":c(()=>[t(F,{options:ne,"table-ref":l(U)},null,8,["table-ref"])]),"footer-right":c(()=>[t(te,{total:l(C).total,page:l(C).p,"onUpdate:page":e[3]||(e[3]=f=>l(C).p=f),row:l(C).limit,"onUpdate:row":e[4]||(e[4]=f=>l(C).limit=f),onChange:b},null,8,["total","page","row"])]),popup:c(()=>[t(ve,{title:"更换默认备份目录",modelValue:l(J),"onUpdate:modelValue":e[6]||(e[6]=f=>ue(J)?J.value=f:null),area:42,onConfirm:ie,showFooter:""},{default:c(()=>[i("div",la,[t(ke,{ref:"ruleFormData",class:"mr-[16px] w-[80%]",model:l($),rule:{backupPath:[{required:!0,message:"请输入默认备份目录",trigger:"blur"}]}},{default:c(()=>[t(ge,{label:"默认备份目录",prop:"backupPath"},{default:c(()=>[t(be,{icon:"icon-file_mode",modelValue:l($).backupPath,"onUpdate:modelValue":e[5]||(e[5]=f=>l($).backupPath=f),onIconClick:oe,width:"26rem"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},8,["modelValue"]),t(ve,{title:l(o)?"数据库加密密码":"加密备份数据库",modelValue:l(V),"onUpdate:modelValue":e[10]||(e[10]=f=>ue(V)?V.value=f:null),area:42,onConfirm:E,showFooter:"",onCancel:e[11]||(e[11]=()=>l(D).pwd="")},{default:c(()=>[i("div",na,[t(ke,{ref_key:"pwdBackFormRef",ref:ee,class:"mr-[16px] w-[80%]",model:l(D),rules:{pwd:[{required:!0,message:"请输入压缩密码",trigger:"blur"}]}},{default:c(()=>[t(ge,{label:"压缩密码",prop:"pwd"},{default:c(()=>[l(o)?(B(),G(Ce,{key:1,modelValue:l(D).pwd,"onUpdate:modelValue":e[9]||(e[9]=f=>l(D).pwd=f),width:"26rem"},null,8,["modelValue"])):(B(),G(be,{key:0,modelValue:l(D).pwd,"onUpdate:modelValue":e[7]||(e[7]=f=>l(D).pwd=f),icon:"el-refresh",width:"26rem",onIconClick:e[8]||(e[8]=()=>l(D).pwd=l(Te)(16)),"is-active":!0},null,8,["modelValue"]))]),_:1})]),_:1},8,["model"]),ce(i("ul",oa,[...e[19]||(e[19]=[i("li",{class:"text-warning"},"设置密码后请注意保存密码,以防忘记密码导致无法恢复备份数据",-1)])],512),[[tt,l(o)]])])]),_:1},8,["title","modelValue"])]),_:1}),i("ul",{class:"mt-8px leading-8 text-small list-disc ml-20px"},[i("li",null,[e[20]||(e[20]=d(" 定时备份请前往【 计划任务 】增加【备份数据库】",-1)),i("span",{title:"点击去备份",class:"bt-link",onClick:fe}," >>设置定时备份 ")])])])}}}),ra=Me(ia,[["__scopeId","data-v-4281d0e1"]]),ca={class:"p-[20px] h-full"},ha=X({__name:"index",props:{compData:{default:()=>({row:{}})}},emits:["close"],setup(S,{emit:y}){const{adHideInfo:k}=de(),{refs:{tabActive:p}}=pe(),h=g("routeBackup");return me(()=>{}),(Y,o)=>{const _=it,U=je;return B(),N("div",ca,[t(U,{type:"card",modelValue:l(h),"onUpdate:modelValue":o[0]||(o[0]=M=>ue(h)?h.value=M:null),class:"bt-tabs bt-tabs-card"},{default:c(()=>[t(_,{name:"routeBackup",label:"常规备份",lazy:!0},{default:c(()=>[t(ra,{compData:S.compData.row},null,8,["compData"])]),_:1}),l(p)=="mysql"&&!l(k).databaseTableBackup?(B(),G(_,{key:0,name:"increment",class:"mt-4",lazy:!0},{label:c(()=>[...o[1]||(o[1]=[i("span",{class:"flex items-center"},[i("i",{class:"mr-[4px] svgtofont-icon-ltd text-large text-[#9B7E48]"}),i("span",null,"增量备份")],-1)])]),default:c(()=>[t(sa,{compData:S.compData.row,isRowBackup:!0},null,8,["compData"])]),_:1})):he("",!0)]),_:1},8,["modelValue"])])}}});export{ha as default};
function __vite__mapDeps(indexes) {
if (!__vite__mapDeps.viteFileDeps) {
__vite__mapDeps.viteFileDeps = []
}
return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
}