Files
zyt/server/public/admin/assets/tongji-BnIC7erq.js
T
2026-03-27 18:06:12 +08:00

2 lines
6.5 KiB
JavaScript

import{D as J,B as O,P as Q,Q as q,G as H,F as W,X,i as A,J as K,M as Z,N as $,U as tt,T as et,L as ot,E as at}from"./element-plus-D9NzL5HE.js";import{d as lt,e as st}from"./doctor-B06wExqo.js";import{f as nt,b as rt,ak as r,I as _,a as o,aN as t,F as k,ap as w,G as c,O as n,H as x,aP as it,J as g}from"./@vue/runtime-core-C0pg79pw.js";import{Q as m,o as dt}from"./@vue/shared-mAAVTE9n.js";import{o as b,r as mt}from"./@vue/reactivity-BIbyPIZJ.js";import{a as pt}from"./index-D54sWaXv.js";import"./@vue/runtime-dom-iFk_KP8y.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-BZWa1PtL.js";import"./lodash-es-BADexyn7.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-CYz6RFzi.js";import"./pinia-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const _t={class:"statistics-page"},ct={class:"dept-stats"},ut={key:0,class:"text-gray-400"},ft={class:"channel-stats"},yt={key:0,class:"text-gray-400"},gt={class:"font-semibold text-blue-600"},bt=nt({__name:"tongji",setup(vt){const u=b(!1),C=b([]),V=b([]),d=b([]),s=mt({doctor_id:"",time_type:"today",start_date:"",end_date:""}),B=async()=>{try{const a=await lt({role_id:1});C.value=a.lists||[]}catch(a){console.error("获取医生列表失败:",a)}},v=async()=>{u.value=!0;try{const a={time_type:s.time_type};s.doctor_id&&(a.doctor_id=s.doctor_id),s.time_type==="custom"&&d.value&&d.value.length===2&&(a.start_date=d.value[0],a.end_date=d.value[1]);const l=await st(a);V.value=l.lists||[]}catch(a){console.error("获取统计数据错误:",a),at.error(a.msg||"获取统计数据失败")}finally{u.value=!1}},L=()=>{s.time_type!=="custom"&&(d.value=[])},T=()=>{s.doctor_id="",s.time_type="today",d.value=[],v()},N=a=>a>=80?"text-green-600 font-semibold":a>=60?"text-blue-600 font-semibold":a>=40?"text-orange-600 font-semibold":"text-red-600 font-semibold",S=a=>!a||a==="未分配"?[]:a.split(" ").filter(l=>l.trim()),F=a=>!a||a==="未设置"?[]:a.split(" ").filter(l=>l.trim());return rt(()=>{B(),v()}),(a,l)=>{const M=q,R=Q,f=O,y=W,P=H,U=X,D=A,Y=J,z=K,i=$,p=tt,G=et,I=Z,j=ot;return r(),_("div",_t,[o(z,{shadow:"never",class:"!border-none"},{default:t(()=>[o(Y,{inline:!0,model:s,class:"filter-form"},{default:t(()=>[o(f,{label:"医生"},{default:t(()=>[o(R,{modelValue:s.doctor_id,"onUpdate:modelValue":l[0]||(l[0]=e=>s.doctor_id=e),placeholder:"全部医生",clearable:"",filterable:"",style:{width:"200px"}},{default:t(()=>[(r(!0),_(k,null,w(C.value,e=>(r(),c(M,{key:e.id,label:e.name,value:e.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(f,{label:"时间范围"},{default:t(()=>[o(P,{modelValue:s.time_type,"onUpdate:modelValue":l[1]||(l[1]=e=>s.time_type=e),onChange:L},{default:t(()=>[o(y,{label:"today"},{default:t(()=>[...l[3]||(l[3]=[n("今天",-1)])]),_:1}),o(y,{label:"week"},{default:t(()=>[...l[4]||(l[4]=[n("最近7天",-1)])]),_:1}),o(y,{label:"month"},{default:t(()=>[...l[5]||(l[5]=[n("最近30天",-1)])]),_:1}),o(y,{label:"custom"},{default:t(()=>[...l[6]||(l[6]=[n("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),s.time_type==="custom"?(r(),c(f,{key:0},{default:t(()=>[o(U,{modelValue:d.value,"onUpdate:modelValue":l[2]||(l[2]=e=>d.value=e),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"260px"}},null,8,["modelValue"])]),_:1})):x("",!0),o(f,null,{default:t(()=>[o(D,{type:"primary",onClick:v,loading:u.value},{default:t(()=>[...l[7]||(l[7]=[n("查询",-1)])]),_:1},8,["loading"]),o(D,{onClick:T},{default:t(()=>[...l[8]||(l[8]=[n("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),o(z,{shadow:"never",class:"!border-none mt-4"},{default:t(()=>[it((r(),c(I,{data:V.value,border:"",stripe:"",style:{width:"100%"},"header-cell-style":{background:"#f5f7fa",color:"#606266",fontWeight:"600"}},{empty:t(()=>[o(G,{description:"暂无统计数据"})]),default:t(()=>[o(i,{prop:"doctor_name",label:"医生姓名",width:"120",fixed:""}),o(i,{label:"部门统计","min-width":"250",fixed:""},{default:t(({row:e})=>[g("div",ct,[(r(!0),_(k,null,w(S(e.dept_stats),(h,E)=>(r(),c(p,{key:E,type:"primary",size:"small",class:"stat-tag"},{default:t(()=>[n(m(h),1)]),_:2},1024))),128)),!e.dept_stats||e.dept_stats==="未分配"?(r(),_("span",ut,"未分配")):x("",!0)])]),_:1}),o(i,{label:"渠道统计","min-width":"250"},{default:t(({row:e})=>[g("div",ft,[(r(!0),_(k,null,w(F(e.channel_stats),(h,E)=>(r(),c(p,{key:E,type:"success",size:"small",class:"stat-tag"},{default:t(()=>[n(m(h),1)]),_:2},1024))),128)),!e.channel_stats||e.channel_stats==="未设置"?(r(),_("span",yt,"未设置")):x("",!0)])]),_:1}),o(i,{prop:"total_count",label:"总诊单",width:"90",align:"center"},{default:t(({row:e})=>[g("span",gt,m(e.total_count),1)]),_:1}),o(i,{prop:"registered_count",label:"已挂号",width:"90",align:"center"},{default:t(({row:e})=>[o(p,{type:"info",size:"small"},{default:t(()=>[n(m(e.registered_count),1)]),_:2},1024)]),_:1}),o(i,{prop:"completed_count",label:"已完成",width:"90",align:"center"},{default:t(({row:e})=>[o(p,{type:"success",size:"small"},{default:t(()=>[n(m(e.completed_count),1)]),_:2},1024)]),_:1}),o(i,{prop:"missed_count",label:"已过号",width:"90",align:"center"},{default:t(({row:e})=>[o(p,{type:"warning",size:"small"},{default:t(()=>[n(m(e.missed_count),1)]),_:2},1024)]),_:1}),o(i,{prop:"cancelled_count",label:"已取消",width:"90",align:"center"},{default:t(({row:e})=>[o(p,{type:"danger",size:"small"},{default:t(()=>[n(m(e.cancelled_count),1)]),_:2},1024)]),_:1}),o(i,{prop:"completion_rate",label:"完成率",width:"100",align:"center"},{default:t(({row:e})=>[g("span",{class:dt(N(e.completion_rate))},m(e.completion_rate)+"% ",3)]),_:1}),o(i,{prop:"time_range",label:"统计时间","min-width":"200"})]),_:1},8,["data"])),[[j,u.value]])]),_:1})])}}}),le=pt(bt,[["__scopeId","data-v-facf7557"]]);export{le as default};