2 lines
4.0 KiB
JavaScript
2 lines
4.0 KiB
JavaScript
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-CTJMns_f.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};
|