import{a as R,o as L,V as F}from"./index-3pFHIBp-.js";import{g as G,p as E,j as Y,k as a,S as C,as as ee,f as te,a1 as se,at as ae,H,X as B,a4 as re,_ as J,Q as N,F as T,D as g,G as c,E as l,J as d,B as p,V as w,K as m,R as _,A as D,I as le,ai as oe}from"./index-C608Qty9.js";import{a as x,b as V,g as A,e as K,V as b,i as q,d as ie}from"./VRow-Dj5qiD9U.js";import{b as j,f as ne,m as ue,a as k}from"./VTextField-B6W38itG.js";import{c as P,d as de,e as ce,f as me,a as ge}from"./VDataTable-B3lReiBg.js";import{V as M}from"./VAlert-Dyo0vvp1.js";import{V as z,a as fe,e as he,c as ye,j as pe,d as ve,f as Se,g as De}from"./VList-AdpMwf8e.js";import{V as ke}from"./VSkeletonLoader-Df9HJVF2.js";import"./ssrBoot-Dat8K-8s.js";const we=E({...de({falseIcon:"$radioOff",trueIcon:"$radioOn"})},"VRadio"),U=G()({name:"VRadio",props:we(),setup(e,t){let{slots:i}=t;return Y(()=>{const n=P.filterProps(e);return a(P,C(n,{class:["v-radio",e.class],style:e.style,type:"radio"}),i)}),{}}}),Ve=E({height:{type:[Number,String],default:"auto"},...ue(),...re(me(),["multiple"]),trueIcon:{type:B,default:"$radioOn"},falseIcon:{type:B,default:"$radioOff"},type:{type:String,default:"radio"}},"VRadioGroup"),O=G()({name:"VRadioGroup",inheritAttrs:!1,props:Ve(),emits:{"update:modelValue":e=>!0},setup(e,t){let{attrs:i,slots:n}=t;const s=ee(),o=te(()=>e.id||`radio-group-${s}`),r=se(e,"modelValue");return Y(()=>{const[u,f]=ae(i),h=j.filterProps(e),y=P.filterProps(e),v=n.label?n.label({label:e.label,props:{for:o.value}}):e.label;return a(j,C({class:["v-radio-group",e.class],style:e.style},u,h,{modelValue:r.value,"onUpdate:modelValue":S=>r.value=S,id:o.value}),{...n,default:S=>{let{id:I,messagesId:Q,isDisabled:X,isReadonly:Z}=S;return a(H,null,[v&&a(ne,{id:I.value},{default:()=>[v]}),a(ce,C(y,{id:I.value,"aria-describedby":Q.value,defaultsTarget:"VRadio",trueIcon:e.trueIcon,falseIcon:e.falseIcon,type:e.type,disabled:X.value,readonly:Z.value,"aria-labelledby":v?I.value:void 0,multiple:!1},f,{modelValue:r.value,"onUpdate:modelValue":$=>r.value=$}),n)])}})}),{}}}),be={name:"MigrationTool",data(){return{classNumber:"G2405",machineId:"",migrationType:"server",serverUrl:"https://class.wuyuan.dev",targetStorage:"kv-server",targetServerUrl:"http://localhost:3030",startDate:this.getDateString(new Date(Date.now()-30*24*60*60*1e3)),endDate:this.getDateString(new Date),loading:!1,scanning:!1,migrating:!1,showServerPreview:!1,showResult:!1,migrationSuccess:!1,migrationError:null,migrationStats:{total:0,success:0,failed:0},migrationResults:[],localDbItems:[],serverItems:[],selectedItems:[],headers:[{title:"类型",key:"type",sortable:!0},{title:"键名",key:"key",sortable:!0},{title:"日期",key:"date",sortable:!0},{title:"大小",key:"size",sortable:!0}]}},computed:{displayItems(){return this.migrationType==="local"?this.localDbItems:this.serverItems},canMigrate(){return this.classNumber&&this.machineId&&this.displayItems.length>0&&(this.targetStorage!=="kv-server"||this.targetServerUrl)}},async mounted(){try{await this.initMachineId()}catch(e){console.error("初始化设备ID失败:",e)}},methods:{getItemType(e){return e?e.raw?e.raw.type:e.type:""},getItemDate(e){return e?e.raw?e.raw.date:e.date:null},getDateString(e){return e.toISOString().split("T")[0]},async initMachineId(){this.machineId=N("device.uuid")},getRequestHeaders(){const e={Accept:"application/json"},t=N("server.siteKey");return t&&(e["x-site-key"]=t),e},async scanLocalDatabase(){if(!this.classNumber){this.$emit("message",{text:"请先输入班级编号",type:"error"});return}this.scanning=!0,this.localDbItems=[];try{const e=await L("ClassworksDB",2);if(e.objectStoreNames.contains("homework")&&e.objectStoreNames.contains("config")){const i=e.transaction("homework","readonly").objectStore("homework"),s=(await i.getAllKeys()).filter(u=>u.startsWith(`homework_${this.classNumber}_`));for(const u of s){const f=await i.get(u),h=u.split("_")[2];let y=null;if(h){const[v,S,I]=h.split("-");y=new Date(v,S-1,I)}this.localDbItems.push({type:"homework",key:u,originalKey:u,date:y,size:this.getDataSize(f)+" KB",value:f})}const o=`config_${this.classNumber}`,r=await e.get("config",o);r&&this.localDbItems.push({type:"config",key:o,originalKey:o,date:null,size:this.getDataSize(r)+" KB",value:r})}if(e.objectStoreNames.contains("kv")){const i=e.transaction("kv","readonly").objectStore("kv"),s=(await i.getAllKeys()).filter(o=>o.startsWith(`${this.classNumber}/`));for(const o of s){const r=await i.get(o),u=o.includes(`/${this.classNumber}/classworks-config`);let f=null;if(!u){const h=o.match(/classworks-data-(\d{4})(\d{2})(\d{2})/);if(h){const[,y,v,S]=h;f=new Date(y,parseInt(v)-1,S)}}this.localDbItems.push({type:u?"config":"homework",key:o,originalKey:o,date:f,size:this.getDataSize(r)+" KB",value:r,isKv:!0})}}}catch(e){console.error("扫描本地数据库失败:",e),this.$emit("message",{text:"扫描数据库失败: "+e.message,type:"error"})}finally{this.scanning=!1}},getDataSize(e){if(!e)return 0;const t=typeof e=="string"?e:JSON.stringify(e);return Math.round(t.length*2/1024*100)/100},formatDate(e){return e?e.toLocaleDateString():"配置 (无日期)"},async previewServerData(){var e;if(!this.serverUrl||!this.classNumber||!this.startDate||!this.endDate){this.$emit("message",{text:"请填写完整的服务器信息和时间范围",type:"error"});return}this.loading=!0,this.serverItems=[];try{try{const s=`${this.serverUrl}/${this.classNumber}/config`,o=await R.get(s,{headers:this.getRequestHeaders()});o.data&&this.serverItems.push({type:"config",key:`config_${this.classNumber}`,originalKey:s,date:null,size:this.getDataSize(o.data)+" KB",value:o.data})}catch(s){console.warn("无法获取配置:",s)}const t=new Date(this.startDate),i=new Date(this.endDate),n=this.getDateArray(t,i);for(const s of n){const o=this.formatDateForServer(s);try{const r=`${this.serverUrl}/${this.classNumber}/homework?date=${o}`,u=await R.get(r,{headers:this.getRequestHeaders()});u.data&&u.data.status!=!1&&(console.log(u.data),this.serverItems.push({type:"homework",key:`homework_${this.classNumber}_${o}`,originalKey:r,date:s,size:this.getDataSize(u.data)+" KB",value:u.data}))}catch(r){((e=r.response)==null?void 0:e.status)!==404&&console.warn(`无法获取 ${o} 的数据:`,r)}}this.showServerPreview=!0}catch(t){console.error("预览服务器数据失败:",t),this.$emit("message",{text:"预览数据失败: "+t.message,type:"error"})}finally{this.loading=!1}},getDateArray(e,t){const i=[],n=new Date(e);for(;n<=t;)i.push(new Date(n)),n.setDate(n.getDate()+1);return i},formatDateForServer(e){const t=e.getFullYear(),i=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return`${t}-${i}-${n}`},formatDateForKv(e){const t=e.getFullYear(),i=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return`${t}${i}${n}`},async startMigration(){if(!this.canMigrate){this.$emit("message",{text:"无法开始迁移,请检查配置",type:"error"});return}this.migrating=!0,this.migrationResults=[],this.migrationStats={total:this.displayItems.length,success:0,failed:0};try{const e=this.displayItems.filter(i=>this.getItemType(i)==="config"),t=this.displayItems.filter(i=>this.getItemType(i)==="homework");for(const i of e)await this.migrateItem(i);for(const i of t)await this.migrateItem(i);this.migrationSuccess=this.migrationStats.failed===0,this.showResult=!0}catch(e){console.error("迁移过程出错:",e),this.migrationSuccess=!1,this.migrationError=e.message,this.showResult=!0}finally{this.migrating=!1}},async migrateItem(e){try{let t;this.targetStorage==="kv-local"?t=await this.migrateToLocalKv(e):t=await this.migrateToServerKv(e),this.migrationResults.push({key:e.key,success:t.success,message:t.message}),t.success?this.migrationStats.success++:this.migrationStats.failed++}catch(t){console.error(`迁移 ${e.key} 失败:`,t),this.migrationResults.push({key:e.key,success:!1,message:t.message}),this.migrationStats.failed++}},async migrateToLocalKv(e){try{const t=await L("ClassworksDB",2,{upgrade(s){s.objectStoreNames.contains("kv")||s.createObjectStore("kv")}}),i=typeof e.value=="string"?JSON.parse(e.value):e.value;if(this.getItemType(e)==="config")return await t.put("kv",JSON.stringify(i),"classworks-config"),{success:!0,message:"配置已迁移"};{const s=this.getItemDate(e);let o;if(s)o=this.formatDateForKv(s);else{const r=e.key.match(/(\d{4})-(\d{2})-(\d{2})/);if(r){const[,u,f,h]=r;o=`${u}${f}${h}`}else return{success:!1,message:"无法确定日期格式"}}return await t.put("kv",JSON.stringify(i),`classworks-data-${o}`),{success:!0,message:`${o} 数据已迁移`}}}catch(t){return console.error("本地KV迁移失败:",t),{success:!1,message:t.message}}},async migrateToServerKv(e){var t,i;try{const n=typeof e.value=="string"?JSON.parse(e.value):e.value;if(this.getItemType(e)==="config")return await R.post(`${this.targetServerUrl}/${this.machineId}/classworks-config`,n,{headers:this.getRequestHeaders()}),{success:!0,message:"配置已迁移到服务器"};{const o=this.getItemDate(e);let r;if(o)r=this.formatDateForKv(o);else{const u=e.key.match(/(\d{4})-(\d{2})-(\d{2})/);if(u){const[,f,h,y]=u;r=`${f}${h}${y}`}else return{success:!1,message:"无法确定日期格式"}}return await R.post(`${this.targetServerUrl}/${this.machineId}/classworks-data-${r}`,n,{headers:this.getRequestHeaders()}),{success:!0,message:`${r} 数据已迁移到服务器`}}}catch(n){return console.error("服务器KV迁移失败:",n),{success:!1,message:((i=(t=n.response)==null?void 0:t.data)==null?void 0:i.message)||n.message}}}}},Ie={key:0,class:"mt-4"},Te={class:"d-flex align-center mt-4"},xe={key:0,class:"mt-4"},Ke={class:"d-flex justify-end mb-6"},Me={key:1};function Ne(e,t,i,n,s,o){return g(),T("div",null,[a(b,{class:"mb-6"},{default:l(()=>[a(x,null,{default:l(()=>t[11]||(t[11]=[d("迁移设置")])),_:1}),a(V,null,{default:l(()=>[a(A,null,{default:l(()=>[a(K,{cols:"12",md:"6"},{default:l(()=>[a(k,{modelValue:s.classNumber,"onUpdate:modelValue":t[0]||(t[0]=r=>s.classNumber=r),label:"班级编号",hint:"请输入需要迁移的班级编号","persistent-hint":"","prepend-icon":"mdi-account-group"},null,8,["modelValue"])]),_:1}),a(K,{cols:"12",md:"6"},{default:l(()=>[a(k,{modelValue:s.machineId,"onUpdate:modelValue":t[1]||(t[1]=r=>s.machineId=r),label:"设备标识 (UUID)",hint:"系统已自动填充设备标识,通常无需修改","persistent-hint":"","prepend-icon":"mdi-identifier",readonly:""},null,8,["modelValue"])]),_:1})]),_:1}),a(O,{modelValue:s.migrationType,"onUpdate:modelValue":t[2]||(t[2]=r=>s.migrationType=r),class:"mt-2"},{default:l(()=>[a(U,{value:"local",label:"本地数据迁移"}),a(U,{value:"server",label:"服务器数据迁移"})]),_:1},8,["modelValue"]),s.migrationType==="server"?(g(),T("div",Ie,[a(k,{modelValue:s.serverUrl,"onUpdate:modelValue":t[3]||(t[3]=r=>s.serverUrl=r),label:"服务器地址",hint:"输入服务器域名,例如:https://example.com","persistent-hint":"","prepend-icon":"mdi-server"},null,8,["modelValue"]),a(M,{density:"compact",type:"info",variant:"outlined",class:"mt-2"},{default:l(()=>t[12]||(t[12]=[d(" 服务器接口格式:"),c("br",null,null,-1),d(" - 配置接口:域名/班号/config"),c("br",null,null,-1),d(" - 作业数据接口:域名/班号/homework?date=YYYY-MM-DD ")])),_:1}),c("div",Te,[a(w,{color:"warning",class:"mr-2"},{default:l(()=>t[13]||(t[13]=[d("mdi-calendar-range")])),_:1}),t[14]||(t[14]=c("span",{class:"text-subtitle-1"},"选择迁移时间范围:",-1))]),a(A,{class:"mt-1"},{default:l(()=>[a(K,{cols:"12",md:"6"},{default:l(()=>[a(k,{modelValue:s.startDate,"onUpdate:modelValue":t[4]||(t[4]=r=>s.startDate=r),label:"开始日期",type:"date","prepend-icon":"mdi-calendar-start"},null,8,["modelValue"])]),_:1}),a(K,{cols:"12",md:"6"},{default:l(()=>[a(k,{modelValue:s.endDate,"onUpdate:modelValue":t[5]||(t[5]=r=>s.endDate=r),label:"结束日期",type:"date","prepend-icon":"mdi-calendar-end"},null,8,["modelValue"])]),_:1})]),_:1})])):p("",!0)]),_:1})]),_:1}),a(b,{class:"mb-6"},{default:l(()=>[a(x,{class:"d-flex align-center"},{default:l(()=>[c("span",null,m(s.migrationType==="local"?"本地数据库内容":"服务器数据内容"),1),a(z),a(_,{color:"primary",onClick:t[6]||(t[6]=r=>s.migrationType==="local"?o.scanLocalDatabase():o.previewServerData()),loading:s.loading||s.scanning},{default:l(()=>[d(m(s.migrationType==="local"?"扫描数据":"加载数据"),1)]),_:1},8,["loading"])]),_:1}),a(V,null,{default:l(()=>[o.displayItems.length===0&&!s.loading&&!s.scanning?(g(),D(M,{key:0,type:"info"},{default:l(()=>[d(m(s.migrationType==="local"?'尚未扫描本地数据或未找到可迁移的数据。点击"扫描数据"按钮开始扫描。':'尚未预览服务器数据或未找到可迁移的数据。点击"加载数据"按钮开始查询。'),1)]),_:1})):p("",!0),o.displayItems.length>0?(g(),D(ge,{key:1,headers:s.headers,items:o.displayItems,"items-per-page":10,"item-value":"key",class:"elevation-1"},{"item.type":l(({item:r})=>[a(fe,{color:o.getItemType(r)==="config"?"primary":"secondary",size:"small"},{default:l(()=>[d(m(o.getItemType(r)==="config"?"配置":"作业数据"),1)]),_:2},1032,["color"])]),"item.date":l(({item:r})=>[d(m(o.formatDate(o.getItemDate(r))),1)]),_:2},1032,["headers","items"])):p("",!0),o.displayItems.length>0?(g(),D(M,{key:2,type:"info",density:"compact",class:"mt-2"},{default:l(()=>t[15]||(t[15]=[d(" 系统将迁移表格中显示的所有数据项,迁移前请确认数据完整性。 ")])),_:1})):p("",!0),s.loading||s.scanning?(g(),D(ke,{key:3,type:"table"})):p("",!0)]),_:1})]),_:1}),a(b,{class:"mb-6"},{default:l(()=>[a(x,null,{default:l(()=>t[16]||(t[16]=[d("迁移目标")])),_:1}),a(V,null,{default:l(()=>[a(O,{modelValue:s.targetStorage,"onUpdate:modelValue":t[7]||(t[7]=r=>s.targetStorage=r)},{default:l(()=>[a(U,{value:"kv-local",label:"本地 KV 存储"}),a(U,{value:"kv-server",label:"服务器 KV 存储"})]),_:1},8,["modelValue"]),s.targetStorage==="kv-server"?(g(),T("div",xe,[a(k,{modelValue:s.targetServerUrl,"onUpdate:modelValue":t[8]||(t[8]=r=>s.targetServerUrl=r),label:"目标服务器地址",hint:"输入KV服务器地址,例如:https://example.com/kv-api","persistent-hint":"","prepend-icon":"mdi-server-network"},null,8,["modelValue"])])):p("",!0)]),_:1})]),_:1}),c("div",Ke,[a(_,{color:"success",onClick:o.startMigration,loading:s.migrating,disabled:!o.canMigrate},{default:l(()=>t[17]||(t[17]=[d(" 开始迁移 ")])),_:1},8,["onClick","loading","disabled"])]),a(F,{modelValue:s.showResult,"onUpdate:modelValue":t[10]||(t[10]=r=>s.showResult=r),"max-width":"600"},{default:l(()=>[a(b,null,{default:l(()=>[a(x,{class:"d-flex align-center"},{default:l(()=>[a(w,{color:s.migrationSuccess?"success":"error",class:"mr-2"},{default:l(()=>[d(m(s.migrationSuccess?"mdi-check-circle":"mdi-alert-circle"),1)]),_:1},8,["color"]),c("span",null,m(s.migrationSuccess?"迁移成功":"迁移失败"),1)]),_:1}),a(V,null,{default:l(()=>[s.migrationError?(g(),D(M,{key:0,type:"error",class:"mb-4"},{default:l(()=>[d(m(s.migrationError),1)]),_:1})):p("",!0),s.migrationSuccess?(g(),T("div",Me,[c("p",null,"成功迁移 "+m(s.migrationStats.success)+" 项数据到 "+m(s.targetStorage==="kv-local"?"本地":"服务器")+" KV 存储。",1),a(he,{class:"my-4"}),a(ye,null,{default:l(()=>[a(pe,null,{default:l(()=>t[18]||(t[18]=[d("迁移详情")])),_:1}),(g(!0),T(H,null,le(s.migrationResults,(r,u)=>(g(),D(ve,{key:u},{default:l(()=>[a(Se,null,{default:l(()=>[d(m(r.key),1)]),_:2},1024),a(De,null,{default:l(()=>[d(m(r.success?"成功":"失败")+" "+m(r.message),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})])):p("",!0)]),_:1}),a(q,null,{default:l(()=>[a(z),a(_,{color:"primary",onClick:t[9]||(t[9]=r=>s.showResult=!1)},{default:l(()=>t[19]||(t[19]=[d(" 关闭 ")])),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])])}const W=J(be,[["render",Ne]]),_e={name:"DataMigrationPage",components:{MigrationTool:W},data(){const e=new Date,t=new Date;return t.setMonth(e.getMonth()-3),{showMigrationDialog:!1,isAutoMigrating:!1,today:e,sixMonthsAgo:t,classNumber:"",serverDomain:"",dataProvider:""}},computed:{dataSourceText(){switch(this.dataProvider){case"server":return"服务器";case"indexeddb":return"本地数据库";case"kv-local":return"本地 KV 存储";case"kv-server":return"远程 KV 存储";case"classworkscloud":return"Classworks 云";default:return"未知来源"}}},async mounted(){this.loadSettings(),this.serverDomain=="https://class.wuyuan.dev"&&(await this.startAutoMigration(),this.$router.push("/"))},methods:{loadSettings(){this.classNumber=N("server.classNumber"),this.serverDomain=N("server.domain"),this.dataProvider=N("server.provider"),this.showMigrationDialog=this.dataProvider==="server"||this.dataProvider==="indexeddb"},formatDate(e){return e.toLocaleDateString()},async startAutoMigration(){if(!this.$refs.migrationTool){console.error("MigrationTool组件引用不可用");return}this.isAutoMigrating=!0;try{const e=this.$refs.migrationTool;e.classNumber=this.classNumber,e.migrationType=this.dataProvider==="server"?"server":"local",e.serverUrl=this.serverDomain,e.targetStorage="kv-server",e.startDate=this.formatDateString(this.sixMonthsAgo),e.endDate=this.formatDateString(this.today),this.dataProvider==="server"?await e.previewServerData():await e.scanLocalDatabase(),e.displayItems.length>0?await e.startMigration():console.warn("没有找到可迁移的数据"),oe("server.provider","classworkscloud")}catch(e){console.error("自动迁移失败:",e)}finally{this.isAutoMigrating=!1,this.showMigrationDialog=!1}},formatDateString(e){const t=e.getFullYear(),i=String(e.getMonth()+1).padStart(2,"0"),n=String(e.getDate()).padStart(2,"0");return`${t}-${i}-${n}`}},metaInfo:{title:"数据迁移工具"}},Re={class:"d-flex align-center mb-6"},Ue={class:"ml-3 mt-1"};function Ce(e,t,i,n,s,o){const r=W;return g(),D(ie,null,{default:l(()=>[a(A,null,{default:l(()=>[a(K,{cols:"12"},{default:l(()=>[c("div",Re,[a(w,{size:"x-large",color:"primary",class:"mr-3"},{default:l(()=>t[2]||(t[2]=[d("mdi-database-sync")])),_:1}),t[3]||(t[3]=c("div",null,[c("h1",{class:"text-h4"},"数据迁移工具"),c("div",{class:"text-subtitle-1 text-grey"}," 将现有数据迁移至 KV 存储系统 ")],-1))]),a(b,{class:"mb-6",variant:"tonal",color:"info",density:"compact"},{default:l(()=>[a(V,{class:"d-flex align-center"},{default:l(()=>[a(w,{color:"info",class:"mr-2"},{default:l(()=>t[4]||(t[4]=[d("mdi-information-outline")])),_:1}),t[5]||(t[5]=c("span",null,"使用此工具可以将数据从旧存储系统迁移到新的 KV 存储系统,选择本地或云端迁移,以确保数据不会丢失。",-1))]),_:1})]),_:1}),a(r,{ref:"migrationTool"},null,512)]),_:1})]),_:1}),a(F,{modelValue:s.showMigrationDialog,"onUpdate:modelValue":t[1]||(t[1]=u=>s.showMigrationDialog=u),"max-width":"500",persistent:""},{default:l(()=>[a(b,null,{default:l(()=>[a(x,{class:"text-h5 d-flex align-center"},{default:l(()=>[a(w,{color:"primary",size:"large",class:"mr-3"},{default:l(()=>t[6]||(t[6]=[d("mdi-database-sync")])),_:1}),t[7]||(t[7]=d(" 一键数据迁移 "))]),_:1}),a(V,{class:"mt-4"},{default:l(()=>[t[8]||(t[8]=c("p",null," 系统将自动读取您的配置,并将过去半年的数据迁移至Classworks KV数据库中 ",-1)),a(M,{color:"info",variant:"outlined",density:"compact",class:"mt-4",icon:"mdi-information-outline"},{default:l(()=>[c("ul",Ue,[c("li",null,"数据源: "+m(o.dataSourceText),1),c("li",null,"班级: "+m(s.classNumber),1),c("li",null,"服务器: "+m(s.serverDomain||"本地存储"),1),c("li",null," 迁移范围: "+m(o.formatDate(s.sixMonthsAgo))+" 至 "+m(o.formatDate(s.today)),1)])]),_:1})]),_:1}),a(q,null,{default:l(()=>[a(z),a(_,{color:"grey-darken-1",variant:"text",onClick:t[0]||(t[0]=u=>s.showMigrationDialog=!1)},{default:l(()=>t[9]||(t[9]=[d(" 稍后再说 ")])),_:1}),a(_,{color:"primary",size:"large",variant:"elevated",onClick:o.startAutoMigration,loading:s.isAutoMigrating,disabled:s.isAutoMigrating},{default:l(()=>[a(w,{left:"",class:"mr-2"},{default:l(()=>t[10]||(t[10]=[d("mdi-database-export")])),_:1}),t[11]||(t[11]=d(" 开始一键迁移 "))]),_:1},8,["onClick","loading","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})}const Ee=J(_e,[["render",Ce]]);export{Ee as default};