mirror of
https://github.com/ZeroCatDev/Classworks.git
synced 2025-07-02 00:59:23 +00:00
2 lines
5.6 KiB
JavaScript
2 lines
5.6 KiB
JavaScript
import{_ as D,F as f,D as n,k as s,E as i,J as d,W as o,S as h,C as k,T as _,X as V,ao as N,H as g,I as C,ap as x,aw as I,Z as v,b1 as b,b2 as L,V as w,Y as A,a2 as E,av as T,U as B,aA as r}from"./index-DpRopL3V.js";import{V as F,a as S}from"./VAppBarTitle-BZkfRM3W.js";import{V as y}from"./VTextField-BILbZBCf.js";import{V as U}from"./VContainer-SydirbBl.js";const K={data(){return{lists:[],newListName:"",studentList:[],deleteDialog:{show:!1,text:"",listId:null},editingListId:null,editListName:""}},async created(){await Promise.all([this.loadLists(),this.loadStudentList()])},methods:{async loadLists(){try{let e=await r.loadData("classworks-list-info");(!e||!Array.isArray(e))&&(e=[],await r.saveData("classworks-list-info",e)),this.lists=e}catch(e){console.error("Failed to load lists",e),this.lists=[],await r.saveData("classworks-list-info",[])}},async loadStudentList(){try{const e=await r.loadData("classworks-list-main");e&&Array.isArray(e)?this.studentList=e:this.studentList=[]}catch(e){console.error("Failed to load student list",e),this.studentList=[]}},async createNewList(){if(!this.newListName)return;const e=Date.now().toString(),t={id:e,name:this.newListName};this.lists.push(t),await r.saveData("classworks-list-info",this.lists);const u=[];this.studentList&&this.studentList.length>0&&this.studentList.forEach(p=>{u.push({id:p.id||Date.now()+Math.floor(Math.random()*1e3),name:p.name,completed:!1})}),await r.saveData(`classworks-list-${e}`,u),this.newListName="",this.$router.push(`/list/${e}`)},startEditing(e){const t=this.lists.find(u=>u.id===e);t&&(this.editingListId=e,this.editListName=t.name)},cancelEditing(){this.editingListId=null,this.editListName=""},async saveListName(){if(!(!this.editListName.trim()||!this.editingListId))try{const e=this.lists.findIndex(t=>t.id===this.editingListId);e!==-1&&(this.lists[e].name=this.editListName.trim(),await r.saveData("classworks-list-info",this.lists)),this.editingListId=null,this.editListName=""}catch(e){console.error("Failed to update list name",e)}},confirmDeleteList(e){const t=this.lists.find(u=>u.id===e);t&&(this.deleteDialog={show:!0,text:`确定要删除列表 "${t.name}" 吗?`,listId:e})},confirmDelete(){this.deleteDialog.listId&&this.deleteList(this.deleteDialog.listId),this.deleteDialog.show=!1},async deleteList(e){this.lists=this.lists.filter(t=>t.id!==e),await r.saveData("classworks-list-info",this.lists)}}},M={key:0},P={key:1,class:"d-flex align-center w-100"},H={key:0};function J(e,t,u,p,a,m){return n(),f(g,null,[s(S,{elevation:"1"},{prepend:i(()=>[s(o,{icon:"mdi-arrow-left",variant:"text",onClick:t[0]||(t[0]=l=>e.$router.push("/"))})]),default:i(()=>[s(F,{class:"text-h6"},{default:i(()=>t[5]||(t[5]=[d("列表")])),_:1,__:[5]})]),_:1}),s(U,null,{default:i(()=>[s(h,{border:"",class:"mb-5",rounded:"xl"},{default:i(()=>[s(_,null,{default:i(()=>t[6]||(t[6]=[d("现有列表")])),_:1,__:[6]}),a.lists.length===0?(n(),k(V,{key:0},{default:i(()=>t[7]||(t[7]=[d(" 暂无列表,请创建新列表 ")])),_:1,__:[7]})):(n(),k(N,{key:1},{default:i(()=>[(n(!0),f(g,null,C(a.lists,l=>(n(),k(x,{key:l.id,to:l.id!==a.editingListId?`/list/${l.id}`:void 0,active:l.id===a.editingListId},{append:i(()=>[l.id!==a.editingListId?(n(),f("div",H,[s(o,{icon:"",onClick:L(c=>m.startEditing(l.id),["stop","prevent"]),class:"mr-2",border:""},{default:i(()=>[s(w,null,{default:i(()=>t[10]||(t[10]=[d("mdi-pencil")])),_:1,__:[10]})]),_:2},1032,["onClick"]),s(o,{icon:"",onClick:L(c=>m.confirmDeleteList(l.id),["stop","prevent"]),border:""},{default:i(()=>[s(w,null,{default:i(()=>t[11]||(t[11]=[d("mdi-delete")])),_:1,__:[11]})]),_:2},1032,["onClick"])])):A("",!0)]),default:i(()=>[l.id!==a.editingListId?(n(),f("div",M,[s(I,null,{default:i(()=>[d(v(l.name),1)]),_:2},1024)])):(n(),f("div",P,[s(y,{modelValue:a.editListName,"onUpdate:modelValue":t[1]||(t[1]=c=>a.editListName=c),label:"列表名称","hide-details":"",density:"compact",class:"mr-2",autofocus:"",onKeyup:b(m.saveListName,["enter"])},null,8,["modelValue","onKeyup"]),s(o,{icon:"",color:"primary",onClick:L(m.saveListName,["stop","prevent"]),class:"mr-2",border:""},{default:i(()=>[s(w,null,{default:i(()=>t[8]||(t[8]=[d("mdi-check")])),_:1,__:[8]})]),_:1},8,["onClick"]),s(o,{icon:"",color:"error",onClick:L(m.cancelEditing,["stop","prevent"]),border:""},{default:i(()=>[s(w,null,{default:i(()=>t[9]||(t[9]=[d("mdi-close")])),_:1,__:[9]})]),_:1},8,["onClick"])]))]),_:2},1032,["to","active"]))),128))]),_:1}))]),_:1}),s(h,{class:"mb-5",border:"",rounded:"xl"},{default:i(()=>[s(_,null,{default:i(()=>t[12]||(t[12]=[d("创建新列表")])),_:1,__:[12]}),s(V,null,{default:i(()=>[s(y,{modelValue:a.newListName,"onUpdate:modelValue":t[2]||(t[2]=l=>a.newListName=l),label:"列表名称",rules:[l=>!!l||"名称不能为空"]},null,8,["modelValue","rules"]),s(o,{color:"primary",onClick:m.createNewList,disabled:!a.newListName},{default:i(()=>t[13]||(t[13]=[d(" 创建列表 ")])),_:1,__:[13]},8,["onClick","disabled"])]),_:1})]),_:1}),s(E,{modelValue:a.deleteDialog.show,"onUpdate:modelValue":t[4]||(t[4]=l=>a.deleteDialog.show=l),"max-width":"500"},{default:i(()=>[s(h,{border:""},{default:i(()=>[s(_,null,{default:i(()=>t[14]||(t[14]=[d("删除列表")])),_:1,__:[14]}),s(V,null,{default:i(()=>[d(v(a.deleteDialog.text),1)]),_:1}),s(T,null,{default:i(()=>[s(B),s(o,{color:"primary",variant:"text",onClick:t[3]||(t[3]=l=>a.deleteDialog.show=!1)},{default:i(()=>t[15]||(t[15]=[d(" 取消 ")])),_:1,__:[15]}),s(o,{color:"error",variant:"text",onClick:m.confirmDelete},{default:i(()=>t[16]||(t[16]=[d(" 确认删除 ")])),_:1,__:[16]},8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),_:1})],64)}const j=D(K,[["render",J]]);export{j as default};
|