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

2 lines
40 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{l as Zs,j as m,p as el,h as cs,a as v,f as l,e as n,w as o,s as I,v as r,q as Q,z as sl,E as ps,G as Fe,r as y,u as ll,i as we,o as p,g as i,t as c,F as N,b as A,n as F,c as U,d as V,k as w,_ as tl}from"./index-CcLhrCfR.js";import{t as $}from"./leaveTime-ZdUoa0wT.js";import{M as ze}from"./index-DwmRpw_g.js";const nl={class:"page-wrapper"},al={class:"main-container setting-container"},ol={class:"panel-tip"},il={class:"form-section"},ul={class:"section-head"},rl={class:"section-extra"},dl={class:"period-row"},cl={class:"period-row"},pl={class:"form-section"},ml={class:"form-footer"},vl={class:"type-toolbar fix"},fl={class:"fr type-meta"},gl={class:"type-grid mt-12"},bl=["onDragstart","onDragover"],yl={class:"type-head"},wl=["title"],kl={class:"type-name"},_l=["title","onDblclick"],Ml={class:"type-actions"},Tl=["onClick"],Vl=["onClick"],xl=["onClick"],Cl={key:0,class:"empty-tip"},hl={class:"managed-box"},Sl={class:"managed-head"},El={class:"managed-head-l"},Nl={class:"managed-title"},Gl={class:"managed-types"},Il={key:0,class:"managed-empty"},Ul={class:"stat-row"},$l={class:"stat-card"},Dl={class:"sc-icon ic-blue"},Hl={class:"sc-body"},Ol={class:"sc-num"},Fl={class:"stat-card"},zl={class:"sc-icon ic-green"},Rl={class:"sc-body"},Bl={class:"sc-num"},Ll={class:"stat-card"},Al={class:"sc-icon ic-purple"},Wl={class:"sc-body"},Pl={class:"sc-num"},Kl={class:"sc-icon ic-red"},ql={class:"sc-body"},jl={class:"sc-num"},Jl={class:"usertime-box"},Ql={class:"tree-panel"},Xl={class:"panel-side-title"},Yl={class:"table-panel"},Zl={class:"table-toolbar"},et={class:"tt-left"},st={class:"tt-count"},lt={class:"tt-right"},tt={class:"foot-info"},nt={class:"fi-item"},at={class:"hl-blue"},ot={class:"fi-item"},it={class:"hl-orange"},ut={class:"foot-btns"},rt={class:"panel-tip"},dt={class:"sec-toolbar"},ct={class:"sec-stat"},pt={class:"stat-chip"},mt={key:0,class:"stat-chip am"},vt={key:1,class:"stat-chip pm"},ft={key:2,class:"stat-chip night"},gt={key:3,class:"stat-chip total"},bt={class:"panel-tip"},yt={key:0,class:"opt-skeleton"},wt={class:"opt-group"},kt={class:"opt-row"},_t={class:"opt-ctrl"},Mt={class:"opt-group"},Tt={class:"opt-row"},Vt={class:"opt-ctrl"},xt={class:"opt-row"},Ct={class:"opt-ctrl"},ht={class:"opt-group"},St={class:"opt-group-head"},Et={class:"opt-row"},Nt={class:"opt-ctrl"},Gt={class:"opt-row"},It={class:"opt-ctrl"},Ut={class:"form-footer opt-footer"},$t={class:"opt-foot-tip"},Dt={class:"opt-foot-btns"},Ht={class:"panel-tip"},Ot={class:"flow-block"},Ft={class:"fbc-main"},zt={class:"fbc-name"},Rt={class:"fbc-ver"},Bt={key:0,class:"fc-badge is-dead"},Lt={class:"fbc-sub"},At={class:"fbc-guid"},Wt={key:0,class:"fbc-nodes"},Pt={class:"fbc-ops"},Kt={class:"fbc-empty"},qt={class:"fbc-ops"},jt={class:"flow-block"},Jt={class:"fb-head"},Qt={class:"fb-desc"},Xt={class:"fb-head-ops"},Yt={class:"flow-block"},Zt={class:"import-upload"},en={key:0,class:"import-errors"},sn={class:"period-row sec-period-row"},ln={key:0,class:"sec-dur-hint"},tn={key:0,class:"opt-ver"},nn={key:0,class:"flow-pick-preview"},an={class:"fpp-guid"},on={key:0,class:"fpp-nodes"},Re=-1,un=Zs({__name:"LeaveSetting",setup(rn){const ke=ll()||{},Be=()=>{var s,e;return String(((s=ke.query)==null?void 0:s.tab)||((e=ke.meta)==null?void 0:e.tab)||"time")},ue=m(Be()),k=m({forenoon1:"08:00",forenoon2:"12:00",afternoon1:"13:00",afternoon2:"17:00",intervalMinutes:10,minMinutes:0}),_e=m(!1),ms=w(()=>{const s=t=>{const[u,d]=String(t||"0:0").split(":").map(Number);return(u||0)*60+(d||0)},e=s(k.value.forenoon2)-s(k.value.forenoon1)+s(k.value.afternoon2)-s(k.value.afternoon1);return!isFinite(e)||e<=0?"0":String(Number((e/60).toFixed(2)))});async function vs(){try{const s=await I.getTimeSet().send();s&&(k.value={...k.value,...s})}catch(s){r.Message.error(s.message||"加载作息时间失败")}}async function fs(){_e.value=!0;try{await I.setTimeSet(k.value).send(),r.Message.success("作息时间已保存(影响新提交的时长计算)")}catch(s){r.Message.error(s.message||"保存失败")}finally{_e.value=!1}}const z=m([]),re=m(""),Me=m(null),de=m("");async function R(){try{z.value=await Q.manageList().send()||[]}catch(s){r.Message.error(s.message||"加载请假类型失败")}}async function Le(){const s=re.value.trim();if(!s){r.Message.warning("请输入类型名称");return}try{await Q.add(s).send(),r.Message.success("新增成功"),re.value="",R()}catch(e){r.Message.error(e.message||"新增失败")}}function Ae(s){Me.value=s.SerID,de.value=s.Name}async function We(s){const e=de.value.trim();if(!e){r.Message.warning("类型名称不得为空");return}try{await Q.update(s.SerID,e,s.Enable).send(),r.Message.success("修改成功"),Me.value=null,R()}catch(t){r.Message.error(t.message||"修改失败")}}async function gs(s){try{await Q.update(s.SerID,s.Name,s.Enable===1?0:1).send(),r.Message.success(s.Enable===1?"已停用":"已启用"),R()}catch(e){r.Message.error(e.message||"操作失败")}}const D=m(null);function bs(s){D.value=s}function ys(s,e){if(e.preventDefault(),D.value===null||D.value===s)return;const t=z.value,[u]=t.splice(D.value,1);t.splice(s,0,u),D.value=s}async function ws(){if(D.value!==null){D.value=null;try{await Q.sort(z.value.map(s=>s.SerID).join(",")),R()}catch(s){r.Message.error(s.message||"排序保存失败"),R()}}}function ks(s){ze({title:"删除类型",msg:`确定删除请假类型「${s.Name}」吗?`,info:"已被请假记录引用的类型无法删除",async onOk(){try{await Q.remove(s.SerID).send(),r.Message.success("删除成功"),R()}catch(e){r.Message.error(e.message||"删除失败")}}})}const S=m([]),Te=m(""),Ve=m(!1);function W(s){return s.editTime!==null&&s.editTime!==void 0&&s.editTime!==""}function _s(s){const e=Number(s)||0;return e<=0?"danger":e<8?"warn":"ok"}function Ms(s){return W(s)?$((s.usableHours||0)+(Number(s.editTime)||0)):""}const xe=m([]),Pe=m([]),Ce=m(new Map),X=m(null);function Ts(s){if(!s.length)return[];const e=s.some(f=>f.pid!==void 0&&f.pid!==null);if(s.some(f=>f.children&&f.children.length)||!e)return s;const u=new Map;s.forEach(f=>{const M=f.pid===void 0||f.pid===null?0:f.pid;u.has(M)||u.set(M,[]),u.get(M).push(f)});const d=[],g=(f,M)=>{(u.get(f)||[]).forEach(oe=>{const b=[];g(oe.id,b),b.length&&(oe.children=b),M.push(oe)})};return g(0,d),d.length?d:s}function Ke(s){const e=[];for(const t of s){if(!(t.type===1||!!t.isParent))continue;const d=new Set,g=f=>f.forEach(M=>{(M.type===2||!M.isParent&&!(M.children&&M.children.length))&&d.add(M.id),M.children&&g(M.children)});t.children&&g(t.children),Ce.value.set(t.id,d),e.push({id:t.id,title:t.name,expand:!0,render:f=>f("span",{class:"g-node"},[f("span",{class:"g-name"},t.name),f("span",{class:"g-count"},String(d.size))]),children:Ke(t.children||[])})}return e}async function Vs(){try{Pe.value=Ts(await sl.getSchoolAll().send()||[]),Ce.value=new Map;const s=Ke(Pe.value);xe.value=[{id:Re,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(S.value.length))]),children:s}],X.value=Re}catch(s){r.Message.error(s.message||"加载教师组树失败")}}function xs(s){s.length&&(X.value=s[0].id)}const he=m(0);function P(){he.value+=1}const B=w(()=>{if(he.value,!X.value||X.value===Re)return S.value;const s=Ce.value.get(X.value);return s?S.value.filter(e=>s.has(e.userId)):S.value}),qe=w(()=>B.value.reduce((s,e)=>s+(e.usableHours||0),0)),ce=w(()=>B.value.length),je=w(()=>$(qe.value)),Cs=w(()=>ce.value?$(qe.value/ce.value):"0"),Je=w(()=>B.value.filter(s=>(s.usableHours||0)<=0).length),Qe=w(()=>(he.value,S.value.filter(W))),K=w(()=>Qe.value.length),Se=w(()=>$(Qe.value.reduce((s,e)=>s+(Number(e.editTime)||0),0)));async function q(){Ve.value=!0;try{const s=await ps.userTimeList({keyword:Te.value||void 0}).send()||[];S.value=s.map(t=>({...t,editTime:null,editRemark:""}));const e=xe.value[0];e&&e.render&&(e.render=t=>t("span",{class:"g-node is-root"},[t("span",{class:"g-name"},"全部教师"),t("span",{class:"g-count"},String(S.value.length))]))}catch(s){r.Message.error(s.message||"加载教师时长失败")}finally{Ve.value=!1}}const Ee=m(!1);async function hs(){const s=S.value.filter(W).map(e=>({userId:e.userId,editHours:e.editTime,remark:(e.editRemark||"").trim()}));if(!s.length){r.Message.warning("请先填写需要新加的时长");return}Ee.value=!0;try{await ps.adjust(s).send(),r.Message.success(`设置成功!共调整 ${s.length} 位教师`),await q()}catch(e){r.Message.error(e.message||"提交失败")}finally{Ee.value=!1}}function pe(s){return S.value.find(e=>e.userId===s.userId)||s}function Ne(s,e){const t=pe(s),u=Number(t.editTime)||0,d=Math.round((u+e)*100)/100;if(Math.abs(d)<.001){t.editTime=null,P();return}if((t.usableHours||0)+d<0){r.Message.warning(`「${t.userName||"该教师"}」剩余仅 ${$(t.usableHours||0)} 小时,不能再扣减`);return}t.editTime=d,P()}function Xe(){S.value.forEach(s=>{s.editTime=null,s.editRemark=""}),P()}function Ss(s){const e=pe(s);e.editTime=null,e.editRemark="",P()}function Es(s,e){const t=B.value[e]||s;return W(t)?"row-edited":""}const Ns=[{title:"序号",type:"index",width:60,align:"center"},{title:"教师",key:"userName",minWidth:120,align:"left",render:(s,e)=>{const t=e.row.userName||"未命名",u=t.charAt(0);return s("div",{class:"u-cell"},[s("span",{class:"u-avatar"},u),s("span",{class:"u-name"},[s("span",{class:"u-name-main"},t),e.row.remark?s("span",{class:"u-remark"},e.row.remark):null])])}},{title:"剩余时长",key:"usableHours",width:150,align:"left",render:(s,e)=>{const t=e.row.usableHours||0,u=_s(t);return s("div",{class:"h-cell lv-"+u},[s("span",{class:"h-num"},[$(t),s("i",{},"小时")]),s("span",{class:"h-day"},`≈ ${$(t/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":t=>{const u=pe(e.row),d=t??null;if(d!==null&&(u.usableHours||0)+Number(d)<0){r.Message.warning(`「${u.userName||"该教师"}」剩余仅 ${$(u.usableHours||0)} 小时,不能再扣减`),P();return}u.editTime=d,P()}}}),s("div",{class:"quick-btns"},[s("button",{class:"q-btn",title:"+1 小时",onClick:()=>Ne(e.row,1)},"+1"),s("button",{class:"q-btn",title:"+4 小时(半天)",onClick:()=>Ne(e.row,4)},"+4"),s("button",{class:"q-btn danger",title:"-1 小时",onClick:()=>Ne(e.row,-1)},"-1")])])},{title:"调整后",width:130,align:"center",render:(s,e)=>{const t=B.value[e.index]||e.row;if(!W(t))return s("span",{class:"pf-empty"},"—");const u=Number(t.editTime)||0;return s("div",{class:"pf-cell"},[s("span",{class:"pf-num"},Ms(t)),s("span",{class:u>=0?"pf-delta up":"pf-delta down"},(u>=0?"+":"")+$(u))])}},{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":t=>{pe(e.row).editRemark=t.target.value}}})},{title:"操作",width:70,align:"center",render:(s,e)=>{const t=B.value[e.index]||e.row;return W(t)?s("a",{class:"act-link reset",onClick:()=>Ss(t)},"撤销"):s("span",{class:"pf-empty"},"—")}}],me=m(!1),Gs=(we.isMock?"":we.serviceHost)+"/api/leave/time/Import",Is=(we.isMock?"":we.serviceHost)+"/api/leave/time/ImportTemplate",ve=m([]);function Us(){ve.value=[],me.value=!0}function $s(s){if(s.code!==0){r.Message.error(s.msg||"导入失败");return}const e=s.data||{};e.success?(r.Message.success("导入成功!"),me.value=!1,q()):(ve.value=e.errors||[],r.Message.error(e.message||"导入失败!"))}function Ds(){r.Message.error("不支持的上传类型!仅支持 xls / xlsx 格式")}const Ge=m([]),Y=m(!1),T=m({name:"",beginTime:"08:00",endTime:"08:45"});async function Ie(){try{Ge.value=await I.sectionList().send()||[]}catch(s){r.Message.error(s.message||"加载节次失败")}}function Ye(s){T.value=s?{...s}:{name:"",beginTime:"08:00",endTime:"08:45"},Y.value=!0}async function Hs(){if(!T.value.name.trim()){r.Message.warning("请输入节次名称");return}try{await I.sectionSave(T.value).send(),r.Message.success("保存成功"),Y.value=!1,Ie()}catch(s){r.Message.error(s.message||"保存失败")}}function Os(s){ze({title:"删除节次",msg:`确定删除「${s.name}」吗?`,async onOk(){try{await I.sectionDelete(s.id).send(),r.Message.success("删除成功"),Ie()}catch(e){r.Message.error(e.message||"删除失败")}}})}const x=m({reasonMust:1,showExplain:1,timeLimitEnabled:0,timeManagedTypes:"",enableCourse:0,allowExchange:0,calcWay:1}),Z=m(!1),Ze=m(!1),H=m(!1),Ue=m(!1),O=m([]);function es(s){const e=(u,d)=>{const g=Number(u);return Number.isFinite(g)?g===0?0:1:d},t=typeof(s==null?void 0:s.timeManagedTypes)=="string"?s.timeManagedTypes:"";return{reasonMust:e(s==null?void 0:s.reasonMust,1),showExplain:e(s==null?void 0:s.showExplain,1),enableCourse:e(s==null?void 0:s.enableCourse,0),allowExchange:e(s==null?void 0:s.allowExchange,0),timeLimitEnabled:e(s==null?void 0:s.timeLimitEnabled,0),calcWay:Number(s==null?void 0:s.calcWay)===0?0:1,timeManagedTypes:t}}const ss=w({get:()=>x.value.calcWay===0?0:1,set:s=>x.value.calcWay=Number(s)===0?0:1}),ls=w({get:()=>x.value.reasonMust===1,set:s=>x.value.reasonMust=s?1:0}),ts=w({get:()=>x.value.showExplain===1,set:s=>x.value.showExplain=s?1:0}),ns=w({get:()=>x.value.enableCourse===1,set:s=>x.value.enableCourse=s?1:0}),as=w({get:()=>x.value.allowExchange===1,set:s=>x.value.allowExchange=s?1:0});function os(s){const e=es(s);x.value=e,O.value=e.timeManagedTypes?e.timeManagedTypes.split(",").filter(Boolean):[],H.value=!0}async function ee(s=!1){Ue.value=!0,s||(H.value=!1);try{const e=await I.getOption().send();os(e)}catch(e){H.value=!0,r.Message.error(e.message||"加载其他设置失败")}finally{Ue.value=!1}}async function Fs(){if(!Z.value){if(!H.value){r.Message.warning("设置尚未加载完成,请稍后再试");return}Z.value=!0;try{const s={...es({...x.value,timeManagedTypes:O.value.join(",")})};await I.setOption(s).send();const e=await I.getOption().send();os(e),r.Message.success("设置已保存")}catch(s){r.Message.error(s.message||"保存失败"),ee(!0)}finally{Z.value=!1}}}async function zs(){const s=O.value.join(",");x.value.timeManagedTypes=s,x.value.timeLimitEnabled=O.value.length?1:0;try{await I.setOption({timeManagedTypes:s,timeLimitEnabled:x.value.timeLimitEnabled}).send(),r.Message.success("已保存")}catch(e){r.Message.error(e.message||"保存失败"),ee(!0)}}async function Rs(){Ze.value=!0;try{await zs()}finally{Ze.value=!1}}const is=w(()=>z.value.filter(s=>s.Enable===1));function se(s){const[e,t]=String(s||"0:0").split(":").map(Number);return(e||0)*60+(t||0)}function $e(s){const e=se(s.endTime)-se(s.beginTime);return!s.beginTime||!s.endTime||e<=0?"":e>=60?`${Number((e/60).toFixed(1))} 小时`:`${e} 分钟`}function L(s){const e=se(s.beginTime);return s.beginTime?e<12*60?"上午":e<18*60?"下午":"晚上":"—"}const Bs=[{title:"序号",type:"index",width:70,align:"center"},{title:"节次名称",key:"name",minWidth:150,align:"left",render:(s,e)=>{const t=e.row;return s("span",{class:"sec-name",attrs:{title:t.name}},t.name)}},{title:"时段",width:100,align:"center",render:(s,e)=>{const t=e.row,u=L(t);return s("span",{class:`sec-tag ${u==="上午"?"am":u==="下午"?"pm":u==="晚上"?"night":"none"}`},u)}},{title:"上课时间",width:210,align:"center",render:(s,e)=>{const t=e.row;return s("span",{class:"sec-time"},[s("b",{},t.beginTime||"--:--"),s("i",{},"—"),s("b",{},t.endTime||"--:--")])}},{title:"时长",width:110,align:"center",render:(s,e)=>{const t=$e(e.row);return t?s("span",{class:"sec-dur"},t):s("span",{class:"sec-dur muted"},"—")}},{title:"操作",width:150,align:"center",render:(s,e)=>[s("a",{class:"sec-op",onClick:()=>Ye(e.row)},"编辑"),s("span",{class:"sec-split"},"|"),s("a",{class:"sec-op danger",onClick:()=>Os(e.row)},"删除")]}],G=w(()=>{const s=Ge.value||[],e=s.filter(g=>L(g)==="上午").length,t=s.filter(g=>L(g)==="下午").length,u=s.filter(g=>L(g)==="晚上").length,d=s.reduce((g,f)=>g+Math.max(se(f.endTime)-se(f.beginTime),0),0);return{count:s.length,am:e,pm:t,night:u,totalText:d>=60?`${Number((d/60).toFixed(1))} 小时`:`${d} 分钟`}}),_=m({bizType:"leave",centerReachable:!0,flows:[],binds:[],leaveTypes:[]}),le=m(!1),te=m(!1),De=m(!1),h=m({scope:0,scopeKey:"",flowGuid:""}),C=w(()=>_.value.binds.find(s=>s.scope===0)||null),Ls=w(()=>{const s=new Map;return _.value.binds.forEach(e=>{e.scope===1&&e.scopeKey&&s.set(e.scopeKey,e)}),s}),As=w(()=>(_.value.leaveTypes||[]).map(s=>({key:s.key,name:s.name,bind:Ls.value.get(s.key)||null}))),Ws=[{title:"流程名称",key:"name",minWidth:200,render:(s,e)=>s("div",{class:"fc-name"},[s("span",{class:"fc-title"},e.row.name||e.row.flowGuid),e.row.defaultBind?s("em",{class:"fc-badge is-default"},"默认"):null,e.row.typeNames&&e.row.typeNames.length?s("em",{class:"fc-badge is-type"},`${e.row.typeNames.length} 个类型`):null])},{title:"流程标识(flowGuid)",key:"flowGuid",minWidth:180,render:(s,e)=>s("span",{class:"fc-guid"},e.row.flowGuid)},{title:"版本",key:"version",width:90,align:"center",render:(s,e)=>s("span",{class:"fc-version"},e.row.version==null?"-":`v${e.row.version}`)},{title:"节点摘要",key:"nodeSummary",minWidth:200,render:(s,e)=>s("span",{class:"fc-nodes"},e.row.nodeSummary||"—")},{title:"操作",key:"ops",width:210,align:"center",render:(s,e)=>s("div",{class:"fc-ops"},[s("span",{class:"fc-op"+(e.row.defaultBind?" is-on":""),onClick:()=>ae(0,"",e.row.flowGuid)},e.row.defaultBind?"已是默认":"设为默认"),s("span",{class:"fc-op",onClick:()=>ae(1,"",e.row.flowGuid)},"按类型绑定")])}],Ps=[{title:"请假类型",key:"name",minWidth:160},{title:"当前流程",key:"flow",minWidth:240,render:(s,e)=>{const t=e.row.bind;return t?s("div",{class:"fc-name"},[s("span",{class:"fc-title"},t.flowName||t.flowGuid),t.existsInCenter===!1?s("em",{class:"fc-badge is-dead"},"已下线"):null]):s("span",{class:"fc-mute"},"走全校默认流程")}},{title:"操作",key:"ops",width:200,align:"center",render:(s,e)=>s("div",{class:"fc-ops"},[s("span",{class:"fc-op",onClick:()=>ae(1,e.row.key,e.row.bind?e.row.bind.flowGuid:"")},e.row.bind?"更换":"指定流程"),e.row.bind?s("span",{class:"fc-op is-danger",onClick:()=>rs(1,e.row.key,e.row.name)},"解除"):null])}],us=w(()=>{const s=_.value.flows.find(e=>e.flowGuid===h.value.flowGuid);return s&&s.nodeSummary||""});async function ne(){le.value=!0;try{const s=await Fe.list().send();s&&(_.value=s)}catch(s){r.Message.error(s.message||"加载流程列表失败")}finally{le.value=!1}}function ae(s,e,t){const u=_.value.leaveTypes[0],d=_.value.flows[0];h.value={scope:s,scopeKey:e||(u?u.key:""),flowGuid:t||(C.value?C.value.flowGuid:"")||(d?d.flowGuid:"")},te.value=!0}async function Ks(){const s=h.value;if(!s.flowGuid){r.Message.warning("请选择要绑定的流程");return}if(s.scope===1&&!s.scopeKey){r.Message.warning("请选择请假类型");return}const e=_.value.flows.find(t=>t.flowGuid===s.flowGuid);De.value=!0;try{await Fe.bind({scope:s.scope,scopeKey:s.scope===1?s.scopeKey:null,flowGuid:s.flowGuid,flowName:e?e.name??null:null,flowVersion:e?e.version??null:null,nodeSummary:e?e.nodeSummary??null:null}).send(),r.Message.success(s.scope===1?"已按请假类型绑定流程":"已设为全校默认流程"),te.value=!1,ne()}catch(t){r.Message.error(t.message||"绑定失败")}finally{De.value=!1}}function rs(s,e,t){ze({title:"解除流程绑定",msg:`确定解除「${t}」的流程绑定吗?`,info:"解除后该场景回落到全校默认流程;默认流程解除后回落到配置值",async onOk(){try{await Fe.unbind(s,e).send(),r.Message.success("已解除绑定"),ne()}catch(u){r.Message.error(u.message||"解除失败")}}})}return el(()=>{vs(),R(),q(),Ie(),ee(),Vs(),ne()}),cs(ue,s=>{s==="option"&&!H.value&&ee(!0),s==="flow"&&ne()}),cs(()=>ke.fullPath,()=>{ue.value=Be()}),(s,e)=>{const t=y("Icon"),u=y("TimePicker"),d=y("FormItem"),g=y("Form"),f=y("Option"),M=y("Select"),oe=y("InputNumber"),b=y("Button"),j=y("Card"),J=y("TabPane"),fe=y("Input"),He=y("Tag"),qs=y("Checkbox"),js=y("CheckboxGroup"),Js=y("Tree"),ge=y("Table"),be=y("Radio"),ds=y("RadioGroup"),ye=y("i-switch"),Qs=y("Alert"),Xs=y("Tabs"),Ys=y("Upload"),Oe=y("Modal");return p(),v("div",nl,[l("div",al,[n(Xs,{modelValue:ue.value,"onUpdate:modelValue":e[20]||(e[20]=a=>ue.value=a),class:"sett-tabs"},{default:o(()=>[n(J,{label:"作息时间",name:"time"},{default:o(()=>[n(j,{bordered:!1,"dis-hover":"",class:"panel-card"},{default:o(()=>[l("div",ol,[n(t,{type:"ios-information-circle-outline"}),e[32]||(e[32]=l("span",null,"学校作息用于计算请假时长:同日扣除午休,跨天按整天 8 小时折算。修改后仅影响新提交的申请。",-1))]),l("div",il,[l("div",ul,[e[35]||(e[35]=l("span",{class:"section-title"},"上下班时段",-1)),l("span",rl,[e[33]||(e[33]=i("每日工作时长 ",-1)),l("b",null,c(ms.value),1),e[34]||(e[34]=i(" 小时",-1))])]),n(g,{"label-width":96,class:"section-form"},{default:o(()=>[n(d,{label:"上午"},{default:o(()=>[l("div",dl,[n(u,{modelValue:k.value.forenoon1,"onUpdate:modelValue":e[0]||(e[0]=a=>k.value.forenoon1=a),format:"HH:mm",placeholder:"08:00",style:{width:"150px"}},null,8,["modelValue"]),e[36]||(e[36]=l("span",{class:"period-sep"},"至",-1)),n(u,{modelValue:k.value.forenoon2,"onUpdate:modelValue":e[1]||(e[1]=a=>k.value.forenoon2=a),format:"HH:mm",placeholder:"12:00",style:{width:"150px"}},null,8,["modelValue"])])]),_:1}),n(d,{label:"下午"},{default:o(()=>[l("div",cl,[n(u,{modelValue:k.value.afternoon1,"onUpdate:modelValue":e[2]||(e[2]=a=>k.value.afternoon1=a),format:"HH:mm",placeholder:"13:00",style:{width:"150px"}},null,8,["modelValue"]),e[37]||(e[37]=l("span",{class:"period-sep"},"至",-1)),n(u,{modelValue:k.value.afternoon2,"onUpdate:modelValue":e[3]||(e[3]=a=>k.value.afternoon2=a),format:"HH:mm",placeholder:"17:00",style:{width:"150px"}},null,8,["modelValue"])])]),_:1})]),_:1})]),l("div",pl,[e[41]||(e[41]=l("div",{class:"section-head"},[l("span",{class:"section-title"},"请假规则")],-1)),n(g,{"label-width":96,class:"section-form"},{default:o(()=>[n(d,{label:"最短请假间隔"},{default:o(()=>[n(M,{modelValue:k.value.intervalMinutes,"onUpdate:modelValue":e[4]||(e[4]=a=>k.value.intervalMinutes=a),style:{width:"150px"}},{default:o(()=>[(p(),v(N,null,A([5,10,15,20,30,60],a=>n(f,{key:a,value:a},{default:o(()=>[i(c(a)+" 分钟",1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"]),e[38]||(e[38]=l("span",{class:"form-tip"},"起止时间按该间隔取整",-1))]),_:1}),n(d,{label:"最少请假时间"},{default:o(()=>[n(oe,{modelValue:k.value.minMinutes,"onUpdate:modelValue":e[5]||(e[5]=a=>k.value.minMinutes=a),min:0,step:10,precision:0,style:{width:"150px"}},null,8,["modelValue"]),e[39]||(e[39]=l("span",{class:"unit-text"},"分钟",-1)),e[40]||(e[40]=l("div",{class:"form-tip"},"0 = 不限制;低于该时长的申请将被拒绝",-1))]),_:1})]),_:1})]),l("div",ml,[n(b,{type:"primary",loading:_e.value,icon:"md-checkmark",onClick:fs},{default:o(()=>[...e[42]||(e[42]=[i("保存设置",-1)])]),_:1},8,["loading"])])]),_:1})]),_:1}),n(J,{label:"请假类型",name:"type"},{default:o(()=>[n(j,{bordered:!1,"dis-hover":"",class:"panel-card"},{default:o(()=>[l("div",vl,[n(fe,{modelValue:re.value,"onUpdate:modelValue":e[6]||(e[6]=a=>re.value=a),placeholder:"输入名称,回车快速新增",style:{width:"240px"},class:"fl",clearable:"",onOnEnter:Le},null,8,["modelValue"]),n(b,{type:"primary",class:"fl ml-8",icon:"md-add",onClick:Le},{default:o(()=>[...e[43]||(e[43]=[i("新增类型",-1)])]),_:1}),l("span",fl,[e[44]||(e[44]=i(" 共 ",-1)),l("b",null,c(z.value.length),1),e[45]||(e[45]=i(" 个类型 · 拖动卡片排序 / 双击名称编辑 ",-1))])]),l("div",gl,[(p(!0),v(N,null,A(z.value,(a,ie)=>(p(),v("div",{key:a.SerID,class:F(["type-card",{disabled:a.Enable===0,dragging:D.value===ie}]),draggable:"true",onDragstart:E=>bs(ie),onDragover:E=>ys(ie,E),onDragend:ws},[l("div",yl,[l("span",{class:F(["status-dot",a.Enable===1?"on":"off"]),title:a.Enable===1?"启用中":"已停用"},null,10,wl),l("div",kl,[Me.value===a.SerID?(p(),U(fe,{key:0,modelValue:de.value,"onUpdate:modelValue":e[7]||(e[7]=E=>de.value=E),size:"small",onOnEnter:E=>We(a),onOnBlur:E=>We(a)},null,8,["modelValue","onOnEnter","onOnBlur"])):(p(),v("span",{key:1,title:a.Name,onDblclick:E=>Ae(a)},c(a.Name),41,_l))]),n(t,{class:"drag-handle",type:"ios-reorder"})]),l("div",Ml,[l("a",{class:"act-link act-toggle",onClick:E=>gs(a)},c(a.Enable===1?"停用":"启用"),9,Tl),l("a",{class:"act-link",onClick:E=>Ae(a)},"编辑",8,Vl),l("a",{class:"act-link act-del",onClick:E=>ks(a)},"删除",8,xl)])],42,bl))),128)),z.value.length?V("",!0):(p(),v("div",Cl,[n(t,{type:"ios-apps-outline"}),e[46]||(e[46]=l("p",null,"暂无请假类型,请在上方输入名称新增",-1))]))])]),_:1})]),_:1}),n(J,{label:"教师时长",name:"usertime"},{default:o(()=>[n(j,{bordered:!1,"dis-hover":"",class:"panel-card"},{default:o(()=>[l("div",hl,[l("div",Sl,[l("div",El,[n(t,{type:"ios-shield-checkmark-outline",class:"mh-icon"}),l("div",null,[l("div",Nl,[e[48]||(e[48]=i(" 需扣减时长的请假类型 ",-1)),O.value.length?(p(),U(He,{key:0,color:"success",class:"mini-tag"},{default:o(()=>[i(" 已启用 "+c(O.value.length)+" 项 ",1)]),_:1})):(p(),U(He,{key:1,color:"warning",class:"mini-tag"},{default:o(()=>[...e[47]||(e[47]=[i("未启用",-1)])]),_:1}))]),e[49]||(e[49]=l("div",{class:"managed-tip"}," 勾选后,该类型请假审批通过将自动扣减教师时长;取消勾选即停止扣减。变更即时保存。 ",-1))])]),n(b,{type:"primary",ghost:"",icon:"ios-cloud-upload-outline",onClick:Us},{default:o(()=>[...e[50]||(e[50]=[i("批量导入",-1)])]),_:1})]),l("div",Gl,[n(js,{modelValue:O.value,"onUpdate:modelValue":e[8]||(e[8]=a=>O.value=a),onOnChange:Rs},{default:o(()=>[(p(!0),v(N,null,A(is.value,a=>(p(),U(qs,{key:a.CodeID,label:a.CodeID},{default:o(()=>[i(c(a.Name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"]),is.value.length?V("",!0):(p(),v("div",Il,"暂无可选的请假类型,请先到「请假类型」新增并启用"))])]),l("div",Ul,[l("div",$l,[l("div",Dl,[n(t,{type:"ios-people-outline"})]),l("div",Hl,[l("div",Ol,[i(c(ce.value),1),e[51]||(e[51]=l("i",null,"人",-1))]),e[52]||(e[52]=l("div",{class:"sc-label"},"当前范围教师",-1))])]),l("div",Fl,[l("div",zl,[n(t,{type:"ios-time-outline"})]),l("div",Rl,[l("div",Bl,[i(c(je.value),1),e[53]||(e[53]=l("i",null,"小时",-1))]),e[54]||(e[54]=l("div",{class:"sc-label"},"剩余时长合计",-1))])]),l("div",Ll,[l("div",Al,[n(t,{type:"ios-stats-outline"})]),l("div",Wl,[l("div",Pl,[i(c(Cs.value),1),e[55]||(e[55]=l("i",null,"小时",-1))]),e[56]||(e[56]=l("div",{class:"sc-label"},"人均可用时长",-1))])]),l("div",{class:F(["stat-card",{"is-warn":Je.value>0}])},[l("div",Kl,[n(t,{type:"ios-warning-outline"})]),l("div",ql,[l("div",jl,[i(c(Je.value),1),e[57]||(e[57]=l("i",null,"人",-1))]),e[58]||(e[58]=l("div",{class:"sc-label"},"时长已用尽",-1))])],2)]),l("div",Jl,[l("div",Ql,[l("div",Xl,[n(t,{type:"ios-git-branch-outline"}),e[59]||(e[59]=l("span",null,"教师分组",-1)),e[60]||(e[60]=l("em",null,"点击筛选",-1))]),n(Js,{data:xe.value,onOnSelectChange:xs,class:"grp-tree"},null,8,["data"])]),l("div",Yl,[l("div",Zl,[l("div",et,[n(fe,{class:"tt-search",search:"",suffix:"ios-search",modelValue:Te.value,"onUpdate:modelValue":e[9]||(e[9]=a=>Te.value=a),placeholder:"搜索教师姓名 / 备注",onOnSearch:q,onOnClear:q},null,8,["modelValue"]),l("span",st,[e[61]||(e[61]=i("共 ",-1)),l("b",null,c(ce.value),1),e[62]||(e[62]=i(" 位教师",-1))])]),l("div",lt,[n(b,{size:"small",icon:"md-refresh",onClick:q},{default:o(()=>[...e[63]||(e[63]=[i("刷新",-1)])]),_:1}),n(b,{size:"small",icon:"ios-undo-outline",disabled:!K.value,onClick:Xe},{default:o(()=>[...e[64]||(e[64]=[i(" 清空改动 ",-1)])]),_:1},8,["disabled"])])]),n(ge,{columns:Ns,data:B.value,loading:Ve.value,"row-class-name":Es,"no-data-text":"暂无教师时长数据"},null,8,["data","loading"]),l("div",{class:F(["usertime-footer",{active:K.value>0}])},[l("div",tt,[l("span",nt,[e[65]||(e[65]=i(" 范围剩余合计",-1)),l("b",at,c(je.value),1),e[66]||(e[66]=i(" 小时 ",-1))]),e[71]||(e[71]=l("span",{class:"fi-sep"},null,-1)),l("span",ot,[e[69]||(e[69]=i(" 待提交",-1)),l("b",it,c(K.value),1),e[70]||(e[70]=i(" 人 ",-1)),K.value>0?(p(),v(N,{key:0},[e[67]||(e[67]=i(" ,净增减 ",-1)),l("b",{class:F(Number(Se.value)>=0?"hl-green":"hl-red")},c(Number(Se.value)>0?"+":"")+c(Se.value),3),e[68]||(e[68]=i(" 小时 ",-1))],64)):V("",!0)])]),l("div",ut,[n(b,{disabled:!K.value,onClick:Xe},{default:o(()=>[...e[72]||(e[72]=[i("取消",-1)])]),_:1},8,["disabled"]),n(b,{type:"primary",icon:"md-checkmark",disabled:!K.value,loading:Ee.value,onClick:hs},{default:o(()=>[...e[73]||(e[73]=[i(" 提交本次调整 ",-1)])]),_:1},8,["disabled","loading"])])],2)])])]),_:1})]),_:1}),n(J,{label:"节次",name:"section"},{default:o(()=>[n(j,{bordered:!1,"dis-hover":"",class:"panel-card"},{default:o(()=>[l("div",rt,[n(t,{type:"ios-information-circle-outline"}),e[74]||(e[74]=l("span",null,"节次供「指派代课」等课务场景使用(P7 规划);可按学校作息维护。课务功能启用后,请假将按节次精确扣减。",-1))]),l("div",dt,[l("div",ct,[l("span",pt,[e[75]||(e[75]=i(" 共 ",-1)),l("b",null,c(G.value.count),1),e[76]||(e[76]=i(" 个节次 ",-1))]),G.value.am?(p(),v("span",mt,"上午 "+c(G.value.am),1)):V("",!0),G.value.pm?(p(),v("span",vt,"下午 "+c(G.value.pm),1)):V("",!0),G.value.night?(p(),v("span",ft,"晚上 "+c(G.value.night),1)):V("",!0),G.value.count?(p(),v("span",gt,"累计课时 "+c(G.value.totalText),1)):V("",!0)]),n(b,{type:"primary",icon:"md-add",onClick:e[10]||(e[10]=a=>Ye())},{default:o(()=>[...e[77]||(e[77]=[i("新增节次",-1)])]),_:1})]),n(ge,{class:"sec-table",columns:Bs,data:Ge.value,"no-data-text":"暂无节次",stripe:""},null,8,["data"])]),_:1})]),_:1}),n(J,{label:"其他设置",name:"option"},{default:o(()=>[n(j,{bordered:!1,"dis-hover":"",class:"panel-card"},{default:o(()=>[l("div",bt,[n(t,{type:"ios-information-circle-outline"}),e[78]||(e[78]=l("span",null,"此处设置全校统一的请假规则,保存后立即对新的请假申请生效(已提交的申请按提交时的规则计算)。",-1))]),Ue.value&&!H.value?(p(),v("div",yt,[(p(),v(N,null,A(5,a=>l("div",{class:"sk-row",key:a},[...e[79]||(e[79]=[l("span",{class:"sk-label"},null,-1),l("span",{class:"sk-ctrl"},null,-1)])])),64))])):(p(),U(g,{key:1,"label-width":0,class:F(["opt-form",{"is-disabled":!H.value}])},{default:o(()=>[l("div",wt,[e[83]||(e[83]=l("div",{class:"opt-group-head"},[l("span",{class:"opt-group-title"},"计算口径"),l("span",{class:"opt-group-desc"},"决定请假时长如何录入与统计")],-1)),l("div",kt,[e[82]||(e[82]=l("div",{class:"opt-label"},[l("span",{class:"opt-label-main"},"请假计算"),l("span",{class:"opt-label-sub"},"按天时,申请页改为「半天 / 半天以上 + 上午 / 下午」选择")],-1)),l("div",_t,[n(ds,{modelValue:ss.value,"onUpdate:modelValue":e[11]||(e[11]=a=>ss.value=a),class:"opt-seg"},{default:o(()=>[n(be,{label:1},{default:o(()=>[...e[80]||(e[80]=[i("按小时",-1)])]),_:1}),n(be,{label:0},{default:o(()=>[...e[81]||(e[81]=[i("按天",-1)])]),_:1})]),_:1},8,["modelValue"])])])]),l("div",Mt,[e[86]||(e[86]=l("div",{class:"opt-group-head"},[l("span",{class:"opt-group-title"},"申请表单"),l("span",{class:"opt-group-desc"},"控制申请页的填写要求与提示")],-1)),l("div",Tt,[e[84]||(e[84]=l("div",{class:"opt-label"},[l("span",{class:"opt-label-main"},"请假事由必填"),l("span",{class:"opt-label-sub"},"关闭后事由可留空,仅审批时可见")],-1)),l("div",Vt,[n(ye,{modelValue:ls.value,"onUpdate:modelValue":e[12]||(e[12]=a=>ls.value=a),size:"large"},null,8,["modelValue"])])]),l("div",xt,[e[85]||(e[85]=l("div",{class:"opt-label"},[l("span",{class:"opt-label-main"},"显示请假说明"),l("span",{class:"opt-label-sub"},"在申请页顶部展示作息时间说明")],-1)),l("div",Ct,[n(ye,{modelValue:ts.value,"onUpdate:modelValue":e[13]||(e[13]=a=>ts.value=a),size:"large"},null,8,["modelValue"])])])]),l("div",ht,[l("div",St,[e[88]||(e[88]=l("span",{class:"opt-group-title"},"课务安排",-1)),n(He,{color:"warning",size:"small"},{default:o(()=>[...e[87]||(e[87]=[i("规划中",-1)])]),_:1}),e[89]||(e[89]=l("span",{class:"opt-group-desc"},"启用后申请页出现课务三选一",-1))]),l("div",Et,[e[90]||(e[90]=l("div",{class:"opt-label"},[l("span",{class:"opt-label-main"},"启用课务安排"),l("span",{class:"opt-label-sub"},"申请页可选择「无 / 自行安排 / 教务安排」")],-1)),l("div",Nt,[n(ye,{modelValue:ns.value,"onUpdate:modelValue":e[14]||(e[14]=a=>ns.value=a),size:"large"},null,8,["modelValue"])])]),l("div",Gt,[e[91]||(e[91]=l("div",{class:"opt-label"},[l("span",{class:"opt-label-main"},"允许换课"),l("span",{class:"opt-label-sub"},"允许教师在请假期间申请调课")],-1)),l("div",It,[n(ye,{modelValue:as.value,"onUpdate:modelValue":e[15]||(e[15]=a=>as.value=a),size:"large"},null,8,["modelValue"])])])]),l("div",Ut,[l("span",$t,[n(t,{type:"ios-information-circle-outline"}),e[92]||(e[92]=i(" 修改后需点击「保存设置」才会生效 ",-1))]),l("div",Dt,[n(b,{onClick:e[16]||(e[16]=a=>ee()),disabled:Z.value},{default:o(()=>[...e[93]||(e[93]=[i("重新加载",-1)])]),_:1},8,["disabled"]),n(b,{type:"primary",icon:"md-checkmark",loading:Z.value,disabled:!H.value,onClick:Fs},{default:o(()=>[...e[94]||(e[94]=[i(" 保存设置 ",-1)])]),_:1},8,["loading","disabled"])])])]),_:1},8,["class"]))]),_:1})]),_:1}),n(J,{label:"流程管理",name:"flow"},{default:o(()=>[n(j,{bordered:!1,"dis-hover":"",class:"panel-card"},{default:o(()=>[l("div",Ht,[n(t,{type:"ios-information-circle-outline"}),l("span",null,[e[95]||(e[95]=i(" 审批流程在「流程中心 → 流程编排」中注册;此处只选择本校使用哪条流程。 业务类型 ",-1)),e[96]||(e[96]=l("b",null,"bizType",-1)),e[97]||(e[97]=i(" 恒为 ",-1)),l("b",null,c(_.value.bizType),1),e[98]||(e[98]=i(",多套审批流程用流程标识(flowGuid)区分。 ",-1))])]),_.value.centerReachable?V("",!0):(p(),U(Qs,{key:0,type:"warning","show-icon":"",class:"flow-alert"},{desc:o(()=>[i(c(_.value.centerError||"无法拉取流程列表")+"。已绑定关系仍可查看和解除,服务恢复后即可重新绑定。 ",1)]),default:o(()=>[e[99]||(e[99]=i(" 流程中心暂不可达 ",-1))]),_:1})),l("div",Ot,[e[104]||(e[104]=l("div",{class:"fb-head"},[l("span",{class:"fb-title"},"全校默认流程"),l("span",{class:"fb-desc"},"未单独指定流程的请假类型,全部走这条流程")],-1)),l("div",{class:F(["fb-current",{"is-empty":!C.value}])},[C.value?(p(),v(N,{key:0},[l("div",Ft,[l("span",zt,c(C.value.flowName||C.value.flowGuid),1),l("span",Rt,"v"+c(C.value.flowVersion==null?"-":C.value.flowVersion),1),C.value.existsInCenter===!1?(p(),v("span",Bt,"流程中心已下线")):V("",!0)]),l("div",Lt,[l("span",At,c(C.value.flowGuid),1),C.value.nodeSummary?(p(),v("span",Wt,c(C.value.nodeSummary),1)):V("",!0)]),l("div",Pt,[n(b,{size:"small",icon:"md-swap",onClick:e[17]||(e[17]=a=>ae(0,"",C.value.flowGuid))},{default:o(()=>[...e[100]||(e[100]=[i(" 更换 ",-1)])]),_:1}),n(b,{size:"small",onClick:e[18]||(e[18]=a=>rs(0,"","全校默认流程"))},{default:o(()=>[...e[101]||(e[101]=[i("解除",-1)])]),_:1})])],64)):(p(),v(N,{key:1},[l("div",Kt,[n(t,{type:"ios-git-network-outline"}),l("span",null,[e[102]||(e[102]=i(" 尚未绑定默认流程,当前回落到配置值 ",-1)),l("b",null,c(_.value.configFlowGuid||"-"),1)])]),l("div",qt,[n(b,{type:"primary",size:"small",icon:"md-link",disabled:!_.value.flows.length,onClick:e[19]||(e[19]=a=>ae(0))},{default:o(()=>[...e[103]||(e[103]=[i(" 绑定默认流程 ",-1)])]),_:1},8,["disabled"])])],64))],2)]),l("div",jt,[l("div",Jt,[e[106]||(e[106]=l("span",{class:"fb-title"},"流程列表",-1)),l("span",Qt,"来自流程中心「流程编排」,共 "+c(_.value.flows.length)+" 条",1),l("div",Xt,[n(b,{size:"small",icon:"md-refresh",loading:le.value,onClick:ne},{default:o(()=>[...e[105]||(e[105]=[i(" 刷新 ",-1)])]),_:1},8,["loading"])])]),n(ge,{columns:Ws,data:_.value.flows,loading:le.value,"no-data-text":"流程中心暂无可用流程",class:"flow-table"},null,8,["data","loading"])]),l("div",Yt,[e[107]||(e[107]=l("div",{class:"fb-head"},[l("span",{class:"fb-title"},"按请假类型指定"),l("span",{class:"fb-desc"},"指定后该类型优先走对应流程;未指定则走全校默认流程")],-1)),n(ge,{columns:Ps,data:As.value,loading:le.value,"no-data-text":"暂无请假类型,请先在「请假类型」中维护",class:"flow-table"},null,8,["data","loading"])])]),_:1})]),_:1})]),_:1},8,["modelValue"]),n(Oe,{modelValue:me.value,"onUpdate:modelValue":e[21]||(e[21]=a=>me.value=a),title:"教师时长导入","mask-closable":!1,width:520},{default:o(()=>[l("a",{href:Is},"点击链接下载[教师时长导入模板.xlsx]"),l("div",Zt,[n(Ys,{action:Gs,accept:".xls,.xlsx",format:["xls","xlsx"],"on-success":$s,"on-format-error":Ds,"show-upload-list":""},{default:o(()=>[n(b,null,{default:o(()=>[n(t,{type:"ios-cloud-upload-outline"}),e[108]||(e[108]=i(" 选择要上传的文件",-1))]),_:1})]),_:1})]),ve.value.length?(p(),v("div",en,[(p(!0),v(N,null,A(ve.value,(a,ie)=>(p(),v("div",{key:ie,class:"import-error-line"}," 第 "+c(a.row)+" 行:"+c(a.msg),1))),128))])):V("",!0)]),_:1},8,["modelValue"]),n(Oe,{modelValue:Y.value,"onUpdate:modelValue":e[26]||(e[26]=a=>Y.value=a),title:T.value.id?"编辑节次":"新增节次",width:520},{footer:o(()=>[n(b,{onClick:e[25]||(e[25]=a=>Y.value=!1)},{default:o(()=>[...e[111]||(e[111]=[i("取消",-1)])]),_:1}),n(b,{type:"primary",onClick:Hs},{default:o(()=>[...e[112]||(e[112]=[i("保存",-1)])]),_:1})]),default:o(()=>[n(g,{"label-width":96,model:T.value},{default:o(()=>[n(d,{label:"节次名称",prop:"name",rules:[{required:!0,message:"请输入节次名称",trigger:"blur"}]},{default:o(()=>[n(fe,{modelValue:T.value.name,"onUpdate:modelValue":e[22]||(e[22]=a=>T.value.name=a),placeholder:"如:第一节",maxlength:20},null,8,["modelValue"])]),_:1}),n(d,{label:"上课时间"},{default:o(()=>[l("div",sn,[n(u,{modelValue:T.value.beginTime,"onUpdate:modelValue":e[23]||(e[23]=a=>T.value.beginTime=a),format:"HH:mm",placeholder:"08:00",class:"sec-time-picker"},null,8,["modelValue"]),e[109]||(e[109]=l("span",{class:"period-sep"},"至",-1)),n(u,{modelValue:T.value.endTime,"onUpdate:modelValue":e[24]||(e[24]=a=>T.value.endTime=a),format:"HH:mm",placeholder:"08:45",class:"sec-time-picker"},null,8,["modelValue"]),$e(T.value)?(p(),v("span",ln,c($e(T.value)),1)):V("",!0)])]),_:1}),n(d,{label:"所属时段"},{default:o(()=>[l("span",{class:F(["sec-tag",L(T.value)==="上午"?"am":L(T.value)==="下午"?"pm":"night"])},c(L(T.value)),3),e[110]||(e[110]=l("span",{class:"form-tip sec-form-tip"},"时段由开始时间自动归类,无需手动设置",-1))]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),n(Oe,{modelValue:te.value,"onUpdate:modelValue":e[31]||(e[31]=a=>te.value=a),title:"绑定审批流程","mask-closable":!1,width:560},{footer:o(()=>[n(b,{onClick:e[30]||(e[30]=a=>te.value=!1)},{default:o(()=>[...e[116]||(e[116]=[i("取消",-1)])]),_:1}),n(b,{type:"primary",loading:De.value,onClick:Ks},{default:o(()=>[...e[117]||(e[117]=[i("确定绑定",-1)])]),_:1},8,["loading"])]),default:o(()=>[n(g,{"label-width":96,class:"flow-form"},{default:o(()=>[n(d,{label:"绑定范围"},{default:o(()=>[n(ds,{modelValue:h.value.scope,"onUpdate:modelValue":e[27]||(e[27]=a=>h.value.scope=a)},{default:o(()=>[n(be,{label:0},{default:o(()=>[...e[113]||(e[113]=[i("全校默认流程",-1)])]),_:1}),n(be,{label:1},{default:o(()=>[...e[114]||(e[114]=[i("指定请假类型",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),h.value.scope===1?(p(),U(d,{key:0,label:"请假类型"},{default:o(()=>[n(M,{modelValue:h.value.scopeKey,"onUpdate:modelValue":e[28]||(e[28]=a=>h.value.scopeKey=a),placeholder:"选择请假类型",style:{width:"260px"}},{default:o(()=>[(p(!0),v(N,null,A(_.value.leaveTypes,a=>(p(),U(f,{key:a.key,value:a.key},{default:o(()=>[i(c(a.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"]),e[115]||(e[115]=l("div",{class:"form-tip"},"该类型的请假单将优先走所选流程",-1))]),_:1})):V("",!0),n(d,{label:"审批流程"},{default:o(()=>[n(M,{modelValue:h.value.flowGuid,"onUpdate:modelValue":e[29]||(e[29]=a=>h.value.flowGuid=a),placeholder:"选择流程",style:{width:"100%"}},{default:o(()=>[(p(!0),v(N,null,A(_.value.flows,a=>(p(),U(f,{key:a.flowGuid,value:a.flowGuid},{default:o(()=>[i(c(a.name||a.flowGuid),1),a.version!=null?(p(),v("em",tn,"v"+c(a.version),1)):V("",!0)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"]),h.value.flowGuid?(p(),v("div",nn,[l("span",an,c(h.value.flowGuid),1),us.value?(p(),v("span",on,c(us.value),1)):V("",!0)])):V("",!0)]),_:1})]),_:1})]),_:1},8,["modelValue"])])])}}}),mn=tl(un,[["__scopeId","data-v-b3af65b3"]]);export{mn as default};