2 lines
10 KiB
JavaScript
2 lines
10 KiB
JavaScript
import{G as Z,F as ee,z as te,K as le,L as ae,A as se,i as ne,M as oe,N as ie,O as re,P as de,r as _e,d as ue,Q as ce}from"./element-plus-DDINy080.js";import{_ as me}from"./index.vue_vue_type_script_setup_true_lang-9cmfzJ44.js";import{w as pe}from"./@vue/runtime-dom-DDAG46FW.js";import{t as fe,u as be}from"./stats-Bz24MGMf.js";import{u as ge}from"./usePaging-DofycyjW.js";import{j as D,_ as ve}from"./index-CucNzNKR.js";import{i as ke}from"./@element-plus/icons-vue-CbYn5zW9.js";import{f as M,w as F,b as he,as as ye,ak as _,I as c,a,aN as s,O as r,J as u,aP as S,G as E,H as I,F as Y}from"./@vue/runtime-core-C6bnekPw.js";import{Q as i}from"./@vue/shared-mAAVTE9n.js";import{y as k,a as Ve,n as h,r as Ne}from"./@vue/reactivity-DiY1c2vO.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";const Ce={class:"auto-assign-log-page"},xe={class:"toolbar mb-3"},Ee={key:0,class:"toolbar-tip"},Re={class:"cell-sub"},Le={class:"cell-sub"},Ae={key:0,class:"cell-sub"},De={key:2},Se={class:"cell-sub"},Ye={key:1},$e={class:"cell-sub"},ze={key:1,class:"cell-sub"},Be={class:"cell-sub"},Fe={key:1,class:"cell-sub"},Ie={class:"flex justify-end mt-4"},Me=M({name:"statsAutoAssignLog"}),Pe=M({...Me,setup(Ue){const y=h(null),V=h(null),R=h(),m=h([]),N=h(!1),n=Ne({start_date:"",end_date:"",start_time:"",end_time:"",action:"",is_rollback:"",keyword:""});F(y,e=>{n.start_date=(e==null?void 0:e[0])??"",n.end_date=(e==null?void 0:e[1])??""}),F(V,e=>{n.start_time=(e==null?void 0:e[0])??"",n.end_time=(e==null?void 0:e[1])??""});const{pager:b,getLists:L,resetPage:P}=ge({fetchFun:fe,params:n}),p=()=>{var e,l;m.value=[],(l=(e=R.value)==null?void 0:e.clearSelection)==null||l.call(e),P()},U=()=>{y.value=null,V.value=null,n.start_date="",n.end_date="",n.start_time="",n.end_time="",n.action="",n.is_rollback="",n.keyword="",p()},A=e=>e==null?"—":`${e}%`,w=e=>(e==null?void 0:e.rate_version)==="v1"&&(e==null?void 0:e.visit2_rate_new_assign)!==null&&(e==null?void 0:e.visit2_rate_new_assign)!==void 0?e.visit2_rate_new_assign:e==null?void 0:e.visit2_rate,T=e=>Number(e.can_rollback)===1,j=e=>{m.value=e.filter(l=>Number(l.can_rollback)===1)},$=async e=>{var l,g;if(e.length!==0){await D.confirm(`确认回退选中的 ${e.length} 条自动分配?将把诊单医助撤回到自动分配前的原医助,并写入指派日志。`),N.value=!0;try{const o=await be({ids:e}),f=Number((o==null?void 0:o.success)??0),v=Number((o==null?void 0:o.failed)??0);v>0&&Array.isArray(o==null?void 0:o.messages)&&o.messages.length?D.msgWarning(`回退成功 ${f} 条,跳过/失败 ${v} 条:${o.messages.slice(0,3).join(";")}`):D.msgSuccess(`回退成功 ${f} 条`),m.value=[],(g=(l=R.value)==null?void 0:l.clearSelection)==null||g.call(l),await L()}finally{N.value=!1}}},H=()=>{const e=m.value.map(l=>Number(l.id)).filter(l=>l>0);return $(e)},K=e=>{const l=Number((e==null?void 0:e.id)??0);if(!(l<=0))return $([l])};return he(()=>L()),(e,l)=>{const g=te,o=ee,f=ae,v=le,O=se,C=ne,G=Z,z=oe,d=re,x=de,Q=ue,q=_e,J=ie,W=me,B=ye("perms"),X=ce;return _(),c("div",Ce,[a(z,{class:"!border-none",shadow:"never"},{default:s(()=>[a(G,{inline:!0,class:"log-filter-form"},{default:s(()=>[a(o,{label:"记录时间"},{default:s(()=>[a(g,{modelValue:V.value,"onUpdate:modelValue":l[0]||(l[0]=t=>V.value=t),type:"datetimerange","range-separator":"至","start-placeholder":"开始时间","end-placeholder":"结束时间","value-format":"YYYY-MM-DD HH:mm:ss",clearable:"",onChange:p},null,8,["modelValue"])]),_:1}),a(o,{label:"执行日期"},{default:s(()=>[a(g,{modelValue:y.value,"onUpdate:modelValue":l[1]||(l[1]=t=>y.value=t),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",clearable:"",onChange:p},null,8,["modelValue"])]),_:1}),a(o,{label:"结果"},{default:s(()=>[a(v,{modelValue:n.action,"onUpdate:modelValue":l[2]||(l[2]=t=>n.action=t),clearable:"",placeholder:"全部",class:"w-[120px]",onChange:p},{default:s(()=>[a(f,{label:"已分配",value:"1"}),a(f,{label:"未分配",value:"0"})]),_:1},8,["modelValue"])]),_:1}),a(o,{label:"回退"},{default:s(()=>[a(v,{modelValue:n.is_rollback,"onUpdate:modelValue":l[3]||(l[3]=t=>n.is_rollback=t),clearable:"",placeholder:"全部",class:"w-[120px]",onChange:p},{default:s(()=>[a(f,{label:"未回退",value:"0"}),a(f,{label:"已回退",value:"1"})]),_:1},8,["modelValue"])]),_:1}),a(o,{label:"关键词"},{default:s(()=>[a(O,{modelValue:n.keyword,"onUpdate:modelValue":l[4]||(l[4]=t=>n.keyword=t),placeholder:"患者/手机号/医助/诊单ID",clearable:"",class:"w-[220px]",onKeyup:pe(p,["enter"]),onClear:p},null,8,["modelValue"])]),_:1}),a(o,null,{default:s(()=>[a(C,{type:"primary",onClick:p},{default:s(()=>[...l[6]||(l[6]=[r("查询",-1)])]),_:1}),a(C,{onClick:U},{default:s(()=>[...l[7]||(l[7]=[r("重置",-1)])]),_:1})]),_:1})]),_:1}),l[8]||(l[8]=u("div",{class:"log-hint"},[r(" 由每日定时任务「待分配诊单自动指派」写入:按上月二诊复诊接诊率分档轮询分配(>70% 每人3条/日,60%~70% 每人2条/日,50%~60% 每人1条/日,<50% 不分)。「回退」可将已分配医助撤回到自动分配前的原医助(通常为一中心),并写入指派日志(原医助重新接手按「继承」记录)。 "),u("br"),r(" 口径版本:"),u("b",null,"v1 旧口径"),r(" = 分母仅新指派(visit2_rate_new_assign);"),u("b",null,"v2 新口径"),r(" = 每列独立分母,继承按继承时诊次计入(visit2_rate)。 每条日志同时记录两套率并标注本批次分档所用口径(配置 project.revisit_rate.auto_assign_tier_field);2026-10 前的历史行仅有旧口径率。 ")],-1))]),_:1}),a(z,{class:"!border-none mt-3",shadow:"never"},{default:s(()=>[u("div",xe,[S((_(),E(C,{type:"warning",disabled:m.value.length===0,loading:N.value,onClick:H},{default:s(()=>[r(" 回退选中("+i(m.value.length)+") ",1)]),_:1},8,["disabled","loading"])),[[B,["stats.autoAssignLog/rollback"]]]),m.value.length>0?(_(),c("span",Ee," 已选 "+i(m.value.length)+" 条可回退记录 ",1)):I("",!0)]),S((_(),E(J,{ref_key:"tableRef",ref:R,data:k(b).lists,size:"default",stripe:"","row-key":"id",onSelectionChange:j},{default:s(()=>[a(d,{type:"selection",width:"48",selectable:T,"reserve-selection":""}),a(d,{label:"记录时间",width:"160"},{default:s(({row:t})=>[r(i(t.create_time_text||"—"),1)]),_:1}),a(d,{label:"诊单",width:"90",prop:"diagnosis_id"}),a(d,{label:"患者","min-width":"110"},{default:s(({row:t})=>[u("div",null,i(t.patient_name||"—"),1),u("div",Re,i(t.patient_phone||""),1)]),_:1}),a(d,{label:"结果",width:"90",align:"center"},{default:s(({row:t})=>[a(x,{type:Number(t.action)===1?"success":"info",size:"small"},{default:s(()=>[r(i(t.action_text),1)]),_:2},1032,["type"])]),_:1}),a(d,{label:"回退状态",width:"140"},{default:s(({row:t})=>[Number(t.is_rollback)===1?(_(),c(Y,{key:0},[a(x,{type:"warning",size:"small"},{default:s(()=>[...l[9]||(l[9]=[r("已回退",-1)])]),_:1}),u("div",Le,i(t.rollback_time_text),1),t.rollback_admin_name?(_(),c("div",Ae,i(t.rollback_admin_name),1)):I("",!0)],64)):Number(t.can_rollback)===1?(_(),E(x,{key:1,type:"success",size:"small"},{default:s(()=>[...l[10]||(l[10]=[r(" 可回退 ",-1)])]),_:1})):(_(),c("span",De,"—"))]),_:1}),a(d,{label:"医助","min-width":"110"},{default:s(({row:t})=>[Number(t.assistant_id)>0?(_(),c(Y,{key:0},[u("div",null,i(t.assistant_name||"#"+t.assistant_id),1),u("div",Se,"上月二诊接诊率 "+i(A(w(t))),1)],64)):(_(),c("span",Ye,"—"))]),_:1}),a(d,{label:"档位",width:"100",align:"center"},{default:s(({row:t})=>[r(i(t.tier_text||"—"),1)]),_:1}),a(d,{label:"分档口径","min-width":"150"},{header:s(()=>[l[11]||(l[11]=u("span",null,"分档口径",-1)),a(q,{placement:"top",effect:"dark",content:"本批次分档所用口径;下方为两套口径的上月二诊接诊率(新口径 = 每列独立分母 / 旧口径 = 分母仅新指派)"},{default:s(()=>[a(Q,{class:"col-hint"},{default:s(()=>[a(k(ke))]),_:1})]),_:1})]),default:s(({row:t})=>[Number(t.action)===1?(_(),c(Y,{key:0},[a(x,{type:t.rate_version==="v2"?"primary":"info",size:"small"},{default:s(()=>[r(i(t.rate_version_text||t.rate_version||"v1"),1)]),_:2},1032,["type"]),u("div",$e," 新口径 "+i(A(t.visit2_rate))+" · 旧口径 "+i(A(t.visit2_rate_new_assign)),1)],64)):(_(),c("span",ze,"—"))]),_:1}),a(d,{label:"轮次",width:"70",align:"center"},{default:s(({row:t})=>[r(i(Number(t.round_no)>0?"第"+t.round_no+"轮":"—"),1)]),_:1}),a(d,{label:"原因","min-width":"280","show-overflow-tooltip":""},{default:s(({row:t})=>[r(i(t.reason),1)]),_:1}),a(d,{label:"统计月",width:"90",prop:"stat_month",align:"center"}),a(d,{label:"批次",width:"160"},{default:s(({row:t})=>[u("span",Be,i(t.batch_no),1)]),_:1}),a(d,{label:"操作",width:"90",fixed:"right",align:"center"},{default:s(({row:t})=>[Number(t.can_rollback)===1?S((_(),E(C,{key:0,link:"",type:"warning",loading:N.value,onClick:we=>K(t)},{default:s(()=>[...l[12]||(l[12]=[r(" 回退 ",-1)])]),_:1},8,["loading","onClick"])),[[B,["stats.autoAssignLog/rollback"]]]):(_(),c("span",Fe,"—"))]),_:1})]),_:1},8,["data"])),[[X,k(b).loading]]),u("div",Ie,[a(W,{modelValue:k(b),"onUpdate:modelValue":l[5]||(l[5]=t=>Ve(b)?b.value=t:null),onChange:k(L)},null,8,["modelValue","onChange"])])]),_:1})])}}}),Lt=ve(Pe,[["__scopeId","data-v-9db98898"]]);export{Lt as default};
|