1
0
mirror of https://github.com/ZeroCatDev/Classworks.git synced 2025-12-07 21:13:11 +00:00
Classworks/assets/ExamConfigEditor-CIowgBTl.js

3 lines
38 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{d as ue}from"./dataProvider-BwBNIE6C.js";import{g as pe,p as we,$ as S,a2 as $e,aB as Ze,a5 as R,a6 as X,c as ke,i as g,n as Ee,e as re,aZ as Qe,a0 as Xe,d as l,E as se,ad as et,Z as Ke,a3 as fe,t as f,y as D,a_ as Ue,aF as tt,ay as lt,aj as at,ae as xe,aJ as nt,a$ as _e,_ as ot,A as z,o as C,j as P,B as F,w as a,v as _,C as A,P as Fe,F as he,G as ye,Q as Ae,ap as it,z as Q,l as K,D as rt,q as le,x as de,O as st,b0 as ut,I as dt,J as mt,M as be,H as ct}from"./index-CSXgERV5.js";import{V as Ce}from"./VAlert-i38njeA1.js";import{V as ft}from"./VSkeletonLoader-C3_l26ht.js";import{V as vt}from"./VBadge-CpVlpXNr.js";import{V as Be,b as gt}from"./VChip-BAzBpRRb.js";import{a as L,V as me}from"./VRow-BtInNL6G.js";import{V as ie}from"./VTextField-BBahoPg8.js";import{V as ht}from"./VTextarea-rd-uw1DP.js";import{V as He}from"./VMenu-CGQb64Hq.js";import{a as ze,m as yt,V as Le}from"./VDatePicker-B0qc3wZ7.js";const pt=we({allowedValues:Function,ampm:Boolean,color:String,disabled:Boolean,displayedValue:null,double:Boolean,format:{type:Function,default:e=>e},max:{type:Number,required:!0},min:{type:Number,required:!0},scrollable:Boolean,readonly:Boolean,rotate:{type:Number,default:0},step:{type:Number,default:1},modelValue:{type:Number}},"VTimePickerClock"),Re=pe()({name:"VTimePickerClock",props:pt(),emits:{change:e=>!0,input:e=>!0},setup(e,t){let{emit:i}=t;const m=S(null),o=S(null),v=S(void 0),n=S(!1),c=S(null),r=S(null),k=Qe(u=>i("change",u),750),{textColorClasses:Y,textColorStyles:ae}=$e(()=>e.color),{backgroundColorClasses:B,backgroundColorStyles:p}=Ze(()=>e.color),J=R(()=>e.max-e.min+1),j=R(()=>e.double?J.value/2:J.value),M=R(()=>360/j.value),W=R(()=>M.value*Math.PI/180),$=R(()=>e.modelValue==null?e.min:e.modelValue),U=R(()=>.62),s=R(()=>{const u=[];for(let y=e.min;y<=e.max;y=y+e.step)u.push(y);return u});X(()=>e.modelValue,u=>{v.value=u});function V(u){v.value!==u&&(v.value=u),i("input",u)}function I(u){return!e.allowedValues||e.allowedValues(u)}function x(u){if(!e.scrollable||e.disabled)return;u.preventDefault();const y=Math.sign(-u.deltaY||1);let b=$.value;do b=b+y,b=(b-e.min+J.value)%J.value+e.min;while(!I(b)&&b!==$.value);b!==e.displayedValue&&V(b),k(b)}function N(u){return e.double&&u-e.min>=j.value}function H(u){return N(u)?U.value:1}function ee(u){const y=e.rotate*Math.PI/180;return{x:Math.sin((u-e.min)*W.value+y)*H(u),y:-Math.cos((u-e.min)*W.value+y)*H(u)}}function O(u,y){const b=(Math.round(u/M.value)+(y?j.value:0))%J.value+e.min;return u<360-M.value/2?b:y?e.max-j.value+1:e.min}function d(u){const{x:y,y:b}=ee(u);return{left:`${Math.round(50+y*50)}%`,top:`${Math.round(50+b*50)}%`}}function w(u,y){const b=y.x-u.x,ne=y.y-u.y;return Math.sqrt(b*b+ne*ne)}function T(u,y){const b=2*Math.atan2(y.y-u.y-w(u,y),y.x-u.x);return Math.abs(b*180/Math.PI)}function h(u){c.value===null&&(c.value=u),r.value=u,V(u)}function E(u){var Ie,Pe;if(u.preventDefault(),!n.value&&u.type!=="click"||!m.value)return;const{width:y,top:b,left:ne}=(Ie=m.value)==null?void 0:Ie.getBoundingClientRect(),{width:te}=((Pe=o.value)==null?void 0:Pe.getBoundingClientRect())??{width:0},{clientX:ve,clientY:We}="touches"in u?u.touches[0]:u,Te={x:y/2,y:-y/2},Se={x:ve-ne,y:b-We},Me=Math.round(T(Te,Se)-e.rotate+360)%360,Ne=e.double&&w(Te,Se)<(te+te*U.value)/4,Ge=Math.ceil(15/M.value);let oe;for(let ge=0;ge<Ge;ge++)if(oe=O(Me+ge*M.value,Ne),I(oe)||(oe=O(Me-ge*M.value,Ne),I(oe)))return h(oe)}function G(u){e.disabled||(u.preventDefault(),window.addEventListener("mousemove",E),window.addEventListener("touchmove",E),window.addEventListener("mouseup",Z),window.addEventListener("touchend",Z),c.value=null,r.value=null,n.value=!0,E(u))}function Z(u){u.stopPropagation(),window.removeEventListener("mousemove",E),window.removeEventListener("touchmove",E),window.removeEventListener("mouseup",Z),window.removeEventListener("touchend",Z),n.value=!1,r.value!==null&&I(r.value)&&i("change",r.value)}ke(()=>g("div",{class:re([{"v-time-picker-clock":!0,"v-time-picker-clock--indeterminate":e.modelValue==null,"v-time-picker-clock--readonly":e.readonly}]),onMousedown:G,onTouchstart:G,onWheel:x,ref:m},[g("div",{class:"v-time-picker-clock__inner",ref:o},[g("div",{class:re([{"v-time-picker-clock__hand":!0,"v-time-picker-clock__hand--inner":N(e.modelValue)},Y.value]),style:Ee([{transform:`rotate(${e.rotate+M.value*($.value-e.min)}deg) scaleY(${H($.value)})`},ae.value])},null),s.value.map(u=>{const y=u===$.value;return g("div",{class:re([{"v-time-picker-clock__item":!0,"v-time-picker-clock__item--active":y,"v-time-picker-clock__item--disabled":e.disabled||!I(u)},y&&B.value]),style:Ee([d(u),y&&p.value])},[g("span",null,[e.format(u)])])})])]))}}),wt=we({active:Boolean,color:String,disabled:Boolean,label:String,modelValue:String,readonly:Boolean},"VTimePickerField"),Ve=pe()({name:"VTimePickerField",inheritAttrs:!1,props:wt(),emits:{"update:modelValue":e=>!0},setup(e,t){let{emit:i,attrs:m}=t;const{textColorClasses:o,textColorStyles:v}=$e(()=>e.color),n=S(),c=Xe(!1);function r(k){if(["Backspace","Delete"].includes(k.key)){k.preventDefault();const Y=k.target;Y.value="",i("update:modelValue",null)}}return ke(()=>g("div",null,[l(ie,se({ref:n,autocomplete:"off",class:["v-time-picker-controls__time__field",{"v-time-picker-controls__time__field--active":e.active},e.active?o.value:[]],style:e.active?v.value:[],disabled:e.disabled,variant:"solo-filled",inputmode:"numeric",hideDetails:!0,flat:!0,modelValue:e.modelValue??(c.value?"":"--"),"onUpdate:modelValue":k=>i("update:modelValue",k),onKeydown:r,onFocus:()=>c.value=!0,onBlur:()=>c.value=!1},m),null),g("div",{class:"v-time-picker-controls__field-label"},[e.label])])),et({},n)}});function q(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;return String(e).padStart(t,"0")}function qe(e){return e?(e-1)%12+1:12}function De(e,t){return e%12+(t==="pm"?12:0)}function ce(e){const t=e.replaceAll(/\D/g,"");return t.length>0?Number(t):null}function kt(e,t,i){if(i){if(e===12&&t)return{value:1};if(e===11&&t)return{value:12,togglePeriod:!0};if(e===12&&!t)return{value:11,togglePeriod:!0};if(e===1&&!t)return{value:12}}else{if(e===23&&t)return{value:0};if(e===0&&!t)return{value:23}}return{value:e+(t?1:-1)}}function Je(e,t){return e===59&&t?0:e===0&&!t?59:e+(t?1:-1)}const bt=we({ampm:Boolean,color:String,disabled:Boolean,hour:[Number,String],minute:[Number,String],second:[Number,String],period:String,readonly:Boolean,useSeconds:Boolean,value:Number,viewMode:String},"VTimePickerControls"),Oe=pe()({name:"VTimePickerControls",props:bt(),emits:{"update:period":e=>!0,"update:viewMode":e=>!0,"update:hour":e=>!0,"update:minute":e=>!0,"update:second":e=>!0},setup(e,t){let{emit:i,slots:m}=t;const{t:o}=Ke(),v={in:s=>{if(s==null||isNaN(Number(s)))return null;const V=Number(s);return e.ampm?q(qe(V)):q(V)},out:s=>{if(isNaN(Number(s))||s==null||s==="")return null;const V=typeof s=="string"?ce(s):Number(s);return V===null?null:e.ampm?De(V,e.period??"am"):Ue(V,0,23)}},n=fe(e,"hour",void 0,v.in,v.out),c={in:s=>s!=null&&!isNaN(Number(s))?q(`${s}`):null,out:s=>{if(isNaN(Number(s))||s==null||s==="")return null;const V=typeof s=="string"?ce(s):Number(s);return V!==null?Ue(V,0,59):null}},r=fe(e,"minute",void 0,c.in,c.out),k=fe(e,"second",void 0,c.in,c.out);function Y(s){if(!["ArrowUp","ArrowDown"].includes(s.key))return;s.preventDefault(),s.stopPropagation();const V=Number(n.value??0),I=e.ampm?e.period??"am":null,{value:x,togglePeriod:N}=kt(V,s.key==="ArrowUp",I);n.value=q(x),N&&i("update:period",e.period==="am"?"pm":"am")}function ae(s){["ArrowUp","ArrowDown"].includes(s.key)&&(s.preventDefault(),s.stopPropagation(),r.value=Je(Number(r.value),s.key==="ArrowUp"))}function B(s){["ArrowUp","ArrowDown"].includes(s.key)&&(s.preventDefault(),s.stopPropagation(),k.value=Je(Number(k.value),s.key==="ArrowUp"))}function p(s,V,I){return x=>{if(!x.data)return;const N=x.target,{value:H,selectionStart:ee,selectionEnd:O}=N??{};if(ce(x.data)===null){x.preventDefault();return}const d=H?H.slice(0,ee)+x.data+H.slice(O):x.data;if(d.length>2){if(ee===O&&O===0&&x.data.trim().startsWith("0")){x.preventDefault(),N.value=d.trim().substring(0,2),I(N.value),x.data.trim().length===1&&N.setSelectionRange(1,1);return}if(ee===O&&O===1&&H.startsWith("0")){x.preventDefault(),N.value=d.trim().substring(0,2),I(N.value);return}const T=e.viewMode==="hour"?e.ampm?12:23:59;if(ce(d)>T){x.preventDefault(),N.value=q(String(ce(x.data)).substring(0,2)),I(N.value);return}}const w=s(d);V(w)&&x.preventDefault()}}const J=S(),j=S(),M=S();X(()=>e.viewMode,(s,V)=>{switch(V){case"hour":J.value.blur();break;case"minute":j.value.blur();break;case"second":M.value.blur();break}});const W=p(v.out,s=>v.in(s)===n.value,s=>n.value=s),$=p(c.out,s=>c.in(s)===r.value,s=>r.value=s),U=p(c.out,s=>c.in(s)===k.value,s=>k.value=s);return ke(()=>g("div",{class:"v-time-picker-controls"},[g("div",{class:re({"v-time-picker-controls__time":!0,"v-time-picker-controls__time--with-ampm":e.ampm,"v-time-picker-controls__time--with-seconds":e.useSeconds})},[l(Ve,{ref:J,active:e.viewMode==="hour",color:e.color,disabled:e.disabled,label:o("$vuetify.timePicker.hour"),modelValue:n.value,"onUpdate:modelValue":s=>n.value=s,onKeydown:Y,onBeforeinput:W,onFocus:()=>i("update:viewMode","hour")},null),g("span",{class:"v-time-picker-controls__time__separator"},[f(":")]),l(Ve,{ref:j,active:e.viewMode==="minute",color:e.color,disabled:e.disabled,label:o("$vuetify.timePicker.minute"),modelValue:r.value,"onUpdate:modelValue":s=>r.value=s,onKeydown:ae,onBeforeinput:$,onFocus:()=>i("update:viewMode","minute")},null),e.useSeconds&&g("span",{key:"secondsDivider",class:"v-time-picker-controls__time__separator"},[f(":")]),e.useSeconds&&l(Ve,{key:"secondsVal",ref:M,active:e.viewMode==="second",color:e.color,disabled:e.disabled,label:o("$vuetify.timePicker.second"),modelValue:k.value,"onUpdate:modelValue":s=>k.value=s,onKeydown:B,onBeforeinput:U,onFocus:()=>i("update:viewMode","second")},null),e.ampm&&g("div",{class:"v-time-picker-controls__ampm"},[l(D,{active:e.period==="am",color:e.period==="am"?e.color:void 0,class:re({"v-time-picker-controls__ampm__am":!0,"v-time-picker-controls__ampm__btn":!0,"v-time-picker-controls__ampm__btn__active":e.period==="am"}),disabled:e.disabled,text:o("$vuetify.timePicker.am"),variant:e.disabled&&e.period==="am"?"elevated":"tonal",onClick:()=>e.period!=="am"?i("update:period","am"):null},null),l(D,{active:e.period==="pm",color:e.period==="pm"?e.color:void 0,class:re({"v-time-picker-controls__ampm__pm":!0,"v-time-picker-controls__ampm__btn":!0,"v-time-picker-controls__ampm__btn__active":e.period==="pm"}),disabled:e.disabled,text:o("$vuetify.timePicker.pm"),variant:e.disabled&&e.period==="pm"?"elevated":"tonal",onClick:()=>e.period!=="pm"?i("update:period","pm"):null},null)])])])),{}}}),Ct=_e(24),Ye=_e(12),Vt=Ye.map(e=>e+12);_e(60);const xt=we({allowedHours:[Function,Array],allowedMinutes:[Function,Array],allowedSeconds:[Function,Array],disabled:Boolean,format:{type:String,default:"ampm"},max:String,min:String,viewMode:{type:String,default:"hour"},period:{type:String,default:"am",validator:e=>["am","pm"].includes(e)},modelValue:null,readonly:Boolean,scrollable:Boolean,useSeconds:Boolean,variant:{type:String,default:"dial"},...xe(yt({title:"$vuetify.timePicker.title"}),["landscape"]),...nt()},"VTimePicker"),je=pe()({name:"VTimePicker",props:xt(),emits:{"update:hour":e=>!0,"update:minute":e=>!0,"update:period":e=>!0,"update:second":e=>!0,"update:modelValue":e=>!0,"update:viewMode":e=>!0},setup(e,t){let{emit:i,slots:m}=t;const{t:o}=Ke(),{densityClasses:v}=tt(e),n=S(null),c=S(null),r=S(null),k=S(null),Y=S(null),ae=S(null),B=fe(e,"period","am"),p=fe(e,"viewMode","hour"),J=S(null),j=S(null),M=R(()=>{let d;if(e.allowedHours instanceof Array?d=h=>e.allowedHours.includes(h):d=e.allowedHours,!e.min&&!e.max)return d;const w=e.min?Number(e.min.split(":")[0]):0,T=e.max?Number(e.max.split(":")[0]):23;return h=>h>=Number(w)&&h<=Number(T)&&(!d||d(h))}),W=R(()=>{let d;const w=!M.value||n.value===null||M.value(n.value);if(e.allowedMinutes instanceof Array?d=y=>e.allowedMinutes.includes(y):d=e.allowedMinutes,!e.min&&!e.max)return w?d:()=>!1;const[T,h]=e.min?e.min.split(":").map(Number):[0,0],[E,G]=e.max?e.max.split(":").map(Number):[23,59],Z=T*60+Number(h),u=E*60+Number(G);return y=>{const b=60*n.value+y;return b>=Z&&b<=u&&w&&(!d||d(y))}}),$=R(()=>{let d;const T=(!M.value||n.value===null||M.value(n.value))&&(!W.value||c.value===null||W.value(c.value));if(e.allowedSeconds instanceof Array?d=te=>e.allowedSeconds.includes(te):d=e.allowedSeconds,!e.min&&!e.max)return T?d:()=>!1;const[h,E,G]=e.min?e.min.split(":").map(Number):[0,0,0],[Z,u,y]=e.max?e.max.split(":").map(Number):[23,59,59],b=h*3600+E*60+Number(G||0),ne=Z*3600+u*60+Number(y||0);return te=>{const ve=3600*n.value+60*c.value+te;return ve>=b&&ve<=ne&&T&&(!d||d(te))}}),U=R(()=>e.format==="ampm"),s=lt(()=>e.modelValue!==null&&n.value===null&&c.value===null&&(!e.useSeconds||r.value===null));function V(){const d=I();d!==null&&d!==e.modelValue&&i("update:modelValue",d),s.value&&i("update:modelValue",null)}X(n,V),X(c,V),X(r,V),X(()=>e.period,d=>H(d)),X(()=>e.modelValue,d=>x(d)),X(()=>e.useSeconds,(d,w)=>{w&&!d&&p.value==="second"&&(p.value="minute"),!d&&r.value!==null&&(r.value=null)}),at(()=>{x(e.modelValue)});function I(){return n.value!=null&&c.value!=null&&(!e.useSeconds||r.value!=null)?`${q(n.value)}:${q(c.value)}`+(e.useSeconds?`:${q(r.value)}`:""):null}function x(d){if(d==null||d==="")n.value=null,c.value=null,r.value=null;else if(d instanceof Date)n.value=d.getHours(),c.value=d.getMinutes(),r.value=d.getSeconds();else{const[w,,T,,h,E]=d.trim().toLowerCase().match(/^(\d+):(\d+)(:(\d+))?([ap]m)?$/)||new Array(6);n.value=E?De(parseInt(w,10),E):parseInt(w,10),c.value=parseInt(T,10),r.value=parseInt(h||0,10)}B.value=n.value==null||n.value<12?"am":"pm"}function N(d,w){const T=M.value;if(!T)return w;const h=U.value?w<12?Ye:Vt:Ct;return((h.find(G=>T((G+w)%h.length+h[0]))||0)+w)%h.length+h[0]}function H(d){if(B.value=d,n.value!=null){const w=n.value+(B.value==="am"?-12:12);n.value=N("hour",w)}return i("update:period",d),V(),!0}function ee(d){p.value==="hour"?n.value=U.value?De(d,B.value):d:p.value==="minute"?c.value=d:r.value=d}function O(d){switch(p.value||"hour"){case"hour":i("update:hour",d);break;case"minute":i("update:minute",d);break;case"second":i("update:second",d);break}const w=n.value!==null&&c.value!==null&&(e.useSeconds?r.value!==null:!0);p.value==="hour"?p.value="minute":e.useSeconds&&p.value==="minute"&&(p.value="second"),!(n.value===k.value&&c.value===Y.value&&(!e.useSeconds||r.value===ae.value)||I()===null)&&(k.value=n.value,Y.value=c.value,e.useSeconds&&(ae.value=r.value),w&&V())}ke(()=>{const d=xe(ze.filterProps(e),["hideHeader"]),w=Oe.filterProps(e),T=Re.filterProps(xe(e,["format","modelValue","min","max"]));return l(ze,se(d,{color:void 0,class:["v-time-picker",`v-time-picker--variant-${e.variant}`,e.class,v.value],hideHeader:e.hideHeader&&e.variant!=="input",style:e.style}),{title:()=>{var h;return((h=m.title)==null?void 0:h.call(m))??g("div",{class:"v-time-picker__title"},[o(e.title)])},header:()=>l(Oe,se(w,{ampm:U.value,hour:n.value,minute:c.value,period:B.value,second:r.value,viewMode:p.value,"onUpdate:hour":h=>n.value=h,"onUpdate:minute":h=>c.value=h,"onUpdate:period":h=>H(h),"onUpdate:second":h=>r.value=h,"onUpdate:viewMode":h=>p.value=h,ref:J}),null),default:()=>l(Re,se(T,{allowedValues:p.value==="hour"?M.value:p.value==="minute"?W.value:$.value,double:p.value==="hour"&&!U.value,format:p.value==="hour"?U.value?qe:h=>h:h=>q(h,2),max:p.value==="hour"?U.value&&B.value==="am"?11:23:59,min:p.value==="hour"&&U.value&&B.value==="pm"?12:0,size:20,step:p.value==="hour"?1:5,modelValue:p.value==="hour"?n.value:p.value==="minute"?c.value:r.value,onChange:O,onInput:ee,ref:j}),null),actions:m.actions})})}}),Dt={name:"ExamConfigEditor",props:{configId:{type:String,required:!0},dialogMode:{type:Boolean,default:!1}},emits:["saved","error","opened","deleted"],data(){return{localConfig:{examName:"",message:"",room:"",examInfos:[]},loading:!1,saving:!1,deleting:!1,deleteDialog:!1,error:"",success:"",isEditMode:!1,showJsonPreview:!1,defaultExamTips:["请保持卷面整洁,字迹清晰,诚信应考。在听到终考铃时立刻起立,停止作答。","沉着 冷静 细心 守记","答题不守记,自己两行泪。"]}},computed:{formattedJson(){try{return JSON.stringify(this.localConfig,null,2)}catch(e){return console.error("格式化JSON时出错:",e),"无效的JSON格式"}},isValidConfig(){return this.localConfig.examName&&this.localConfig.message&&this.localConfig.examInfos&&this.localConfig.examInfos.length>0&&this.localConfig.examInfos.every(e=>e.name&&e.start&&e.end)},validationErrors(){const e=[];if((!this.localConfig.examName||this.localConfig.examName.trim()==="")&&e.push("考试名称不能为空"),(!this.localConfig.message||this.localConfig.message.trim()==="")&&e.push("考试提示不能为空"),!this.localConfig.examInfos||this.localConfig.examInfos.length===0)e.push("至少需要添加一个考试科目");else{this.localConfig.examInfos.forEach((t,i)=>{const m=`${i+1}个科目`;if((!t.name||t.name.trim()==="")&&e.push(`${m}的名称不能为空`),t.start||e.push(`${m}的开始时间不能为空`),t.end||e.push(`${m}的结束时间不能为空`),t.start&&t.end){const o=new Date(t.start),v=new Date(t.end);isNaN(o.getTime())&&e.push(`${m}的开始时间格式不正确`),isNaN(v.getTime())&&e.push(`${m}的结束时间格式不正确`),!isNaN(o.getTime())&&!isNaN(v.getTime())&&(v<=o&&e.push(`${m}的结束时间必须晚于开始时间`),(v-o)/(1e3*60*60)>24&&e.push(`${m}的考试时长不能超过24小时`))}});for(let t=0;t<this.localConfig.examInfos.length;t++)for(let i=t+1;i<this.localConfig.examInfos.length;i++){const m=this.localConfig.examInfos[t],o=this.localConfig.examInfos[i];if(m.start&&m.end&&o.start&&o.end){const v=new Date(m.start),n=new Date(m.end),c=new Date(o.start),r=new Date(o.end);!isNaN(v.getTime())&&!isNaN(n.getTime())&&!isNaN(c.getTime())&&!isNaN(r.getTime())&&v<r&&n>c&&e.push(`${t+1}个科目与第${i+1}个科目的时间有重叠`)}}}return e},hasValidationErrors(){return this.validationErrors.length>0}},watch:{configId:{immediate:!0,handler(e){e&&this.loadConfig()}}},methods:{async loadConfig(){var e;this.loading=!0,this.error="";try{const t=await ue.loadData(`es_${this.configId}`);t?(this.localConfig={examName:"",message:"",room:"",examInfos:[],...t},Array.isArray(this.localConfig.examInfos)||(this.localConfig.examInfos=[]),this.localConfig.examInfos.forEach(i=>{if(i.start){const m=this.parseDateTime(i.start);i.start=this.formatDateTimeLocal(m),i.startDate=m,i.startTime=this.formatTimeOnly(m),i.startFormatted=this.formatDisplayDateTime(m),i.startDateMenu=!1}if(i.end){const m=this.parseDateTime(i.end);i.end=this.formatDateTimeLocal(m),i.endDate=m,i.endTime=this.formatTimeOnly(m),i.endFormatted=this.formatDisplayDateTime(m),i.endDateMenu=!1}})):(console.error("加载配置失败:",t),this.error="加载配置失败: "+(((e=t.error)==null?void 0:e.message)||"未知错误"),this.$emit("error",this.error))}catch(t){console.error(t),this.error="加载配置失败: "+t.message,this.$emit("error",this.error)}finally{this.loading=!1}},async saveConfig(){var e;if(!this.isValidConfig){const t=this.validationErrors;return t.length>0?this.error=`配置验证失败:${t.join("")}`:this.error="请填写完整的配置信息",!1}this.saving=!0,this.error="";try{const t={...this.localConfig,examInfos:this.localConfig.examInfos.map(m=>({...m,start:this.formatDisplayDateTime(m.start),end:this.formatDisplayDateTime(m.end)}))},i=await ue.saveData(`es_${this.configId}`,t);return i?(this.success="配置保存成功",this.$emit("saved",t),!0):(this.error="保存配置失败: "+(((e=i.error)==null?void 0:e.message)||"未知错误"),this.$emit("error",this.error),!1)}catch(t){return this.error="保存配置失败: "+t,this.$emit("error",this.error),!1}finally{this.saving=!1}},addExamInfo(){const e=new Date,t=new Date(e.getTime()+60*60*1e3),i=new Date(t.getTime()+2*60*60*1e3),m={name:"新科目",start:this.formatDateTimeLocal(t),end:this.formatDateTimeLocal(i),startDate:t,startTime:this.formatTimeOnly(t),startFormatted:this.formatDisplayDateTime(t),startDateMenu:!1,endDate:i,endTime:this.formatTimeOnly(i),endFormatted:this.formatDisplayDateTime(i),endDateMenu:!1};this.localConfig.examInfos.push(m)},removeExamInfo(e){this.localConfig.examInfos.splice(e,1)},moveExamInfo(e,t){const i=e+t;if(i>=0&&i<this.localConfig.examInfos.length){const m=this.localConfig.examInfos.splice(e,1)[0];this.localConfig.examInfos.splice(i,0,m)}},async copyToClipboard(){try{await navigator.clipboard.writeText(this.formattedJson),this.success="JSON已复制到剪贴板"}catch(e){this.error="复制失败: "+e.message}},toggleEditMode(){this.isEditMode=!this.isEditMode,this.error="",this.success=""},quickEdit(){this.isEditMode=!0,this.error="",this.success=""},selectDefaultTip(e){this.localConfig.message&&this.localConfig.message.trim()!==""?this.localConfig.message+=`
`+e:this.localConfig.message=e},formatDateTimeLocal(e){if(!e)return"";let t;if(typeof e=="string"?e.includes("/")?t=new Date(e.replace(/\//g,"-")):t=new Date(e):t=new Date(e),isNaN(t.getTime()))return"";const i=t.getFullYear(),m=String(t.getMonth()+1).padStart(2,"0"),o=String(t.getDate()).padStart(2,"0"),v=String(t.getHours()).padStart(2,"0"),n=String(t.getMinutes()).padStart(2,"0");return`${i}-${m}-${o}T${v}:${n}`},formatDisplayDateTime(e){if(!e)return"";const t=new Date(e);if(isNaN(t.getTime()))return e;const i=t.getFullYear(),m=String(t.getMonth()+1).padStart(2,"0"),o=String(t.getDate()).padStart(2,"0"),v=String(t.getHours()).padStart(2,"0"),n=String(t.getMinutes()).padStart(2,"0");return`${i}/${m}/${o} ${v}:${n}`},parseDateTime(e){return e?typeof e=="string"?e.includes("/")?new Date(e.replace(/\//g,"-")):new Date(e):new Date(e):new Date},formatTimeOnly(e){if(!e)return"00:00";const t=new Date(e);if(isNaN(t.getTime()))return"00:00";const i=String(t.getHours()).padStart(2,"0"),m=String(t.getMinutes()).padStart(2,"0");return`${i}:${m}`},updateStartDateTime(e){const t=this.localConfig.examInfos[e];if(!t.startDate||!t.startTime)return;const i=new Date(t.startDate),[m,o]=t.startTime.split(":");i.setHours(parseInt(m),parseInt(o),0,0),t.start=this.formatDateTimeLocal(i),t.startFormatted=this.formatDisplayDateTime(i)},updateEndDateTime(e){const t=this.localConfig.examInfos[e];if(!t.endDate||!t.endTime)return;const i=new Date(t.endDate),[m,o]=t.endTime.split(":");i.setHours(parseInt(m),parseInt(o),0,0),t.end=this.formatDateTimeLocal(i),t.endFormatted=this.formatDisplayDateTime(i)},async openConfig(){try{const e=await ue.getKeyCloudUrl(`es_${this.configId}`,{autoMigrate:!0,autoConfig:!0});if(e.success&&e.url){const t=`https://es.zerocat.dev/exam/?configUrl=${encodeURIComponent(e.url)}`;window.open(t,"_blank"),this.success="配置已在新窗口中打开",this.$emit("opened",{configId:this.configId,url:e.url})}else throw new Error(e.error||"获取云端地址失败")}catch(e){this.error="打开配置失败: "+e.message,this.$emit("error","打开配置失败: "+e.message)}},confirmDelete(){this.deleteDialog=!0},async deleteConfig(){this.deleting=!0;try{const i=(await ue.loadData("es_list")||[]).filter(o=>o.id!==this.configId);if(!await ue.saveData("es_list",i))throw new Error("更新云端列表失败");this.deleteDialog=!1,this.$emit("deleted",{success:!0,message:"配置删除成功",configId:this.configId})}catch(e){console.error("删除配置失败:",e),this.$emit("deleted",{success:!1,message:"删除失败: "+e.message})}finally{this.deleting=!1}}}},_t={class:"d-flex align-center"},Tt={class:"d-flex align-center"},St={key:4,class:"d-flex justify-space-between align-center mb-4"},Mt={class:"d-flex align-center gap-2"},Nt={key:5},It={class:"mb-8"},Pt={class:"text-h3 font-weight-bold",style:{"line-height":"1.2"}},Et={class:"text-subtitle-1 text-grey",style:{"white-space":"pre-wrap","line-height":"1.8"}},Ut={key:0,class:"mb-8"},Ft={class:"d-flex align-center"},At={class:""},Bt={class:"mb-3"},Ht={class:"d-flex align-center mb-1"},zt={class:"text-h6 font-weight-medium text-success"},Lt={class:"d-flex align-center mb-1"},Rt={class:"text-h6 font-weight-medium text-error"},Jt={key:1,class:"text-center py-12"},Ot={class:"json-preview"},jt={key:6},$t={class:"text-caption text-medium-emphasis ml-2"},Kt={class:"w-100"},qt={key:1,class:"text-center py-8"};function Yt(e,t,i,m,o,v){return C(),z("div",null,[o.error?(C(),P(Ce,{key:0,border:"start",class:"mb-4 mt-3 mx-2",closable:"",type:"error",variant:"tonal","onClick:close":t[0]||(t[0]=n=>o.error="")},{default:a(()=>[g("div",_t,[l(_,{class:"mr-2"},{default:a(()=>[...t[9]||(t[9]=[f("mdi-alert-circle",-1)])]),_:1}),f(" "+A(o.error),1)])]),_:1})):F("",!0),o.success?(C(),P(Ce,{key:1,border:"start",class:"mb-4 mt-3 mx-2",closable:"",type:"success",variant:"tonal","onClick:close":t[1]||(t[1]=n=>o.success="")},{default:a(()=>[g("div",Tt,[l(_,{class:"mr-2"},{default:a(()=>[...t[10]||(t[10]=[f("mdi-check-circle",-1)])]),_:1}),f(" "+A(o.success),1)])]),_:1})):F("",!0),v.hasValidationErrors&&!o.loading?(C(),P(Ce,{key:2,border:"start",class:"mb-4 mt-3 mx-2",type:"warning",variant:"tonal"},{default:a(()=>[t[12]||(t[12]=g("div",{class:"d-flex align-center"},[g("span",{class:"font-weight-bold"},"配置验证失败,请检查以下问题:")],-1)),l(Fe,{class:"bg-transparent",density:"compact"},{default:a(()=>[(C(!0),z(he,null,ye(v.validationErrors,(n,c)=>(C(),P(Ae,{key:c,class:"px-0 py-0"},{prepend:a(()=>[l(_,{color:"warning",size:"small"},{default:a(()=>[...t[11]||(t[11]=[f("mdi-circle-small",-1)])]),_:1})]),default:a(()=>[l(it,{class:"text-body-2"},{default:a(()=>[f(A(n),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):F("",!0),o.loading?(C(),P(K,{key:3,class:"my-4",outlined:""},{default:a(()=>[l(Q,null,{default:a(()=>[l(ft,{class:"mx-auto",type:"article"})]),_:1})]),_:1})):F("",!0),o.loading?F("",!0):(C(),z("div",St,[g("div",Mt,[l(D,{disabled:!v.isValidConfig,class:"mr-2 text-none",color:"success","prepend-icon":"mdi-open-in-new",variant:"elevated",onClick:v.openConfig},{default:a(()=>[...t[13]||(t[13]=[f(" 打开 ExamSchedule ",-1)])]),_:1},8,["disabled","onClick"]),v.isValidConfig?F("",!0):(C(),P(vt,{key:0,activator:"parent",location:"bottom"},{default:a(()=>[...t[14]||(t[14]=[g("span",null,"请先完善配置信息后再打开",-1)])]),_:1}))]),l(rt,{modelValue:o.isEditMode,"onUpdate:modelValue":t[2]||(t[2]=n=>o.isEditMode=n),color:"primary",divided:"",variant:"outlined"},{default:a(()=>[l(D,{class:"text-error","prepend-icon":"mdi-delete",onClick:v.confirmDelete},{default:a(()=>[...t[15]||(t[15]=[f(" 删除配置 ",-1)])]),_:1},8,["onClick"]),l(D,{value:!1,"prepend-icon":"mdi-eye"},{default:a(()=>[...t[16]||(t[16]=[f(" 预览",-1)])]),_:1}),l(D,{value:!0,"prepend-icon":"mdi-pencil"},{default:a(()=>[...t[17]||(t[17]=[f(" 编辑",-1)])]),_:1})]),_:1},8,["modelValue"])])),!o.loading&&!o.isEditMode?(C(),z("div",Nt,[g("div",It,[g("div",Pt,A(o.localConfig.examName||"未设置考试名称"),1),g("div",Et,A(o.localConfig.message||"未设置考试提示"),1),o.localConfig.room?(C(),P(Be,{key:0,class:"px-4 py-2",size:"large"},{default:a(()=>[l(_,{start:""},{default:a(()=>[...t[18]||(t[18]=[f("mdi-home",-1)])]),_:1}),f(" 考场:"+A(o.localConfig.room),1)]),_:1})):F("",!0)]),o.localConfig.examInfos&&o.localConfig.examInfos.length>0?(C(),z("div",Ut,[l(me,null,{default:a(()=>[(C(!0),z(he,null,ye(o.localConfig.examInfos,(n,c)=>(C(),P(L,{key:c,cols:"12",lg:"4",md:"6"},{default:a(()=>[l(K,{class:"h-100",hover:"",variant:"tonal"},{default:a(()=>[l(le,{class:"bg-primary-lighten-5 pa-4"},{default:a(()=>[g("div",Ft,[l(_,{class:"mr-2"},{default:a(()=>[...t[19]||(t[19]=[f("mdi-book-open-page-variant",-1)])]),_:1}),g("span",At,A(n.name||"未设置科目"),1)])]),_:2},1024),l(Q,{class:"pa-4"},{default:a(()=>[g("div",Bt,[g("div",Ht,[l(_,{class:"mr-2",color:"success",size:"small"},{default:a(()=>[...t[20]||(t[20]=[f("mdi-clock-start ",-1)])]),_:1}),t[21]||(t[21]=g("span",{class:"text-body-2 text-grey-darken-1"},"开始时间",-1))]),g("div",zt,A(n.startFormatted||n.start||"未设置"),1)]),g("div",null,[g("div",Lt,[l(_,{class:"mr-2",color:"error",size:"small"},{default:a(()=>[...t[22]||(t[22]=[f("mdi-clock-end ",-1)])]),_:1}),t[23]||(t[23]=g("span",{class:"text-body-2 text-grey-darken-1"},"结束时间",-1))]),g("div",Rt,A(n.endFormatted||n.end||"未设置"),1)])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})])):(C(),z("div",Jt,[l(_,{class:"mb-4",color:"grey-lighten-2",size:"80"},{default:a(()=>[...t[24]||(t[24]=[f(" mdi-calendar-blank ",-1)])]),_:1}),t[27]||(t[27]=g("div",{class:"text-h5 text-grey-darken-1 mb-2"},"暂无考试科目安排",-1)),t[28]||(t[28]=g("div",{class:"text-body-1 text-grey mb-4"},' 点击上方"添加科目"按钮开始配置考试时间表 ',-1)),l(D,{color:"primary",variant:"outlined",onClick:v.quickEdit},{default:a(()=>[l(_,{start:""},{default:a(()=>[...t[25]||(t[25]=[f("mdi-plus",-1)])]),_:1}),t[26]||(t[26]=f(" 立即添加 ",-1))]),_:1},8,["onClick"])])),l(K,{border:"",class:"mb-4",elevation:"2"},{default:a(()=>[l(le,{class:"d-flex align-center text-white cursor-pointer",onClick:t[3]||(t[3]=n=>o.showJsonPreview=!o.showJsonPreview)},{default:a(()=>[l(_,{class:"mr-2"},{default:a(()=>[...t[29]||(t[29]=[f("mdi-code-json",-1)])]),_:1}),t[31]||(t[31]=f(" JSON配置预览 ",-1)),l(de),l(D,{color:"white","prepend-icon":"mdi-content-copy",size:"small",variant:"outlined",onClick:st(v.copyToClipboard,["stop"])},{default:a(()=>[...t[30]||(t[30]=[f(" 复制 ",-1)])]),_:1},8,["onClick"]),l(D,{icon:o.showJsonPreview?"mdi-chevron-up":"mdi-chevron-down",class:"ml-2",color:"white",size:"small",variant:"text"},null,8,["icon"])]),_:1}),l(ut,null,{default:a(()=>[dt(l(Q,{class:"pa-4"},{default:a(()=>[l(K,{class:"pa-4",variant:"tonal"},{default:a(()=>[g("pre",Ot,[g("code",null,A(v.formattedJson),1)])]),_:1})]),_:1},512),[[mt,o.showJsonPreview]])]),_:1})]),_:1})])):F("",!0),!o.loading&&o.isEditMode?(C(),z("div",jt,[l(K,{border:"",class:"mb-4",elevation:"1"},{default:a(()=>[l(le,{class:"d-flex align-center"},{default:a(()=>[l(_,{class:"mr-2"},{default:a(()=>[...t[32]||(t[32]=[f("mdi-information",-1)])]),_:1}),t[33]||(t[33]=f(" 基本信息 ",-1))]),_:1}),l(Q,{class:"pa-4"},{default:a(()=>[l(me,null,{default:a(()=>[l(L,{cols:"12",md:"6"},{default:a(()=>[l(ie,{modelValue:o.localConfig.examName,"onUpdate:modelValue":t[4]||(t[4]=n=>o.localConfig.examName=n),rules:[n=>!!n||"考试名称不能为空"],label:"考试名称","prepend-inner-icon":"mdi-calendar-text",required:"",variant:"outlined"},null,8,["modelValue","rules"])]),_:1}),l(L,{cols:"12",md:"6"},{default:a(()=>[l(ie,{modelValue:o.localConfig.room,"onUpdate:modelValue":t[5]||(t[5]=n=>o.localConfig.room=n),label:"考场号标准ES尚不支持此配置","prepend-inner-icon":"mdi-home",variant:"outlined"},null,8,["modelValue"])]),_:1})]),_:1}),l(ht,{modelValue:o.localConfig.message,"onUpdate:modelValue":t[6]||(t[6]=n=>o.localConfig.message=n),label:"考试提示",placeholder:"输入考试相关的提示信息...","prepend-inner-icon":"mdi-message-text",rows:"3",variant:"outlined"},null,8,["modelValue"]),!o.localConfig.message||o.localConfig.message.trim()===""?(C(),P(gt,{key:0,class:"mt-2",column:""},{default:a(()=>[(C(!0),z(he,null,ye(o.defaultExamTips,(n,c)=>(C(),P(Be,{key:c,class:"ma-1",color:"primary",size:"small",variant:"outlined",onClick:r=>v.selectDefaultTip(n)},{default:a(()=>[l(_,{size:"small",start:""},{default:a(()=>[...t[34]||(t[34]=[f("mdi-plus",-1)])]),_:1}),f(" "+A(n),1)]),_:2},1032,["onClick"]))),128))]),_:1})):F("",!0),g("div",$t,[l(_,{class:"mr-1",size:"small"},{default:a(()=>[...t[35]||(t[35]=[f("mdi-lightbulb-outline",-1)])]),_:1}),t[36]||(t[36]=f(" 点击上方选项快速添加常用考试提示 ",-1))])]),_:1})]),_:1}),l(K,{border:"",class:"mb-4",elevation:"1"},{default:a(()=>[l(le,{class:"d-flex align-center"},{default:a(()=>[l(_,{class:"mr-2"},{default:a(()=>[...t[37]||(t[37]=[f("mdi-format-list-bulleted",-1)])]),_:1}),t[39]||(t[39]=f(" 考试科目安排 ",-1)),l(de),l(D,{color:"primary","prepend-icon":"mdi-plus",size:"small",onClick:v.addExamInfo},{default:a(()=>[...t[38]||(t[38]=[f(" 添加科目 ",-1)])]),_:1},8,["onClick"])]),_:1}),l(Q,{class:"pa-0"},{default:a(()=>[o.localConfig.examInfos&&o.localConfig.examInfos.length>0?(C(),P(Fe,{key:0},{default:a(()=>[(C(!0),z(he,null,ye(o.localConfig.examInfos,(n,c)=>(C(),P(Ae,{key:c,class:"border-b pa-4"},{default:a(()=>[g("div",Kt,[l(me,null,{default:a(()=>[l(L,{cols:"12",md:"4"},{default:a(()=>[l(ie,{modelValue:n.name,"onUpdate:modelValue":r=>n.name=r,rules:[r=>!!r||"科目名称不能为空"],density:"comfortable",label:"科目名称","prepend-inner-icon":"mdi-book",variant:"outlined"},null,8,["modelValue","onUpdate:modelValue","rules"])]),_:2},1024),l(L,{cols:"12",md:"3"},{default:a(()=>[l(He,{modelValue:n.startDateMenu,"onUpdate:modelValue":r=>n.startDateMenu=r,"close-on-content-click":!1,"min-width":"auto","offset-y":"",transition:"scale-transition"},{activator:a(({props:r})=>[l(ie,se({modelValue:n.startFormatted,"onUpdate:modelValue":k=>n.startFormatted=k,rules:[k=>!!k||"开始时间不能为空"],density:"comfortable",label:"开始时间","prepend-inner-icon":"mdi-clock-start",readonly:""},{ref_for:!0},r,{variant:"outlined"}),null,16,["modelValue","onUpdate:modelValue","rules"])]),default:a(()=>[l(K,{"min-width":"600"},{default:a(()=>[l(le,{class:"text-center py-2"},{default:a(()=>[...t[40]||(t[40]=[f(" 选择开始时间 ",-1)])]),_:1}),l(Q,{class:"pa-0"},{default:a(()=>[l(me,{"no-gutters":""},{default:a(()=>[l(L,{class:"border-e",cols:"6"},{default:a(()=>[l(Le,{modelValue:n.startDate,"onUpdate:modelValue":[r=>n.startDate=r,r=>v.updateStartDateTime(c)],color:"primary",elevation:"0",locale:"zh-cn","show-adjacent-months":""},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),l(L,{cols:"6"},{default:a(()=>[l(je,{modelValue:n.startTime,"onUpdate:modelValue":[r=>n.startTime=r,r=>v.updateStartDateTime(c)],color:"primary",elevation:"0",format:"24hr",scrollable:""},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024)]),_:2},1024),l(be,null,{default:a(()=>[l(de),l(D,{color:"grey",variant:"text",onClick:r=>n.startDateMenu=!1},{default:a(()=>[...t[41]||(t[41]=[f(" 取消 ",-1)])]),_:1},8,["onClick"]),l(D,{color:"primary",variant:"text",onClick:r=>n.startDateMenu=!1},{default:a(()=>[...t[42]||(t[42]=[f(" 确定 ",-1)])]),_:1},8,["onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:2},1024),l(L,{cols:"12",md:"3"},{default:a(()=>[l(He,{modelValue:n.endDateMenu,"onUpdate:modelValue":r=>n.endDateMenu=r,"close-on-content-click":!1,"min-width":"auto","offset-y":"",transition:"scale-transition"},{activator:a(({props:r})=>[l(ie,se({modelValue:n.endFormatted,"onUpdate:modelValue":k=>n.endFormatted=k,rules:[k=>!!k||"结束时间不能为空"],density:"comfortable",label:"结束时间","prepend-inner-icon":"mdi-clock-end",readonly:""},{ref_for:!0},r,{variant:"outlined"}),null,16,["modelValue","onUpdate:modelValue","rules"])]),default:a(()=>[l(K,{"min-width":"600"},{default:a(()=>[l(le,{class:"text-center py-2"},{default:a(()=>[...t[43]||(t[43]=[f(" 选择结束时间 ",-1)])]),_:1}),l(Q,{class:"pa-0"},{default:a(()=>[l(me,{"no-gutters":""},{default:a(()=>[l(L,{class:"border-e",cols:"6"},{default:a(()=>[l(Le,{modelValue:n.endDate,"onUpdate:modelValue":[r=>n.endDate=r,r=>v.updateEndDateTime(c)],color:"primary",elevation:"0",locale:"zh-cn","show-adjacent-months":""},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),l(L,{cols:"6"},{default:a(()=>[l(je,{modelValue:n.endTime,"onUpdate:modelValue":[r=>n.endTime=r,r=>v.updateEndDateTime(c)],color:"primary",elevation:"0",format:"24hr",scrollable:""},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)]),_:2},1024)]),_:2},1024),l(be,null,{default:a(()=>[l(de),l(D,{color:"grey",variant:"text",onClick:r=>n.endDateMenu=!1},{default:a(()=>[...t[44]||(t[44]=[f(" 取消 ",-1)])]),_:1},8,["onClick"]),l(D,{color:"primary",variant:"text",onClick:r=>n.endDateMenu=!1},{default:a(()=>[...t[45]||(t[45]=[f(" 确定 ",-1)])]),_:1},8,["onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1032,["modelValue","onUpdate:modelValue"])]),_:2},1024),l(L,{class:"d-flex align-center",cols:"12",md:"2"},{default:a(()=>[l(D,{color:"error",icon:"mdi-delete",size:"small",variant:"text",onClick:r=>v.removeExamInfo(c)},{default:a(()=>[l(_,null,{default:a(()=>[...t[46]||(t[46]=[f("mdi-delete",-1)])]),_:1})]),_:1},8,["onClick"]),c>0?(C(),P(D,{key:0,color:"primary",icon:"mdi-arrow-up",size:"small",variant:"text",onClick:r=>v.moveExamInfo(c,-1)},{default:a(()=>[l(_,null,{default:a(()=>[...t[47]||(t[47]=[f("mdi-arrow-up",-1)])]),_:1})]),_:1},8,["onClick"])):F("",!0),c<o.localConfig.examInfos.length-1?(C(),P(D,{key:1,color:"primary",icon:"mdi-arrow-down",size:"small",variant:"text",onClick:r=>v.moveExamInfo(c,1)},{default:a(()=>[l(_,null,{default:a(()=>[...t[48]||(t[48]=[f("mdi-arrow-down",-1)])]),_:1})]),_:1},8,["onClick"])):F("",!0)]),_:2},1024)]),_:2},1024)])]),_:2},1024))),128))]),_:1})):(C(),z("div",qt,[l(_,{class:"mb-2",color:"grey-lighten-1",size:"48"},{default:a(()=>[...t[49]||(t[49]=[f(" mdi-book-plus ",-1)])]),_:1}),t[51]||(t[51]=g("p",{class:"text-body-2 text-grey-darken-1 mb-4"},' 暂无考试科目,点击"添加科目"按钮开始添加 ',-1)),l(D,{color:"primary","prepend-icon":"mdi-plus",onClick:v.addExamInfo},{default:a(()=>[...t[50]||(t[50]=[f(" 添加科目 ",-1)])]),_:1},8,["onClick"])]))]),_:1})]),_:1})])):F("",!0),l(ct,{modelValue:o.deleteDialog,"onUpdate:modelValue":t[8]||(t[8]=n=>o.deleteDialog=n),"max-width":"400"},{default:a(()=>[l(K,null,{default:a(()=>[l(le,{class:"d-flex align-center"},{default:a(()=>[l(_,{class:"mr-2",color:"error"},{default:a(()=>[...t[52]||(t[52]=[f("mdi-delete-alert",-1)])]),_:1}),t[53]||(t[53]=f(" 确认删除配置 ",-1))]),_:1}),l(Q,null,{default:a(()=>[t[54]||(t[54]=f(" 确定要删除配置 ",-1)),g("strong",null,A(o.localConfig.examName||`配置 ${i.configId}`),1),t[55]||(t[55]=f(" 吗? ",-1)),t[56]||(t[56]=g("br",null,null,-1)),t[57]||(t[57]=g("small",{class:"text-grey"},"此操作不可撤销,将会删除所有相关数据",-1))]),_:1}),l(be,null,{default:a(()=>[l(de),l(D,{color:"grey",variant:"text",onClick:t[7]||(t[7]=n=>o.deleteDialog=!1)},{default:a(()=>[...t[58]||(t[58]=[f(" 取消 ",-1)])]),_:1}),l(D,{loading:o.deleting,color:"error",variant:"outlined",onClick:v.deleteConfig},{default:a(()=>[...t[59]||(t[59]=[f(" 删除 ",-1)])]),_:1},8,["loading","onClick"])]),_:1})]),_:1})]),_:1},8,["modelValue"])])}const il=ot(Dt,[["render",Yt],["__scopeId","data-v-f5f81ffa"]]);export{il as _};