8 lines
87 KiB
JavaScript
8 lines
87 KiB
JavaScript
import{P as rl,Q as dl,ag as ul,Z as cl,L as _l,R as pl,i as ml,d as vl,J as fl,m as yl,l as gl,M as hl,N as bl,r as wl,W as kl,ab as jl,ac as xl,U as Sl,e as Nl,V as Cl,E as ee}from"./element-plus-Bolc0EfP.js";import{s as U,w as Dl}from"./@vue/runtime-dom-DDAG46FW.js";import{a as te}from"./axios-C80V62Fs.js";import{O as Ll,x as zl,i as M}from"./@element-plus/icons-vue-B0jSCQ-G.js";import{H as ae}from"./vue-echarts-BNtg2q_G.js";import{h as $l,y as lt,i as Al,j as Pl,k as Rl,l as Tl,m as qt,n as Il,o as Ml,p as Ol,q as El}from"./stats-KGyrVUOV.js";import{d as Vl}from"./finance-DepdtOha.js";import{s as Aa}from"./tcm-zBlkNtrV.js";import{h as Fl}from"./perm-CmvqAz8U.js";import{f as Bl,w as Yl,b as Ul,ak as o,I as u,J as a,a as i,aN as _,F as k,ap as F,G as j,aP as Z,O as c,H as f,A as C}from"./@vue/runtime-core-C6bnekPw.js";import{Q as r,o as ht}from"./@vue/shared-mAAVTE9n.js";import{y as D,n as v}from"./@vue/reactivity-DiY1c2vO.js";import{_ as Hl}from"./index-ZDHvg8Cn.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.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"./@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 Wl={class:"yeji-page"},ql={class:"filter-surface"},Jl={class:"filter-row filter-row--top"},Gl={class:"filter-field"},Zl={class:"channel-opt-row"},Xl={class:"opt-name"},Kl={class:"opt-count"},Ql={class:"filter-field filter-field--wide"},eo={class:"filter-select filter-select--dept filter-dept-tree-wrap"},to={class:"filter-field filter-field--date-top"},ao={class:"filter-actions"},no={class:"filter-quick"},lo={class:"date-pills",role:"group","aria-label":"快捷日期"},oo=["onClick"],so={class:"doctor-daily-card__head"},io={class:"doctor-daily-card__title-block"},ro={key:0,class:"doctor-daily-card__range"},uo={class:"doctor-daily-card__tools"},co={key:0,class:"leaderboards-wrap"},_o={class:"leaderboard-hint"},po={class:"muted"},mo={class:"tables-wrap"},vo={key:0,class:"yeji-table leaderboard-table"},fo={class:"yeji-table__header"},yo={key:0,class:"leaderboard-sub"},go={class:"yeji-table__scroll",tabindex:"0",role:"region","aria-label":"排行榜,可横向滚动"},ho={class:"yeji-table__body yeji-table__body--leaderboard"},bo=["onClick"],wo={class:"col-rank"},ko={class:"col-abbr"},jo={class:"col-name"},xo={class:"col-consult"},So={class:"col-deal"},No=["onClick"],Co={key:0,class:"yeji-lead-cell--link"},Do=["onClick"],Lo={key:0,class:"yeji-lead-cell--link"},zo=["onClick"],$o={key:0,class:"yeji-lead-cell--link"},Ao=["onClick"],Po={key:0,class:"yeji-lead-cell--link"},Ro={class:"yeji-table__foot yeji-table__foot--left"},To={key:0},Io={key:0,class:"empty-tip leaderboard-empty"},Mo={class:"tables-wrap"},Oo={key:0,class:"empty-tip"},Eo={class:"yeji-table__header"},Vo={class:"yeji-table__scroll",tabindex:"0",role:"region","aria-label":"业绩数据表,可横向滚动"},Fo={class:"yeji-table__body yeji-table__body--data"},Bo={style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},Yo={style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},Uo={style:{"max-width":"280px","line-height":"1.7","font-size":"12px"}},Ho={key:0,class:"col-completed col-narrow-head"},Wo={class:"yeji-th-label"},qo={style:{"max-width":"340px","line-height":"1.7","font-size":"12px"}},Jo={key:1,class:"col-completed col-narrow-head"},Go={class:"yeji-th-label"},Zo={style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},Xo={key:2,class:"col-completed col-narrow-head"},Ko={class:"yeji-th-label"},Qo={style:{"max-width":"280px","line-height":"1.7","font-size":"12px"}},es={style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},ts=["onClick"],as={class:"col-dept"},ns=["onClick"],ls={key:0,class:"yeji-lead-cell--link"},os=["onClick"],ss={key:0,class:"yeji-lead-cell--link"},is=["onClick"],rs={key:0,class:"yeji-lead-cell--link"},ds=["onClick"],us={key:0,class:"yeji-lead-cell--link"},cs=["onClick"],_s={key:0,class:"col-completed"},ps=["onClick"],ms=["onClick"],vs={key:0,class:"yeji-lead-cell--link"},fs={key:1,class:"col-completed"},ys={key:2,class:"col-completed"},gs={class:"total-row"},hs=["onClick"],bs={key:0,class:"col-completed"},ws=["onClick"],ks={key:1,class:"col-completed"},js={key:2,class:"col-completed"},xs={class:"yeji-table__foot"},Ss={key:0},Ns={key:1},Cs={class:"tp-matrix-wrap"},Ds={class:"tp-matrix__title"},Ls={class:"tp-matrix",role:"list"},zs={class:"tp-matrix-card__head"},$s={class:"tp-matrix-card__titles"},As={key:0,class:"tp-matrix-card__parent"},Ps={class:"tp-matrix-card__name"},Rs={class:"tp-matrix-card__target"},Ts={class:"tp-matrix-card__table"},Is={class:"tp-matrix-card__num"},Ms={key:0},Os={class:"tp-matrix-card__num"},Es={key:1},Vs={class:"tp-matrix-card__num"},Fs={class:"tp-matrix-card__num tp-matrix-card__num--hot"},Bs={class:"tp-matrix-card__num"},Ys={class:"yeji-charts-stack"},Us={key:0,class:"yeji-chart-block"},Hs={class:"yeji-chart-block__title"},Ws={key:0,class:"yeji-chart-block__sub"},qs={class:"yeji-chart-panel"},Js={class:"yeji-chart-panel"},Gs={class:"yeji-chart-panel"},Zs={class:"yeji-chart-panel"},Xs={class:"yeji-chart-panel"},Ks={key:0,class:"yeji-chart-block"},Qs={class:"yeji-chart-block__title"},ei={class:"yeji-chart-panel"},ti={class:"yeji-chart-panel"},ai={class:"yeji-chart-block__title"},ni={key:0,class:"yeji-chart-block__sub"},li={class:"yeji-chart-block__sub yeji-chart-block__sub--muted"},oi={class:"yeji-chart-panel"},si={class:"yeji-order-drawer__header"},ii={class:"yeji-order-drawer__heading"},ri={class:"yeji-order-drawer__sub"},di={class:"yeji-order-drawer__shell"},ui={class:"yeji-order-drawer__stats",role:"region","aria-label":"订单汇总"},ci={class:"yeji-order-drawer__stat-card"},_i={class:"yeji-order-drawer__stat-value"},pi={class:"yeji-order-drawer__stat-card"},mi={class:"yeji-order-drawer__stat-value"},vi={class:"yeji-order-drawer__stat-card yeji-order-drawer__stat-card--total"},fi={class:"yeji-order-drawer__stat-label"},yi={class:"yeji-order-drawer__stat-note"},gi={class:"yeji-order-drawer__stat-value yeji-order-drawer__stat-value--money"},hi={class:"yeji-order-drawer__stat-card yeji-order-drawer__stat-card--accent"},bi={class:"yeji-order-drawer__stat-label"},wi={class:"yeji-order-drawer__stat-note"},ki={class:"yeji-order-drawer__stat-value yeji-order-drawer__stat-value--money"},ji={key:1,class:"yeji-order-drawer__stat-card yeji-order-drawer__stat-card--accent"},xi={class:"yeji-order-drawer__stat-value yeji-order-drawer__stat-value--money"},Si={key:2,class:"yeji-order-drawer__stat-card yeji-order-drawer__stat-card--muted"},Ni={class:"yeji-order-drawer__stat-value"},Ci={class:"yeji-order-drawer__body"},Di={key:0,class:"yeji-order-appt-lines"},Li={class:"yeji-order-appt-line"},zi={class:"yeji-order-appt-line"},$i={key:0,class:"yeji-order-appt-sub"},Ai={class:"yeji-order-appt-line"},Pi={class:"yeji-order-appt-line yeji-order-appt-line--channel"},Ri={class:"yeji-order-appt-channel-text"},Ti={key:0,class:"yeji-order-appt-sub"},Ii={key:1,class:"yeji-order-appt-empty"},Mi={class:"yeji-order-amt"},Oi={class:"yeji-order-drawer__pager"},Ei={class:"yeji-unassigned-dialog__head"},Vi={class:"yeji-unassigned-dialog__sub"},Fi={key:0,class:"yeji-unassigned-dialog__note"},Bi={class:"yeji-unassigned-dialog__body"},Yi={class:"yeji-unassigned-dialog__head yeji-leadlines-dialog__head"},Ui={class:"yeji-leadlines-dialog__head-main"},Hi={class:"yeji-unassigned-dialog__sub"},Wi={key:0,class:"yeji-unassigned-dialog__note"},qi={class:"yeji-unassigned-dialog__body"},Ji={key:2,class:"yeji-leadlines-dialog__pager"},Gi={class:"yeji-unassigned-dialog__head"},Zi={class:"yeji-unassigned-dialog__sub"},Xi={key:0,class:"yeji-unassigned-dialog__note"},Ki={class:"yeji-unassigned-dialog__body"},Qi={key:2,class:"yeji-leadlines-dialog__pager"},er={class:"yeji-unassigned-dialog__head"},tr={class:"yeji-unassigned-dialog__sub"},ar={key:0,class:"yeji-unassigned-dialog__note"},nr={class:"yeji-unassigned-dialog__body"},lr=["onClick","onKeydown"],or={class:"yeji-unassigned-dialog__head"},sr={class:"yeji-unassigned-dialog__sub"},ir={key:0,class:"yeji-unassigned-dialog__note"},rr={class:"yeji-unassigned-dialog__body"},dr={key:2,class:"yeji-leadlines-dialog__pager"},Pa=30,ur="stats.yejiStats/tabDoctor",cr="stats.yejiStats/tabLeaderboard",_r="stats.yejiStats/tabZyyt",pr="stats.yejiStats/tabTargetMatrix",mr=Bl({__name:"yeji",setup(vr){function ot(t){return t.some(e=>Fl([e]))}const Ra={value:"id",label:"name",children:"children"};function Ta(t){if(!t.length)return[];const e=new Map;for(const g of t)e.set(g.id,{...g,children:[]});const n=[];for(const g of t){const h=e.get(g.id),w=Number(g.pid);w>0&&e.has(w)?e.get(w).children.push(h):n.push(h)}const s=g=>{var h;(h=g.children)!=null&&h.length?g.children.forEach(s):delete g.children};n.forEach(s);const d=g=>{var h;g.sort((w,I)=>{const E=w.name.includes("中心")?-1:1,p=I.name.includes("中心")?-1:1;return E!==p?E-p:w.id-I.id});for(const w of g)(h=w.children)!=null&&h.length&&d(w.children)};return d(n),n}const ne=v(!1),Ce=v([]),bt=v(!1),Ia=C(()=>Ta(Ce.value)),z=v([]),st=v([]),wt=v(!1),x=v(""),H=v(null),re=v([]);function kt(t,e){if(!t||typeof t!="object")return e;for(const n of Object.keys(t)){const s=parseInt(n,10);!Number.isNaN(s)&&s>=2&&(e=Math.max(e,s))}return e}function Ma(t){var n;let e=0;for(const s of t){for(const d of s.rows)e=kt(d.revisit_slots,e);e=kt((n=s.total)==null?void 0:n.revisit_slots,e)}return e}const jt=C(()=>{const t=Math.min(Ma(re.value),Pa);return t<2?[]:Array.from({length:t-1},(e,n)=>n+2)});function Oa(t){if(!t.er_center_subtree)return 0;let e=0;for(const n of t.rows)e=kt(n.revisit_slots,e);return e}function Jt(t){const e=Math.min(Oa(t),Pa);return e<2?[]:Array.from({length:e-1},(n,s)=>s+2)}function it(t){if(t===2)return"复诊2";const e=["三","四","五","六","七","八","九","十"];return t>=3&&t<=10?`复诊${e[t-3]}`:`复诊${t}`}function le(t,e){const n=t==null?void 0:t.revisit_slots;if(!n||typeof n!="object")return 0;const s=n[e]??n[String(e)],d=Number(s);return Number.isFinite(d)?d:0}const S=v(null),de=v(!1),xt=v(!1),De=v(!1),Gt=v(""),qe=v(""),Le=v([]),St=v(!1),ze=v(!1),Zt=v(""),Je=v(""),$e=v([]),Xt=v(null),Nt=v(!1),ue=v(!1),Ge=v(!1),Kt=v(""),Ze=v(""),Ae=v([]),Pe=v(0),Xe=v(1),rt=v(20),Ct=v(null),dt=v(!1),fe=v(!1),Dt=v(""),Re=v(""),ce=v([]),Te=v(0),ye=v(1),Ie=v(20),Lt=v(null),ut=v(!1),ge=v(!1),zt=v(""),Me=v(""),he=v([]),Oe=v(0),be=v(1),Ee=v(20),$t=v(null),Ea=C(()=>ce.value.some(t=>String(t.channel_source??"")!=="")),_e=v("zyyt"),W=C(()=>ot([ur,"stats.doctorDailyStats/overview"])),oe=C(()=>ot([cr,"stats.yejiStats/leaderboard"])),Ve=C(()=>ot([_r,"stats.yejiStats/multi","stats.yejiStats/overview"])),Ke=C(()=>ot([pr,"stats.yejiStats/targetMatrix","stats.yejiStats/multi"])),Va=C(()=>W.value||oe.value||Ve.value||Ke.value);function Qe(){return Ve.value?"zyyt":W.value?"doctor":oe.value?"leaderboard":Ke.value?"zyyt_matrix":"zyyt"}Yl(_e,t=>{(t==="doctor"&&!W.value||t==="leaderboard"&&!oe.value||t==="zyyt"&&!Ve.value||t==="zyyt_matrix"&&!Ke.value)&&(_e.value=Qe())});const Qt=C(()=>{var t;return(((t=S.value)==null?void 0:t.leaderboards)??[]).filter(e=>e.rows.length>0)});function ea(t){return t.rows.some(e=>e.dept_id>0&&(Number(e.lead_count)>0||Number(e.consult_count)>0||Number(e.deal_order_count)>0||Number(e.performance_amount)>0||Number(e.completed_performance_amount)>0))}const Fe=v(!1),B=v([]),pe=v({}),Be=v(null),ct=C(()=>{const t=Be.value;return!(t!=null&&t.start)||!(t!=null&&t.end)?"":t.start===t.end?`区间 ${t.start}`:`区间 ${t.start} ~ ${t.end}`}),At=C(()=>B.value.some(t=>Number(t.deal_amount??0)>0)),Pt=C(()=>B.value.some(t=>Number(t.system_prescription_count??0)>0||Number(t.manual_prescription_count??0)>0)),Fa=C(()=>W.value?At.value||Pt.value||Rt.value||Tt.value||It.value:!1),Ba=C(()=>{if(Fa.value)return!0;if(Ve.value){for(const t of re.value)if(ea(t))return!0}return!!(oe.value&&Qt.value.length>0)}),Rt=C(()=>{const t=pe.value;return Number(t.appointment_completed??0)+Number(t.appointment_missed??0)+Number(t.appointment_cancelled??0)>0}),Ya=C(()=>{const t=pe.value,e=[{value:Number(t.appointment_completed??0),name:"挂号完成"},{value:Number(t.appointment_missed??0),name:"过号"},{value:Number(t.appointment_cancelled??0),name:"取消"}].filter(n=>n.value>0);return{color:["#0d9488","#d97706","#94a3b8"],tooltip:{trigger:"item",formatter:"{b}: {c} ({d}%)"},legend:{bottom:0,type:"scroll",textStyle:{fontSize:10}},series:[{name:"挂号",type:"pie",radius:["42%","68%"],center:["50%","46%"],avoidLabelOverlap:!0,itemStyle:{borderRadius:6,borderColor:"#fff",borderWidth:2},label:{formatter:`{b}
|
||
{c}`,fontSize:11},data:e}]}}),Tt=C(()=>B.value.filter(t=>Number(t.deal_order_count??0)>0&&Number(t.deal_amount??0)>0).length>=2),Ua=C(()=>{const t=B.value.filter(s=>Number(s.deal_order_count??0)>0&&Number(s.deal_amount??0)>0),e=Math.max(...t.map(s=>Number(s.deal_amount)),1),n=t.map(s=>{const d=Number(s.deal_amount);return{name:String(s.doctor_name||"—"),value:[Number(s.deal_order_count),d],symbolSize:12+Math.sqrt(d/e)*26}});return{color:["#2563eb"],tooltip:{trigger:"item",formatter:s=>{var g;const d=(g=s.data)==null?void 0:g.value;return Array.isArray(d)?`${s.data.name}<br/>接诊诊单:${d[0]}<br/>金额:${Number(d[1]).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})} 元`:""}},grid:{left:48,right:24,top:28,bottom:32,containLabel:!0},xAxis:{type:"value",name:"接诊诊单",nameLocation:"middle",nameGap:28,splitLine:{lineStyle:{type:"dashed",opacity:.55}}},yAxis:{type:"value",name:"成交金额",nameLocation:"middle",nameGap:40,splitLine:{lineStyle:{type:"dashed",opacity:.55}}},series:[{type:"scatter",data:n}]}}),It=C(()=>B.value.filter(e=>Number(e.deal_amount??0)+Number(e.deal_order_count??0)+Number(e.system_prescription_count??0)+Number(e.manual_prescription_count??0)>0).length>=2),Ha=C(()=>{const t=[...B.value].filter(p=>Number(p.deal_amount??0)+Number(p.deal_order_count??0)+Number(p.system_prescription_count??0)+Number(p.manual_prescription_count??0)>0).sort((p,L)=>Number(L.deal_amount)-Number(p.deal_amount)).slice(0,5);if(t.length<2)return{radar:{indicator:[]},series:[{type:"radar",data:[]}]};const e=p=>{const L=String(p.doctor_name||"—");return L.length>7?`${L.slice(0,7)}…`:L},n=p=>Number(p.system_prescription_count??0)+Number(p.manual_prescription_count??0),s=p=>{const L=Number(p.avg_deal_amount);if(Number.isFinite(L)&&L>0)return L;const Y=Number(p.deal_order_count);return Y>0?Number(p.deal_amount)/Y:0},d=Math.max(...t.map(p=>Number(p.deal_amount)),1e-9),g=Math.max(...t.map(p=>Number(p.deal_order_count)),1e-9),h=Math.max(...t.map(n),1e-9),w=Math.max(...t.map(p=>Number(p.appointment_completed??0)),1e-9),I=Math.max(...t.map(s),1e-9),E=t.map(p=>({name:e(p),value:[Number(p.deal_amount)/d*100,Number(p.deal_order_count)/g*100,n(p)/h*100,Number(p.appointment_completed??0)/w*100,s(p)/I*100]}));return{color:["#2563eb","#0d9488","#d97706","#7c3aed","#64748b"],tooltip:{trigger:"item"},legend:{bottom:0,type:"scroll",textStyle:{fontSize:10}},radar:{indicator:[{name:"成交金额",max:100},{name:"接诊诊单",max:100},{name:"开方量",max:100},{name:"挂号完成",max:100},{name:"客单价",max:100}],radius:"58%",center:["50%","48%"],splitNumber:4,axisName:{fontSize:10,color:"#64748b"}},series:[{type:"radar",data:E,emphasis:{lineStyle:{width:3}}}]}}),Wa=C(()=>{const t=[...B.value].filter(s=>Number(s.deal_amount??0)>0).sort((s,d)=>Number(d.deal_amount)-Number(s.deal_amount)).slice(0,20),e=t.map(s=>{const d=String(s.doctor_name||"—");return d.length>10?`${d.slice(0,10)}…`:d}),n=t.map(s=>Number(s.deal_amount??0));return{color:["#2563eb"],tooltip:{trigger:"axis",axisPointer:{type:"shadow"},valueFormatter:s=>`${s.toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})} 元`},grid:{left:8,right:16,top:28,bottom:8,containLabel:!0},xAxis:{type:"value",axisLabel:{fontSize:11},splitLine:{lineStyle:{type:"dashed",opacity:.6}}},yAxis:{type:"category",data:[...e].reverse(),axisLabel:{fontSize:11}},series:[{name:"成交金额",type:"bar",data:[...n].reverse(),barMaxWidth:22,itemStyle:{borderRadius:[0,6,6,0]}}]}}),qa=C(()=>{const t=[...B.value].filter(n=>Number(n.system_prescription_count??0)+Number(n.manual_prescription_count??0)>0).sort((n,s)=>Number(s.system_prescription_count??0)+Number(s.manual_prescription_count??0)-(Number(n.system_prescription_count??0)+Number(n.manual_prescription_count??0))).slice(0,14),e=t.map(n=>{const s=String(n.doctor_name||"—");return s.length>6?`${s.slice(0,6)}…`:s});return{tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},legend:{top:0,textStyle:{fontSize:11}},grid:{left:44,right:16,top:32,bottom:e.length>10?72:28},xAxis:{type:"category",data:e,axisLabel:{rotate:e.length>8?32:0,fontSize:10}},yAxis:{type:"value",splitLine:{lineStyle:{type:"dashed",opacity:.6}}},series:[{name:"系统开方",type:"bar",stack:"rx",barMaxWidth:18,data:t.map(n=>Number(n.system_prescription_count??0)),itemStyle:{color:"#2563eb"}},{name:"手动开方",type:"bar",stack:"rx",barMaxWidth:18,data:t.map(n=>Number(n.manual_prescription_count??0)),itemStyle:{color:"#d97706"}}]}});function Ja(){var e,n;const t={};if(x.value&&(t.channel_code=x.value),z.value.length>0&&(t.dept_ids=z.value.join(",")),(e=H.value)!=null&&e[0]&&((n=H.value)!=null&&n[1]))t.start_date=H.value[0],t.end_date=H.value[1];else{const s=gt(new Date);t.start_date=s,t.end_date=s}return t}function ta(t){return Number(t??0).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}function aa(t){if(t==null||t==="")return"—";const e=Number(t);return Number.isFinite(e)?`${e.toFixed(2)}%`:"—"}function Ga(t){const e=pe.value,n=[];return t.columns.forEach((s,d)=>{if(d===0){n[d]="合计";return}switch(s.property){case"system_prescription_count":n[d]=String(e.system_prescription_count??0);break;case"manual_prescription_count":n[d]=String(e.manual_prescription_count??0);break;case"deal_amount":n[d]=`¥ ${ta(e.deal_amount)}`;break;case"deal_order_count":n[d]=String(e.deal_order_count??0);break;case"appointment_total":n[d]=String(e.appointment_total??0);break;case"appointment_completed":n[d]=String(e.appointment_completed??0);break;case"appointment_missed":n[d]=String(e.appointment_missed??0);break;case"appointment_cancelled":n[d]=String(e.appointment_cancelled??0);break;case"appointment_conversion_rate":n[d]=aa(e.appointment_conversion_rate);break;default:n[d]=""}}),n}async function Mt(){if(!W.value){B.value=[],pe.value={},Be.value=null;return}Fe.value=!0;try{const t=await $l(Ja());B.value=(t==null?void 0:t.rows)??[],pe.value=(t==null?void 0:t.total)??{},t!=null&&t.start_date&&(t!=null&&t.end_date)&&(Be.value={start:t.start_date,end:t.end_date})}catch(t){if(te.isCancel(t))return;B.value=[],pe.value={},Be.value=null}finally{Fe.value=!1}}const se=v(!1),we=v(!1),et=v(""),tt=v(""),ke=v([]),_t=v(0),K=v(1),pt=v(15),X=v("channel"),q=v(null),at=v(null),ie=v(null),na=C(()=>{const t=ie.value;if(!t)return null;const e=t.stats_order_amount_performance??t.stats_order_amount_not_cancelled;if(e==null||e==="")return null;const n=Number(e);return Number.isFinite(n)?n:null}),la=C(()=>{const t=ie.value;if(!t||t.stats_yeji_consult_count===void 0||t.stats_yeji_consult_count===null)return null;const e=Number(t.stats_yeji_consult_count);return Number.isFinite(e)?e:null}),Za=C(()=>ke.value.reduce((t,e)=>t+Number(e.amount??0),0)),oa=C(()=>!!x.value&&se.value),Ot=C(()=>{var e;const t=x.value;if(!t)return"";for(const n of st.value){const s=(e=n.channels)==null?void 0:e.find(d=>d.channel_code===t);if(s!=null&&s.channel_name)return String(s.channel_name)}return t}),Xa=C(()=>{const t=q.value;return t&&X.value==="total"?Number.isFinite(t.channelAmount)?t.channelAmount:null:na.value}),Ye=v(null),mt=v(!1);function Ka(){const t=new Date;return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}`}function Qa(t){const[e,n]=t.split("-").map(Number);return new Date(e,n,0).getDate()}async function en(){var t,e,n,s;if(!Ke.value){Ye.value=null;return}mt.value=!0,Ye.value=null;try{let d=function(y,$=0){const A=[];for(const P of y??[])A.push({node:P,depth:$}),A.push(...d(P.children??[],$+1));return A},g=function(y){const $=Ce.value.find(G=>Number(G.id)===y);if(!$)return"";const A=Number($.pid);if(!A)return"";const P=Ce.value.find(G=>Number(G.id)===A);return P!=null&&P.name?String(P.name):""},h=function(y){const $=[],A=[y];for(;A.length;){const P=A.shift();for(const G of Ce.value)Number(G.pid)===P&&($.push(G.id),A.push(G.id))}return $},w=function(y,$){const A=new Map;for(const P of(y==null?void 0:y.rows)??[])A.set(Number(P.dept_id),Number(P[$]??0));return A};const I=Ka(),E=await Vl({year_month:I}),p=(E==null?void 0:E.rows)??[];if(!p.length)return;const Y=d(p).filter(y=>y.depth>=1&&Number(y.node.target_amount)>0).map(y=>y.node);if(!Y.length)return;const R=new Set,me=Y.map(y=>{const $=Number(y.dept_id),A=h($),P=A.length?A:[$];return P.forEach(G=>R.add(G)),{dept_id:$,dept_name:String(y.dept_name),target_amount:Number(y.target_amount),totalIds:P}});if(!R.size)return;const He=st.value.flatMap(y=>y.channels),J=(t=He.find(y=>y.channel_name.includes("自媒体1")))==null?void 0:t.channel_code,Se=(e=He.find(y=>y.channel_name.includes("自媒体3")))==null?void 0:e.channel_code,Ne=(n=He.find(y=>y.channel_name.includes("自媒体4")))==null?void 0:n.channel_code,We=Array.from(R).join(","),[ve,V,l,b]=await Promise.all([lt({dept_ids:We}),J?lt({dept_ids:We,channel_code:J}):Promise.resolve(null),Se?lt({dept_ids:We,channel_code:Se}):Promise.resolve(null),Ne?lt({dept_ids:We,channel_code:Ne}):Promise.resolve(null)]),m=y=>{var $;return((y==null?void 0:y.tables)??[]).find(A=>String(A.label).includes("月"))??(($=y==null?void 0:y.tables)==null?void 0:$[0])},T=y=>{var $,A;return((y==null?void 0:y.tables)??[]).find(P=>String(P.label).includes("昨"))??((A=y==null?void 0:y.tables)==null?void 0:A[(($=y==null?void 0:y.tables)==null?void 0:$.length)-1])},Ca=w(m(ve),"performance_amount"),Qn=w(T(ve),"performance_amount"),Da=V?w(m(V),"completed_performance_amount"):null,La=l?w(m(l),"completed_performance_amount"):null,za=b?w(m(b),"completed_performance_amount"):null,nt=(y,$)=>$.reduce((A,P)=>A+(y.get(P)??0),0),Ht=new Date,el=Qa(I),tl=Ht.getDate(),al=me.map(y=>{const $=nt(Ca,y.totalIds),A=nt(Qn,y.totalIds),P=Da?nt(Da,y.totalIds):null,G=La?nt(La,y.totalIds):null,$a=za?nt(za,y.totalIds):null,Wt=G!==null||$a!==null?(G??0)+($a??0):null,sl=Math.round(y.target_amount*(tl/el)*100)/100,il=y.target_amount>0?$/y.target_amount:null;return{dept_id:y.dept_id,dept_name:y.dept_name,parent_dept_name:g(y.dept_id),target_amount:y.target_amount,total_amount:$,yesterday_amount:A,douyin_amount:P&&P>0?P:null,tuifen_amount:Wt&&Wt>0?Wt:null,target_progress:sl,completion_rate:il}}),nl=((s=p[0])==null?void 0:s.dept_name)??"",ll=Ht.getMonth()+1,ol=Ht.getDate();Ye.value={title:`${nl}诊金-${ll}.${ol}`,sections:al}}catch{}finally{mt.value=!1}}const tn=C(()=>{var e;const t=(e=S.value)==null?void 0:e.leaderboards;return t?t.filter(n=>n.rows.length>0).length:0}),sa=[{text:"昨天",value:()=>{const t=new Date;return t.setDate(t.getDate()-1),[t,t]}},{text:"最近七天",value:()=>{const t=new Date,e=new Date;return e.setDate(e.getDate()-6),[e,t]}},{text:"本月",value:()=>{const t=new Date;return[new Date(t.getFullYear(),t.getMonth(),1),t]}},{text:"今日",value:()=>{const t=new Date;return[t,t]}},{text:"本周",value:()=>{const t=new Date,e=new Date,n=e.getDay()||7;return e.setDate(e.getDate()-(n-1)),[e,t]}},{text:"上月",value:()=>{const t=new Date,e=new Date(t.getFullYear(),t.getMonth()-1,1),n=new Date(t.getFullYear(),t.getMonth(),0);return[e,n]}}];function an(t){const e=t.value();H.value=[gt(e[0]),gt(e[1])],Ue()}async function nn(){bt.value=!0;try{const t=await Al();Ce.value=(t||[]).sort((e,n)=>{const s=e.name.includes("中心")?-1:1,d=n.name.includes("中心")?-1:1;return s!==d?s-d:e.id-n.id})}catch{}finally{bt.value=!1}}async function ln(){wt.value=!0;try{const t=await Pl(),e=(t==null?void 0:t.groups)||[];st.value=e}catch{}finally{wt.value=!1}}async function ia(t){if(!oe.value){S.value=null;return}de.value=!0;try{const e={start_date:t.start,end_date:t.end};z.value.length>0&&(e.dept_ids=z.value.join(",")),x.value&&(e.channel_code=x.value);const n=await Il(e);S.value={start_date:n.start_date,end_date:n.end_date,channel_code:n.channel_code||"",channel_name:n.channel_name||"",channel_filter_note:n.channel_filter_note||"",range_note:n.range_note||"",leaderboards:n.leaderboards||[]}}catch(e){if(te.isCancel(e))return;S.value=null}finally{de.value=!1}}async function Ue(){if(ne.value=!0,S.value=null,!Ve.value){re.value=[],ne.value=!1,W.value?Mt():(B.value=[],pe.value={},Be.value=null);return}try{const t={};if(z.value.length>0&&(t.dept_ids=z.value.join(",")),x.value&&(t.channel_code=x.value),H.value&&H.value[0]&&H.value[1]){const[s,d]=H.value,g={...t,start_date:s,end_date:d},h=await Rl(g);re.value=[{label:s===d?s:`${s} ~ ${d}`,start_date:h.start_date,end_date:h.end_date,channel_code:h.channel_code||"",channel_name:h.channel_name||"",channel_group:h.channel_group||"",channel_filter_note:h.channel_filter_note||"",rows:h.rows||[],total:h.total}],await ia({start:h.start_date,end:h.end_date});return}const e=await lt(t);re.value=((e==null?void 0:e.tables)||[]).map(s=>({label:s.label,start_date:s.start_date,end_date:s.end_date,channel_code:s.channel_code||"",channel_name:s.channel_name||"",channel_group:s.channel_group||"",channel_filter_note:s.channel_filter_note||"",rows:s.rows||[],total:s.total}));const n=gt(new Date);await ia({start:n,end:n})}catch(t){if(te.isCancel(t))return;const e=t;ee.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"加载失败")}finally{ne.value=!1,W.value?Mt():(B.value=[],pe.value={},Be.value=null)}}function on(){z.value=[],H.value=null,x.value="",Ue()}function sn(t){return t<=0?!1:Ce.value.some(e=>Number(e.pid)===t)}function rn(t){return{1:"待双审通过",2:"待发货",3:"已完成",4:"已取消",5:"已发货",6:"已签收",7:"进行中",8:"暂不制药",9:"拒收",10:"退款",11:"保留药方",12:"制药缓发"}[Number(t)]??"—"}function vt(t){return t==null||!Number.isFinite(Number(t))?"—":Number(t).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}function dn(t){return(K.value-1)*pt.value+t+1}function un(t){const e=(t==null?void 0:t.appointment_date)!=null&&String(t.appointment_date)!==""?String(t.appointment_date):"",n=(t==null?void 0:t.period)!=null&&String(t.period)!==""?String(t.period):"",s=(t==null?void 0:t.appointment_time)!=null&&String(t.appointment_time)!==""?String(t.appointment_time):"",d=[n,s].filter(Boolean).join(" ");return e&&d?`${e} ${d}`:e||d||"—"}function ra(t){if(!t)return"";const e=t.channel_dict_value;if(e!=null&&e!==""){const d=Number(e);if(Number.isFinite(d))return String(Math.trunc(d))}const n=t.channel_source;if(n==null)return"";const s=String(n).trim();return s===""||!/^\d+$/.test(s)?"":String(parseInt(s,10))}function cn(t){if(t==null||t==="")return"—";const e=Number(t);if(Number.isFinite(e)&&e>=1e9&&e<1e15){const s=e<1e12?e*1e3:e,d=new Date(s);if(!Number.isNaN(d.getTime())){const g=d.getFullYear(),h=String(d.getMonth()+1).padStart(2,"0"),w=String(d.getDate()).padStart(2,"0"),I=String(d.getHours()).padStart(2,"0"),E=String(d.getMinutes()).padStart(2,"0");return`${g}-${h}-${w} ${I}:${E}`}}const n=String(t);return n.length>=16?n.slice(0,16):n}function da(){const t=at.value;if(!t)return null;const e={start_time:`${t.start} 00:00:00`,end_time:`${t.end} 23:59:59`,exclude_fulfillment_cancelled:1,yeji_order_drawer:1};return t.mode==="dept"?(e.assistant_dept_id=t.deptId,z.value.length>0&&(e.dept_ids=z.value.join(",")),t.yejiTableRowDeptIds&&t.yejiTableRowDeptIds.length>0&&(e.yeji_table_row_dept_ids=t.yejiTableRowDeptIds.join(","))):(e.assistant_id=t.assistantId,t.erCenterRevisitSlot!==void 0&&(e.yeji_er_center_revisit_only=1,e.yeji_er_center_revisit_slot=t.erCenterRevisitSlot)),x.value&&se.value&&X.value==="channel"&&(e.channel_code=x.value),e}async function _n(){const t=da();if(!t||!x.value)return;const e={...t,channel_code:x.value,page_no:1,page_size:1};try{const n=await Aa(e),s=n!=null&&n.extend&&typeof n.extend=="object"?n.extend:null;s&&s.stats_yeji_drawer_total_performance_amount!=null&&(q.value={totalAmount:Number(s.stats_yeji_drawer_total_performance_amount),totalOrderCount:Number(s.stats_yeji_drawer_total_performance_order_count??0),channelAmount:Number(s.stats_order_amount_performance??0),channelOrderCount:Number((n==null?void 0:n.count)??0)})}catch{}}async function je(){const t=da();if(t){x.value&&X.value==="total"&&(q.value=null),we.value=!0;try{const e={...t,page_no:K.value,page_size:pt.value},n=await Aa(e);ke.value=Array.isArray(n==null?void 0:n.lists)?n.lists:[],_t.value=Number((n==null?void 0:n.count)??0),ie.value=n!=null&&n.extend&&typeof n.extend=="object"?n.extend:null,x.value&&X.value==="channel"&&ie.value&&ie.value.stats_yeji_drawer_total_performance_amount!=null&&(q.value={totalAmount:Number(ie.value.stats_yeji_drawer_total_performance_amount),totalOrderCount:Number(ie.value.stats_yeji_drawer_total_performance_order_count??0),channelAmount:Number(ie.value.stats_order_amount_performance??0),channelOrderCount:Number((n==null?void 0:n.count)??0)}),x.value&&se.value&&X.value==="total"&&await _n()}catch(e){if(te.isCancel(e))return;const n=e;ee.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"加载业务订单失败"),ke.value=[],_t.value=0,ie.value=null}finally{we.value=!1}}}function ua(t,e,n){const s=!!(x.value&&t.channel_name);X.value=s?(n==null?void 0:n.listTab)??"channel":"channel",q.value=null,at.value={mode:"dept",deptId:e.dept_id,deptName:e.dept_name,start:t.start_date,end:t.end_date,yejiTableRowDeptIds:t.rows.map(d=>d.dept_id).filter(d=>typeof d=="number"&&d>0)},et.value=`业务订单 · ${e.dept_name}`,tt.value=`创建时间:${t.start_date} ~ ${t.end_date} · 与「合计业绩 / 接诊诊单」同口径:订单创建人人事部门 ∈ 本部门子树 · 不含履约 4/9/10`,K.value=1,se.value=!0,je()}function pn(t,e,n){const s=!!(x.value&&t.channel_name);X.value=s?n:"channel",q.value=null,at.value={mode:"dept",deptId:e,deptName:"当前展示合计",start:t.start_date,end:t.end_date,yejiTableRowDeptIds:t.rows.map(d=>d.dept_id).filter(d=>typeof d=="number"&&d>0)},et.value="业务订单 · 当前展示合计",tt.value=`创建时间:${t.start_date} ~ ${t.end_date} · 已选展示部门 1 个根节点(含其下全部展示行)· 不含履约 4/9/10`,K.value=1,se.value=!0,je()}function Et(t,e,n){return!(xe(e)||e.dept_id<=0||n==="channel"&&!t.channel_name)}function Vt(t,e){return!(z.value.length!==1||e==="channel"&&!t.channel_name)}function ca(t,e,n){if(!Et(t,e,n))return;ua(t,e,{listTab:n==="total"?"total":"channel"})}function _a(t,e){if(!Vt(t,e))return;const n=z.value[0];if(!n)return;pn(t,n,e==="total"?"total":"channel")}function mn(t,e,n){X.value="channel",q.value=null,at.value={mode:"assistant",assistantId:t.admin_id,assistantName:t.name,start:e,end:n},et.value=`业务订单 · ${t.name}`,tt.value=`创建时间:${e} ~ ${n} · 创建人=${t.name}(与排行榜诊金同口径)· 不含履约 4/9/10`,K.value=1,se.value=!0,je()}function Ft(t,e,n,s){X.value="channel",q.value=null,at.value={mode:"assistant",assistantId:t.admin_id,assistantName:t.name,start:e,end:n,erCenterRevisitSlot:s};const d=s===0?"复诊合计":it(s);et.value=`业务订单 · ${t.name} · ${d}`,tt.value=`创建时间:${e} ~ ${n} · 创建人=${t.name}(与部门表 / 排行榜复诊同口径)· 仅二中心复诊口径 · ${d} · 不含履约 4/9/10`,K.value=1,se.value=!0,je()}function vn(t){if(!t||t.admin_id<=0||!S.value||Number(t.revisit_count??0)<=0)return;const{start_date:e,end_date:n}=S.value;Ft({admin_id:t.admin_id,name:t.name},e,n,0)}function fn(t,e){if(!t||t.admin_id<=0||!S.value||le(t,e)<=0)return;const{start_date:n,end_date:s}=S.value;Ft({admin_id:t.admin_id,name:t.name},n,s,e)}function yn(){K.value=1,je()}function gn(t){K.value=t,je()}function hn(t){pt.value=t,K.value=1,je()}function xe(t){return t.dept_id<=0&&t.dept_name==="未归属中心"}function bn(t,e){e.dept_id<=0||xe(e)||Number(e.revisit_count??0)<=0||ma(t,e,0)}function wn(t,e,n){e.dept_id<=0||xe(e)||le(e,n)<=0||ma(t,e,n)}function pa(t){const e=Xt.value;!e||Number(t.order_count)<=0||Ft({admin_id:t.admin_id,name:t.name},e.start,e.end,e.revisitSlot)}async function ma(t,e,n){const s=n===0?"复诊合计":it(n);Zt.value=`${e.dept_name} · ${s} · ${t.start_date} ~ ${t.end_date}`,Xt.value={start:t.start_date,end:t.end_date,revisitSlot:n},Je.value="",$e.value=[],St.value=!0,ze.value=!0;try{const d={start_date:t.start_date,end_date:t.end_date,dept_id:e.dept_id,revisit_slot:n};z.value.length>0&&(d.dept_ids=z.value.join(",")),x.value&&(d.channel_code=x.value);const g=await Tl(d);$e.value=Array.isArray(g==null?void 0:g.rows)?g.rows:[],Je.value=typeof(g==null?void 0:g.note)=="string"?g.note:""}catch(d){if(te.isCancel(d))return;const g=d;ee.error((g==null?void 0:g.msg)||(g==null?void 0:g.message)||"加载复诊拆解失败"),$e.value=[],Je.value=""}finally{ze.value=!1}}function va(t){const e=[`区间:${t.start_date} ~ ${t.end_date}`];return x.value&&e.push(`渠道:${t.channel_name||x.value}`),z.value.length>0&&e.push(`已选展示部门 ${z.value.length} 个`),e.join(" · ")}async function kn(t){Gt.value=va(t),qe.value="",Le.value=[],xt.value=!0,De.value=!0;try{const e={start_date:t.start_date,end_date:t.end_date};z.value.length>0&&(e.dept_ids=z.value.join(",")),x.value&&(e.channel_code=x.value);const n=await Ml(e);Le.value=Array.isArray(n==null?void 0:n.rows)?n.rows:[],qe.value=typeof(n==null?void 0:n.note)=="string"?n.note:""}catch(e){if(te.isCancel(e))return;const n=e;ee.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"加载未归属拆解失败"),Le.value=[],qe.value=""}finally{De.value=!1}}function jn(t,e,n){n.dept_id<=0||Number(n.lead_count)<=0||(t.stopPropagation(),Rn(e,n))}function fa(t){return t.dept_id>0&&Number(t.assign_count??0)>0}function xn(t,e,n){fa(n)&&(t.stopPropagation(),Cn(e,n))}function Sn(t){return(be.value-1)*Ee.value+t+1}function Nn(t,e){const n=$t.value;if(!n)return null;const s={start_date:n.start_date,end_date:n.end_date,page:t,page_size:e};return n.mode==="dept"?s.dept_id=n.dept_id:s.assistant_id=n.assistant_id,z.value.length>0&&(s.dept_ids=z.value.join(",")),x.value&&(s.channel_code=x.value),s}async function ft(){const t=Nn(be.value,Ee.value);if(t){ge.value=!0;try{const e=await Ol(t);he.value=Array.isArray(e==null?void 0:e.lists)?e.lists:[],Oe.value=Number((e==null?void 0:e.count)??0),Me.value=typeof(e==null?void 0:e.note)=="string"?e.note:""}catch(e){if(te.isCancel(e))return;const n=e;ee.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"加载被指派明细失败"),he.value=[],Oe.value=0,Me.value=""}finally{ge.value=!1}}}async function Cn(t,e){$t.value={mode:"dept",dept_id:e.dept_id,dept_name:e.dept_name,start_date:t.start_date,end_date:t.end_date},zt.value=`${e.dept_name} · ${t.start_date} ~ ${t.end_date}`,Me.value="",he.value=[],Oe.value=0,be.value=1,Ee.value=20,ut.value=!0,await ft()}function Dn(t){if(!t||t.admin_id<=0||!S.value||Number(t.assign_count??0)<=0)return;const e=S.value;$t.value={mode:"assistant",assistant_id:t.admin_id,name:t.name,start_date:e.start_date,end_date:e.end_date},zt.value=`${t.name} · 医助 · ${e.start_date} ~ ${e.end_date}`,Me.value="",he.value=[],Oe.value=0,be.value=1,Ee.value=20,ut.value=!0,ft()}function Ln(t){be.value=t,ft()}function zn(t){Ee.value=t,be.value=1,ft()}const ya=[{key:"event_time_text",label:"进线时间"},{key:"reception_admin_name",label:"接待"},{key:"external_contact_name",label:"客户"},{key:"external_userid",label:"外部联系人ID"},{key:"user_id",label:"企微成员ID"},{key:"state",label:"渠道参数"}];function Bt(t,e,n){const{tb:s,row:d}=t,g={start_date:s.start_date,end_date:s.end_date,dept_id:d.dept_id,page:e,page_size:n};return z.value.length>0&&(g.dept_ids=z.value.join(",")),x.value&&(g.channel_code=x.value),g}function ga(t){const e=t==null?"":String(t);return/[",\n\r]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function $n(t){const e=ya.map(s=>ga(s.label)).join(","),n=t.map(s=>ya.map(d=>ga(s[d.key])).join(",")).join(`
|
||
`);return`\uFEFF${e}
|
||
${n}`}function An(t,e){const n=new Blob([e],{type:"text/csv;charset=utf-8;"}),s=URL.createObjectURL(n),d=document.createElement("a");d.href=s,d.download=t,d.click(),URL.revokeObjectURL(s)}function Pn(t){const{tb:e,row:n}=t;return`进线数据明细_${(n.dept_name||`dept${n.dept_id}`).replace(/[\\/:*?"<>|]/g,"_")}_${e.start_date}_${e.end_date}.csv`}async function Yt(){const t=Ct.value;if(t){ue.value=!0;try{const e=await qt(Bt(t,Xe.value,rt.value));Ae.value=Array.isArray(e==null?void 0:e.lists)?e.lists:[],Pe.value=Number((e==null?void 0:e.count)??0),Ze.value=typeof(e==null?void 0:e.note)=="string"?e.note:""}catch(e){if(te.isCancel(e))return;const n=e;ee.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"加载进线明细失败"),Ae.value=[],Pe.value=0,Ze.value=""}finally{ue.value=!1}}}async function Rn(t,e){Ct.value={tb:t,row:e},Kt.value=`${e.dept_name} · ${va(t)}`,Ze.value="",Ae.value=[],Pe.value=0,Xe.value=1,rt.value=20,Nt.value=!0,await Yt()}function Tn(t){Xe.value=t,Yt()}function In(t){rt.value=t,Xe.value=1,Yt()}async function Mn(){const t=Ct.value;if(!(!t||Ge.value)){Ge.value=!0;try{const n=await qt(Bt(t,1,100)),s=Number((n==null?void 0:n.count)??0);if(s<=0){ee.warning("暂无进线明细可导出");return}const d=Array.isArray(n==null?void 0:n.lists)?[...n.lists]:[],g=Math.ceil(s/100);for(let h=2;h<=g;h++){const w=await qt(Bt(t,h,100)),I=Array.isArray(w==null?void 0:w.lists)?w.lists:[];d.push(...I)}An(Pn(t),$n(d)),ee.success(`已导出 ${d.length} 条进线明细`)}catch(e){if(te.isCancel(e))return;const n=e;ee.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"导出进线明细失败")}finally{Ge.value=!1}}}function On(t){return(ye.value-1)*Ie.value+t+1}function ha(t){return xe(t)?!0:t.dept_id>0}async function yt(){const t=Lt.value;if(t){fe.value=!0;try{const e={start_date:t.start_date,end_date:t.end_date,page:ye.value,page_size:Ie.value};t.mode==="dept"?e.dept_id=t.dept_id:e.assistant_id=t.assistant_id,z.value.length>0&&(e.dept_ids=z.value.join(",")),x.value&&(e.channel_code=x.value);const n=await El(e);ce.value=Array.isArray(n==null?void 0:n.lists)?n.lists:[],Te.value=Number((n==null?void 0:n.count)??0),Re.value=typeof(n==null?void 0:n.note)=="string"?n.note:""}catch(e){if(te.isCancel(e))return;const n=e;ee.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"加载挂号明细失败"),ce.value=[],Te.value=0,Re.value=""}finally{fe.value=!1}}}function En(t){if(!t||t.admin_id<=0||!S.value||Number(t.appointment_count??0)<=0)return;const e=S.value;Lt.value={mode:"assistant",assistant_id:t.admin_id,name:t.name,start_date:e.start_date,end_date:e.end_date},Dt.value=`${t.name} · 医助 · ${e.start_date} ~ ${e.end_date}`,Re.value="",ce.value=[],Te.value=0,ye.value=1,Ie.value=20,dt.value=!0,yt()}function Vn(t,e){!ha(e)||Number(e.appointment_booked_count??0)<=0||(Lt.value={mode:"dept",dept_id:e.dept_id,dept_name:e.dept_name,start_date:t.start_date,end_date:t.end_date},Dt.value=`${e.dept_name} · ${t.start_date} ~ ${t.end_date}`,Re.value="",ce.value=[],Te.value=0,ye.value=1,Ie.value=20,dt.value=!0,yt())}function Fn(t){ye.value=t,yt()}function Bn(t){Ie.value=t,ye.value=1,yt()}function Yn(t,e){if(xe(e)){kn(t);return}if(!(e.dept_id<=0)){if(sn(e.dept_id)){z.value=[e.dept_id],Ue();return}ua(t,e)}}function Un(t){if(!t||t.admin_id<=0||!S.value)return;const{start_date:e,end_date:n}=S.value;mn(t,e,n)}function ba(t){const e=t.channel_name?` · ${t.channel_name}`:"";return`${t.label}${e}`}function Hn(t){const e=t.rows.filter(h=>h.dept_id>0),n=e.map(h=>h.dept_name.length>10?`${h.dept_name.slice(0,10)}…`:h.dept_name),s=["#64748b","#38bdf8","#6366f1"],d=[{name:"进线",type:"bar",data:e.map(h=>h.lead_count),yAxisIndex:0,barMaxWidth:16},{name:"接诊",type:"bar",data:e.map(h=>h.consult_count),yAxisIndex:0,barMaxWidth:16},{name:"成交单",type:"bar",data:e.map(h=>h.deal_order_count),yAxisIndex:0,barMaxWidth:16},{name:"合计业绩",type:"bar",data:e.map(h=>h.performance_amount),yAxisIndex:1,barMaxWidth:14,itemStyle:{color:"#d97706"}}];t.channel_name&&d.push({name:`${t.channel_name}业绩`,type:"bar",data:e.map(h=>h.completed_performance_amount),yAxisIndex:1,barMaxWidth:14,itemStyle:{color:"#0d9488"}});const g=e.length>10;return{color:[...s,"#d97706","#0d9488"],tooltip:{trigger:"axis",axisPointer:{type:"cross"}},legend:{top:8,type:"scroll",textStyle:{fontSize:11}},grid:{left:52,right:52,top:48,bottom:g?56:28,containLabel:!1},dataZoom:g?[{type:"slider",bottom:4,start:0,end:Math.min(100,Math.ceil(12/Math.max(e.length,1)*100))}]:[],xAxis:{type:"category",data:n,axisLabel:{rotate:n.length>8?28:0,fontSize:10}},yAxis:[{type:"value",name:"数量",splitLine:{lineStyle:{type:"dashed",opacity:.55}}},{type:"value",name:"金额",splitLine:{show:!1}}],series:d}}function Wn(t,e){const n=[...t.rows].sort((s,d)=>Number(d.fee_amount)-Number(s.fee_amount)).slice(0,15);return{color:["#2563eb"],tooltip:{trigger:"axis",axisPointer:{type:"shadow"},valueFormatter:s=>`${Number(s).toLocaleString("zh-CN")} 元`},grid:{left:8,right:20,top:12,bottom:8,containLabel:!0},xAxis:{type:"value",splitLine:{lineStyle:{type:"dashed",opacity:.6}}},yAxis:{type:"category",data:n.map(s=>s.name.length>8?`${s.name.slice(0,8)}…`:s.name).reverse(),axisLabel:{fontSize:11}},series:[{name:"诊金",type:"bar",data:n.map(s=>Number(s.fee_amount??0)).reverse(),barMaxWidth:20,itemStyle:{borderRadius:[0,6,6,0]}}]}}function wa(t){return t.rows.some(e=>Number(e.fee_amount)>0)}function qn(t,e){const s=[...t.rows].filter(d=>Number(d.fee_amount)>0).sort((d,g)=>Number(g.fee_amount)-Number(d.fee_amount)).slice(0,10).map(d=>({name:d.name.length>6?`${d.name.slice(0,6)}…`:d.name,value:Number(d.fee_amount)}));return{color:["#2563eb","#0d9488","#d97706","#7c3aed","#64748b","#0891b2","#65a30d","#c026d3","#ea580c","#4f46e5"],tooltip:{trigger:"item",formatter:"{b}: {c} 元 ({d}%)"},legend:{type:"scroll",bottom:0,textStyle:{fontSize:9}},series:[{name:"诊金",type:"pie",radius:["38%","64%"],center:["50%","42%"],data:s,itemStyle:{borderRadius:5,borderColor:"#fff",borderWidth:2},label:{formatter:`{b}
|
||
{d}%`,fontSize:10}}]}}function ka(t){return Number(t.total.lead_count)+Number(t.total.consult_count)+Number(t.total.deal_order_count)>0}function Jn(t){const e=Number(t.total.lead_count??0),n=Number(t.total.consult_count??0),s=Number(t.total.deal_order_count??0);return{tooltip:{trigger:"item",formatter:"{b}: {c}"},color:["#2563eb","#38bdf8","#0d9488"],series:[{type:"funnel",left:"8%",width:"84%",minSize:"12%",sort:"none",gap:6,label:{show:!0,position:"inside",formatter:`{b}
|
||
{c}`,fontSize:11},data:[{value:e,name:"进线"},{value:n,name:"接诊"},{value:s,name:"成交单"}]}]}}function ja(t){return t.rows.some(e=>e.dept_id>0&&Number(e.performance_amount)>0)}function Gn(t){const e=t.rows.filter(d=>d.dept_id>0&&Number(d.performance_amount)>0).sort((d,g)=>Number(g.performance_amount)-Number(d.performance_amount));if(!e.length)return{series:[{type:"pie",data:[]}]};const s=e.slice(0,10).map(d=>({name:d.dept_name.length>8?`${d.dept_name.slice(0,8)}…`:d.dept_name,value:Number(d.performance_amount)}));if(e.length>10){const d=e.slice(10).reduce((g,h)=>g+Number(h.performance_amount),0);d>0&&s.push({name:"其它",value:d})}return{color:["#2563eb","#0d9488","#d97706","#7c3aed","#64748b","#0891b2","#65a30d","#c026d3","#ea580c","#4f46e5","#94a3b8"],tooltip:{trigger:"item",formatter:"{b}<br/>{c} 元({d}%)"},legend:{type:"scroll",bottom:0,textStyle:{fontSize:10}},series:[{type:"pie",radius:["36%","62%"],center:["50%","44%"],data:s,itemStyle:{borderRadius:5,borderColor:"#fff",borderWidth:2},label:{formatter:`{b}
|
||
{d}%`,fontSize:10}}]}}function Ut(t){return{perf:"渠道业绩",deal:"渠道成交",aov:"渠道客单"}[t]??t}function N(t){return t==null||t===""?"0":Number(t).toLocaleString("en-US")}function O(t){return t==null||t===""?"0.0":Number(t).toLocaleString("en-US",{minimumFractionDigits:1,maximumFractionDigits:1})}function Q(t){if(t==null||t==="")return"0";const e=Number(t);return Number.isFinite(e)?Math.round(e).toLocaleString("zh-CN"):"0"}function xa(t){return t==null||t===""?"—":Number(t).toLocaleString("en-US",{minimumFractionDigits:1,maximumFractionDigits:1})}function Sa(t){return t==null||t===""?"—":Number(t).toFixed(1)}function Na(t){if(t==null||t==="")return"";const e=Number(t);return e>=1?"roi-good":e>=.8?"roi-mid":"roi-bad"}function Zn(t){return t===null?"—":(t*100).toFixed(2)+"%"}function Xn(t){return t===null?"":t>=1?"tp-good":t>=.8?"tp-mid":"tp-bad"}function Kn(t){return t>=1e4?(t/1e4).toFixed(1)+"万":String(t)}function gt(t){const e=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),s=String(t.getDate()).padStart(2,"0");return`${e}-${n}-${s}`}return Ul(async()=>{_e.value=Qe(),await Promise.all([nn(),ln()]),Ue(),en()}),(t,e)=>{const n=dl,s=ul,d=rl,g=cl,h=pl,w=vl,I=ml,E=fl,p=bl,L=wl,Y=hl,R=kl,me=gl,He=yl,J=xl,Se=jl,Ne=Sl,We=Nl,ve=Cl,V=_l;return o(),u("div",Wl,[e[147]||(e[147]=a("header",{class:"yeji-masthead"},[a("div",{class:"yeji-masthead__inner"},[a("h1",{class:"yeji-masthead__title"},"业绩看板"),a("p",{class:"yeji-masthead__desc"},"渠道 · 部门 · 日期维度的业绩分析")])],-1)),i(E,{class:"yeji-panel filter-card",shadow:"never"},{default:_(()=>[a("div",ql,[a("div",Jl,[a("div",Gl,[e[11]||(e[11]=a("span",{class:"lbl"},"渠道来源",-1)),i(d,{modelValue:x.value,"onUpdate:modelValue":e[0]||(e[0]=l=>x.value=l),filterable:"",placeholder:"渠道筛选",class:"filter-select filter-select--channel",loading:wt.value,onChange:Ue},{default:_(()=>[i(n,{label:"全部",value:""}),(o(!0),u(k,null,F(st.value,l=>(o(),j(s,{key:l.group_name,label:l.group_name},{default:_(()=>[(o(!0),u(k,null,F(l.channels,b=>(o(),j(n,{key:b.channel_code,label:b.channel_name,value:b.channel_code},{default:_(()=>[a("div",Zl,[a("span",Xl,r(b.channel_name),1),a("span",Kl,r(b.customer_count>0?b.customer_count:""),1)])]),_:2},1032,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","loading"])]),a("div",Ql,[e[12]||(e[12]=a("span",{class:"lbl"},"展示部门",-1)),Z((o(),u("div",eo,[i(g,{modelValue:z.value,"onUpdate:modelValue":e[1]||(e[1]=l=>z.value=l),data:Ia.value,multiple:"","collapse-tags":"","collapse-tags-tooltip":"",filterable:"","check-strictly":"","render-after-expand":!1,"default-expand-all":!0,placeholder:"默认:所有「中心」部门",class:"filter-dept-tree-select","node-key":"id",props:Ra},null,8,["modelValue","data"])])),[[V,bt.value]])]),a("div",to,[e[13]||(e[13]=a("span",{class:"lbl"},"日期范围",-1)),i(h,{modelValue:H.value,"onUpdate:modelValue":e[2]||(e[2]=l=>H.value=l),type:"daterange","value-format":"YYYY-MM-DD","start-placeholder":"开始","end-placeholder":"结束",clearable:!0,shortcuts:sa,class:"filter-date-picker"},null,8,["modelValue"])]),a("div",ao,[i(I,{type:"primary",class:"filter-btn filter-btn--query",loading:ne.value,onClick:Ue},{default:_(()=>[i(w,{class:"filter-btn__icon"},{default:_(()=>[i(D(Ll))]),_:1}),e[14]||(e[14]=c(" 查询 ",-1))]),_:1},8,["loading"]),i(I,{class:"filter-btn filter-btn--reset",disabled:ne.value,onClick:on},{default:_(()=>[i(w,{class:"filter-btn__icon"},{default:_(()=>[i(D(zl))]),_:1}),e[15]||(e[15]=c(" 重置 ",-1))]),_:1},8,["disabled"])])]),a("div",no,[e[16]||(e[16]=a("span",{class:"filter-quick__title"},"快捷日期",-1)),a("div",lo,[(o(),u(k,null,F(sa,l=>a("button",{key:l.text,type:"button",class:"date-pill",onClick:b=>an(l)},r(l.text),9,oo)),64))])])])]),_:1}),i(E,{class:"yeji-panel yeji-main-tabs-card",shadow:"never"},{default:_(()=>[e[120]||(e[120]=a("div",{class:"yeji-table-tabs-head"},[a("span",{class:"yeji-table-tabs-head__title"},"表格统计"),a("span",{class:"yeji-table-tabs-head__hint"},"列较多时可横向滚动浏览;「部门 / 排名」列在滚动时保持固定。")],-1)),Va.value?(o(),j(He,{key:0,modelValue:_e.value,"onUpdate:modelValue":e[3]||(e[3]=l=>_e.value=l),class:"yeji-view-tabs"},{default:_(()=>[W.value?(o(),j(me,{key:0,label:"医生统计",name:"doctor",lazy:""},{default:_(()=>[W.value?(o(),j(E,{key:0,class:"yeji-panel doctor-daily-card doctor-daily-card--nested",shadow:"never"},{header:_(()=>[a("div",so,[a("div",io,[e[17]||(e[17]=a("span",{class:"doctor-daily-card__title"},"医生明细",-1)),ct.value?(o(),u("span",ro,r(ct.value),1)):f("",!0)]),a("div",uo,[i(I,{type:"primary",size:"small",loading:Fe.value,onClick:Mt},{default:_(()=>[...e[18]||(e[18]=[c(" 刷新 ",-1)])]),_:1},8,["loading"])])])]),default:_(()=>[Z((o(),j(Y,{data:B.value,size:"small",border:"",stripe:"",class:"doctor-daily-table","show-summary":"","summary-method":Ga},{default:_(()=>[i(p,{prop:"doctor_name",label:"医生","min-width":"100",fixed:""}),i(p,{prop:"system_prescription_count",label:"系统开方","min-width":"88",align:"right"}),i(p,{prop:"manual_prescription_count",label:"手动开方","min-width":"88",align:"right"}),i(p,{prop:"deal_amount",label:"成交金额","min-width":"110",align:"right"},{default:_(({row:l})=>[c("¥ "+r(ta(l.deal_amount)),1)]),_:1}),i(p,{prop:"deal_order_count",label:"接诊诊单","min-width":"88",align:"right"}),i(p,{prop:"appointment_total",label:"总挂号","min-width":"88",align:"right"},{header:_(()=>[e[19]||(e[19]=a("span",null,"总挂号",-1)),i(L,{effect:"dark",placement:"top",content:"区间内该医生 doctor_appointment 全部状态合计(已预约/已完成/已过号/已取消);选部门时仅计经手医助归属在所选部门子树的挂号(与业绩看板「预约诊单」医助口径一致)"},{default:_(()=>[i(w,{class:"doctor-daily-th__hint"},{default:_(()=>[i(D(M))]),_:1})]),_:1})]),_:1}),i(p,{prop:"appointment_completed",label:"挂号完成","min-width":"88",align:"right"}),i(p,{prop:"appointment_missed",label:"过号","min-width":"72",align:"right"}),i(p,{prop:"appointment_cancelled",label:"取消","min-width":"72",align:"right"}),i(p,{prop:"appointment_conversion_rate",label:"挂号率","min-width":"92",align:"right"},{header:_(()=>[e[20]||(e[20]=a("span",null,"挂号率",-1)),i(L,{effect:"dark",placement:"top",content:"挂号率 = 成交单数 / 总挂号数 × 100;总挂号为 0 时显示「—」"},{default:_(()=>[i(w,{class:"doctor-daily-th__hint"},{default:_(()=>[i(D(M))]),_:1})]),_:1})]),default:_(({row:l})=>[c(r(aa(l.appointment_conversion_rate)),1)]),_:1})]),_:1},8,["data"])),[[V,Fe.value]])]),_:1})):(o(),j(R,{key:1,description:"当前账号无医生统计权限"}))]),_:1})):f("",!0),oe.value?(o(),j(me,{key:1,label:"医助排行榜",name:"leaderboard",lazy:""},{default:_(()=>[S.value||de.value?Z((o(),u("div",co,[S.value?(o(),u(k,{key:0},[a("p",_o,[c(r(S.value.range_note)+" ",1),a("span",po,r(S.value.start_date)+" ~ "+r(S.value.end_date),1)]),a("div",mo,[(o(!0),u(k,null,F(S.value.leaderboards,l=>(o(),u(k,{key:l.dept_id},[l.rows.length>0?(o(),u("div",vo,[a("div",fo,[c(r(l.dept_name)+" · 医助排行榜 ",1),S.value.channel_name?(o(),u("span",yo," ("+r(S.value.channel_name)+") ",1)):f("",!0)]),a("div",go,[a("table",ho,[a("thead",null,[a("tr",null,[e[22]||(e[22]=a("th",{class:"col-rank"},"排名",-1)),e[23]||(e[23]=a("th",{class:"col-abbr"},"部门",-1)),e[24]||(e[24]=a("th",{class:"col-name"},"姓名",-1)),e[25]||(e[25]=a("th",{class:"col-consult"},"接诊单数",-1)),e[26]||(e[26]=a("th",{class:"col-deal"},"接诊诊单",-1)),e[27]||(e[27]=a("th",{class:"col-assign"},"被指派数",-1)),e[28]||(e[28]=a("th",{class:"col-appointment"},"预约诊单",-1)),l.er_center_subtree?(o(),u(k,{key:0},[e[21]||(e[21]=a("th",{class:"col-revisit"},"复诊合计",-1)),(o(!0),u(k,null,F(Jt(l),b=>(o(),u("th",{key:"lbh-"+l.dept_id+"-"+b,class:"col-revisit-slot"},r(it(b)),1))),128))],64)):f("",!0),e[29]||(e[29]=a("th",null,"诊金",-1)),e[30]||(e[30]=a("th",null,[c("接诊率"),a("br"),a("span",{class:"th-sub"},"(元/进线)")],-1))])]),a("tbody",null,[(o(!0),u(k,null,F(l.rows,b=>(o(),u("tr",{key:b.admin_id,class:"yeji-row--action",onClick:m=>Un(b)},[a("td",wo,r(b.rank),1),a("td",ko,r(b.dept_abbr),1),a("td",jo,r(b.name),1),a("td",xo,r(Q(b.consult_count)),1),a("td",So,r(Q(b.deal_order_count)),1),a("td",{class:"col-assign",onClick:U(m=>Dn(b),["stop"])},[Number(b.assign_count??0)>0?(o(),u("span",Co,r(Q(b.assign_count??0)),1)):(o(),u(k,{key:1},[c(r(Q(b.assign_count??0)),1)],64))],8,No),a("td",{class:"col-appointment",onClick:U(m=>En(b),["stop"])},[Number(b.appointment_count??0)>0?(o(),u("span",Lo,r(Q(b.appointment_count??0)),1)):(o(),u(k,{key:1},[c(r(Q(b.appointment_count??0)),1)],64))],8,Do),l.er_center_subtree?(o(),u(k,{key:0},[a("td",{class:"col-revisit",onClick:U(m=>vn(b),["stop"])},[Number(b.revisit_count??0)>0?(o(),u("span",$o,r(Q(b.revisit_count??0)),1)):(o(),u(k,{key:1},[c(r(Q(b.revisit_count??0)),1)],64))],8,zo),(o(!0),u(k,null,F(Jt(l),m=>(o(),u("td",{key:"lbc-"+b.admin_id+"-"+m,class:"col-revisit-slot",onClick:U(T=>fn(b,m),["stop"])},[le(b,m)>0?(o(),u("span",Po,r(Q(le(b,m))),1)):(o(),u(k,{key:1},[c(r(Q(le(b,m))),1)],64))],8,Ao))),128))],64)):f("",!0),a("td",null,r(O(b.fee_amount)),1),a("td",null,r(O(b.consult_rate)),1)],8,bo))),128))])])]),a("div",Ro,[e[31]||(e[31]=a("span",null,"诊金单位:元 · 诊金/接诊诊单/复诊均按「订单创建人 = 该医助」归属,与部门「合计业绩 / 接诊诊单 / 复诊」同口径 · 被指派数与部门业绩表同口径 · 接诊率 = 诊金 ÷ 进线(元/进线)",-1)),l.er_center_subtree?(o(),u("span",To," · 复诊列为二中心口径(同一诊单业务单序列第 2 笔起),点击数字查看对应业务订单 ")):f("",!0),e[32]||(e[32]=a("span",null," · 预约诊单:预约日期在统计区间内,状态含已预约/已完成/已过号(不含已取消),医助归属与接诊单数一致(按挂号 assistant_id 优先,否则诊单 assistant_id);各科组展示全部医助。 ",-1))])])):f("",!0)],64))),128))]),!de.value&&tn.value===0?(o(),u("div",Io,[i(R,{description:"当前筛选下暂无医助排行数据"})])):f("",!0)],64)):f("",!0)])),[[V,de.value]]):de.value?f("",!0):(o(),j(R,{key:1,class:"yeji-charts-empty",description:"当前筛选下暂无医助排行数据"}))]),_:1})):f("",!0),Ve.value?(o(),j(me,{key:2,label:"甄养堂互联网医院诊金",name:"zyyt",lazy:""},{default:_(()=>[Z((o(),u("div",Mo,[!ne.value&&re.value.length===0?(o(),u("div",Oo,[i(R,{description:"暂无数据"})])):f("",!0),(o(!0),u(k,null,F(re.value,(l,b)=>(o(),u("div",{key:b,class:"yeji-table"},[a("div",Eo,r(ba(l)),1),a("div",Vo,[a("table",Fo,[a("thead",null,[a("tr",null,[e[112]||(e[112]=a("th",{class:"col-dept"},"部门",-1)),a("th",null,[e[39]||(e[39]=a("span",null,"进线数据",-1)),i(L,{placement:"top",effect:"dark","show-after":200},{content:_(()=>[a("div",Bo,[e[37]||(e[37]=c(" add_external_contact 事件数,按接待企微成员归属部门;定渠道时须客户带对应企微标签。",-1)),e[38]||(e[38]=a("br",null,null,-1)),l.channel_name?(o(),u(k,{key:0},[e[33]||(e[33]=a("b",null,"二中心及其组织下级",-1)),e[34]||(e[34]=c("(与部门 ErCenter 子树一致)在选定渠道下进线计 ",-1)),e[35]||(e[35]=a("b",null,"0",-1)),e[36]||(e[36]=c("。 ",-1))],64)):f("",!0)])]),default:_(()=>[i(w,{class:"col-info"},{default:_(()=>[i(D(M))]),_:1})]),_:2},1024)]),a("th",null,[e[57]||(e[57]=a("span",null,"被指派数",-1)),i(L,{placement:"top",effect:"dark","show-after":200},{content:_(()=>[a("div",Yo,[e[47]||(e[47]=a("b",null,"tcm_diagnosis_assign_log",-1)),e[48]||(e[48]=c(" 中成功指派(",-1)),e[49]||(e[49]=a("b",null,"to_assistant_id > 0",-1)),e[50]||(e[50]=c(",",-1)),e[51]||(e[51]=a("b",null,"剔除勾选「继承」的指派",-1)),e[52]||(e[52]=c(")按",-1)),e[53]||(e[53]=a("b",null,"指派操作时间",-1)),e[54]||(e[54]=c("落在所选区间内,「医助 × 诊单」去重、剔除已删诊单,与「复诊接诊率」页面同口径。按",-1)),e[55]||(e[55]=a("b",null,"被指派医助",-1)),e[56]||(e[56]=c("归属展示部门。",-1)),l.channel_name?(o(),u(k,{key:0},[c(" 选定渠道时收窄与「"+r(l.channel_name)+"」业绩同口径(标签诊单或 channels EXISTS)。",1),e[40]||(e[40]=a("br",null,null,-1)),e[41]||(e[41]=a("b",null,"二中心及其组织下级",-1)),e[42]||(e[42]=c("在选定渠道下本列计 ",-1)),e[43]||(e[43]=a("b",null,"0",-1)),e[44]||(e[44]=c("。 ",-1))],64)):(o(),u(k,{key:1},[e[45]||(e[45]=a("br",null,null,-1)),e[46]||(e[46]=c("未选渠道时不限客户来源,与「合计业绩」列渠道无关。",-1))],64))])]),default:_(()=>[i(w,{class:"col-info"},{default:_(()=>[i(D(M))]),_:1})]),_:2},1024)]),a("th",null,[e[59]||(e[59]=a("span",null,"复诊合计",-1)),i(L,{placement:"top",effect:"dark","show-after":200},{content:_(()=>[...e[58]||(e[58]=[a("div",{style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},[c(" 仅"),a("b",null,"名称含「二中心」"),c("的部门及其组织下级:候选订单为有诊单医助、且 "),a("b",null,"fulfillment_status"),c(" 非 4/9/10("),a("b",null,"NULL 计入"),c(")的业务单,按患者 "),a("b",null,"create_time"),c(" 排序,"),a("b",null,"第 1 笔不计"),c(";第 2 笔起计入合计,分列复诊2、复诊三…。"),a("b",null,"归属"),c("按订单创建人的人事部门,与"),a("b",null,"合计业绩"),c("列同口径。非二中心子树部门为 0。 ")],-1)])]),default:_(()=>[i(w,{class:"col-info"},{default:_(()=>[i(D(M))]),_:1})]),_:1})]),(o(!0),u(k,null,F(jt.value,m=>(o(),u("th",{key:"yjv-h-"+m},[a("span",null,r(it(m)),1),i(L,{placement:"top",effect:"dark","show-after":200},{content:_(()=>[a("div",Uo,[e[60]||(e[60]=c(" 该列统计区间内患者第 ",-1)),a("b",null,r(m),1),e[61]||(e[61]=c(" 笔业务单条数(第 1 笔初诊单列不计);归属与合计列相同。 ",-1))])]),default:_(()=>[i(w,{class:"col-info"},{default:_(()=>[i(D(M))]),_:1})]),_:2},1024)]))),128)),a("th",null,[e[63]||(e[63]=a("span",null,"合计业绩",-1)),i(L,{placement:"top",effect:"dark","show-after":200},{content:_(()=>[...e[62]||(e[62]=[a("div",{style:{"max-width":"300px","line-height":"1.7","font-size":"12px"}},[c(" 按订单"),a("b",null,"创建时间"),c("统计(剔除履约已取消/拒收/退款 4·9·10),金额与"),a("b",null,"接诊诊单"),c("列一致:仅按"),a("b",null,"订单创建人"),c("的人事部门落在本展示行(含下级)计入,多行命中时取最深的展示部门。与"),a("b",null,"医助排行榜诊金"),c("同口径。"),a("br"),a("b",null,"不受渠道筛选影响"),c("。与侧栏按部门打开的业务订单列表对齐。"),a("br"),c(" 点击金额可查看对应业务订单明细(侧栏默认「合计业绩」全量列表)。 ")],-1)])]),default:_(()=>[i(w,{class:"col-info"},{default:_(()=>[i(D(M))]),_:1})]),_:1})]),l.channel_name?(o(),u("th",Ho,[a("span",Wo,r(Ut("perf")),1),i(L,{placement:"top",effect:"dark","show-after":200},{content:_(()=>[a("div",qo,[c(" 「"+r(l.channel_name)+"」渠道业绩(与卡片标题渠道一致)。与「处方订单列表」业绩",1),e[64]||(e[64]=a("b",null,"同口径",-1)),e[65]||(e[65]=c(":按订单 ",-1)),e[66]||(e[66]=a("b",null,"create_time",-1)),e[67]||(e[67]=c(" 归日,剔除履约状态 4(已取消)/9(拒收)/10(退款)。",-1)),e[68]||(e[68]=a("br",null,null,-1)),e[69]||(e[69]=c(" 渠道判定用 EXISTS:该患者有任一挂号 ",-1)),e[70]||(e[70]=a("b",null,"channels 命中字典 + status=3",-1)),e[71]||(e[71]=c("(不限挂号时点)。",-1)),e[72]||(e[72]=a("br",null,null,-1)),e[73]||(e[73]=c(" 点击金额可查看该部门本渠道订单明细(侧栏「渠道筛选」列表)。 ",-1))])]),default:_(()=>[i(w,{class:"col-info","aria-label":"说明"},{default:_(()=>[i(D(M))]),_:1})]),_:2},1024)])):f("",!0),a("th",null,[e[75]||(e[75]=a("span",null,"预约诊单",-1)),i(L,{placement:"top",effect:"dark","show-after":200},{content:_(()=>[...e[74]||(e[74]=[a("div",{style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},[c(" 已预约 / 已完成 / 已过号(不含已取消),按"),a("b",null,"预约日期"),c("落在区间内统计;部门归属医助优先,否则接诊医生;与"),a("b",null,"医助排行榜 · 预约诊单"),c("及明细弹窗同口径。"),a("br"),c(" 点击数字可查看每条挂号记录。 ")],-1)])]),default:_(()=>[i(w,{class:"col-info"},{default:_(()=>[i(D(M))]),_:1})]),_:1})]),a("th",null,[e[77]||(e[77]=a("span",null,"已完成挂号",-1)),i(L,{placement:"top",effect:"dark","show-after":200},{content:_(()=>[...e[76]||(e[76]=[a("div",{style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},[c(" 仅"),a("b",null,"已完成"),c("(status=3),与 admin「医生预约 / 已完成」列表计数条件一致(appointment_date、诊单未软删);部门归属医助优先,否则接诊医生。 ")],-1)])]),default:_(()=>[i(w,{class:"col-info"},{default:_(()=>[i(D(M))]),_:1})]),_:1})]),a("th",null,[e[79]||(e[79]=a("span",null,"接诊诊单",-1)),i(L,{placement:"top",effect:"dark","show-after":200},{content:_(()=>[...e[78]||(e[78]=[a("div",{style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},[a("b",null,"业务订单条数"),c("(计业绩):订单 "),a("b",null,"create_time"),c(" 落入区间、"),a("b",null,"fulfillment_status ∉ {4,9,10}"),c(";与列表筛选 "),a("b",null,"assistant_dept_id"),c(" 时一致——"),a("b",null,"创建人"),c("人事部门优先,无创建人则诊单 "),a("b",null,"医助"),c(";落在该部门子树即计入(表格多行命中时取最深的展示部门)。与侧栏勾选「与表格业绩对齐」时的集合可能略有差异。选定渠道时本列仍为全量。 ")],-1)])]),default:_(()=>[i(w,{class:"col-info"},{default:_(()=>[i(D(M))]),_:1})]),_:1})]),l.channel_name?(o(),u("th",Jo,[a("span",Go,r(Ut("deal")),1),i(L,{placement:"top",effect:"dark","show-after":200},{content:_(()=>[a("div",Zo,[c(" 「"+r(l.channel_name)+"」渠道成交单数;与渠道业绩同源:区间内 ",1),e[80]||(e[80]=a("b",null,"计业绩的业务订单",-1)),e[81]||(e[81]=c(" 条数(剔除 4/9/10),按订单 ",-1)),e[82]||(e[82]=a("b",null,"create_time",-1)),e[83]||(e[83]=c(" 归日;渠道判定同业绩列。 ",-1))])]),default:_(()=>[i(w,{class:"col-info","aria-label":"说明"},{default:_(()=>[i(D(M))]),_:1})]),_:2},1024)])):f("",!0),l.channel_name?(o(),u("th",Xo,[a("span",Ko,r(Ut("aov")),1),i(L,{placement:"top",effect:"dark","show-after":200},{content:_(()=>[a("div",Qo," 「"+r(l.channel_name)+"」渠道客单价 ≈ 渠道业绩 ÷ 渠道成交单。 ",1)]),default:_(()=>[i(w,{class:"col-info","aria-label":"说明"},{default:_(()=>[i(D(M))]),_:1})]),_:2},1024)])):f("",!0),a("th",null,[e[109]||(e[109]=a("span",null,"ROI",-1)),i(L,{placement:"top",effect:"dark","show-after":200},{content:_(()=>[a("div",es,[l.channel_name?(o(),u(k,{key:0},[e[84]||(e[84]=c(" 有渠道时:",-1)),e[85]||(e[85]=a("b",null,"合计行 ROI",-1)),e[86]||(e[86]=c(" = ",-1)),a("b",null,r(l.channel_name)+"业绩合计",1),e[87]||(e[87]=c("(与上表该渠道业绩列合计一致,",-1)),e[88]||(e[88]=a("b",null,"不含二中心及其组织下级",-1)),e[89]||(e[89]=c(")÷ ",-1)),e[90]||(e[90]=a("b",null,"投放成本合计",-1)),e[91]||(e[91]=c("。",-1)),e[92]||(e[92]=a("br",null,null,-1)),e[93]||(e[93]=c(" 部门行 ROI = 该部门 ",-1)),a("b",null,r(l.channel_name)+"业绩",1),e[94]||(e[94]=c(" ÷ 该部门 ",-1)),e[95]||(e[95]=a("b",null,"投放成本",-1)),e[96]||(e[96]=c(";",-1)),e[97]||(e[97]=a("b",null,"二中心子树",-1)),e[98]||(e[98]=c("部门该渠道业绩与进线为 0、投放成本分摊进线计 0,故无 ROI。与「合计业绩」列无关。 ",-1))],64)):(o(),u(k,{key:1},[e[99]||(e[99]=a("b",null,"合计行 ROI",-1)),e[100]||(e[100]=c(" = 全表业绩合计(",-1)),e[101]||(e[101]=a("b",null,"不含二中心子树",-1)),e[102]||(e[102]=c("各部门行业绩)÷ ",-1)),e[103]||(e[103]=a("b",null,"投放成本合计",-1)),e[104]||(e[104]=c(";",-1)),e[105]||(e[105]=a("br",null,null,-1)),e[106]||(e[106]=c(" 部门行 = 该部门「合计业绩」口径业绩 ÷ 该部门均摊投放成本;",-1)),e[107]||(e[107]=a("b",null,"二中心子树",-1)),e[108]||(e[108]=c("部门不参与成本分摊(进线占比计 0),故无 ROI。 ",-1))],64))])]),default:_(()=>[i(w,{class:"col-info"},{default:_(()=>[i(D(M))]),_:1})]),_:2},1024)]),a("th",null,[e[111]||(e[111]=a("span",null,"投放成本",-1)),i(L,{placement:"top",effect:"dark","show-after":200},{content:_(()=>[...e[110]||(e[110]=[a("div",{style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},[c(" 区间与渠道与账务表一致后得到"),a("b",null,"总投放成本"),c(";"),a("b",null,"单进线成本"),c(" = 总成本 ÷ 各展示部门"),a("b",null,"进线合计"),c(";"),a("br"),c(" 各部门行投放成本 = 单进线成本 × 该部门进线(四舍五入尾差并入进线最多的部门)。"),a("b",null,"二中心及其组织下级"),c("进线在分摊中计 "),a("b",null,"0"),c("(与 ROI 分子扣除范围一致)。 ")],-1)])]),default:_(()=>[i(w,{class:"col-info"},{default:_(()=>[i(D(M))]),_:1})]),_:1})])])]),a("tbody",null,[(o(!0),u(k,null,F(l.rows,m=>(o(),u("tr",{key:`${b}-${m.dept_id}-${m.dept_name}`,class:ht(["yeji-row--action",{"yeji-row--unassigned":xe(m),"yeji-row--idle":m.dept_id<=0&&!xe(m)}]),onClick:T=>Yn(l,m)},[a("td",as,r(m.dept_name),1),a("td",{onClick:T=>jn(T,l,m)},[m.dept_id>0&&Number(m.lead_count)>0?(o(),u("span",ls,r(N(m.lead_count)),1)):(o(),u(k,{key:1},[c(r(N(m.lead_count)),1)],64))],8,ns),a("td",{onClick:U(T=>xn(T,l,m),["stop"])},[fa(m)?(o(),u("span",ss,r(N(m.assign_count??0)),1)):(o(),u(k,{key:1},[c(r(N(m.assign_count??0)),1)],64))],8,os),a("td",{onClick:U(T=>bn(l,m),["stop"])},[m.dept_id>0&&Number(m.revisit_count??0)>0?(o(),u("span",rs,r(N(m.revisit_count??0)),1)):(o(),u(k,{key:1},[c(r(N(m.revisit_count??0)),1)],64))],8,is),(o(!0),u(k,null,F(jt.value,T=>(o(),u("td",{key:"yjv-"+b+"-"+m.dept_id+"-"+T,onClick:U(Ca=>wn(l,m,T),["stop"])},[m.dept_id>0&&le(m,T)>0?(o(),u("span",us,r(N(le(m,T))),1)):(o(),u(k,{key:1},[c(r(N(le(m,T))),1)],64))],8,ds))),128)),a("td",null,[Et(l,m,"total")?(o(),u("span",{key:0,class:"yeji-lead-cell--link",onClick:U(T=>ca(l,m,"total"),["stop"])},r(O(m.performance_amount)),9,cs)):(o(),u(k,{key:1},[c(r(O(m.performance_amount)),1)],64))]),l.channel_name?(o(),u("td",_s,[Et(l,m,"channel")?(o(),u("span",{key:0,class:"yeji-lead-cell--link",onClick:U(T=>ca(l,m,"channel"),["stop"])},r(O(m.completed_performance_amount)),9,ps)):(o(),u(k,{key:1},[c(r(O(m.completed_performance_amount)),1)],64))])):f("",!0),a("td",{onClick:U(T=>Vn(l,m),["stop"])},[ha(m)&&Number(m.appointment_booked_count??0)>0?(o(),u("span",vs,r(N(m.appointment_booked_count??0)),1)):(o(),u(k,{key:1},[c(r(N(m.appointment_booked_count??0)),1)],64))],8,ms),a("td",null,r(N(m.consult_count)),1),a("td",null,r(N(m.deal_order_count)),1),l.channel_name?(o(),u("td",fs,r(N(m.channel_consult_count)),1)):f("",!0),l.channel_name?(o(),u("td",ys,r(xa(m.channel_avg_price)),1)):f("",!0),a("td",{class:ht(Na(m.roi))},r(Sa(m.roi)),3),a("td",null,r(O(m.cost_amount)),1)],10,ts))),128)),a("tr",gs,[e[113]||(e[113]=a("td",{class:"col-dept"},"合计",-1)),a("td",null,r(N(l.total.lead_count)),1),a("td",null,r(N(l.total.assign_count??0)),1),a("td",null,r(N(l.total.revisit_count??0)),1),(o(!0),u(k,null,F(jt.value,m=>(o(),u("td",{key:"yjvt-"+b+"-"+m},r(N(le(l.total,m))),1))),128)),a("td",null,[Vt(l,"total")?(o(),u("span",{key:0,class:"yeji-lead-cell--link",onClick:U(m=>_a(l,"total"),["stop"])},r(O(l.total.performance_amount)),9,hs)):(o(),u(k,{key:1},[c(r(O(l.total.performance_amount)),1)],64))]),l.channel_name?(o(),u("td",bs,[Vt(l,"channel")?(o(),u("span",{key:0,class:"yeji-lead-cell--link",onClick:U(m=>_a(l,"channel"),["stop"])},r(O(l.total.completed_performance_amount)),9,ws)):(o(),u(k,{key:1},[c(r(O(l.total.completed_performance_amount)),1)],64))])):f("",!0),a("td",null,r(N(l.total.appointment_booked_count??0)),1),a("td",null,r(N(l.total.consult_count)),1),a("td",null,r(N(l.total.deal_order_count)),1),l.channel_name?(o(),u("td",ks,r(N(l.total.channel_consult_count)),1)):f("",!0),l.channel_name?(o(),u("td",js,r(xa(l.total.channel_avg_price)),1)):f("",!0),a("td",{class:ht(Na(l.total.roi))},r(Sa(l.total.roi)),3),a("td",null,r(O(l.total.cost_amount)),1)])])])]),a("div",xs,[a("span",null,"区间:"+r(l.start_date)+" ~ "+r(l.end_date),1),l.channel_name?(o(),u("span",Ss," · 渠道:"+r(l.channel_name),1)):f("",!0),l.total.cost_per_lead!=null&&l.total.cost_per_lead>0?(o(),u("span",Ns," · 单进线成本:"+r(O(l.total.cost_per_lead))+" 元 ",1)):f("",!0)])]))),128))])),[[V,ne.value]])]),_:1})):f("",!0),Ke.value?(o(),j(me,{key:3,label:"目标看板(卡片)",name:"zyyt_matrix",lazy:""},{default:_(()=>[Z((o(),u("div",Cs,[Ye.value?(o(),u(k,{key:0},[a("h2",Ds,r(Ye.value.title),1),a("div",Ls,[(o(!0),u(k,null,F(Ye.value.sections,l=>(o(),u("div",{key:"tm-"+l.dept_id,class:"tp-matrix-card",role:"listitem"},[a("div",zs,[a("div",$s,[l.parent_dept_name?(o(),u("span",As,r(l.parent_dept_name),1)):f("",!0),a("span",Ps,r(l.dept_name)+"目标",1)]),a("span",Rs,r(Kn(l.target_amount)),1)]),a("table",Ts,[a("tbody",null,[a("tr",null,[e[114]||(e[114]=a("td",{class:"tp-matrix-card__lbl"},"昨日诊金",-1)),a("td",Is,r(N(l.yesterday_amount)),1)]),l.douyin_amount!==null?(o(),u("tr",Ms,[e[115]||(e[115]=a("td",{class:"tp-matrix-card__lbl"},"抖音总诊金",-1)),a("td",Os,r(N(l.douyin_amount)),1)])):f("",!0),l.tuifen_amount!==null?(o(),u("tr",Es,[e[116]||(e[116]=a("td",{class:"tp-matrix-card__lbl"},"推粉总诊金",-1)),a("td",Vs,r(N(l.tuifen_amount)),1)])):f("",!0),a("tr",null,[e[117]||(e[117]=a("td",{class:"tp-matrix-card__lbl"},"总诊金",-1)),a("td",Fs,r(N(l.total_amount)),1)]),a("tr",null,[e[118]||(e[118]=a("td",{class:"tp-matrix-card__lbl"},"目标进度",-1)),a("td",Bs,r(O(l.target_progress)),1)]),a("tr",null,[e[119]||(e[119]=a("td",{class:"tp-matrix-card__lbl"},"完成进度",-1)),a("td",{class:ht(["tp-matrix-card__num tp-matrix-card__num--hot",Xn(l.completion_rate)])},r(Zn(l.completion_rate)),3)])])])]))),128))])],64)):mt.value?f("",!0):(o(),j(R,{key:1,class:"tp-matrix-empty",description:"暂无目标数据,请先配置当月部门目标或为部门设置诊金目标后刷新页面"}))])),[[V,mt.value]])]),_:1})):f("",!0)]),_:1},8,["modelValue"])):(o(),j(R,{key:1,description:"当前账号无表格统计 Tab 权限"}))]),_:1}),i(E,{class:"yeji-panel yeji-charts-only-card",shadow:"never"},{default:_(()=>[e[130]||(e[130]=a("div",{class:"yeji-charts-only-head"},"统计图",-1)),Z((o(),u("div",Ys,[Ba.value?(o(),u(k,{key:0},[W.value&&(At.value||Pt.value||Rt.value||Tt.value||It.value)?(o(),u("section",Us,[a("h3",Hs,[e[121]||(e[121]=c(" 医生统计 ",-1)),ct.value?(o(),u("span",Ws,r(ct.value),1)):f("",!0)]),i(Se,{gutter:16},{default:_(()=>[i(J,{xs:24,lg:9},{default:_(()=>[a("div",qs,[e[122]||(e[122]=a("div",{class:"yeji-chart-panel__label"},"成交金额 TOP(条形)",-1)),At.value?(o(),j(D(ae),{key:0,class:"yeji-echart",option:Wa.value,autoresize:""},null,8,["option"])):(o(),j(R,{key:1,description:"暂无成交金额数据","image-size":72}))])]),_:1}),i(J,{xs:24,lg:8},{default:_(()=>[a("div",Js,[e[123]||(e[123]=a("div",{class:"yeji-chart-panel__label"},"开方构成(堆叠柱)",-1)),Pt.value?(o(),j(D(ae),{key:0,class:"yeji-echart yeji-echart--short",option:qa.value,autoresize:""},null,8,["option"])):(o(),j(R,{key:1,description:"暂无开方数据","image-size":72}))])]),_:1}),i(J,{xs:24,lg:7},{default:_(()=>[a("div",Gs,[e[124]||(e[124]=a("div",{class:"yeji-chart-panel__label"},"挂号结果(环形 · 表尾合计)",-1)),Rt.value?(o(),j(D(ae),{key:0,class:"yeji-echart yeji-echart--short",option:Ya.value,autoresize:""},null,8,["option"])):(o(),j(R,{key:1,description:"暂无挂号汇总","image-size":72}))])]),_:1})]),_:1}),i(Se,{gutter:16,class:"yeji-chart-subrow"},{default:_(()=>[i(J,{xs:24,lg:12},{default:_(()=>[a("div",Zs,[e[125]||(e[125]=a("div",{class:"yeji-chart-panel__label"},"接诊诊单 × 金额(散点)",-1)),Tt.value?(o(),j(D(ae),{key:0,class:"yeji-echart yeji-echart--compact",option:Ua.value,autoresize:""},null,8,["option"])):(o(),j(R,{key:1,description:"至少两名医生同时有接诊诊单与金额时可展示","image-size":72}))])]),_:1}),i(J,{xs:24,lg:12},{default:_(()=>[a("div",Xs,[e[126]||(e[126]=a("div",{class:"yeji-chart-panel__label"},"TOP 医生雷达(相对最高值归一)",-1)),It.value?(o(),j(D(ae),{key:0,class:"yeji-echart yeji-echart--compact",option:Ha.value,autoresize:""},null,8,["option"])):(o(),j(R,{key:1,description:"至少两名医生有数据时可展示","image-size":72}))])]),_:1})]),_:1})])):f("",!0),(o(!0),u(k,null,F(re.value,(l,b)=>(o(),u(k,{key:"dept-chart-"+b},[ea(l)?(o(),u("section",Ks,[a("h3",Qs,r(ba(l)),1),i(D(ae),{class:"yeji-echart yeji-echart--tall",option:Hn(l),autoresize:""},null,8,["option"]),ka(l)||ja(l)?(o(),j(Se,{key:0,gutter:16,class:"yeji-chart-subrow"},{default:_(()=>[ka(l)?(o(),j(J,{key:0,xs:24,md:12},{default:_(()=>[a("div",ei,[e[127]||(e[127]=a("div",{class:"yeji-chart-panel__label"}," 进线 → 接诊 → 成交(汇总漏斗) ",-1)),i(D(ae),{class:"yeji-echart yeji-echart--compact",option:Jn(l),autoresize:""},null,8,["option"])])]),_:2},1024)):f("",!0),ja(l)?(o(),j(J,{key:1,xs:24,md:12},{default:_(()=>[a("div",ti,[e[128]||(e[128]=a("div",{class:"yeji-chart-panel__label"}," 部门合计业绩占比(TOP10 + 其它) ",-1)),i(D(ae),{class:"yeji-echart yeji-echart--compact",option:Gn(l),autoresize:""},null,8,["option"])])]),_:2},1024)):f("",!0)]),_:2},1024)):f("",!0)])):f("",!0)],64))),128)),oe.value&&S.value?(o(!0),u(k,{key:1},F(Qt.value,l=>(o(),u("section",{key:"lb-chart-"+l.dept_id,class:"yeji-chart-block"},[a("h3",ai,[c(r(l.dept_name)+" · 医助 ",1),S.value.channel_name?(o(),u("span",ni," ("+r(S.value.channel_name)+") ",1)):f("",!0),a("span",li,r(S.value.start_date)+"~"+r(S.value.end_date),1)]),i(Se,{gutter:16},{default:_(()=>[i(J,{xs:24,lg:wa(l)?14:24},{default:_(()=>[i(D(ae),{class:"yeji-echart",option:Wn(l,S.value),autoresize:""},null,8,["option"])]),_:2},1032,["lg"]),wa(l)?(o(),j(J,{key:0,xs:24,lg:10},{default:_(()=>[a("div",oi,[e[129]||(e[129]=a("div",{class:"yeji-chart-panel__label"},"诊金占比",-1)),i(D(ae),{class:"yeji-echart yeji-echart--compact",option:qn(l,S.value),autoresize:""},null,8,["option"])])]),_:2},1024)):f("",!0)]),_:2},1024)]))),128)):f("",!0)],64)):!ne.value&&(!W.value||!Fe.value)&&(!oe.value||!de.value)?(o(),j(R,{key:1,class:"yeji-charts-empty",description:"当前筛选下暂无图表数据,请调整条件后查询"})):f("",!0)])),[[V,ne.value||W.value&&Fe.value||oe.value&&de.value]])]),_:1}),i(We,{modelValue:se.value,"onUpdate:modelValue":e[5]||(e[5]=l=>se.value=l),direction:"rtl",size:"min(1120px, 98vw)","destroy-on-close":"",class:"yeji-order-drawer","show-close":!0},{header:_(()=>[a("div",si,[a("h3",ii,r(et.value),1),a("p",ri,r(tt.value),1)])]),default:_(()=>[a("div",di,[a("section",ui,[a("div",ci,[e[131]||(e[131]=a("span",{class:"yeji-order-drawer__stat-label"},"符合条件的订单",-1)),a("span",_i,r(_t.value.toLocaleString("zh-CN"))+" 笔",1)]),a("div",pi,[e[132]||(e[132]=a("span",{class:"yeji-order-drawer__stat-label"},[c(" 约诊 "),a("span",{class:"yeji-order-drawer__stat-note"},"(已完成挂号;日期按挂号 appointment_date;医助=挂号或诊单,与看板接诊一致)")],-1)),a("span",mi,r(la.value===null?"—":la.value.toLocaleString("zh-CN"))+" 次",1)]),oa.value&&q.value?(o(),u(k,{key:0},[a("div",vi,[a("span",fi,[e[133]||(e[133]=c(" 合计业绩 ",-1)),a("span",yi,"(与看板「合计业绩」列同口径,不限渠道;"+r(q.value.totalOrderCount.toLocaleString("zh-CN"))+" 笔)",1)]),a("span",gi," ¥"+r(vt(q.value.totalAmount)),1)]),a("div",hi,[a("span",bi,[c(r(Ot.value)+"业绩 ",1),a("span",wi,"(与看板「"+r(Ot.value)+"业绩」同口径;"+r(q.value.channelOrderCount.toLocaleString("zh-CN"))+" 笔)",1)]),a("span",ki," ¥"+r(vt(Xa.value)),1)])],64)):(o(),u("div",ji,[e[134]||(e[134]=a("span",{class:"yeji-order-drawer__stat-label"},[c(" 业务订单金额合计 "),a("span",{class:"yeji-order-drawer__stat-note"},"(不含履约 4·9·10,与上方业绩口径一致)")],-1)),a("span",xi," ¥"+r(vt(na.value)),1)])),ke.value.length>0?(o(),u("div",Si,[e[135]||(e[135]=a("span",{class:"yeji-order-drawer__stat-label"},"本页小计",-1)),a("span",Ni,"¥"+r(vt(Za.value)),1)])):f("",!0)]),oa.value?(o(),j(He,{key:0,modelValue:X.value,"onUpdate:modelValue":e[4]||(e[4]=l=>X.value=l),class:"yeji-order-drawer__list-tabs",onTabChange:yn},{default:_(()=>[i(me,{label:"合计业绩(全量订单)",name:"total"}),i(me,{label:`渠道筛选(${Ot.value})`,name:"channel"},null,8,["label"])]),_:1},8,["modelValue"])):f("",!0),Z((o(),u("div",Ci,[ke.value.length>0||we.value?(o(),j(Y,{key:0,data:ke.value,size:"small",stripe:"",border:"","max-height":"58vh",class:"yeji-order-drawer__table","empty-text":we.value?"加载中…":"暂无数据"},{default:_(()=>[i(p,{type:"index",label:"#",width:"46",index:dn}),i(p,{prop:"order_no",label:"订单号","min-width":"152","show-overflow-tooltip":""}),i(p,{label:"关联挂号","min-width":"218"},{default:_(({row:l})=>[l.linked_appointment?(o(),u("div",Di,[a("div",Li,[e[136]||(e[136]=a("span",{class:"yeji-order-appt-k"},"日期",-1)),c(" "+r(un(l.linked_appointment)),1)]),a("div",zi,[e[137]||(e[137]=a("span",{class:"yeji-order-appt-k"},"状态",-1)),c(" "+r(l.linked_appointment.status_desc||"—")+" ",1),l.linked_appointment.doctor_name?(o(),u("span",$i," · "+r(l.linked_appointment.doctor_name),1)):f("",!0)]),a("div",Ai,[e[138]||(e[138]=a("span",{class:"yeji-order-appt-k"},"类型",-1)),c(" "+r(l.linked_appointment.appointment_type_desc||"—"),1)]),a("div",Pi,[e[140]||(e[140]=a("span",{class:"yeji-order-appt-k"},"渠道",-1)),a("span",Ri,[c(r(l.linked_appointment.channel_source_desc||l.linked_appointment.channel_source||"—")+" ",1),ra(l.linked_appointment)!==""?(o(),u("span",Ti," (字典 value "+r(ra(l.linked_appointment))+" ) ",1)):f("",!0)]),i(L,{placement:"top",effect:"dark","show-after":200},{content:_(()=>[...e[139]||(e[139]=[a("div",{style:{"max-width":"280px","line-height":"1.65","font-size":"12px"}},[c(" 「字典 value」= 系统字典 "),a("b",null,"channels"),c(" 的 value,与业绩表里按渠道收窄时所用"),a("b",null,"挂号 channels"),c("一致;便于和进线列所选渠道对照,"),a("b",null,"不是"),c("企微 add_external_contact 单上的独立编号。 ")],-1)])]),default:_(()=>[i(w,{class:"yeji-order-appt-info","aria-label":"说明"},{default:_(()=>[i(D(M))]),_:1})]),_:1})])])):(o(),u("span",Ii,"—"))]),_:1}),i(p,{label:"金额",width:"108",align:"right"},{default:_(({row:l})=>[a("span",Mi,"¥"+r(l.amount??"—"),1)]),_:1}),i(p,{prop:"recipient_name",label:"收货人",width:"96","show-overflow-tooltip":""}),i(p,{label:"履约",width:"104","show-overflow-tooltip":""},{default:_(({row:l})=>[c(r(rn(l.fulfillment_status)),1)]),_:1}),i(p,{label:"创建时间","min-width":"148"},{default:_(({row:l})=>[c(r(cn(l.create_time)),1)]),_:1}),i(p,{prop:"doctor_name",label:"开方人",width:"88","show-overflow-tooltip":""}),i(p,{prop:"assistant_name",label:"诊单医助",width:"88","show-overflow-tooltip":""}),i(p,{prop:"creator_name",label:"创建人",width:"88","show-overflow-tooltip":""})]),_:1},8,["data","empty-text"])):f("",!0),!we.value&&ke.value.length===0?(o(),j(R,{key:1,description:"暂无业务订单"})):f("",!0),a("div",Oi,[i(Ne,{"current-page":K.value,"page-size":pt.value,background:"",layout:"total, sizes, prev, pager, next, jumper",total:_t.value,"page-sizes":[10,15,20,50],disabled:we.value,"hide-on-single-page":!1,onCurrentChange:gn,onSizeChange:hn},null,8,["current-page","page-size","total","disabled"])])])),[[V,we.value]])])]),_:1},8,["modelValue"]),i(ve,{modelValue:xt.value,"onUpdate:modelValue":e[6]||(e[6]=l=>xt.value=l),width:"min(680px, 94vw)","destroy-on-close":"",class:"yeji-unassigned-dialog"},{header:_(()=>[a("div",Ei,[e[141]||(e[141]=a("span",{class:"yeji-unassigned-dialog__title"},"「未归属中心」业绩拆解",-1)),a("p",Vi,r(Gt.value),1)])]),default:_(()=>[qe.value?(o(),u("p",Fi,r(qe.value),1)):f("",!0),Z((o(),u("div",Bi,[Le.value.length>0||De.value?(o(),j(Y,{key:0,data:Le.value,size:"small",stripe:"",border:"","max-height":"440",class:"yeji-unassigned-dialog__table","empty-text":De.value?"加载中…":"暂无数据"},{default:_(()=>[i(p,{prop:"name",label:"诊单医助","min-width":"120","show-overflow-tooltip":""}),i(p,{label:"账号",width:"88",align:"right"},{default:_(({row:l})=>[c(r(l.admin_id>0?l.admin_id:"—"),1)]),_:1}),i(p,{label:"订单数",width:"88",align:"right"},{default:_(({row:l})=>[c(r(N(l.order_count)),1)]),_:1}),i(p,{label:"业绩金额","min-width":"112",align:"right"},{default:_(({row:l})=>[c(r(O(l.amount)),1)]),_:1})]),_:1},8,["data","empty-text"])):f("",!0),!De.value&&Le.value.length===0?(o(),j(R,{key:1,description:"暂无拆解数据"})):f("",!0)])),[[V,De.value]])]),_:1},8,["modelValue"]),i(ve,{modelValue:Nt.value,"onUpdate:modelValue":e[7]||(e[7]=l=>Nt.value=l),width:"min(920px, 96vw)","destroy-on-close":"",class:"yeji-leadlines-dialog"},{header:_(()=>[a("div",Yi,[a("div",Ui,[e[142]||(e[142]=a("span",{class:"yeji-unassigned-dialog__title"},"进线数据明细",-1)),a("p",Hi,r(Kt.value),1)]),i(I,{size:"small",loading:Ge.value,disabled:ue.value||Ge.value||Pe.value<=0,onClick:Mn},{default:_(()=>[...e[143]||(e[143]=[c(" 导出 ",-1)])]),_:1},8,["loading","disabled"])])]),default:_(()=>[Ze.value?(o(),u("p",Wi,r(Ze.value),1)):f("",!0),Z((o(),u("div",qi,[Ae.value.length>0||ue.value?(o(),j(Y,{key:0,data:Ae.value,size:"small",stripe:"",border:"","max-height":"440",class:"yeji-unassigned-dialog__table","empty-text":ue.value?"加载中…":"暂无数据"},{default:_(()=>[i(p,{prop:"event_time_text",label:"进线时间","min-width":"156","show-overflow-tooltip":""}),i(p,{prop:"reception_admin_name",label:"接待",width:"88","show-overflow-tooltip":""}),i(p,{prop:"external_contact_name",label:"客户","min-width":"100","show-overflow-tooltip":""}),i(p,{prop:"external_userid",label:"外部联系人ID","min-width":"140","show-overflow-tooltip":""}),i(p,{prop:"user_id",label:"企微成员ID","min-width":"120","show-overflow-tooltip":""}),i(p,{prop:"state",label:"渠道参数",width:"96","show-overflow-tooltip":""})]),_:1},8,["data","empty-text"])):f("",!0),!ue.value&&Ae.value.length===0?(o(),j(R,{key:1,description:"暂无进线明细"})):f("",!0),Pe.value>0?(o(),u("div",Ji,[i(Ne,{"current-page":Xe.value,"page-size":rt.value,background:"",layout:"total, sizes, prev, pager, next, jumper",total:Pe.value,"page-sizes":[10,20,50,100],disabled:ue.value,"hide-on-single-page":!1,onCurrentChange:Tn,onSizeChange:In},null,8,["current-page","page-size","total","disabled"])])):f("",!0)])),[[V,ue.value]])]),_:1},8,["modelValue"]),i(ve,{modelValue:dt.value,"onUpdate:modelValue":e[8]||(e[8]=l=>dt.value=l),width:"min(960px, 96vw)","destroy-on-close":"",class:"yeji-leadlines-dialog"},{header:_(()=>[a("div",Gi,[e[144]||(e[144]=a("span",{class:"yeji-unassigned-dialog__title"},"预约诊单 · 挂号明细",-1)),a("p",Zi,r(Dt.value),1)])]),default:_(()=>[Re.value?(o(),u("p",Xi,r(Re.value),1)):f("",!0),Z((o(),u("div",Ki,[ce.value.length>0||fe.value?(o(),j(Y,{key:0,data:ce.value,size:"small",stripe:"",border:"","max-height":"440",class:"yeji-unassigned-dialog__table","empty-text":fe.value?"加载中…":"暂无数据"},{default:_(()=>[i(p,{type:"index",label:"#",width:"46",index:On}),i(p,{prop:"appointment_date",label:"预约日期",width:"108"}),i(p,{prop:"appointment_time",label:"时段","min-width":"96","show-overflow-tooltip":""}),i(p,{prop:"status_desc",label:"状态",width:"84"}),i(p,{prop:"appointment_type_desc",label:"类型",width:"92"}),i(p,{prop:"patient_name",label:"患者","min-width":"92","show-overflow-tooltip":""}),i(p,{prop:"patient_phone",label:"手机","min-width":"116","show-overflow-tooltip":""}),i(p,{prop:"doctor_name",label:"接诊医生",width:"92","show-overflow-tooltip":""}),i(p,{prop:"assistant_name",label:"医助",width:"88","show-overflow-tooltip":""}),i(p,{label:"诊单ID",width:"84",align:"right"},{default:_(({row:l})=>[c(r(N(l.diagnosis_id??0)),1)]),_:1}),Ea.value?(o(),j(p,{key:0,prop:"channel_source",label:"渠道来源",width:"96","show-overflow-tooltip":""})):f("",!0)]),_:1},8,["data","empty-text"])):f("",!0),!fe.value&&ce.value.length===0?(o(),j(R,{key:1,description:"暂无挂号记录"})):f("",!0),Te.value>0?(o(),u("div",Qi,[i(Ne,{"current-page":ye.value,"page-size":Ie.value,background:"",layout:"total, sizes, prev, pager, next, jumper",total:Te.value,"page-sizes":[10,20,50,100],disabled:fe.value,"hide-on-single-page":!1,onCurrentChange:Fn,onSizeChange:Bn},null,8,["current-page","page-size","total","disabled"])])):f("",!0)])),[[V,fe.value]])]),_:1},8,["modelValue"]),i(ve,{modelValue:St.value,"onUpdate:modelValue":e[9]||(e[9]=l=>St.value=l),width:"min(560px, 94vw)","destroy-on-close":"",class:"yeji-unassigned-dialog"},{header:_(()=>[a("div",er,[e[145]||(e[145]=a("span",{class:"yeji-unassigned-dialog__title"},"复诊 · 医助拆解",-1)),a("p",tr,r(Zt.value),1)])]),default:_(()=>[Je.value?(o(),u("p",ar,r(Je.value),1)):f("",!0),Z((o(),u("div",nr,[$e.value.length>0||ze.value?(o(),j(Y,{key:0,data:$e.value,size:"small",stripe:"",border:"","max-height":"440",class:"yeji-unassigned-dialog__table","empty-text":ze.value?"加载中…":"暂无数据"},{default:_(()=>[i(p,{prop:"name",label:"医助","min-width":"120","show-overflow-tooltip":""}),i(p,{label:"业务订单",width:"108",align:"right"},{default:_(({row:l})=>[Number(l.order_count)>0?(o(),u("span",{key:0,class:"yeji-lead-cell--link",role:"button",tabindex:"0",onClick:b=>pa(l),onKeydown:Dl(U(b=>pa(l),["prevent"]),["enter"])},r(N(l.order_count))+" 笔",41,lr)):(o(),u(k,{key:1},[c(r(N(l.order_count)),1)],64))]),_:1})]),_:1},8,["data","empty-text"])):f("",!0),!ze.value&&$e.value.length===0?(o(),j(R,{key:1,description:"暂无拆解数据"})):f("",!0)])),[[V,ze.value]])]),_:1},8,["modelValue"]),i(ve,{modelValue:ut.value,"onUpdate:modelValue":e[10]||(e[10]=l=>ut.value=l),width:"min(960px, 96vw)","destroy-on-close":"",class:"yeji-leadlines-dialog"},{header:_(()=>[a("div",or,[e[146]||(e[146]=a("span",{class:"yeji-unassigned-dialog__title"},"被指派明细",-1)),a("p",sr,r(zt.value),1)])]),default:_(()=>[Me.value?(o(),u("p",ir,r(Me.value),1)):f("",!0),Z((o(),u("div",rr,[he.value.length>0||ge.value?(o(),j(Y,{key:0,data:he.value,size:"small",stripe:"",border:"","max-height":"440",class:"yeji-unassigned-dialog__table","empty-text":ge.value?"加载中…":"暂无数据"},{default:_(()=>[i(p,{type:"index",label:"#",width:"46",index:Sn}),i(p,{prop:"diagnosis_id",label:"诊单ID",width:"88"}),i(p,{prop:"patient_name",label:"患者","min-width":"100","show-overflow-tooltip":""}),i(p,{prop:"patient_phone",label:"联系电话","min-width":"120","show-overflow-tooltip":""}),i(p,{prop:"assistant_name",label:"被指派医助","min-width":"108","show-overflow-tooltip":""}),i(p,{prop:"assign_count",label:"指派次数",width:"88",align:"right"}),i(p,{prop:"last_assign_time_text",label:"最近指派时间","min-width":"156","show-overflow-tooltip":""})]),_:1},8,["data","empty-text"])):f("",!0),!ge.value&&he.value.length===0?(o(),j(R,{key:1,description:"暂无被指派明细"})):f("",!0),Oe.value>0?(o(),u("div",dr,[i(Ne,{"current-page":be.value,"page-size":Ee.value,background:"",layout:"total, sizes, prev, pager, next, jumper",total:Oe.value,"page-sizes":[10,20,50,100],disabled:ge.value,"hide-on-single-page":!1,onCurrentChange:Ln,onSizeChange:zn},null,8,["current-page","page-size","total","disabled"])])):f("",!0)])),[[V,ge.value]])]),_:1},8,["modelValue"])])}}}),od=Hl(mr,[["__scopeId","data-v-9fbedb93"]]);export{od as default};
|