import{_ as Z,h as c,p as q,c as u,a as e,y as K,D as O,k as F,w as f,t as i,e as _,z as M,b as r,x as P,r as y,j as C,u as G,o as d,E as J}from"./index-Dn6fDqC3.js";import{r as N}from"./index-D0SgC7D8.js";const Q={class:"details-layout"},X={class:"calendar-section"},tt={class:"content-card"},et=["onClick"],st={class:"day-header"},at={class:"day-num"},lt={key:0,class:"weekend-tag"},ot={class:"day-body"},nt={key:0,class:"status-badge filled"},it={key:1,class:"status-badge partial"},dt={key:2,class:"status-badge unfilled"},ct={class:"info-section"},rt={class:"content-card stats-mini-card"},ut={class:"card-title"},vt={class:"mini-stats-grid"},pt={class:"mini-stat-item green-glow"},_t={class:"value green-text"},yt={class:"mini-stat-item yellow-glow"},mt={class:"value yellow-text"},ht={class:"mini-stat-item red-glow"},ft={class:"value red-text"},gt={class:"mini-stat-item purple-glow"},wt={class:"value purple-text"},Dt={class:"content-card records-card"},kt={class:"card-title"},bt={key:0,class:"empty-placeholder"},St={__name:"TimesheetDetails",setup(Mt){const B=G(),v=c(new Date),m=c(new Date().toLocaleDateString("sv-SE",{timeZone:"Asia/Shanghai"})),E=c(new Date().toLocaleDateString("sv-SE",{timeZone:"Asia/Shanghai"})),x=c({}),V=c(!1),$=c(0),R=C(()=>{const s=v.value.getFullYear(),t=String(v.value.getMonth()+1).padStart(2,"0");return`${s}-${t}`}),T=C(()=>{var s;return((s=x.value[m.value])==null?void 0:s.list)||[]}),g=c({}),z=c(null);async function Y(s){try{const t=await N.getHolidays(s);g.value=t.data||{},$.value++}catch(t){console.error("Failed to load holidays:",t)}}const A=s=>new Date(s+"T00:00:00").getDay(),j=s=>{const t=s.substring(5);if(g.value&&g.value[t])return!g.value[t].holiday;const o=A(s);return o!==0&&o!==6},H=s=>!j(s),p=s=>{var t;return((t=x.value[s])==null?void 0:t.hours)||0},I=s=>s>=E.value||H(s)?!1:p(s)===0;async function L(s){V.value=!0;try{const o=(await N.getTimesheets({month:s})).data.records||[],n={};o.forEach(l=>{n[l.work_date]||(n[l.work_date]={hours:0,list:[]}),n[l.work_date].hours+=l.hours,n[l.work_date].list.push(l)}),x.value=n,$.value++}catch{J.error("获取月度工时失败")}finally{V.value=!1}}q(v,s=>{if(s){const t=s.getFullYear(),o=String(s.getMonth()+1).padStart(2,"0"),n=`${t}-${o}`;z.value!==t&&(z.value=t,Y(t)),L(n)}},{immediate:!0});function U(s){m.value=s}function W(){B.push({path:"/timesheet",query:{date:m.value}})}const w=C(()=>{const s=v.value,t=s.getFullYear(),o=s.getMonth()+1,n=new Date(t,o,0).getDate();let l=0,D=0,k=0,b=0;for(let h=1;h<=n;h++){const a=`${t}-${String(o).padStart(2,"0")}-${String(h).padStart(2,"0")}`,S=p(a);b+=S,S>=8?l++:S>0?D++:a{const o=y("el-calendar"),n=y("el-button"),l=y("el-table-column"),D=y("el-tag"),k=y("el-table"),b=y("el-empty"),h=P("loading");return d(),u("div",null,[t[11]||(t[11]=e("div",{class:"page-header"},[e("h1",null,"填报详情"),e("p",null,"查看您的每日工时填报日历和明细记录")],-1)),K((d(),u("div",Q,[e("div",X,[e("div",tt,[t[1]||(t[1]=O('
📅 工时填报日历
已满8h未满8h漏填报未到期/周末
',1)),(d(),F(o,{modelValue:v.value,"onUpdate:modelValue":t[0]||(t[0]=a=>v.value=a),key:$.value},{"date-cell":f(({data:a})=>[e("div",{class:"day-cell-content",onClick:S=>U(a.day)},[e("div",st,[e("span",at,i(a.day.split("-")[2]),1),H(a.day)?(d(),u("span",lt,"休")):M("",!0)]),e("div",ot,[p(a.day)>=8?(d(),u("div",nt,i(p(a.day))+"h ",1)):p(a.day)>0?(d(),u("div",it,i(p(a.day))+"h ",1)):I(a.day)?(d(),u("div",dt," 未填报 ")):M("",!0)])],8,et)]),_:1},8,["modelValue"]))])]),e("div",ct,[e("div",rt,[e("div",ut,"📊 本月度汇总 ("+i(R.value)+")",1),e("div",vt,[e("div",pt,[t[3]||(t[3]=e("div",{class:"label"},"满额填报",-1)),e("div",_t,[_(i(w.value.fullDays),1),t[2]||(t[2]=e("span",{class:"unit"},"天",-1))])]),e("div",yt,[t[5]||(t[5]=e("div",{class:"label"},"部分填报",-1)),e("div",mt,[_(i(w.value.partialDays),1),t[4]||(t[4]=e("span",{class:"unit"},"天",-1))])]),e("div",ht,[t[7]||(t[7]=e("div",{class:"label"},"漏填工作日",-1)),e("div",ft,[_(i(w.value.unfilledDays),1),t[6]||(t[6]=e("span",{class:"unit"},"天",-1))])]),e("div",gt,[t[9]||(t[9]=e("div",{class:"label"},"累计总工时",-1)),e("div",wt,[_(i(w.value.totalHours),1),t[8]||(t[8]=e("span",{class:"unit"},"小时",-1))])])])]),e("div",Dt,[e("div",kt,[e("span",null,"📋 "+i(m.value)+" 工时明细",1),m.value?(d(),F(n,{key:0,type:"primary",size:"default",onClick:W},{default:f(()=>[...t[10]||(t[10]=[_(" ✍️ 去填报/修改 ",-1)])]),_:1})):M("",!0)]),r(k,{data:T.value,stripe:"",style:{width:"100%"},size:"default"},{default:f(()=>[r(l,{prop:"client_name",label:"客户/项目","min-width":"120"}),r(l,{prop:"service_type",label:"售前/售后",width:"90"},{default:f(({row:a})=>[r(D,{type:a.service_type==="售后"?"warning":"success",size:"small"},{default:f(()=>[_(i(a.service_type||"售前"),1)]),_:2},1032,["type"])]),_:1}),r(l,{prop:"project_type",label:"子项目",width:"100"}),r(l,{prop:"hours",label:"工时(h)",width:"80"}),r(l,{prop:"remark",label:"备注","min-width":"120","show-overflow-tooltip":""})]),_:1},8,["data"]),T.value.length?M("",!0):(d(),u("div",bt,[r(b,{description:"该日期暂无工时记录","image-size":60})]))])])])),[[h,V.value]])])}}},$t=Z(St,[["__scopeId","data-v-92c2cf43"]]);export{$t as default};