commit
build / build (push) Successful in 9m55s

This commit is contained in:
wanghu
2026-10-10 15:58:02 +08:00
parent 6faa332d2b
commit 2e36d7a9c8
1842 changed files with 70537 additions and 0 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
.audit-info[data-v-44834a62]{background:#f7f9fc;border-radius:4px;padding:10px 12px;color:#515a6e;font-size:13px;line-height:22px}.mt-12[data-v-44834a62]{margin-top:12px}
@@ -0,0 +1 @@
.detail-container[data-v-bfde105a]{padding:16px 20px}.page-head[data-v-bfde105a]{margin-bottom:14px}.page-head h4[data-v-bfde105a]{font-size:18px;font-weight:500;color:#17233d}.status-bar[data-v-bfde105a]{background:#fff;padding:12px 16px;margin-bottom:14px;border-radius:4px}.status-bar .status-name[data-v-bfde105a]{font-size:16px;font-weight:600;margin-right:14px}.status-bar .status-tip[data-v-bfde105a]{color:#808695;font-size:13px}.detail-body[data-v-bfde105a]{display:flex;gap:14px;align-items:flex-start}.info-card[data-v-bfde105a]{flex:1.2;min-width:380px}.flow-card[data-v-bfde105a]{flex:1;min-width:320px}.card-title[data-v-bfde105a]{font-size:15px;font-weight:600;color:#17233d;margin-bottom:12px}.diagram-link[data-v-bfde105a]{font-weight:400;font-size:13px;color:#2d8cf0}.info-list[data-v-bfde105a]{list-style:none;padding:0;margin:0}.info-list li[data-v-bfde105a]{display:flex;padding:7px 0;border-bottom:1px dashed #f0f2f5}.info-list li label[data-v-bfde105a]{width:84px;color:#808695;flex-shrink:0}.info-list li span[data-v-bfde105a]{color:#17233d;word-break:break-all}.info-list li .hours[data-v-bfde105a]{color:#2d8cf0;font-weight:600}.file-list .file-item[data-v-bfde105a]{padding:4px 0}.file-list .file-item .file-link[data-v-bfde105a]{color:#2d8cf0}.file-list .file-item .file-thumb[data-v-bfde105a]{width:60px;height:60px;object-fit:cover;border-radius:4px;border:1px solid #e8eaec;vertical-align:middle;margin-right:4px}.file-list .file-item .file-size[data-v-bfde105a]{color:#808695;font-size:12px;margin-left:10px}.empty-tip[data-v-bfde105a]{color:#c5c8ce;font-size:13px;padding:6px 0}.opinion-box[data-v-bfde105a]{background:#fff7e6;border:1px solid #ffd591;color:#ad6800;border-radius:4px;padding:8px 12px;font-size:13px;margin-bottom:12px}.flow-timeline[data-v-bfde105a]{padding-left:4px}.step-row .step-node[data-v-bfde105a]{font-weight:600;color:#17233d}.step-row .step-action[data-v-bfde105a]{margin-left:10px;font-size:12px;color:#2d8cf0}.step-sub[data-v-bfde105a]{color:#808695;font-size:12px;margin-top:2px}.step-opinion[data-v-bfde105a]{color:#515a6e;font-size:12px;margin-top:2px}.flow-meta[data-v-bfde105a]{margin-top:12px;padding-top:10px;border-top:1px dashed #f0f2f5;color:#808695;font-size:12px;line-height:22px}.loading-box[data-v-bfde105a]{padding:60px 20px;text-align:center;position:relative}.mr-6[data-v-bfde105a]{margin-right:6px}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
.stats-container[data-v-2ce5c1f4]{padding:16px 20px}.stats-tip[data-v-2ce5c1f4]{color:#808695;font-size:12px;line-height:32px}.sum-cards[data-v-2ce5c1f4]{margin:14px 0;display:flex;gap:14px}.sum-card[data-v-2ce5c1f4]{flex:1;background:#fff;border-radius:4px;padding:18px 16px;text-align:center}.sum-card .card-value[data-v-2ce5c1f4]{font-size:26px;font-weight:700;color:#17233d;line-height:34px}.sum-card .card-value.blue[data-v-2ce5c1f4]{color:#2d8cf0}.sum-card .card-value.green[data-v-2ce5c1f4]{color:#19be6b}.sum-card .card-value.orange[data-v-2ce5c1f4]{color:#f90;font-size:20px}.sum-card .card-label[data-v-2ce5c1f4]{margin-top:6px;color:#808695;font-size:13px}.charts[data-v-2ce5c1f4]{display:flex;gap:14px}.chart-card[data-v-2ce5c1f4]{flex:1;min-width:320px}.chart-title[data-v-2ce5c1f4]{font-size:15px;font-weight:600;color:#17233d;margin-bottom:14px}.bar-list .bar-row[data-v-2ce5c1f4]{display:flex;align-items:center;margin-bottom:12px}.bar-list .bar-row .bar-label[data-v-2ce5c1f4]{width:90px;flex-shrink:0;color:#515a6e;font-size:13px;text-align:right;margin-right:10px}.bar-list .bar-row .bar-track[data-v-2ce5c1f4]{flex:1;height:14px;background:#f0f2f5;border-radius:7px;overflow:hidden}.bar-list .bar-row .bar-track .bar-fill[data-v-2ce5c1f4]{height:100%;background:linear-gradient(90deg,#2d8cf0,#5cadff);border-radius:7px;transition:width .4s}.bar-list .bar-row .bar-track .bar-fill.month[data-v-2ce5c1f4]{background:linear-gradient(90deg,#19be6b,#57d98e)}.bar-list .bar-row .bar-value[data-v-2ce5c1f4]{width:130px;flex-shrink:0;margin-left:10px;color:#808695;font-size:12px}.empty-tip[data-v-2ce5c1f4]{color:#c5c8ce;font-size:13px;padding:20px 0;text-align:center}
@@ -0,0 +1 @@
.sum-bar[data-v-1cbd6526]{background:#f7f9fc;border-radius:4px;padding:10px 14px;margin-bottom:12px;color:#515a6e;font-size:13px}.sum-bar .add[data-v-1cbd6526]{color:#19be6b;font-size:15px}.sum-bar .remain[data-v-1cbd6526]{color:#2d8cf0;font-size:15px}.ml-24[data-v-1cbd6526]{margin-left:24px}
@@ -0,0 +1 @@
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;min-width:1200px}a{text-decoration:none}
@@ -0,0 +1 @@
.my-table{width:100%;border-bottom:1px solid #c7c7c7;border-right:1px solid #c7c7c7;border-collapse:separate}.my-table .td-title{background:#fafafa;vertical-align:middle;color:#111;font-weight:550}.my-table th{background:#fafafa;height:20px;line-height:20px;padding:12px}.my-table td{height:20px;line-height:20px;padding:12px}.my-table th,.my-table td{border-top:1px solid #c7c7c7;border-left:1px solid #c7c7c7;margin-left:-1px;margin-top:-1px;text-align:center}
@@ -0,0 +1 @@
div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}
@@ -0,0 +1 @@
.rule-tree{padding:0!important;width:280px!important}.rule-tree .head-ul{background:#f6f8f9;border-bottom:1px solid #ebeef5;display:flex;justify-content:space-evenly;align-items:center;height:48px}.rule-tree .head-ul li{width:34px;height:34px;box-sizing:content-box;border-radius:50%;position:relative;cursor:pointer}.rule-tree .head-ul li .ivu-tooltip,.rule-tree .head-ul li .ivu-tooltip-rel{width:100%;height:100%;display:block}.rule-tree .head-ul li svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.rule-tree .head-ul li:hover{background-color:#eaeaea;cursor:pointer}.rule-tree .head-ul li.disabled{background-color:#fff;cursor:not-allowed}.rule-tree .head-ul li button{display:inline-block;width:100%;height:100%;border-radius:50%;color:#515a6e;border:0;outline:none;background-color:transparent;cursor:inherit}.rule-tree .body-box{padding:11px 0}.rule-tree .ztree li span.button{background-repeat:10px}
@@ -0,0 +1 @@
table.small-table{border:1px solid #ebeef5;border-radius:5px}table.small-table th{background-color:#fafafa;border-bottom:1px solid #ebeef5;padding:10px 20px}table.small-table td{padding:5px 20px}table.small-table tr:first-child td{padding-top:10px}table.small-table tr:last-child td{padding-bottom:10px}table.small-table .input-box{width:100px;vertical-align:text-bottom;display:inline-block}table.small-table .ivu-input-wrapper{vertical-align:text-bottom}
@@ -0,0 +1 @@
.status-color-1{color:#969799}.status-color-2{color:#e6a23c}.status-color-3{color:#45b972}.status-color-4{color:#eb0404}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
@charset "UTF-8";
@@ -0,0 +1 @@
*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.05);border-radius:10px;-webkit-box-shadow:inset 1px 1px 0 rgba(0,0,0,.1)}*:hover::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2);border-radius:10px;-webkit-box-shadow:inset 1px 1px 0 rgba(0,0,0,.1)}*::-webkit-scrollbar-thumb:hover{background-color:rgba(0,0,0,.3);-webkit-box-shadow:inset 1px 1px 0 rgba(0,0,0,.1)}*::-webkit-scrollbar-track{border-radius:10px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0);background-color:#fff}*::-webkit-scrollbar-track:hover{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.4);background-color:rgba(0,0,0,.01)}.scroll2::-webkit-scrollbar{width:10px;height:10px}.scroll2::-webkit-scrollbar-track{border-radius:10px;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0);background-color:#fff}.scroll2::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.05);border-radius:10px;-webkit-box-shadow:inset 1px 1px 0 rgba(0,0,0,.1)}.scroll2:hover::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2);border-radius:10px;-webkit-box-shadow:inset 1px 1px 0 rgba(0,0,0,.1)}.scroll2::-webkit-scrollbar-track:hover{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.4)}.scroll2::-webkit-scrollbar-thumb:hover{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.4)}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 542 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

@@ -0,0 +1,2 @@
import{l as Y,j as s,p as Z,a as U,f as u,e as o,w as k,y as P,v,s as ee,k as ae,r as i,m as te,o as S,g as M,F as j,b as D,c as ne,t as le,U as H}from"./index-CdacCJcP.js";import{a as L,l as se}from"./leave-o9zTf0m1.js";import{t as A}from"./leaveTime-ZdUoa0wT.js";import{M as oe}from"./index-KILmrBM-.js";const ie={class:"page-wrapper"},re={class:"main-container"},ce={class:"fix mb-12"},ue={class:"search-wrap fix"},de={class:"search-wrap_date fl"},pe={class:"page-panel"},we=Y({__name:"AllLeave",setup(me){const F=te(),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}],g=s("all"),f=s(""),h=s(""),w=s(""),y=s(""),B=s([]),c=s(1),C=s(parseInt(localStorage.getItem("customPageCount")||"10")),V=s([]),I=s(0),O=s(!1);async function p(){O.value=!0;try{const a=x.find(t=>t.name===g.value),e=await P.list({scope:"all",status:a==null?void 0:a.status,keyword:f.value||void 0,leaveType:h.value||void 0,startTime:w.value||void 0,endTime:y.value||void 0,pageIndex:c.value,pageSize:C.value}).send();V.value=(e==null?void 0:e.content)||[],I.value=(e==null?void 0:e.total)||0}catch(a){v.Message.error(a.message||"获取请假列表失败")}finally{O.value=!1}}async function R(){try{B.value=await ee.leaveTypes().send()||[]}catch{}}function d(){c.value=1,p()}function $(a){g.value=a,d()}function E(a){c.value=a,p()}function q(a){c.value=1,C.value=a,localStorage.setItem("customPageCount",String(a)),p()}async function W(){const a=x.find(e=>e.name===g.value);try{const e=await P.list({scope:"all",status:a==null?void 0:a.status,keyword:f.value||void 0,leaveType:h.value||void 0,startTime:w.value||void 0,endTime:y.value||void 0,pageIndex:1,pageSize:5e3}).send(),t=(e==null?void 0:e.content)||[];if(!t.length){v.Message.warning("当前条件下没有可导出的数据");return}const r=["申请人","请假类型","开始时间","结束时间","请假时长(小时)","请假事由","审批状态","申请时间"],b=l=>`"${String(l??"").replace(/"/g,'""')}"`,T=[r.map(b).join(",")].concat(t.map(l=>[l.userName,l.leaveTypeName||l.leaveType,l.startTime,l.endTime,A(l.totalHours),l.reason,l.statusName||L(l.status),l.applyTime].map(b).join(","))),N=new Blob(["\uFEFF"+T.join(`\r
`)],{type:"text/csv;charset=utf-8"}),_=URL.createObjectURL(N),m=document.createElement("a");m.href=_,m.download=`请假记录_${new Date().toISOString().slice(0,10)}.csv`,m.click(),URL.revokeObjectURL(_)}catch(e){v.Message.error(e.message||"导出失败")}}function G(a){F.push({path:"/detail",query:{leaveId:a.id}})}function J(a){oe({title:"删除",msg:`确定删除「${a.userName}」的这条请假申请吗?`,info:"管理端删除不可恢复",async onOk(){try{await P.remove([a.id]).send(),v.Message.success("删除成功"),V.value.length<=1&&c.value>1&&(c.value-=1),p()}catch(e){v.Message.error(e.message||"删除失败")}}})}function z(a,e,t,r){return H.operatingHandle(a,e,t,r)}const K=[{title:"序号",type:"index",width:70,align:"center"},{title:"申请人",key:"userName",width:110,align:"center"},{title:"请假类型",key:"leaveTypeName",width:110,align:"center",render:(a,e)=>a("span",{},e.row.leaveTypeName||e.row.leaveType||"-")},{title:"开始时间",width:160,align:"center",render:(a,e)=>a("span",{},String(e.row.startTime||"").slice(0,16))},{title:"结束时间",width:160,align:"center",render:(a,e)=>a("span",{},String(e.row.endTime||"").slice(0,16))},{title:"时长",width:100,align:"center",render:(a,e)=>a("span",{},`${A(e.row.totalHours)} 小时`)},{title:"请假事由",key:"reason",minWidth:150,align:"left",ellipsis:!0,tooltip:!0,render:(a,e)=>a("span",{},e.row.reason||"-")},{title:"申请时间",key:"applyTime",width:160,align:"center"},{title:"审批状态",width:110,align:"center",render:(a,e)=>{const t=e.row;return a("span",{style:"display:inline-flex;align-items:center;gap:6px;color:#515a6e;"},[a("i",{style:`width:8px;height:8px;border-radius:50%;display:inline-block;background:${se(t.status)};`}),t.statusName||L(t.status)])}},{title:"操作",width:150,align:"center",fixed:"right",render:(a,e)=>{const t=e.row,r=[z(a,"查看","icon-chakan",()=>G(t))];return t.canDelete&&r.push(z(a,"删除","icon-ashbin",()=>J(t))),r}}],Q=ae(()=>H.useTableHeight({isSearch:!0,isOperat:!0,isPage:!0}));return Z(()=>{R(),p()}),(a,e)=>{const t=i("Button"),r=i("TabPane"),b=i("Tabs"),T=i("DatePicker"),N=i("Option"),_=i("Select"),m=i("Input"),l=i("Table"),X=i("Page");return S(),U("div",ie,[u("div",re,[u("div",ce,[o(t,{class:"fl",icon:"md-download",onClick:W},{default:k(()=>[...e[4]||(e[4]=[M("导出 CSV",-1)])]),_:1})]),o(b,{value:g.value,onOnClick:$,class:"mb-12"},{default:k(()=>[(S(),U(j,null,D(x,n=>o(r,{key:n.name,name:n.name,label:n.label},null,8,["name","label"])),64))]),_:1},8,["value"]),u("div",ue,[u("div",de,[o(T,{type:"date",placeholder:"开始日期起",modelValue:w.value,"onUpdate:modelValue":e[0]||(e[0]=n=>w.value=n),onOnChange:d},null,8,["modelValue"]),e[5]||(e[5]=u("span",{class:"ml-8 mr-8"},"至",-1)),o(T,{type:"date",placeholder:"开始日期止",modelValue:y.value,"onUpdate:modelValue":e[1]||(e[1]=n=>y.value=n),onOnChange:d},null,8,["modelValue"])]),o(_,{modelValue:h.value,"onUpdate:modelValue":e[2]||(e[2]=n=>h.value=n),class:"search-wrap_sel ml-12",clearable:"",placeholder:"请假类型",onOnChange:d},{default:k(()=>[(S(!0),U(j,null,D(B.value,n=>(S(),ne(N,{key:n.k,value:n.k},{default:k(()=>[M(le(n.v),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"]),o(m,{class:"fr",style:{width:"220px"},search:"",suffix:"ios-search",placeholder:"搜索申请人 / 事由",modelValue:f.value,"onUpdate:modelValue":e[3]||(e[3]=n=>f.value=n),onOnSearch:d,onOnClear:d},null,8,["modelValue"])]),o(l,{columns:K,data:V.value,class:"link-table table-bottom-box",height:Q.value,loading:O.value,"no-data-text":"暂无数据"},null,8,["data","height","loading"]),u("div",pe,[e[6]||(e[6]=u("div",{class:"fl ml-15 align-middle"},null,-1)),o(X,{class:"page-box fr",total:I.value,current:c.value,"page-size":C.value,"page-size-opts":[10,20,30,40],onOnPageSizeChange:q,onOnChange:E,placement:"top","show-total":"","show-sizer":""},null,8,["total","current","page-size"])])])])}}});export{we as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{l as P,j as n,p as z,a as I,f as l,e as i,y as O,v as U,k as H,r as u,m as B,o as D,U as y}from"./index-CdacCJcP.js";import{l as E,a as M}from"./leave-o9zTf0m1.js";import{t as $}from"./leaveTime-ZdUoa0wT.js";const j={class:"page-wrapper"},q={class:"main-container"},A={class:"search-wrap fix"},L={class:"search-wrap_date fl"},R={class:"page-panel"},K=P({__name:"LeaveCc",setup(W){const _=B(),c=n(""),p=n(""),g=n(""),o=n(1),m=n(parseInt(localStorage.getItem("customPageCount")||"10")),w=n([]),f=n(0),v=n(!1);async function r(){v.value=!0;try{const e=await O.list({scope:"cc",keyword:c.value||void 0,startTime:p.value||void 0,endTime:g.value||void 0,pageIndex:o.value,pageSize:m.value}).send();w.value=(e==null?void 0:e.content)||[],f.value=(e==null?void 0:e.total)||0}catch(e){U.Message.error(e.message||"获取抄送列表失败")}finally{v.value=!1}}function d(){o.value=1,r()}function x(e){o.value=e,r()}function S(e){o.value=1,m.value=e,localStorage.setItem("customPageCount",String(e)),r()}function k(e){_.push({path:"/detail",query:{leaveId:e.id}})}function b(e,t,a,h){return y.operatingHandle(e,t,a,h)}const T=[{title:"序号",type:"index",width:70,align:"center"},{title:"申请人",key:"userName",width:110,align:"center"},{title:"请假类型",key:"leaveTypeName",width:110,align:"center",render:(e,t)=>e("span",{},t.row.leaveTypeName||t.row.leaveType||"-")},{title:"开始时间",width:160,align:"center",render:(e,t)=>e("span",{},String(t.row.startTime||"").slice(0,16))},{title:"结束时间",width:160,align:"center",render:(e,t)=>e("span",{},String(t.row.endTime||"").slice(0,16))},{title:"时长",width:100,align:"center",render:(e,t)=>e("span",{},`${$(t.row.totalHours)} 小时`)},{title:"请假事由",key:"reason",minWidth:160,align:"left",ellipsis:!0,tooltip:!0,render:(e,t)=>e("span",{},t.row.reason||"-")},{title:"审批状态",width:110,align:"center",render:(e,t)=>{const a=t.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:${E(a.status)};`}),a.statusName||M(a.status)])}},{title:"抄送时间",width:160,align:"center",render:(e,t)=>e("span",{},String(t.row.ccTime||"").slice(0,16)||"-")},{title:"操作",width:100,align:"center",fixed:"right",render:(e,t)=>b(e,"查看","icon-chakan",()=>k(t.row))}],V=H(()=>y.useTableHeight({isSearch:!0,isOperat:!0,isPage:!0}));return z(r),(e,t)=>{const a=u("DatePicker"),h=u("Input"),C=u("Table"),N=u("Page");return D(),I("div",j,[l("div",q,[l("div",A,[l("div",L,[i(a,{type:"date",placeholder:"开始日期起",modelValue:p.value,"onUpdate:modelValue":t[0]||(t[0]=s=>p.value=s),onOnChange:d},null,8,["modelValue"]),t[3]||(t[3]=l("span",{class:"ml-8 mr-8"},"至",-1)),i(a,{type:"date",placeholder:"开始日期止",modelValue:g.value,"onUpdate:modelValue":t[1]||(t[1]=s=>g.value=s),onOnChange:d},null,8,["modelValue"])]),i(h,{class:"fr",style:{width:"220px"},search:"",suffix:"ios-search",placeholder:"搜索申请人 / 事由",modelValue:c.value,"onUpdate:modelValue":t[2]||(t[2]=s=>c.value=s),onOnSearch:d,onOnClear:d},null,8,["modelValue"])]),i(C,{columns:T,data:w.value,class:"link-table table-bottom-box",height:V.value,loading:v.value,"no-data-text":"暂无抄送记录"},null,8,["data","height","loading"]),l("div",R,[t[4]||(t[4]=l("div",{class:"fl ml-15 align-middle"},null,-1)),i(N,{class:"page-box fr",total:f.value,current:o.value,"page-size":m.value,"page-size-opts":[10,20,30,40],onOnPageSizeChange:S,onOnChange:x,placement:"top","show-total":"","show-sizer":""},null,8,["total","current","page-size"])])])])}}});export{K as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{l as L,p as A,a as r,f as t,e as u,w as y,t as o,q as _,j as m,y as E,v as H,r as b,o as d,g as P,F as V,b as C,A as T,k as $,_ as U}from"./index-CdacCJcP.js";import{t as f}from"./leaveTime-ZdUoa0wT.js";const Y={class:"page-wrapper"},j={class:"main-container stats-container"},q={class:"search-wrap fix"},z={class:"search-wrap_date fl"},I={class:"sum-cards fix"},R={class:"sum-card fl"},G={class:"card-value"},J={class:"sum-card fl"},K={class:"card-value blue"},O={class:"sum-card fl"},Q={class:"card-value green"},W={class:"sum-card fl"},X={class:"card-value orange"},Z={class:"charts fix"},ss={key:0,class:"bar-list"},ts={class:"bar-label"},as={class:"bar-track"},es={class:"bar-value"},ls={key:1,class:"empty-tip"},os={key:0,class:"bar-list"},ns={class:"bar-label"},rs={class:"bar-track"},ds={class:"bar-value"},is={key:1,class:"empty-tip"},cs=L({__name:"LeaveStats",setup(us){const v=m(""),p=m(""),e=m(null),h=m(!1);function B(){const a=new Date,s=new Date(a.getFullYear(),a.getMonth(),1),i=c=>`${c.getFullYear()}-${String(c.getMonth()+1).padStart(2,"0")}-${String(c.getDate()).padStart(2,"0")}`;v.value=i(s),p.value=i(a)}async function g(){h.value=!0;try{e.value=await E.statis({startTime:v.value||void 0,endTime:p.value||void 0}).send()||null}catch(a){H.Message.error(a.message||"获取统计数据失败")}finally{h.value=!1}}const N=$(()=>{var a;return Math.max(1,...(((a=e.value)==null?void 0:a.typeStats)||[]).map(s=>s.count))}),F=$(()=>{var a;return Math.max(1,...(((a=e.value)==null?void 0:a.monthStats)||[]).map(s=>s.count))});function S(a,s){return`${Math.round(a/s*100)}%`}return A(()=>{B(),g()}),(a,s)=>{var w,x,D,M;const i=b("DatePicker"),c=b("Button"),k=b("Card");return d(),r("div",Y,[t("div",j,[t("div",q,[t("div",z,[u(i,{type:"date",placeholder:"开始日期",modelValue:v.value,"onUpdate:modelValue":s[0]||(s[0]=n=>v.value=n)},null,8,["modelValue"]),s[2]||(s[2]=t("span",{class:"ml-8 mr-8"},"至",-1)),u(i,{type:"date",placeholder:"结束日期",modelValue:p.value,"onUpdate:modelValue":s[1]||(s[1]=n=>p.value=n)},null,8,["modelValue"])]),u(c,{class:"fl ml-12",type:"primary",loading:h.value,onClick:g},{default:y(()=>[...s[3]||(s[3]=[P("查询",-1)])]),_:1},8,["loading"]),s[4]||(s[4]=t("span",{class:"fr stats-tip"},"统计口径:已通过的请假单(按申请时间)",-1))]),t("div",I,[t("div",R,[t("div",G,o(((w=e.value)==null?void 0:w.totalCount)??0),1),s[5]||(s[5]=t("div",{class:"card-label"},"请假单数",-1))]),t("div",J,[t("div",K,o(_(f)((x=e.value)==null?void 0:x.totalHours)),1),s[6]||(s[6]=t("div",{class:"card-label"},"请假总时长(小时)",-1))]),t("div",O,[t("div",Q,o(_(f)((D=e.value)==null?void 0:D.totalDays)),1),s[7]||(s[7]=t("div",{class:"card-label"},"折合天数(8小时/天)",-1))]),t("div",W,[t("div",X,o(((M=e.value)==null?void 0:M.topTypeName)||"-"),1),s[8]||(s[8]=t("div",{class:"card-label"},"最多请假类型",-1))])]),t("div",Z,[u(k,{bordered:!1,"dis-hover":"",class:"chart-card fl"},{default:y(()=>{var n;return[s[9]||(s[9]=t("div",{class:"chart-title"},"请假类型分布",-1)),(n=e.value)!=null&&n.typeStats&&e.value.typeStats.length?(d(),r("div",ss,[(d(!0),r(V,null,C(e.value.typeStats,l=>(d(),r("div",{key:l.leaveType,class:"bar-row"},[t("span",ts,o(l.leaveTypeName||l.leaveType),1),t("div",as,[t("div",{class:"bar-fill",style:T(`width:${S(l.count,N.value)}`)},null,4)]),t("span",es,o(l.count)+" 单 · "+o(_(f)(l.hours))+"h",1)]))),128))])):(d(),r("div",ls,"区间内暂无数据"))]}),_:1}),u(k,{bordered:!1,"dis-hover":"",class:"chart-card fl"},{default:y(()=>{var n;return[s[10]||(s[10]=t("div",{class:"chart-title"},"月度请假趋势",-1)),(n=e.value)!=null&&n.monthStats&&e.value.monthStats.length?(d(),r("div",os,[(d(!0),r(V,null,C(e.value.monthStats,l=>(d(),r("div",{key:l.month,class:"bar-row"},[t("span",ns,o(l.month),1),t("div",rs,[t("div",{class:"bar-fill month",style:T(`width:${S(l.count,F.value)}`)},null,4)]),t("span",ds,o(l.count)+" 单 · "+o(_(f)(l.hours))+"h",1)]))),128))])):(d(),r("div",is,"区间内暂无数据"))]}),_:1})])])])}}}),_s=U(cs,[["__scopeId","data-v-2ce5c1f4"]]);export{_s as default};
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{l as F,j as l,p as M,a as b,f as s,g as m,t as x,q as I,e as i,w as O,d as W,D as P,v as j,s as Q,k as Y,r as u,m as G,o as V,F as J,b as K,U as X,_ as Z}from"./index-CdacCJcP.js";import{t as f}from"./leaveTime-ZdUoa0wT.js";const ee={class:"page-wrapper"},te={class:"main-container"},ae={class:"sum-bar"},ne={class:"add"},le={class:"ml-24"},se={class:"remain"},oe={class:"search-wrap fix"},ie={key:0,class:"search-wrap_date fl ml-12"},re={class:"page-panel"},ue=F({__name:"TimeLog",setup(de){const U=G(),z=[{k:0,v:"今日"},{k:1,v:"本周"},{k:2,v:"本月"},{k:3,v:"累计"}],o=l(3),w=l(""),y=l(""),h=l(""),H=l([]),r=l(1),_=l(parseInt(localStorage.getItem("customPageCount")||"10")),S=l([]),C=l(0),T=l(!1),k=l({});async function d(){T.value=!0;try{const t={rqType:o.value,keyword:w.value||void 0,startTime:o.value===3&&y.value||void 0,endTime:o.value===3&&h.value||void 0,pageIndex:r.value,pageSize:_.value},[e,a]=await Promise.all([P.records(t).send(),P.sum({rqType:o.value,startTime:t.startTime,endTime:t.endTime}).send()]);S.value=(e==null?void 0:e.content)||[],C.value=(e==null?void 0:e.total)||0,k.value=a||{}}catch(t){j.Message.error(t.message||"获取时长日志失败")}finally{T.value=!1}}async function N(){try{H.value=await Q.leaveTypes().send()||[]}catch{}}function q(){r.value=1,d()}function v(){r.value=1,d()}function D(t){r.value=t,d()}function $(t){r.value=1,_.value=t,localStorage.setItem("customPageCount",String(t)),d()}function L(t){t.leaveId&&U.push({path:"/detail",query:{leaveId:t.leaveId}})}const B=[{title:"序号",type:"index",width:70,align:"center"},{title:"姓名",key:"userName",width:110,align:"center"},{title:"请假类型",width:110,align:"center",render:(t,e)=>t("span",{},e.row.leaveTypeName||(e.row.leaveType?e.row.leaveType:"手动调整"))},{title:"时长(小时)",width:130,align:"center",render:(t,e)=>{const a=e.row,c=a.editHours||0,p=c>=0?"#19be6b":"#ed4014",g=`${c>=0?"+":""}${f(c)}`;return a.leaveId?t("a",{style:`color:${p};font-weight:600;`,onClick:()=>L(a)},g):t("span",{style:`color:${p};font-weight:600;`},g)}},{title:"变更后剩余",width:120,align:"center",render:(t,e)=>t("span",{},f(e.row.newHours))},{title:"备注",key:"describeText",minWidth:160,align:"left",render:(t,e)=>t("span",{},e.row.describeText||"-")},{title:"关联请假时间",minWidth:200,align:"left",render:(t,e)=>{const a=e.row;return a.startTime?t("span",{},`${String(a.startTime).slice(0,16)} ~ ${String(a.endTime).slice(0,16)}`):t("span",{style:"color:#c5c8ce;"},"-")}},{title:"发生时间",key:"occurTime",width:160,align:"center"}],E=Y(()=>X.useTableHeight({isSearch:!0,isOperat:!1,isPage:!0}));return M(()=>{N(),d()}),(t,e)=>{const a=u("Option"),c=u("Select"),p=u("DatePicker"),g=u("Input"),R=u("Table"),A=u("Page");return V(),b("div",ee,[s("div",te,[s("div",ae,[s("span",null,[e[4]||(e[4]=m("共计新加时长 ",-1)),s("b",ne,x(I(f)(k.value.addHours)),1),e[5]||(e[5]=m(" 小时",-1))]),s("span",le,[e[6]||(e[6]=m("共计剩余时长 ",-1)),s("b",se,x(I(f)(k.value.remainHours)),1),e[7]||(e[7]=m(" 小时",-1))])]),s("div",oe,[i(c,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=n=>o.value=n),class:"search-wrap_sel fl",style:{width:"120px"},onOnChange:q},{default:O(()=>[(V(),b(J,null,K(z,n=>i(a,{key:n.k,value:n.k},{default:O(()=>[m(x(n.v),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"]),o.value===3?(V(),b("div",ie,[i(p,{type:"date",placeholder:"开始日期",modelValue:y.value,"onUpdate:modelValue":e[1]||(e[1]=n=>y.value=n),onOnChange:v},null,8,["modelValue"]),e[8]||(e[8]=s("span",{class:"ml-8 mr-8"},"至",-1)),i(p,{type:"date",placeholder:"结束日期",modelValue:h.value,"onUpdate:modelValue":e[2]||(e[2]=n=>h.value=n),onOnChange:v},null,8,["modelValue"])])):W("",!0),i(g,{class:"fr",style:{width:"220px"},search:"",suffix:"ios-search",placeholder:"搜索姓名 / 备注",modelValue:w.value,"onUpdate:modelValue":e[3]||(e[3]=n=>w.value=n),onOnSearch:v,onOnClear:v},null,8,["modelValue"])]),i(R,{columns:B,data:S.value,class:"link-table table-bottom-box",height:E.value,loading:T.value,"no-data-text":"暂无时长流水"},null,8,["data","height","loading"]),s("div",re,[e[9]||(e[9]=s("div",{class:"fl ml-15 align-middle"},null,-1)),i(A,{class:"page-box fr",total:C.value,current:r.value,"page-size":_.value,"page-size-opts":[10,20,30,40],onOnPageSizeChange:$,onOnChange:D,placement:"top","show-total":"","show-sizer":""},null,8,["total","current","page-size"])])])])}}}),me=Z(ue,[["__scopeId","data-v-1cbd6526"]]);export{me as default};
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
import{l as T,p as V,o as x,c as h,w as l,e as m,q as c,v as u,E as p,a as B,n as w,t as r,d as F,g as C,j as k,G as L}from"./index-CdacCJcP.js";const M=T({__name:"Confirm",props:{title:{default:"提示"},msg:{},info:{},isLoading:{type:Boolean,default:!0},confirmText:{default:"确认"},closeText:{default:"取消"},confirmFn:{},closeFn:{},destroy:{}},setup(e){const n=k(!1),s=k(!1),i=k(!1),t=e;V(function(){setTimeout(()=>{n.value=!0},0)});const f=async()=>{t.isLoading&&(s.value=!0);const{onOk:o,reslove:a}=t.confirmFn;await Promise.resolve(o()),n.value=!1,s.value=!1,a(!0)},v=async()=>{t.isLoading&&(i.value=!0);const{onCancel:o,reslove:a}=t.closeFn;typeof o<"u"&&await Promise.resolve(o()),i.value=!1,n.value=!1,a(!1)},g=o=>{o||t.destroy()};return(o,a)=>(x(),h(c(u.Modal),{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=d=>n.value=d),onOnVisibleChange:g,title:e.title},{footer:l(()=>[m(c(u.Button),{type:"primary",loading:s.value,onClick:f},{default:l(()=>[C(r(e.confirmText),1)]),_:1},8,["loading"]),m(c(u.Button),{loading:i.value,onClick:v},{default:l(()=>[C(r(e.closeText),1)]),_:1},8,["loading"])]),default:l(()=>[m(c(u.Alert),{type:"warning",class:"mb-1","show-icon":""},p({icon:l(()=>[m(c(u.Icon),{type:"ios-bulb-outline",class:w({"mt-5":!e.info}),slot:"icon",size:28},null,8,["class"])]),default:l(()=>[e.msg?(x(),B("div",{key:0,class:w(["message-box",e.info?"":"mt-10 mb-10 ml-10"])},r(e.msg),3)):F("",!0)]),_:2},[e.info?{name:"desc",fn:l(()=>[C(r(e.info),1)]),key:"0"}:void 0]),1024)]),_:1},8,["modelValue","title"]))}}),N=({title:e,msg:n,info:s,confirmText:i,closeText:t,isLoading:f,onOk:v,onCancel:g})=>new Promise((o,a)=>{const d=L(M,{title:e,msg:n,info:s,confirmText:i,closeText:t,isLoading:f,confirmFn:{onOk:v,reslove:o},closeFn:{onCancel:g,reslove:o},destroy:()=>{b()}}),y=document.createElement("div");document.body.appendChild(y),d.mount(y);function b(){setTimeout(()=>{d.unmount(),document.body.removeChild(y)},100)}});export{N as M};
@@ -0,0 +1 @@
const a=[{k:0,v:"审批中",hex:"#ff9900"},{k:1,v:"已通过",hex:"#19be6b"},{k:2,v:"已拒绝",hex:"#ed4014"},{k:3,v:"已销假",hex:"#808695"},{k:4,v:"已撤回",hex:"#808695"}];function h(t){const e=a.find(n=>n.k===t);return e?e.v:""}function v(t){const e=a.find(n=>n.k===t);return e?e.hex:"#808695"}export{h as a,v as l};
@@ -0,0 +1 @@
const E={forenoon1:"08:00",forenoon2:"12:00",afternoon1:"13:00",afternoon2:"17:00"};function M(t){const[n,r]=String(t).split(":").map(e=>parseInt(e,10));return(n||0)*60+(r||0)}function h(t){if(!t)return null;const n=t.trim().replace("T"," "),[r,e="00:00"]=n.split(" "),[o,s,a]=r.split("-").map(c=>parseInt(c,10)),[i,u]=e.split(":").map(c=>parseInt(c,10));return!o||!s||!a?null:new Date(o,s-1,a,i||0,u||0,0,0)}function x(t,n){const r=new Date(t.getFullYear(),t.getMonth(),t.getDate()),e=new Date(n.getFullYear(),n.getMonth(),n.getDate());return Math.round((e.getTime()-r.getTime())/864e5)}function T(t,n,r,e,o){return t<n?n:t<=r?t:t<e?e:t>o?o:t}function y(t,n,r,e,o){return t<n?n:t<=r?t:t<e?r:t>o?o:t}function H(t,n,r=E){const e=h(t),o=h(n);if(!e||!o||o.getTime()<=e.getTime())return null;const s=M(r.forenoon1),a=M(r.forenoon2),i=M(r.afternoon1),u=M(r.afternoon2),c=Math.max(0,i-a),N=Math.max(0,a-s)+Math.max(0,u-i),d=e.getHours()*60+e.getMinutes(),D=o.getHours()*60+o.getMinutes();let p;if(x(e,o)===0){const f=T(d,s,a,i,u),l=y(D,s,a,i,u);let m=l-f;f<=a&&l>=i&&(m-=c),p=Math.max(0,m)}else{const f=T(d,s,a,i,u),l=y(D,s,a,i,u);let m=Math.max(0,u-f);f<=a&&(m-=c);let g=Math.max(0,l-s);l>=i&&(g-=c);const w=Math.max(0,x(e,o)-1);p=Math.max(0,m)+Math.max(0,g)+w*N}return Math.round(p/60*100)/100}function I(t){if(t==null||isNaN(Number(t)))return"-";const n=Math.round(Number(t)*100)/100;return String(n).replace(/\.0+$/,"")}export{E as D,H as c,I as t};
@@ -0,0 +1 @@
import"./index-CdacCJcP.js";