Files
zyt/server/public/admin/assets/tongji-DF1EG7_U.js
T
2026-07-03 12:07:34 +08:00

2 lines
5.5 KiB
JavaScript

import{o as K,ap as W,q as a,r as d,v as l,D as s,b9 as $,b6 as A,bm as H,F as f,G as v,O as y,bn as J,bc as Q,bb as X,L as c,bp as Z,P as tt,K as et,s as o,bg as st,ac as at,bi as lt,bj as ot,bk as nt,T as u,br as dt,bB as it,M as E,ba as rt,E as _t}from"./.pnpm-BGZW0UGg.js";import{f as ct,k as ut}from"./doctor-CF92xvl4.js";import{_ as pt}from"./index-CeIwrh_6.js";const mt={class:"statistics-page"},ft={key:0},vt={class:"status-overview"},yt={class:"status-section"},gt={key:0},ht={class:"dept-grid"},bt={class:"dept-header"},kt={class:"dept-name"},Et={class:"dept-total"},Vt={class:"status-tags"},Ct={key:1,class:"text-gray-400"},wt={class:"status-section"},Tt={key:0},xt={class:"channel-grid"},Dt={class:"channel-header"},Mt={class:"channel-name"},Bt={class:"channel-total"},Lt={class:"status-tags"},St={key:1,class:"text-gray-400"},jt={key:1,class:"empty-data"},Nt=K({__name:"tongji",setup(Ft){const g=E(!1),x=E([]),h=E([]),_=E([]),i=rt({doctor_id:"",time_type:"today",start_date:"",end_date:""}),j=async()=>{try{const e=await ct({role_id:1});x.value=e.lists||[]}catch(e){console.error("获取医生列表失败:",e)}},V=async()=>{g.value=!0;try{const e={time_type:i.time_type};i.doctor_id&&(e.doctor_id=i.doctor_id),i.time_type==="custom"&&_.value&&_.value.length===2&&(e.start_date=_.value[0],e.end_date=_.value[1]);const t=await ut(e);h.value=t.lists||[],h.value.forEach(r=>{r.dept_status_details||(r.dept_status_details=[]),r.channel_status_details||(r.channel_status_details=[])})}catch(e){console.error("获取统计数据错误:",e),_t.error(e.msg||"获取统计数据失败")}finally{g.value=!1}},N=()=>{i.time_type!=="custom"&&(_.value=[])},F=()=>{i.doctor_id="",i.time_type="today",_.value=[],V()},O=e=>e.statuses?Object.values(e.statuses).reduce((t,r)=>t+r,0):0,R=e=>e.statuses?Object.values(e.statuses).reduce((t,r)=>t+r,0):0,D=e=>({1:"已挂号",2:"已取消",3:"已完成",4:"已过号"})[e]||`状态${e}`,M=e=>({1:"info",2:"danger",3:"success",4:"warning"})[e]||"default";return W(()=>{j(),V()}),(e,t)=>{const r=J,Y=H,b=A,k=X,P=Q,U=Z,B=et,q=$,L=st,C=nt,S=dt,z=ot,G=it,I=lt;return a(),d("div",mt,[l(L,{class:"mb-4",shadow:"hover"},{header:s(()=>[...t[3]||(t[3]=[o("div",{class:"card-header"},[o("span",{class:"card-title"},"筛选条件")],-1)])]),default:s(()=>[l(q,{inline:!0,model:i,class:"filter-form"},{default:s(()=>[l(b,{label:"医生"},{default:s(()=>[l(Y,{modelValue:i.doctor_id,"onUpdate:modelValue":t[0]||(t[0]=n=>i.doctor_id=n),placeholder:"全部医生",clearable:"",filterable:"",style:{width:"200px"}},{default:s(()=>[(a(!0),d(f,null,v(x.value,n=>(a(),y(r,{key:n.id,label:n.name,value:n.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(b,{label:"时间范围"},{default:s(()=>[l(P,{modelValue:i.time_type,"onUpdate:modelValue":t[1]||(t[1]=n=>i.time_type=n),onChange:N},{default:s(()=>[l(k,{label:"today"},{default:s(()=>[...t[4]||(t[4]=[c("今天",-1)])]),_:1}),l(k,{label:"week"},{default:s(()=>[...t[5]||(t[5]=[c("最近7天",-1)])]),_:1}),l(k,{label:"month"},{default:s(()=>[...t[6]||(t[6]=[c("最近30天",-1)])]),_:1}),l(k,{label:"custom"},{default:s(()=>[...t[7]||(t[7]=[c("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),i.time_type==="custom"?(a(),y(b,{key:0},{default:s(()=>[l(U,{modelValue:_.value,"onUpdate:modelValue":t[2]||(t[2]=n=>_.value=n),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"260px"}},null,8,["modelValue"])]),_:1})):tt("",!0),l(b,null,{default:s(()=>[l(B,{type:"primary",onClick:V,loading:g.value},{default:s(()=>[...t[8]||(t[8]=[c("查询",-1)])]),_:1},8,["loading"]),l(B,{onClick:F},{default:s(()=>[...t[9]||(t[9]=[c("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),at((a(),y(L,{class:"mb-4",shadow:"hover"},{header:s(()=>[...t[10]||(t[10]=[o("div",{class:"card-header"},[o("span",{class:"card-title"},"医生统计数据")],-1)])]),default:s(()=>[h.value.length>0?(a(),d("div",ft,[l(z,{data:h.value,style:{width:"100%"},"header-cell-style":{background:"#f5f7fa",color:"#606266",fontWeight:"600"}},{default:s(()=>[l(C,{prop:"doctor_name",label:"医生姓名",width:"120"}),l(C,{label:"状态明细","min-width":"700"},{default:s(({row:n})=>[o("div",vt,[o("div",yt,[t[11]||(t[11]=o("h4",{class:"section-title"},"部门状态",-1)),n.dept_status_details&&n.dept_status_details.length>0?(a(),d("div",gt,[o("div",ht,[(a(!0),d(f,null,v(n.dept_status_details,(p,w)=>(a(),d("div",{key:w,class:"dept-item"},[o("div",bt,[o("span",kt,u(p.dept_name),1),o("span",Et,"("+u(O(p))+")",1)]),o("div",Vt,[(a(!0),d(f,null,v(p.statuses,(T,m)=>(a(),y(S,{key:m,type:M(m),size:"small",class:"compact-tag"},{default:s(()=>[c(u(D(m))+": "+u(T),1)]),_:2},1032,["type"]))),128))])]))),128))])])):(a(),d("span",Ct,"暂无部门状态明细"))]),o("div",wt,[t[12]||(t[12]=o("h4",{class:"section-title"},"渠道状态",-1)),n.channel_status_details&&n.channel_status_details.length>0?(a(),d("div",Tt,[o("div",xt,[(a(!0),d(f,null,v(n.channel_status_details,(p,w)=>(a(),d("div",{key:w,class:"channel-item"},[o("div",Dt,[o("span",Mt,u(p.channel_name),1),o("span",Bt,"("+u(R(p))+")",1)]),o("div",Lt,[(a(!0),d(f,null,v(p.statuses,(T,m)=>(a(),y(S,{key:m,type:M(m),size:"small",class:"compact-tag"},{default:s(()=>[c(u(D(m))+": "+u(T),1)]),_:2},1032,["type"]))),128))])]))),128))])])):(a(),d("span",St,"暂无渠道状态明细"))])])]),_:1}),l(C,{prop:"time_range",label:"统计时间","min-width":"200"})]),_:1},8,["data"])])):(a(),d("div",jt,[l(G,{description:"暂无统计数据"})]))]),_:1})),[[I,g.value]])])}}}),Pt=pt(Nt,[["__scopeId","data-v-3355f73c"]]);export{Pt as default};