Files
wanghu 2e36d7a9c8
build / build (push) Successful in 9m55s
commit
2026-10-10 15:58:02 +08:00

2 lines
5.6 KiB
JavaScript

import{l as W,j as l,p as R,a as V,f as u,e as o,w as M,q as G,y as g,v as c,k as J,r as d,m as K,o as N,g as Q,F as X,b as Y,U as O}from"./index-CTJMns_f.js";import{l as Z,a as ee}from"./leave-o9zTf0m1.js";import{t as ae}from"./leaveTime-ZdUoa0wT.js";import{M as k}from"./index-CiysDxBq.js";const te={class:"page-wrapper"},ne={class:"main-container"},se={class:"fix mb-12"},le={class:"search-wrap fix"},oe={class:"search-wrap_date fl"},ie={class:"page-panel"},me=W({__name:"MyLeave",setup(re){const v=K(),x=[{name:"all",label:"全部",status:void 0},{name:"approving",label:"审批中",status:0},{name:"passed",label:"已通过",status:1},{name:"rejected",label:"已拒绝",status:2},{name:"canceled",label:"已销假",status:3},{name:"withdrawn",label:"已撤回",status:4}],f=l("all"),h=l(""),y=l(""),w=l(""),i=l(1),b=l(parseInt(localStorage.getItem("customPageCount")||"10")),T=l([]),S=l(0),_=l(!1);async function r(){_.value=!0;try{const e=x.find(t=>t.name===f.value),a=await g.list({scope:"user",status:e==null?void 0:e.status,keyword:h.value||void 0,startTime:y.value||void 0,endTime:w.value||void 0,pageIndex:i.value,pageSize:b.value}).send();T.value=(a==null?void 0:a.content)||[],S.value=(a==null?void 0:a.total)||0}catch(e){c.Message.error(e.message||"获取请假列表失败")}finally{_.value=!1}}function p(){i.value=1,r()}function P(e){f.value=e,p()}function z(e){i.value=e,r()}function U(e){i.value=1,b.value=e,localStorage.setItem("customPageCount",String(e)),r()}function B(e){v.push({path:"/detail",query:{leaveId:e.id}})}function H(e){v.push({path:"/apply",query:{serid:e.id}})}function I(e){k({title:"撤回申请",msg:`确定撤回「${e.leaveTypeName}」这条请假申请吗?`,info:"撤回后本次审批流程终止,可修改后重新提交",async onOk(){try{await g.withdraw(e.id).send(),c.Message.success("已提交撤回申请,等待流程处理"),r()}catch(a){c.Message.error(a.message||"撤回失败")}}})}function $(e){k({title:"销假",msg:`确定对「${e.leaveTypeName}」发起销假吗?`,info:"销假后该请假单失效并返还已扣除的时长",async onOk(){try{await g.cancel({id:e.id}).send(),c.Message.success("销假成功"),r()}catch(a){c.Message.error(a.message||"销假失败")}}})}function D(e){k({title:"删除",msg:`确定删除「${e.leaveTypeName}」这条请假申请吗?`,info:"删除后不可恢复",async onOk(){try{await g.remove([e.id]).send(),c.Message.success("删除成功"),T.value.length<=1&&i.value>1&&(i.value-=1),r()}catch(a){c.Message.error(a.message||"删除失败")}}})}function m(e,a,t,s){return O.operatingHandle(e,a,t,s)}const q=[{title:"序号",type:"index",width:70,align:"center"},{title:"申请时间",key:"applyTime",width:160,align:"center"},{title:"请假类型",key:"leaveTypeName",width:110,align:"center",render:(e,a)=>e("span",{},a.row.leaveTypeName||a.row.leaveType||"-")},{title:"开始时间",key:"startTime",width:160,align:"center",render:(e,a)=>e("span",{},String(a.row.startTime||"").slice(0,16))},{title:"结束时间",key:"endTime",width:160,align:"center",render:(e,a)=>e("span",{},String(a.row.endTime||"").slice(0,16))},{title:"时长",key:"totalHours",width:100,align:"center",render:(e,a)=>e("span",{},`${ae(a.row.totalHours)} 小时`)},{title:"请假事由",key:"reason",minWidth:160,align:"left",ellipsis:!0,tooltip:!0,render:(e,a)=>e("span",{},a.row.reason||"-")},{title:"审批状态",width:110,align:"center",render:(e,a)=>{const t=a.row;return e("span",{style:"display:inline-flex;align-items:center;gap:6px;color:#515a6e;"},[e("i",{style:`width:8px;height:8px;border-radius:50%;display:inline-block;background:${Z(t.status)};`}),t.statusName||ee(t.status)])}},{title:"操作",width:230,align:"center",fixed:"right",render:(e,a)=>{const t=a.row,s=[m(e,"查看","icon-chakan",()=>B(t))];return t.canEdit&&s.push(m(e,"编辑","icon-edit",()=>H(t))),t.canWithdraw&&s.push(m(e,"撤回","icon-stop",()=>I(t))),t.canCancel&&s.push(m(e,"销假","icon-stop",()=>$(t))),t.canDelete&&s.push(m(e,"删除","icon-ashbin",()=>D(t))),s}}],A=J(()=>O.useTableHeight({isSearch:!0,isOperat:!0,isPage:!0}));return R(r),(e,a)=>{const t=d("Button"),s=d("TabPane"),E=d("Tabs"),C=d("DatePicker"),L=d("Input"),j=d("Table"),F=d("Page");return N(),V("div",te,[u("div",ne,[u("div",se,[o(t,{class:"fl",type:"primary",size:"large",icon:"md-add",onClick:a[0]||(a[0]=n=>G(v).push("/apply"))},{default:M(()=>[...a[4]||(a[4]=[Q("我要请假",-1)])]),_:1})]),o(E,{value:f.value,onOnClick:P,class:"mb-12"},{default:M(()=>[(N(),V(X,null,Y(x,n=>o(s,{key:n.name,name:n.name,label:n.label},null,8,["name","label"])),64))]),_:1},8,["value"]),u("div",le,[u("div",oe,[o(C,{type:"date",placeholder:"开始日期起",modelValue:y.value,"onUpdate:modelValue":a[1]||(a[1]=n=>y.value=n),onOnChange:p},null,8,["modelValue"]),a[5]||(a[5]=u("span",{class:"ml-8 mr-8"},"至",-1)),o(C,{type:"date",placeholder:"开始日期止",modelValue:w.value,"onUpdate:modelValue":a[2]||(a[2]=n=>w.value=n),onOnChange:p},null,8,["modelValue"])]),o(L,{class:"fr",style:{width:"220px"},search:"",suffix:"ios-search",placeholder:"搜索事由 / 类型",modelValue:h.value,"onUpdate:modelValue":a[3]||(a[3]=n=>h.value=n),onOnSearch:p,onOnClear:p},null,8,["modelValue"])]),o(j,{columns:q,data:T.value,class:"link-table table-bottom-box",height:A.value,loading:_.value,"no-data-text":"暂无数据"},null,8,["data","height","loading"]),u("div",ie,[a[6]||(a[6]=u("div",{class:"fl ml-15 align-middle"},null,-1)),o(F,{class:"page-box fr",total:S.value,current:i.value,"page-size":b.value,"page-size-opts":[10,20,30,40],onOnPageSizeChange:U,onOnChange:z,placement:"top","show-total":"","show-sizer":""},null,8,["total","current","page-size"])])])])}}});export{me as default};