Files
work-leave-front/dist_verify_tmp/static/js/LeaveSetting-B2vUGo3f.js
T
wanghu 2e36d7a9c8
build / build (push) Successful in 9m55s
commit
2026-10-10 15:58:02 +08:00

2 lines
24 KiB
JavaScript

import{l as fs,p as gs,a as b,f as l,e as t,w as n,j as u,x as V,v as i,s as U,z as ys,D as De,r as d,i as X,o as g,g as r,t as p,F as B,b as Y,n as z,c as Z,d as ee,k as _,_ as bs}from"./index-CdacCJcP.js";import{t as h}from"./leaveTime-ZdUoa0wT.js";import{M as Oe}from"./index-KILmrBM-.js";const ws={class:"page-wrapper"},_s={class:"main-container setting-container"},ks={class:"panel-tip"},Ts={class:"form-section"},Ms={class:"section-head"},xs={class:"section-extra"},Cs={class:"period-row"},Vs={class:"period-row"},hs={class:"form-section"},Ss={class:"form-footer"},Is={class:"type-toolbar fix"},Es={class:"fr type-meta"},Ns={class:"type-grid mt-12"},Ds=["onDragstart","onDragover"],Os={class:"type-head"},Hs=["title"],Us={class:"type-name"},$s=["title","onDblclick"],Rs={class:"type-actions"},Ls=["onClick"],As=["onClick"],Fs=["onClick"],Bs={key:0,class:"empty-tip"},zs={class:"managed-box"},Gs={class:"managed-head"},Ps={class:"managed-head-l"},Ws={class:"managed-title"},js={class:"managed-types"},qs={key:0,class:"managed-empty"},Ks={class:"stat-row"},Js={class:"stat-card"},Qs={class:"sc-icon ic-blue"},Xs={class:"sc-body"},Ys={class:"sc-num"},Zs={class:"stat-card"},el={class:"sc-icon ic-green"},sl={class:"sc-body"},ll={class:"sc-num"},tl={class:"stat-card"},al={class:"sc-icon ic-purple"},nl={class:"sc-body"},ol={class:"sc-num"},il={class:"sc-icon ic-red"},rl={class:"sc-body"},ul={class:"sc-num"},dl={class:"usertime-box"},ml={class:"tree-panel"},cl={class:"panel-side-title"},vl={class:"table-panel"},pl={class:"table-toolbar"},fl={class:"tt-left"},gl={class:"tt-count"},yl={class:"tt-right"},bl={class:"foot-info"},wl={class:"fi-item"},_l={class:"hl-blue"},kl={class:"fi-item"},Tl={class:"hl-orange"},Ml={class:"foot-btns"},xl={class:"fix mt-12 mb-8"},Cl={class:"import-upload"},Vl={key:0,class:"import-errors"},ce=-1,hl=fs({__name:"LeaveSetting",setup(Sl){const ve=u("time"),c=u({forenoon1:"08:00",forenoon2:"12:00",afternoon1:"13:00",afternoon2:"17:00",intervalMinutes:10,minMinutes:0}),se=u(!1),He=_(()=>{const s=o=>{const[v,m]=String(o||"0:0").split(":").map(Number);return(v||0)*60+(m||0)},e=s(c.value.forenoon2)-s(c.value.forenoon1)+s(c.value.afternoon2)-s(c.value.afternoon1);return!isFinite(e)||e<=0?"0":String(Number((e/60).toFixed(2)))});async function Ue(){try{const s=await V.getTimeSet().send();s&&(c.value={...c.value,...s})}catch(s){i.Message.error(s.message||"加载作息时间失败")}}async function $e(){se.value=!0;try{await V.setTimeSet(c.value).send(),i.Message.success("作息时间已保存(影响新提交的时长计算)")}catch(s){i.Message.error(s.message||"保存失败")}finally{se.value=!1}}const S=u([]),G=u(""),le=u(null),P=u("");async function I(){try{S.value=await U.manageList().send()||[]}catch(s){i.Message.error(s.message||"加载请假类型失败")}}async function pe(){const s=G.value.trim();if(!s){i.Message.warning("请输入类型名称");return}try{await U.add(s).send(),i.Message.success("新增成功"),G.value="",I()}catch(e){i.Message.error(e.message||"新增失败")}}function fe(s){le.value=s.SerID,P.value=s.Name}async function ge(s){const e=P.value.trim();if(!e){i.Message.warning("类型名称不得为空");return}try{await U.update(s.SerID,e,s.Enable).send(),i.Message.success("修改成功"),le.value=null,I()}catch(o){i.Message.error(o.message||"修改失败")}}async function Re(s){try{await U.update(s.SerID,s.Name,s.Enable===1?0:1).send(),i.Message.success(s.Enable===1?"已停用":"已启用"),I()}catch(e){i.Message.error(e.message||"操作失败")}}const x=u(null);function Le(s){x.value=s}function Ae(s,e){if(e.preventDefault(),x.value===null||x.value===s)return;const o=S.value,[v]=o.splice(x.value,1);o.splice(s,0,v),x.value=s}async function Fe(){if(x.value!==null){x.value=null;try{await U.sort(S.value.map(s=>s.SerID).join(",")),I()}catch(s){i.Message.error(s.message||"排序保存失败"),I()}}}function Be(s){Oe({title:"删除类型",msg:`确定删除请假类型「${s.Name}」吗?`,info:"已被请假记录引用的类型无法删除",async onOk(){try{await U.remove(s.SerID).send(),i.Message.success("删除成功"),I()}catch(e){i.Message.error(e.message||"删除失败")}}})}const T=u([]),te=u(""),ae=u(!1);function D(s){return s.editTime!==null&&s.editTime!==void 0&&s.editTime!==""}function ze(s){const e=Number(s)||0;return e<=0?"danger":e<8?"warn":"ok"}function Ge(s){return D(s)?h((s.usableHours||0)+(Number(s.editTime)||0)):""}const ne=u([]),ye=u([]),oe=u(new Map),$=u(null);function be(s){const e=[];for(const o of s){if(!(o.type===1||!!o.isParent))continue;const m=new Set,E=N=>N.forEach(M=>{(M.type===2||!M.isParent&&!(M.children&&M.children.length))&&m.add(M.id),M.children&&E(M.children)});o.children&&E(o.children),oe.value.set(o.id,m),e.push({id:o.id,title:o.name,expand:!0,render:N=>N("span",{class:"g-node"},[N("span",{class:"g-name"},o.name),N("span",{class:"g-count"},String(m.size))]),children:be(o.children||[])})}return e}async function Pe(){try{ye.value=await ys.getSchoolAll().send()||[],oe.value=new Map;const s=be(ye.value);ne.value=[{id:ce,title:"全部教师",expand:!0,selected:!0,render:e=>e("span",{class:"g-node is-root"},[e("span",{class:"g-name"},"全部教师"),e("span",{class:"g-count"},String(T.value.length))]),children:s}],$.value=ce}catch(s){i.Message.error(s.message||"加载教师组树失败")}}function We(s){s.length&&($.value=s[0].id)}const W=_(()=>{if(!$.value||$.value===ce)return T.value;const s=oe.value.get($.value);return s?T.value.filter(e=>s.has(e.userId)):T.value}),we=_(()=>W.value.reduce((s,e)=>s+(e.usableHours||0),0)),j=_(()=>W.value.length),_e=_(()=>h(we.value)),je=_(()=>j.value?h(we.value/j.value):"0"),ke=_(()=>W.value.filter(s=>(s.usableHours||0)<=0).length),Te=_(()=>T.value.filter(D)),O=_(()=>Te.value.length),ie=_(()=>h(Te.value.reduce((s,e)=>s+(Number(e.editTime)||0),0)));async function H(){ae.value=!0;try{const s=await De.userTimeList({keyword:te.value||void 0}).send()||[];T.value=s.map(o=>({...o,editTime:null,editRemark:""}));const e=ne.value[0];e&&e.render&&(e.render=o=>o("span",{class:"g-node is-root"},[o("span",{class:"g-name"},"全部教师"),o("span",{class:"g-count"},String(T.value.length))]))}catch(s){i.Message.error(s.message||"加载教师时长失败")}finally{ae.value=!1}}const re=u(!1);async function qe(){const s=T.value.filter(D).map(e=>({userId:e.userId,editHours:e.editTime,remark:(e.editRemark||"").trim()}));if(!s.length){i.Message.warning("请先填写需要新加的时长");return}re.value=!0;try{await De.adjust(s).send(),i.Message.success(`设置成功!共调整 ${s.length} 位教师`),await H()}catch(e){i.Message.error(e.message||"提交失败")}finally{re.value=!1}}function ue(s,e){const o=Number(s.editTime)||0,v=Math.round((o+e)*100)/100;if(Math.abs(v)<.001){s.editTime=null;return}if((s.usableHours||0)+v<0){i.Message.warning(`「${s.userName||"该教师"}」剩余仅 ${h(s.usableHours||0)} 小时,不能再扣减`);return}s.editTime=v}function Me(){T.value.forEach(s=>{s.editTime=null,s.editRemark=""})}function Ke(s){s.editTime=null,s.editRemark=""}function Je({row:s}){return D(s)?"row-edited":""}const Qe=[{title:"序号",type:"index",width:60,align:"center"},{title:"教师",key:"userName",minWidth:120,align:"left",render:(s,e)=>{const o=e.row.userName||"未命名",v=o.charAt(0);return s("div",{class:"u-cell"},[s("span",{class:"u-avatar"},v),s("span",{class:"u-name"},[s("span",{class:"u-name-main"},o),e.row.remark?s("span",{class:"u-remark"},e.row.remark):null])])}},{title:"剩余时长",key:"usableHours",width:150,align:"left",render:(s,e)=>{const o=e.row.usableHours||0,v=ze(o);return s("div",{class:"h-cell lv-"+v},[s("span",{class:"h-num"},[h(o),s("i",{},"小时")]),s("span",{class:"h-day"},`≈ ${h(o/8)} 天`)])}},{title:"本次新加(小时)",width:230,align:"center",render:(s,e)=>s("div",{class:"edit-cell"},[s("InputNumber",{props:{value:e.row.editTime,max:9999,precision:2,activeChange:!1,placeholder:"可填负数"},class:"edit-hours-input",on:{"on-change":o=>{e.row.editTime=o??null}}}),s("div",{class:"quick-btns"},[s("button",{class:"q-btn",title:"+1 小时",onClick:()=>ue(e.row,1)},"+1"),s("button",{class:"q-btn",title:"+4 小时(半天)",onClick:()=>ue(e.row,4)},"+4"),s("button",{class:"q-btn danger",title:"-1 小时",onClick:()=>ue(e.row,-1)},"-1")])])},{title:"调整后",width:130,align:"center",render:(s,e)=>{if(!D(e.row))return s("span",{class:"pf-empty"},"—");const o=Number(e.row.editTime)||0;return s("div",{class:"pf-cell"},[s("span",{class:"pf-num"},Ge(e.row)),s("span",{class:o>=0?"pf-delta up":"pf-delta down"},(o>=0?"+":"")+h(o))])}},{title:"情况备注",minWidth:180,align:"center",render:(s,e)=>s("Input",{props:{type:"textarea",rows:1,maxlength:50,value:e.row.editRemark,placeholder:"如:补课补时"},on:{"on-blur":o=>{e.row.editRemark=o.target.value}}})},{title:"操作",width:70,align:"center",fixed:"right",render:(s,e)=>D(e.row)?s("a",{class:"act-link reset",onClick:()=>Ke(e.row)},"撤销"):s("span",{class:"pf-empty"},"—")}],xe=u(!1);async function Xe(){xe.value=!0;try{f.value.timeManagedTypes=C.value.join(","),f.value.timeLimitEnabled=C.value.length?1:0,await V.setOption({...f.value}).send(),i.Message.success("已保存")}catch(s){i.Message.error(s.message||"保存失败")}finally{xe.value=!1}}const q=u(!1),Ye=(X.isMock?"":X.serviceHost)+"/api/leave/time/Import",Ze=(X.isMock?"":X.serviceHost)+"/api/leave/time/ImportTemplate",K=u([]);function es(){K.value=[],q.value=!0}function ss(s){if(s.code!==0){i.Message.error(s.msg||"导入失败");return}const e=s.data||{};e.success?(i.Message.success("导入成功!"),q.value=!1,H()):(K.value=e.errors||[],i.Message.error(e.message||"导入失败!"))}function ls(){i.Message.error("不支持的上传类型!仅支持 xls / xlsx 格式")}const Ce=u([]),R=u(!1),w=u({name:"",beginTime:"08:00",endTime:"08:45"});async function de(){try{Ce.value=await V.sectionList().send()||[]}catch(s){i.Message.error(s.message||"加载节次失败")}}function Ve(s){w.value=s?{...s}:{name:"",beginTime:"08:00",endTime:"08:45"},R.value=!0}async function ts(){if(!w.value.name.trim()){i.Message.warning("请输入节次名称");return}try{await V.sectionSave(w.value).send(),i.Message.success("保存成功"),R.value=!1,de()}catch(s){i.Message.error(s.message||"保存失败")}}function as(s){Oe({title:"删除节次",msg:`确定删除「${s.name}」吗?`,async onOk(){try{await V.sectionDelete(s.id).send(),i.Message.success("删除成功"),de()}catch(e){i.Message.error(e.message||"删除失败")}}})}const f=u({reasonMust:1,showExplain:1,timeLimitEnabled:0,timeManagedTypes:"",enableCourse:0,allowExchange:0,calcWay:1}),me=u(!1),C=u([]);async function ns(){try{const s=await V.getOption().send();s&&(f.value={...f.value,...s},C.value=(s.timeManagedTypes||"").split(",").filter(Boolean))}catch(s){i.Message.error(s.message||"加载其他设置失败")}}async function os(){me.value=!0;try{f.value.timeManagedTypes=C.value.join(","),await V.setOption(f.value).send(),i.Message.success("设置已保存")}catch(s){i.Message.error(s.message||"保存失败")}finally{me.value=!1}}const he=_(()=>S.value.filter(s=>s.Enable===1)),is=[{title:"序号",type:"index",width:70,align:"center"},{title:"节次名称",key:"name",minWidth:140,align:"left"},{title:"开始时间",key:"beginTime",width:130,align:"center"},{title:"结束时间",key:"endTime",width:130,align:"center"},{title:"操作",width:160,align:"center",render:(s,e)=>[s("a",{style:"color:#2d8cf0;margin-right:12px;",onClick:()=>Ve(e.row)},"编辑"),s("a",{style:"color:#ed4014;",onClick:()=>as(e.row)},"删除")]}];return gs(()=>{Ue(),I(),H(),de(),ns(),Pe()}),(s,e)=>{const o=d("Icon"),v=d("TimePicker"),m=d("FormItem"),E=d("Form"),N=d("Option"),M=d("Select"),rs=d("InputNumber"),y=d("Button"),L=d("Card"),A=d("TabPane"),J=d("Input"),Se=d("Tag"),us=d("Checkbox"),ds=d("CheckboxGroup"),ms=d("Tree"),Ie=d("Table"),Ee=d("Radio"),cs=d("RadioGroup"),Q=d("i-switch"),vs=d("Tabs"),ps=d("Upload"),Ne=d("Modal");return g(),b("div",ws,[l("div",_s,[t(vs,{modelValue:ve.value,"onUpdate:modelValue":e[16]||(e[16]=a=>ve.value=a),class:"sett-tabs"},{default:n(()=>[t(A,{label:"作息时间",name:"time"},{default:n(()=>[t(L,{bordered:!1,"dis-hover":"",class:"panel-card"},{default:n(()=>[l("div",ks,[t(o,{type:"ios-information-circle-outline"}),e[23]||(e[23]=l("span",null,"学校作息用于计算请假时长:同日扣除午休,跨天按整天 8 小时折算。修改后仅影响新提交的申请。",-1))]),l("div",Ts,[l("div",Ms,[e[26]||(e[26]=l("span",{class:"section-title"},"上下班时段",-1)),l("span",xs,[e[24]||(e[24]=r("每日工作时长 ",-1)),l("b",null,p(He.value),1),e[25]||(e[25]=r(" 小时",-1))])]),t(E,{"label-width":96,class:"section-form"},{default:n(()=>[t(m,{label:"上午"},{default:n(()=>[l("div",Cs,[t(v,{modelValue:c.value.forenoon1,"onUpdate:modelValue":e[0]||(e[0]=a=>c.value.forenoon1=a),format:"HH:mm",placeholder:"08:00",style:{width:"150px"}},null,8,["modelValue"]),e[27]||(e[27]=l("span",{class:"period-sep"},"至",-1)),t(v,{modelValue:c.value.forenoon2,"onUpdate:modelValue":e[1]||(e[1]=a=>c.value.forenoon2=a),format:"HH:mm",placeholder:"12:00",style:{width:"150px"}},null,8,["modelValue"])])]),_:1}),t(m,{label:"下午"},{default:n(()=>[l("div",Vs,[t(v,{modelValue:c.value.afternoon1,"onUpdate:modelValue":e[2]||(e[2]=a=>c.value.afternoon1=a),format:"HH:mm",placeholder:"13:00",style:{width:"150px"}},null,8,["modelValue"]),e[28]||(e[28]=l("span",{class:"period-sep"},"至",-1)),t(v,{modelValue:c.value.afternoon2,"onUpdate:modelValue":e[3]||(e[3]=a=>c.value.afternoon2=a),format:"HH:mm",placeholder:"17:00",style:{width:"150px"}},null,8,["modelValue"])])]),_:1})]),_:1})]),l("div",hs,[e[32]||(e[32]=l("div",{class:"section-head"},[l("span",{class:"section-title"},"请假规则")],-1)),t(E,{"label-width":96,class:"section-form"},{default:n(()=>[t(m,{label:"最短请假间隔"},{default:n(()=>[t(M,{modelValue:c.value.intervalMinutes,"onUpdate:modelValue":e[4]||(e[4]=a=>c.value.intervalMinutes=a),style:{width:"150px"}},{default:n(()=>[(g(),b(B,null,Y([5,10,15,20,30,60],a=>t(N,{key:a,value:a},{default:n(()=>[r(p(a)+" 分钟",1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"]),e[29]||(e[29]=l("span",{class:"form-tip"},"起止时间按该间隔取整",-1))]),_:1}),t(m,{label:"最少请假时间"},{default:n(()=>[t(rs,{modelValue:c.value.minMinutes,"onUpdate:modelValue":e[5]||(e[5]=a=>c.value.minMinutes=a),min:0,step:10,precision:0,style:{width:"150px"}},null,8,["modelValue"]),e[30]||(e[30]=l("span",{class:"unit-text"},"分钟",-1)),e[31]||(e[31]=l("div",{class:"form-tip"},"0 = 不限制;低于该时长的申请将被拒绝",-1))]),_:1})]),_:1})]),l("div",Ss,[t(y,{type:"primary",loading:se.value,icon:"md-checkmark",onClick:$e},{default:n(()=>[...e[33]||(e[33]=[r("保存设置",-1)])]),_:1},8,["loading"])])]),_:1})]),_:1}),t(A,{label:"请假类型",name:"type"},{default:n(()=>[t(L,{bordered:!1,"dis-hover":"",class:"panel-card"},{default:n(()=>[l("div",Is,[t(J,{modelValue:G.value,"onUpdate:modelValue":e[6]||(e[6]=a=>G.value=a),placeholder:"输入名称,回车快速新增",style:{width:"240px"},class:"fl",clearable:"",onOnEnter:pe},null,8,["modelValue"]),t(y,{type:"primary",class:"fl ml-8",icon:"md-add",onClick:pe},{default:n(()=>[...e[34]||(e[34]=[r("新增类型",-1)])]),_:1}),l("span",Es,[e[35]||(e[35]=r(" 共 ",-1)),l("b",null,p(S.value.length),1),e[36]||(e[36]=r(" 个类型 · 拖动卡片排序 / 双击名称编辑 ",-1))])]),l("div",Ns,[(g(!0),b(B,null,Y(S.value,(a,F)=>(g(),b("div",{key:a.SerID,class:z(["type-card",{disabled:a.Enable===0,dragging:x.value===F}]),draggable:"true",onDragstart:k=>Le(F),onDragover:k=>Ae(F,k),onDragend:Fe},[l("div",Os,[l("span",{class:z(["status-dot",a.Enable===1?"on":"off"]),title:a.Enable===1?"启用中":"已停用"},null,10,Hs),l("div",Us,[le.value===a.SerID?(g(),Z(J,{key:0,modelValue:P.value,"onUpdate:modelValue":e[7]||(e[7]=k=>P.value=k),size:"small",onOnEnter:k=>ge(a),onOnBlur:k=>ge(a)},null,8,["modelValue","onOnEnter","onOnBlur"])):(g(),b("span",{key:1,title:a.Name,onDblclick:k=>fe(a)},p(a.Name),41,$s))]),t(o,{class:"drag-handle",type:"ios-reorder"})]),l("div",Rs,[l("a",{class:"act-link act-toggle",onClick:k=>Re(a)},p(a.Enable===1?"停用":"启用"),9,Ls),l("a",{class:"act-link",onClick:k=>fe(a)},"编辑",8,As),l("a",{class:"act-link act-del",onClick:k=>Be(a)},"删除",8,Fs)])],42,Ds))),128)),S.value.length?ee("",!0):(g(),b("div",Bs,[t(o,{type:"ios-apps-outline"}),e[37]||(e[37]=l("p",null,"暂无请假类型,请在上方输入名称新增",-1))]))])]),_:1})]),_:1}),t(A,{label:"教师时长",name:"usertime"},{default:n(()=>[t(L,{bordered:!1,"dis-hover":"",class:"panel-card"},{default:n(()=>[l("div",zs,[l("div",Gs,[l("div",Ps,[t(o,{type:"ios-shield-checkmark-outline",class:"mh-icon"}),l("div",null,[l("div",Ws,[e[39]||(e[39]=r(" 需扣减时长的请假类型 ",-1)),C.value.length?(g(),Z(Se,{key:0,color:"success",size:"small"},{default:n(()=>[r(" 已启用 "+p(C.value.length)+" 项 ",1)]),_:1})):(g(),Z(Se,{key:1,color:"warning",size:"small"},{default:n(()=>[...e[38]||(e[38]=[r("未启用",-1)])]),_:1}))]),e[40]||(e[40]=l("div",{class:"managed-tip"}," 勾选后,该类型请假审批通过将自动扣减教师时长;取消勾选即停止扣减。变更即时保存。 ",-1))])]),t(y,{type:"primary",ghost:"",icon:"ios-cloud-upload-outline",onClick:es},{default:n(()=>[...e[41]||(e[41]=[r("批量导入",-1)])]),_:1})]),l("div",js,[t(ds,{modelValue:C.value,"onUpdate:modelValue":e[8]||(e[8]=a=>C.value=a),onOnChange:Xe},{default:n(()=>[(g(!0),b(B,null,Y(he.value,a=>(g(),Z(us,{key:a.CodeID,label:a.CodeID},{default:n(()=>[r(p(a.Name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"]),he.value.length?ee("",!0):(g(),b("div",qs,"暂无可选的请假类型,请先到「请假类型」新增并启用"))])]),l("div",Ks,[l("div",Js,[l("div",Qs,[t(o,{type:"ios-people-outline"})]),l("div",Xs,[l("div",Ys,[r(p(j.value),1),e[42]||(e[42]=l("i",null,"人",-1))]),e[43]||(e[43]=l("div",{class:"sc-label"},"当前范围教师",-1))])]),l("div",Zs,[l("div",el,[t(o,{type:"ios-time-outline"})]),l("div",sl,[l("div",ll,[r(p(_e.value),1),e[44]||(e[44]=l("i",null,"小时",-1))]),e[45]||(e[45]=l("div",{class:"sc-label"},"剩余时长合计",-1))])]),l("div",tl,[l("div",al,[t(o,{type:"ios-stats-outline"})]),l("div",nl,[l("div",ol,[r(p(je.value),1),e[46]||(e[46]=l("i",null,"小时",-1))]),e[47]||(e[47]=l("div",{class:"sc-label"},"人均可用时长",-1))])]),l("div",{class:z(["stat-card",{"is-warn":ke.value>0}])},[l("div",il,[t(o,{type:"ios-warning-outline"})]),l("div",rl,[l("div",ul,[r(p(ke.value),1),e[48]||(e[48]=l("i",null,"人",-1))]),e[49]||(e[49]=l("div",{class:"sc-label"},"时长已用尽",-1))])],2)]),l("div",dl,[l("div",ml,[l("div",cl,[t(o,{type:"ios-git-branch-outline"}),e[50]||(e[50]=l("span",null,"教师分组",-1)),e[51]||(e[51]=l("em",null,"点击筛选",-1))]),t(ms,{data:ne.value,onOnSelectChange:We,class:"grp-tree"},null,8,["data"])]),l("div",vl,[l("div",pl,[l("div",fl,[t(J,{class:"tt-search",search:"",suffix:"ios-search",modelValue:te.value,"onUpdate:modelValue":e[9]||(e[9]=a=>te.value=a),placeholder:"搜索教师姓名 / 备注",onOnSearch:H,onOnClear:H},null,8,["modelValue"]),l("span",gl,[e[52]||(e[52]=r("共 ",-1)),l("b",null,p(j.value),1),e[53]||(e[53]=r(" 位教师",-1))])]),l("div",yl,[t(y,{size:"small",icon:"md-refresh",onClick:H},{default:n(()=>[...e[54]||(e[54]=[r("刷新",-1)])]),_:1}),t(y,{size:"small",icon:"ios-undo-outline",disabled:!O.value,onClick:Me},{default:n(()=>[...e[55]||(e[55]=[r(" 清空改动 ",-1)])]),_:1},8,["disabled"])])]),t(Ie,{columns:Qe,data:W.value,loading:ae.value,"row-class-name":Je,"no-data-text":"暂无教师时长数据"},null,8,["data","loading"]),l("div",{class:z(["usertime-footer",{active:O.value>0}])},[l("div",bl,[l("span",wl,[e[56]||(e[56]=r(" 范围剩余合计",-1)),l("b",_l,p(_e.value),1),e[57]||(e[57]=r(" 小时 ",-1))]),e[62]||(e[62]=l("span",{class:"fi-sep"},null,-1)),l("span",kl,[e[60]||(e[60]=r(" 待提交",-1)),l("b",Tl,p(O.value),1),e[61]||(e[61]=r(" 人 ",-1)),O.value>0?(g(),b(B,{key:0},[e[58]||(e[58]=r(" ,净增减 ",-1)),l("b",{class:z(Number(ie.value)>=0?"hl-green":"hl-red")},p(Number(ie.value)>0?"+":"")+p(ie.value),3),e[59]||(e[59]=r(" 小时 ",-1))],64)):ee("",!0)])]),l("div",Ml,[t(y,{disabled:!O.value,onClick:Me},{default:n(()=>[...e[63]||(e[63]=[r("取消",-1)])]),_:1},8,["disabled"]),t(y,{type:"primary",icon:"md-checkmark",disabled:!O.value,loading:re.value,onClick:qe},{default:n(()=>[...e[64]||(e[64]=[r(" 提交本次调整 ",-1)])]),_:1},8,["disabled","loading"])])],2)])])]),_:1})]),_:1}),t(A,{label:"节次",name:"section"},{default:n(()=>[t(L,{bordered:!1,"dis-hover":"",class:"panel-card"},{default:n(()=>[e[66]||(e[66]=l("div",{class:"panel-tip"},"节次供「指派代课」等课务场景使用(P7 规划);可按学校作息维护。",-1)),l("div",xl,[t(y,{type:"primary",class:"fl",icon:"md-add",onClick:e[10]||(e[10]=a=>Ve())},{default:n(()=>[...e[65]||(e[65]=[r("新增节次",-1)])]),_:1})]),t(Ie,{columns:is,data:Ce.value,"no-data-text":"暂无节次"},null,8,["data"])]),_:1})]),_:1}),t(A,{label:"其他设置",name:"option"},{default:n(()=>[t(L,{bordered:!1,"dis-hover":"",class:"panel-card"},{default:n(()=>[t(E,{"label-width":150},{default:n(()=>[t(m,{label:"请假计算"},{default:n(()=>[t(cs,{value:f.value.calcWay===0?0:1,onOnChange:e[11]||(e[11]=a=>f.value.calcWay=a===0?0:1)},{default:n(()=>[t(Ee,{label:1},{default:n(()=>[...e[67]||(e[67]=[r("按小时",-1)])]),_:1}),t(Ee,{label:0},{default:n(()=>[...e[68]||(e[68]=[r("按天",-1)])]),_:1})]),_:1},8,["value"]),e[69]||(e[69]=l("span",{class:"ml-8 switch-tip"},"按天:申请页以「半天/半天以上 + 上午/下午」选择,时长以天计",-1))]),_:1}),t(m,{label:"请假事由必填"},{default:n(()=>[t(Q,{value:f.value.reasonMust===1,onOnChange:e[12]||(e[12]=a=>f.value.reasonMust=a?1:0)},null,8,["value"]),e[70]||(e[70]=l("span",{class:"ml-8 switch-tip"},"关闭后事由可选填",-1))]),_:1}),t(m,{label:"显示请假说明"},{default:n(()=>[t(Q,{value:f.value.showExplain===1,onOnChange:e[13]||(e[13]=a=>f.value.showExplain=a?1:0)},null,8,["value"]),e[71]||(e[71]=l("span",{class:"ml-8 switch-tip"},"申请页顶部是否展示作息时间说明",-1))]),_:1}),t(m,{label:"启用课务安排"},{default:n(()=>[t(Q,{value:f.value.enableCourse===1,onOnChange:e[14]||(e[14]=a=>f.value.enableCourse=a?1:0)},null,8,["value"]),e[72]||(e[72]=l("span",{class:"ml-8 switch-tip"},"启用后申请页出现「课务安排」三选一(无/自行/教务)",-1))]),_:1}),t(m,{label:"允许换课"},{default:n(()=>[t(Q,{value:f.value.allowExchange===1,onOnChange:e[15]||(e[15]=a=>f.value.allowExchange=a?1:0)},null,8,["value"])]),_:1}),t(m,null,{default:n(()=>[t(y,{type:"primary",loading:me.value,onClick:os},{default:n(()=>[...e[73]||(e[73]=[r("保存设置",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(Ne,{modelValue:q.value,"onUpdate:modelValue":e[17]||(e[17]=a=>q.value=a),title:"教师时长导入","mask-closable":!1,width:520},{default:n(()=>[l("a",{href:Ze},"点击链接下载[教师时长导入模板.xlsx]"),l("div",Cl,[t(ps,{action:Ye,accept:".xls,.xlsx",format:["xls","xlsx"],"on-success":ss,"on-format-error":ls,"show-upload-list":""},{default:n(()=>[t(y,null,{default:n(()=>[t(o,{type:"ios-cloud-upload-outline"}),e[74]||(e[74]=r(" 选择要上传的文件",-1))]),_:1})]),_:1})]),K.value.length?(g(),b("div",Vl,[(g(!0),b(B,null,Y(K.value,(a,F)=>(g(),b("div",{key:F,class:"import-error-line"}," 第 "+p(a.row)+" 行:"+p(a.msg),1))),128))])):ee("",!0)]),_:1},8,["modelValue"]),t(Ne,{modelValue:R.value,"onUpdate:modelValue":e[22]||(e[22]=a=>R.value=a),title:w.value.id?"编辑节次":"新增节次",width:460},{footer:n(()=>[t(y,{onClick:e[21]||(e[21]=a=>R.value=!1)},{default:n(()=>[...e[75]||(e[75]=[r("取消",-1)])]),_:1}),t(y,{type:"primary",onClick:ts},{default:n(()=>[...e[76]||(e[76]=[r("保存",-1)])]),_:1})]),default:n(()=>[t(E,{"label-width":90,model:w.value},{default:n(()=>[t(m,{label:"节次名称",prop:"name",rules:[{required:!0,message:"请输入节次名称",trigger:"blur"}]},{default:n(()=>[t(J,{modelValue:w.value.name,"onUpdate:modelValue":e[18]||(e[18]=a=>w.value.name=a),placeholder:"如:第一节",maxlength:20},null,8,["modelValue"])]),_:1}),t(m,{label:"开始时间"},{default:n(()=>[t(v,{modelValue:w.value.beginTime,"onUpdate:modelValue":e[19]||(e[19]=a=>w.value.beginTime=a),format:"HH:mm",style:{width:"160px"}},null,8,["modelValue"])]),_:1}),t(m,{label:"结束时间"},{default:n(()=>[t(v,{modelValue:w.value.endTime,"onUpdate:modelValue":e[20]||(e[20]=a=>w.value.endTime=a),format:"HH:mm",style:{width:"160px"}},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])])}}}),Dl=bs(hl,[["__scopeId","data-v-5d5d8212"]]);export{Dl as default};