import{G as nt,F as dt,I as ut,H as mt,z as pt,i as ct,M as vt,W as _t,Q as ft,E as yt}from"./element-plus-DDINy080.js";import{H as gt}from"./vue-echarts-BNtg2q_G.js";import{r as ht,s as bt}from"./stats-Bz24MGMf.js";import{h as kt}from"./perm-BnhoH_X2.js";import{f as O,b as xt,ak as l,I as p,a as i,aN as o,O as d,G as h,H as B,J as s,F as x,ap as L,aP as wt,A as m}from"./@vue/runtime-core-C6bnekPw.js";import{o as I,Q as u}from"./@vue/shared-mAAVTE9n.js";import{y as A,n as b,r as H}from"./@vue/reactivity-DiY1c2vO.js";import{_ as Nt}from"./index-CucNzNKR.js";import"./@vue/runtime-dom-DDAG46FW.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-CbYn5zW9.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"./resize-detector-G6vbKCU7.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.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"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";const $t={class:"assistant-performance-page"},Ct={class:"stats-kpi-grid"},Mt={class:"stats-kpi-label"},Vt={class:"card-header"},Rt={class:"card-hint"},Ft={class:"card-header"},Et={class:"card-header-left"},St={class:"card-hint"},Dt={class:"revisit-rate-body"},Yt={key:0,class:"revisit-kpi-grid"},Pt={class:"revisit-kpi-card"},Tt={class:"revisit-kpi-value"},zt={class:"revisit-kpi-card"},Bt={class:"revisit-kpi-value"},Lt={class:"revisit-kpi-card is-primary"},It={class:"revisit-kpi-value"},At={class:"revisit-kpi-sub"},Ht={class:"stats-kpi-label"},Ot={class:"revisit-kpi-value"},Gt={class:"revisit-kpi-sub"},Ut={class:"revisit-caliber"},Qt=O({name:"assistantPerformancePage"}),jt=O({...Qt,setup(qt){const w=b(!1),c=b([]),v=H({time_type:"month",start_date:"",end_date:""}),n=H({date_range:[],summary:{total_amount:0,total_count:0},chart:{dates:[],amounts:[],counts:[]}}),G=[{key:"total_amount",label:"业绩",type:"money",cardClass:""},{key:"total_count",label:"有效订单数",type:"count",cardClass:""}],U=m(()=>{var e;return(e=n.date_range)!=null&&e.length?`${n.date_range[0]} 至 ${n.date_range[1]}`:"未选择"}),Q=m(()=>n.chart.dates.length>0&&n.chart.amounts.some(e=>e>0)),j=m(()=>({tooltip:{trigger:"axis",formatter:e=>{const t=e[0];return`${t.axisValue}
${t.marker}${t.seriesName}: ¥${Number(t.value).toFixed(2)}`}},grid:{left:60,right:24,top:36,bottom:36},xAxis:{type:"category",data:n.chart.dates,axisLabel:{interval:n.chart.dates.length>15?"auto":0,rotate:n.chart.dates.length>10?30:0}},yAxis:{type:"value",name:"金额(元)",axisLabel:{formatter:e=>e>=1e4?(e/1e4).toFixed(1)+"万":String(e)}},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:n.chart.amounts}]})),q=(e,t)=>{var k;const r=((k=n.summary)==null?void 0:k[e])??0;return t==="money"?`¥${Number(r).toFixed(2)}`:String(r)},g=async()=>{w.value=!0;try{const e={time_type:v.time_type};v.time_type==="custom"&&(e.start_date=c.value[0]||"",e.end_date=c.value[1]||"");const t=await ht(e);Object.assign(n,t||{})}catch(e){console.error("获取业绩数据失败:",e),yt.error((e==null?void 0:e.msg)||"获取业绩数据失败")}finally{w.value=!1}},J=()=>{v.time_type!=="custom"&&(c.value=[],g())},W=()=>{var e;((e=c.value)==null?void 0:e.length)===2&&g()},K=()=>{v.time_type="month",c.value=[],g()},V=kt(["stats.assistantPerformance/revisitRate"]),R=new Date,F=`${R.getFullYear()}-${String(R.getMonth()+1).padStart(2,"0")}`,y=b(F),N=b(!1),_=b(null),f=m(()=>{var e;return((e=_.value)==null?void 0:e.row)??null}),X=m(()=>{var e;return((e=_.value)==null?void 0:e.inherit_mode)??"slot"}),Z=m(()=>{var e;return(((e=_.value)==null?void 0:e.slots)??[]).map(t=>Number(t)).filter(t=>t>=2)}),tt=m(()=>{var r;const[e,t]=(((r=_.value)==null?void 0:r.month)||y.value).split("-");return e&&t?`${e} 年 ${Number(t)} 月`:y.value}),et=m(()=>_.value&&_.value.in_scope===!1?"暂无数据(仅二中心医助统计)":y.value===F?"本月暂无被指派患者":"该月暂无被指派患者"),st=e=>{const t=new Date;return e.getFullYear()*12+e.getMonth()>t.getFullYear()*12+t.getMonth()},E=["零","一","二","三","四","五","六","七","八","九","十"],at=e=>e>=2&&e<=10?`${E[e]}诊`:e>10&&e<20?`十${E[e-10]}诊`:`${e}诊`,S=e=>e==null||e===""?"—":`${Number(e)}%`,$=(e,t)=>{var r;return(r=f.value)==null?void 0:r[`visit${e}_${t}`]},D=(e,t)=>`成交 ${Number(e??0)} 单 / 分母 ${Number(t??0)}`,ot=e=>D($(e,"count"),$(e,"den")),it=m(()=>{var e,t;return D((e=f.value)==null?void 0:e.visit_all_count,(t=f.value)==null?void 0:t.visit_all_den)}),Y=async()=>{if(V){N.value=!0;try{_.value=await bt({month:y.value})}catch{}finally{N.value=!1}}};return xt(()=>{g(),Y()}),(e,t)=>{const r=mt,k=ut,C=dt,P=pt,T=ct,rt=nt,M=vt,z=_t,lt=ft;return l(),p("div",$t,[i(M,{class:"!border-none",shadow:"never"},{default:o(()=>[i(rt,{inline:!0,class:"stats-filter-form"},{default:o(()=>[i(C,{label:"时间范围"},{default:o(()=>[i(k,{modelValue:v.time_type,"onUpdate:modelValue":t[0]||(t[0]=a=>v.time_type=a),onChange:J},{default:o(()=>[i(r,{label:"today"},{default:o(()=>[...t[3]||(t[3]=[d("今天",-1)])]),_:1}),i(r,{label:"yesterday"},{default:o(()=>[...t[4]||(t[4]=[d("昨天",-1)])]),_:1}),i(r,{label:"week"},{default:o(()=>[...t[5]||(t[5]=[d("最近7天",-1)])]),_:1}),i(r,{label:"month"},{default:o(()=>[...t[6]||(t[6]=[d("最近30天",-1)])]),_:1}),i(r,{label:"custom"},{default:o(()=>[...t[7]||(t[7]=[d("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),v.time_type==="custom"?(l(),h(C,{key:0},{default:o(()=>[i(P,{modelValue:c.value,"onUpdate:modelValue":t[1]||(t[1]=a=>c.value=a),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",style:{width:"260px"},onChange:W},null,8,["modelValue"])]),_:1})):B("",!0),i(C,null,{default:o(()=>[i(T,{type:"primary",loading:w.value,onClick:g},{default:o(()=>[...t[8]||(t[8]=[d("查询",-1)])]),_:1},8,["loading"]),i(T,{onClick:K},{default:o(()=>[...t[9]||(t[9]=[d("重置",-1)])]),_:1})]),_:1})]),_:1})]),_:1}),s("div",Ct,[(l(),p(x,null,L(G,a=>s("div",{key:a.key,class:I(["stats-kpi-card",a.cardClass])},[s("div",Mt,u(a.label),1),s("div",{class:I(["stats-kpi-value",{"is-money":a.type==="money"}])},u(q(a.key,a.type)),3)],2)),64))]),i(M,{class:"!border-none mt-4",shadow:"never"},{header:o(()=>[s("div",Vt,[t[10]||(t[10]=s("span",{class:"card-title"},"业绩趋势",-1)),s("span",Rt,u(U.value)+" · 履约完成业绩",1)])]),default:o(()=>[Q.value?(l(),h(A(gt),{key:0,class:"stats-chart",option:j.value,autoresize:""},null,8,["option"])):(l(),h(z,{key:1,description:"暂无数据"}))]),_:1}),A(V)?(l(),h(M,{key:0,class:"!border-none mt-4",shadow:"never"},{header:o(()=>[s("div",Ft,[s("div",Et,[t[11]||(t[11]=s("span",{class:"card-title"},"我的复诊接诊率",-1)),i(P,{modelValue:y.value,"onUpdate:modelValue":t[2]||(t[2]=a=>y.value=a),type:"month","value-format":"YYYY-MM",placeholder:"选择月份",clearable:!1,"disabled-date":st,size:"small",style:{width:"130px"},onChange:Y},null,8,["modelValue"])]),s("span",St,u(tt.value)+" · 与「复诊接诊率」报表同口径",1)])]),default:o(()=>[wt((l(),p("div",Dt,[f.value?(l(),p("div",Yt,[s("div",Pt,[t[12]||(t[12]=s("div",{class:"stats-kpi-label"},"新指派数",-1)),s("div",Tt,u(Number(f.value.assigned_count??0)),1),t[13]||(t[13]=s("div",{class:"revisit-kpi-sub"},"当月新指派给我的患者",-1))]),s("div",zt,[t[14]||(t[14]=s("div",{class:"stats-kpi-label"},"继承数",-1)),s("div",Bt,u(Number(f.value.inherit_count??0)),1),t[15]||(t[15]=s("div",{class:"revisit-kpi-sub"},"当月继承给我的患者",-1))]),s("div",Lt,[t[16]||(t[16]=s("div",{class:"stats-kpi-label"},"复诊合计接诊率",-1)),s("div",It,u(S(f.value.visit_all_rate)),1),s("div",At,u(it.value),1)]),(l(!0),p(x,null,L(Z.value,a=>(l(),p("div",{key:a,class:"revisit-kpi-card"},[s("div",Ht,u(at(a))+"接诊率",1),s("div",Ot,u(S($(a,"rate"))),1),s("div",Gt,u(ot(a)),1)]))),128))])):(l(),h(z,{key:1,description:et.value,"image-size":72},null,8,["description"])),s("div",Ut,[t[17]||(t[17]=d(" 口径:N 诊接诊率 = 当月 N 诊成交单数 ÷ N 诊分母(新指派数 + 起算诊次 ≤ N 的继承数),分母为 0 显示「—」; ",-1)),X.value==="exclude"?(l(),p(x,{key:0},[d("当前为旧口径,继承患者不计入分母;")],64)):(l(),p(x,{key:1},[d("继承患者按继承时诊次从第 k+1 诊起计入;")],64)),t[18]||(t[18]=d(" 复诊合计 = 各诊次成交单数之和 ÷ 被指派合计(新指派 ∪ 继承),可超过 100%。 ",-1))])])),[[lt,N.value]])]),_:1})):B("",!0)])}}}),Te=Nt(jt,[["__scopeId","data-v-707b9a96"]]);export{Te as default};