Files
zyt/server/public/admin/assets/index-CRapUBJO.js
T
2026-10-17 16:57:45 +08:00

2 lines
8.0 KiB
JavaScript

import{o as U,ap as re,q as n,r as m,v as l,D as o,bd as de,bb as ue,bf as ce,be as me,L as d,O as g,az as ve,P as z,K as pe,bj as _e,s,F as x,G as B,ae as O,T as u,u as A,cL as fe,bC as ye,ac as be,bn as ge,M as h,aC as I,p as c,E as he}from"./.pnpm-CyuAWpdG.js";import{r as ke,s as xe}from"./stats-B9TgZYZ_.js";import{h as we}from"./perm-CHCBwnFR.js";import{_ as Ce}from"./index-Bkarz3gO.js";const Ne={class:"assistant-performance-page"},$e={class:"stats-kpi-grid"},Me={class:"stats-kpi-label"},Ve={class:"card-header"},Re={class:"card-hint"},Ee={class:"card-header"},Fe={class:"card-header-left"},De={class:"card-hint"},Se={class:"revisit-rate-body"},Ye={key:0,class:"revisit-kpi-grid"},Te={class:"revisit-kpi-card"},Pe={class:"revisit-kpi-value"},Le={class:"revisit-kpi-card"},ze={class:"revisit-kpi-value"},Be={class:"revisit-kpi-card is-primary"},Oe={class:"revisit-kpi-value"},Ae={class:"revisit-kpi-sub"},Ie={class:"stats-kpi-label"},Ue={class:"revisit-kpi-value"},je={class:"revisit-kpi-sub"},qe={class:"revisit-caliber"},Ge=U({name:"assistantPerformancePage"}),He=U({...Ge,setup(Ke){const w=h(!1),v=h([]),p=I({time_type:"month",start_date:"",end_date:""}),r=I({date_range:[],summary:{total_amount:0,total_count:0},chart:{dates:[],amounts:[],counts:[]}}),j=[{key:"total_amount",label:"业绩",type:"money",cardClass:""},{key:"total_count",label:"有效订单数",type:"count",cardClass:""}],q=c(()=>{var t;return(t=r.date_range)!=null&&t.length?`${r.date_range[0]} 至 ${r.date_range[1]}`:"未选择"}),G=c(()=>r.chart.dates.length>0&&r.chart.amounts.some(t=>t>0)),H=c(()=>({tooltip:{trigger:"axis",formatter:t=>{const e=t[0];return`${e.axisValue}<br/>${e.marker}${e.seriesName}: ¥${Number(e.value).toFixed(2)}`}},grid:{left:60,right:24,top:36,bottom:36},xAxis:{type:"category",data:r.chart.dates,axisLabel:{interval:r.chart.dates.length>15?"auto":0,rotate:r.chart.dates.length>10?30:0}},yAxis:{type:"value",name:"金额(元)",axisLabel:{formatter:t=>t>=1e4?(t/1e4).toFixed(1)+"万":String(t)}},series:[{name:"业绩",type:"line",smooth:!0,showSymbol:!0,symbolSize:6,lineStyle:{width:3,color:"#4a78ff"},itemStyle:{color:"#4a78ff"},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(74, 120, 255, 0.25)"},{offset:1,color:"rgba(74, 120, 255, 0.02)"}]}},data:r.chart.amounts}]})),K=(t,e)=>{var k;const i=((k=r.summary)==null?void 0:k[t])??0;return e==="money"?`¥${Number(i).toFixed(2)}`:String(i)},b=async()=>{w.value=!0;try{const t={time_type:p.time_type};p.time_type==="custom"&&(t.start_date=v.value[0]||"",t.end_date=v.value[1]||"");const e=await ke(t);Object.assign(r,e||{})}catch(t){console.error("获取业绩数据失败:",t),he.error((t==null?void 0:t.msg)||"获取业绩数据失败")}finally{w.value=!1}},J=()=>{p.time_type!=="custom"&&(v.value=[],b())},Q=()=>{var t;((t=v.value)==null?void 0:t.length)===2&&b()},W=()=>{p.time_type="month",v.value=[],b()},V=we(["stats.assistantPerformance/revisitRate"]),R=new Date,E=`${R.getFullYear()}-${String(R.getMonth()+1).padStart(2,"0")}`,y=h(E),C=h(!1),_=h(null),f=c(()=>{var t;return((t=_.value)==null?void 0:t.row)??null}),X=c(()=>{var t;return((t=_.value)==null?void 0:t.inherit_mode)??"slot"}),Z=c(()=>{var t;return(((t=_.value)==null?void 0:t.slots)??[]).map(e=>Number(e)).filter(e=>e>=2)}),ee=c(()=>{var i;const[t,e]=(((i=_.value)==null?void 0:i.month)||y.value).split("-");return t&&e?`${t} 年 ${Number(e)} 月`:y.value}),te=c(()=>_.value&&_.value.in_scope===!1?"暂无数据(仅二中心医助统计)":y.value===E?"本月暂无被指派患者":"该月暂无被指派患者"),se=t=>{const e=new Date;return t.getFullYear()*12+t.getMonth()>e.getFullYear()*12+e.getMonth()},F=["零","一","二","三","四","五","六","七","八","九","十"],ae=t=>t>=2&&t<=10?`${F[t]}诊`:t>10&&t<20?`十${F[t-10]}诊`:`${t}诊`,D=t=>t==null||t===""?"—":`${Number(t)}%`,N=(t,e)=>{var i;return(i=f.value)==null?void 0:i[`visit${t}_${e}`]},S=(t,e)=>`成交 ${Number(t??0)} 单 / 分母 ${Number(e??0)}`,oe=t=>S(N(t,"count"),N(t,"den")),le=c(()=>{var t,e;return S((t=f.value)==null?void 0:t.visit_all_count,(e=f.value)==null?void 0:e.visit_all_den)}),Y=async()=>{if(V){C.value=!0;try{_.value=await xe({month:y.value})}catch{}finally{C.value=!1}}};return re(()=>{b(),Y()}),(t,e)=>{const i=me,k=ce,$=ue,T=ve,P=pe,ie=de,M=_e,L=ye,ne=ge;return n(),m("div",Ne,[l(M,{class:"!border-none",shadow:"never"},{default:o(()=>[l(ie,{inline:!0,class:"stats-filter-form"},{default:o(()=>[l($,{label:"时间范围"},{default:o(()=>[l(k,{modelValue:p.time_type,"onUpdate:modelValue":e[0]||(e[0]=a=>p.time_type=a),onChange:J},{default:o(()=>[l(i,{label:"today"},{default:o(()=>[...e[3]||(e[3]=[d("今天",-1)])]),_:1}),l(i,{label:"yesterday"},{default:o(()=>[...e[4]||(e[4]=[d("昨天",-1)])]),_:1}),l(i,{label:"week"},{default:o(()=>[...e[5]||(e[5]=[d("最近7天",-1)])]),_:1}),l(i,{label:"month"},{default:o(()=>[...e[6]||(e[6]=[d("最近30天",-1)])]),_:1}),l(i,{label:"custom"},{default:o(()=>[...e[7]||(e[7]=[d("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),p.time_type==="custom"?(n(),g($,{key:0},{default:o(()=>[l(T,{modelValue:v.value,"onUpdate:modelValue":e[1]||(e[1]=a=>v.value=a),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",style:{width:"260px"},onChange:Q},null,8,["modelValue"])]),_:1})):z("",!0),l($,null,{default:o(()=>[l(P,{type:"primary",loading:w.value,onClick:b},{default:o(()=>[...e[8]||(e[8]=[d("查询",-1)])]),_:1},8,["loading"]),l(P,{onClick:W},{default:o(()=>[...e[9]||(e[9]=[d("重置",-1)])]),_:1})]),_:1})]),_:1})]),_:1}),s("div",$e,[(n(),m(x,null,B(j,a=>s("div",{key:a.key,class:O(["stats-kpi-card",a.cardClass])},[s("div",Me,u(a.label),1),s("div",{class:O(["stats-kpi-value",{"is-money":a.type==="money"}])},u(K(a.key,a.type)),3)],2)),64))]),l(M,{class:"!border-none mt-4",shadow:"never"},{header:o(()=>[s("div",Ve,[e[10]||(e[10]=s("span",{class:"card-title"},"业绩趋势",-1)),s("span",Re,u(q.value)+" · 履约完成业绩",1)])]),default:o(()=>[G.value?(n(),g(A(fe),{key:0,class:"stats-chart",option:H.value,autoresize:""},null,8,["option"])):(n(),g(L,{key:1,description:"暂无数据"}))]),_:1}),A(V)?(n(),g(M,{key:0,class:"!border-none mt-4",shadow:"never"},{header:o(()=>[s("div",Ee,[s("div",Fe,[e[11]||(e[11]=s("span",{class:"card-title"},"我的复诊接诊率",-1)),l(T,{modelValue:y.value,"onUpdate:modelValue":e[2]||(e[2]=a=>y.value=a),type:"month","value-format":"YYYY-MM",placeholder:"选择月份",clearable:!1,"disabled-date":se,size:"small",style:{width:"130px"},onChange:Y},null,8,["modelValue"])]),s("span",De,u(ee.value)+" · 与「复诊接诊率」报表同口径",1)])]),default:o(()=>[be((n(),m("div",Se,[f.value?(n(),m("div",Ye,[s("div",Te,[e[12]||(e[12]=s("div",{class:"stats-kpi-label"},"新指派数",-1)),s("div",Pe,u(Number(f.value.assigned_count??0)),1),e[13]||(e[13]=s("div",{class:"revisit-kpi-sub"},"当月新指派给我的患者",-1))]),s("div",Le,[e[14]||(e[14]=s("div",{class:"stats-kpi-label"},"继承数",-1)),s("div",ze,u(Number(f.value.inherit_count??0)),1),e[15]||(e[15]=s("div",{class:"revisit-kpi-sub"},"当月继承给我的患者",-1))]),s("div",Be,[e[16]||(e[16]=s("div",{class:"stats-kpi-label"},"复诊合计接诊率",-1)),s("div",Oe,u(D(f.value.visit_all_rate)),1),s("div",Ae,u(le.value),1)]),(n(!0),m(x,null,B(Z.value,a=>(n(),m("div",{key:a,class:"revisit-kpi-card"},[s("div",Ie,u(ae(a))+"接诊率",1),s("div",Ue,u(D(N(a,"rate"))),1),s("div",je,u(oe(a)),1)]))),128))])):(n(),g(L,{key:1,description:te.value,"image-size":72},null,8,["description"])),s("div",qe,[e[17]||(e[17]=d(" 口径:N 诊接诊率 = 当月 N 诊成交单数 ÷ N 诊分母(新指派数 + 起算诊次 ≤ N 的继承数),分母为 0 显示「—」; ",-1)),X.value==="exclude"?(n(),m(x,{key:0},[d("当前为旧口径,继承患者不计入分母;")],64)):(n(),m(x,{key:1},[d("继承患者按继承时诊次从第 k+1 诊起计入;")],64)),e[18]||(e[18]=d(" 复诊合计 = 各诊次成交单数之和 ÷ 被指派合计(新指派 ∪ 继承),可超过 100%。 ",-1))])])),[[ne,C.value]])]),_:1})):z("",!0)])}}}),Ze=Ce(He,[["__scopeId","data-v-a165c7ab"]]);export{Ze as default};