2 lines
6.7 KiB
JavaScript
2 lines
6.7 KiB
JavaScript
import{D as Q,B as W,P as q,Q as H,G as $,F as A,R as K,i as X,J as Z,L as tt,M as et,N as st,T as at,W as ot,E as lt}from"./element-plus-lurTijPg.js";import{f as nt,k as it}from"./doctor-do1i0Aq_.js";import{f as rt,b as dt,ak as a,I as i,a as o,aN as s,F as f,ap as y,G as v,O as c,H as _t,J as l,aP as ct}from"./@vue/runtime-core-C6bnekPw.js";import{Q as p}from"./@vue/shared-mAAVTE9n.js";import{n as E,r as pt}from"./@vue/reactivity-DiY1c2vO.js";import{_ as ut}from"./index-DU3c9-Jb.js";import"./@vue/runtime-dom-DDAG46FW.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-HOEUG8sr.js";import"./lodash-es-C2A-Pj28.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-QlpZ4wdW.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.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-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";const mt={class:"statistics-page"},ft={key:0},yt={class:"status-overview"},vt={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"},Nt={key:1,class:"text-gray-400"},St={key:1,class:"empty-data"},Ft=rt({__name:"tongji",setup(Rt){const g=E(!1),x=E([]),h=E([]),_=E([]),r=pt({doctor_id:"",time_type:"today",start_date:"",end_date:""}),S=async()=>{try{const e=await nt({role_id:1});x.value=e.lists||[]}catch(e){console.error("获取医生列表失败:",e)}},V=async()=>{g.value=!0;try{const e={time_type:r.time_type};r.doctor_id&&(e.doctor_id=r.doctor_id),r.time_type==="custom"&&_.value&&_.value.length===2&&(e.start_date=_.value[0],e.end_date=_.value[1]);const t=await it(e);h.value=t.lists||[],h.value.forEach(d=>{d.dept_status_details||(d.dept_status_details=[]),d.channel_status_details||(d.channel_status_details=[])})}catch(e){console.error("获取统计数据错误:",e),lt.error(e.msg||"获取统计数据失败")}finally{g.value=!1}},F=()=>{r.time_type!=="custom"&&(_.value=[])},R=()=>{r.doctor_id="",r.time_type="today",_.value=[],V()},j=e=>e.statuses?Object.values(e.statuses).reduce((t,d)=>t+d,0):0,O=e=>e.statuses?Object.values(e.statuses).reduce((t,d)=>t+d,0):0,D=e=>({1:"已挂号",2:"已取消",3:"已完成",4:"已过号"})[e]||`状态${e}`,M=e=>({1:"info",2:"danger",3:"success",4:"warning"})[e]||"default";return dt(()=>{S(),V()}),(e,t)=>{const d=H,P=q,b=W,k=A,Y=$,G=K,B=X,I=Q,L=Z,C=st,N=at,U=et,z=ot,J=tt;return a(),i("div",mt,[o(L,{class:"mb-4",shadow:"hover"},{header:s(()=>[...t[3]||(t[3]=[l("div",{class:"card-header"},[l("span",{class:"card-title"},"筛选条件")],-1)])]),default:s(()=>[o(I,{inline:!0,model:r,class:"filter-form"},{default:s(()=>[o(b,{label:"医生"},{default:s(()=>[o(P,{modelValue:r.doctor_id,"onUpdate:modelValue":t[0]||(t[0]=n=>r.doctor_id=n),placeholder:"全部医生",clearable:"",filterable:"",style:{width:"200px"}},{default:s(()=>[(a(!0),i(f,null,y(x.value,n=>(a(),v(d,{key:n.id,label:n.name,value:n.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(b,{label:"时间范围"},{default:s(()=>[o(Y,{modelValue:r.time_type,"onUpdate:modelValue":t[1]||(t[1]=n=>r.time_type=n),onChange:F},{default:s(()=>[o(k,{label:"today"},{default:s(()=>[...t[4]||(t[4]=[c("今天",-1)])]),_:1}),o(k,{label:"week"},{default:s(()=>[...t[5]||(t[5]=[c("最近7天",-1)])]),_:1}),o(k,{label:"month"},{default:s(()=>[...t[6]||(t[6]=[c("最近30天",-1)])]),_:1}),o(k,{label:"custom"},{default:s(()=>[...t[7]||(t[7]=[c("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),r.time_type==="custom"?(a(),v(b,{key:0},{default:s(()=>[o(G,{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})):_t("",!0),o(b,null,{default:s(()=>[o(B,{type:"primary",onClick:V,loading:g.value},{default:s(()=>[...t[8]||(t[8]=[c("查询",-1)])]),_:1},8,["loading"]),o(B,{onClick:R},{default:s(()=>[...t[9]||(t[9]=[c("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),ct((a(),v(L,{class:"mb-4",shadow:"hover"},{header:s(()=>[...t[10]||(t[10]=[l("div",{class:"card-header"},[l("span",{class:"card-title"},"医生统计数据")],-1)])]),default:s(()=>[h.value.length>0?(a(),i("div",ft,[o(U,{data:h.value,style:{width:"100%"},"header-cell-style":{background:"#f5f7fa",color:"#606266",fontWeight:"600"}},{default:s(()=>[o(C,{prop:"doctor_name",label:"医生姓名",width:"120"}),o(C,{label:"状态明细","min-width":"700"},{default:s(({row:n})=>[l("div",yt,[l("div",vt,[t[11]||(t[11]=l("h4",{class:"section-title"},"部门状态",-1)),n.dept_status_details&&n.dept_status_details.length>0?(a(),i("div",gt,[l("div",ht,[(a(!0),i(f,null,y(n.dept_status_details,(u,w)=>(a(),i("div",{key:w,class:"dept-item"},[l("div",bt,[l("span",kt,p(u.dept_name),1),l("span",Et,"("+p(j(u))+")",1)]),l("div",Vt,[(a(!0),i(f,null,y(u.statuses,(T,m)=>(a(),v(N,{key:m,type:M(m),size:"small",class:"compact-tag"},{default:s(()=>[c(p(D(m))+": "+p(T),1)]),_:2},1032,["type"]))),128))])]))),128))])])):(a(),i("span",Ct,"暂无部门状态明细"))]),l("div",wt,[t[12]||(t[12]=l("h4",{class:"section-title"},"渠道状态",-1)),n.channel_status_details&&n.channel_status_details.length>0?(a(),i("div",Tt,[l("div",xt,[(a(!0),i(f,null,y(n.channel_status_details,(u,w)=>(a(),i("div",{key:w,class:"channel-item"},[l("div",Dt,[l("span",Mt,p(u.channel_name),1),l("span",Bt,"("+p(O(u))+")",1)]),l("div",Lt,[(a(!0),i(f,null,y(u.statuses,(T,m)=>(a(),v(N,{key:m,type:M(m),size:"small",class:"compact-tag"},{default:s(()=>[c(p(D(m))+": "+p(T),1)]),_:2},1032,["type"]))),128))])]))),128))])])):(a(),i("span",Nt,"暂无渠道状态明细"))])])]),_:1}),o(C,{prop:"time_range",label:"统计时间","min-width":"200"})]),_:1},8,["data"])])):(a(),i("div",St,[o(z,{description:"暂无统计数据"})]))]),_:1})),[[J,g.value]])])}}}),be=ut(Ft,[["__scopeId","data-v-aa7d2a93"]]);export{be as default};
|