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