{const _=P,b=K,i=T,f=G,g=q,F=j,I=R,S=H,A=Q,J=L,O=M;return V(),v(Z,null,[e(_,{shadow:"never",class:"!border-none flex"},{default:t(()=>[...l[3]||(l[3]=[a("div",{class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2 text-xl font-medium"},[h(" 底部导航设置 "),a("span",{class:"form-tips ml-[10px] !mt-0"}," 至少添加2个导航,最多添加5个导航 ")],-1)])]),_:1}),e(O,{"label-width":"70px"},{default:t(()=>[e(_,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[l[4]||(l[4]=a("div",{class:"flex items-end mb-4"},[a("div",{class:"text-base text-[#101010] font-medium"},"展示样式")],-1)),e(i,{label:"默认颜色"},{default:t(()=>[e(b,{class:"max-w-[400px]",modelValue:m(n).style.default_color,"onUpdate:modelValue":l[0]||(l[0]=r=>m(n).style.default_color=r),"default-color":"#999999"},null,8,["modelValue"])]),_:1}),e(i,{label:"选中颜色",style:{"margin-bottom":"0"}},{default:t(()=>[e(b,{class:"max-w-[400px]",modelValue:m(n).style.selected_color,"onUpdate:modelValue":l[1]||(l[1]=r=>m(n).style.selected_color=r),"default-color":"#4173ff"},null,8,["modelValue"])]),_:1})]),_:1}),e(_,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>{var r;return[l[7]||(l[7]=a("div",{class:"flex items-end mb-4"},[a("div",{class:"text-base text-[#101010] font-medium"},"菜单设置"),a("div",{class:"text-xs text-tx-secondary ml-2"},"建议图片尺寸:100px*100px")],-1)),a("div",le,[e(m(W),{class:"draggable",modelValue:m(n).list,"onUpdate:modelValue":l[2]||(l[2]=o=>m(n).list=o),animation:"300",draggable:".draggable",handle:".drag-move",move:D,"item-key":"index"},{item:t(({element:o,index:u})=>[e(A,{onClose:d=>B(u),class:ee(["max-w-[400px]",{draggable:u!=0}]),"show-close":u!==0},{default:t(()=>[a("div",oe,[e(i,{label:"导航图标"},{default:t(()=>[e(g,{modelValue:o.unselected,"onUpdate:modelValue":d=>o.unselected=d,"upload-class":"bg-body","exclude-domain":"",size:"60px"},{upload:t(()=>[a("div",te,[e(f,{name:"el-icon-Plus",size:16}),l[5]||(l[5]=a("span",{class:"text-xs leading-5"}," 未选中 ",-1))])]),_:1},8,["modelValue","onUpdate:modelValue"]),e(g,{modelValue:o.selected,"onUpdate:modelValue":d=>o.selected=d,"exclude-domain":"","upload-class":"bg-body",size:"60px"},{upload:t(()=>[a("div",ae,[e(f,{name:"el-icon-Plus",size:16}),l[6]||(l[6]=a("span",{class:"text-xs leading-5"}," 选中 ",-1))])]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"导航名称"},{default:t(()=>[e(F,{modelValue:o.name,"onUpdate:modelValue":d=>o.name=d,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"链接地址"},{default:t(()=>[e(I,{"is-tab":!0,disabled:u===0,modelValue:o.link,"onUpdate:modelValue":d=>o.link=d},null,8,["disabled","modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"是否显示"},{default:t(()=>[a("div",se,[e(S,{disabled:u==0,modelValue:o.is_show,"onUpdate:modelValue":d=>o.is_show=d,"active-value":1,"inactive-value":0,onChange:d=>N(o)},null,8,["disabled","modelValue","onUpdate:modelValue","onChange"]),a("div",ne,[e(f,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])]),_:2},1032,["onClose","show-close","class"])]),_:1},8,["modelValue"])]),((r=m(n).list)==null?void 0:r.length) {const _=P,b=K,i=T,f=G,g=q,F=j,I=R,S=H,A=Q,J=L,O=M;return V(),v(Z,null,[e(_,{shadow:"never",class:"!border-none flex"},{default:t(()=>[...l[3]||(l[3]=[a("div",{class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2 text-xl font-medium"},[h(" 底部导航设置 "),a("span",{class:"form-tips ml-[10px] !mt-0"}," 至少添加2个导航,最多添加5个导航 ")],-1)])]),_:1}),e(O,{"label-width":"70px"},{default:t(()=>[e(_,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[l[4]||(l[4]=a("div",{class:"flex items-end mb-4"},[a("div",{class:"text-base text-[#101010] font-medium"},"展示样式")],-1)),e(i,{label:"默认颜色"},{default:t(()=>[e(b,{class:"max-w-[400px]",modelValue:m(n).style.default_color,"onUpdate:modelValue":l[0]||(l[0]=r=>m(n).style.default_color=r),"default-color":"#999999"},null,8,["modelValue"])]),_:1}),e(i,{label:"选中颜色",style:{"margin-bottom":"0"}},{default:t(()=>[e(b,{class:"max-w-[400px]",modelValue:m(n).style.selected_color,"onUpdate:modelValue":l[1]||(l[1]=r=>m(n).style.selected_color=r),"default-color":"#4173ff"},null,8,["modelValue"])]),_:1})]),_:1}),e(_,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>{var r;return[l[7]||(l[7]=a("div",{class:"flex items-end mb-4"},[a("div",{class:"text-base text-[#101010] font-medium"},"菜单设置"),a("div",{class:"text-xs text-tx-secondary ml-2"},"建议图片尺寸:100px*100px")],-1)),a("div",le,[e(m(W),{class:"draggable",modelValue:m(n).list,"onUpdate:modelValue":l[2]||(l[2]=o=>m(n).list=o),animation:"300",draggable:".draggable",handle:".drag-move",move:D,"item-key":"index"},{item:t(({element:o,index:u})=>[e(A,{onClose:d=>B(u),class:ee(["max-w-[400px]",{draggable:u!=0}]),"show-close":u!==0},{default:t(()=>[a("div",oe,[e(i,{label:"导航图标"},{default:t(()=>[e(g,{modelValue:o.unselected,"onUpdate:modelValue":d=>o.unselected=d,"upload-class":"bg-body","exclude-domain":"",size:"60px"},{upload:t(()=>[a("div",te,[e(f,{name:"el-icon-Plus",size:16}),l[5]||(l[5]=a("span",{class:"text-xs leading-5"}," 未选中 ",-1))])]),_:1},8,["modelValue","onUpdate:modelValue"]),e(g,{modelValue:o.selected,"onUpdate:modelValue":d=>o.selected=d,"exclude-domain":"","upload-class":"bg-body",size:"60px"},{upload:t(()=>[a("div",ae,[e(f,{name:"el-icon-Plus",size:16}),l[6]||(l[6]=a("span",{class:"text-xs leading-5"}," 选中 ",-1))])]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"导航名称"},{default:t(()=>[e(F,{modelValue:o.name,"onUpdate:modelValue":d=>o.name=d,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"链接地址"},{default:t(()=>[e(I,{"is-tab":!0,disabled:u===0,modelValue:o.link,"onUpdate:modelValue":d=>o.link=d},null,8,["disabled","modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"是否显示"},{default:t(()=>[a("div",se,[e(S,{disabled:u==0,modelValue:o.is_show,"onUpdate:modelValue":d=>o.is_show=d,"active-value":1,"inactive-value":0,onChange:d=>N(o)},null,8,["disabled","modelValue","onUpdate:modelValue","onChange"]),a("div",ne,[e(f,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])]),_:2},1032,["onClose","show-close","class"])]),_:1},8,["modelValue"])]),((r=m(n).list)==null?void 0:r.length) 订单池默认与处方订单列表同源:创建时间 start_time~end_time + fulfillment_status(默认完成态 3),账号列表可见性/数据域一并生效。 选结算月仍可套用「物流签收与尾款支付均须在结算月 7 日 24 点前」拆分「本期提成 / 顺延下期」 (仅有签收在范围内、尾款晚于截止仍会顺延); 展示部门/渠道下拉与列表不同,勾选后会与列表计数不同。 订单池默认与处方订单列表同源:创建时间 start_time~end_time + fulfillment_status(默认完成态 3),账号列表可见性/数据域一并生效。 选结算月仍可套用「物流签收与尾款支付均须在结算月 7 日 24 点前」拆分「本期提成 / 顺延下期」 (仅有签收在范围内、尾款晚于截止仍会顺延); 展示部门/渠道下拉与列表不同,勾选后会与列表计数不同。 提成结算业绩
提成结算业绩
{c} 单 ({d}%)"},legend:{type:"scroll",bottom:0,textStyle:{fontSize:11}},series:[{name:"诊单",type:"pie",radius:["46%","72%"],center:["50%","46%"],avoidLabelOverlap:!0,itemStyle:{borderRadius:6,borderColor:"#fff",borderWidth:2},label:{formatter:`{b}
+import{i as nt,d as dt,Q as ct,P as pt,a5 as ut,a4 as bt,R as mt}from"./element-plus-DFTWCWyi.js";import{H as O}from"./vue-echarts-BNtg2q_G.js";import{L as Q,ae as _t,af as ht,a4 as yt}from"./@element-plus/icons-vue-HOEUG8sr.js";import{l as wt,O as V,Q as ft,_ as vt}from"./index-ucUkIEXV.js";import{aq as gt}from"./tcm-SdnCjUNH.js";import{u as kt}from"./order-D4J3Q4a-.js";import{u as U}from"./getExposeType-MUpmx9zy.js";import{f as J,w as xt,b as St,ak as l,I as c,J as t,a,aN as r,O as C,F as A,ap as D,G as w,H as B,A as S}from"./@vue/runtime-core-C6bnekPw.js";import{r as M,y as f,n as G}from"./@vue/reactivity-DiY1c2vO.js";import{Q as n}from"./@vue/shared-mAAVTE9n.js";import"./@vue/runtime-dom-DDAG46FW.js";import"./lodash-D3kF6u-c.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 Ot={class:"workbench-page"},Ct={class:"wb-hero"},At={class:"wb-section wb-section--order"},Dt={class:"wb-section-head"},Nt={class:"wb-section-title"},$t={class:"wb-section-icon wb-section-icon--violet"},zt={class:"wb-section-sub"},Et={class:"wb-toolbar"},Lt={class:"wb-section-body"},Vt={class:"wb-kpi wb-kpi--violet"},Rt={class:"wb-kpi-value"},Pt={class:"wb-kpi wb-kpi--amber"},Ft={class:"wb-kpi-value wb-kpi-value--sm"},Wt={class:"wb-rank-strip wb-rank-strip--compact"},Bt={key:0,class:"wb-rank-chips"},Ht={key:1,class:"wb-rank-empty"},Tt={class:"wb-chart-card"},It={class:"wb-chart-card"},Qt={class:"wb-chart-card"},Ut={class:"wb-chart-card wb-ranking-card"},Mt={key:0,class:"wb-ranking-list"},jt={class:"wb-ranking-rank"},qt={class:"wb-ranking-name"},Gt={class:"wb-ranking-meta"},Jt={class:"wb-ranking-money"},Yt={key:0,class:"wb-dept-block"},Kt={class:"wb-dept-card wb-dept-card--order"},Xt={class:"wb-dept-card-head"},Zt={class:"wb-dept-total"},te={class:"wb-dept-list"},ee={class:"wb-dept-num"},se={key:0,class:"wb-dept-empty"},ae={class:"wb-section wb-section--diagnosis"},oe={class:"wb-section-head"},le={class:"wb-section-title"},re={class:"wb-section-icon wb-section-icon--blue"},ie={class:"wb-section-sub"},ne={class:"wb-toolbar"},de={class:"wb-section-body"},ce={class:"wb-kpi wb-kpi--blue"},pe={class:"wb-kpi-value"},ue={class:"wb-rank-strip"},be={key:0,class:"wb-rank-chips"},me={key:1,class:"wb-rank-empty"},_e={class:"wb-chart-card"},he={class:"wb-chart-card"},ye={key:0,class:"wb-dept-block"},we={class:"wb-dept-card"},fe={class:"wb-dept-card-head"},ve={class:"wb-dept-total"},ge={class:"wb-dept-list"},ke={class:"wb-dept-num"},xe={key:0,class:"wb-dept-empty"},Se={class:"wb-section wb-section--trend"},Oe={class:"wb-section-head"},Ce={class:"wb-section-title"},Ae={class:"wb-section-icon wb-section-icon--teal"},De={class:"wb-section-body wb-trend-body"},Ne={class:"wb-chart-card wb-trend-card"},$e={class:"wb-chart-card wb-trend-card"},ze=J({name:"workbench"}),Ee=J({...ze,setup(Le){const g=wt(),H=U(),T=U(),Y=U(),I=["#5b7cfa","#36cfc9","#ffc53d","#ff7a45","#b37feb","#597ef7","#73d13d","#ff85c0"];function j(s){if(s==null)return 0;const e=parseFloat(String(s).replace(/,/g,""));return Number.isFinite(e)?e:0}const p=M({days:0,departments:[],today_ranking:[],ranking:[],chart:{xAxis:[],series:[]}}),K=S(()=>(p.departments||[]).some(s=>Number(s.total)>0)),X=S(()=>{const s=(p.departments||[]).filter(e=>Number(e.total)>0).map(e=>({name:e.dept_name||"—",value:Number(e.total)}));return{color:I,tooltip:{trigger:"item",formatter:"{b}
{c} 单 ({d}%)"},legend:{type:"scroll",bottom:0,textStyle:{fontSize:11}},series:[{name:"诊单",type:"pie",radius:["46%","72%"],center:["50%","46%"],avoidLabelOverlap:!0,itemStyle:{borderRadius:6,borderColor:"#fff",borderWidth:2},label:{formatter:`{b}
{c}`},data:s}]}}),Z=S(()=>{var b;const s=g.theme,e=(p.chart.series||[]).map(i=>({...i,name:i.name||"诊单数",type:"bar",barWidth:"46%",itemStyle:{borderRadius:[8,8,0,0],color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:V(s,.75)},{offset:1,color:s}]}}})),h=((b=e[0])==null?void 0:b.data)||[];return{color:[s,"#f0b429"],legend:{data:["诊单数","趋势"],top:4},xAxis:{type:"category",data:p.chart.xAxis||[],axisLabel:{rotate:28,fontSize:11},axisLine:{lineStyle:{color:"#e4e7ec"}}},yAxis:{type:"value",name:"诊单数",splitLine:{lineStyle:{type:"dashed",color:"#eef0f4"}}},tooltip:{trigger:"axis"},grid:{left:"2%",right:"2%",bottom:"12%",top:48,containLabel:!0},series:[...e,{name:"趋势",type:"line",smooth:.35,symbol:"circle",symbolSize:7,lineStyle:{width:3,color:"#f0b429"},itemStyle:{color:"#f0b429"},data:h}]}}),R=()=>{gt({days:p.days}).then(s=>{p.date_range=s.date_range,p.today_total=s.today_total??0,p.today_ranking=s.today_ranking||[],p.departments=s.departments||[],p.ranking=s.ranking||[],p.chart=s.chart||{xAxis:[],series:[]}}).catch(()=>{})},P=G(-1),F=G(0),_=M({order_type_name:"",date_range:[],today_total:0,today_amount:"0.00",today_ranking:[],departments:[],ranking:[],chart:{xAxis:[],series:[]}}),tt=S(()=>(_.departments||[]).some(s=>Number(s.total)>0)),et=S(()=>(_.departments||[]).some(s=>j(s.amount)>0)),st=S(()=>{const s=(_.departments||[]).filter(e=>Number(e.total)>0).map(e=>({name:e.dept_name||"—",value:Number(e.total)}));return{color:I,tooltip:{trigger:"item",formatter:"{b}
{c} 单 ({d}%)"},legend:{type:"scroll",bottom:0,textStyle:{fontSize:11}},series:[{name:"单数",type:"pie",radius:["44%","70%"],center:["50%","46%"],itemStyle:{borderRadius:6,borderColor:"#fff",borderWidth:2},label:{formatter:`{b}
{c}`},data:s}]}}),at=S(()=>{const s=(_.departments||[]).map(e=>({name:e.dept_name||"—",value:j(e.amount)})).filter(e=>e.value>0);return{color:I,tooltip:{trigger:"item",formatter:e=>{const h=e.value;return`${e.name}
¥${Number(h).toFixed(2)} (${e.percent}%)`}},legend:{type:"scroll",bottom:0,textStyle:{fontSize:11}},series:[{name:"金额",type:"pie",radius:["44%","70%"],center:["50%","46%"],itemStyle:{borderRadius:6,borderColor:"#fff",borderWidth:2},label:{formatter:e=>`${e.name}
¥${Number(e.value).toFixed(0)}`},data:s}]}}),ot=S(()=>{const s=_.date_range;if((s==null?void 0:s.length)>=2)return`${s[0]} 至 ${s[1]}`;const e=F.value,h=new Date,b=new Date;return e===0?(b.setHours(0,0,0,0),`${W(b)} 至 ${W(h)}`):(b.setDate(b.getDate()-(e||7)),`${W(b)} 至 ${W(h)}`)});function W(s){return s.getFullYear()+"-"+String(s.getMonth()+1).padStart(2,"0")+"-"+String(s.getDate()).padStart(2,"0")}const lt=S(()=>{var b,i,k;const s=g.theme,e=(((b=_.chart)==null?void 0:b.series)||[]).map(m=>({...m,name:m.name||"单数",type:"bar",barWidth:"46%",itemStyle:{borderRadius:[8,8,0,0],color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:V(s,.72)},{offset:1,color:s}]}}})),h=((i=e[0])==null?void 0:i.data)||[];return{color:[s,"#fa8c16"],legend:{data:["单数","趋势"],top:4},xAxis:{type:"category",data:((k=_.chart)==null?void 0:k.xAxis)||[],axisLabel:{rotate:28,fontSize:11},axisLine:{lineStyle:{color:"#e4e7ec"}}},yAxis:{type:"value",name:"单数",splitLine:{lineStyle:{type:"dashed",color:"#eef0f4"}}},tooltip:{trigger:"axis"},grid:{left:"2%",right:"2%",bottom:"12%",top:48,containLabel:!0},series:[...e,{name:"趋势",type:"line",smooth:.35,symbol:"circle",symbolSize:7,lineStyle:{width:3,color:"#fa8c16"},itemStyle:{color:"#fa8c16"},data:h}]}}),N=()=>{kt({order_type:P.value,days:F.value}).then(s=>{Object.assign(_,{order_type_name:s.order_type_name??"",date_range:s.date_range||[],today_total:s.today_total??0,today_amount:s.today_amount??"0.00",today_ranking:s.today_ranking||[],departments:s.departments||[],ranking:s.ranking||[],chart:s.chart||{xAxis:[],series:[]}})}).catch(()=>{})},rt=()=>{q(),R(),N()};xt(()=>g.theme,()=>{it()});const u=M({version:{version:"",website:"",based:"",channel:{gitee:"",website:""}},support:[],today:{},menu:[],visitor:[],article:[],visitorOption:{xAxis:{type:"category",data:[]},yAxis:{type:"value"},legend:{data:["访问量"],top:8},tooltip:{trigger:"axis"},grid:{left:"2%",right:"3%",bottom:"3%",top:40,containLabel:!0},series:[{name:"访问量",data:[],type:"line",smooth:!0,color:g.theme,lineStyle:{color:g.theme,width:2},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:g.theme},{offset:1,color:g.theme}]},opacity:.12}}]},saleOption:{xAxis:{type:"category",data:[]},yAxis:{type:"value",name:"万"},tooltip:{trigger:"axis"},grid:{left:"2%",right:"3%",bottom:"3%",top:36,containLabel:!0},series:[{name:"销售量",data:[],type:"bar",showBackground:!0,backgroundStyle:{color:"rgba(120, 130, 150, 0.08)",borderRadius:[10,10,0,0]},barWidth:"42%",itemStyle:{borderRadius:[10,10,0,0],color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:V(g.theme,.65)},{offset:1,color:g.theme}]}}}]}}),q=()=>{ft().then(s=>{var e,h,b,i,k,m,v,x,$,z,E,L;u.version=s.version,u.today=s.today,u.menu=s.menu,u.visitor=s.visitor,u.support=s.support,u.visitorOption.xAxis.data=[],u.visitorOption.series[0].data=[],u.saleOption.xAxis.data=[],u.saleOption.series[0].data=[],(h=(e=s.visitor)==null?void 0:e.date)==null||h.reverse().forEach(o=>{u.visitorOption.xAxis.data.push(o)}),(m=(k=(i=(b=s.visitor)==null?void 0:b.list)==null?void 0:i[0])==null?void 0:k.data)==null||m.forEach(o=>{u.visitorOption.series[0].data.push(o)}),(x=(v=s.sale)==null?void 0:v.date)==null||x.reverse().forEach(o=>{u.saleOption.xAxis.data.push(o)}),(L=(E=(z=($=s.sale)==null?void 0:$.list)==null?void 0:z[0])==null?void 0:E.data)==null||L.forEach(o=>{let d=o;o<=50&&(d={value:o,itemStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:V("#ff8729",.7)},{offset:1,color:"#ff8729"}]}}}),u.saleOption.series[0].data.push(d)})}).catch(s=>{console.log("err",s)})},it=()=>{var e,h,b,i;const s=g.theme;u.visitorOption.series[0].color=s,u.visitorOption.series[0].lineStyle.color=s,u.visitorOption.series[0].areaStyle.color.colorStops=[{offset:0,color:s},{offset:1,color:s}],u.saleOption.series[0].itemStyle.color.colorStops=[{offset:0,color:V(s,.65)},{offset:1,color:s}],(e=H.value)==null||e.clear(),(h=T.value)==null||h.clear(),(b=H.value)==null||b.setOption(u.saleOption),(i=T.value)==null||i.setOption(u.visitorOption)};return St(()=>{q(),R(),N()}),(s,e)=>{var $,z,E,L;const h=nt,b=dt,i=ct,k=pt,m=ut,v=bt,x=mt;return l(),c("div",Ot,[t("header",Ct,[e[4]||(e[4]=t("div",{class:"wb-hero-text"},[t("h1",{class:"wb-hero-title"},"数据工作台"),t("p",{class:"wb-hero-desc"},"医助诊单、订单营收与运营趋势一屏掌握")],-1)),a(h,{type:"primary",icon:f(Q),round:"",class:"wb-refresh-btn",onClick:rt},{default:r(()=>[...e[3]||(e[3]=[C(" 刷新全部 ",-1)])]),_:1},8,["icon"])]),t("section",At,[t("div",Dt,[t("div",Nt,[t("span",$t,[a(b,null,{default:r(()=>[a(f(_t))]),_:1})]),t("div",null,[e[5]||(e[5]=t("div",{class:"wb-section-name"},"订单统计",-1)),t("div",zt,n(ot.value)+" · "+n(_.order_type_name||"—"),1)])]),t("div",Et,[a(k,{modelValue:P.value,"onUpdate:modelValue":e[0]||(e[0]=o=>P.value=o),class:"wb-select wb-select--wide",onChange:N},{default:r(()=>[a(i,{label:"全部(已支付)",value:-1}),a(i,{label:"挂号费",value:1}),a(i,{label:"问诊费",value:2}),a(i,{label:"药品费用",value:3}),a(i,{label:"首付费用",value:4}),a(i,{label:"尾款费用",value:5}),a(i,{label:"其他费用",value:6}),a(i,{label:"全部费用",value:7}),a(i,{label:"驼奶费用",value:8}),a(i,{label:"退款统计",value:0})]),_:1},8,["modelValue"]),a(k,{modelValue:F.value,"onUpdate:modelValue":e[1]||(e[1]=o=>F.value=o),class:"wb-select",onChange:N},{default:r(()=>[a(i,{label:"今天",value:0}),a(i,{label:"最近7天",value:7}),a(i,{label:"最近30天",value:30})]),_:1},8,["modelValue"]),a(h,{icon:f(Q),circle:"",onClick:N},null,8,["icon"])])]),t("div",Lt,[a(v,{gutter:16,class:"wb-kpi-row"},{default:r(()=>[a(m,{xs:24,sm:8},{default:r(()=>[t("div",Vt,[e[6]||(e[6]=t("div",{class:"wb-kpi-label"},"今日单数",-1)),t("div",Rt,n(_.today_total??0),1)])]),_:1}),a(m,{xs:24,sm:8},{default:r(()=>[t("div",Pt,[e[7]||(e[7]=t("div",{class:"wb-kpi-label"},"今日金额",-1)),t("div",Ft,"¥"+n(_.today_amount??"0.00"),1)])]),_:1}),a(m,{xs:24,sm:8},{default:r(()=>{var o;return[t("div",Wt,[e[8]||(e[8]=t("span",{class:"wb-rank-strip-label"},"今日 TOP",-1)),(o=_.today_ranking)!=null&&o.length?(l(),c("div",Bt,[(l(!0),c(A,null,D(_.today_ranking.slice(0,4),(d,y)=>(l(),c("span",{key:d.id,class:"wb-rank-chip wb-rank-chip--dense"},[t("em",null,n(Number(y)+1),1),C(" "+n(d.name)+" ",1),t("strong",null,n(d.count),1),t("small",null,"¥"+n(d.amount),1)]))),128))])):(l(),c("span",Ht,"暂无"))])]}),_:1})]),_:1}),a(v,{gutter:20,class:"wb-chart-row"},{default:r(()=>[a(m,{xs:24,lg:10},{default:r(()=>[t("div",Tt,[e[9]||(e[9]=t("div",{class:"wb-chart-card-head"},[t("span",{class:"wb-chart-title"},"部门单数占比")],-1)),tt.value?(l(),w(f(O),{key:0,class:"wb-chart",style:{height:"300px"},option:st.value,autoresize:!0},null,8,["option"])):(l(),w(x,{key:1,class:"wb-chart-empty",description:"暂无数据"}))])]),_:1}),a(m,{xs:24,lg:14},{default:r(()=>{var o,d;return[t("div",It,[e[10]||(e[10]=t("div",{class:"wb-chart-card-head"},[t("span",{class:"wb-chart-title"},"开单人 · 单数排行"),t("span",{class:"wb-chart-hint"},"柱状 + 趋势")],-1)),(d=(o=_.chart)==null?void 0:o.xAxis)!=null&&d.length?(l(),w(f(O),{key:"order-bar-"+P.value,class:"wb-chart",style:{height:"300px"},option:lt.value,autoresize:!0},null,8,["option"])):(l(),w(x,{key:1,class:"wb-chart-empty",description:"暂无图表数据"}))])]}),_:1})]),_:1}),a(v,{gutter:20,class:"wb-chart-row"},{default:r(()=>[a(m,{xs:24,lg:10},{default:r(()=>[t("div",Qt,[e[11]||(e[11]=t("div",{class:"wb-chart-card-head"},[t("span",{class:"wb-chart-title"},"部门金额占比")],-1)),et.value?(l(),w(f(O),{key:0,class:"wb-chart",style:{height:"300px"},option:at.value,autoresize:!0},null,8,["option"])):(l(),w(x,{key:1,class:"wb-chart-empty",description:"暂无数据"}))])]),_:1}),a(m,{xs:24,lg:14},{default:r(()=>{var o;return[t("div",Ut,[e[13]||(e[13]=t("div",{class:"wb-chart-card-head"},[t("span",{class:"wb-chart-title"},"周期内排行"),t("span",{class:"wb-chart-hint"},"单数 / 金额")],-1)),(o=_.ranking)!=null&&o.length?(l(),c("div",Mt,[(l(!0),c(A,null,D(_.ranking,(d,y)=>(l(),c("div",{key:d.id,class:"wb-ranking-item"},[t("span",jt,n(Number(y)+1),1),t("span",qt,n(d.name),1),t("span",Gt,[t("b",null,n(d.count),1),e[12]||(e[12]=C(" 单 ",-1)),t("span",Jt,"¥"+n(d.amount),1)])]))),128))])):(l(),w(x,{key:1,description:"暂无排行"}))])]}),_:1})]),_:1}),($=_.departments)!=null&&$.length?(l(),c("div",Yt,[e[14]||(e[14]=t("div",{class:"wb-dept-title"},"按部门统计",-1)),a(v,{gutter:16},{default:r(()=>[(l(!0),c(A,null,D(_.departments,o=>(l(),w(m,{key:o.dept_id,xs:24,sm:12,lg:8},{default:r(()=>{var d;return[t("div",Kt,[t("div",Xt,[C(n(o.dept_name)+" ",1),t("span",Zt,n(o.total)+" 单 · ¥"+n(o.amount),1)]),t("div",te,[(l(!0),c(A,null,D(o.members,y=>(l(),c("div",{key:`${o.dept_id}-${y.id}`,class:"wb-dept-row"},[t("span",null,n(y.name),1),t("span",ee,[C(n(y.count)+" ",1),t("small",null,"¥"+n(y.amount),1)])]))),128)),(d=o.members)!=null&&d.length?B("",!0):(l(),c("div",se,"暂无"))])])]}),_:2},1024))),128))]),_:1})])):B("",!0)])]),t("section",ae,[t("div",oe,[t("div",le,[t("span",re,[a(b,null,{default:r(()=>[a(f(ht))]),_:1})]),t("div",null,[e[15]||(e[15]=t("div",{class:"wb-section-name"},"医助理诊单统计",-1)),t("div",ie,n((z=p.date_range)==null?void 0:z[0])+" 至 "+n((E=p.date_range)==null?void 0:E[1]),1)])]),t("div",ne,[a(k,{modelValue:p.days,"onUpdate:modelValue":e[2]||(e[2]=o=>p.days=o),class:"wb-select",onChange:R},{default:r(()=>[a(i,{label:"今天",value:0}),a(i,{label:"最近7天",value:7}),a(i,{label:"最近14天",value:14}),a(i,{label:"最近30天",value:30})]),_:1},8,["modelValue"]),a(h,{icon:f(Q),circle:"",onClick:R},null,8,["icon"])])]),t("div",de,[a(v,{gutter:16,class:"wb-kpi-row"},{default:r(()=>[a(m,{xs:24,sm:8,lg:6},{default:r(()=>[t("div",ce,[e[16]||(e[16]=t("div",{class:"wb-kpi-label"},"今日创建诊单",-1)),t("div",pe,n(p.today_total??0),1),e[17]||(e[17]=t("div",{class:"wb-kpi-hint"},"当日新增总量",-1))])]),_:1}),a(m,{xs:24,sm:16,lg:18},{default:r(()=>{var o;return[t("div",ue,[e[18]||(e[18]=t("span",{class:"wb-rank-strip-label"},"今日排行",-1)),(o=p.today_ranking)!=null&&o.length?(l(),c("div",be,[(l(!0),c(A,null,D(p.today_ranking.slice(0,6),(d,y)=>(l(),c("span",{key:d.id,class:"wb-rank-chip"},[t("em",null,n(y+1),1),C(" "+n(d.name)+" ",1),t("strong",null,n(d.count),1)]))),128))])):(l(),c("span",me,"暂无排行数据"))])]}),_:1})]),_:1}),a(v,{gutter:20,class:"wb-chart-row"},{default:r(()=>[a(m,{xs:24,lg:15},{default:r(()=>{var o;return[t("div",_e,[e[19]||(e[19]=t("div",{class:"wb-chart-card-head"},[t("span",{class:"wb-chart-title"},"诊单量分布"),t("span",{class:"wb-chart-hint"},"柱状 + 趋势线")],-1)),(o=p.chart.xAxis)!=null&&o.length?(l(),w(f(O),{key:0,ref_key:"assistantChart",ref:Y,class:"wb-chart",style:{height:"340px"},option:Z.value,autoresize:!0},null,8,["option"])):(l(),w(x,{key:1,class:"wb-chart-empty",description:"暂无图表数据"}))])]}),_:1}),a(m,{xs:24,lg:9},{default:r(()=>[t("div",he,[e[20]||(e[20]=t("div",{class:"wb-chart-card-head"},[t("span",{class:"wb-chart-title"},"部门占比"),t("span",{class:"wb-chart-hint"},"按诊单数")],-1)),K.value?(l(),w(f(O),{key:0,class:"wb-chart",style:{height:"340px"},option:X.value,autoresize:!0},null,8,["option"])):(l(),w(x,{key:1,class:"wb-chart-empty",description:"暂无部门数据"}))])]),_:1})]),_:1}),(L=p.departments)!=null&&L.length?(l(),c("div",ye,[e[21]||(e[21]=t("div",{class:"wb-dept-title"},"按部门明细",-1)),a(v,{gutter:16},{default:r(()=>[(l(!0),c(A,null,D(p.departments,o=>(l(),w(m,{key:o.dept_id,xs:24,sm:12,lg:8},{default:r(()=>{var d;return[t("div",we,[t("div",fe,[C(n(o.dept_name)+" ",1),t("span",ve,"共 "+n(o.total),1)]),t("div",ge,[(l(!0),c(A,null,D(o.assistants,y=>(l(),c("div",{key:`${o.dept_id}-${y.id}`,class:"wb-dept-row"},[t("span",null,n(y.name),1),t("span",ke,n(y.count),1)]))),128)),(d=o.assistants)!=null&&d.length?B("",!0):(l(),c("div",xe,"暂无医助"))])])]}),_:2},1024))),128))]),_:1})])):B("",!0)])]),t("section",Se,[t("div",Oe,[t("div",Ce,[t("span",Ae,[a(b,null,{default:r(()=>[a(f(yt))]),_:1})]),e[22]||(e[22]=t("div",null,[t("div",{class:"wb-section-name"},"运营趋势"),t("div",{class:"wb-section-sub"},"访问量与销售额走势")],-1))])]),t("div",De,[a(v,{gutter:20},{default:r(()=>[a(m,{xs:24,lg:14},{default:r(()=>[t("div",Ne,[e[23]||(e[23]=t("div",{class:"wb-chart-card-head"},[t("span",{class:"wb-chart-title"},"访问量趋势")],-1)),a(f(O),{ref_key:"visitorChart",ref:T,class:"wb-chart",style:{height:"320px"},option:u.visitorOption,autoresize:!0},null,8,["option"])])]),_:1}),a(m,{xs:24,lg:10},{default:r(()=>[t("div",$e,[e[24]||(e[24]=t("div",{class:"wb-chart-card-head"},[t("span",{class:"wb-chart-title"},"销售额趋势"),t("span",{class:"wb-chart-hint"},"单位(万)")],-1)),a(f(O),{ref_key:"saleChart",ref:H,class:"wb-chart",style:{height:"320px"},option:u.saleOption,autoresize:!0},null,8,["option"])])]),_:1})]),_:1})])])])}}}),ks=vt(Ee,[["__scopeId","data-v-2f6eaa33"]]);export{ks as default};
diff --git a/server/public/admin/assets/index-zdLAMdxW.js b/server/public/admin/assets/index-B5Rw4WBv.js
similarity index 87%
rename from server/public/admin/assets/index-zdLAMdxW.js
rename to server/public/admin/assets/index-B5Rw4WBv.js
index 7f49e646..af5639ad 100755
--- a/server/public/admin/assets/index-zdLAMdxW.js
+++ b/server/public/admin/assets/index-B5Rw4WBv.js
@@ -1 +1 @@
-import{m as c,l as f,J as u}from"./element-plus-DFTWCWyi.js";import{a as y}from"./index-BiPYXDtP.js";import{f as i,ak as m,I as a,a as o,aN as p,F as b,ap as x}from"./@vue/runtime-core-C6bnekPw.js";import{a as g,y as v,n as k}from"./@vue/reactivity-DiY1c2vO.js";import{_ as E}from"./index-DBREMm_z.js";import"./@vue/runtime-dom-DDAG46FW.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-HOEUG8sr.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index.vue_vue_type_script_setup_true_lang-CcvIuIWy.js";import"./index-CbfZXeGu.js";import"./index-BwF7vczx.js";import"./index-CRoZWY-W.js";import"./cos-js-sdk-v5-DSMN0LUT.js";import"./file-BimpIRb_.js";import"./index.vue_vue_type_script_setup_true_lang-x0oL2ShL.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.js";import"./usePaging-VsbTxSU0.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"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";const V={class:"material-index"},z=i({name:"material"}),C=i({...z,setup(T){const n=[{type:"image",name:"图片"},{type:"video",name:"视频"},{type:"file",name:"文件"}],e=k("image");return(h,r)=>{const s=y,l=f,_=c,d=u;return m(),a("div",V,[o(d,{class:"!border-none",shadow:"never"},{default:p(()=>[o(_,{modelValue:v(e),"onUpdate:modelValue":r[0]||(r[0]=t=>g(e)?e.value=t:null)},{default:p(()=>[(m(),a(b,null,x(n,t=>o(l,{label:t.name,name:t.type,index:t.type,key:t.type,lazy:""},{default:p(()=>[o(s,{type:t.type,mode:"page","file-size":"120px",limit:-1,"page-size":20},null,8,["type"])]),_:2},1032,["label","name","index"])),64))]),_:1},8,["modelValue"])]),_:1})])}}}),vt=E(C,[["__scopeId","data-v-01f37926"]]);export{vt as default};
+import{m as c,l as f,J as u}from"./element-plus-DFTWCWyi.js";import{a as y}from"./index-CQXvL1N1.js";import{f as i,ak as m,I as a,a as o,aN as p,F as b,ap as x}from"./@vue/runtime-core-C6bnekPw.js";import{a as g,y as v,n as k}from"./@vue/reactivity-DiY1c2vO.js";import{_ as E}from"./index-ucUkIEXV.js";import"./@vue/runtime-dom-DDAG46FW.js";import"./lodash-D3kF6u-c.js";import"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-HOEUG8sr.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index.vue_vue_type_script_setup_true_lang-CcvIuIWy.js";import"./index-qUJv9dTR.js";import"./index-C2pNFc_9.js";import"./index-BpO_7YFh.js";import"./cos-js-sdk-v5-DSMN0LUT.js";import"./file-BH1S59XL.js";import"./index.vue_vue_type_script_setup_true_lang-x0oL2ShL.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.js";import"./usePaging-VsbTxSU0.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"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";const V={class:"material-index"},z=i({name:"material"}),C=i({...z,setup(T){const n=[{type:"image",name:"图片"},{type:"video",name:"视频"},{type:"file",name:"文件"}],e=k("image");return(h,r)=>{const s=y,l=f,_=c,d=u;return m(),a("div",V,[o(d,{class:"!border-none",shadow:"never"},{default:p(()=>[o(_,{modelValue:v(e),"onUpdate:modelValue":r[0]||(r[0]=t=>g(e)?e.value=t:null)},{default:p(()=>[(m(),a(b,null,x(n,t=>o(l,{label:t.name,name:t.type,index:t.type,key:t.type,lazy:""},{default:p(()=>[o(s,{type:t.type,mode:"page","file-size":"120px",limit:-1,"page-size":20},null,8,["type"])]),_:2},1032,["label","name","index"])),64))]),_:1},8,["modelValue"])]),_:1})])}}}),vt=E(C,[["__scopeId","data-v-01f37926"]]);export{vt as default};
diff --git a/server/public/admin/assets/index-x1zzA0a7.js b/server/public/admin/assets/index-B9sPwZJx.js
similarity index 86%
rename from server/public/admin/assets/index-x1zzA0a7.js
rename to server/public/admin/assets/index-B9sPwZJx.js
index d76b7817..ad72ab21 100755
--- a/server/public/admin/assets/index-x1zzA0a7.js
+++ b/server/public/admin/assets/index-B9sPwZJx.js
@@ -1 +1 @@
-import{f as t,ak as s,I as n,J as a,aq as r}from"./@vue/runtime-core-C6bnekPw.js";import{p as _}from"./@vue/shared-mAAVTE9n.js";import{_ as i}from"./index-DBREMm_z.js";const c={class:"footer-btns"},p=t({__name:"index",props:{fixed:{type:Boolean,default:!0}},setup(e){return(o,d)=>(s(),n("div",c,[a("div",{class:"footer-btns__content",style:_(e.fixed?"position: fixed":"")},[r(o.$slots,"default",{},void 0,!0)],4)]))}}),u=i(p,[["__scopeId","data-v-9f638557"]]);export{u as _};
+import{f as t,ak as s,I as n,J as a,aq as r}from"./@vue/runtime-core-C6bnekPw.js";import{p as _}from"./@vue/shared-mAAVTE9n.js";import{_ as i}from"./index-ucUkIEXV.js";const c={class:"footer-btns"},p=t({__name:"index",props:{fixed:{type:Boolean,default:!0}},setup(e){return(o,d)=>(s(),n("div",c,[a("div",{class:"footer-btns__content",style:_(e.fixed?"position: fixed":"")},[r(o.$slots,"default",{},void 0,!0)],4)]))}}),u=i(p,[["__scopeId","data-v-9f638557"]]);export{u as _};
diff --git a/server/public/admin/assets/index-CZGt9K8l.js b/server/public/admin/assets/index-BScCcXSI.js
similarity index 95%
rename from server/public/admin/assets/index-CZGt9K8l.js
rename to server/public/admin/assets/index-BScCcXSI.js
index a153337f..b35b7319 100755
--- a/server/public/admin/assets/index-CZGt9K8l.js
+++ b/server/public/admin/assets/index-BScCcXSI.js
@@ -1 +1 @@
-import{_ as B}from"./index-x1zzA0a7.js";import{D as k,B as y,G as D,I,C as N,J as R,i as G}from"./element-plus-DFTWCWyi.js";import{r as f}from"./index-DBREMm_z.js";import{f as c,as as F,ak as _,I as J,a as e,aN as o,J as a,O as i,aP as O,G as U}from"./@vue/runtime-core-C6bnekPw.js";import{y as n,r as h}from"./@vue/reactivity-DiY1c2vO.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./@vue/runtime-dom-DDAG46FW.js";import"./@element-plus/icons-vue-HOEUG8sr.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-QlpZ4wdW.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";function j(){return f.get({url:"/recharge.recharge/getConfig"})}function q(l){return f.post({url:"/recharge.recharge/setConfig",params:l})}const P=c({name:"rechargeConfig"}),Bt=c({...P,setup(l){const r=h({status:1,min_amount:""}),s=async()=>{const p=await j();Object.assign(r,p)},g=async()=>{await q(r),s()};return s(),(p,t)=>{const u=I,v=D,d=y,C=N,b=k,V=R,E=G,x=B,w=F("perms");return _(),J("div",null,[e(V,{shadow:"never",class:"!border-none"},{header:o(()=>[...t[2]||(t[2]=[a("span",{class:"font-extrabold text-lg"},"充值设置",-1)])]),default:o(()=>[e(b,{model:n(r),"label-width":"120px"},{default:o(()=>[e(d,{label:"状态"},{default:o(()=>[a("div",null,[e(v,{modelValue:n(r).status,"onUpdate:modelValue":t[0]||(t[0]=m=>n(r).status=m),class:"ml-4"},{default:o(()=>[e(u,{value:1},{default:o(()=>[...t[3]||(t[3]=[i("开启",-1)])]),_:1}),e(u,{value:0},{default:o(()=>[...t[4]||(t[4]=[i("关闭",-1)])]),_:1})]),_:1},8,["modelValue"]),t[5]||(t[5]=a("div",{class:"form-tips"},"关闭或开启充值功能,关闭后将不显示充值入口",-1))])]),_:1}),e(d,{label:"最低充值金额"},{default:o(()=>[a("div",null,[e(C,{modelValue:n(r).min_amount,"onUpdate:modelValue":t[1]||(t[1]=m=>n(r).min_amount=m),placeholder:"请输入最低充值金额",clearable:""},null,8,["modelValue"]),t[6]||(t[6]=a("div",{class:"form-tips"}," 最低充值金额要求,不填或填0表示不限制最低充值金额 ",-1))])]),_:1})]),_:1},8,["model"])]),_:1}),O((_(),U(x,null,{default:o(()=>[e(E,{type:"primary",onClick:g},{default:o(()=>[...t[7]||(t[7]=[i("保存",-1)])]),_:1})]),_:1})),[[w,["recharge.recharge/setConfig"]]])])}}});export{Bt as default};
+import{_ as B}from"./index-B9sPwZJx.js";import{D as k,B as y,G as D,I,C as N,J as R,i as G}from"./element-plus-DFTWCWyi.js";import{r as f}from"./index-ucUkIEXV.js";import{f as c,as as F,ak as _,I as J,a as e,aN as o,J as a,O as i,aP as O,G as U}from"./@vue/runtime-core-C6bnekPw.js";import{y as n,r as h}from"./@vue/reactivity-DiY1c2vO.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./@vue/runtime-dom-DDAG46FW.js";import"./@element-plus/icons-vue-HOEUG8sr.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-QlpZ4wdW.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";function j(){return f.get({url:"/recharge.recharge/getConfig"})}function q(l){return f.post({url:"/recharge.recharge/setConfig",params:l})}const P=c({name:"rechargeConfig"}),Bt=c({...P,setup(l){const r=h({status:1,min_amount:""}),s=async()=>{const p=await j();Object.assign(r,p)},g=async()=>{await q(r),s()};return s(),(p,t)=>{const u=I,v=D,d=y,C=N,b=k,V=R,E=G,x=B,w=F("perms");return _(),J("div",null,[e(V,{shadow:"never",class:"!border-none"},{header:o(()=>[...t[2]||(t[2]=[a("span",{class:"font-extrabold text-lg"},"充值设置",-1)])]),default:o(()=>[e(b,{model:n(r),"label-width":"120px"},{default:o(()=>[e(d,{label:"状态"},{default:o(()=>[a("div",null,[e(v,{modelValue:n(r).status,"onUpdate:modelValue":t[0]||(t[0]=m=>n(r).status=m),class:"ml-4"},{default:o(()=>[e(u,{value:1},{default:o(()=>[...t[3]||(t[3]=[i("开启",-1)])]),_:1}),e(u,{value:0},{default:o(()=>[...t[4]||(t[4]=[i("关闭",-1)])]),_:1})]),_:1},8,["modelValue"]),t[5]||(t[5]=a("div",{class:"form-tips"},"关闭或开启充值功能,关闭后将不显示充值入口",-1))])]),_:1}),e(d,{label:"最低充值金额"},{default:o(()=>[a("div",null,[e(C,{modelValue:n(r).min_amount,"onUpdate:modelValue":t[1]||(t[1]=m=>n(r).min_amount=m),placeholder:"请输入最低充值金额",clearable:""},null,8,["modelValue"]),t[6]||(t[6]=a("div",{class:"form-tips"}," 最低充值金额要求,不填或填0表示不限制最低充值金额 ",-1))])]),_:1})]),_:1},8,["model"])]),_:1}),O((_(),U(x,null,{default:o(()=>[e(E,{type:"primary",onClick:g},{default:o(()=>[...t[7]||(t[7]=[i("保存",-1)])]),_:1})]),_:1})),[[w,["recharge.recharge/setConfig"]]])])}}});export{Bt as default};
diff --git a/server/public/admin/assets/index-DlsUzUTw.js b/server/public/admin/assets/index-BU_NmC-s.js
similarity index 90%
rename from server/public/admin/assets/index-DlsUzUTw.js
rename to server/public/admin/assets/index-BU_NmC-s.js
index 3fa1da77..e25a4e24 100755
--- a/server/public/admin/assets/index-DlsUzUTw.js
+++ b/server/public/admin/assets/index-BU_NmC-s.js
@@ -1 +1 @@
-import{D as T,B as j,C as q,i as z,J as A,L as J,M,N as G,q as H,g as O}from"./element-plus-DFTWCWyi.js";import{_ as Q}from"./index.vue_vue_type_script_setup_true_lang-CcvIuIWy.js";import{c as W,i as X,_ as Y}from"./index-DBREMm_z.js";import{w as k}from"./@vue/runtime-dom-DDAG46FW.js";import{a as Z,b as ee,c as te}from"./admin-DVVxI3fN.js";import{u as oe}from"./usePaging-VsbTxSU0.js";import ae from"./edit-BhpztwAz.js";import{f as x,b as ie,as as ne,ak as m,I as le,a as e,aN as a,O as _,aP as f,G as s,J as V,H as me,n as E}from"./@vue/runtime-core-C6bnekPw.js";import{y as n,a as re,q as se,r as pe,n as de}from"./@vue/reactivity-DiY1c2vO.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-HOEUG8sr.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-QlpZ4wdW.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";import"./picker-BCRrEZaA.js";import"./index-BwF7vczx.js";import"./index-BiPYXDtP.js";import"./index-CbfZXeGu.js";import"./index-CRoZWY-W.js";import"./cos-js-sdk-v5-DSMN0LUT.js";import"./file-BimpIRb_.js";import"./index.vue_vue_type_script_setup_true_lang-x0oL2ShL.js";import"./vuedraggable-5bKFmC7X.js";import"./vue-BVs68q8v.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./department-CrUndMAW.js";import"./post-RziaWdiV.js";import"./useDictOptions-Dl6xXBty.js";const ce={class:"doctor-list"},ue={class:"mt-4"},_e={class:"flex mt-4 justify-end"},fe=x({name:"doctorList"}),be=x({...fe,setup(ve){const b=se(),r=pe({account:"",name:"",role_id:2,apply_data_scope:1}),v=de(!1),{pager:p,getLists:d,resetParams:D,resetPage:h}=oe({fetchFun:Z,params:r}),P=o=>{ee({id:o.id,avatar:o.avatar,account:o.account,name:o.name,role_id:o.role_id,jobs_id:o.jobs_id,dept_id:o.dept_id,disable:o.disable,multipoint_login:o.multipoint_login}).finally(()=>{d()})},B=async()=>{var o;v.value=!0,await E(),(o=b.value)==null||o.open("add")},I=async o=>{var t,c;v.value=!0,await E(),(t=b.value)==null||t.open("edit"),(c=b.value)==null||c.setFormData(o)},N=async o=>{await X.confirm("确定要删除该医助吗?"),await te({id:o}),d()};return ie(()=>{d()}),(o,t)=>{const c=q,y=j,u=z,$=T,C=A,K=W,l=G,L=H,U=O,F=M,R=Q,w=ne("perms"),S=J;return m(),le("div",ce,[e(C,{class:"!border-none",shadow:"never"},{default:a(()=>[e($,{class:"mb-[-16px]",model:n(r),inline:""},{default:a(()=>[e(y,{class:"w-[280px]",label:"医助账号"},{default:a(()=>[e(c,{modelValue:n(r).account,"onUpdate:modelValue":t[0]||(t[0]=i=>n(r).account=i),placeholder:"请输入医助账号",clearable:"",onKeyup:k(n(h),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(y,{class:"w-[280px]",label:"医助名称"},{default:a(()=>[e(c,{modelValue:n(r).name,"onUpdate:modelValue":t[1]||(t[1]=i=>n(r).name=i),placeholder:"请输入医助名称",clearable:"",onKeyup:k(n(h),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(y,null,{default:a(()=>[e(u,{type:"primary",onClick:n(h)},{default:a(()=>[...t[4]||(t[4]=[_("查询",-1)])]),_:1},8,["onClick"]),e(u,{onClick:n(D)},{default:a(()=>[...t[5]||(t[5]=[_("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),f((m(),s(C,{class:"mt-4 !border-none",shadow:"never"},{default:a(()=>[f((m(),s(u,{type:"primary",onClick:B},{icon:a(()=>[e(K,{name:"el-icon-Plus"})]),default:a(()=>[t[6]||(t[6]=_(" 新增医助 ",-1))]),_:1})),[[w,["auth.admin/add"]]]),V("div",ue,[e(F,{data:n(p).lists,size:"large"},{default:a(()=>[e(l,{label:"ID",prop:"id","min-width":"60"}),e(l,{label:"头像","min-width":"100"},{default:a(({row:i})=>[e(L,{size:50,src:i.avatar},null,8,["src"])]),_:1}),e(l,{label:"账号",prop:"account","min-width":"120"}),e(l,{label:"姓名",prop:"name","min-width":"100"}),e(l,{label:"手机号",prop:"phone","min-width":"120"}),e(l,{label:"创建时间",prop:"create_time","min-width":"180"}),e(l,{label:"最近登录时间",prop:"login_time","min-width":"180"}),e(l,{label:"最近登录IP",prop:"login_ip","min-width":"120"}),f((m(),s(l,{label:"状态","min-width":"100"},{default:a(({row:i})=>[e(U,{modelValue:i.disable,"onUpdate:modelValue":g=>i.disable=g,"active-value":0,"inactive-value":1,onChange:g=>P(i)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1})),[[w,["auth.admin/edit"]]]),e(l,{label:"操作",width:"120",fixed:"right"},{default:a(({row:i})=>[f((m(),s(u,{type:"primary",link:"",onClick:g=>I(i)},{default:a(()=>[...t[7]||(t[7]=[_(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[w,["auth.admin/edit"]]]),f((m(),s(u,{type:"danger",link:"",onClick:g=>N(i.id)},{default:a(()=>[...t[8]||(t[8]=[_(" 删除 ",-1)])]),_:1},8,["onClick"])),[[w,["auth.admin/delete"]]])]),_:1})]),_:1},8,["data"])]),V("div",_e,[e(R,{modelValue:n(p),"onUpdate:modelValue":t[2]||(t[2]=i=>re(p)?p.value=i:null),onChange:n(d)},null,8,["modelValue","onChange"])])]),_:1})),[[S,n(p).loading]]),n(v)?(m(),s(ae,{key:0,ref_key:"editRef",ref:b,onSuccess:n(d),onClose:t[3]||(t[3]=i=>v.value=!1)},null,8,["onSuccess"])):me("",!0)])}}}),yt=Y(be,[["__scopeId","data-v-64b2cdbe"]]);export{yt as default};
+import{D as T,B as j,C as q,i as z,J as A,L as J,M,N as G,q as H,g as O}from"./element-plus-DFTWCWyi.js";import{_ as Q}from"./index.vue_vue_type_script_setup_true_lang-CcvIuIWy.js";import{c as W,i as X,_ as Y}from"./index-ucUkIEXV.js";import{w as k}from"./@vue/runtime-dom-DDAG46FW.js";import{a as Z,b as ee,c as te}from"./admin-wfrb6zKK.js";import{u as oe}from"./usePaging-VsbTxSU0.js";import ae from"./edit-CRVBp2Y5.js";import{f as x,b as ie,as as ne,ak as m,I as le,a as e,aN as a,O as _,aP as f,G as s,J as V,H as me,n as E}from"./@vue/runtime-core-C6bnekPw.js";import{y as n,a as re,q as se,r as pe,n as de}from"./@vue/reactivity-DiY1c2vO.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-HOEUG8sr.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-QlpZ4wdW.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";import"./picker-DCYzXAr7.js";import"./index-C2pNFc_9.js";import"./index-CQXvL1N1.js";import"./index-qUJv9dTR.js";import"./index-BpO_7YFh.js";import"./cos-js-sdk-v5-DSMN0LUT.js";import"./file-BH1S59XL.js";import"./index.vue_vue_type_script_setup_true_lang-x0oL2ShL.js";import"./vuedraggable-5bKFmC7X.js";import"./vue-BVs68q8v.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./sortablejs-dsEAUXlE.js";import"./department-BtIZ-OMC.js";import"./post-Dv0XBaX1.js";import"./useDictOptions-DuQjx1Y2.js";const ce={class:"doctor-list"},ue={class:"mt-4"},_e={class:"flex mt-4 justify-end"},fe=x({name:"doctorList"}),be=x({...fe,setup(ve){const b=se(),r=pe({account:"",name:"",role_id:2,apply_data_scope:1}),v=de(!1),{pager:p,getLists:d,resetParams:D,resetPage:h}=oe({fetchFun:Z,params:r}),P=o=>{ee({id:o.id,avatar:o.avatar,account:o.account,name:o.name,role_id:o.role_id,jobs_id:o.jobs_id,dept_id:o.dept_id,disable:o.disable,multipoint_login:o.multipoint_login}).finally(()=>{d()})},B=async()=>{var o;v.value=!0,await E(),(o=b.value)==null||o.open("add")},I=async o=>{var t,c;v.value=!0,await E(),(t=b.value)==null||t.open("edit"),(c=b.value)==null||c.setFormData(o)},N=async o=>{await X.confirm("确定要删除该医助吗?"),await te({id:o}),d()};return ie(()=>{d()}),(o,t)=>{const c=q,y=j,u=z,$=T,C=A,K=W,l=G,L=H,U=O,F=M,R=Q,w=ne("perms"),S=J;return m(),le("div",ce,[e(C,{class:"!border-none",shadow:"never"},{default:a(()=>[e($,{class:"mb-[-16px]",model:n(r),inline:""},{default:a(()=>[e(y,{class:"w-[280px]",label:"医助账号"},{default:a(()=>[e(c,{modelValue:n(r).account,"onUpdate:modelValue":t[0]||(t[0]=i=>n(r).account=i),placeholder:"请输入医助账号",clearable:"",onKeyup:k(n(h),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(y,{class:"w-[280px]",label:"医助名称"},{default:a(()=>[e(c,{modelValue:n(r).name,"onUpdate:modelValue":t[1]||(t[1]=i=>n(r).name=i),placeholder:"请输入医助名称",clearable:"",onKeyup:k(n(h),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(y,null,{default:a(()=>[e(u,{type:"primary",onClick:n(h)},{default:a(()=>[...t[4]||(t[4]=[_("查询",-1)])]),_:1},8,["onClick"]),e(u,{onClick:n(D)},{default:a(()=>[...t[5]||(t[5]=[_("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),f((m(),s(C,{class:"mt-4 !border-none",shadow:"never"},{default:a(()=>[f((m(),s(u,{type:"primary",onClick:B},{icon:a(()=>[e(K,{name:"el-icon-Plus"})]),default:a(()=>[t[6]||(t[6]=_(" 新增医助 ",-1))]),_:1})),[[w,["auth.admin/add"]]]),V("div",ue,[e(F,{data:n(p).lists,size:"large"},{default:a(()=>[e(l,{label:"ID",prop:"id","min-width":"60"}),e(l,{label:"头像","min-width":"100"},{default:a(({row:i})=>[e(L,{size:50,src:i.avatar},null,8,["src"])]),_:1}),e(l,{label:"账号",prop:"account","min-width":"120"}),e(l,{label:"姓名",prop:"name","min-width":"100"}),e(l,{label:"手机号",prop:"phone","min-width":"120"}),e(l,{label:"创建时间",prop:"create_time","min-width":"180"}),e(l,{label:"最近登录时间",prop:"login_time","min-width":"180"}),e(l,{label:"最近登录IP",prop:"login_ip","min-width":"120"}),f((m(),s(l,{label:"状态","min-width":"100"},{default:a(({row:i})=>[e(U,{modelValue:i.disable,"onUpdate:modelValue":g=>i.disable=g,"active-value":0,"inactive-value":1,onChange:g=>P(i)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1})),[[w,["auth.admin/edit"]]]),e(l,{label:"操作",width:"120",fixed:"right"},{default:a(({row:i})=>[f((m(),s(u,{type:"primary",link:"",onClick:g=>I(i)},{default:a(()=>[...t[7]||(t[7]=[_(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[w,["auth.admin/edit"]]]),f((m(),s(u,{type:"danger",link:"",onClick:g=>N(i.id)},{default:a(()=>[...t[8]||(t[8]=[_(" 删除 ",-1)])]),_:1},8,["onClick"])),[[w,["auth.admin/delete"]]])]),_:1})]),_:1},8,["data"])]),V("div",_e,[e(R,{modelValue:n(p),"onUpdate:modelValue":t[2]||(t[2]=i=>re(p)?p.value=i:null),onChange:n(d)},null,8,["modelValue","onChange"])])]),_:1})),[[S,n(p).loading]]),n(v)?(m(),s(ae,{key:0,ref_key:"editRef",ref:b,onSuccess:n(d),onClose:t[3]||(t[3]=i=>v.value=!1)},null,8,["onSuccess"])):me("",!0)])}}}),yt=Y(be,[["__scopeId","data-v-64b2cdbe"]]);export{yt as default};
diff --git a/server/public/admin/assets/index-I1dwAKUm.js b/server/public/admin/assets/index-B_JzIs_s.js
similarity index 99%
rename from server/public/admin/assets/index-I1dwAKUm.js
rename to server/public/admin/assets/index-B_JzIs_s.js
index 669425e0..3487d5c5 100755
--- a/server/public/admin/assets/index-I1dwAKUm.js
+++ b/server/public/admin/assets/index-B_JzIs_s.js
@@ -1 +1 @@
-import{_ as Te}from"./index.vue_vue_type_script_setup_true_lang-CcvIuIWy.js";import{D as we,B as Ne,ak as Pe,W as We,P as ze,Q as De,G as Fe,F as Le,a2 as Re,i as Ie,J as Me,a5 as Be,R as Ue,a4 as $e,M as He,N as Ye,d as Ge,T as Qe,E as je}from"./element-plus-DFTWCWyi.js";import{X as qe}from"./@element-plus/icons-vue-HOEUG8sr.js";import{H as F}from"./vue-echarts-BNtg2q_G.js";import{q as Je}from"./stats-5gQHPT0U.js";import{u as Ke}from"./usePaging-VsbTxSU0.js";import{f as X,b as Xe,ak as r,I as C,a as o,aN as n,G as d,F as N,ap as P,O as y,H as A,J as i,A as f}from"./@vue/runtime-core-C6bnekPw.js";import{y as h,a as Ze,n as k,r as J}from"./@vue/reactivity-DiY1c2vO.js";import{Q as v,o as K}from"./@vue/shared-mAAVTE9n.js";import{_ as et}from"./index-DBREMm_z.js";import"./@vue/runtime-dom-DDAG46FW.js";import"./lodash-D3kF6u-c.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 tt={class:"conversion-stats-page"},at={class:"stats-kpi-grid"},nt={class:"stats-kpi-label"},lt={class:"card-header"},ot={class:"card-hint"},st={class:"card-header"},rt={class:"card-header-main"},it={class:"card-hint"},dt=["title"],pt={class:"entity-name"},ut={class:"mt-4 flex justify-end"},mt=X({name:"conversionStatsPage"}),ct=X({...mt,setup(_t){const g=k([]),L=k([]),R=k([]),I=k([]),M=k([]),B=k([]),U=k(!1),_=J({dimension:"dept",date_range:[],summary:{},charts:{ranking:{names:[],amounts:[],order_counts:[],fan_counts:[],rois:[]},amount_share:[],fan_share:[]}}),l=J({dimension:"dept",dept_id:void 0,assistant_id:void 0,doctor_id:void 0,media_channel_code:"",time_type:"today",start_date:"",end_date:""}),Z=async e=>{var s;e.include_filters=U.value?0:1,l.time_type==="custom"&&(e.start_date=g.value[0]||"",e.end_date=g.value[1]||"");const t=await Je(e);return Object.assign(_,(t==null?void 0:t.extend)||{}),me((s=t==null?void 0:t.extend)==null?void 0:s.filters),t},{pager:p,getLists:$}=Ke({fetchFun:Z,params:l,firstLoading:!0}),ee=[{label:"部门",value:"dept"},{label:"医助",value:"assistant"},{label:"医生",value:"doctor"}],te={value:"id",label:"name",children:"children"},ae={children:"children"},x=f(()=>l.dimension==="assistant"?"医助":l.dimension==="doctor"?"医生":"部门"),ne=f(()=>l.dimension==="assistant"?I.value:l.dimension==="doctor"?M.value:R.value),S=f({get:()=>l.dimension==="assistant"?l.assistant_id:l.dimension==="doctor"?l.doctor_id:l.dept_id,set:e=>{if(l.dimension==="assistant"){l.assistant_id=e;return}if(l.dimension==="doctor"){l.doctor_id=e;return}l.dept_id=e}}),le=[{key:"add_fans_count",label:"加粉数",type:"count"},{key:"paid_appointment_count",label:"付费挂号",type:"count"},{key:"free_appointment_count",label:"免费挂号",type:"count"},{key:"interview_count",label:"面诊",type:"count"},{key:"completed_order_count",label:"接诊诊单",type:"count"},{key:"paid_appointment_rate",label:"付费挂号率",type:"percent"},{key:"interview_rate",label:"面诊率",type:"percent"},{key:"receive_rate",label:"接诊率",type:"percent"},{key:"interview_receive_rate",label:"面诊接诊率",type:"percent"},{key:"business_order_amount",label:"业务订单额",type:"money"},{key:"completed_order_amount",label:"诊单金额",type:"money"},{key:"avg_unit_price",label:"平均单价",type:"money"},{key:"account_cost",label:"账户消耗",type:"money"},{key:"cash_cost",label:"现金成本",type:"money"},{key:"roi",label:"ROI",type:"ratio"}],oe=[{key:"add_fans_count",label:"加粉数",type:"count"},{key:"total_open_count",label:"总开口",type:"count",placeholder:!0},{key:"unreplied_count",label:"未回复",type:"count",placeholder:!0},{key:"paid_appointment_count",label:"付费挂号",type:"count"},{key:"free_appointment_count",label:"免费挂号",type:"count"},{key:"appointment_total_count",label:"挂号总数",type:"count"},{key:"interview_count",label:"面诊",type:"count"},{key:"completed_order_count",label:"接诊诊单",type:"count"},{key:"completed_order_amount",label:"诊单金额",type:"money",minWidth:120},{key:"paid_appointment_rate",label:"付费挂号率",type:"percent",minWidth:120},{key:"open_appointment_rate",label:"开口挂号率",type:"percent",placeholder:!0,minWidth:120},{key:"interview_rate",label:"面诊率",type:"percent",minWidth:100},{key:"receive_rate",label:"接诊率",type:"percent",minWidth:100},{key:"interview_receive_rate",label:"面诊接诊率",type:"percent",minWidth:130},{key:"open_receive_rate",label:"开口接诊率",type:"percent",placeholder:!0,minWidth:120},{key:"avg_unit_price",label:"平均单价",type:"money",minWidth:110},{key:"cash_cost",label:"现金成本",type:"money",minWidth:110},{key:"roi",label:"ROI",type:"ratio",minWidth:90}],H=f(()=>{var e;return(e=_.date_range)!=null&&e.length?`${_.date_range[0]} 至 ${_.date_range[1]}`:"未选择"}),se=f(()=>_.charts.ranking.names.length>0),re=f(()=>_.charts.amount_share.length>0),ie=f(()=>_.charts.fan_share.length>0),E=f(()=>{var u;const e=((u=_.charts)==null?void 0:u.ranking)||{},t=Array.isArray(e.names)?e.names:[],s=m=>t.map((c,T)=>Number((m==null?void 0:m[T])??0));return{names:t,amounts:s(Array.isArray(e.amounts)?e.amounts:[]),orderCounts:s(Array.isArray(e.order_counts)?e.order_counts:[]),fanCounts:s(Array.isArray(e.fan_counts)?e.fan_counts:[])}}),de=f(()=>({tooltip:{trigger:"axis"},legend:{data:["诊单金额","接诊诊单","加粉数"]},grid:{left:48,right:24,top:48,bottom:48},xAxis:{type:"category",data:E.value.names,axisLabel:{interval:0,rotate:E.value.names.length>6?25:0}},yAxis:[{type:"value",name:"金额 / 数量"}],series:[{name:"诊单金额",type:"bar",barMaxWidth:36,data:E.value.amounts,itemStyle:{color:"#4a78ff"}},{name:"接诊诊单",type:"line",smooth:!0,showSymbol:!0,symbolSize:8,lineStyle:{width:3},data:E.value.orderCounts,itemStyle:{color:"#15b8a6"}},{name:"加粉数",type:"line",smooth:!0,showSymbol:!0,symbolSize:8,lineStyle:{width:3},data:E.value.fanCounts,itemStyle:{color:"#ff9f43"}}]})),pe=f(()=>({tooltip:{trigger:"item"},legend:{bottom:0,type:"scroll",pageIconColor:"#409eff",pageTextStyle:{color:"#909399"}},series:[{name:"诊单金额",type:"pie",radius:["42%","70%"],center:["50%","42%"],avoidLabelOverlap:!0,minAngle:3,label:{show:!0,formatter:"{b}",overflow:"truncate",width:90},labelLayout:{hideOverlap:!0},data:_.charts.amount_share}]})),ue=f(()=>({tooltip:{trigger:"item"},legend:{bottom:0,type:"scroll",pageIconColor:"#409eff",pageTextStyle:{color:"#909399"}},series:[{name:"加粉数",type:"pie",radius:["42%","70%"],center:["50%","42%"],avoidLabelOverlap:!0,minAngle:3,label:{show:!0,formatter:"{b}",overflow:"truncate",width:90},labelLayout:{hideOverlap:!0},data:_.charts.fan_share}]})),Y=e=>{let t=[];return e.forEach(s=>{t.push({id:Number(s.id),name:s.name}),Array.isArray(s.children)&&s.children.length>0&&(t=t.concat(Y(s.children)))}),t},me=e=>{if(!e)return;U.value=!0;const t=Array.isArray(e.departments)?e.departments:[],s=Array.isArray(e.assistants)?e.assistants:[],u=Array.isArray(e.doctors)?e.doctors:[],m=Array.isArray(e.media_channels)?e.media_channels:[];L.value=t,R.value=Y(t),I.value=s.map(c=>({id:Number(c.id),name:c.name})),M.value=u.map(c=>({id:Number(c.id),name:c.name})),B.value=m.map(c=>({code:String(c.code||""),name:String(c.name||"")}))},b=async()=>{try{await $()}catch(e){console.error("获取统计概览失败:",e),je.error((e==null?void 0:e.msg)||"获取统计数据失败")}},ce=()=>{l.dept_id=void 0,l.assistant_id=void 0,l.doctor_id=void 0,p.page=1,b()},G=()=>{p.page=1,b()},_e=()=>{p.page=1,b()},ye=()=>{l.time_type!=="custom"&&(g.value=[],p.page=1,b())},fe=()=>{g.value.length===2&&(p.page=1,b())},be=()=>{p.page=1,b()},he=()=>{l.dimension="dept",l.dept_id=void 0,l.assistant_id=void 0,l.doctor_id=void 0,l.media_channel_code="",l.time_type="today",g.value=[],p.page=1,p.size=15,b()},Q=(e,t,s="count",u=!1)=>{if(u)return"—";const m=(t==null?void 0:t[e])??0;return s==="money"?`¥${Number(m||0).toFixed(2)}`:s==="percent"?`${Number(m||0).toFixed(2)}%`:s==="ratio"?Number(m||0).toFixed(2):String(m??0)},ve=e=>(e==null?void 0:e.id)!==void 0&&(e==null?void 0:e.id)!==null?String(e.id):"",ge=e=>(e==null?void 0:e.type)==="member"||(e==null?void 0:e.type)==="unbound",ke=({row:e})=>(e==null?void 0:e.type)==="unbound"?"member-row member-row--unbound":(e==null?void 0:e.type)==="member"?e.is_leader?"member-row member-row--leader":"member-row":"";return Xe(async()=>{await b()}),(e,t)=>{const s=Pe,u=Ne,m=We,c=De,T=ze,O=Le,Ce=Fe,xe=Re,j=Ie,Ee=we,V=Me,W=Ue,w=Be,z=$e,Oe=Ge,D=Qe,q=Ye,Ve=He,Ae=Te;return r(),C("div",tt,[o(V,{class:"!border-none",shadow:"never"},{default:n(()=>[o(Ee,{inline:!0,model:l,class:"stats-filter-form"},{default:n(()=>[o(u,{label:"统计维度"},{default:n(()=>[o(s,{modelValue:l.dimension,"onUpdate:modelValue":t[0]||(t[0]=a=>l.dimension=a),options:ee,onChange:ce},null,8,["modelValue"])]),_:1}),o(u,{label:x.value},{default:n(()=>[l.dimension==="dept"?(r(),d(m,{key:0,modelValue:S.value,"onUpdate:modelValue":t[1]||(t[1]=a=>S.value=a),data:L.value,placeholder:`全部${x.value}`,clearable:"",filterable:"","node-key":"id","check-strictly":"","default-expand-all":!0,props:te,style:{width:"220px"},onChange:G},null,8,["modelValue","data","placeholder"])):(r(),d(T,{key:1,modelValue:S.value,"onUpdate:modelValue":t[2]||(t[2]=a=>S.value=a),placeholder:`全部${x.value}`,clearable:"",filterable:"",style:{width:"220px"},onChange:G},{default:n(()=>[(r(!0),C(N,null,P(ne.value,a=>(r(),d(c,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"]))]),_:1},8,["label"]),o(u,{label:"自媒体渠道"},{default:n(()=>[o(T,{modelValue:l.media_channel_code,"onUpdate:modelValue":t[3]||(t[3]=a=>l.media_channel_code=a),placeholder:"全部渠道",clearable:"",filterable:"",style:{width:"220px"},onChange:_e},{default:n(()=>[(r(!0),C(N,null,P(B.value,a=>(r(),d(c,{key:a.code,label:a.name,value:a.code},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(u,{label:"时间范围"},{default:n(()=>[o(Ce,{modelValue:l.time_type,"onUpdate:modelValue":t[4]||(t[4]=a=>l.time_type=a),onChange:ye},{default:n(()=>[o(O,{label:"today"},{default:n(()=>[...t[7]||(t[7]=[y("今天",-1)])]),_:1}),o(O,{label:"yesterday"},{default:n(()=>[...t[8]||(t[8]=[y("昨天",-1)])]),_:1}),o(O,{label:"week"},{default:n(()=>[...t[9]||(t[9]=[y("最近7天",-1)])]),_:1}),o(O,{label:"month"},{default:n(()=>[...t[10]||(t[10]=[y("最近30天",-1)])]),_:1}),o(O,{label:"custom"},{default:n(()=>[...t[11]||(t[11]=[y("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l.time_type==="custom"?(r(),d(u,{key:0},{default:n(()=>[o(xe,{modelValue:g.value,"onUpdate:modelValue":t[5]||(t[5]=a=>g.value=a),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",style:{width:"260px"},onChange:fe},null,8,["modelValue"])]),_:1})):A("",!0),o(u,null,{default:n(()=>[o(j,{type:"primary",loading:h(p).loading,onClick:be},{default:n(()=>[...t[12]||(t[12]=[y("查询",-1)])]),_:1},8,["loading"]),o(j,{onClick:he},{default:n(()=>[...t[13]||(t[13]=[y("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),i("div",at,[(r(),C(N,null,P(le,a=>i("div",{key:a.key,class:"stats-kpi-card"},[i("div",nt,v(a.label),1),i("div",{class:K(["stats-kpi-value",{"is-money":a.type==="money"}])},v(Q(a.key,_.summary,a.type,a.placeholder)),3)])),64))]),o(z,{gutter:20,class:"mt-4"},{default:n(()=>[o(w,{span:24},{default:n(()=>[o(V,{class:"!border-none",shadow:"never"},{header:n(()=>[i("div",lt,[t[14]||(t[14]=i("span",null,"转化排行",-1)),i("span",ot,v(H.value)+" · TOP 10",1)])]),default:n(()=>[se.value?(r(),d(h(F),{key:0,class:"stats-chart stats-chart-wide",option:de.value,autoresize:""},null,8,["option"])):(r(),d(W,{key:1,description:"暂无图表数据"}))]),_:1})]),_:1})]),_:1}),o(z,{gutter:20,class:"mt-4"},{default:n(()=>[o(w,{xs:24,lg:12},{default:n(()=>[o(V,{class:"!border-none",shadow:"never"},{header:n(()=>[...t[15]||(t[15]=[i("div",{class:"card-header"},[i("span",null,"诊单金额占比"),i("span",{class:"card-hint"},"TOP 10")],-1)])]),default:n(()=>[re.value?(r(),d(h(F),{key:0,class:"stats-chart",option:pe.value,autoresize:""},null,8,["option"])):(r(),d(W,{key:1,description:"暂无金额数据"}))]),_:1})]),_:1}),o(w,{xs:24,lg:12},{default:n(()=>[o(V,{class:"!border-none",shadow:"never"},{header:n(()=>[...t[16]||(t[16]=[i("div",{class:"card-header"},[i("span",null,"加粉占比"),i("span",{class:"card-hint"},"TOP 10")],-1)])]),default:n(()=>[ie.value?(r(),d(h(F),{key:0,class:"stats-chart",option:ue.value,autoresize:""},null,8,["option"])):(r(),d(W,{key:1,description:"暂无加粉数据"}))]),_:1})]),_:1})]),_:1}),o(z,{gutter:20,class:"mt-4"},{default:n(()=>[o(w,{span:24},{default:n(()=>[o(V,{class:"!border-none stats-detail-card",shadow:"never"},{header:n(()=>[i("div",st,[i("div",rt,[t[17]||(t[17]=i("span",{class:"card-title"},"明细列表",-1)),i("span",it,v(x.value)+"维度 · "+v(H.value),1)])])]),default:n(()=>[o(Ve,{data:h(p).lists,"row-key":ve,"tree-props":l.dimension==="dept"?ae:void 0,"default-expand-all":!1,indent:20,"row-class-name":ke,size:"default",style:{width:"100%"},"max-height":"640",border:""},{default:n(()=>[o(q,{label:x.value,prop:"name",fixed:"left","min-width":"300","class-name":"dept-name-column"},{default:n(({row:a})=>[i("div",{class:"dept-name-cell",title:a.name},[ge(a)?(r(),C("span",{key:0,class:K(["member-icon",{"is-leader":a.is_leader,"is-unbound":a.type==="unbound"}])},[o(Oe,null,{default:n(()=>[o(h(qe))]),_:1})],2)):A("",!0),i("span",pt,v(a.name),1),a.type==="member"&&a.is_leader?(r(),d(D,{key:1,size:"small",type:"warning",effect:"light",round:"",class:"role-tag"},{default:n(()=>[...t[18]||(t[18]=[y(" 组长 ",-1)])]),_:1})):A("",!0),a.type==="member"&&a.role?(r(),d(D,{key:2,size:"small",type:a.role==="医生"?"success":"info",effect:"plain",round:"",class:"role-tag"},{default:n(()=>[y(v(a.role),1)]),_:2},1032,["type"])):A("",!0),a.type==="unbound"?(r(),d(D,{key:3,size:"small",type:"danger",effect:"plain",round:"",class:"role-tag"},{default:n(()=>[...t[19]||(t[19]=[y(" 未绑定 ",-1)])]),_:1})):A("",!0)],8,dt)]),_:1},8,["label"]),(r(),C(N,null,P(oe,a=>o(q,{key:a.key,label:a.label,"min-width":a.minWidth||110,width:a.width,align:a.align||"center"},{default:n(({row:Se})=>[y(v(Q(a.key,Se,a.type,a.placeholder)),1)]),_:2},1032,["label","min-width","width","align"])),64))]),_:1},8,["data","tree-props"]),i("div",ut,[o(Ae,{modelValue:h(p),"onUpdate:modelValue":t[6]||(t[6]=a=>Ze(p)?p.value=a:null),onChange:h($)},null,8,["modelValue","onChange"])])]),_:1})]),_:1})]),_:1})])}}}),na=et(ct,[["__scopeId","data-v-c0358d92"]]);export{na as default};
+import{_ as Te}from"./index.vue_vue_type_script_setup_true_lang-CcvIuIWy.js";import{D as we,B as Ne,ak as Pe,W as We,P as ze,Q as De,G as Fe,F as Le,a2 as Re,i as Ie,J as Me,a5 as Be,R as Ue,a4 as $e,M as He,N as Ye,d as Ge,T as Qe,E as je}from"./element-plus-DFTWCWyi.js";import{X as qe}from"./@element-plus/icons-vue-HOEUG8sr.js";import{H as F}from"./vue-echarts-BNtg2q_G.js";import{q as Je}from"./stats-BCy5mg_5.js";import{u as Ke}from"./usePaging-VsbTxSU0.js";import{f as X,b as Xe,ak as r,I as C,a as o,aN as n,G as d,F as N,ap as P,O as y,H as A,J as i,A as f}from"./@vue/runtime-core-C6bnekPw.js";import{y as h,a as Ze,n as k,r as J}from"./@vue/reactivity-DiY1c2vO.js";import{Q as v,o as K}from"./@vue/shared-mAAVTE9n.js";import{_ as et}from"./index-ucUkIEXV.js";import"./@vue/runtime-dom-DDAG46FW.js";import"./lodash-D3kF6u-c.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 tt={class:"conversion-stats-page"},at={class:"stats-kpi-grid"},nt={class:"stats-kpi-label"},lt={class:"card-header"},ot={class:"card-hint"},st={class:"card-header"},rt={class:"card-header-main"},it={class:"card-hint"},dt=["title"],pt={class:"entity-name"},ut={class:"mt-4 flex justify-end"},mt=X({name:"conversionStatsPage"}),ct=X({...mt,setup(_t){const g=k([]),L=k([]),R=k([]),I=k([]),M=k([]),B=k([]),U=k(!1),_=J({dimension:"dept",date_range:[],summary:{},charts:{ranking:{names:[],amounts:[],order_counts:[],fan_counts:[],rois:[]},amount_share:[],fan_share:[]}}),l=J({dimension:"dept",dept_id:void 0,assistant_id:void 0,doctor_id:void 0,media_channel_code:"",time_type:"today",start_date:"",end_date:""}),Z=async e=>{var s;e.include_filters=U.value?0:1,l.time_type==="custom"&&(e.start_date=g.value[0]||"",e.end_date=g.value[1]||"");const t=await Je(e);return Object.assign(_,(t==null?void 0:t.extend)||{}),me((s=t==null?void 0:t.extend)==null?void 0:s.filters),t},{pager:p,getLists:$}=Ke({fetchFun:Z,params:l,firstLoading:!0}),ee=[{label:"部门",value:"dept"},{label:"医助",value:"assistant"},{label:"医生",value:"doctor"}],te={value:"id",label:"name",children:"children"},ae={children:"children"},x=f(()=>l.dimension==="assistant"?"医助":l.dimension==="doctor"?"医生":"部门"),ne=f(()=>l.dimension==="assistant"?I.value:l.dimension==="doctor"?M.value:R.value),S=f({get:()=>l.dimension==="assistant"?l.assistant_id:l.dimension==="doctor"?l.doctor_id:l.dept_id,set:e=>{if(l.dimension==="assistant"){l.assistant_id=e;return}if(l.dimension==="doctor"){l.doctor_id=e;return}l.dept_id=e}}),le=[{key:"add_fans_count",label:"加粉数",type:"count"},{key:"paid_appointment_count",label:"付费挂号",type:"count"},{key:"free_appointment_count",label:"免费挂号",type:"count"},{key:"interview_count",label:"面诊",type:"count"},{key:"completed_order_count",label:"接诊诊单",type:"count"},{key:"paid_appointment_rate",label:"付费挂号率",type:"percent"},{key:"interview_rate",label:"面诊率",type:"percent"},{key:"receive_rate",label:"接诊率",type:"percent"},{key:"interview_receive_rate",label:"面诊接诊率",type:"percent"},{key:"business_order_amount",label:"业务订单额",type:"money"},{key:"completed_order_amount",label:"诊单金额",type:"money"},{key:"avg_unit_price",label:"平均单价",type:"money"},{key:"account_cost",label:"账户消耗",type:"money"},{key:"cash_cost",label:"现金成本",type:"money"},{key:"roi",label:"ROI",type:"ratio"}],oe=[{key:"add_fans_count",label:"加粉数",type:"count"},{key:"total_open_count",label:"总开口",type:"count",placeholder:!0},{key:"unreplied_count",label:"未回复",type:"count",placeholder:!0},{key:"paid_appointment_count",label:"付费挂号",type:"count"},{key:"free_appointment_count",label:"免费挂号",type:"count"},{key:"appointment_total_count",label:"挂号总数",type:"count"},{key:"interview_count",label:"面诊",type:"count"},{key:"completed_order_count",label:"接诊诊单",type:"count"},{key:"completed_order_amount",label:"诊单金额",type:"money",minWidth:120},{key:"paid_appointment_rate",label:"付费挂号率",type:"percent",minWidth:120},{key:"open_appointment_rate",label:"开口挂号率",type:"percent",placeholder:!0,minWidth:120},{key:"interview_rate",label:"面诊率",type:"percent",minWidth:100},{key:"receive_rate",label:"接诊率",type:"percent",minWidth:100},{key:"interview_receive_rate",label:"面诊接诊率",type:"percent",minWidth:130},{key:"open_receive_rate",label:"开口接诊率",type:"percent",placeholder:!0,minWidth:120},{key:"avg_unit_price",label:"平均单价",type:"money",minWidth:110},{key:"cash_cost",label:"现金成本",type:"money",minWidth:110},{key:"roi",label:"ROI",type:"ratio",minWidth:90}],H=f(()=>{var e;return(e=_.date_range)!=null&&e.length?`${_.date_range[0]} 至 ${_.date_range[1]}`:"未选择"}),se=f(()=>_.charts.ranking.names.length>0),re=f(()=>_.charts.amount_share.length>0),ie=f(()=>_.charts.fan_share.length>0),E=f(()=>{var u;const e=((u=_.charts)==null?void 0:u.ranking)||{},t=Array.isArray(e.names)?e.names:[],s=m=>t.map((c,T)=>Number((m==null?void 0:m[T])??0));return{names:t,amounts:s(Array.isArray(e.amounts)?e.amounts:[]),orderCounts:s(Array.isArray(e.order_counts)?e.order_counts:[]),fanCounts:s(Array.isArray(e.fan_counts)?e.fan_counts:[])}}),de=f(()=>({tooltip:{trigger:"axis"},legend:{data:["诊单金额","接诊诊单","加粉数"]},grid:{left:48,right:24,top:48,bottom:48},xAxis:{type:"category",data:E.value.names,axisLabel:{interval:0,rotate:E.value.names.length>6?25:0}},yAxis:[{type:"value",name:"金额 / 数量"}],series:[{name:"诊单金额",type:"bar",barMaxWidth:36,data:E.value.amounts,itemStyle:{color:"#4a78ff"}},{name:"接诊诊单",type:"line",smooth:!0,showSymbol:!0,symbolSize:8,lineStyle:{width:3},data:E.value.orderCounts,itemStyle:{color:"#15b8a6"}},{name:"加粉数",type:"line",smooth:!0,showSymbol:!0,symbolSize:8,lineStyle:{width:3},data:E.value.fanCounts,itemStyle:{color:"#ff9f43"}}]})),pe=f(()=>({tooltip:{trigger:"item"},legend:{bottom:0,type:"scroll",pageIconColor:"#409eff",pageTextStyle:{color:"#909399"}},series:[{name:"诊单金额",type:"pie",radius:["42%","70%"],center:["50%","42%"],avoidLabelOverlap:!0,minAngle:3,label:{show:!0,formatter:"{b}",overflow:"truncate",width:90},labelLayout:{hideOverlap:!0},data:_.charts.amount_share}]})),ue=f(()=>({tooltip:{trigger:"item"},legend:{bottom:0,type:"scroll",pageIconColor:"#409eff",pageTextStyle:{color:"#909399"}},series:[{name:"加粉数",type:"pie",radius:["42%","70%"],center:["50%","42%"],avoidLabelOverlap:!0,minAngle:3,label:{show:!0,formatter:"{b}",overflow:"truncate",width:90},labelLayout:{hideOverlap:!0},data:_.charts.fan_share}]})),Y=e=>{let t=[];return e.forEach(s=>{t.push({id:Number(s.id),name:s.name}),Array.isArray(s.children)&&s.children.length>0&&(t=t.concat(Y(s.children)))}),t},me=e=>{if(!e)return;U.value=!0;const t=Array.isArray(e.departments)?e.departments:[],s=Array.isArray(e.assistants)?e.assistants:[],u=Array.isArray(e.doctors)?e.doctors:[],m=Array.isArray(e.media_channels)?e.media_channels:[];L.value=t,R.value=Y(t),I.value=s.map(c=>({id:Number(c.id),name:c.name})),M.value=u.map(c=>({id:Number(c.id),name:c.name})),B.value=m.map(c=>({code:String(c.code||""),name:String(c.name||"")}))},b=async()=>{try{await $()}catch(e){console.error("获取统计概览失败:",e),je.error((e==null?void 0:e.msg)||"获取统计数据失败")}},ce=()=>{l.dept_id=void 0,l.assistant_id=void 0,l.doctor_id=void 0,p.page=1,b()},G=()=>{p.page=1,b()},_e=()=>{p.page=1,b()},ye=()=>{l.time_type!=="custom"&&(g.value=[],p.page=1,b())},fe=()=>{g.value.length===2&&(p.page=1,b())},be=()=>{p.page=1,b()},he=()=>{l.dimension="dept",l.dept_id=void 0,l.assistant_id=void 0,l.doctor_id=void 0,l.media_channel_code="",l.time_type="today",g.value=[],p.page=1,p.size=15,b()},Q=(e,t,s="count",u=!1)=>{if(u)return"—";const m=(t==null?void 0:t[e])??0;return s==="money"?`¥${Number(m||0).toFixed(2)}`:s==="percent"?`${Number(m||0).toFixed(2)}%`:s==="ratio"?Number(m||0).toFixed(2):String(m??0)},ve=e=>(e==null?void 0:e.id)!==void 0&&(e==null?void 0:e.id)!==null?String(e.id):"",ge=e=>(e==null?void 0:e.type)==="member"||(e==null?void 0:e.type)==="unbound",ke=({row:e})=>(e==null?void 0:e.type)==="unbound"?"member-row member-row--unbound":(e==null?void 0:e.type)==="member"?e.is_leader?"member-row member-row--leader":"member-row":"";return Xe(async()=>{await b()}),(e,t)=>{const s=Pe,u=Ne,m=We,c=De,T=ze,O=Le,Ce=Fe,xe=Re,j=Ie,Ee=we,V=Me,W=Ue,w=Be,z=$e,Oe=Ge,D=Qe,q=Ye,Ve=He,Ae=Te;return r(),C("div",tt,[o(V,{class:"!border-none",shadow:"never"},{default:n(()=>[o(Ee,{inline:!0,model:l,class:"stats-filter-form"},{default:n(()=>[o(u,{label:"统计维度"},{default:n(()=>[o(s,{modelValue:l.dimension,"onUpdate:modelValue":t[0]||(t[0]=a=>l.dimension=a),options:ee,onChange:ce},null,8,["modelValue"])]),_:1}),o(u,{label:x.value},{default:n(()=>[l.dimension==="dept"?(r(),d(m,{key:0,modelValue:S.value,"onUpdate:modelValue":t[1]||(t[1]=a=>S.value=a),data:L.value,placeholder:`全部${x.value}`,clearable:"",filterable:"","node-key":"id","check-strictly":"","default-expand-all":!0,props:te,style:{width:"220px"},onChange:G},null,8,["modelValue","data","placeholder"])):(r(),d(T,{key:1,modelValue:S.value,"onUpdate:modelValue":t[2]||(t[2]=a=>S.value=a),placeholder:`全部${x.value}`,clearable:"",filterable:"",style:{width:"220px"},onChange:G},{default:n(()=>[(r(!0),C(N,null,P(ne.value,a=>(r(),d(c,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"]))]),_:1},8,["label"]),o(u,{label:"自媒体渠道"},{default:n(()=>[o(T,{modelValue:l.media_channel_code,"onUpdate:modelValue":t[3]||(t[3]=a=>l.media_channel_code=a),placeholder:"全部渠道",clearable:"",filterable:"",style:{width:"220px"},onChange:_e},{default:n(()=>[(r(!0),C(N,null,P(B.value,a=>(r(),d(c,{key:a.code,label:a.name,value:a.code},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(u,{label:"时间范围"},{default:n(()=>[o(Ce,{modelValue:l.time_type,"onUpdate:modelValue":t[4]||(t[4]=a=>l.time_type=a),onChange:ye},{default:n(()=>[o(O,{label:"today"},{default:n(()=>[...t[7]||(t[7]=[y("今天",-1)])]),_:1}),o(O,{label:"yesterday"},{default:n(()=>[...t[8]||(t[8]=[y("昨天",-1)])]),_:1}),o(O,{label:"week"},{default:n(()=>[...t[9]||(t[9]=[y("最近7天",-1)])]),_:1}),o(O,{label:"month"},{default:n(()=>[...t[10]||(t[10]=[y("最近30天",-1)])]),_:1}),o(O,{label:"custom"},{default:n(()=>[...t[11]||(t[11]=[y("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l.time_type==="custom"?(r(),d(u,{key:0},{default:n(()=>[o(xe,{modelValue:g.value,"onUpdate:modelValue":t[5]||(t[5]=a=>g.value=a),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",style:{width:"260px"},onChange:fe},null,8,["modelValue"])]),_:1})):A("",!0),o(u,null,{default:n(()=>[o(j,{type:"primary",loading:h(p).loading,onClick:be},{default:n(()=>[...t[12]||(t[12]=[y("查询",-1)])]),_:1},8,["loading"]),o(j,{onClick:he},{default:n(()=>[...t[13]||(t[13]=[y("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),i("div",at,[(r(),C(N,null,P(le,a=>i("div",{key:a.key,class:"stats-kpi-card"},[i("div",nt,v(a.label),1),i("div",{class:K(["stats-kpi-value",{"is-money":a.type==="money"}])},v(Q(a.key,_.summary,a.type,a.placeholder)),3)])),64))]),o(z,{gutter:20,class:"mt-4"},{default:n(()=>[o(w,{span:24},{default:n(()=>[o(V,{class:"!border-none",shadow:"never"},{header:n(()=>[i("div",lt,[t[14]||(t[14]=i("span",null,"转化排行",-1)),i("span",ot,v(H.value)+" · TOP 10",1)])]),default:n(()=>[se.value?(r(),d(h(F),{key:0,class:"stats-chart stats-chart-wide",option:de.value,autoresize:""},null,8,["option"])):(r(),d(W,{key:1,description:"暂无图表数据"}))]),_:1})]),_:1})]),_:1}),o(z,{gutter:20,class:"mt-4"},{default:n(()=>[o(w,{xs:24,lg:12},{default:n(()=>[o(V,{class:"!border-none",shadow:"never"},{header:n(()=>[...t[15]||(t[15]=[i("div",{class:"card-header"},[i("span",null,"诊单金额占比"),i("span",{class:"card-hint"},"TOP 10")],-1)])]),default:n(()=>[re.value?(r(),d(h(F),{key:0,class:"stats-chart",option:pe.value,autoresize:""},null,8,["option"])):(r(),d(W,{key:1,description:"暂无金额数据"}))]),_:1})]),_:1}),o(w,{xs:24,lg:12},{default:n(()=>[o(V,{class:"!border-none",shadow:"never"},{header:n(()=>[...t[16]||(t[16]=[i("div",{class:"card-header"},[i("span",null,"加粉占比"),i("span",{class:"card-hint"},"TOP 10")],-1)])]),default:n(()=>[ie.value?(r(),d(h(F),{key:0,class:"stats-chart",option:ue.value,autoresize:""},null,8,["option"])):(r(),d(W,{key:1,description:"暂无加粉数据"}))]),_:1})]),_:1})]),_:1}),o(z,{gutter:20,class:"mt-4"},{default:n(()=>[o(w,{span:24},{default:n(()=>[o(V,{class:"!border-none stats-detail-card",shadow:"never"},{header:n(()=>[i("div",st,[i("div",rt,[t[17]||(t[17]=i("span",{class:"card-title"},"明细列表",-1)),i("span",it,v(x.value)+"维度 · "+v(H.value),1)])])]),default:n(()=>[o(Ve,{data:h(p).lists,"row-key":ve,"tree-props":l.dimension==="dept"?ae:void 0,"default-expand-all":!1,indent:20,"row-class-name":ke,size:"default",style:{width:"100%"},"max-height":"640",border:""},{default:n(()=>[o(q,{label:x.value,prop:"name",fixed:"left","min-width":"300","class-name":"dept-name-column"},{default:n(({row:a})=>[i("div",{class:"dept-name-cell",title:a.name},[ge(a)?(r(),C("span",{key:0,class:K(["member-icon",{"is-leader":a.is_leader,"is-unbound":a.type==="unbound"}])},[o(Oe,null,{default:n(()=>[o(h(qe))]),_:1})],2)):A("",!0),i("span",pt,v(a.name),1),a.type==="member"&&a.is_leader?(r(),d(D,{key:1,size:"small",type:"warning",effect:"light",round:"",class:"role-tag"},{default:n(()=>[...t[18]||(t[18]=[y(" 组长 ",-1)])]),_:1})):A("",!0),a.type==="member"&&a.role?(r(),d(D,{key:2,size:"small",type:a.role==="医生"?"success":"info",effect:"plain",round:"",class:"role-tag"},{default:n(()=>[y(v(a.role),1)]),_:2},1032,["type"])):A("",!0),a.type==="unbound"?(r(),d(D,{key:3,size:"small",type:"danger",effect:"plain",round:"",class:"role-tag"},{default:n(()=>[...t[19]||(t[19]=[y(" 未绑定 ",-1)])]),_:1})):A("",!0)],8,dt)]),_:1},8,["label"]),(r(),C(N,null,P(oe,a=>o(q,{key:a.key,label:a.label,"min-width":a.minWidth||110,width:a.width,align:a.align||"center"},{default:n(({row:Se})=>[y(v(Q(a.key,Se,a.type,a.placeholder)),1)]),_:2},1032,["label","min-width","width","align"])),64))]),_:1},8,["data","tree-props"]),i("div",ut,[o(Ae,{modelValue:h(p),"onUpdate:modelValue":t[6]||(t[6]=a=>Ze(p)?p.value=a:null),onChange:h($)},null,8,["modelValue","onChange"])])]),_:1})]),_:1})]),_:1})])}}}),na=et(ct,[["__scopeId","data-v-c0358d92"]]);export{na as default};
diff --git a/server/public/admin/assets/index-_vjMvBRf.js b/server/public/admin/assets/index-BajZPZSD.js
similarity index 94%
rename from server/public/admin/assets/index-_vjMvBRf.js
rename to server/public/admin/assets/index-BajZPZSD.js
index 26c22193..67b753a3 100755
--- a/server/public/admin/assets/index-_vjMvBRf.js
+++ b/server/public/admin/assets/index-BajZPZSD.js
@@ -1 +1 @@
-import{D as N,B as q,C as D,P as I,Q as K,i as R,J as $,M as A,N as J,q as M,L as O}from"./element-plus-DFTWCWyi.js";import{_ as j}from"./index.vue_vue_type_script_setup_true_lang-CcvIuIWy.js";import{_ as G}from"./index.vue_vue_type_script_setup_true_lang-CCzvLP0c.js";import{_ as Q}from"./index.vue_vue_type_script_setup_true_lang-DPC_NOWM.js";import{w as S}from"./@vue/runtime-dom-DDAG46FW.js";import{b as g}from"./consumer-BHPpijRv.js";import{C as H,k as W}from"./index-DBREMm_z.js";import{u as X}from"./usePaging-VsbTxSU0.js";import{f as k,ac as Y,ar as Z,as as ee,ak as m,I as v,a as e,aN as r,F as te,ap as oe,G as _,O as u,aP as w,J as ae}from"./@vue/runtime-core-C6bnekPw.js";import{y as t,a as re,r as le}from"./@vue/reactivity-DiY1c2vO.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-HOEUG8sr.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index-BwF7vczx.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-QlpZ4wdW.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";const ne={class:"flex justify-end mt-4"},ie=k({name:"consumerLists"}),Ze=k({...ie,setup(me){const l=le({keyword:"",channel:"",create_time_start:"",create_time_end:""}),{pager:i,getLists:p,resetPage:c,resetParams:C}=X({fetchFun:g,params:l});return Y(()=>{p()}),p(),(se,o)=>{const y=D,s=q,V=Q,h=K,E=I,d=R,x=G,T=N,f=$,P=M,n=J,B=Z("router-link"),L=A,U=j,z=ee("perms"),F=O;return m(),v("div",null,[e(f,{class:"!border-none",shadow:"never"},{default:r(()=>[e(T,{ref:"formRef",class:"mb-[-16px]",model:t(l),inline:!0},{default:r(()=>[e(s,{class:"w-[280px]",label:"用户信息"},{default:r(()=>[e(y,{modelValue:t(l).keyword,"onUpdate:modelValue":o[0]||(o[0]=a=>t(l).keyword=a),placeholder:"账号/昵称/手机号码",clearable:"",onKeyup:S(t(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(s,{label:"注册时间"},{default:r(()=>[e(V,{startTime:t(l).create_time_start,"onUpdate:startTime":o[1]||(o[1]=a=>t(l).create_time_start=a),endTime:t(l).create_time_end,"onUpdate:endTime":o[2]||(o[2]=a=>t(l).create_time_end=a)},null,8,["startTime","endTime"])]),_:1}),e(s,{class:"w-[280px]",label:"注册来源"},{default:r(()=>[e(E,{modelValue:t(l).channel,"onUpdate:modelValue":o[3]||(o[3]=a=>t(l).channel=a)},{default:r(()=>[(m(!0),v(te,null,oe(t(H),(a,b)=>(m(),_(h,{key:b,label:a,value:b},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(s,null,{default:r(()=>[e(d,{type:"primary",onClick:t(c)},{default:r(()=>[...o[5]||(o[5]=[u("查询",-1)])]),_:1},8,["onClick"]),e(d,{onClick:t(C)},{default:r(()=>[...o[6]||(o[6]=[u("重置",-1)])]),_:1},8,["onClick"]),e(x,{class:"ml-2.5","fetch-fun":t(g),params:t(l),"page-size":t(i).size},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1},8,["model"])]),_:1}),e(f,{class:"!border-none mt-4",shadow:"never"},{default:r(()=>[w((m(),_(L,{size:"large",data:t(i).lists},{default:r(()=>[e(n,{label:"头像","min-width":"100"},{default:r(({row:a})=>[e(P,{src:a.avatar,size:50},null,8,["src"])]),_:1}),e(n,{label:"昵称",prop:"nickname","min-width":"100"}),e(n,{label:"账号",prop:"account","min-width":"120"}),e(n,{label:"手机号码",prop:"mobile","min-width":"100"}),e(n,{label:"注册来源",prop:"channel","min-width":"100"}),e(n,{label:"注册时间",prop:"create_time","min-width":"120"}),e(n,{label:"操作",width:"120",fixed:"right"},{default:r(({row:a})=>[w((m(),_(d,{type:"primary",link:""},{default:r(()=>[e(B,{to:{path:t(W)("user.user/detail"),query:{id:a.id}}},{default:r(()=>[...o[7]||(o[7]=[u(" 详情 ",-1)])]),_:1},8,["to"])]),_:2},1024)),[[z,["user.user/detail"]]])]),_:1})]),_:1},8,["data"])),[[F,t(i).loading]]),ae("div",ne,[e(U,{modelValue:t(i),"onUpdate:modelValue":o[4]||(o[4]=a=>re(i)?i.value=a:null),onChange:t(p)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{Ze as default};
+import{D as N,B as q,C as D,P as I,Q as K,i as R,J as $,M as A,N as J,q as M,L as O}from"./element-plus-DFTWCWyi.js";import{_ as j}from"./index.vue_vue_type_script_setup_true_lang-CcvIuIWy.js";import{_ as G}from"./index.vue_vue_type_script_setup_true_lang-C8uPWML3.js";import{_ as Q}from"./index.vue_vue_type_script_setup_true_lang-DPC_NOWM.js";import{w as S}from"./@vue/runtime-dom-DDAG46FW.js";import{b as g}from"./consumer-BV86Alvf.js";import{C as H,k as W}from"./index-ucUkIEXV.js";import{u as X}from"./usePaging-VsbTxSU0.js";import{f as k,ac as Y,ar as Z,as as ee,ak as m,I as v,a as e,aN as r,F as te,ap as oe,G as _,O as u,aP as w,J as ae}from"./@vue/runtime-core-C6bnekPw.js";import{y as t,a as re,r as le}from"./@vue/reactivity-DiY1c2vO.js";import"./@vue/shared-mAAVTE9n.js";import"./lodash-D3kF6u-c.js";import"./@element-plus/icons-vue-HOEUG8sr.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./index-C2pNFc_9.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-QlpZ4wdW.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";const ne={class:"flex justify-end mt-4"},ie=k({name:"consumerLists"}),Ze=k({...ie,setup(me){const l=le({keyword:"",channel:"",create_time_start:"",create_time_end:""}),{pager:i,getLists:p,resetPage:c,resetParams:C}=X({fetchFun:g,params:l});return Y(()=>{p()}),p(),(se,o)=>{const y=D,s=q,V=Q,h=K,E=I,d=R,x=G,T=N,f=$,P=M,n=J,B=Z("router-link"),L=A,U=j,z=ee("perms"),F=O;return m(),v("div",null,[e(f,{class:"!border-none",shadow:"never"},{default:r(()=>[e(T,{ref:"formRef",class:"mb-[-16px]",model:t(l),inline:!0},{default:r(()=>[e(s,{class:"w-[280px]",label:"用户信息"},{default:r(()=>[e(y,{modelValue:t(l).keyword,"onUpdate:modelValue":o[0]||(o[0]=a=>t(l).keyword=a),placeholder:"账号/昵称/手机号码",clearable:"",onKeyup:S(t(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(s,{label:"注册时间"},{default:r(()=>[e(V,{startTime:t(l).create_time_start,"onUpdate:startTime":o[1]||(o[1]=a=>t(l).create_time_start=a),endTime:t(l).create_time_end,"onUpdate:endTime":o[2]||(o[2]=a=>t(l).create_time_end=a)},null,8,["startTime","endTime"])]),_:1}),e(s,{class:"w-[280px]",label:"注册来源"},{default:r(()=>[e(E,{modelValue:t(l).channel,"onUpdate:modelValue":o[3]||(o[3]=a=>t(l).channel=a)},{default:r(()=>[(m(!0),v(te,null,oe(t(H),(a,b)=>(m(),_(h,{key:b,label:a,value:b},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(s,null,{default:r(()=>[e(d,{type:"primary",onClick:t(c)},{default:r(()=>[...o[5]||(o[5]=[u("查询",-1)])]),_:1},8,["onClick"]),e(d,{onClick:t(C)},{default:r(()=>[...o[6]||(o[6]=[u("重置",-1)])]),_:1},8,["onClick"]),e(x,{class:"ml-2.5","fetch-fun":t(g),params:t(l),"page-size":t(i).size},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1},8,["model"])]),_:1}),e(f,{class:"!border-none mt-4",shadow:"never"},{default:r(()=>[w((m(),_(L,{size:"large",data:t(i).lists},{default:r(()=>[e(n,{label:"头像","min-width":"100"},{default:r(({row:a})=>[e(P,{src:a.avatar,size:50},null,8,["src"])]),_:1}),e(n,{label:"昵称",prop:"nickname","min-width":"100"}),e(n,{label:"账号",prop:"account","min-width":"120"}),e(n,{label:"手机号码",prop:"mobile","min-width":"100"}),e(n,{label:"注册来源",prop:"channel","min-width":"100"}),e(n,{label:"注册时间",prop:"create_time","min-width":"120"}),e(n,{label:"操作",width:"120",fixed:"right"},{default:r(({row:a})=>[w((m(),_(d,{type:"primary",link:""},{default:r(()=>[e(B,{to:{path:t(W)("user.user/detail"),query:{id:a.id}}},{default:r(()=>[...o[7]||(o[7]=[u(" 详情 ",-1)])]),_:1},8,["to"])]),_:2},1024)),[[z,["user.user/detail"]]])]),_:1})]),_:1},8,["data"])),[[F,t(i).loading]]),ae("div",ne,[e(U,{modelValue:t(i),"onUpdate:modelValue":o[4]||(o[4]=a=>re(i)?i.value=a:null),onChange:t(p)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{Ze as default};
diff --git a/server/public/admin/assets/index-BzJ9Ke9Q.js b/server/public/admin/assets/index-Bh1Mm-0r.js
similarity index 99%
rename from server/public/admin/assets/index-BzJ9Ke9Q.js
rename to server/public/admin/assets/index-Bh1Mm-0r.js
index 420d3f46..4e0bd0ea 100755
--- a/server/public/admin/assets/index-BzJ9Ke9Q.js
+++ b/server/public/admin/assets/index-Bh1Mm-0r.js
@@ -1 +1 @@
-var en=Object.defineProperty;var nn=(i,n,a)=>n in i?en(i,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[n]=a;var L=(i,n,a)=>nn(i,typeof n!="symbol"?n+"":n,a);import{d as on,i as an,r as sn,K as rn}from"./element-plus-DFTWCWyi.js";import{q as Pt,s as dt}from"./@vue/runtime-dom-DDAG46FW.js";import{c as ue,ag as ln,ah as cn,l as un,ai as dn,aj as fn}from"./@element-plus/icons-vue-HOEUG8sr.js";import{u as mn,l as hn}from"./file-BimpIRb_.js";import{a as pn}from"./patient-DdWkVUZB.js";import{I as Vt,a6 as gn,ar as vn,as as yn,at as _n}from"./tcm-BcqaE0lo.js";import{_ as we,u as wn,i as M}from"./index-DBREMm_z.js";import{E as Sn}from"./@tencentcloud/chat-uikit-vue3-CLQ__Wr9.js";import{p as Cn}from"./im-business-message-parse-QKjFLn3X.js";import{g as Tn,G as En,C as An,M as In,a as kn,O as bn,E as Rn,N as Mn,S as Ln,A as Dn,b as xn}from"./tuikit-atomicx-vue3-Dln8Zi6e.js";import{f as Se,aB as Un,ak as R,I as H,H as B,J as A,G as F,ab as Pn,A as q,b as Vn,d as Hn,w as Nn,aP as Ht,a as S,aN as b,O as On,T as Kn,n as Nt}from"./@vue/runtime-core-C6bnekPw.js";import{Q as G,p as de,o as $n}from"./@vue/shared-mAAVTE9n.js";import{y as E,n as y}from"./@vue/reactivity-DiY1c2vO.js";import{T as Z}from"./@tencentcloud/chat-AC2Y2r2A.js";import{X as fe}from"./@tencentcloud/chat-uikit-engine-zx802ozq.js";import{u as zn,F as x,z as Bn,g as $,a as z,l as N}from"./@tencentcloud/call-uikit-vue-DB7vt9Ht.js";import{c as ft}from"./@tencentcloud/call-engine-js-BX2W9Lhf.js";import{D as jn}from"./@tencentcloud/uikit-base-component-vue3-YgTqL4da.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"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-QlpZ4wdW.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";import"./@tencentcloud/tui-core-8M7p1XHw.js";import"./tim-upload-plugin-HO4N4AW9.js";import"./tim-profanity-filter-plugin-Dn_Cf-mP.js";import"./vue-BVs68q8v.js";import"./@vue/compiler-dom-CqayqxS7.js";import"./@vue/compiler-core-CvbQOXIO.js";import"./@tencentcloud/tuiroom-engine-js-Br9swJyU.js";import"./rtc-detect-Chu-fZvE.js";import"./tcplayer.js-qpFBCYzN.js";function Wn(){const i=["video/webm;codecs=vp9,opus","video/webm;codecs=vp8,opus","video/webm;codecs=vp9","video/webm;codecs=vp8","video/webm"];for(const n of i)if(MediaRecorder.isTypeSupported(n))return n;return""}function Fn(){const i=window;return i.AudioContext||i.webkitAudioContext||null}function me(i,n,a,s,r,u){const f=n.videoWidth||n.clientWidth||1,d=n.videoHeight||n.clientHeight||1,p=Math.max(r/f,u/d),c=f*p,m=d*p,_=a+(r-c)/2,D=s+(u-m)/2;try{i.drawImage(n,_,D,c,m)}catch{}}function qn(i,n,a,s){i.fillStyle="#0b0b0b",i.fillRect(0,0,a,s);const r=n.filter(c=>c.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA);if(r.length===0)return;if(r.length===1){me(i,r[0],0,0,a,s);return}const u=Math.ceil(Math.sqrt(r.length)),f=Math.ceil(r.length/u),d=a/u,p=s/f;r.forEach((c,m)=>{const _=m%u,D=Math.floor(m/u);me(i,c,_*d,D*p,d,p)})}function Gn(i){const n=new Set,a=[];for(const s of i){const r=s.srcObject;if(r instanceof MediaStream)for(const u of r.getAudioTracks())u.kind!=="audio"||u.readyState==="ended"||!u.enabled||n.has(u.id)||(n.add(u.id),a.push(u))}return a}function Xn(i){var s;const n=new Set,a=[];for(const r of i){if(r.readyState
接诊诊单:${i[0]}
金额:${Number(i[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}]}}),ht=z(()=>U.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),ja=z(()=>{const t=[...U.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,R)=>Number(R.deal_amount)-Number(p.deal_amount)).slice(0,5);if(t.length<2)return{radar:{indicator:[]},series:[{type:"radar",data:[]}]};const e=p=>{const R=String(p.doctor_name||"—");return R.length>7?`${R.slice(0,7)}…`:R},n=p=>Number(p.system_prescription_count??0)+Number(p.manual_prescription_count??0),s=p=>{const R=Number(p.avg_deal_amount);if(Number.isFinite(R)&&R>0)return R;const P=Number(p.deal_order_count);return P>0?Number(p.deal_amount)/P:0},i=Math.max(...t.map(p=>Number(p.deal_amount)),1e-9),h=Math.max(...t.map(p=>Number(p.deal_order_count)),1e-9),g=Math.max(...t.map(n),1e-9),k=Math.max(...t.map(p=>Number(p.appointment_completed??0)),1e-9),B=Math.max(...t.map(s),1e-9),I=t.map(p=>({name:e(p),value:[Number(p.deal_amount)/i*100,Number(p.deal_order_count)/h*100,n(p)/g*100,Number(p.appointment_completed??0)/k*100,s(p)/B*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:I,emphasis:{lineStyle:{width:3}}}]}}),xa=z(()=>{const t=[...U.value].filter(s=>Number(s.deal_amount??0)>0).sort((s,i)=>Number(i.deal_amount)-Number(s.deal_amount)).slice(0,20),e=t.map(s=>{const i=String(s.doctor_name||"—");return i.length>10?`${i.slice(0,10)}…`:i}),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]}}]}}),Na=z(()=>{const t=[...U.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 Sa(){var e,n;const t={};if(x.value&&(t.channel_code=x.value),(e=Y.value)!=null&&e[0]&&((n=Y.value)!=null&&n[1]))t.start_date=Y.value[0],t.end_date=Y.value[1];else{const s=nt(new Date);t.start_date=s,t.end_date=s}return t}function Mt(t){return Number(t??0).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}function Ca(t){const e=Le.value,n=[];return t.columns.forEach((s,i)=>{if(i===0){n[i]="合计";return}switch(s.property){case"system_prescription_count":n[i]=String(e.system_prescription_count??0);break;case"manual_prescription_count":n[i]=String(e.manual_prescription_count??0);break;case"deal_amount":n[i]=`¥ ${Mt(e.deal_amount)}`;break;case"deal_order_count":n[i]=String(e.deal_order_count??0);break;case"appointment_completed":n[i]=String(e.appointment_completed??0);break;case"appointment_missed":n[i]=String(e.appointment_missed??0);break;case"appointment_cancelled":n[i]=String(e.appointment_cancelled??0);break;default:n[i]=""}}),n}async function It(){De.value=!0;try{const t=await Qn(Sa());U.value=(t==null?void 0:t.rows)??[],Le.value=(t==null?void 0:t.total)??{},t!=null&&t.start_date&&(t!=null&&t.end_date)&&(Ke.value={start:t.start_date,end:t.end_date})}catch(t){if(ie.isCancel(t))return;U.value=[],Le.value={},Ke.value=null}finally{De.value=!1}}const te=v(!1),_e=v(!1),Fe=v(""),Ee=v(""),pe=v([]),Qe=v(0),X=v(1),Ze=v(15),G=v("channel"),H=v(null),Be=v(null),ae=v(null),Tt=z(()=>{const t=ae.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}),Vt=z(()=>{const t=ae.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}),Da=z(()=>pe.value.reduce((t,e)=>t+Number(e.amount??0),0)),Ft=z(()=>!!x.value&&te.value),bt=z(()=>{var e;const t=x.value;if(!t)return"";for(const n of We.value){const s=(e=n.channels)==null?void 0:e.find(i=>i.channel_code===t);if(s!=null&&s.channel_name)return String(s.channel_name)}return t}),La=z(()=>{const t=H.value;return t&&G.value==="total"?Number.isFinite(t.channelAmount)?t.channelAmount:null:Tt.value}),Ye=v(null),et=v(!1);function za(){const t=new Date;return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}`}function $a(t){const[e,n]=t.split("-").map(Number);return new Date(e,n,0).getDate()}async function Aa(){var t,e,n,s;et.value=!0,Ye.value=null;try{let i=function(f,D=0){const L=[];for(const $ of f??[])L.push({node:$,depth:D}),L.push(...i($.children??[],D+1));return L},h=function(f){const D=he.value.find(q=>Number(q.id)===f);if(!D)return"";const L=Number(D.pid);if(!L)return"";const $=he.value.find(q=>Number(q.id)===L);return $!=null&&$.name?String($.name):""},g=function(f){const D=[],L=[f];for(;L.length;){const $=L.shift();for(const q of he.value)Number(q.pid)===$&&(D.push(q.id),L.push(q.id))}return D},k=function(f,D){const L=new Map;for(const $ of(f==null?void 0:f.rows)??[])L.set(Number($.dept_id),Number($[D]??0));return L};const B=za(),I=await il({year_month:B}),p=(I==null?void 0:I.rows)??[];if(!p.length)return;const P=i(p).filter(f=>f.depth>=1&&Number(f.node.target_amount)>0).map(f=>f.node);if(!P.length)return;const Q=new Set,O=P.map(f=>{const D=Number(f.dept_id),L=g(D),$=L.length?L:[D];return $.forEach(q=>Q.add(q)),{dept_id:D,dept_name:String(f.dept_name),target_amount:Number(f.target_amount),totalIds:$}});if(!Q.size)return;const $e=We.value.flatMap(f=>f.channels),W=(t=$e.find(f=>f.channel_name.includes("自媒体1")))==null?void 0:t.channel_code,fe=(e=$e.find(f=>f.channel_name.includes("自媒体3")))==null?void 0:e.channel_code,Ae=(n=$e.find(f=>f.channel_name.includes("自媒体4")))==null?void 0:n.channel_code,Pe=Array.from(Q).join(","),[ye,F,l,b]=await Promise.all([He({dept_ids:Pe}),W?He({dept_ids:Pe,channel_code:W}):Promise.resolve(null),fe?He({dept_ids:Pe,channel_code:fe}):Promise.resolve(null),Ae?He({dept_ids:Pe,channel_code:Ae}):Promise.resolve(null)]),m=f=>{var D;return((f==null?void 0:f.tables)??[]).find(L=>String(L.label).includes("月"))??((D=f==null?void 0:f.tables)==null?void 0:D[0])},T=f=>{var D,L;return((f==null?void 0:f.tables)??[]).find($=>String($.label).includes("昨"))??((L=f==null?void 0:f.tables)==null?void 0:L[((D=f==null?void 0:f.tables)==null?void 0:D.length)-1])},oa=k(m(ye),"performance_amount"),gn=k(T(ye),"performance_amount"),sa=F?k(m(F),"completed_performance_amount"):null,ia=l?k(m(l),"completed_performance_amount"):null,ra=b?k(m(b),"completed_performance_amount"):null,Ue=(f,D)=>D.reduce((L,$)=>L+(f.get($)??0),0),Nt=new Date,wn=$a(B),kn=Nt.getDate(),jn=O.map(f=>{const D=Ue(oa,f.totalIds),L=Ue(gn,f.totalIds),$=sa?Ue(sa,f.totalIds):null,q=ia?Ue(ia,f.totalIds):null,da=ra?Ue(ra,f.totalIds):null,St=q!==null||da!==null?(q??0)+(da??0):null,Cn=Math.round(f.target_amount*(kn/wn)*100)/100,Dn=f.target_amount>0?D/f.target_amount:null;return{dept_id:f.dept_id,dept_name:f.dept_name,parent_dept_name:h(f.dept_id),target_amount:f.target_amount,total_amount:D,yesterday_amount:L,douyin_amount:$&&$>0?$:null,tuifen_amount:St&&St>0?St:null,target_progress:Cn,completion_rate:Dn}}),xn=((s=p[0])==null?void 0:s.dept_name)??"",Nn=Nt.getMonth()+1,Sn=Nt.getDate();Ye.value={title:`${xn}诊金-${Nn}.${Sn}`,sections:jn}}catch{}finally{et.value=!1}}const Pa=z(()=>{var e;const t=(e=N.value)==null?void 0:e.leaderboards;return t?t.filter(n=>n.rows.length>0).length:0}),Et=[{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 Ra(t){const e=t.value();Y.value=[nt(e[0]),nt(e[1])],ze()}async function Oa(){ot.value=!0;try{const t=await Zn();he.value=(t||[]).sort((e,n)=>{const s=e.name.includes("中心")?-1:1,i=n.name.includes("中心")?-1:1;return s!==i?s-i:e.id-n.id})}catch{}finally{ot.value=!1}}async function Ma(){st.value=!0;try{const t=await el(),e=(t==null?void 0:t.groups)||[];We.value=e}catch{}finally{st.value=!1}}async function Bt(t){oe.value=!0;try{const e={start_date:t.start,end_date:t.end};A.value.length>0&&(e.dept_ids=A.value.join(",")),x.value&&(e.channel_code=x.value);const n=await nl(e);N.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(ie.isCancel(e))return;N.value=null}finally{oe.value=!1}}async function ze(){le.value=!0,N.value=null;try{const t={};if(A.value.length>0&&(t.dept_ids=A.value.join(",")),x.value&&(t.channel_code=x.value),Y.value&&Y.value[0]&&Y.value[1]){const[s,i]=Y.value,h={...t,start_date:s,end_date:i},g=await tl(h);re.value=[{label:s===i?s:`${s} ~ ${i}`,start_date:g.start_date,end_date:g.end_date,channel_code:g.channel_code||"",channel_name:g.channel_name||"",channel_group:g.channel_group||"",channel_filter_note:g.channel_filter_note||"",rows:g.rows||[],total:g.total}],await Bt({start:g.start_date,end:g.end_date});return}const e=await He(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=nt(new Date);await Bt({start:n,end:n})}catch(t){if(ie.isCancel(t))return;const e=t;Re.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"加载失败")}finally{le.value=!1,Ce.value?It():(U.value=[],Le.value={},Ke.value=null)}}function Ia(){A.value=[],Y.value=null,x.value="",ze()}function Ta(t){return t<=0?!1:he.value.some(e=>Number(e.pid)===t)}function Va(t){return{1:"待双审通过",2:"待发货",3:"已完成",4:"已取消",5:"已发货",6:"已签收",7:"进行中",8:"暂不制药",9:"拒收",10:"退款",11:"保留药方",12:"制药缓发"}[Number(t)]??"—"}function tt(t){return t==null||!Number.isFinite(Number(t))?"—":Number(t).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}function Fa(t){return(X.value-1)*Ze.value+t+1}function Ea(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):"",i=[n,s].filter(Boolean).join(" ");return e&&i?`${e} ${i}`:e||i||"—"}function Yt(t){if(!t)return"";const e=t.channel_dict_value;if(e!=null&&e!==""){const i=Number(e);if(Number.isFinite(i))return String(Math.trunc(i))}const n=t.channel_source;if(n==null)return"";const s=String(n).trim();return s===""||!/^\d+$/.test(s)?"":String(parseInt(s,10))}function Ba(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,i=new Date(s);if(!Number.isNaN(i.getTime())){const h=i.getFullYear(),g=String(i.getMonth()+1).padStart(2,"0"),k=String(i.getDate()).padStart(2,"0"),B=String(i.getHours()).padStart(2,"0"),I=String(i.getMinutes()).padStart(2,"0");return`${h}-${g}-${k} ${B}:${I}`}}const n=String(t);return n.length>=16?n.slice(0,16):n}function Ut(){const t=Be.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,A.value.length>0&&(e.dept_ids=A.value.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&&te.value&&G.value==="channel"&&(e.channel_code=x.value),e}async function Ya(){const t=Ut();if(!t||!x.value)return;const e={...t,channel_code:x.value,page_no:1,page_size:1};try{const n=await ua(e),s=n!=null&&n.extend&&typeof n.extend=="object"?n.extend:null;s&&s.stats_yeji_drawer_total_performance_amount!=null&&(H.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 me(){const t=Ut();if(t){x.value&&G.value==="total"&&(H.value=null),_e.value=!0;try{const e={...t,page_no:X.value,page_size:Ze.value},n=await ua(e);pe.value=Array.isArray(n==null?void 0:n.lists)?n.lists:[],Qe.value=Number((n==null?void 0:n.count)??0),ae.value=n!=null&&n.extend&&typeof n.extend=="object"?n.extend:null,x.value&&G.value==="channel"&&ae.value&&ae.value.stats_yeji_drawer_total_performance_amount!=null&&(H.value={totalAmount:Number(ae.value.stats_yeji_drawer_total_performance_amount),totalOrderCount:Number(ae.value.stats_yeji_drawer_total_performance_order_count??0),channelAmount:Number(ae.value.stats_order_amount_performance??0),channelOrderCount:Number((n==null?void 0:n.count)??0)}),x.value&&te.value&&G.value==="total"&&await Ya()}catch(e){if(ie.isCancel(e))return;const n=e;Re.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"加载业务订单失败"),pe.value=[],Qe.value=0,ae.value=null}finally{_e.value=!1}}}function Ht(t,e,n){const s=!!(x.value&&t.channel_name);G.value=s?(n==null?void 0:n.listTab)??"channel":"channel",H.value=null,Be.value={mode:"dept",deptId:e.dept_id,deptName:e.dept_name,start:t.start_date,end:t.end_date,yejiTableRowDeptIds:t.rows.map(i=>i.dept_id).filter(i=>typeof i=="number"&&i>0)},Fe.value=`业务订单 · ${e.dept_name}`,Ee.value=`创建时间:${t.start_date} ~ ${t.end_date} · 与「合计业绩 / 接诊诊单」同口径:订单创建人人事部门 ∈ 本部门子树 · 不含履约 4/9/10`,X.value=1,te.value=!0,me()}function Ua(t,e,n){const s=!!(x.value&&t.channel_name);G.value=s?n:"channel",H.value=null,Be.value={mode:"dept",deptId:e,deptName:"当前展示合计",start:t.start_date,end:t.end_date,yejiTableRowDeptIds:t.rows.map(i=>i.dept_id).filter(i=>typeof i=="number"&&i>0)},Fe.value="业务订单 · 当前展示合计",Ee.value=`创建时间:${t.start_date} ~ ${t.end_date} · 已选展示部门 1 个根节点(含其下全部展示行)· 不含履约 4/9/10`,X.value=1,te.value=!0,me()}function gt(t,e,n){return!(ve(e)||e.dept_id<=0||n==="channel"&&!t.channel_name)}function wt(t,e){return!(A.value.length!==1||e==="channel"&&!t.channel_name)}function Wt(t,e,n){if(!gt(t,e,n))return;Ht(t,e,{listTab:n==="total"?"total":"channel"})}function qt(t,e){if(!wt(t,e))return;const n=A.value[0];if(!n)return;Ua(t,n,e==="total"?"total":"channel")}function Ha(t,e,n){G.value="channel",H.value=null,Be.value={mode:"assistant",assistantId:t.admin_id,assistantName:t.name,start:e,end:n},Fe.value=`业务订单 · ${t.name}`,Ee.value=`创建时间:${e} ~ ${n} · 创建人=${t.name}(与排行榜诊金同口径)· 不含履约 4/9/10`,X.value=1,te.value=!0,me()}function kt(t,e,n,s){G.value="channel",H.value=null,Be.value={mode:"assistant",assistantId:t.admin_id,assistantName:t.name,start:e,end:n,erCenterRevisitSlot:s};const i=s===0?"复诊合计":qe(s);Fe.value=`业务订单 · ${t.name} · ${i}`,Ee.value=`创建时间:${e} ~ ${n} · 创建人=${t.name}(与部门表 / 排行榜复诊同口径)· 仅二中心复诊口径 · ${i} · 不含履约 4/9/10`,X.value=1,te.value=!0,me()}function Wa(t){if(!t||t.admin_id<=0||!N.value||Number(t.revisit_count??0)<=0)return;const{start_date:e,end_date:n}=N.value;kt({admin_id:t.admin_id,name:t.name},e,n,0)}function qa(t,e){if(!t||t.admin_id<=0||!N.value||ee(t,e)<=0)return;const{start_date:n,end_date:s}=N.value;kt({admin_id:t.admin_id,name:t.name},n,s,e)}function Ga(){X.value=1,me()}function Ja(t){X.value=t,me()}function Ka(t){Ze.value=t,X.value=1,me()}function ve(t){return t.dept_id<=0&&t.dept_name==="未归属中心"}function Xa(t,e){e.dept_id<=0||ve(e)||Number(e.revisit_count??0)<=0||Jt(t,e,0)}function Qa(t,e,n){e.dept_id<=0||ve(e)||ee(e,n)<=0||Jt(t,e,n)}function Gt(t){const e=zt.value;!e||Number(t.order_count)<=0||kt({admin_id:t.admin_id,name:t.name},e.start,e.end,e.revisitSlot)}async function Jt(t,e,n){const s=n===0?"复诊合计":qe(n);Lt.value=`${e.dept_name} · ${s} · ${t.start_date} ~ ${t.end_date}`,zt.value={start:t.start_date,end:t.end_date,revisitSlot:n},Me.value="",ke.value=[],ut.value=!0,we.value=!0;try{const i={start_date:t.start_date,end_date:t.end_date,dept_id:e.dept_id,revisit_slot:n};A.value.length>0&&(i.dept_ids=A.value.join(",")),x.value&&(i.channel_code=x.value);const h=await al(i);ke.value=Array.isArray(h==null?void 0:h.rows)?h.rows:[],Me.value=typeof(h==null?void 0:h.note)=="string"?h.note:""}catch(i){if(ie.isCancel(i))return;const h=i;Re.error((h==null?void 0:h.msg)||(h==null?void 0:h.message)||"加载复诊拆解失败"),ke.value=[],Me.value=""}finally{we.value=!1}}function Kt(t){const e=[`区间:${t.start_date} ~ ${t.end_date}`];return x.value&&e.push(`渠道:${t.channel_name||x.value}`),A.value.length>0&&e.push(`已选展示部门 ${A.value.length} 个`),e.join(" · ")}async function Za(t){Dt.value=Kt(t),Oe.value="",ge.value=[],dt.value=!0,be.value=!0;try{const e={start_date:t.start_date,end_date:t.end_date};A.value.length>0&&(e.dept_ids=A.value.join(",")),x.value&&(e.channel_code=x.value);const n=await ll(e);ge.value=Array.isArray(n==null?void 0:n.rows)?n.rows:[],Oe.value=typeof(n==null?void 0:n.note)=="string"?n.note:""}catch(e){if(ie.isCancel(e))return;const n=e;Re.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"加载未归属拆解失败"),ge.value=[],Oe.value=""}finally{be.value=!1}}function en(t,e,n){n.dept_id<=0||Number(n.lead_count)<=0||(t.stopPropagation(),tn(e,n))}async function jt(){const t=At.value;if(!t)return;const{tb:e,row:n}=t;de.value=!0;try{const s={start_date:e.start_date,end_date:e.end_date,dept_id:n.dept_id,page:Ve.value,page_size:Ge.value};A.value.length>0&&(s.dept_ids=A.value.join(",")),x.value&&(s.channel_code=x.value);const i=await ol(s);je.value=Array.isArray(i==null?void 0:i.lists)?i.lists:[],Te.value=Number((i==null?void 0:i.count)??0),Ie.value=typeof(i==null?void 0:i.note)=="string"?i.note:""}catch(s){if(ie.isCancel(s))return;const i=s;Re.error((i==null?void 0:i.msg)||(i==null?void 0:i.message)||"加载进线明细失败"),je.value=[],Te.value=0,Ie.value=""}finally{de.value=!1}}async function tn(t,e){At.value={tb:t,row:e},$t.value=`${e.dept_name} · ${Kt(t)}`,Ie.value="",je.value=[],Te.value=0,Ve.value=1,Ge.value=20,ct.value=!0,await jt()}function an(t){Ve.value=t,jt()}function nn(t){Ge.value=t,Ve.value=1,jt()}function ln(t){return(ce.value-1)*Se.value+t+1}function Xt(t){return ve(t)?!0:t.dept_id>0}async function at(){const t=pt.value;if(t){ue.value=!0;try{const e={start_date:t.start_date,end_date:t.end_date,page:ce.value,page_size:Se.value};t.mode==="dept"?e.dept_id=t.dept_id:e.assistant_id=t.assistant_id,A.value.length>0&&(e.dept_ids=A.value.join(",")),x.value&&(e.channel_code=x.value);const n=await sl(e);se.value=Array.isArray(n==null?void 0:n.lists)?n.lists:[],Ne.value=Number((n==null?void 0:n.count)??0),xe.value=typeof(n==null?void 0:n.note)=="string"?n.note:""}catch(e){if(ie.isCancel(e))return;const n=e;Re.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"加载挂号明细失败"),se.value=[],Ne.value=0,xe.value=""}finally{ue.value=!1}}}function on(t){if(!t||t.admin_id<=0||!N.value||Number(t.appointment_count??0)<=0)return;const e=N.value;pt.value={mode:"assistant",assistant_id:t.admin_id,name:t.name,start_date:e.start_date,end_date:e.end_date},_t.value=`${t.name} · 医助 · ${e.start_date} ~ ${e.end_date}`,xe.value="",se.value=[],Ne.value=0,ce.value=1,Se.value=20,Je.value=!0,at()}function sn(t,e){!Xt(e)||Number(e.appointment_booked_count??0)<=0||(pt.value={mode:"dept",dept_id:e.dept_id,dept_name:e.dept_name,start_date:t.start_date,end_date:t.end_date},_t.value=`${e.dept_name} · ${t.start_date} ~ ${t.end_date}`,xe.value="",se.value=[],Ne.value=0,ce.value=1,Se.value=20,Je.value=!0,at())}function rn(t){ce.value=t,at()}function dn(t){Se.value=t,ce.value=1,at()}function un(t,e){if(ve(e)){Za(t);return}if(!(e.dept_id<=0)){if(Ta(e.dept_id)){A.value=[e.dept_id],ze();return}Ht(t,e)}}function cn(t){if(!t||t.admin_id<=0||!N.value)return;const{start_date:e,end_date:n}=N.value;Ha(t,e,n)}function Qt(t){const e=t.channel_name?` · ${t.channel_name}`:"";return`${t.label}${e}`}function _n(t){const e=t.rows.filter(g=>g.dept_id>0),n=e.map(g=>g.dept_name.length>10?`${g.dept_name.slice(0,10)}…`:g.dept_name),s=["#64748b","#38bdf8","#6366f1"],i=[{name:"进线",type:"bar",data:e.map(g=>g.lead_count),yAxisIndex:0,barMaxWidth:16},{name:"接诊",type:"bar",data:e.map(g=>g.consult_count),yAxisIndex:0,barMaxWidth:16},{name:"成交单",type:"bar",data:e.map(g=>g.deal_order_count),yAxisIndex:0,barMaxWidth:16},{name:"合计业绩",type:"bar",data:e.map(g=>g.performance_amount),yAxisIndex:1,barMaxWidth:14,itemStyle:{color:"#d97706"}}];t.channel_name&&i.push({name:`${t.channel_name}业绩`,type:"bar",data:e.map(g=>g.completed_performance_amount),yAxisIndex:1,barMaxWidth:14,itemStyle:{color:"#0d9488"}});const h=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:h?56:28,containLabel:!1},dataZoom:h?[{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:i}}function pn(t,e){const n=[...t.rows].sort((s,i)=>Number(i.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 Zt(t){return t.rows.some(e=>Number(e.fee_amount)>0)}function mn(t,e){const s=[...t.rows].filter(i=>Number(i.fee_amount)>0).sort((i,h)=>Number(h.fee_amount)-Number(i.fee_amount)).slice(0,10).map(i=>({name:i.name.length>6?`${i.name.slice(0,6)}…`:i.name,value:Number(i.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 ea(t){return Number(t.total.lead_count)+Number(t.total.consult_count)+Number(t.total.deal_order_count)>0}function vn(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 ta(t){return t.rows.some(e=>e.dept_id>0&&Number(e.performance_amount)>0)}function fn(t){const e=t.rows.filter(i=>i.dept_id>0&&Number(i.performance_amount)>0).sort((i,h)=>Number(h.performance_amount)-Number(i.performance_amount));if(!e.length)return{series:[{type:"pie",data:[]}]};const s=e.slice(0,10).map(i=>({name:i.dept_name.length>8?`${i.dept_name.slice(0,8)}…`:i.dept_name,value:Number(i.performance_amount)}));if(e.length>10){const i=e.slice(10).reduce((h,g)=>h+Number(g.performance_amount),0);i>0&&s.push({name:"其它",value:i})}return{color:["#2563eb","#0d9488","#d97706","#7c3aed","#64748b","#0891b2","#65a30d","#c026d3","#ea580c","#4f46e5","#94a3b8"],tooltip:{trigger:"item",formatter:"{b}
{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}
diff --git a/server/public/admin/index.html b/server/public/admin/index.html
index e957a6ad..cf838aa0 100755
--- a/server/public/admin/index.html
+++ b/server/public/admin/index.html
@@ -60,7 +60,7 @@
document.head.appendChild(link);
})();
-
+
@@ -99,7 +99,7 @@
-
+