import{g as H,p as j,Q as K,R as Ge,S as Ke,f as V,r as ue,T as E,j as W,U as xe,k as n,W as Je,X as Z,Y as Xe,_ as Te,Z as w,A as T,D as g,E as o,J as h,V as q,$ as y,G as b,F as C,B as R,K as p,a0 as ve,H as I,I as O,a1 as Qe,a2 as Ze,l as ge,a3 as ie,u as ke,a4 as Ee,a5 as ye,a6 as $e,a7 as se,a8 as re,a9 as et,s as oe,aa as Ie,ab as Ne,w as Oe,ac as tt,ad as at,ae as nt,a as st,t as ze,b as lt,L as it,c as rt,af as ot,ag as dt,d as ut,m as ct,n as ht,o as mt,ah as ft,ai as vt,v as gt,N as kt,x as yt,y as pt,aj as bt,ak as xt,O as Dt,al as De,am as he,an as St,ao as wt,ap as Ct,z as Se}from"./index-5ZqSrCPy.js";import{V as z,a as J,b as B,c as Vt,d as Pt,e as le,f as At,g as me,h as _t,i as we}from"./VRow-DQ6wq0it.js";import{V as Q,a as G,b as Ft,c as Lt,d as Mt,e as Tt}from"./VList-Dmgo-MOX.js";import{V as de,_ as Be,a as Et,b as It,c as Nt,d as Ot,e as zt,f as fe,p as Ce}from"./VTextarea-DAFozSFq.js";import"./ssrBoot-CHBfBiKN.js";const Bt=j({id:String,interactive:Boolean,text:String,...Z(Xe({closeOnBack:!1,location:"end",locationStrategy:"connected",eager:!0,minWidth:0,offset:10,openOnClick:!1,openOnHover:!0,origin:"auto",scrim:!1,scrollStrategy:"reposition",transition:!1}),["absolute","persistent"])},"VTooltip"),Rt=H()({name:"VTooltip",props:Bt(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:s}=t;const r=K(e,"modelValue"),{scopeId:a}=Ge(),l=Ke(),d=V(()=>e.id||`v-tooltip-${l}`),m=ue(),u=V(()=>e.location.split(" ").length>1?e.location:e.location+" center"),i=V(()=>e.origin==="auto"||e.origin==="overlap"||e.origin.split(" ").length>1||e.location.split(" ").length>1?e.origin:e.origin+" center"),c=V(()=>e.transition?e.transition:r.value?"scale-transition":"fade-transition"),S=V(()=>E({"aria-describedby":d.value},e.activatorProps));return W(()=>{const L=xe.filterProps(e);return n(xe,E({ref:m,class:["v-tooltip",{"v-tooltip--interactive":e.interactive},e.class],style:e.style,id:d.value},L,{modelValue:r.value,"onUpdate:modelValue":f=>r.value=f,transition:c.value,absolute:!0,location:u.value,origin:i.value,persistent:!0,role:"tooltip",activatorProps:S.value,_disableGlobalStack:!0},a),{activator:s.activator,default:function(){var M;for(var f=arguments.length,v=new Array(f),x=0;x({absent:[],late:[],exclude:[]})}},data(){return{dialog:!1,count:w("randomPicker.defaultCount"),isPickingStarted:!1,isAnimating:!1,pickedStudents:[],animationStudents:[],highlightedIndices:[],animationTimer:null,getSetting:w,tempFilters:{excludeAbsent:w("randomPicker.excludeAbsent"),excludeLate:w("randomPicker.excludeLate"),excludeExcluded:w("randomPicker.excludeExcluded")}}},computed:{absentCount(){return this.attendance.absent?this.attendance.absent.length:0},lateCount(){return this.attendance.late?this.attendance.late.length:0},excludedCount(){return this.attendance.exclude?this.attendance.exclude.length:0},filteredStudents(){return!this.studentList||!this.studentList.length?[]:this.studentList.filter(e=>!(this.tempFilters.excludeAbsent&&this.attendance.absent.includes(e)||this.tempFilters.excludeLate&&this.attendance.late.includes(e)||this.tempFilters.excludeExcluded&&this.attendance.exclude.includes(e)))},availableStudents(){return this.filteredStudents},maxAllowedCount(){return Math.min(10,this.filteredStudents.length)},remainingStudents(){return this.filteredStudents.filter(e=>!this.pickedStudents.includes(e))}},watch:{dialog(e){e?(this.count=w("randomPicker.defaultCount"),this.isPickingStarted=!1,this.isAnimating=!1,this.pickedStudents=[],this.tempFilters={excludeAbsent:w("randomPicker.excludeAbsent"),excludeLate:w("randomPicker.excludeLate"),excludeExcluded:w("randomPicker.excludeExcluded")}):this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},tempFilters:{handler(){this.count>this.maxAllowedCount&&(this.count=Math.max(1,this.maxAllowedCount))},deep:!0}},methods:{open(){this.dialog=!0},incrementCount(){this.count1&&this.count--},startPicking(){this.filteredStudents.length!==0&&(this.isPickingStarted=!0,w("randomPicker.animation")?this.startAnimation():this.finishPicking())},startAnimation(){this.isAnimating=!0,this.animationStudents=this.filteredStudents.map((e,t)=>({id:`student-${t}`,name:e})),this.animateHighlight()},animateHighlight(){let t=0;const s=50,r=()=>{this.highlightedIndices=[];const a=[];for(let d=0;d{this.finishPicking()},500)};r()},finishPicking(){this.isAnimating=!1;const e=[...this.filteredStudents].sort(()=>.5-Math.random());this.pickedStudents=e.slice(0,this.count)},resetPicker(){this.isPickingStarted=!1,this.isAnimating=!1,this.pickedStudents=[],this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},refreshSingleStudent(e){if(this.remainingStudents.length===0)return;const t=Math.floor(Math.random()*this.remainingStudents.length),s=this.remainingStudents[t];this.pickedStudents[e]=s;const r=document.querySelectorAll(".result-card");r[e]&&(r[e].classList.add("refresh-animation"),setTimeout(()=>{r[e].classList.remove("refresh-animation")},500))}}},Yt={class:"d-flex justify-center align-center counter-container"},Ut={class:"count-display mx-8"},Ht={class:"text-h2 font-weight-bold"},Wt={class:"mt-4"},qt={key:0,class:"mt-4 text-error"},Gt={class:"mt-4 text-caption"},Kt={class:"pa-2"},Jt={key:0},Xt={key:1},Qt={key:2},Zt={class:"d-flex flex-wrap justify-center gap-2 mt-4"},$t={key:0,class:"animation-container"},ea={class:"animation-wrapper"},ta={key:1,class:"result-container"},aa={class:"mt-8 d-flex justify-center"};function na(e,t,s,r,a,l){return g(),T(de,{modelValue:a.dialog,"onUpdate:modelValue":t[5]||(t[5]=d=>a.dialog=d),"max-width":"600","fullscreen-breakpoint":"sm"},{default:o(()=>[n(z,{class:"random-picker-card"},{default:o(()=>[n(J,{class:"text-h5 d-flex align-center"},{default:o(()=>[n(q,{icon:"mdi-account-question",class:"mr-2"}),t[6]||(t[6]=h(" 随机点名 ")),n(Q),n(y,{icon:"mdi-close",variant:"text",onClick:t[0]||(t[0]=d=>a.dialog=!1)})]),_:1}),a.isPickingStarted?(g(),T(B,{key:1,class:"text-center py-6"},{default:o(()=>[a.isAnimating?(g(),C("div",$t,[b("div",ea,[n(ve,{name:"shuffle",tag:"div",class:"shuffle-container"},{default:o(()=>[(g(!0),C(I,null,O(a.animationStudents,(d,m)=>(g(),C("div",{key:d.id,class:Qe(["student-item",{highlighted:a.highlightedIndices.includes(m)}])},p(d.name),3))),128))]),_:1})])])):(g(),C("div",ta,[t[12]||(t[12]=b("div",{class:"text-h6 mb-4"},"抽取结果",-1)),(g(!0),C(I,null,O(a.pickedStudents,(d,m)=>(g(),T(z,{key:m,variant:"outlined",color:"primary",class:"mb-2 result-card"},{default:o(()=>[n(B,{class:"text-h4 text-center py-4 d-flex align-center justify-center"},{default:o(()=>[h(p(d)+" ",1),n(y,{icon:"mdi-refresh",variant:"text",size:"small",class:"ml-2 refresh-btn",onClick:u=>l.refreshSingleStudent(m),disabled:l.remainingStudents.length===0,title:l.remainingStudents.length===0?"没有更多可用学生":"重新抽取此学生"},null,8,["onClick","disabled","title"])]),_:2},1024)]),_:2},1024))),128)),b("div",aa,[n(y,{color:"primary","prepend-icon":"mdi-refresh",onClick:l.resetPicker,size:"large",class:"mx-2"},{default:o(()=>t[10]||(t[10]=[h(" 重新抽取 ")])),_:1},8,["onClick"]),n(y,{color:"grey",variant:"outlined",onClick:t[4]||(t[4]=d=>a.dialog=!1),size:"large",class:"mx-2"},{default:o(()=>t[11]||(t[11]=[h(" 关闭 ")])),_:1})])]))]),_:1})):(g(),T(B,{key:0,class:"text-center py-6"},{default:o(()=>[t[9]||(t[9]=b("div",{class:"text-h6 mb-4"},"请选择抽取人数",-1)),b("div",Yt,[n(y,{size:"x-large",icon:"mdi-minus",variant:"tonal",color:"primary",disabled:a.count<=1,onClick:l.decrementCount,class:"counter-btn"},null,8,["disabled","onClick"]),b("div",Ut,[b("span",Ht,p(a.count),1),t[7]||(t[7]=b("span",{class:"text-subtitle-1 ml-2"},"人",-1))]),n(y,{size:"x-large",icon:"mdi-plus",variant:"tonal",color:"primary",disabled:a.count>=l.maxAllowedCount,onClick:l.incrementCount,class:"counter-btn"},null,8,["disabled","onClick"])]),b("div",Wt,[n(y,{size:"x-large",color:"primary","prepend-icon":"mdi-dice-multiple",onClick:l.startPicking,disabled:l.filteredStudents.length===0,class:"start-btn"},{default:o(()=>t[8]||(t[8]=[h(" 开始抽取 ")])),_:1},8,["onClick","disabled"])]),l.filteredStudents.length===0?(g(),C("div",qt," 没有可抽取的学生,请调整过滤选项 ")):R("",!0),b("div",Gt,[h(" 当前可抽取学生: "+p(l.filteredStudents.length)+"人 ",1),n(Rt,{location:"bottom"},{activator:o(({props:d})=>[n(q,E(d,{icon:"mdi-information-outline",size:"small",class:"ml-1"}),null,16)]),default:o(()=>[b("div",Kt,[a.tempFilters.excludeAbsent?(g(),C("div",Jt,"• 已排除请假学生 ("+p(l.absentCount)+"人)",1)):R("",!0),a.tempFilters.excludeLate?(g(),C("div",Xt,"• 已排除迟到学生 ("+p(l.lateCount)+"人)",1)):R("",!0),a.tempFilters.excludeExcluded?(g(),C("div",Qt,"• 已排除不参与学生 ("+p(l.excludedCount)+"人)",1)):R("",!0)])]),_:1}),b("div",Zt,[n(G,{color:a.tempFilters.excludeLate?"warning":"default",variant:a.tempFilters.excludeLate?"elevated":"text",onClick:t[1]||(t[1]=d=>a.tempFilters.excludeLate=!a.tempFilters.excludeLate),"prepend-icon":"mdi-clock-alert",class:"filter-chip"},{default:o(()=>[h(p(a.tempFilters.excludeLate?"排除":"包含")+"迟到学生 ",1)]),_:1},8,["color","variant"]),n(G,{color:a.tempFilters.excludeAbsent?"error":"default",variant:a.tempFilters.excludeAbsent?"elevated":"text",onClick:t[2]||(t[2]=d=>a.tempFilters.excludeAbsent=!a.tempFilters.excludeAbsent),"prepend-icon":"mdi-account-off",class:"filter-chip"},{default:o(()=>[h(p(a.tempFilters.excludeAbsent?"排除":"包含")+"请假学生 ",1)]),_:1},8,["color","variant"]),n(G,{color:a.tempFilters.excludeExcluded?"grey":"default",variant:a.tempFilters.excludeExcluded?"elevated":"text",onClick:t[3]||(t[3]=d=>a.tempFilters.excludeExcluded=!a.tempFilters.excludeExcluded),"prepend-icon":"mdi-account-cancel",class:"filter-chip"},{default:o(()=>[h(p(a.tempFilters.excludeExcluded?"排除":"包含")+"不参与学生 ",1)]),_:1},8,["color","variant"])])])]),_:1}))]),_:1})]),_:1},8,["modelValue"])}const Re=Te(jt,[["render",na],["__scopeId","data-v-ded57cbd"]]);function sa(e,t){let s=null;return function(...r){s&&clearTimeout(s),s=setTimeout(()=>{e.apply(this,r)},t)}}function la(e,t){let s=null,r=0;return function(...a){const l=Date.now();l-r{r=l,e.apply(this,a)},t)):(r=l,e.apply(this,a))}}const ia=j({...Ze({icon:"$menu",variant:"text"})},"VAppBarNavIcon"),ra=H()({name:"VAppBarNavIcon",props:ia(),setup(e,t){let{slots:s}=t;return W(()=>n(y,E(e,{class:["v-app-bar-nav-icon"]}),s)),{}}}),je=j({active:{type:[String,Array],default:void 0},controlHeight:[Number,String],disabled:{type:[Boolean,String,Array],default:null},nextIcon:{type:ie,default:"$next"},prevIcon:{type:ie,default:"$prev"},modeIcon:{type:ie,default:"$subgroup"},text:String,viewMode:{type:String,default:"month"}},"VDatePickerControls"),Ve=H()({name:"VDatePickerControls",props:je(),emits:{"click:year":()=>!0,"click:month":()=>!0,"click:prev":()=>!0,"click:next":()=>!0,"click:text":()=>!0},setup(e,t){let{emit:s}=t;const r=V(()=>Array.isArray(e.disabled)?e.disabled.includes("text"):!!e.disabled),a=V(()=>Array.isArray(e.disabled)?e.disabled.includes("mode"):!!e.disabled),l=V(()=>Array.isArray(e.disabled)?e.disabled.includes("prev"):!!e.disabled),d=V(()=>Array.isArray(e.disabled)?e.disabled.includes("next"):!!e.disabled);function m(){s("click:prev")}function u(){s("click:next")}function i(){s("click:year")}function c(){s("click:month")}return W(()=>n("div",{class:["v-date-picker-controls"],style:{"--v-date-picker-controls-height":ge(e.controlHeight)}},[n(y,{class:"v-date-picker-controls__month-btn","data-testid":"month-btn",disabled:r.value,text:e.text,variant:"text",rounded:!0,onClick:c},null),n(y,{class:"v-date-picker-controls__mode-btn","data-testid":"year-btn",disabled:a.value,density:"comfortable",icon:e.modeIcon,variant:"text",onClick:i},null),n(Q,null,null),n("div",{class:"v-date-picker-controls__month"},[n(y,{"data-testid":"prev-month",disabled:l.value,density:"comfortable",icon:e.prevIcon,variant:"text",onClick:m},null),n(y,{"data-testid":"next-month",disabled:d.value,icon:e.nextIcon,density:"comfortable",variant:"text",onClick:u},null)])])),{}}}),oa=j({appendIcon:ie,color:String,header:String,transition:String,onClick:$e()},"VDatePickerHeader"),Pe=H()({name:"VDatePickerHeader",props:oa(),emits:{click:()=>!0,"click:append":()=>!0},setup(e,t){let{emit:s,slots:r}=t;const{backgroundColorClasses:a,backgroundColorStyles:l}=ke(e,"color");function d(){s("click")}function m(){s("click:append")}return W(()=>{const u=!!(r.default||e.header),i=!!(r.append||e.appendIcon);return n("div",{class:["v-date-picker-header",{"v-date-picker-header--clickable":!!e.onClick},a.value],style:l.value,onClick:d},[r.prepend&&n("div",{key:"prepend",class:"v-date-picker-header__prepend"},[r.prepend()]),u&&n(Ee,{key:"content",name:e.transition},{default:()=>{var c;return[n("div",{key:e.header,class:"v-date-picker-header__content"},[((c=r.default)==null?void 0:c.call(r))??e.header])]}}),i&&n("div",{class:"v-date-picker-header__append"},[r.append?n(ye,{key:"append-defaults",disabled:!e.appendIcon,defaults:{VBtn:{icon:e.appendIcon,variant:"text"}}},{default:()=>{var c;return[(c=r.append)==null?void 0:c.call(r)]}}):n(y,{key:"append-btn",icon:e.appendIcon,variant:"text",onClick:m},null)])])}),{}}}),da=j({allowedDates:[Array,Function],disabled:{type:Boolean,default:null},displayValue:null,modelValue:Array,month:[Number,String],max:null,min:null,showAdjacentMonths:Boolean,year:[Number,String],weekdays:{type:Array,default:()=>[0,1,2,3,4,5,6]},weeksInMonth:{type:String,default:"dynamic"},firstDayOfWeek:{type:[Number,String],default:0}},"calendar");function ua(e){const t=se(),s=K(e,"modelValue",[],f=>re(f).map(v=>t.date(v))),r=V(()=>e.displayValue?t.date(e.displayValue):s.value.length>0?t.date(s.value[0]):e.min?t.date(e.min):Array.isArray(e.allowedDates)?t.date(e.allowedDates[0]):t.date()),a=K(e,"year",void 0,f=>{const v=f!=null?Number(f):t.getYear(r.value);return t.startOfYear(t.setYear(t.date(),v))},f=>t.getYear(f)),l=K(e,"month",void 0,f=>{const v=f!=null?Number(f):t.getMonth(r.value),x=t.setYear(t.startOfMonth(t.date()),t.getYear(a.value));return t.setMonth(x,v)},f=>t.getMonth(f)),d=V(()=>{const f=Number(e.firstDayOfWeek);return[0,1,2,3,4,5,6].map(v=>(v+f)%7)}),m=V(()=>{const f=Number(e.firstDayOfWeek),v=t.getWeekArray(l.value,f),x=v.flat(),M=6*7;if(e.weeksInMonth==="static"&&x.lengthd.value.includes(t.toJsDate(x).getDay())).map((x,M)=>{const P=t.toISO(x),k=!t.isSameMonth(x,l.value),F=t.isSameDay(x,t.startOfMonth(l.value)),Y=t.isSameDay(x,t.endOfMonth(l.value)),U=t.isSameDay(x,l.value);return{date:x,isoDate:P,formatted:t.format(x,"keyboardDate"),year:t.getYear(x),month:t.getMonth(x),isDisabled:L(x),isWeekStart:M%7===0,isWeekEnd:M%7===6,isToday:t.isSameDay(x,v),isAdjacent:k,isHidden:k&&!e.showAdjacentMonths,isStart:F,isSelected:s.value.some($=>t.isSameDay(x,$)),isEnd:Y,isSame:U,localized:t.format(x,"dayOfMonth")}})}const i=V(()=>{const f=t.startOfWeek(r.value,e.firstDayOfWeek),v=[];for(let M=0;M<=6;M++)v.push(t.addDays(f,M));const x=t.date();return u(v,x)}),c=V(()=>{const f=m.value.flat(),v=t.date();return u(f,v)}),S=V(()=>m.value.map(f=>f.length?et(t,f[0]):null));function L(f){if(e.disabled)return!0;const v=t.date(f);return e.min&&t.isAfter(t.date(e.min),v)||e.max&&t.isAfter(v,t.date(e.max))?!0:Array.isArray(e.allowedDates)&&e.allowedDates.length>0?!e.allowedDates.some(x=>t.isSameDay(t.date(x),v)):typeof e.allowedDates=="function"?!e.allowedDates(v):!e.weekdays.includes(t.toJsDate(v).getDay())}return{displayValue:r,daysInMonth:c,daysInWeek:i,genDays:u,model:s,weeksInMonth:m,weekDays:d,weekNumbers:S}}const Ye=j({color:String,hideWeekdays:Boolean,multiple:[Boolean,Number,String],showWeek:Boolean,transition:{type:String,default:"picker-transition"},reverseTransition:{type:String,default:"picker-reverse-transition"},...Z(da(),["displayValue"])},"VDatePickerMonth"),Ae=H()({name:"VDatePickerMonth",props:Ye(),emits:{"update:modelValue":e=>!0,"update:month":e=>!0,"update:year":e=>!0},setup(e,t){let{emit:s,slots:r}=t;const a=ue(),{daysInMonth:l,model:d,weekNumbers:m}=ua(e),u=se(),i=oe(),c=oe(),S=oe(!1),L=V(()=>S.value?e.reverseTransition:e.transition);e.multiple==="range"&&d.value.length>0&&(i.value=d.value[0],d.value.length>1&&(c.value=d.value[d.value.length-1]));const f=V(()=>{const P=["number","string"].includes(typeof e.multiple)?Number(e.multiple):1/0;return d.value.length>=P});Ie(l,(P,k)=>{k&&(S.value=u.isBefore(P[0].date,k[0].date))});function v(P){const k=u.startOfDay(P);if(d.value.length===0?i.value=void 0:d.value.length===1&&(i.value=d.value[0],c.value=void 0),!i.value)i.value=k,d.value=[i.value];else if(c.value)i.value=P,c.value=void 0,d.value=[i.value];else{if(u.isSameDay(k,i.value)){i.value=void 0,d.value=[];return}else u.isBefore(k,i.value)?(c.value=u.endOfDay(i.value),i.value=k):c.value=u.endOfDay(k);const F=u.getDiff(c.value,i.value,"days"),Y=[i.value];for(let U=1;Uu.isSameDay(F,P));if(k===-1)d.value=[...d.value,P];else{const F=[...d.value];F.splice(k,1),d.value=F}}function M(P){e.multiple==="range"?v(P):e.multiple?x(P):d.value=[P]}W(()=>n("div",{class:"v-date-picker-month"},[e.showWeek&&n("div",{key:"weeks",class:"v-date-picker-month__weeks"},[!e.hideWeekdays&&n("div",{key:"hide-week-days",class:"v-date-picker-month__day"},[h(" ")]),m.value.map(P=>n("div",{class:["v-date-picker-month__day","v-date-picker-month__day--adjacent"]},[P]))]),n(Ee,{name:L.value},{default:()=>{var P;return[n("div",{ref:a,key:(P=l.value[0].date)==null?void 0:P.toString(),class:"v-date-picker-month__days"},[!e.hideWeekdays&&u.getWeekdays(e.firstDayOfWeek).map(k=>n("div",{class:["v-date-picker-month__day","v-date-picker-month__weekday"]},[k])),l.value.map((k,F)=>{var U;const Y={props:{class:"v-date-picker-month__day-btn",color:k.isSelected||k.isToday?e.color:void 0,disabled:k.isDisabled,icon:!0,ripple:!1,text:k.localized,variant:k.isSelected?"flat":k.isToday?"outlined":"text",onClick:()=>M(k.date)},item:k,i:F};return f.value&&!k.isSelected&&(k.isDisabled=!0),n("div",{class:["v-date-picker-month__day",{"v-date-picker-month__day--adjacent":k.isAdjacent,"v-date-picker-month__day--hide-adjacent":k.isHidden,"v-date-picker-month__day--selected":k.isSelected,"v-date-picker-month__day--week-end":k.isWeekEnd,"v-date-picker-month__day--week-start":k.isWeekStart}],"data-v-date":k.isDisabled?void 0:k.isoDate},[(e.showAdjacentMonths||!k.isAdjacent)&&(((U=r.day)==null?void 0:U.call(r,Y))??n(y,Y.props,null))])})])]}})]))}}),Ue=j({color:String,height:[String,Number],min:null,max:null,modelValue:Number,year:Number},"VDatePickerMonths"),_e=H()({name:"VDatePickerMonths",props:Ue(),emits:{"update:modelValue":e=>!0},setup(e,t){let{emit:s,slots:r}=t;const a=se(),l=K(e,"modelValue"),d=V(()=>{let m=a.startOfYear(a.date());return e.year&&(m=a.setYear(m,e.year)),Ne(12).map(u=>{const i=a.format(m,"monthShort"),c=!!(e.min&&a.isAfter(a.startOfMonth(a.date(e.min)),m)||e.max&&a.isAfter(m,a.startOfMonth(a.date(e.max))));return m=a.getNextMonth(m),{isDisabled:c,text:i,value:u}})});return Oe(()=>{l.value=l.value??a.getMonth(a.date())}),W(()=>n("div",{class:"v-date-picker-months",style:{height:ge(e.height)}},[n("div",{class:"v-date-picker-months__content"},[d.value.map((m,u)=>{var S;const i={active:l.value===u,color:l.value===u?e.color:void 0,disabled:m.isDisabled,rounded:!0,text:m.text,variant:l.value===m.value?"flat":"text",onClick:()=>c(u)};function c(L){if(l.value===L){s("update:modelValue",l.value);return}l.value=L}return((S=r.month)==null?void 0:S.call(r,{month:m,i:u,props:i}))??n(y,E({key:"month"},i),null)})])])),{}}}),He=j({color:String,height:[String,Number],min:null,max:null,modelValue:Number},"VDatePickerYears"),Fe=H()({name:"VDatePickerYears",props:He(),emits:{"update:modelValue":e=>!0},setup(e,t){let{emit:s,slots:r}=t;const a=se(),l=K(e,"modelValue"),d=V(()=>{const u=a.getYear(a.date());let i=u-100,c=u+52;e.min&&(i=a.getYear(a.date(e.min))),e.max&&(c=a.getYear(a.date(e.max)));let S=a.startOfYear(a.date());return S=a.setYear(S,i),Ne(c-i+1,i).map(L=>{const f=a.format(S,"year");return S=a.setYear(S,a.getYear(S)+1),{text:f,value:L}})});Oe(()=>{l.value=l.value??a.getYear(a.date())});const m=tt();return at(async()=>{var u;await nt(),(u=m.el)==null||u.scrollIntoView({block:"center"})}),W(()=>n("div",{class:"v-date-picker-years",style:{height:ge(e.height)}},[n("div",{class:"v-date-picker-years__content"},[d.value.map((u,i)=>{var S;const c={ref:l.value===u.value?m:void 0,active:l.value===u.value,color:l.value===u.value?e.color:void 0,rounded:!0,text:u.text,variant:l.value===u.value?"flat":"text",onClick:()=>{if(l.value===u.value){s("update:modelValue",l.value);return}l.value=u.value}};return((S=r.year)==null?void 0:S.call(r,{year:u,i,props:c}))??n(y,E({key:"month"},c),null)})])])),{}}}),ca=Vt("v-picker-title"),We=j({color:String,...pt(),...yt(),...kt(),...gt(),...vt(),...ft(),...mt(),...ht(),...ct()},"VSheet"),Le=H()({name:"VSheet",props:We(),setup(e,t){let{slots:s}=t;const{themeClasses:r}=st(e),{backgroundColorClasses:a,backgroundColorStyles:l}=ke(ze(e,"color")),{borderClasses:d}=lt(e),{dimensionStyles:m}=it(e),{elevationClasses:u}=rt(e),{locationStyles:i}=ot(e),{positionClasses:c}=dt(e),{roundedClasses:S}=ut(e);return W(()=>n(e.tag,{class:["v-sheet",r.value,a.value,d.value,u.value,c.value,S.value,e.class],style:[l.value,m.value,i.value,e.style]},s)),{}}}),qe=j({bgColor:String,divided:Boolean,landscape:Boolean,title:String,hideHeader:Boolean,...We()},"VPicker"),Me=H()({name:"VPicker",props:qe(),setup(e,t){let{slots:s}=t;const{backgroundColorClasses:r,backgroundColorStyles:a}=ke(ze(e,"color"));return W(()=>{const l=Le.filterProps(e),d=!!(e.title||s.title);return n(Le,E(l,{color:e.bgColor,class:["v-picker",{"v-picker--divided":e.divided,"v-picker--landscape":e.landscape,"v-picker--with-actions":!!s.actions},e.class],style:e.style}),{default:()=>{var m;return[!e.hideHeader&&n("div",{key:"header",class:[r.value],style:[a.value]},[d&&n(ca,{key:"picker-title"},{default:()=>{var u;return[((u=s.title)==null?void 0:u.call(s))??e.title]}}),s.header&&n("div",{class:"v-picker__header"},[s.header()])]),n("div",{class:"v-picker__body"},[(m=s.default)==null?void 0:m.call(s)]),s.actions&&n(ye,{defaults:{VBtn:{slim:!0,variant:"text"}}},{default:()=>[n("div",{class:"v-picker__actions"},[s.actions()])]})]}})}),{}}}),ha=j({header:{type:String,default:"$vuetify.datePicker.header"},headerColor:String,...je(),...Ye({weeksInMonth:"static"}),...Z(Ue(),["modelValue"]),...Z(He(),["modelValue"]),...qe({title:"$vuetify.datePicker.title"}),modelValue:null},"VDatePicker"),ma=H()({name:"VDatePicker",props:ha(),emits:{"update:modelValue":e=>!0,"update:month":e=>!0,"update:year":e=>!0,"update:viewMode":e=>!0},setup(e,t){let{emit:s,slots:r}=t;const a=se(),{t:l}=bt(),{rtlClasses:d}=xt(),m=K(e,"modelValue",void 0,D=>re(D).map(A=>a.date(A)),D=>e.multiple?D:D[0]),u=K(e,"viewMode"),i=V(()=>{const D=a.date(e.min);return e.min&&a.isValid(D)?D:null}),c=V(()=>{const D=a.date(e.max);return e.max&&a.isValid(D)?D:null}),S=V(()=>{var N;const D=a.date();let A=D;return(N=m.value)!=null&&N[0]?A=a.date(m.value[0]):i.value&&a.isBefore(D,i.value)?A=i.value:c.value&&a.isAfter(D,c.value)&&(A=c.value),A&&a.isValid(A)?A:D}),L=V(()=>e.headerColor??e.color),f=ue(Number(e.month??a.getMonth(a.startOfMonth(S.value)))),v=ue(Number(e.year??a.getYear(a.startOfYear(a.setMonth(S.value,f.value))))),x=oe(!1),M=V(()=>e.multiple&&m.value.length>1?l("$vuetify.datePicker.itemsSelected",m.value.length):m.value[0]&&a.isValid(m.value[0])?a.format(a.date(m.value[0]),"normalDateWithWeekday"):l(e.header)),P=V(()=>{let D=a.date();return D=a.setDate(D,1),D=a.setMonth(D,f.value),D=a.setYear(D,v.value),a.format(D,"monthAndYear")}),k=V(()=>`date-picker-header${x.value?"-reverse":""}-transition`),F=V(()=>{if(e.disabled)return!0;const D=[];if(u.value!=="month")D.push("prev","next");else{let A=a.date();if(A=a.startOfMonth(A),A=a.setMonth(A,f.value),A=a.setYear(A,v.value),i.value){const N=a.addDays(a.startOfMonth(A),-1);a.isAfter(i.value,N)&&D.push("prev")}if(c.value){const N=a.addDays(a.endOfMonth(A),1);a.isAfter(N,c.value)&&D.push("next")}}return D});function Y(){f.value<11?f.value++:(v.value++,f.value=0,te(v.value)),ee(f.value)}function U(){f.value>0?f.value--:(v.value--,f.value=11,te(v.value)),ee(f.value)}function $(){u.value="month"}function pe(){u.value=u.value==="months"?"month":"months"}function be(){u.value=u.value==="year"?"month":"year"}function ee(D){u.value==="months"&&pe(),s("update:month",D)}function te(D){u.value==="year"&&be(),s("update:year",D)}return Ie(m,(D,A)=>{const N=re(A),ae=re(D);if(!ae.length)return;const ce=a.date(N[N.length-1]),ne=a.date(ae[ae.length-1]),X=a.getMonth(ne),_=a.getYear(ne);X!==f.value&&(f.value=X,ee(f.value)),_!==v.value&&(v.value=_,te(v.value)),x.value=a.isBefore(ce,ne)}),W(()=>{const D=Me.filterProps(e),A=Ve.filterProps(e),N=Pe.filterProps(e),ae=Ae.filterProps(e),ce=Z(_e.filterProps(e),["modelValue"]),ne=Z(Fe.filterProps(e),["modelValue"]),X={color:L.value,header:M.value,transition:k.value};return n(Me,E(D,{color:L.value,class:["v-date-picker",`v-date-picker--${u.value}`,{"v-date-picker--show-week":e.showWeek},d.value,e.class],style:e.style}),{title:()=>{var _;return((_=r.title)==null?void 0:_.call(r))??n("div",{class:"v-date-picker__title"},[l(e.title)])},header:()=>r.header?n(ye,{defaults:{VDatePickerHeader:{...X}}},{default:()=>{var _;return[(_=r.header)==null?void 0:_.call(r,X)]}}):n(Pe,E({key:"header"},N,X,{onClick:u.value!=="month"?$:void 0}),{...r,default:void 0}),default:()=>n(I,null,[n(Ve,E(A,{disabled:F.value,text:P.value,"onClick:next":Y,"onClick:prev":U,"onClick:month":pe,"onClick:year":be}),null),n(Ft,{hideOnLeave:!0},{default:()=>[u.value==="months"?n(_e,E({key:"date-picker-months"},ce,{modelValue:f.value,"onUpdate:modelValue":[_=>f.value=_,ee],min:i.value,max:c.value,year:v.value}),null):u.value==="year"?n(Fe,E({key:"date-picker-years"},ne,{modelValue:v.value,"onUpdate:modelValue":[_=>v.value=_,te],min:i.value,max:c.value}),null):n(Ae,E({key:"date-picker-month"},ae,{modelValue:m.value,"onUpdate:modelValue":_=>m.value=_,month:f.value,"onUpdate:month":[_=>f.value=_,ee],year:v.value,"onUpdate:year":[_=>v.value=_,te],min:i.value,max:c.value}),null)]})]),actions:r.actions})}),{}}}),fa={name:"Classworks 作业板",components:{MessageLog:Be,RandomPicker:Re},data(){return{dataKey:"",provider:"",useDisplay:Se,state:{classNumber:"",studentList:[],boardData:{homework:{},attendance:{absent:[],late:[],exclude:[]}},dialogVisible:!1,dialogTitle:"",textarea:"",dateString:"",synced:!1,attendDialogVisible:!1,contentStyle:{"font-size":`${w("font.size")}px`},uploadLoading:!1,downloadLoading:!1,snackbar:!1,snackbarText:"",fontSize:w("font.size"),datePickerDialog:!1,selectedDate:new Date().toISOString().split("T")[0],selectedDateObj:new Date(this.selectedDate),refreshInterval:null,subjectOrder:["语文","数学","英语","物理","化学","生物","政治","历史","地理","其他"],showNoDataMessage:!1,noDataMessage:"",isToday:!1,attendanceDialog:!1,availableSubjects:[{key:"语文",name:"语文"},{key:"数学",name:"数学"},{key:"英语",name:"英语"},{key:"物理",name:"物理"},{key:"化学",name:"化学"},{key:"生物",name:"生物"},{key:"政治",name:"政治"},{key:"历史",name:"历史"},{key:"地理",name:"地理"},{key:"其他",name:"其他"}],isFullscreen:!1},loading:{download:!1,upload:!1,students:!1},debouncedUpload:null,throttledReflow:null,sortedItemsCache:{key:"",value:[]},confirmDialog:{show:!1,resolve:null,reject:null},attendanceSearch:"",attendanceFilter:[]}},computed:{isMobile(){return Se().mobile.value},titleText(){const e=this.getToday(),t=new Date(e);t.setDate(t.getDate()-1);const s=this.state.dateString,r=this.formatDate(e),a=this.formatDate(t);return s===r?"今天的作业":s===a?"昨天的作业":`${s}的作业`},sortedItems(){const e=`${JSON.stringify(this.state.boardData.homework)}_${this.state.subjectOrder.join()}_${this.dynamicSort}`;if(this.sortedItemsCache.key===e)return this.sortedItemsCache.value;const t=Object.entries(this.state.boardData.homework).filter(([,r])=>{var a;return(a=r.content)==null?void 0:a.trim()}).map(([r,a])=>{var l;return{key:r,name:((l=this.state.availableSubjects.find(d=>d.key===r))==null?void 0:l.name)||r,content:a.content,order:this.state.subjectOrder.indexOf(r),rowSpan:Math.ceil((a.content.split(` `).filter(d=>d.trim()).length+1)*.8)}}),s=this.dynamicSort?this.optimizeGridLayout(t):t.sort((r,a)=>r.order-a.order);return this.updateSortedItemsCache(e,s),s},unusedSubjects(){const e=Object.keys(this.state.boardData.homework).filter(t=>{var s;return(s=this.state.boardData.homework[t].content)==null?void 0:s.trim()});return this.state.availableSubjects.filter(t=>!e.includes(t.key))},emptySubjects(){return this.emptySubjectDisplay!=="button"?[]:this.unusedSubjects},autoSave(){return w("edit.autoSave")},blockNonTodayAutoSave(){return w("edit.blockNonTodayAutoSave")},isToday(){const e=new Date().toISOString().split("T")[0];return this.state.dateString===e},canAutoSave(){return this.autoSave&&(!this.blockNonTodayAutoSave||this.isToday)},needConfirmSave(){return!this.isToday&&this.confirmNonTodaySave},shouldShowBlockedMessage(){return!this.isToday&&this.autoSave&&this.blockNonTodayAutoSave},refreshBeforeEdit(){return w("edit.refreshBeforeEdit")},emptySubjectDisplay(){return w("display.emptySubjectDisplay")},dynamicSort(){return w("display.dynamicSort")},isEditingDisabled(){return this.state.uploadLoading||this.state.downloadLoading},unreadCount(){var e;return((e=this.$refs.messageLog)==null?void 0:e.unreadCount)||0},showRandomPickerButton(){return w("randomPicker.enabled")},confirmNonTodaySave(){return w("edit.confirmNonTodaySave")},shouldShowSaveConfirm(){return!this.isToday&&this.confirmNonTodaySave},shouldBlockAutoSave(){return!this.isToday&&this.autoSave&&this.blockNonTodayAutoSave},showFullscreenButton(){return w("display.showFullscreenButton")},showAntiScreenBurnCard(){return w("display.showAntiScreenBurnCard")},filteredStudents(){let e=[...this.state.studentList];if(this.attendanceSearch){const t=this.attendanceSearch.toLowerCase();e=e.filter(s=>s.toLowerCase().includes(t))}return this.attendanceFilter&&this.attendanceFilter.length>0&&(e=e.filter(t=>{const s=this.state.studentList.indexOf(t);return!!(this.attendanceFilter.includes("present")&&this.isPresent(s)||this.attendanceFilter.includes("absent")&&this.isAbsent(s)||this.attendanceFilter.includes("late")&&this.isLate(s)||this.attendanceFilter.includes("exclude")&&this.isExclude(s))})),e},extractedSurnames(){if(!this.state.studentList||this.state.studentList.length===0)return[];const e=new Map;return this.state.studentList.forEach(t=>{if(t&&t.length>0){const s=t.charAt(0);e.has(s)?e.set(s,e.get(s)+1):e.set(s,1)}}),Array.from(e.entries()).map(([t,s])=>({name:t,count:s})).sort((t,s)=>{const r=Ce(t.name,{toneType:"none",mode:"surname"}),a=Ce(s.name,{toneType:"none",mode:"surname"});return r.localeCompare(a)})}},watch:{homeworkData:{handler(){this.$nextTick(()=>{this.$refs.waterfall&&this.$refs.waterfall.reflow()})},deep:!0},"$vuetify.display.width":{handler(){this.throttledReflow()},deep:!0}},created(){this.debouncedUpload=sa(this.uploadData,2e3),this.throttledReflow=la(()=>{this.$refs.gridContainer&&this.optimizeGridLayout(this.sortedItems)},200)},async mounted(){try{this.updateBackendUrl(),await this.initializeData(),this.setupAutoRefresh(),this.unwatchSettings=Ct(()=>{this.updateSettings()}),document.addEventListener("fullscreenchange",this.fullscreenChangeHandler),document.addEventListener("webkitfullscreenchange",this.fullscreenChangeHandler),document.addEventListener("mozfullscreenchange",this.fullscreenChangeHandler),document.addEventListener("MSFullscreenChange",this.fullscreenChangeHandler),this.checkHashForRandomPicker(),window.addEventListener("hashchange",this.checkHashForRandomPicker)}catch(e){console.error("初始化失败:",e),this.showError("初始化失败,请刷新页面重试")}},beforeUnmount(){this.unwatchSettings&&this.unwatchSettings(),this.state.refreshInterval&&clearInterval(this.state.refreshInterval),document.removeEventListener("fullscreenchange",this.fullscreenChangeHandler),document.removeEventListener("webkitfullscreenchange",this.fullscreenChangeHandler),document.removeEventListener("mozfullscreenchange",this.fullscreenChangeHandler),document.removeEventListener("MSFullscreenChange",this.fullscreenChangeHandler),window.removeEventListener("hashchange",this.checkHashForRandomPicker)},methods:{ensureDate(e){if(e instanceof Date)return e;if(typeof e=="string"){const t=new Date(e);if(!isNaN(t.getTime()))return t}return new Date},formatDate(e){const t=this.ensureDate(e),s=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0");return`${s}-${r}-${a}`},getToday(){return new Date},async initializeData(){this.provider=w("server.provider");const e=w("server.domain"),t=w("server.classNumber");this.dataKey=this.provider==="server"?`${e}/${t}`:t,this.state.classNumber=t;const r=new URLSearchParams(window.location.search).get("date"),a=this.getToday(),l=r?new Date(r):a;this.state.dateString=this.formatDate(l),this.state.selectedDate=this.state.dateString,this.state.isToday=this.formatDate(l)===this.formatDate(a),await Promise.all([this.downloadData(),this.loadConfig()])},async downloadData(){var e,t,s;if(!this.loading.download)try{this.loading.download=!0;const r=await fe.loadData(this.provider,this.dataKey,this.state.dateString);if(r.success)this.state.boardData={homework:r.data.homework||{},attendance:{absent:((e=r.data.attendance)==null?void 0:e.absent)||[],late:((t=r.data.attendance)==null?void 0:t.late)||[],exclude:((s=r.data.attendance)==null?void 0:s.exclude)||[]}},this.state.synced=!0,this.state.showNoDataMessage=!1,this.$message.success("下载成功","数据已更新");else if(r.error.code==="NOT_FOUND")this.state.showNoDataMessage=!0,this.state.noDataMessage=r.error.message,this.state.boardData={homework:{},attendance:{absent:[],late:[],exclude:[]}};else throw new Error(r.error.message)}catch(r){this.state.boardData={homework:{},attendance:{absent:[],late:[],exclude:[]}},this.$message.error("下载失败",r.message)}finally{this.loading.download=!1}},async trySave(e=!1){if(e&&!this.canAutoSave)return this.shouldShowBlockedMessage&&this.showMessage("需要手动保存","已禁止自动保存非当天数据","warning"),!1;if(!e&&this.needConfirmSave)try{await this.showConfirmDialog()}catch{return!1}try{return await this.uploadData(),!0}catch(t){return this.$message.error("保存失败",t.message||"请重试"),!1}},async handleClose(){var s;if(!this.currentEditSubject)return;const e=this.state.textarea.trim(),t=((s=this.state.boardData.homework[this.currentEditSubject])==null?void 0:s.content)||"";e!==t.trim()&&(this.state.boardData.homework[this.currentEditSubject]={content:e},this.state.synced=!1,this.autoSave&&await this.trySave(!0)),this.state.dialogVisible=!1},async uploadData(){if(!this.loading.upload)try{this.loading.upload=!0;const e=await fe.saveData(this.provider,this.dataKey,this.state.boardData,this.state.dateString);if(!e.success)throw new Error(e.error.message);this.state.synced=!0,this.$message.success(e.message||"保存成功")}finally{this.loading.upload=!1}},async loadConfig(){try{const e=await fe.loadConfig(this.provider,this.dataKey);if(!e.success)throw new Error(e.error.message);this.state.studentList=e.data.studentList||[]}catch(e){console.error("加载配置失败:",e),this.$message.error("加载配置失败",e.message)}},showSyncMessage(){this.$message.success("数据已同步","数据已完成与服务器同步")},async openDialog(e){var t;if(this.refreshBeforeEdit)try{await this.downloadData()}catch(s){console.error("刷新数据失败:",s),this.$message.error("刷新数据失败,可能显示的不是最新数据")}this.currentEditSubject=e,this.state.boardData.homework[e]||(this.state.boardData.homework[e]={content:""}),this.state.dialogTitle=((t=this.state.availableSubjects.find(s=>s.key===e))==null?void 0:t.name)||e,this.state.textarea=this.state.boardData.homework[e].content,this.state.dialogVisible=!0,this.$nextTick(()=>{this.$refs.inputRef&&this.$refs.inputRef.focus()})},splitPoint(e){return e.split(` `).filter(t=>t.trim())},setAttendanceArea(){this.state.attendanceDialog=!0},toggleStudentStatus(e){const t=this.state.studentList[e];this.state.boardData.attendance.absent.includes(t)?(this.state.boardData.attendance.absent=this.state.boardData.attendance.absent.filter(s=>s!==t),this.state.boardData.attendance.late.push(t)):this.state.boardData.attendance.late.includes(t)?(this.state.boardData.attendance.late=this.state.boardData.attendance.late.filter(s=>s!==t),this.state.boardData.attendance.exclude.push(t)):this.state.boardData.attendance.exclude.includes(t)?this.state.boardData.attendance.exclude=this.state.boardData.attendance.exclude.filter(s=>s!==t):this.state.boardData.attendance.absent.push(t),this.state.synced=!1,this.canAutoSave&&this.uploadData()},cleanstudentslist(){this.state.boardData.attendance.absent=[],this.state.boardData.attendance.late=[],this.state.boardData.attendance.exclude=[],this.state.synced=!1,this.canAutoSave&&this.uploadData()},zoom(e){e==="up"&&this.state.fontSize<100?this.state.fontSize+=2:e==="out"&&this.state.fontSize>16&&(this.state.fontSize-=2),this.state.contentStyle={"font-size":`${this.state.fontSize}px`},wt("font.size",this.state.fontSize)},updateBackendUrl(){const e=w("server.provider"),t=w("server.domain"),s=w("server.classNumber");this.provider=e,this.dataKey=e==="server"?`${t}/${s}`:s,this.state.classNumber=s},setupAutoRefresh(){const e=w("refresh.auto"),t=w("refresh.interval");this.state.refreshInterval&&clearInterval(this.state.refreshInterval),e&&(this.state.refreshInterval=setInterval(()=>{this.shouldSkipRefresh()||this.downloadData()},t*1e3))},shouldSkipRefresh(){return!!(this.state.dialogVisible||this.state.attendanceDialog||this.confirmDialog.show||this.state.datePickerDialog||this.loading.upload||this.loading.download||!this.state.synced)},updateSettings(){this.state.fontSize=w("font.size"),this.state.contentStyle={"font-size":`${this.state.fontSize}px`},this.setupAutoRefresh(),this.updateBackendUrl()},handleDateSelect(e){if(e)try{const t=this.ensureDate(e),s=this.formatDate(t);this.state.dateString!==s&&(this.state.dateString=s,this.state.selectedDate=s,this.state.isToday=s===this.formatDate(this.getToday()),this.$router.replace({query:{date:s}}).catch(()=>{}),this.downloadData())}catch(t){console.error("Date processing error:",t),this.$message.error("日期处理错误","请重新选择日期")}},optimizeGridLayout(e){const t=Math.min(3,Math.floor(window.innerWidth/300));if(t<=1)return e;const s=Array.from({length:t},()=>({height:0,items:[]}));return e.forEach(r=>{const a=s.reduce((l,d,m)=>d.heightr.items).map((r,a)=>({...r,order:a}))},fixedGridLayout(e){const t=[["语文","数学","英语"],["物理","化学","生物"],["政治","历史","地理","其他"]];return e.sort((s,r)=>{const a=c=>{for(let S=0;S{for(const S of t){const L=S.indexOf(c);if(L!==-1)return L}return 999},d=a(s.key),m=a(r.key);if(d!==m)return d-m;const u=l(s.key),i=l(r.key);return u-i}).map((s,r)=>({...s,order:r,rowSpan:s.content?2:1}))},setAllPresent(){this.state.boardData.attendance={absent:[],late:[],exclude:[]},this.state.synced=!1},setAllAbsent(){this.state.boardData.attendance.absent=[...this.state.studentList],this.state.boardData.attendance.late=[],this.state.boardData.attendance.exclude=[],this.state.synced=!1},setAllLate(){this.state.boardData.attendance.absent=[],this.state.boardData.attendance.late=[...this.state.studentList],this.state.boardData.attendance.exclude=[],this.state.synced=!1},setAllExclude(){this.state.boardData.attendance.absent=[],this.state.boardData.attendance.late=[],this.state.boardData.attendance.exclude=[...this.state.studentList],this.state.synced=!1},isPresent(e){const t=this.state.studentList[e],{absent:s,late:r,exclude:a}=this.state.boardData.attendance;return!s.includes(t)&&!r.includes(t)&&!a.includes(t)},isAbsent(e){return this.state.boardData.attendance.absent.includes(this.state.studentList[e])},isLate(e){return this.state.boardData.attendance.late.includes(this.state.studentList[e])},isExclude(e){return this.state.boardData.attendance.exclude.includes(this.state.studentList[e])},setPresent(e){const t=this.state.studentList[e];this.state.boardData.attendance.absent=this.state.boardData.attendance.absent.filter(s=>s!==t),this.state.boardData.attendance.late=this.state.boardData.attendance.late.filter(s=>s!==t),this.state.boardData.attendance.exclude=this.state.boardData.attendance.exclude.filter(s=>s!==t),this.state.synced=!1},setAbsent(e){const t=this.state.studentList[e];this.setPresent(e),this.state.boardData.attendance.absent.push(t),this.state.synced=!1},setLate(e){const t=this.state.studentList[e];this.setPresent(e),this.state.boardData.attendance.late.push(t),this.state.synced=!1},setExclude(e){const t=this.state.studentList[e];this.setPresent(e),this.state.boardData.attendance.exclude.push(t),this.state.synced=!1},async saveAttendance(){try{await this.trySave(!0),this.state.attendanceDialog=!1}catch(e){console.error("保存出勤状态失败:",e),this.$message.error("保存失败","请重试")}},showMessage(e,t="",s="success"){this.$message[s](e,t)},updateSortedItemsCache(e,t){this._sortedItemsCache={key:e,value:t}},handleMouseMove(e){const t=e.currentTarget,s=t.getBoundingClientRect(),r=(e.clientX-s.left)/s.width*100,a=(e.clientY-s.top)/s.height*100;t.style.setProperty("--x",`${r}%`),t.style.setProperty("--y",`${a}%`)},handleTouchMove(e){if(e.touches.length===1){const t=e.touches[0],s=e.currentTarget,r=s.getBoundingClientRect(),a=(t.clientX-r.left)/r.width*100,l=(t.clientY-r.top)/r.height*100;s.style.setProperty("--x",`${a}%`),s.style.setProperty("--y",`${l}%`)}},showConfirmDialog(){return new Promise((e,t)=>{this.confirmDialog={show:!0,resolve:()=>{this.confirmDialog.show=!1,e()},reject:()=>{this.confirmDialog.show=!1,t(new Error("用户取消保存"))}}})},confirmSave(){this.confirmDialog.show=!1,this.confirmDialog.resolve&&this.confirmDialog.resolve(!0)},cancelSave(){this.confirmDialog.show=!1,this.confirmDialog.reject&&this.confirmDialog.reject(new Error("用户取消保存"))},async manualUpload(){return this.trySave(!1)},async handleAttendanceDialogClose(e){!e&&!this.state.synced&&await this.trySave(!0)},toggleFullscreen(){this.state.isFullscreen?this.exitFullscreen():this.enterFullscreen()},enterFullscreen(){const e=document.documentElement;e.requestFullscreen?e.requestFullscreen():e.webkitRequestFullScreen?e.webkitRequestFullScreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.msRequestFullscreen&&e.msRequestFullscreen()},exitFullscreen(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen()},fullscreenChangeHandler(){this.state.isFullscreen=!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)},getStudentStatusColor(e){const t=this.state.studentList[e];return this.state.boardData.attendance.absent.includes(t)?"error":this.state.boardData.attendance.late.includes(t)?"warning":this.state.boardData.attendance.exclude.includes(t)?"grey":"success"},getStudentStatusVariant(e){const t=this.state.studentList[e];return this.state.boardData.attendance.absent.includes(t)||this.state.boardData.attendance.late.includes(t)||this.state.boardData.attendance.exclude.includes(t)?"tonal":"outlined"},getStudentStatusIcon(e){const t=this.state.studentList[e];return this.state.boardData.attendance.absent.includes(t)?"mdi-account-off":this.state.boardData.attendance.late.includes(t)?"mdi-clock-alert":this.state.boardData.attendance.exclude.includes(t)?"mdi-account-cancel":"mdi-account-check"},getStudentStatusText(e){const t=this.state.studentList[e];return this.state.boardData.attendance.absent.includes(t)?"请假":this.state.boardData.attendance.late.includes(t)?"迟到":this.state.boardData.attendance.exclude.includes(t)?"不参与":"到课"},toggleFilter(e){const t=this.attendanceFilter.indexOf(e);t===-1?this.attendanceFilter.push(e):this.attendanceFilter.splice(t,1)},openRandomPicker(){this.$refs.randomPicker&&this.$refs.randomPicker.open()},checkHashForRandomPicker(){window.location.hash==="#random-picker"&&this.$nextTick(()=>{console.log("打开随机点名"),window.location.hash="",this.openRandomPicker()})}}},va={class:"d-flex"},ga={ref:"gridContainer",class:"grid-masonry"},ka={class:"empty-subjects mt-4"},ya={key:1,class:"empty-subjects-grid"},pa={key:0},ba={style:{"white-space":"nowrap"}},xa={key:0},Da={style:{"white-space":"nowrap"}},Sa={key:0},wa={style:{"white-space":"nowrap"}},Ca={class:"d-flex flex-wrap mt-2 gap-1"},Va={class:"d-flex flex-wrap mb-4 gap-2"},Pa={class:"flex-grow-1"},Aa={class:"d-flex align-center"},_a={class:"text-subtitle-1"},Fa={class:"attendance-actions"};function La(e,t,s,r,a,l){const d=Dt("snap"),m=Be,u=Re;return g(),C(I,null,[n(Nt,{class:"no-select"},{prepend:o(()=>[n(ra,{icon:"mdi-home"})]),append:o(()=>[n(y,{icon:"mdi-format-font-size-decrease",variant:"text",onClick:t[0]||(t[0]=i=>l.zoom("out"))}),n(y,{icon:"mdi-format-font-size-increase",variant:"text",onClick:t[1]||(t[1]=i=>l.zoom("up"))}),n(It,{modelValue:a.state.datePickerDialog,"onUpdate:modelValue":t[3]||(t[3]=i=>a.state.datePickerDialog=i),"close-on-content-click":!1},{activator:o(({props:i})=>[n(y,E({icon:"mdi-calendar",variant:"text"},i),null,16)]),default:o(()=>[n(z,{border:""},{default:o(()=>[n(ma,{modelValue:a.state.selectedDateObj,"onUpdate:modelValue":[t[2]||(t[2]=i=>a.state.selectedDateObj=i),l.handleDateSelect],"model-value":a.state.selectedDateObj,color:"primary"},null,8,["modelValue","model-value","onUpdate:modelValue"])]),_:1})]),_:1},8,["modelValue"]),n(y,{icon:"mdi-refresh",variant:"text",loading:a.loading.download,onClick:l.downloadData},null,8,["loading","onClick"]),t[17]||(t[17]=h()),n(y,{icon:"mdi-bell",variant:"text",badge:l.unreadCount||void 0,"badge-color":l.unreadCount?"error":void 0,onClick:t[4]||(t[4]=i=>e.$refs.messageLog.drawer=!0)},null,8,["badge","badge-color"]),n(y,{icon:"mdi-cog",variant:"text",onClick:t[5]||(t[5]=i=>e.$router.push("/settings"))})]),default:o(()=>[n(Et,null,{default:o(()=>[h(p(a.state.classNumber)+" - "+p(l.titleText),1)]),_:1}),n(Q)]),_:1}),b("div",va,[n(Pt,{class:"main-window flex-grow-1 no-select",fluid:""},{default:o(()=>[b("div",ga,[n(ve,{name:"grid"},{default:o(()=>[(g(!0),C(I,null,O(l.sortedItems,i=>(g(),C("div",{key:i.key,class:"grid-item",style:De({"grid-row-end":`span ${i.rowSpan}`,order:i.order})},[n(z,{border:"",height:"100%",class:"glow-track",onClick:c=>!l.isEditingDisabled&&l.openDialog(i.key),onMousemove:l.handleMouseMove,onTouchmove:l.handleTouchMove},{default:o(()=>[n(J,null,{default:o(()=>[h(p(i.name),1)]),_:2},1024),n(B,{style:De(a.state.contentStyle)},{default:o(()=>[n(Lt,null,{default:o(()=>[(g(!0),C(I,null,O(l.splitPoint(i.content),c=>(g(),T(Mt,{key:c},{default:o(()=>[h(p(c),1)]),_:2},1024))),128))]),_:2},1024)]),_:2},1032,["style"])]),_:2},1032,["onClick","onMousemove","onTouchmove"])],4))),128))]),_:1})],512),b("div",ka,[l.emptySubjectDisplay==="button"?(g(),T(he,{key:0,divided:"",variant:"outlined"},{default:o(()=>[(g(!0),C(I,null,O(l.unusedSubjects,i=>(g(),T(y,{key:i.key,disabled:l.isEditingDisabled,onClick:c=>l.openDialog(i.key)},{default:o(()=>[n(q,{start:""},{default:o(()=>t[18]||(t[18]=[h(" mdi-plus ")])),_:1}),h(" "+p(i.name),1)]),_:2},1032,["disabled","onClick"]))),128))]),_:1})):(g(),C("div",ya,[n(ve,{name:"v-list"},{default:o(()=>[(g(!0),C(I,null,O(l.unusedSubjects,i=>(g(),T(z,{key:i.key,border:"",class:"empty-subject-card",disabled:l.isEditingDisabled,onClick:c=>l.openDialog(i.key)},{default:o(()=>[n(J,{class:"text-subtitle-1"},{default:o(()=>[h(p(i.name),1)]),_:2},1024),n(B,{class:"text-center"},{default:o(()=>[n(q,{size:"small",color:"grey"},{default:o(()=>t[19]||(t[19]=[h(" mdi-plus ")])),_:1}),t[20]||(t[20]=b("div",{class:"text-caption text-grey"},"点击添加作业",-1))]),_:1})]),_:2},1032,["disabled","onClick"]))),128))]),_:1})]))]),a.state.synced?(g(),T(y,{key:1,color:"success",size:"large",onClick:l.showSyncMessage},{default:o(()=>t[22]||(t[22]=[h(" 同步完成 ")])),_:1},8,["onClick"])):(g(),T(y,{key:0,color:"error",size:"large",loading:a.loading.upload,class:"ml-2",onClick:l.manualUpload},{default:o(()=>t[21]||(t[21]=[h(" 上传 ")])),_:1},8,["loading","onClick"])),l.showRandomPickerButton?(g(),T(y,{key:2,color:"amber","prepend-icon":"mdi-account-question","append-icon":"mdi-dice-multiple",size:"large",class:"ml-2",onClick:l.openRandomPicker},{default:o(()=>t[23]||(t[23]=[h(" 随机点名 ")])),_:1},8,["onClick"])):R("",!0),l.showFullscreenButton?(g(),T(y,{key:3,color:a.state.isFullscreen?"blue-grey":"blue","prepend-icon":a.state.isFullscreen?"mdi-fullscreen-exit":"mdi-fullscreen",size:"large",class:"ml-2",onClick:l.toggleFullscreen},{default:o(()=>[h(p(a.state.isFullscreen?"退出全屏":"全屏显示"),1)]),_:1},8,["color","prepend-icon","onClick"])):R("",!0),t[26]||(t[26]=h()),l.showAntiScreenBurnCard?(g(),T(z,{key:4,border:"",class:"mt-4 anti-burn-card",color:"primary",variant:"tonal"},{default:o(()=>[n(J,{class:"text-subtitle-1"},{default:o(()=>[n(q,{start:"",icon:"mdi-shield-check",size:"small"}),t[24]||(t[24]=h(" 屏幕保护技术已启用 "))]),_:1}),n(B,{class:"text-body-2"},{default:o(()=>t[25]||(t[25]=[b("p",null,"本应用采用独立自研的动态像素偏移技术(DPO™),有效防止LCD屏幕烧屏现象。",-1),b("p",{class:"text-caption text-grey"},[h("*研究显示动态像素偏移技术可以修复屏幕坏点,起到保护屏幕的作用,数据来自实验室。"),b("a",{href:"https://patentscope.wipo.int/search/zh/detail.jsf?docId=CN232281523&_cid=P20-M8L0YX-67061-1",target:"_blank"},"专利号CN108648692 ")],-1),b("p",{class:"text-caption text-grey"},"*技术已自动适配您的设备,无需手动调整",-1)])),_:1})]),_:1})):R("",!0)]),_:1}),a.state.studentList&&a.state.studentList.length?(g(),T(le,{key:0,class:"attendance-area no-select",cols:"1",onClick:t[6]||(t[6]=i=>l.setAttendanceArea())},{default:o(()=>[t[37]||(t[37]=b("h1",null,"出勤",-1)),b("h2",null,[n(d,{style:{"white-space":"nowrap"}},{default:o(()=>t[27]||(t[27]=[h(" 应到 ")])),_:1}),t[28]||(t[28]=h(": ")),n(d,{style:{"white-space":"nowrap"}},{default:o(()=>[h(p(a.state.studentList.length-a.state.boardData.attendance.exclude.length)+"人 ",1)]),_:1})]),b("h2",null,[n(d,{style:{"white-space":"nowrap"}},{default:o(()=>t[29]||(t[29]=[h(" 实到 ")])),_:1}),t[30]||(t[30]=h(": ")),n(d,{style:{"white-space":"nowrap"}},{default:o(()=>[h(p(a.state.studentList.length-a.state.boardData.attendance.absent.length-a.state.boardData.attendance.late.length-a.state.boardData.attendance.exclude.length)+"人 ",1)]),_:1})]),b("h2",null,[n(d,{style:{"white-space":"nowrap"}},{default:o(()=>t[31]||(t[31]=[h(" 请假 ")])),_:1}),t[32]||(t[32]=h(": ")),n(d,{style:{"white-space":"nowrap"}},{default:o(()=>[h(p(a.state.boardData.attendance.absent.length)+"人 ",1)]),_:1})]),(g(!0),C(I,null,O(a.state.boardData.attendance.absent,(i,c)=>(g(),C("h3",{class:"gray-text",key:"absent-"+c},[a.useDisplay().lgAndUp.value?(g(),C("span",pa,p(`${c+1}. `),1)):R("",!0),b("span",ba,p(i),1)]))),128)),b("h2",null,[n(d,{style:{"white-space":"nowrap"}},{default:o(()=>t[33]||(t[33]=[h("迟到")])),_:1}),t[34]||(t[34]=h(": ")),n(d,{style:{"white-space":"nowrap"}},{default:o(()=>[h(p(a.state.boardData.attendance.late.length)+"人 ",1)]),_:1})]),(g(!0),C(I,null,O(a.state.boardData.attendance.late,(i,c)=>(g(),C("h3",{class:"gray-text",key:"late-"+c},[a.useDisplay().lgAndUp.value?(g(),C("span",xa,p(`${c+1}. `),1)):R("",!0),b("span",Da,p(i),1)]))),128)),b("h2",null,[n(d,{style:{"white-space":"nowrap"}},{default:o(()=>t[35]||(t[35]=[h("不参与")])),_:1}),t[36]||(t[36]=h(": ")),n(d,{style:{"white-space":"nowrap"}},{default:o(()=>[h(p(a.state.boardData.attendance.exclude.length)+"人 ",1)]),_:1})]),(g(!0),C(I,null,O(a.state.boardData.attendance.exclude,(i,c)=>(g(),C("h3",{class:"gray-text",key:"exclude-"+c},[a.useDisplay().lgAndUp.value?(g(),C("span",Sa,p(`${c+1}. `),1)):R("",!0),b("span",wa,p(i),1)]))),128))]),_:1})):R("",!0)]),n(de,{modelValue:a.state.dialogVisible,"onUpdate:modelValue":t[8]||(t[8]=i=>a.state.dialogVisible=i),width:"500","onClick:outside":l.handleClose},{default:o(()=>[n(z,{border:""},{default:o(()=>[n(J,null,{default:o(()=>[h(p(a.state.dialogTitle),1)]),_:1}),n(At,null,{default:o(()=>[h(p(l.autoSave?"喵?喵呜!":"写完后点击上传谢谢喵"),1)]),_:1}),n(B,null,{default:o(()=>[n(Ot,{ref:"inputRef",modelValue:a.state.textarea,"onUpdate:modelValue":t[7]||(t[7]=i=>a.state.textarea=i),"auto-grow":"",placeholder:"使用换行表示分条",rows:"5"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue","onClick:outside"]),n(St,{modelValue:a.state.snackbar,"onUpdate:modelValue":t[9]||(t[9]=i=>a.state.snackbar=i),timeout:2e3},{default:o(()=>[h(p(a.state.snackbarText),1)]),_:1},8,["modelValue"]),n(de,{modelValue:a.state.attendanceDialog,"onUpdate:modelValue":[t[15]||(t[15]=i=>a.state.attendanceDialog=i),l.handleAttendanceDialogClose],"max-width":"900","fullscreen-breakpoint":"sm"},{default:o(()=>[n(z,null,{default:o(()=>[n(J,{class:"d-flex align-center"},{default:o(()=>[n(q,{icon:"mdi-account-group",class:"mr-2"}),t[38]||(t[38]=h(" 出勤状态管理 ")),n(Q),n(G,{color:"primary",size:"small",class:"ml-2"},{default:o(()=>[h(p(a.state.dateString),1)]),_:1})]),_:1}),n(B,null,{default:o(()=>[n(me,{class:"mb-4"},{default:o(()=>[n(le,{cols:"12",md:"12"},{default:o(()=>[n(zt,{modelValue:a.attendanceSearch,"onUpdate:modelValue":[t[10]||(t[10]=i=>a.attendanceSearch=i),e.handleSearchChange],"prepend-inner-icon":"mdi-magnify",label:"搜索学生",hint:"支持筛选姓氏,如输入'孙'可筛选所有姓孙的学生",variant:"outlined",clearable:""},null,8,["modelValue","onUpdate:modelValue"]),b("div",Ca,[(g(!0),C(I,null,O(l.extractedSurnames,i=>(g(),T(y,{key:i.name,variant:a.attendanceSearch===i.name?"elevated":"text",color:a.attendanceSearch===i.name?"primary":"",onClick:c=>a.attendanceSearch=a.attendanceSearch===i.name?"":i.name},{default:o(()=>[h(p(i.name)+" ("+p(i.count)+") ",1)]),_:2},1032,["variant","color","onClick"]))),128))])]),_:1})]),_:1}),b("div",Va,[b("div",null,[n(G,{value:"present",color:a.attendanceFilter.includes("present")?"success":"",variant:a.attendanceFilter.includes("present")?"elevated":"tonal",class:"px-2 filter-chip",onClick:t[11]||(t[11]=i=>l.toggleFilter("present")),"prepend-icon":"mdi-account-check","append-icon":a.attendanceFilter.includes("present")?"mdi-check":""},{default:o(()=>t[39]||(t[39]=[h(" 到课 ")])),_:1},8,["color","variant","append-icon"]),n(G,{value:"absent",color:a.attendanceFilter.includes("absent")?"error":"",variant:a.attendanceFilter.includes("absent")?"elevated":"tonal",class:"px-2 filter-chip",onClick:t[12]||(t[12]=i=>l.toggleFilter("absent")),"prepend-icon":"mdi-account-off","append-icon":a.attendanceFilter.includes("absent")?"mdi-check":""},{default:o(()=>t[40]||(t[40]=[h(" 请假 ")])),_:1},8,["color","variant","append-icon"]),n(G,{value:"late",color:a.attendanceFilter.includes("late")?"warning":"",variant:a.attendanceFilter.includes("late")?"elevated":"tonal",class:"px-2 filter-chip",onClick:t[13]||(t[13]=i=>l.toggleFilter("late")),"prepend-icon":"mdi-clock-alert","append-icon":a.attendanceFilter.includes("late")?"mdi-check":""},{default:o(()=>t[41]||(t[41]=[h(" 迟到 ")])),_:1},8,["color","variant","append-icon"]),n(G,{value:"exclude",color:a.attendanceFilter.includes("exclude")?"grey":"",variant:a.attendanceFilter.includes("exclude")?"elevated":"tonal",class:"px-2 filter-chip",onClick:t[14]||(t[14]=i=>l.toggleFilter("exclude")),"prepend-icon":"mdi-account-cancel","append-icon":a.attendanceFilter.includes("exclude")?"mdi-check":""},{default:o(()=>t[42]||(t[42]=[h(" 不参与 ")])),_:1},8,["color","variant","append-icon"])])]),n(me,null,{default:o(()=>[(g(!0),C(I,null,O(l.filteredStudents,i=>(g(),T(le,{key:i,cols:"12",sm:"6",md:"6",lg:"4"},{default:o(()=>[n(z,{class:"student-card",border:""},{default:o(()=>[n(B,{class:"d-flex align-center pa-2"},{default:o(()=>[b("div",Pa,[b("div",Aa,[n(_t,{color:l.getStudentStatusColor(a.state.studentList.indexOf(i)),size:"24",class:"mr-2"},{default:o(()=>[n(q,{size:"small"},{default:o(()=>[h(p(l.getStudentStatusIcon(a.state.studentList.indexOf(i))),1)]),_:2},1024)]),_:2},1032,["color"]),b("div",_a,p(i),1)])]),b("div",Fa,[n(y,{color:l.isPresent(a.state.studentList.indexOf(i))?"success":"",icon:"mdi-account-check",size:"small",variant:"text",onClick:c=>l.setPresent(a.state.studentList.indexOf(i)),title:"设为到课"},null,8,["color","onClick"]),n(y,{color:l.isAbsent(a.state.studentList.indexOf(i))?"error":"",icon:"mdi-account-off",size:"small",variant:"text",onClick:c=>l.setAbsent(a.state.studentList.indexOf(i)),title:"设为请假"},null,8,["color","onClick"]),n(y,{color:l.isLate(a.state.studentList.indexOf(i))?"warning":"",icon:"mdi-clock-alert",size:"small",variant:"text",onClick:c=>l.setLate(a.state.studentList.indexOf(i)),title:"设为迟到"},null,8,["color","onClick"]),n(y,{color:l.isExclude(a.state.studentList.indexOf(i))?"grey":"",icon:"mdi-account-cancel",size:"small",variant:"text",onClick:c=>l.setExclude(a.state.studentList.indexOf(i)),title:"设为不参与"},null,8,["color","onClick"])])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1}),n(me,null,{default:o(()=>[n(le,{cols:"12",md:"12"},{default:o(()=>[n(z,{variant:"tonal",color:"primary",class:"mb-4"},{default:o(()=>[n(B,null,{default:o(()=>[t[47]||(t[47]=b("div",{class:"text-subtitle-2 mb-2"},"批量操作",-1)),n(he,null,{default:o(()=>[n(y,{color:"success","prepend-icon":"mdi-account-check",onClick:l.setAllPresent},{default:o(()=>t[43]||(t[43]=[h(" 全部到齐 ")])),_:1},8,["onClick"]),n(y,{color:"error","prepend-icon":"mdi-account-off",onClick:l.setAllAbsent},{default:o(()=>t[44]||(t[44]=[h(" 全部请假 ")])),_:1},8,["onClick"])]),_:1}),t[48]||(t[48]=h()),n(he,null,{default:o(()=>[n(y,{color:"warning","prepend-icon":"mdi-clock-alert",onClick:l.setAllLate},{default:o(()=>t[45]||(t[45]=[h(" 全部迟到 ")])),_:1},8,["onClick"]),n(y,{color:"grey","prepend-icon":"mdi-account-cancel",onClick:l.setAllExclude},{default:o(()=>t[46]||(t[46]=[h(" 全部不参与 ")])),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),n(Tt),n(we,null,{default:o(()=>[n(Q),n(y,{color:"primary",onClick:l.saveAttendance},{default:o(()=>[n(q,{start:""},{default:o(()=>t[49]||(t[49]=[h("mdi-content-save")])),_:1}),t[50]||(t[50]=h(" 保存 "))]),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue","onUpdate:modelValue"]),n(m,{ref:"messageLog"},null,512),n(de,{modelValue:a.confirmDialog.show,"onUpdate:modelValue":t[16]||(t[16]=i=>a.confirmDialog.show=i),"max-width":"400"},{default:o(()=>[n(z,null,{default:o(()=>[n(J,{class:"text-h6"},{default:o(()=>t[51]||(t[51]=[h(" 确认保存 ")])),_:1}),n(B,null,{default:o(()=>[h(" 您正在修改 "+p(a.state.dateString)+" 的数据,确定要保存吗? ",1)]),_:1}),n(we,null,{default:o(()=>[n(Q),n(y,{color:"grey",variant:"text",onClick:a.confirmDialog.reject},{default:o(()=>t[52]||(t[52]=[h(" 取消 ")])),_:1},8,["onClick"]),n(y,{color:"primary",onClick:a.confirmDialog.resolve},{default:o(()=>t[53]||(t[53]=[h(" 确认保存 ")])),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),n(u,{ref:"randomPicker","student-list":a.state.studentList,attendance:a.state.boardData.attendance},null,8,["student-list","attendance"])],64)}const Oa=Te(fa,[["render",La]]);export{Oa as default};