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

2 lines
5.4 KiB
JavaScript

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