diff --git a/server/public/admin/assets/403-BMBB_v5E.js b/server/public/admin/assets/403-X08P3cWC.js similarity index 75% rename from server/public/admin/assets/403-BMBB_v5E.js rename to server/public/admin/assets/403-X08P3cWC.js index 106a07b8e..4a346d047 100644 --- a/server/public/admin/assets/403-BMBB_v5E.js +++ b/server/public/admin/assets/403-X08P3cWC.js @@ -1 +1 @@ -import t from"./error-Ce2og2WO.js";import{o,q as r,r as a,v as n,D as c,s}from"./.pnpm-CyuAWpdG.js";import"./index-Dxvz9lb1.js";const p="/admin/assets/no_perms-jDxcYpYC.png",i={class:"error404"},x=o({__name:"403",setup(m){return(_,e)=>(r(),a("div",i,[n(t,{code:"403",title:"您的账号权限不足,请联系管理员添加权限!","show-btn":!1},{content:c(()=>[...e[0]||(e[0]=[s("div",{class:"flex justify-center"},[s("img",{class:"w-[150px] h-[150px]",src:p,alt:""})],-1)])]),_:1})]))}});export{x as default}; +import t from"./error-DD91xBpX.js";import{o,q as r,r as a,v as n,D as c,s}from"./.pnpm-CyuAWpdG.js";import"./index-Bkarz3gO.js";const p="/admin/assets/no_perms-jDxcYpYC.png",i={class:"error404"},x=o({__name:"403",setup(m){return(_,e)=>(r(),a("div",i,[n(t,{code:"403",title:"您的账号权限不足,请联系管理员添加权限!","show-btn":!1},{content:c(()=>[...e[0]||(e[0]=[s("div",{class:"flex justify-center"},[s("img",{class:"w-[150px] h-[150px]",src:p,alt:""})],-1)])]),_:1})]))}});export{x as default}; diff --git a/server/public/admin/assets/404-D0vxTsay.js b/server/public/admin/assets/404-BC77kA-h.js similarity index 58% rename from server/public/admin/assets/404-D0vxTsay.js rename to server/public/admin/assets/404-BC77kA-h.js index 15aa64789..f3b069dd0 100644 --- a/server/public/admin/assets/404-D0vxTsay.js +++ b/server/public/admin/assets/404-BC77kA-h.js @@ -1 +1 @@ -import e from"./error-Ce2og2WO.js";import{o,q as r,r as t,v as s}from"./.pnpm-CyuAWpdG.js";import"./index-Dxvz9lb1.js";const a={class:"error404"},d=o({__name:"404",setup(c){return(n,_)=>(r(),t("div",a,[s(e,{code:"404",title:"哎呀,出错了!您访问的页面不存在…"})]))}});export{d as default}; +import e from"./error-DD91xBpX.js";import{o,q as r,r as t,v as s}from"./.pnpm-CyuAWpdG.js";import"./index-Bkarz3gO.js";const a={class:"error404"},d=o({__name:"404",setup(c){return(n,_)=>(r(),t("div",a,[s(e,{code:"404",title:"哎呀,出错了!您访问的页面不存在…"})]))}});export{d as default}; diff --git a/server/public/admin/assets/AppointmentRecordPanel-C2wB-h-D.js b/server/public/admin/assets/AppointmentRecordPanel-aR2VA9u1.js similarity index 96% rename from server/public/admin/assets/AppointmentRecordPanel-C2wB-h-D.js rename to server/public/admin/assets/AppointmentRecordPanel-aR2VA9u1.js index 2bc261c71..9493843e3 100644 --- a/server/public/admin/assets/AppointmentRecordPanel-C2wB-h-D.js +++ b/server/public/admin/assets/AppointmentRecordPanel-aR2VA9u1.js @@ -1 +1 @@ -import{o as C,R as D,q as d,r as I,ac as N,O as u,bk as B,D as o,v as l,bl as E,bm as L,L as i,T as r,s as p,bn as R,M as w}from"./.pnpm-CyuAWpdG.js";import{a as V}from"./doctor-8vo_5fa4.js";import{n as A,_ as M}from"./index-Dxvz9lb1.js";const P={class:"appointment-record-panel"},$={class:"cell-stack"},q={class:"font-medium"},O={class:"text-gray-500 text-sm"},j={class:"cell-stack"},F={class:"text-gray-500 text-sm"},G=C({__name:"AppointmentRecordPanel",props:{diagnosisId:{}},setup(v,{expose:y}){const f=v,m=w(!1),g=w([]),h=w({});function x(t){return t?String(t).length>=8?String(t).slice(0,5):t:""}function k(t){return t==="morning"?"上午":t==="afternoon"?"下午":t==="all"?"全天":t||"—"}function S(t){const n=t.channel_source??t.channels??"";if(n===""||n===null||n===void 0)return"—";const a=String(n),s=h.value[a]||a,c=String(t.channel_source_detail??"").trim();return c!==""?`${s}(${c})`:s}function T(t){return[...t].sort((n,a)=>{const s=String(n.appointment_date||""),c=String(a.appointment_date||"");if(s!==c)return c.localeCompare(s);const _=String(n.appointment_time||""),e=String(a.appointment_time||"");return _!==e?e.localeCompare(_):Number(a.id||0)-Number(n.id||0)})}const z=async()=>{try{const t=await A({type:"channels"}),n=((t==null?void 0:t.channels)||[]).filter(s=>s.status!==0),a={};for(const s of n)s.value!=null&&(a[String(s.value)]=s.name||String(s.value));h.value=a}catch{h.value={}}},b=async()=>{if(f.diagnosisId){m.value=!0;try{await z();const t=await V({patient_id:f.diagnosisId,diag_scope_relax:1,page_no:1,page_size:500}),n=(t==null?void 0:t.lists)||[];g.value=T(n)}catch(t){console.error(t),g.value=[]}finally{m.value=!1}}};return D(()=>f.diagnosisId,()=>{b()},{immediate:!0}),y({refresh:b}),(t,n)=>{const a=E,s=L,c=B,_=R;return d(),I("div",P,[N((d(),u(c,{data:g.value,border:"",stripe:"","empty-text":"暂无挂号记录"},{default:o(()=>[l(a,{label:"ID",prop:"id",width:"72",align:"center"}),l(a,{label:"状态",width:"100",align:"center"},{default:o(({row:e})=>[l(s,{type:e.status===1?"success":e.status===2?"info":e.status===3?"primary":"danger",size:"small",effect:"light"},{default:o(()=>[i(r(e.status_desc||"—"),1)]),_:2},1032,["type"])]),_:1}),l(a,{label:"患者(挂号人)","min-width":"150"},{default:o(({row:e})=>[p("div",$,[p("span",q,r(e.patient_name||"—"),1),p("span",O,r(e.patient_phone||""),1)])]),_:1}),l(a,{label:"挂号医生",prop:"doctor_name",width:"110","show-overflow-tooltip":""}),l(a,{label:"挂号助理",width:"110","show-overflow-tooltip":""},{default:o(({row:e})=>[i(r(e.assistant_name||"—"),1)]),_:1}),l(a,{label:"预约时间","min-width":"130"},{default:o(({row:e})=>[p("div",j,[p("span",null,r(e.appointment_date||"—"),1),p("span",F,r(x(e.appointment_time)),1)])]),_:1}),l(a,{label:"时段",width:"80",align:"center"},{default:o(({row:e})=>[i(r(k(e.period)),1)]),_:1}),l(a,{label:"类型",width:"100","show-overflow-tooltip":""},{default:o(({row:e})=>[i(r(e.appointment_type_desc||"—"),1)]),_:1}),l(a,{label:"渠道",width:"110","show-overflow-tooltip":""},{default:o(({row:e})=>[i(r(S(e)),1)]),_:1}),l(a,{label:"确认诊单",width:"92",align:"center"},{default:o(({row:e})=>[e.diagnosis_confirmed?(d(),u(s,{key:0,type:"success",size:"small",effect:"plain"},{default:o(()=>[...n[0]||(n[0]=[i("已确认",-1)])]),_:1})):(d(),u(s,{key:1,type:"warning",size:"small",effect:"plain"},{default:o(()=>[...n[1]||(n[1]=[i("未确认",-1)])]),_:1}))]),_:1}),l(a,{label:"开方",width:"80",align:"center"},{default:o(({row:e})=>[e.has_prescription?(d(),u(s,{key:0,type:"success",size:"small",effect:"plain"},{default:o(()=>[...n[2]||(n[2]=[i("已开方",-1)])]),_:1})):(d(),u(s,{key:1,type:"info",size:"small",effect:"plain"},{default:o(()=>[...n[3]||(n[3]=[i("未开方",-1)])]),_:1}))]),_:1}),l(a,{label:"备注",prop:"remark","min-width":"100","show-overflow-tooltip":""}),l(a,{label:"创建时间",width:"165",prop:"create_time"})]),_:1},8,["data"])),[[_,m.value]])])}}}),Q=M(G,[["__scopeId","data-v-4de87dfa"]]);export{Q as default}; +import{o as C,R as D,q as d,r as I,ac as N,O as u,bk as B,D as o,v as l,bl as E,bm as L,L as i,T as r,s as p,bn as R,M as w}from"./.pnpm-CyuAWpdG.js";import{a as V}from"./doctor-DBvYeWd3.js";import{n as A,_ as M}from"./index-Bkarz3gO.js";const P={class:"appointment-record-panel"},$={class:"cell-stack"},q={class:"font-medium"},O={class:"text-gray-500 text-sm"},j={class:"cell-stack"},F={class:"text-gray-500 text-sm"},G=C({__name:"AppointmentRecordPanel",props:{diagnosisId:{}},setup(v,{expose:y}){const f=v,m=w(!1),g=w([]),h=w({});function x(t){return t?String(t).length>=8?String(t).slice(0,5):t:""}function k(t){return t==="morning"?"上午":t==="afternoon"?"下午":t==="all"?"全天":t||"—"}function S(t){const n=t.channel_source??t.channels??"";if(n===""||n===null||n===void 0)return"—";const a=String(n),s=h.value[a]||a,c=String(t.channel_source_detail??"").trim();return c!==""?`${s}(${c})`:s}function T(t){return[...t].sort((n,a)=>{const s=String(n.appointment_date||""),c=String(a.appointment_date||"");if(s!==c)return c.localeCompare(s);const _=String(n.appointment_time||""),e=String(a.appointment_time||"");return _!==e?e.localeCompare(_):Number(a.id||0)-Number(n.id||0)})}const z=async()=>{try{const t=await A({type:"channels"}),n=((t==null?void 0:t.channels)||[]).filter(s=>s.status!==0),a={};for(const s of n)s.value!=null&&(a[String(s.value)]=s.name||String(s.value));h.value=a}catch{h.value={}}},b=async()=>{if(f.diagnosisId){m.value=!0;try{await z();const t=await V({patient_id:f.diagnosisId,diag_scope_relax:1,page_no:1,page_size:500}),n=(t==null?void 0:t.lists)||[];g.value=T(n)}catch(t){console.error(t),g.value=[]}finally{m.value=!1}}};return D(()=>f.diagnosisId,()=>{b()},{immediate:!0}),y({refresh:b}),(t,n)=>{const a=E,s=L,c=B,_=R;return d(),I("div",P,[N((d(),u(c,{data:g.value,border:"",stripe:"","empty-text":"暂无挂号记录"},{default:o(()=>[l(a,{label:"ID",prop:"id",width:"72",align:"center"}),l(a,{label:"状态",width:"100",align:"center"},{default:o(({row:e})=>[l(s,{type:e.status===1?"success":e.status===2?"info":e.status===3?"primary":"danger",size:"small",effect:"light"},{default:o(()=>[i(r(e.status_desc||"—"),1)]),_:2},1032,["type"])]),_:1}),l(a,{label:"患者(挂号人)","min-width":"150"},{default:o(({row:e})=>[p("div",$,[p("span",q,r(e.patient_name||"—"),1),p("span",O,r(e.patient_phone||""),1)])]),_:1}),l(a,{label:"挂号医生",prop:"doctor_name",width:"110","show-overflow-tooltip":""}),l(a,{label:"挂号助理",width:"110","show-overflow-tooltip":""},{default:o(({row:e})=>[i(r(e.assistant_name||"—"),1)]),_:1}),l(a,{label:"预约时间","min-width":"130"},{default:o(({row:e})=>[p("div",j,[p("span",null,r(e.appointment_date||"—"),1),p("span",F,r(x(e.appointment_time)),1)])]),_:1}),l(a,{label:"时段",width:"80",align:"center"},{default:o(({row:e})=>[i(r(k(e.period)),1)]),_:1}),l(a,{label:"类型",width:"100","show-overflow-tooltip":""},{default:o(({row:e})=>[i(r(e.appointment_type_desc||"—"),1)]),_:1}),l(a,{label:"渠道",width:"110","show-overflow-tooltip":""},{default:o(({row:e})=>[i(r(S(e)),1)]),_:1}),l(a,{label:"确认诊单",width:"92",align:"center"},{default:o(({row:e})=>[e.diagnosis_confirmed?(d(),u(s,{key:0,type:"success",size:"small",effect:"plain"},{default:o(()=>[...n[0]||(n[0]=[i("已确认",-1)])]),_:1})):(d(),u(s,{key:1,type:"warning",size:"small",effect:"plain"},{default:o(()=>[...n[1]||(n[1]=[i("未确认",-1)])]),_:1}))]),_:1}),l(a,{label:"开方",width:"80",align:"center"},{default:o(({row:e})=>[e.has_prescription?(d(),u(s,{key:0,type:"success",size:"small",effect:"plain"},{default:o(()=>[...n[2]||(n[2]=[i("已开方",-1)])]),_:1})):(d(),u(s,{key:1,type:"info",size:"small",effect:"plain"},{default:o(()=>[...n[3]||(n[3]=[i("未开方",-1)])]),_:1}))]),_:1}),l(a,{label:"备注",prop:"remark","min-width":"100","show-overflow-tooltip":""}),l(a,{label:"创建时间",width:"165",prop:"create_time"})]),_:1},8,["data"])),[[_,m.value]])])}}}),Q=M(G,[["__scopeId","data-v-4de87dfa"]]);export{Q as default}; diff --git a/server/public/admin/assets/AssignLogPanel-0TFZiCkF.js b/server/public/admin/assets/AssignLogPanel-mqnmyStx.js similarity index 96% rename from server/public/admin/assets/AssignLogPanel-0TFZiCkF.js rename to server/public/admin/assets/AssignLogPanel-mqnmyStx.js index 4e3150476..225c774b0 100644 --- a/server/public/admin/assets/AssignLogPanel-0TFZiCkF.js +++ b/server/public/admin/assets/AssignLogPanel-mqnmyStx.js @@ -1 +1 @@ -import{o as $,R as D,q as c,r as u,ac as F,O as L,bk as E,D as o,v as s,bl as P,L as _,T as d,F as A,bm as B,P as V,s as v,a1 as M,w as q,u as N,cj as w,bn as K,M as x}from"./.pnpm-CyuAWpdG.js";import{ag as j}from"./tcm-QAkeqQ9Q.js";import{_ as z}from"./index-Dxvz9lb1.js";const H={class:"assign-log-panel"},O={key:0,class:"assign-log-inherit-slot"},R={key:1,class:"text-gray-400"},Y=$({__name:"AssignLogPanel",props:{diagnosisId:{}},setup(y,{expose:S}){const m=y,p=x(!1),f=x([]);function T(a){const t=a.related_po_creator_name;if(t!=null&&String(t).trim()!=="")return String(t);const e=Number(a.related_po_creator_id);return Number.isFinite(e)&&e>0?`ID:${e}`:"—"}function k(a){const t=a.related_po_create_time_text;if(t!=null&&String(t).trim()!=="")return String(t);const e=Number(a.related_po_create_time);if(!Number.isFinite(e)||e<=0)return"—";const n=new Date(e*1e3);if(Number.isNaN(n.getTime()))return"—";const i=l=>String(l).padStart(2,"0");return`${n.getFullYear()}-${i(n.getMonth()+1)}-${i(n.getDate())} ${i(n.getHours())}:${i(n.getMinutes())}:${i(n.getSeconds())}`}function g(a){const t=a.inherit_visit_slot_text;if(t!=null&&String(t).trim()!=="")return String(t);const e=Number(a.inherit_visit_slot_calc_time);if(!Number.isFinite(e)||e<=0)return"";const n=Number(a.inherit_visit_slot);return Number.isFinite(n)&&n>0?`继承时第 ${n} 诊`:"继承时未成交"}function b(a,t){const e=t==="from"?"from_assistant_name":"to_assistant_name",n=t==="from"?"from_assistant_id":"to_assistant_id",i=a[e];if(i!=null&&String(i).trim()!==""&&String(i)!=="—")return String(i);const l=Number(a[n]);return Number.isFinite(l)&&l>0?`ID:${l}`:"—"}const h=async()=>{if(m.diagnosisId){p.value=!0;try{const a=await j({id:m.diagnosisId}),t=Array.isArray(a)?a:[];f.value=t}catch(a){console.error(a),f.value=[]}finally{p.value=!1}}};return D(()=>m.diagnosisId,()=>{h()},{immediate:!0}),S({refresh:h}),(a,t)=>{const e=P,n=q,i=M,l=B,C=E,I=K;return c(),u("div",H,[F((c(),L(C,{data:f.value,border:"",stripe:"","empty-text":"暂无指派记录"},{default:o(()=>[s(e,{label:"操作时间",width:"175",prop:"create_time_text"}),s(e,{label:"原医助","min-width":"120"},{default:o(({row:r})=>[_(d(b(r,"from")),1)]),_:1}),s(e,{label:"新医助","min-width":"120"},{default:o(({row:r})=>[_(d(b(r,"to")),1)]),_:1}),s(e,{label:"继承",width:"118",align:"center"},{header:o(()=>[t[0]||(t[0]=v("span",null,"继承",-1)),s(i,{placement:"top",content:"继承时第 k 诊:继承时刻之前患者已完成的诊次(有效实单数 + 偏移),复诊接诊率从第 k+1 诊起计入新医助分母;2026-10 前的继承记录无此快照"},{default:o(()=>[s(n,{class:"assign-log-col-hint"},{default:o(()=>[s(N(w))]),_:1})]),_:1})]),default:o(({row:r})=>[Number(r.is_inherit)===1?(c(),u(A,{key:0},[s(l,{type:"success",size:"small"},{default:o(()=>[...t[1]||(t[1]=[_("是",-1)])]),_:1}),g(r)?(c(),u("div",O,d(g(r)),1)):V("",!0)],64)):(c(),u("span",R,"否"))]),_:1}),s(e,{label:"快照·业务单创建人","min-width":"130","show-overflow-tooltip":""},{default:o(({row:r})=>[_(d(T(r)),1)]),_:1}),s(e,{label:"快照·业务单创建时间",width:"190"},{header:o(()=>[t[2]||(t[2]=v("span",null,"快照·业务单创建时间",-1)),s(i,{placement:"top",content:"related_po_create_time:触发本次操作的处方业务订单 create_time;与原文助一致时表示医助创建订单时间"},{default:o(()=>[s(n,{class:"assign-log-col-hint"},{default:o(()=>[s(N(w))]),_:1})]),_:1})]),default:o(({row:r})=>[_(d(k(r)),1)]),_:1}),s(e,{label:"操作人",width:"110",prop:"operator_name"}),s(e,{label:"操作账号",width:"120",prop:"operator_account","show-overflow-tooltip":""}),s(e,{label:"IP",width:"130",prop:"ip","show-overflow-tooltip":""})]),_:1},8,["data"])),[[I,p.value]])])}}}),U=z(Y,[["__scopeId","data-v-078f6683"]]);export{U as default}; +import{o as $,R as D,q as c,r as u,ac as F,O as L,bk as E,D as o,v as s,bl as P,L as _,T as d,F as A,bm as B,P as V,s as v,a1 as M,w as q,u as N,cj as w,bn as K,M as x}from"./.pnpm-CyuAWpdG.js";import{ag as j}from"./tcm-BSADvQNg.js";import{_ as z}from"./index-Bkarz3gO.js";const H={class:"assign-log-panel"},O={key:0,class:"assign-log-inherit-slot"},R={key:1,class:"text-gray-400"},Y=$({__name:"AssignLogPanel",props:{diagnosisId:{}},setup(y,{expose:S}){const m=y,p=x(!1),f=x([]);function T(a){const t=a.related_po_creator_name;if(t!=null&&String(t).trim()!=="")return String(t);const e=Number(a.related_po_creator_id);return Number.isFinite(e)&&e>0?`ID:${e}`:"—"}function k(a){const t=a.related_po_create_time_text;if(t!=null&&String(t).trim()!=="")return String(t);const e=Number(a.related_po_create_time);if(!Number.isFinite(e)||e<=0)return"—";const n=new Date(e*1e3);if(Number.isNaN(n.getTime()))return"—";const i=l=>String(l).padStart(2,"0");return`${n.getFullYear()}-${i(n.getMonth()+1)}-${i(n.getDate())} ${i(n.getHours())}:${i(n.getMinutes())}:${i(n.getSeconds())}`}function g(a){const t=a.inherit_visit_slot_text;if(t!=null&&String(t).trim()!=="")return String(t);const e=Number(a.inherit_visit_slot_calc_time);if(!Number.isFinite(e)||e<=0)return"";const n=Number(a.inherit_visit_slot);return Number.isFinite(n)&&n>0?`继承时第 ${n} 诊`:"继承时未成交"}function b(a,t){const e=t==="from"?"from_assistant_name":"to_assistant_name",n=t==="from"?"from_assistant_id":"to_assistant_id",i=a[e];if(i!=null&&String(i).trim()!==""&&String(i)!=="—")return String(i);const l=Number(a[n]);return Number.isFinite(l)&&l>0?`ID:${l}`:"—"}const h=async()=>{if(m.diagnosisId){p.value=!0;try{const a=await j({id:m.diagnosisId}),t=Array.isArray(a)?a:[];f.value=t}catch(a){console.error(a),f.value=[]}finally{p.value=!1}}};return D(()=>m.diagnosisId,()=>{h()},{immediate:!0}),S({refresh:h}),(a,t)=>{const e=P,n=q,i=M,l=B,C=E,I=K;return c(),u("div",H,[F((c(),L(C,{data:f.value,border:"",stripe:"","empty-text":"暂无指派记录"},{default:o(()=>[s(e,{label:"操作时间",width:"175",prop:"create_time_text"}),s(e,{label:"原医助","min-width":"120"},{default:o(({row:r})=>[_(d(b(r,"from")),1)]),_:1}),s(e,{label:"新医助","min-width":"120"},{default:o(({row:r})=>[_(d(b(r,"to")),1)]),_:1}),s(e,{label:"继承",width:"118",align:"center"},{header:o(()=>[t[0]||(t[0]=v("span",null,"继承",-1)),s(i,{placement:"top",content:"继承时第 k 诊:继承时刻之前患者已完成的诊次(有效实单数 + 偏移),复诊接诊率从第 k+1 诊起计入新医助分母;2026-10 前的继承记录无此快照"},{default:o(()=>[s(n,{class:"assign-log-col-hint"},{default:o(()=>[s(N(w))]),_:1})]),_:1})]),default:o(({row:r})=>[Number(r.is_inherit)===1?(c(),u(A,{key:0},[s(l,{type:"success",size:"small"},{default:o(()=>[...t[1]||(t[1]=[_("是",-1)])]),_:1}),g(r)?(c(),u("div",O,d(g(r)),1)):V("",!0)],64)):(c(),u("span",R,"否"))]),_:1}),s(e,{label:"快照·业务单创建人","min-width":"130","show-overflow-tooltip":""},{default:o(({row:r})=>[_(d(T(r)),1)]),_:1}),s(e,{label:"快照·业务单创建时间",width:"190"},{header:o(()=>[t[2]||(t[2]=v("span",null,"快照·业务单创建时间",-1)),s(i,{placement:"top",content:"related_po_create_time:触发本次操作的处方业务订单 create_time;与原文助一致时表示医助创建订单时间"},{default:o(()=>[s(n,{class:"assign-log-col-hint"},{default:o(()=>[s(N(w))]),_:1})]),_:1})]),default:o(({row:r})=>[_(d(k(r)),1)]),_:1}),s(e,{label:"操作人",width:"110",prop:"operator_name"}),s(e,{label:"操作账号",width:"120",prop:"operator_account","show-overflow-tooltip":""}),s(e,{label:"IP",width:"130",prop:"ip","show-overflow-tooltip":""})]),_:1},8,["data"])),[[I,p.value]])])}}}),U=z(Y,[["__scopeId","data-v-078f6683"]]);export{U as default}; diff --git a/server/public/admin/assets/AssistantWatchCallDialog-Cmuadkz7.js b/server/public/admin/assets/AssistantWatchCallDialog-CjRQdKqO.js similarity index 96% rename from server/public/admin/assets/AssistantWatchCallDialog-Cmuadkz7.js rename to server/public/admin/assets/AssistantWatchCallDialog-CjRQdKqO.js index bfeab3f82..375b13af2 100644 --- a/server/public/admin/assets/AssistantWatchCallDialog-Cmuadkz7.js +++ b/server/public/admin/assets/AssistantWatchCallDialog-CjRQdKqO.js @@ -1 +1 @@ -import{o as D,R as b,q as E,O,D as I,r as _,T as S,P as x,ac as W,s as h,ad as j,v as P,K as U,L as $,aB as H,p as K,M as v,dj as c}from"./.pnpm-CyuAWpdG.js";import{ah as Y}from"./tcm-QAkeqQ9Q.js";import{_ as q}from"./index-Dxvz9lb1.js";const z={key:0,class:"watch-state"},F={key:1,class:"watch-state watch-error"},G=D({__name:"AssistantWatchCallDialog",props:{modelValue:{type:Boolean},diagnosisId:{}},emits:["update:modelValue","closed"],setup(R,{emit:A}){const u=R,g=A,y=K({get:()=>u.modelValue,set:t=>g("update:modelValue",t)}),r=v(null),l=v(!1),i=v(""),f=v("旁观视频通话"),n=new Map;let a=null,p=0;function w(t,e){return`${t}\0${String(e)}`}function N(t){return t.startsWith("patient_")?"患者":t.startsWith("doctor_")?"医护":t}async function T(t){if(!a||!r.value||t.streamType!==c.TYPE.STREAM_TYPE_MAIN)return;const e=w(t.userId,t.streamType);if(n.has(e))return;const o=document.createElement("div");o.className="watch-tile";const s=document.createElement("div");s.className="watch-tile-cap",s.textContent=N(t.userId);const d=document.createElement("div");d.className="watch-tile-view",o.appendChild(s),o.appendChild(d),r.value.appendChild(o),n.set(e,{wrap:o,userId:t.userId,streamType:t.streamType});try{await a.startRemoteVideo({userId:t.userId,streamType:t.streamType,view:d})}catch(M){console.warn("[AssistantWatchCall] startRemoteVideo",M)}}async function V(t){if(!a)return;const e=w(t.userId,t.streamType),o=n.get(e);if(o){try{await a.stopRemoteVideo({userId:t.userId,streamType:t.streamType})}catch{}o.wrap.remove(),n.delete(e)}}function C(){a&&(a.on(c.EVENT.REMOTE_VIDEO_AVAILABLE,T),a.on(c.EVENT.REMOTE_VIDEO_UNAVAILABLE,V))}function k(){a&&(a.off(c.EVENT.REMOTE_VIDEO_AVAILABLE,T),a.off(c.EVENT.REMOTE_VIDEO_UNAVAILABLE,V))}async function m(){if(k(),a){for(const[,t]of n){try{await a.stopRemoteVideo({userId:t.userId,streamType:t.streamType})}catch{}t.wrap.remove()}n.clear(),r.value&&(r.value.innerHTML="");try{await a.exitRoom()}catch{}try{a.destroy()}catch{}a=null}else n.clear(),r.value&&(r.value.innerHTML="")}async function L(){const t=++p;if(await m(),!u.diagnosisId){i.value="诊单无效";return}l.value=!0,i.value="",f.value="旁观视频通话";try{const e=await Y({diagnosis_id:u.diagnosisId});if(t!==p)return;e.patientName&&(f.value=`旁观视频通话 · ${e.patientName}`),a=c.create(),C();const o={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,autoReceiveAudio:!0,autoReceiveVideo:!0,...e.roomId!=null&&e.roomId>0?{roomId:e.roomId}:{strRoomId:e.strRoomId}};if(!(e.roomId!=null&&e.roomId>0)&&!e.strRoomId)throw new Error("缺少房间号");if(await a.enterRoom(o),t!==p){await m();return}l.value=!1}catch(e){l.value=!1;let o="进入房间失败";if(typeof e=="string")o=e;else if(e&&typeof e=="object"){const s=e;s.msg?o=String(s.msg):s.message&&(o=String(s.message))}i.value=o,await m()}}function B(){m(),l.value=!1,i.value="",f.value="旁观视频通话",g("closed")}return b(()=>[u.modelValue,u.diagnosisId],([t,e])=>{if(!t){p++,m();return}e>0&&L()}),(t,e)=>{const o=U,s=H;return E(),O(s,{modelValue:y.value,"onUpdate:modelValue":e[1]||(e[1]=d=>y.value=d),title:f.value,width:"760px","destroy-on-close":"","append-to-body":"","close-on-click-modal":!1,class:"assistant-watch-call-dialog",onClosed:B},{footer:I(()=>[e[3]||(e[3]=h("span",{class:"watch-hint"},"仅观看,不会开启摄像头与麦克风",-1)),P(o,{type:"primary",onClick:e[0]||(e[0]=d=>y.value=!1)},{default:I(()=>[...e[2]||(e[2]=[$("离开",-1)])]),_:1})]),default:I(()=>[l.value?(E(),_("div",z,"正在连接房间…")):i.value?(E(),_("div",F,S(i.value),1)):x("",!0),W(h("div",{ref_key:"gridRef",ref:r,class:"watch-grid"},null,512),[[j,!l.value&&!i.value]])]),_:1},8,["modelValue","title"])}}}),Z=q(G,[["__scopeId","data-v-7aff665d"]]);export{Z as default}; +import{o as D,R as b,q as E,O,D as I,r as _,T as S,P as x,ac as W,s as h,ad as j,v as P,K as U,L as $,aB as H,p as K,M as v,dj as c}from"./.pnpm-CyuAWpdG.js";import{ah as Y}from"./tcm-BSADvQNg.js";import{_ as q}from"./index-Bkarz3gO.js";const z={key:0,class:"watch-state"},F={key:1,class:"watch-state watch-error"},G=D({__name:"AssistantWatchCallDialog",props:{modelValue:{type:Boolean},diagnosisId:{}},emits:["update:modelValue","closed"],setup(R,{emit:A}){const u=R,g=A,y=K({get:()=>u.modelValue,set:t=>g("update:modelValue",t)}),r=v(null),l=v(!1),i=v(""),f=v("旁观视频通话"),n=new Map;let a=null,p=0;function w(t,e){return`${t}\0${String(e)}`}function N(t){return t.startsWith("patient_")?"患者":t.startsWith("doctor_")?"医护":t}async function T(t){if(!a||!r.value||t.streamType!==c.TYPE.STREAM_TYPE_MAIN)return;const e=w(t.userId,t.streamType);if(n.has(e))return;const o=document.createElement("div");o.className="watch-tile";const s=document.createElement("div");s.className="watch-tile-cap",s.textContent=N(t.userId);const d=document.createElement("div");d.className="watch-tile-view",o.appendChild(s),o.appendChild(d),r.value.appendChild(o),n.set(e,{wrap:o,userId:t.userId,streamType:t.streamType});try{await a.startRemoteVideo({userId:t.userId,streamType:t.streamType,view:d})}catch(M){console.warn("[AssistantWatchCall] startRemoteVideo",M)}}async function V(t){if(!a)return;const e=w(t.userId,t.streamType),o=n.get(e);if(o){try{await a.stopRemoteVideo({userId:t.userId,streamType:t.streamType})}catch{}o.wrap.remove(),n.delete(e)}}function C(){a&&(a.on(c.EVENT.REMOTE_VIDEO_AVAILABLE,T),a.on(c.EVENT.REMOTE_VIDEO_UNAVAILABLE,V))}function k(){a&&(a.off(c.EVENT.REMOTE_VIDEO_AVAILABLE,T),a.off(c.EVENT.REMOTE_VIDEO_UNAVAILABLE,V))}async function m(){if(k(),a){for(const[,t]of n){try{await a.stopRemoteVideo({userId:t.userId,streamType:t.streamType})}catch{}t.wrap.remove()}n.clear(),r.value&&(r.value.innerHTML="");try{await a.exitRoom()}catch{}try{a.destroy()}catch{}a=null}else n.clear(),r.value&&(r.value.innerHTML="")}async function L(){const t=++p;if(await m(),!u.diagnosisId){i.value="诊单无效";return}l.value=!0,i.value="",f.value="旁观视频通话";try{const e=await Y({diagnosis_id:u.diagnosisId});if(t!==p)return;e.patientName&&(f.value=`旁观视频通话 · ${e.patientName}`),a=c.create(),C();const o={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,autoReceiveAudio:!0,autoReceiveVideo:!0,...e.roomId!=null&&e.roomId>0?{roomId:e.roomId}:{strRoomId:e.strRoomId}};if(!(e.roomId!=null&&e.roomId>0)&&!e.strRoomId)throw new Error("缺少房间号");if(await a.enterRoom(o),t!==p){await m();return}l.value=!1}catch(e){l.value=!1;let o="进入房间失败";if(typeof e=="string")o=e;else if(e&&typeof e=="object"){const s=e;s.msg?o=String(s.msg):s.message&&(o=String(s.message))}i.value=o,await m()}}function B(){m(),l.value=!1,i.value="",f.value="旁观视频通话",g("closed")}return b(()=>[u.modelValue,u.diagnosisId],([t,e])=>{if(!t){p++,m();return}e>0&&L()}),(t,e)=>{const o=U,s=H;return E(),O(s,{modelValue:y.value,"onUpdate:modelValue":e[1]||(e[1]=d=>y.value=d),title:f.value,width:"760px","destroy-on-close":"","append-to-body":"","close-on-click-modal":!1,class:"assistant-watch-call-dialog",onClosed:B},{footer:I(()=>[e[3]||(e[3]=h("span",{class:"watch-hint"},"仅观看,不会开启摄像头与麦克风",-1)),P(o,{type:"primary",onClick:e[0]||(e[0]=d=>y.value=!1)},{default:I(()=>[...e[2]||(e[2]=[$("离开",-1)])]),_:1})]),default:I(()=>[l.value?(E(),_("div",z,"正在连接房间…")):i.value?(E(),_("div",F,S(i.value),1)):x("",!0),W(h("div",{ref_key:"gridRef",ref:r,class:"watch-grid"},null,512),[[j,!l.value&&!i.value]])]),_:1},8,["modelValue","title"])}}}),Z=q(G,[["__scopeId","data-v-7aff665d"]]);export{Z as default}; diff --git a/server/public/admin/assets/BloodRecordList-qlYHWuAX.js b/server/public/admin/assets/BloodRecordList-Dp5nLiIK.js similarity index 98% rename from server/public/admin/assets/BloodRecordList-qlYHWuAX.js rename to server/public/admin/assets/BloodRecordList-Dp5nLiIK.js index 555fb5122..08a3532ea 100644 --- a/server/public/admin/assets/BloodRecordList-qlYHWuAX.js +++ b/server/public/admin/assets/BloodRecordList-Dp5nLiIK.js @@ -1 +1 @@ -import{o as ee,M as m,ap as le,aq as ae,R as Y,q as V,r as F,s as u,O as H,D as n,L as _,K as te,P as O,v as l,bi as oe,C as A,u as s,bh as se,az as ne,bj as de,bl as re,T as k,bk as ie,bd as ue,bb as pe,c6 as me,J as _e,aA as ce,aB as fe,p as ge,n as be,dk as ye}from"./.pnpm-CyuAWpdG.js";import{ai as ve,aj as Ve,ak as he,a0 as ke,a1 as we}from"./tcm-QAkeqQ9Q.js";import{j as w,_ as Ie}from"./index-Dxvz9lb1.js";const xe={class:"blood-record-list"},Ce={class:"mb-4"},Ee={class:"mb-4"},Te={key:0},De={key:1},Re=5,Ue=ee({__name:"BloodRecordList",props:{diagnosisId:{type:Number,default:0},patientId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},setup(D){const d=D,P=m([]),c=m(!1),R=m(!1),$=ge(()=>o.value.id?"编辑记录":"添加记录"),f=m(7),g=m(null),p=m({dates:[],fasting:[],postprandial_2h:[],other:[]}),U=m();let b=null,B=0;const o=m({id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",record_time:"",fasting_blood_sugar:0,postprandial_blood_sugar:0,other_blood_sugar:0,systolic_pressure:0,diastolic_pressure:0,western_medicine:"",insulin:"",remark:""});function N(t){if(t==null||t==="")return"-";const e=Number(String(t).trim());return!Number.isFinite(e)||e===0?"-":String(e.toFixed(2).replace(/\.?0+$/,""))}const h=async()=>{if(!(!d.diagnosisId&&!d.patientId))try{const t={diagnosis_id:d.diagnosisId,patient_id:d.patientId};f.value===0&&g.value?(t.start_date=Math.floor(g.value[0].getTime()/1e3),t.end_date=Math.floor(g.value[1].getTime()/1e3)):t.days=f.value;const e=await ve(t);p.value=e,L()}catch(t){console.error("获取趋势图数据失败:",t)}},j=()=>{f.value!==0&&(g.value=null),h()},L=()=>{be(()=>{setTimeout(()=>{if(!U.value)return;const t=U.value;if(t.clientWidth===0||t.clientHeight===0){BL(),100));return}B=0,b&&b.dispose(),b=ye(t);const e=(M,i)=>{const C=new Map;return M.forEach(r=>{C.set(r.date,r.value)}),i.map(r=>C.get(r)||null)},y=e(p.value.fasting,p.value.dates),v=e(p.value.postprandial_2h,p.value.dates),S=e(p.value.other,p.value.dates),x={tooltip:{trigger:"axis",axisPointer:{type:"cross"}},legend:{data:["空腹血糖","餐后2小时血糖","其他血糖"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:p.value.dates},yAxis:{type:"value",name:"血糖值 (mmol/L)"},series:[{name:"空腹血糖",type:"line",data:y,smooth:!0,connectNulls:!0},{name:"餐后2小时血糖",type:"line",data:v,smooth:!0,connectNulls:!0},{name:"其他血糖",type:"line",data:S,smooth:!0,connectNulls:!0}]};b.setOption(x),b.resize()},100)})},I=async()=>{if(!(!d.diagnosisId&&!d.patientId))try{const t=await Ve({diagnosis_id:d.diagnosisId,patient_id:d.patientId});P.value=t}catch(t){console.error("获取记录失败:",t)}},q=()=>{o.value={id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",record_time:"",fasting_blood_sugar:0,postprandial_blood_sugar:0,other_blood_sugar:0,systolic_pressure:0,diastolic_pressure:0,western_medicine:"",insulin:"",remark:""},c.value=!0},z=t=>{o.value={...t,fasting_blood_sugar:parseFloat(t.fasting_blood_sugar)||0,postprandial_blood_sugar:parseFloat(t.postprandial_blood_sugar)||0,other_blood_sugar:parseFloat(t.other_blood_sugar)||0,systolic_pressure:parseInt(t.systolic_pressure)||0,diastolic_pressure:parseInt(t.diastolic_pressure)||0},c.value=!0},G=t=>{o.value.other_blood_sugar=t.replace(/[^\d.]/g,"")},W=async t=>{await w.confirm("确定要删除这条记录吗?");try{await he({id:t.id}),w.msgSuccess("删除成功"),I()}catch(e){console.error("删除失败:",e)}},J=async()=>{if(!o.value.record_date){w.msgWarning("请选择记录日期");return}R.value=!0;try{o.value.id?(await ke(o.value),w.msgSuccess("编辑成功")):(await we(o.value),w.msgSuccess("添加成功")),c.value=!1,I(),h()}catch(t){console.error("提交失败:",t)}finally{R.value=!1}};return le(()=>{setTimeout(()=>{I(),h()},500)}),ae(()=>{b&&b.dispose()}),Y(()=>[d.diagnosisId,d.patientId],()=>{I(),h()}),Y(()=>d.diagnosisId,t=>{t&&setTimeout(()=>{L()},500)}),(t,e)=>{const y=te,v=oe,S=se,x=ne,M=de,i=re,C=ie,r=pe,K=me,E=_e,T=ce,X=ue,Q=fe;return V(),F("div",xe,[u("div",Ce,[D.readOnly?O("",!0):(V(),H(y,{key:0,type:"primary",onClick:q},{default:n(()=>[...e[14]||(e[14]=[_("添加记录",-1)])]),_:1})),l(S,{modelValue:s(f),"onUpdate:modelValue":e[0]||(e[0]=a=>A(f)?f.value=a:null),onChange:j,class:"ml-2",style:{width:"150px"}},{default:n(()=>[l(v,{label:"最近7天",value:7}),l(v,{label:"最近30天",value:30}),l(v,{label:"最近90天",value:90}),l(v,{label:"最近一年",value:365}),l(v,{label:"自定义",value:0})]),_:1},8,["modelValue"]),s(f)===0?(V(),H(x,{key:1,modelValue:s(g),"onUpdate:modelValue":e[1]||(e[1]=a=>A(g)?g.value=a:null),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",onChange:h,class:"ml-2",style:{width:"300px"}},null,8,["modelValue"])):O("",!0)]),u("div",Ee,[l(M,null,{header:n(()=>[...e[15]||(e[15]=[u("div",{class:"card-header"},[u("span",null,"血糖趋势图")],-1)])]),default:n(()=>[u("div",{ref_key:"chartRef",ref:U,style:{width:"100%",height:"400px"}},null,512)]),_:1})]),l(C,{data:s(P),border:"",style:{width:"100%"}},{default:n(()=>[l(i,{prop:"record_date",label:"记录日期",width:"120"}),l(i,{prop:"record_time",label:"记录时间",width:"100"}),l(i,{label:"空腹血糖(mmol/L)",width:"120"},{default:n(({row:a})=>[_(k(N(a.fasting_blood_sugar)),1)]),_:1}),l(i,{label:"餐后2小时血糖(mmol/L)",width:"150"},{default:n(({row:a})=>[_(k(N(a.postprandial_blood_sugar)),1)]),_:1}),l(i,{label:"其他血糖(mmol/L)",width:"120"},{default:n(({row:a})=>[_(k(N(a.other_blood_sugar)),1)]),_:1}),l(i,{label:"血压(mmHg)",width:"150"},{default:n(({row:a})=>[a.systolic_pressure&&a.diastolic_pressure?(V(),F("span",Te,k(a.systolic_pressure)+"/"+k(a.diastolic_pressure),1)):(V(),F("span",De,"-"))]),_:1}),l(i,{prop:"western_medicine",label:"西药","show-overflow-tooltip":""}),l(i,{prop:"insulin",label:"胰岛素","show-overflow-tooltip":""}),l(i,{prop:"remark",label:"备注","show-overflow-tooltip":""}),D.readOnly?O("",!0):(V(),H(i,{key:0,label:"操作",width:"150",fixed:"right"},{default:n(({row:a})=>[l(y,{link:"",type:"primary",onClick:Z=>z(a)},{default:n(()=>[...e[16]||(e[16]=[_("编辑",-1)])]),_:1},8,["onClick"]),l(y,{link:"",type:"danger",onClick:Z=>W(a)},{default:n(()=>[...e[17]||(e[17]=[_("删除",-1)])]),_:1},8,["onClick"])]),_:1}))]),_:1},8,["data"]),l(Q,{modelValue:s(c),"onUpdate:modelValue":e[13]||(e[13]=a=>A(c)?c.value=a:null),title:s($),width:"600px"},{footer:n(()=>[l(y,{onClick:e[12]||(e[12]=a=>c.value=!1)},{default:n(()=>[...e[23]||(e[23]=[_("取消",-1)])]),_:1}),l(y,{type:"primary",onClick:J,loading:s(R)},{default:n(()=>[...e[24]||(e[24]=[_("确定",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(X,{model:s(o),"label-width":"120px"},{default:n(()=>[l(r,{label:"记录日期",required:""},{default:n(()=>[l(x,{modelValue:s(o).record_date,"onUpdate:modelValue":e[2]||(e[2]=a=>s(o).record_date=a),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),l(r,{label:"记录时间"},{default:n(()=>[l(K,{modelValue:s(o).record_time,"onUpdate:modelValue":e[3]||(e[3]=a=>s(o).record_time=a),placeholder:"选择时间",format:"HH:mm","value-format":"HH:mm",class:"w-full"},null,8,["modelValue"])]),_:1}),l(r,{label:"空腹血糖"},{default:n(()=>[l(E,{modelValue:s(o).fasting_blood_sugar,"onUpdate:modelValue":e[4]||(e[4]=a=>s(o).fasting_blood_sugar=a),precision:2,step:.1,min:0,max:50,placeholder:"请输入空腹血糖"},null,8,["modelValue"]),e[18]||(e[18]=u("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),l(r,{label:"餐后2小时血糖"},{default:n(()=>[l(E,{modelValue:s(o).postprandial_blood_sugar,"onUpdate:modelValue":e[5]||(e[5]=a=>s(o).postprandial_blood_sugar=a),precision:2,step:.1,min:0,max:50,placeholder:"请输入餐后2小时血糖"},null,8,["modelValue"]),e[19]||(e[19]=u("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),l(r,{label:"其他血糖"},{default:n(()=>[l(T,{modelValue:s(o).other_blood_sugar,"onUpdate:modelValue":e[6]||(e[6]=a=>s(o).other_blood_sugar=a),placeholder:"请输入其他血糖",type:"number",maxlength:"10",onInput:G,style:{width:"200px"}},null,8,["modelValue"]),e[20]||(e[20]=u("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),l(r,{label:"收缩压(高压)"},{default:n(()=>[l(E,{modelValue:s(o).systolic_pressure,"onUpdate:modelValue":e[7]||(e[7]=a=>s(o).systolic_pressure=a),min:0,max:300,placeholder:"请输入收缩压"},null,8,["modelValue"]),e[21]||(e[21]=u("span",{class:"ml-2"},"mmHg",-1))]),_:1}),l(r,{label:"舒张压(低压)"},{default:n(()=>[l(E,{modelValue:s(o).diastolic_pressure,"onUpdate:modelValue":e[8]||(e[8]=a=>s(o).diastolic_pressure=a),min:0,max:200,placeholder:"请输入舒张压"},null,8,["modelValue"]),e[22]||(e[22]=u("span",{class:"ml-2"},"mmHg",-1))]),_:1}),l(r,{label:"西药"},{default:n(()=>[l(T,{modelValue:s(o).western_medicine,"onUpdate:modelValue":e[9]||(e[9]=a=>s(o).western_medicine=a),placeholder:"请输入西药"},null,8,["modelValue"])]),_:1}),l(r,{label:"胰岛素"},{default:n(()=>[l(T,{modelValue:s(o).insulin,"onUpdate:modelValue":e[10]||(e[10]=a=>s(o).insulin=a),placeholder:"请输入胰岛素"},null,8,["modelValue"])]),_:1}),l(r,{label:"备注"},{default:n(()=>[l(T,{modelValue:s(o).remark,"onUpdate:modelValue":e[11]||(e[11]=a=>s(o).remark=a),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Se=Ie(Ue,[["__scopeId","data-v-3a187401"]]);export{Se as default}; +import{o as ee,M as m,ap as le,aq as ae,R as Y,q as V,r as F,s as u,O as H,D as n,L as _,K as te,P as O,v as l,bi as oe,C as A,u as s,bh as se,az as ne,bj as de,bl as re,T as k,bk as ie,bd as ue,bb as pe,c6 as me,J as _e,aA as ce,aB as fe,p as ge,n as be,dk as ye}from"./.pnpm-CyuAWpdG.js";import{ai as ve,aj as Ve,ak as he,a0 as ke,a1 as we}from"./tcm-BSADvQNg.js";import{j as w,_ as Ie}from"./index-Bkarz3gO.js";const xe={class:"blood-record-list"},Ce={class:"mb-4"},Ee={class:"mb-4"},Te={key:0},De={key:1},Re=5,Ue=ee({__name:"BloodRecordList",props:{diagnosisId:{type:Number,default:0},patientId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},setup(D){const d=D,P=m([]),c=m(!1),R=m(!1),$=ge(()=>o.value.id?"编辑记录":"添加记录"),f=m(7),g=m(null),p=m({dates:[],fasting:[],postprandial_2h:[],other:[]}),U=m();let b=null,B=0;const o=m({id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",record_time:"",fasting_blood_sugar:0,postprandial_blood_sugar:0,other_blood_sugar:0,systolic_pressure:0,diastolic_pressure:0,western_medicine:"",insulin:"",remark:""});function N(t){if(t==null||t==="")return"-";const e=Number(String(t).trim());return!Number.isFinite(e)||e===0?"-":String(e.toFixed(2).replace(/\.?0+$/,""))}const h=async()=>{if(!(!d.diagnosisId&&!d.patientId))try{const t={diagnosis_id:d.diagnosisId,patient_id:d.patientId};f.value===0&&g.value?(t.start_date=Math.floor(g.value[0].getTime()/1e3),t.end_date=Math.floor(g.value[1].getTime()/1e3)):t.days=f.value;const e=await ve(t);p.value=e,L()}catch(t){console.error("获取趋势图数据失败:",t)}},j=()=>{f.value!==0&&(g.value=null),h()},L=()=>{be(()=>{setTimeout(()=>{if(!U.value)return;const t=U.value;if(t.clientWidth===0||t.clientHeight===0){BL(),100));return}B=0,b&&b.dispose(),b=ye(t);const e=(M,i)=>{const C=new Map;return M.forEach(r=>{C.set(r.date,r.value)}),i.map(r=>C.get(r)||null)},y=e(p.value.fasting,p.value.dates),v=e(p.value.postprandial_2h,p.value.dates),S=e(p.value.other,p.value.dates),x={tooltip:{trigger:"axis",axisPointer:{type:"cross"}},legend:{data:["空腹血糖","餐后2小时血糖","其他血糖"]},grid:{left:"3%",right:"4%",bottom:"3%",containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:p.value.dates},yAxis:{type:"value",name:"血糖值 (mmol/L)"},series:[{name:"空腹血糖",type:"line",data:y,smooth:!0,connectNulls:!0},{name:"餐后2小时血糖",type:"line",data:v,smooth:!0,connectNulls:!0},{name:"其他血糖",type:"line",data:S,smooth:!0,connectNulls:!0}]};b.setOption(x),b.resize()},100)})},I=async()=>{if(!(!d.diagnosisId&&!d.patientId))try{const t=await Ve({diagnosis_id:d.diagnosisId,patient_id:d.patientId});P.value=t}catch(t){console.error("获取记录失败:",t)}},q=()=>{o.value={id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",record_time:"",fasting_blood_sugar:0,postprandial_blood_sugar:0,other_blood_sugar:0,systolic_pressure:0,diastolic_pressure:0,western_medicine:"",insulin:"",remark:""},c.value=!0},z=t=>{o.value={...t,fasting_blood_sugar:parseFloat(t.fasting_blood_sugar)||0,postprandial_blood_sugar:parseFloat(t.postprandial_blood_sugar)||0,other_blood_sugar:parseFloat(t.other_blood_sugar)||0,systolic_pressure:parseInt(t.systolic_pressure)||0,diastolic_pressure:parseInt(t.diastolic_pressure)||0},c.value=!0},G=t=>{o.value.other_blood_sugar=t.replace(/[^\d.]/g,"")},W=async t=>{await w.confirm("确定要删除这条记录吗?");try{await he({id:t.id}),w.msgSuccess("删除成功"),I()}catch(e){console.error("删除失败:",e)}},J=async()=>{if(!o.value.record_date){w.msgWarning("请选择记录日期");return}R.value=!0;try{o.value.id?(await ke(o.value),w.msgSuccess("编辑成功")):(await we(o.value),w.msgSuccess("添加成功")),c.value=!1,I(),h()}catch(t){console.error("提交失败:",t)}finally{R.value=!1}};return le(()=>{setTimeout(()=>{I(),h()},500)}),ae(()=>{b&&b.dispose()}),Y(()=>[d.diagnosisId,d.patientId],()=>{I(),h()}),Y(()=>d.diagnosisId,t=>{t&&setTimeout(()=>{L()},500)}),(t,e)=>{const y=te,v=oe,S=se,x=ne,M=de,i=re,C=ie,r=pe,K=me,E=_e,T=ce,X=ue,Q=fe;return V(),F("div",xe,[u("div",Ce,[D.readOnly?O("",!0):(V(),H(y,{key:0,type:"primary",onClick:q},{default:n(()=>[...e[14]||(e[14]=[_("添加记录",-1)])]),_:1})),l(S,{modelValue:s(f),"onUpdate:modelValue":e[0]||(e[0]=a=>A(f)?f.value=a:null),onChange:j,class:"ml-2",style:{width:"150px"}},{default:n(()=>[l(v,{label:"最近7天",value:7}),l(v,{label:"最近30天",value:30}),l(v,{label:"最近90天",value:90}),l(v,{label:"最近一年",value:365}),l(v,{label:"自定义",value:0})]),_:1},8,["modelValue"]),s(f)===0?(V(),H(x,{key:1,modelValue:s(g),"onUpdate:modelValue":e[1]||(e[1]=a=>A(g)?g.value=a:null),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",onChange:h,class:"ml-2",style:{width:"300px"}},null,8,["modelValue"])):O("",!0)]),u("div",Ee,[l(M,null,{header:n(()=>[...e[15]||(e[15]=[u("div",{class:"card-header"},[u("span",null,"血糖趋势图")],-1)])]),default:n(()=>[u("div",{ref_key:"chartRef",ref:U,style:{width:"100%",height:"400px"}},null,512)]),_:1})]),l(C,{data:s(P),border:"",style:{width:"100%"}},{default:n(()=>[l(i,{prop:"record_date",label:"记录日期",width:"120"}),l(i,{prop:"record_time",label:"记录时间",width:"100"}),l(i,{label:"空腹血糖(mmol/L)",width:"120"},{default:n(({row:a})=>[_(k(N(a.fasting_blood_sugar)),1)]),_:1}),l(i,{label:"餐后2小时血糖(mmol/L)",width:"150"},{default:n(({row:a})=>[_(k(N(a.postprandial_blood_sugar)),1)]),_:1}),l(i,{label:"其他血糖(mmol/L)",width:"120"},{default:n(({row:a})=>[_(k(N(a.other_blood_sugar)),1)]),_:1}),l(i,{label:"血压(mmHg)",width:"150"},{default:n(({row:a})=>[a.systolic_pressure&&a.diastolic_pressure?(V(),F("span",Te,k(a.systolic_pressure)+"/"+k(a.diastolic_pressure),1)):(V(),F("span",De,"-"))]),_:1}),l(i,{prop:"western_medicine",label:"西药","show-overflow-tooltip":""}),l(i,{prop:"insulin",label:"胰岛素","show-overflow-tooltip":""}),l(i,{prop:"remark",label:"备注","show-overflow-tooltip":""}),D.readOnly?O("",!0):(V(),H(i,{key:0,label:"操作",width:"150",fixed:"right"},{default:n(({row:a})=>[l(y,{link:"",type:"primary",onClick:Z=>z(a)},{default:n(()=>[...e[16]||(e[16]=[_("编辑",-1)])]),_:1},8,["onClick"]),l(y,{link:"",type:"danger",onClick:Z=>W(a)},{default:n(()=>[...e[17]||(e[17]=[_("删除",-1)])]),_:1},8,["onClick"])]),_:1}))]),_:1},8,["data"]),l(Q,{modelValue:s(c),"onUpdate:modelValue":e[13]||(e[13]=a=>A(c)?c.value=a:null),title:s($),width:"600px"},{footer:n(()=>[l(y,{onClick:e[12]||(e[12]=a=>c.value=!1)},{default:n(()=>[...e[23]||(e[23]=[_("取消",-1)])]),_:1}),l(y,{type:"primary",onClick:J,loading:s(R)},{default:n(()=>[...e[24]||(e[24]=[_("确定",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(X,{model:s(o),"label-width":"120px"},{default:n(()=>[l(r,{label:"记录日期",required:""},{default:n(()=>[l(x,{modelValue:s(o).record_date,"onUpdate:modelValue":e[2]||(e[2]=a=>s(o).record_date=a),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),l(r,{label:"记录时间"},{default:n(()=>[l(K,{modelValue:s(o).record_time,"onUpdate:modelValue":e[3]||(e[3]=a=>s(o).record_time=a),placeholder:"选择时间",format:"HH:mm","value-format":"HH:mm",class:"w-full"},null,8,["modelValue"])]),_:1}),l(r,{label:"空腹血糖"},{default:n(()=>[l(E,{modelValue:s(o).fasting_blood_sugar,"onUpdate:modelValue":e[4]||(e[4]=a=>s(o).fasting_blood_sugar=a),precision:2,step:.1,min:0,max:50,placeholder:"请输入空腹血糖"},null,8,["modelValue"]),e[18]||(e[18]=u("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),l(r,{label:"餐后2小时血糖"},{default:n(()=>[l(E,{modelValue:s(o).postprandial_blood_sugar,"onUpdate:modelValue":e[5]||(e[5]=a=>s(o).postprandial_blood_sugar=a),precision:2,step:.1,min:0,max:50,placeholder:"请输入餐后2小时血糖"},null,8,["modelValue"]),e[19]||(e[19]=u("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),l(r,{label:"其他血糖"},{default:n(()=>[l(T,{modelValue:s(o).other_blood_sugar,"onUpdate:modelValue":e[6]||(e[6]=a=>s(o).other_blood_sugar=a),placeholder:"请输入其他血糖",type:"number",maxlength:"10",onInput:G,style:{width:"200px"}},null,8,["modelValue"]),e[20]||(e[20]=u("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),l(r,{label:"收缩压(高压)"},{default:n(()=>[l(E,{modelValue:s(o).systolic_pressure,"onUpdate:modelValue":e[7]||(e[7]=a=>s(o).systolic_pressure=a),min:0,max:300,placeholder:"请输入收缩压"},null,8,["modelValue"]),e[21]||(e[21]=u("span",{class:"ml-2"},"mmHg",-1))]),_:1}),l(r,{label:"舒张压(低压)"},{default:n(()=>[l(E,{modelValue:s(o).diastolic_pressure,"onUpdate:modelValue":e[8]||(e[8]=a=>s(o).diastolic_pressure=a),min:0,max:200,placeholder:"请输入舒张压"},null,8,["modelValue"]),e[22]||(e[22]=u("span",{class:"ml-2"},"mmHg",-1))]),_:1}),l(r,{label:"西药"},{default:n(()=>[l(T,{modelValue:s(o).western_medicine,"onUpdate:modelValue":e[9]||(e[9]=a=>s(o).western_medicine=a),placeholder:"请输入西药"},null,8,["modelValue"])]),_:1}),l(r,{label:"胰岛素"},{default:n(()=>[l(T,{modelValue:s(o).insulin,"onUpdate:modelValue":e[10]||(e[10]=a=>s(o).insulin=a),placeholder:"请输入胰岛素"},null,8,["modelValue"])]),_:1}),l(r,{label:"备注"},{default:n(()=>[l(T,{modelValue:s(o).remark,"onUpdate:modelValue":e[11]||(e[11]=a=>s(o).remark=a),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Se=Ie(Ue,[["__scopeId","data-v-3a187401"]]);export{Se as default}; diff --git a/server/public/admin/assets/CallRecordPanel-DFudUjln.js b/server/public/admin/assets/CallRecordPanel-PGnYdg0x.js similarity index 93% rename from server/public/admin/assets/CallRecordPanel-DFudUjln.js rename to server/public/admin/assets/CallRecordPanel-PGnYdg0x.js index ee7d7e8ea..8015b5aec 100644 --- a/server/public/admin/assets/CallRecordPanel-DFudUjln.js +++ b/server/public/admin/assets/CallRecordPanel-PGnYdg0x.js @@ -1 +1 @@ -import{o as N,dl as O,R as P,q as d,r as f,v as o,D as i,K as V,L as n,P as h,ac as D,O as w,bk as L,bl as z,T as u,s as y,bn as M,M as v}from"./.pnpm-CyuAWpdG.js";import j from"./RecordingPlaybackBlock-GbWd6PMw.js";import{U as x}from"./index-BU3OYnKm.js";import{j as c,_ as q}from"./index-Dxvz9lb1.js";import{al as K,am as k,an as A}from"./tcm-QAkeqQ9Q.js";import"./RecordingVideoPlayer-grUPRDCj.js";import"./file-CefRfHD9.js";const F={class:"call-record-panel"},G={key:0,class:"call-record-toolbar"},H={class:"call-record-empty"},J={class:"call-record-empty__desc"},Q={key:0,class:"text-primary"},W={key:1,class:"text-gray-400"},X=N({__name:"CallRecordPanel",props:{diagnosisId:{},readOnly:{type:Boolean,default:!1}},setup(_,{expose:R}){const r=_,p=v(!1),g=v([]),U=O("toolbarUploadRef"),m=async()=>{if(r.diagnosisId){p.value=!0;try{g.value=await K({diagnosis_id:r.diagnosisId})||[]}catch(e){console.error(e),g.value=[]}finally{p.value=!1}}};P(()=>r.diagnosisId,()=>{m()},{immediate:!0}),R({refresh:m});function C(e){return{1:"进行中",2:"已结束",3:"未接听",4:"已取消"}[e]??"—"}async function S(e){const t=b(e);if(!t){c.msgError("上传成功但未返回视频地址");return}try{const a=await A({diagnosis_id:r.diagnosisId});await k({diagnosis_id:r.diagnosisId,call_record_id:Number((a==null?void 0:a.id)||0),file_url:t}),c.msgSuccess("视频回放上传成功"),await m()}catch(a){c.msgError((a==null?void 0:a.message)||"写入回放失败")}}async function E(e,t){const a=b(t);if(!a){c.msgError("上传成功但未返回视频地址");return}try{await k({diagnosis_id:r.diagnosisId,call_record_id:Number(e.id||0),file_url:a}),c.msgSuccess("视频回放上传成功"),await m()}catch(l){c.msgError((l==null?void 0:l.message)||"写入回放失败")}}function b(e){var t,a;return String(((t=e==null?void 0:e.data)==null?void 0:t.uri)||((a=e==null?void 0:e.data)==null?void 0:a.url)||"").trim()}return(e,t)=>{const a=V,l=z,I=L,B=M;return d(),f("div",F,[_.readOnly?h("",!0):(d(),f("div",G,[o(x,{ref_key:"toolbarUploadRef",ref:U,type:"video",direct:"",multiple:!1,limit:1,"show-progress":!0,onSuccess:S},{default:i(()=>[o(a,{type:"primary"},{default:i(()=>[...t[0]||(t[0]=[n("上传视频",-1)])]),_:1})]),_:1},512)])),D((d(),w(I,{data:g.value,border:"",stripe:""},{empty:i(()=>[y("div",H,[t[1]||(t[1]=y("div",{class:"call-record-empty__title"},"暂无通话记录",-1)),y("div",J,u(_.readOnly?"暂无录制回放数据。":"现在可以直接点击上方“上传视频”。系统会自动生成一条默认通话记录来承载回放。"),1)])]),default:i(()=>[o(l,{label:"录制回放","min-width":"320"},{default:i(({row:s})=>[o(j,{"record-id":s.id,urls:s.recording_urls_list},null,8,["record-id","urls"])]),_:1}),o(l,{label:"开始时间",width:"170",prop:"start_time_text"}),o(l,{label:"结束时间",width:"170",prop:"end_time_text"}),o(l,{label:"通话类型",width:"100"},{default:i(({row:s})=>[n(u(s.call_type===1?"语音":"视频"),1)]),_:1}),o(l,{label:"房间号",width:"180"},{default:i(({row:s})=>[s.room_id?(d(),f("span",Q,u(s.room_id),1)):(d(),f("span",W,"—"))]),_:1}),o(l,{label:"时长",width:"110",prop:"duration_text"}),o(l,{label:"状态",width:"90"},{default:i(({row:s})=>[n(u(C(s.status)),1)]),_:1}),o(l,{label:"录制",width:"100"},{default:i(({row:s})=>[n(u(s.recording_status_text||"—"),1)]),_:1}),_.readOnly?h("",!0):(d(),w(l,{key:0,label:"上传回放",width:"180"},{default:i(({row:s})=>[o(x,{type:"video",direct:"",multiple:!1,limit:1,"show-progress":!0,onSuccess:T=>E(s,T)},{default:i(()=>[o(a,{type:"primary",plain:"",size:"small"},{default:i(()=>[...t[2]||(t[2]=[n("上传视频",-1)])]),_:1})]),_:1},8,["onSuccess"])]),_:1}))]),_:1},8,["data"])),[[B,p.value]])])}}}),sa=q(X,[["__scopeId","data-v-78d5c9e4"]]);export{sa as default}; +import{o as N,dl as O,R as P,q as d,r as f,v as o,D as i,K as V,L as n,P as h,ac as D,O as w,bk as L,bl as z,T as u,s as y,bn as M,M as v}from"./.pnpm-CyuAWpdG.js";import j from"./RecordingPlaybackBlock-DDHsYga7.js";import{U as x}from"./index-BJZwRQXE.js";import{j as c,_ as q}from"./index-Bkarz3gO.js";import{al as K,am as k,an as A}from"./tcm-BSADvQNg.js";import"./RecordingVideoPlayer-B0kkGDId.js";import"./file-BjbV-eNx.js";const F={class:"call-record-panel"},G={key:0,class:"call-record-toolbar"},H={class:"call-record-empty"},J={class:"call-record-empty__desc"},Q={key:0,class:"text-primary"},W={key:1,class:"text-gray-400"},X=N({__name:"CallRecordPanel",props:{diagnosisId:{},readOnly:{type:Boolean,default:!1}},setup(_,{expose:R}){const r=_,p=v(!1),g=v([]),U=O("toolbarUploadRef"),m=async()=>{if(r.diagnosisId){p.value=!0;try{g.value=await K({diagnosis_id:r.diagnosisId})||[]}catch(e){console.error(e),g.value=[]}finally{p.value=!1}}};P(()=>r.diagnosisId,()=>{m()},{immediate:!0}),R({refresh:m});function C(e){return{1:"进行中",2:"已结束",3:"未接听",4:"已取消"}[e]??"—"}async function S(e){const t=b(e);if(!t){c.msgError("上传成功但未返回视频地址");return}try{const a=await A({diagnosis_id:r.diagnosisId});await k({diagnosis_id:r.diagnosisId,call_record_id:Number((a==null?void 0:a.id)||0),file_url:t}),c.msgSuccess("视频回放上传成功"),await m()}catch(a){c.msgError((a==null?void 0:a.message)||"写入回放失败")}}async function E(e,t){const a=b(t);if(!a){c.msgError("上传成功但未返回视频地址");return}try{await k({diagnosis_id:r.diagnosisId,call_record_id:Number(e.id||0),file_url:a}),c.msgSuccess("视频回放上传成功"),await m()}catch(l){c.msgError((l==null?void 0:l.message)||"写入回放失败")}}function b(e){var t,a;return String(((t=e==null?void 0:e.data)==null?void 0:t.uri)||((a=e==null?void 0:e.data)==null?void 0:a.url)||"").trim()}return(e,t)=>{const a=V,l=z,I=L,B=M;return d(),f("div",F,[_.readOnly?h("",!0):(d(),f("div",G,[o(x,{ref_key:"toolbarUploadRef",ref:U,type:"video",direct:"",multiple:!1,limit:1,"show-progress":!0,onSuccess:S},{default:i(()=>[o(a,{type:"primary"},{default:i(()=>[...t[0]||(t[0]=[n("上传视频",-1)])]),_:1})]),_:1},512)])),D((d(),w(I,{data:g.value,border:"",stripe:""},{empty:i(()=>[y("div",H,[t[1]||(t[1]=y("div",{class:"call-record-empty__title"},"暂无通话记录",-1)),y("div",J,u(_.readOnly?"暂无录制回放数据。":"现在可以直接点击上方“上传视频”。系统会自动生成一条默认通话记录来承载回放。"),1)])]),default:i(()=>[o(l,{label:"录制回放","min-width":"320"},{default:i(({row:s})=>[o(j,{"record-id":s.id,urls:s.recording_urls_list},null,8,["record-id","urls"])]),_:1}),o(l,{label:"开始时间",width:"170",prop:"start_time_text"}),o(l,{label:"结束时间",width:"170",prop:"end_time_text"}),o(l,{label:"通话类型",width:"100"},{default:i(({row:s})=>[n(u(s.call_type===1?"语音":"视频"),1)]),_:1}),o(l,{label:"房间号",width:"180"},{default:i(({row:s})=>[s.room_id?(d(),f("span",Q,u(s.room_id),1)):(d(),f("span",W,"—"))]),_:1}),o(l,{label:"时长",width:"110",prop:"duration_text"}),o(l,{label:"状态",width:"90"},{default:i(({row:s})=>[n(u(C(s.status)),1)]),_:1}),o(l,{label:"录制",width:"100"},{default:i(({row:s})=>[n(u(s.recording_status_text||"—"),1)]),_:1}),_.readOnly?h("",!0):(d(),w(l,{key:0,label:"上传回放",width:"180"},{default:i(({row:s})=>[o(x,{type:"video",direct:"",multiple:!1,limit:1,"show-progress":!0,onSuccess:T=>E(s,T)},{default:i(()=>[o(a,{type:"primary",plain:"",size:"small"},{default:i(()=>[...t[2]||(t[2]=[n("上传视频",-1)])]),_:1})]),_:1},8,["onSuccess"])]),_:1}))]),_:1},8,["data"])),[[B,p.value]])])}}}),sa=q(X,[["__scopeId","data-v-78d5c9e4"]]);export{sa as default}; diff --git a/server/public/admin/assets/CaseRecordList-Bdp996ss.js b/server/public/admin/assets/CaseRecordList-2_yvVfnZ.js similarity index 95% rename from server/public/admin/assets/CaseRecordList-Bdp996ss.js rename to server/public/admin/assets/CaseRecordList-2_yvVfnZ.js index 05567d819..5a8074249 100644 --- a/server/public/admin/assets/CaseRecordList-Bdp996ss.js +++ b/server/public/admin/assets/CaseRecordList-2_yvVfnZ.js @@ -1 +1 @@ -import{o as T,ap as V,R as I,q as o,r as l,v as a,K as N,D as n,L as c,P as k,ac as z,bn as M,u as p,O as f,bl as O,T as _,F as P,bm as F,s as R,bk as j,bC as A,M as w}from"./.pnpm-CyuAWpdG.js";import{ao as q}from"./tcm-QAkeqQ9Q.js";import{_ as H}from"./index-Dxvz9lb1.js";const K={class:"case-record-list"},Y={key:0,class:"mb-3 flex justify-end"},G={key:0},J={key:1,class:"text-gray-400"},Q={class:"void-detail text-xs text-gray-500 mt-1"},U=T({__name:"CaseRecordList",props:{diagnosisId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},emits:["view","openPrescription"],setup(y,{expose:x,emit:C}){const m=y,b=C,r=w([]),d=w(!1),u=async()=>{if(m.diagnosisId){d.value=!0;try{const t=await q({diagnosis_id:m.diagnosisId});r.value=Array.isArray(t)?t:[]}catch(t){console.error("获取病历记录失败:",t),r.value=[]}finally{d.value=!1}}},S=t=>{if(!t)return"";const e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`},$=t=>{b("view",t)},B=()=>{b("openPrescription")};return V(()=>{u()}),I(()=>m.diagnosisId,()=>{u()}),x({refresh:u}),(t,e)=>{const h=N,i=O,v=F,E=j,D=A,L=M;return o(),l("div",K,[y.readOnly?k("",!0):(o(),l("div",Y,[a(h,{type:"primary",size:"small",onClick:B},{default:n(()=>[...e[0]||(e[0]=[c("开方",-1)])]),_:1})])),z((o(),f(E,{data:p(r),border:""},{default:n(()=>[a(i,{prop:"prescription_date",label:"就诊日期",width:"120"}),a(i,{prop:"visit_no",label:"门诊号",width:"120"}),a(i,{prop:"clinical_diagnosis",label:"临床诊断","min-width":"160","show-overflow-tooltip":""}),a(i,{label:"处方摘要","min-width":"180"},{default:n(({row:s})=>[s.herbs&&s.herbs.length?(o(),l("span",G,_(s.herbs.slice(0,3).map(g=>`${g.name}${g.dosage}克`).join("、"))+_(s.herbs.length>3?"...":""),1)):(o(),l("span",J,"—"))]),_:1}),a(i,{prop:"doctor_name",label:"医师",width:"90","show-overflow-tooltip":""}),a(i,{label:"状态",width:"140",align:"center"},{default:n(({row:s})=>[s.void_status===1?(o(),l(P,{key:0},[a(v,{type:"danger",size:"small"},{default:n(()=>[...e[1]||(e[1]=[c("已作废",-1)])]),_:1}),R("div",Q,_(s.void_by_name||"—")+" "+_(S(s.void_time)),1)],64)):(o(),f(v,{key:1,type:"success",size:"small"},{default:n(()=>[...e[2]||(e[2]=[c("正常",-1)])]),_:1}))]),_:1}),a(i,{label:"操作",width:"120",fixed:"right"},{default:n(({row:s})=>[a(h,{link:"",type:"primary",size:"small",onClick:g=>$(s)},{default:n(()=>[...e[3]||(e[3]=[c(" 查看 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[L,p(d)]]),!p(d)&&p(r).length===0?(o(),f(D,{key:1,description:"暂无病历记录,开方后会自动显示",class:"mt-4"})):k("",!0)])}}}),ee=H(U,[["__scopeId","data-v-043d2738"]]);export{ee as default}; +import{o as T,ap as V,R as I,q as o,r as l,v as a,K as N,D as n,L as c,P as k,ac as z,bn as M,u as p,O as f,bl as O,T as _,F as P,bm as F,s as R,bk as j,bC as A,M as w}from"./.pnpm-CyuAWpdG.js";import{ao as q}from"./tcm-BSADvQNg.js";import{_ as H}from"./index-Bkarz3gO.js";const K={class:"case-record-list"},Y={key:0,class:"mb-3 flex justify-end"},G={key:0},J={key:1,class:"text-gray-400"},Q={class:"void-detail text-xs text-gray-500 mt-1"},U=T({__name:"CaseRecordList",props:{diagnosisId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},emits:["view","openPrescription"],setup(y,{expose:x,emit:C}){const m=y,b=C,r=w([]),d=w(!1),u=async()=>{if(m.diagnosisId){d.value=!0;try{const t=await q({diagnosis_id:m.diagnosisId});r.value=Array.isArray(t)?t:[]}catch(t){console.error("获取病历记录失败:",t),r.value=[]}finally{d.value=!1}}},S=t=>{if(!t)return"";const e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`},$=t=>{b("view",t)},B=()=>{b("openPrescription")};return V(()=>{u()}),I(()=>m.diagnosisId,()=>{u()}),x({refresh:u}),(t,e)=>{const h=N,i=O,v=F,E=j,D=A,L=M;return o(),l("div",K,[y.readOnly?k("",!0):(o(),l("div",Y,[a(h,{type:"primary",size:"small",onClick:B},{default:n(()=>[...e[0]||(e[0]=[c("开方",-1)])]),_:1})])),z((o(),f(E,{data:p(r),border:""},{default:n(()=>[a(i,{prop:"prescription_date",label:"就诊日期",width:"120"}),a(i,{prop:"visit_no",label:"门诊号",width:"120"}),a(i,{prop:"clinical_diagnosis",label:"临床诊断","min-width":"160","show-overflow-tooltip":""}),a(i,{label:"处方摘要","min-width":"180"},{default:n(({row:s})=>[s.herbs&&s.herbs.length?(o(),l("span",G,_(s.herbs.slice(0,3).map(g=>`${g.name}${g.dosage}克`).join("、"))+_(s.herbs.length>3?"...":""),1)):(o(),l("span",J,"—"))]),_:1}),a(i,{prop:"doctor_name",label:"医师",width:"90","show-overflow-tooltip":""}),a(i,{label:"状态",width:"140",align:"center"},{default:n(({row:s})=>[s.void_status===1?(o(),l(P,{key:0},[a(v,{type:"danger",size:"small"},{default:n(()=>[...e[1]||(e[1]=[c("已作废",-1)])]),_:1}),R("div",Q,_(s.void_by_name||"—")+" "+_(S(s.void_time)),1)],64)):(o(),f(v,{key:1,type:"success",size:"small"},{default:n(()=>[...e[2]||(e[2]=[c("正常",-1)])]),_:1}))]),_:1}),a(i,{label:"操作",width:"120",fixed:"right"},{default:n(({row:s})=>[a(h,{link:"",type:"primary",size:"small",onClick:g=>$(s)},{default:n(()=>[...e[3]||(e[3]=[c(" 查看 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[L,p(d)]]),!p(d)&&p(r).length===0?(o(),f(D,{key:1,description:"暂无病历记录,开方后会自动显示",class:"mt-4"})):k("",!0)])}}}),ee=H(U,[["__scopeId","data-v-043d2738"]]);export{ee as default}; diff --git a/server/public/admin/assets/CohortReport-ziQtuRzm.js b/server/public/admin/assets/CohortReport-CBHGIK9p.js similarity index 91% rename from server/public/admin/assets/CohortReport-ziQtuRzm.js rename to server/public/admin/assets/CohortReport-CBHGIK9p.js index 54d33262f..4bb5ee0b0 100644 --- a/server/public/admin/assets/CohortReport-ziQtuRzm.js +++ b/server/public/admin/assets/CohortReport-CBHGIK9p.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-QAkeqQ9Q.js","assets/index-Dxvz9lb1.js","assets/index-B3vHLAW8.css","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-B4rggqa1.css","assets/edit-DFFSwWxS.js","assets/perm-DOfZAzJJ.js","assets/DailyMatrix-BSZy3g0c.js","assets/picker-BDO86vcM.js","assets/index-BnfLT5cB.js","assets/index-B3imPWFk.css","assets/index-yD39j6dM.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-ClBYIwNX.js","assets/index-D0f1Mn00.css","assets/index-BU3OYnKm.js","assets/file-CefRfHD9.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-CE1isNg2.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-GXQTu6xF.js","assets/FollowupAudioReview-92Fgd7wW.js","assets/FollowupAudioField-BG0mRnT5.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-Bdp996ss.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-DFudUjln.js","assets/RecordingPlaybackBlock-GbWd6PMw.js","assets/RecordingVideoPlayer-grUPRDCj.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CafeXQX5.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-0TFZiCkF.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-C2wB-h-D.js","assets/doctor-8vo_5fa4.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-DDh0aI3_.js","assets/patient-Bz8-LT2R.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-BP2alDvZ.js","assets/PatientOrderList-D8-uh2iu.css","assets/index-Cis-_1uh.js","assets/index-Cf6ygfGC.js","assets/medicine-EUKQYFsM.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-DT7CSmCp.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]); -import{o as tt,M as d,ap as lt,by as at,q as o,r as _,v as a,D as n,bd as nt,bb as it,az as st,bL as ot,bh as rt,F as A,G as de,O as m,bi as ut,K as dt,L as v,bZ as ct,s as u,T as i,w as pt,u as $,ci as P,bo as _t,P as O,bj as vt,ae as ft,ac as Ne,bk as mt,bl as ht,bt,a1 as gt,bn as yt,aB as kt,cd as Re,al as Se,p as h}from"./.pnpm-CyuAWpdG.js";import{x as $t,z as Ct,A as wt,B as Dt}from"./stats-Bao68QGi.js";import{h as le}from"./perm-DOfZAzJJ.js";import{_ as Et}from"./index-Dxvz9lb1.js";const Vt={class:"revisit-rate-page"},xt={class:"rate-caliber-trigger"},Tt={class:"rate-caliber"},Ot={key:0},Lt={key:1},Nt={class:"rate-kpi-grid"},Rt=["onClick"],St={class:"rate-kpi-label"},It={class:"rate-kpi-value"},At={key:0,class:"rate-kpi-sub"},Pt={class:"rate-card-header"},qt={class:"rate-card-hint"},Bt={key:0,class:"rate-card-hint"},Mt={class:"rate-card-hint mt-2"},Ft={key:0,class:"rate-dept-cell"},Ut={class:"rate-dept-count"},Yt={key:1},zt={key:1},Ht={key:1},Kt={class:"rate-cell"},Qt={class:"rate-cell-main"},jt={class:"rate-cell-sub"},Gt={key:1},Zt={class:"rate-cell"},Jt={class:"rate-cell-main"},Wt={class:"rate-cell-sub"},Xt={class:"rate-detail-hint"},el={key:1},tl={key:1},ll={key:1},al={class:"rate-detail-footer"},nl=tt({__name:"CohortReport",props:{cohortType:{}},setup(Ie){const q=Ie,Ae=Re(()=>Se(()=>import("./PrescriptionOrderDetailDrawer-v90LlSLZ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),Pe=Re(()=>Se(()=>import("./edit-DFFSwWxS.js"),__vite__mapDeps([8,1,2,3,4,5,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,0,6,7,55,56,57,58,59,60,61,62,63,64,65]))),f=h(()=>q.cohortType==="inherit"),y=h(()=>f.value?"继承数":"新指派数"),D=h(()=>f.value?"inherit_count":"assigned_count"),L=h(()=>f.value?"继承日期":"指派日期"),qe=h(()=>f.value?"继承复诊接诊率":"按指派周期复诊率"),Be=h(()=>f.value?"按继承日期范围选择患者,订单累计至查询当天。继承后第 1 笔有效订单算二诊,第 2 笔算三诊;忽略继承前全局诊次及偏移,新指派患者另页统计。":"按新指派日期范围选择患者,订单累计至查询当天,跨月继续累计。继承患者在独立的「继承复诊接诊率」页面统计。"),ce=h(()=>f.value?"stats.revisitInheritRate":"stats.revisitAssignRate"),ae=h(()=>le([`${ce.value}/assignLines`])),B=h(()=>le([`${ce.value}/visitOrderLines`])),pe=le(["tcm.prescriptionOrder/detail"]),ne=le(["tcm.diagnosis/detail"]),_e=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,ve=()=>{const e=new Date;return[_e(new Date(e.getFullYear(),e.getMonth(),1)),_e(e)]},E=d(ve()),V=d(),x=d(),N=d(!1),G=d(""),ie=d([]),Z=d(null),se=d([2,3,4]),M=d(""),T=d(null);let F=0,C=!1;const Me=h(()=>T.value?`${T.value.start_date} 至 ${T.value.end_date}`:`${E.value[0]} 至 ${E.value[1]}`),Fe=()=>({start_date:E.value[0],end_date:E.value[1],dept_ids:V.value?String(V.value):"",assistant_id:x.value||void 0}),oe=d([]),fe=d([]),re=d(!1),J=d(""),Ue={value:"id",label:"name",children:"children"},Ye=h(()=>{const e=new Map;oe.value.forEach(r=>e.set(r.id,{...r,children:[]}));const l=[];e.forEach(r=>{const p=e.get(r.pid);p&&p!==r?p.children.push(r):l.push(r)});const s=r=>{var p;(p=r.children)!=null&&p.length?r.children.forEach(s):delete r.children};return l.forEach(s),l}),me=h(()=>{if(!V.value)return null;const e=new Set([Number(V.value)]);let l=!0;for(;l;)l=!1,oe.value.forEach(s=>{e.has(s.pid)&&!e.has(s.id)&&(e.add(s.id),l=!0)});return e}),he=h(()=>fe.value.filter(e=>!me.value||me.value.has(e.dept_id))),ze=()=>{x.value&&!he.value.some(e=>e.id===x.value)&&(x.value=void 0),R()},He=async()=>{re.value=!0,J.value="";try{const e=await $t(q.cohortType);if(C)return;oe.value=((e==null?void 0:e.rows)??[]).map(l=>({...l,id:Number(l.id),pid:Number(l.pid)})),fe.value=((e==null?void 0:e.assistants)??[]).map(l=>({...l,id:Number(l.id),dept_id:Number(l.dept_id)}))}catch{C||(J.value="部门及医助选项加载失败,请刷新页面重试。")}finally{C||(re.value=!1)}},be=["零","一","二","三","四","五","六","七","八","九","十"],k=e=>e===0?"复诊合计":e>=1&&e<=10?`${be[e]}诊`:e>10&&e<20?`十${be[e-10]}诊`:`${e}诊`,Ke=e=>f.value?`所选继承患者在继承后的第 ${e-1} 笔有效订单数,累计至查询当天;不使用继承前全局诊次和偏移`:`所选新指派患者的${k(e)}有效订单数,从对应指派后累计至查询当天`,U=e=>e==null?"—":`${e}%`,ue=(e,l)=>`${Number(e[`${l}_count`]??0)} / ${e[`${l}_den`]??"—"}`,Qe=h(()=>{const e=Z.value,l=[{key:"cohort",label:y.value,value:e?String(e[D.value]??0):"—",sub:`按${L.value}范围选择患者`,clickable:!!(ae.value&&e&&e[D.value]>0),onClick:()=>void De(null)}];return se.value.forEach(s=>l.push({key:`visit${s}`,label:`${k(s)}接诊率`,value:e?U(e[`visit${s}_rate`]):"—",sub:e?`${k(s)}下单 ${e[`visit${s}_count`]??0} 单 / 分母 ${e[`visit${s}_den`]??"—"}`:"",clickable:!!(B.value&&e&&e[`visit${s}_count`]>0),onClick:()=>void ee(s,null)})),l.push({key:"visit_all",label:"复诊合计接诊率",value:e?U(e.visit_all_rate):"—",sub:e?`复诊下单 ${e.visit_all_count??0} 单 / 分母 ${e.visit_all_den??"—"}`:"",clickable:!!(B.value&&e&&e.visit_all_count>0),onClick:()=>void ee(0,null)}),l}),je=({columns:e})=>e.map((l,s)=>{if(s===0)return"合计";const r=Z.value;if(!r)return"";const p=l.property||"";if(p===D.value)return String(r[p]??0);const w=/^visit(\d+|_all)_(count|rate)$/.exec(p);return w?w[2]==="rate"?`${U(r[p])}(${ue(r,`visit${w[1]}`)})`:String(r[p]??0):""}),R=async()=>{const e=++F;Ce(),Y.value=!1,T.value=null,ie.value=[],Z.value=null,M.value="",G.value="",N.value=!0;const l=Fe();try{const s=await Ct(l,q.cohortType);if(C||e!==F)return;ie.value=(s==null?void 0:s.rows)??[],Z.value=(s==null?void 0:s.total)??null,M.value=(s==null?void 0:s.observed_until)??"";const r=Array.isArray(s==null?void 0:s.slots)?s.slots.map(Number):[];se.value=r.length?[...new Set(r.filter(p=>Number.isInteger(p)&&p>=2&&p<=50))].sort((p,w)=>p-w):[2,3,4],T.value={...l}}catch{!C&&e===F&&(G.value="报表加载失败,请重新查询。")}finally{!C&&e===F&&(N.value=!1)}},Y=d(!1),ge=d("assign"),ye=d(""),ke=d(""),W=d(!1),z=d(""),H=d([]),X=d(0),$e=d(2);let S=0;const Ce=()=>{++S,W.value=!1,H.value=[],X.value=0,z.value=""},Ge=e=>e?e.is_dept?{dept_id:e.dept_id,label:e.dept_name}:{scope_assistant_id:e.assistant_id,label:e.assistant_name||""}:{label:"合计"},we=async(e,l,s)=>{if(N.value||!T.value||(e==="assign"?!ae.value:!B.value))return;const r={...T.value},{label:p,...w}=Ge(s),K=++S;ge.value=e,$e.value=l,ye.value=`${p} · ${e==="assign"?`${y.value}明细`:`${k(l)}订单明细`}(${r.start_date} 至 ${r.end_date})`,ke.value=`${L.value}:${r.start_date} 至 ${r.end_date};订单统计截至:${M.value||"查询当天"}${f.value&&e==="orders"?"。继承后首笔有效订单算二诊,全局诊次仅供参考。":"。"}`,H.value=[],X.value=0,z.value="",W.value=!0,Y.value=!0;try{const Q={...r,...w},b=e==="assign"?await wt(Q,q.cohortType):await Dt({...Q,slot:l},q.cohortType);if(C||K!==S||!Y.value)return;H.value=(b==null?void 0:b.rows)??[],X.value=Number((b==null?void 0:b.count)??H.value.length)}catch{!C&&K===S&&(z.value="明细加载失败,请关闭后重试。")}finally{!C&&K===S&&(W.value=!1)}},De=e=>we("assign",0,e),ee=(e,l)=>we("orders",e,l),Ee=d(null),Ze=e=>{var l;pe&&e&&((l=Ee.value)==null||l.open(e))},Ve=d(null),xe=e=>{var l;ne&&e&&((l=Ve.value)==null||l.openViewOnly(e))},Je=()=>{E.value=ve(),V.value=void 0,x.value=void 0,R()};return lt(()=>{He(),R()}),at(()=>{C=!0,++F,++S}),(e,l)=>{const s=st,r=it,p=ot,w=ut,K=rt,Q=dt,b=pt,We=ct,Xe=nt,te=_t,Te=vt,c=ht,j=gt,I=bt,Oe=mt,et=kt,Le=yt;return o(),_("div",Vt,[a(Te,{class:"!border-none",shadow:"never"},{default:n(()=>[a(Xe,{inline:!0,class:"rate-filter-form"},{default:n(()=>[a(r,{label:L.value},{default:n(()=>[a(s,{modelValue:E.value,"onUpdate:modelValue":l[0]||(l[0]=t=>E.value=t),type:"daterange","value-format":"YYYY-MM-DD","start-placeholder":"开始日期","end-placeholder":"结束日期","range-separator":"至",clearable:!1,style:{width:"280px"},onChange:R},null,8,["modelValue"])]),_:1},8,["label"]),a(r,{label:"部门"},{default:n(()=>[a(p,{modelValue:V.value,"onUpdate:modelValue":l[1]||(l[1]=t=>V.value=t),data:Ye.value,placeholder:"二中心(全部)",clearable:"",filterable:"","check-strictly":"","node-key":"id","default-expand-all":!0,props:Ue,style:{width:"210px"},onChange:ze},null,8,["modelValue","data"])]),_:1}),a(r,{label:"医助"},{default:n(()=>[a(K,{modelValue:x.value,"onUpdate:modelValue":l[2]||(l[2]=t=>x.value=t),placeholder:"全部医助",filterable:"",clearable:"",loading:re.value,style:{width:"180px"},onChange:R},{default:n(()=>[(o(!0),_(A,null,de(he.value,t=>(o(),m(w,{key:t.id,label:t.name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),a(r,null,{default:n(()=>[a(Q,{type:"primary",loading:N.value,onClick:R},{default:n(()=>[...l[4]||(l[4]=[v("查询",-1)])]),_:1},8,["loading"]),a(Q,{disabled:N.value,onClick:Je},{default:n(()=>[...l[5]||(l[5]=[v("重置",-1)])]),_:1},8,["disabled"])]),_:1}),a(r,null,{default:n(()=>[a(We,{placement:"bottom-start",width:540,trigger:"hover"},{reference:n(()=>[u("span",xt,[a(b,null,{default:n(()=>[a($(P))]),_:1}),l[6]||(l[6]=v("统计口径",-1))])]),default:n(()=>[u("div",Tt,[u("p",null,[u("b",null,i(y.value),1),v(":按所选"+i(L.value)+"范围确定患者,订单从对应指派后累计至查询当天;结束日期允许选择未来日期,但未来订单不会提前计入。 ",1)]),f.value?(o(),_("p",Ot,[...l[7]||(l[7]=[u("b",null,"继承诊次重新起算",-1),v(":继承后的第 1 笔有效订单算二诊,第 2 笔算三诊,依次递增;不使用继承前的全局诊次,也不叠加诊次偏移。只统计继承患者,不混入新指派患者。 ",-1)])])):(o(),_("p",Lt," 只统计新指派患者,不混入继承患者。继承患者在独立的「继承复诊接诊率」页面统计。 ")),u("p",null,[l[8]||(l[8]=u("b",null,"N 诊接诊率",-1)),v(" = N 诊单数 ÷ 本页"+i(y.value)+";分母为 0 显示「—」。",1),l[9]||(l[9]=u("b",null,"复诊合计接诊率",-1)),v(" = 复诊合计单数 ÷ 本页"+i(y.value)+",表示人均复诊成交单数,可超过 100%。 ",1)]),l[10]||(l[10]=u("p",null," 订单仅计入有效业务订单,剔除已取消 / 拒收 / 退款;归属按服务端的患者持有记录计算。医助按人事部门归组;仅统计「二中心」及其组织下级,选定部门时包含其下级。 ",-1)),l[11]||(l[11]=u("p",null," 部门行和合计行按诊单去重,不能直接将医助行相加。灰字为「单数 / 分母」。 ",-1))])]),_:1})]),_:1})]),_:1}),a(te,{class:"mt-3",type:"info",closable:!1,"show-icon":"",title:Be.value},null,8,["title"]),J.value?(o(),m(te,{key:0,class:"mt-3",type:"warning",title:J.value,closable:!1},null,8,["title"])):O("",!0),G.value?(o(),m(te,{key:1,class:"mt-3",type:"error",title:G.value,closable:!1},null,8,["title"])):O("",!0)]),_:1}),u("div",Nt,[(o(!0),_(A,null,de(Qe.value,t=>(o(),_("div",{key:t.key,class:ft(["rate-kpi-card",{"is-clickable":t.clickable}]),onClick:g=>t.clickable&&t.onClick()},[u("div",St,i(t.label),1),u("div",It,i(t.value),1),t.sub?(o(),_("div",At,i(t.sub),1)):O("",!0)],10,Rt))),128))]),a(Te,{class:"!border-none mt-4",shadow:"never"},{header:n(()=>[u("div",Pt,[u("span",null,i(qe.value)+" · 部门 / 医助明细",1),u("span",qt,i(L.value)+":"+i(Me.value),1),M.value?(o(),_("span",Bt,"订单统计截至:"+i(M.value),1)):O("",!0)]),u("div",Mt," 点击"+i(y.value)+"、各诊次单数可查看患者与订单;底栏合计按诊单去重。 ",1)]),default:n(()=>[Ne((o(),m(Oe,{data:ie.value,size:"small",border:"","row-key":"row_key","tree-props":{children:"children"},"default-expand-all":!0,"show-summary":"","summary-method":je},{default:n(()=>[a(c,{label:"部门 / 医助","min-width":"200",fixed:""},{default:n(({row:t})=>[t.is_dept?(o(),_("span",Ft,[v(i(t.dept_name),1),u("span",Ut,i(t.assistant_count)+" 人",1)])):(o(),_("span",Yt,i(t.assistant_name),1))]),_:1}),a(c,{prop:D.value,label:y.value,"min-width":"100",align:"right"},{header:n(()=>[u("span",null,i(y.value),1),a(j,{effect:"dark",placement:"top",content:`所选${L.value}范围内的${y.value},部门和合计按诊单去重`},{default:n(()=>[a(b,{class:"rate-th-hint"},{default:n(()=>[a($(P))]),_:1})]),_:1},8,["content"])]),default:n(({row:t})=>[ae.value&&t[D.value]>0?(o(),m(I,{key:0,type:"primary",underline:!1,onClick:g=>De(t)},{default:n(()=>[v(i(t[D.value]),1)]),_:2},1032,["onClick"])):(o(),_("span",zt,i(t[D.value]??0),1))]),_:1},8,["prop","label"]),(o(!0),_(A,null,de(se.value,t=>(o(),_(A,{key:t},[a(c,{prop:`visit${t}_count`,label:`${k(t)}单数`,"min-width":"96",align:"right"},{header:n(()=>[u("span",null,i(k(t))+"单数",1),a(j,{effect:"dark",placement:"top",content:Ke(t)},{default:n(()=>[a(b,{class:"rate-th-hint"},{default:n(()=>[a($(P))]),_:1})]),_:1},8,["content"])]),default:n(({row:g})=>[B.value&&g[`visit${t}_count`]>0?(o(),m(I,{key:0,type:"primary",underline:!1,onClick:il=>ee(t,g)},{default:n(()=>[v(i(g[`visit${t}_count`]),1)]),_:2},1032,["onClick"])):(o(),_("span",Ht,i(g[`visit${t}_count`]??0),1))]),_:2},1032,["prop","label"]),a(c,{prop:`visit${t}_rate`,label:`${k(t)}接诊率`,"min-width":"110",align:"right"},{header:n(()=>[u("span",null,i(k(t))+"接诊率",1),a(j,{effect:"dark",placement:"top",content:`${k(t)}单数 ÷ ${y.value};分母为 0 显示「—」`},{default:n(()=>[a(b,{class:"rate-th-hint"},{default:n(()=>[a($(P))]),_:1})]),_:1},8,["content"])]),default:n(({row:g})=>[u("div",Kt,[u("span",Qt,i(U(g[`visit${t}_rate`])),1),u("span",jt,i(ue(g,`visit${t}`)),1)])]),_:2},1032,["prop","label"])],64))),128)),a(c,{prop:"visit_all_count",label:"复诊合计单数","min-width":"110",align:"right"},{header:n(()=>[l[12]||(l[12]=u("span",null,"复诊合计单数",-1)),a(j,{effect:"dark",placement:"top",content:"所选患者从对应指派后累计至查询当天的全部复诊订单数"},{default:n(()=>[a(b,{class:"rate-th-hint"},{default:n(()=>[a($(P))]),_:1})]),_:1})]),default:n(({row:t})=>[B.value&&t.visit_all_count>0?(o(),m(I,{key:0,type:"primary",underline:!1,onClick:g=>ee(0,t)},{default:n(()=>[v(i(t.visit_all_count),1)]),_:2},1032,["onClick"])):(o(),_("span",Gt,i(t.visit_all_count??0),1))]),_:1}),a(c,{prop:"visit_all_rate",label:"复诊合计接诊率","min-width":"128",align:"right"},{header:n(()=>[l[13]||(l[13]=u("span",null,"复诊合计接诊率",-1)),a(j,{effect:"dark",placement:"top",content:`复诊合计单数 ÷ ${y.value};表示人均复诊成交单数,可超过 100%`},{default:n(()=>[a(b,{class:"rate-th-hint"},{default:n(()=>[a($(P))]),_:1})]),_:1},8,["content"])]),default:n(({row:t})=>[u("div",Zt,[u("span",Jt,i(U(t.visit_all_rate)),1),u("span",Wt,i(ue(t,"visit_all")),1)])]),_:1})]),_:1},8,["data"])),[[Le,N.value]])]),_:1}),a(et,{modelValue:Y.value,"onUpdate:modelValue":l[3]||(l[3]=t=>Y.value=t),title:ye.value,width:"1080px",top:"6vh","destroy-on-close":"",onClose:Ce},{default:n(()=>[u("p",Xt,i(ke.value),1),z.value?(o(),m(te,{key:0,class:"mb-3",type:"error",title:z.value,closable:!1},null,8,["title"])):O("",!0),Ne((o(),m(Oe,{data:H.value,size:"small",border:"",stripe:"","max-height":"60vh"},{default:n(()=>[ge.value==="assign"?(o(),_(A,{key:0},[a(c,{prop:"diagnosis_id",label:"诊单ID",width:"90"}),a(c,{prop:"patient_name",label:"患者","min-width":"100"},{default:n(({row:t})=>[$(ne)&&t.diagnosis_id?(o(),m(I,{key:0,type:"primary",underline:!1,onClick:g=>xe(t.diagnosis_id)},{default:n(()=>[v(i(t.patient_name||`诊单#${t.diagnosis_id}`),1)]),_:2},1032,["onClick"])):(o(),_("span",el,i(t.patient_name||"—"),1))]),_:1}),a(c,{prop:"patient_phone",label:"联系电话","min-width":"120"},{default:n(({row:t})=>[v(i(t.patient_phone||"—"),1)]),_:1}),a(c,{prop:"assistant_names",label:f.value?"继承医助":"被指派医助","min-width":"140","show-overflow-tooltip":""},null,8,["label"]),a(c,{prop:"assign_count",label:f.value?"范围内继承次数":"范围内指派次数",width:"120",align:"right"},null,8,["label"]),a(c,{prop:"first_assign_time_text",label:f.value?"首次继承时间":"首次指派时间","min-width":"160"},null,8,["label"]),a(c,{prop:"last_assign_time_text",label:f.value?"最近继承时间":"最近指派时间","min-width":"160"},null,8,["label"])],64)):(o(),_(A,{key:1},[a(c,{prop:"order_no",label:"订单号","min-width":"180","show-overflow-tooltip":""},{default:n(({row:t})=>[$(pe)&&t.order_id?(o(),m(I,{key:0,type:"primary",underline:!1,onClick:g=>Ze(t.order_id)},{default:n(()=>[v(i(t.order_no||`#${t.order_id}`),1)]),_:2},1032,["onClick"])):(o(),_("span",tl,i(t.order_no||`#${t.order_id}`),1))]),_:1}),$e.value===0||f.value?(o(),m(c,{key:0,prop:"visit_slot",label:f.value?"继承后诊次":"诊次",width:"100",align:"center"},{default:n(({row:t})=>[v(i(k(Number(t.visit_slot))),1)]),_:1},8,["label"])):O("",!0),f.value?(o(),m(c,{key:1,prop:"global_visit_slot",label:"全局诊次(参考)",width:"130",align:"center"},{default:n(({row:t})=>[v(i(t.global_visit_slot?k(Number(t.global_visit_slot)):"—"),1)]),_:1})):O("",!0),a(c,{prop:"diagnosis_id",label:"诊单ID",width:"90"}),a(c,{prop:"patient_name",label:"患者","min-width":"100"},{default:n(({row:t})=>[$(ne)&&t.diagnosis_id?(o(),m(I,{key:0,type:"primary",underline:!1,onClick:g=>xe(t.diagnosis_id)},{default:n(()=>[v(i(t.patient_name||`诊单#${t.diagnosis_id}`),1)]),_:2},1032,["onClick"])):(o(),_("span",ll,i(t.patient_name||"—"),1))]),_:1}),a(c,{prop:"patient_phone",label:"联系电话","min-width":"120"},{default:n(({row:t})=>[v(i(t.patient_phone||"—"),1)]),_:1}),a(c,{prop:"amount",label:"金额",width:"100",align:"right"},{default:n(({row:t})=>[v("¥ "+i(t.amount),1)]),_:1}),a(c,{prop:"cohort_assign_time_text",label:f.value?"继承时间":"指派时间","min-width":"160"},null,8,["label"]),a(c,{prop:"create_time_text",label:"下单时间","min-width":"160"}),a(c,{prop:"assistant_name",label:"持有医助","min-width":"100"}),a(c,{prop:"creator_name",label:"订单创建人","min-width":"100"})],64))]),_:1},8,["data"])),[[Le,W.value]]),u("div",al,"共 "+i(X.value)+" 条",1)]),_:1},8,["modelValue","title"]),a($(Ae),{ref_key:"orderDetailRef",ref:Ee,readonly:"","append-to-body":""},null,512),a($(Pe),{ref_key:"diagnosisEditRef",ref:Ve},null,512)])}}}),dl=Et(nl,[["__scopeId","data-v-f22029fb"]]);export{dl as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PrescriptionOrderDetailDrawer-CX7YbddA.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-BSADvQNg.js","assets/index-Bkarz3gO.js","assets/index-deCJ4ja-.css","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css","assets/edit-BuMVMky1.js","assets/perm-CHCBwnFR.js","assets/DailyMatrix-BkYJBu_D.js","assets/picker-BTh9eW9u.js","assets/index-CS5Wg0xx.js","assets/index-B3imPWFk.css","assets/index-oRynN2pP.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-Cqk_cdo9.js","assets/index-D0f1Mn00.css","assets/index-BJZwRQXE.js","assets/file-BjbV-eNx.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-VonOdKxB.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-BQogJqk-.js","assets/FollowupAudioReview-BDRNtxGL.js","assets/FollowupAudioField-Dz9Csp0b.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-2_yvVfnZ.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-PGnYdg0x.js","assets/RecordingPlaybackBlock-DDHsYga7.js","assets/RecordingVideoPlayer-B0kkGDId.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CO99W60y.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-mqnmyStx.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-aR2VA9u1.js","assets/doctor-DBvYeWd3.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-D83GYvN5.js","assets/patient-B_ifBl-W.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-Dk7f29yf.js","assets/PatientOrderList-D8-uh2iu.css","assets/index-C_PSjf1W.js","assets/index-DAIDDabA.js","assets/medicine-DPIOyHj8.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CTRSsggc.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]); +import{o as tt,M as d,ap as lt,by as at,q as o,r as _,v as a,D as n,bd as nt,bb as it,az as st,bL as ot,bh as rt,F as A,G as de,O as m,bi as ut,K as dt,L as v,bZ as ct,s as u,T as i,w as pt,u as $,ci as P,bo as _t,P as O,bj as vt,ae as ft,ac as Ne,bk as mt,bl as ht,bt,a1 as gt,bn as yt,aB as kt,cd as Re,al as Se,p as h}from"./.pnpm-CyuAWpdG.js";import{x as $t,z as Ct,A as wt,B as Dt}from"./stats-B9TgZYZ_.js";import{h as le}from"./perm-CHCBwnFR.js";import{_ as Et}from"./index-Bkarz3gO.js";const Vt={class:"revisit-rate-page"},xt={class:"rate-caliber-trigger"},Tt={class:"rate-caliber"},Ot={key:0},Lt={key:1},Nt={class:"rate-kpi-grid"},Rt=["onClick"],St={class:"rate-kpi-label"},It={class:"rate-kpi-value"},At={key:0,class:"rate-kpi-sub"},Pt={class:"rate-card-header"},qt={class:"rate-card-hint"},Bt={key:0,class:"rate-card-hint"},Mt={class:"rate-card-hint mt-2"},Ft={key:0,class:"rate-dept-cell"},Ut={class:"rate-dept-count"},Yt={key:1},zt={key:1},Ht={key:1},Kt={class:"rate-cell"},Qt={class:"rate-cell-main"},jt={class:"rate-cell-sub"},Gt={key:1},Zt={class:"rate-cell"},Jt={class:"rate-cell-main"},Wt={class:"rate-cell-sub"},Xt={class:"rate-detail-hint"},el={key:1},tl={key:1},ll={key:1},al={class:"rate-detail-footer"},nl=tt({__name:"CohortReport",props:{cohortType:{}},setup(Ie){const q=Ie,Ae=Re(()=>Se(()=>import("./PrescriptionOrderDetailDrawer-CX7YbddA.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),Pe=Re(()=>Se(()=>import("./edit-BuMVMky1.js"),__vite__mapDeps([8,1,2,3,4,5,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,0,6,7,55,56,57,58,59,60,61,62,63,64,65]))),f=h(()=>q.cohortType==="inherit"),y=h(()=>f.value?"继承数":"新指派数"),D=h(()=>f.value?"inherit_count":"assigned_count"),L=h(()=>f.value?"继承日期":"指派日期"),qe=h(()=>f.value?"继承复诊接诊率":"按指派周期复诊率"),Be=h(()=>f.value?"按继承日期范围选择患者,订单累计至查询当天。继承后第 1 笔有效订单算二诊,第 2 笔算三诊;忽略继承前全局诊次及偏移,新指派患者另页统计。":"按新指派日期范围选择患者,订单累计至查询当天,跨月继续累计。继承患者在独立的「继承复诊接诊率」页面统计。"),ce=h(()=>f.value?"stats.revisitInheritRate":"stats.revisitAssignRate"),ae=h(()=>le([`${ce.value}/assignLines`])),B=h(()=>le([`${ce.value}/visitOrderLines`])),pe=le(["tcm.prescriptionOrder/detail"]),ne=le(["tcm.diagnosis/detail"]),_e=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,ve=()=>{const e=new Date;return[_e(new Date(e.getFullYear(),e.getMonth(),1)),_e(e)]},E=d(ve()),V=d(),x=d(),N=d(!1),G=d(""),ie=d([]),Z=d(null),se=d([2,3,4]),M=d(""),T=d(null);let F=0,C=!1;const Me=h(()=>T.value?`${T.value.start_date} 至 ${T.value.end_date}`:`${E.value[0]} 至 ${E.value[1]}`),Fe=()=>({start_date:E.value[0],end_date:E.value[1],dept_ids:V.value?String(V.value):"",assistant_id:x.value||void 0}),oe=d([]),fe=d([]),re=d(!1),J=d(""),Ue={value:"id",label:"name",children:"children"},Ye=h(()=>{const e=new Map;oe.value.forEach(r=>e.set(r.id,{...r,children:[]}));const l=[];e.forEach(r=>{const p=e.get(r.pid);p&&p!==r?p.children.push(r):l.push(r)});const s=r=>{var p;(p=r.children)!=null&&p.length?r.children.forEach(s):delete r.children};return l.forEach(s),l}),me=h(()=>{if(!V.value)return null;const e=new Set([Number(V.value)]);let l=!0;for(;l;)l=!1,oe.value.forEach(s=>{e.has(s.pid)&&!e.has(s.id)&&(e.add(s.id),l=!0)});return e}),he=h(()=>fe.value.filter(e=>!me.value||me.value.has(e.dept_id))),ze=()=>{x.value&&!he.value.some(e=>e.id===x.value)&&(x.value=void 0),R()},He=async()=>{re.value=!0,J.value="";try{const e=await $t(q.cohortType);if(C)return;oe.value=((e==null?void 0:e.rows)??[]).map(l=>({...l,id:Number(l.id),pid:Number(l.pid)})),fe.value=((e==null?void 0:e.assistants)??[]).map(l=>({...l,id:Number(l.id),dept_id:Number(l.dept_id)}))}catch{C||(J.value="部门及医助选项加载失败,请刷新页面重试。")}finally{C||(re.value=!1)}},be=["零","一","二","三","四","五","六","七","八","九","十"],k=e=>e===0?"复诊合计":e>=1&&e<=10?`${be[e]}诊`:e>10&&e<20?`十${be[e-10]}诊`:`${e}诊`,Ke=e=>f.value?`所选继承患者在继承后的第 ${e-1} 笔有效订单数,累计至查询当天;不使用继承前全局诊次和偏移`:`所选新指派患者的${k(e)}有效订单数,从对应指派后累计至查询当天`,U=e=>e==null?"—":`${e}%`,ue=(e,l)=>`${Number(e[`${l}_count`]??0)} / ${e[`${l}_den`]??"—"}`,Qe=h(()=>{const e=Z.value,l=[{key:"cohort",label:y.value,value:e?String(e[D.value]??0):"—",sub:`按${L.value}范围选择患者`,clickable:!!(ae.value&&e&&e[D.value]>0),onClick:()=>void De(null)}];return se.value.forEach(s=>l.push({key:`visit${s}`,label:`${k(s)}接诊率`,value:e?U(e[`visit${s}_rate`]):"—",sub:e?`${k(s)}下单 ${e[`visit${s}_count`]??0} 单 / 分母 ${e[`visit${s}_den`]??"—"}`:"",clickable:!!(B.value&&e&&e[`visit${s}_count`]>0),onClick:()=>void ee(s,null)})),l.push({key:"visit_all",label:"复诊合计接诊率",value:e?U(e.visit_all_rate):"—",sub:e?`复诊下单 ${e.visit_all_count??0} 单 / 分母 ${e.visit_all_den??"—"}`:"",clickable:!!(B.value&&e&&e.visit_all_count>0),onClick:()=>void ee(0,null)}),l}),je=({columns:e})=>e.map((l,s)=>{if(s===0)return"合计";const r=Z.value;if(!r)return"";const p=l.property||"";if(p===D.value)return String(r[p]??0);const w=/^visit(\d+|_all)_(count|rate)$/.exec(p);return w?w[2]==="rate"?`${U(r[p])}(${ue(r,`visit${w[1]}`)})`:String(r[p]??0):""}),R=async()=>{const e=++F;Ce(),Y.value=!1,T.value=null,ie.value=[],Z.value=null,M.value="",G.value="",N.value=!0;const l=Fe();try{const s=await Ct(l,q.cohortType);if(C||e!==F)return;ie.value=(s==null?void 0:s.rows)??[],Z.value=(s==null?void 0:s.total)??null,M.value=(s==null?void 0:s.observed_until)??"";const r=Array.isArray(s==null?void 0:s.slots)?s.slots.map(Number):[];se.value=r.length?[...new Set(r.filter(p=>Number.isInteger(p)&&p>=2&&p<=50))].sort((p,w)=>p-w):[2,3,4],T.value={...l}}catch{!C&&e===F&&(G.value="报表加载失败,请重新查询。")}finally{!C&&e===F&&(N.value=!1)}},Y=d(!1),ge=d("assign"),ye=d(""),ke=d(""),W=d(!1),z=d(""),H=d([]),X=d(0),$e=d(2);let S=0;const Ce=()=>{++S,W.value=!1,H.value=[],X.value=0,z.value=""},Ge=e=>e?e.is_dept?{dept_id:e.dept_id,label:e.dept_name}:{scope_assistant_id:e.assistant_id,label:e.assistant_name||""}:{label:"合计"},we=async(e,l,s)=>{if(N.value||!T.value||(e==="assign"?!ae.value:!B.value))return;const r={...T.value},{label:p,...w}=Ge(s),K=++S;ge.value=e,$e.value=l,ye.value=`${p} · ${e==="assign"?`${y.value}明细`:`${k(l)}订单明细`}(${r.start_date} 至 ${r.end_date})`,ke.value=`${L.value}:${r.start_date} 至 ${r.end_date};订单统计截至:${M.value||"查询当天"}${f.value&&e==="orders"?"。继承后首笔有效订单算二诊,全局诊次仅供参考。":"。"}`,H.value=[],X.value=0,z.value="",W.value=!0,Y.value=!0;try{const Q={...r,...w},b=e==="assign"?await wt(Q,q.cohortType):await Dt({...Q,slot:l},q.cohortType);if(C||K!==S||!Y.value)return;H.value=(b==null?void 0:b.rows)??[],X.value=Number((b==null?void 0:b.count)??H.value.length)}catch{!C&&K===S&&(z.value="明细加载失败,请关闭后重试。")}finally{!C&&K===S&&(W.value=!1)}},De=e=>we("assign",0,e),ee=(e,l)=>we("orders",e,l),Ee=d(null),Ze=e=>{var l;pe&&e&&((l=Ee.value)==null||l.open(e))},Ve=d(null),xe=e=>{var l;ne&&e&&((l=Ve.value)==null||l.openViewOnly(e))},Je=()=>{E.value=ve(),V.value=void 0,x.value=void 0,R()};return lt(()=>{He(),R()}),at(()=>{C=!0,++F,++S}),(e,l)=>{const s=st,r=it,p=ot,w=ut,K=rt,Q=dt,b=pt,We=ct,Xe=nt,te=_t,Te=vt,c=ht,j=gt,I=bt,Oe=mt,et=kt,Le=yt;return o(),_("div",Vt,[a(Te,{class:"!border-none",shadow:"never"},{default:n(()=>[a(Xe,{inline:!0,class:"rate-filter-form"},{default:n(()=>[a(r,{label:L.value},{default:n(()=>[a(s,{modelValue:E.value,"onUpdate:modelValue":l[0]||(l[0]=t=>E.value=t),type:"daterange","value-format":"YYYY-MM-DD","start-placeholder":"开始日期","end-placeholder":"结束日期","range-separator":"至",clearable:!1,style:{width:"280px"},onChange:R},null,8,["modelValue"])]),_:1},8,["label"]),a(r,{label:"部门"},{default:n(()=>[a(p,{modelValue:V.value,"onUpdate:modelValue":l[1]||(l[1]=t=>V.value=t),data:Ye.value,placeholder:"二中心(全部)",clearable:"",filterable:"","check-strictly":"","node-key":"id","default-expand-all":!0,props:Ue,style:{width:"210px"},onChange:ze},null,8,["modelValue","data"])]),_:1}),a(r,{label:"医助"},{default:n(()=>[a(K,{modelValue:x.value,"onUpdate:modelValue":l[2]||(l[2]=t=>x.value=t),placeholder:"全部医助",filterable:"",clearable:"",loading:re.value,style:{width:"180px"},onChange:R},{default:n(()=>[(o(!0),_(A,null,de(he.value,t=>(o(),m(w,{key:t.id,label:t.name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),a(r,null,{default:n(()=>[a(Q,{type:"primary",loading:N.value,onClick:R},{default:n(()=>[...l[4]||(l[4]=[v("查询",-1)])]),_:1},8,["loading"]),a(Q,{disabled:N.value,onClick:Je},{default:n(()=>[...l[5]||(l[5]=[v("重置",-1)])]),_:1},8,["disabled"])]),_:1}),a(r,null,{default:n(()=>[a(We,{placement:"bottom-start",width:540,trigger:"hover"},{reference:n(()=>[u("span",xt,[a(b,null,{default:n(()=>[a($(P))]),_:1}),l[6]||(l[6]=v("统计口径",-1))])]),default:n(()=>[u("div",Tt,[u("p",null,[u("b",null,i(y.value),1),v(":按所选"+i(L.value)+"范围确定患者,订单从对应指派后累计至查询当天;结束日期允许选择未来日期,但未来订单不会提前计入。 ",1)]),f.value?(o(),_("p",Ot,[...l[7]||(l[7]=[u("b",null,"继承诊次重新起算",-1),v(":继承后的第 1 笔有效订单算二诊,第 2 笔算三诊,依次递增;不使用继承前的全局诊次,也不叠加诊次偏移。只统计继承患者,不混入新指派患者。 ",-1)])])):(o(),_("p",Lt," 只统计新指派患者,不混入继承患者。继承患者在独立的「继承复诊接诊率」页面统计。 ")),u("p",null,[l[8]||(l[8]=u("b",null,"N 诊接诊率",-1)),v(" = N 诊单数 ÷ 本页"+i(y.value)+";分母为 0 显示「—」。",1),l[9]||(l[9]=u("b",null,"复诊合计接诊率",-1)),v(" = 复诊合计单数 ÷ 本页"+i(y.value)+",表示人均复诊成交单数,可超过 100%。 ",1)]),l[10]||(l[10]=u("p",null," 订单仅计入有效业务订单,剔除已取消 / 拒收 / 退款;归属按服务端的患者持有记录计算。医助按人事部门归组;仅统计「二中心」及其组织下级,选定部门时包含其下级。 ",-1)),l[11]||(l[11]=u("p",null," 部门行和合计行按诊单去重,不能直接将医助行相加。灰字为「单数 / 分母」。 ",-1))])]),_:1})]),_:1})]),_:1}),a(te,{class:"mt-3",type:"info",closable:!1,"show-icon":"",title:Be.value},null,8,["title"]),J.value?(o(),m(te,{key:0,class:"mt-3",type:"warning",title:J.value,closable:!1},null,8,["title"])):O("",!0),G.value?(o(),m(te,{key:1,class:"mt-3",type:"error",title:G.value,closable:!1},null,8,["title"])):O("",!0)]),_:1}),u("div",Nt,[(o(!0),_(A,null,de(Qe.value,t=>(o(),_("div",{key:t.key,class:ft(["rate-kpi-card",{"is-clickable":t.clickable}]),onClick:g=>t.clickable&&t.onClick()},[u("div",St,i(t.label),1),u("div",It,i(t.value),1),t.sub?(o(),_("div",At,i(t.sub),1)):O("",!0)],10,Rt))),128))]),a(Te,{class:"!border-none mt-4",shadow:"never"},{header:n(()=>[u("div",Pt,[u("span",null,i(qe.value)+" · 部门 / 医助明细",1),u("span",qt,i(L.value)+":"+i(Me.value),1),M.value?(o(),_("span",Bt,"订单统计截至:"+i(M.value),1)):O("",!0)]),u("div",Mt," 点击"+i(y.value)+"、各诊次单数可查看患者与订单;底栏合计按诊单去重。 ",1)]),default:n(()=>[Ne((o(),m(Oe,{data:ie.value,size:"small",border:"","row-key":"row_key","tree-props":{children:"children"},"default-expand-all":!0,"show-summary":"","summary-method":je},{default:n(()=>[a(c,{label:"部门 / 医助","min-width":"200",fixed:""},{default:n(({row:t})=>[t.is_dept?(o(),_("span",Ft,[v(i(t.dept_name),1),u("span",Ut,i(t.assistant_count)+" 人",1)])):(o(),_("span",Yt,i(t.assistant_name),1))]),_:1}),a(c,{prop:D.value,label:y.value,"min-width":"100",align:"right"},{header:n(()=>[u("span",null,i(y.value),1),a(j,{effect:"dark",placement:"top",content:`所选${L.value}范围内的${y.value},部门和合计按诊单去重`},{default:n(()=>[a(b,{class:"rate-th-hint"},{default:n(()=>[a($(P))]),_:1})]),_:1},8,["content"])]),default:n(({row:t})=>[ae.value&&t[D.value]>0?(o(),m(I,{key:0,type:"primary",underline:!1,onClick:g=>De(t)},{default:n(()=>[v(i(t[D.value]),1)]),_:2},1032,["onClick"])):(o(),_("span",zt,i(t[D.value]??0),1))]),_:1},8,["prop","label"]),(o(!0),_(A,null,de(se.value,t=>(o(),_(A,{key:t},[a(c,{prop:`visit${t}_count`,label:`${k(t)}单数`,"min-width":"96",align:"right"},{header:n(()=>[u("span",null,i(k(t))+"单数",1),a(j,{effect:"dark",placement:"top",content:Ke(t)},{default:n(()=>[a(b,{class:"rate-th-hint"},{default:n(()=>[a($(P))]),_:1})]),_:1},8,["content"])]),default:n(({row:g})=>[B.value&&g[`visit${t}_count`]>0?(o(),m(I,{key:0,type:"primary",underline:!1,onClick:il=>ee(t,g)},{default:n(()=>[v(i(g[`visit${t}_count`]),1)]),_:2},1032,["onClick"])):(o(),_("span",Ht,i(g[`visit${t}_count`]??0),1))]),_:2},1032,["prop","label"]),a(c,{prop:`visit${t}_rate`,label:`${k(t)}接诊率`,"min-width":"110",align:"right"},{header:n(()=>[u("span",null,i(k(t))+"接诊率",1),a(j,{effect:"dark",placement:"top",content:`${k(t)}单数 ÷ ${y.value};分母为 0 显示「—」`},{default:n(()=>[a(b,{class:"rate-th-hint"},{default:n(()=>[a($(P))]),_:1})]),_:1},8,["content"])]),default:n(({row:g})=>[u("div",Kt,[u("span",Qt,i(U(g[`visit${t}_rate`])),1),u("span",jt,i(ue(g,`visit${t}`)),1)])]),_:2},1032,["prop","label"])],64))),128)),a(c,{prop:"visit_all_count",label:"复诊合计单数","min-width":"110",align:"right"},{header:n(()=>[l[12]||(l[12]=u("span",null,"复诊合计单数",-1)),a(j,{effect:"dark",placement:"top",content:"所选患者从对应指派后累计至查询当天的全部复诊订单数"},{default:n(()=>[a(b,{class:"rate-th-hint"},{default:n(()=>[a($(P))]),_:1})]),_:1})]),default:n(({row:t})=>[B.value&&t.visit_all_count>0?(o(),m(I,{key:0,type:"primary",underline:!1,onClick:g=>ee(0,t)},{default:n(()=>[v(i(t.visit_all_count),1)]),_:2},1032,["onClick"])):(o(),_("span",Gt,i(t.visit_all_count??0),1))]),_:1}),a(c,{prop:"visit_all_rate",label:"复诊合计接诊率","min-width":"128",align:"right"},{header:n(()=>[l[13]||(l[13]=u("span",null,"复诊合计接诊率",-1)),a(j,{effect:"dark",placement:"top",content:`复诊合计单数 ÷ ${y.value};表示人均复诊成交单数,可超过 100%`},{default:n(()=>[a(b,{class:"rate-th-hint"},{default:n(()=>[a($(P))]),_:1})]),_:1},8,["content"])]),default:n(({row:t})=>[u("div",Zt,[u("span",Jt,i(U(t.visit_all_rate)),1),u("span",Wt,i(ue(t,"visit_all")),1)])]),_:1})]),_:1},8,["data"])),[[Le,N.value]])]),_:1}),a(et,{modelValue:Y.value,"onUpdate:modelValue":l[3]||(l[3]=t=>Y.value=t),title:ye.value,width:"1080px",top:"6vh","destroy-on-close":"",onClose:Ce},{default:n(()=>[u("p",Xt,i(ke.value),1),z.value?(o(),m(te,{key:0,class:"mb-3",type:"error",title:z.value,closable:!1},null,8,["title"])):O("",!0),Ne((o(),m(Oe,{data:H.value,size:"small",border:"",stripe:"","max-height":"60vh"},{default:n(()=>[ge.value==="assign"?(o(),_(A,{key:0},[a(c,{prop:"diagnosis_id",label:"诊单ID",width:"90"}),a(c,{prop:"patient_name",label:"患者","min-width":"100"},{default:n(({row:t})=>[$(ne)&&t.diagnosis_id?(o(),m(I,{key:0,type:"primary",underline:!1,onClick:g=>xe(t.diagnosis_id)},{default:n(()=>[v(i(t.patient_name||`诊单#${t.diagnosis_id}`),1)]),_:2},1032,["onClick"])):(o(),_("span",el,i(t.patient_name||"—"),1))]),_:1}),a(c,{prop:"patient_phone",label:"联系电话","min-width":"120"},{default:n(({row:t})=>[v(i(t.patient_phone||"—"),1)]),_:1}),a(c,{prop:"assistant_names",label:f.value?"继承医助":"被指派医助","min-width":"140","show-overflow-tooltip":""},null,8,["label"]),a(c,{prop:"assign_count",label:f.value?"范围内继承次数":"范围内指派次数",width:"120",align:"right"},null,8,["label"]),a(c,{prop:"first_assign_time_text",label:f.value?"首次继承时间":"首次指派时间","min-width":"160"},null,8,["label"]),a(c,{prop:"last_assign_time_text",label:f.value?"最近继承时间":"最近指派时间","min-width":"160"},null,8,["label"])],64)):(o(),_(A,{key:1},[a(c,{prop:"order_no",label:"订单号","min-width":"180","show-overflow-tooltip":""},{default:n(({row:t})=>[$(pe)&&t.order_id?(o(),m(I,{key:0,type:"primary",underline:!1,onClick:g=>Ze(t.order_id)},{default:n(()=>[v(i(t.order_no||`#${t.order_id}`),1)]),_:2},1032,["onClick"])):(o(),_("span",tl,i(t.order_no||`#${t.order_id}`),1))]),_:1}),$e.value===0||f.value?(o(),m(c,{key:0,prop:"visit_slot",label:f.value?"继承后诊次":"诊次",width:"100",align:"center"},{default:n(({row:t})=>[v(i(k(Number(t.visit_slot))),1)]),_:1},8,["label"])):O("",!0),f.value?(o(),m(c,{key:1,prop:"global_visit_slot",label:"全局诊次(参考)",width:"130",align:"center"},{default:n(({row:t})=>[v(i(t.global_visit_slot?k(Number(t.global_visit_slot)):"—"),1)]),_:1})):O("",!0),a(c,{prop:"diagnosis_id",label:"诊单ID",width:"90"}),a(c,{prop:"patient_name",label:"患者","min-width":"100"},{default:n(({row:t})=>[$(ne)&&t.diagnosis_id?(o(),m(I,{key:0,type:"primary",underline:!1,onClick:g=>xe(t.diagnosis_id)},{default:n(()=>[v(i(t.patient_name||`诊单#${t.diagnosis_id}`),1)]),_:2},1032,["onClick"])):(o(),_("span",ll,i(t.patient_name||"—"),1))]),_:1}),a(c,{prop:"patient_phone",label:"联系电话","min-width":"120"},{default:n(({row:t})=>[v(i(t.patient_phone||"—"),1)]),_:1}),a(c,{prop:"amount",label:"金额",width:"100",align:"right"},{default:n(({row:t})=>[v("¥ "+i(t.amount),1)]),_:1}),a(c,{prop:"cohort_assign_time_text",label:f.value?"继承时间":"指派时间","min-width":"160"},null,8,["label"]),a(c,{prop:"create_time_text",label:"下单时间","min-width":"160"}),a(c,{prop:"assistant_name",label:"持有医助","min-width":"100"}),a(c,{prop:"creator_name",label:"订单创建人","min-width":"100"})],64))]),_:1},8,["data"])),[[Le,W.value]]),u("div",al,"共 "+i(X.value)+" 条",1)]),_:1},8,["modelValue","title"]),a($(Ae),{ref_key:"orderDetailRef",ref:Ee,readonly:"","append-to-body":""},null,512),a($(Pe),{ref_key:"diagnosisEditRef",ref:Ve},null,512)])}}}),dl=Et(nl,[["__scopeId","data-v-f22029fb"]]);export{dl as default}; diff --git a/server/public/admin/assets/DailyMatrix-BSZy3g0c.js b/server/public/admin/assets/DailyMatrix-BkYJBu_D.js similarity index 98% rename from server/public/admin/assets/DailyMatrix-BSZy3g0c.js rename to server/public/admin/assets/DailyMatrix-BkYJBu_D.js index 71db763fb..9f710b4d8 100644 --- a/server/public/admin/assets/DailyMatrix-BSZy3g0c.js +++ b/server/public/admin/assets/DailyMatrix-BkYJBu_D.js @@ -1,2 +1,2 @@ -import{o as Nl,M as k,R as Ll,n as Le,ap as Hl,aq as Yl,ac as hl,q as o,r,s as i,v as a,bf as Il,D as n,be as Wl,L as m,O as x,P as y,K as Fl,bk as Al,bl as zl,F as $,G as Y,bc as al,aw as ql,ae as Pl,a1 as Ol,T as g,u as Kl,cL as jl,B as Gl,bC as Jl,bm as Ql,aa as Xl,aB as Zl,bd as et,bb as lt,az as tt,c6 as at,J as nt,aA as it,bE as ot,bh as st,bi as ut,bn as dt,p as v}from"./.pnpm-CyuAWpdG.js";import{_ as rt}from"./picker-BDO86vcM.js";import mt from"./DiagnosisTodoList-CE1isNg2.js";import{h as vt}from"./perm-DOfZAzJJ.js";import{_ as pt,$ as ft,a0 as _t,a1 as gt,a2 as yt,a3 as bt,a4 as ct,a5 as kt,a6 as xt}from"./tcm-QAkeqQ9Q.js";import{f as nl,b as Vt,c as wt,d as Dt,e as Ct}from"./blood-thresholds-QpDuElbH.js";import{j as W,_ as $t}from"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const Rt={class:"daily-matrix"},St={class:"daily-matrix__toolbar"},Tt={class:"daily-matrix__toolbar-left"},Et={key:0,class:"daily-matrix__toolbar-right"},Ut={key:0,class:"daily-matrix__legend"},Bt={key:1,class:"daily-matrix__toolbar-right"},Mt={key:0,class:"daily-matrix__legend"},Nt=["role","tabindex","onClick","onKeydown"],Lt={class:"daily-matrix__tracking-tooltip"},Ht={class:"daily-matrix__tracking-preview"},Yt={key:0,class:"daily-matrix__record-count"},ht={key:1,class:"daily-matrix__cell-up"},It={key:0,class:"daily-matrix__record-count"},Wt={key:1},Ft={class:"daily-matrix__chart"},At={key:0,class:"daily-matrix__todo"},zt={class:"daily-matrix__detail-section"},qt={class:"daily-matrix__detail-heading"},Pt={class:"daily-matrix__detail-heading"},Ot={class:"daily-matrix__detail-tags"},Kt={key:3,class:"daily-matrix__cell-patient"},jt={key:0,class:"daily-matrix__time-evidence"},Gt={class:"daily-matrix__detail-fields"},Jt={class:"daily-matrix__detail-section"},Qt={class:"daily-matrix__detail-heading"},Xt={class:"daily-matrix__detail-heading"},Zt={class:"daily-matrix__detail-fields"},ea={key:0,class:"daily-matrix__detail-images"},la={class:"daily-matrix__detail-section"},ta={class:"daily-matrix__detail-heading"},aa={class:"daily-matrix__detail-heading"},na={class:"daily-matrix__detail-fields"},ia={key:0,class:"daily-matrix__detail-images"},oa={class:"daily-matrix__time-evidence"},sa={key:0,class:"ml-2 text-info"},ua={class:"daily-matrix__tracking-existing"},da=120,ra=Nl({__name:"DailyMatrix",props:{diagnosisId:{},patientId:{},age:{default:void 0},readOnly:{type:Boolean,default:!1},patientName:{default:""}},setup(il,{expose:ol}){const sl=["tcm.diagnosis/dailyRecord"],h=il,C=v(()=>Number(h.diagnosisId||0)),oe=v(()=>Number(h.patientId||0)),He=v(()=>!!h.readOnly),ul=v(()=>h.patientName||""),Ye=v(()=>vt(sl)),D=v(()=>Ye.value&&!He.value),dl=v(()=>Ye.value),se=k(!1),F=k("7"),G=k(null),z=k([]),J=k([]),Q=k([]),X=k([]),q=k(!1),P=k(!1),O=k(!1),K=k(!1),ue=k(!1),T=k(""),he=k(""),de=k(!1),re=k(!1),me=k(!1),ve=k(!1),p=k(ze()),V=k(qe()),c=k(Pe()),Ie=v({get:()=>c.value.intensity??"",set:l=>{c.value.intensity=l===""?null:l}}),S=k({note_date:"",existing_content:"",content:""}),rl=v(()=>p.value.id?"编辑血糖血压记录":"新增血糖血压记录"),ml=v(()=>V.value.id?"编辑饮食记录":"新增饮食记录"),vl=v(()=>c.value.id?"编辑运动记录":"新增运动记录"),$e=v(()=>ee(new Date)),j=v(()=>D.value&&S.value.note_date===$e.value),pl=v(()=>j.value?"新增/追加跟踪备注":"查看跟踪备注"),We=k(null),Fe=k(0),fl=[{key:"fasting",label:"空腹血糖"},{key:"postprandial",label:"餐后2h血糖"},{key:"other",label:"其他血糖"},{key:"bp",label:"血压"},{key:"western",label:"西药"},{key:"insulin",label:"胰岛素"},{key:"breakfast",label:"早餐"},{key:"lunch",label:"午餐"},{key:"dinner",label:"晚餐"},{key:"exercise",label:"运动"},{key:"tracking",label:"跟踪备注"}],_l=v(()=>[...fl]),gl=v(()=>{const l=te.value.length;if(l<=0||l>7)return 100;const e=Math.max(Fe.value-da-2,0),d=e>0?Math.floor(e/l):100;return Math.max(100,d)});let Z=0;function ee(l){return`${l.getFullYear()}-${String(l.getMonth()+1).padStart(2,"0")}-${String(l.getDate()).padStart(2,"0")}`}function Ae(l){return new Date(`${l}T00:00:00`)}function le(){var l;Fe.value=((l=We.value)==null?void 0:l.clientWidth)||0}function ze(l=""){return{id:"",diagnosis_id:C.value,patient_id:oe.value,record_date:l,record_time:"",fasting_blood_sugar:0,postprandial_blood_sugar:0,other_blood_sugar:"",systolic_pressure:0,diastolic_pressure:0,western_medicine:"",insulin:"",remark:""}}function qe(l=""){return{id:"",diagnosis_id:C.value,patient_id:oe.value,record_date:l,breakfast_foods:"",breakfast_images:[],lunch_foods:"",lunch_images:[],dinner_foods:"",dinner_images:[],note:""}}function Pe(l=""){return{id:"",diagnosis_id:C.value,patient_id:oe.value,record_date:l,exercise_type:"",duration:0,intensity:1,images:[],note:""}}function yl(l){return l.getTime()>Date.now()}function Oe(l){if(l==="custom"){const[b,s]=G.value||["",""];return{start:b||"",end:s||""}}const e=l==="7"?7:30,d=new Date;d.setHours(0,0,0,0);const f=new Date(d);return f.setDate(f.getDate()-(e-1)),{start:ee(f),end:ee(d)}}const Ke=v(()=>Oe(F.value)),te=v(()=>{const{start:l,end:e}=Ke.value;if(!l||!e)return[];const d=[],f=Ae(e),b=Ae(l).getTime();for(;f.getTime()>=b;)d.push(ee(f)),f.setDate(f.getDate()-1);return d}),je=v(()=>z.value.some(l=>Number(l.source)===1));function Re(l){const e=new Map;for(const d of l){const f=String(d.record_date||"");if(!f)continue;const b=e.get(f)||[];b.push(d),e.set(f,b)}return e}const ae=v(()=>Re(z.value)),pe=v(()=>Re(J.value)),fe=v(()=>Re(Q.value)),Se=v(()=>ae.value.get(T.value)||[]),Te=v(()=>pe.value.get(T.value)||[]),Ee=v(()=>fe.value.get(T.value)||[]),bl=[{key:"breakfast",label:"早餐"},{key:"lunch",label:"午餐"},{key:"dinner",label:"晚餐"}];function Ue(l){return l.record_time?String(l.record_time):"未记录具体时间"}function Ge(l){const e={dawn:"凌晨",early_morning:"清晨",morning:"上午",noon:"中午",afternoon:"下午",evening:"晚上",night:"夜间",bedtime:"睡前"},d=String(l.record_time_period||"");return e[d]||d||"未提供时段"}function cl(l){return{1:"低强度",2:"中强度",3:"高强度"}[Number(l)]||"未记录"}function kl(l){const e=d=>d==null||d===""?"—":String(d);return[{label:"空腹血糖",value:`${e(l.fasting_blood_sugar)} mmol/L`},{label:"餐后2h血糖",value:`${e(l.postprandial_blood_sugar)} mmol/L`},{label:"其他血糖",value:`${e(l.other_blood_sugar)} mmol/L`},{label:"血压",value:l.systolic_pressure||l.diastolic_pressure?`${nl(l)} mmHg`:"—"},{label:"西药",value:e(l.western_medicine)},{label:"胰岛素",value:e(l.insulin)},{label:"备注",value:e(l.remark)}]}function ne(l,e){var d,f,b;return["breakfast","lunch","dinner"].includes(l)?((d=pe.value.get(e))==null?void 0:d.length)||0:l==="exercise"?((f=fe.value.get(e))==null?void 0:f.length)||0:l==="tracking"?0:((b=ae.value.get(e))==null?void 0:b.length)||0}const Be=v(()=>{const l=new Map;for(const e of X.value){const d=String(e.note_date||"");!d||l.has(d)||l.set(d,e)}return l}),Je=v(()=>[...te.value].reverse()),_e=v(()=>Je.value.reduce((l,e)=>{const d=ae.value.get(e)||[],f=b=>d.map(s=>wl(s[b])).find(s=>s!==null)??null;return l.fasting.push(f("fasting_blood_sugar")),l.postprandial.push(f("postprandial_blood_sugar")),l},{fasting:[],postprandial:[]})),xl=v(()=>[..._e.value.fasting,..._e.value.postprandial].some(l=>l!=null)),Vl=v(()=>({tooltip:{trigger:"axis"},legend:{top:0,data:["空腹血糖","餐后血糖"]},grid:{left:24,right:24,top:52,bottom:20,containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:Je.value.map(l=>Qe(l))},yAxis:{type:"value",name:"mmol/L",splitLine:{lineStyle:{color:"#e5e7eb"}}},series:[{name:"空腹血糖",type:"line",smooth:!0,connectNulls:!0,data:_e.value.fasting,symbolSize:7,itemStyle:{color:"#2563eb"},lineStyle:{width:3,color:"#2563eb"}},{name:"餐后血糖",type:"line",smooth:!0,connectNulls:!0,data:_e.value.postprandial,symbolSize:7,itemStyle:{color:"#f97316"},lineStyle:{width:3,color:"#f97316"}}]}));function Qe(l){return l.slice(5)}function wl(l){if(l===""||l==null)return null;const e=Number(l);return!Number.isFinite(e)||e===0?null:e}function I(l,e){const d=ae.value.get(e)||[],f=pe.value.get(e)||[],b=fe.value.get(e)||[],s=Be.value.get(e),U={fasting:"fasting_blood_sugar",postprandial:"postprandial_blood_sugar",other:"other_blood_sugar",western:"western_medicine",insulin:"insulin"}[l];if(U||l==="bp"){const R=d.filter(w=>l==="bp"?!!(w.systolic_pressure||w.diastolic_pressure):w[U]!=null&&w[U]!==""),L=w=>l==="fasting"?Vt(w.fasting_blood_sugar,h.age):l==="postprandial"?wt(w.postprandial_blood_sugar,h.age):l==="other"?Dt(w.other_blood_sugar,h.age):l==="bp"&&Ct(w);return{value:R.map(w=>l==="bp"?nl(w):String(w[U])).join(" / "),isHigh:R.some(L),hasRecord:R.length>0,isPatientSelf:R.some(w=>Number(w.source)===1)}}if(["breakfast","lunch","dinner"].includes(l)){const R=f.filter(L=>{var w;return L[l]||L[`${l}_foods`]||((w=L[`${l}_images`])==null?void 0:w.length)}).length;return{value:R?"✓":"",isHigh:!1,hasRecord:R>0}}return l==="exercise"?{value:b.map(R=>R.duration!=null?`${R.duration}min`:R.exercise_type||"已记录").join(" / "),isHigh:!1,hasRecord:b.length>0}:l==="tracking"?{value:s!=null&&s.content?Ze(s.content):"",isHigh:!1,hasRecord:!!(s!=null&&s.content)}:{value:"",isHigh:!1,hasRecord:!1}}async function E(){const l=++Z,e=C.value;if(!e){se.value=!1,z.value=[],J.value=[],Q.value=[],X.value=[];return}const{start:d,end:f}=Ke.value;if(F.value==="custom"&&(!d||!f))return;const b=[...te.value];se.value=!0;try{const s=await pt({id:e,start_date:d,end_date:f}),N=await ft({diagnosis_id:e});if(l!==Z||e!==C.value)return;z.value=Array.isArray(s==null?void 0:s.blood_records)?s.blood_records:[],J.value=Array.isArray(s==null?void 0:s.diet_records)?s.diet_records:[],Q.value=Array.isArray(s==null?void 0:s.exercise_records)?s.exercise_records:[],X.value=Array.isArray(N)?N.filter(U=>b.includes(String((U==null?void 0:U.note_date)||""))):[]}catch{l===Z&&(z.value=[],J.value=[],Q.value=[],X.value=[])}finally{l===Z&&(se.value=!1)}}function Dl(){if(F.value==="custom"&&!G.value){const l=Oe("7");G.value=[l.start,l.end]}E(),Le(le)}function Cl(){F.value==="custom"&&E()}function Xe(l){const e=String(l||"");return/^\d{2}:\d{2}$/.test(e)?`${e}:00`:e}function ge(l,e){D.value&&(p.value={...ze(e),...l},he.value=Xe(l==null?void 0:l.record_time),q.value=!0)}function ye(l,e){D.value&&(V.value={...qe(e),...l,breakfast_images:[...(l==null?void 0:l.breakfast_images)||[]],lunch_images:[...(l==null?void 0:l.lunch_images)||[]],dinner_images:[...(l==null?void 0:l.dinner_images)||[]]},P.value=!0)}function be(l,e){D.value&&(c.value={...Pe(e),...l,...l?{duration:l.duration??null,intensity:l.intensity??null}:{},images:[...(l==null?void 0:l.images)||[]]},O.value=!0)}function ce(l){if(!D.value)return;const e=te.value[0]||ee(new Date);if(l==="blood")return ge(void 0,e);if(l==="diet")return ye(void 0,e);if(l==="exercise")return be(void 0,e);ke("tracking",$e.value)}function ke(l,e){var f,b,s;if(!Ve(l,e))return;if(l==="tracking"){const N=Be.value.get(e);S.value={note_date:e,existing_content:String((N==null?void 0:N.content)||""),content:""},K.value=!0;return}if((((f=ae.value.get(e))==null?void 0:f.length)||0)+(((b=pe.value.get(e))==null?void 0:b.length)||0)+(((s=fe.value.get(e))==null?void 0:s.length)||0)){T.value=e,ue.value=!0;return}if(["breakfast","lunch","dinner"].includes(l))return ye(void 0,e);if(l==="exercise")return be(void 0,e);ge(void 0,e)}async function $l(){if(!D.value||de.value)return;if(!p.value.record_date){W.msgWarning("请选择记录日期");return}const l=C.value,e={...p.value};"record_time_estimated"in e&&Xe(e.record_time)!==he.value&&(e.record_time_estimated=0,e.record_time_period="",e.record_time_text=""),de.value=!0;try{if(e.id?await _t(e):await gt(e),l!==C.value)return;q.value=!1,await E()}finally{de.value=!1}}async function Rl(){if(!D.value||re.value)return;if(!V.value.record_date){W.msgWarning("请选择记录日期");return}const l=C.value,e={...V.value};re.value=!0;try{if(e.id?await yt(e):await bt(e),l!==C.value)return;P.value=!1,await E()}finally{re.value=!1}}async function Sl(){if(!D.value||me.value)return;if(!c.value.record_date){W.msgWarning("请选择记录日期");return}if(!c.value.exercise_type){W.msgWarning("请选择运动类型");return}if(!c.value.id&&!c.value.duration){W.msgWarning("请输入运动时长");return}const l=C.value,e={...c.value,duration:c.value.duration??null,intensity:c.value.intensity??null};me.value=!0;try{if(e.id?await ct(e):await kt(e),l!==C.value)return;O.value=!1,await E()}finally{me.value=!1}}async function Tl(){if(ve.value)return;if(!S.value.note_date){W.msgWarning("请选择记录日期");return}if(!j.value){W.msgWarning("仅支持给今天追加跟踪备注");return}const l=S.value.content.trim();if(!l){W.msgWarning("请输入跟踪备注");return}const e=C.value;ve.value=!0;try{if(await xt({diagnosis_id:e,tracking_content:l}),e!==C.value)return;K.value=!1,await E()}finally{ve.value=!1}}function Ze(l){return Me(l)[0]||""}function Me(l){return l.split(` +import{o as Nl,M as k,R as Ll,n as Le,ap as Hl,aq as Yl,ac as hl,q as o,r,s as i,v as a,bf as Il,D as n,be as Wl,L as m,O as x,P as y,K as Fl,bk as Al,bl as zl,F as $,G as Y,bc as al,aw as ql,ae as Pl,a1 as Ol,T as g,u as Kl,cL as jl,B as Gl,bC as Jl,bm as Ql,aa as Xl,aB as Zl,bd as et,bb as lt,az as tt,c6 as at,J as nt,aA as it,bE as ot,bh as st,bi as ut,bn as dt,p as v}from"./.pnpm-CyuAWpdG.js";import{_ as rt}from"./picker-BTh9eW9u.js";import mt from"./DiagnosisTodoList-VonOdKxB.js";import{h as vt}from"./perm-CHCBwnFR.js";import{_ as pt,$ as ft,a0 as _t,a1 as gt,a2 as yt,a3 as bt,a4 as ct,a5 as kt,a6 as xt}from"./tcm-BSADvQNg.js";import{f as nl,b as Vt,c as wt,d as Dt,e as Ct}from"./blood-thresholds-QpDuElbH.js";import{j as W,_ as $t}from"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const Rt={class:"daily-matrix"},St={class:"daily-matrix__toolbar"},Tt={class:"daily-matrix__toolbar-left"},Et={key:0,class:"daily-matrix__toolbar-right"},Ut={key:0,class:"daily-matrix__legend"},Bt={key:1,class:"daily-matrix__toolbar-right"},Mt={key:0,class:"daily-matrix__legend"},Nt=["role","tabindex","onClick","onKeydown"],Lt={class:"daily-matrix__tracking-tooltip"},Ht={class:"daily-matrix__tracking-preview"},Yt={key:0,class:"daily-matrix__record-count"},ht={key:1,class:"daily-matrix__cell-up"},It={key:0,class:"daily-matrix__record-count"},Wt={key:1},Ft={class:"daily-matrix__chart"},At={key:0,class:"daily-matrix__todo"},zt={class:"daily-matrix__detail-section"},qt={class:"daily-matrix__detail-heading"},Pt={class:"daily-matrix__detail-heading"},Ot={class:"daily-matrix__detail-tags"},Kt={key:3,class:"daily-matrix__cell-patient"},jt={key:0,class:"daily-matrix__time-evidence"},Gt={class:"daily-matrix__detail-fields"},Jt={class:"daily-matrix__detail-section"},Qt={class:"daily-matrix__detail-heading"},Xt={class:"daily-matrix__detail-heading"},Zt={class:"daily-matrix__detail-fields"},ea={key:0,class:"daily-matrix__detail-images"},la={class:"daily-matrix__detail-section"},ta={class:"daily-matrix__detail-heading"},aa={class:"daily-matrix__detail-heading"},na={class:"daily-matrix__detail-fields"},ia={key:0,class:"daily-matrix__detail-images"},oa={class:"daily-matrix__time-evidence"},sa={key:0,class:"ml-2 text-info"},ua={class:"daily-matrix__tracking-existing"},da=120,ra=Nl({__name:"DailyMatrix",props:{diagnosisId:{},patientId:{},age:{default:void 0},readOnly:{type:Boolean,default:!1},patientName:{default:""}},setup(il,{expose:ol}){const sl=["tcm.diagnosis/dailyRecord"],h=il,C=v(()=>Number(h.diagnosisId||0)),oe=v(()=>Number(h.patientId||0)),He=v(()=>!!h.readOnly),ul=v(()=>h.patientName||""),Ye=v(()=>vt(sl)),D=v(()=>Ye.value&&!He.value),dl=v(()=>Ye.value),se=k(!1),F=k("7"),G=k(null),z=k([]),J=k([]),Q=k([]),X=k([]),q=k(!1),P=k(!1),O=k(!1),K=k(!1),ue=k(!1),T=k(""),he=k(""),de=k(!1),re=k(!1),me=k(!1),ve=k(!1),p=k(ze()),V=k(qe()),c=k(Pe()),Ie=v({get:()=>c.value.intensity??"",set:l=>{c.value.intensity=l===""?null:l}}),S=k({note_date:"",existing_content:"",content:""}),rl=v(()=>p.value.id?"编辑血糖血压记录":"新增血糖血压记录"),ml=v(()=>V.value.id?"编辑饮食记录":"新增饮食记录"),vl=v(()=>c.value.id?"编辑运动记录":"新增运动记录"),$e=v(()=>ee(new Date)),j=v(()=>D.value&&S.value.note_date===$e.value),pl=v(()=>j.value?"新增/追加跟踪备注":"查看跟踪备注"),We=k(null),Fe=k(0),fl=[{key:"fasting",label:"空腹血糖"},{key:"postprandial",label:"餐后2h血糖"},{key:"other",label:"其他血糖"},{key:"bp",label:"血压"},{key:"western",label:"西药"},{key:"insulin",label:"胰岛素"},{key:"breakfast",label:"早餐"},{key:"lunch",label:"午餐"},{key:"dinner",label:"晚餐"},{key:"exercise",label:"运动"},{key:"tracking",label:"跟踪备注"}],_l=v(()=>[...fl]),gl=v(()=>{const l=te.value.length;if(l<=0||l>7)return 100;const e=Math.max(Fe.value-da-2,0),d=e>0?Math.floor(e/l):100;return Math.max(100,d)});let Z=0;function ee(l){return`${l.getFullYear()}-${String(l.getMonth()+1).padStart(2,"0")}-${String(l.getDate()).padStart(2,"0")}`}function Ae(l){return new Date(`${l}T00:00:00`)}function le(){var l;Fe.value=((l=We.value)==null?void 0:l.clientWidth)||0}function ze(l=""){return{id:"",diagnosis_id:C.value,patient_id:oe.value,record_date:l,record_time:"",fasting_blood_sugar:0,postprandial_blood_sugar:0,other_blood_sugar:"",systolic_pressure:0,diastolic_pressure:0,western_medicine:"",insulin:"",remark:""}}function qe(l=""){return{id:"",diagnosis_id:C.value,patient_id:oe.value,record_date:l,breakfast_foods:"",breakfast_images:[],lunch_foods:"",lunch_images:[],dinner_foods:"",dinner_images:[],note:""}}function Pe(l=""){return{id:"",diagnosis_id:C.value,patient_id:oe.value,record_date:l,exercise_type:"",duration:0,intensity:1,images:[],note:""}}function yl(l){return l.getTime()>Date.now()}function Oe(l){if(l==="custom"){const[b,s]=G.value||["",""];return{start:b||"",end:s||""}}const e=l==="7"?7:30,d=new Date;d.setHours(0,0,0,0);const f=new Date(d);return f.setDate(f.getDate()-(e-1)),{start:ee(f),end:ee(d)}}const Ke=v(()=>Oe(F.value)),te=v(()=>{const{start:l,end:e}=Ke.value;if(!l||!e)return[];const d=[],f=Ae(e),b=Ae(l).getTime();for(;f.getTime()>=b;)d.push(ee(f)),f.setDate(f.getDate()-1);return d}),je=v(()=>z.value.some(l=>Number(l.source)===1));function Re(l){const e=new Map;for(const d of l){const f=String(d.record_date||"");if(!f)continue;const b=e.get(f)||[];b.push(d),e.set(f,b)}return e}const ae=v(()=>Re(z.value)),pe=v(()=>Re(J.value)),fe=v(()=>Re(Q.value)),Se=v(()=>ae.value.get(T.value)||[]),Te=v(()=>pe.value.get(T.value)||[]),Ee=v(()=>fe.value.get(T.value)||[]),bl=[{key:"breakfast",label:"早餐"},{key:"lunch",label:"午餐"},{key:"dinner",label:"晚餐"}];function Ue(l){return l.record_time?String(l.record_time):"未记录具体时间"}function Ge(l){const e={dawn:"凌晨",early_morning:"清晨",morning:"上午",noon:"中午",afternoon:"下午",evening:"晚上",night:"夜间",bedtime:"睡前"},d=String(l.record_time_period||"");return e[d]||d||"未提供时段"}function cl(l){return{1:"低强度",2:"中强度",3:"高强度"}[Number(l)]||"未记录"}function kl(l){const e=d=>d==null||d===""?"—":String(d);return[{label:"空腹血糖",value:`${e(l.fasting_blood_sugar)} mmol/L`},{label:"餐后2h血糖",value:`${e(l.postprandial_blood_sugar)} mmol/L`},{label:"其他血糖",value:`${e(l.other_blood_sugar)} mmol/L`},{label:"血压",value:l.systolic_pressure||l.diastolic_pressure?`${nl(l)} mmHg`:"—"},{label:"西药",value:e(l.western_medicine)},{label:"胰岛素",value:e(l.insulin)},{label:"备注",value:e(l.remark)}]}function ne(l,e){var d,f,b;return["breakfast","lunch","dinner"].includes(l)?((d=pe.value.get(e))==null?void 0:d.length)||0:l==="exercise"?((f=fe.value.get(e))==null?void 0:f.length)||0:l==="tracking"?0:((b=ae.value.get(e))==null?void 0:b.length)||0}const Be=v(()=>{const l=new Map;for(const e of X.value){const d=String(e.note_date||"");!d||l.has(d)||l.set(d,e)}return l}),Je=v(()=>[...te.value].reverse()),_e=v(()=>Je.value.reduce((l,e)=>{const d=ae.value.get(e)||[],f=b=>d.map(s=>wl(s[b])).find(s=>s!==null)??null;return l.fasting.push(f("fasting_blood_sugar")),l.postprandial.push(f("postprandial_blood_sugar")),l},{fasting:[],postprandial:[]})),xl=v(()=>[..._e.value.fasting,..._e.value.postprandial].some(l=>l!=null)),Vl=v(()=>({tooltip:{trigger:"axis"},legend:{top:0,data:["空腹血糖","餐后血糖"]},grid:{left:24,right:24,top:52,bottom:20,containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:Je.value.map(l=>Qe(l))},yAxis:{type:"value",name:"mmol/L",splitLine:{lineStyle:{color:"#e5e7eb"}}},series:[{name:"空腹血糖",type:"line",smooth:!0,connectNulls:!0,data:_e.value.fasting,symbolSize:7,itemStyle:{color:"#2563eb"},lineStyle:{width:3,color:"#2563eb"}},{name:"餐后血糖",type:"line",smooth:!0,connectNulls:!0,data:_e.value.postprandial,symbolSize:7,itemStyle:{color:"#f97316"},lineStyle:{width:3,color:"#f97316"}}]}));function Qe(l){return l.slice(5)}function wl(l){if(l===""||l==null)return null;const e=Number(l);return!Number.isFinite(e)||e===0?null:e}function I(l,e){const d=ae.value.get(e)||[],f=pe.value.get(e)||[],b=fe.value.get(e)||[],s=Be.value.get(e),U={fasting:"fasting_blood_sugar",postprandial:"postprandial_blood_sugar",other:"other_blood_sugar",western:"western_medicine",insulin:"insulin"}[l];if(U||l==="bp"){const R=d.filter(w=>l==="bp"?!!(w.systolic_pressure||w.diastolic_pressure):w[U]!=null&&w[U]!==""),L=w=>l==="fasting"?Vt(w.fasting_blood_sugar,h.age):l==="postprandial"?wt(w.postprandial_blood_sugar,h.age):l==="other"?Dt(w.other_blood_sugar,h.age):l==="bp"&&Ct(w);return{value:R.map(w=>l==="bp"?nl(w):String(w[U])).join(" / "),isHigh:R.some(L),hasRecord:R.length>0,isPatientSelf:R.some(w=>Number(w.source)===1)}}if(["breakfast","lunch","dinner"].includes(l)){const R=f.filter(L=>{var w;return L[l]||L[`${l}_foods`]||((w=L[`${l}_images`])==null?void 0:w.length)}).length;return{value:R?"✓":"",isHigh:!1,hasRecord:R>0}}return l==="exercise"?{value:b.map(R=>R.duration!=null?`${R.duration}min`:R.exercise_type||"已记录").join(" / "),isHigh:!1,hasRecord:b.length>0}:l==="tracking"?{value:s!=null&&s.content?Ze(s.content):"",isHigh:!1,hasRecord:!!(s!=null&&s.content)}:{value:"",isHigh:!1,hasRecord:!1}}async function E(){const l=++Z,e=C.value;if(!e){se.value=!1,z.value=[],J.value=[],Q.value=[],X.value=[];return}const{start:d,end:f}=Ke.value;if(F.value==="custom"&&(!d||!f))return;const b=[...te.value];se.value=!0;try{const s=await pt({id:e,start_date:d,end_date:f}),N=await ft({diagnosis_id:e});if(l!==Z||e!==C.value)return;z.value=Array.isArray(s==null?void 0:s.blood_records)?s.blood_records:[],J.value=Array.isArray(s==null?void 0:s.diet_records)?s.diet_records:[],Q.value=Array.isArray(s==null?void 0:s.exercise_records)?s.exercise_records:[],X.value=Array.isArray(N)?N.filter(U=>b.includes(String((U==null?void 0:U.note_date)||""))):[]}catch{l===Z&&(z.value=[],J.value=[],Q.value=[],X.value=[])}finally{l===Z&&(se.value=!1)}}function Dl(){if(F.value==="custom"&&!G.value){const l=Oe("7");G.value=[l.start,l.end]}E(),Le(le)}function Cl(){F.value==="custom"&&E()}function Xe(l){const e=String(l||"");return/^\d{2}:\d{2}$/.test(e)?`${e}:00`:e}function ge(l,e){D.value&&(p.value={...ze(e),...l},he.value=Xe(l==null?void 0:l.record_time),q.value=!0)}function ye(l,e){D.value&&(V.value={...qe(e),...l,breakfast_images:[...(l==null?void 0:l.breakfast_images)||[]],lunch_images:[...(l==null?void 0:l.lunch_images)||[]],dinner_images:[...(l==null?void 0:l.dinner_images)||[]]},P.value=!0)}function be(l,e){D.value&&(c.value={...Pe(e),...l,...l?{duration:l.duration??null,intensity:l.intensity??null}:{},images:[...(l==null?void 0:l.images)||[]]},O.value=!0)}function ce(l){if(!D.value)return;const e=te.value[0]||ee(new Date);if(l==="blood")return ge(void 0,e);if(l==="diet")return ye(void 0,e);if(l==="exercise")return be(void 0,e);ke("tracking",$e.value)}function ke(l,e){var f,b,s;if(!Ve(l,e))return;if(l==="tracking"){const N=Be.value.get(e);S.value={note_date:e,existing_content:String((N==null?void 0:N.content)||""),content:""},K.value=!0;return}if((((f=ae.value.get(e))==null?void 0:f.length)||0)+(((b=pe.value.get(e))==null?void 0:b.length)||0)+(((s=fe.value.get(e))==null?void 0:s.length)||0)){T.value=e,ue.value=!0;return}if(["breakfast","lunch","dinner"].includes(l))return ye(void 0,e);if(l==="exercise")return be(void 0,e);ge(void 0,e)}async function $l(){if(!D.value||de.value)return;if(!p.value.record_date){W.msgWarning("请选择记录日期");return}const l=C.value,e={...p.value};"record_time_estimated"in e&&Xe(e.record_time)!==he.value&&(e.record_time_estimated=0,e.record_time_period="",e.record_time_text=""),de.value=!0;try{if(e.id?await _t(e):await gt(e),l!==C.value)return;q.value=!1,await E()}finally{de.value=!1}}async function Rl(){if(!D.value||re.value)return;if(!V.value.record_date){W.msgWarning("请选择记录日期");return}const l=C.value,e={...V.value};re.value=!0;try{if(e.id?await yt(e):await bt(e),l!==C.value)return;P.value=!1,await E()}finally{re.value=!1}}async function Sl(){if(!D.value||me.value)return;if(!c.value.record_date){W.msgWarning("请选择记录日期");return}if(!c.value.exercise_type){W.msgWarning("请选择运动类型");return}if(!c.value.id&&!c.value.duration){W.msgWarning("请输入运动时长");return}const l=C.value,e={...c.value,duration:c.value.duration??null,intensity:c.value.intensity??null};me.value=!0;try{if(e.id?await ct(e):await kt(e),l!==C.value)return;O.value=!1,await E()}finally{me.value=!1}}async function Tl(){if(ve.value)return;if(!S.value.note_date){W.msgWarning("请选择记录日期");return}if(!j.value){W.msgWarning("仅支持给今天追加跟踪备注");return}const l=S.value.content.trim();if(!l){W.msgWarning("请输入跟踪备注");return}const e=C.value;ve.value=!0;try{if(await xt({diagnosis_id:e,tracking_content:l}),e!==C.value)return;K.value=!1,await E()}finally{ve.value=!1}}function Ze(l){return Me(l)[0]||""}function Me(l){return l.split(` `).map(e=>e.trim()).filter(Boolean)}function xe(l){var e;return String(((e=Be.value.get(l))==null?void 0:e.content)||"")}function El(l){return Ze(l)}function Ve(l,e){return l==="tracking"?!!xe(e)||D.value&&e===$e.value:D.value||ne(l,e)>0}return Ll(()=>h.diagnosisId,()=>{ue.value=!1,q.value=!1,P.value=!1,O.value=!1,K.value=!1,z.value=[],J.value=[],Q.value=[],X.value=[],E(),Le(le)}),Hl(()=>{h.diagnosisId&&E(),Le(le),window.addEventListener("resize",le)}),Yl(()=>{Z++,window.removeEventListener("resize",le)}),ol({refresh:E}),(l,e)=>{const d=Wl,f=Il,b=tt,s=Fl,N=zl,U=Ol,R=Al,L=Jl,w=Ql,el=Xl,Ul=Gl,_=lt,Bl=at,ie=nt,H=it,we=et,De=Zl,Ne=ot,Ce=rt,B=ut,ll=st,Ml=dt;return hl((o(),r("div",Rt,[i("div",St,[i("div",Tt,[a(f,{modelValue:F.value,"onUpdate:modelValue":e[0]||(e[0]=t=>F.value=t),onChange:Dl},{default:n(()=>[a(d,{value:"7"},{default:n(()=>[...e[44]||(e[44]=[m("最近7天",-1)])]),_:1}),a(d,{value:"30"},{default:n(()=>[...e[45]||(e[45]=[m("最近30天",-1)])]),_:1}),a(d,{value:"custom"},{default:n(()=>[...e[46]||(e[46]=[m("自定义",-1)])]),_:1})]),_:1},8,["modelValue"]),F.value==="custom"?(o(),x(b,{key:0,modelValue:G.value,"onUpdate:modelValue":e[1]||(e[1]=t=>G.value=t),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",clearable:!1,"disabled-date":yl,onChange:Cl},null,8,["modelValue"])):y("",!0)]),D.value?(o(),r("div",Et,[je.value?(o(),r("span",Ut,[...e[47]||(e[47]=[i("span",{class:"daily-matrix__cell-patient"},"自录",-1),i("span",{class:"daily-matrix__legend-text"},"= 患者在小程序自录",-1)])])):y("",!0),a(s,{type:"primary",onClick:e[2]||(e[2]=t=>ce("blood"))},{default:n(()=>[...e[48]||(e[48]=[m("+血糖",-1)])]),_:1}),a(s,{onClick:e[3]||(e[3]=t=>ce("diet"))},{default:n(()=>[...e[49]||(e[49]=[m("+饮食",-1)])]),_:1}),a(s,{onClick:e[4]||(e[4]=t=>ce("exercise"))},{default:n(()=>[...e[50]||(e[50]=[m("+运动",-1)])]),_:1}),a(s,{onClick:e[5]||(e[5]=t=>ce("tracking"))},{default:n(()=>[...e[51]||(e[51]=[m("+备注",-1)])]),_:1}),a(s,{onClick:E},{default:n(()=>[...e[52]||(e[52]=[m("刷新",-1)])]),_:1})])):(o(),r("div",Bt,[je.value?(o(),r("span",Mt,[...e[53]||(e[53]=[i("span",{class:"daily-matrix__cell-patient"},"自录",-1),i("span",{class:"daily-matrix__legend-text"},"= 患者在小程序自录",-1)])])):y("",!0),a(s,{onClick:E},{default:n(()=>[...e[54]||(e[54]=[m("刷新",-1)])]),_:1})]))]),i("div",{ref_key:"tableWrapRef",ref:We,class:"daily-matrix__table-wrap"},[a(R,{data:_l.value,border:"",stripe:"","row-key":"key",class:"daily-matrix__table","empty-text":"暂无记录"},{default:n(()=>[a(N,{prop:"label",label:"指标",fixed:"left",width:"120"}),(o(!0),r($,null,Y(te.value,t=>(o(),x(N,{key:t,label:Qe(t),"min-width":gl.value,align:"center"},{default:n(({row:u})=>[i("div",{class:Pl(["daily-matrix__cell",{"is-clickable":Ve(u.key,t),"is-empty":!I(u.key,t).hasRecord,"is-high":I(u.key,t).isHigh,"is-patient-self":I(u.key,t).isPatientSelf&&I(u.key,t).hasRecord}]),role:Ve(u.key,t)?"button":void 0,tabindex:Ve(u.key,t)?0:void 0,onClick:M=>ke(u.key,t),onKeydown:[al(M=>ke(u.key,t),["enter"]),al(ql(M=>ke(u.key,t),["prevent"]),["space"])]},[u.key==="tracking"&&xe(t)?(o(),x(U,{key:0,placement:"top",effect:"light","show-after":150},{content:n(()=>[i("div",Lt,[(o(!0),r($,null,Y(Me(xe(t)),(M,A)=>(o(),r("div",{key:`${t}-${A}`,class:"daily-matrix__tracking-tooltip-line"},g(M),1))),128))])]),default:n(()=>[i("div",Ht,g(El(xe(t))),1)]),_:2},1024)):I(u.key,t).value?(o(),r($,{key:1},[i("span",null,g(I(u.key,t).value),1),ne(u.key,t)>1?(o(),r("span",Yt,g(ne(u.key,t))+"条 ",1)):y("",!0),I(u.key,t).isHigh?(o(),r("span",ht,"↑")):y("",!0),I(u.key,t).isPatientSelf?(o(),x(U,{key:2,content:"患者在小程序自录的数据",placement:"top","show-after":120},{default:n(()=>[...e[55]||(e[55]=[i("span",{class:"daily-matrix__cell-patient"},"自录",-1)])]),_:1})):y("",!0)],64)):(o(),r($,{key:2},[ne(u.key,t)>0?(o(),r("span",It,"查看"+g(ne(u.key,t))+"条",1)):(o(),r("span",Wt,"—"))],64))],42,Nt)]),_:2},1032,["label","min-width"]))),128))]),_:1},8,["data"])],512),i("div",Ft,[e[56]||(e[56]=i("div",{class:"daily-matrix__section-title"},"血糖趋势",-1)),e[57]||(e[57]=i("p",{class:"daily-matrix__hint"},"按日展示最新有效血糖值;点击表格查看当天全部原始记录。",-1)),xl.value?(o(),x(Kl(jl),{key:0,class:"daily-matrix__chart-canvas",option:Vl.value,autoresize:""},null,8,["option"])):(o(),x(L,{key:1,description:"当前时间范围暂无血糖数据","image-size":84}))]),dl.value?(o(),r("div",At,[e[58]||(e[58]=i("div",{class:"daily-matrix__section-title"},"待办事项",-1)),a(mt,{"diagnosis-id":C.value,"patient-id":oe.value,"patient-name":ul.value,"read-only":He.value},null,8,["diagnosis-id","patient-id","patient-name","read-only"])])):y("",!0),a(Ul,{modelValue:ue.value,"onUpdate:modelValue":e[9]||(e[9]=t=>ue.value=t),title:`${T.value} 日常记录明细`,size:"min(640px, 100vw)"},{default:n(()=>[e[72]||(e[72]=i("p",{class:"daily-matrix__hint"},"每张卡片是一条独立记录;相同数值也不会合并。请在对应记录上点击编辑。",-1)),i("section",zt,[i("div",qt,[i("h3",null,"血糖血压 · "+g(Se.value.length)+"条",1),D.value?(o(),x(s,{key:0,link:"",type:"primary",onClick:e[6]||(e[6]=t=>ge(void 0,T.value))},{default:n(()=>[...e[59]||(e[59]=[m("新增一条",-1)])]),_:1})):y("",!0)]),Se.value.length?y("",!0):(o(),x(L,{key:0,description:"当天暂无血糖血压记录","image-size":48})),(o(!0),r($,null,Y(Se.value,t=>(o(),r("article",{key:t.id,class:"daily-matrix__detail-record"},[i("header",Pt,[i("strong",null,[m(g(Ue(t))+" ",1),i("small",null,"#"+g(t.id),1)]),D.value?(o(),x(s,{key:0,link:"",type:"primary",onClick:u=>ge(t,T.value)},{default:n(()=>[...e[60]||(e[60]=[m("编辑此条",-1)])]),_:1},8,["onClick"])):y("",!0)]),i("div",Ot,[Number(t.record_time_estimated)===1?(o(),x(w,{key:0,type:"warning",size:"small"},{default:n(()=>[...e[61]||(e[61]=[m("估计时间",-1)])]),_:1})):y("",!0),t.record_time_period?(o(),x(w,{key:1,type:"info",size:"small"},{default:n(()=>[m("时段:"+g(Ge(t)),1)]),_:2},1024)):y("",!0),t.followup_audio_task_id?(o(),x(w,{key:2,size:"small"},{default:n(()=>[...e[62]||(e[62]=[m("随访录音",-1)])]),_:1})):y("",!0),Number(t.source)===1?(o(),r("span",Kt,"患者自录")):y("",!0)]),t.record_time_text?(o(),r("p",jt,"时间原文:"+g(t.record_time_text),1)):y("",!0),i("dl",Gt,[(o(!0),r($,null,Y(kl(t),u=>(o(),r($,{key:u.label},[i("dt",null,g(u.label),1),i("dd",null,g(u.value),1)],64))),128))])]))),128))]),i("section",Jt,[i("div",Qt,[i("h3",null,"饮食 · "+g(Te.value.length)+"条",1),D.value?(o(),x(s,{key:0,link:"",type:"primary",onClick:e[7]||(e[7]=t=>ye(void 0,T.value))},{default:n(()=>[...e[63]||(e[63]=[m("新增一条",-1)])]),_:1})):y("",!0)]),Te.value.length?y("",!0):(o(),x(L,{key:0,description:"当天暂无饮食记录","image-size":48})),(o(!0),r($,null,Y(Te.value,t=>(o(),r("article",{key:t.id,class:"daily-matrix__detail-record"},[i("header",Xt,[i("strong",null,[m(g(Ue(t))+" ",1),i("small",null,"#"+g(t.id),1)]),D.value?(o(),x(s,{key:0,link:"",type:"primary",onClick:u=>ye(t,T.value)},{default:n(()=>[...e[64]||(e[64]=[m("编辑此条",-1)])]),_:1},8,["onClick"])):y("",!0)]),i("dl",Zt,[(o(),r($,null,Y(bl,u=>{var M;return o(),r($,{key:u.key},[i("dt",null,g(u.label),1),i("dd",null,[m(g(t[`${u.key}_foods`]||t[u.key]||"—")+" ",1),(M=t[`${u.key}_images`])!=null&&M.length?(o(),r("div",ea,[(o(!0),r($,null,Y(t[`${u.key}_images`],(A,tl)=>(o(),x(el,{key:`${A}-${tl}`,src:A,"preview-src-list":t[`${u.key}_images`],"initial-index":tl,"preview-teleported":"",fit:"cover"},null,8,["src","preview-src-list","initial-index"]))),128))])):y("",!0)])],64)}),64)),e[65]||(e[65]=i("dt",null,"备注",-1)),i("dd",null,g(t.note||"—"),1)])]))),128))]),i("section",la,[i("div",ta,[i("h3",null,"运动 · "+g(Ee.value.length)+"条",1),D.value?(o(),x(s,{key:0,link:"",type:"primary",onClick:e[8]||(e[8]=t=>be(void 0,T.value))},{default:n(()=>[...e[66]||(e[66]=[m("新增一条",-1)])]),_:1})):y("",!0)]),Ee.value.length?y("",!0):(o(),x(L,{key:0,description:"当天暂无运动记录","image-size":48})),(o(!0),r($,null,Y(Ee.value,t=>{var u;return o(),r("article",{key:t.id,class:"daily-matrix__detail-record"},[i("header",aa,[i("strong",null,[m(g(Ue(t))+" ",1),i("small",null,"#"+g(t.id),1)]),D.value?(o(),x(s,{key:0,link:"",type:"primary",onClick:M=>be(t,T.value)},{default:n(()=>[...e[67]||(e[67]=[m("编辑此条",-1)])]),_:1},8,["onClick"])):y("",!0)]),i("dl",na,[e[68]||(e[68]=i("dt",null,"运动",-1)),i("dd",null,g(t.exercise_type||"—"),1),e[69]||(e[69]=i("dt",null,"时长",-1)),i("dd",null,g(t.duration==null?"未记录":`${t.duration} 分钟`),1),e[70]||(e[70]=i("dt",null,"强度",-1)),i("dd",null,g(cl(t.intensity)),1),e[71]||(e[71]=i("dt",null,"备注",-1)),i("dd",null,g(t.note||"—"),1)]),(u=t.images)!=null&&u.length?(o(),r("div",ia,[(o(!0),r($,null,Y(t.images,(M,A)=>(o(),x(el,{key:`${M}-${A}`,src:M,"preview-src-list":t.images,"initial-index":A,"preview-teleported":"",fit:"cover"},null,8,["src","preview-src-list","initial-index"]))),128))])):y("",!0)])}),128))])]),_:1},8,["modelValue","title"]),a(De,{modelValue:q.value,"onUpdate:modelValue":e[21]||(e[21]=t=>q.value=t),title:rl.value,width:"600px","close-on-click-modal":!1},{footer:n(()=>[a(s,{onClick:e[20]||(e[20]=t=>q.value=!1)},{default:n(()=>[...e[78]||(e[78]=[m("取消",-1)])]),_:1}),a(s,{type:"primary",loading:de.value,disabled:!D.value,onClick:$l},{default:n(()=>[...e[79]||(e[79]=[m("确定",-1)])]),_:1},8,["loading","disabled"])]),default:n(()=>[a(we,{model:p.value,"label-width":"120px"},{default:n(()=>[a(_,{label:"记录日期",required:""},{default:n(()=>[a(b,{modelValue:p.value.record_date,"onUpdate:modelValue":e[10]||(e[10]=t=>p.value.record_date=t),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),a(_,{label:"记录时间"},{default:n(()=>[a(Bl,{modelValue:p.value.record_time,"onUpdate:modelValue":e[11]||(e[11]=t=>p.value.record_time=t),placeholder:"选择时间",format:"HH:mm","value-format":"HH:mm",class:"w-full"},null,8,["modelValue"])]),_:1}),Number(p.value.record_time_estimated)===1?(o(),x(_,{key:0,label:"时间说明"},{default:n(()=>[i("div",oa," 估计时间 · "+g(Ge(p.value))+";原文:"+g(p.value.record_time_text||"未提供")+"。 手动修改记录时间后会清除估计标记;只改数值则保留来源。 ",1)]),_:1})):y("",!0),a(_,{label:"空腹血糖"},{default:n(()=>[a(ie,{modelValue:p.value.fasting_blood_sugar,"onUpdate:modelValue":e[12]||(e[12]=t=>p.value.fasting_blood_sugar=t),precision:2,step:.1,min:0,max:50},null,8,["modelValue"]),e[73]||(e[73]=i("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),a(_,{label:"餐后2小时血糖"},{default:n(()=>[a(ie,{modelValue:p.value.postprandial_blood_sugar,"onUpdate:modelValue":e[13]||(e[13]=t=>p.value.postprandial_blood_sugar=t),precision:2,step:.1,min:0,max:50},null,8,["modelValue"]),e[74]||(e[74]=i("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),a(_,{label:"其他血糖"},{default:n(()=>[a(H,{modelValue:p.value.other_blood_sugar,"onUpdate:modelValue":e[14]||(e[14]=t=>p.value.other_blood_sugar=t),type:"number",style:{width:"200px"}},null,8,["modelValue"]),e[75]||(e[75]=i("span",{class:"ml-2"},"mmol/L",-1))]),_:1}),a(_,{label:"收缩压(高压)"},{default:n(()=>[a(ie,{modelValue:p.value.systolic_pressure,"onUpdate:modelValue":e[15]||(e[15]=t=>p.value.systolic_pressure=t),min:0,max:300},null,8,["modelValue"]),e[76]||(e[76]=i("span",{class:"ml-2"},"mmHg",-1))]),_:1}),a(_,{label:"舒张压(低压)"},{default:n(()=>[a(ie,{modelValue:p.value.diastolic_pressure,"onUpdate:modelValue":e[16]||(e[16]=t=>p.value.diastolic_pressure=t),min:0,max:200},null,8,["modelValue"]),e[77]||(e[77]=i("span",{class:"ml-2"},"mmHg",-1))]),_:1}),a(_,{label:"西药"},{default:n(()=>[a(H,{modelValue:p.value.western_medicine,"onUpdate:modelValue":e[17]||(e[17]=t=>p.value.western_medicine=t)},null,8,["modelValue"])]),_:1}),a(_,{label:"胰岛素"},{default:n(()=>[a(H,{modelValue:p.value.insulin,"onUpdate:modelValue":e[18]||(e[18]=t=>p.value.insulin=t)},null,8,["modelValue"])]),_:1}),a(_,{label:"备注"},{default:n(()=>[a(H,{modelValue:p.value.remark,"onUpdate:modelValue":e[19]||(e[19]=t=>p.value.remark=t),type:"textarea",rows:3},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),a(De,{modelValue:P.value,"onUpdate:modelValue":e[31]||(e[31]=t=>P.value=t),title:ml.value,width:"800px","close-on-click-modal":!1},{footer:n(()=>[a(s,{onClick:e[30]||(e[30]=t=>P.value=!1)},{default:n(()=>[...e[83]||(e[83]=[m("取消",-1)])]),_:1}),a(s,{type:"primary",loading:re.value,disabled:!D.value,onClick:Rl},{default:n(()=>[...e[84]||(e[84]=[m("确定",-1)])]),_:1},8,["loading","disabled"])]),default:n(()=>[a(we,{model:V.value,"label-width":"100px"},{default:n(()=>[a(_,{label:"记录日期",required:""},{default:n(()=>[a(b,{modelValue:V.value.record_date,"onUpdate:modelValue":e[22]||(e[22]=t=>V.value.record_date=t),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),a(Ne,{"content-position":"left"},{default:n(()=>[...e[80]||(e[80]=[m("早餐",-1)])]),_:1}),a(_,{label:"食物描述"},{default:n(()=>[a(H,{modelValue:V.value.breakfast_foods,"onUpdate:modelValue":e[23]||(e[23]=t=>V.value.breakfast_foods=t),type:"textarea",rows:2,placeholder:"请输入早餐食物"},null,8,["modelValue"])]),_:1}),a(_,{label:"图片"},{default:n(()=>[a(Ce,{modelValue:V.value.breakfast_images,"onUpdate:modelValue":e[24]||(e[24]=t=>V.value.breakfast_images=t),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),a(Ne,{"content-position":"left"},{default:n(()=>[...e[81]||(e[81]=[m("午餐",-1)])]),_:1}),a(_,{label:"食物描述"},{default:n(()=>[a(H,{modelValue:V.value.lunch_foods,"onUpdate:modelValue":e[25]||(e[25]=t=>V.value.lunch_foods=t),type:"textarea",rows:2,placeholder:"请输入午餐食物"},null,8,["modelValue"])]),_:1}),a(_,{label:"图片"},{default:n(()=>[a(Ce,{modelValue:V.value.lunch_images,"onUpdate:modelValue":e[26]||(e[26]=t=>V.value.lunch_images=t),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),a(Ne,{"content-position":"left"},{default:n(()=>[...e[82]||(e[82]=[m("晚餐",-1)])]),_:1}),a(_,{label:"食物描述"},{default:n(()=>[a(H,{modelValue:V.value.dinner_foods,"onUpdate:modelValue":e[27]||(e[27]=t=>V.value.dinner_foods=t),type:"textarea",rows:2,placeholder:"请输入晚餐食物"},null,8,["modelValue"])]),_:1}),a(_,{label:"图片"},{default:n(()=>[a(Ce,{modelValue:V.value.dinner_images,"onUpdate:modelValue":e[28]||(e[28]=t=>V.value.dinner_images=t),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),a(_,{label:"备注"},{default:n(()=>[a(H,{modelValue:V.value.note,"onUpdate:modelValue":e[29]||(e[29]=t=>V.value.note=t),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),a(De,{modelValue:O.value,"onUpdate:modelValue":e[39]||(e[39]=t=>O.value=t),title:vl.value,width:"600px","close-on-click-modal":!1},{footer:n(()=>[a(s,{onClick:e[38]||(e[38]=t=>O.value=!1)},{default:n(()=>[...e[85]||(e[85]=[m("取消",-1)])]),_:1}),a(s,{type:"primary",loading:me.value,disabled:!D.value,onClick:Sl},{default:n(()=>[...e[86]||(e[86]=[m("确定",-1)])]),_:1},8,["loading","disabled"])]),default:n(()=>[a(we,{model:c.value,"label-width":"120px"},{default:n(()=>[a(_,{label:"记录日期",required:""},{default:n(()=>[a(b,{modelValue:c.value.record_date,"onUpdate:modelValue":e[32]||(e[32]=t=>c.value.record_date=t),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),a(_,{label:"运动类型",required:""},{default:n(()=>[a(ll,{modelValue:c.value.exercise_type,"onUpdate:modelValue":e[33]||(e[33]=t=>c.value.exercise_type=t),placeholder:"请选择运动类型",class:"w-full"},{default:n(()=>[a(B,{label:"散步",value:"散步"}),a(B,{label:"慢跑",value:"慢跑"}),a(B,{label:"游泳",value:"游泳"}),a(B,{label:"瑜伽",value:"瑜伽"}),a(B,{label:"骑自行车",value:"骑自行车"}),a(B,{label:"打太极拳",value:"打太极拳"}),a(B,{label:"其他",value:"其他"})]),_:1},8,["modelValue"])]),_:1}),a(_,{label:"运动时长(分钟)",required:!c.value.id},{default:n(()=>[a(ie,{modelValue:c.value.duration,"onUpdate:modelValue":e[34]||(e[34]=t=>c.value.duration=t),min:0,max:300,placeholder:"未记录"},null,8,["modelValue"]),c.value.id?(o(),r("span",sa,"留空表示未记录")):y("",!0)]),_:1},8,["required"]),a(_,{label:"运动强度"},{default:n(()=>[a(ll,{modelValue:Ie.value,"onUpdate:modelValue":e[35]||(e[35]=t=>Ie.value=t),placeholder:"未记录",class:"w-full"},{default:n(()=>[a(B,{label:"未记录",value:""}),a(B,{label:"低强度",value:1}),a(B,{label:"中强度",value:2}),a(B,{label:"高强度",value:3})]),_:1},8,["modelValue"])]),_:1}),a(_,{label:"运动图片"},{default:n(()=>[a(Ce,{modelValue:c.value.images,"onUpdate:modelValue":e[36]||(e[36]=t=>c.value.images=t),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),a(_,{label:"备注"},{default:n(()=>[a(H,{modelValue:c.value.note,"onUpdate:modelValue":e[37]||(e[37]=t=>c.value.note=t),type:"textarea",rows:3},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),a(De,{modelValue:K.value,"onUpdate:modelValue":e[43]||(e[43]=t=>K.value=t),title:pl.value,width:"600px","close-on-click-modal":!1},{footer:n(()=>[a(s,{onClick:e[42]||(e[42]=t=>K.value=!1)},{default:n(()=>[...e[87]||(e[87]=[m("取消",-1)])]),_:1}),j.value?(o(),x(s,{key:0,type:"primary",loading:ve.value,onClick:Tl},{default:n(()=>[...e[88]||(e[88]=[m("确定",-1)])]),_:1},8,["loading"])):y("",!0)]),default:n(()=>[a(we,{model:S.value,"label-width":"100px"},{default:n(()=>[a(_,{label:"记录日期",required:""},{default:n(()=>[a(b,{modelValue:S.value.note_date,"onUpdate:modelValue":e[40]||(e[40]=t=>S.value.note_date=t),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full",disabled:!0},null,8,["modelValue"])]),_:1}),S.value.existing_content?(o(),x(_,{key:0,label:"已有备注"},{default:n(()=>[i("div",ua,[(o(!0),r($,null,Y(Me(S.value.existing_content),(t,u)=>(o(),r("div",{key:`${S.value.note_date}-${u}`,class:"daily-matrix__tracking-line"},g(t),1))),128))])]),_:1})):y("",!0),a(_,{label:j.value?"追加备注":"备注内容",required:""},{default:n(()=>[a(H,{modelValue:S.value.content,"onUpdate:modelValue":e[41]||(e[41]=t=>S.value.content=t),type:"textarea",rows:5,maxlength:"1000","show-word-limit":"",disabled:!j.value,placeholder:j.value?"请输入跟踪备注":"历史跟踪备注仅支持查看"},null,8,["modelValue","disabled","placeholder"])]),_:1},8,["label"])]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])),[[Ml,se.value]])}}}),$a=$t(ra,[["__scopeId","data-v-2663c148"]]);export{$a as default}; diff --git a/server/public/admin/assets/DiagnosisTodoList-CE1isNg2.js b/server/public/admin/assets/DiagnosisTodoList-VonOdKxB.js similarity index 97% rename from server/public/admin/assets/DiagnosisTodoList-CE1isNg2.js rename to server/public/admin/assets/DiagnosisTodoList-VonOdKxB.js index ca89fc1f0..feaf19c68 100644 --- a/server/public/admin/assets/DiagnosisTodoList-CE1isNg2.js +++ b/server/public/admin/assets/DiagnosisTodoList-VonOdKxB.js @@ -1 +1 @@ -import{o as Q,R as X,bp as Z,q as c,r as y,s as T,ac as h,O as A,D as o,L as n,v as t,bf as ee,C as E,u as i,be as te,K as ae,bl as oe,bm as se,T as w,bn as le,aB as ne,bd as ie,bb as de,az as re,aA as ue,p as me,aC as N,M as k,bk as ce,n as pe}from"./.pnpm-CyuAWpdG.js";import{_ as fe}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{a7 as _e,a8 as ge,a9 as be}from"./tcm-QAkeqQ9Q.js";import{h as ve}from"./perm-DOfZAzJJ.js";import{j as x,_ as ye}from"./index-Dxvz9lb1.js";const we={class:"diagnosis-todo-list"},ke={class:"toolbar"},xe={key:0,class:"text-danger"},Ve={key:1},Ce={key:1,class:"text-muted"},De={class:"pagination-wrap"},Te=Q({__name:"DiagnosisTodoList",props:{diagnosisId:{},patientId:{},patientName:{},readOnly:{type:Boolean}},setup(R,{expose:B}){const V=["tcm.diagnosis/dailyRecord"],d=R,b=me(()=>ve(V)),l=N({page:1,size:15,count:0,loading:!1,lists:[]}),p=k(""),u=async()=>{if(!d.diagnosisId||Number(d.diagnosisId)<=0||!b.value){l.lists=[],l.count=0;return}l.loading=!0;try{const s={page_no:l.page,page_size:l.size,diagnosis_id:Number(d.diagnosisId)};p.value!==""&&p.value!==void 0&&(s.status=Number(p.value));const e=await _e(s);l.count=Number((e==null?void 0:e.count)??0),l.lists=Array.isArray(e==null?void 0:e.lists)?e.lists:[]}catch{l.lists=[],l.count=0}finally{l.loading=!1}};X(()=>d.diagnosisId,()=>{l.page=1,u()},{immediate:!0});const F=()=>{l.page=1,u()},L=s=>{switch(Number(s)){case 0:return"info";case 1:return"success";case 2:return"warning";case 3:return"danger";default:return"info"}},f=k(!1),C=k(!1),v=k(),r=N({remindAt:"",content:""}),M={remindAt:[{required:!0,message:"请选择提醒时间",trigger:"change"}],content:[{required:!0,message:"请输入提醒内容",trigger:"blur"},{max:500,message:"内容最多 500 字",trigger:"blur"}]},S=s=>{const e=new Date;return e.setHours(0,0,0,0),s.getTime(){if(!d.diagnosisId||!b.value){x.msgWarning("诊单未保存,无法添加待办");return}r.remindAt="",r.content="",f.value=!0,pe(()=>{var s;return(s=v.value)==null?void 0:s.clearValidate()})},O=async()=>{if(!v.value||!await v.value.validate().catch(()=>!1))return;const e=Number(r.remindAt);if(!Number.isFinite(e)||e<=Date.now()+30*1e3){x.msgWarning("提醒时间必须晚于当前时间至少 30 秒");return}C.value=!0;try{await ge({diagnosis_id:Number(d.diagnosisId),content:r.content.trim(),remind_time:Math.floor(e/1e3)}),f.value=!1,u()}catch{}finally{C.value=!1}},P=async s=>{if(!(!b.value||d.readOnly)){try{await x.confirm(`确认取消「${s.remind_time_text} · ${U(s.content,30)}」吗?`)}catch{return}try{await be({id:Number(s.id)}),x.msgSuccess("已取消"),u()}catch{}}},U=(s,e)=>s?s.length>e?s.slice(0,e)+"...":s:"";return B({refresh:u}),(s,e)=>{const _=ae,g=te,Y=ee,m=oe,$=se,q=ce,H=fe,W=re,D=de,j=ue,G=ie,K=ne,I=Z("perms"),J=le;return c(),y("div",we,[T("div",ke,[h((c(),A(_,{type:"primary",disabled:!d.diagnosisId||!b.value,onClick:z},{default:o(()=>[...e[6]||(e[6]=[n(" + 新增待办 ",-1)])]),_:1},8,["disabled"])),[[I,V]]),t(Y,{modelValue:i(p),"onUpdate:modelValue":e[0]||(e[0]=a=>E(p)?p.value=a:null),class:"ml-3",onChange:F},{default:o(()=>[t(g,{value:""},{default:o(()=>[...e[7]||(e[7]=[n("全部",-1)])]),_:1}),t(g,{value:0},{default:o(()=>[...e[8]||(e[8]=[n("待执行",-1)])]),_:1}),t(g,{value:1},{default:o(()=>[...e[9]||(e[9]=[n("已发送",-1)])]),_:1}),t(g,{value:3},{default:o(()=>[...e[10]||(e[10]=[n("失败",-1)])]),_:1}),t(g,{value:2},{default:o(()=>[...e[11]||(e[11]=[n("已取消",-1)])]),_:1})]),_:1},8,["modelValue"]),t(_,{class:"ml-3",onClick:u},{default:o(()=>[...e[12]||(e[12]=[n("刷新",-1)])]),_:1})]),h((c(),A(q,{data:i(l).lists,border:"",class:"todo-table","empty-text":"暂无待办","row-key":"id"},{default:o(()=>[t(m,{label:"提醒时间",prop:"remind_time_text",width:"160"}),t(m,{label:"内容",prop:"content","min-width":"240","show-overflow-tooltip":""}),t(m,{label:"状态",width:"110",align:"center"},{default:o(({row:a})=>[t($,{type:L(a.status),effect:"light",size:"small"},{default:o(()=>[n(w(a.status_text),1)]),_:2},1032,["type"])]),_:1}),t(m,{label:"创建人",prop:"creator_name",width:"120"},{default:o(({row:a})=>[n(w(a.creator_name||"-"),1)]),_:1}),t(m,{label:"推送时间",prop:"notified_at_text",width:"160"},{default:o(({row:a})=>[n(w(a.notified_at_text||"-"),1)]),_:1}),t(m,{label:"失败原因",prop:"error","min-width":"200","show-overflow-tooltip":""},{default:o(({row:a})=>[a.status===3?(c(),y("span",xe,w(a.error||"未知错误"),1)):(c(),y("span",Ve,"-"))]),_:1}),t(m,{label:"操作",width:"120",fixed:"right",align:"center"},{default:o(({row:a})=>[!d.readOnly&&a.status===0&&a.can_cancel?h((c(),A(_,{key:0,link:"",type:"danger",onClick:he=>P(a)},{default:o(()=>[...e[13]||(e[13]=[n(" 取消 ",-1)])]),_:1},8,["onClick"])),[[I,V]]):(c(),y("span",Ce,"-"))]),_:1})]),_:1},8,["data"])),[[J,i(l).loading]]),T("div",De,[t(H,{modelValue:i(l),"onUpdate:modelValue":e[1]||(e[1]=a=>E(l)?l.value=a:null),onChange:u},null,8,["modelValue"])]),t(K,{modelValue:i(f),"onUpdate:modelValue":e[5]||(e[5]=a=>E(f)?f.value=a:null),title:"新增待办",width:"520px","close-on-click-modal":!1},{footer:o(()=>[t(_,{onClick:e[4]||(e[4]=a=>f.value=!1)},{default:o(()=>[...e[15]||(e[15]=[n("取消",-1)])]),_:1}),t(_,{type:"primary",loading:i(C),onClick:O},{default:o(()=>[...e[16]||(e[16]=[n(" 提交 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[t(G,{ref_key:"addFormRef",ref:v,model:i(r),rules:M,"label-width":"100px"},{default:o(()=>[t(D,{label:"提醒时间",prop:"remindAt"},{default:o(()=>[t(W,{modelValue:i(r).remindAt,"onUpdate:modelValue":e[2]||(e[2]=a=>i(r).remindAt=a),type:"datetime",placeholder:"选择提醒时间",format:"YYYY-MM-DD HH:mm","value-format":"x","disabled-date":S,class:"w-full"},null,8,["modelValue"])]),_:1}),t(D,{label:"提醒内容",prop:"content"},{default:o(()=>[t(j,{modelValue:i(r).content,"onUpdate:modelValue":e[3]||(e[3]=a=>i(r).content=a),type:"textarea",rows:4,maxlength:500,"show-word-limit":"",placeholder:"例:3 天后回访患者复测餐后血糖"},null,8,["modelValue"])]),_:1}),t(D,{label:"提醒人"},{default:o(()=>[...e[14]||(e[14]=[T("span",{class:"text-muted"},"企微推送给当前登录账号(创建人本人)",-1)])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),Be=ye(Te,[["__scopeId","data-v-c136d72f"]]);export{Be as default}; +import{o as Q,R as X,bp as Z,q as c,r as y,s as T,ac as h,O as A,D as o,L as n,v as t,bf as ee,C as E,u as i,be as te,K as ae,bl as oe,bm as se,T as w,bn as le,aB as ne,bd as ie,bb as de,az as re,aA as ue,p as me,aC as N,M as k,bk as ce,n as pe}from"./.pnpm-CyuAWpdG.js";import{_ as fe}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{a7 as _e,a8 as ge,a9 as be}from"./tcm-BSADvQNg.js";import{h as ve}from"./perm-CHCBwnFR.js";import{j as x,_ as ye}from"./index-Bkarz3gO.js";const we={class:"diagnosis-todo-list"},ke={class:"toolbar"},xe={key:0,class:"text-danger"},Ve={key:1},Ce={key:1,class:"text-muted"},De={class:"pagination-wrap"},Te=Q({__name:"DiagnosisTodoList",props:{diagnosisId:{},patientId:{},patientName:{},readOnly:{type:Boolean}},setup(R,{expose:B}){const V=["tcm.diagnosis/dailyRecord"],d=R,b=me(()=>ve(V)),l=N({page:1,size:15,count:0,loading:!1,lists:[]}),p=k(""),u=async()=>{if(!d.diagnosisId||Number(d.diagnosisId)<=0||!b.value){l.lists=[],l.count=0;return}l.loading=!0;try{const s={page_no:l.page,page_size:l.size,diagnosis_id:Number(d.diagnosisId)};p.value!==""&&p.value!==void 0&&(s.status=Number(p.value));const e=await _e(s);l.count=Number((e==null?void 0:e.count)??0),l.lists=Array.isArray(e==null?void 0:e.lists)?e.lists:[]}catch{l.lists=[],l.count=0}finally{l.loading=!1}};X(()=>d.diagnosisId,()=>{l.page=1,u()},{immediate:!0});const F=()=>{l.page=1,u()},L=s=>{switch(Number(s)){case 0:return"info";case 1:return"success";case 2:return"warning";case 3:return"danger";default:return"info"}},f=k(!1),C=k(!1),v=k(),r=N({remindAt:"",content:""}),M={remindAt:[{required:!0,message:"请选择提醒时间",trigger:"change"}],content:[{required:!0,message:"请输入提醒内容",trigger:"blur"},{max:500,message:"内容最多 500 字",trigger:"blur"}]},S=s=>{const e=new Date;return e.setHours(0,0,0,0),s.getTime(){if(!d.diagnosisId||!b.value){x.msgWarning("诊单未保存,无法添加待办");return}r.remindAt="",r.content="",f.value=!0,pe(()=>{var s;return(s=v.value)==null?void 0:s.clearValidate()})},O=async()=>{if(!v.value||!await v.value.validate().catch(()=>!1))return;const e=Number(r.remindAt);if(!Number.isFinite(e)||e<=Date.now()+30*1e3){x.msgWarning("提醒时间必须晚于当前时间至少 30 秒");return}C.value=!0;try{await ge({diagnosis_id:Number(d.diagnosisId),content:r.content.trim(),remind_time:Math.floor(e/1e3)}),f.value=!1,u()}catch{}finally{C.value=!1}},P=async s=>{if(!(!b.value||d.readOnly)){try{await x.confirm(`确认取消「${s.remind_time_text} · ${U(s.content,30)}」吗?`)}catch{return}try{await be({id:Number(s.id)}),x.msgSuccess("已取消"),u()}catch{}}},U=(s,e)=>s?s.length>e?s.slice(0,e)+"...":s:"";return B({refresh:u}),(s,e)=>{const _=ae,g=te,Y=ee,m=oe,$=se,q=ce,H=fe,W=re,D=de,j=ue,G=ie,K=ne,I=Z("perms"),J=le;return c(),y("div",we,[T("div",ke,[h((c(),A(_,{type:"primary",disabled:!d.diagnosisId||!b.value,onClick:z},{default:o(()=>[...e[6]||(e[6]=[n(" + 新增待办 ",-1)])]),_:1},8,["disabled"])),[[I,V]]),t(Y,{modelValue:i(p),"onUpdate:modelValue":e[0]||(e[0]=a=>E(p)?p.value=a:null),class:"ml-3",onChange:F},{default:o(()=>[t(g,{value:""},{default:o(()=>[...e[7]||(e[7]=[n("全部",-1)])]),_:1}),t(g,{value:0},{default:o(()=>[...e[8]||(e[8]=[n("待执行",-1)])]),_:1}),t(g,{value:1},{default:o(()=>[...e[9]||(e[9]=[n("已发送",-1)])]),_:1}),t(g,{value:3},{default:o(()=>[...e[10]||(e[10]=[n("失败",-1)])]),_:1}),t(g,{value:2},{default:o(()=>[...e[11]||(e[11]=[n("已取消",-1)])]),_:1})]),_:1},8,["modelValue"]),t(_,{class:"ml-3",onClick:u},{default:o(()=>[...e[12]||(e[12]=[n("刷新",-1)])]),_:1})]),h((c(),A(q,{data:i(l).lists,border:"",class:"todo-table","empty-text":"暂无待办","row-key":"id"},{default:o(()=>[t(m,{label:"提醒时间",prop:"remind_time_text",width:"160"}),t(m,{label:"内容",prop:"content","min-width":"240","show-overflow-tooltip":""}),t(m,{label:"状态",width:"110",align:"center"},{default:o(({row:a})=>[t($,{type:L(a.status),effect:"light",size:"small"},{default:o(()=>[n(w(a.status_text),1)]),_:2},1032,["type"])]),_:1}),t(m,{label:"创建人",prop:"creator_name",width:"120"},{default:o(({row:a})=>[n(w(a.creator_name||"-"),1)]),_:1}),t(m,{label:"推送时间",prop:"notified_at_text",width:"160"},{default:o(({row:a})=>[n(w(a.notified_at_text||"-"),1)]),_:1}),t(m,{label:"失败原因",prop:"error","min-width":"200","show-overflow-tooltip":""},{default:o(({row:a})=>[a.status===3?(c(),y("span",xe,w(a.error||"未知错误"),1)):(c(),y("span",Ve,"-"))]),_:1}),t(m,{label:"操作",width:"120",fixed:"right",align:"center"},{default:o(({row:a})=>[!d.readOnly&&a.status===0&&a.can_cancel?h((c(),A(_,{key:0,link:"",type:"danger",onClick:he=>P(a)},{default:o(()=>[...e[13]||(e[13]=[n(" 取消 ",-1)])]),_:1},8,["onClick"])),[[I,V]]):(c(),y("span",Ce,"-"))]),_:1})]),_:1},8,["data"])),[[J,i(l).loading]]),T("div",De,[t(H,{modelValue:i(l),"onUpdate:modelValue":e[1]||(e[1]=a=>E(l)?l.value=a:null),onChange:u},null,8,["modelValue"])]),t(K,{modelValue:i(f),"onUpdate:modelValue":e[5]||(e[5]=a=>E(f)?f.value=a:null),title:"新增待办",width:"520px","close-on-click-modal":!1},{footer:o(()=>[t(_,{onClick:e[4]||(e[4]=a=>f.value=!1)},{default:o(()=>[...e[15]||(e[15]=[n("取消",-1)])]),_:1}),t(_,{type:"primary",loading:i(C),onClick:O},{default:o(()=>[...e[16]||(e[16]=[n(" 提交 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[t(G,{ref_key:"addFormRef",ref:v,model:i(r),rules:M,"label-width":"100px"},{default:o(()=>[t(D,{label:"提醒时间",prop:"remindAt"},{default:o(()=>[t(W,{modelValue:i(r).remindAt,"onUpdate:modelValue":e[2]||(e[2]=a=>i(r).remindAt=a),type:"datetime",placeholder:"选择提醒时间",format:"YYYY-MM-DD HH:mm","value-format":"x","disabled-date":S,class:"w-full"},null,8,["modelValue"])]),_:1}),t(D,{label:"提醒内容",prop:"content"},{default:o(()=>[t(j,{modelValue:i(r).content,"onUpdate:modelValue":e[3]||(e[3]=a=>i(r).content=a),type:"textarea",rows:4,maxlength:500,"show-word-limit":"",placeholder:"例:3 天后回访患者复测餐后血糖"},null,8,["modelValue"])]),_:1}),t(D,{label:"提醒人"},{default:o(()=>[...e[14]||(e[14]=[T("span",{class:"text-muted"},"企微推送给当前登录账号(创建人本人)",-1)])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),Be=ye(Te,[["__scopeId","data-v-c136d72f"]]);export{Be as default}; diff --git a/server/public/admin/assets/DietRecordList-Cm5sSPXB.js b/server/public/admin/assets/DietRecordList-BzGv2mVr.js similarity index 93% rename from server/public/admin/assets/DietRecordList-Cm5sSPXB.js rename to server/public/admin/assets/DietRecordList-BzGv2mVr.js index 45d6bc3bd..212dbaeac 100644 --- a/server/public/admin/assets/DietRecordList-Cm5sSPXB.js +++ b/server/public/admin/assets/DietRecordList-BzGv2mVr.js @@ -1 +1 @@ -import{o as M,M as y,ap as O,R as Y,q as i,r as u,v as t,D as a,L as m,K as q,P as x,bl as A,T as I,O as F,u as d,bk as P,bd as $,bb as j,az as z,bE as K,aA as W,C as G,aB as H,p as J}from"./.pnpm-CyuAWpdG.js";import{_ as Q}from"./picker-BDO86vcM.js";import{ap as X,aq as Z,a2 as ee,a3 as te}from"./tcm-QAkeqQ9Q.js";import{j as c,_ as oe}from"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const le={class:"diet-record-list"},ae={key:0,class:"mb-4"},de={key:0},ne={key:1},se={key:0},ie={key:1},re={key:0},ue={key:1},me=M({__name:"DietRecordList",props:{diagnosisId:{type:Number,default:0},patientId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},setup(k){const n=k,E=y([]),p=y(!1),V=y(!1),C=J(()=>l.value.id?"编辑记录":"添加记录"),l=y({id:"",diagnosis_id:n.diagnosisId,patient_id:n.patientId,record_date:"",breakfast_foods:"",breakfast_images:[],lunch_foods:"",lunch_images:[],dinner_foods:"",dinner_images:[],note:""}),b=async()=>{if(!(!n.diagnosisId&&!n.patientId))try{const s=await X({diagnosis_id:n.diagnosisId,patient_id:n.patientId});E.value=s}catch(s){console.error("获取记录失败:",s)}},D=()=>{l.value={id:"",diagnosis_id:n.diagnosisId,patient_id:n.patientId,record_date:"",breakfast_foods:"",breakfast_images:[],lunch_foods:"",lunch_images:[],dinner_foods:"",dinner_images:[],note:""},p.value=!0},R=s=>{l.value={...s},p.value=!0},U=async s=>{await c.confirm("确定要删除这条记录吗?");try{await Z({id:s.id}),c.msgSuccess("删除成功"),b()}catch(e){console.error("删除失败:",e)}},B=async()=>{if(!l.value.record_date){c.msgWarning("请选择记录日期");return}V.value=!0;try{l.value.id?(await ee(l.value),c.msgSuccess("编辑成功")):(await te(l.value),c.msgSuccess("添加成功")),p.value=!1,b()}catch(s){console.error("提交失败:",s)}finally{V.value=!1}};return O(()=>{b()}),Y(()=>[n.diagnosisId,n.patientId],()=>{b()}),(s,e)=>{const f=q,_=A,h=P,N=z,r=j,v=K,g=W,w=Q,S=$,T=H;return i(),u("div",le,[k.readOnly?x("",!0):(i(),u("div",ae,[t(f,{type:"primary",onClick:D},{default:a(()=>[...e[10]||(e[10]=[m("添加记录",-1)])]),_:1})])),t(h,{data:d(E),border:""},{default:a(()=>[t(_,{prop:"record_date",label:"记录日期",width:"120"}),t(_,{label:"早餐","min-width":"200"},{default:a(({row:o})=>[o.breakfast_foods?(i(),u("div",de,I(o.breakfast_foods),1)):(i(),u("span",ne,"-"))]),_:1}),t(_,{label:"午餐","min-width":"200"},{default:a(({row:o})=>[o.lunch_foods?(i(),u("div",se,I(o.lunch_foods),1)):(i(),u("span",ie,"-"))]),_:1}),t(_,{label:"晚餐","min-width":"200"},{default:a(({row:o})=>[o.dinner_foods?(i(),u("div",re,I(o.dinner_foods),1)):(i(),u("span",ue,"-"))]),_:1}),t(_,{prop:"note",label:"备注","show-overflow-tooltip":""}),k.readOnly?x("",!0):(i(),F(_,{key:0,label:"操作",width:"150",fixed:"right"},{default:a(({row:o})=>[t(f,{link:"",type:"primary",onClick:L=>R(o)},{default:a(()=>[...e[11]||(e[11]=[m("编辑",-1)])]),_:1},8,["onClick"]),t(f,{link:"",type:"danger",onClick:L=>U(o)},{default:a(()=>[...e[12]||(e[12]=[m("删除",-1)])]),_:1},8,["onClick"])]),_:1}))]),_:1},8,["data"]),t(T,{modelValue:d(p),"onUpdate:modelValue":e[9]||(e[9]=o=>G(p)?p.value=o:null),title:d(C),width:"800px"},{footer:a(()=>[t(f,{onClick:e[8]||(e[8]=o=>p.value=!1)},{default:a(()=>[...e[16]||(e[16]=[m("取消",-1)])]),_:1}),t(f,{type:"primary",onClick:B,loading:d(V)},{default:a(()=>[...e[17]||(e[17]=[m("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[t(S,{model:d(l),"label-width":"100px"},{default:a(()=>[t(r,{label:"记录日期",required:""},{default:a(()=>[t(N,{modelValue:d(l).record_date,"onUpdate:modelValue":e[0]||(e[0]=o=>d(l).record_date=o),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),t(v,{"content-position":"left"},{default:a(()=>[...e[13]||(e[13]=[m("早餐",-1)])]),_:1}),t(r,{label:"食物描述"},{default:a(()=>[t(g,{modelValue:d(l).breakfast_foods,"onUpdate:modelValue":e[1]||(e[1]=o=>d(l).breakfast_foods=o),type:"textarea",rows:2,placeholder:"请输入早餐食物"},null,8,["modelValue"])]),_:1}),t(r,{label:"图片"},{default:a(()=>[t(w,{modelValue:d(l).breakfast_images,"onUpdate:modelValue":e[2]||(e[2]=o=>d(l).breakfast_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),t(v,{"content-position":"left"},{default:a(()=>[...e[14]||(e[14]=[m("午餐",-1)])]),_:1}),t(r,{label:"食物描述"},{default:a(()=>[t(g,{modelValue:d(l).lunch_foods,"onUpdate:modelValue":e[3]||(e[3]=o=>d(l).lunch_foods=o),type:"textarea",rows:2,placeholder:"请输入午餐食物"},null,8,["modelValue"])]),_:1}),t(r,{label:"图片"},{default:a(()=>[t(w,{modelValue:d(l).lunch_images,"onUpdate:modelValue":e[4]||(e[4]=o=>d(l).lunch_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),t(v,{"content-position":"left"},{default:a(()=>[...e[15]||(e[15]=[m("晚餐",-1)])]),_:1}),t(r,{label:"食物描述"},{default:a(()=>[t(g,{modelValue:d(l).dinner_foods,"onUpdate:modelValue":e[5]||(e[5]=o=>d(l).dinner_foods=o),type:"textarea",rows:2,placeholder:"请输入晚餐食物"},null,8,["modelValue"])]),_:1}),t(r,{label:"图片"},{default:a(()=>[t(w,{modelValue:d(l).dinner_images,"onUpdate:modelValue":e[6]||(e[6]=o=>d(l).dinner_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),t(r,{label:"备注"},{default:a(()=>[t(g,{modelValue:d(l).note,"onUpdate:modelValue":e[7]||(e[7]=o=>d(l).note=o),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Ee=oe(me,[["__scopeId","data-v-7c66f363"]]);export{Ee as default}; +import{o as M,M as y,ap as O,R as Y,q as i,r as u,v as t,D as a,L as m,K as q,P as x,bl as A,T as I,O as F,u as d,bk as P,bd as $,bb as j,az as z,bE as K,aA as W,C as G,aB as H,p as J}from"./.pnpm-CyuAWpdG.js";import{_ as Q}from"./picker-BTh9eW9u.js";import{ap as X,aq as Z,a2 as ee,a3 as te}from"./tcm-BSADvQNg.js";import{j as c,_ as oe}from"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const le={class:"diet-record-list"},ae={key:0,class:"mb-4"},de={key:0},ne={key:1},se={key:0},ie={key:1},re={key:0},ue={key:1},me=M({__name:"DietRecordList",props:{diagnosisId:{type:Number,default:0},patientId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},setup(k){const n=k,E=y([]),p=y(!1),V=y(!1),C=J(()=>l.value.id?"编辑记录":"添加记录"),l=y({id:"",diagnosis_id:n.diagnosisId,patient_id:n.patientId,record_date:"",breakfast_foods:"",breakfast_images:[],lunch_foods:"",lunch_images:[],dinner_foods:"",dinner_images:[],note:""}),b=async()=>{if(!(!n.diagnosisId&&!n.patientId))try{const s=await X({diagnosis_id:n.diagnosisId,patient_id:n.patientId});E.value=s}catch(s){console.error("获取记录失败:",s)}},D=()=>{l.value={id:"",diagnosis_id:n.diagnosisId,patient_id:n.patientId,record_date:"",breakfast_foods:"",breakfast_images:[],lunch_foods:"",lunch_images:[],dinner_foods:"",dinner_images:[],note:""},p.value=!0},R=s=>{l.value={...s},p.value=!0},U=async s=>{await c.confirm("确定要删除这条记录吗?");try{await Z({id:s.id}),c.msgSuccess("删除成功"),b()}catch(e){console.error("删除失败:",e)}},B=async()=>{if(!l.value.record_date){c.msgWarning("请选择记录日期");return}V.value=!0;try{l.value.id?(await ee(l.value),c.msgSuccess("编辑成功")):(await te(l.value),c.msgSuccess("添加成功")),p.value=!1,b()}catch(s){console.error("提交失败:",s)}finally{V.value=!1}};return O(()=>{b()}),Y(()=>[n.diagnosisId,n.patientId],()=>{b()}),(s,e)=>{const f=q,_=A,h=P,N=z,r=j,v=K,g=W,w=Q,S=$,T=H;return i(),u("div",le,[k.readOnly?x("",!0):(i(),u("div",ae,[t(f,{type:"primary",onClick:D},{default:a(()=>[...e[10]||(e[10]=[m("添加记录",-1)])]),_:1})])),t(h,{data:d(E),border:""},{default:a(()=>[t(_,{prop:"record_date",label:"记录日期",width:"120"}),t(_,{label:"早餐","min-width":"200"},{default:a(({row:o})=>[o.breakfast_foods?(i(),u("div",de,I(o.breakfast_foods),1)):(i(),u("span",ne,"-"))]),_:1}),t(_,{label:"午餐","min-width":"200"},{default:a(({row:o})=>[o.lunch_foods?(i(),u("div",se,I(o.lunch_foods),1)):(i(),u("span",ie,"-"))]),_:1}),t(_,{label:"晚餐","min-width":"200"},{default:a(({row:o})=>[o.dinner_foods?(i(),u("div",re,I(o.dinner_foods),1)):(i(),u("span",ue,"-"))]),_:1}),t(_,{prop:"note",label:"备注","show-overflow-tooltip":""}),k.readOnly?x("",!0):(i(),F(_,{key:0,label:"操作",width:"150",fixed:"right"},{default:a(({row:o})=>[t(f,{link:"",type:"primary",onClick:L=>R(o)},{default:a(()=>[...e[11]||(e[11]=[m("编辑",-1)])]),_:1},8,["onClick"]),t(f,{link:"",type:"danger",onClick:L=>U(o)},{default:a(()=>[...e[12]||(e[12]=[m("删除",-1)])]),_:1},8,["onClick"])]),_:1}))]),_:1},8,["data"]),t(T,{modelValue:d(p),"onUpdate:modelValue":e[9]||(e[9]=o=>G(p)?p.value=o:null),title:d(C),width:"800px"},{footer:a(()=>[t(f,{onClick:e[8]||(e[8]=o=>p.value=!1)},{default:a(()=>[...e[16]||(e[16]=[m("取消",-1)])]),_:1}),t(f,{type:"primary",onClick:B,loading:d(V)},{default:a(()=>[...e[17]||(e[17]=[m("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[t(S,{model:d(l),"label-width":"100px"},{default:a(()=>[t(r,{label:"记录日期",required:""},{default:a(()=>[t(N,{modelValue:d(l).record_date,"onUpdate:modelValue":e[0]||(e[0]=o=>d(l).record_date=o),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),t(v,{"content-position":"left"},{default:a(()=>[...e[13]||(e[13]=[m("早餐",-1)])]),_:1}),t(r,{label:"食物描述"},{default:a(()=>[t(g,{modelValue:d(l).breakfast_foods,"onUpdate:modelValue":e[1]||(e[1]=o=>d(l).breakfast_foods=o),type:"textarea",rows:2,placeholder:"请输入早餐食物"},null,8,["modelValue"])]),_:1}),t(r,{label:"图片"},{default:a(()=>[t(w,{modelValue:d(l).breakfast_images,"onUpdate:modelValue":e[2]||(e[2]=o=>d(l).breakfast_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),t(v,{"content-position":"left"},{default:a(()=>[...e[14]||(e[14]=[m("午餐",-1)])]),_:1}),t(r,{label:"食物描述"},{default:a(()=>[t(g,{modelValue:d(l).lunch_foods,"onUpdate:modelValue":e[3]||(e[3]=o=>d(l).lunch_foods=o),type:"textarea",rows:2,placeholder:"请输入午餐食物"},null,8,["modelValue"])]),_:1}),t(r,{label:"图片"},{default:a(()=>[t(w,{modelValue:d(l).lunch_images,"onUpdate:modelValue":e[4]||(e[4]=o=>d(l).lunch_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),t(v,{"content-position":"left"},{default:a(()=>[...e[15]||(e[15]=[m("晚餐",-1)])]),_:1}),t(r,{label:"食物描述"},{default:a(()=>[t(g,{modelValue:d(l).dinner_foods,"onUpdate:modelValue":e[5]||(e[5]=o=>d(l).dinner_foods=o),type:"textarea",rows:2,placeholder:"请输入晚餐食物"},null,8,["modelValue"])]),_:1}),t(r,{label:"图片"},{default:a(()=>[t(w,{modelValue:d(l).dinner_images,"onUpdate:modelValue":e[6]||(e[6]=o=>d(l).dinner_images=o),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),t(r,{label:"备注"},{default:a(()=>[t(g,{modelValue:d(l).note,"onUpdate:modelValue":e[7]||(e[7]=o=>d(l).note=o),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Ee=oe(me,[["__scopeId","data-v-7c66f363"]]);export{Ee as default}; diff --git a/server/public/admin/assets/ExerciseRecordList-DI5GCSns.js b/server/public/admin/assets/ExerciseRecordList-BcaGhJU3.js similarity index 94% rename from server/public/admin/assets/ExerciseRecordList-DI5GCSns.js rename to server/public/admin/assets/ExerciseRecordList-BcaGhJU3.js index d8361dc6a..e3ea0d052 100644 --- a/server/public/admin/assets/ExerciseRecordList-DI5GCSns.js +++ b/server/public/admin/assets/ExerciseRecordList-BcaGhJU3.js @@ -1 +1 @@ -import{o as F,M as b,ap as P,R as W,q as g,r as w,v as e,D as o,L as p,K as $,P as k,bl as h,T as E,O as j,u as n,bk as z,bd as J,bb as K,az as G,bh as H,bi as Q,J as X,aA as Z,C as ee,aB as le,p as te}from"./.pnpm-CyuAWpdG.js";import{_ as ae}from"./picker-BDO86vcM.js";import{ar as oe,as as ne,a4 as ie,a5 as de}from"./tcm-QAkeqQ9Q.js";import{j as m,_ as se}from"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const re={class:"exercise-record-list"},ue={key:0,class:"mb-4"},pe=F({__name:"ExerciseRecordList",props:{diagnosisId:{type:Number,default:0},patientId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},setup(y){const d=y,V=b([]),r=b(!1),v=b(!1),I=te(()=>t.value.id?"编辑记录":"添加记录"),t=b({id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",exercise_type:"",duration:0,intensity:1,images:[],note:""}),C=[{label:"低强度",value:1},{label:"中强度",value:2},{label:"高强度",value:3}],R=i=>{const l=C.find(u=>u.value===i);return l?l.label:"未知"},f=async()=>{if(!(!d.diagnosisId&&!d.patientId))try{const i=await oe({diagnosis_id:d.diagnosisId,patient_id:d.patientId});V.value=i}catch(i){console.error("获取记录失败:",i)}},D=()=>{t.value={id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",exercise_type:"",duration:0,intensity:1,images:[],note:""},r.value=!0},B=i=>{t.value={...i},r.value=!0},U=async i=>{await m.confirm("确定要删除这条记录吗?");try{await ne({id:i.id}),m.msgSuccess("删除成功"),f()}catch(l){console.error("删除失败:",l)}},N=async()=>{if(!t.value.record_date){m.msgWarning("请选择记录日期");return}if(!t.value.exercise_type){m.msgWarning("请选择运动类型");return}if(!t.value.duration){m.msgWarning("请输入运动时长");return}v.value=!0;try{t.value.id?(await ie(t.value),m.msgSuccess("编辑成功")):(await de(t.value),m.msgSuccess("添加成功")),r.value=!1,f()}catch(i){console.error("提交失败:",i)}finally{v.value=!1}};return P(()=>{f()}),W(()=>[d.diagnosisId,d.patientId],()=>{f()}),(i,l)=>{const u=$,c=h,O=z,S=G,_=K,s=Q,x=H,T=X,q=ae,L=Z,M=J,Y=le;return g(),w("div",re,[y.readOnly?k("",!0):(g(),w("div",ue,[e(u,{type:"primary",onClick:D},{default:o(()=>[...l[8]||(l[8]=[p("添加记录",-1)])]),_:1})])),e(O,{data:n(V),border:"",style:{width:"100%"}},{default:o(()=>[e(c,{prop:"record_date",label:"记录日期",width:"120"}),e(c,{prop:"exercise_type",label:"运动类型",width:"150"}),e(c,{prop:"duration",label:"运动时长",width:"100"},{default:o(({row:a})=>[p(E(a.duration)+" 分钟 ",1)]),_:1}),e(c,{label:"运动强度",width:"100"},{default:o(({row:a})=>[p(E(R(a.intensity)),1)]),_:1}),e(c,{prop:"note",label:"备注","show-overflow-tooltip":""}),y.readOnly?k("",!0):(g(),j(c,{key:0,label:"操作",width:"150",fixed:"right"},{default:o(({row:a})=>[e(u,{link:"",type:"primary",onClick:A=>B(a)},{default:o(()=>[...l[9]||(l[9]=[p("编辑",-1)])]),_:1},8,["onClick"]),e(u,{link:"",type:"danger",onClick:A=>U(a)},{default:o(()=>[...l[10]||(l[10]=[p("删除",-1)])]),_:1},8,["onClick"])]),_:1}))]),_:1},8,["data"]),e(Y,{modelValue:n(r),"onUpdate:modelValue":l[7]||(l[7]=a=>ee(r)?r.value=a:null),title:n(I),width:"600px"},{footer:o(()=>[e(u,{onClick:l[6]||(l[6]=a=>r.value=!1)},{default:o(()=>[...l[11]||(l[11]=[p("取消",-1)])]),_:1}),e(u,{type:"primary",onClick:N,loading:n(v)},{default:o(()=>[...l[12]||(l[12]=[p("确定",-1)])]),_:1},8,["loading"])]),default:o(()=>[e(M,{model:n(t),"label-width":"120px"},{default:o(()=>[e(_,{label:"记录日期",required:""},{default:o(()=>[e(S,{modelValue:n(t).record_date,"onUpdate:modelValue":l[0]||(l[0]=a=>n(t).record_date=a),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),e(_,{label:"运动类型",required:""},{default:o(()=>[e(x,{modelValue:n(t).exercise_type,"onUpdate:modelValue":l[1]||(l[1]=a=>n(t).exercise_type=a),placeholder:"请选择运动类型",class:"w-full"},{default:o(()=>[e(s,{label:"散步",value:"散步"}),e(s,{label:"慢跑",value:"慢跑"}),e(s,{label:"游泳",value:"游泳"}),e(s,{label:"瑜伽",value:"瑜伽"}),e(s,{label:"骑自行车",value:"骑自行车"}),e(s,{label:"打太极拳",value:"打太极拳"}),e(s,{label:"其他",value:"其他"})]),_:1},8,["modelValue"])]),_:1}),e(_,{label:"运动时长(分钟)",required:""},{default:o(()=>[e(T,{modelValue:n(t).duration,"onUpdate:modelValue":l[2]||(l[2]=a=>n(t).duration=a),min:0,max:300,placeholder:"请输入运动时长"},null,8,["modelValue"])]),_:1}),e(_,{label:"运动强度",required:""},{default:o(()=>[e(x,{modelValue:n(t).intensity,"onUpdate:modelValue":l[3]||(l[3]=a=>n(t).intensity=a),placeholder:"请选择运动强度",class:"w-full"},{default:o(()=>[e(s,{label:"低强度",value:1}),e(s,{label:"中强度",value:2}),e(s,{label:"高强度",value:3})]),_:1},8,["modelValue"])]),_:1}),e(_,{label:"运动图片"},{default:o(()=>[e(q,{modelValue:n(t).images,"onUpdate:modelValue":l[4]||(l[4]=a=>n(t).images=a),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),e(_,{label:"备注"},{default:o(()=>[e(L,{modelValue:n(t).note,"onUpdate:modelValue":l[5]||(l[5]=a=>n(t).note=a),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Ee=se(pe,[["__scopeId","data-v-ab6f0ec7"]]);export{Ee as default}; +import{o as F,M as b,ap as P,R as W,q as g,r as w,v as e,D as o,L as p,K as $,P as k,bl as h,T as E,O as j,u as n,bk as z,bd as J,bb as K,az as G,bh as H,bi as Q,J as X,aA as Z,C as ee,aB as le,p as te}from"./.pnpm-CyuAWpdG.js";import{_ as ae}from"./picker-BTh9eW9u.js";import{ar as oe,as as ne,a4 as ie,a5 as de}from"./tcm-BSADvQNg.js";import{j as m,_ as se}from"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const re={class:"exercise-record-list"},ue={key:0,class:"mb-4"},pe=F({__name:"ExerciseRecordList",props:{diagnosisId:{type:Number,default:0},patientId:{type:Number,default:0},readOnly:{type:Boolean,default:!1}},setup(y){const d=y,V=b([]),r=b(!1),v=b(!1),I=te(()=>t.value.id?"编辑记录":"添加记录"),t=b({id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",exercise_type:"",duration:0,intensity:1,images:[],note:""}),C=[{label:"低强度",value:1},{label:"中强度",value:2},{label:"高强度",value:3}],R=i=>{const l=C.find(u=>u.value===i);return l?l.label:"未知"},f=async()=>{if(!(!d.diagnosisId&&!d.patientId))try{const i=await oe({diagnosis_id:d.diagnosisId,patient_id:d.patientId});V.value=i}catch(i){console.error("获取记录失败:",i)}},D=()=>{t.value={id:"",diagnosis_id:d.diagnosisId,patient_id:d.patientId,record_date:"",exercise_type:"",duration:0,intensity:1,images:[],note:""},r.value=!0},B=i=>{t.value={...i},r.value=!0},U=async i=>{await m.confirm("确定要删除这条记录吗?");try{await ne({id:i.id}),m.msgSuccess("删除成功"),f()}catch(l){console.error("删除失败:",l)}},N=async()=>{if(!t.value.record_date){m.msgWarning("请选择记录日期");return}if(!t.value.exercise_type){m.msgWarning("请选择运动类型");return}if(!t.value.duration){m.msgWarning("请输入运动时长");return}v.value=!0;try{t.value.id?(await ie(t.value),m.msgSuccess("编辑成功")):(await de(t.value),m.msgSuccess("添加成功")),r.value=!1,f()}catch(i){console.error("提交失败:",i)}finally{v.value=!1}};return P(()=>{f()}),W(()=>[d.diagnosisId,d.patientId],()=>{f()}),(i,l)=>{const u=$,c=h,O=z,S=G,_=K,s=Q,x=H,T=X,q=ae,L=Z,M=J,Y=le;return g(),w("div",re,[y.readOnly?k("",!0):(g(),w("div",ue,[e(u,{type:"primary",onClick:D},{default:o(()=>[...l[8]||(l[8]=[p("添加记录",-1)])]),_:1})])),e(O,{data:n(V),border:"",style:{width:"100%"}},{default:o(()=>[e(c,{prop:"record_date",label:"记录日期",width:"120"}),e(c,{prop:"exercise_type",label:"运动类型",width:"150"}),e(c,{prop:"duration",label:"运动时长",width:"100"},{default:o(({row:a})=>[p(E(a.duration)+" 分钟 ",1)]),_:1}),e(c,{label:"运动强度",width:"100"},{default:o(({row:a})=>[p(E(R(a.intensity)),1)]),_:1}),e(c,{prop:"note",label:"备注","show-overflow-tooltip":""}),y.readOnly?k("",!0):(g(),j(c,{key:0,label:"操作",width:"150",fixed:"right"},{default:o(({row:a})=>[e(u,{link:"",type:"primary",onClick:A=>B(a)},{default:o(()=>[...l[9]||(l[9]=[p("编辑",-1)])]),_:1},8,["onClick"]),e(u,{link:"",type:"danger",onClick:A=>U(a)},{default:o(()=>[...l[10]||(l[10]=[p("删除",-1)])]),_:1},8,["onClick"])]),_:1}))]),_:1},8,["data"]),e(Y,{modelValue:n(r),"onUpdate:modelValue":l[7]||(l[7]=a=>ee(r)?r.value=a:null),title:n(I),width:"600px"},{footer:o(()=>[e(u,{onClick:l[6]||(l[6]=a=>r.value=!1)},{default:o(()=>[...l[11]||(l[11]=[p("取消",-1)])]),_:1}),e(u,{type:"primary",onClick:N,loading:n(v)},{default:o(()=>[...l[12]||(l[12]=[p("确定",-1)])]),_:1},8,["loading"])]),default:o(()=>[e(M,{model:n(t),"label-width":"120px"},{default:o(()=>[e(_,{label:"记录日期",required:""},{default:o(()=>[e(S,{modelValue:n(t).record_date,"onUpdate:modelValue":l[0]||(l[0]=a=>n(t).record_date=a),type:"date",placeholder:"选择日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),e(_,{label:"运动类型",required:""},{default:o(()=>[e(x,{modelValue:n(t).exercise_type,"onUpdate:modelValue":l[1]||(l[1]=a=>n(t).exercise_type=a),placeholder:"请选择运动类型",class:"w-full"},{default:o(()=>[e(s,{label:"散步",value:"散步"}),e(s,{label:"慢跑",value:"慢跑"}),e(s,{label:"游泳",value:"游泳"}),e(s,{label:"瑜伽",value:"瑜伽"}),e(s,{label:"骑自行车",value:"骑自行车"}),e(s,{label:"打太极拳",value:"打太极拳"}),e(s,{label:"其他",value:"其他"})]),_:1},8,["modelValue"])]),_:1}),e(_,{label:"运动时长(分钟)",required:""},{default:o(()=>[e(T,{modelValue:n(t).duration,"onUpdate:modelValue":l[2]||(l[2]=a=>n(t).duration=a),min:0,max:300,placeholder:"请输入运动时长"},null,8,["modelValue"])]),_:1}),e(_,{label:"运动强度",required:""},{default:o(()=>[e(x,{modelValue:n(t).intensity,"onUpdate:modelValue":l[3]||(l[3]=a=>n(t).intensity=a),placeholder:"请选择运动强度",class:"w-full"},{default:o(()=>[e(s,{label:"低强度",value:1}),e(s,{label:"中强度",value:2}),e(s,{label:"高强度",value:3})]),_:1},8,["modelValue"])]),_:1}),e(_,{label:"运动图片"},{default:o(()=>[e(q,{modelValue:n(t).images,"onUpdate:modelValue":l[4]||(l[4]=a=>n(t).images=a),limit:3,type:"image"},null,8,["modelValue"])]),_:1}),e(_,{label:"备注"},{default:o(()=>[e(L,{modelValue:n(t).note,"onUpdate:modelValue":l[5]||(l[5]=a=>n(t).note=a),type:"textarea",rows:3,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Ee=se(pe,[["__scopeId","data-v-ab6f0ec7"]]);export{Ee as default}; diff --git a/server/public/admin/assets/FollowupAudioField-BG0mRnT5.js b/server/public/admin/assets/FollowupAudioField-Dz9Csp0b.js similarity index 99% rename from server/public/admin/assets/FollowupAudioField-BG0mRnT5.js rename to server/public/admin/assets/FollowupAudioField-Dz9Csp0b.js index ae7608e49..5290d7563 100644 --- a/server/public/admin/assets/FollowupAudioField-BG0mRnT5.js +++ b/server/public/admin/assets/FollowupAudioField-Dz9Csp0b.js @@ -1 +1 @@ -import{o as h,q as d,r as v,T as $,u as k,O as c,J as F,bh as x,D as A,F as T,G as C,bi as E,az as N,aA as M,p as b}from"./.pnpm-CyuAWpdG.js";import{_ as I}from"./index-Dxvz9lb1.js";const O=2097152,Q={diagnosis:"诊单资料",blood:"血糖 / 血压",diet:"饮食",exercise:"运动",tracking_note:"跟踪备注"},z={queued:"等待处理",running:"正在分析",review:"待人工审核",applied:"已采纳",failed:"处理失败",needs_reconciliation:"结果待核对",expired:"已过保留期"},D={transcribing:"正在转写",extracting:"正在提炼",validating:"正在校验",review:"待人工审核"};function U(e){return e.status==="running"&&D[e.stage]||z[e.status]||e.status}function X(e){const t=e.pipeline_progress,r=t&&Number.isSafeInteger(t.transcribed)&&Number.isSafeInteger(t.total)&&t.total>0&&t.transcribed>=0&&t.transcribed<=t.total;return`${U(e)}${r?` · 转写片段 ${t.transcribed} / ${t.total}`:""};人工审核前不会写入业务记录。`}function Z(e){return!e.transcript_available||!e.transcript.trim()?"":e.status==="failed"?"处理失败,已完成片段的转写仍可查看。保留转写不代表提炼成功,不能直接写入病历。":e.status==="needs_reconciliation"?"结果待核对,已完成片段的转写仍可查看。请先核对上游结果,不要重复发送。":""}function q(e){return typeof e.start_ms!="number"||!Number.isFinite(e.start_ms)||e.start_ms<0||e.channel!==void 0&&e.channel!==0&&e.channel!==1?"":e.position_type==="segment"?!e.segment_id||typeof e.end_ms!="number"||!Number.isFinite(e.end_ms)||e.end_ms<=e.start_ms?"":`回听对话 ${p(e.start_ms)}–${p(e.end_ms)}`:`播放 ${p(e.start_ms)}`}function p(e){const t=Math.max(0,Math.floor(e/1e3));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function L(e){return e==="left_service"||e==="right_service"?e:"unconfirmed"}function ee(e=[]){return e.some(t=>t.channel===0)&&e.some(t=>t.channel===1)}function te(e,t="unconfirmed"){if(e!==0&&e!==1)return"未标注声道";const r=e===0?"左声道":"右声道",n=L(t);return n==="unconfirmed"?`${r} · 角色待确认`:`${r} · ${(n==="left_service"?e===0:e===1)?"客服端":"患者/家属端"}(人工标注)`}function ne(e){const t=new Map;for(const r of e){const n=`${r.start_ms}:${r.end_ms}`;t.has(n)||t.set(n,{id:n,start_ms:r.start_ms,end_ms:r.end_ms,segments:[]}),t.get(n).segments.push(r)}return[...t.values()].sort((r,n)=>r.start_ms-n.start_ms||r.end_ms-n.end_ms).map(r=>({...r,segments:[...r.segments].sort((n,l)=>(n.channel??-1)-(l.channel??-1))}))}function re(e){return Number.isFinite(e)?Math.max(0,e-3e3):0}function le(e,t){return t==="unconfirmed"?e===0?"只听左声道":"只听右声道":(t==="left_service"?e===0:e===1)?"只听客服":"只听患者/家属"}const R=e=>JSON.parse(JSON.stringify(e));function j(e,t){if(e==null||e===""||Array.isArray(e)&&!e.length)return"未记录";const r=n=>{var l,a;return((a=(l=t.options)==null?void 0:l.find(i=>String(i.value)===String(n)))==null?void 0:a.label)||String(n)};return Array.isArray(e)?e.map(r).join("、"):r(e)}function ae(e,t){return Object.keys(e.values).some(r=>{var n;return(n=t[e.kind])==null?void 0:n.some(l=>l.key===r&&!l.readonly)})}function ie(e,t){var n,l;const r=new Set;for(const a of e.filter(i=>i.selected))if(a.kind==="diagnosis")for(const i of Object.keys(a.values)){if(r.has(i))return`${((l=(n=t.diagnosis)==null?void 0:n.find(o=>o.key===i))==null?void 0:l.label)||i}存在多条选中建议,请合并内容到一项或仅保留一项后再确认写入`;r.add(i)}return""}function P(e,t){var r;if(!e.selected)return"";for(const n of Object.keys(e.values)){const l=(r=t[e.kind])==null?void 0:r.find(a=>a.key===n);if(!l||l.readonly)return`${(l==null?void 0:l.label)||n} 当前不可编辑,请先取消采纳该字段`}return""}function Y(e,t){return e.selected?e.needs_review?"请明确核对不确定、冲突或重复内容":e.kind!=="diagnosis"&&!t?"没有日常记录编辑权限":Object.keys(e.values).length?e.kind!=="diagnosis"&&!y(e.record_date)?"请核对并填写有效的记录日期":e.record_time&&!/^([01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/.test(e.record_time)?"请填写有效的记录时间":"":"至少填写一个有效字段":""}function B(e,t,r){return e.needs_review||!!P({...e,selected:!0},t)||!!Y({...e,selected:!0},r)}function oe(e,t,r){return{all:e.length,diagnosis:e.filter(n=>n.kind==="diagnosis").length,daily:e.filter(n=>n.kind!=="diagnosis").length,pending:e.filter(n=>B(n,t,r)).length,selected:e.filter(n=>n.selected).length}}function se(e,t){const r=new Map(t.map(n=>[n.id,n]));return e.some(n=>{const l=r.get(n.id);return n.selected&&l&&(n.target_id!==l.target_id||n.record_date!==l.record_date)})}function de(e){return e&&/^([01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/.test(e)?e.slice(0,5):null}function y(e){if(!e||!/^\d{4}-\d{2}-\d{2}$/.test(e))return!1;const[t,r,n]=e.split("-").map(Number),l=new Date(Date.UTC(t,r-1,n));return l.getUTCFullYear()===t&&l.getUTCMonth()===r-1&&l.getUTCDate()===n}function ue(e,t){const r=new Map(e.map(n=>[n.id,n]));return R(t).map(n=>{const l=r.get(n.id);return l?{...n,values:{...l.values},record_date:l.record_date,record_time:l.record_time,time_period:l.time_period,target_id:l.target_id,selected:!1,needs_review:!0}:n})}function _(e){return!!(e!=null&&e.enabled)&&(!e.preview_only||e.test_scope_allowed===!0)}function w(e){return!!e&&(e.preview_only?e.preview_ready===!0&&e.test_scope_allowed===!0:e.audio_verified||e.manual_review_enabled===!0&&e.manual_review_ready===!0)}function ce(e,t=!1){return _(e)&&!!e&&(e.preview_only||t?e.can_review===!0:e.can_apply)}function fe(e,t=!1){return _(e)&&w(e)&&!!e&&!e.preview_only&&!t&&e.can_apply}function me(e,t,r,n,l){return l||!n||!_(n)||!w(n)||!n.can_upload?"当前不可上传录音":!e||!e.size?"请选择非空录音文件":e.size>n.limits.max_bytes?"录音文件超过大小限制":/\.(mp3|wav|m4a|amr)$/i.test(e.name)?!/^\d{4}-\d{2}-\d{2} ([01]\d|2[0-3]):[0-5]\d:[0-5]\d$/.test(t)||!y(t.slice(0,10))?"请填写实际录音时间(北京时间)":n.models.some(a=>a.value===r)?"":"请选择可用的分析模型":"请选择支持的录音格式"}function ge(){let e=0,t=new AbortController;return{capture:()=>({generation:e,signal:t.signal}),current:r=>r.generation===e&&!r.signal.aborted,invalidate(){t.abort(),e++,t=new AbortController}}}async function be(e,t,r,n,l){if(!Number.isSafeInteger(t)||t<65536||t>O)throw new Error("服务端分片配置不匹配,请联系管理员");for(let a=0,i=0;ar.modelValue===null||r.modelValue===void 0||r.modelValue===""?void 0:Number(r.modelValue)),a=b(()=>r.modelValue===null||r.modelValue===void 0?"":String(r.modelValue)),i=b(()=>{const u=o=>{var f,m;return((m=(f=r.field.options)==null?void 0:f.find(g=>String(g.value)===String(o)))==null?void 0:m.value)??o};return r.field.type==="multiselect"?Array.isArray(r.modelValue)?r.modelValue.map(u):[]:typeof r.modelValue=="string"||typeof r.modelValue=="number"?u(r.modelValue):""});return(u,o)=>{const f=F,m=E,g=x,S=N,V=M;return e.readonly?(d(),v("span",J,$(k(j)(e.modelValue,e.field)),1)):e.field.type==="number"?(d(),c(f,{key:1,"model-value":l.value,disabled:e.disabled,controls:!1,"onUpdate:modelValue":o[0]||(o[0]=s=>n("update:modelValue",s??null))},null,8,["model-value","disabled"])):e.field.type==="select"||e.field.type==="multiselect"?(d(),c(g,{key:2,"model-value":i.value,multiple:e.field.type==="multiselect",disabled:e.disabled,clearable:"",filterable:"","onUpdate:modelValue":o[1]||(o[1]=s=>n("update:modelValue",s))},{default:A(()=>[(d(!0),v(T,null,C(e.field.options||[],s=>(d(),c(m,{key:String(s.value),label:s.label,value:s.value},null,8,["label","value"]))),128))]),_:1},8,["model-value","multiple","disabled"])):e.field.type==="date"?(d(),c(S,{key:3,"model-value":a.value,type:"date","value-format":"YYYY-MM-DD",disabled:e.disabled,"onUpdate:modelValue":o[2]||(o[2]=s=>n("update:modelValue",s||null))},null,8,["model-value","disabled"])):(d(),c(V,{key:4,"model-value":a.value,type:"textarea",autosize:{minRows:1,maxRows:5},disabled:e.disabled,"onUpdate:modelValue":o[3]||(o[3]=s=>n("update:modelValue",s))},null,8,["model-value","disabled"]))}}}),K=I(G,[["__scopeId","data-v-e936c6aa"]]),_e=Object.freeze(Object.defineProperty({__proto__:null,default:K},Symbol.toStringTag,{value:"Module"}));export{de as A,Q as B,q as C,ae as D,oe as E,K as F,_e as G,X as a,p as b,ge as c,le as d,te as e,U as f,pe as g,be as h,R as i,ue as j,re as k,ne as l,ee as m,L as n,_ as o,w as p,ce as q,Z as r,fe as s,B as t,me as u,se as v,ie as w,P as x,Y as y,j as z}; +import{o as h,q as d,r as v,T as $,u as k,O as c,J as F,bh as x,D as A,F as T,G as C,bi as E,az as N,aA as M,p as b}from"./.pnpm-CyuAWpdG.js";import{_ as I}from"./index-Bkarz3gO.js";const O=2097152,Q={diagnosis:"诊单资料",blood:"血糖 / 血压",diet:"饮食",exercise:"运动",tracking_note:"跟踪备注"},z={queued:"等待处理",running:"正在分析",review:"待人工审核",applied:"已采纳",failed:"处理失败",needs_reconciliation:"结果待核对",expired:"已过保留期"},D={transcribing:"正在转写",extracting:"正在提炼",validating:"正在校验",review:"待人工审核"};function U(e){return e.status==="running"&&D[e.stage]||z[e.status]||e.status}function X(e){const t=e.pipeline_progress,r=t&&Number.isSafeInteger(t.transcribed)&&Number.isSafeInteger(t.total)&&t.total>0&&t.transcribed>=0&&t.transcribed<=t.total;return`${U(e)}${r?` · 转写片段 ${t.transcribed} / ${t.total}`:""};人工审核前不会写入业务记录。`}function Z(e){return!e.transcript_available||!e.transcript.trim()?"":e.status==="failed"?"处理失败,已完成片段的转写仍可查看。保留转写不代表提炼成功,不能直接写入病历。":e.status==="needs_reconciliation"?"结果待核对,已完成片段的转写仍可查看。请先核对上游结果,不要重复发送。":""}function q(e){return typeof e.start_ms!="number"||!Number.isFinite(e.start_ms)||e.start_ms<0||e.channel!==void 0&&e.channel!==0&&e.channel!==1?"":e.position_type==="segment"?!e.segment_id||typeof e.end_ms!="number"||!Number.isFinite(e.end_ms)||e.end_ms<=e.start_ms?"":`回听对话 ${p(e.start_ms)}–${p(e.end_ms)}`:`播放 ${p(e.start_ms)}`}function p(e){const t=Math.max(0,Math.floor(e/1e3));return`${Math.floor(t/60)}:${String(t%60).padStart(2,"0")}`}function L(e){return e==="left_service"||e==="right_service"?e:"unconfirmed"}function ee(e=[]){return e.some(t=>t.channel===0)&&e.some(t=>t.channel===1)}function te(e,t="unconfirmed"){if(e!==0&&e!==1)return"未标注声道";const r=e===0?"左声道":"右声道",n=L(t);return n==="unconfirmed"?`${r} · 角色待确认`:`${r} · ${(n==="left_service"?e===0:e===1)?"客服端":"患者/家属端"}(人工标注)`}function ne(e){const t=new Map;for(const r of e){const n=`${r.start_ms}:${r.end_ms}`;t.has(n)||t.set(n,{id:n,start_ms:r.start_ms,end_ms:r.end_ms,segments:[]}),t.get(n).segments.push(r)}return[...t.values()].sort((r,n)=>r.start_ms-n.start_ms||r.end_ms-n.end_ms).map(r=>({...r,segments:[...r.segments].sort((n,l)=>(n.channel??-1)-(l.channel??-1))}))}function re(e){return Number.isFinite(e)?Math.max(0,e-3e3):0}function le(e,t){return t==="unconfirmed"?e===0?"只听左声道":"只听右声道":(t==="left_service"?e===0:e===1)?"只听客服":"只听患者/家属"}const R=e=>JSON.parse(JSON.stringify(e));function j(e,t){if(e==null||e===""||Array.isArray(e)&&!e.length)return"未记录";const r=n=>{var l,a;return((a=(l=t.options)==null?void 0:l.find(i=>String(i.value)===String(n)))==null?void 0:a.label)||String(n)};return Array.isArray(e)?e.map(r).join("、"):r(e)}function ae(e,t){return Object.keys(e.values).some(r=>{var n;return(n=t[e.kind])==null?void 0:n.some(l=>l.key===r&&!l.readonly)})}function ie(e,t){var n,l;const r=new Set;for(const a of e.filter(i=>i.selected))if(a.kind==="diagnosis")for(const i of Object.keys(a.values)){if(r.has(i))return`${((l=(n=t.diagnosis)==null?void 0:n.find(o=>o.key===i))==null?void 0:l.label)||i}存在多条选中建议,请合并内容到一项或仅保留一项后再确认写入`;r.add(i)}return""}function P(e,t){var r;if(!e.selected)return"";for(const n of Object.keys(e.values)){const l=(r=t[e.kind])==null?void 0:r.find(a=>a.key===n);if(!l||l.readonly)return`${(l==null?void 0:l.label)||n} 当前不可编辑,请先取消采纳该字段`}return""}function Y(e,t){return e.selected?e.needs_review?"请明确核对不确定、冲突或重复内容":e.kind!=="diagnosis"&&!t?"没有日常记录编辑权限":Object.keys(e.values).length?e.kind!=="diagnosis"&&!y(e.record_date)?"请核对并填写有效的记录日期":e.record_time&&!/^([01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/.test(e.record_time)?"请填写有效的记录时间":"":"至少填写一个有效字段":""}function B(e,t,r){return e.needs_review||!!P({...e,selected:!0},t)||!!Y({...e,selected:!0},r)}function oe(e,t,r){return{all:e.length,diagnosis:e.filter(n=>n.kind==="diagnosis").length,daily:e.filter(n=>n.kind!=="diagnosis").length,pending:e.filter(n=>B(n,t,r)).length,selected:e.filter(n=>n.selected).length}}function se(e,t){const r=new Map(t.map(n=>[n.id,n]));return e.some(n=>{const l=r.get(n.id);return n.selected&&l&&(n.target_id!==l.target_id||n.record_date!==l.record_date)})}function de(e){return e&&/^([01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/.test(e)?e.slice(0,5):null}function y(e){if(!e||!/^\d{4}-\d{2}-\d{2}$/.test(e))return!1;const[t,r,n]=e.split("-").map(Number),l=new Date(Date.UTC(t,r-1,n));return l.getUTCFullYear()===t&&l.getUTCMonth()===r-1&&l.getUTCDate()===n}function ue(e,t){const r=new Map(e.map(n=>[n.id,n]));return R(t).map(n=>{const l=r.get(n.id);return l?{...n,values:{...l.values},record_date:l.record_date,record_time:l.record_time,time_period:l.time_period,target_id:l.target_id,selected:!1,needs_review:!0}:n})}function _(e){return!!(e!=null&&e.enabled)&&(!e.preview_only||e.test_scope_allowed===!0)}function w(e){return!!e&&(e.preview_only?e.preview_ready===!0&&e.test_scope_allowed===!0:e.audio_verified||e.manual_review_enabled===!0&&e.manual_review_ready===!0)}function ce(e,t=!1){return _(e)&&!!e&&(e.preview_only||t?e.can_review===!0:e.can_apply)}function fe(e,t=!1){return _(e)&&w(e)&&!!e&&!e.preview_only&&!t&&e.can_apply}function me(e,t,r,n,l){return l||!n||!_(n)||!w(n)||!n.can_upload?"当前不可上传录音":!e||!e.size?"请选择非空录音文件":e.size>n.limits.max_bytes?"录音文件超过大小限制":/\.(mp3|wav|m4a|amr)$/i.test(e.name)?!/^\d{4}-\d{2}-\d{2} ([01]\d|2[0-3]):[0-5]\d:[0-5]\d$/.test(t)||!y(t.slice(0,10))?"请填写实际录音时间(北京时间)":n.models.some(a=>a.value===r)?"":"请选择可用的分析模型":"请选择支持的录音格式"}function ge(){let e=0,t=new AbortController;return{capture:()=>({generation:e,signal:t.signal}),current:r=>r.generation===e&&!r.signal.aborted,invalidate(){t.abort(),e++,t=new AbortController}}}async function be(e,t,r,n,l){if(!Number.isSafeInteger(t)||t<65536||t>O)throw new Error("服务端分片配置不匹配,请联系管理员");for(let a=0,i=0;ar.modelValue===null||r.modelValue===void 0||r.modelValue===""?void 0:Number(r.modelValue)),a=b(()=>r.modelValue===null||r.modelValue===void 0?"":String(r.modelValue)),i=b(()=>{const u=o=>{var f,m;return((m=(f=r.field.options)==null?void 0:f.find(g=>String(g.value)===String(o)))==null?void 0:m.value)??o};return r.field.type==="multiselect"?Array.isArray(r.modelValue)?r.modelValue.map(u):[]:typeof r.modelValue=="string"||typeof r.modelValue=="number"?u(r.modelValue):""});return(u,o)=>{const f=F,m=E,g=x,S=N,V=M;return e.readonly?(d(),v("span",J,$(k(j)(e.modelValue,e.field)),1)):e.field.type==="number"?(d(),c(f,{key:1,"model-value":l.value,disabled:e.disabled,controls:!1,"onUpdate:modelValue":o[0]||(o[0]=s=>n("update:modelValue",s??null))},null,8,["model-value","disabled"])):e.field.type==="select"||e.field.type==="multiselect"?(d(),c(g,{key:2,"model-value":i.value,multiple:e.field.type==="multiselect",disabled:e.disabled,clearable:"",filterable:"","onUpdate:modelValue":o[1]||(o[1]=s=>n("update:modelValue",s))},{default:A(()=>[(d(!0),v(T,null,C(e.field.options||[],s=>(d(),c(m,{key:String(s.value),label:s.label,value:s.value},null,8,["label","value"]))),128))]),_:1},8,["model-value","multiple","disabled"])):e.field.type==="date"?(d(),c(S,{key:3,"model-value":a.value,type:"date","value-format":"YYYY-MM-DD",disabled:e.disabled,"onUpdate:modelValue":o[2]||(o[2]=s=>n("update:modelValue",s||null))},null,8,["model-value","disabled"])):(d(),c(V,{key:4,"model-value":a.value,type:"textarea",autosize:{minRows:1,maxRows:5},disabled:e.disabled,"onUpdate:modelValue":o[3]||(o[3]=s=>n("update:modelValue",s))},null,8,["model-value","disabled"]))}}}),K=I(G,[["__scopeId","data-v-e936c6aa"]]),_e=Object.freeze(Object.defineProperty({__proto__:null,default:K},Symbol.toStringTag,{value:"Module"}));export{de as A,Q as B,q as C,ae as D,oe as E,K as F,_e as G,X as a,p as b,ge as c,le as d,te as e,U as f,pe as g,be as h,R as i,ue as j,re as k,ne as l,ee as m,L as n,_ as o,w as p,ce as q,Z as r,fe as s,B as t,me as u,se as v,ie as w,P as x,Y as y,j as z}; diff --git a/server/public/admin/assets/FollowupAudioPanel-GXQTu6xF.js b/server/public/admin/assets/FollowupAudioPanel-BQogJqk-.js similarity index 99% rename from server/public/admin/assets/FollowupAudioPanel-GXQTu6xF.js rename to server/public/admin/assets/FollowupAudioPanel-BQogJqk-.js index e8a47e637..eab890560 100644 --- a/server/public/admin/assets/FollowupAudioPanel-GXQTu6xF.js +++ b/server/public/admin/assets/FollowupAudioPanel-BQogJqk-.js @@ -1 +1 @@ -import{o as Qa,M as _,R as ya,ap as Xa,by as el,q as i,r as f,s as m,O as R,D as p,L as S,K as al,T as v,v as b,P as d,bo as ll,bk as tl,bl as il,bm as ul,u as Z,bh as nl,bi as sl,F as Fe,G as $e,cJ as ol,cK as rl,aB as vl,bd as cl,bb as dl,az as fl,bY as pl,p as I,E as P,e as Me,n as yl}from"./.pnpm-CyuAWpdG.js";import{r as Xe,_ as ml}from"./index-Dxvz9lb1.js";import gl from"./FollowupAudioReview-92Fgd7wW.js";import{c as bl,f as La,a as _l,r as ma,b as ga,d as wl,e as kl,g as ue,u as hl,h as Cl,i as Qe,j as Va,n as Pe,k as xl,l as Al,m as Sl,o as El,p as Rl,q as Tl,s as Il,t as Ol,v as Ul,w as Dl,x as Ll,y as Vl}from"./FollowupAudioField-BG0mRnT5.js";class Je extends Error{constructor(c,h=""){super(c),this.code=h,this.name="FollowupAudioError"}}const ea={isTransformResponse:!1,ignoreCancelToken:!0,isOpenRetry:!1,retryCount:0},aa="/tcm.followupAudio/";function la(u){if(u.code!==1){const c=u.data,h=c&&typeof c=="object"&&"code"in c?String(c.code):"";throw new Je(u.msg||"回访录音请求失败,请刷新任务状态后确认",h)}return u.data}async function ba(u,c,h){return la(await Xe.get({url:aa+u,params:c,signal:h},ea))}async function ne(u,c,h){return la(await Xe.post({url:aa+u,data:c,signal:h,timeout:12e4},ea))}const Qt=(u,c)=>ba("capabilities",{diagnosis_id:u},c),Nl=(u,c)=>ba("lists",{diagnosis_id:u},c),Bl=(u,c)=>ba("detail",{id:u},c),Fl=(u,c)=>ne("uploadSession",u,c);async function $l(u,c,h,n){const D=new FormData;return D.append("upload_id",u),D.append("index",String(c)),D.append("file",h,`chunk-${c}`),la(await Xe.post({url:aa+"uploadChunk",data:D,signal:n,timeout:12e4,headers:{"Content-Type":"multipart/form-data"}},ea))}const Ml=(u,c)=>ne("uploadComplete",{upload_id:u},c),Pl=(u,c)=>ne("create",u,c),Jl=(u,c)=>ne("saveDraft",u,c),zl=(u,c)=>ne("apply",u,c),ql=(u,c)=>ne("reextract",u,c),Wl=(u,c)=>ne("delete",u,c),jl=(u,c)=>ne("retry",{id:u},c);async function Kl(u,c){const h=await Xe.get({url:aa+"audio",params:{id:u},responseType:"blob",signal:c,timeout:12e4},ea);if(h.type.includes("json")){const n=JSON.parse(await h.text());throw la(n),new Je("录音响应不是音频文件")}return h}function Yl(){const u=globalThis,c=u.AudioContext||u.webkitAudioContext;return c?new c:null}function Hl(u,c=Yl){let h=null,n=null,D=null,U=null,l=!1,w=0;function C(){n==null||n.disconnect(),D==null||D.disconnect(),U==null||U.disconnect()}return{async select(V){if(l)return!1;const N=++w;if(u.pause(),V==="original"&&!h)return!0;try{if(!h){if(h=c(),!h)throw new Error("当前浏览器不支持 Web Audio,无法隔离声道;请使用原音播放。");n=h.createMediaElementSource(u),D=h.createChannelSplitter(2),U=h.createChannelMerger(2)}if(!n)throw new Error("音频播放节点未就绪");if(C(),V==="original")n.connect(h.destination);else{if(!D||!U)throw new Error("声道播放节点未就绪");n.connect(D),D.connect(U,V,0),D.connect(U,V,1),U.connect(h.destination)}if(await h.resume(),!l&&N===w&&h.state!=="running")throw new Error("音频上下文未运行");return!l&&N===w}catch(Q){if(l||N!==w)return!1;throw C(),n&&h&&n.connect(h.destination),new Error(`无法隔离声道,已停止本次回听;可选择原音播放。${Q instanceof Error?Q.message:""}`)}},dispose(){l||(l=!0,w++,u.pause(),C(),h&&h.close().catch(()=>{}))}}}const Gl={key:0,class:"followup-panel","aria-label":"回访录音"},Zl={class:"panel-toolbar"},Ql={class:"toolbar-title"},Xl={key:1},et={class:"toolbar-actions"},at={key:0,class:"help-box"},lt={key:0},tt={key:1},it={key:2},ut={key:7,class:"task-list"},nt={class:"task-time"},st={key:0,class:"task-time"},ot={key:8,class:"detail-loading",role:"status"},rt={key:9,class:"task-detail","aria-label":"录音任务详情"},vt={class:"detail-heading"},ct={class:"recording-title"},dt={class:"detail-actions"},ft={key:0,class:"processing-state",role:"status"},pt={class:"summary-box"},yt={class:"summary-counts"},mt={key:7,class:"channel-role-box","aria-label":"声道角色人工标注"},gt={key:0,class:"role-summary"},bt={key:1},_t={key:2,class:"muted"},wt={key:3,class:"muted"},kt={key:4,class:"review-error",role:"status"},ht={key:8,class:"role-reextract","aria-label":"角色纠错与重新提炼"},Ct={key:0},xt={key:1},At={key:9,class:"muted"},St={class:"audio-player"},Et={key:1,class:"muted"},Rt=["src"],Tt={key:0,class:"channel-playback","aria-label":"声道回听"},It={class:"muted",role:"status"},Ot={key:1,class:"review-error",role:"alert"},Ut={key:2,class:"muted"},Dt={key:0,class:"transcript-segments"},Lt={class:"segment-heading"},Vt={class:"dialogue-sides"},Nt={key:1,class:"transcript-text"},Bt={key:10,class:"review-actions"},Ft={class:"selection-summary"},$t={key:0,class:"action-buttons"},Mt={key:1,class:"review-error",role:"alert"},Pt={key:11,class:"applied-note"},Jt=["disabled"],zt={key:3,class:"upload-stage",role:"status"},qt={class:"muted"},Wt=Qa({__name:"FollowupAudioPanel",props:{diagnosisId:{},viewOnly:{type:Boolean,default:!1},active:{type:Boolean,default:!0},capabilities:{},basicDirty:{type:Boolean,default:!1},beforeApply:{}},emits:["applied"],setup(u,{expose:c,emit:h}){var Ta;const n=u,D=h,U=_([]),l=_(null),w=_([]),C=_(0),V=_("[]"),N=_("unconfirmed"),Q=_("unconfirmed"),pe=_(!1),T=_("idle"),ta=_(0),ye=I(()=>K.value||JSON.stringify(w.value)!==V.value),Na=I(()=>{var a;return T.value==="saving"?"正在自动保存…":T.value==="error"?"保存失败,修改仍保留;请重试保存":T.value==="conflict"?"自动保存已暂停;请重新核对后重试保存":ye.value?"等待自动保存…":(a=Se.value)!=null&&a.hasUnsavedChanges()?"当前单项尚未完成核对":T.value==="saved"?"审核草稿已自动保存":"草稿已同步"}),K=I(()=>N.value!==Q.value),J=I(()=>{var a;return Pe((a=l.value)==null?void 0:a.channel_roles)}),ia=I(()=>{var a;return[...((a=l.value)==null?void 0:a.transcript_segments)||[]].sort((e,t)=>e.start_ms-t.start_ms||(e.channel??-1)-(t.channel??-1))}),Ba=I(()=>Al(ia.value)),me=I(()=>Sl(ia.value)),Se=_(null),ae=I(()=>{var a;return K.value||JSON.stringify(w.value)!==V.value||!!((a=Se.value)!=null&&a.hasUnsavedChanges())}),ge=_(!1),Ee=_(!1),Y=_([]),le=_(null),ua=_(null),Re=_(""),be=_("unconfirmed"),_e=_(((Ta=n.capabilities.models[0])==null?void 0:Ta.value)||""),ze=_(!1),z=_(!1),qe=_(0),W=_(""),$=_(!1),O=_(""),x=_(""),j=_(""),Te=_(null),we=_(!1),X=_("original"),ke=_(!1),se=_(""),_a=_(typeof document>"u"||document.visibilityState!=="hidden"),A=I(()=>z.value||!!O.value),oe=I(()=>El(n.capabilities)),te=I(()=>{var a;return!!n.capabilities.preview_only||!!((a=l.value)!=null&&a.preview_only)}),wa=I(()=>Rl(n.capabilities)),q=I(()=>!n.viewOnly&&oe.value&&wa.value&&n.capabilities.can_upload&&n.capabilities.models.length>0),re=I(()=>{var a,e;return!n.viewOnly&&Tl(n.capabilities,!!((a=l.value)!=null&&a.preview_only))&&((e=l.value)==null?void 0:e.status)==="review"}),We=I(()=>{var a,e;return!n.viewOnly&&Il(n.capabilities,!!((a=l.value)!=null&&a.preview_only))&&((e=l.value)==null?void 0:e.status)==="review"}),he=I(()=>{var a;return Pe((a=l.value)==null?void 0:a.extraction_channel_roles)}),Ie=I(()=>{var a,e;return J.value!=="unconfirmed"&&J.value!==he.value?J.value:Pe((e=(a=l.value)==null?void 0:a.role_check)==null?void 0:e.suggested_roles)}),na=I(()=>{var a,e;return!n.viewOnly&&oe.value&&((a=l.value)==null?void 0:a.status)==="review"&&((e=l.value)==null?void 0:e.can_reextract)===!0}),Ce=I(()=>w.value.filter(a=>a.selected).length),Fa=I(()=>{var a;return w.value.filter(e=>{var t;return Ol(e,((t=l.value)==null?void 0:t.fields)||n.capabilities.fields,n.capabilities.can_daily)}).length+(((a=l.value)==null?void 0:a.uncertainties.length)||0)}),ve=I(()=>{var a,e;return te.value?"测试预览仅保存审核草稿,不允许确认写入病历":T.value==="conflict"?"记录版本已变化,请重新核对后重试保存草稿":T.value==="error"?"草稿保存失败,请重试保存成功后再确认写入":T.value==="saving"||ye.value?"审核草稿尚未保存完成,请稍候再确认写入":K.value?"声道角色标注尚未保存,请先保存草稿并重新核对建议":me.value&&J.value==="unconfirmed"?"请先回听并确认声道角色,保存草稿后重新核对建议":Ul(w.value,((a=l.value)==null?void 0:a.items)||[])?"写入目标或记录日期已更改,请先保存审核草稿取得新快照,再核对并采纳":Dl(w.value,((e=l.value)==null?void 0:e.fields)||n.capabilities.fields)||w.value.map(t=>{var o;return Ll(t,((o=l.value)==null?void 0:o.fields)||n.capabilities.fields)||Vl(t,n.capabilities.can_daily)}).find(Boolean)||""}),Oe=I(()=>n.active&&oe.value&&_a.value),r=bl();let je,Ue,H=!1,De=null,Ke=!1,Le=0,ce=0,ee=null,sa=null,ka=0;function ie(){je!==void 0&&clearTimeout(je),je=void 0}function Ye(){var a;Le++,ce++,ee==null||ee.dispose(),ee=null,sa=null,(a=Te.value)==null||a.pause(),j.value&&URL.revokeObjectURL(j.value),j.value="",we.value=!1,ke.value=!1,X.value="original",se.value=""}function xe(){r.invalidate(),ie(),de(),Ye(),De=null,T.value==="saving"&&(T.value="error",x.value="保存结果尚未确认;修改仍保留,请刷新核对版本后重试保存。"),ze.value=!1,z.value=!1,O.value="",Ke=!1}function oa(a,e,t=e){e=e&&a.status==="review";const o=t&&K.value&&a.status==="review";a.audio_available||Ye(),ma(a)&&(!l.value||l.value.status!==a.status||!l.value.transcript_available)&&(Y.value.includes("original")||(Y.value=[...Y.value,"original"])),H=!0;try{l.value=a;const g=e?Va(w.value,a.items):Qe(a.items);JSON.stringify(g)!==JSON.stringify(w.value)&&(w.value=g),V.value=JSON.stringify(a.items),Q.value=Pe(a.channel_roles),o||(N.value=Q.value)}finally{H=!1}}function Ve(){H=!0,N.value="unconfirmed",Q.value="unconfirmed",H=!1,pe.value=!1,T.value="idle",ta.value=0}function $a(a){!re.value||A.value&&O.value!=="save"||!me.value||!["unconfirmed","left_service","right_service"].includes(String(a))||(N.value=a)}function ha(a){return a instanceof Je&&(a.code==="FOLLOWUP_AUDIO_TASK_UNAVAILABLE"||a.message.includes("FOLLOWUP_AUDIO_TASK_UNAVAILABLE"))}function Ca(a){C.value===a&&(xe(),Ve(),C.value=0,l.value=null,w.value=[],V.value="[]",Y.value=[],U.value=U.value.filter(e=>e.id!==a),x.value="录音已删除或不再可访问,已关闭本页缓存与播放;未写入病例。",M())}async function Ae(a,e=!1,t=!1){var E;const o=r.capture();let g;try{g=await Bl(a,o.signal)}catch(k){if(r.current(o)&&a===C.value&&ha(k)){Ca(a);return}throw k}if(t&&l.value&&g.version===l.value.version&&g.status===l.value.status||!r.current(o)||a!==C.value||l.value&&g.versiono.id===C.value);t&&(!l.value||t.version>l.value.version||t.version>=l.value.version&&t.status!==l.value.status||t.status==="running")?await Ae(t.id,ae.value):!t&&C.value&&l.value&&await Ae(C.value,!1,!0)}catch(e){r.current(a)&&(x.value=ue(e))}finally{r.current(a)&&(Ke=!1,ze.value=!1,Oe.value&&(je=setTimeout(()=>{M()},5e3)))}}async function ra(){if(A.value)return P.warning("正在上传或提交审核,请等待本次操作结束"),!1;if(!ae.value)return!0;try{return await Me.confirm("审核修改尚未保存。关闭诊单或切换录音将丢失这些修改,是否继续?","保留审核修改",{type:"warning",confirmButtonText:"继续离开",cancelButtonText:"返回保存"}),!0}catch{return!1}}async function va(a){if(!oe.value||a===C.value||A.value)return;const e=r.capture();if(!await ra()||!r.current(e))return;xe(),Ve(),C.value=a,l.value=null,w.value=[],V.value="[]",x.value="",Y.value=[];const t=r.capture();try{await Ae(a)}catch(o){r.current(t)&&(x.value=ue(o))}r.current(t)&&await M()}async function Ma(){const a=r.capture();!await ra()||!r.current(a)||(xe(),Ve(),C.value=0,l.value=null,w.value=[],V.value="[]",Y.value=[],x.value="",await M())}function Pa(){!q.value||A.value||$.value||(le.value||(be.value="unconfirmed"),ge.value=!0)}function xa(a){z.value||(ge.value=!1,a==null||a())}function Aa(a){return a==="failed"||a==="needs_reconciliation"?"danger":a==="applied"?"success":a==="review"?"warning":"info"}function Ja(a){var t;const e=((t=a.target.files)==null?void 0:t[0])||null;e&&(le.value&&e!==le.value&&(be.value="unconfirmed",P.warning("录音已更换,请重新核对本次录音的声道角色")),le.value=e,qe.value=0,W.value="")}async function za(){if(A.value||$.value)return;const a=hl(le.value,Re.value,_e.value,n.capabilities,n.viewOnly);if(a){P.warning(a);return}const e=le.value;if(!e)return;const t=r.capture();z.value=!0,qe.value=0,x.value="",ie();let o=!1;try{W.value="正在创建私有上传会话";const g=await Fl({diagnosis_id:n.diagnosisId,file_name:e.name,total_bytes:e.size},t.signal);if(!r.current(t)||!q.value||(W.value="正在上传录音分片",!await Cl(e,g.chunk_bytes,(k,B)=>$l(g.upload_id,k,B,t.signal),()=>r.current(t)&&q.value,k=>{qe.value=k}))||(W.value="正在校验录音时长和完整性",await Ml(g.upload_id,t.signal),!r.current(t)||!q.value))return;W.value="正在创建分析任务",o=!0,$.value=!0;const E=await Pl({diagnosis_id:n.diagnosisId,upload_id:g.upload_id,recorded_at:Re.value,model_key:_e.value,channel_roles:be.value},t.signal);if(!r.current(t))return;$.value=!1,z.value=!1,ge.value=!1,le.value=null,ua.value&&(ua.value.value=""),W.value=E.reused?E.reuse_message||"同一录音已有任务,已打开原任务,不会重复调用模型":n.capabilities.preview_only?"测试任务已创建,后台将识别与提炼;此任务不允许写入业务记录":"任务已创建,后台将进行分析;审核前不会写入业务记录",E.reused&&P.warning(W.value),await va(E.task_id)}catch(g){r.current(t)&&(x.value=ue(g),$.value=o&&!(g instanceof Je),W.value="本次操作已停止,未自动重试")}finally{r.current(t)&&(z.value=!1,await M())}}async function ca(a){const e=r.capture();if(ha(a)&&l.value){Ca(l.value.id);return}if(x.value=ue(a),a instanceof Je&&a.code==="FOLLOWUP_AUDIO_STALE_REVIEW"||/STALE_REVIEW|版本|快照|已变化/.test(x.value)){de(),T.value="conflict";try{await Ae(C.value,!0)}catch{r.current(e)&&(x.value+=";刷新失败,当前编辑仍已保留,请稍后刷新。")}}}function de(){Ue!==void 0&&clearTimeout(Ue),Ue=void 0}function Ne(){de(),!(H||!Oe.value||!re.value||!ye.value||["error","conflict"].includes(T.value))&&O.value!=="save"&&(T.value="pending",Ue=setTimeout(()=>{Ue=void 0,da(!0)},650))}function qa(a,e,t){const o=new Map(a.map(y=>[y.id,y])),g=new Map(t.map(y=>[y.id,y]));return Qe(e).map(y=>{const E=o.get(y.id),k=g.get(y.id);if(!E||!k)return y;const B=y.needs_review&&!E.needs_review||E.selected&&!y.selected;for(const L of["values","record_date","record_time","time_period","target_id","selected","needs_review"])B&&(L==="selected"||L==="needs_review")||JSON.stringify(E[L])!==JSON.stringify(k[L])&&Object.assign(y,{[L]:k[L]});return y})}async function da(a=!1){var Be;if(De)return De;if(!re.value||!l.value||A.value||!Oe.value)return;if(!a&&((Be=Se.value)!=null&&Be.hasUnsavedChanges())){P.warning("请先保存或取消正在核对的单项修改");return}if(a&&(!ye.value||["error","conflict"].includes(T.value)))return;de();const e=r.capture(),t=l.value.id,o=n.diagnosisId,g=()=>r.current(e)&&C.value===t&&n.diagnosisId===o,y=K.value,E=N.value,k=Qe(w.value),B=l.value.version;O.value="save",T.value="saving",x.value="",ie();const L=(async()=>{try{const F=await Jl({id:t,version:B,items:k,...y&&me.value?{channel_roles:E}:{}},e.signal);if(!g())return;if(l.value&&F.versionr.current(e)&&g===n.diagnosisId&&C.value===t;de(),ie(),O.value="reextract",x.value="";let E=!1;try{if(await Me.confirm(`确认已回听并核实角色为“${He(a)}”?将保留旧版结果,复用已完成的转写重新提炼,不重复语音识别;新建议须重新审核,不自动写入病例。`,"确认角色并重新提炼",{type:"warning",confirmButtonText:"角色正确,开始重新提炼",cancelButtonText:"返回回听"}),!y()||!na.value||ae.value)return;E=!0;const k=await ql({id:t,version:o,channel_roles:a},e.signal);if(!y())return;oa(k,!1),T.value="idle",pe.value=!1,P.success("已提交重新提炼,将复用原转写;新结果仍需审核,不自动写入病例")}catch(k){E&&y()&&await ca(k)}finally{y()&&(O.value="",Ne(),await M())}}function Ge(a){return!n.viewOnly&&oe.value&&a.can_delete===!0&&["review","failed"].includes(a.status)}async function Sa(a){if(A.value||!Ge(a))return;const e=r.capture(),t=n.diagnosisId,o=a.id,g=a.version,y=()=>r.current(e)&&t===n.diagnosisId;de(),ie(),O.value="delete",x.value="";let E=!1;try{if(await Me.confirm("删除后,该录音任务及审核草稿将从列表移除,未保存修改会丢弃;不删除或回滚病例。原录音和转写仍按原保留期限清理。重新上传同一文件将创建新的分析任务。确认删除?","删除录音任务",{type:"warning",confirmButtonText:"确认删除",cancelButtonText:"保留录音"}),!y()||!Ge(a)||(E=!0,await Wl({id:o,version:g},e.signal),!y()))return;C.value===o&&(xe(),Ve(),C.value=0,l.value=null,w.value=[],V.value="[]",Y.value=[]),U.value=U.value.filter(k=>k.id!==o),x.value="",P.success("录音任务已删除,未修改病例。原资料按保留策略清理。"),await M()}catch(k){E&&y()&&(x.value=ue(k))}finally{y()&&(O.value="",Ne(),await M())}}async function Ka(){var e,t;if(!((e=l.value)!=null&&e.can_retry)||l.value.status!=="failed"||!q.value||A.value)return;const a=r.capture();try{await Me.confirm("仅对服务端已确认失败、允许重试的任务重新分析。确认继续?","确认重试",{type:"warning"})}catch{return}if(!(!r.current(a)||!((t=l.value)!=null&&t.can_retry)||l.value.status!=="failed"||!q.value)){O.value="retry",ie();try{await jl(l.value.id,a.signal),r.current(a)&&await Ae(C.value)}catch(o){r.current(a)&&(x.value=ue(o))}finally{r.current(a)&&(O.value="",await M())}}}async function fa(a){await pa(xl(a))}async function Ya(){Ye(),await pa()}async function Ea(a){var e;await pa((((e=Te.value)==null?void 0:e.currentTime)||0)*1e3,a==="original"?void 0:a)}async function pa(a,e){var k;if(!oe.value||!((k=l.value)!=null&&k.audio_available))return;const t=++ce;if(se.value="",e!==void 0&&(!me.value||e!==0&&e!==1)){Ye(),se.value="未取得可验证的双声道片段,无法隔离声道;请使用原音播放。";return}const o=r.capture(),g=l.value.id;if(!j.value){const B=++Le;we.value=!0;try{const L=await Kl(g,o.signal);if(!r.current(o)||B!==Le||g!==C.value)return;j.value=URL.createObjectURL(L)}catch(L){r.current(o)&&B===Le&&(x.value=ue(L))}finally{r.current(o)&&B===Le&&(we.value=!1)}}if(await yl(),!r.current(o)||t!==ce||g!==C.value||!j.value||!Te.value)return;const y=Te.value;sa!==y&&(ee==null||ee.dispose(),ee=Hl(y),sa=y);const E=ee;ke.value=!0;try{if(!E||!await E.select(e??"original")||!r.current(o)||t!==ce||g!==C.value||(X.value=e??"original",typeof a!="number"||!Number.isFinite(a)))return;y.currentTime=Math.max(0,a/1e3);try{await y.play()}catch{r.current(o)&&t===ce&&(se.value="播放未启动,请使用播放器控件继续。")}}catch(B){r.current(o)&&t===ce&&(X.value="original",se.value=ue(B))}finally{r.current(o)&&t===ce&&(ke.value=!1)}}function Ha(a){if(!a)return"由保留策略控制";const e=typeof a=="number"||/^\d+$/.test(a)?new Date(Number(a)*1e3):new Date(a);return Number.isNaN(e.getTime())?String(a):e.toLocaleString("zh-CN",{timeZone:"Asia/Shanghai"})}function Ra(){_a.value=document.visibilityState!=="hidden"}return ya([()=>n.diagnosisId,Oe,()=>!!n.capabilities.preview_only],([a,e])=>{xe(),a!==ka&&(Ve(),ka=a,C.value=0,l.value=null,w.value=[],V.value="[]",U.value=[],le.value=null,Re.value="",be.value="unconfirmed",ge.value=!1,Y.value=[],Ee.value=!1,x.value="",W.value="",$.value=!1),e&&(M(),Ne())},{immediate:!0}),ya([()=>JSON.stringify(w.value),N],()=>{H||Ne()},{flush:"sync"}),ya(()=>n.capabilities.models,a=>{var e;a.some(t=>t.value===_e.value)||(_e.value=((e=a[0])==null?void 0:e.value)||"")}),Xa(()=>document.addEventListener("visibilitychange",Ra)),el(()=>{xe(),document.removeEventListener("visibilitychange",Ra)}),c({confirmLeave:ra,refresh:M,hasUnsavedChanges:()=>ae.value}),(a,e)=>{var Ia,Oa,Ua,Da;const t=al,o=ll,g=il,y=ul,E=tl,k=sl,B=nl,L=rl,Be=ol,F=dl,fe=fl,Ze=cl,Ga=pl,Za=vl;return oe.value?(i(),f("section",Gl,[m("div",Zl,[m("div",Ql,[C.value?(i(),R(t,{key:0,link:"",type:"primary",disabled:A.value,onClick:Ma},{default:p(()=>[...e[13]||(e[13]=[S("返回列表",-1)])]),_:1},8,["disabled"])):(i(),f("h3",Xl,[e[14]||(e[14]=S("回访录音 ",-1)),m("span",null,v(U.value.length),1)]))]),m("div",et,[b(t,{link:"","aria-expanded":Ee.value,onClick:e[0]||(e[0]=s=>Ee.value=!Ee.value)},{default:p(()=>[...e[15]||(e[15]=[S("使用说明",-1)])]),_:1},8,["aria-expanded"]),b(t,{loading:ze.value,disabled:A.value,onClick:M},{default:p(()=>[...e[16]||(e[16]=[S("刷新",-1)])]),_:1},8,["loading","disabled"]),!C.value&&!u.viewOnly&&u.capabilities.can_upload?(i(),R(t,{key:0,type:"primary",disabled:!q.value||A.value||$.value,onClick:Pa},{default:p(()=>[...e[17]||(e[17]=[S("上传录音",-1)])]),_:1},8,["disabled"])):d("",!0)])]),Ee.value?(i(),f("div",at,[te.value?(i(),f("p",lt,v(u.capabilities.preview_only?"当前仅开放测试识别与提炼,可核对并保存审核草稿;测试预览任务不提供确认写入。":"这是历史测试任务,不写入病例;新上传的真实录音可按正常业务流程审核后确认入单。"),1)):(i(),f("p",tt,"录音只生成建议,不会自动写入。逐项核对后选择采纳,再确认写入;日常记录按日期和时段分别保留。")),e[18]||(e[18]=m("p",null,"仅当前可见标签页每 5 秒刷新;已编辑内容不会被覆盖。后台分析不受关闭页面影响,未知结果请先核对任务或账单,勿重复上传。",-1)),l.value?(i(),f("p",it,"任务 #"+v(l.value.id)+" · 版本 "+v(l.value.version)+" · 保留至 "+v(Ha(l.value.expires_at)),1)):d("",!0)])):d("",!0),te.value?(i(),R(o,{key:1,type:"warning",closable:!1,title:u.capabilities.preview_only?"仅测试识别与提炼,不写入病例":"历史测试任务,仅供查看和审阅",description:"此任务保留测试用途。新业务录音请新建任务,人工核对后确认入单。","show-icon":""},null,8,["title"])):d("",!0),wa.value?u.capabilities.can_upload&&!u.capabilities.models.length?(i(),R(o,{key:3,type:"warning",closable:!1,title:"暂无可用的分析模型,暂不可上传。已有任务可查看。"})):d("",!0):(i(),R(o,{key:2,type:"warning",closable:!1,title:u.capabilities.preview_only?"测试预览尚未就绪,暂不可上传或重试。已有任务可查看。":"当前环境尚未通过音频能力验证,暂不可上传或重试。已有任务可查看。"},null,8,["title"])),u.basicDirty?(i(),R(o,{key:4,type:"warning",closable:!1,title:te.value?"病历有未保存修改,测试预览不会覆盖这些修改。":"病历有未保存修改,请先保存病历,再写入录音建议。"},null,8,["title"])):d("",!0),$.value?(i(),R(o,{key:5,type:"warning",closable:!1,title:"创建结果未确认,已停止重复提交。请刷新列表并联系管理员核对,不要重新上传同一录音。"})):d("",!0),x.value?(i(),R(o,{key:6,type:"error",closable:!1,title:x.value,"show-icon":""},null,8,["title"])):d("",!0),C.value?l.value?d("",!0):(i(),f("div",ot,"正在加载录音任务…")):(i(),f("div",ut,[b(E,{data:U.value,"max-height":"440",size:"small","table-layout":"fixed","empty-text":"暂无录音,上传后可提炼回访资料","aria-label":"录音任务列表"},{default:p(()=>[b(g,{label:"录音","min-width":"210"},{default:p(({row:s})=>[b(t,{class:"filename-button",link:"",type:"primary",disabled:A.value,onClick:G=>va(s.id)},{default:p(()=>[S(v(s.file_name),1)]),_:2},1032,["disabled","onClick"]),m("div",nt,v(s.recorded_at),1)]),_:1}),b(g,{label:"状态",width:"145"},{default:p(({row:s})=>[b(y,{size:"small",type:Aa(s.status)},{default:p(()=>[S(v(Z(La)(s)),1)]),_:2},1032,["type"]),s.transcript_available&&(s.status==="failed"||s.status==="needs_reconciliation")?(i(),f("div",st,"转写已保留")):d("",!0)]),_:1}),b(g,{label:"操作",width:"112",align:"right"},{default:p(({row:s})=>[b(t,{link:"",type:"primary",disabled:A.value,onClick:G=>va(s.id)},{default:p(()=>[...e[19]||(e[19]=[S("查看",-1)])]),_:1},8,["disabled","onClick"]),!u.viewOnly&&s.can_delete!==void 0?(i(),R(t,{key:0,link:"",type:"danger",disabled:A.value||!Ge(s),title:s.delete_block_reason||"删除未入单录音任务",onClick:G=>Sa(s)},{default:p(()=>[...e[20]||(e[20]=[S("删除",-1)])]),_:1},8,["disabled","title","onClick"])):d("",!0)]),_:1})]),_:1},8,["data"])])),C.value&&l.value?(i(),f("section",rt,[m("div",vt,[m("div",ct,[m("h3",null,v(l.value.file_name),1),m("span",null,"通话时间 "+v(l.value.recorded_at),1)]),m("div",dt,[b(y,{size:"small",type:Aa(l.value.status)},{default:p(()=>[S(v(Z(La)(l.value)),1)]),_:1},8,["type"]),!u.viewOnly&&l.value.can_delete!==void 0?(i(),R(t,{key:0,link:"",type:"danger",disabled:A.value||!Ge(l.value),title:l.value.delete_block_reason||"删除未入单录音任务",onClick:e[1]||(e[1]=s=>Sa(l.value))},{default:p(()=>[...e[21]||(e[21]=[S("删除录音",-1)])]),_:1},8,["disabled","title"])):d("",!0)])]),l.value.status==="running"||l.value.status==="queued"?(i(),f("p",ft,v(Z(_l)(l.value)),1)):d("",!0),l.value.error_message||l.value.status==="failed"?(i(),R(o,{key:1,type:l.value.status==="failed"?"error":"warning",closable:!1,title:l.value.error_message||"任务处理失败,不能写入;请先核对失败原因。"},null,8,["type","title"])):d("",!0),Z(ma)(l.value)?(i(),R(o,{key:2,type:"warning",closable:!1,title:Z(ma)(l.value)},null,8,["title"])):d("",!0),l.value.status==="needs_reconciliation"?(i(),R(o,{key:3,type:"error",closable:!1,title:"上游结果待核对,禁止重发。请管理员先确认上游任务或账单。"})):d("",!0),l.value.status==="expired"?(i(),R(o,{key:4,type:"warning",closable:!1,title:"录音和转录已过保留期,不能继续写入;已采纳的业务记录保留。"})):d("",!0),l.value.can_retry&&l.value.status==="failed"&&!u.viewOnly?(i(),R(t,{key:5,class:"retry-button",disabled:!q.value||A.value,onClick:Ka},{default:p(()=>[...e[22]||(e[22]=[S("重试已确认失败的任务",-1)])]),_:1},8,["disabled"])):d("",!0),m("div",pt,[e[26]||(e[26]=m("div",{class:"muted"},"回访摘要 · AI未核实草稿,不代表已确认病情",-1)),m("p",null,v(l.value.summary||"暂无回访摘要"),1),m("div",yt,[m("span",null,[S(v(l.value.status==="applied"?"已写入":"已选")+" ",1),m("strong",null,v(Ce.value),1),e[23]||(e[23]=S(" 项",-1))]),m("span",null,[e[24]||(e[24]=S("待核实 ",-1)),m("strong",null,v(Fa.value),1),e[25]||(e[25]=S(" 项",-1))])])]),l.value.status==="review"&&!w.value.length?(i(),R(o,{key:6,type:"warning",closable:!1,title:"未生成可写入信息",description:l.value.uncertainties.length?`本次提炼保留了 ${l.value.uncertainties.length} 条待核实原因,已展示在下方。请结合原文回听核对,尤其注意声道角色是否相符。`:"请查看回访摘要并回听录音;本次没有可供确认写入的结构化候选。","show-icon":""},null,8,["description"])):d("",!0),me.value&&!["queued","running"].includes(l.value.status)?(i(),f("section",mt,[J.value!=="unconfirmed"&&!pe.value&&!K.value?(i(),f("div",gt,[m("span",null,v(J.value==="left_service"?"左客服端 / 右患者或家属端":"右客服端 / 左患者或家属端")+" · 已确认",1),re.value?(i(),R(t,{key:0,link:"",type:"primary",onClick:e[2]||(e[2]=s=>pe.value=!0)},{default:p(()=>[...e[27]||(e[27]=[S("修改",-1)])]),_:1})):d("",!0)])):(i(),f("label",bt,[e[28]||(e[28]=S("声道角色(人工确认)",-1)),b(B,{"model-value":N.value,disabled:!re.value||A.value&&O.value!=="save","onUpdate:modelValue":$a},{default:p(()=>[b(k,{label:"角色待确认",value:"unconfirmed"}),b(k,{label:"左客服端 / 右患者或家属端",value:"left_service"}),b(k,{label:"右客服端 / 左患者或家属端",value:"right_service"})]),_:1},8,["model-value","disabled"])])),J.value==="unconfirmed"||pe.value||K.value?(i(),f("p",_t,"声道不等于已核实的说话人身份。角色标注不自动重新提炼;变更后保存草稿会取消全部采纳,须重新核对。")):d("",!0),J.value!=="unconfirmed"&&!K.value?(i(),f("p",wt,"当前角色已确认,无需再次选择;只有左右标错时才需修改。")):d("",!0),K.value?(i(),f("p",kt,"角色标注正在等待保存;保存后请逐项重新核对。")):d("",!0)])):d("",!0),(Ia=l.value.role_check)!=null&&Ia.conflict||l.value.can_reextract!==void 0&&J.value!==he.value&&J.value!=="unconfirmed"?(i(),f("section",ht,[m("strong",null,v((Oa=l.value.role_check)!=null&&Oa.conflict?"声道角色与转写内容可能不一致":"审核角色已修改,原提炼结果尚未更新"),1),m("p",null,v(((Ua=l.value.role_check)==null?void 0:Ua.message)||"修改角色标注不会自动改变已生成的建议,可按核实后的角色重新提炼。"),1),(i(!0),f(Fe,null,$e(((Da=l.value.role_check)==null?void 0:Da.evidence)||[],(s,G)=>(i(),f("blockquote",{key:G},[m("span",null,v(s.channel===0?"左声道":"右声道")+" · "+v(Z(ga)(s.start_ms))+":"+v(s.text),1),l.value.audio_available?(i(),R(t,{key:0,link:"",type:"primary",onClick:Kt=>fa(s.start_ms)},{default:p(()=>[...e[29]||(e[29]=[S("回听依据",-1)])]),_:1},8,["onClick"])):d("",!0)]))),128)),m("p",null,"当前提炼依据:"+v(He(he.value))+"。"+v(Ie.value!=="unconfirmed"?`待确认的新角色:${He(Ie.value)}。`:"请先回听并修改上方角色标注。")+"建议仅供核对,系统不会自动交换角色。",1),b(t,{type:"primary",plain:"",disabled:!na.value||A.value||ae.value||Ie.value==="unconfirmed"||Ie.value===he.value,onClick:ja},{default:p(()=>[...e[30]||(e[30]=[S("确认角色并重新提炼",-1)])]),_:1},8,["disabled"]),ae.value?(i(),f("p",Ct,"请先完成当前单项核对或取消编辑,等待审核草稿保存后再重新提炼。")):l.value.reextract_block_reason?(i(),f("p",xt,v(l.value.reextract_block_reason),1)):d("",!0),e[31]||(e[31]=m("p",{class:"muted"},"复用已完成的转写,不重复语音识别;旧结果保留,重新提炼不自动写入病例。",-1))])):d("",!0),(l.value.extraction_revision||0)>0?(i(),f("p",At,"第 "+v((l.value.extraction_revision||0)+1)+" 版提炼 · "+v(He(he.value))+" · 历史结果已保留",1)):d("",!0),(i(),R(gl,{key:C.value,ref_key:"reviewRef",ref:Se,items:w.value,"onUpdate:items":e[4]||(e[4]=s=>w.value=s),fields:l.value.fields||u.capabilities.fields,disabled:!re.value||z.value||O.value!==""&&O.value!=="save","can-daily":u.capabilities.can_daily,applied:l.value.status==="applied",uncertainties:l.value.uncertainties,"snapshot-items":l.value.items,"channel-roles":J.value,"save-state":T.value,"persisted-revision":ta.value,onSavedNext:e[5]||(e[5]=s=>da(!0)),onSeek:fa},{player:p(()=>[m("div",St,[l.value.audio_available?(i(),R(t,{key:0,size:"small",loading:we.value,onClick:Ya},{default:p(()=>[S(v(j.value?"重新加载录音":"加载录音播放"),1)]),_:1},8,["loading"])):(i(),f("span",Et,"录音不可播放或已清理")),j.value?(i(),f("audio",{key:j.value,ref_key:"audioElement",ref:Te,src:j.value,controls:"",preload:"metadata"},null,8,Rt)):d("",!0)]),me.value&&l.value.audio_available?(i(),f("div",Tt,[b(t,{size:"small",type:X.value==="original"?"primary":"default","aria-pressed":X.value==="original",disabled:we.value||ke.value,onClick:e[3]||(e[3]=s=>Ea("original"))},{default:p(()=>[...e[32]||(e[32]=[S("完整对话",-1)])]),_:1},8,["type","aria-pressed","disabled"]),(i(),f(Fe,null,$e([0,1],s=>b(t,{key:s,size:"small",type:X.value===s?"primary":"default","aria-pressed":X.value===s,disabled:we.value||ke.value,onClick:G=>Ea(s)},{default:p(()=>[S(v(Z(wl)(s,J.value)),1)]),_:2},1032,["type","aria-pressed","disabled","onClick"])),64)),m("span",It,v(ke.value?"正在切换声道…":j.value?X.value==="original"?"回听模式:双方对话":`回听模式:仅${X.value===0?"左":"右"}声道`:"尚未加载录音"),1)])):d("",!0),se.value?(i(),f("p",Ot,v(se.value),1)):d("",!0),l.value.audio_available?(i(),f("p",Ut,"回听对话默认从该区间前 3 秒开始,连续播放双方声音;可随时切换为只听一方。")):d("",!0)]),_:1},8,["items","fields","disabled","can-daily","applied","uncertainties","snapshot-items","channel-roles","save-state","persisted-revision"])),b(Be,{modelValue:Y.value,"onUpdate:modelValue":e[6]||(e[6]=s=>Y.value=s),class:"original-collapse"},{default:p(()=>[b(L,{title:"完整对话转写",name:"original"},{default:p(()=>[ia.value.length?(i(),f("div",Dt,[e[34]||(e[34]=m("p",{class:"muted"},"双方转写按同一时间区间并列展示,不表示发言先后;重叠发言与具体问答请结合录音核对。",-1)),(i(!0),f(Fe,null,$e(Ba.value,s=>(i(),f("section",{key:s.id,class:"transcript-segment"},[m("div",Lt,[m("span",null,v(Z(ga)(s.start_ms))+"–"+v(Z(ga)(s.end_ms)),1),l.value.audio_available?(i(),R(t,{key:0,link:"",type:"primary",onClick:G=>fa(s.start_ms)},{default:p(()=>[...e[33]||(e[33]=[S("回听双方对话",-1)])]),_:1},8,["onClick"])):d("",!0)]),m("div",Vt,[(i(!0),f(Fe,null,$e(s.segments,G=>(i(),f("div",{key:G.id,class:"dialogue-side"},[m("strong",null,v(Z(kl)(G.channel,J.value)),1),m("pre",null,v(G.text||"(该区间无转写文本,不代表没有说话)"),1)]))),128))])]))),128))])):(i(),f("pre",Nt,v(l.value.transcript||"暂无转录"),1))]),_:1})]),_:1},8,["modelValue"]),l.value.status==="review"?(i(),f("div",Bt,[m("div",Ft,[m("strong",null,"已选 "+v(Ce.value)+" 项",1),m("span",null,v(Na.value),1)]),re.value?(i(),f("div",$t,[b(t,{link:"",disabled:A.value,loading:O.value==="save",onClick:e[7]||(e[7]=s=>da())},{default:p(()=>[S(v(T.value==="error"||T.value==="conflict"?"重试保存草稿":"立即保存草稿"),1)]),_:1},8,["disabled","loading"]),We.value?(i(),R(t,{key:0,type:"primary",disabled:A.value||u.basicDirty||!Ce.value||!!ve.value,loading:O.value==="apply",onClick:Wa},{default:p(()=>[...e[35]||(e[35]=[S("确认写入",-1)])]),_:1},8,["disabled","loading"])):d("",!0)])):d("",!0),ve.value?(i(),f("p",Mt,v(ve.value),1)):d("",!0)])):d("",!0),l.value.status==="applied"?(i(),f("p",Pt,v(te.value?"该任务已有历史采纳记录;当前为测试预览,不允许再次写入。":"本次审核已完成,所选项已写入诊单或日常记录,不能重复写入。"),1)):d("",!0)])):d("",!0),b(Za,{modelValue:ge.value,"onUpdate:modelValue":e[12]||(e[12]=s=>ge.value=s),title:"上传回访录音",width:"min(520px, calc(100vw - 32px))","append-to-body":"","close-on-click-modal":!1,"close-on-press-escape":!z.value,"show-close":!z.value,"before-close":xa},{footer:p(()=>[b(t,{disabled:z.value,onClick:e[11]||(e[11]=s=>xa())},{default:p(()=>[...e[37]||(e[37]=[S("取消",-1)])]),_:1},8,["disabled"]),b(t,{type:"primary",disabled:!q.value||A.value||$.value,loading:z.value,onClick:za},{default:p(()=>[...e[38]||(e[38]=[S("上传并分析",-1)])]),_:1},8,["disabled","loading"])]),default:p(()=>[b(Ze,{"label-position":"top",class:"upload-form"},{default:p(()=>[b(F,{label:"录音文件"},{default:p(()=>[m("input",{ref_key:"fileInput",ref:ua,type:"file",accept:"audio/mpeg,audio/mp4,audio/wav,audio/amr,.mp3,.m4a,.wav,.amr",disabled:!q.value||A.value||$.value,"aria-label":"录音文件",onChange:Ja},null,40,Jt),m("small",null,"支持 MP3 / M4A / WAV / AMR,最多 "+v(Math.floor(u.capabilities.limits.max_bytes/1024/1024))+" MB / "+v(Math.floor(u.capabilities.limits.max_seconds/60))+" 分钟。",1)]),_:1}),b(F,{label:"实际通话时间(北京时间)"},{default:p(()=>[b(fe,{modelValue:Re.value,"onUpdate:modelValue":e[8]||(e[8]=s=>Re.value=s),type:"datetime","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:"用于识别昨天、前天等相对日期",disabled:!q.value||A.value||$.value},null,8,["modelValue","disabled"])]),_:1}),b(F,{label:"本次录音的声道角色"},{default:p(()=>[b(B,{modelValue:be.value,"onUpdate:modelValue":e[9]||(e[9]=s=>be.value=s),"aria-label":"本次录音的声道角色",disabled:!q.value||A.value||$.value},{default:p(()=>[b(k,{label:"暂不确定 / 单声道",value:"unconfirmed"}),b(k,{label:"左客服 / 右患者或家属",value:"left_service"}),b(k,{label:"右客服 / 左患者或家属",value:"right_service"})]),_:1},8,["modelValue","disabled"]),e[36]||(e[36]=m("small",null,"已知角色会在提炼前提供给模型;不确定请勿猜测。单声道不按左右区分身份。",-1))]),_:1}),b(Be,{class:"advanced-settings"},{default:p(()=>[b(L,{title:"高级设置 · 分析模型",name:"model"},{default:p(()=>[b(F,{label:"分析模型"},{default:p(()=>[b(B,{modelValue:_e.value,"onUpdate:modelValue":e[10]||(e[10]=s=>_e.value=s),disabled:!q.value||A.value||$.value,placeholder:"选择已配置的模型"},{default:p(()=>[(i(!0),f(Fe,null,$e(u.capabilities.models,s=>(i(),R(k,{key:s.value,label:s.label,value:s.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1})]),_:1}),x.value?(i(),R(o,{key:0,type:"error",closable:!1,title:x.value,"show-icon":""},null,8,["title"])):d("",!0),$.value&&!z.value?(i(),R(o,{key:1,type:"warning",closable:!1,title:"创建结果未确认,请关闭弹窗后刷新任务列表并联系管理员核对,不要重新上传。"})):d("",!0),z.value?(i(),R(Ga,{key:2,percentage:qe.value},null,8,["percentage"])):d("",!0),W.value?(i(),f("p",zt,v(W.value),1)):d("",!0),m("p",qt,v(te.value?"本次仅测试识别与提炼,可保存审核草稿,不允许写入病历。":"分析仅生成建议,人工确认后才会写入。"),1)]),_:1},8,["modelValue","close-on-press-escape","show-close"])])):d("",!0)}}}),jt=ml(Wt,[["__scopeId","data-v-11f13e78"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:jt},Symbol.toStringTag,{value:"Module"}));export{jt as F,Xt as a,Qt as f}; +import{o as Qa,M as _,R as ya,ap as Xa,by as el,q as i,r as f,s as m,O as R,D as p,L as S,K as al,T as v,v as b,P as d,bo as ll,bk as tl,bl as il,bm as ul,u as Z,bh as nl,bi as sl,F as Fe,G as $e,cJ as ol,cK as rl,aB as vl,bd as cl,bb as dl,az as fl,bY as pl,p as I,E as P,e as Me,n as yl}from"./.pnpm-CyuAWpdG.js";import{r as Xe,_ as ml}from"./index-Bkarz3gO.js";import gl from"./FollowupAudioReview-BDRNtxGL.js";import{c as bl,f as La,a as _l,r as ma,b as ga,d as wl,e as kl,g as ue,u as hl,h as Cl,i as Qe,j as Va,n as Pe,k as xl,l as Al,m as Sl,o as El,p as Rl,q as Tl,s as Il,t as Ol,v as Ul,w as Dl,x as Ll,y as Vl}from"./FollowupAudioField-Dz9Csp0b.js";class Je extends Error{constructor(c,h=""){super(c),this.code=h,this.name="FollowupAudioError"}}const ea={isTransformResponse:!1,ignoreCancelToken:!0,isOpenRetry:!1,retryCount:0},aa="/tcm.followupAudio/";function la(u){if(u.code!==1){const c=u.data,h=c&&typeof c=="object"&&"code"in c?String(c.code):"";throw new Je(u.msg||"回访录音请求失败,请刷新任务状态后确认",h)}return u.data}async function ba(u,c,h){return la(await Xe.get({url:aa+u,params:c,signal:h},ea))}async function ne(u,c,h){return la(await Xe.post({url:aa+u,data:c,signal:h,timeout:12e4},ea))}const Qt=(u,c)=>ba("capabilities",{diagnosis_id:u},c),Nl=(u,c)=>ba("lists",{diagnosis_id:u},c),Bl=(u,c)=>ba("detail",{id:u},c),Fl=(u,c)=>ne("uploadSession",u,c);async function $l(u,c,h,n){const D=new FormData;return D.append("upload_id",u),D.append("index",String(c)),D.append("file",h,`chunk-${c}`),la(await Xe.post({url:aa+"uploadChunk",data:D,signal:n,timeout:12e4,headers:{"Content-Type":"multipart/form-data"}},ea))}const Ml=(u,c)=>ne("uploadComplete",{upload_id:u},c),Pl=(u,c)=>ne("create",u,c),Jl=(u,c)=>ne("saveDraft",u,c),zl=(u,c)=>ne("apply",u,c),ql=(u,c)=>ne("reextract",u,c),Wl=(u,c)=>ne("delete",u,c),jl=(u,c)=>ne("retry",{id:u},c);async function Kl(u,c){const h=await Xe.get({url:aa+"audio",params:{id:u},responseType:"blob",signal:c,timeout:12e4},ea);if(h.type.includes("json")){const n=JSON.parse(await h.text());throw la(n),new Je("录音响应不是音频文件")}return h}function Yl(){const u=globalThis,c=u.AudioContext||u.webkitAudioContext;return c?new c:null}function Hl(u,c=Yl){let h=null,n=null,D=null,U=null,l=!1,w=0;function C(){n==null||n.disconnect(),D==null||D.disconnect(),U==null||U.disconnect()}return{async select(V){if(l)return!1;const N=++w;if(u.pause(),V==="original"&&!h)return!0;try{if(!h){if(h=c(),!h)throw new Error("当前浏览器不支持 Web Audio,无法隔离声道;请使用原音播放。");n=h.createMediaElementSource(u),D=h.createChannelSplitter(2),U=h.createChannelMerger(2)}if(!n)throw new Error("音频播放节点未就绪");if(C(),V==="original")n.connect(h.destination);else{if(!D||!U)throw new Error("声道播放节点未就绪");n.connect(D),D.connect(U,V,0),D.connect(U,V,1),U.connect(h.destination)}if(await h.resume(),!l&&N===w&&h.state!=="running")throw new Error("音频上下文未运行");return!l&&N===w}catch(Q){if(l||N!==w)return!1;throw C(),n&&h&&n.connect(h.destination),new Error(`无法隔离声道,已停止本次回听;可选择原音播放。${Q instanceof Error?Q.message:""}`)}},dispose(){l||(l=!0,w++,u.pause(),C(),h&&h.close().catch(()=>{}))}}}const Gl={key:0,class:"followup-panel","aria-label":"回访录音"},Zl={class:"panel-toolbar"},Ql={class:"toolbar-title"},Xl={key:1},et={class:"toolbar-actions"},at={key:0,class:"help-box"},lt={key:0},tt={key:1},it={key:2},ut={key:7,class:"task-list"},nt={class:"task-time"},st={key:0,class:"task-time"},ot={key:8,class:"detail-loading",role:"status"},rt={key:9,class:"task-detail","aria-label":"录音任务详情"},vt={class:"detail-heading"},ct={class:"recording-title"},dt={class:"detail-actions"},ft={key:0,class:"processing-state",role:"status"},pt={class:"summary-box"},yt={class:"summary-counts"},mt={key:7,class:"channel-role-box","aria-label":"声道角色人工标注"},gt={key:0,class:"role-summary"},bt={key:1},_t={key:2,class:"muted"},wt={key:3,class:"muted"},kt={key:4,class:"review-error",role:"status"},ht={key:8,class:"role-reextract","aria-label":"角色纠错与重新提炼"},Ct={key:0},xt={key:1},At={key:9,class:"muted"},St={class:"audio-player"},Et={key:1,class:"muted"},Rt=["src"],Tt={key:0,class:"channel-playback","aria-label":"声道回听"},It={class:"muted",role:"status"},Ot={key:1,class:"review-error",role:"alert"},Ut={key:2,class:"muted"},Dt={key:0,class:"transcript-segments"},Lt={class:"segment-heading"},Vt={class:"dialogue-sides"},Nt={key:1,class:"transcript-text"},Bt={key:10,class:"review-actions"},Ft={class:"selection-summary"},$t={key:0,class:"action-buttons"},Mt={key:1,class:"review-error",role:"alert"},Pt={key:11,class:"applied-note"},Jt=["disabled"],zt={key:3,class:"upload-stage",role:"status"},qt={class:"muted"},Wt=Qa({__name:"FollowupAudioPanel",props:{diagnosisId:{},viewOnly:{type:Boolean,default:!1},active:{type:Boolean,default:!0},capabilities:{},basicDirty:{type:Boolean,default:!1},beforeApply:{}},emits:["applied"],setup(u,{expose:c,emit:h}){var Ta;const n=u,D=h,U=_([]),l=_(null),w=_([]),C=_(0),V=_("[]"),N=_("unconfirmed"),Q=_("unconfirmed"),pe=_(!1),T=_("idle"),ta=_(0),ye=I(()=>K.value||JSON.stringify(w.value)!==V.value),Na=I(()=>{var a;return T.value==="saving"?"正在自动保存…":T.value==="error"?"保存失败,修改仍保留;请重试保存":T.value==="conflict"?"自动保存已暂停;请重新核对后重试保存":ye.value?"等待自动保存…":(a=Se.value)!=null&&a.hasUnsavedChanges()?"当前单项尚未完成核对":T.value==="saved"?"审核草稿已自动保存":"草稿已同步"}),K=I(()=>N.value!==Q.value),J=I(()=>{var a;return Pe((a=l.value)==null?void 0:a.channel_roles)}),ia=I(()=>{var a;return[...((a=l.value)==null?void 0:a.transcript_segments)||[]].sort((e,t)=>e.start_ms-t.start_ms||(e.channel??-1)-(t.channel??-1))}),Ba=I(()=>Al(ia.value)),me=I(()=>Sl(ia.value)),Se=_(null),ae=I(()=>{var a;return K.value||JSON.stringify(w.value)!==V.value||!!((a=Se.value)!=null&&a.hasUnsavedChanges())}),ge=_(!1),Ee=_(!1),Y=_([]),le=_(null),ua=_(null),Re=_(""),be=_("unconfirmed"),_e=_(((Ta=n.capabilities.models[0])==null?void 0:Ta.value)||""),ze=_(!1),z=_(!1),qe=_(0),W=_(""),$=_(!1),O=_(""),x=_(""),j=_(""),Te=_(null),we=_(!1),X=_("original"),ke=_(!1),se=_(""),_a=_(typeof document>"u"||document.visibilityState!=="hidden"),A=I(()=>z.value||!!O.value),oe=I(()=>El(n.capabilities)),te=I(()=>{var a;return!!n.capabilities.preview_only||!!((a=l.value)!=null&&a.preview_only)}),wa=I(()=>Rl(n.capabilities)),q=I(()=>!n.viewOnly&&oe.value&&wa.value&&n.capabilities.can_upload&&n.capabilities.models.length>0),re=I(()=>{var a,e;return!n.viewOnly&&Tl(n.capabilities,!!((a=l.value)!=null&&a.preview_only))&&((e=l.value)==null?void 0:e.status)==="review"}),We=I(()=>{var a,e;return!n.viewOnly&&Il(n.capabilities,!!((a=l.value)!=null&&a.preview_only))&&((e=l.value)==null?void 0:e.status)==="review"}),he=I(()=>{var a;return Pe((a=l.value)==null?void 0:a.extraction_channel_roles)}),Ie=I(()=>{var a,e;return J.value!=="unconfirmed"&&J.value!==he.value?J.value:Pe((e=(a=l.value)==null?void 0:a.role_check)==null?void 0:e.suggested_roles)}),na=I(()=>{var a,e;return!n.viewOnly&&oe.value&&((a=l.value)==null?void 0:a.status)==="review"&&((e=l.value)==null?void 0:e.can_reextract)===!0}),Ce=I(()=>w.value.filter(a=>a.selected).length),Fa=I(()=>{var a;return w.value.filter(e=>{var t;return Ol(e,((t=l.value)==null?void 0:t.fields)||n.capabilities.fields,n.capabilities.can_daily)}).length+(((a=l.value)==null?void 0:a.uncertainties.length)||0)}),ve=I(()=>{var a,e;return te.value?"测试预览仅保存审核草稿,不允许确认写入病历":T.value==="conflict"?"记录版本已变化,请重新核对后重试保存草稿":T.value==="error"?"草稿保存失败,请重试保存成功后再确认写入":T.value==="saving"||ye.value?"审核草稿尚未保存完成,请稍候再确认写入":K.value?"声道角色标注尚未保存,请先保存草稿并重新核对建议":me.value&&J.value==="unconfirmed"?"请先回听并确认声道角色,保存草稿后重新核对建议":Ul(w.value,((a=l.value)==null?void 0:a.items)||[])?"写入目标或记录日期已更改,请先保存审核草稿取得新快照,再核对并采纳":Dl(w.value,((e=l.value)==null?void 0:e.fields)||n.capabilities.fields)||w.value.map(t=>{var o;return Ll(t,((o=l.value)==null?void 0:o.fields)||n.capabilities.fields)||Vl(t,n.capabilities.can_daily)}).find(Boolean)||""}),Oe=I(()=>n.active&&oe.value&&_a.value),r=bl();let je,Ue,H=!1,De=null,Ke=!1,Le=0,ce=0,ee=null,sa=null,ka=0;function ie(){je!==void 0&&clearTimeout(je),je=void 0}function Ye(){var a;Le++,ce++,ee==null||ee.dispose(),ee=null,sa=null,(a=Te.value)==null||a.pause(),j.value&&URL.revokeObjectURL(j.value),j.value="",we.value=!1,ke.value=!1,X.value="original",se.value=""}function xe(){r.invalidate(),ie(),de(),Ye(),De=null,T.value==="saving"&&(T.value="error",x.value="保存结果尚未确认;修改仍保留,请刷新核对版本后重试保存。"),ze.value=!1,z.value=!1,O.value="",Ke=!1}function oa(a,e,t=e){e=e&&a.status==="review";const o=t&&K.value&&a.status==="review";a.audio_available||Ye(),ma(a)&&(!l.value||l.value.status!==a.status||!l.value.transcript_available)&&(Y.value.includes("original")||(Y.value=[...Y.value,"original"])),H=!0;try{l.value=a;const g=e?Va(w.value,a.items):Qe(a.items);JSON.stringify(g)!==JSON.stringify(w.value)&&(w.value=g),V.value=JSON.stringify(a.items),Q.value=Pe(a.channel_roles),o||(N.value=Q.value)}finally{H=!1}}function Ve(){H=!0,N.value="unconfirmed",Q.value="unconfirmed",H=!1,pe.value=!1,T.value="idle",ta.value=0}function $a(a){!re.value||A.value&&O.value!=="save"||!me.value||!["unconfirmed","left_service","right_service"].includes(String(a))||(N.value=a)}function ha(a){return a instanceof Je&&(a.code==="FOLLOWUP_AUDIO_TASK_UNAVAILABLE"||a.message.includes("FOLLOWUP_AUDIO_TASK_UNAVAILABLE"))}function Ca(a){C.value===a&&(xe(),Ve(),C.value=0,l.value=null,w.value=[],V.value="[]",Y.value=[],U.value=U.value.filter(e=>e.id!==a),x.value="录音已删除或不再可访问,已关闭本页缓存与播放;未写入病例。",M())}async function Ae(a,e=!1,t=!1){var E;const o=r.capture();let g;try{g=await Bl(a,o.signal)}catch(k){if(r.current(o)&&a===C.value&&ha(k)){Ca(a);return}throw k}if(t&&l.value&&g.version===l.value.version&&g.status===l.value.status||!r.current(o)||a!==C.value||l.value&&g.versiono.id===C.value);t&&(!l.value||t.version>l.value.version||t.version>=l.value.version&&t.status!==l.value.status||t.status==="running")?await Ae(t.id,ae.value):!t&&C.value&&l.value&&await Ae(C.value,!1,!0)}catch(e){r.current(a)&&(x.value=ue(e))}finally{r.current(a)&&(Ke=!1,ze.value=!1,Oe.value&&(je=setTimeout(()=>{M()},5e3)))}}async function ra(){if(A.value)return P.warning("正在上传或提交审核,请等待本次操作结束"),!1;if(!ae.value)return!0;try{return await Me.confirm("审核修改尚未保存。关闭诊单或切换录音将丢失这些修改,是否继续?","保留审核修改",{type:"warning",confirmButtonText:"继续离开",cancelButtonText:"返回保存"}),!0}catch{return!1}}async function va(a){if(!oe.value||a===C.value||A.value)return;const e=r.capture();if(!await ra()||!r.current(e))return;xe(),Ve(),C.value=a,l.value=null,w.value=[],V.value="[]",x.value="",Y.value=[];const t=r.capture();try{await Ae(a)}catch(o){r.current(t)&&(x.value=ue(o))}r.current(t)&&await M()}async function Ma(){const a=r.capture();!await ra()||!r.current(a)||(xe(),Ve(),C.value=0,l.value=null,w.value=[],V.value="[]",Y.value=[],x.value="",await M())}function Pa(){!q.value||A.value||$.value||(le.value||(be.value="unconfirmed"),ge.value=!0)}function xa(a){z.value||(ge.value=!1,a==null||a())}function Aa(a){return a==="failed"||a==="needs_reconciliation"?"danger":a==="applied"?"success":a==="review"?"warning":"info"}function Ja(a){var t;const e=((t=a.target.files)==null?void 0:t[0])||null;e&&(le.value&&e!==le.value&&(be.value="unconfirmed",P.warning("录音已更换,请重新核对本次录音的声道角色")),le.value=e,qe.value=0,W.value="")}async function za(){if(A.value||$.value)return;const a=hl(le.value,Re.value,_e.value,n.capabilities,n.viewOnly);if(a){P.warning(a);return}const e=le.value;if(!e)return;const t=r.capture();z.value=!0,qe.value=0,x.value="",ie();let o=!1;try{W.value="正在创建私有上传会话";const g=await Fl({diagnosis_id:n.diagnosisId,file_name:e.name,total_bytes:e.size},t.signal);if(!r.current(t)||!q.value||(W.value="正在上传录音分片",!await Cl(e,g.chunk_bytes,(k,B)=>$l(g.upload_id,k,B,t.signal),()=>r.current(t)&&q.value,k=>{qe.value=k}))||(W.value="正在校验录音时长和完整性",await Ml(g.upload_id,t.signal),!r.current(t)||!q.value))return;W.value="正在创建分析任务",o=!0,$.value=!0;const E=await Pl({diagnosis_id:n.diagnosisId,upload_id:g.upload_id,recorded_at:Re.value,model_key:_e.value,channel_roles:be.value},t.signal);if(!r.current(t))return;$.value=!1,z.value=!1,ge.value=!1,le.value=null,ua.value&&(ua.value.value=""),W.value=E.reused?E.reuse_message||"同一录音已有任务,已打开原任务,不会重复调用模型":n.capabilities.preview_only?"测试任务已创建,后台将识别与提炼;此任务不允许写入业务记录":"任务已创建,后台将进行分析;审核前不会写入业务记录",E.reused&&P.warning(W.value),await va(E.task_id)}catch(g){r.current(t)&&(x.value=ue(g),$.value=o&&!(g instanceof Je),W.value="本次操作已停止,未自动重试")}finally{r.current(t)&&(z.value=!1,await M())}}async function ca(a){const e=r.capture();if(ha(a)&&l.value){Ca(l.value.id);return}if(x.value=ue(a),a instanceof Je&&a.code==="FOLLOWUP_AUDIO_STALE_REVIEW"||/STALE_REVIEW|版本|快照|已变化/.test(x.value)){de(),T.value="conflict";try{await Ae(C.value,!0)}catch{r.current(e)&&(x.value+=";刷新失败,当前编辑仍已保留,请稍后刷新。")}}}function de(){Ue!==void 0&&clearTimeout(Ue),Ue=void 0}function Ne(){de(),!(H||!Oe.value||!re.value||!ye.value||["error","conflict"].includes(T.value))&&O.value!=="save"&&(T.value="pending",Ue=setTimeout(()=>{Ue=void 0,da(!0)},650))}function qa(a,e,t){const o=new Map(a.map(y=>[y.id,y])),g=new Map(t.map(y=>[y.id,y]));return Qe(e).map(y=>{const E=o.get(y.id),k=g.get(y.id);if(!E||!k)return y;const B=y.needs_review&&!E.needs_review||E.selected&&!y.selected;for(const L of["values","record_date","record_time","time_period","target_id","selected","needs_review"])B&&(L==="selected"||L==="needs_review")||JSON.stringify(E[L])!==JSON.stringify(k[L])&&Object.assign(y,{[L]:k[L]});return y})}async function da(a=!1){var Be;if(De)return De;if(!re.value||!l.value||A.value||!Oe.value)return;if(!a&&((Be=Se.value)!=null&&Be.hasUnsavedChanges())){P.warning("请先保存或取消正在核对的单项修改");return}if(a&&(!ye.value||["error","conflict"].includes(T.value)))return;de();const e=r.capture(),t=l.value.id,o=n.diagnosisId,g=()=>r.current(e)&&C.value===t&&n.diagnosisId===o,y=K.value,E=N.value,k=Qe(w.value),B=l.value.version;O.value="save",T.value="saving",x.value="",ie();const L=(async()=>{try{const F=await Jl({id:t,version:B,items:k,...y&&me.value?{channel_roles:E}:{}},e.signal);if(!g())return;if(l.value&&F.versionr.current(e)&&g===n.diagnosisId&&C.value===t;de(),ie(),O.value="reextract",x.value="";let E=!1;try{if(await Me.confirm(`确认已回听并核实角色为“${He(a)}”?将保留旧版结果,复用已完成的转写重新提炼,不重复语音识别;新建议须重新审核,不自动写入病例。`,"确认角色并重新提炼",{type:"warning",confirmButtonText:"角色正确,开始重新提炼",cancelButtonText:"返回回听"}),!y()||!na.value||ae.value)return;E=!0;const k=await ql({id:t,version:o,channel_roles:a},e.signal);if(!y())return;oa(k,!1),T.value="idle",pe.value=!1,P.success("已提交重新提炼,将复用原转写;新结果仍需审核,不自动写入病例")}catch(k){E&&y()&&await ca(k)}finally{y()&&(O.value="",Ne(),await M())}}function Ge(a){return!n.viewOnly&&oe.value&&a.can_delete===!0&&["review","failed"].includes(a.status)}async function Sa(a){if(A.value||!Ge(a))return;const e=r.capture(),t=n.diagnosisId,o=a.id,g=a.version,y=()=>r.current(e)&&t===n.diagnosisId;de(),ie(),O.value="delete",x.value="";let E=!1;try{if(await Me.confirm("删除后,该录音任务及审核草稿将从列表移除,未保存修改会丢弃;不删除或回滚病例。原录音和转写仍按原保留期限清理。重新上传同一文件将创建新的分析任务。确认删除?","删除录音任务",{type:"warning",confirmButtonText:"确认删除",cancelButtonText:"保留录音"}),!y()||!Ge(a)||(E=!0,await Wl({id:o,version:g},e.signal),!y()))return;C.value===o&&(xe(),Ve(),C.value=0,l.value=null,w.value=[],V.value="[]",Y.value=[]),U.value=U.value.filter(k=>k.id!==o),x.value="",P.success("录音任务已删除,未修改病例。原资料按保留策略清理。"),await M()}catch(k){E&&y()&&(x.value=ue(k))}finally{y()&&(O.value="",Ne(),await M())}}async function Ka(){var e,t;if(!((e=l.value)!=null&&e.can_retry)||l.value.status!=="failed"||!q.value||A.value)return;const a=r.capture();try{await Me.confirm("仅对服务端已确认失败、允许重试的任务重新分析。确认继续?","确认重试",{type:"warning"})}catch{return}if(!(!r.current(a)||!((t=l.value)!=null&&t.can_retry)||l.value.status!=="failed"||!q.value)){O.value="retry",ie();try{await jl(l.value.id,a.signal),r.current(a)&&await Ae(C.value)}catch(o){r.current(a)&&(x.value=ue(o))}finally{r.current(a)&&(O.value="",await M())}}}async function fa(a){await pa(xl(a))}async function Ya(){Ye(),await pa()}async function Ea(a){var e;await pa((((e=Te.value)==null?void 0:e.currentTime)||0)*1e3,a==="original"?void 0:a)}async function pa(a,e){var k;if(!oe.value||!((k=l.value)!=null&&k.audio_available))return;const t=++ce;if(se.value="",e!==void 0&&(!me.value||e!==0&&e!==1)){Ye(),se.value="未取得可验证的双声道片段,无法隔离声道;请使用原音播放。";return}const o=r.capture(),g=l.value.id;if(!j.value){const B=++Le;we.value=!0;try{const L=await Kl(g,o.signal);if(!r.current(o)||B!==Le||g!==C.value)return;j.value=URL.createObjectURL(L)}catch(L){r.current(o)&&B===Le&&(x.value=ue(L))}finally{r.current(o)&&B===Le&&(we.value=!1)}}if(await yl(),!r.current(o)||t!==ce||g!==C.value||!j.value||!Te.value)return;const y=Te.value;sa!==y&&(ee==null||ee.dispose(),ee=Hl(y),sa=y);const E=ee;ke.value=!0;try{if(!E||!await E.select(e??"original")||!r.current(o)||t!==ce||g!==C.value||(X.value=e??"original",typeof a!="number"||!Number.isFinite(a)))return;y.currentTime=Math.max(0,a/1e3);try{await y.play()}catch{r.current(o)&&t===ce&&(se.value="播放未启动,请使用播放器控件继续。")}}catch(B){r.current(o)&&t===ce&&(X.value="original",se.value=ue(B))}finally{r.current(o)&&t===ce&&(ke.value=!1)}}function Ha(a){if(!a)return"由保留策略控制";const e=typeof a=="number"||/^\d+$/.test(a)?new Date(Number(a)*1e3):new Date(a);return Number.isNaN(e.getTime())?String(a):e.toLocaleString("zh-CN",{timeZone:"Asia/Shanghai"})}function Ra(){_a.value=document.visibilityState!=="hidden"}return ya([()=>n.diagnosisId,Oe,()=>!!n.capabilities.preview_only],([a,e])=>{xe(),a!==ka&&(Ve(),ka=a,C.value=0,l.value=null,w.value=[],V.value="[]",U.value=[],le.value=null,Re.value="",be.value="unconfirmed",ge.value=!1,Y.value=[],Ee.value=!1,x.value="",W.value="",$.value=!1),e&&(M(),Ne())},{immediate:!0}),ya([()=>JSON.stringify(w.value),N],()=>{H||Ne()},{flush:"sync"}),ya(()=>n.capabilities.models,a=>{var e;a.some(t=>t.value===_e.value)||(_e.value=((e=a[0])==null?void 0:e.value)||"")}),Xa(()=>document.addEventListener("visibilitychange",Ra)),el(()=>{xe(),document.removeEventListener("visibilitychange",Ra)}),c({confirmLeave:ra,refresh:M,hasUnsavedChanges:()=>ae.value}),(a,e)=>{var Ia,Oa,Ua,Da;const t=al,o=ll,g=il,y=ul,E=tl,k=sl,B=nl,L=rl,Be=ol,F=dl,fe=fl,Ze=cl,Ga=pl,Za=vl;return oe.value?(i(),f("section",Gl,[m("div",Zl,[m("div",Ql,[C.value?(i(),R(t,{key:0,link:"",type:"primary",disabled:A.value,onClick:Ma},{default:p(()=>[...e[13]||(e[13]=[S("返回列表",-1)])]),_:1},8,["disabled"])):(i(),f("h3",Xl,[e[14]||(e[14]=S("回访录音 ",-1)),m("span",null,v(U.value.length),1)]))]),m("div",et,[b(t,{link:"","aria-expanded":Ee.value,onClick:e[0]||(e[0]=s=>Ee.value=!Ee.value)},{default:p(()=>[...e[15]||(e[15]=[S("使用说明",-1)])]),_:1},8,["aria-expanded"]),b(t,{loading:ze.value,disabled:A.value,onClick:M},{default:p(()=>[...e[16]||(e[16]=[S("刷新",-1)])]),_:1},8,["loading","disabled"]),!C.value&&!u.viewOnly&&u.capabilities.can_upload?(i(),R(t,{key:0,type:"primary",disabled:!q.value||A.value||$.value,onClick:Pa},{default:p(()=>[...e[17]||(e[17]=[S("上传录音",-1)])]),_:1},8,["disabled"])):d("",!0)])]),Ee.value?(i(),f("div",at,[te.value?(i(),f("p",lt,v(u.capabilities.preview_only?"当前仅开放测试识别与提炼,可核对并保存审核草稿;测试预览任务不提供确认写入。":"这是历史测试任务,不写入病例;新上传的真实录音可按正常业务流程审核后确认入单。"),1)):(i(),f("p",tt,"录音只生成建议,不会自动写入。逐项核对后选择采纳,再确认写入;日常记录按日期和时段分别保留。")),e[18]||(e[18]=m("p",null,"仅当前可见标签页每 5 秒刷新;已编辑内容不会被覆盖。后台分析不受关闭页面影响,未知结果请先核对任务或账单,勿重复上传。",-1)),l.value?(i(),f("p",it,"任务 #"+v(l.value.id)+" · 版本 "+v(l.value.version)+" · 保留至 "+v(Ha(l.value.expires_at)),1)):d("",!0)])):d("",!0),te.value?(i(),R(o,{key:1,type:"warning",closable:!1,title:u.capabilities.preview_only?"仅测试识别与提炼,不写入病例":"历史测试任务,仅供查看和审阅",description:"此任务保留测试用途。新业务录音请新建任务,人工核对后确认入单。","show-icon":""},null,8,["title"])):d("",!0),wa.value?u.capabilities.can_upload&&!u.capabilities.models.length?(i(),R(o,{key:3,type:"warning",closable:!1,title:"暂无可用的分析模型,暂不可上传。已有任务可查看。"})):d("",!0):(i(),R(o,{key:2,type:"warning",closable:!1,title:u.capabilities.preview_only?"测试预览尚未就绪,暂不可上传或重试。已有任务可查看。":"当前环境尚未通过音频能力验证,暂不可上传或重试。已有任务可查看。"},null,8,["title"])),u.basicDirty?(i(),R(o,{key:4,type:"warning",closable:!1,title:te.value?"病历有未保存修改,测试预览不会覆盖这些修改。":"病历有未保存修改,请先保存病历,再写入录音建议。"},null,8,["title"])):d("",!0),$.value?(i(),R(o,{key:5,type:"warning",closable:!1,title:"创建结果未确认,已停止重复提交。请刷新列表并联系管理员核对,不要重新上传同一录音。"})):d("",!0),x.value?(i(),R(o,{key:6,type:"error",closable:!1,title:x.value,"show-icon":""},null,8,["title"])):d("",!0),C.value?l.value?d("",!0):(i(),f("div",ot,"正在加载录音任务…")):(i(),f("div",ut,[b(E,{data:U.value,"max-height":"440",size:"small","table-layout":"fixed","empty-text":"暂无录音,上传后可提炼回访资料","aria-label":"录音任务列表"},{default:p(()=>[b(g,{label:"录音","min-width":"210"},{default:p(({row:s})=>[b(t,{class:"filename-button",link:"",type:"primary",disabled:A.value,onClick:G=>va(s.id)},{default:p(()=>[S(v(s.file_name),1)]),_:2},1032,["disabled","onClick"]),m("div",nt,v(s.recorded_at),1)]),_:1}),b(g,{label:"状态",width:"145"},{default:p(({row:s})=>[b(y,{size:"small",type:Aa(s.status)},{default:p(()=>[S(v(Z(La)(s)),1)]),_:2},1032,["type"]),s.transcript_available&&(s.status==="failed"||s.status==="needs_reconciliation")?(i(),f("div",st,"转写已保留")):d("",!0)]),_:1}),b(g,{label:"操作",width:"112",align:"right"},{default:p(({row:s})=>[b(t,{link:"",type:"primary",disabled:A.value,onClick:G=>va(s.id)},{default:p(()=>[...e[19]||(e[19]=[S("查看",-1)])]),_:1},8,["disabled","onClick"]),!u.viewOnly&&s.can_delete!==void 0?(i(),R(t,{key:0,link:"",type:"danger",disabled:A.value||!Ge(s),title:s.delete_block_reason||"删除未入单录音任务",onClick:G=>Sa(s)},{default:p(()=>[...e[20]||(e[20]=[S("删除",-1)])]),_:1},8,["disabled","title","onClick"])):d("",!0)]),_:1})]),_:1},8,["data"])])),C.value&&l.value?(i(),f("section",rt,[m("div",vt,[m("div",ct,[m("h3",null,v(l.value.file_name),1),m("span",null,"通话时间 "+v(l.value.recorded_at),1)]),m("div",dt,[b(y,{size:"small",type:Aa(l.value.status)},{default:p(()=>[S(v(Z(La)(l.value)),1)]),_:1},8,["type"]),!u.viewOnly&&l.value.can_delete!==void 0?(i(),R(t,{key:0,link:"",type:"danger",disabled:A.value||!Ge(l.value),title:l.value.delete_block_reason||"删除未入单录音任务",onClick:e[1]||(e[1]=s=>Sa(l.value))},{default:p(()=>[...e[21]||(e[21]=[S("删除录音",-1)])]),_:1},8,["disabled","title"])):d("",!0)])]),l.value.status==="running"||l.value.status==="queued"?(i(),f("p",ft,v(Z(_l)(l.value)),1)):d("",!0),l.value.error_message||l.value.status==="failed"?(i(),R(o,{key:1,type:l.value.status==="failed"?"error":"warning",closable:!1,title:l.value.error_message||"任务处理失败,不能写入;请先核对失败原因。"},null,8,["type","title"])):d("",!0),Z(ma)(l.value)?(i(),R(o,{key:2,type:"warning",closable:!1,title:Z(ma)(l.value)},null,8,["title"])):d("",!0),l.value.status==="needs_reconciliation"?(i(),R(o,{key:3,type:"error",closable:!1,title:"上游结果待核对,禁止重发。请管理员先确认上游任务或账单。"})):d("",!0),l.value.status==="expired"?(i(),R(o,{key:4,type:"warning",closable:!1,title:"录音和转录已过保留期,不能继续写入;已采纳的业务记录保留。"})):d("",!0),l.value.can_retry&&l.value.status==="failed"&&!u.viewOnly?(i(),R(t,{key:5,class:"retry-button",disabled:!q.value||A.value,onClick:Ka},{default:p(()=>[...e[22]||(e[22]=[S("重试已确认失败的任务",-1)])]),_:1},8,["disabled"])):d("",!0),m("div",pt,[e[26]||(e[26]=m("div",{class:"muted"},"回访摘要 · AI未核实草稿,不代表已确认病情",-1)),m("p",null,v(l.value.summary||"暂无回访摘要"),1),m("div",yt,[m("span",null,[S(v(l.value.status==="applied"?"已写入":"已选")+" ",1),m("strong",null,v(Ce.value),1),e[23]||(e[23]=S(" 项",-1))]),m("span",null,[e[24]||(e[24]=S("待核实 ",-1)),m("strong",null,v(Fa.value),1),e[25]||(e[25]=S(" 项",-1))])])]),l.value.status==="review"&&!w.value.length?(i(),R(o,{key:6,type:"warning",closable:!1,title:"未生成可写入信息",description:l.value.uncertainties.length?`本次提炼保留了 ${l.value.uncertainties.length} 条待核实原因,已展示在下方。请结合原文回听核对,尤其注意声道角色是否相符。`:"请查看回访摘要并回听录音;本次没有可供确认写入的结构化候选。","show-icon":""},null,8,["description"])):d("",!0),me.value&&!["queued","running"].includes(l.value.status)?(i(),f("section",mt,[J.value!=="unconfirmed"&&!pe.value&&!K.value?(i(),f("div",gt,[m("span",null,v(J.value==="left_service"?"左客服端 / 右患者或家属端":"右客服端 / 左患者或家属端")+" · 已确认",1),re.value?(i(),R(t,{key:0,link:"",type:"primary",onClick:e[2]||(e[2]=s=>pe.value=!0)},{default:p(()=>[...e[27]||(e[27]=[S("修改",-1)])]),_:1})):d("",!0)])):(i(),f("label",bt,[e[28]||(e[28]=S("声道角色(人工确认)",-1)),b(B,{"model-value":N.value,disabled:!re.value||A.value&&O.value!=="save","onUpdate:modelValue":$a},{default:p(()=>[b(k,{label:"角色待确认",value:"unconfirmed"}),b(k,{label:"左客服端 / 右患者或家属端",value:"left_service"}),b(k,{label:"右客服端 / 左患者或家属端",value:"right_service"})]),_:1},8,["model-value","disabled"])])),J.value==="unconfirmed"||pe.value||K.value?(i(),f("p",_t,"声道不等于已核实的说话人身份。角色标注不自动重新提炼;变更后保存草稿会取消全部采纳,须重新核对。")):d("",!0),J.value!=="unconfirmed"&&!K.value?(i(),f("p",wt,"当前角色已确认,无需再次选择;只有左右标错时才需修改。")):d("",!0),K.value?(i(),f("p",kt,"角色标注正在等待保存;保存后请逐项重新核对。")):d("",!0)])):d("",!0),(Ia=l.value.role_check)!=null&&Ia.conflict||l.value.can_reextract!==void 0&&J.value!==he.value&&J.value!=="unconfirmed"?(i(),f("section",ht,[m("strong",null,v((Oa=l.value.role_check)!=null&&Oa.conflict?"声道角色与转写内容可能不一致":"审核角色已修改,原提炼结果尚未更新"),1),m("p",null,v(((Ua=l.value.role_check)==null?void 0:Ua.message)||"修改角色标注不会自动改变已生成的建议,可按核实后的角色重新提炼。"),1),(i(!0),f(Fe,null,$e(((Da=l.value.role_check)==null?void 0:Da.evidence)||[],(s,G)=>(i(),f("blockquote",{key:G},[m("span",null,v(s.channel===0?"左声道":"右声道")+" · "+v(Z(ga)(s.start_ms))+":"+v(s.text),1),l.value.audio_available?(i(),R(t,{key:0,link:"",type:"primary",onClick:Kt=>fa(s.start_ms)},{default:p(()=>[...e[29]||(e[29]=[S("回听依据",-1)])]),_:1},8,["onClick"])):d("",!0)]))),128)),m("p",null,"当前提炼依据:"+v(He(he.value))+"。"+v(Ie.value!=="unconfirmed"?`待确认的新角色:${He(Ie.value)}。`:"请先回听并修改上方角色标注。")+"建议仅供核对,系统不会自动交换角色。",1),b(t,{type:"primary",plain:"",disabled:!na.value||A.value||ae.value||Ie.value==="unconfirmed"||Ie.value===he.value,onClick:ja},{default:p(()=>[...e[30]||(e[30]=[S("确认角色并重新提炼",-1)])]),_:1},8,["disabled"]),ae.value?(i(),f("p",Ct,"请先完成当前单项核对或取消编辑,等待审核草稿保存后再重新提炼。")):l.value.reextract_block_reason?(i(),f("p",xt,v(l.value.reextract_block_reason),1)):d("",!0),e[31]||(e[31]=m("p",{class:"muted"},"复用已完成的转写,不重复语音识别;旧结果保留,重新提炼不自动写入病例。",-1))])):d("",!0),(l.value.extraction_revision||0)>0?(i(),f("p",At,"第 "+v((l.value.extraction_revision||0)+1)+" 版提炼 · "+v(He(he.value))+" · 历史结果已保留",1)):d("",!0),(i(),R(gl,{key:C.value,ref_key:"reviewRef",ref:Se,items:w.value,"onUpdate:items":e[4]||(e[4]=s=>w.value=s),fields:l.value.fields||u.capabilities.fields,disabled:!re.value||z.value||O.value!==""&&O.value!=="save","can-daily":u.capabilities.can_daily,applied:l.value.status==="applied",uncertainties:l.value.uncertainties,"snapshot-items":l.value.items,"channel-roles":J.value,"save-state":T.value,"persisted-revision":ta.value,onSavedNext:e[5]||(e[5]=s=>da(!0)),onSeek:fa},{player:p(()=>[m("div",St,[l.value.audio_available?(i(),R(t,{key:0,size:"small",loading:we.value,onClick:Ya},{default:p(()=>[S(v(j.value?"重新加载录音":"加载录音播放"),1)]),_:1},8,["loading"])):(i(),f("span",Et,"录音不可播放或已清理")),j.value?(i(),f("audio",{key:j.value,ref_key:"audioElement",ref:Te,src:j.value,controls:"",preload:"metadata"},null,8,Rt)):d("",!0)]),me.value&&l.value.audio_available?(i(),f("div",Tt,[b(t,{size:"small",type:X.value==="original"?"primary":"default","aria-pressed":X.value==="original",disabled:we.value||ke.value,onClick:e[3]||(e[3]=s=>Ea("original"))},{default:p(()=>[...e[32]||(e[32]=[S("完整对话",-1)])]),_:1},8,["type","aria-pressed","disabled"]),(i(),f(Fe,null,$e([0,1],s=>b(t,{key:s,size:"small",type:X.value===s?"primary":"default","aria-pressed":X.value===s,disabled:we.value||ke.value,onClick:G=>Ea(s)},{default:p(()=>[S(v(Z(wl)(s,J.value)),1)]),_:2},1032,["type","aria-pressed","disabled","onClick"])),64)),m("span",It,v(ke.value?"正在切换声道…":j.value?X.value==="original"?"回听模式:双方对话":`回听模式:仅${X.value===0?"左":"右"}声道`:"尚未加载录音"),1)])):d("",!0),se.value?(i(),f("p",Ot,v(se.value),1)):d("",!0),l.value.audio_available?(i(),f("p",Ut,"回听对话默认从该区间前 3 秒开始,连续播放双方声音;可随时切换为只听一方。")):d("",!0)]),_:1},8,["items","fields","disabled","can-daily","applied","uncertainties","snapshot-items","channel-roles","save-state","persisted-revision"])),b(Be,{modelValue:Y.value,"onUpdate:modelValue":e[6]||(e[6]=s=>Y.value=s),class:"original-collapse"},{default:p(()=>[b(L,{title:"完整对话转写",name:"original"},{default:p(()=>[ia.value.length?(i(),f("div",Dt,[e[34]||(e[34]=m("p",{class:"muted"},"双方转写按同一时间区间并列展示,不表示发言先后;重叠发言与具体问答请结合录音核对。",-1)),(i(!0),f(Fe,null,$e(Ba.value,s=>(i(),f("section",{key:s.id,class:"transcript-segment"},[m("div",Lt,[m("span",null,v(Z(ga)(s.start_ms))+"–"+v(Z(ga)(s.end_ms)),1),l.value.audio_available?(i(),R(t,{key:0,link:"",type:"primary",onClick:G=>fa(s.start_ms)},{default:p(()=>[...e[33]||(e[33]=[S("回听双方对话",-1)])]),_:1},8,["onClick"])):d("",!0)]),m("div",Vt,[(i(!0),f(Fe,null,$e(s.segments,G=>(i(),f("div",{key:G.id,class:"dialogue-side"},[m("strong",null,v(Z(kl)(G.channel,J.value)),1),m("pre",null,v(G.text||"(该区间无转写文本,不代表没有说话)"),1)]))),128))])]))),128))])):(i(),f("pre",Nt,v(l.value.transcript||"暂无转录"),1))]),_:1})]),_:1},8,["modelValue"]),l.value.status==="review"?(i(),f("div",Bt,[m("div",Ft,[m("strong",null,"已选 "+v(Ce.value)+" 项",1),m("span",null,v(Na.value),1)]),re.value?(i(),f("div",$t,[b(t,{link:"",disabled:A.value,loading:O.value==="save",onClick:e[7]||(e[7]=s=>da())},{default:p(()=>[S(v(T.value==="error"||T.value==="conflict"?"重试保存草稿":"立即保存草稿"),1)]),_:1},8,["disabled","loading"]),We.value?(i(),R(t,{key:0,type:"primary",disabled:A.value||u.basicDirty||!Ce.value||!!ve.value,loading:O.value==="apply",onClick:Wa},{default:p(()=>[...e[35]||(e[35]=[S("确认写入",-1)])]),_:1},8,["disabled","loading"])):d("",!0)])):d("",!0),ve.value?(i(),f("p",Mt,v(ve.value),1)):d("",!0)])):d("",!0),l.value.status==="applied"?(i(),f("p",Pt,v(te.value?"该任务已有历史采纳记录;当前为测试预览,不允许再次写入。":"本次审核已完成,所选项已写入诊单或日常记录,不能重复写入。"),1)):d("",!0)])):d("",!0),b(Za,{modelValue:ge.value,"onUpdate:modelValue":e[12]||(e[12]=s=>ge.value=s),title:"上传回访录音",width:"min(520px, calc(100vw - 32px))","append-to-body":"","close-on-click-modal":!1,"close-on-press-escape":!z.value,"show-close":!z.value,"before-close":xa},{footer:p(()=>[b(t,{disabled:z.value,onClick:e[11]||(e[11]=s=>xa())},{default:p(()=>[...e[37]||(e[37]=[S("取消",-1)])]),_:1},8,["disabled"]),b(t,{type:"primary",disabled:!q.value||A.value||$.value,loading:z.value,onClick:za},{default:p(()=>[...e[38]||(e[38]=[S("上传并分析",-1)])]),_:1},8,["disabled","loading"])]),default:p(()=>[b(Ze,{"label-position":"top",class:"upload-form"},{default:p(()=>[b(F,{label:"录音文件"},{default:p(()=>[m("input",{ref_key:"fileInput",ref:ua,type:"file",accept:"audio/mpeg,audio/mp4,audio/wav,audio/amr,.mp3,.m4a,.wav,.amr",disabled:!q.value||A.value||$.value,"aria-label":"录音文件",onChange:Ja},null,40,Jt),m("small",null,"支持 MP3 / M4A / WAV / AMR,最多 "+v(Math.floor(u.capabilities.limits.max_bytes/1024/1024))+" MB / "+v(Math.floor(u.capabilities.limits.max_seconds/60))+" 分钟。",1)]),_:1}),b(F,{label:"实际通话时间(北京时间)"},{default:p(()=>[b(fe,{modelValue:Re.value,"onUpdate:modelValue":e[8]||(e[8]=s=>Re.value=s),type:"datetime","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:"用于识别昨天、前天等相对日期",disabled:!q.value||A.value||$.value},null,8,["modelValue","disabled"])]),_:1}),b(F,{label:"本次录音的声道角色"},{default:p(()=>[b(B,{modelValue:be.value,"onUpdate:modelValue":e[9]||(e[9]=s=>be.value=s),"aria-label":"本次录音的声道角色",disabled:!q.value||A.value||$.value},{default:p(()=>[b(k,{label:"暂不确定 / 单声道",value:"unconfirmed"}),b(k,{label:"左客服 / 右患者或家属",value:"left_service"}),b(k,{label:"右客服 / 左患者或家属",value:"right_service"})]),_:1},8,["modelValue","disabled"]),e[36]||(e[36]=m("small",null,"已知角色会在提炼前提供给模型;不确定请勿猜测。单声道不按左右区分身份。",-1))]),_:1}),b(Be,{class:"advanced-settings"},{default:p(()=>[b(L,{title:"高级设置 · 分析模型",name:"model"},{default:p(()=>[b(F,{label:"分析模型"},{default:p(()=>[b(B,{modelValue:_e.value,"onUpdate:modelValue":e[10]||(e[10]=s=>_e.value=s),disabled:!q.value||A.value||$.value,placeholder:"选择已配置的模型"},{default:p(()=>[(i(!0),f(Fe,null,$e(u.capabilities.models,s=>(i(),R(k,{key:s.value,label:s.label,value:s.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1})]),_:1}),x.value?(i(),R(o,{key:0,type:"error",closable:!1,title:x.value,"show-icon":""},null,8,["title"])):d("",!0),$.value&&!z.value?(i(),R(o,{key:1,type:"warning",closable:!1,title:"创建结果未确认,请关闭弹窗后刷新任务列表并联系管理员核对,不要重新上传。"})):d("",!0),z.value?(i(),R(Ga,{key:2,percentage:qe.value},null,8,["percentage"])):d("",!0),W.value?(i(),f("p",zt,v(W.value),1)):d("",!0),m("p",qt,v(te.value?"本次仅测试识别与提炼,可保存审核草稿,不允许写入病历。":"分析仅生成建议,人工确认后才会写入。"),1)]),_:1},8,["modelValue","close-on-press-escape","show-close"])])):d("",!0)}}}),jt=ml(Wt,[["__scopeId","data-v-11f13e78"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:jt},Symbol.toStringTag,{value:"Module"}));export{jt as F,Xt as a,Qt as f}; diff --git a/server/public/admin/assets/FollowupAudioReview-92Fgd7wW.js b/server/public/admin/assets/FollowupAudioReview-BDRNtxGL.js similarity index 99% rename from server/public/admin/assets/FollowupAudioReview-92Fgd7wW.js rename to server/public/admin/assets/FollowupAudioReview-BDRNtxGL.js index 9226622f8..98f9740ca 100644 --- a/server/public/admin/assets/FollowupAudioReview-92Fgd7wW.js +++ b/server/public/admin/assets/FollowupAudioReview-BDRNtxGL.js @@ -1 +1 @@ -import{o as Ve,R as te,q as s,r as o,v as m,Y as $e,D as p,X as Se,s as r,T as u,P as v,bk as Oe,O as U,bl as Ee,bg as Ie,F as E,G as B,L as f,u as b,bm as De,K as Te,ah as Ne,bh as Re,bi as Fe,az as Ue,c6 as Be,aA as Pe,M as I,p as g,n as ae}from"./.pnpm-CyuAWpdG.js";import{i as K,z as M,A as z,B as W,e as je,C as G,F as Le,D as ie,x as se,t as X,E as Ae,y as Je}from"./FollowupAudioField-BG0mRnT5.js";import{_ as ze}from"./index-Dxvz9lb1.js";const Ye={class:"followup-review","aria-label":"回访录音人工审核"},He={class:"review-caption"},Ke={key:0},Me={key:0,class:"permission-note"},We={class:"review-table"},Ge={key:0,class:"muted"},Xe={class:"item-meta"},Qe={key:0},Ze={key:1},qe={key:1,class:"item-meta mobile-event-time"},el={key:0,class:"item-meta"},ll={key:1,class:"uncertainty-list","aria-label":"原文待核实信息"},tl={class:"review-player"},al={key:0,class:"editor-notice",role:"status"},il={key:1,class:"inline-editor-heading"},sl={key:2,class:"review-editor"},nl={class:"editor-heading"},dl={key:0,class:"editor-notice",role:"status"},ul={class:"evidence"},ol={key:0,class:"muted"},rl={key:0,class:"muted"},vl={key:1,class:"muted"},cl={key:2,class:"muted"},ml={key:1,class:"review-flags"},pl={key:0},fl={key:1},yl={key:2},bl={key:0,class:"readonly-event"},_l={key:1,class:"event-time"},kl={class:"target-field"},gl={key:2,class:"target-hint",role:"status"},hl={class:"field-grid field-grid--header"},wl={class:"field-label"},xl={key:0},Cl={class:"current-value"},Vl={class:"suggested-value"},$l={key:3,class:"muted"},Sl={key:5,class:"review-error",role:"status"},Ol={key:3,class:"editor-footer"},El={class:"draft-hint",role:"status"},Il=Ve({__name:"FollowupAudioReview",props:{items:{},fields:{},disabled:{type:Boolean},canDaily:{type:Boolean},applied:{type:Boolean},uncertainties:{},snapshotItems:{},channelRoles:{},saveState:{},persistedRevision:{}},emits:["update:items","seek","saved-next"],setup(d,{expose:ne,emit:de}){const n=d,P=de,h=I("all"),t=I(null),_=I(""),w=I(""),D=I(""),T=I(null),ue=g(()=>n.items.findIndex(l=>{var e;return l.id===((e=t.value)==null?void 0:e.id)})+1),Y=g(()=>{var e;const l=j.value.findIndex(i=>{var c;return i.id===((c=t.value)==null?void 0:c.id)});return l<0?null:((e=j.value.slice(l+1).find(i=>!i.selected&&!H(i)))==null?void 0:e.id)||null}),V=g(()=>Ae(n.items,n.fields,n.canDaily)),j=g(()=>n.items.filter(l=>h.value==="all"||h.value==="diagnosis"&&l.kind==="diagnosis"||h.value==="daily"&&l.kind!=="diagnosis"||h.value==="pending"&&X(l,n.fields,n.canDaily))),x=g(()=>!!t.value&&JSON.stringify(t.value)!==_.value),$=g(()=>{var e;if(!t.value||!_.value)return!1;const l=((e=n.snapshotItems)==null?void 0:e.find(i=>{var c;return i.id===((c=t.value)==null?void 0:c.id)}))||JSON.parse(_.value);return t.value.target_id!==l.target_id||t.value.record_date!==l.record_date}),Q=g(()=>{var e;if(!t.value||!_.value)return[];const l=((e=n.snapshotItems)==null?void 0:e.find(i=>{var c;return i.id===((c=t.value)==null?void 0:c.id)}))||JSON.parse(_.value);return t.value.record_date===l.record_date?t.value.candidates||[]:[]}),N=g(()=>t.value?se({...t.value,selected:!0},n.fields)||Je({...t.value,selected:!0},n.canDaily):"");function L(l,e){P("update:items",n.items.map(i=>i.id===l?{...i,...e}:i))}function S(l){return Object.keys(l.values).map(e=>(n.fields[l.kind]||[]).find(i=>i.key===e)||{key:e,label:e,type:"text",readonly:!0})}function oe(l){return W[l.kind]}function re(l){return S(l).map(e=>e.label).join("、")||W[l.kind]}function H(l){return n.disabled||!!n.applied||!ie(l,n.fields)||l.kind!=="diagnosis"&&!n.canDaily||!!se({...l,selected:!0},n.fields)}function ve(l,e){if(!(n.disabled||n.applied)){if(!e){L(l.id,{selected:!1});return}if(!H(l)){if(X(l,n.fields,n.canDaily)){R(l.id);return}L(l.id,{selected:!0})}}}function A(l){return n.applied?{label:l.selected?"已写入":"未采纳",type:l.selected?"success":"info"}:ie(l,n.fields)?X(l,n.fields,n.canDaily)?{label:"待核实",type:"warning"}:{label:l.selected?"已选择":"已核对",type:l.selected?"success":"info"}:{label:"只读字段",type:"info"}}function R(l){var i;if(((i=t.value)==null?void 0:i.id)===l&&x.value&&!n.applied){ae(()=>{var c,k;(c=T.value)==null||c.scrollIntoView({block:"start"}),(k=T.value)==null||k.focus({preventScroll:!0})});return}if(t.value&&t.value.id!==l&&x.value&&!n.applied){w.value="当前项有未保存修改,请先保存或取消本项修改,再核对其他项。";return}const e=n.items.find(c=>c.id===l);e&&(t.value=K([e])[0],_.value=JSON.stringify(t.value),w.value="",D.value="",ae(()=>{var c,k;(c=T.value)==null||c.scrollIntoView({block:"start"}),(k=T.value)==null||k.focus({preventScroll:!0})}))}function J(l){t.value=null,_.value="",w.value=""}function O(l){!t.value||n.disabled||n.applied||l.values&&Object.keys(l.values).some(e=>{var i;return!Object.prototype.hasOwnProperty.call((i=t.value)==null?void 0:i.values,e)})||(t.value={...t.value,...l,selected:!1,needs_review:!0})}function ce(l,e){!t.value||!Object.prototype.hasOwnProperty.call(t.value.values,l)||!(n.fields[t.value.kind]||[]).some(i=>i.key===l&&!i.readonly)||O({values:{...t.value.values,[l]:e}})}function me(l){if(!t.value||Object.keys(t.value.values).length<=1)return;const e={...t.value.values};delete e[l],O({values:e})}function pe(l){!t.value||l&&!Q.value.some(e=>e.id===l&&!e.delete_time)||O({target_id:l||null})}function fe(l){!t.value||n.disabled||n.applied||(t.value={...t.value,needs_review:!l,selected:l?t.value.selected:!1})}function Z(l,e=!1){if(!t.value||n.disabled||n.applied||l&&(N.value||$.value))return;const i=t.value,c=e?Y.value:null;L(i.id,{values:{...i.values},record_date:i.record_date,record_time:i.record_time,time_period:i.time_period,target_id:i.target_id,selected:l||!N.value&&!$.value&&i.selected,needs_review:$.value||i.needs_review}),J(),P("saved-next"),c?R(c):e&&(D.value="当前列表已核对至末项;可切换分类继续,或确认写入已选内容。")}function ye(){if(!t.value||n.disabled||n.applied)return;if(x.value){w.value="当前项有未保存修改,请先保存或取消修改后再跳过。";return}const l=Y.value;L(t.value.id,{selected:!1}),J(),P("saved-next"),l?R(l):D.value="本项暂不采纳,未写入病例;可切换分类继续核对。"}function be(l,e){const i=(n.fields[l.kind]||[]).filter(c=>Object.prototype.hasOwnProperty.call(e.values,c.key)).slice(0,2).map(c=>`${c.label} ${M(e.values[c.key],c)}`).join(",");return`#${e.id} · ${e.record_time||e.time_period||"时间未记录"}${e.time_estimated?"(推定)":""}${i?` · ${i}`:""}`}function _e(l){!G(l)||typeof l.start_ms!="number"||P("seek",l.start_ms)}function ke(l){return typeof l=="string"?l:JSON.stringify(l)}return te(()=>n.items.find(l=>{var e;return l.id===((e=t.value)==null?void 0:e.id)}),l=>{if(!t.value)return;if(!l){J();return}const e=JSON.stringify(l);if(e===_.value)return;const i=t.value;t.value=x.value&&!n.applied?{...K([l])[0],values:{...i.values},record_date:i.record_date,record_time:i.record_time,time_period:i.time_period,target_id:i.target_id,selected:!1,needs_review:!0}:K([l])[0],_.value=e,w.value="任务数据已更新,当前编辑已保留;请重新核对后选择。"},{deep:!0}),te(()=>n.applied,l=>{l&&t.value&&R(t.value.id)}),ne({hasUnsavedChanges:()=>x.value}),(l,e)=>{var le;const i=Se,c=$e,k=Ie,F=Ee,q=De,C=Te,ge=Oe,ee=Fe,he=Re,we=Ue,xe=Be,Ce=Pe;return s(),o("section",Ye,[m(c,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=a=>h.value=a),class:"review-tabs","aria-label":"提炼结果分类"},{default:p(()=>{var a;return[m(i,{label:`全部 ${V.value.all}`,name:"all"},null,8,["label"]),m(i,{label:`诊单资料 ${V.value.diagnosis}`,name:"diagnosis"},null,8,["label"]),m(i,{label:`日常记录 ${V.value.daily}`,name:"daily"},null,8,["label"]),m(i,{label:`待核实 ${V.value.pending+(((a=d.uncertainties)==null?void 0:a.length)||0)}`,name:"pending"},null,8,["label"])]}),_:1},8,["modelValue"]),r("div",He,[r("span",null,u(d.applied?"审核结果":"提炼结果")+" · "+u(j.value.length)+" 项",1),d.applied?v("",!0):(s(),o("span",Ke,"跨分类已选 "+u(V.value.selected)+" 项",1))]),!d.canDaily&&V.value.daily?(s(),o("p",Me,"日常记录仅供查看,当前账号没有编辑权限。")):v("",!0),r("div",We,[m(ge,{data:j.value,"max-height":"360","row-key":"id",size:"small","table-layout":"fixed","empty-text":d.items.length?"此分类暂无内容":"暂无结构化结果,可查看录音原文","aria-label":"回访提炼结果"},{default:p(()=>[d.applied?v("",!0):(s(),U(F,{key:0,label:"采纳",width:"50",align:"center"},{default:p(({row:a})=>[m(k,{"model-value":a.selected,disabled:d.disabled||!a.selected&&H(a),"aria-label":`采纳${re(a)}`,"onUpdate:modelValue":y=>ve(a,!!y)},null,8,["model-value","disabled","aria-label","onUpdate:modelValue"])]),_:1})),m(F,{label:"字段 / 内容","min-width":"210"},{default:p(({row:a})=>[(s(!0),o(E,null,B(S(a).slice(0,2),y=>(s(),o("div",{key:y.key,class:"result-line"},[r("span",null,u(y.label)+":",1),f(u(b(M)(a.values[y.key],y)),1)]))),128)),S(a).length?v("",!0):(s(),o("span",Ge,"暂无有效字段")),r("div",Xe,[f(u(oe(a)),1),S(a).length>2?(s(),o("span",Qe," · 共 "+u(S(a).length)+" 个字段",1)):v("",!0),a.target_id?(s(),o("span",Ze," · 更新已有记录")):v("",!0)]),a.kind!=="diagnosis"?(s(),o("div",qe,u(a.record_date||"日期待核实")+" · "+u(b(z)(a.record_time)||a.time_period||"时间待核实")+u(a.time_estimated?"(推定)":""),1)):v("",!0)]),_:1}),m(F,{label:"日期 / 时段",width:"130"},{default:p(({row:a})=>[r("span",null,u(a.kind==="diagnosis"?"—":a.record_date||"待补充日期"),1),a.kind!=="diagnosis"?(s(),o("div",el,u(b(z)(a.record_time)||a.time_period||"未提及时间")+u(a.time_estimated?"(推定)":""),1)):v("",!0)]),_:1}),m(F,{label:"状态",width:"90"},{default:p(({row:a})=>[m(q,{size:"small",type:A(a).type},{default:p(()=>[f(u(A(a).label),1)]),_:2},1032,["type"])]),_:1}),m(F,{label:"操作",width:"60",align:"right",fixed:"right"},{default:p(({row:a})=>[m(C,{link:"",type:"primary",onClick:y=>R(a.id)},{default:p(()=>[f(u(d.applied||d.disabled?"查看":"核对"),1)]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data","empty-text"])]),(h.value==="pending"||!d.items.length)&&((le=d.uncertainties)!=null&&le.length)?(s(),o("section",ll,[e[9]||(e[9]=r("strong",null,"本次未能确认的信息与原因",-1)),r("ul",null,[(s(!0),o(E,null,B(d.uncertainties,(a,y)=>(s(),o("li",{key:y},u(ke(a)),1))),128))])])):v("",!0),r("section",{ref_key:"reviewWorkspace",ref:T,class:"review-workspace",tabindex:"-1","aria-label":"同页核对与回听"},[r("div",tl,[Ne(l.$slots,"player",{},void 0,!0)]),D.value?(s(),o("p",al,u(D.value),1)):v("",!0),t.value?(s(),o("div",il,[r("strong",null,u(d.applied||d.disabled?"查看审核结果":"核对提炼内容")+" · "+u(ue.value)+" / "+u(d.items.length),1),m(C,{link:"",onClick:e[1]||(e[1]=a=>J())},{default:p(()=>[f(u(x.value?"取消本项修改":"收起核对"),1)]),_:1})])):v("",!0),t.value?(s(),o("section",sl,[r("div",nl,[r("strong",null,u(b(W)[t.value.kind]),1),m(q,{size:"small",type:A(t.value).type},{default:p(()=>[f(u(A(t.value).label),1)]),_:1},8,["type"])]),w.value?(s(),o("p",dl,u(w.value),1)):v("",!0),r("div",ul,[e[10]||(e[10]=r("div",{class:"evidence-title"},"录音原话",-1)),(s(!0),o(E,null,B(t.value.evidence,(a,y)=>(s(),o("blockquote",{key:y},[a.channel===0||a.channel===1?(s(),o("div",ol,u(b(je)(a.channel,d.channelRoles)),1)):v("",!0),r("span",null,u(a.text),1),b(G)(a)?(s(),U(C,{key:1,link:"",type:"primary",onClick:Dl=>_e(a)},{default:p(()=>[f(u(b(G)(a)),1)]),_:2},1032,["onClick"])):v("",!0)]))),128)),t.value.evidence.some(a=>a.position_type==="segment")?(s(),o("p",rl,"回听位置为转写片段范围,不是原话的逐字时间戳;默认回听双方对话,请结合原始录音核对。")):v("",!0),t.value.evidence.length?v("",!0):(s(),o("p",vl,"未提供原话证据,请人工核实。")),t.value.date_text||t.value.time_text?(s(),o("p",cl,"时间原话:"+u(t.value.date_text||"未提及日期")+" · "+u(t.value.time_text||"未提及时间"),1)):v("",!0)]),t.value.conflict||t.value.possible_duplicate||t.value.time_estimated?(s(),o("div",ml,[t.value.conflict?(s(),o("span",pl,"与已有值冲突")):v("",!0),t.value.possible_duplicate?(s(),o("span",fl,"可能存在重复记录")):v("",!0),t.value.time_estimated?(s(),o("span",yl,"时间由时段推定")):v("",!0)])):v("",!0),t.value.kind!=="diagnosis"?(s(),o(E,{key:2},[d.disabled||d.applied?(s(),o("div",bl,[r("span",null,u(t.value.record_date||"未记录日期")+" · "+u(b(z)(t.value.record_time)||t.value.time_period||"未记录时间"),1),r("span",null,u(t.value.target_id?`更新记录 #${t.value.target_id}`:"新增独立记录"),1)])):(s(),o("div",_l,[r("label",kl,[e[11]||(e[11]=f("写入目标",-1)),m(he,{"model-value":t.value.target_id||0,"onUpdate:modelValue":e[2]||(e[2]=a=>pe(a))},{default:p(()=>[m(ee,{label:"新增独立记录(不覆盖已有行)",value:0}),(s(!0),o(E,null,B(Q.value,a=>(s(),U(ee,{key:a.id,value:a.id,disabled:!!a.delete_time,label:be(t.value,a)},null,8,["value","disabled","label"]))),128))]),_:1},8,["model-value"])]),r("label",null,[e[12]||(e[12]=f("记录日期",-1)),m(we,{"model-value":t.value.record_date,type:"date","value-format":"YYYY-MM-DD",placeholder:"请核实日期","onUpdate:modelValue":e[3]||(e[3]=a=>O({record_date:a||null,target_id:null}))},null,8,["model-value"])]),r("label",null,[e[13]||(e[13]=f("记录时间",-1)),m(xe,{"model-value":b(z)(t.value.record_time),"value-format":"HH:mm",format:"HH:mm",placeholder:"未提及可留空","onUpdate:modelValue":e[4]||(e[4]=a=>O({record_time:a||null}))},null,8,["model-value"])]),r("label",null,[e[14]||(e[14]=f("原始时段",-1)),m(Ce,{"model-value":t.value.time_period||"",placeholder:"如早晨、餐后","onUpdate:modelValue":e[5]||(e[5]=a=>O({time_period:a||null}))},null,8,["model-value"])])])),$.value&&!d.applied?(s(),o("p",gl,"日期或目标已更改。保存本项后将自动同步草稿并刷新目标当前值,请依据新值重新核对。")):v("",!0)],64)):v("",!0),r("div",hl,[e[15]||(e[15]=r("span",null,"字段",-1)),r("span",null,u(d.applied?"写入前值":$.value?"旧目标值(待刷新)":"当前值"),1),r("span",null,u(d.applied||d.disabled?"审核值":"拟采纳值"),1)]),(s(!0),o(E,null,B(S(t.value),a=>(s(),o("div",{key:a.key,class:"field-grid"},[r("div",wl,[f(u(a.label),1),a.readonly?(s(),o("small",xl,"只读")):v("",!0)]),r("div",Cl,u(b(M)(t.value.current_values[a.key],a)),1),r("div",Vl,[m(Le,{field:a,"model-value":t.value.values[a.key],readonly:d.disabled||d.applied||a.readonly,"onUpdate:modelValue":y=>ce(a.key,y)},null,8,["field","model-value","readonly","onUpdate:modelValue"]),!d.disabled&&!d.applied?(s(),U(C,{key:0,link:"",type:"danger",disabled:Object.keys(t.value.values).length<=1,onClick:y=>me(a.key)},{default:p(()=>[...e[16]||(e[16]=[f("移除",-1)])]),_:1},8,["disabled","onClick"])):v("",!0)])]))),128)),!d.disabled&&!d.applied?(s(),o("p",$l,"仅可更正或移除本项提议字段,不采纳整项请取消勾选;新增内容请返回原诊单编辑人工补录。")):v("",!0),!d.disabled&&!d.applied?(s(),U(k,{key:4,"model-value":!t.value.needs_review,class:"review-confirm","onUpdate:modelValue":e[6]||(e[6]=a=>fe(!!a))},{default:p(()=>[...e[17]||(e[17]=[f("我已核对原话、冲突 / 重复及日期时间,确认本项内容",-1)])]),_:1},8,["model-value"])):v("",!0),N.value&&!d.disabled&&!d.applied?(s(),o("p",Sl,u(N.value),1)):v("",!0)])):v("",!0),t.value&&!d.disabled&&!d.applied?(s(),o("div",Ol,[r("span",El,u(d.saveState==="saving"||d.saveState==="pending"?"审核草稿同步中,不写入病例":d.saveState==="error"||d.saveState==="conflict"?"草稿同步需处理,请查看下方提示":"核对结果自动保存为草稿,最终确认后才写入病例"),1),m(C,{onClick:ye},{default:p(()=>[...e[18]||(e[18]=[f("暂不采纳并下一项",-1)])]),_:1}),m(C,{disabled:!x.value,onClick:e[7]||(e[7]=a=>Z(!1))},{default:p(()=>[...e[19]||(e[19]=[f("保存本项修改",-1)])]),_:1},8,["disabled"]),m(C,{type:"primary",disabled:!!N.value||$.value,onClick:e[8]||(e[8]=a=>Z(!0,!0))},{default:p(()=>[f(u(Y.value?"采纳并下一项":"完成核对并选中"),1)]),_:1},8,["disabled"])])):v("",!0)],512)])}}}),Fl=ze(Il,[["__scopeId","data-v-2f6b39d1"]]);export{Fl as default}; +import{o as Ve,R as te,q as s,r as o,v as m,Y as $e,D as p,X as Se,s as r,T as u,P as v,bk as Oe,O as U,bl as Ee,bg as Ie,F as E,G as B,L as f,u as b,bm as De,K as Te,ah as Ne,bh as Re,bi as Fe,az as Ue,c6 as Be,aA as Pe,M as I,p as g,n as ae}from"./.pnpm-CyuAWpdG.js";import{i as K,z as M,A as z,B as W,e as je,C as G,F as Le,D as ie,x as se,t as X,E as Ae,y as Je}from"./FollowupAudioField-Dz9Csp0b.js";import{_ as ze}from"./index-Bkarz3gO.js";const Ye={class:"followup-review","aria-label":"回访录音人工审核"},He={class:"review-caption"},Ke={key:0},Me={key:0,class:"permission-note"},We={class:"review-table"},Ge={key:0,class:"muted"},Xe={class:"item-meta"},Qe={key:0},Ze={key:1},qe={key:1,class:"item-meta mobile-event-time"},el={key:0,class:"item-meta"},ll={key:1,class:"uncertainty-list","aria-label":"原文待核实信息"},tl={class:"review-player"},al={key:0,class:"editor-notice",role:"status"},il={key:1,class:"inline-editor-heading"},sl={key:2,class:"review-editor"},nl={class:"editor-heading"},dl={key:0,class:"editor-notice",role:"status"},ul={class:"evidence"},ol={key:0,class:"muted"},rl={key:0,class:"muted"},vl={key:1,class:"muted"},cl={key:2,class:"muted"},ml={key:1,class:"review-flags"},pl={key:0},fl={key:1},yl={key:2},bl={key:0,class:"readonly-event"},_l={key:1,class:"event-time"},kl={class:"target-field"},gl={key:2,class:"target-hint",role:"status"},hl={class:"field-grid field-grid--header"},wl={class:"field-label"},xl={key:0},Cl={class:"current-value"},Vl={class:"suggested-value"},$l={key:3,class:"muted"},Sl={key:5,class:"review-error",role:"status"},Ol={key:3,class:"editor-footer"},El={class:"draft-hint",role:"status"},Il=Ve({__name:"FollowupAudioReview",props:{items:{},fields:{},disabled:{type:Boolean},canDaily:{type:Boolean},applied:{type:Boolean},uncertainties:{},snapshotItems:{},channelRoles:{},saveState:{},persistedRevision:{}},emits:["update:items","seek","saved-next"],setup(d,{expose:ne,emit:de}){const n=d,P=de,h=I("all"),t=I(null),_=I(""),w=I(""),D=I(""),T=I(null),ue=g(()=>n.items.findIndex(l=>{var e;return l.id===((e=t.value)==null?void 0:e.id)})+1),Y=g(()=>{var e;const l=j.value.findIndex(i=>{var c;return i.id===((c=t.value)==null?void 0:c.id)});return l<0?null:((e=j.value.slice(l+1).find(i=>!i.selected&&!H(i)))==null?void 0:e.id)||null}),V=g(()=>Ae(n.items,n.fields,n.canDaily)),j=g(()=>n.items.filter(l=>h.value==="all"||h.value==="diagnosis"&&l.kind==="diagnosis"||h.value==="daily"&&l.kind!=="diagnosis"||h.value==="pending"&&X(l,n.fields,n.canDaily))),x=g(()=>!!t.value&&JSON.stringify(t.value)!==_.value),$=g(()=>{var e;if(!t.value||!_.value)return!1;const l=((e=n.snapshotItems)==null?void 0:e.find(i=>{var c;return i.id===((c=t.value)==null?void 0:c.id)}))||JSON.parse(_.value);return t.value.target_id!==l.target_id||t.value.record_date!==l.record_date}),Q=g(()=>{var e;if(!t.value||!_.value)return[];const l=((e=n.snapshotItems)==null?void 0:e.find(i=>{var c;return i.id===((c=t.value)==null?void 0:c.id)}))||JSON.parse(_.value);return t.value.record_date===l.record_date?t.value.candidates||[]:[]}),N=g(()=>t.value?se({...t.value,selected:!0},n.fields)||Je({...t.value,selected:!0},n.canDaily):"");function L(l,e){P("update:items",n.items.map(i=>i.id===l?{...i,...e}:i))}function S(l){return Object.keys(l.values).map(e=>(n.fields[l.kind]||[]).find(i=>i.key===e)||{key:e,label:e,type:"text",readonly:!0})}function oe(l){return W[l.kind]}function re(l){return S(l).map(e=>e.label).join("、")||W[l.kind]}function H(l){return n.disabled||!!n.applied||!ie(l,n.fields)||l.kind!=="diagnosis"&&!n.canDaily||!!se({...l,selected:!0},n.fields)}function ve(l,e){if(!(n.disabled||n.applied)){if(!e){L(l.id,{selected:!1});return}if(!H(l)){if(X(l,n.fields,n.canDaily)){R(l.id);return}L(l.id,{selected:!0})}}}function A(l){return n.applied?{label:l.selected?"已写入":"未采纳",type:l.selected?"success":"info"}:ie(l,n.fields)?X(l,n.fields,n.canDaily)?{label:"待核实",type:"warning"}:{label:l.selected?"已选择":"已核对",type:l.selected?"success":"info"}:{label:"只读字段",type:"info"}}function R(l){var i;if(((i=t.value)==null?void 0:i.id)===l&&x.value&&!n.applied){ae(()=>{var c,k;(c=T.value)==null||c.scrollIntoView({block:"start"}),(k=T.value)==null||k.focus({preventScroll:!0})});return}if(t.value&&t.value.id!==l&&x.value&&!n.applied){w.value="当前项有未保存修改,请先保存或取消本项修改,再核对其他项。";return}const e=n.items.find(c=>c.id===l);e&&(t.value=K([e])[0],_.value=JSON.stringify(t.value),w.value="",D.value="",ae(()=>{var c,k;(c=T.value)==null||c.scrollIntoView({block:"start"}),(k=T.value)==null||k.focus({preventScroll:!0})}))}function J(l){t.value=null,_.value="",w.value=""}function O(l){!t.value||n.disabled||n.applied||l.values&&Object.keys(l.values).some(e=>{var i;return!Object.prototype.hasOwnProperty.call((i=t.value)==null?void 0:i.values,e)})||(t.value={...t.value,...l,selected:!1,needs_review:!0})}function ce(l,e){!t.value||!Object.prototype.hasOwnProperty.call(t.value.values,l)||!(n.fields[t.value.kind]||[]).some(i=>i.key===l&&!i.readonly)||O({values:{...t.value.values,[l]:e}})}function me(l){if(!t.value||Object.keys(t.value.values).length<=1)return;const e={...t.value.values};delete e[l],O({values:e})}function pe(l){!t.value||l&&!Q.value.some(e=>e.id===l&&!e.delete_time)||O({target_id:l||null})}function fe(l){!t.value||n.disabled||n.applied||(t.value={...t.value,needs_review:!l,selected:l?t.value.selected:!1})}function Z(l,e=!1){if(!t.value||n.disabled||n.applied||l&&(N.value||$.value))return;const i=t.value,c=e?Y.value:null;L(i.id,{values:{...i.values},record_date:i.record_date,record_time:i.record_time,time_period:i.time_period,target_id:i.target_id,selected:l||!N.value&&!$.value&&i.selected,needs_review:$.value||i.needs_review}),J(),P("saved-next"),c?R(c):e&&(D.value="当前列表已核对至末项;可切换分类继续,或确认写入已选内容。")}function ye(){if(!t.value||n.disabled||n.applied)return;if(x.value){w.value="当前项有未保存修改,请先保存或取消修改后再跳过。";return}const l=Y.value;L(t.value.id,{selected:!1}),J(),P("saved-next"),l?R(l):D.value="本项暂不采纳,未写入病例;可切换分类继续核对。"}function be(l,e){const i=(n.fields[l.kind]||[]).filter(c=>Object.prototype.hasOwnProperty.call(e.values,c.key)).slice(0,2).map(c=>`${c.label} ${M(e.values[c.key],c)}`).join(",");return`#${e.id} · ${e.record_time||e.time_period||"时间未记录"}${e.time_estimated?"(推定)":""}${i?` · ${i}`:""}`}function _e(l){!G(l)||typeof l.start_ms!="number"||P("seek",l.start_ms)}function ke(l){return typeof l=="string"?l:JSON.stringify(l)}return te(()=>n.items.find(l=>{var e;return l.id===((e=t.value)==null?void 0:e.id)}),l=>{if(!t.value)return;if(!l){J();return}const e=JSON.stringify(l);if(e===_.value)return;const i=t.value;t.value=x.value&&!n.applied?{...K([l])[0],values:{...i.values},record_date:i.record_date,record_time:i.record_time,time_period:i.time_period,target_id:i.target_id,selected:!1,needs_review:!0}:K([l])[0],_.value=e,w.value="任务数据已更新,当前编辑已保留;请重新核对后选择。"},{deep:!0}),te(()=>n.applied,l=>{l&&t.value&&R(t.value.id)}),ne({hasUnsavedChanges:()=>x.value}),(l,e)=>{var le;const i=Se,c=$e,k=Ie,F=Ee,q=De,C=Te,ge=Oe,ee=Fe,he=Re,we=Ue,xe=Be,Ce=Pe;return s(),o("section",Ye,[m(c,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=a=>h.value=a),class:"review-tabs","aria-label":"提炼结果分类"},{default:p(()=>{var a;return[m(i,{label:`全部 ${V.value.all}`,name:"all"},null,8,["label"]),m(i,{label:`诊单资料 ${V.value.diagnosis}`,name:"diagnosis"},null,8,["label"]),m(i,{label:`日常记录 ${V.value.daily}`,name:"daily"},null,8,["label"]),m(i,{label:`待核实 ${V.value.pending+(((a=d.uncertainties)==null?void 0:a.length)||0)}`,name:"pending"},null,8,["label"])]}),_:1},8,["modelValue"]),r("div",He,[r("span",null,u(d.applied?"审核结果":"提炼结果")+" · "+u(j.value.length)+" 项",1),d.applied?v("",!0):(s(),o("span",Ke,"跨分类已选 "+u(V.value.selected)+" 项",1))]),!d.canDaily&&V.value.daily?(s(),o("p",Me,"日常记录仅供查看,当前账号没有编辑权限。")):v("",!0),r("div",We,[m(ge,{data:j.value,"max-height":"360","row-key":"id",size:"small","table-layout":"fixed","empty-text":d.items.length?"此分类暂无内容":"暂无结构化结果,可查看录音原文","aria-label":"回访提炼结果"},{default:p(()=>[d.applied?v("",!0):(s(),U(F,{key:0,label:"采纳",width:"50",align:"center"},{default:p(({row:a})=>[m(k,{"model-value":a.selected,disabled:d.disabled||!a.selected&&H(a),"aria-label":`采纳${re(a)}`,"onUpdate:modelValue":y=>ve(a,!!y)},null,8,["model-value","disabled","aria-label","onUpdate:modelValue"])]),_:1})),m(F,{label:"字段 / 内容","min-width":"210"},{default:p(({row:a})=>[(s(!0),o(E,null,B(S(a).slice(0,2),y=>(s(),o("div",{key:y.key,class:"result-line"},[r("span",null,u(y.label)+":",1),f(u(b(M)(a.values[y.key],y)),1)]))),128)),S(a).length?v("",!0):(s(),o("span",Ge,"暂无有效字段")),r("div",Xe,[f(u(oe(a)),1),S(a).length>2?(s(),o("span",Qe," · 共 "+u(S(a).length)+" 个字段",1)):v("",!0),a.target_id?(s(),o("span",Ze," · 更新已有记录")):v("",!0)]),a.kind!=="diagnosis"?(s(),o("div",qe,u(a.record_date||"日期待核实")+" · "+u(b(z)(a.record_time)||a.time_period||"时间待核实")+u(a.time_estimated?"(推定)":""),1)):v("",!0)]),_:1}),m(F,{label:"日期 / 时段",width:"130"},{default:p(({row:a})=>[r("span",null,u(a.kind==="diagnosis"?"—":a.record_date||"待补充日期"),1),a.kind!=="diagnosis"?(s(),o("div",el,u(b(z)(a.record_time)||a.time_period||"未提及时间")+u(a.time_estimated?"(推定)":""),1)):v("",!0)]),_:1}),m(F,{label:"状态",width:"90"},{default:p(({row:a})=>[m(q,{size:"small",type:A(a).type},{default:p(()=>[f(u(A(a).label),1)]),_:2},1032,["type"])]),_:1}),m(F,{label:"操作",width:"60",align:"right",fixed:"right"},{default:p(({row:a})=>[m(C,{link:"",type:"primary",onClick:y=>R(a.id)},{default:p(()=>[f(u(d.applied||d.disabled?"查看":"核对"),1)]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data","empty-text"])]),(h.value==="pending"||!d.items.length)&&((le=d.uncertainties)!=null&&le.length)?(s(),o("section",ll,[e[9]||(e[9]=r("strong",null,"本次未能确认的信息与原因",-1)),r("ul",null,[(s(!0),o(E,null,B(d.uncertainties,(a,y)=>(s(),o("li",{key:y},u(ke(a)),1))),128))])])):v("",!0),r("section",{ref_key:"reviewWorkspace",ref:T,class:"review-workspace",tabindex:"-1","aria-label":"同页核对与回听"},[r("div",tl,[Ne(l.$slots,"player",{},void 0,!0)]),D.value?(s(),o("p",al,u(D.value),1)):v("",!0),t.value?(s(),o("div",il,[r("strong",null,u(d.applied||d.disabled?"查看审核结果":"核对提炼内容")+" · "+u(ue.value)+" / "+u(d.items.length),1),m(C,{link:"",onClick:e[1]||(e[1]=a=>J())},{default:p(()=>[f(u(x.value?"取消本项修改":"收起核对"),1)]),_:1})])):v("",!0),t.value?(s(),o("section",sl,[r("div",nl,[r("strong",null,u(b(W)[t.value.kind]),1),m(q,{size:"small",type:A(t.value).type},{default:p(()=>[f(u(A(t.value).label),1)]),_:1},8,["type"])]),w.value?(s(),o("p",dl,u(w.value),1)):v("",!0),r("div",ul,[e[10]||(e[10]=r("div",{class:"evidence-title"},"录音原话",-1)),(s(!0),o(E,null,B(t.value.evidence,(a,y)=>(s(),o("blockquote",{key:y},[a.channel===0||a.channel===1?(s(),o("div",ol,u(b(je)(a.channel,d.channelRoles)),1)):v("",!0),r("span",null,u(a.text),1),b(G)(a)?(s(),U(C,{key:1,link:"",type:"primary",onClick:Dl=>_e(a)},{default:p(()=>[f(u(b(G)(a)),1)]),_:2},1032,["onClick"])):v("",!0)]))),128)),t.value.evidence.some(a=>a.position_type==="segment")?(s(),o("p",rl,"回听位置为转写片段范围,不是原话的逐字时间戳;默认回听双方对话,请结合原始录音核对。")):v("",!0),t.value.evidence.length?v("",!0):(s(),o("p",vl,"未提供原话证据,请人工核实。")),t.value.date_text||t.value.time_text?(s(),o("p",cl,"时间原话:"+u(t.value.date_text||"未提及日期")+" · "+u(t.value.time_text||"未提及时间"),1)):v("",!0)]),t.value.conflict||t.value.possible_duplicate||t.value.time_estimated?(s(),o("div",ml,[t.value.conflict?(s(),o("span",pl,"与已有值冲突")):v("",!0),t.value.possible_duplicate?(s(),o("span",fl,"可能存在重复记录")):v("",!0),t.value.time_estimated?(s(),o("span",yl,"时间由时段推定")):v("",!0)])):v("",!0),t.value.kind!=="diagnosis"?(s(),o(E,{key:2},[d.disabled||d.applied?(s(),o("div",bl,[r("span",null,u(t.value.record_date||"未记录日期")+" · "+u(b(z)(t.value.record_time)||t.value.time_period||"未记录时间"),1),r("span",null,u(t.value.target_id?`更新记录 #${t.value.target_id}`:"新增独立记录"),1)])):(s(),o("div",_l,[r("label",kl,[e[11]||(e[11]=f("写入目标",-1)),m(he,{"model-value":t.value.target_id||0,"onUpdate:modelValue":e[2]||(e[2]=a=>pe(a))},{default:p(()=>[m(ee,{label:"新增独立记录(不覆盖已有行)",value:0}),(s(!0),o(E,null,B(Q.value,a=>(s(),U(ee,{key:a.id,value:a.id,disabled:!!a.delete_time,label:be(t.value,a)},null,8,["value","disabled","label"]))),128))]),_:1},8,["model-value"])]),r("label",null,[e[12]||(e[12]=f("记录日期",-1)),m(we,{"model-value":t.value.record_date,type:"date","value-format":"YYYY-MM-DD",placeholder:"请核实日期","onUpdate:modelValue":e[3]||(e[3]=a=>O({record_date:a||null,target_id:null}))},null,8,["model-value"])]),r("label",null,[e[13]||(e[13]=f("记录时间",-1)),m(xe,{"model-value":b(z)(t.value.record_time),"value-format":"HH:mm",format:"HH:mm",placeholder:"未提及可留空","onUpdate:modelValue":e[4]||(e[4]=a=>O({record_time:a||null}))},null,8,["model-value"])]),r("label",null,[e[14]||(e[14]=f("原始时段",-1)),m(Ce,{"model-value":t.value.time_period||"",placeholder:"如早晨、餐后","onUpdate:modelValue":e[5]||(e[5]=a=>O({time_period:a||null}))},null,8,["model-value"])])])),$.value&&!d.applied?(s(),o("p",gl,"日期或目标已更改。保存本项后将自动同步草稿并刷新目标当前值,请依据新值重新核对。")):v("",!0)],64)):v("",!0),r("div",hl,[e[15]||(e[15]=r("span",null,"字段",-1)),r("span",null,u(d.applied?"写入前值":$.value?"旧目标值(待刷新)":"当前值"),1),r("span",null,u(d.applied||d.disabled?"审核值":"拟采纳值"),1)]),(s(!0),o(E,null,B(S(t.value),a=>(s(),o("div",{key:a.key,class:"field-grid"},[r("div",wl,[f(u(a.label),1),a.readonly?(s(),o("small",xl,"只读")):v("",!0)]),r("div",Cl,u(b(M)(t.value.current_values[a.key],a)),1),r("div",Vl,[m(Le,{field:a,"model-value":t.value.values[a.key],readonly:d.disabled||d.applied||a.readonly,"onUpdate:modelValue":y=>ce(a.key,y)},null,8,["field","model-value","readonly","onUpdate:modelValue"]),!d.disabled&&!d.applied?(s(),U(C,{key:0,link:"",type:"danger",disabled:Object.keys(t.value.values).length<=1,onClick:y=>me(a.key)},{default:p(()=>[...e[16]||(e[16]=[f("移除",-1)])]),_:1},8,["disabled","onClick"])):v("",!0)])]))),128)),!d.disabled&&!d.applied?(s(),o("p",$l,"仅可更正或移除本项提议字段,不采纳整项请取消勾选;新增内容请返回原诊单编辑人工补录。")):v("",!0),!d.disabled&&!d.applied?(s(),U(k,{key:4,"model-value":!t.value.needs_review,class:"review-confirm","onUpdate:modelValue":e[6]||(e[6]=a=>fe(!!a))},{default:p(()=>[...e[17]||(e[17]=[f("我已核对原话、冲突 / 重复及日期时间,确认本项内容",-1)])]),_:1},8,["model-value"])):v("",!0),N.value&&!d.disabled&&!d.applied?(s(),o("p",Sl,u(N.value),1)):v("",!0)])):v("",!0),t.value&&!d.disabled&&!d.applied?(s(),o("div",Ol,[r("span",El,u(d.saveState==="saving"||d.saveState==="pending"?"审核草稿同步中,不写入病例":d.saveState==="error"||d.saveState==="conflict"?"草稿同步需处理,请查看下方提示":"核对结果自动保存为草稿,最终确认后才写入病例"),1),m(C,{onClick:ye},{default:p(()=>[...e[18]||(e[18]=[f("暂不采纳并下一项",-1)])]),_:1}),m(C,{disabled:!x.value,onClick:e[7]||(e[7]=a=>Z(!1))},{default:p(()=>[...e[19]||(e[19]=[f("保存本项修改",-1)])]),_:1},8,["disabled"]),m(C,{type:"primary",disabled:!!N.value||$.value,onClick:e[8]||(e[8]=a=>Z(!0,!0))},{default:p(()=>[f(u(Y.value?"采纳并下一项":"完成核对并选中"),1)]),_:1},8,["disabled"])])):v("",!0)],512)])}}}),Fl=ze(Il,[["__scopeId","data-v-2f6b39d1"]]);export{Fl as default}; diff --git a/server/public/admin/assets/GancaoSubmissionReconcileButton-BHSxzzMH.js b/server/public/admin/assets/GancaoSubmissionReconcileButton-BHSxzzMH.js deleted file mode 100644 index 0c5af79de..000000000 --- a/server/public/admin/assets/GancaoSubmissionReconcileButton-BHSxzzMH.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-jSvDxDB9.js";import"./.pnpm-CyuAWpdG.js";import"./tcm-QAkeqQ9Q.js";import"./index-Dxvz9lb1.js";export{o as default}; diff --git a/server/public/admin/assets/GancaoSubmissionReconcileButton-CnInHwau.js b/server/public/admin/assets/GancaoSubmissionReconcileButton-CnInHwau.js new file mode 100644 index 000000000..c89de71bd --- /dev/null +++ b/server/public/admin/assets/GancaoSubmissionReconcileButton-CnInHwau.js @@ -0,0 +1 @@ +import{_ as o}from"./GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-__KcsZHs.js";import"./.pnpm-CyuAWpdG.js";import"./tcm-BSADvQNg.js";import"./index-Bkarz3gO.js";export{o as default}; diff --git a/server/public/admin/assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-jSvDxDB9.js b/server/public/admin/assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-__KcsZHs.js similarity index 96% rename from server/public/admin/assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-jSvDxDB9.js rename to server/public/admin/assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-__KcsZHs.js index 8184a9a82..bb02eb265 100644 --- a/server/public/admin/assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-jSvDxDB9.js +++ b/server/public/admin/assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-__KcsZHs.js @@ -1 +1 @@ -import{o as U,bp as F,q as f,r as k,F as M,ac as D,O as E,D as t,L as u,K as B,v as r,aB as G,bo as q,bd as A,aw as P,bb as L,bf as T,bq as K,aA as j,P as g,p as z,M as v,aC as W}from"./.pnpm-CyuAWpdG.js";import{p as $}from"./tcm-QAkeqQ9Q.js";import{j as C}from"./index-Dxvz9lb1.js";const X=U({__name:"GancaoSubmissionReconcileButton",props:{order:{}},emits:["resolved"],setup(N,{emit:w}){const d=N,y=w,V=z(()=>{var m,p,a;const i=String(((m=d.order)==null?void 0:m.pharmacy_claim_target)||"").trim().toLowerCase(),e=String(((p=d.order)==null?void 0:p.pharmacy_claim_status)||"").trim().toUpperCase(),n=Number(((a=d.order)==null?void 0:a.pharmacy_claim_lease_expires_at)||0),c=e==="PENDING"&&n>0&&n<=Math.floor(Date.now()/1e3);return i==="gancao"&&(c||["UNKNOWN","PENDING_RECONCILE"].includes(e))}),s=v(!1),_=v(!1),o=W({resolution:"CONFIRM_SUCCESS",remote_order_no:"",note:""});function O(){o.resolution="CONFIRM_SUCCESS",o.remote_order_no="",o.note="",s.value=!0}async function b(){var e;const i=Number((e=d.order)==null?void 0:e.id);if(i){if(o.resolution==="CONFIRM_SUCCESS"&&!o.remote_order_no.trim()){C.msgError("请填写甘草药方单号");return}if(!o.note.trim()){C.msgError("请填写甘草后台核对依据");return}_.value=!0;try{await $({id:i,resolution:o.resolution,remote_order_no:o.resolution==="CONFIRM_SUCCESS"?o.remote_order_no.trim():"",note:o.note.trim()}),C.msgSuccess("甘草提交核对已记录"),s.value=!1,y("resolved")}catch{}finally{_.value=!1}}}return(i,e)=>{const n=B,c=q,m=K,p=T,a=L,S=j,R=A,x=G,I=F("perms");return V.value?(f(),k(M,{key:0},[D((f(),E(n,{type:"danger",size:"small",plain:"",onClick:O},{default:t(()=>[...e[5]||(e[5]=[u("核对甘草提交",-1)])]),_:1})),[[I,["tcm.prescriptionOrder/confirmGancaoSubmission"]]]),r(x,{modelValue:s.value,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value=l),title:"人工核对甘草提交",width:"min(92vw, 520px)","append-to-body":"","destroy-on-close":"","close-on-click-modal":!1},{footer:t(()=>[r(n,{onClick:e[3]||(e[3]=l=>s.value=!1)},{default:t(()=>[...e[8]||(e[8]=[u("取消",-1)])]),_:1}),r(n,{type:"primary",loading:_.value,onClick:b},{default:t(()=>[...e[9]||(e[9]=[u("确认并记录",-1)])]),_:1},8,["loading"])]),default:t(()=>[r(c,{title:"请先在甘草后台核对。本操作会写入不可变更的审计记录。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),r(R,{"label-width":"100px",onSubmit:P(b,["prevent"])},{default:t(()=>[r(a,{label:"核对结果",required:""},{default:t(()=>[r(p,{modelValue:o.resolution,"onUpdate:modelValue":e[0]||(e[0]=l=>o.resolution=l)},{default:t(()=>[r(m,{label:"CONFIRM_SUCCESS"},{default:t(()=>[...e[6]||(e[6]=[u("确认已创建",-1)])]),_:1}),r(m,{label:"CONFIRM_NOT_CREATED"},{default:t(()=>[...e[7]||(e[7]=[u("确认未创建",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o.resolution==="CONFIRM_SUCCESS"?(f(),E(a,{key:0,label:"甘草单号",required:""},{default:t(()=>[r(S,{modelValue:o.remote_order_no,"onUpdate:modelValue":e[1]||(e[1]=l=>o.remote_order_no=l),maxlength:"64",clearable:""},null,8,["modelValue"])]),_:1})):g("",!0),r(a,{label:"核对依据",required:""},{default:t(()=>[r(S,{modelValue:o.note,"onUpdate:modelValue":e[2]||(e[2]=l=>o.note=l),type:"textarea",rows:3,maxlength:"1000","show-word-limit":"",placeholder:"例如:核对时间、甘草后台查询条件及结果"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)):g("",!0)}}});export{X as _}; +import{o as U,bp as F,q as f,r as k,F as M,ac as D,O as E,D as t,L as u,K as B,v as r,aB as G,bo as q,bd as A,aw as P,bb as L,bf as T,bq as K,aA as j,P as g,p as z,M as v,aC as W}from"./.pnpm-CyuAWpdG.js";import{p as $}from"./tcm-BSADvQNg.js";import{j as C}from"./index-Bkarz3gO.js";const X=U({__name:"GancaoSubmissionReconcileButton",props:{order:{}},emits:["resolved"],setup(N,{emit:w}){const d=N,y=w,V=z(()=>{var m,p,a;const i=String(((m=d.order)==null?void 0:m.pharmacy_claim_target)||"").trim().toLowerCase(),e=String(((p=d.order)==null?void 0:p.pharmacy_claim_status)||"").trim().toUpperCase(),n=Number(((a=d.order)==null?void 0:a.pharmacy_claim_lease_expires_at)||0),c=e==="PENDING"&&n>0&&n<=Math.floor(Date.now()/1e3);return i==="gancao"&&(c||["UNKNOWN","PENDING_RECONCILE"].includes(e))}),s=v(!1),_=v(!1),o=W({resolution:"CONFIRM_SUCCESS",remote_order_no:"",note:""});function O(){o.resolution="CONFIRM_SUCCESS",o.remote_order_no="",o.note="",s.value=!0}async function b(){var e;const i=Number((e=d.order)==null?void 0:e.id);if(i){if(o.resolution==="CONFIRM_SUCCESS"&&!o.remote_order_no.trim()){C.msgError("请填写甘草药方单号");return}if(!o.note.trim()){C.msgError("请填写甘草后台核对依据");return}_.value=!0;try{await $({id:i,resolution:o.resolution,remote_order_no:o.resolution==="CONFIRM_SUCCESS"?o.remote_order_no.trim():"",note:o.note.trim()}),C.msgSuccess("甘草提交核对已记录"),s.value=!1,y("resolved")}catch{}finally{_.value=!1}}}return(i,e)=>{const n=B,c=q,m=K,p=T,a=L,S=j,R=A,x=G,I=F("perms");return V.value?(f(),k(M,{key:0},[D((f(),E(n,{type:"danger",size:"small",plain:"",onClick:O},{default:t(()=>[...e[5]||(e[5]=[u("核对甘草提交",-1)])]),_:1})),[[I,["tcm.prescriptionOrder/confirmGancaoSubmission"]]]),r(x,{modelValue:s.value,"onUpdate:modelValue":e[4]||(e[4]=l=>s.value=l),title:"人工核对甘草提交",width:"min(92vw, 520px)","append-to-body":"","destroy-on-close":"","close-on-click-modal":!1},{footer:t(()=>[r(n,{onClick:e[3]||(e[3]=l=>s.value=!1)},{default:t(()=>[...e[8]||(e[8]=[u("取消",-1)])]),_:1}),r(n,{type:"primary",loading:_.value,onClick:b},{default:t(()=>[...e[9]||(e[9]=[u("确认并记录",-1)])]),_:1},8,["loading"])]),default:t(()=>[r(c,{title:"请先在甘草后台核对。本操作会写入不可变更的审计记录。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),r(R,{"label-width":"100px",onSubmit:P(b,["prevent"])},{default:t(()=>[r(a,{label:"核对结果",required:""},{default:t(()=>[r(p,{modelValue:o.resolution,"onUpdate:modelValue":e[0]||(e[0]=l=>o.resolution=l)},{default:t(()=>[r(m,{label:"CONFIRM_SUCCESS"},{default:t(()=>[...e[6]||(e[6]=[u("确认已创建",-1)])]),_:1}),r(m,{label:"CONFIRM_NOT_CREATED"},{default:t(()=>[...e[7]||(e[7]=[u("确认未创建",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o.resolution==="CONFIRM_SUCCESS"?(f(),E(a,{key:0,label:"甘草单号",required:""},{default:t(()=>[r(S,{modelValue:o.remote_order_no,"onUpdate:modelValue":e[1]||(e[1]=l=>o.remote_order_no=l),maxlength:"64",clearable:""},null,8,["modelValue"])]),_:1})):g("",!0),r(a,{label:"核对依据",required:""},{default:t(()=>[r(S,{modelValue:o.note,"onUpdate:modelValue":e[2]||(e[2]=l=>o.note=l),type:"textarea",rows:3,maxlength:"1000","show-word-limit":"",placeholder:"例如:核对时间、甘草后台查询条件及结果"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)):g("",!0)}}});export{X as _}; diff --git a/server/public/admin/assets/ImChatRecordPanel-CafeXQX5.js b/server/public/admin/assets/ImChatRecordPanel-CO99W60y.js similarity index 98% rename from server/public/admin/assets/ImChatRecordPanel-CafeXQX5.js rename to server/public/admin/assets/ImChatRecordPanel-CO99W60y.js index 3c113ef0f..4b459cac1 100644 --- a/server/public/admin/assets/ImChatRecordPanel-CafeXQX5.js +++ b/server/public/admin/assets/ImChatRecordPanel-CO99W60y.js @@ -1 +1 @@ -import{aC as O,o as U,bS as W,R as Z,ap as Q,bs as X,c7 as ee,by as se,q as a,r as c,v as S,D as w,s as k,L as b,bo as te,w as re,u as o,cZ as ne,K as ae,bz as oe,F as D,T as y,P as v,O as N,G as j,ac as ie,bC as ce,bn as le,p as J,ae as ue,bm as de,aa as fe,bt as ye,E as me}from"./.pnpm-CyuAWpdG.js";import{d as _e}from"./dayjs-B2bPhvDy.js";import{at as pe,au as he}from"./tcm-QAkeqQ9Q.js";import{p as ve}from"./im-business-message-parse-DdA9BRrQ.js";import{_ as ge}from"./index-Dxvz9lb1.js";function ke(i){const s=O({rows:[],patientImId:"",patientName:"",loading:!1,syncing:!1,hasLoaded:!1,readError:"",syncError:"",partialErrors:[],inserted:0,processedPeers:0,totalPeers:0,phase:"",checkedAccounts:0,candidateAccounts:0,skippedAccounts:0,lastSyncAt:null}),d=i.now??Date.now,E=i.setTimer??setTimeout,p=i.clearTimer??clearTimeout;let r=0,A=0,g=i.visible??!0,I=!1,h,P;function _(e){return!I&&g&&e===h&&e.generation===A&&e.diagnosisId===r}function x(){P!==void 0&&p(P),P=void 0}function C(){A++,x(),h=void 0,s.loading=!1,s.syncing=!1}async function R(e,l=!1){if(!_(e))return!1;if(e.archiveRequest){const u=await e.archiveRequest;return!l||!_(e)?u:R(e)}s.loading=!0;const f=Promise.resolve().then(async()=>{if(!_(e))return!1;try{const u=await i.load(e.diagnosisId);if(!_(e))return!1;if(!Array.isArray(u==null?void 0:u.lists))throw new Error("聊天记录接口返回的数据不完整");return s.rows=u.lists,s.patientImId=u.patient_im_id||"",s.patientName=u.patient_name||"",s.hasLoaded=!0,s.readError="",!0}catch(u){return _(e)&&(s.readError=K(u,"读取聊天记录失败")),!1}});e.archiveRequest=f;try{return await f}finally{e.archiveRequest===f&&(e.archiveRequest=void 0),_(e)&&(s.loading=!1)}}function H(e){x(),_(e)&&(P=E(()=>{P=void 0,_(e)&&L(e)},3e4))}async function L(e,l=!1){if(!_(e))return;if(e.syncRequest)return e.syncRequest;x(),s.syncing=!0,s.syncError="",s.partialErrors=[],s.inserted=0,s.processedPeers=0,s.totalPeers=0,s.phase="checking_accounts",s.checkedAccounts=0,s.candidateAccounts=0,s.skippedAccounts=0;const f=Promise.resolve().then(async()=>{var Y,F,t,G;let u,B=0,z=d();const $=new Set;try{for(;_(e);){const m=await i.sync(e.diagnosisId,u);if(!_(e))return;if(typeof(m==null?void 0:m.completed)!="boolean")throw new Error("同步接口未返回有效的完成状态");s.inserted=Number(m.inserted)||0,s.processedPeers=Number(m.processed_peers)||0,s.totalPeers=Number(m.total_peers)||0,s.phase=m.phase||"syncing",s.checkedAccounts=Number(m.checked_accounts)||0,s.candidateAccounts=Number(m.candidate_accounts)||0,s.skippedAccounts=Number(m.skipped_accounts)||0;for(const M of[m.error,...m.errors||[]])typeof M=="string"&&M.trim()&&$.add(M);if(s.partialErrors=[...$],m.completed){const M=await R(e,!0);if(!_(e))return;s.lastSyncAt=d(),l&&($.size?(Y=i.notify)==null||Y.call(i,"warning",`同步完成,部分会话失败:${[...$].join(";")}`):M?(t=i.notify)==null||t.call(i,"success",`聊天记录已更新,本次新增 ${s.inserted} 条`):(F=i.notify)==null||F.call(i,"warning",`同步已完成,但读取聊天记录失败:${s.readError}`));return}if(!m.sync_token)throw new Error("同步接口未返回继续同步所需的进度标识");u=m.sync_token,B++,(B>=3||d()-z>=2e3)&&(await R(e,!0),B=0,z=d())}}catch(m){if(!_(e))return;s.syncError=K(m,"同步聊天记录失败"),l&&((G=i.notify)==null||G.call(i,"error",s.syncError))}});e.syncRequest=f;try{await f}finally{e.syncRequest===f&&(e.syncRequest=void 0),_(e)&&(s.syncing=!1,H(e))}}function V(){if(I||!g||!r)return;const e={diagnosisId:r,generation:A};h=e,R(e),L(e)}function T(e){const l=Number(e)>0?Number(e):0;I||l===r&&h||(C(),r=l,s.rows=[],s.patientImId="",s.patientName="",s.hasLoaded=!1,s.readError="",s.syncError="",s.partialErrors=[],s.inserted=0,s.processedPeers=0,s.totalPeers=0,s.phase="",s.checkedAccounts=0,s.candidateAccounts=0,s.skippedAccounts=0,s.lastSyncAt=null,V())}function q(e){I||e===g||(g=e,C(),g&&V())}function n(){I=!0,C()}return{state:s,setDiagnosis:T,setVisible:q,dispose:n,reload:()=>h?R(h):Promise.resolve(!1),sync:()=>h?L(h,!0):Promise.resolve()}}function K(i,s){var E,p;if(typeof i=="string"&&i.trim())return i;const d=i;return((p=(E=d==null?void 0:d.response)==null?void 0:E.data)==null?void 0:p.msg)||(d==null?void 0:d.msg)||(d==null?void 0:d.error)||(d==null?void 0:d.message)||s}const be={class:"im-chat-record-panel"},we={class:"toolbar mb-3"},Ee={key:0,class:"sync-status",role:"status","aria-live":"polite"},Ae={key:0},Ie={key:0},Pe={key:1,class:"sync-status"},xe={key:2,class:"sync-status"},Re={key:0},Se={class:"chat-wrap"},Ne={key:0,class:"chat-list"},Ce={class:"meta"},Le={class:"name"},qe={class:"time"},$e={class:"bubble"},De={key:0,class:"friendly-text"},Te={class:"friendly-main"},Be={key:0,class:"friendly-sub"},Me={key:1,class:"text-content"},Ve={key:2,class:"text-content"},ze={key:3,class:"muted"},Ye=U({__name:"ImChatRecordPanel",props:{diagnosisId:{}},setup(i,{expose:s}){const d=i,E=()=>typeof document>"u"||document.visibilityState!=="hidden",p=ke({load:n=>he({diagnosis_id:n,only_archived:1}),sync:(n,e)=>pe({diagnosis_id:n,...e?{sync_token:e}:{}}),notify:(n,e)=>me[n](e),visible:E()}),r=p.state,{loading:A,syncing:g,rows:I,patientName:h}=W(r),P=J(()=>r.readError?"聊天记录读取失败,请重试":r.syncError||r.partialErrors.length?"暂未读取到聊天记录,请重试同步":g.value?"正在同步聊天记录…":r.hasLoaded?"暂无聊天记录":"正在加载聊天记录…"),_={text:"",image:"图片",file:"文件",sound:"语音",video:"视频",location:"位置",custom:"自定义",face:"表情",other:""},x=J(()=>I.value.flatMap(n=>(n.msg_type==="composite"&&Array.isArray(n.parts)?n.parts.map((l,f)=>({...n,...l,msg_id:`${n.msg_id}:${f}`})):[n]).map(l=>{const f=R(l);let u="";return f!=null&&f.tag?u=f.tag:u=_[l.msg_type]||(l.msg_type!=="other"?l.msg_type:""),{raw:l,friendly:f,tag:u}})));function C(n){if(n==null||!n)return"—";const e=n>1e12?Math.floor(n/1e3):n;return _e.unix(e).format("YYYY-MM-DD HH:mm:ss")}function R(n){const e=(n.text||"").trim();if(!e)return null;const l=e.startsWith("{")&&(/\bbusinessID\b/.test(e)||/\bcmd\b/.test(e));return n.msg_type==="custom"||l?ve(e):null}function H(n){return n.is_from_doctor?n.from_staff_name?`医生(${n.from_staff_name})`:"医生/员工":h.value?`患者(${h.value})`:"患者"}function L(){return p.reload()}function V(){return p.sync()}Z(()=>d.diagnosisId,n=>p.setDiagnosis(n),{immediate:!0});let T=!0;function q(){p.setVisible(T&&E())}return Q(()=>document.addEventListener("visibilitychange",q)),X(()=>{T=!0,q()}),ee(()=>{T=!1,q()}),se(()=>{document.removeEventListener("visibilitychange",q),p.dispose()}),s({refresh:L}),(n,e)=>{const l=te,f=re,u=ae,B=de,z=fe,$=ye,Y=ce,F=le;return a(),c("div",be,[S(l,{type:"info","show-icon":"",closable:!1,class:"mb-4",title:"说明"},{default:w(()=>[...e[0]||(e[0]=[k("p",{class:"panel-tip"},[b(" 展示患者所有诊单中与 "),k("strong",null,"所有医生 / 医助账号"),b("分别产生的会话,按时间排序。 打开页面后自动加载并同步最新消息,页面可见期间每 30 秒继续检查更新。 ")],-1)])]),_:1}),k("div",we,[S(u,{type:"primary",link:"",loading:o(g),onClick:V},{default:w(()=>[S(f,{class:"mr-1"},{default:w(()=>[S(o(ne))]),_:1}),e[1]||(e[1]=b(" 同步最新 ",-1))]),_:1},8,["loading"]),S(u,{type:"primary",link:"",loading:o(A),onClick:L},{default:w(()=>[S(f,{class:"mr-1"},{default:w(()=>[S(o(oe))]),_:1}),e[2]||(e[2]=b(" 重新加载已归档 ",-1))]),_:1},8,["loading"])]),o(g)?(a(),c("p",Ee,[o(r).phase==="checking_accounts"?(a(),c(D,{key:0},[e[3]||(e[3]=b(" 正在核验聊天账号",-1)),o(r).candidateAccounts?(a(),c("span",Ae,","+y(o(r).checkedAccounts)+" / "+y(o(r).candidateAccounts),1)):v("",!0)],64)):(a(),c(D,{key:1},[e[4]||(e[4]=b("正在同步聊天记录",-1)),o(r).totalPeers?(a(),c("span",Ie,",已处理 "+y(o(r).processedPeers)+" / "+y(o(r).totalPeers)+" 个会话",1)):v("",!0),b(",新增 "+y(o(r).inserted)+" 条",1)],64))])):o(r).lastSyncAt?(a(),c("p",Pe,"上次同步:"+y(C(o(r).lastSyncAt)),1)):v("",!0),o(r).skippedAccounts?(a(),c("p",xe,"已跳过 "+y(o(r).skippedAccounts)+" 个未注册或已失效的聊天账号,已有归档不受影响。",1)):v("",!0),o(r).readError?(a(),N(l,{key:3,type:"error","show-icon":"",closable:!1,class:"mb-3",title:`读取聊天记录失败:${o(r).readError}`},null,8,["title"])):v("",!0),o(r).syncError?(a(),N(l,{key:4,type:"error","show-icon":"",closable:!1,class:"mb-3",title:`同步失败:${o(r).syncError}`},null,8,["title"])):v("",!0),o(r).partialErrors.length?(a(),N(l,{key:5,type:"warning","show-icon":"",closable:!1,class:"mb-3",title:"聊天记录未完全同步"},{default:w(()=>[(a(!0),c(D,null,j(o(r).partialErrors.slice(0,3),t=>(a(),c("p",{key:t,class:"panel-tip"},y(t),1))),128)),o(r).partialErrors.length>3?(a(),c("details",Re,[k("summary",null,"查看其余 "+y(o(r).partialErrors.length-3)+" 项同步问题",1),(a(!0),c(D,null,j(o(r).partialErrors.slice(3),t=>(a(),c("p",{key:t,class:"panel-tip"},y(t),1))),128))])):v("",!0)]),_:1})):v("",!0),ie((a(),c("div",Se,[x.value.length?(a(),c("div",Ne,[(a(!0),c(D,null,j(x.value,t=>(a(),c("div",{key:`${t.raw.from_account||""}-${t.raw.to_account||""}-${t.raw.msg_id}`,class:ue(["chat-row",t.raw.is_from_doctor?"from-doctor":"from-patient"])},[k("div",Ce,[k("span",Le,y(H(t.raw)),1),k("span",qe,y(C(t.raw.time)),1),t.tag?(a(),N(B,{key:0,size:"small",type:"info",class:"ml-2"},{default:w(()=>[b(y(t.tag),1)]),_:2},1024)):v("",!0)]),k("div",$e,[t.raw.msg_type==="image"&&t.raw.image_url?(a(),N(z,{key:0,src:t.raw.image_url,"preview-src-list":[t.raw.image_url],fit:"contain",class:"chat-img"},null,8,["src","preview-src-list"])):(t.raw.msg_type==="file"||t.raw.msg_type==="sound"||t.raw.msg_type==="video")&&t.raw.file_url?(a(),N($,{key:1,href:t.raw.file_url,target:"_blank",type:"primary"},{default:w(()=>[b(y(t.raw.file_name||"打开文件"),1)]),_:2},1032,["href"])):(a(),c(D,{key:2},[t.friendly?(a(),c("div",De,[k("div",Te,y(t.friendly.main),1),t.friendly.sub?(a(),c("div",Be,y(t.friendly.sub),1)):v("",!0)])):t.raw.msg_type==="text"&&t.raw.text?(a(),c("div",Me,y(t.raw.text),1)):t.raw.text?(a(),c("div",Ve,y(t.raw.text),1)):(a(),c("span",ze,"(无法展示该消息类型)"))],64))])],2))),128))])):o(A)?v("",!0):(a(),N(Y,{key:1,description:P.value},null,8,["description"]))])),[[F,o(A)&&!x.value.length]])])}}}),Ke=ge(Ye,[["__scopeId","data-v-ed56fa43"]]);export{Ke as default}; +import{aC as O,o as U,bS as W,R as Z,ap as Q,bs as X,c7 as ee,by as se,q as a,r as c,v as S,D as w,s as k,L as b,bo as te,w as re,u as o,cZ as ne,K as ae,bz as oe,F as D,T as y,P as v,O as N,G as j,ac as ie,bC as ce,bn as le,p as J,ae as ue,bm as de,aa as fe,bt as ye,E as me}from"./.pnpm-CyuAWpdG.js";import{d as _e}from"./dayjs-B2bPhvDy.js";import{at as pe,au as he}from"./tcm-BSADvQNg.js";import{p as ve}from"./im-business-message-parse-DdA9BRrQ.js";import{_ as ge}from"./index-Bkarz3gO.js";function ke(i){const s=O({rows:[],patientImId:"",patientName:"",loading:!1,syncing:!1,hasLoaded:!1,readError:"",syncError:"",partialErrors:[],inserted:0,processedPeers:0,totalPeers:0,phase:"",checkedAccounts:0,candidateAccounts:0,skippedAccounts:0,lastSyncAt:null}),d=i.now??Date.now,E=i.setTimer??setTimeout,p=i.clearTimer??clearTimeout;let r=0,A=0,g=i.visible??!0,I=!1,h,P;function _(e){return!I&&g&&e===h&&e.generation===A&&e.diagnosisId===r}function x(){P!==void 0&&p(P),P=void 0}function C(){A++,x(),h=void 0,s.loading=!1,s.syncing=!1}async function R(e,l=!1){if(!_(e))return!1;if(e.archiveRequest){const u=await e.archiveRequest;return!l||!_(e)?u:R(e)}s.loading=!0;const f=Promise.resolve().then(async()=>{if(!_(e))return!1;try{const u=await i.load(e.diagnosisId);if(!_(e))return!1;if(!Array.isArray(u==null?void 0:u.lists))throw new Error("聊天记录接口返回的数据不完整");return s.rows=u.lists,s.patientImId=u.patient_im_id||"",s.patientName=u.patient_name||"",s.hasLoaded=!0,s.readError="",!0}catch(u){return _(e)&&(s.readError=K(u,"读取聊天记录失败")),!1}});e.archiveRequest=f;try{return await f}finally{e.archiveRequest===f&&(e.archiveRequest=void 0),_(e)&&(s.loading=!1)}}function H(e){x(),_(e)&&(P=E(()=>{P=void 0,_(e)&&L(e)},3e4))}async function L(e,l=!1){if(!_(e))return;if(e.syncRequest)return e.syncRequest;x(),s.syncing=!0,s.syncError="",s.partialErrors=[],s.inserted=0,s.processedPeers=0,s.totalPeers=0,s.phase="checking_accounts",s.checkedAccounts=0,s.candidateAccounts=0,s.skippedAccounts=0;const f=Promise.resolve().then(async()=>{var Y,F,t,G;let u,B=0,z=d();const $=new Set;try{for(;_(e);){const m=await i.sync(e.diagnosisId,u);if(!_(e))return;if(typeof(m==null?void 0:m.completed)!="boolean")throw new Error("同步接口未返回有效的完成状态");s.inserted=Number(m.inserted)||0,s.processedPeers=Number(m.processed_peers)||0,s.totalPeers=Number(m.total_peers)||0,s.phase=m.phase||"syncing",s.checkedAccounts=Number(m.checked_accounts)||0,s.candidateAccounts=Number(m.candidate_accounts)||0,s.skippedAccounts=Number(m.skipped_accounts)||0;for(const M of[m.error,...m.errors||[]])typeof M=="string"&&M.trim()&&$.add(M);if(s.partialErrors=[...$],m.completed){const M=await R(e,!0);if(!_(e))return;s.lastSyncAt=d(),l&&($.size?(Y=i.notify)==null||Y.call(i,"warning",`同步完成,部分会话失败:${[...$].join(";")}`):M?(t=i.notify)==null||t.call(i,"success",`聊天记录已更新,本次新增 ${s.inserted} 条`):(F=i.notify)==null||F.call(i,"warning",`同步已完成,但读取聊天记录失败:${s.readError}`));return}if(!m.sync_token)throw new Error("同步接口未返回继续同步所需的进度标识");u=m.sync_token,B++,(B>=3||d()-z>=2e3)&&(await R(e,!0),B=0,z=d())}}catch(m){if(!_(e))return;s.syncError=K(m,"同步聊天记录失败"),l&&((G=i.notify)==null||G.call(i,"error",s.syncError))}});e.syncRequest=f;try{await f}finally{e.syncRequest===f&&(e.syncRequest=void 0),_(e)&&(s.syncing=!1,H(e))}}function V(){if(I||!g||!r)return;const e={diagnosisId:r,generation:A};h=e,R(e),L(e)}function T(e){const l=Number(e)>0?Number(e):0;I||l===r&&h||(C(),r=l,s.rows=[],s.patientImId="",s.patientName="",s.hasLoaded=!1,s.readError="",s.syncError="",s.partialErrors=[],s.inserted=0,s.processedPeers=0,s.totalPeers=0,s.phase="",s.checkedAccounts=0,s.candidateAccounts=0,s.skippedAccounts=0,s.lastSyncAt=null,V())}function q(e){I||e===g||(g=e,C(),g&&V())}function n(){I=!0,C()}return{state:s,setDiagnosis:T,setVisible:q,dispose:n,reload:()=>h?R(h):Promise.resolve(!1),sync:()=>h?L(h,!0):Promise.resolve()}}function K(i,s){var E,p;if(typeof i=="string"&&i.trim())return i;const d=i;return((p=(E=d==null?void 0:d.response)==null?void 0:E.data)==null?void 0:p.msg)||(d==null?void 0:d.msg)||(d==null?void 0:d.error)||(d==null?void 0:d.message)||s}const be={class:"im-chat-record-panel"},we={class:"toolbar mb-3"},Ee={key:0,class:"sync-status",role:"status","aria-live":"polite"},Ae={key:0},Ie={key:0},Pe={key:1,class:"sync-status"},xe={key:2,class:"sync-status"},Re={key:0},Se={class:"chat-wrap"},Ne={key:0,class:"chat-list"},Ce={class:"meta"},Le={class:"name"},qe={class:"time"},$e={class:"bubble"},De={key:0,class:"friendly-text"},Te={class:"friendly-main"},Be={key:0,class:"friendly-sub"},Me={key:1,class:"text-content"},Ve={key:2,class:"text-content"},ze={key:3,class:"muted"},Ye=U({__name:"ImChatRecordPanel",props:{diagnosisId:{}},setup(i,{expose:s}){const d=i,E=()=>typeof document>"u"||document.visibilityState!=="hidden",p=ke({load:n=>he({diagnosis_id:n,only_archived:1}),sync:(n,e)=>pe({diagnosis_id:n,...e?{sync_token:e}:{}}),notify:(n,e)=>me[n](e),visible:E()}),r=p.state,{loading:A,syncing:g,rows:I,patientName:h}=W(r),P=J(()=>r.readError?"聊天记录读取失败,请重试":r.syncError||r.partialErrors.length?"暂未读取到聊天记录,请重试同步":g.value?"正在同步聊天记录…":r.hasLoaded?"暂无聊天记录":"正在加载聊天记录…"),_={text:"",image:"图片",file:"文件",sound:"语音",video:"视频",location:"位置",custom:"自定义",face:"表情",other:""},x=J(()=>I.value.flatMap(n=>(n.msg_type==="composite"&&Array.isArray(n.parts)?n.parts.map((l,f)=>({...n,...l,msg_id:`${n.msg_id}:${f}`})):[n]).map(l=>{const f=R(l);let u="";return f!=null&&f.tag?u=f.tag:u=_[l.msg_type]||(l.msg_type!=="other"?l.msg_type:""),{raw:l,friendly:f,tag:u}})));function C(n){if(n==null||!n)return"—";const e=n>1e12?Math.floor(n/1e3):n;return _e.unix(e).format("YYYY-MM-DD HH:mm:ss")}function R(n){const e=(n.text||"").trim();if(!e)return null;const l=e.startsWith("{")&&(/\bbusinessID\b/.test(e)||/\bcmd\b/.test(e));return n.msg_type==="custom"||l?ve(e):null}function H(n){return n.is_from_doctor?n.from_staff_name?`医生(${n.from_staff_name})`:"医生/员工":h.value?`患者(${h.value})`:"患者"}function L(){return p.reload()}function V(){return p.sync()}Z(()=>d.diagnosisId,n=>p.setDiagnosis(n),{immediate:!0});let T=!0;function q(){p.setVisible(T&&E())}return Q(()=>document.addEventListener("visibilitychange",q)),X(()=>{T=!0,q()}),ee(()=>{T=!1,q()}),se(()=>{document.removeEventListener("visibilitychange",q),p.dispose()}),s({refresh:L}),(n,e)=>{const l=te,f=re,u=ae,B=de,z=fe,$=ye,Y=ce,F=le;return a(),c("div",be,[S(l,{type:"info","show-icon":"",closable:!1,class:"mb-4",title:"说明"},{default:w(()=>[...e[0]||(e[0]=[k("p",{class:"panel-tip"},[b(" 展示患者所有诊单中与 "),k("strong",null,"所有医生 / 医助账号"),b("分别产生的会话,按时间排序。 打开页面后自动加载并同步最新消息,页面可见期间每 30 秒继续检查更新。 ")],-1)])]),_:1}),k("div",we,[S(u,{type:"primary",link:"",loading:o(g),onClick:V},{default:w(()=>[S(f,{class:"mr-1"},{default:w(()=>[S(o(ne))]),_:1}),e[1]||(e[1]=b(" 同步最新 ",-1))]),_:1},8,["loading"]),S(u,{type:"primary",link:"",loading:o(A),onClick:L},{default:w(()=>[S(f,{class:"mr-1"},{default:w(()=>[S(o(oe))]),_:1}),e[2]||(e[2]=b(" 重新加载已归档 ",-1))]),_:1},8,["loading"])]),o(g)?(a(),c("p",Ee,[o(r).phase==="checking_accounts"?(a(),c(D,{key:0},[e[3]||(e[3]=b(" 正在核验聊天账号",-1)),o(r).candidateAccounts?(a(),c("span",Ae,","+y(o(r).checkedAccounts)+" / "+y(o(r).candidateAccounts),1)):v("",!0)],64)):(a(),c(D,{key:1},[e[4]||(e[4]=b("正在同步聊天记录",-1)),o(r).totalPeers?(a(),c("span",Ie,",已处理 "+y(o(r).processedPeers)+" / "+y(o(r).totalPeers)+" 个会话",1)):v("",!0),b(",新增 "+y(o(r).inserted)+" 条",1)],64))])):o(r).lastSyncAt?(a(),c("p",Pe,"上次同步:"+y(C(o(r).lastSyncAt)),1)):v("",!0),o(r).skippedAccounts?(a(),c("p",xe,"已跳过 "+y(o(r).skippedAccounts)+" 个未注册或已失效的聊天账号,已有归档不受影响。",1)):v("",!0),o(r).readError?(a(),N(l,{key:3,type:"error","show-icon":"",closable:!1,class:"mb-3",title:`读取聊天记录失败:${o(r).readError}`},null,8,["title"])):v("",!0),o(r).syncError?(a(),N(l,{key:4,type:"error","show-icon":"",closable:!1,class:"mb-3",title:`同步失败:${o(r).syncError}`},null,8,["title"])):v("",!0),o(r).partialErrors.length?(a(),N(l,{key:5,type:"warning","show-icon":"",closable:!1,class:"mb-3",title:"聊天记录未完全同步"},{default:w(()=>[(a(!0),c(D,null,j(o(r).partialErrors.slice(0,3),t=>(a(),c("p",{key:t,class:"panel-tip"},y(t),1))),128)),o(r).partialErrors.length>3?(a(),c("details",Re,[k("summary",null,"查看其余 "+y(o(r).partialErrors.length-3)+" 项同步问题",1),(a(!0),c(D,null,j(o(r).partialErrors.slice(3),t=>(a(),c("p",{key:t,class:"panel-tip"},y(t),1))),128))])):v("",!0)]),_:1})):v("",!0),ie((a(),c("div",Se,[x.value.length?(a(),c("div",Ne,[(a(!0),c(D,null,j(x.value,t=>(a(),c("div",{key:`${t.raw.from_account||""}-${t.raw.to_account||""}-${t.raw.msg_id}`,class:ue(["chat-row",t.raw.is_from_doctor?"from-doctor":"from-patient"])},[k("div",Ce,[k("span",Le,y(H(t.raw)),1),k("span",qe,y(C(t.raw.time)),1),t.tag?(a(),N(B,{key:0,size:"small",type:"info",class:"ml-2"},{default:w(()=>[b(y(t.tag),1)]),_:2},1024)):v("",!0)]),k("div",$e,[t.raw.msg_type==="image"&&t.raw.image_url?(a(),N(z,{key:0,src:t.raw.image_url,"preview-src-list":[t.raw.image_url],fit:"contain",class:"chat-img"},null,8,["src","preview-src-list"])):(t.raw.msg_type==="file"||t.raw.msg_type==="sound"||t.raw.msg_type==="video")&&t.raw.file_url?(a(),N($,{key:1,href:t.raw.file_url,target:"_blank",type:"primary"},{default:w(()=>[b(y(t.raw.file_name||"打开文件"),1)]),_:2},1032,["href"])):(a(),c(D,{key:2},[t.friendly?(a(),c("div",De,[k("div",Te,y(t.friendly.main),1),t.friendly.sub?(a(),c("div",Be,y(t.friendly.sub),1)):v("",!0)])):t.raw.msg_type==="text"&&t.raw.text?(a(),c("div",Me,y(t.raw.text),1)):t.raw.text?(a(),c("div",Ve,y(t.raw.text),1)):(a(),c("span",ze,"(无法展示该消息类型)"))],64))])],2))),128))])):o(A)?v("",!0):(a(),N(Y,{key:1,description:P.value},null,8,["description"]))])),[[F,o(A)&&!x.value.length]])])}}}),Ke=ge(Ye,[["__scopeId","data-v-ed56fa43"]]);export{Ke as default}; diff --git a/server/public/admin/assets/MessageBubble-CRT5BPUN.js b/server/public/admin/assets/MessageBubble-Ca2A_LG3.js similarity index 98% rename from server/public/admin/assets/MessageBubble-CRT5BPUN.js rename to server/public/admin/assets/MessageBubble-Ca2A_LG3.js index c85f3d151..1b737361c 100644 --- a/server/public/admin/assets/MessageBubble-CRT5BPUN.js +++ b/server/public/admin/assets/MessageBubble-Ca2A_LG3.js @@ -1 +1 @@ -import{o as S,q as a,r as l,ae as x,v as m,D as r,L as d,T as i,a0 as D,s as n,O as g,bm as G,P as B,aa as K,u as v,bF as L,w as q,bG as A,bH as H,bI as O,F as P,K as U,p as u}from"./.pnpm-CyuAWpdG.js";import{t as j,_ as J}from"./index-Dxvz9lb1.js";const Q={class:"msg-body"},R={class:"msg-meta"},W={class:"msg-sender"},X={class:"msg-time"},Y={key:0,class:"content-text"},Z={key:2,class:"content-pending"},ee=["src"],se={key:4,class:"content-pending"},te=["src"],ae={key:6,class:"content-pending"},ne={key:7,class:"content-file"},le={class:"file-meta"},ie=["title"],oe={class:"file-info"},ce={key:8,class:"content-fallback"},me={class:"fallback-title"},re={class:"fallback-desc"},ue=S({__name:"MessageBubble",props:{message:{}},setup(s){const o=s,w=u(()=>o.message.from_is_staff),c=u(()=>(o.message.media||[]).find(t=>t.status===1)??null),_=u(()=>{const e=o.message.from_profile;return e&&e.name||o.message.from_user}),z=u(()=>{const e=o.message.from_profile;return(e==null?void 0:e.avatar)||""}),F=u(()=>(_.value||"").slice(-2)||"?"),C=u(()=>{const e=o.message.msgtype;return e==="image"||e==="video"||e==="voice"?"bubble-media":e==="file"?"bubble-file":"bubble-text"}),E=u(()=>{switch(o.message.msgtype){case"link":return"[链接]";case"weapp":return"[小程序]";case"chatrecord":return"[聊天记录]";case"location":return"[位置]";case"card":return"[名片]";case"meeting":return"[会议]";case"docmsg":return"[文档]";case"mixed":return"[混合消息]";case"emotion":return"[表情]";default:return`[${o.message.msgtype}]`}});function M(e){return e?j(e*1e3,"mm-dd hh:MM"):""}function N(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/1024/1024).toFixed(2)} MB`:`${(e/1024/1024/1024).toFixed(2)} GB`:""}function $(e){window.open(e,"_blank","noopener")}return(e,t)=>{var k,y,p,h;const I=D,b=G,T=K,f=q,V=U;return a(),l("div",{class:x(["msg-bubble",{"is-staff":w.value}])},[m(I,{class:"msg-avatar",size:36,src:z.value},{default:r(()=>[d(i(F.value),1)]),_:1},8,["src"]),n("div",Q,[n("div",R,[n("span",W,i(_.value),1),n("span",X,i(M(s.message.send_time)),1),s.message.action==="recall"?(a(),g(b,{key:0,size:"small",type:"info"},{default:r(()=>[...t[1]||(t[1]=[d(" 已撤回 ",-1)])]),_:1})):B("",!0)]),n("div",{class:x(["msg-content",C.value])},[s.message.msgtype==="text"||s.message.msgtype==="markdown"?(a(),l("div",Y,i(s.message.content),1)):s.message.msgtype==="image"&&((k=c.value)!=null&&k.file_url)?(a(),g(T,{key:1,src:c.value.file_url,"preview-src-list":[c.value.file_url],fit:"contain",class:"content-image","hide-on-click-modal":""},null,8,["src","preview-src-list"])):s.message.msgtype==="image"?(a(),l("div",Z,[m(f,null,{default:r(()=>[m(v(L))]),_:1}),t[2]||(t[2]=n("span",null,"图片下载中…",-1))])):s.message.msgtype==="video"&&((y=c.value)!=null&&y.file_url)?(a(),l("video",{key:3,src:c.value.file_url,controls:"",class:"content-video"},null,8,ee)):s.message.msgtype==="video"?(a(),l("div",se,[m(f,null,{default:r(()=>[m(v(A))]),_:1}),t[3]||(t[3]=n("span",null,"视频下载中…",-1))])):s.message.msgtype==="voice"&&((p=c.value)!=null&&p.file_url)?(a(),l("audio",{key:5,src:c.value.file_url,controls:"",class:"content-audio"},null,8,te)):s.message.msgtype==="voice"?(a(),l("div",ae,[m(f,null,{default:r(()=>[m(v(H))]),_:1}),n("span",null,"语音下载中…("+i(s.message.play_length)+"s)",1)])):s.message.msgtype==="file"?(a(),l("div",ne,[m(f,{size:24},{default:r(()=>[m(v(O))]),_:1}),n("div",le,[n("div",{class:"file-name",title:s.message.file_name},i(s.message.file_name||"未命名文件"),9,ie),n("div",oe,[d(i(N(s.message.file_size))+" ",1),s.message.file_ext?(a(),l(P,{key:0},[d("· "+i(s.message.file_ext),1)],64)):B("",!0)])]),(h=c.value)!=null&&h.file_url?(a(),g(V,{key:0,size:"small",type:"primary",link:"",onClick:t[0]||(t[0]=de=>$(c.value.file_url))},{default:r(()=>[...t[4]||(t[4]=[d(" 下载 ",-1)])]),_:1})):(a(),g(b,{key:1,size:"small",type:"info"},{default:r(()=>[...t[5]||(t[5]=[d("下载中…",-1)])]),_:1}))])):(a(),l("div",ce,[n("div",me,i(E.value),1),n("div",re,i(s.message.content),1)]))],2)])],2)}}}),ve=J(ue,[["__scopeId","data-v-b5ff1168"]]);export{ve as default}; +import{o as S,q as a,r as l,ae as x,v as m,D as r,L as d,T as i,a0 as D,s as n,O as g,bm as G,P as B,aa as K,u as v,bF as L,w as q,bG as A,bH as H,bI as O,F as P,K as U,p as u}from"./.pnpm-CyuAWpdG.js";import{t as j,_ as J}from"./index-Bkarz3gO.js";const Q={class:"msg-body"},R={class:"msg-meta"},W={class:"msg-sender"},X={class:"msg-time"},Y={key:0,class:"content-text"},Z={key:2,class:"content-pending"},ee=["src"],se={key:4,class:"content-pending"},te=["src"],ae={key:6,class:"content-pending"},ne={key:7,class:"content-file"},le={class:"file-meta"},ie=["title"],oe={class:"file-info"},ce={key:8,class:"content-fallback"},me={class:"fallback-title"},re={class:"fallback-desc"},ue=S({__name:"MessageBubble",props:{message:{}},setup(s){const o=s,w=u(()=>o.message.from_is_staff),c=u(()=>(o.message.media||[]).find(t=>t.status===1)??null),_=u(()=>{const e=o.message.from_profile;return e&&e.name||o.message.from_user}),z=u(()=>{const e=o.message.from_profile;return(e==null?void 0:e.avatar)||""}),F=u(()=>(_.value||"").slice(-2)||"?"),C=u(()=>{const e=o.message.msgtype;return e==="image"||e==="video"||e==="voice"?"bubble-media":e==="file"?"bubble-file":"bubble-text"}),E=u(()=>{switch(o.message.msgtype){case"link":return"[链接]";case"weapp":return"[小程序]";case"chatrecord":return"[聊天记录]";case"location":return"[位置]";case"card":return"[名片]";case"meeting":return"[会议]";case"docmsg":return"[文档]";case"mixed":return"[混合消息]";case"emotion":return"[表情]";default:return`[${o.message.msgtype}]`}});function M(e){return e?j(e*1e3,"mm-dd hh:MM"):""}function N(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/1024/1024).toFixed(2)} MB`:`${(e/1024/1024/1024).toFixed(2)} GB`:""}function $(e){window.open(e,"_blank","noopener")}return(e,t)=>{var k,y,p,h;const I=D,b=G,T=K,f=q,V=U;return a(),l("div",{class:x(["msg-bubble",{"is-staff":w.value}])},[m(I,{class:"msg-avatar",size:36,src:z.value},{default:r(()=>[d(i(F.value),1)]),_:1},8,["src"]),n("div",Q,[n("div",R,[n("span",W,i(_.value),1),n("span",X,i(M(s.message.send_time)),1),s.message.action==="recall"?(a(),g(b,{key:0,size:"small",type:"info"},{default:r(()=>[...t[1]||(t[1]=[d(" 已撤回 ",-1)])]),_:1})):B("",!0)]),n("div",{class:x(["msg-content",C.value])},[s.message.msgtype==="text"||s.message.msgtype==="markdown"?(a(),l("div",Y,i(s.message.content),1)):s.message.msgtype==="image"&&((k=c.value)!=null&&k.file_url)?(a(),g(T,{key:1,src:c.value.file_url,"preview-src-list":[c.value.file_url],fit:"contain",class:"content-image","hide-on-click-modal":""},null,8,["src","preview-src-list"])):s.message.msgtype==="image"?(a(),l("div",Z,[m(f,null,{default:r(()=>[m(v(L))]),_:1}),t[2]||(t[2]=n("span",null,"图片下载中…",-1))])):s.message.msgtype==="video"&&((y=c.value)!=null&&y.file_url)?(a(),l("video",{key:3,src:c.value.file_url,controls:"",class:"content-video"},null,8,ee)):s.message.msgtype==="video"?(a(),l("div",se,[m(f,null,{default:r(()=>[m(v(A))]),_:1}),t[3]||(t[3]=n("span",null,"视频下载中…",-1))])):s.message.msgtype==="voice"&&((p=c.value)!=null&&p.file_url)?(a(),l("audio",{key:5,src:c.value.file_url,controls:"",class:"content-audio"},null,8,te)):s.message.msgtype==="voice"?(a(),l("div",ae,[m(f,null,{default:r(()=>[m(v(H))]),_:1}),n("span",null,"语音下载中…("+i(s.message.play_length)+"s)",1)])):s.message.msgtype==="file"?(a(),l("div",ne,[m(f,{size:24},{default:r(()=>[m(v(O))]),_:1}),n("div",le,[n("div",{class:"file-name",title:s.message.file_name},i(s.message.file_name||"未命名文件"),9,ie),n("div",oe,[d(i(N(s.message.file_size))+" ",1),s.message.file_ext?(a(),l(P,{key:0},[d("· "+i(s.message.file_ext),1)],64)):B("",!0)])]),(h=c.value)!=null&&h.file_url?(a(),g(V,{key:0,size:"small",type:"primary",link:"",onClick:t[0]||(t[0]=de=>$(c.value.file_url))},{default:r(()=>[...t[4]||(t[4]=[d(" 下载 ",-1)])]),_:1})):(a(),g(b,{key:1,size:"small",type:"info"},{default:r(()=>[...t[5]||(t[5]=[d("下载中…",-1)])]),_:1}))])):(a(),l("div",ce,[n("div",me,i(E.value),1),n("div",re,i(s.message.content),1)]))],2)])],2)}}}),ve=J(ue,[["__scopeId","data-v-b5ff1168"]]);export{ve as default}; diff --git a/server/public/admin/assets/NoteTimeline-DDh0aI3_.js b/server/public/admin/assets/NoteTimeline-D83GYvN5.js similarity index 94% rename from server/public/admin/assets/NoteTimeline-DDh0aI3_.js rename to server/public/admin/assets/NoteTimeline-D83GYvN5.js index d121bd2fe..1f6053c65 100644 --- a/server/public/admin/assets/NoteTimeline-DDh0aI3_.js +++ b/server/public/admin/assets/NoteTimeline-D83GYvN5.js @@ -1,2 +1,2 @@ -import{o as ie,R as oe,q as n,r as o,O as k,K as le,D as r,L as P,P as m,v as l,s as d,F as w,G as E,bC as ae,aA as re,aB as de,p as ue,M as g,T as U,aa as me,u as V,db as z,aw as M,w as ce,bI as pe,e as ge}from"./.pnpm-CyuAWpdG.js";import{_ as fe}from"./picker-BDO86vcM.js";import{e as ve,c as _e,j as f,_ as ye}from"./index-Dxvz9lb1.js";import{a as T,d as he}from"./patient-Bz8-LT2R.js";import{h as ke}from"./perm-DOfZAzJJ.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const we={class:"note-timeline-wrap"},Ie={key:0,class:"timeline-actions"},Ce={class:"upload-trigger"},xe={class:"upload-trigger"},be={key:1,class:"note-timeline"},Ee={class:"timeline-date"},Ve={class:"timeline-body"},Ne={key:0,class:"timeline-content"},Se={key:1,class:"timeline-images"},De={key:2,class:"timeline-images"},Ae={key:0,class:"thumb-wrap"},Be={key:1,class:"file-wrap"},Pe=["href","title"],Ue={class:"file-name"},O=8e3,ze=ie({__name:"NoteTimeline",props:{notes:{},diagnosisId:{},readonly:{type:Boolean}},emits:["refresh"],setup(u,{emit:W}){const c=u,I=W,X=ue(()=>ke(["doctor.appointment/addDoctorNote"])),v=g(!1),C=g(""),N=g(!1),q=ve(),_=t=>q.getImageUrl(t),S=g([]),D=g([]),y=g(0),h=g(0),K=["jpg","jpeg","png","gif","bmp","webp","svg"],A=t=>{var i;const e=((i=t.split(".").pop())==null?void 0:i.toLowerCase().split("?")[0])||"";return K.includes(e)},$=t=>{var i;const e=t.split("/");return decodeURIComponent(((i=e[e.length-1])==null?void 0:i.split("?")[0])||"文件")},Z=t=>t.filter(A).map(_),H=(t,e)=>{const i=t.filter(A),x=t[e];return i.indexOf(x)},J=t=>t?t.split(` +import{o as ie,R as oe,q as n,r as o,O as k,K as le,D as r,L as P,P as m,v as l,s as d,F as w,G as E,bC as ae,aA as re,aB as de,p as ue,M as g,T as U,aa as me,u as V,db as z,aw as M,w as ce,bI as pe,e as ge}from"./.pnpm-CyuAWpdG.js";import{_ as fe}from"./picker-BTh9eW9u.js";import{e as ve,c as _e,j as f,_ as ye}from"./index-Bkarz3gO.js";import{a as T,d as he}from"./patient-B_ifBl-W.js";import{h as ke}from"./perm-CHCBwnFR.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const we={class:"note-timeline-wrap"},Ie={key:0,class:"timeline-actions"},Ce={class:"upload-trigger"},xe={class:"upload-trigger"},be={key:1,class:"note-timeline"},Ee={class:"timeline-date"},Ve={class:"timeline-body"},Ne={key:0,class:"timeline-content"},Se={key:1,class:"timeline-images"},De={key:2,class:"timeline-images"},Ae={key:0,class:"thumb-wrap"},Be={key:1,class:"file-wrap"},Pe=["href","title"],Ue={class:"file-name"},O=8e3,ze=ie({__name:"NoteTimeline",props:{notes:{},diagnosisId:{},readonly:{type:Boolean}},emits:["refresh"],setup(u,{emit:W}){const c=u,I=W,X=ue(()=>ke(["doctor.appointment/addDoctorNote"])),v=g(!1),C=g(""),N=g(!1),q=ve(),_=t=>q.getImageUrl(t),S=g([]),D=g([]),y=g(0),h=g(0),K=["jpg","jpeg","png","gif","bmp","webp","svg"],A=t=>{var i;const e=((i=t.split(".").pop())==null?void 0:i.toLowerCase().split("?")[0])||"";return K.includes(e)},$=t=>{var i;const e=t.split("/");return decodeURIComponent(((i=e[e.length-1])==null?void 0:i.split("?")[0])||"文件")},Z=t=>t.filter(A).map(_),H=(t,e)=>{const i=t.filter(A),x=t[e];return i.indexOf(x)},J=t=>t?t.split(` `).filter(Boolean):[],Q=t=>{if(!c.diagnosisId)return;const e=Array.isArray(t)?t:[t];if(e.length<=y.value){y.value=e.length;return}const i=e.slice(y.value);y.value=e.length,i.length>0&&T({diagnosis_id:c.diagnosisId,tongue_images:i}).then(()=>{f.msgSuccess("舌苔照片已添加"),I("refresh")})},Y=t=>{if(!c.diagnosisId)return;const e=Array.isArray(t)?t:[t];if(e.length<=h.value){h.value=e.length;return}const i=e.slice(h.value);h.value=e.length,i.length>0&&T({diagnosis_id:c.diagnosisId,report_files:i}).then(()=>{f.msgSuccess("检查报告已添加"),I("refresh")})};oe(()=>c.notes,()=>{S.value=[],D.value=[],y.value=0,h.value=0});const ee=async()=>{if(!c.diagnosisId){f.msgWarning("当前无诊单,无法添加备注");return}const t=C.value.trim();if(!t){f.msgWarning("请输入备注内容");return}N.value=!0;try{await T({diagnosis_id:c.diagnosisId,content:t}),f.msgSuccess("备注保存成功"),C.value="",v.value=!1,I("refresh")}catch(e){f.msgError((e==null?void 0:e.message)||"保存失败")}finally{N.value=!1}},B=async(t,e,i)=>{try{await ge.confirm("确认删除?","提示",{type:"warning"})}catch{return}await he({note_id:t,image_type:e,image_path:i}),f.msgSuccess("已删除"),I("refresh")};return(t,e)=>{const i=le,x=_e,F=fe,L=me,b=ce,te=ae,se=re,ne=de;return n(),o("div",we,[!u.readonly&&u.diagnosisId?(n(),o("div",Ie,[X.value?(n(),k(i,{key:0,type:"primary",plain:"",size:"small",onClick:e[0]||(e[0]=s=>v.value=!0)},{default:r(()=>[...e[6]||(e[6]=[P(" 添加备注 ",-1)])]),_:1})):m("",!0),l(F,{modelValue:S.value,"onUpdate:modelValue":e[1]||(e[1]=s=>S.value=s),limit:99,type:"image","exclude-domain":!0,onChange:Q},{upload:r(()=>[d("div",Ce,[l(x,{size:20,name:"el-icon-Plus"}),e[7]||(e[7]=d("span",null,"舌苔照片",-1))])]),_:1},8,["modelValue"]),l(F,{modelValue:D.value,"onUpdate:modelValue":e[2]||(e[2]=s=>D.value=s),limit:99,type:"file","exclude-domain":!0,onChange:Y},{upload:r(()=>[d("div",xe,[l(x,{size:20,name:"el-icon-Plus"}),e[8]||(e[8]=d("span",null,"检查报告",-1))])]),_:1},8,["modelValue"])])):m("",!0),u.notes.length?(n(),o("div",be,[(n(!0),o(w,null,E(u.notes,s=>{var R,j;return n(),o("div",{key:s.id,class:"timeline-node"},[e[11]||(e[11]=d("div",{class:"timeline-dot"},null,-1)),d("div",Ee,U(s.note_date),1),d("div",Ve,[s.content?(n(),o("div",Ne,[(n(!0),o(w,null,E(J(s.content),(a,p)=>(n(),o("div",{key:p,class:"content-line"},U(a),1))),128))])):m("",!0),(R=s.tongue_images)!=null&&R.length?(n(),o("div",Se,[e[9]||(e[9]=d("span",{class:"images-label"},"舌苔照片",-1)),(n(!0),o(w,null,E(s.tongue_images,(a,p)=>(n(),o("div",{key:p,class:"thumb-wrap"},[l(L,{src:_(a),"preview-src-list":s.tongue_images.map(_),"initial-index":p,"z-index":O,fit:"cover",class:"timeline-thumb","preview-teleported":""},null,8,["src","preview-src-list","initial-index"]),u.readonly?m("",!0):(n(),k(b,{key:0,class:"thumb-delete",onClick:M(G=>B(s.id,"tongue_images",a),["stop"])},{default:r(()=>[l(V(z))]),_:1},8,["onClick"]))]))),128))])):m("",!0),(j=s.report_files)!=null&&j.length?(n(),o("div",De,[e[10]||(e[10]=d("span",{class:"images-label"},"检查报告",-1)),(n(!0),o(w,null,E(s.report_files,(a,p)=>(n(),o(w,{key:p},[A(a)?(n(),o("div",Ae,[l(L,{src:_(a),"preview-src-list":Z(s.report_files),"initial-index":H(s.report_files,p),"z-index":O,fit:"cover",class:"timeline-thumb","preview-teleported":""},null,8,["src","preview-src-list","initial-index"]),u.readonly?m("",!0):(n(),k(b,{key:0,class:"thumb-delete",onClick:M(G=>B(s.id,"report_files",a),["stop"])},{default:r(()=>[l(V(z))]),_:1},8,["onClick"]))])):(n(),o("div",Be,[d("a",{href:_(a),target:"_blank",class:"file-link",title:$(a)},[l(b,{size:20},{default:r(()=>[l(V(pe))]),_:1}),d("span",Ue,U($(a)),1)],8,Pe),u.readonly?m("",!0):(n(),k(b,{key:0,class:"file-delete",onClick:M(G=>B(s.id,"report_files",a),["stop"])},{default:r(()=>[l(V(z))]),_:1},8,["onClick"]))]))],64))),128))])):m("",!0)])])}),128))])):m("",!0),!u.notes.length&&u.readonly?(n(),k(te,{key:2,description:"暂无备注","image-size":48})):m("",!0),l(ne,{modelValue:v.value,"onUpdate:modelValue":e[5]||(e[5]=s=>v.value=s),title:"添加备注",width:"480px","append-to-body":""},{footer:r(()=>[l(i,{onClick:e[4]||(e[4]=s=>v.value=!1)},{default:r(()=>[...e[12]||(e[12]=[P("取消",-1)])]),_:1}),l(i,{type:"primary",loading:N.value,onClick:ee},{default:r(()=>[...e[13]||(e[13]=[P("保存",-1)])]),_:1},8,["loading"])]),default:r(()=>[l(se,{modelValue:C.value,"onUpdate:modelValue":e[3]||(e[3]=s=>C.value=s),type:"textarea",rows:4,placeholder:"输入今日备注...",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1},8,["modelValue"])])}}}),Ze=ye(ze,[["__scopeId","data-v-530ad386"]]);export{Ze as default}; diff --git a/server/public/admin/assets/OrderActionHost-KWccaYJI.js b/server/public/admin/assets/OrderActionHost-1ZsxBlo_.js similarity index 98% rename from server/public/admin/assets/OrderActionHost-KWccaYJI.js rename to server/public/admin/assets/OrderActionHost-1ZsxBlo_.js index 9f935ec52..2540b72c5 100644 --- a/server/public/admin/assets/OrderActionHost-KWccaYJI.js +++ b/server/public/admin/assets/OrderActionHost-1ZsxBlo_.js @@ -1 +1 @@ -import{o as Ae,q as g,r as N,F as P,v as l,u as K,D as t,O as Q,$ as Te,K as De,L as s,w as $e,cm as Be,Z as Re,G as C,_ as Fe,ae as Me,T as ue,P as je,aB as Ie,bo as Le,aA as ze,bd as He,aw as de,bb as Ge,bh as Ke,bi as We,bm as Je,ac as Ze,s as X,J as Qe,bn as Xe,bf as Ye,bq as ea,I as aa,M as f,p as la,aC as z,e as Y}from"./.pnpm-CyuAWpdG.js";import{j as O,_ as ta}from"./index-Dxvz9lb1.js";import ra from"./PrescriptionOrderDetailDrawer-v90LlSLZ.js";import{m as se,c as na,d as oa,e as ia,g as ua,h as da,i as sa,j as pa,k as ma,l as fa,n as _a,o as ca,p as ya}from"./first_visit-BxZL4Ke4.js";import{h as ba}from"./perm-DOfZAzJJ.js";import{C as va}from"./prescription-order-utils-CXfs2Bra.js";function y(b){return ba([b])}function ga(b){return va(b)}function ka(){return y("tcm.prescriptionOrder/detail")}function pe(b){const m=[],_=Number(b.fulfillment_status),E=Number(b.prescription_audit_status),V=Number(b.payment_slip_audit_status),d=ga(b);ka()&&y("tcm.prescriptionOrder/edit")&&_===1&&!d&&m.push({key:"edit",label:"编辑订单"}),y("tcm.prescriptionOrder/auditPrescription")&&E===0&&![3,4,6].includes(_)&&m.push({key:"audit_prescription",label:"处方审核"}),y("tcm.prescriptionOrder/auditPrescription")&&[1,2].includes(E)&&V===0&&![3,4,6].includes(_)&&!d&&m.push({key:"revoke_rx_audit",label:"撤回处方审核"}),y("tcm.prescriptionOrder/auditPayment")&&E===1&&V===0&&![3,4].includes(_)&&m.push({key:"audit_payment",label:"支付单审核"}),y("tcm.prescriptionOrder/auditPayment")&&E===1&&[1,2].includes(V)&&![3,4,6].includes(_)&&m.push({key:"revoke_pay_audit",label:"撤回支付审核"}),y("tcm.prescriptionOrder/ddcode")&&m.push({key:"ddcode",label:"修改快递单号"}),y("tcm.prescriptionOrder/ship")&&_===2&&m.push({key:"ship",label:"确认发货"});const o=Math.round((Number(b.amount)||0)*100)/100,$=Math.round((Number(b.linked_pay_paid_total)||0)*100)/100;return y("tcm.prescriptionOrder/addPayOrder")&&[5,6].includes(_)&&$W.value==="prescription"?"处方业务审核":"关联支付单审核"),F=f(!1),x=z({express_company:"auto",tracking_number:""}),M=f(!1),c=z({ship_mode:"gancao",express_company:"auto",tracking_number:""}),S=f(!1),H=f(!1),ee=f({}),n=z({recipient_name:"",recipient_phone:"",shipping_address:"",fee_type:3,amount:0,express_company:"auto",tracking_number:"",remark_assistant:"",remark_extra:""}),j=f(!1),u=z({order_type:3,pay_amount:0,pay_remark:"",completion_request:0,pay_create_type:"fubei"}),I=f(!1),G=f(3),L=f(!1),k=z({reason:"",refund_amount:void 0});function ae(r){return Number(r||0).toFixed(2)}function ye(r){return String(r||"").toLowerCase()==="direct"?"direct":"gancao"}function be(r){var e;(e=V.value)==null||e.open(Number(r.id))}async function ve(r){const e=await se({id:r});return(e==null?void 0:e.data)??e??null}async function ge(r){d.value=r,S.value=!0,H.value=!0;try{const e=await ve(Number(r.id));if(!e)throw new Error("订单详情加载失败");ee.value=e,n.recipient_name=String(e.recipient_name||""),n.recipient_phone=String(e.recipient_phone||""),n.shipping_address=String(e.shipping_address||""),n.fee_type=Number(e.fee_type||3),n.amount=Number(e.amount||0),n.express_company=String(e.express_company||"auto")||"auto",n.tracking_number=String(e.tracking_number||""),n.remark_assistant=String(e.remark_assistant||""),n.remark_extra=String(e.remark_extra||"")}catch(e){O.msgError((e==null?void 0:e.message)||"订单详情加载失败"),S.value=!1}finally{H.value=!1}}function le(r,e){switch(d.value=r,e){case"edit":ge(r);break;case"audit_prescription":case"audit_payment":W.value=e==="audit_prescription"?"prescription":"payment",R.value="",B.value=!0;break;case"revoke_rx_audit":re("prescription");break;case"revoke_pay_audit":re("payment");break;case"ddcode":x.express_company=String(r.express_company||"auto")||"auto",x.tracking_number=String(r.tracking_number||""),F.value=!0;break;case"ship":c.ship_mode=ye(r.ship_mode),c.express_company=String(r.express_company||"auto")||"auto",c.tracking_number=String(r.tracking_number||""),M.value=!0;break;case"add_pay_order":{const J=Math.max(0,Number(r.amount||0)-Number(r.linked_pay_paid_total||0));u.order_type=3,u.pay_amount=Number(J.toFixed(2)),u.pay_remark="",u.completion_request=0,u.pay_create_type="fubei",j.value=!0;break}case"complete":G.value=3,I.value=!0;break;case"refund":k.reason="",k.refund_amount=void 0,L.value=!0;break;case"withdraw":Oe();break;case"upload_pharmacy":Ne();break}}async function w(r){var e;O.msgSuccess(r),E("changed"),await((e=V.value)==null?void 0:e.refreshIfCurrent(d.value.id))}async function te(r){if(r==="reject"&&!R.value.trim()){O.msgError("驳回时必须填写审核意见");return}o.value=!0;try{const e={id:Number(d.value.id),action:r,remark:R.value.trim()};W.value==="prescription"?await na(e):await oa(e),B.value=!1,await w(r==="approve"?"审核通过成功":"订单已驳回")}catch{}finally{o.value=!1}}async function re(r){try{await Y.confirm(`确认撤回${r==="prescription"?"处方":"支付单"}审核并恢复为待审核吗?`,"撤回审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),r==="prescription"?await ia({id:Number(d.value.id)}):await ua({id:Number(d.value.id)}),await w("审核已撤回")}catch{}}async function ne(){if(!x.tracking_number.trim()){O.msgError("请填写快递单号");return}o.value=!0;try{await da({id:Number(d.value.id),express_company:x.express_company||"auto",tracking_number:x.tracking_number.trim()}),F.value=!1,await w("快递单号已保存")}catch{}finally{o.value=!1}}async function oe(){if(!c.tracking_number.trim()){O.msgError("请填写快递单号");return}o.value=!0;try{await sa({id:Number(d.value.id),ship_mode:c.ship_mode,express_company:c.express_company||"auto",tracking_number:c.tracking_number.trim()}),M.value=!1,await w("确认发货成功")}catch{}finally{o.value=!1}}async function ke(){if(!n.recipient_name.trim()||!n.recipient_phone.trim()||!n.shipping_address.trim()){O.msgError("请完整填写收货人、收货手机和收货地址");return}if(Number(n.amount)<0){O.msgError("订单金额不能为负数");return}const r=ee.value;o.value=!0;try{await pa({id:Number(d.value.id),recipient_name:n.recipient_name.trim(),recipient_phone:n.recipient_phone.trim(),shipping_province:r.shipping_province||"",shipping_city:r.shipping_city||"",shipping_district:r.shipping_district||"",shipping_address:n.shipping_address.trim(),is_follow_up:Number(r.is_follow_up||0),medication_days:r.medication_days,dose_unit:r.dose_unit||"剂",dose_count:Number(r.dose_count||1),prev_staff:r.prev_staff||"",service_channel:r.service_channel||"",service_package:r.service_package||"",tracking_number:n.tracking_number.trim(),express_company:n.express_company||"auto",fee_type:Number(n.fee_type),amount:Number(n.amount),remark_extra:n.remark_extra.trim(),remark_assistant:n.remark_assistant.trim(),pay_order_ids:Array.isArray(r.pay_order_ids)?r.pay_order_ids:[]}),S.value=!1,await w("订单保存成功")}catch{}finally{o.value=!1}}async function we(){if(!(Number(u.pay_amount)>0)){O.msgError("补齐金额必须大于 0");return}o.value=!0;try{await ma({id:Number(d.value.id),order_type:Number(u.order_type),pay_amount:Number(u.pay_amount),pay_remark:u.pay_remark.trim(),completion_request:Number(u.completion_request),pay_create_type:u.pay_create_type}),j.value=!1,await w("支付单已新增,等待支付审核")}catch{}finally{o.value=!1}}async function Ve(){o.value=!0;try{await fa({id:Number(d.value.id),fulfillment_status:Number(G.value)}),I.value=!1,await w("订单状态已更新")}catch{}finally{o.value=!1}}async function xe(){if(!k.reason.trim()){O.msgError("请填写退款原因");return}o.value=!0;try{await _a({id:Number(d.value.id),reason:k.reason.trim(),refund_amount:k.refund_amount===void 0?void 0:Number(k.refund_amount)}),L.value=!1,await w("退款成功")}catch{}finally{o.value=!1}}async function Oe(){try{await Y.confirm("确认撤回该订单吗?撤回后当前订单将结束。","撤回订单",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await ca({id:Number(d.value.id)}),await w("订单已撤回")}catch{}}async function Ne(){try{await Y.confirm("确认将该订单上传到订单设定的药房吗?","上传药房",{type:"warning",confirmButtonText:"确认上传",cancelButtonText:"取消"}),await ya({id:Number(d.value.id)}),await w("药方上传成功")}catch{}}return m({openDetail:be,openAction:le}),(r,e)=>{const J=$e,p=De,Pe=Fe,Ee=Re,Ue=Te,h=Le,v=ze,U=Ie,q=We,A=Ke,i=Ge,T=He,Ce=Je,Z=Qe,ie=ea,Se=Ye,he=aa,qe=Xe;return g(),N(P,null,[l(ra,{ref_key:"detailDrawerRef",ref:V,readonly:"","append-to-body":"","detail-loader":K(se),"load-related-data":!1},{"header-actions":t(({detail:a})=>[K(pe)(a).length?(g(),Q(Ue,{key:0,trigger:"click",onCommand:D=>le(a,D)},{dropdown:t(()=>[l(Ee,null,{default:t(()=>[(g(!0),N(P,null,C(K(pe)(a),D=>(g(),Q(Pe,{key:D.key,command:D.key,class:Me({"danger-menu-item":D.danger})},{default:t(()=>[s(ue(D.label),1)]),_:2},1032,["command","class"]))),128))]),_:2},1024)]),default:t(()=>[l(p,{type:"primary",size:"small",plain:""},{default:t(()=>[e[38]||(e[38]=s(" 订单操作",-1)),l(J,{class:"el-icon--right"},{default:t(()=>[l(K(Be))]),_:1})]),_:1})]),_:2},1032,["onCommand"])):je("",!0)]),_:1},8,["detail-loader"]),l(U,{modelValue:B.value,"onUpdate:modelValue":e[4]||(e[4]=a=>B.value=a),title:ce.value,width:"480px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[1]||(e[1]=a=>B.value=!1)},{default:t(()=>[...e[39]||(e[39]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:e[2]||(e[2]=a=>te("approve"))},{default:t(()=>[...e[40]||(e[40]=[s("同意通过",-1)])]),_:1},8,["loading"]),l(p,{type:"danger",loading:o.value,onClick:e[3]||(e[3]=a=>te("reject"))},{default:t(()=>[...e[41]||(e[41]=[s("驳回",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"通过时审核意见可不填;驳回时必须填写明确原因。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(v,{modelValue:R.value,"onUpdate:modelValue":e[0]||(e[0]=a=>R.value=a),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"请输入审核意见"},null,8,["modelValue"])]),_:1},8,["modelValue","title"]),l(U,{modelValue:F.value,"onUpdate:modelValue":e[8]||(e[8]=a=>F.value=a),title:"修改快递单号",width:"440px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[7]||(e[7]=a=>F.value=!1)},{default:t(()=>[...e[42]||(e[42]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:ne},{default:t(()=>[...e[43]||(e[43]=[s("保存",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(T,{"label-width":"92px",onSubmit:de(ne,["prevent"])},{default:t(()=>[l(i,{label:"承运商"},{default:t(()=>[l(A,{modelValue:x.express_company,"onUpdate:modelValue":e[5]||(e[5]=a=>x.express_company=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C($,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"快递单号",required:""},{default:t(()=>[l(v,{modelValue:x.tracking_number,"onUpdate:modelValue":e[6]||(e[6]=a=>x.tracking_number=a),maxlength:"80",clearable:"",placeholder:"请输入快递单号"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:M.value,"onUpdate:modelValue":e[12]||(e[12]=a=>M.value=a),title:"确认发货",width:"460px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[11]||(e[11]=a=>M.value=!1)},{default:t(()=>[...e[44]||(e[44]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:oe},{default:t(()=>[...e[45]||(e[45]=[s("确认发货",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"确认后订单将进入“已发货”,请先核对发货方式和快递信息。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(T,{"label-width":"92px",onSubmit:de(oe,["prevent"])},{default:t(()=>[l(i,{label:"发货方式"},{default:t(()=>[l(Ce,{type:c.ship_mode==="direct"?"warning":"success",effect:"plain"},{default:t(()=>[s(ue(c.ship_mode==="direct"?"洛阳药房":"甘草药房"),1)]),_:1},8,["type"])]),_:1}),l(i,{label:"承运商"},{default:t(()=>[l(A,{modelValue:c.express_company,"onUpdate:modelValue":e[9]||(e[9]=a=>c.express_company=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C($,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"快递单号",required:""},{default:t(()=>[l(v,{modelValue:c.tracking_number,"onUpdate:modelValue":e[10]||(e[10]=a=>c.tracking_number=a),maxlength:"80",clearable:"",placeholder:"请输入快递单号"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:S.value,"onUpdate:modelValue":e[23]||(e[23]=a=>S.value=a),title:"编辑订单",width:"680px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[22]||(e[22]=a=>S.value=!1)},{default:t(()=>[...e[46]||(e[46]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,disabled:H.value,onClick:ke},{default:t(()=>[...e[47]||(e[47]=[s("保存",-1)])]),_:1},8,["loading","disabled"])]),default:t(()=>[Ze((g(),Q(T,{"label-width":"104px",class:"order-edit-form"},{default:t(()=>[X("div",wa,[l(i,{label:"收货人",required:""},{default:t(()=>[l(v,{modelValue:n.recipient_name,"onUpdate:modelValue":e[13]||(e[13]=a=>n.recipient_name=a),maxlength:"50"},null,8,["modelValue"])]),_:1}),l(i,{label:"收货手机",required:""},{default:t(()=>[l(v,{modelValue:n.recipient_phone,"onUpdate:modelValue":e[14]||(e[14]=a=>n.recipient_phone=a),maxlength:"20"},null,8,["modelValue"])]),_:1}),l(i,{label:"费用类别",required:""},{default:t(()=>[l(A,{modelValue:n.fee_type,"onUpdate:modelValue":e[15]||(e[15]=a=>n.fee_type=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C(me,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"订单金额",required:""},{default:t(()=>[l(Z,{modelValue:n.amount,"onUpdate:modelValue":e[16]||(e[16]=a=>n.amount=a),min:0,precision:2,step:10,class:"w-full"},null,8,["modelValue"])]),_:1})]),l(i,{label:"收货地址",required:""},{default:t(()=>[l(v,{modelValue:n.shipping_address,"onUpdate:modelValue":e[17]||(e[17]=a=>n.shipping_address=a),maxlength:"500"},null,8,["modelValue"])]),_:1}),X("div",Va,[l(i,{label:"承运商"},{default:t(()=>[l(A,{modelValue:n.express_company,"onUpdate:modelValue":e[18]||(e[18]=a=>n.express_company=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C($,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"快递单号"},{default:t(()=>[l(v,{modelValue:n.tracking_number,"onUpdate:modelValue":e[19]||(e[19]=a=>n.tracking_number=a),maxlength:"80",clearable:""},null,8,["modelValue"])]),_:1})]),l(i,{label:"医助备注"},{default:t(()=>[l(v,{modelValue:n.remark_assistant,"onUpdate:modelValue":e[20]||(e[20]=a=>n.remark_assistant=a),type:"textarea",rows:2,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"药房备注"},{default:t(()=>[l(v,{modelValue:n.remark_extra,"onUpdate:modelValue":e[21]||(e[21]=a=>n.remark_extra=a),type:"textarea",rows:2,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(h,{title:"保存后会沿用原订单编辑规则;非已发货订单的支付审核将重新变为待审核。",type:"info",closable:!1,"show-icon":""})]),_:1})),[[qe,H.value]])]),_:1},8,["modelValue"]),l(U,{modelValue:j.value,"onUpdate:modelValue":e[30]||(e[30]=a=>j.value=a),title:"补齐支付单",width:"520px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[29]||(e[29]=a=>j.value=!1)},{default:t(()=>[...e[51]||(e[51]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:we},{default:t(()=>[...e[52]||(e[52]=[s("确认新增",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:`订单金额 ¥${ae(d.value.amount)},已关联支付 ¥${ae(d.value.linked_pay_paid_total)}`,type:"info",closable:!1,"show-icon":"",class:"mb-4"},null,8,["title"]),l(T,{"label-width":"108px"},{default:t(()=>[l(i,{label:"支付单类型"},{default:t(()=>[l(A,{modelValue:u.order_type,"onUpdate:modelValue":e[24]||(e[24]=a=>u.order_type=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C(fe,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"创建方式"},{default:t(()=>[l(Se,{modelValue:u.pay_create_type,"onUpdate:modelValue":e[25]||(e[25]=a=>u.pay_create_type=a)},{default:t(()=>[l(ie,{value:"fubei"},{default:t(()=>[...e[48]||(e[48]=[s("付呗支付",-1)])]),_:1}),l(ie,{value:"express_cod"},{default:t(()=>[...e[49]||(e[49]=[s("快递代收",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"补齐金额",required:""},{default:t(()=>[l(Z,{modelValue:u.pay_amount,"onUpdate:modelValue":e[26]||(e[26]=a=>u.pay_amount=a),min:0,precision:2,step:10,class:"w-full"},null,8,["modelValue"])]),_:1}),l(i,{label:"支付备注"},{default:t(()=>[l(v,{modelValue:u.pay_remark,"onUpdate:modelValue":e[27]||(e[27]=a=>u.pay_remark=a),type:"textarea",rows:3,maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"完单申请"},{default:t(()=>[l(he,{modelValue:u.completion_request,"onUpdate:modelValue":e[28]||(e[28]=a=>u.completion_request=a),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[50]||(e[50]=X("span",{class:"form-tip"},"同时提交完单申请",-1))]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:I.value,"onUpdate:modelValue":e[33]||(e[33]=a=>I.value=a),title:"完成订单",width:"480px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[32]||(e[32]=a=>I.value=!1)},{default:t(()=>[...e[53]||(e[53]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:Ve},{default:t(()=>[...e[54]||(e[54]=[s("确认完成",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"请选择真实履约结果。退款必须使用单独的“退款”操作。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(T,{"label-width":"100px"},{default:t(()=>[l(i,{label:"结案状态",required:""},{default:t(()=>[l(A,{modelValue:G.value,"onUpdate:modelValue":e[31]||(e[31]=a=>G.value=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C(_e,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:L.value,"onUpdate:modelValue":e[37]||(e[37]=a=>L.value=a),title:"订单退款",width:"500px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[36]||(e[36]=a=>L.value=!1)},{default:t(()=>[...e[55]||(e[55]=[s("取消",-1)])]),_:1}),l(p,{type:"danger",loading:o.value,onClick:xe},{default:t(()=>[...e[56]||(e[56]=[s("确认退款",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"退款会同步更新关联支付单和订单金额;退款金额留空时按系统计算的最大可退金额处理。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(T,{"label-width":"100px"},{default:t(()=>[l(i,{label:"退款原因",required:""},{default:t(()=>[l(v,{modelValue:k.reason,"onUpdate:modelValue":e[34]||(e[34]=a=>k.reason=a),type:"textarea",rows:3,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"退款金额"},{default:t(()=>[l(Z,{modelValue:k.refund_amount,"onUpdate:modelValue":e[35]||(e[35]=a=>k.refund_amount=a),min:0,precision:2,step:10,class:"w-full",placeholder:"留空则退最大可退金额"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)}}}),Oa=ta(xa,[["__scopeId","data-v-3c102918"]]),ha=Object.freeze(Object.defineProperty({__proto__:null,default:Oa},Symbol.toStringTag,{value:"Module"}));export{Oa as O,ha as a,ka as c,pe as m}; +import{o as Ae,q as g,r as N,F as P,v as l,u as K,D as t,O as Q,$ as Te,K as De,L as s,w as $e,cm as Be,Z as Re,G as C,_ as Fe,ae as Me,T as ue,P as je,aB as Ie,bo as Le,aA as ze,bd as He,aw as de,bb as Ge,bh as Ke,bi as We,bm as Je,ac as Ze,s as X,J as Qe,bn as Xe,bf as Ye,bq as ea,I as aa,M as f,p as la,aC as z,e as Y}from"./.pnpm-CyuAWpdG.js";import{j as O,_ as ta}from"./index-Bkarz3gO.js";import ra from"./PrescriptionOrderDetailDrawer-CX7YbddA.js";import{m as se,c as na,d as oa,e as ia,g as ua,h as da,i as sa,j as pa,k as ma,l as fa,n as _a,o as ca,p as ya}from"./first_visit-B5IgLifl.js";import{h as ba}from"./perm-CHCBwnFR.js";import{C as va}from"./prescription-order-utils-CXfs2Bra.js";function y(b){return ba([b])}function ga(b){return va(b)}function ka(){return y("tcm.prescriptionOrder/detail")}function pe(b){const m=[],_=Number(b.fulfillment_status),E=Number(b.prescription_audit_status),V=Number(b.payment_slip_audit_status),d=ga(b);ka()&&y("tcm.prescriptionOrder/edit")&&_===1&&!d&&m.push({key:"edit",label:"编辑订单"}),y("tcm.prescriptionOrder/auditPrescription")&&E===0&&![3,4,6].includes(_)&&m.push({key:"audit_prescription",label:"处方审核"}),y("tcm.prescriptionOrder/auditPrescription")&&[1,2].includes(E)&&V===0&&![3,4,6].includes(_)&&!d&&m.push({key:"revoke_rx_audit",label:"撤回处方审核"}),y("tcm.prescriptionOrder/auditPayment")&&E===1&&V===0&&![3,4].includes(_)&&m.push({key:"audit_payment",label:"支付单审核"}),y("tcm.prescriptionOrder/auditPayment")&&E===1&&[1,2].includes(V)&&![3,4,6].includes(_)&&m.push({key:"revoke_pay_audit",label:"撤回支付审核"}),y("tcm.prescriptionOrder/ddcode")&&m.push({key:"ddcode",label:"修改快递单号"}),y("tcm.prescriptionOrder/ship")&&_===2&&m.push({key:"ship",label:"确认发货"});const o=Math.round((Number(b.amount)||0)*100)/100,$=Math.round((Number(b.linked_pay_paid_total)||0)*100)/100;return y("tcm.prescriptionOrder/addPayOrder")&&[5,6].includes(_)&&$W.value==="prescription"?"处方业务审核":"关联支付单审核"),F=f(!1),x=z({express_company:"auto",tracking_number:""}),M=f(!1),c=z({ship_mode:"gancao",express_company:"auto",tracking_number:""}),S=f(!1),H=f(!1),ee=f({}),n=z({recipient_name:"",recipient_phone:"",shipping_address:"",fee_type:3,amount:0,express_company:"auto",tracking_number:"",remark_assistant:"",remark_extra:""}),j=f(!1),u=z({order_type:3,pay_amount:0,pay_remark:"",completion_request:0,pay_create_type:"fubei"}),I=f(!1),G=f(3),L=f(!1),k=z({reason:"",refund_amount:void 0});function ae(r){return Number(r||0).toFixed(2)}function ye(r){return String(r||"").toLowerCase()==="direct"?"direct":"gancao"}function be(r){var e;(e=V.value)==null||e.open(Number(r.id))}async function ve(r){const e=await se({id:r});return(e==null?void 0:e.data)??e??null}async function ge(r){d.value=r,S.value=!0,H.value=!0;try{const e=await ve(Number(r.id));if(!e)throw new Error("订单详情加载失败");ee.value=e,n.recipient_name=String(e.recipient_name||""),n.recipient_phone=String(e.recipient_phone||""),n.shipping_address=String(e.shipping_address||""),n.fee_type=Number(e.fee_type||3),n.amount=Number(e.amount||0),n.express_company=String(e.express_company||"auto")||"auto",n.tracking_number=String(e.tracking_number||""),n.remark_assistant=String(e.remark_assistant||""),n.remark_extra=String(e.remark_extra||"")}catch(e){O.msgError((e==null?void 0:e.message)||"订单详情加载失败"),S.value=!1}finally{H.value=!1}}function le(r,e){switch(d.value=r,e){case"edit":ge(r);break;case"audit_prescription":case"audit_payment":W.value=e==="audit_prescription"?"prescription":"payment",R.value="",B.value=!0;break;case"revoke_rx_audit":re("prescription");break;case"revoke_pay_audit":re("payment");break;case"ddcode":x.express_company=String(r.express_company||"auto")||"auto",x.tracking_number=String(r.tracking_number||""),F.value=!0;break;case"ship":c.ship_mode=ye(r.ship_mode),c.express_company=String(r.express_company||"auto")||"auto",c.tracking_number=String(r.tracking_number||""),M.value=!0;break;case"add_pay_order":{const J=Math.max(0,Number(r.amount||0)-Number(r.linked_pay_paid_total||0));u.order_type=3,u.pay_amount=Number(J.toFixed(2)),u.pay_remark="",u.completion_request=0,u.pay_create_type="fubei",j.value=!0;break}case"complete":G.value=3,I.value=!0;break;case"refund":k.reason="",k.refund_amount=void 0,L.value=!0;break;case"withdraw":Oe();break;case"upload_pharmacy":Ne();break}}async function w(r){var e;O.msgSuccess(r),E("changed"),await((e=V.value)==null?void 0:e.refreshIfCurrent(d.value.id))}async function te(r){if(r==="reject"&&!R.value.trim()){O.msgError("驳回时必须填写审核意见");return}o.value=!0;try{const e={id:Number(d.value.id),action:r,remark:R.value.trim()};W.value==="prescription"?await na(e):await oa(e),B.value=!1,await w(r==="approve"?"审核通过成功":"订单已驳回")}catch{}finally{o.value=!1}}async function re(r){try{await Y.confirm(`确认撤回${r==="prescription"?"处方":"支付单"}审核并恢复为待审核吗?`,"撤回审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),r==="prescription"?await ia({id:Number(d.value.id)}):await ua({id:Number(d.value.id)}),await w("审核已撤回")}catch{}}async function ne(){if(!x.tracking_number.trim()){O.msgError("请填写快递单号");return}o.value=!0;try{await da({id:Number(d.value.id),express_company:x.express_company||"auto",tracking_number:x.tracking_number.trim()}),F.value=!1,await w("快递单号已保存")}catch{}finally{o.value=!1}}async function oe(){if(!c.tracking_number.trim()){O.msgError("请填写快递单号");return}o.value=!0;try{await sa({id:Number(d.value.id),ship_mode:c.ship_mode,express_company:c.express_company||"auto",tracking_number:c.tracking_number.trim()}),M.value=!1,await w("确认发货成功")}catch{}finally{o.value=!1}}async function ke(){if(!n.recipient_name.trim()||!n.recipient_phone.trim()||!n.shipping_address.trim()){O.msgError("请完整填写收货人、收货手机和收货地址");return}if(Number(n.amount)<0){O.msgError("订单金额不能为负数");return}const r=ee.value;o.value=!0;try{await pa({id:Number(d.value.id),recipient_name:n.recipient_name.trim(),recipient_phone:n.recipient_phone.trim(),shipping_province:r.shipping_province||"",shipping_city:r.shipping_city||"",shipping_district:r.shipping_district||"",shipping_address:n.shipping_address.trim(),is_follow_up:Number(r.is_follow_up||0),medication_days:r.medication_days,dose_unit:r.dose_unit||"剂",dose_count:Number(r.dose_count||1),prev_staff:r.prev_staff||"",service_channel:r.service_channel||"",service_package:r.service_package||"",tracking_number:n.tracking_number.trim(),express_company:n.express_company||"auto",fee_type:Number(n.fee_type),amount:Number(n.amount),remark_extra:n.remark_extra.trim(),remark_assistant:n.remark_assistant.trim(),pay_order_ids:Array.isArray(r.pay_order_ids)?r.pay_order_ids:[]}),S.value=!1,await w("订单保存成功")}catch{}finally{o.value=!1}}async function we(){if(!(Number(u.pay_amount)>0)){O.msgError("补齐金额必须大于 0");return}o.value=!0;try{await ma({id:Number(d.value.id),order_type:Number(u.order_type),pay_amount:Number(u.pay_amount),pay_remark:u.pay_remark.trim(),completion_request:Number(u.completion_request),pay_create_type:u.pay_create_type}),j.value=!1,await w("支付单已新增,等待支付审核")}catch{}finally{o.value=!1}}async function Ve(){o.value=!0;try{await fa({id:Number(d.value.id),fulfillment_status:Number(G.value)}),I.value=!1,await w("订单状态已更新")}catch{}finally{o.value=!1}}async function xe(){if(!k.reason.trim()){O.msgError("请填写退款原因");return}o.value=!0;try{await _a({id:Number(d.value.id),reason:k.reason.trim(),refund_amount:k.refund_amount===void 0?void 0:Number(k.refund_amount)}),L.value=!1,await w("退款成功")}catch{}finally{o.value=!1}}async function Oe(){try{await Y.confirm("确认撤回该订单吗?撤回后当前订单将结束。","撤回订单",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await ca({id:Number(d.value.id)}),await w("订单已撤回")}catch{}}async function Ne(){try{await Y.confirm("确认将该订单上传到订单设定的药房吗?","上传药房",{type:"warning",confirmButtonText:"确认上传",cancelButtonText:"取消"}),await ya({id:Number(d.value.id)}),await w("药方上传成功")}catch{}}return m({openDetail:be,openAction:le}),(r,e)=>{const J=$e,p=De,Pe=Fe,Ee=Re,Ue=Te,h=Le,v=ze,U=Ie,q=We,A=Ke,i=Ge,T=He,Ce=Je,Z=Qe,ie=ea,Se=Ye,he=aa,qe=Xe;return g(),N(P,null,[l(ra,{ref_key:"detailDrawerRef",ref:V,readonly:"","append-to-body":"","detail-loader":K(se),"load-related-data":!1},{"header-actions":t(({detail:a})=>[K(pe)(a).length?(g(),Q(Ue,{key:0,trigger:"click",onCommand:D=>le(a,D)},{dropdown:t(()=>[l(Ee,null,{default:t(()=>[(g(!0),N(P,null,C(K(pe)(a),D=>(g(),Q(Pe,{key:D.key,command:D.key,class:Me({"danger-menu-item":D.danger})},{default:t(()=>[s(ue(D.label),1)]),_:2},1032,["command","class"]))),128))]),_:2},1024)]),default:t(()=>[l(p,{type:"primary",size:"small",plain:""},{default:t(()=>[e[38]||(e[38]=s(" 订单操作",-1)),l(J,{class:"el-icon--right"},{default:t(()=>[l(K(Be))]),_:1})]),_:1})]),_:2},1032,["onCommand"])):je("",!0)]),_:1},8,["detail-loader"]),l(U,{modelValue:B.value,"onUpdate:modelValue":e[4]||(e[4]=a=>B.value=a),title:ce.value,width:"480px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[1]||(e[1]=a=>B.value=!1)},{default:t(()=>[...e[39]||(e[39]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:e[2]||(e[2]=a=>te("approve"))},{default:t(()=>[...e[40]||(e[40]=[s("同意通过",-1)])]),_:1},8,["loading"]),l(p,{type:"danger",loading:o.value,onClick:e[3]||(e[3]=a=>te("reject"))},{default:t(()=>[...e[41]||(e[41]=[s("驳回",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"通过时审核意见可不填;驳回时必须填写明确原因。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(v,{modelValue:R.value,"onUpdate:modelValue":e[0]||(e[0]=a=>R.value=a),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"请输入审核意见"},null,8,["modelValue"])]),_:1},8,["modelValue","title"]),l(U,{modelValue:F.value,"onUpdate:modelValue":e[8]||(e[8]=a=>F.value=a),title:"修改快递单号",width:"440px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[7]||(e[7]=a=>F.value=!1)},{default:t(()=>[...e[42]||(e[42]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:ne},{default:t(()=>[...e[43]||(e[43]=[s("保存",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(T,{"label-width":"92px",onSubmit:de(ne,["prevent"])},{default:t(()=>[l(i,{label:"承运商"},{default:t(()=>[l(A,{modelValue:x.express_company,"onUpdate:modelValue":e[5]||(e[5]=a=>x.express_company=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C($,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"快递单号",required:""},{default:t(()=>[l(v,{modelValue:x.tracking_number,"onUpdate:modelValue":e[6]||(e[6]=a=>x.tracking_number=a),maxlength:"80",clearable:"",placeholder:"请输入快递单号"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:M.value,"onUpdate:modelValue":e[12]||(e[12]=a=>M.value=a),title:"确认发货",width:"460px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[11]||(e[11]=a=>M.value=!1)},{default:t(()=>[...e[44]||(e[44]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:oe},{default:t(()=>[...e[45]||(e[45]=[s("确认发货",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"确认后订单将进入“已发货”,请先核对发货方式和快递信息。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(T,{"label-width":"92px",onSubmit:de(oe,["prevent"])},{default:t(()=>[l(i,{label:"发货方式"},{default:t(()=>[l(Ce,{type:c.ship_mode==="direct"?"warning":"success",effect:"plain"},{default:t(()=>[s(ue(c.ship_mode==="direct"?"洛阳药房":"甘草药房"),1)]),_:1},8,["type"])]),_:1}),l(i,{label:"承运商"},{default:t(()=>[l(A,{modelValue:c.express_company,"onUpdate:modelValue":e[9]||(e[9]=a=>c.express_company=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C($,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"快递单号",required:""},{default:t(()=>[l(v,{modelValue:c.tracking_number,"onUpdate:modelValue":e[10]||(e[10]=a=>c.tracking_number=a),maxlength:"80",clearable:"",placeholder:"请输入快递单号"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:S.value,"onUpdate:modelValue":e[23]||(e[23]=a=>S.value=a),title:"编辑订单",width:"680px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[22]||(e[22]=a=>S.value=!1)},{default:t(()=>[...e[46]||(e[46]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,disabled:H.value,onClick:ke},{default:t(()=>[...e[47]||(e[47]=[s("保存",-1)])]),_:1},8,["loading","disabled"])]),default:t(()=>[Ze((g(),Q(T,{"label-width":"104px",class:"order-edit-form"},{default:t(()=>[X("div",wa,[l(i,{label:"收货人",required:""},{default:t(()=>[l(v,{modelValue:n.recipient_name,"onUpdate:modelValue":e[13]||(e[13]=a=>n.recipient_name=a),maxlength:"50"},null,8,["modelValue"])]),_:1}),l(i,{label:"收货手机",required:""},{default:t(()=>[l(v,{modelValue:n.recipient_phone,"onUpdate:modelValue":e[14]||(e[14]=a=>n.recipient_phone=a),maxlength:"20"},null,8,["modelValue"])]),_:1}),l(i,{label:"费用类别",required:""},{default:t(()=>[l(A,{modelValue:n.fee_type,"onUpdate:modelValue":e[15]||(e[15]=a=>n.fee_type=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C(me,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"订单金额",required:""},{default:t(()=>[l(Z,{modelValue:n.amount,"onUpdate:modelValue":e[16]||(e[16]=a=>n.amount=a),min:0,precision:2,step:10,class:"w-full"},null,8,["modelValue"])]),_:1})]),l(i,{label:"收货地址",required:""},{default:t(()=>[l(v,{modelValue:n.shipping_address,"onUpdate:modelValue":e[17]||(e[17]=a=>n.shipping_address=a),maxlength:"500"},null,8,["modelValue"])]),_:1}),X("div",Va,[l(i,{label:"承运商"},{default:t(()=>[l(A,{modelValue:n.express_company,"onUpdate:modelValue":e[18]||(e[18]=a=>n.express_company=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C($,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"快递单号"},{default:t(()=>[l(v,{modelValue:n.tracking_number,"onUpdate:modelValue":e[19]||(e[19]=a=>n.tracking_number=a),maxlength:"80",clearable:""},null,8,["modelValue"])]),_:1})]),l(i,{label:"医助备注"},{default:t(()=>[l(v,{modelValue:n.remark_assistant,"onUpdate:modelValue":e[20]||(e[20]=a=>n.remark_assistant=a),type:"textarea",rows:2,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"药房备注"},{default:t(()=>[l(v,{modelValue:n.remark_extra,"onUpdate:modelValue":e[21]||(e[21]=a=>n.remark_extra=a),type:"textarea",rows:2,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(h,{title:"保存后会沿用原订单编辑规则;非已发货订单的支付审核将重新变为待审核。",type:"info",closable:!1,"show-icon":""})]),_:1})),[[qe,H.value]])]),_:1},8,["modelValue"]),l(U,{modelValue:j.value,"onUpdate:modelValue":e[30]||(e[30]=a=>j.value=a),title:"补齐支付单",width:"520px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[29]||(e[29]=a=>j.value=!1)},{default:t(()=>[...e[51]||(e[51]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:we},{default:t(()=>[...e[52]||(e[52]=[s("确认新增",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:`订单金额 ¥${ae(d.value.amount)},已关联支付 ¥${ae(d.value.linked_pay_paid_total)}`,type:"info",closable:!1,"show-icon":"",class:"mb-4"},null,8,["title"]),l(T,{"label-width":"108px"},{default:t(()=>[l(i,{label:"支付单类型"},{default:t(()=>[l(A,{modelValue:u.order_type,"onUpdate:modelValue":e[24]||(e[24]=a=>u.order_type=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C(fe,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"创建方式"},{default:t(()=>[l(Se,{modelValue:u.pay_create_type,"onUpdate:modelValue":e[25]||(e[25]=a=>u.pay_create_type=a)},{default:t(()=>[l(ie,{value:"fubei"},{default:t(()=>[...e[48]||(e[48]=[s("付呗支付",-1)])]),_:1}),l(ie,{value:"express_cod"},{default:t(()=>[...e[49]||(e[49]=[s("快递代收",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"补齐金额",required:""},{default:t(()=>[l(Z,{modelValue:u.pay_amount,"onUpdate:modelValue":e[26]||(e[26]=a=>u.pay_amount=a),min:0,precision:2,step:10,class:"w-full"},null,8,["modelValue"])]),_:1}),l(i,{label:"支付备注"},{default:t(()=>[l(v,{modelValue:u.pay_remark,"onUpdate:modelValue":e[27]||(e[27]=a=>u.pay_remark=a),type:"textarea",rows:3,maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"完单申请"},{default:t(()=>[l(he,{modelValue:u.completion_request,"onUpdate:modelValue":e[28]||(e[28]=a=>u.completion_request=a),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[50]||(e[50]=X("span",{class:"form-tip"},"同时提交完单申请",-1))]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:I.value,"onUpdate:modelValue":e[33]||(e[33]=a=>I.value=a),title:"完成订单",width:"480px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[32]||(e[32]=a=>I.value=!1)},{default:t(()=>[...e[53]||(e[53]=[s("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o.value,onClick:Ve},{default:t(()=>[...e[54]||(e[54]=[s("确认完成",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"请选择真实履约结果。退款必须使用单独的“退款”操作。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(T,{"label-width":"100px"},{default:t(()=>[l(i,{label:"结案状态",required:""},{default:t(()=>[l(A,{modelValue:G.value,"onUpdate:modelValue":e[31]||(e[31]=a=>G.value=a),class:"w-full"},{default:t(()=>[(g(),N(P,null,C(_e,a=>l(q,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),l(U,{modelValue:L.value,"onUpdate:modelValue":e[37]||(e[37]=a=>L.value=a),title:"订单退款",width:"500px","append-to-body":"","destroy-on-close":""},{footer:t(()=>[l(p,{onClick:e[36]||(e[36]=a=>L.value=!1)},{default:t(()=>[...e[55]||(e[55]=[s("取消",-1)])]),_:1}),l(p,{type:"danger",loading:o.value,onClick:xe},{default:t(()=>[...e[56]||(e[56]=[s("确认退款",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(h,{title:"退款会同步更新关联支付单和订单金额;退款金额留空时按系统计算的最大可退金额处理。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),l(T,{"label-width":"100px"},{default:t(()=>[l(i,{label:"退款原因",required:""},{default:t(()=>[l(v,{modelValue:k.reason,"onUpdate:modelValue":e[34]||(e[34]=a=>k.reason=a),type:"textarea",rows:3,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"退款金额"},{default:t(()=>[l(Z,{modelValue:k.refund_amount,"onUpdate:modelValue":e[35]||(e[35]=a=>k.refund_amount=a),min:0,precision:2,step:10,class:"w-full",placeholder:"留空则退最大可退金额"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)}}}),Oa=ta(xa,[["__scopeId","data-v-3c102918"]]),ha=Object.freeze(Object.defineProperty({__proto__:null,default:Oa},Symbol.toStringTag,{value:"Module"}));export{Oa as O,ha as a,ka as c,pe as m}; diff --git a/server/public/admin/assets/OrderPanel-BoY6f2Ur.js b/server/public/admin/assets/OrderPanel-Bkt8MtV-.js similarity index 97% rename from server/public/admin/assets/OrderPanel-BoY6f2Ur.js rename to server/public/admin/assets/OrderPanel-Bkt8MtV-.js index 663273ccc..4bffa277c 100644 --- a/server/public/admin/assets/OrderPanel-BoY6f2Ur.js +++ b/server/public/admin/assets/OrderPanel-Bkt8MtV-.js @@ -1 +1 @@ -import{o as re,p as E,ap as de,q as p,r as b,s as t,v as n,D as a,u as m,cQ as ue,w as me,L as d,T as i,bz as pe,K as _e,F,G as O,be as fe,bf as ce,bc as be,bB as $,aA as ge,az as ve,ae as T,ac as ye,bn as ke,O as P,bl as we,bm as Ce,P as S,$ as xe,cm as Ne,Z as Ve,_ as he,bC as De,bk as Ee,C as Fe,M as Y,aC as Oe}from"./.pnpm-CyuAWpdG.js";import{_ as Pe}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{u as Re}from"./usePaging-CghUEVfD.js";import{q as je}from"./first_visit-BxZL4Ke4.js";import{c as Te,m as H,O as Ae}from"./OrderActionHost-KWccaYJI.js";import{_ as Be}from"./index-Dxvz9lb1.js";import"./PrescriptionOrderDetailDrawer-v90LlSLZ.js";import"./tcm-QAkeqQ9Q.js";import"./prescription-order-utils-CXfs2Bra.js";import"./perm-DOfZAzJJ.js";const ze={class:"embedded-panel"},Ie={class:"panel-toolbar"},Le={class:"toolbar-actions"},Me={class:"scope-chip"},Ue={class:"filter-panel"},$e={class:"filter-heading"},Se={class:"status-filter-list"},Ye={class:"status-filter-row"},He={class:"status-filter-row"},Ke={class:"status-filter-row status-filter-row--fulfillment"},qe={class:"search-filter-row"},Ge={class:"filter-field filter-field--keyword"},Qe={class:"filter-field filter-field--date"},Ze={class:"filter-actions"},Je={class:"metric-grid"},We={class:"metric-card"},Xe={class:"metric-card"},et={class:"metric-card metric-warning"},tt={class:"metric-card metric-success"},lt={class:"primary-cell"},nt={class:"primary-cell"},at={class:"id-stack"},st={key:0,class:"amount"},ot={key:1,class:"amount-excluded"},it={class:"order-actions"},rt={class:"pagination-wrap"},dt=re({__name:"OrderPanel",emits:["openDiagnosis"],setup(ut,{expose:K,emit:q}){const G=q,R=Y(),j=Y([]),o=Oe({keyword:"",prescription_audit_status:"",payment_slip_audit_status:"",fulfillment_status:"",start_date:"",end_date:""}),A=[{label:"全部",value:""},{label:"待审核",value:0},{label:"已通过",value:1},{label:"已驳回",value:2}],Q=[{label:"全部",value:""},{label:"待双审通过",value:1},{label:"待发货",value:2},{label:"已完成",value:3},{label:"已取消",value:4},{label:"已发货",value:5},{label:"已签收",value:6},{label:"进行中",value:7},{label:"暂不制药",value:8},{label:"拒收",value:9},{label:"退款",value:10},{label:"保留药方",value:11},{label:"制药缓发",value:12}],{pager:u,getLists:C,resetPage:x}=Re({fetchFun:je,params:o,size:15,firstLoading:!0}),g=E(()=>{var s,e,f,_,y,k,N,V,r,w,h,D;return{orders:Number(((e=(s=u.extend)==null?void 0:s.summary)==null?void 0:e.orders)||0),amount:Number(((_=(f=u.extend)==null?void 0:f.summary)==null?void 0:_.amount)||0),pending:Number(((k=(y=u.extend)==null?void 0:y.summary)==null?void 0:k.pending)||0),completed:Number(((V=(N=u.extend)==null?void 0:N.summary)==null?void 0:V.completed)||0),rejected:Number(((w=(r=u.extend)==null?void 0:r.summary)==null?void 0:w.rejected)||0),rejectionRate:Number(((D=(h=u.extend)==null?void 0:h.summary)==null?void 0:D.rejection_rate)||0)}}),Z=E(()=>{var s,e;return((e=(s=u.extend)==null?void 0:s.scope)==null?void 0:e.label)||"按权限加载"}),J=E(()=>!!(o.keyword.trim()||o.prescription_audit_status!==""||o.payment_slip_audit_status!==""||o.fulfillment_status!==""||o.start_date||o.end_date));function v(){x()}function B(){return C()}function W(s){o.start_date=(s==null?void 0:s[0])||"",o.end_date=(s==null?void 0:s[1])||(s==null?void 0:s[0])||"",x()}function z(){o.keyword="",o.prescription_audit_status="",o.payment_slip_audit_status="",o.fulfillment_status="",o.start_date="",o.end_date="",j.value=[],x()}function I(){o.fulfillment_status=Number(o.fulfillment_status)===9?"":9,x()}function L(s){return Number(s||0).toFixed(2)}function X(s){const e=Number(s||0);return`${Number.isInteger(e)?e.toFixed(0):e.toFixed(2)}%`}function M(s){return Number(s)===1?"success":Number(s)===2?"danger":"warning"}function ee(s){const e=Number(s);return[3,6].includes(e)?"success":[4,9,10].includes(e)?"danger":[2,5,7].includes(e)?"primary":"warning"}function te({row:s}){return[2].includes(Number(s.prescription_audit_status))||[2].includes(Number(s.payment_slip_audit_status))?"order-row-risk":[3,6].includes(Number(s.fulfillment_status))?"order-row-done":""}function le(s,e){var f;(f=R.value)==null||f.openAction(s,e)}return K({refresh:B,loading:E(()=>u.loading)}),de(C),(s,e)=>{const f=me,_=_e,y=fe,k=ce,N=ge,V=ve,r=we,w=Ce,h=he,D=Ve,ne=xe,ae=De,se=Ee,oe=Pe,ie=ke;return p(),b("section",ze,[t("div",Ie,[e[7]||(e[7]=t("div",null,[t("h2",null,"订单管理"),t("p",null,"展示当前患者范围内的处方业务订单,订单创建人不参与数据归属判断")],-1)),t("div",Le,[t("span",Me,[n(f,null,{default:a(()=>[n(m(ue))]),_:1}),d(i(Z.value),1)]),n(_,{icon:m(pe),loading:m(u).loading,onClick:B},{default:a(()=>[...e[6]||(e[6]=[d("刷新",-1)])]),_:1},8,["icon","loading"])])]),t("div",Ue,[t("div",$e,[e[9]||(e[9]=t("div",null,[t("h3",null,"订单检索"),t("p",null,"审核与履约状态直接展示,点击后立即筛选")],-1)),n(_,{link:"",disabled:!J.value,onClick:z},{default:a(()=>[...e[8]||(e[8]=[d("清空全部条件",-1)])]),_:1},8,["disabled"])]),t("div",Se,[t("div",Ye,[e[10]||(e[10]=t("span",{class:"filter-label"},"处方审核",-1)),n(k,{modelValue:o.prescription_audit_status,"onUpdate:modelValue":e[0]||(e[0]=l=>o.prescription_audit_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(A,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),t("div",He,[e[11]||(e[11]=t("span",{class:"filter-label"},"支付单审核",-1)),n(k,{modelValue:o.payment_slip_audit_status,"onUpdate:modelValue":e[1]||(e[1]=l=>o.payment_slip_audit_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(A,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),t("div",Ke,[e[12]||(e[12]=t("span",{class:"filter-label"},"履约状态",-1)),n(k,{modelValue:o.fulfillment_status,"onUpdate:modelValue":e[2]||(e[2]=l=>o.fulfillment_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(Q,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])])]),t("div",qe,[t("label",Ge,[e[13]||(e[13]=t("span",null,"关键词",-1)),n(N,{modelValue:o.keyword,"onUpdate:modelValue":e[3]||(e[3]=l=>o.keyword=l),clearable:"","prefix-icon":m($),placeholder:"订单号 / 患者 / 手机号 / 处方ID / 诊单ID",onKeyup:be(v,["enter"]),onClear:v},null,8,["modelValue","prefix-icon"])]),t("label",Qe,[e[14]||(e[14]=t("span",null,"创建时间",-1)),n(V,{modelValue:j.value,"onUpdate:modelValue":e[4]||(e[4]=l=>j.value=l),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",clearable:"",onChange:W},null,8,["modelValue"])]),t("div",Ze,[n(_,{type:"primary",icon:m($),onClick:v},{default:a(()=>[...e[15]||(e[15]=[d("查询",-1)])]),_:1},8,["icon"]),n(_,{onClick:z},{default:a(()=>[...e[16]||(e[16]=[d("重置",-1)])]),_:1})])])]),t("div",Je,[t("div",We,[e[17]||(e[17]=t("span",null,"订单数量",-1)),t("strong",null,i(g.value.orders),1),e[18]||(e[18]=t("small",null,"笔",-1))]),t("div",Xe,[e[19]||(e[19]=t("span",null,"有效订单金额",-1)),t("strong",null,"¥"+i(L(g.value.amount)),1),e[20]||(e[20]=t("small",null,"排除取消、拒收及退款",-1))]),t("div",et,[e[21]||(e[21]=t("span",null,"待审核",-1)),t("strong",null,i(g.value.pending),1),e[22]||(e[22]=t("small",null,"任一审核待处理",-1))]),t("div",tt,[e[23]||(e[23]=t("span",null,"已完成 / 签收",-1)),t("strong",null,i(g.value.completed),1),e[24]||(e[24]=t("small",null,"笔",-1))]),t("button",{class:T(["metric-card metric-card--interactive metric-rejected",{"is-active":Number(o.fulfillment_status)===9}]),type:"button",onClick:I},[e[25]||(e[25]=t("span",null,"拒收订单",-1)),t("strong",null,i(g.value.rejected),1),e[26]||(e[26]=t("small",null,"笔 · 点击查看明细",-1))],2),t("button",{class:T(["metric-card metric-card--interactive metric-rejected-rate",{"is-active":Number(o.fulfillment_status)===9}]),type:"button",onClick:I},[e[27]||(e[27]=t("span",null,"拒收率",-1)),t("strong",null,i(X(g.value.rejectionRate)),1),e[28]||(e[28]=t("small",null,"拒收订单 ÷ 同检索范围订单",-1))],2)]),ye((p(),P(se,{data:m(u).lists,class:"embedded-table","row-class-name":te},{empty:a(()=>[n(ae,{description:"当前范围内暂无订单"})]),default:a(()=>[n(r,{label:"订单","min-width":"174",fixed:"left"},{default:a(({row:l})=>[t("div",lt,[t("strong",null,i(l.order_no||"—"),1),t("span",null,"#"+i(l.id)+" · "+i(l.fee_type_text),1)])]),_:1}),n(r,{label:"患者","min-width":"150"},{default:a(({row:l})=>[t("div",nt,[t("strong",null,i(l.patient_name||l.recipient_name||"—"),1),t("span",null,i(l.patient_phone_masked||l.recipient_phone_masked||"无手机号"),1)])]),_:1}),n(r,{label:"处方 / 诊单","min-width":"118"},{default:a(({row:l})=>[t("div",at,[t("span",null,"处方 #"+i(l.prescription_id||"—"),1),t("span",null,"诊单 #"+i(l.diagnosis_id||"—"),1)])]),_:1}),n(r,{label:"有效金额",width:"118",align:"right"},{default:a(({row:l})=>[l.amount_included?(p(),b("strong",st,"¥"+i(L(l.effective_amount)),1)):(p(),b("span",ot,i(l.amount_exclusion_text||"不计入"),1))]),_:1}),n(r,{label:"处方审核",width:"104",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:M(l.prescription_audit_status),effect:"light"},{default:a(()=>[d(i(l.prescription_audit_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"支付单审核",width:"112",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:M(l.payment_slip_audit_status),effect:"light"},{default:a(()=>[d(i(l.payment_slip_audit_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"履约状态",width:"112",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:ee(l.fulfillment_status),effect:"light"},{default:a(()=>[d(i(l.fulfillment_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"关联支付单",width:"100",align:"center"},{default:a(({row:l})=>[d(i(Number(l.linked_pay_order_count)>0?`${l.linked_pay_order_count} 笔`:"—"),1)]),_:1}),n(r,{prop:"assistant_name",label:"归属助理","min-width":"100","show-overflow-tooltip":""}),n(r,{prop:"doctor_name",label:"开方人","min-width":"90","show-overflow-tooltip":""}),n(r,{prop:"creator_name",label:"创建人","min-width":"90","show-overflow-tooltip":""}),n(r,{prop:"create_time_text",label:"创建时间","min-width":"145"}),n(r,{label:"操作",width:"190",fixed:"right"},{default:a(({row:l})=>[t("div",it,[n(_,{type:"primary",link:"",onClick:c=>G("openDiagnosis",l)},{default:a(()=>[...e[29]||(e[29]=[d("诊单",-1)])]),_:1},8,["onClick"]),m(Te)()?(p(),P(_,{key:0,type:"primary",link:"",onClick:c=>{var U;return(U=R.value)==null?void 0:U.openDetail(l)}},{default:a(()=>[...e[30]||(e[30]=[d("详情",-1)])]),_:1},8,["onClick"])):S("",!0),m(H)(l).length?(p(),P(ne,{key:1,trigger:"click",onCommand:c=>le(l,c)},{dropdown:a(()=>[n(D,null,{default:a(()=>[(p(!0),b(F,null,O(m(H)(l),c=>(p(),P(h,{key:c.key,command:c.key,class:T({"danger-menu-item":c.danger})},{default:a(()=>[d(i(c.label),1)]),_:2},1032,["command","class"]))),128))]),_:2},1024)]),default:a(()=>[n(_,{type:"primary",link:""},{default:a(()=>[e[31]||(e[31]=d(" 操作",-1)),n(f,{class:"el-icon--right"},{default:a(()=>[n(m(Ne))]),_:1})]),_:1})]),_:2},1032,["onCommand"])):S("",!0)])]),_:1})]),_:1},8,["data"])),[[ie,m(u).loading]]),t("div",rt,[n(oe,{modelValue:m(u),"onUpdate:modelValue":e[5]||(e[5]=l=>Fe(u)?u.value=l:null),onChange:m(C)},null,8,["modelValue","onChange"])]),n(Ae,{ref_key:"orderActionHostRef",ref:R,onChanged:m(C)},null,8,["onChanged"])])}}}),wt=Be(dt,[["__scopeId","data-v-4c5a29ab"]]);export{wt as default}; +import{o as re,p as E,ap as de,q as p,r as b,s as t,v as n,D as a,u as m,cQ as ue,w as me,L as d,T as i,bz as pe,K as _e,F,G as O,be as fe,bf as ce,bc as be,bB as $,aA as ge,az as ve,ae as T,ac as ye,bn as ke,O as P,bl as we,bm as Ce,P as S,$ as xe,cm as Ne,Z as Ve,_ as he,bC as De,bk as Ee,C as Fe,M as Y,aC as Oe}from"./.pnpm-CyuAWpdG.js";import{_ as Pe}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{u as Re}from"./usePaging-CghUEVfD.js";import{q as je}from"./first_visit-B5IgLifl.js";import{c as Te,m as H,O as Ae}from"./OrderActionHost-1ZsxBlo_.js";import{_ as Be}from"./index-Bkarz3gO.js";import"./PrescriptionOrderDetailDrawer-CX7YbddA.js";import"./tcm-BSADvQNg.js";import"./prescription-order-utils-CXfs2Bra.js";import"./perm-CHCBwnFR.js";const ze={class:"embedded-panel"},Ie={class:"panel-toolbar"},Le={class:"toolbar-actions"},Me={class:"scope-chip"},Ue={class:"filter-panel"},$e={class:"filter-heading"},Se={class:"status-filter-list"},Ye={class:"status-filter-row"},He={class:"status-filter-row"},Ke={class:"status-filter-row status-filter-row--fulfillment"},qe={class:"search-filter-row"},Ge={class:"filter-field filter-field--keyword"},Qe={class:"filter-field filter-field--date"},Ze={class:"filter-actions"},Je={class:"metric-grid"},We={class:"metric-card"},Xe={class:"metric-card"},et={class:"metric-card metric-warning"},tt={class:"metric-card metric-success"},lt={class:"primary-cell"},nt={class:"primary-cell"},at={class:"id-stack"},st={key:0,class:"amount"},ot={key:1,class:"amount-excluded"},it={class:"order-actions"},rt={class:"pagination-wrap"},dt=re({__name:"OrderPanel",emits:["openDiagnosis"],setup(ut,{expose:K,emit:q}){const G=q,R=Y(),j=Y([]),o=Oe({keyword:"",prescription_audit_status:"",payment_slip_audit_status:"",fulfillment_status:"",start_date:"",end_date:""}),A=[{label:"全部",value:""},{label:"待审核",value:0},{label:"已通过",value:1},{label:"已驳回",value:2}],Q=[{label:"全部",value:""},{label:"待双审通过",value:1},{label:"待发货",value:2},{label:"已完成",value:3},{label:"已取消",value:4},{label:"已发货",value:5},{label:"已签收",value:6},{label:"进行中",value:7},{label:"暂不制药",value:8},{label:"拒收",value:9},{label:"退款",value:10},{label:"保留药方",value:11},{label:"制药缓发",value:12}],{pager:u,getLists:C,resetPage:x}=Re({fetchFun:je,params:o,size:15,firstLoading:!0}),g=E(()=>{var s,e,f,_,y,k,N,V,r,w,h,D;return{orders:Number(((e=(s=u.extend)==null?void 0:s.summary)==null?void 0:e.orders)||0),amount:Number(((_=(f=u.extend)==null?void 0:f.summary)==null?void 0:_.amount)||0),pending:Number(((k=(y=u.extend)==null?void 0:y.summary)==null?void 0:k.pending)||0),completed:Number(((V=(N=u.extend)==null?void 0:N.summary)==null?void 0:V.completed)||0),rejected:Number(((w=(r=u.extend)==null?void 0:r.summary)==null?void 0:w.rejected)||0),rejectionRate:Number(((D=(h=u.extend)==null?void 0:h.summary)==null?void 0:D.rejection_rate)||0)}}),Z=E(()=>{var s,e;return((e=(s=u.extend)==null?void 0:s.scope)==null?void 0:e.label)||"按权限加载"}),J=E(()=>!!(o.keyword.trim()||o.prescription_audit_status!==""||o.payment_slip_audit_status!==""||o.fulfillment_status!==""||o.start_date||o.end_date));function v(){x()}function B(){return C()}function W(s){o.start_date=(s==null?void 0:s[0])||"",o.end_date=(s==null?void 0:s[1])||(s==null?void 0:s[0])||"",x()}function z(){o.keyword="",o.prescription_audit_status="",o.payment_slip_audit_status="",o.fulfillment_status="",o.start_date="",o.end_date="",j.value=[],x()}function I(){o.fulfillment_status=Number(o.fulfillment_status)===9?"":9,x()}function L(s){return Number(s||0).toFixed(2)}function X(s){const e=Number(s||0);return`${Number.isInteger(e)?e.toFixed(0):e.toFixed(2)}%`}function M(s){return Number(s)===1?"success":Number(s)===2?"danger":"warning"}function ee(s){const e=Number(s);return[3,6].includes(e)?"success":[4,9,10].includes(e)?"danger":[2,5,7].includes(e)?"primary":"warning"}function te({row:s}){return[2].includes(Number(s.prescription_audit_status))||[2].includes(Number(s.payment_slip_audit_status))?"order-row-risk":[3,6].includes(Number(s.fulfillment_status))?"order-row-done":""}function le(s,e){var f;(f=R.value)==null||f.openAction(s,e)}return K({refresh:B,loading:E(()=>u.loading)}),de(C),(s,e)=>{const f=me,_=_e,y=fe,k=ce,N=ge,V=ve,r=we,w=Ce,h=he,D=Ve,ne=xe,ae=De,se=Ee,oe=Pe,ie=ke;return p(),b("section",ze,[t("div",Ie,[e[7]||(e[7]=t("div",null,[t("h2",null,"订单管理"),t("p",null,"展示当前患者范围内的处方业务订单,订单创建人不参与数据归属判断")],-1)),t("div",Le,[t("span",Me,[n(f,null,{default:a(()=>[n(m(ue))]),_:1}),d(i(Z.value),1)]),n(_,{icon:m(pe),loading:m(u).loading,onClick:B},{default:a(()=>[...e[6]||(e[6]=[d("刷新",-1)])]),_:1},8,["icon","loading"])])]),t("div",Ue,[t("div",$e,[e[9]||(e[9]=t("div",null,[t("h3",null,"订单检索"),t("p",null,"审核与履约状态直接展示,点击后立即筛选")],-1)),n(_,{link:"",disabled:!J.value,onClick:z},{default:a(()=>[...e[8]||(e[8]=[d("清空全部条件",-1)])]),_:1},8,["disabled"])]),t("div",Se,[t("div",Ye,[e[10]||(e[10]=t("span",{class:"filter-label"},"处方审核",-1)),n(k,{modelValue:o.prescription_audit_status,"onUpdate:modelValue":e[0]||(e[0]=l=>o.prescription_audit_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(A,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),t("div",He,[e[11]||(e[11]=t("span",{class:"filter-label"},"支付单审核",-1)),n(k,{modelValue:o.payment_slip_audit_status,"onUpdate:modelValue":e[1]||(e[1]=l=>o.payment_slip_audit_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(A,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),t("div",Ke,[e[12]||(e[12]=t("span",{class:"filter-label"},"履约状态",-1)),n(k,{modelValue:o.fulfillment_status,"onUpdate:modelValue":e[2]||(e[2]=l=>o.fulfillment_status=l),onChange:v},{default:a(()=>[(p(),b(F,null,O(Q,l=>n(y,{key:String(l.value),value:l.value},{default:a(()=>[d(i(l.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])])]),t("div",qe,[t("label",Ge,[e[13]||(e[13]=t("span",null,"关键词",-1)),n(N,{modelValue:o.keyword,"onUpdate:modelValue":e[3]||(e[3]=l=>o.keyword=l),clearable:"","prefix-icon":m($),placeholder:"订单号 / 患者 / 手机号 / 处方ID / 诊单ID",onKeyup:be(v,["enter"]),onClear:v},null,8,["modelValue","prefix-icon"])]),t("label",Qe,[e[14]||(e[14]=t("span",null,"创建时间",-1)),n(V,{modelValue:j.value,"onUpdate:modelValue":e[4]||(e[4]=l=>j.value=l),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",clearable:"",onChange:W},null,8,["modelValue"])]),t("div",Ze,[n(_,{type:"primary",icon:m($),onClick:v},{default:a(()=>[...e[15]||(e[15]=[d("查询",-1)])]),_:1},8,["icon"]),n(_,{onClick:z},{default:a(()=>[...e[16]||(e[16]=[d("重置",-1)])]),_:1})])])]),t("div",Je,[t("div",We,[e[17]||(e[17]=t("span",null,"订单数量",-1)),t("strong",null,i(g.value.orders),1),e[18]||(e[18]=t("small",null,"笔",-1))]),t("div",Xe,[e[19]||(e[19]=t("span",null,"有效订单金额",-1)),t("strong",null,"¥"+i(L(g.value.amount)),1),e[20]||(e[20]=t("small",null,"排除取消、拒收及退款",-1))]),t("div",et,[e[21]||(e[21]=t("span",null,"待审核",-1)),t("strong",null,i(g.value.pending),1),e[22]||(e[22]=t("small",null,"任一审核待处理",-1))]),t("div",tt,[e[23]||(e[23]=t("span",null,"已完成 / 签收",-1)),t("strong",null,i(g.value.completed),1),e[24]||(e[24]=t("small",null,"笔",-1))]),t("button",{class:T(["metric-card metric-card--interactive metric-rejected",{"is-active":Number(o.fulfillment_status)===9}]),type:"button",onClick:I},[e[25]||(e[25]=t("span",null,"拒收订单",-1)),t("strong",null,i(g.value.rejected),1),e[26]||(e[26]=t("small",null,"笔 · 点击查看明细",-1))],2),t("button",{class:T(["metric-card metric-card--interactive metric-rejected-rate",{"is-active":Number(o.fulfillment_status)===9}]),type:"button",onClick:I},[e[27]||(e[27]=t("span",null,"拒收率",-1)),t("strong",null,i(X(g.value.rejectionRate)),1),e[28]||(e[28]=t("small",null,"拒收订单 ÷ 同检索范围订单",-1))],2)]),ye((p(),P(se,{data:m(u).lists,class:"embedded-table","row-class-name":te},{empty:a(()=>[n(ae,{description:"当前范围内暂无订单"})]),default:a(()=>[n(r,{label:"订单","min-width":"174",fixed:"left"},{default:a(({row:l})=>[t("div",lt,[t("strong",null,i(l.order_no||"—"),1),t("span",null,"#"+i(l.id)+" · "+i(l.fee_type_text),1)])]),_:1}),n(r,{label:"患者","min-width":"150"},{default:a(({row:l})=>[t("div",nt,[t("strong",null,i(l.patient_name||l.recipient_name||"—"),1),t("span",null,i(l.patient_phone_masked||l.recipient_phone_masked||"无手机号"),1)])]),_:1}),n(r,{label:"处方 / 诊单","min-width":"118"},{default:a(({row:l})=>[t("div",at,[t("span",null,"处方 #"+i(l.prescription_id||"—"),1),t("span",null,"诊单 #"+i(l.diagnosis_id||"—"),1)])]),_:1}),n(r,{label:"有效金额",width:"118",align:"right"},{default:a(({row:l})=>[l.amount_included?(p(),b("strong",st,"¥"+i(L(l.effective_amount)),1)):(p(),b("span",ot,i(l.amount_exclusion_text||"不计入"),1))]),_:1}),n(r,{label:"处方审核",width:"104",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:M(l.prescription_audit_status),effect:"light"},{default:a(()=>[d(i(l.prescription_audit_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"支付单审核",width:"112",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:M(l.payment_slip_audit_status),effect:"light"},{default:a(()=>[d(i(l.payment_slip_audit_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"履约状态",width:"112",align:"center"},{default:a(({row:l})=>[n(w,{size:"small",type:ee(l.fulfillment_status),effect:"light"},{default:a(()=>[d(i(l.fulfillment_text),1)]),_:2},1032,["type"])]),_:1}),n(r,{label:"关联支付单",width:"100",align:"center"},{default:a(({row:l})=>[d(i(Number(l.linked_pay_order_count)>0?`${l.linked_pay_order_count} 笔`:"—"),1)]),_:1}),n(r,{prop:"assistant_name",label:"归属助理","min-width":"100","show-overflow-tooltip":""}),n(r,{prop:"doctor_name",label:"开方人","min-width":"90","show-overflow-tooltip":""}),n(r,{prop:"creator_name",label:"创建人","min-width":"90","show-overflow-tooltip":""}),n(r,{prop:"create_time_text",label:"创建时间","min-width":"145"}),n(r,{label:"操作",width:"190",fixed:"right"},{default:a(({row:l})=>[t("div",it,[n(_,{type:"primary",link:"",onClick:c=>G("openDiagnosis",l)},{default:a(()=>[...e[29]||(e[29]=[d("诊单",-1)])]),_:1},8,["onClick"]),m(Te)()?(p(),P(_,{key:0,type:"primary",link:"",onClick:c=>{var U;return(U=R.value)==null?void 0:U.openDetail(l)}},{default:a(()=>[...e[30]||(e[30]=[d("详情",-1)])]),_:1},8,["onClick"])):S("",!0),m(H)(l).length?(p(),P(ne,{key:1,trigger:"click",onCommand:c=>le(l,c)},{dropdown:a(()=>[n(D,null,{default:a(()=>[(p(!0),b(F,null,O(m(H)(l),c=>(p(),P(h,{key:c.key,command:c.key,class:T({"danger-menu-item":c.danger})},{default:a(()=>[d(i(c.label),1)]),_:2},1032,["command","class"]))),128))]),_:2},1024)]),default:a(()=>[n(_,{type:"primary",link:""},{default:a(()=>[e[31]||(e[31]=d(" 操作",-1)),n(f,{class:"el-icon--right"},{default:a(()=>[n(m(Ne))]),_:1})]),_:1})]),_:2},1032,["onCommand"])):S("",!0)])]),_:1})]),_:1},8,["data"])),[[ie,m(u).loading]]),t("div",rt,[n(oe,{modelValue:m(u),"onUpdate:modelValue":e[5]||(e[5]=l=>Fe(u)?u.value=l:null),onChange:m(C)},null,8,["modelValue","onChange"])]),n(Ae,{ref_key:"orderActionHostRef",ref:R,onChanged:m(C)},null,8,["onChanged"])])}}}),wt=Be(dt,[["__scopeId","data-v-4c5a29ab"]]);export{wt as default}; diff --git a/server/public/admin/assets/PaibanPanel-Ce3FolrR.js b/server/public/admin/assets/PaibanPanel-DaOXGMtb.js similarity index 97% rename from server/public/admin/assets/PaibanPanel-Ce3FolrR.js rename to server/public/admin/assets/PaibanPanel-DaOXGMtb.js index b39090893..0195c7b91 100644 --- a/server/public/admin/assets/PaibanPanel-Ce3FolrR.js +++ b/server/public/admin/assets/PaibanPanel-DaOXGMtb.js @@ -1 +1 @@ -import{o as H,ap as J,aq as Q,ac as X,bn as Z,q as r,r as _,v as p,D as c,bd as ee,bb as ae,s as b,bf as te,F as C,G as E,O as w,bq as se,L as M,T,bC as le,K as oe,ae as L,P as ne,u as ie,bz as re,bj as ce,M as g,aC as de,p as $,n as ue}from"./.pnpm-CyuAWpdG.js";import{d,i as me}from"./dayjs-B2bPhvDy.js";import{g as ve}from"./tcm-QAkeqQ9Q.js";import{r as fe,g as _e}from"./doctor-8vo_5fa4.js";import{j as v,_ as pe}from"./index-Dxvz9lb1.js";const be={class:"paiban-container"},ge={class:"card-header"},ye={class:"doctor-list"},he={key:2,class:"paiban-time-container"},De={class:"date-selector"},ke={key:0,class:"time-slots-container"},we={class:"time-slots-grid"},Te=["onClick"],Ye={class:"slot-time"},Ce=H({__name:"PaibanPanel",setup(Ee,{expose:z}){d.extend(me);const u=g(!1),Y=g(!1),y=g([]),f=g([]),o=g(0),i=g([]);let h=null,D=!1;const s=de({date:"",selectedTime:""}),A=$(()=>{if(!o.value||i.value.length===0)return[];const e=[],a=["日","一","二","三","四","五","六"],t=d().startOf("day");for(const n of i.value){const m=d(n);m.isBefore(t)||e.push({date:n,label:`${m.format("MM月DD日")} (${a[m.day()]})`})}return e}),I=$(()=>{if(!s.date||f.value.length===0)return[];const e=d().format("YYYY-MM-DD");if(s.date!==e)return f.value;const a=d();return f.value.map(t=>{const n=d(`${s.date} ${t.time}`);return n.isBefore(a)||n.isSame(a,"minute")?{...t,available:!1}:t})}),S=async()=>{try{u.value=!0;const e=await ve();y.value=e||[],y.value.length>0&&!o.value&&(o.value=y.value[0].id,await x())}catch(e){console.error("加载医生列表失败:",e),v.msgError("加载医生列表失败")}finally{u.value=!1}},x=async()=>{s.selectedTime="",s.date="",f.value=[],i.value=[],o.value&&await j()},j=async()=>{if(o.value)try{u.value=!0;const e=d().format("YYYY-MM-DD"),a=d().add(6,"day").format("YYYY-MM-DD"),t=await fe({doctor_id:o.value,start_date:e,end_date:a,status:1});if(t!=null&&t.lists&&t.lists.length>0){if(i.value=[...new Set(t.lists.map(n=>n.date))],i.value.sort(),await ue(),i.value.length>0){const n=d().format("YYYY-MM-DD"),m=i.value.includes(n)?n:i.value[0];B(m)}}else i.value=[],v.msgWarning("该医生暂无排班")}catch(e){console.error("加载医生排班失败:",e),v.msgError("加载医生排班失败"),i.value=[]}finally{u.value=!1}},B=e=>{s.date=e,s.selectedTime="",o.value&&k()},k=async(e=!1)=>{if(!(!o.value||!s.date)){if(D){console.log("正在加载中,跳过本次请求");return}try{D=!0,e||(u.value=!0);const a=await _e({doctor_id:o.value,appointment_date:s.date,period:"all"});f.value=((a==null?void 0:a.slots)||[]).map(t=>({time:t.time,available:t.available,hasAppointment:!!(t.has_appointment??t.available===!1),quota:t.available?1:0}))}catch(a){console.error("加载时间段失败:",a),e||v.msgError("加载时间段失败"),f.value=[]}finally{D=!1,e||(u.value=!1)}}},q=e=>{if(!e.available){v.msgWarning("该时间段不可预约");return}s.selectedTime=e.time},F=async()=>{if(!(!o.value||!s.date)){if(D){v.msgWarning("正在刷新中,请稍候");return}try{Y.value=!0;const e=s.selectedTime;if(s.selectedTime="",await k(),e){const a=f.value.find(t=>t.time===e);a&&a.available&&(s.selectedTime=e)}v.msgSuccess("刷新成功")}catch(e){console.error("刷新失败:",e),v.msgError("刷新失败,请重试")}finally{Y.value=!1}}},N=()=>{R(),h=window.setInterval(()=>{o.value&&s.date&&k(!0)},5e3)},R=()=>{h&&(clearInterval(h),h=null)};async function W(){if(o.value&&s.date){await k();return}await S()}return z({refresh:W,loading:u}),J(()=>{S(),N()}),Q(()=>{R()}),(e,a)=>{const t=oe,n=se,m=te,P=ae,V=le,G=ee,U=ce,K=Z;return X((r(),_("div",be,[p(U,{shadow:"never"},{header:c(()=>[b("div",ge,[a[2]||(a[2]=b("span",null,"医生排班管理",-1)),p(t,{text:"",type:"primary",size:"small",loading:Y.value,disabled:!o.value||!s.date,onClick:F},{icon:c(()=>[p(ie(re))]),default:c(()=>[a[1]||(a[1]=M(" 刷新 ",-1))]),_:1},8,["loading","disabled"])])]),default:c(()=>[p(G,{model:s,"label-width":"100px",class:"paiban-form"},{default:c(()=>[p(P,{label:"选择医生:"},{default:c(()=>[b("div",ye,[p(m,{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=l=>o.value=l),onChange:x},{default:c(()=>[(r(!0),_(C,null,E(y.value,l=>(r(),w(n,{key:l.id,value:l.id,class:"doctor-radio"},{default:c(()=>[M(T(l.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])]),_:1}),p(P,{label:"排班时间:"},{default:c(()=>[o.value?o.value&&i.value.length===0?(r(),w(V,{key:1,description:"该医生暂无排班","image-size":80})):(r(),_("div",he,[b("div",De,[(r(!0),_(C,null,E(A.value,l=>(r(),w(t,{key:l.date,type:s.date===l.date?"primary":"",class:"date-button",onClick:O=>B(l.date)},{default:c(()=>[M(T(l.label),1)]),_:2},1032,["type","onClick"]))),128))]),s.date?(r(),_("div",ke,[b("div",we,[(r(!0),_(C,null,E(I.value,l=>(r(),_("div",{key:l.time,class:L(["time-slot-item",{available:l.available,unavailable:!l.available,selected:s.selectedTime===l.time}]),onClick:O=>q(l)},[b("div",Ye,T(l.time),1),b("div",{class:L(["slot-status",{"status-available":l.available}])},T(l.available?"可约":l.hasAppointment?"已约":"空号"),3)],10,Te))),128))])])):ne("",!0)])):(r(),w(V,{key:0,description:"请先选择医生","image-size":80}))]),_:1})]),_:1},8,["model"])]),_:1})])),[[K,u.value]])}}}),Pe=pe(Ce,[["__scopeId","data-v-8368484f"]]);export{Pe as default}; +import{o as H,ap as J,aq as Q,ac as X,bn as Z,q as r,r as _,v as p,D as c,bd as ee,bb as ae,s as b,bf as te,F as C,G as E,O as w,bq as se,L as M,T,bC as le,K as oe,ae as L,P as ne,u as ie,bz as re,bj as ce,M as g,aC as de,p as $,n as ue}from"./.pnpm-CyuAWpdG.js";import{d,i as me}from"./dayjs-B2bPhvDy.js";import{g as ve}from"./tcm-BSADvQNg.js";import{r as fe,g as _e}from"./doctor-DBvYeWd3.js";import{j as v,_ as pe}from"./index-Bkarz3gO.js";const be={class:"paiban-container"},ge={class:"card-header"},ye={class:"doctor-list"},he={key:2,class:"paiban-time-container"},De={class:"date-selector"},ke={key:0,class:"time-slots-container"},we={class:"time-slots-grid"},Te=["onClick"],Ye={class:"slot-time"},Ce=H({__name:"PaibanPanel",setup(Ee,{expose:z}){d.extend(me);const u=g(!1),Y=g(!1),y=g([]),f=g([]),o=g(0),i=g([]);let h=null,D=!1;const s=de({date:"",selectedTime:""}),A=$(()=>{if(!o.value||i.value.length===0)return[];const e=[],a=["日","一","二","三","四","五","六"],t=d().startOf("day");for(const n of i.value){const m=d(n);m.isBefore(t)||e.push({date:n,label:`${m.format("MM月DD日")} (${a[m.day()]})`})}return e}),I=$(()=>{if(!s.date||f.value.length===0)return[];const e=d().format("YYYY-MM-DD");if(s.date!==e)return f.value;const a=d();return f.value.map(t=>{const n=d(`${s.date} ${t.time}`);return n.isBefore(a)||n.isSame(a,"minute")?{...t,available:!1}:t})}),S=async()=>{try{u.value=!0;const e=await ve();y.value=e||[],y.value.length>0&&!o.value&&(o.value=y.value[0].id,await x())}catch(e){console.error("加载医生列表失败:",e),v.msgError("加载医生列表失败")}finally{u.value=!1}},x=async()=>{s.selectedTime="",s.date="",f.value=[],i.value=[],o.value&&await j()},j=async()=>{if(o.value)try{u.value=!0;const e=d().format("YYYY-MM-DD"),a=d().add(6,"day").format("YYYY-MM-DD"),t=await fe({doctor_id:o.value,start_date:e,end_date:a,status:1});if(t!=null&&t.lists&&t.lists.length>0){if(i.value=[...new Set(t.lists.map(n=>n.date))],i.value.sort(),await ue(),i.value.length>0){const n=d().format("YYYY-MM-DD"),m=i.value.includes(n)?n:i.value[0];B(m)}}else i.value=[],v.msgWarning("该医生暂无排班")}catch(e){console.error("加载医生排班失败:",e),v.msgError("加载医生排班失败"),i.value=[]}finally{u.value=!1}},B=e=>{s.date=e,s.selectedTime="",o.value&&k()},k=async(e=!1)=>{if(!(!o.value||!s.date)){if(D){console.log("正在加载中,跳过本次请求");return}try{D=!0,e||(u.value=!0);const a=await _e({doctor_id:o.value,appointment_date:s.date,period:"all"});f.value=((a==null?void 0:a.slots)||[]).map(t=>({time:t.time,available:t.available,hasAppointment:!!(t.has_appointment??t.available===!1),quota:t.available?1:0}))}catch(a){console.error("加载时间段失败:",a),e||v.msgError("加载时间段失败"),f.value=[]}finally{D=!1,e||(u.value=!1)}}},q=e=>{if(!e.available){v.msgWarning("该时间段不可预约");return}s.selectedTime=e.time},F=async()=>{if(!(!o.value||!s.date)){if(D){v.msgWarning("正在刷新中,请稍候");return}try{Y.value=!0;const e=s.selectedTime;if(s.selectedTime="",await k(),e){const a=f.value.find(t=>t.time===e);a&&a.available&&(s.selectedTime=e)}v.msgSuccess("刷新成功")}catch(e){console.error("刷新失败:",e),v.msgError("刷新失败,请重试")}finally{Y.value=!1}}},N=()=>{R(),h=window.setInterval(()=>{o.value&&s.date&&k(!0)},5e3)},R=()=>{h&&(clearInterval(h),h=null)};async function W(){if(o.value&&s.date){await k();return}await S()}return z({refresh:W,loading:u}),J(()=>{S(),N()}),Q(()=>{R()}),(e,a)=>{const t=oe,n=se,m=te,P=ae,V=le,G=ee,U=ce,K=Z;return X((r(),_("div",be,[p(U,{shadow:"never"},{header:c(()=>[b("div",ge,[a[2]||(a[2]=b("span",null,"医生排班管理",-1)),p(t,{text:"",type:"primary",size:"small",loading:Y.value,disabled:!o.value||!s.date,onClick:F},{icon:c(()=>[p(ie(re))]),default:c(()=>[a[1]||(a[1]=M(" 刷新 ",-1))]),_:1},8,["loading","disabled"])])]),default:c(()=>[p(G,{model:s,"label-width":"100px",class:"paiban-form"},{default:c(()=>[p(P,{label:"选择医生:"},{default:c(()=>[b("div",ye,[p(m,{modelValue:o.value,"onUpdate:modelValue":a[0]||(a[0]=l=>o.value=l),onChange:x},{default:c(()=>[(r(!0),_(C,null,E(y.value,l=>(r(),w(n,{key:l.id,value:l.id,class:"doctor-radio"},{default:c(()=>[M(T(l.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])]),_:1}),p(P,{label:"排班时间:"},{default:c(()=>[o.value?o.value&&i.value.length===0?(r(),w(V,{key:1,description:"该医生暂无排班","image-size":80})):(r(),_("div",he,[b("div",De,[(r(!0),_(C,null,E(A.value,l=>(r(),w(t,{key:l.date,type:s.date===l.date?"primary":"",class:"date-button",onClick:O=>B(l.date)},{default:c(()=>[M(T(l.label),1)]),_:2},1032,["type","onClick"]))),128))]),s.date?(r(),_("div",ke,[b("div",we,[(r(!0),_(C,null,E(I.value,l=>(r(),_("div",{key:l.time,class:L(["time-slot-item",{available:l.available,unavailable:!l.available,selected:s.selectedTime===l.time}]),onClick:O=>q(l)},[b("div",Ye,T(l.time),1),b("div",{class:L(["slot-status",{"status-available":l.available}])},T(l.available?"可约":l.hasAppointment?"已约":"空号"),3)],10,Te))),128))])])):ne("",!0)])):(r(),w(V,{key:0,description:"请先选择医生","image-size":80}))]),_:1})]),_:1},8,["model"])]),_:1})])),[[K,u.value]])}}}),Pe=pe(Ce,[["__scopeId","data-v-8368484f"]]);export{Pe as default}; diff --git a/server/public/admin/assets/PatientCaseCard-BLq-W0if.js b/server/public/admin/assets/PatientCaseCard-NvDeQCIb.js similarity index 98% rename from server/public/admin/assets/PatientCaseCard-BLq-W0if.js rename to server/public/admin/assets/PatientCaseCard-NvDeQCIb.js index 90894b940..61cad44f7 100644 --- a/server/public/admin/assets/PatientCaseCard-BLq-W0if.js +++ b/server/public/admin/assets/PatientCaseCard-NvDeQCIb.js @@ -1 +1 @@ -import{i as G,a as J,b as Q}from"./blood-thresholds-QpDuElbH.js";import{m as R,j as U,b as W}from"./diag-display-DCz_VAqj.js";import{f as E}from"./diabetes-discovery-display-B_wmGXQJ.js";import{o as X,q as F,r as M,s,L as Y,T as g,v as l,u as i,P as Z,p,y as d}from"./.pnpm-CyuAWpdG.js";import{_ as P}from"./index-Dxvz9lb1.js";const ll={class:"card case-card"},al={class:"card-title"},el={class:"case-sub"},il={class:"grid-block"},tl={class:"kv-grid four"},sl={class:"grid-block"},ul={class:"kv-grid four"},nl={class:"grid-block"},dl={class:"kv-grid four"},vl={class:"grid-block"},ol={class:"kv-grid three"},gl={class:"grid-block"},cl={class:"kv-grid three"},rl={class:"grid-block"},bl={class:"kv-grid three"},hl={key:0,class:"grid-block"},ml={class:"kv-grid one"},yl={class:"grid-block"},fl={class:"rx-note"},kl=X({__name:"PatientCaseCard",props:{apt:{default:()=>({})},diag:{default:()=>({})}},setup(e){const c=e,z=p(()=>((c.diag||{}).consultation_type==="follow_up","复诊")),u=W(()=>c.diag||{}),a=n=>{const t=n.value,v=t==null||t===""||Array.isArray(t)&&t.length===0;return d("div",{class:["kv-item",n.multiline?"multiline":"",v?"empty":""],style:n.span?`grid-column: span ${n.span}`:""},[d("span",{class:"kv-label"},n.label),d("span",{class:"kv-value"},v?"—":String(t))])},o=n=>{const t=n.value===void 0||n.value===null||n.value==="";return d("div",{class:["kv-item","metric-kv-item",t?"empty":""],style:n.span?`grid-column: span ${n.span}`:""},[d("span",{class:"kv-label"},n.label),d("span",{class:["kv-value","metric-kv-value",n.high?"high":""]},t?"—":[`${n.value}${n.unit||""}`,n.high?d("span",{class:"metric-up"},"↑"):null])])};return(n,t)=>{var v,r,b,h,m,y,f,k,_,x,w,C,D,V,H,B,I,N,S,T,$,A,L,j,K,O,q;return F(),M("div",ll,[s("div",al,[t[0]||(t[0]=Y(" 患者病例 ",-1)),s("span",el,g(z.value)+" · 诊断日期 "+g(((v=e.diag)==null?void 0:v.diagnosis_date)||((r=e.apt)==null?void 0:r.appointment_date)||"—"),1)]),s("div",il,[t[1]||(t[1]=s("div",{class:"grid-title"},"基本信息",-1)),s("div",tl,[l(a,{label:"诊单ID",value:(b=e.diag)==null?void 0:b.patient_id},null,8,["value"]),l(a,{label:"姓名",value:(h=e.diag)==null?void 0:h.patient_name},null,8,["value"]),l(a,{label:"身份证号",value:(m=e.diag)==null?void 0:m.id_card},null,8,["value"]),l(a,{label:"手机号",value:i(R)(((y=e.diag)==null?void 0:y.phone)||((f=e.apt)==null?void 0:f.patient_phone))},null,8,["value"]),l(a,{label:"性别",value:i(u)("gender")},null,8,["value"]),l(a,{label:"年龄",value:((k=e.diag)==null?void 0:k.age)!=null?e.diag.age+"岁":""},null,8,["value"]),l(a,{label:"婚姻状态",value:i(u)("marital_status")},null,8,["value"]),l(a,{label:"地区",value:(_=e.diag)==null?void 0:_.region},null,8,["value"])])]),s("div",sl,[t[2]||(t[2]=s("div",{class:"grid-title"},"生命体征",-1)),s("div",ul,[l(a,{label:"身高",value:(x=e.diag)!=null&&x.height?e.diag.height+" cm":""},null,8,["value"]),l(a,{label:"体重",value:(w=e.diag)!=null&&w.weight?e.diag.weight+" kg":""},null,8,["value"]),l(o,{label:"高压",value:(C=e.diag)==null?void 0:C.systolic_pressure,unit:" mmHg",high:i(G)((D=e.diag)==null?void 0:D.systolic_pressure)},null,8,["value","high"]),l(o,{label:"低压",value:(V=e.diag)==null?void 0:V.diastolic_pressure,unit:" mmHg",high:i(J)((H=e.diag)==null?void 0:H.diastolic_pressure)},null,8,["value","high"]),l(a,{label:"诊断类型",value:i(u)("diagnosis_type")},null,8,["value"]),l(o,{label:"空腹血糖",value:(B=e.diag)==null?void 0:B.fasting_blood_sugar,unit:" mmol/L",high:i(Q)((I=e.diag)==null?void 0:I.fasting_blood_sugar,(N=e.diag)==null?void 0:N.age)},null,8,["value","high"]),l(a,{label:"在用药物",value:(S=e.diag)==null?void 0:S.current_medications,multiline:""},null,8,["value"])])]),s("div",nl,[t[3]||(t[3]=s("div",{class:"grid-title"},"主诉",-1)),s("div",dl,[l(a,{label:"当地医院诊断日期",value:(T=e.diag)==null?void 0:T.diagnosis_date},null,8,["value"]),l(a,{label:"发现糖尿病病史",value:i(E)?i(E)(($=e.diag)==null?void 0:$.diabetes_discovery_year):(A=e.diag)==null?void 0:A.diabetes_discovery_year},null,8,["value"]),l(a,{label:"当地就诊医院",value:(L=e.diag)==null?void 0:L.local_hospital_name},null,8,["value"]),l(a,{label:"当地医院诊断结果",value:i(U)((j=e.diag)==null?void 0:j.local_hospital_diagnosis)},null,8,["value"])])]),s("div",vl,[t[4]||(t[4]=s("div",{class:"grid-title"},"现病史",-1)),s("div",ol,[l(a,{label:"口腔感觉",value:i(u)("appetite")},null,8,["value"]),l(a,{label:"每日饮水量",value:i(u)("water_intake")},null,8,["value"]),l(a,{label:"近月体重变化",value:i(u)("weight_change")},null,8,["value"]),l(a,{label:"脂肪肝程度",value:i(u)("fatty_liver_degree")},null,8,["value"]),l(a,{label:"饮食情况",value:i(u)("diet_condition"),span:"2"},null,8,["value"]),l(a,{label:"肢体感觉",value:i(u)("body_feeling")},null,8,["value"]),l(a,{label:"睡眠情况",value:i(u)("sleep_condition")},null,8,["value"]),l(a,{label:"眼睛情况",value:i(u)("eye_condition")},null,8,["value"]),l(a,{label:"头部感觉",value:i(u)("head_feeling")},null,8,["value"]),l(a,{label:"出汗情况",value:i(u)("sweat_condition")},null,8,["value"]),l(a,{label:"皮肤情况",value:i(u)("skin_condition")},null,8,["value"]),l(a,{label:"小便情况",value:i(u)("urine_condition")},null,8,["value"]),l(a,{label:"大便情况",value:i(u)("stool_condition")},null,8,["value"]),l(a,{label:"腰肾情况",value:i(u)("kidney_condition")},null,8,["value"]),l(a,{label:"其他补充",value:(K=e.diag)==null?void 0:K.symptoms,span:"3",multiline:""},null,8,["value"])])]),s("div",gl,[t[5]||(t[5]=s("div",{class:"grid-title"},"既往史",-1)),s("div",cl,[l(a,{label:"既往病史",value:i(u)("past_history"),span:"3"},null,8,["value"])])]),s("div",rl,[t[6]||(t[6]=s("div",{class:"grid-title"},"其他病史",-1)),s("div",bl,[l(a,{label:"外伤史",value:i(u)("trauma_history")},null,8,["value"]),l(a,{label:"手术史",value:i(u)("surgery_history")},null,8,["value"]),l(a,{label:"过敏史",value:i(u)("allergy_history")},null,8,["value"]),l(a,{label:"家族病史",value:i(u)("family_history")},null,8,["value"]),l(a,{label:"妊娠哺乳史",value:i(u)("pregnancy_history")},null,8,["value"])])]),(O=e.diag)!=null&&O.remark?(F(),M("div",hl,[t[7]||(t[7]=s("div",{class:"grid-title"},"病史补充",-1)),s("div",ml,[l(a,{label:"",value:e.diag.remark,multiline:""},null,8,["value"])])])):Z("",!0),s("div",yl,[t[8]||(t[8]=s("div",{class:"grid-title"},"处方意见",-1)),s("div",fl,g((q=e.apt)!=null&&q.has_prescription?"已开方。":"当前未开方。"),1)])])}}}),Vl=P(kl,[["__scopeId","data-v-7b1b11be"]]);export{Vl as default}; +import{i as G,a as J,b as Q}from"./blood-thresholds-QpDuElbH.js";import{m as R,j as U,b as W}from"./diag-display-DCz_VAqj.js";import{f as E}from"./diabetes-discovery-display-B_wmGXQJ.js";import{o as X,q as F,r as M,s,L as Y,T as g,v as l,u as i,P as Z,p,y as d}from"./.pnpm-CyuAWpdG.js";import{_ as P}from"./index-Bkarz3gO.js";const ll={class:"card case-card"},al={class:"card-title"},el={class:"case-sub"},il={class:"grid-block"},tl={class:"kv-grid four"},sl={class:"grid-block"},ul={class:"kv-grid four"},nl={class:"grid-block"},dl={class:"kv-grid four"},vl={class:"grid-block"},ol={class:"kv-grid three"},gl={class:"grid-block"},cl={class:"kv-grid three"},rl={class:"grid-block"},bl={class:"kv-grid three"},hl={key:0,class:"grid-block"},ml={class:"kv-grid one"},yl={class:"grid-block"},fl={class:"rx-note"},kl=X({__name:"PatientCaseCard",props:{apt:{default:()=>({})},diag:{default:()=>({})}},setup(e){const c=e,z=p(()=>((c.diag||{}).consultation_type==="follow_up","复诊")),u=W(()=>c.diag||{}),a=n=>{const t=n.value,v=t==null||t===""||Array.isArray(t)&&t.length===0;return d("div",{class:["kv-item",n.multiline?"multiline":"",v?"empty":""],style:n.span?`grid-column: span ${n.span}`:""},[d("span",{class:"kv-label"},n.label),d("span",{class:"kv-value"},v?"—":String(t))])},o=n=>{const t=n.value===void 0||n.value===null||n.value==="";return d("div",{class:["kv-item","metric-kv-item",t?"empty":""],style:n.span?`grid-column: span ${n.span}`:""},[d("span",{class:"kv-label"},n.label),d("span",{class:["kv-value","metric-kv-value",n.high?"high":""]},t?"—":[`${n.value}${n.unit||""}`,n.high?d("span",{class:"metric-up"},"↑"):null])])};return(n,t)=>{var v,r,b,h,m,y,f,k,_,x,w,C,D,V,H,B,I,N,S,T,$,A,L,j,K,O,q;return F(),M("div",ll,[s("div",al,[t[0]||(t[0]=Y(" 患者病例 ",-1)),s("span",el,g(z.value)+" · 诊断日期 "+g(((v=e.diag)==null?void 0:v.diagnosis_date)||((r=e.apt)==null?void 0:r.appointment_date)||"—"),1)]),s("div",il,[t[1]||(t[1]=s("div",{class:"grid-title"},"基本信息",-1)),s("div",tl,[l(a,{label:"诊单ID",value:(b=e.diag)==null?void 0:b.patient_id},null,8,["value"]),l(a,{label:"姓名",value:(h=e.diag)==null?void 0:h.patient_name},null,8,["value"]),l(a,{label:"身份证号",value:(m=e.diag)==null?void 0:m.id_card},null,8,["value"]),l(a,{label:"手机号",value:i(R)(((y=e.diag)==null?void 0:y.phone)||((f=e.apt)==null?void 0:f.patient_phone))},null,8,["value"]),l(a,{label:"性别",value:i(u)("gender")},null,8,["value"]),l(a,{label:"年龄",value:((k=e.diag)==null?void 0:k.age)!=null?e.diag.age+"岁":""},null,8,["value"]),l(a,{label:"婚姻状态",value:i(u)("marital_status")},null,8,["value"]),l(a,{label:"地区",value:(_=e.diag)==null?void 0:_.region},null,8,["value"])])]),s("div",sl,[t[2]||(t[2]=s("div",{class:"grid-title"},"生命体征",-1)),s("div",ul,[l(a,{label:"身高",value:(x=e.diag)!=null&&x.height?e.diag.height+" cm":""},null,8,["value"]),l(a,{label:"体重",value:(w=e.diag)!=null&&w.weight?e.diag.weight+" kg":""},null,8,["value"]),l(o,{label:"高压",value:(C=e.diag)==null?void 0:C.systolic_pressure,unit:" mmHg",high:i(G)((D=e.diag)==null?void 0:D.systolic_pressure)},null,8,["value","high"]),l(o,{label:"低压",value:(V=e.diag)==null?void 0:V.diastolic_pressure,unit:" mmHg",high:i(J)((H=e.diag)==null?void 0:H.diastolic_pressure)},null,8,["value","high"]),l(a,{label:"诊断类型",value:i(u)("diagnosis_type")},null,8,["value"]),l(o,{label:"空腹血糖",value:(B=e.diag)==null?void 0:B.fasting_blood_sugar,unit:" mmol/L",high:i(Q)((I=e.diag)==null?void 0:I.fasting_blood_sugar,(N=e.diag)==null?void 0:N.age)},null,8,["value","high"]),l(a,{label:"在用药物",value:(S=e.diag)==null?void 0:S.current_medications,multiline:""},null,8,["value"])])]),s("div",nl,[t[3]||(t[3]=s("div",{class:"grid-title"},"主诉",-1)),s("div",dl,[l(a,{label:"当地医院诊断日期",value:(T=e.diag)==null?void 0:T.diagnosis_date},null,8,["value"]),l(a,{label:"发现糖尿病病史",value:i(E)?i(E)(($=e.diag)==null?void 0:$.diabetes_discovery_year):(A=e.diag)==null?void 0:A.diabetes_discovery_year},null,8,["value"]),l(a,{label:"当地就诊医院",value:(L=e.diag)==null?void 0:L.local_hospital_name},null,8,["value"]),l(a,{label:"当地医院诊断结果",value:i(U)((j=e.diag)==null?void 0:j.local_hospital_diagnosis)},null,8,["value"])])]),s("div",vl,[t[4]||(t[4]=s("div",{class:"grid-title"},"现病史",-1)),s("div",ol,[l(a,{label:"口腔感觉",value:i(u)("appetite")},null,8,["value"]),l(a,{label:"每日饮水量",value:i(u)("water_intake")},null,8,["value"]),l(a,{label:"近月体重变化",value:i(u)("weight_change")},null,8,["value"]),l(a,{label:"脂肪肝程度",value:i(u)("fatty_liver_degree")},null,8,["value"]),l(a,{label:"饮食情况",value:i(u)("diet_condition"),span:"2"},null,8,["value"]),l(a,{label:"肢体感觉",value:i(u)("body_feeling")},null,8,["value"]),l(a,{label:"睡眠情况",value:i(u)("sleep_condition")},null,8,["value"]),l(a,{label:"眼睛情况",value:i(u)("eye_condition")},null,8,["value"]),l(a,{label:"头部感觉",value:i(u)("head_feeling")},null,8,["value"]),l(a,{label:"出汗情况",value:i(u)("sweat_condition")},null,8,["value"]),l(a,{label:"皮肤情况",value:i(u)("skin_condition")},null,8,["value"]),l(a,{label:"小便情况",value:i(u)("urine_condition")},null,8,["value"]),l(a,{label:"大便情况",value:i(u)("stool_condition")},null,8,["value"]),l(a,{label:"腰肾情况",value:i(u)("kidney_condition")},null,8,["value"]),l(a,{label:"其他补充",value:(K=e.diag)==null?void 0:K.symptoms,span:"3",multiline:""},null,8,["value"])])]),s("div",gl,[t[5]||(t[5]=s("div",{class:"grid-title"},"既往史",-1)),s("div",cl,[l(a,{label:"既往病史",value:i(u)("past_history"),span:"3"},null,8,["value"])])]),s("div",rl,[t[6]||(t[6]=s("div",{class:"grid-title"},"其他病史",-1)),s("div",bl,[l(a,{label:"外伤史",value:i(u)("trauma_history")},null,8,["value"]),l(a,{label:"手术史",value:i(u)("surgery_history")},null,8,["value"]),l(a,{label:"过敏史",value:i(u)("allergy_history")},null,8,["value"]),l(a,{label:"家族病史",value:i(u)("family_history")},null,8,["value"]),l(a,{label:"妊娠哺乳史",value:i(u)("pregnancy_history")},null,8,["value"])])]),(O=e.diag)!=null&&O.remark?(F(),M("div",hl,[t[7]||(t[7]=s("div",{class:"grid-title"},"病史补充",-1)),s("div",ml,[l(a,{label:"",value:e.diag.remark,multiline:""},null,8,["value"])])])):Z("",!0),s("div",yl,[t[8]||(t[8]=s("div",{class:"grid-title"},"处方意见",-1)),s("div",fl,g((q=e.apt)!=null&&q.has_prescription?"已开方。":"当前未开方。"),1)])])}}}),Vl=P(kl,[["__scopeId","data-v-7b1b11be"]]);export{Vl as default}; diff --git a/server/public/admin/assets/PatientInfoCard--7DLvgKR.js b/server/public/admin/assets/PatientInfoCard-Bzk8NUOz.js similarity index 96% rename from server/public/admin/assets/PatientInfoCard--7DLvgKR.js rename to server/public/admin/assets/PatientInfoCard-Bzk8NUOz.js index 40457ac8f..261f78135 100644 --- a/server/public/admin/assets/PatientInfoCard--7DLvgKR.js +++ b/server/public/admin/assets/PatientInfoCard-Bzk8NUOz.js @@ -1 +1 @@ -import{m as I,f as p,a as w}from"./diag-display-DCz_VAqj.js";import{o as y,q as x,r as B,s as e,T as a,u as i,P as N}from"./.pnpm-CyuAWpdG.js";import{_ as V}from"./index-Dxvz9lb1.js";const b={class:"card patient-card"},q={class:"patient-hero"},D={class:"patient-name"},E={class:"patient-meta"},G={key:0},S=y({__name:"PatientInfoCard",props:{apt:{default:()=>({})},diag:{default:()=>({})}},setup(t){return(T,n)=>{var d,s,o,c,m,l,r,g,u,f,h,v,k,P,C;return x(),B("div",b,[n[0]||(n[0]=e("div",{class:"card-title"},"患者信息",-1)),e("div",q,[e("div",D,a(((d=t.apt)==null?void 0:d.patient_name)||"—"),1),e("div",E,[e("div",null,a(i(I)((s=t.apt)==null?void 0:s.patient_phone))+" · "+a(i(p)((o=t.diag)==null?void 0:o.gender))+" · "+a(((c=t.diag)==null?void 0:c.age)!=null?t.diag.age+"岁":"—"),1),e("div",null,a((m=t.diag)!=null&&m.height?t.diag.height+"cm":"—")+" / "+a((l=t.diag)!=null&&l.weight?t.diag.weight+"kg":"—")+" · "+a(((r=t.diag)==null?void 0:r.region)||"—"),1),e("div",null," 预约:"+a((g=t.apt)==null?void 0:g.appointment_date)+" "+a((u=t.apt)==null?void 0:u.appointment_time)+" · "+a(i(w)((f=t.apt)==null?void 0:f.period)),1),e("div",null,"医生:"+a(((h=t.apt)==null?void 0:h.doctor_name)||"—")+" 客服:"+a(((v=t.apt)==null?void 0:v.assistant_name)||"—"),1),e("div",null," 状态:"+a(((k=t.apt)==null?void 0:k.status_desc)||"—")+" · "+a((P=t.apt)!=null&&P.has_prescription?"已开方":"未开方"),1),(C=t.apt)!=null&&C.remark?(x(),B("div",G,"备注:"+a(t.apt.remark),1)):N("",!0)])])])}}}),F=V(S,[["__scopeId","data-v-1b0de09c"]]);export{F as default}; +import{m as I,f as p,a as w}from"./diag-display-DCz_VAqj.js";import{o as y,q as x,r as B,s as e,T as a,u as i,P as N}from"./.pnpm-CyuAWpdG.js";import{_ as V}from"./index-Bkarz3gO.js";const b={class:"card patient-card"},q={class:"patient-hero"},D={class:"patient-name"},E={class:"patient-meta"},G={key:0},S=y({__name:"PatientInfoCard",props:{apt:{default:()=>({})},diag:{default:()=>({})}},setup(t){return(T,n)=>{var d,s,o,c,m,l,r,g,u,f,h,v,k,P,C;return x(),B("div",b,[n[0]||(n[0]=e("div",{class:"card-title"},"患者信息",-1)),e("div",q,[e("div",D,a(((d=t.apt)==null?void 0:d.patient_name)||"—"),1),e("div",E,[e("div",null,a(i(I)((s=t.apt)==null?void 0:s.patient_phone))+" · "+a(i(p)((o=t.diag)==null?void 0:o.gender))+" · "+a(((c=t.diag)==null?void 0:c.age)!=null?t.diag.age+"岁":"—"),1),e("div",null,a((m=t.diag)!=null&&m.height?t.diag.height+"cm":"—")+" / "+a((l=t.diag)!=null&&l.weight?t.diag.weight+"kg":"—")+" · "+a(((r=t.diag)==null?void 0:r.region)||"—"),1),e("div",null," 预约:"+a((g=t.apt)==null?void 0:g.appointment_date)+" "+a((u=t.apt)==null?void 0:u.appointment_time)+" · "+a(i(w)((f=t.apt)==null?void 0:f.period)),1),e("div",null,"医生:"+a(((h=t.apt)==null?void 0:h.doctor_name)||"—")+" 客服:"+a(((v=t.apt)==null?void 0:v.assistant_name)||"—"),1),e("div",null," 状态:"+a(((k=t.apt)==null?void 0:k.status_desc)||"—")+" · "+a((P=t.apt)!=null&&P.has_prescription?"已开方":"未开方"),1),(C=t.apt)!=null&&C.remark?(x(),B("div",G,"备注:"+a(t.apt.remark),1)):N("",!0)])])])}}}),F=V(S,[["__scopeId","data-v-1b0de09c"]]);export{F as default}; diff --git a/server/public/admin/assets/PatientOrderList-BP2alDvZ.js b/server/public/admin/assets/PatientOrderList-Dk7f29yf.js similarity index 96% rename from server/public/admin/assets/PatientOrderList-BP2alDvZ.js rename to server/public/admin/assets/PatientOrderList-Dk7f29yf.js index 5d9e12ac0..95d28f511 100644 --- a/server/public/admin/assets/PatientOrderList-BP2alDvZ.js +++ b/server/public/admin/assets/PatientOrderList-Dk7f29yf.js @@ -1 +1 @@ -import{o as G,R as H,bp as Q,q as l,r as v,v as a,bC as X,F as Y,s as g,D as i,w as Z,u as d,cj as tt,a1 as et,ac as h,J as st,T as m,O as b,K as at,L as f,P as it,bk as ot,bl as lt,bm as nt,bn as rt,C as dt,p as S,M as y,aC as ft}from"./.pnpm-CyuAWpdG.js";import{_ as ut}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{u as ct}from"./usePaging-CghUEVfD.js";import{z as mt,ab as pt,av as _t}from"./tcm-QAkeqQ9Q.js";import vt from"./PrescriptionOrderDetailDrawer-v90LlSLZ.js";import{j as V,_ as gt}from"./index-Dxvz9lb1.js";import{B as bt,a as yt,f as wt}from"./prescription-order-utils-CXfs2Bra.js";const xt={class:"patient-order-list"},ht={key:0,class:"po-empty-tip"},St={key:0,class:"po-revisit-offset-bar mb-3"},kt={class:"po-revisit-offset-bar__main"},Nt={class:"text-xs text-gray-500 ml-2"},It={key:0},Dt={key:1,class:"text-gray-400"},Ot={class:"text-red-500 font-semibold"},Ct={class:"flex justify-end mt-3"},Et=G({__name:"PatientOrderList",props:{diagnosisId:{},patientId:{}},setup(C,{expose:F}){const r=C,k=S(()=>{const e=Number(r.patientId);return Number.isFinite(e)&&e>0?e:0}),N=S(()=>k.value>0),p=ft({}),{pager:u,getLists:I,resetPage:L}=ct({fetchFun:mt,params:p,size:10}),c=y(0),w=y(0),x=y(!1),E=y(!1),P=S(()=>Number(c.value)!==Number(w.value)),z=S(()=>{const e=Number(c.value),o=(Number.isFinite(e)?e:0)+1,_=["","一","二","三","四","五","六","七","八","九","十"];return o>=1&&o<=10?_[o]+"诊":`第${o}诊`}),B=()=>{Object.keys(p).forEach(e=>delete p[e]),r.diagnosisId>0&&(p.context_diagnosis_id=r.diagnosisId),N.value&&(p.patient_id=k.value),p.scene="diagnosis_edit"};async function q(){if(!(r.diagnosisId<=0)){E.value=!0;try{const e=await pt({id:r.diagnosisId}),t=(e==null?void 0:e.data)??e??{},o=Number(t.revisit_slot_start_offset),_=Number.isFinite(o)&&o>=0&&o<=20?o:0;c.value=_,w.value=_}catch{c.value=0,w.value=0}finally{E.value=!1}}}async function j(){if(r.diagnosisId<=0)return;const e=Number(c.value);if(!Number.isFinite(e)||e<0||e>20){V.msgWarning("起始偏移须在 0~20 之间");return}x.value=!0;try{await _t({id:r.diagnosisId,revisit_slot_start_offset:e}),w.value=e,V.msgSuccess("保存成功"),I()}catch{}finally{x.value=!1}}const R=y();function $(e){var t;(t=R.value)==null||t.open(e)}const A=e=>{const t=Number(e);return Number.isFinite(t)?t.toFixed(2):"0.00"};return H(()=>[r.diagnosisId,k.value],()=>{if(!N.value){u.lists=[],u.count=0;return}B(),q(),L()},{immediate:!0}),F({refresh:()=>I()}),(e,t)=>{const o=X,_=Z,U=et,J=st,T=at,n=lt,D=nt,K=ot,M=ut,O=Q("perms"),W=rt;return l(),v("div",xt,[N.value?(l(),v(Y,{key:1},[C.diagnosisId>0?(l(),v("div",St,[g("div",kt,[t[3]||(t[3]=g("span",{class:"text-sm text-gray-600"},"复诊统计起始偏移",-1)),a(U,{placement:"top"},{content:i(()=>[...t[2]||(t[2]=[g("div",{class:"max-w-xs leading-relaxed"}," 在实单诊次序号上叠加偏移量。设为 0(默认):第 1 笔实单计为一诊;设为 1:第 1 笔实单计为二诊;设为 2:第 1 笔实单计为三诊——若有 5 笔实单且偏移 2,则统计上相当于计至七诊(5+2)。 ",-1)])]),default:i(()=>[a(_,{class:"text-gray-400 align-middle ml-1"},{default:i(()=>[a(d(tt))]),_:1})]),_:1}),h(a(J,{modelValue:c.value,"onUpdate:modelValue":t[0]||(t[0]=s=>c.value=s),min:0,max:20,step:1,"controls-position":"right",class:"w-[120px] ml-3",disabled:x.value},null,8,["modelValue","disabled"]),[[O,["tcm.diagnosis/setRevisitSlotStartOffset"]]]),g("span",Nt," 第 1 笔实单计为"+m(z.value),1)]),h((l(),b(T,{type:"primary",size:"small",loading:x.value,disabled:!P.value,onClick:j},{default:i(()=>[...t[4]||(t[4]=[f(" 保存 ",-1)])]),_:1},8,["loading","disabled"])),[[O,["tcm.diagnosis/setRevisitSlotStartOffset"]]])])):it("",!0),h((l(),b(K,{data:d(u).lists,border:"",stripe:"","empty-text":"暂无业务订单"},{default:i(()=>[a(n,{label:"订单编号",prop:"order_no","min-width":"200","show-overflow-tooltip":""}),a(n,{label:"全局诊次",width:"96",align:"center"},{default:i(({row:s})=>[s.global_visit_seq?(l(),v("span",It,m(s.global_visit_seq)+"诊",1)):(l(),v("span",Dt,"—"))]),_:1}),a(n,{label:"计入统计",width:"96",align:"center"},{default:i(({row:s})=>[s.counts_for_revisit_rate?(l(),b(D,{key:0,type:"success",size:"small",effect:"plain"},{default:i(()=>[...t[5]||(t[5]=[f("是",-1)])]),_:1})):(l(),b(D,{key:1,type:"info",size:"small",effect:"plain"},{default:i(()=>[...t[6]||(t[6]=[f("否",-1)])]),_:1}))]),_:1}),a(n,{label:"金额",width:"120",align:"right"},{default:i(({row:s})=>[g("span",Ot,"¥"+m(A(s.amount)),1)]),_:1}),a(n,{label:"医生",prop:"doctor_name",width:"110","show-overflow-tooltip":""},{default:i(({row:s})=>[f(m(s.doctor_name||"—"),1)]),_:1}),a(n,{label:"医助",prop:"assistant_name",width:"110","show-overflow-tooltip":""},{default:i(({row:s})=>[f(m(s.assistant_name||"—"),1)]),_:1}),a(n,{label:"履约状态",width:"110"},{default:i(({row:s})=>[a(D,{type:d(bt)(s.fulfillment_status),size:"small",effect:"light"},{default:i(()=>[f(m(d(yt)(s.fulfillment_status)),1)]),_:2},1032,["type"])]),_:1}),a(n,{label:"创建时间","min-width":"170"},{default:i(({row:s})=>[f(m(d(wt)(s.create_time)),1)]),_:1}),a(n,{label:"操作",width:"100",fixed:"right"},{default:i(({row:s})=>[h((l(),b(T,{type:"primary",link:"",onClick:Rt=>$(s.id)},{default:i(()=>[...t[7]||(t[7]=[f("查看详情",-1)])]),_:1},8,["onClick"])),[[O,["tcm.prescriptionOrder/detail"]]])]),_:1})]),_:1},8,["data"])),[[W,d(u).loading]]),g("div",Ct,[a(M,{modelValue:d(u),"onUpdate:modelValue":t[1]||(t[1]=s=>dt(u)?u.value=s:null),onChange:d(I)},null,8,["modelValue","onChange"])])],64)):(l(),v("div",ht,[a(o,{description:"当前诊单未携带患者ID,无法列出业务订单"})])),a(vt,{ref_key:"detailDrawerRef",ref:R,readonly:"","append-to-body":""},null,512)])}}}),qt=gt(Et,[["__scopeId","data-v-fe72f000"]]);export{qt as default}; +import{o as G,R as H,bp as Q,q as l,r as v,v as a,bC as X,F as Y,s as g,D as i,w as Z,u as d,cj as tt,a1 as et,ac as h,J as st,T as m,O as b,K as at,L as f,P as it,bk as ot,bl as lt,bm as nt,bn as rt,C as dt,p as S,M as y,aC as ft}from"./.pnpm-CyuAWpdG.js";import{_ as ut}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{u as ct}from"./usePaging-CghUEVfD.js";import{z as mt,ab as pt,av as _t}from"./tcm-BSADvQNg.js";import vt from"./PrescriptionOrderDetailDrawer-CX7YbddA.js";import{j as V,_ as gt}from"./index-Bkarz3gO.js";import{B as bt,a as yt,f as wt}from"./prescription-order-utils-CXfs2Bra.js";const xt={class:"patient-order-list"},ht={key:0,class:"po-empty-tip"},St={key:0,class:"po-revisit-offset-bar mb-3"},kt={class:"po-revisit-offset-bar__main"},Nt={class:"text-xs text-gray-500 ml-2"},It={key:0},Dt={key:1,class:"text-gray-400"},Ot={class:"text-red-500 font-semibold"},Ct={class:"flex justify-end mt-3"},Et=G({__name:"PatientOrderList",props:{diagnosisId:{},patientId:{}},setup(C,{expose:F}){const r=C,k=S(()=>{const e=Number(r.patientId);return Number.isFinite(e)&&e>0?e:0}),N=S(()=>k.value>0),p=ft({}),{pager:u,getLists:I,resetPage:L}=ct({fetchFun:mt,params:p,size:10}),c=y(0),w=y(0),x=y(!1),E=y(!1),P=S(()=>Number(c.value)!==Number(w.value)),z=S(()=>{const e=Number(c.value),o=(Number.isFinite(e)?e:0)+1,_=["","一","二","三","四","五","六","七","八","九","十"];return o>=1&&o<=10?_[o]+"诊":`第${o}诊`}),B=()=>{Object.keys(p).forEach(e=>delete p[e]),r.diagnosisId>0&&(p.context_diagnosis_id=r.diagnosisId),N.value&&(p.patient_id=k.value),p.scene="diagnosis_edit"};async function q(){if(!(r.diagnosisId<=0)){E.value=!0;try{const e=await pt({id:r.diagnosisId}),t=(e==null?void 0:e.data)??e??{},o=Number(t.revisit_slot_start_offset),_=Number.isFinite(o)&&o>=0&&o<=20?o:0;c.value=_,w.value=_}catch{c.value=0,w.value=0}finally{E.value=!1}}}async function j(){if(r.diagnosisId<=0)return;const e=Number(c.value);if(!Number.isFinite(e)||e<0||e>20){V.msgWarning("起始偏移须在 0~20 之间");return}x.value=!0;try{await _t({id:r.diagnosisId,revisit_slot_start_offset:e}),w.value=e,V.msgSuccess("保存成功"),I()}catch{}finally{x.value=!1}}const R=y();function $(e){var t;(t=R.value)==null||t.open(e)}const A=e=>{const t=Number(e);return Number.isFinite(t)?t.toFixed(2):"0.00"};return H(()=>[r.diagnosisId,k.value],()=>{if(!N.value){u.lists=[],u.count=0;return}B(),q(),L()},{immediate:!0}),F({refresh:()=>I()}),(e,t)=>{const o=X,_=Z,U=et,J=st,T=at,n=lt,D=nt,K=ot,M=ut,O=Q("perms"),W=rt;return l(),v("div",xt,[N.value?(l(),v(Y,{key:1},[C.diagnosisId>0?(l(),v("div",St,[g("div",kt,[t[3]||(t[3]=g("span",{class:"text-sm text-gray-600"},"复诊统计起始偏移",-1)),a(U,{placement:"top"},{content:i(()=>[...t[2]||(t[2]=[g("div",{class:"max-w-xs leading-relaxed"}," 在实单诊次序号上叠加偏移量。设为 0(默认):第 1 笔实单计为一诊;设为 1:第 1 笔实单计为二诊;设为 2:第 1 笔实单计为三诊——若有 5 笔实单且偏移 2,则统计上相当于计至七诊(5+2)。 ",-1)])]),default:i(()=>[a(_,{class:"text-gray-400 align-middle ml-1"},{default:i(()=>[a(d(tt))]),_:1})]),_:1}),h(a(J,{modelValue:c.value,"onUpdate:modelValue":t[0]||(t[0]=s=>c.value=s),min:0,max:20,step:1,"controls-position":"right",class:"w-[120px] ml-3",disabled:x.value},null,8,["modelValue","disabled"]),[[O,["tcm.diagnosis/setRevisitSlotStartOffset"]]]),g("span",Nt," 第 1 笔实单计为"+m(z.value),1)]),h((l(),b(T,{type:"primary",size:"small",loading:x.value,disabled:!P.value,onClick:j},{default:i(()=>[...t[4]||(t[4]=[f(" 保存 ",-1)])]),_:1},8,["loading","disabled"])),[[O,["tcm.diagnosis/setRevisitSlotStartOffset"]]])])):it("",!0),h((l(),b(K,{data:d(u).lists,border:"",stripe:"","empty-text":"暂无业务订单"},{default:i(()=>[a(n,{label:"订单编号",prop:"order_no","min-width":"200","show-overflow-tooltip":""}),a(n,{label:"全局诊次",width:"96",align:"center"},{default:i(({row:s})=>[s.global_visit_seq?(l(),v("span",It,m(s.global_visit_seq)+"诊",1)):(l(),v("span",Dt,"—"))]),_:1}),a(n,{label:"计入统计",width:"96",align:"center"},{default:i(({row:s})=>[s.counts_for_revisit_rate?(l(),b(D,{key:0,type:"success",size:"small",effect:"plain"},{default:i(()=>[...t[5]||(t[5]=[f("是",-1)])]),_:1})):(l(),b(D,{key:1,type:"info",size:"small",effect:"plain"},{default:i(()=>[...t[6]||(t[6]=[f("否",-1)])]),_:1}))]),_:1}),a(n,{label:"金额",width:"120",align:"right"},{default:i(({row:s})=>[g("span",Ot,"¥"+m(A(s.amount)),1)]),_:1}),a(n,{label:"医生",prop:"doctor_name",width:"110","show-overflow-tooltip":""},{default:i(({row:s})=>[f(m(s.doctor_name||"—"),1)]),_:1}),a(n,{label:"医助",prop:"assistant_name",width:"110","show-overflow-tooltip":""},{default:i(({row:s})=>[f(m(s.assistant_name||"—"),1)]),_:1}),a(n,{label:"履约状态",width:"110"},{default:i(({row:s})=>[a(D,{type:d(bt)(s.fulfillment_status),size:"small",effect:"light"},{default:i(()=>[f(m(d(yt)(s.fulfillment_status)),1)]),_:2},1032,["type"])]),_:1}),a(n,{label:"创建时间","min-width":"170"},{default:i(({row:s})=>[f(m(d(wt)(s.create_time)),1)]),_:1}),a(n,{label:"操作",width:"100",fixed:"right"},{default:i(({row:s})=>[h((l(),b(T,{type:"primary",link:"",onClick:Rt=>$(s.id)},{default:i(()=>[...t[7]||(t[7]=[f("查看详情",-1)])]),_:1},8,["onClick"])),[[O,["tcm.prescriptionOrder/detail"]]])]),_:1})]),_:1},8,["data"])),[[W,d(u).loading]]),g("div",Ct,[a(M,{modelValue:d(u),"onUpdate:modelValue":t[1]||(t[1]=s=>dt(u)?u.value=s:null),onChange:d(I)},null,8,["modelValue","onChange"])])],64)):(l(),v("div",ht,[a(o,{description:"当前诊单未携带患者ID,无法列出业务订单"})])),a(vt,{ref_key:"detailDrawerRef",ref:R,readonly:"","append-to-body":""},null,512)])}}}),qt=gt(Et,[["__scopeId","data-v-fe72f000"]]);export{qt as default}; diff --git a/server/public/admin/assets/PrescriptionAiBatchGenerateDialog-DjGAFFkN.js b/server/public/admin/assets/PrescriptionAiBatchGenerateDialog-BuV-lxd1.js similarity index 99% rename from server/public/admin/assets/PrescriptionAiBatchGenerateDialog-DjGAFFkN.js rename to server/public/admin/assets/PrescriptionAiBatchGenerateDialog-BuV-lxd1.js index e5bae44e7..31c6f0018 100644 --- a/server/public/admin/assets/PrescriptionAiBatchGenerateDialog-DjGAFFkN.js +++ b/server/public/admin/assets/PrescriptionAiBatchGenerateDialog-BuV-lxd1.js @@ -1 +1 @@ -import{o as de,q as r,O as g,D as u,s as l,v as c,bo as ce,u as t,r as h,b_ as pe,bC as ve,T as i,K as fe,L as v,F as me,bm as ge,P as C,bY as _e,bk as ye,bl as he,C as be,aB as ke,M as d,p as Q,a8 as we}from"./.pnpm-CyuAWpdG.js";import{a as Ce,b as Ee}from"./tcm-QAkeqQ9Q.js";import{j as L,_ as Me}from"./index-Dxvz9lb1.js";const $e={class:"batch-dialog-body"},xe={key:0,class:"loading-state"},Ae={key:1,class:"load-error-state"},Be={class:"state-description"},Ie={class:"overview-panel"},Re={class:"overview-meta"},Se={key:0,class:"refresh-error"},Te={key:2,class:"progress-panel"},ze={class:"progress-heading"},Ne={key:0,class:"current-prescription"},Ge={class:"counter-grid"},Le={class:"counter-item counter-processed"},Ve={class:"counter-item counter-success"},qe={class:"counter-item counter-partial"},Pe={class:"counter-item counter-failed"},De={key:3,class:"issues-panel"},Fe={class:"section-heading"},je={class:"issue-name"},We={class:"state-description"},He={key:5,class:"pending-panel"},Ke={class:"section-heading"},Oe={class:"pending-count"},Ue={class:"dialog-footer"},Ye={key:0,class:"footer-tip"},Je={key:1},B=500,Qe=de({__name:"PrescriptionAiBatchGenerateDialog",emits:["changed"],setup(Xe,{expose:X,emit:Z}){const ee=Z,E=d(!1),z=d(0),I=d(0),N=d(!1),R=d(""),S=d(""),f=d([]),M=d(0),V=d(B),F=d(!1),p=d(!1),_=d(!1),j=d("idle"),y=d(0),w=d(0),W=d(0),q=d(0),G=d(0),b=d(null),$=d([]),P=we(null),te=Q(()=>y.value?Math.min(100,Math.round(w.value/y.value*100)):0),se=Q(()=>{const s=Math.max(0,M.value-f.value.length);return s>0?`待生成数量超过单次上限,本次最多处理 ${f.value.length} 份;完成后可再次继续处理其余约 ${s} 份。`:`后端标记清单已截断,本次最多处理 ${V.value} 份;完成后可再次继续。`}),K=()=>{_.value=!1,j.value="idle",y.value=0,w.value=0,W.value=0,q.value=0,G.value=0,b.value=null,$.value=[]},O=()=>{N.value=!1,R.value="",S.value="",f.value=[],M.value=0,V.value=B,F.value=!1,K()},H=s=>{if(typeof s=="string"&&s.trim())return s;if(s&&typeof s=="object"){const e=s,n=e.response,a=n==null?void 0:n.data,o=e.msg||e.message||e.error||(a==null?void 0:a.msg)||(a==null?void 0:a.message);if(typeof o=="string"&&o.trim())return o}return"请求失败,请稍后重试"},k=s=>s===z.value&&E.value,D=async(s=z.value,e={})=>{const n=++I.value;e.silent||(N.value=!0,R.value="");try{const a=await Ce({limit:B});if(!k(s)||n!==I.value)return;const o=Array.isArray(a.items)?a.items.slice(0,B):[];f.value=o,M.value=Math.max(o.length,Number(a.total||0)),V.value=Math.min(B,Math.max(1,Number(a.limit||B))),F.value=a.truncated===!0||M.value>o.length,S.value=""}catch(a){if(!k(s)||n!==I.value)return;e.silent?S.value=`本轮已结束,但最新待生成清单读取失败:${H(a)}`:R.value=H(a)}finally{k(s)&&n===I.value&&(N.value=!1)}},U=s=>(s.results||[]).filter(n=>n.status==="error").map(n=>`${n.model_label||n.model_name}: ${n.error_message||"生成失败"}`).join(";")||"模型未返回完整报告",le=(s,e)=>{const n=Number(e.success_count||0),a=Number(e.failure_count||0),o=e.status==="partial"||e.partial===!0||n>0&&a>0,T=e.status==="error"||a>0&&n===0;return o?(q.value+=1,$.value.push({id:s.id,prescription_name:s.prescription_name||`处方 #${s.id}`,status:"partial",message:U(e)}),!0):T?(G.value+=1,$.value.push({id:s.id,prescription_name:s.prescription_name||`处方 #${s.id}`,status:"failed",message:U(e)}),!1):(W.value+=1,!0)},ae=(s,e)=>{G.value+=1,$.value.push({id:s.id,prescription_name:s.prescription_name||`处方 #${s.id}`,status:"failed",message:H(e)})},Y=()=>{!p.value||_.value||(_.value=!0)},ne=async()=>{if(p.value||!f.value.length)return;const s=z.value,e=f.value.slice(0,B);try{await L.confirm(`确定按顺序为 ${e.length} 份处方生成 AI 报告吗?每份会调用双模型,过程中可请求停止。`)}catch{return}if(!k(s)||p.value)return;K(),y.value=e.length,p.value=!0,S.value="";const n=new Set;try{for(const a of e){if(!k(s)||_.value)break;b.value=a;try{const o=await Ee({id:a.id});if(!k(s))return;le(a,o)&&n.add(a.id)}catch(o){if(!k(s))return;ae(a,o)}w.value+=1,b.value=null}}finally{if(!k(s))return;const a=_.value&&w.value!n.has(T.id)),M.value=Math.max(0,M.value-n.size)),w.value>0&&ee("changed");const o=P.value;if(P.value=null,o){o();return}if(await D(s,{silent:!0}),!k(s))return;a?L.msgWarning(`已停止,本轮共处理 ${w.value} 份处方`):G.value>0||q.value>0?L.msgWarning("批量生成已完成,请查看失败与部分成功明细"):L.msgSuccess("批量生成报告完成")}},oe=s=>{if(!p.value){s();return}Y(),P.value=s,L.msgWarning("已请求停止,当前处方完成后将关闭窗口")},ie=()=>{++z.value,++I.value,P.value=null,p.value=!1,O()};return X({open:()=>{if(p.value){E.value=!0;return}const s=++z.value;++I.value,O(),E.value=!0,D(s)}}),(s,e)=>{const n=ce,a=pe,o=fe,T=ve,x=ge,re=_e,A=he,J=ye,ue=ke;return r(),g(ue,{modelValue:t(E),"onUpdate:modelValue":e[3]||(e[3]=m=>be(E)?E.value=m:null),class:"prescription-ai-batch-dialog",width:"min(820px, calc(100vw - 32px))",top:"6vh",title:"批量生成处方 AI 报告","close-on-click-modal":!1,"destroy-on-close":"","before-close":oe,onClosed:ie},{footer:u(()=>[l("div",Ue,[t(p)?(r(),h("span",Ye,"生成请求不会自动重试,也不会并发执行。")):(r(),h("span",Je)),l("div",null,[t(p)?C("",!0):(r(),g(o,{key:0,onClick:e[2]||(e[2]=m=>E.value=!1)},{default:u(()=>[...e[20]||(e[20]=[v("关闭",-1)])]),_:1})),t(p)?(r(),g(o,{key:1,type:"warning",plain:"",disabled:t(_),onClick:Y},{default:u(()=>[v(i(t(_)?"正在停止…":"停止"),1)]),_:1},8,["disabled"])):(r(),g(o,{key:2,type:"primary",disabled:t(N)||!!t(R)||!t(f).length,onClick:ne},{default:u(()=>[v(i(t(y)>0?"继续生成剩余报告":"开始批量生成"),1)]),_:1},8,["disabled"]))])])]),default:u(()=>[l("div",$e,[c(n,{type:"info",closable:!1,"show-icon":"",title:"仅统计完全没有任何 AI 报告的处方;已有报告不会被本批次覆盖。"}),t(N)?(r(),h("div",xe,[c(a,{rows:5,animated:""})])):t(R)?(r(),h("div",Ae,[c(T,{description:"待生成清单加载失败","image-size":72},{default:u(()=>[l("p",Be,i(t(R)),1),c(o,{type:"primary",plain:"",onClick:e[0]||(e[0]=m=>D())},{default:u(()=>[...e[4]||(e[4]=[v("重新加载",-1)])]),_:1})]),_:1})])):(r(),h(me,{key:2},[l("section",Ie,[l("div",null,[e[5]||(e[5]=l("span",{class:"overview-label"},"当前完全缺失报告",-1)),l("strong",null,i(t(M)),1),e[6]||(e[6]=l("span",{class:"overview-unit"},"份处方",-1))]),l("div",Re,[v(" 本次载入 "+i(t(f).length)+" 份 ",1),c(x,{size:"small",type:"info",effect:"plain"},{default:u(()=>[v("上限 "+i(t(V)),1)]),_:1})])]),t(S)?(r(),h("div",Se,[c(n,{type:"error",closable:!1,"show-icon":"",title:t(S)},null,8,["title"]),c(o,{type:"primary",plain:"",onClick:e[1]||(e[1]=m=>D())},{default:u(()=>[...e[7]||(e[7]=[v("重新读取清单",-1)])]),_:1})])):C("",!0),t(F)?(r(),g(n,{key:1,class:"truncated-alert",type:"warning",closable:!1,"show-icon":"",title:t(se)},null,8,["title"])):C("",!0),t(p)||t(y)>0?(r(),h("section",Te,[l("div",ze,[l("div",null,[e[8]||(e[8]=l("span",{class:"section-kicker"},"本轮进度",-1)),l("strong",null,i(t(w))+" / "+i(t(y)),1)]),t(p)&&!t(_)?(r(),g(x,{key:0,type:"primary"},{default:u(()=>[...e[9]||(e[9]=[v("顺序生成中",-1)])]),_:1})):t(p)&&t(_)?(r(),g(x,{key:1,type:"warning"},{default:u(()=>[...e[10]||(e[10]=[v("等待当前请求完成",-1)])]),_:1})):t(j)==="stopped"?(r(),g(x,{key:2,type:"warning"},{default:u(()=>[...e[11]||(e[11]=[v("已停止",-1)])]),_:1})):(r(),g(x,{key:3,type:"success"},{default:u(()=>[...e[12]||(e[12]=[v("本轮完成",-1)])]),_:1}))]),c(re,{percentage:t(te),"stroke-width":10},null,8,["percentage"]),t(b)?(r(),h("div",Ne,[e[13]||(e[13]=l("span",null,"当前处方",-1)),l("strong",null,i(t(b).prescription_name||`处方 #${t(b).id}`),1),l("small",null,"#"+i(t(b).id)+" · "+i(t(b).formula_type||"未分类"),1)])):C("",!0),l("div",Ge,[l("div",Le,[e[14]||(e[14]=l("span",null,"已处理",-1)),l("strong",null,i(t(w)),1)]),l("div",Ve,[e[15]||(e[15]=l("span",null,"成功",-1)),l("strong",null,i(t(W)),1)]),l("div",qe,[e[16]||(e[16]=l("span",null,"部分成功",-1)),l("strong",null,i(t(q)),1)]),l("div",Pe,[e[17]||(e[17]=l("span",null,"失败",-1)),l("strong",null,i(t(G)),1)])]),t(_)&&t(p)?(r(),g(n,{key:1,class:"stop-alert",type:"warning",closable:!1,"show-icon":"",title:"已请求停止;当前处方生成完成后,不会继续发起下一条请求。"})):C("",!0)])):C("",!0),t($).length?(r(),h("section",De,[l("div",Fe,[e[18]||(e[18]=l("div",null,[l("span",{class:"section-kicker"},"失败清单"),l("strong",null,"失败与部分成功明细")],-1)),c(x,{type:"danger",effect:"plain"},{default:u(()=>[v(i(t($).length)+" 条",1)]),_:1})]),c(J,{data:t($),"max-height":"240",size:"small"},{default:u(()=>[c(A,{label:"处方","min-width":"180"},{default:u(({row:m})=>[l("div",je,i(m.prescription_name),1),l("small",null,"#"+i(m.id),1)]),_:1}),c(A,{label:"结果",width:"100"},{default:u(({row:m})=>[c(x,{size:"small",type:m.status==="partial"?"warning":"danger"},{default:u(()=>[v(i(m.status==="partial"?"部分成功":"失败"),1)]),_:2},1032,["type"])]),_:1}),c(A,{label:"原因","min-width":"300","show-overflow-tooltip":"",prop:"message"})]),_:1},8,["data"])])):C("",!0),!t(f).length&&!t(p)?(r(),g(T,{key:4,description:t(y)>0?"当前范围已无待生成处方":"暂无完全缺失 AI 报告的处方","image-size":76},{default:u(()=>[l("p",We,i(t(y)>0?"已重新读取数据库中的最新待生成清单。":"所有可见处方均已有至少一份持久化报告。"),1)]),_:1},8,["description"])):t(p)?C("",!0):(r(),h("section",He,[l("div",Ke,[e[19]||(e[19]=l("div",null,[l("span",{class:"section-kicker"},"待生成清单"),l("strong",null,"本次将按以下顺序逐条处理")],-1)),l("span",Oe,i(t(f).length)+" 份",1)]),c(J,{data:t(f),"max-height":"280",size:"small"},{default:u(()=>[c(A,{label:"ID",prop:"id",width:"80"}),c(A,{label:"处方名称",prop:"prescription_name","min-width":"220","show-overflow-tooltip":""}),c(A,{label:"类型",prop:"formula_type",width:"100"}),c(A,{label:"药材数",width:"100",align:"right"},{default:u(({row:m})=>[v(i(m.herb_count)+" 味",1)]),_:1})]),_:1},8,["data"])]))],64))])]),_:1},8,["modelValue"])}}}),lt=Me(Qe,[["__scopeId","data-v-e1699253"]]);export{lt as default}; +import{o as de,q as r,O as g,D as u,s as l,v as c,bo as ce,u as t,r as h,b_ as pe,bC as ve,T as i,K as fe,L as v,F as me,bm as ge,P as C,bY as _e,bk as ye,bl as he,C as be,aB as ke,M as d,p as Q,a8 as we}from"./.pnpm-CyuAWpdG.js";import{a as Ce,b as Ee}from"./tcm-BSADvQNg.js";import{j as L,_ as Me}from"./index-Bkarz3gO.js";const $e={class:"batch-dialog-body"},xe={key:0,class:"loading-state"},Ae={key:1,class:"load-error-state"},Be={class:"state-description"},Ie={class:"overview-panel"},Re={class:"overview-meta"},Se={key:0,class:"refresh-error"},Te={key:2,class:"progress-panel"},ze={class:"progress-heading"},Ne={key:0,class:"current-prescription"},Ge={class:"counter-grid"},Le={class:"counter-item counter-processed"},Ve={class:"counter-item counter-success"},qe={class:"counter-item counter-partial"},Pe={class:"counter-item counter-failed"},De={key:3,class:"issues-panel"},Fe={class:"section-heading"},je={class:"issue-name"},We={class:"state-description"},He={key:5,class:"pending-panel"},Ke={class:"section-heading"},Oe={class:"pending-count"},Ue={class:"dialog-footer"},Ye={key:0,class:"footer-tip"},Je={key:1},B=500,Qe=de({__name:"PrescriptionAiBatchGenerateDialog",emits:["changed"],setup(Xe,{expose:X,emit:Z}){const ee=Z,E=d(!1),z=d(0),I=d(0),N=d(!1),R=d(""),S=d(""),f=d([]),M=d(0),V=d(B),F=d(!1),p=d(!1),_=d(!1),j=d("idle"),y=d(0),w=d(0),W=d(0),q=d(0),G=d(0),b=d(null),$=d([]),P=we(null),te=Q(()=>y.value?Math.min(100,Math.round(w.value/y.value*100)):0),se=Q(()=>{const s=Math.max(0,M.value-f.value.length);return s>0?`待生成数量超过单次上限,本次最多处理 ${f.value.length} 份;完成后可再次继续处理其余约 ${s} 份。`:`后端标记清单已截断,本次最多处理 ${V.value} 份;完成后可再次继续。`}),K=()=>{_.value=!1,j.value="idle",y.value=0,w.value=0,W.value=0,q.value=0,G.value=0,b.value=null,$.value=[]},O=()=>{N.value=!1,R.value="",S.value="",f.value=[],M.value=0,V.value=B,F.value=!1,K()},H=s=>{if(typeof s=="string"&&s.trim())return s;if(s&&typeof s=="object"){const e=s,n=e.response,a=n==null?void 0:n.data,o=e.msg||e.message||e.error||(a==null?void 0:a.msg)||(a==null?void 0:a.message);if(typeof o=="string"&&o.trim())return o}return"请求失败,请稍后重试"},k=s=>s===z.value&&E.value,D=async(s=z.value,e={})=>{const n=++I.value;e.silent||(N.value=!0,R.value="");try{const a=await Ce({limit:B});if(!k(s)||n!==I.value)return;const o=Array.isArray(a.items)?a.items.slice(0,B):[];f.value=o,M.value=Math.max(o.length,Number(a.total||0)),V.value=Math.min(B,Math.max(1,Number(a.limit||B))),F.value=a.truncated===!0||M.value>o.length,S.value=""}catch(a){if(!k(s)||n!==I.value)return;e.silent?S.value=`本轮已结束,但最新待生成清单读取失败:${H(a)}`:R.value=H(a)}finally{k(s)&&n===I.value&&(N.value=!1)}},U=s=>(s.results||[]).filter(n=>n.status==="error").map(n=>`${n.model_label||n.model_name}: ${n.error_message||"生成失败"}`).join(";")||"模型未返回完整报告",le=(s,e)=>{const n=Number(e.success_count||0),a=Number(e.failure_count||0),o=e.status==="partial"||e.partial===!0||n>0&&a>0,T=e.status==="error"||a>0&&n===0;return o?(q.value+=1,$.value.push({id:s.id,prescription_name:s.prescription_name||`处方 #${s.id}`,status:"partial",message:U(e)}),!0):T?(G.value+=1,$.value.push({id:s.id,prescription_name:s.prescription_name||`处方 #${s.id}`,status:"failed",message:U(e)}),!1):(W.value+=1,!0)},ae=(s,e)=>{G.value+=1,$.value.push({id:s.id,prescription_name:s.prescription_name||`处方 #${s.id}`,status:"failed",message:H(e)})},Y=()=>{!p.value||_.value||(_.value=!0)},ne=async()=>{if(p.value||!f.value.length)return;const s=z.value,e=f.value.slice(0,B);try{await L.confirm(`确定按顺序为 ${e.length} 份处方生成 AI 报告吗?每份会调用双模型,过程中可请求停止。`)}catch{return}if(!k(s)||p.value)return;K(),y.value=e.length,p.value=!0,S.value="";const n=new Set;try{for(const a of e){if(!k(s)||_.value)break;b.value=a;try{const o=await Ee({id:a.id});if(!k(s))return;le(a,o)&&n.add(a.id)}catch(o){if(!k(s))return;ae(a,o)}w.value+=1,b.value=null}}finally{if(!k(s))return;const a=_.value&&w.value!n.has(T.id)),M.value=Math.max(0,M.value-n.size)),w.value>0&&ee("changed");const o=P.value;if(P.value=null,o){o();return}if(await D(s,{silent:!0}),!k(s))return;a?L.msgWarning(`已停止,本轮共处理 ${w.value} 份处方`):G.value>0||q.value>0?L.msgWarning("批量生成已完成,请查看失败与部分成功明细"):L.msgSuccess("批量生成报告完成")}},oe=s=>{if(!p.value){s();return}Y(),P.value=s,L.msgWarning("已请求停止,当前处方完成后将关闭窗口")},ie=()=>{++z.value,++I.value,P.value=null,p.value=!1,O()};return X({open:()=>{if(p.value){E.value=!0;return}const s=++z.value;++I.value,O(),E.value=!0,D(s)}}),(s,e)=>{const n=ce,a=pe,o=fe,T=ve,x=ge,re=_e,A=he,J=ye,ue=ke;return r(),g(ue,{modelValue:t(E),"onUpdate:modelValue":e[3]||(e[3]=m=>be(E)?E.value=m:null),class:"prescription-ai-batch-dialog",width:"min(820px, calc(100vw - 32px))",top:"6vh",title:"批量生成处方 AI 报告","close-on-click-modal":!1,"destroy-on-close":"","before-close":oe,onClosed:ie},{footer:u(()=>[l("div",Ue,[t(p)?(r(),h("span",Ye,"生成请求不会自动重试,也不会并发执行。")):(r(),h("span",Je)),l("div",null,[t(p)?C("",!0):(r(),g(o,{key:0,onClick:e[2]||(e[2]=m=>E.value=!1)},{default:u(()=>[...e[20]||(e[20]=[v("关闭",-1)])]),_:1})),t(p)?(r(),g(o,{key:1,type:"warning",plain:"",disabled:t(_),onClick:Y},{default:u(()=>[v(i(t(_)?"正在停止…":"停止"),1)]),_:1},8,["disabled"])):(r(),g(o,{key:2,type:"primary",disabled:t(N)||!!t(R)||!t(f).length,onClick:ne},{default:u(()=>[v(i(t(y)>0?"继续生成剩余报告":"开始批量生成"),1)]),_:1},8,["disabled"]))])])]),default:u(()=>[l("div",$e,[c(n,{type:"info",closable:!1,"show-icon":"",title:"仅统计完全没有任何 AI 报告的处方;已有报告不会被本批次覆盖。"}),t(N)?(r(),h("div",xe,[c(a,{rows:5,animated:""})])):t(R)?(r(),h("div",Ae,[c(T,{description:"待生成清单加载失败","image-size":72},{default:u(()=>[l("p",Be,i(t(R)),1),c(o,{type:"primary",plain:"",onClick:e[0]||(e[0]=m=>D())},{default:u(()=>[...e[4]||(e[4]=[v("重新加载",-1)])]),_:1})]),_:1})])):(r(),h(me,{key:2},[l("section",Ie,[l("div",null,[e[5]||(e[5]=l("span",{class:"overview-label"},"当前完全缺失报告",-1)),l("strong",null,i(t(M)),1),e[6]||(e[6]=l("span",{class:"overview-unit"},"份处方",-1))]),l("div",Re,[v(" 本次载入 "+i(t(f).length)+" 份 ",1),c(x,{size:"small",type:"info",effect:"plain"},{default:u(()=>[v("上限 "+i(t(V)),1)]),_:1})])]),t(S)?(r(),h("div",Se,[c(n,{type:"error",closable:!1,"show-icon":"",title:t(S)},null,8,["title"]),c(o,{type:"primary",plain:"",onClick:e[1]||(e[1]=m=>D())},{default:u(()=>[...e[7]||(e[7]=[v("重新读取清单",-1)])]),_:1})])):C("",!0),t(F)?(r(),g(n,{key:1,class:"truncated-alert",type:"warning",closable:!1,"show-icon":"",title:t(se)},null,8,["title"])):C("",!0),t(p)||t(y)>0?(r(),h("section",Te,[l("div",ze,[l("div",null,[e[8]||(e[8]=l("span",{class:"section-kicker"},"本轮进度",-1)),l("strong",null,i(t(w))+" / "+i(t(y)),1)]),t(p)&&!t(_)?(r(),g(x,{key:0,type:"primary"},{default:u(()=>[...e[9]||(e[9]=[v("顺序生成中",-1)])]),_:1})):t(p)&&t(_)?(r(),g(x,{key:1,type:"warning"},{default:u(()=>[...e[10]||(e[10]=[v("等待当前请求完成",-1)])]),_:1})):t(j)==="stopped"?(r(),g(x,{key:2,type:"warning"},{default:u(()=>[...e[11]||(e[11]=[v("已停止",-1)])]),_:1})):(r(),g(x,{key:3,type:"success"},{default:u(()=>[...e[12]||(e[12]=[v("本轮完成",-1)])]),_:1}))]),c(re,{percentage:t(te),"stroke-width":10},null,8,["percentage"]),t(b)?(r(),h("div",Ne,[e[13]||(e[13]=l("span",null,"当前处方",-1)),l("strong",null,i(t(b).prescription_name||`处方 #${t(b).id}`),1),l("small",null,"#"+i(t(b).id)+" · "+i(t(b).formula_type||"未分类"),1)])):C("",!0),l("div",Ge,[l("div",Le,[e[14]||(e[14]=l("span",null,"已处理",-1)),l("strong",null,i(t(w)),1)]),l("div",Ve,[e[15]||(e[15]=l("span",null,"成功",-1)),l("strong",null,i(t(W)),1)]),l("div",qe,[e[16]||(e[16]=l("span",null,"部分成功",-1)),l("strong",null,i(t(q)),1)]),l("div",Pe,[e[17]||(e[17]=l("span",null,"失败",-1)),l("strong",null,i(t(G)),1)])]),t(_)&&t(p)?(r(),g(n,{key:1,class:"stop-alert",type:"warning",closable:!1,"show-icon":"",title:"已请求停止;当前处方生成完成后,不会继续发起下一条请求。"})):C("",!0)])):C("",!0),t($).length?(r(),h("section",De,[l("div",Fe,[e[18]||(e[18]=l("div",null,[l("span",{class:"section-kicker"},"失败清单"),l("strong",null,"失败与部分成功明细")],-1)),c(x,{type:"danger",effect:"plain"},{default:u(()=>[v(i(t($).length)+" 条",1)]),_:1})]),c(J,{data:t($),"max-height":"240",size:"small"},{default:u(()=>[c(A,{label:"处方","min-width":"180"},{default:u(({row:m})=>[l("div",je,i(m.prescription_name),1),l("small",null,"#"+i(m.id),1)]),_:1}),c(A,{label:"结果",width:"100"},{default:u(({row:m})=>[c(x,{size:"small",type:m.status==="partial"?"warning":"danger"},{default:u(()=>[v(i(m.status==="partial"?"部分成功":"失败"),1)]),_:2},1032,["type"])]),_:1}),c(A,{label:"原因","min-width":"300","show-overflow-tooltip":"",prop:"message"})]),_:1},8,["data"])])):C("",!0),!t(f).length&&!t(p)?(r(),g(T,{key:4,description:t(y)>0?"当前范围已无待生成处方":"暂无完全缺失 AI 报告的处方","image-size":76},{default:u(()=>[l("p",We,i(t(y)>0?"已重新读取数据库中的最新待生成清单。":"所有可见处方均已有至少一份持久化报告。"),1)]),_:1},8,["description"])):t(p)?C("",!0):(r(),h("section",He,[l("div",Ke,[e[19]||(e[19]=l("div",null,[l("span",{class:"section-kicker"},"待生成清单"),l("strong",null,"本次将按以下顺序逐条处理")],-1)),l("span",Oe,i(t(f).length)+" 份",1)]),c(J,{data:t(f),"max-height":"280",size:"small"},{default:u(()=>[c(A,{label:"ID",prop:"id",width:"80"}),c(A,{label:"处方名称",prop:"prescription_name","min-width":"220","show-overflow-tooltip":""}),c(A,{label:"类型",prop:"formula_type",width:"100"}),c(A,{label:"药材数",width:"100",align:"right"},{default:u(({row:m})=>[v(i(m.herb_count)+" 味",1)]),_:1})]),_:1},8,["data"])]))],64))])]),_:1},8,["modelValue"])}}}),lt=Me(Qe,[["__scopeId","data-v-e1699253"]]);export{lt as default}; diff --git a/server/public/admin/assets/PrescriptionAiReportDialog-DqUaPOfy.js b/server/public/admin/assets/PrescriptionAiReportDialog-CbJLuZ8F.js similarity index 99% rename from server/public/admin/assets/PrescriptionAiReportDialog-DqUaPOfy.js rename to server/public/admin/assets/PrescriptionAiReportDialog-CbJLuZ8F.js index 33101715a..a986d39d6 100644 --- a/server/public/admin/assets/PrescriptionAiReportDialog-DqUaPOfy.js +++ b/server/public/admin/assets/PrescriptionAiReportDialog-CbJLuZ8F.js @@ -1,4 +1,4 @@ -import{o as $e,q as i,O as f,D as n,r as k,s as o,T as y,v as g,bo as Je,P as b,b_ as We,bC as Ke,K as Xe,L as _,bm as Ye,Y as He,F as Ie,G as Qe,X as Ze,ac as et,a2 as tt,aA as rt,u as X,bn as st,ae as at,aB as ot,y as re,M as R,aC as it,p as q}from"./.pnpm-CyuAWpdG.js";import{c as nt,d as lt,b as ut}from"./tcm-QAkeqQ9Q.js";import{u as pt,j as B,_ as dt}from"./index-Dxvz9lb1.js";const ct={class:"dialog-heading"},ft=["id"],vt={key:0,class:"report-shell"},mt={class:"prescription-snapshot"},yt={class:"snapshot-content"},_t={key:1,class:"report-loading"},gt={key:2,class:"report-error"},bt={class:"error-message"},kt={key:3,class:"report-error"},Et={class:"model-tab-label"},ht={class:"model-name"},Rt={class:"report-pane","element-loading-text":"正在重新生成整个诊断报告…"},wt={key:0,class:"report-error"},At={class:"error-message"},Ct={class:"report-document"},St={class:"report-meta"},xt={class:"report-meta-main"},$t={class:"report-title-line"},It={class:"report-times"},Tt={key:0},Vt={key:1,class:"report-editor"},Bt={class:"editor-actions"},zt={key:0,class:"report-summary"},Lt={class:"report-grid"},Nt={class:"report-section"},Pt={class:"report-section"},Dt={class:"report-section"},Ft={class:"report-section"},Ot={key:1,class:"report-section report-section-wide"},jt={class:"report-cautions"},qt={class:"report-disclaimer"},Ut={key:3,class:"report-section report-section-wide"},Gt={class:"raw-content"},Mt=$e({__name:"PrescriptionAiReportDialog",setup(Jt,{expose:Te}){const U=$e({name:"PrescriptionAiReportList",props:{items:{type:Array,default:()=>[]},emptyText:{type:String,default:"暂无"}},setup(t){return()=>t.items.length?re("ul",{class:"report-list"},t.items.map(e=>re("li",{key:e},e))):re("p",{class:"report-empty-text"},t.emptyText)}}),x=[{profile:"qwen",label:"千问",name:"qwen3.6-35b"},{profile:"openai",label:"OpenAI",name:"gpt-5.6-sol"}],Ve=["tcm.prescriptionLibrary/editAiReport","wcf.prescription/editAiReport"],Y=()=>({error:"",data:null,editing:!1,structuredEdit:!1,saving:!1,draft:"",originalContent:"",editError:""}),Be=pt(),z=R(!1),E=R(null),L=R("qwen"),I=R(0),N=R(0),T=R(!1),$=R(""),h=R(!1),A=R(""),S=R(!1),P=R(!1),s=it({qwen:Y(),openai:Y()}),ze=q(()=>{var e;const t=((e=E.value)==null?void 0:e.herbs)||[];return t.length?t.map(a=>`${a.name||"未命名药材"} ${a.dosage??"-"}g`).join("、"):"暂无药材"}),H=q(()=>x.some(({profile:t})=>!!(s[t].data||s[t].error))),D=q(()=>x.some(({profile:t})=>s[t].saving)),F=q(()=>x.some(({profile:t})=>s[t].editing)),Le=q(()=>{const t=Be.perms||[];return t.includes("*")||Ve.some(e=>t.includes(e))}),Q=()=>{x.forEach(({profile:t})=>Object.assign(s[t],Y()))},G=t=>{if(typeof t=="string"&&t.trim())return t;if(t&&typeof t=="object"){const e=t,a=e.msg||e.message||e.error;if(typeof a=="string"&&a.trim())return a}return"模型服务暂时不可用,请稍后重试"},C=t=>t===I.value&&z.value&&!!E.value,se=t=>{var l,m;Q(),S.value=t.can_refresh===!0||((l=t.capabilities)==null?void 0:l.can_refresh)===!0,P.value=t.can_edit===!0||((m=t.capabilities)==null?void 0:m.can_edit)===!0,(Array.isArray(t.reports)?t.reports:[]).forEach(c=>{const v=s[c.model_key];v&&(v.data=c)}),(Array.isArray(t.results)?t.results:[]).forEach(c=>{const v=s[c.model_key];!v||c.status!=="error"||(v.error=c.error_message||"该模型报告生成失败,请重新生成整个报告")});const u=s[L.value];if(!u.data&&!u.error){const c=x.find(({profile:v})=>s[v].data||s[v].error);c&&(L.value=c.profile)}},Z=async(t=I.value,e={})=>{const a=E.value;if(!a)return;const u=++N.value;e.silent||(T.value=!0,$.value="");try{const l=await nt({id:a.id});if(!C(t)||u!==N.value)return;se(l),$.value=""}catch(l){if(!C(t)||u!==N.value)return;e.silent?A.value=`报告已保存,但刷新最新内容失败:${G(l)}`:$.value=G(l)}finally{C(t)&&u===N.value&&!e.silent&&(T.value=!1)}},Ne=async()=>{const t=E.value;if(!t||h.value)return;if(F.value){B.msgWarning("请先保存或取消正在编辑的报告");return}const e=I.value;h.value=!0,A.value="";try{const a=await ut({id:t.id});if(!C(e))return;se(a),a.status==="partial"?(A.value="部分模型重新生成失败;成功结果已保存,失败模型仍显示上一次保存版本。",B.msgWarning("诊断报告部分生成成功")):a.status==="error"?(A.value="全部模型重新生成失败,已保留原有报告。",B.msgError("诊断报告生成失败")):B.msgSuccess("诊断报告已生成并保存")}catch(a){if(!C(e))return;A.value=G(a)}finally{C(e)&&(h.value=!1)}},M=async()=>{if(H.value)try{await B.confirm("重新生成会再次调用全部模型,并以新结果覆盖当前诊断报告。确定继续吗?")}catch{return}await Ne()},ae=t=>x.find(e=>e.profile===t),oe=t=>{var e;return((e=s[t].data)==null?void 0:e.model_label)||ae(t).label},ie=t=>{var e;return((e=s[t].data)==null?void 0:e.model_name)||ae(t).name},Pe=t=>{const e=s[t].data;return(e==null?void 0:e.generated_at)||"—"},ne=t=>{const e=s[t].data;return(e==null?void 0:e.edited_at)||""},De=t=>{const e=s[t].data;return(e==null?void 0:e.is_edited)===!0},Fe=t=>{var e;return!!((e=s[t].data)!=null&&e.report)},J=["核心判断","可能症状与证候","主治方向","主要功效","可能适用人群","配伍分析","用药与复核提醒","免责声明"],le=t=>{const e=t.replace(/^\uFEFF/,"").replace(/\r\n?/g,` +import{o as $e,q as i,O as f,D as n,r as k,s as o,T as y,v as g,bo as Je,P as b,b_ as We,bC as Ke,K as Xe,L as _,bm as Ye,Y as He,F as Ie,G as Qe,X as Ze,ac as et,a2 as tt,aA as rt,u as X,bn as st,ae as at,aB as ot,y as re,M as R,aC as it,p as q}from"./.pnpm-CyuAWpdG.js";import{c as nt,d as lt,b as ut}from"./tcm-BSADvQNg.js";import{u as pt,j as B,_ as dt}from"./index-Bkarz3gO.js";const ct={class:"dialog-heading"},ft=["id"],vt={key:0,class:"report-shell"},mt={class:"prescription-snapshot"},yt={class:"snapshot-content"},_t={key:1,class:"report-loading"},gt={key:2,class:"report-error"},bt={class:"error-message"},kt={key:3,class:"report-error"},Et={class:"model-tab-label"},ht={class:"model-name"},Rt={class:"report-pane","element-loading-text":"正在重新生成整个诊断报告…"},wt={key:0,class:"report-error"},At={class:"error-message"},Ct={class:"report-document"},St={class:"report-meta"},xt={class:"report-meta-main"},$t={class:"report-title-line"},It={class:"report-times"},Tt={key:0},Vt={key:1,class:"report-editor"},Bt={class:"editor-actions"},zt={key:0,class:"report-summary"},Lt={class:"report-grid"},Nt={class:"report-section"},Pt={class:"report-section"},Dt={class:"report-section"},Ft={class:"report-section"},Ot={key:1,class:"report-section report-section-wide"},jt={class:"report-cautions"},qt={class:"report-disclaimer"},Ut={key:3,class:"report-section report-section-wide"},Gt={class:"raw-content"},Mt=$e({__name:"PrescriptionAiReportDialog",setup(Jt,{expose:Te}){const U=$e({name:"PrescriptionAiReportList",props:{items:{type:Array,default:()=>[]},emptyText:{type:String,default:"暂无"}},setup(t){return()=>t.items.length?re("ul",{class:"report-list"},t.items.map(e=>re("li",{key:e},e))):re("p",{class:"report-empty-text"},t.emptyText)}}),x=[{profile:"qwen",label:"千问",name:"qwen3.6-35b"},{profile:"openai",label:"OpenAI",name:"gpt-5.6-sol"}],Ve=["tcm.prescriptionLibrary/editAiReport","wcf.prescription/editAiReport"],Y=()=>({error:"",data:null,editing:!1,structuredEdit:!1,saving:!1,draft:"",originalContent:"",editError:""}),Be=pt(),z=R(!1),E=R(null),L=R("qwen"),I=R(0),N=R(0),T=R(!1),$=R(""),h=R(!1),A=R(""),S=R(!1),P=R(!1),s=it({qwen:Y(),openai:Y()}),ze=q(()=>{var e;const t=((e=E.value)==null?void 0:e.herbs)||[];return t.length?t.map(a=>`${a.name||"未命名药材"} ${a.dosage??"-"}g`).join("、"):"暂无药材"}),H=q(()=>x.some(({profile:t})=>!!(s[t].data||s[t].error))),D=q(()=>x.some(({profile:t})=>s[t].saving)),F=q(()=>x.some(({profile:t})=>s[t].editing)),Le=q(()=>{const t=Be.perms||[];return t.includes("*")||Ve.some(e=>t.includes(e))}),Q=()=>{x.forEach(({profile:t})=>Object.assign(s[t],Y()))},G=t=>{if(typeof t=="string"&&t.trim())return t;if(t&&typeof t=="object"){const e=t,a=e.msg||e.message||e.error;if(typeof a=="string"&&a.trim())return a}return"模型服务暂时不可用,请稍后重试"},C=t=>t===I.value&&z.value&&!!E.value,se=t=>{var l,m;Q(),S.value=t.can_refresh===!0||((l=t.capabilities)==null?void 0:l.can_refresh)===!0,P.value=t.can_edit===!0||((m=t.capabilities)==null?void 0:m.can_edit)===!0,(Array.isArray(t.reports)?t.reports:[]).forEach(c=>{const v=s[c.model_key];v&&(v.data=c)}),(Array.isArray(t.results)?t.results:[]).forEach(c=>{const v=s[c.model_key];!v||c.status!=="error"||(v.error=c.error_message||"该模型报告生成失败,请重新生成整个报告")});const u=s[L.value];if(!u.data&&!u.error){const c=x.find(({profile:v})=>s[v].data||s[v].error);c&&(L.value=c.profile)}},Z=async(t=I.value,e={})=>{const a=E.value;if(!a)return;const u=++N.value;e.silent||(T.value=!0,$.value="");try{const l=await nt({id:a.id});if(!C(t)||u!==N.value)return;se(l),$.value=""}catch(l){if(!C(t)||u!==N.value)return;e.silent?A.value=`报告已保存,但刷新最新内容失败:${G(l)}`:$.value=G(l)}finally{C(t)&&u===N.value&&!e.silent&&(T.value=!1)}},Ne=async()=>{const t=E.value;if(!t||h.value)return;if(F.value){B.msgWarning("请先保存或取消正在编辑的报告");return}const e=I.value;h.value=!0,A.value="";try{const a=await ut({id:t.id});if(!C(e))return;se(a),a.status==="partial"?(A.value="部分模型重新生成失败;成功结果已保存,失败模型仍显示上一次保存版本。",B.msgWarning("诊断报告部分生成成功")):a.status==="error"?(A.value="全部模型重新生成失败,已保留原有报告。",B.msgError("诊断报告生成失败")):B.msgSuccess("诊断报告已生成并保存")}catch(a){if(!C(e))return;A.value=G(a)}finally{C(e)&&(h.value=!1)}},M=async()=>{if(H.value)try{await B.confirm("重新生成会再次调用全部模型,并以新结果覆盖当前诊断报告。确定继续吗?")}catch{return}await Ne()},ae=t=>x.find(e=>e.profile===t),oe=t=>{var e;return((e=s[t].data)==null?void 0:e.model_label)||ae(t).label},ie=t=>{var e;return((e=s[t].data)==null?void 0:e.model_name)||ae(t).name},Pe=t=>{const e=s[t].data;return(e==null?void 0:e.generated_at)||"—"},ne=t=>{const e=s[t].data;return(e==null?void 0:e.edited_at)||""},De=t=>{const e=s[t].data;return(e==null?void 0:e.is_edited)===!0},Fe=t=>{var e;return!!((e=s[t].data)!=null&&e.report)},J=["核心判断","可能症状与证候","主治方向","主要功效","可能适用人群","配伍分析","用药与复核提醒","免责声明"],le=t=>{const e=t.replace(/^\uFEFF/,"").replace(/\r\n?/g,` `).split(` `),a=[];for(const p of J){const d=e.reduce((w,V,te)=>(V.trim()===p&&w.push(te),w),[]);if(!d.length)return{ok:!1,error:`缺少章节标题“${p}”。请保留全部八个中文章节标题后再保存。`};if(d.length>1)return{ok:!1,error:`章节标题“${p}”出现了多次,请仅保留一个标题。`};a.push(d[0])}for(let p=1;p{const d=a[p]+1,w=a[p+1]??e.length;return e.slice(d,w).join(` `).trim()},l=J.map((p,d)=>u(d)),m=l.findIndex(p=>!p);if(m>=0)return{ok:!1,error:`章节“${J[m]}”内容不能为空;如无内容请填写“暂无”。`};const c=p=>p==="暂无"?"":p,v=p=>p==="暂无"?[]:p.split(` diff --git a/server/public/admin/assets/PrescriptionOrderDetailDrawer-B4rggqa1.css b/server/public/admin/assets/PrescriptionOrderDetailDrawer-B4rggqa1.css deleted file mode 100644 index 825b78c67..000000000 --- a/server/public/admin/assets/PrescriptionOrderDetailDrawer-B4rggqa1.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.po-detail-drawer[data-v-3fe6d04f] .el-drawer__header{margin-bottom:0;padding:16px 24px;border-bottom:1px solid var(--el-border-color-lighter)}.stat-card[data-v-3fe6d04f]{border-radius:8px}.stat-title[data-v-3fe6d04f]{font-weight:500}.po-panel[data-v-3fe6d04f]{border-radius:8px;transition:all .3s}.po-panel[data-v-3fe6d04f] .el-card__header{padding:14px 16px;background-color:var(--el-bg-color-page);border-bottom:1px solid var(--el-border-color-lighter)}.po-panel[data-v-3fe6d04f] .el-card__body{padding:16px}.po-desc[data-v-3fe6d04f] .el-descriptions__label{width:120px;color:var(--el-text-color-regular)}.po-audit-remark[data-v-3fe6d04f]{color:var(--el-color-danger);font-weight:600;white-space:pre-wrap;word-break:break-word}.audit-stamp[data-v-3fe6d04f]{position:absolute;top:18px;right:-14px;width:72px;height:72px;border:3px solid currentColor;border-radius:50%;display:flex;align-items:center;justify-content:center;transform:rotate(20deg);opacity:.8;pointer-events:none;z-index:10;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-weight:700;font-size:13px;letter-spacing:1px;box-shadow:inset 0 0 0 1px #ffffff80}.audit-stamp[data-v-3fe6d04f]:after{content:"";position:absolute;top:4px;left:4px;right:4px;bottom:4px;border:1px double currentColor;border-radius:50%;opacity:.6}.audit-stamp .stamp-inner[data-v-3fe6d04f]{text-align:center;line-height:1.1}.stamp-pass[data-v-3fe6d04f]{color:var(--el-color-success)}.stamp-reject[data-v-3fe6d04f]{color:var(--el-color-danger)}.po-diagnosis-creator-dept-breadcrumb[data-v-3fe6d04f] .el-breadcrumb__item{display:inline-flex;float:none}.po-diagnosis-creator-dept-breadcrumb[data-v-3fe6d04f] .el-breadcrumb__separator{margin:0 2px 0 4px} diff --git a/server/public/admin/assets/PrescriptionOrderDetailDrawer-CX7YbddA.js b/server/public/admin/assets/PrescriptionOrderDetailDrawer-CX7YbddA.js new file mode 100644 index 000000000..d20ca01e2 --- /dev/null +++ b/server/public/admin/assets/PrescriptionOrderDetailDrawer-CX7YbddA.js @@ -0,0 +1 @@ +import{o as kt,ap as Mt,bp as Ht,q as s,O as m,B as Jt,D as a,b_ as Kt,r as c,bo as Wt,s as n,L as u,T as i,P as p,F as O,G as F,bm as Gt,v as r,b$ as Qt,c0 as Xt,u as w,bj as Yt,ac as R,K as Zt,ae as W,c1 as ea,c2 as ta,bk as aa,bl as sa,bC as la,bB as ra,U as ia,S as na,aA as oa,bc as ua,bh as da,bi as pa,w as ca,bz as ma,c3 as _a,bt as ya,ba as va,c4 as fa,c5 as ga,aB as ba,bd as xa,bb as ka,J as wa,ah as ut,p as k,M as z,aC as dt,n as ha}from"./.pnpm-CyuAWpdG.js";import{e as Na,f as Sa,h as Va,i as Pa,j as Oa,k as za,l as La,m as Ta}from"./tcm-BSADvQNg.js";import{u as Ua,j as q,n as Aa,_ as Da}from"./index-Bkarz3gO.js";import{f as Ce,a as pt,c as ct,b as Ee,d as Ca,e as Ea,g as Ie,p as mt,o as _t,h as yt,i as vt,j as Ia,l as ja,k as Ra,m as ft,n as qa,q as Ba,T as $a,P as gt,r as Fa,s as Ma,t as bt,u as Ha,v as xt,w as Ja,x as Ka,y as Wa}from"./prescription-order-utils-CXfs2Bra.js";const Ga={class:"po-detail-drawer-head flex items-center justify-between"},Qa={class:"flex items-center"},Xa={key:0,class:"flex items-center gap-2 mr-6"},Ya={key:1,class:"po-detail-body px-6 pb-6 h-full overflow-y-auto"},Za={class:"text-sm leading-relaxed"},es={class:"font-mono font-semibold text-red-700"},ts={class:"font-mono font-semibold text-red-700"},as={class:"text-sm leading-relaxed space-y-1.5"},ss={key:0,class:"flex flex-wrap gap-1.5 items-center"},ls={key:1,class:"list-disc pl-5 space-y-1 text-red-50"},rs={key:2,class:"bg-gray-50/80 border border-gray-100 rounded-lg p-5 mb-5 shadow-sm"},is={key:0,class:"text-red-500 font-medium"},ns={key:1},os={key:2,class:"text-green-600"},us={key:3,class:"text-gray-400"},ds={key:0,class:"text-red-500 font-medium"},ps={key:1},cs={key:2,class:"text-green-600"},ms={key:3,class:"text-gray-400"},_s={key:0,class:"text-amber-600 font-medium"},ys={key:1,class:"text-primary font-medium"},vs={key:2},fs={key:3,class:"text-green-600"},gs={key:4,class:"text-red-500 font-medium"},bs={class:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-4 mb-5"},xs={class:"flex items-center justify-between mb-1"},ks={class:"stat-value text-red-500 font-bold text-xl"},ws={class:"stat-value text-green-600 font-bold text-xl"},hs={class:"stat-value text-primary font-bold text-xl"},Ns={class:"grid grid-cols-1 md:grid-cols-2 gap-4 mb-4"},Ss={key:0,class:"audit-stamp stamp-pass"},Vs={key:1,class:"audit-stamp stamp-reject"},Ps={class:"flex items-center justify-between"},Os={class:"flex items-center gap-3"},zs={key:0,class:"text-xs text-gray-500"},Ls={class:"text-primary font-medium"},Ts={class:"text-xs text-gray-400"},Us={class:"text-red-500 font-medium"},As={class:"flex flex-col gap-1 text-sm leading-relaxed"},Ds={key:0,class:"text-gray-500 mr-1"},Cs={key:1,class:"ml-2 text-gray-500"},Es={key:0},Is={key:1,class:"ml-2 text-gray-500"},js={class:"flex items-center gap-1"},Rs={class:"flex flex-col gap-1.5 text-sm leading-relaxed"},qs={key:0},Bs={key:0,class:"mt-4"},$s={class:"flex flex-col gap-4 h-full"},Fs={class:"text-red-500"},Ms={key:0,class:"audit-stamp stamp-pass"},Hs={key:1,class:"audit-stamp stamp-reject"},Js={class:"flex items-center justify-between"},Ks={class:"flex items-center gap-3"},Ws={key:0,class:"text-xs text-gray-500"},Gs={class:"text-primary font-medium"},Qs={class:"text-red-500"},Xs={class:"font-mono"},Ys={key:0,class:"text-[13px] space-y-1"},Zs={class:"font-medium text-gray-900"},el={key:0,class:"text-gray-500 ml-2 font-mono text-xs"},tl={key:0,class:"text-gray-600 text-xs leading-relaxed"},al={key:1,class:"text-gray-400"},sl={key:0,class:"space-y-1.5"},ll={class:"text-gray-800 break-all"},rl={key:1,class:"text-gray-400"},il={class:"flex flex-wrap items-center gap-x-4 gap-y-1 text-[13px]"},nl={class:"font-mono text-primary"},ol={class:"text-gray-500"},ul={key:0},dl={key:1,class:"text-gray-500"},pl={key:0,class:"text-xs text-gray-500 mt-1"},cl={key:1,class:"text-gray-400"},ml={class:"po-audit-remark"},_l={class:"po-audit-remark"},yl={class:"flex items-center gap-2 flex-wrap"},vl={class:"text-xs text-gray-400 font-mono"},fl={key:0,class:"po-logistics-tip text-gray-400 text-xs mb-3 font-normal"},gl={class:"flex flex-wrap items-center gap-3 mb-4"},bl={key:1,class:"ml-2 flex items-center gap-4 border-l pl-4 border-gray-200"},xl={key:2,class:"py-6 text-center text-sm text-gray-500"},kl={key:3,class:"logistics-content bg-gray-50/50 p-4 rounded-md"},wl={key:0,class:"text-sm mb-4 font-medium flex items-center gap-2"},hl={class:"text-gray-800"},Nl={key:1,class:"text-xs text-gray-400 ml-1"},Sl={key:2,class:"text-xs text-gray-400"},Vl={class:"flex items-center justify-between gap-2"},Pl={class:"flex items-center gap-2 mb-1"},Ol={class:"font-medium text-[13px]"},zl={key:0,class:"text-xs text-gray-400 mt-1"},Ll={key:0,class:"text-xs text-gray-400 mt-1"},Tl={key:0,class:"text-xs font-medium text-gray-500 mb-3"},Ul={class:"flex items-center gap-1 w-full"},Al={class:"flex items-center gap-1 w-full"},Dl={class:"flex items-center gap-1 w-full"},Cl=kt({name:"PrescriptionOrderDetailDrawer"}),El=kt({...Cl,props:{readonly:{type:Boolean,default:!1},gancaoPreviewLoading:{type:Boolean,default:!1},appendToBody:{type:Boolean,default:!1},detailLoader:{type:Function,default:void 0},loadRelatedData:{type:Boolean,default:!0}},emits:["update-amount","patch-rx-patient","view-prescription","test-gancao-preview","view-patient","detail-changed"],setup(x,{expose:wt,emit:ht}){const I=x,B=ht,ee=Ua(),ge=k(()=>{const t=ee.userInfo;if(!t||Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(o=>Number(o)):[];return e.includes($a)?e.some(o=>gt.includes(o)):!0}),$=z(!1),be=z(!1),l=z(null),G=z([]),Q=z([]),te=z(null),je=k(()=>!I.readonly&&ct(l.value)&&Ge("tcm.prescriptionOrder/unlinkPayOrder"));async function Nt(t){var y,v,S;const e=Number((y=l.value)==null?void 0:y.id),o=Number(t.id);if(!(!je.value||!e||!o||te.value!==null)&&[2,5].includes(Number(t.status))){te.value=o;try{if(await q.confirm(`确定移除收款记录「${t.order_no||"#"+o}」(¥${Ee(t.amount)})?仅解除关联,原收款记录保留;订单总金额不变,已付金额与需代收金额按剩余关联收款重新计算。`),!$.value||Number((v=l.value)==null?void 0:v.id)!==e)return;const U=await Na({id:e,pay_order_id:o}),h=(U==null?void 0:U.data)??U;Number((S=l.value)==null?void 0:S.id)===e&&Number(h==null?void 0:h.id)===e&&Object.assign(l.value,h),q.msgSuccess("收款关联已移除,金额已同步更新"),B("detail-changed"),await tt(e)}catch{}finally{te.value=null}}}const _=k(()=>{var e;const t=(e=l.value)==null?void 0:e.prescription;return t&&typeof t=="object"?t:null}),Re=k(()=>{var t;return Fa((t=_.value)==null?void 0:t.dietary_taboo)}),xe=k(()=>{const t=l.value;if(!t)return[];const e=t.linked_pay_orders;return Array.isArray(e)?e:[]}),qe=k(()=>{const t=l.value;if(!t)return 0;const e=t.agency_collect_amount;if(e!=null&&e!=="")return Number(e)||0;const o=Number(t.amount)||0,y=Number(t.linked_pay_paid_total)||0;return Math.round((o-y)*100)/100}),ue=k(()=>{if(!l.value)return 0;const t=Number(l.value.fulfillment_status),e=Number(l.value.prescription_audit_status),o=Number(l.value.payment_slip_audit_status);return t===3||[8,9,10,11,12].includes(t)?5:t===6||t===5||t===7?4:t===4?e===2?1:o===2?2:3:t===2?3:e===0||e===2?1:o===0||o===2?2:3}),de=k(()=>{var e;const t=Number((e=l.value)==null?void 0:e.prescription_audit_status);return t===1?"success":t===2?"error":ue.value===1?"process":"wait"}),pe=k(()=>{var e;const t=Number((e=l.value)==null?void 0:e.payment_slip_audit_status);return t===1?"success":t===2?"error":ue.value===2?"process":"wait"}),X=k(()=>{var e;const t=Number((e=l.value)==null?void 0:e.fulfillment_status);return t===3||t===5||t===6||t===8||t===11||t===12?"success":t===4||t===9||t===10?"error":t===7||ue.value===3?"process":"wait"}),ae=k(()=>{var o,y;const t=(o=_.value)==null?void 0:o.phone,e=(y=l.value)==null?void 0:y.recipient_phone;return Ma(e,t)}),St=k(()=>{var e;return bt((e=_.value)==null?void 0:e.phone)||"—"}),Vt=k(()=>{var e;return bt((e=l.value)==null?void 0:e.recipient_phone)||"—"}),Be=k(()=>{var e,o;const t=String(((e=l.value)==null?void 0:e.order_creator_dept_path)??((o=l.value)==null?void 0:o.diagnosis_creator_dept_path)??"").trim();return t?t.split(";").map(y=>y.trim()).filter(Boolean).map(y=>y.includes(" / ")?y.split(" / ").map(v=>v.trim()).filter(Boolean):y.split("/").map(v=>v.trim()).filter(Boolean)).filter(y=>y.length>0):[]}),$e=k(()=>{const t=l.value;if(!t)return"";const e=String(t.creator_account??"").trim(),o=String(t.creator_mobile??"").trim(),y=[];return e&&y.push(`登录账号:${e}`),o&&y.push(`手机:${o}`),y.join(" · ")}),A=k(()=>{var e;const t=(e=l.value)==null?void 0:e.linked_appointment;return t&&typeof t=="object"?t:null}),Fe=k(()=>{var e;const t=String(((e=A.value)==null?void 0:e.resolved_from)||"");return t==="prescription"?"处方绑定挂号":t==="diagnosis"?"诊单关联挂号":""}),Me=k(()=>{const t=A.value;if(!t)return"";const e=String(t.channel_source_desc??"").trim();return e||String(t.channel_source??"").trim()}),He=k(()=>{var t;return Ha((t=_.value)==null?void 0:t.herbs)}),M=k(()=>xt(_.value)),T=k(()=>{const t=_.value;if(!t||!xt(t))return null;const e=t.aux_usage;return e==null||e===""||Array.isArray(e)&&e.length===0?null:Ja(e,t.prescription_type||"浓缩水丸")}),Pt=k(()=>{var t;return((t=l.value)==null?void 0:t.prescription_detail_herbs_visible)!==!1}),Je=k(()=>{var t,e;return!I.readonly&&((t=l.value)==null?void 0:t.internal_cost)!=null&&((e=l.value)==null?void 0:e.internal_cost)!==""}),Ot=k(()=>{const t=l.value;if(!t)return"—";const e=[];return t.shipping_province&&e.push(t.shipping_province),t.shipping_city&&e.push(t.shipping_city),t.shipping_district&&e.push(t.shipping_district),t.shipping_address&&e.push(t.shipping_address),e.length>0?e.join(" "):"—"}),ke=z([]);async function Ke(){if(!(ke.value.length>0))try{const t=await Aa({type:"server_order"}),e=qa(t==null?void 0:t.server_order);e.length>0&&(ke.value=e)}catch{}}const zt=k(()=>{var t;return Ka((t=l.value)==null?void 0:t.service_package,ke.value)});Mt(()=>{Ke()});function Lt(){const t=ee.perms||[];return t.includes("*")||t.includes("tcm.prescriptionOrder/logs")}async function We(t){if(!Lt()){G.value=[];return}try{const e=await za({id:t});G.value=(e==null?void 0:e.data)??e??[]}catch{G.value=[]}}function Ge(t){const e=ee.perms||[];return e.includes("*")||e.includes(t)}function Tt(){return Ge("tcm.prescriptionOrder/addLog")}const we=k(()=>{const t=ee.userInfo;return!t||Number(t.root)===1?!0:(Array.isArray(t.role_ids)?t.role_ids.map(o=>Number(o)):[]).some(o=>gt.includes(o))}),he=k(()=>{const t=ee.userInfo;return!t||Number(t.root)===1?!0:(Array.isArray(t.role_ids)?t.role_ids.map(o=>Number(o)):[]).some(o=>[0,3].includes(o))}),se=z(!1),Ne=z(!1),ce=z(),b=dt({summary:"",prescription_audit_status:"",payment_slip_audit_status:"",prescription_audit_remark:"",payment_slip_audit_remark:""}),Ut={summary:[{required:!0,message:"请填写日志内容",trigger:"blur"}]},le=z(!1),Se=z(!1),Ve=z(),f=dt({dosage_bag_count:1,times_per_day:3,usage_days:7,aux_times_per_day:3,aux_usage_days:7,aux_dosage_bag_count:1,medication_days:void 0}),At=k(()=>{var e,o;const t={times_per_day:[{required:!0,message:"请填写主方每天次数",trigger:"change"}],usage_days:[{required:!0,message:"请填写主方开立天数",trigger:"change"}],medication_days:[{required:!0,message:"请填写订单服用天数",trigger:"change"}]};return((e=_.value)==null?void 0:e.prescription_type)==="浓缩水丸"&&(t.dosage_bag_count=[{required:!0,message:"请选择主方每次袋数",trigger:"change"}]),M.value&&(t.aux_times_per_day=[{required:!0,message:"请填写辅方每天次数",trigger:"change"}],t.aux_usage_days=[{required:!0,message:"请填写辅方开立天数",trigger:"change"}],((o=_.value)==null?void 0:o.prescription_type)==="浓缩水丸"&&(t.aux_dosage_bag_count=[{required:!0,message:"请选择辅方每次袋数",trigger:"change"}])),t});function Pe(){const t=_.value,e=l.value;if(!t||!(e!=null&&e.id)||!e.prescription_id){q.msgWarning("无处方数据");return}const o=T.value;f.dosage_bag_count=Number(t.dosage_bag_count)>0?Number(t.dosage_bag_count):1,f.times_per_day=Number(t.times_per_day)>0?Number(t.times_per_day):3,f.usage_days=Number(t.usage_days)>0?Number(t.usage_days):7,f.aux_times_per_day=o&&Number(o.times_per_day)>0?Number(o.times_per_day):3,f.aux_usage_days=o&&Number(o.usage_days)>0?Number(o.usage_days):7;const y=Number(e.medication_days);f.aux_dosage_bag_count=o&&Number(o.dosage_bag_count)>0?Number(o.dosage_bag_count):1,f.medication_days=y>0?y:Number(t.usage_days)>0?Number(t.usage_days):7,le.value=!0,ha(()=>{var v;return(v=Ve.value)==null?void 0:v.clearValidate()})}function Dt(){f.dosage_bag_count=1,f.times_per_day=3,f.usage_days=7,f.aux_times_per_day=3,f.aux_usage_days=7,f.aux_dosage_bag_count=1,f.medication_days=void 0}async function Ct(){var o,y,v;const t=Ve.value;if(!t)return;try{await t.validate()}catch{return}const e=(o=l.value)==null?void 0:o.id;if(e){Se.value=!0;try{const S={id:e,times_per_day:Number(f.times_per_day),usage_days:Number(f.usage_days),medication_days:Number(f.medication_days)};((y=_.value)==null?void 0:y.prescription_type)==="浓缩水丸"&&(S.dosage_bag_count=Number(f.dosage_bag_count)),M.value&&(S.aux_times_per_day=Number(f.aux_times_per_day),S.aux_usage_days=Number(f.aux_usage_days),((v=_.value)==null?void 0:v.prescription_type)==="浓缩水丸"&&(S.aux_dosage_bag_count=Number(f.aux_dosage_bag_count))),await Sa(S),q.msgSuccess("保存成功"),le.value=!1,await _e(),B("detail-changed")}catch{}finally{Se.value=!1}}}function Qe(){var t;b.summary="",b.prescription_audit_status="",b.payment_slip_audit_status="",b.prescription_audit_remark="",b.payment_slip_audit_remark="",(t=ce.value)==null||t.clearValidate()}function Et(){var e;if(!((e=l.value)!=null&&e.id))return;Qe();const t=l.value;b.prescription_audit_remark=String(t.prescription_audit_remark||""),b.payment_slip_audit_remark=String(t.payment_slip_audit_remark||""),se.value=!0}async function It(){var t;if(!(!ce.value||!((t=l.value)!=null&&t.id))){await ce.value.validate(),Ne.value=!0;try{const e={id:l.value.id,summary:b.summary.trim()};we.value&&b.prescription_audit_status!==""&&b.prescription_audit_status!==null&&b.prescription_audit_status!==void 0&&(e.prescription_audit_status=b.prescription_audit_status,e.prescription_audit_remark=b.prescription_audit_remark),he.value&&b.payment_slip_audit_status!==""&&b.payment_slip_audit_status!==null&&b.payment_slip_audit_status!==void 0&&(e.payment_slip_audit_status=b.payment_slip_audit_status,e.payment_slip_audit_remark=b.payment_slip_audit_remark),await Va(e),q.msgSuccess("日志已添加"),se.value=!1,await _e(),B("detail-changed")}catch{}finally{Ne.value=!1}}}async function Xe(t,e,o){var y;if(!t){Q.value=[];return}try{const v=await La({diagnosis_id:t,prescription_order_id:e}),S=(v==null?void 0:v.lists)??((y=v==null?void 0:v.data)==null?void 0:y.lists)??[],U=Array.isArray(S)?S.filter(h=>!o.includes(h.id)):[];Q.value=U}catch{Q.value=[]}}const Y=z("auto"),me=z(!1),Oe=z(!1),L=z(null),re=z("");let ze=0;function Ye(){ze+=1,L.value=null}function Le(t){var e,o;return t.requestSeq!==ze||Number((e=l.value)==null?void 0:e.id)!==t.orderId?!1:String(((o=l.value)==null?void 0:o.tracking_number)||"").trim()===t.trackingNumber}const Te=k(()=>{var o;const t=String(((o=l.value)==null?void 0:o.tracking_number)||"").trim();if(!t)return{sf:"javascript:void(0)",jd:"javascript:void(0)",jt:"javascript:void(0)"};const e=encodeURIComponent(t);return{sf:`https://www.sf-express.com/cn/sc/dynamic_function/waybill/#search/bill-number/${e}`,jd:`https://www.jdl.com/#/trackQuery?waybillCode=${e}`,jt:`https://www.jtexpress.com.cn/index/query/gzquery.html?bills=${e}`}}),Ze=k(()=>{const t=L.value;return!t||!Array.isArray(t.traces)?[]:t.traces}),H=k(()=>Wa(L.value));async function ie(){var v,S;const t=Number((v=l.value)==null?void 0:v.id),e=String(((S=l.value)==null?void 0:S.tracking_number)||"").trim();if(!t||!e)return;const y={requestSeq:++ze,orderId:t,trackingNumber:e};me.value=!0;try{const U=String(re.value||"").replace(/\D/g,""),h={id:t,express_company:Y.value};U.length>=4&&(h.phone_tail=U);const D=await Pa(h);if(!Le(y))return;L.value=Ba(D,e,t)}catch{if(!Le(y))return;L.value=null}finally{Le(y)&&(me.value=!1)}}async function jt(){var o,y;const t=Number((o=l.value)==null?void 0:o.id),e=String(((y=l.value)==null?void 0:y.tracking_number)||"").trim();if(!t||!e){q.msgWarning("当前订单未填写快递单号");return}Oe.value=!0;try{const v=await Oa({id:t});q.msgSuccess((v==null?void 0:v.message)||"京东物流轨迹已更新"),await ie()}catch(v){q.msgError((v==null?void 0:v.message)||"京东物流更新失败")}finally{Oe.value=!1}}function et(t){return I.detailLoader?I.detailLoader({id:t}):Ta({id:t})}async function Rt(t){Ke(),l.value=null,Q.value=[],Ye(),Y.value="auto",re.value="",G.value=[],$.value=!0,be.value=!0;try{const e=await et(t),o=(e==null?void 0:e.data)??e??null;if(l.value=o,o){Y.value=String(o.express_company||"auto")||"auto";const y=String(o.recipient_phone||"").replace(/\D/g,"");re.value=y.length>=4?y:"",I.loadRelatedData&&String(o.tracking_number||"").trim()&&ie(),I.loadRelatedData&&We(t);const v=o.diagnosis_id,S=o.pay_order_ids||[];I.loadRelatedData&&v&&Xe(v,t,S)}}catch(e){q.msgError((e==null?void 0:e.message)||"加载失败"),$.value=!1}finally{be.value=!1}}async function _e(){var e,o;const t=Number((e=l.value)==null?void 0:e.id);if(t)try{const y=await et(t),v=(y==null?void 0:y.data)??y??null;if(!v)return;const S=String(((o=l.value)==null?void 0:o.tracking_number)||"").trim();l.value=v;const U=String(v.tracking_number||"").trim();I.loadRelatedData&&U&&U!==S&&(Ye(),Y.value=String(v.express_company||"auto")||"auto",ie()),I.loadRelatedData&&await We(t);const h=v.diagnosis_id;I.loadRelatedData&&h&&Xe(h,t,v.pay_order_ids||[])}catch{}}async function tt(t){var o;const e=Number(t);!$.value||!(e>0)||Number((o=l.value)==null?void 0:o.id)!==e||await _e()}function qt(){$.value=!1}return wt({open:Rt,refresh:_e,refreshIfCurrent:tt,close:qt,detail:l,visible:$}),(t,e)=>{const o=Gt,y=Kt,v=Wt,S=Xt,U=Qt,h=Zt,D=Yt,g=ta,at=ea,V=sa,Ue=aa,Z=la,Bt=na,$t=ia,ye=oa,C=pa,ne=da,Ae=ca,De=ya,st=ga,lt=fa,E=ka,rt=xa,it=ba,oe=wa,Ft=Jt,j=Ht("perms");return s(),m(Ft,{modelValue:$.value,"onUpdate:modelValue":e[23]||(e[23]=J=>$.value=J),class:"po-detail-drawer",size:"80%","destroy-on-close":"","close-on-click-modal":!1,"append-to-body":x.appendToBody},{header:a(()=>{var J,d,P;return[n("div",Ga,[n("div",Qa,[e[24]||(e[24]=n("span",{class:"po-detail-drawer-title text-gray-800 font-semibold text-lg"},"业务订单详情",-1)),(J=l.value)!=null&&J.order_no?(s(),m(o,{key:0,type:"primary",effect:"plain",round:"",class:"ml-3"},{default:a(()=>[u(i(l.value.order_no),1)]),_:1})):p("",!0),(d=l.value)!=null&&d.gancao_reciperl_order_no?(s(),m(o,{key:1,type:"success",effect:"plain",round:"",class:"ml-2"},{default:a(()=>[u("甘草 "+i(l.value.gancao_reciperl_order_no),1)]),_:1})):p("",!0),(P=l.value)!=null&&P.ej_pharmacy_order_no?(s(),m(o,{key:2,type:"warning",effect:"plain",round:"",class:"ml-2"},{default:a(()=>[u("洛阳 "+i(l.value.ej_pharmacy_order_no),1)]),_:1})):p("",!0),l.value?ut(t.$slots,"header-extra",{key:3,detail:l.value},void 0,!0):p("",!0)]),l.value?(s(),c("div",Xa,[ut(t.$slots,"header-actions",{detail:l.value},void 0,!0)])):p("",!0)])]}),default:a(()=>{var J;return[be.value?(s(),m(y,{key:0,rows:12,animated:"",class:"px-6 py-4"})):l.value?(s(),c("div",Ya,[!x.readonly&&ae.value?(s(),m(v,{key:0,type:"error",closable:!1,"show-icon":"",class:"mb-4 !items-start",title:"业务订单收货手机与处方登记手机不一致"},{default:a(()=>[n("div",Za,[n("div",null,[e[25]||(e[25]=u(" 处方手机: ",-1)),n("span",es,i(St.value),1)]),n("div",null,[e[26]||(e[26]=u(" 订单收货手机: ",-1)),n("span",ts,i(Vt.value),1)]),e[27]||(e[27]=n("div",{class:"text-gray-600 mt-1"},"请核对是否代收货或录入错误,避免物流与回访联系错人。",-1))])]),_:1})):p("",!0),!x.readonly&&H.value.show&&String(((J=l.value)==null?void 0:J.tracking_number)||"").trim()?(s(),m(v,{key:1,type:"error",effect:"dark",closable:!1,"show-icon":"",class:"mb-4 !items-start ring-2 ring-red-600/90 shadow-lg",title:"物流异常:轨迹中出现拒收 / 退回等字样,请优先跟进处理"},{default:a(()=>[n("div",as,[H.value.keywords.length?(s(),c("div",ss,[e[28]||(e[28]=n("span",{class:"text-red-100 text-xs"},"命中关键词:",-1)),(s(!0),c(O,null,F(H.value.keywords,d=>(s(),m(o,{key:d,type:"danger",effect:"plain",size:"small",class:"!border-white/40 !text-white"},{default:a(()=>[u(i(d),1)]),_:2},1024))),128))])):p("",!0),H.value.lines.length?(s(),c("ul",ls,[(s(!0),c(O,null,F(H.value.lines,(d,P)=>(s(),c("li",{key:P},i(d),1))),128))])):p("",!0),e[29]||(e[29]=n("div",{class:"text-xs text-red-100/90 pt-1 border-t border-white/15"}," 请核实是否需改址重发、拦截退件或协调患者签收,并在备注中记录处理结果。 ",-1))])]),_:1})):p("",!0),x.readonly?p("",!0):(s(),c("div",rs,[r(U,{active:ue.value,"align-center":"","finish-status":"success"},{default:a(()=>[r(S,{title:"业务订单创建",description:w(Ce)(l.value.create_time)},null,8,["description"]),r(S,{title:"处方单双审",status:de.value},{description:a(()=>[de.value==="error"?(s(),c("span",is,"处方被驳回")):de.value==="wait"?(s(),c("span",ns,"等待审核")):de.value==="success"?(s(),c("span",os,"双审通过")):(s(),c("span",us,"进行中"))]),_:1},8,["status"]),r(S,{title:"支付单审核",status:pe.value},{description:a(()=>[pe.value==="error"?(s(),c("span",ds,"支付审核驳回")):pe.value==="wait"?(s(),c("span",ps,"等待审核")):pe.value==="success"?(s(),c("span",cs,"审核通过")):(s(),c("span",ms,"进行中"))]),_:1},8,["status"]),r(S,{title:"发货与履约",status:X.value},{description:a(()=>{var d,P,N;return[X.value==="process"&&Number((d=l.value)==null?void 0:d.fulfillment_status)===7?(s(),c("span",_s,"进行中")):X.value==="process"?(s(),c("span",ys,"等待发货/补充单号")):X.value==="wait"?(s(),c("span",vs,"待转入履约")):X.value==="success"?(s(),c("span",fs,i(w(pt)((P=l.value)==null?void 0:P.fulfillment_status)),1)):X.value==="error"?(s(),c("span",gs,i(w(pt)((N=l.value)==null?void 0:N.fulfillment_status)),1)):p("",!0)]}),_:1},8,["status"]),r(S,{title:"订单完成"})]),_:1},8,["active"])])),n("div",bs,[r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[n("div",xs,[e[31]||(e[31]=n("div",{class:"stat-title text-gray-500 text-xs"},"总金额",-1)),!x.readonly&&w(ct)(l.value)?R((s(),m(h,{key:0,type:"primary",size:"small",link:"",onClick:e[0]||(e[0]=d=>B("update-amount"))},{default:a(()=>[...e[30]||(e[30]=[u(" 修改 ",-1)])]),_:1})),[[j,["tcm.prescriptionOrder/updateAmount"]]]):p("",!0)]),n("div",ks,"¥"+i(l.value.amount),1)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[32]||(e[32]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"已付总额",-1)),n("div",ws,"¥"+i(l.value.linked_pay_paid_total||0),1)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[33]||(e[33]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"退款金额",-1)),n("div",{class:W(["stat-value font-bold text-xl",Number(l.value.refund_amount)>0?"text-rose-500":"text-gray-400"])}," ¥"+i(w(Ee)(l.value.refund_amount||0)),3)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[34]||(e[34]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"需代收",-1)),n("div",{class:W(["stat-value font-bold text-xl",qe.value>0?"text-amber-600":"text-gray-500"])}," ¥"+i(w(Ee)(qe.value)),3)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[35]||(e[35]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"已付笔数",-1)),n("div",hs,i(xe.value.length)+" 笔",1)]),_:1})]),n("div",Ns,[r(D,{shadow:"never",class:"po-panel po-panel-rx border-gray-100 h-full relative overflow-hidden"},{header:a(()=>[n("div",Ps,[n("div",Os,[e[42]||(e[42]=n("span",{class:"font-medium text-[15px]"},"处方详情",-1)),l.value.doctor_name?(s(),c("span",zs,[e[38]||(e[38]=u(" 开方人:",-1)),n("span",Ls,i(l.value.doctor_name),1)])):p("",!0),!x.readonly&&l.value.prescription_id&&_.value&&!String(l.value.prescription_detail_error||"").trim()?R((s(),m(h,{key:1,type:"default",size:"small",link:"",onClick:e[1]||(e[1]=d=>B("patch-rx-patient"))},{default:a(()=>[...e[39]||(e[39]=[u(" 改患者信息 ",-1)])]),_:1})),[[j,["tcm.prescriptionOrder/patchPrescriptionPatient"]]]):p("",!0),!x.readonly&&l.value.prescription_id&&ge.value?(s(),m(h,{key:2,type:"primary",size:"small",link:"",onClick:e[2]||(e[2]=d=>B("view-prescription"))},{default:a(()=>[...e[40]||(e[40]=[u(" 详细 ",-1)])]),_:1})):p("",!0),!x.readonly&&l.value.id&&ge.value?(s(),m(h,{key:3,type:"warning",size:"small",link:"",loading:x.gancaoPreviewLoading,icon:w(ra),onClick:e[3]||(e[3]=d=>B("test-gancao-preview"))},{default:a(()=>[...e[41]||(e[41]=[u(" 测试价格 ",-1)])]),_:1},8,["loading","icon"])):p("",!0)]),n("span",Ts,"ID: "+i(l.value.prescription_id||"—"),1)])]),default:a(()=>[l.value.prescription_audit_status===1?(s(),c("div",Ss,[...e[36]||(e[36]=[n("div",{class:"stamp-inner"},"审核通过",-1)])])):p("",!0),l.value.prescription_audit_status===2?(s(),c("div",Vs,[...e[37]||(e[37]=[n("div",{class:"stamp-inner"},"已驳回",-1)])])):p("",!0),!x.readonly&&String(l.value.prescription_detail_error||"").trim()?(s(),m(v,{key:2,title:l.value.prescription_detail_error,type:"warning",closable:!1,"show-icon":"",class:"mb-3"},null,8,["title"])):_.value?(s(),c(O,{key:3},[r(at,{column:2,border:"",size:"small",class:"po-desc bg-white"},{default:a(()=>[r(g,{label:"处方编号",span:2},{default:a(()=>[u(i(_.value.sn||"—"),1)]),_:1}),r(g,{label:"患者"},{default:a(()=>[u(i(_.value.patient_name||"—"),1)]),_:1}),r(g,{label:"性别 / 年龄"},{default:a(()=>[u(i(_.value.gender_desc||"—")+" · "+i(_.value.age??"—")+"岁 ",1)]),_:1}),r(g,{label:"手机"},{default:a(()=>[n("span",{class:W(ae.value?"rx-phone-mismatch text-red-600 font-bold":"")},i(_.value.phone||"—"),3),ae.value?(s(),m(o,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-2 align-middle"},{default:a(()=>[...e[43]||(e[43]=[u(" 与订单手机不一致 ",-1)])]),_:1})):p("",!0)]),_:1}),r(g,{label:"处方日期"},{default:a(()=>[u(i(_.value.prescription_date||"—"),1)]),_:1}),r(g,{label:"医师"},{default:a(()=>[u(i(_.value.doctor_name||"—"),1)]),_:1}),r(g,{label:"类型"},{default:a(()=>[u(i(_.value.prescription_type||"—"),1)]),_:1}),r(g,{label:"临床诊断",span:2},{default:a(()=>[u(i(_.value.clinical_diagnosis||"—"),1)]),_:1}),ge.value?(s(),m(g,{key:0,label:"剂数 / 用法",span:2},{default:a(()=>[u(i(l.value.dose_count??_.value.dose_count??"—")+" "+i(l.value.dose_unit||"剂")+" · "+i(_.value.usage_instruction||_.value.usage_method||"—"),1)]),_:1})):p("",!0),r(g,{label:"处方金额"},{default:a(()=>[n("span",Us,"¥"+i(_.value.amount??"—"),1)]),_:1}),r(g,{label:"消费者审核"},{default:a(()=>[r(o,{type:w(Ca)(_.value.audit_status),size:"small"},{default:a(()=>[u(i(w(Ea)(_.value.audit_status)),1)]),_:1},8,["type"])]),_:1}),r(g,{label:"用量"},{default:a(()=>[n("div",As,[n("div",null,[M.value?(s(),c("span",Ds,"主方:")):p("",!0),_.value.dosage_amount?(s(),c(O,{key:1},[u(i(_.value.dosage_amount)+i(_.value.dosage_unit||"g")+" ",1),_.value.prescription_type==="浓缩水丸"?(s(),c(O,{key:0},[u(" · "+i(Number(_.value.dosage_bag_count)>0?Number(_.value.dosage_bag_count):1)+"袋 ",1),!x.readonly&&l.value.prescription_id&&!String(l.value.prescription_detail_error||"").trim()?R((s(),m(h,{key:0,type:"primary",size:"small",link:"",class:"ml-2",onClick:Pe},{default:a(()=>[...e[44]||(e[44]=[u(" 修改 ",-1)])]),_:1})),[[j,["tcm.prescriptionOrder/patchPrescriptionUsage"]]]):p("",!0)],64)):p("",!0),_.value.prescription_type==="饮片"&&_.value.need_decoction!==null?(s(),c("span",Cs," ("+i(_.value.need_decoction?"代煎":"不代煎")+") ",1)):p("",!0)],64)):(s(),c(O,{key:2},[u("—")],64))]),M.value&&T.value?(s(),c("div",Es,[e[46]||(e[46]=n("span",{class:"text-gray-500 mr-1"},"辅方:",-1)),T.value.dosage_amount!=null&&T.value.dosage_amount!==0?(s(),c(O,{key:0},[u(i(T.value.dosage_amount)+i(_.value.dosage_unit||"g")+" ",1),_.value.prescription_type==="浓缩水丸"?(s(),c(O,{key:0},[u(" · "+i(Number(T.value.dosage_bag_count)>0?Number(T.value.dosage_bag_count):1)+"袋 ",1),!x.readonly&&l.value.prescription_id&&!String(l.value.prescription_detail_error||"").trim()?R((s(),m(h,{key:0,type:"primary",size:"small",link:"",class:"ml-2",onClick:Pe},{default:a(()=>[...e[45]||(e[45]=[u(" 修改 ",-1)])]),_:1})),[[j,["tcm.prescriptionOrder/patchPrescriptionUsage"]]]):p("",!0)],64)):p("",!0),_.value.prescription_type==="饮片"?(s(),c("span",Is," ("+i(T.value.need_decoction?"代煎":"不代煎")+") ",1)):p("",!0)],64)):(s(),c(O,{key:1},[u("—")],64))])):p("",!0)])]),_:1}),r(g,null,{label:a(()=>[n("div",js,[e[48]||(e[48]=n("span",null,"服用方式",-1)),!x.readonly&&l.value.prescription_id&&_.value&&!String(l.value.prescription_detail_error||"").trim()?R((s(),m(h,{key:0,type:"primary",size:"small",link:"",onClick:Pe},{default:a(()=>[...e[47]||(e[47]=[u(" 修改 ",-1)])]),_:1})),[[j,["tcm.prescriptionOrder/patchPrescriptionUsage"]]]):p("",!0)])]),default:a(()=>[n("div",Rs,[M.value?(s(),c(O,{key:0},[n("div",null,[e[49]||(e[49]=n("span",{class:"text-gray-500 mr-1"},"主方:",-1)),u(" 每天 "+i(_.value.times_per_day?_.value.times_per_day+" 次":"— 次")+" · 处方开立 "+i(_.value.usage_days!=null&&_.value.usage_days!==""?_.value.usage_days+" 天":"— 天"),1)]),T.value?(s(),c("div",qs,[e[50]||(e[50]=n("span",{class:"text-gray-500 mr-1"},"辅方:",-1)),u(" 每天 "+i(T.value.times_per_day?T.value.times_per_day+" 次":"— 次")+" · 处方开立 "+i(T.value.usage_days!=null&&Number(T.value.usage_days)>0?T.value.usage_days+" 天":"— 天"),1)])):p("",!0)],64)):(s(),c(O,{key:1},[n("div",null,[e[51]||(e[51]=n("span",{class:"text-gray-500"},"每天次数:",-1)),u(" "+i(_.value.times_per_day?_.value.times_per_day+" 次":"—"),1)]),n("div",null,[e[52]||(e[52]=n("span",{class:"text-gray-500"},"处方开立:",-1)),u(" "+i(_.value.usage_days!=null&&_.value.usage_days!==""?_.value.usage_days+" 天":"—"),1)])],64)),n("div",null,[e[53]||(e[53]=n("span",{class:"text-gray-500"},"订单设置:",-1)),u(" "+i(l.value.medication_days!=null&&String(l.value.medication_days).trim()!==""?l.value.medication_days+" 天":"—"),1)])])]),_:1}),Re.value?(s(),m(g,{key:1,label:"忌口",span:2},{default:a(()=>[u(i(Re.value),1)]),_:1})):p("",!0),r(g,{label:"状态",span:2},{default:a(()=>[r(o,{type:Number(_.value.void_status)===1?"danger":"success",size:"small"},{default:a(()=>[u(i(Number(_.value.void_status)===1?"已作废":"正常"),1)]),_:1},8,["type"])]),_:1})]),_:1}),!x.readonly&&Pt.value?(s(),c("div",Bs,[e[54]||(e[54]=n("div",{class:"text-xs font-medium text-gray-500 mb-2 px-1"},"药材明细",-1)),He.value.length?(s(),m(Ue,{key:0,data:He.value,size:"small",border:"",stripe:"","max-height":"260"},{default:a(()=>[r(V,{type:"index",label:"#",width:"48",align:"center"}),r(V,{prop:"name",label:"药名","min-width":"120","show-overflow-tooltip":""}),r(V,{prop:"dosage",label:"用量(g)",width:"96",align:"right"})]),_:1},8,["data"])):(s(),m(Z,{key:1,description:"无处方药材明细","image-size":64}))])):p("",!0)],64)):(s(),m(Z,{key:4,description:"无处方数据","image-size":72}))]),_:1}),n("div",$s,[r(D,{shadow:"never",class:"po-panel border-gray-100"},{header:a(()=>[...e[55]||(e[55]=[n("div",{class:"flex items-center justify-between"},[n("span",{class:"font-medium text-[15px]"},"未关联的收款记录"),n("span",{class:"text-xs text-gray-400"},"本诊单下未被占用的支付单")],-1)])]),default:a(()=>[Q.value.length?(s(),m(Ue,{key:0,data:Q.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:a(()=>[r(V,{prop:"id",label:"ID",width:"70"}),r(V,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),r(V,{label:"类型",width:"90"},{default:a(({row:d})=>[u(i(d.order_type_desc||w(Ie)(d.order_type)),1)]),_:1}),r(V,{label:"金额",width:"86",align:"right"},{default:a(({row:d})=>[n("span",Fs,"¥"+i(d.amount),1)]),_:1}),r(V,{label:"状态",width:"100",align:"center"},{default:a(({row:d})=>[r(o,{type:w(mt)(d.status),size:"small"},{default:a(()=>[u(i(d.status_desc||w(_t)(d.status)),1)]),_:2},1032,["type"]),!x.readonly&&d.is_exempt===1?(s(),m(o,{key:0,type:"warning",size:"small",class:"ml-1"},{default:a(()=>[...e[56]||(e[56]=[u("豁免",-1)])]),_:1})):p("",!0)]),_:1}),x.readonly?p("",!0):(s(),m(V,{key:0,label:"方式","min-width":"120","show-overflow-tooltip":""},{default:a(({row:d})=>[u(i(w(yt)(d)),1)]),_:1})),r(V,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),r(V,{label:"创建时间","min-width":"136"},{default:a(({row:d})=>[u(i(w(vt)(d.create_time)),1)]),_:1})]),_:1},8,["data"])):(s(),m(Z,{key:1,description:"无未关联的收款单","image-size":60}))]),_:1}),r(D,{shadow:"never",class:"po-panel po-panel-pay border-gray-100 relative overflow-hidden"},{header:a(()=>[n("div",Js,[n("div",Ks,[e[60]||(e[60]=n("span",{class:"font-medium text-[15px]"},"关联收款记录",-1)),l.value.creator_name?(s(),c("span",Ws,[e[59]||(e[59]=u(" 创建人:",-1)),n("span",Gs,i(l.value.creator_name),1)])):p("",!0)])])]),default:a(()=>[l.value.payment_slip_audit_status===1?(s(),c("div",Ms,[...e[57]||(e[57]=[n("div",{class:"stamp-inner"},"审核通过",-1)])])):p("",!0),l.value.payment_slip_audit_status===2?(s(),c("div",Hs,[...e[58]||(e[58]=[n("div",{class:"stamp-inner"},"已驳回",-1)])])):p("",!0),xe.value.length?(s(),m(Ue,{key:2,data:xe.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:a(()=>[r(V,{prop:"id",label:"ID",width:"70"}),r(V,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),r(V,{label:"类型",width:"90"},{default:a(({row:d})=>[u(i(d.order_type_desc||w(Ie)(d.order_type)),1)]),_:1}),r(V,{label:"金额",width:"86",align:"right"},{default:a(({row:d})=>[n("span",Qs,"¥"+i(d.amount),1)]),_:1}),r(V,{label:"状态",width:"100",align:"center"},{default:a(({row:d})=>[r(o,{type:w(mt)(d.status),size:"small"},{default:a(()=>[u(i(d.status_desc||w(_t)(d.status)),1)]),_:2},1032,["type"]),!x.readonly&&d.is_exempt===1?(s(),m(o,{key:0,type:"warning",size:"small",class:"ml-1"},{default:a(()=>[...e[61]||(e[61]=[u("豁免",-1)])]),_:1})):p("",!0)]),_:1}),x.readonly?p("",!0):(s(),m(V,{key:0,label:"方式","min-width":"120","show-overflow-tooltip":""},{default:a(({row:d})=>[u(i(w(yt)(d)),1)]),_:1})),r(V,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),r(V,{label:"创建时间","min-width":"136"},{default:a(({row:d})=>[u(i(w(vt)(d.create_time)),1)]),_:1}),je.value?(s(),m(V,{key:1,label:"操作",width:"80",fixed:"right",align:"center"},{default:a(({row:d})=>[r(h,{type:"danger",size:"small",link:"",loading:te.value===Number(d.id),disabled:te.value!==null||![2,5].includes(Number(d.status)),title:Number(d.status)===4?"已退款收款记录不可移除":"解除关联并更新已付金额,总金额不变",onClick:P=>Nt(d)},{default:a(()=>[...e[62]||(e[62]=[u("移除",-1)])]),_:1},8,["loading","disabled","title","onClick"])]),_:1})):p("",!0)]),_:1},8,["data"])):(s(),m(Z,{key:3,description:"未关联收款单","image-size":60}))]),_:1})])]),r(D,{shadow:"never",class:"po-panel po-panel-biz border-gray-100 mb-4"},{header:a(()=>[...e[63]||(e[63]=[n("span",{class:"font-medium text-[15px]"},"履约与收货信息",-1)])]),default:a(()=>[r(at,{column:3,border:"",size:"small",class:"po-desc"},{default:a(()=>[r(g,{label:"诊单ID",span:3},{default:a(()=>[n("span",Xs,i(l.value.diagnosis_id),1),!x.readonly&&Number(l.value.diagnosis_id)>0?(s(),m(h,{key:0,type:"primary",link:"",size:"small",class:"ml-2 align-baseline",onClick:e[4]||(e[4]=d=>B("view-patient"))},{default:a(()=>[...e[64]||(e[64]=[u(" 查看患者信息 ",-1)])]),_:1})):p("",!0)]),_:1}),r(g,{label:"创建时间",span:1},{default:a(()=>[u(i(w(Ce)(l.value.create_time)),1)]),_:1}),r(g,{label:"业务订单创建人",span:2},{default:a(()=>[Number(l.value.creator_id)>0||l.value.creator_name?(s(),c("div",Ys,[n("div",null,[n("span",Zs,i(l.value.creator_name||"—"),1),!x.readonly&&Number(l.value.creator_id)>0?(s(),c("span",el,"ID "+i(l.value.creator_id),1)):p("",!0)]),$e.value?(s(),c("div",tl,i($e.value),1)):p("",!0)])):(s(),c("span",al,"—"))]),_:1}),r(g,{label:"创建人所属部门",span:3},{default:a(()=>[Be.value.length?(s(),c("div",sl,[(s(!0),c(O,null,F(Be.value,(d,P)=>(s(),c("div",{key:P,class:"min-w-0"},[d.length?(s(),m($t,{key:0,class:"po-diagnosis-creator-dept-breadcrumb text-[13px] leading-relaxed",separator:"/"},{default:a(()=>[(s(!0),c(O,null,F(d,(N,ve)=>(s(),m(Bt,{key:ve},{default:a(()=>[n("span",ll,i(N),1)]),_:2},1024))),128))]),_:2},1024)):p("",!0)]))),128))])):(s(),c("span",rl,"—"))]),_:1}),r(g,{label:"收货人"},{default:a(()=>[u(i(l.value.recipient_name),1)]),_:1}),x.readonly?p("",!0):(s(),m(g,{key:0,label:"挂号关联",span:3},{default:a(()=>[A.value?(s(),c(O,{key:0},[n("div",il,[n("span",null,[e[65]||(e[65]=u("流转编号(挂号) ",-1)),n("span",nl,"#"+i(A.value.id),1)]),n("span",ol,"时间:"+i(A.value.appointment_date)+" "+i(A.value.period)+" "+i(A.value.appointment_time),1),r(o,{size:"small",type:"info"},{default:a(()=>[u(i(A.value.appointment_type_desc),1)]),_:1}),r(o,{size:"small"},{default:a(()=>[u(i(A.value.status_desc),1)]),_:1}),A.value.doctor_name?(s(),c("span",ul,"接诊:"+i(A.value.doctor_name),1)):p("",!0),Me.value?(s(),c("span",dl,"渠道:"+i(Me.value),1)):p("",!0),Fe.value?(s(),m(o,{key:2,size:"small",effect:"plain"},{default:a(()=>[u(i(Fe.value),1)]),_:1})):p("",!0)]),String(A.value.remark||"").trim()?(s(),c("p",pl," 备注:"+i(A.value.remark),1)):p("",!0)],64)):(s(),c("span",cl,"暂无挂号预约记录(未绑定或诊单下无预约)"))]),_:1})),r(g,{label:"收货手机"},{default:a(()=>[n("span",{class:W(ae.value?"text-red-600 font-bold font-mono":"font-mono")},i(l.value.recipient_phone||"—"),3),ae.value?(s(),m(o,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-2 align-middle"},{default:a(()=>[...e[66]||(e[66]=[u(" 与处方手机不一致 ",-1)])]),_:1})):p("",!0)]),_:1}),r(g,{label:"收货地址",span:2},{default:a(()=>[u(i(Ot.value),1)]),_:1}),r(g,{label:"复诊"},{default:a(()=>[u(i(l.value.is_follow_up?"是":"否"),1)]),_:1}),r(g,{label:"用药疗程"},{default:a(()=>[u(i(l.value.medication_days?l.value.medication_days+" 天":"—"),1)]),_:1}),r(g,{label:"上次医护"},{default:a(()=>[u(i(l.value.prev_staff||"—"),1)]),_:1}),r(g,{label:"服务渠道"},{default:a(()=>[u(i(l.value.service_channel||"—"),1)]),_:1}),r(g,{label:"服务套餐"},{default:a(()=>[u(i(zt.value),1)]),_:1}),r(g,{label:"费用类别"},{default:a(()=>[u(i(w(Ie)(l.value.fee_type)),1)]),_:1}),Je.value?(s(),m(g,{key:1,label:"内部成本"},{default:a(()=>[u(" ¥"+i(l.value.internal_cost),1)]),_:1})):p("",!0),r(g,{label:"快递单号",span:Je.value?1:2},{default:a(()=>[u(i(l.value.tracking_number||"—"),1)]),_:1},8,["span"]),r(g,{label:"快递公司"},{default:a(()=>[u(i(w(Ia)(l.value.express_company)),1)]),_:1}),R((s(),m(g,{label:"药房备注",span:3},{default:a(()=>[u(i(l.value.remark_extra||"—"),1)]),_:1})),[[j,["tcm.prescriptionOrder/editRemarkExtra"]]]),r(g,{label:"医助备注",span:3},{default:a(()=>[u(i(l.value.remark_assistant||"—"),1)]),_:1}),r(g,{label:"处方审核意见",span:3},{default:a(()=>[n("span",ml,i(l.value.prescription_audit_remark||"—"),1)]),_:1}),r(g,{label:"支付审核意见",span:3},{default:a(()=>[n("span",_l,i(l.value.payment_slip_audit_remark||"—"),1)]),_:1})]),_:1})]),_:1}),x.loadRelatedData&&String(l.value.tracking_number||"").trim()?(s(),m(D,{key:3,shadow:"never",class:W(["po-panel po-panel-logistics",!x.readonly&&H.value.show?"!border-2 !border-red-500 shadow-md shadow-red-500/10":"border-gray-100"])},{header:a(()=>[n("div",yl,[e[68]||(e[68]=n("span",{class:"font-medium text-[15px]"},"物流轨迹",-1)),n("span",vl,i(l.value.tracking_number),1),!x.readonly&&H.value.show?(s(),m(o,{key:0,type:"danger",effect:"dark",size:"small"},{default:a(()=>[...e[67]||(e[67]=[u(" 拒收/退回 · 待处理 ",-1)])]),_:1})):p("",!0)])]),default:a(()=>{var d,P,N,ve,nt,ot;return[x.readonly?p("",!0):(s(),c("p",fl," 优先读库,无记录时走快递100。顺丰会校验单号+电话(快递100要求完整手机号更易通过);默认预填订单收货手机,若仍提示验证码错误请改成与顺丰面单一致的号码。 ")),n("div",gl,[r(ye,{modelValue:re.value,"onUpdate:modelValue":e[5]||(e[5]=K=>re.value=K),clearable:"",maxlength:"20",placeholder:"收件手机(建议11位,与面单一致)",class:"w-[180px]",onKeyup:ua(ie,["enter"])},null,8,["modelValue"]),r(ne,{modelValue:Y.value,"onUpdate:modelValue":e[6]||(e[6]=K=>Y.value=K),placeholder:"承运商",style:{width:"140px"}},{default:a(()=>[r(C,{label:"自动识别",value:"auto"}),r(C,{label:"顺丰速运",value:"sf"}),r(C,{label:"京东快递",value:"jd"}),r(C,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),R((s(),m(h,{type:"primary",plain:"",size:"default",loading:me.value,onClick:ie},{icon:a(()=>[r(Ae,null,{default:a(()=>[r(w(ma))]),_:1})]),default:a(()=>[e[69]||(e[69]=u(" 刷新轨迹 ",-1))]),_:1},8,["loading"])),[[j,["tcm.prescriptionOrder/logisticsTrace"]]]),x.readonly?p("",!0):R((s(),m(h,{key:0,type:"warning",plain:"",size:"default",loading:Oe.value,onClick:jt},{icon:a(()=>[r(Ae,null,{default:a(()=>[r(w(_a))]),_:1})]),default:a(()=>[e[70]||(e[70]=u(" 京东接口更新 ",-1))]),_:1},8,["loading"])),[[j,["tcm.prescriptionOrder/logisticsTrace"]]]),x.readonly?p("",!0):(s(),c("div",bl,[r(De,{href:Te.value.sf,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:a(()=>[...e[71]||(e[71]=[u("顺丰官网",-1)])]),_:1},8,["href"]),r(De,{href:Te.value.jd,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:a(()=>[...e[72]||(e[72]=[u("京东物流",-1)])]),_:1},8,["href"]),r(De,{href:Te.value.jt,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:a(()=>[...e[73]||(e[73]=[u("极兔",-1)])]),_:1},8,["href"])]))]),!x.readonly&&String(((d=L.value)==null?void 0:d.hint)||"").trim()?(s(),m(v,{key:1,title:String(((P=L.value)==null?void 0:P.hint)||""),type:"info",closable:!1,class:"mb-4","show-icon":""},null,8,["title"])):p("",!0),me.value&&!L.value?(s(),c("div",xl,[r(Ae,{class:"is-loading mr-1"},{default:a(()=>[r(w(va))]),_:1}),e[74]||(e[74]=u("正在加载物流轨迹... ",-1))])):L.value?(s(),c("div",kl,[(N=L.value)!=null&&N.state_text?(s(),c("div",wl,[n("span",hl,"状态:"+i(L.value.state_text),1),(ve=L.value)!=null&&ve.carrier_label?(s(),m(o,{key:0,size:"small",type:"info"},{default:a(()=>[u(i(L.value.carrier_label),1)]),_:1})):p("",!0),!x.readonly&&((nt=L.value)!=null&&nt.source)?(s(),c("span",Nl," ["+i(L.value.source==="database"?"数据库缓存":"API拉取")+"] ",1)):p("",!0),!x.readonly&&((ot=L.value)!=null&&ot.last_query_time)?(s(),c("span",Sl," 更新时间:"+i(L.value.last_query_time),1)):p("",!0)])):p("",!0),Ze.value.length?(s(),m(lt,{key:1,class:"mt-2 pl-2"},{default:a(()=>[(s(!0),c(O,null,F(Ze.value,(K,fe)=>(s(),m(st,{key:fe,type:fe===0?"primary":"info",hollow:fe!==0,timestamp:K.time,placement:"top"},{default:a(()=>[n("span",{class:W([fe===0?"text-gray-800 font-medium":"text-gray-500",!x.readonly&&w(ja)(K.context)?"!text-red-700 font-semibold bg-red-50 px-1.5 py-0.5 rounded":""])},i(K.context),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(s(),m(Z,{key:2,description:"暂无轨迹节点记录","image-size":64}))])):p("",!0)]}),_:1},8,["class"])):p("",!0),x.loadRelatedData?R((s(),m(D,{key:4,shadow:"never",class:"po-panel border-gray-100 mt-4"},{header:a(()=>[n("div",Vl,[e[76]||(e[76]=n("span",{class:"font-medium text-[15px]"},"操作日志",-1)),Tt()?(s(),m(h,{key:0,type:"primary",link:"",size:"small",onClick:Et},{default:a(()=>[...e[75]||(e[75]=[u(" 新增日志 ",-1)])]),_:1})):p("",!0)])]),default:a(()=>[G.value.length?(s(),m(lt,{key:0,class:"mt-2 pl-2"},{default:a(()=>[(s(!0),c(O,null,F(G.value,(d,P)=>(s(),m(st,{key:d.id,type:P===0?"primary":"info",hollow:P!==0,timestamp:w(Ce)(d.create_time),placement:"top"},{default:a(()=>[n("div",Pl,[n("span",Ol,i(d.admin_name),1),r(o,{size:"small",type:"info"},{default:a(()=>[u(i(w(Ra)(d.action)),1)]),_:2},1024)]),n("span",{class:W(P===0?"text-gray-800 font-medium":"text-gray-500")},i(d.summary),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(s(),m(Z,{key:1,description:"暂无操作日志","image-size":64}))]),_:1})),[[j,["tcm.prescriptionOrder/logs"]]]):p("",!0),r(it,{modelValue:se.value,"onUpdate:modelValue":e[13]||(e[13]=d=>se.value=d),title:"新增操作日志",width:"520px","close-on-click-modal":!1,"destroy-on-close":"","append-to-body":"",onClosed:Qe},{footer:a(()=>[r(h,{onClick:e[12]||(e[12]=d=>se.value=!1)},{default:a(()=>[...e[77]||(e[77]=[u("取消",-1)])]),_:1}),r(h,{type:"primary",loading:Ne.value,onClick:It},{default:a(()=>[...e[78]||(e[78]=[u("保存",-1)])]),_:1},8,["loading"])]),default:a(()=>[r(rt,{ref_key:"addLogFormRef",ref:ce,model:b,rules:Ut,"label-width":"108px"},{default:a(()=>[r(E,{label:"日志内容",prop:"summary"},{default:a(()=>[r(ye,{modelValue:b.summary,"onUpdate:modelValue":e[7]||(e[7]=d=>b.summary=d),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"记录本次操作说明、沟通结果等"},null,8,["modelValue"])]),_:1}),we.value?(s(),m(E,{key:0,label:"处方审核"},{default:a(()=>[r(ne,{modelValue:b.prescription_audit_status,"onUpdate:modelValue":e[8]||(e[8]=d=>b.prescription_audit_status=d),class:"w-full",clearable:"",placeholder:"不修改"},{default:a(()=>[r(C,{label:"待审核",value:0}),r(C,{label:"已通过",value:1}),r(C,{label:"已驳回",value:2})]),_:1},8,["modelValue"]),l.value?(s(),c("div",zl," 当前:"+i(w(ft)(l.value.prescription_audit_status)),1)):p("",!0)]),_:1})):p("",!0),we.value&&b.prescription_audit_status!==""&&b.prescription_audit_status!==null&&b.prescription_audit_status!==void 0?(s(),m(E,{key:1,label:"处方审核意见"},{default:a(()=>[r(ye,{modelValue:b.prescription_audit_remark,"onUpdate:modelValue":e[9]||(e[9]=d=>b.prescription_audit_remark=d),type:"textarea",rows:2,maxlength:"500","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1})):p("",!0),he.value?(s(),m(E,{key:2,label:"支付单审核"},{default:a(()=>[r(ne,{modelValue:b.payment_slip_audit_status,"onUpdate:modelValue":e[10]||(e[10]=d=>b.payment_slip_audit_status=d),class:"w-full",clearable:"",placeholder:"不修改"},{default:a(()=>[r(C,{label:"待审核",value:0}),r(C,{label:"已通过",value:1}),r(C,{label:"已驳回",value:2})]),_:1},8,["modelValue"]),l.value?(s(),c("div",Ll," 当前:"+i(w(ft)(l.value.payment_slip_audit_status)),1)):p("",!0)]),_:1})):p("",!0),he.value&&b.payment_slip_audit_status!==""&&b.payment_slip_audit_status!==null&&b.payment_slip_audit_status!==void 0?(s(),m(E,{key:3,label:"支付审核意见"},{default:a(()=>[r(ye,{modelValue:b.payment_slip_audit_remark,"onUpdate:modelValue":e[11]||(e[11]=d=>b.payment_slip_audit_remark=d),type:"textarea",rows:2,maxlength:"500","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1})):p("",!0)]),_:1},8,["model"])]),_:1},8,["modelValue"]),r(it,{modelValue:le.value,"onUpdate:modelValue":e[22]||(e[22]=d=>le.value=d),title:"修改服用参数",width:"480px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:Dt},{footer:a(()=>[r(h,{onClick:e[21]||(e[21]=d=>le.value=!1)},{default:a(()=>[...e[84]||(e[84]=[u("取消",-1)])]),_:1}),r(h,{type:"primary",loading:Se.value,onClick:Ct},{default:a(()=>[...e[85]||(e[85]=[u("保存",-1)])]),_:1},8,["loading"])]),default:a(()=>[r(rt,{ref_key:"patchUsageFormRef",ref:Ve,model:f,rules:At.value,"label-width":"108px"},{default:a(()=>{var d,P;return[M.value?(s(),c("div",Tl,"主方")):p("",!0),((d=_.value)==null?void 0:d.prescription_type)==="浓缩水丸"?(s(),m(E,{key:1,label:"每次袋数",prop:"dosage_bag_count"},{default:a(()=>[r(ne,{modelValue:f.dosage_bag_count,"onUpdate:modelValue":e[14]||(e[14]=N=>f.dosage_bag_count=N),class:"w-full"},{default:a(()=>[(s(),c(O,null,F(5,N=>r(C,{key:N,label:`${N}袋`,value:N},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})):p("",!0),r(E,{label:"每天次数",prop:"times_per_day"},{default:a(()=>[r(oe,{modelValue:f.times_per_day,"onUpdate:modelValue":e[15]||(e[15]=N=>f.times_per_day=N),min:1,max:6,step:1,"controls-position":"right",class:"w-full"},null,8,["modelValue"])]),_:1}),r(E,{label:"处方开立",prop:"usage_days"},{default:a(()=>[n("div",Ul,[r(oe,{modelValue:f.usage_days,"onUpdate:modelValue":e[16]||(e[16]=N=>f.usage_days=N),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[79]||(e[79]=n("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1}),M.value?(s(),c(O,{key:2},[e[81]||(e[81]=n("div",{class:"text-xs font-medium text-gray-500 mb-3 mt-2 pt-2 border-t border-gray-100"},"辅方",-1)),((P=_.value)==null?void 0:P.prescription_type)==="浓缩水丸"?(s(),m(E,{key:0,label:"每次袋数",prop:"aux_dosage_bag_count"},{default:a(()=>[r(ne,{modelValue:f.aux_dosage_bag_count,"onUpdate:modelValue":e[17]||(e[17]=N=>f.aux_dosage_bag_count=N),class:"w-full"},{default:a(()=>[(s(),c(O,null,F(5,N=>r(C,{key:N,label:`${N}袋`,value:N},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})):p("",!0),r(E,{label:"每天次数",prop:"aux_times_per_day"},{default:a(()=>[r(oe,{modelValue:f.aux_times_per_day,"onUpdate:modelValue":e[18]||(e[18]=N=>f.aux_times_per_day=N),min:1,max:6,step:1,"controls-position":"right",class:"w-full"},null,8,["modelValue"])]),_:1}),r(E,{label:"处方开立",prop:"aux_usage_days"},{default:a(()=>[n("div",Al,[r(oe,{modelValue:f.aux_usage_days,"onUpdate:modelValue":e[19]||(e[19]=N=>f.aux_usage_days=N),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[80]||(e[80]=n("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1})],64)):p("",!0),e[83]||(e[83]=n("div",{class:"text-xs font-medium text-gray-500 mb-3 mt-2 pt-2 border-t border-gray-100"},"订单设置",-1)),r(E,{label:"服用天数",prop:"medication_days"},{default:a(()=>[n("div",Dl,[r(oe,{modelValue:f.medication_days,"onUpdate:modelValue":e[20]||(e[20]=N=>f.medication_days=N),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[82]||(e[82]=n("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1})]}),_:1},8,["model","rules"])]),_:1},8,["modelValue"])])):p("",!0)]}),_:3},8,["modelValue","append-to-body"])}}}),Bl=Da(El,[["__scopeId","data-v-57625a36"]]);export{Bl as default}; diff --git a/server/public/admin/assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css b/server/public/admin/assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css new file mode 100644 index 000000000..7faea7998 --- /dev/null +++ b/server/public/admin/assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css @@ -0,0 +1 @@ +@charset "UTF-8";.po-detail-drawer[data-v-57625a36] .el-drawer__header{margin-bottom:0;padding:16px 24px;border-bottom:1px solid var(--el-border-color-lighter)}.stat-card[data-v-57625a36]{border-radius:8px}.stat-title[data-v-57625a36]{font-weight:500}.po-panel[data-v-57625a36]{border-radius:8px;transition:all .3s}.po-panel[data-v-57625a36] .el-card__header{padding:14px 16px;background-color:var(--el-bg-color-page);border-bottom:1px solid var(--el-border-color-lighter)}.po-panel[data-v-57625a36] .el-card__body{padding:16px}.po-desc[data-v-57625a36] .el-descriptions__label{width:120px;color:var(--el-text-color-regular)}.po-audit-remark[data-v-57625a36]{color:var(--el-color-danger);font-weight:600;white-space:pre-wrap;word-break:break-word}.audit-stamp[data-v-57625a36]{position:absolute;top:18px;right:-14px;width:72px;height:72px;border:3px solid currentColor;border-radius:50%;display:flex;align-items:center;justify-content:center;transform:rotate(20deg);opacity:.8;pointer-events:none;z-index:10;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-weight:700;font-size:13px;letter-spacing:1px;box-shadow:inset 0 0 0 1px #ffffff80}.audit-stamp[data-v-57625a36]:after{content:"";position:absolute;top:4px;left:4px;right:4px;bottom:4px;border:1px double currentColor;border-radius:50%;opacity:.6}.audit-stamp .stamp-inner[data-v-57625a36]{text-align:center;line-height:1.1}.stamp-pass[data-v-57625a36]{color:var(--el-color-success)}.stamp-reject[data-v-57625a36]{color:var(--el-color-danger)}.po-diagnosis-creator-dept-breadcrumb[data-v-57625a36] .el-breadcrumb__item{display:inline-flex;float:none}.po-diagnosis-creator-dept-breadcrumb[data-v-57625a36] .el-breadcrumb__separator{margin:0 2px 0 4px} diff --git a/server/public/admin/assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js b/server/public/admin/assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js deleted file mode 100644 index 72b2df476..000000000 --- a/server/public/admin/assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js +++ /dev/null @@ -1 +0,0 @@ -import{o as xt,ap as Mt,bp as Ht,q as s,O as c,B as Jt,D as a,b_ as Kt,r as m,bo as Wt,s as n,L as d,T as i,P as p,F as O,G as Z,bm as Gt,v as r,b$ as Qt,c0 as Xt,u as k,bj as Yt,ac as J,K as Zt,ae as K,c1 as ea,c2 as ta,bk as aa,bl as sa,bC as la,bB as ra,U as ia,S as na,aA as oa,bc as ua,bh as da,bi as pa,w as ma,bz as ca,c3 as _a,bt as ya,ba as va,c4 as fa,c5 as ga,aB as ba,bd as xa,bb as ka,J as wa,ah as ot,p as x,M as V,aC as ut,n as ha}from"./.pnpm-CyuAWpdG.js";import{e as Na,f as Sa,h as Va,i as Pa,j as La,k as Oa,l as Ta,m as za}from"./tcm-QAkeqQ9Q.js";import{u as Aa,j as I,n as Da,_ as Ua}from"./index-Dxvz9lb1.js";import{f as Ue,a as dt,c as pt,b as Ce,d as Ca,e as Ea,g as Ee,p as mt,o as ct,h as _t,i as yt,j as Ia,l as ja,k as Ra,m as vt,n as qa,q as Ba,T as Fa,P as ft,r as $a,s as Ma,t as gt,u as Ha,v as bt,w as Ja,x as Ka,y as Wa}from"./prescription-order-utils-CXfs2Bra.js";const Ga={class:"po-detail-drawer-head flex items-center justify-between"},Qa={class:"flex items-center"},Xa={key:0,class:"flex items-center gap-2 mr-6"},Ya={key:1,class:"po-detail-body px-6 pb-6 h-full overflow-y-auto"},Za={class:"text-sm leading-relaxed"},es={class:"font-mono font-semibold text-red-700"},ts={class:"font-mono font-semibold text-red-700"},as={class:"text-sm leading-relaxed space-y-1.5"},ss={key:0,class:"flex flex-wrap gap-1.5 items-center"},ls={key:1,class:"list-disc pl-5 space-y-1 text-red-50"},rs={key:2,class:"bg-gray-50/80 border border-gray-100 rounded-lg p-5 mb-5 shadow-sm"},is={key:0,class:"text-red-500 font-medium"},ns={key:1},os={key:2,class:"text-green-600"},us={key:3,class:"text-gray-400"},ds={key:0,class:"text-red-500 font-medium"},ps={key:1},ms={key:2,class:"text-green-600"},cs={key:3,class:"text-gray-400"},_s={key:0,class:"text-amber-600 font-medium"},ys={key:1,class:"text-primary font-medium"},vs={key:2},fs={key:3,class:"text-green-600"},gs={key:4,class:"text-red-500 font-medium"},bs={class:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-4 mb-5"},xs={class:"flex items-center justify-between mb-1"},ks={class:"stat-value text-red-500 font-bold text-xl"},ws={class:"stat-value text-green-600 font-bold text-xl"},hs={class:"stat-value text-primary font-bold text-xl"},Ns={class:"grid grid-cols-1 md:grid-cols-2 gap-4 mb-4"},Ss={key:0,class:"audit-stamp stamp-pass"},Vs={key:1,class:"audit-stamp stamp-reject"},Ps={class:"flex items-center justify-between"},Ls={class:"flex items-center gap-3"},Os={key:0,class:"text-xs text-gray-500"},Ts={class:"text-primary font-medium"},zs={class:"text-xs text-gray-400"},As={class:"text-red-500 font-medium"},Ds={class:"flex flex-col gap-1 text-sm leading-relaxed"},Us={key:0,class:"text-gray-500 mr-1"},Cs={key:1,class:"ml-2 text-gray-500"},Es={key:0},Is={key:1,class:"ml-2 text-gray-500"},js={class:"flex items-center gap-1"},Rs={class:"flex flex-col gap-1.5 text-sm leading-relaxed"},qs={key:0},Bs={key:0,class:"mt-4"},Fs={class:"flex flex-col gap-4 h-full"},$s={class:"text-red-500"},Ms={key:0,class:"audit-stamp stamp-pass"},Hs={key:1,class:"audit-stamp stamp-reject"},Js={class:"flex items-center justify-between"},Ks={class:"flex items-center gap-3"},Ws={key:0,class:"text-xs text-gray-500"},Gs={class:"text-primary font-medium"},Qs={class:"text-red-500"},Xs={class:"font-mono"},Ys={key:0,class:"text-[13px] space-y-1"},Zs={class:"font-medium text-gray-900"},el={key:0,class:"text-gray-500 ml-2 font-mono text-xs"},tl={key:0,class:"text-gray-600 text-xs leading-relaxed"},al={key:1,class:"text-gray-400"},sl={key:0,class:"space-y-1.5"},ll={class:"text-gray-800 break-all"},rl={key:1,class:"text-gray-400"},il={class:"flex flex-wrap items-center gap-x-4 gap-y-1 text-[13px]"},nl={class:"font-mono text-primary"},ol={class:"text-gray-500"},ul={key:0},dl={key:1,class:"text-gray-500"},pl={key:0,class:"text-xs text-gray-500 mt-1"},ml={key:1,class:"text-gray-400"},cl={class:"po-audit-remark"},_l={class:"po-audit-remark"},yl={class:"flex items-center gap-2 flex-wrap"},vl={class:"text-xs text-gray-400 font-mono"},fl={key:0,class:"po-logistics-tip text-gray-400 text-xs mb-3 font-normal"},gl={class:"flex flex-wrap items-center gap-3 mb-4"},bl={key:1,class:"ml-2 flex items-center gap-4 border-l pl-4 border-gray-200"},xl={key:2,class:"py-6 text-center text-sm text-gray-500"},kl={key:3,class:"logistics-content bg-gray-50/50 p-4 rounded-md"},wl={key:0,class:"text-sm mb-4 font-medium flex items-center gap-2"},hl={class:"text-gray-800"},Nl={key:1,class:"text-xs text-gray-400 ml-1"},Sl={key:2,class:"text-xs text-gray-400"},Vl={class:"flex items-center justify-between gap-2"},Pl={class:"flex items-center gap-2 mb-1"},Ll={class:"font-medium text-[13px]"},Ol={key:0,class:"text-xs text-gray-400 mt-1"},Tl={key:0,class:"text-xs text-gray-400 mt-1"},zl={key:0,class:"text-xs font-medium text-gray-500 mb-3"},Al={class:"flex items-center gap-1 w-full"},Dl={class:"flex items-center gap-1 w-full"},Ul={class:"flex items-center gap-1 w-full"},Cl=xt({name:"PrescriptionOrderDetailDrawer"}),El=xt({...Cl,props:{readonly:{type:Boolean,default:!1},gancaoPreviewLoading:{type:Boolean,default:!1},appendToBody:{type:Boolean,default:!1},detailLoader:{type:Function,default:void 0},loadRelatedData:{type:Boolean,default:!0}},emits:["update-amount","patch-rx-patient","view-prescription","test-gancao-preview","view-patient","detail-changed"],setup(b,{expose:kt,emit:wt}){const U=b,j=wt,ee=Aa(),fe=x(()=>{const t=ee.userInfo;if(!t||Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(o=>Number(o)):[];return e.includes(Fa)?e.some(o=>ft.includes(o)):!0}),R=V(!1),ge=V(!1),l=V(null),W=V([]),G=V([]),te=V(null),Ie=x(()=>!U.readonly&&pt(l.value)&&We("tcm.prescriptionOrder/unlinkPayOrder"));async function ht(t){var y,v,S;const e=Number((y=l.value)==null?void 0:y.id),o=Number(t.id);if(!(!Ie.value||!e||!o||te.value!==null)&&[2,5].includes(Number(t.status))){te.value=o;try{if(await I.confirm(`确定移除收款记录「${t.order_no||"#"+o}」(¥${Ce(t.amount)})?仅解除关联,原收款记录保留;订单总金额不变,已付金额与需代收金额按剩余关联收款重新计算。`),!R.value||Number((v=l.value)==null?void 0:v.id)!==e)return;const z=await Na({id:e,pay_order_id:o}),w=(z==null?void 0:z.data)??z;Number((S=l.value)==null?void 0:S.id)===e&&Number(w==null?void 0:w.id)===e&&Object.assign(l.value,w),I.msgSuccess("收款关联已移除,金额已同步更新"),j("detail-changed"),await et(e)}catch{}finally{te.value=null}}}const _=x(()=>{var e;const t=(e=l.value)==null?void 0:e.prescription;return t&&typeof t=="object"?t:null}),je=x(()=>{var t;return $a((t=_.value)==null?void 0:t.dietary_taboo)}),be=x(()=>{const t=l.value;if(!t)return[];const e=t.linked_pay_orders;return Array.isArray(e)?e:[]}),Re=x(()=>{const t=l.value;if(!t)return 0;const e=t.agency_collect_amount;if(e!=null&&e!=="")return Number(e)||0;const o=Number(t.amount)||0,y=Number(t.linked_pay_paid_total)||0;return Math.round((o-y)*100)/100}),oe=x(()=>{if(!l.value)return 0;const t=Number(l.value.fulfillment_status),e=Number(l.value.prescription_audit_status),o=Number(l.value.payment_slip_audit_status);return t===3||[8,9,10,11,12].includes(t)?5:t===6||t===5||t===7?4:t===4?e===2?1:o===2?2:3:t===2?3:e===0||e===2?1:o===0||o===2?2:3}),ue=x(()=>{var e;const t=Number((e=l.value)==null?void 0:e.prescription_audit_status);return t===1?"success":t===2?"error":oe.value===1?"process":"wait"}),de=x(()=>{var e;const t=Number((e=l.value)==null?void 0:e.payment_slip_audit_status);return t===1?"success":t===2?"error":oe.value===2?"process":"wait"}),Q=x(()=>{var e;const t=Number((e=l.value)==null?void 0:e.fulfillment_status);return t===3||t===5||t===6||t===8||t===11||t===12?"success":t===4||t===9||t===10?"error":t===7||oe.value===3?"process":"wait"}),ae=x(()=>{var o,y;const t=(o=_.value)==null?void 0:o.phone,e=(y=l.value)==null?void 0:y.recipient_phone;return Ma(e,t)}),Nt=x(()=>{var e;return gt((e=_.value)==null?void 0:e.phone)||"—"}),St=x(()=>{var e;return gt((e=l.value)==null?void 0:e.recipient_phone)||"—"}),qe=x(()=>{var e,o;const t=String(((e=l.value)==null?void 0:e.order_creator_dept_path)??((o=l.value)==null?void 0:o.diagnosis_creator_dept_path)??"").trim();return t?t.split(";").map(y=>y.trim()).filter(Boolean).map(y=>y.includes(" / ")?y.split(" / ").map(v=>v.trim()).filter(Boolean):y.split("/").map(v=>v.trim()).filter(Boolean)).filter(y=>y.length>0):[]}),Be=x(()=>{const t=l.value;if(!t)return"";const e=String(t.creator_account??"").trim(),o=String(t.creator_mobile??"").trim(),y=[];return e&&y.push(`登录账号:${e}`),o&&y.push(`手机:${o}`),y.join(" · ")}),A=x(()=>{var e;const t=(e=l.value)==null?void 0:e.linked_appointment;return t&&typeof t=="object"?t:null}),Fe=x(()=>{var e;const t=String(((e=A.value)==null?void 0:e.resolved_from)||"");return t==="prescription"?"处方绑定挂号":t==="diagnosis"?"诊单关联挂号":""}),$e=x(()=>{const t=A.value;if(!t)return"";const e=String(t.channel_source_desc??"").trim();return e||String(t.channel_source??"").trim()}),Me=x(()=>{var t;return Ha((t=_.value)==null?void 0:t.herbs)}),q=x(()=>bt(_.value)),T=x(()=>{const t=_.value;if(!t||!bt(t))return null;const e=t.aux_usage;return e==null||e===""||Array.isArray(e)&&e.length===0?null:Ja(e,t.prescription_type||"浓缩水丸")}),Vt=x(()=>{var t;return((t=l.value)==null?void 0:t.prescription_detail_herbs_visible)!==!1}),He=x(()=>{var t,e;return!U.readonly&&((t=l.value)==null?void 0:t.internal_cost)!=null&&((e=l.value)==null?void 0:e.internal_cost)!==""}),Pt=x(()=>{const t=l.value;if(!t)return"—";const e=[];return t.shipping_province&&e.push(t.shipping_province),t.shipping_city&&e.push(t.shipping_city),t.shipping_district&&e.push(t.shipping_district),t.shipping_address&&e.push(t.shipping_address),e.length>0?e.join(" "):"—"}),xe=V([]);async function Je(){if(!(xe.value.length>0))try{const t=await Da({type:"server_order"}),e=qa(t==null?void 0:t.server_order);e.length>0&&(xe.value=e)}catch{}}const Lt=x(()=>{var t;return Ka((t=l.value)==null?void 0:t.service_package,xe.value)});Mt(()=>{Je()});function Ot(){const t=ee.perms||[];return t.includes("*")||t.includes("tcm.prescriptionOrder/logs")}async function Ke(t){if(!Ot()){W.value=[];return}try{const e=await Oa({id:t});W.value=(e==null?void 0:e.data)??e??[]}catch{W.value=[]}}function We(t){const e=ee.perms||[];return e.includes("*")||e.includes(t)}function Tt(){return We("tcm.prescriptionOrder/addLog")}const ke=x(()=>{const t=ee.userInfo;return!t||Number(t.root)===1?!0:(Array.isArray(t.role_ids)?t.role_ids.map(o=>Number(o)):[]).some(o=>ft.includes(o))}),we=x(()=>{const t=ee.userInfo;return!t||Number(t.root)===1?!0:(Array.isArray(t.role_ids)?t.role_ids.map(o=>Number(o)):[]).some(o=>[0,3].includes(o))}),se=V(!1),he=V(!1),pe=V(),g=ut({summary:"",prescription_audit_status:"",payment_slip_audit_status:"",prescription_audit_remark:"",payment_slip_audit_remark:""}),zt={summary:[{required:!0,message:"请填写日志内容",trigger:"blur"}]},le=V(!1),Ne=V(!1),Se=V(),h=ut({times_per_day:3,usage_days:7,aux_times_per_day:3,aux_usage_days:7,medication_days:void 0}),At=x(()=>{const t={times_per_day:[{required:!0,message:"请填写主方每天次数",trigger:"change"}],usage_days:[{required:!0,message:"请填写主方开立天数",trigger:"change"}],medication_days:[{required:!0,message:"请填写订单服用天数",trigger:"change"}]};return q.value&&(t.aux_times_per_day=[{required:!0,message:"请填写辅方每天次数",trigger:"change"}],t.aux_usage_days=[{required:!0,message:"请填写辅方开立天数",trigger:"change"}]),t});function Dt(){const t=_.value,e=l.value;if(!t||!(e!=null&&e.id)||!e.prescription_id){I.msgWarning("无处方数据");return}const o=T.value;h.times_per_day=Number(t.times_per_day)>0?Number(t.times_per_day):3,h.usage_days=Number(t.usage_days)>0?Number(t.usage_days):7,h.aux_times_per_day=o&&Number(o.times_per_day)>0?Number(o.times_per_day):3,h.aux_usage_days=o&&Number(o.usage_days)>0?Number(o.usage_days):7;const y=Number(e.medication_days);h.medication_days=y>0?y:Number(t.usage_days)>0?Number(t.usage_days):7,le.value=!0,ha(()=>{var v;return(v=Se.value)==null?void 0:v.clearValidate()})}function Ut(){h.times_per_day=3,h.usage_days=7,h.aux_times_per_day=3,h.aux_usage_days=7,h.medication_days=void 0}async function Ct(){var o;const t=Se.value;if(!t)return;try{await t.validate()}catch{return}const e=(o=l.value)==null?void 0:o.id;if(e){Ne.value=!0;try{const y={id:e,times_per_day:Number(h.times_per_day),usage_days:Number(h.usage_days),medication_days:Number(h.medication_days)};q.value&&(y.aux_times_per_day=Number(h.aux_times_per_day),y.aux_usage_days=Number(h.aux_usage_days)),await Sa(y),I.msgSuccess("保存成功"),le.value=!1,await ce(),j("detail-changed")}catch{}finally{Ne.value=!1}}}function Ge(){var t;g.summary="",g.prescription_audit_status="",g.payment_slip_audit_status="",g.prescription_audit_remark="",g.payment_slip_audit_remark="",(t=pe.value)==null||t.clearValidate()}function Et(){var e;if(!((e=l.value)!=null&&e.id))return;Ge();const t=l.value;g.prescription_audit_remark=String(t.prescription_audit_remark||""),g.payment_slip_audit_remark=String(t.payment_slip_audit_remark||""),se.value=!0}async function It(){var t;if(!(!pe.value||!((t=l.value)!=null&&t.id))){await pe.value.validate(),he.value=!0;try{const e={id:l.value.id,summary:g.summary.trim()};ke.value&&g.prescription_audit_status!==""&&g.prescription_audit_status!==null&&g.prescription_audit_status!==void 0&&(e.prescription_audit_status=g.prescription_audit_status,e.prescription_audit_remark=g.prescription_audit_remark),we.value&&g.payment_slip_audit_status!==""&&g.payment_slip_audit_status!==null&&g.payment_slip_audit_status!==void 0&&(e.payment_slip_audit_status=g.payment_slip_audit_status,e.payment_slip_audit_remark=g.payment_slip_audit_remark),await Va(e),I.msgSuccess("日志已添加"),se.value=!1,await ce(),j("detail-changed")}catch{}finally{he.value=!1}}}async function Qe(t,e,o){var y;if(!t){G.value=[];return}try{const v=await Ta({diagnosis_id:t,prescription_order_id:e}),S=(v==null?void 0:v.lists)??((y=v==null?void 0:v.data)==null?void 0:y.lists)??[],z=Array.isArray(S)?S.filter(w=>!o.includes(w.id)):[];G.value=z}catch{G.value=[]}}const X=V("auto"),me=V(!1),Ve=V(!1),P=V(null),re=V("");let Pe=0;function Xe(){Pe+=1,P.value=null}function Le(t){var e,o;return t.requestSeq!==Pe||Number((e=l.value)==null?void 0:e.id)!==t.orderId?!1:String(((o=l.value)==null?void 0:o.tracking_number)||"").trim()===t.trackingNumber}const Oe=x(()=>{var o;const t=String(((o=l.value)==null?void 0:o.tracking_number)||"").trim();if(!t)return{sf:"javascript:void(0)",jd:"javascript:void(0)",jt:"javascript:void(0)"};const e=encodeURIComponent(t);return{sf:`https://www.sf-express.com/cn/sc/dynamic_function/waybill/#search/bill-number/${e}`,jd:`https://www.jdl.com/#/trackQuery?waybillCode=${e}`,jt:`https://www.jtexpress.com.cn/index/query/gzquery.html?bills=${e}`}}),Ye=x(()=>{const t=P.value;return!t||!Array.isArray(t.traces)?[]:t.traces}),B=x(()=>Wa(P.value));async function ie(){var v,S;const t=Number((v=l.value)==null?void 0:v.id),e=String(((S=l.value)==null?void 0:S.tracking_number)||"").trim();if(!t||!e)return;const y={requestSeq:++Pe,orderId:t,trackingNumber:e};me.value=!0;try{const z=String(re.value||"").replace(/\D/g,""),w={id:t,express_company:X.value};z.length>=4&&(w.phone_tail=z);const D=await Pa(w);if(!Le(y))return;P.value=Ba(D,e,t)}catch{if(!Le(y))return;P.value=null}finally{Le(y)&&(me.value=!1)}}async function jt(){var o,y;const t=Number((o=l.value)==null?void 0:o.id),e=String(((y=l.value)==null?void 0:y.tracking_number)||"").trim();if(!t||!e){I.msgWarning("当前订单未填写快递单号");return}Ve.value=!0;try{const v=await La({id:t});I.msgSuccess((v==null?void 0:v.message)||"京东物流轨迹已更新"),await ie()}catch(v){I.msgError((v==null?void 0:v.message)||"京东物流更新失败")}finally{Ve.value=!1}}function Ze(t){return U.detailLoader?U.detailLoader({id:t}):za({id:t})}async function Rt(t){Je(),l.value=null,G.value=[],Xe(),X.value="auto",re.value="",W.value=[],R.value=!0,ge.value=!0;try{const e=await Ze(t),o=(e==null?void 0:e.data)??e??null;if(l.value=o,o){X.value=String(o.express_company||"auto")||"auto";const y=String(o.recipient_phone||"").replace(/\D/g,"");re.value=y.length>=4?y:"",U.loadRelatedData&&String(o.tracking_number||"").trim()&&ie(),U.loadRelatedData&&Ke(t);const v=o.diagnosis_id,S=o.pay_order_ids||[];U.loadRelatedData&&v&&Qe(v,t,S)}}catch(e){I.msgError((e==null?void 0:e.message)||"加载失败"),R.value=!1}finally{ge.value=!1}}async function ce(){var e,o;const t=Number((e=l.value)==null?void 0:e.id);if(t)try{const y=await Ze(t),v=(y==null?void 0:y.data)??y??null;if(!v)return;const S=String(((o=l.value)==null?void 0:o.tracking_number)||"").trim();l.value=v;const z=String(v.tracking_number||"").trim();U.loadRelatedData&&z&&z!==S&&(Xe(),X.value=String(v.express_company||"auto")||"auto",ie()),U.loadRelatedData&&Ke(t);const w=v.diagnosis_id;U.loadRelatedData&&w&&Qe(w,t,v.pay_order_ids||[])}catch{}}async function et(t){var o;const e=Number(t);!R.value||!(e>0)||Number((o=l.value)==null?void 0:o.id)!==e||await ce()}function qt(){R.value=!1}return kt({open:Rt,refresh:ce,refreshIfCurrent:et,close:qt,detail:l,visible:R}),(t,e)=>{const o=Gt,y=Kt,v=Wt,S=Xt,z=Qt,w=Zt,D=Yt,f=ta,tt=ea,N=sa,Te=aa,Y=la,Bt=na,Ft=ia,_e=oa,C=pa,ze=da,Ae=ma,De=ya,at=ga,st=fa,E=ka,lt=xa,rt=ba,ne=wa,$t=Jt,F=Ht("perms");return s(),c($t,{modelValue:R.value,"onUpdate:modelValue":e[21]||(e[21]=$=>R.value=$),class:"po-detail-drawer",size:"80%","destroy-on-close":"","close-on-click-modal":!1,"append-to-body":b.appendToBody},{header:a(()=>{var $,u,L;return[n("div",Ga,[n("div",Qa,[e[22]||(e[22]=n("span",{class:"po-detail-drawer-title text-gray-800 font-semibold text-lg"},"业务订单详情",-1)),($=l.value)!=null&&$.order_no?(s(),c(o,{key:0,type:"primary",effect:"plain",round:"",class:"ml-3"},{default:a(()=>[d(i(l.value.order_no),1)]),_:1})):p("",!0),(u=l.value)!=null&&u.gancao_reciperl_order_no?(s(),c(o,{key:1,type:"success",effect:"plain",round:"",class:"ml-2"},{default:a(()=>[d("甘草 "+i(l.value.gancao_reciperl_order_no),1)]),_:1})):p("",!0),(L=l.value)!=null&&L.ej_pharmacy_order_no?(s(),c(o,{key:2,type:"warning",effect:"plain",round:"",class:"ml-2"},{default:a(()=>[d("洛阳 "+i(l.value.ej_pharmacy_order_no),1)]),_:1})):p("",!0),l.value?ot(t.$slots,"header-extra",{key:3,detail:l.value},void 0,!0):p("",!0)]),l.value?(s(),m("div",Xa,[ot(t.$slots,"header-actions",{detail:l.value},void 0,!0)])):p("",!0)])]}),default:a(()=>{var $;return[ge.value?(s(),c(y,{key:0,rows:12,animated:"",class:"px-6 py-4"})):l.value?(s(),m("div",Ya,[!b.readonly&&ae.value?(s(),c(v,{key:0,type:"error",closable:!1,"show-icon":"",class:"mb-4 !items-start",title:"业务订单收货手机与处方登记手机不一致"},{default:a(()=>[n("div",Za,[n("div",null,[e[23]||(e[23]=d(" 处方手机: ",-1)),n("span",es,i(Nt.value),1)]),n("div",null,[e[24]||(e[24]=d(" 订单收货手机: ",-1)),n("span",ts,i(St.value),1)]),e[25]||(e[25]=n("div",{class:"text-gray-600 mt-1"},"请核对是否代收货或录入错误,避免物流与回访联系错人。",-1))])]),_:1})):p("",!0),!b.readonly&&B.value.show&&String((($=l.value)==null?void 0:$.tracking_number)||"").trim()?(s(),c(v,{key:1,type:"error",effect:"dark",closable:!1,"show-icon":"",class:"mb-4 !items-start ring-2 ring-red-600/90 shadow-lg",title:"物流异常:轨迹中出现拒收 / 退回等字样,请优先跟进处理"},{default:a(()=>[n("div",as,[B.value.keywords.length?(s(),m("div",ss,[e[26]||(e[26]=n("span",{class:"text-red-100 text-xs"},"命中关键词:",-1)),(s(!0),m(O,null,Z(B.value.keywords,u=>(s(),c(o,{key:u,type:"danger",effect:"plain",size:"small",class:"!border-white/40 !text-white"},{default:a(()=>[d(i(u),1)]),_:2},1024))),128))])):p("",!0),B.value.lines.length?(s(),m("ul",ls,[(s(!0),m(O,null,Z(B.value.lines,(u,L)=>(s(),m("li",{key:L},i(u),1))),128))])):p("",!0),e[27]||(e[27]=n("div",{class:"text-xs text-red-100/90 pt-1 border-t border-white/15"}," 请核实是否需改址重发、拦截退件或协调患者签收,并在备注中记录处理结果。 ",-1))])]),_:1})):p("",!0),b.readonly?p("",!0):(s(),m("div",rs,[r(z,{active:oe.value,"align-center":"","finish-status":"success"},{default:a(()=>[r(S,{title:"业务订单创建",description:k(Ue)(l.value.create_time)},null,8,["description"]),r(S,{title:"处方单双审",status:ue.value},{description:a(()=>[ue.value==="error"?(s(),m("span",is,"处方被驳回")):ue.value==="wait"?(s(),m("span",ns,"等待审核")):ue.value==="success"?(s(),m("span",os,"双审通过")):(s(),m("span",us,"进行中"))]),_:1},8,["status"]),r(S,{title:"支付单审核",status:de.value},{description:a(()=>[de.value==="error"?(s(),m("span",ds,"支付审核驳回")):de.value==="wait"?(s(),m("span",ps,"等待审核")):de.value==="success"?(s(),m("span",ms,"审核通过")):(s(),m("span",cs,"进行中"))]),_:1},8,["status"]),r(S,{title:"发货与履约",status:Q.value},{description:a(()=>{var u,L,M;return[Q.value==="process"&&Number((u=l.value)==null?void 0:u.fulfillment_status)===7?(s(),m("span",_s,"进行中")):Q.value==="process"?(s(),m("span",ys,"等待发货/补充单号")):Q.value==="wait"?(s(),m("span",vs,"待转入履约")):Q.value==="success"?(s(),m("span",fs,i(k(dt)((L=l.value)==null?void 0:L.fulfillment_status)),1)):Q.value==="error"?(s(),m("span",gs,i(k(dt)((M=l.value)==null?void 0:M.fulfillment_status)),1)):p("",!0)]}),_:1},8,["status"]),r(S,{title:"订单完成"})]),_:1},8,["active"])])),n("div",bs,[r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[n("div",xs,[e[29]||(e[29]=n("div",{class:"stat-title text-gray-500 text-xs"},"总金额",-1)),!b.readonly&&k(pt)(l.value)?J((s(),c(w,{key:0,type:"primary",size:"small",link:"",onClick:e[0]||(e[0]=u=>j("update-amount"))},{default:a(()=>[...e[28]||(e[28]=[d(" 修改 ",-1)])]),_:1})),[[F,["tcm.prescriptionOrder/updateAmount"]]]):p("",!0)]),n("div",ks,"¥"+i(l.value.amount),1)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[30]||(e[30]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"已付总额",-1)),n("div",ws,"¥"+i(l.value.linked_pay_paid_total||0),1)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[31]||(e[31]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"退款金额",-1)),n("div",{class:K(["stat-value font-bold text-xl",Number(l.value.refund_amount)>0?"text-rose-500":"text-gray-400"])}," ¥"+i(k(Ce)(l.value.refund_amount||0)),3)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[32]||(e[32]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"需代收",-1)),n("div",{class:K(["stat-value font-bold text-xl",Re.value>0?"text-amber-600":"text-gray-500"])}," ¥"+i(k(Ce)(Re.value)),3)]),_:1}),r(D,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:a(()=>[e[33]||(e[33]=n("div",{class:"stat-title text-gray-500 text-xs mb-1"},"已付笔数",-1)),n("div",hs,i(be.value.length)+" 笔",1)]),_:1})]),n("div",Ns,[r(D,{shadow:"never",class:"po-panel po-panel-rx border-gray-100 h-full relative overflow-hidden"},{header:a(()=>[n("div",Ps,[n("div",Ls,[e[40]||(e[40]=n("span",{class:"font-medium text-[15px]"},"处方详情",-1)),l.value.doctor_name?(s(),m("span",Os,[e[36]||(e[36]=d(" 开方人:",-1)),n("span",Ts,i(l.value.doctor_name),1)])):p("",!0),!b.readonly&&l.value.prescription_id&&_.value&&!String(l.value.prescription_detail_error||"").trim()?J((s(),c(w,{key:1,type:"default",size:"small",link:"",onClick:e[1]||(e[1]=u=>j("patch-rx-patient"))},{default:a(()=>[...e[37]||(e[37]=[d(" 改患者信息 ",-1)])]),_:1})),[[F,["tcm.prescriptionOrder/patchPrescriptionPatient"]]]):p("",!0),!b.readonly&&l.value.prescription_id&&fe.value?(s(),c(w,{key:2,type:"primary",size:"small",link:"",onClick:e[2]||(e[2]=u=>j("view-prescription"))},{default:a(()=>[...e[38]||(e[38]=[d(" 详细 ",-1)])]),_:1})):p("",!0),!b.readonly&&l.value.id&&fe.value?(s(),c(w,{key:3,type:"warning",size:"small",link:"",loading:b.gancaoPreviewLoading,icon:k(ra),onClick:e[3]||(e[3]=u=>j("test-gancao-preview"))},{default:a(()=>[...e[39]||(e[39]=[d(" 测试价格 ",-1)])]),_:1},8,["loading","icon"])):p("",!0)]),n("span",zs,"ID: "+i(l.value.prescription_id||"—"),1)])]),default:a(()=>[l.value.prescription_audit_status===1?(s(),m("div",Ss,[...e[34]||(e[34]=[n("div",{class:"stamp-inner"},"审核通过",-1)])])):p("",!0),l.value.prescription_audit_status===2?(s(),m("div",Vs,[...e[35]||(e[35]=[n("div",{class:"stamp-inner"},"已驳回",-1)])])):p("",!0),!b.readonly&&String(l.value.prescription_detail_error||"").trim()?(s(),c(v,{key:2,title:l.value.prescription_detail_error,type:"warning",closable:!1,"show-icon":"",class:"mb-3"},null,8,["title"])):_.value?(s(),m(O,{key:3},[r(tt,{column:2,border:"",size:"small",class:"po-desc bg-white"},{default:a(()=>[r(f,{label:"处方编号",span:2},{default:a(()=>[d(i(_.value.sn||"—"),1)]),_:1}),r(f,{label:"患者"},{default:a(()=>[d(i(_.value.patient_name||"—"),1)]),_:1}),r(f,{label:"性别 / 年龄"},{default:a(()=>[d(i(_.value.gender_desc||"—")+" · "+i(_.value.age??"—")+"岁 ",1)]),_:1}),r(f,{label:"手机"},{default:a(()=>[n("span",{class:K(ae.value?"rx-phone-mismatch text-red-600 font-bold":"")},i(_.value.phone||"—"),3),ae.value?(s(),c(o,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-2 align-middle"},{default:a(()=>[...e[41]||(e[41]=[d(" 与订单手机不一致 ",-1)])]),_:1})):p("",!0)]),_:1}),r(f,{label:"处方日期"},{default:a(()=>[d(i(_.value.prescription_date||"—"),1)]),_:1}),r(f,{label:"医师"},{default:a(()=>[d(i(_.value.doctor_name||"—"),1)]),_:1}),r(f,{label:"类型"},{default:a(()=>[d(i(_.value.prescription_type||"—"),1)]),_:1}),r(f,{label:"临床诊断",span:2},{default:a(()=>[d(i(_.value.clinical_diagnosis||"—"),1)]),_:1}),fe.value?(s(),c(f,{key:0,label:"剂数 / 用法",span:2},{default:a(()=>[d(i(l.value.dose_count??_.value.dose_count??"—")+" "+i(l.value.dose_unit||"剂")+" · "+i(_.value.usage_instruction||_.value.usage_method||"—"),1)]),_:1})):p("",!0),r(f,{label:"处方金额"},{default:a(()=>[n("span",As,"¥"+i(_.value.amount??"—"),1)]),_:1}),r(f,{label:"消费者审核"},{default:a(()=>[r(o,{type:k(Ca)(_.value.audit_status),size:"small"},{default:a(()=>[d(i(k(Ea)(_.value.audit_status)),1)]),_:1},8,["type"])]),_:1}),r(f,{label:"用量"},{default:a(()=>[n("div",Ds,[n("div",null,[q.value?(s(),m("span",Us,"主方:")):p("",!0),_.value.dosage_amount?(s(),m(O,{key:1},[d(i(_.value.dosage_amount)+i(_.value.dosage_unit||"g")+" ",1),_.value.prescription_type==="浓缩水丸"?(s(),m(O,{key:0},[d(" · "+i(Number(_.value.dosage_bag_count)>0?Number(_.value.dosage_bag_count):1)+"袋 ",1)],64)):p("",!0),_.value.prescription_type==="饮片"&&_.value.need_decoction!==null?(s(),m("span",Cs," ("+i(_.value.need_decoction?"代煎":"不代煎")+") ",1)):p("",!0)],64)):(s(),m(O,{key:2},[d("—")],64))]),q.value&&T.value?(s(),m("div",Es,[e[42]||(e[42]=n("span",{class:"text-gray-500 mr-1"},"辅方:",-1)),T.value.dosage_amount!=null&&T.value.dosage_amount!==0?(s(),m(O,{key:0},[d(i(T.value.dosage_amount)+i(_.value.dosage_unit||"g")+" ",1),_.value.prescription_type==="浓缩水丸"?(s(),m(O,{key:0},[d(" · "+i(Number(T.value.dosage_bag_count)>0?Number(T.value.dosage_bag_count):1)+"袋 ",1)],64)):p("",!0),_.value.prescription_type==="饮片"?(s(),m("span",Is," ("+i(T.value.need_decoction?"代煎":"不代煎")+") ",1)):p("",!0)],64)):(s(),m(O,{key:1},[d("—")],64))])):p("",!0)])]),_:1}),r(f,null,{label:a(()=>[n("div",js,[e[44]||(e[44]=n("span",null,"服用方式",-1)),!b.readonly&&l.value.prescription_id&&_.value&&!String(l.value.prescription_detail_error||"").trim()?J((s(),c(w,{key:0,type:"primary",size:"small",link:"",onClick:Dt},{default:a(()=>[...e[43]||(e[43]=[d(" 修改 ",-1)])]),_:1})),[[F,["tcm.prescriptionOrder/patchPrescriptionUsage"]]]):p("",!0)])]),default:a(()=>[n("div",Rs,[q.value?(s(),m(O,{key:0},[n("div",null,[e[45]||(e[45]=n("span",{class:"text-gray-500 mr-1"},"主方:",-1)),d(" 每天 "+i(_.value.times_per_day?_.value.times_per_day+" 次":"— 次")+" · 处方开立 "+i(_.value.usage_days!=null&&_.value.usage_days!==""?_.value.usage_days+" 天":"— 天"),1)]),T.value?(s(),m("div",qs,[e[46]||(e[46]=n("span",{class:"text-gray-500 mr-1"},"辅方:",-1)),d(" 每天 "+i(T.value.times_per_day?T.value.times_per_day+" 次":"— 次")+" · 处方开立 "+i(T.value.usage_days!=null&&Number(T.value.usage_days)>0?T.value.usage_days+" 天":"— 天"),1)])):p("",!0)],64)):(s(),m(O,{key:1},[n("div",null,[e[47]||(e[47]=n("span",{class:"text-gray-500"},"每天次数:",-1)),d(" "+i(_.value.times_per_day?_.value.times_per_day+" 次":"—"),1)]),n("div",null,[e[48]||(e[48]=n("span",{class:"text-gray-500"},"处方开立:",-1)),d(" "+i(_.value.usage_days!=null&&_.value.usage_days!==""?_.value.usage_days+" 天":"—"),1)])],64)),n("div",null,[e[49]||(e[49]=n("span",{class:"text-gray-500"},"订单设置:",-1)),d(" "+i(l.value.medication_days!=null&&String(l.value.medication_days).trim()!==""?l.value.medication_days+" 天":"—"),1)])])]),_:1}),je.value?(s(),c(f,{key:1,label:"忌口",span:2},{default:a(()=>[d(i(je.value),1)]),_:1})):p("",!0),r(f,{label:"状态",span:2},{default:a(()=>[r(o,{type:Number(_.value.void_status)===1?"danger":"success",size:"small"},{default:a(()=>[d(i(Number(_.value.void_status)===1?"已作废":"正常"),1)]),_:1},8,["type"])]),_:1})]),_:1}),!b.readonly&&Vt.value?(s(),m("div",Bs,[e[50]||(e[50]=n("div",{class:"text-xs font-medium text-gray-500 mb-2 px-1"},"药材明细",-1)),Me.value.length?(s(),c(Te,{key:0,data:Me.value,size:"small",border:"",stripe:"","max-height":"260"},{default:a(()=>[r(N,{type:"index",label:"#",width:"48",align:"center"}),r(N,{prop:"name",label:"药名","min-width":"120","show-overflow-tooltip":""}),r(N,{prop:"dosage",label:"用量(g)",width:"96",align:"right"})]),_:1},8,["data"])):(s(),c(Y,{key:1,description:"无处方药材明细","image-size":64}))])):p("",!0)],64)):(s(),c(Y,{key:4,description:"无处方数据","image-size":72}))]),_:1}),n("div",Fs,[r(D,{shadow:"never",class:"po-panel border-gray-100"},{header:a(()=>[...e[51]||(e[51]=[n("div",{class:"flex items-center justify-between"},[n("span",{class:"font-medium text-[15px]"},"未关联的收款记录"),n("span",{class:"text-xs text-gray-400"},"本诊单下未被占用的支付单")],-1)])]),default:a(()=>[G.value.length?(s(),c(Te,{key:0,data:G.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:a(()=>[r(N,{prop:"id",label:"ID",width:"70"}),r(N,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),r(N,{label:"类型",width:"90"},{default:a(({row:u})=>[d(i(u.order_type_desc||k(Ee)(u.order_type)),1)]),_:1}),r(N,{label:"金额",width:"86",align:"right"},{default:a(({row:u})=>[n("span",$s,"¥"+i(u.amount),1)]),_:1}),r(N,{label:"状态",width:"100",align:"center"},{default:a(({row:u})=>[r(o,{type:k(mt)(u.status),size:"small"},{default:a(()=>[d(i(u.status_desc||k(ct)(u.status)),1)]),_:2},1032,["type"]),!b.readonly&&u.is_exempt===1?(s(),c(o,{key:0,type:"warning",size:"small",class:"ml-1"},{default:a(()=>[...e[52]||(e[52]=[d("豁免",-1)])]),_:1})):p("",!0)]),_:1}),b.readonly?p("",!0):(s(),c(N,{key:0,label:"方式","min-width":"120","show-overflow-tooltip":""},{default:a(({row:u})=>[d(i(k(_t)(u)),1)]),_:1})),r(N,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),r(N,{label:"创建时间","min-width":"136"},{default:a(({row:u})=>[d(i(k(yt)(u.create_time)),1)]),_:1})]),_:1},8,["data"])):(s(),c(Y,{key:1,description:"无未关联的收款单","image-size":60}))]),_:1}),r(D,{shadow:"never",class:"po-panel po-panel-pay border-gray-100 relative overflow-hidden"},{header:a(()=>[n("div",Js,[n("div",Ks,[e[56]||(e[56]=n("span",{class:"font-medium text-[15px]"},"关联收款记录",-1)),l.value.creator_name?(s(),m("span",Ws,[e[55]||(e[55]=d(" 创建人:",-1)),n("span",Gs,i(l.value.creator_name),1)])):p("",!0)])])]),default:a(()=>[l.value.payment_slip_audit_status===1?(s(),m("div",Ms,[...e[53]||(e[53]=[n("div",{class:"stamp-inner"},"审核通过",-1)])])):p("",!0),l.value.payment_slip_audit_status===2?(s(),m("div",Hs,[...e[54]||(e[54]=[n("div",{class:"stamp-inner"},"已驳回",-1)])])):p("",!0),be.value.length?(s(),c(Te,{key:2,data:be.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:a(()=>[r(N,{prop:"id",label:"ID",width:"70"}),r(N,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),r(N,{label:"类型",width:"90"},{default:a(({row:u})=>[d(i(u.order_type_desc||k(Ee)(u.order_type)),1)]),_:1}),r(N,{label:"金额",width:"86",align:"right"},{default:a(({row:u})=>[n("span",Qs,"¥"+i(u.amount),1)]),_:1}),r(N,{label:"状态",width:"100",align:"center"},{default:a(({row:u})=>[r(o,{type:k(mt)(u.status),size:"small"},{default:a(()=>[d(i(u.status_desc||k(ct)(u.status)),1)]),_:2},1032,["type"]),!b.readonly&&u.is_exempt===1?(s(),c(o,{key:0,type:"warning",size:"small",class:"ml-1"},{default:a(()=>[...e[57]||(e[57]=[d("豁免",-1)])]),_:1})):p("",!0)]),_:1}),b.readonly?p("",!0):(s(),c(N,{key:0,label:"方式","min-width":"120","show-overflow-tooltip":""},{default:a(({row:u})=>[d(i(k(_t)(u)),1)]),_:1})),r(N,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),r(N,{label:"创建时间","min-width":"136"},{default:a(({row:u})=>[d(i(k(yt)(u.create_time)),1)]),_:1}),Ie.value?(s(),c(N,{key:1,label:"操作",width:"80",fixed:"right",align:"center"},{default:a(({row:u})=>[r(w,{type:"danger",size:"small",link:"",loading:te.value===Number(u.id),disabled:te.value!==null||![2,5].includes(Number(u.status)),title:Number(u.status)===4?"已退款收款记录不可移除":"解除关联并更新已付金额,总金额不变",onClick:L=>ht(u)},{default:a(()=>[...e[58]||(e[58]=[d("移除",-1)])]),_:1},8,["loading","disabled","title","onClick"])]),_:1})):p("",!0)]),_:1},8,["data"])):(s(),c(Y,{key:3,description:"未关联收款单","image-size":60}))]),_:1})])]),r(D,{shadow:"never",class:"po-panel po-panel-biz border-gray-100 mb-4"},{header:a(()=>[...e[59]||(e[59]=[n("span",{class:"font-medium text-[15px]"},"履约与收货信息",-1)])]),default:a(()=>[r(tt,{column:3,border:"",size:"small",class:"po-desc"},{default:a(()=>[r(f,{label:"诊单ID",span:3},{default:a(()=>[n("span",Xs,i(l.value.diagnosis_id),1),!b.readonly&&Number(l.value.diagnosis_id)>0?(s(),c(w,{key:0,type:"primary",link:"",size:"small",class:"ml-2 align-baseline",onClick:e[4]||(e[4]=u=>j("view-patient"))},{default:a(()=>[...e[60]||(e[60]=[d(" 查看患者信息 ",-1)])]),_:1})):p("",!0)]),_:1}),r(f,{label:"创建时间",span:1},{default:a(()=>[d(i(k(Ue)(l.value.create_time)),1)]),_:1}),r(f,{label:"业务订单创建人",span:2},{default:a(()=>[Number(l.value.creator_id)>0||l.value.creator_name?(s(),m("div",Ys,[n("div",null,[n("span",Zs,i(l.value.creator_name||"—"),1),!b.readonly&&Number(l.value.creator_id)>0?(s(),m("span",el,"ID "+i(l.value.creator_id),1)):p("",!0)]),Be.value?(s(),m("div",tl,i(Be.value),1)):p("",!0)])):(s(),m("span",al,"—"))]),_:1}),r(f,{label:"创建人所属部门",span:3},{default:a(()=>[qe.value.length?(s(),m("div",sl,[(s(!0),m(O,null,Z(qe.value,(u,L)=>(s(),m("div",{key:L,class:"min-w-0"},[u.length?(s(),c(Ft,{key:0,class:"po-diagnosis-creator-dept-breadcrumb text-[13px] leading-relaxed",separator:"/"},{default:a(()=>[(s(!0),m(O,null,Z(u,(M,ye)=>(s(),c(Bt,{key:ye},{default:a(()=>[n("span",ll,i(M),1)]),_:2},1024))),128))]),_:2},1024)):p("",!0)]))),128))])):(s(),m("span",rl,"—"))]),_:1}),r(f,{label:"收货人"},{default:a(()=>[d(i(l.value.recipient_name),1)]),_:1}),b.readonly?p("",!0):(s(),c(f,{key:0,label:"挂号关联",span:3},{default:a(()=>[A.value?(s(),m(O,{key:0},[n("div",il,[n("span",null,[e[61]||(e[61]=d("流转编号(挂号) ",-1)),n("span",nl,"#"+i(A.value.id),1)]),n("span",ol,"时间:"+i(A.value.appointment_date)+" "+i(A.value.period)+" "+i(A.value.appointment_time),1),r(o,{size:"small",type:"info"},{default:a(()=>[d(i(A.value.appointment_type_desc),1)]),_:1}),r(o,{size:"small"},{default:a(()=>[d(i(A.value.status_desc),1)]),_:1}),A.value.doctor_name?(s(),m("span",ul,"接诊:"+i(A.value.doctor_name),1)):p("",!0),$e.value?(s(),m("span",dl,"渠道:"+i($e.value),1)):p("",!0),Fe.value?(s(),c(o,{key:2,size:"small",effect:"plain"},{default:a(()=>[d(i(Fe.value),1)]),_:1})):p("",!0)]),String(A.value.remark||"").trim()?(s(),m("p",pl," 备注:"+i(A.value.remark),1)):p("",!0)],64)):(s(),m("span",ml,"暂无挂号预约记录(未绑定或诊单下无预约)"))]),_:1})),r(f,{label:"收货手机"},{default:a(()=>[n("span",{class:K(ae.value?"text-red-600 font-bold font-mono":"font-mono")},i(l.value.recipient_phone||"—"),3),ae.value?(s(),c(o,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-2 align-middle"},{default:a(()=>[...e[62]||(e[62]=[d(" 与处方手机不一致 ",-1)])]),_:1})):p("",!0)]),_:1}),r(f,{label:"收货地址",span:2},{default:a(()=>[d(i(Pt.value),1)]),_:1}),r(f,{label:"复诊"},{default:a(()=>[d(i(l.value.is_follow_up?"是":"否"),1)]),_:1}),r(f,{label:"用药疗程"},{default:a(()=>[d(i(l.value.medication_days?l.value.medication_days+" 天":"—"),1)]),_:1}),r(f,{label:"上次医护"},{default:a(()=>[d(i(l.value.prev_staff||"—"),1)]),_:1}),r(f,{label:"服务渠道"},{default:a(()=>[d(i(l.value.service_channel||"—"),1)]),_:1}),r(f,{label:"服务套餐"},{default:a(()=>[d(i(Lt.value),1)]),_:1}),r(f,{label:"费用类别"},{default:a(()=>[d(i(k(Ee)(l.value.fee_type)),1)]),_:1}),He.value?(s(),c(f,{key:1,label:"内部成本"},{default:a(()=>[d(" ¥"+i(l.value.internal_cost),1)]),_:1})):p("",!0),r(f,{label:"快递单号",span:He.value?1:2},{default:a(()=>[d(i(l.value.tracking_number||"—"),1)]),_:1},8,["span"]),r(f,{label:"快递公司"},{default:a(()=>[d(i(k(Ia)(l.value.express_company)),1)]),_:1}),J((s(),c(f,{label:"药房备注",span:3},{default:a(()=>[d(i(l.value.remark_extra||"—"),1)]),_:1})),[[F,["tcm.prescriptionOrder/editRemarkExtra"]]]),r(f,{label:"医助备注",span:3},{default:a(()=>[d(i(l.value.remark_assistant||"—"),1)]),_:1}),r(f,{label:"处方审核意见",span:3},{default:a(()=>[n("span",cl,i(l.value.prescription_audit_remark||"—"),1)]),_:1}),r(f,{label:"支付审核意见",span:3},{default:a(()=>[n("span",_l,i(l.value.payment_slip_audit_remark||"—"),1)]),_:1})]),_:1})]),_:1}),b.loadRelatedData&&String(l.value.tracking_number||"").trim()?(s(),c(D,{key:3,shadow:"never",class:K(["po-panel po-panel-logistics",!b.readonly&&B.value.show?"!border-2 !border-red-500 shadow-md shadow-red-500/10":"border-gray-100"])},{header:a(()=>[n("div",yl,[e[64]||(e[64]=n("span",{class:"font-medium text-[15px]"},"物流轨迹",-1)),n("span",vl,i(l.value.tracking_number),1),!b.readonly&&B.value.show?(s(),c(o,{key:0,type:"danger",effect:"dark",size:"small"},{default:a(()=>[...e[63]||(e[63]=[d(" 拒收/退回 · 待处理 ",-1)])]),_:1})):p("",!0)])]),default:a(()=>{var u,L,M,ye,it,nt;return[b.readonly?p("",!0):(s(),m("p",fl," 优先读库,无记录时走快递100。顺丰会校验单号+电话(快递100要求完整手机号更易通过);默认预填订单收货手机,若仍提示验证码错误请改成与顺丰面单一致的号码。 ")),n("div",gl,[r(_e,{modelValue:re.value,"onUpdate:modelValue":e[5]||(e[5]=H=>re.value=H),clearable:"",maxlength:"20",placeholder:"收件手机(建议11位,与面单一致)",class:"w-[180px]",onKeyup:ua(ie,["enter"])},null,8,["modelValue"]),r(ze,{modelValue:X.value,"onUpdate:modelValue":e[6]||(e[6]=H=>X.value=H),placeholder:"承运商",style:{width:"140px"}},{default:a(()=>[r(C,{label:"自动识别",value:"auto"}),r(C,{label:"顺丰速运",value:"sf"}),r(C,{label:"京东快递",value:"jd"}),r(C,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),J((s(),c(w,{type:"primary",plain:"",size:"default",loading:me.value,onClick:ie},{icon:a(()=>[r(Ae,null,{default:a(()=>[r(k(ca))]),_:1})]),default:a(()=>[e[65]||(e[65]=d(" 刷新轨迹 ",-1))]),_:1},8,["loading"])),[[F,["tcm.prescriptionOrder/logisticsTrace"]]]),b.readonly?p("",!0):J((s(),c(w,{key:0,type:"warning",plain:"",size:"default",loading:Ve.value,onClick:jt},{icon:a(()=>[r(Ae,null,{default:a(()=>[r(k(_a))]),_:1})]),default:a(()=>[e[66]||(e[66]=d(" 京东接口更新 ",-1))]),_:1},8,["loading"])),[[F,["tcm.prescriptionOrder/logisticsTrace"]]]),b.readonly?p("",!0):(s(),m("div",bl,[r(De,{href:Oe.value.sf,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:a(()=>[...e[67]||(e[67]=[d("顺丰官网",-1)])]),_:1},8,["href"]),r(De,{href:Oe.value.jd,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:a(()=>[...e[68]||(e[68]=[d("京东物流",-1)])]),_:1},8,["href"]),r(De,{href:Oe.value.jt,target:"_blank",type:"primary",underline:!1,class:"text-[13px]"},{default:a(()=>[...e[69]||(e[69]=[d("极兔",-1)])]),_:1},8,["href"])]))]),!b.readonly&&String(((u=P.value)==null?void 0:u.hint)||"").trim()?(s(),c(v,{key:1,title:String(((L=P.value)==null?void 0:L.hint)||""),type:"info",closable:!1,class:"mb-4","show-icon":""},null,8,["title"])):p("",!0),me.value&&!P.value?(s(),m("div",xl,[r(Ae,{class:"is-loading mr-1"},{default:a(()=>[r(k(va))]),_:1}),e[70]||(e[70]=d("正在加载物流轨迹... ",-1))])):P.value?(s(),m("div",kl,[(M=P.value)!=null&&M.state_text?(s(),m("div",wl,[n("span",hl,"状态:"+i(P.value.state_text),1),(ye=P.value)!=null&&ye.carrier_label?(s(),c(o,{key:0,size:"small",type:"info"},{default:a(()=>[d(i(P.value.carrier_label),1)]),_:1})):p("",!0),!b.readonly&&((it=P.value)!=null&&it.source)?(s(),m("span",Nl," ["+i(P.value.source==="database"?"数据库缓存":"API拉取")+"] ",1)):p("",!0),!b.readonly&&((nt=P.value)!=null&&nt.last_query_time)?(s(),m("span",Sl," 更新时间:"+i(P.value.last_query_time),1)):p("",!0)])):p("",!0),Ye.value.length?(s(),c(st,{key:1,class:"mt-2 pl-2"},{default:a(()=>[(s(!0),m(O,null,Z(Ye.value,(H,ve)=>(s(),c(at,{key:ve,type:ve===0?"primary":"info",hollow:ve!==0,timestamp:H.time,placement:"top"},{default:a(()=>[n("span",{class:K([ve===0?"text-gray-800 font-medium":"text-gray-500",!b.readonly&&k(ja)(H.context)?"!text-red-700 font-semibold bg-red-50 px-1.5 py-0.5 rounded":""])},i(H.context),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(s(),c(Y,{key:2,description:"暂无轨迹节点记录","image-size":64}))])):p("",!0)]}),_:1},8,["class"])):p("",!0),b.loadRelatedData?J((s(),c(D,{key:4,shadow:"never",class:"po-panel border-gray-100 mt-4"},{header:a(()=>[n("div",Vl,[e[72]||(e[72]=n("span",{class:"font-medium text-[15px]"},"操作日志",-1)),Tt()?(s(),c(w,{key:0,type:"primary",link:"",size:"small",onClick:Et},{default:a(()=>[...e[71]||(e[71]=[d(" 新增日志 ",-1)])]),_:1})):p("",!0)])]),default:a(()=>[W.value.length?(s(),c(st,{key:0,class:"mt-2 pl-2"},{default:a(()=>[(s(!0),m(O,null,Z(W.value,(u,L)=>(s(),c(at,{key:u.id,type:L===0?"primary":"info",hollow:L!==0,timestamp:k(Ue)(u.create_time),placement:"top"},{default:a(()=>[n("div",Pl,[n("span",Ll,i(u.admin_name),1),r(o,{size:"small",type:"info"},{default:a(()=>[d(i(k(Ra)(u.action)),1)]),_:2},1024)]),n("span",{class:K(L===0?"text-gray-800 font-medium":"text-gray-500")},i(u.summary),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(s(),c(Y,{key:1,description:"暂无操作日志","image-size":64}))]),_:1})),[[F,["tcm.prescriptionOrder/logs"]]]):p("",!0),r(rt,{modelValue:se.value,"onUpdate:modelValue":e[13]||(e[13]=u=>se.value=u),title:"新增操作日志",width:"520px","close-on-click-modal":!1,"destroy-on-close":"","append-to-body":"",onClosed:Ge},{footer:a(()=>[r(w,{onClick:e[12]||(e[12]=u=>se.value=!1)},{default:a(()=>[...e[73]||(e[73]=[d("取消",-1)])]),_:1}),r(w,{type:"primary",loading:he.value,onClick:It},{default:a(()=>[...e[74]||(e[74]=[d("保存",-1)])]),_:1},8,["loading"])]),default:a(()=>[r(lt,{ref_key:"addLogFormRef",ref:pe,model:g,rules:zt,"label-width":"108px"},{default:a(()=>[r(E,{label:"日志内容",prop:"summary"},{default:a(()=>[r(_e,{modelValue:g.summary,"onUpdate:modelValue":e[7]||(e[7]=u=>g.summary=u),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"记录本次操作说明、沟通结果等"},null,8,["modelValue"])]),_:1}),ke.value?(s(),c(E,{key:0,label:"处方审核"},{default:a(()=>[r(ze,{modelValue:g.prescription_audit_status,"onUpdate:modelValue":e[8]||(e[8]=u=>g.prescription_audit_status=u),class:"w-full",clearable:"",placeholder:"不修改"},{default:a(()=>[r(C,{label:"待审核",value:0}),r(C,{label:"已通过",value:1}),r(C,{label:"已驳回",value:2})]),_:1},8,["modelValue"]),l.value?(s(),m("div",Ol," 当前:"+i(k(vt)(l.value.prescription_audit_status)),1)):p("",!0)]),_:1})):p("",!0),ke.value&&g.prescription_audit_status!==""&&g.prescription_audit_status!==null&&g.prescription_audit_status!==void 0?(s(),c(E,{key:1,label:"处方审核意见"},{default:a(()=>[r(_e,{modelValue:g.prescription_audit_remark,"onUpdate:modelValue":e[9]||(e[9]=u=>g.prescription_audit_remark=u),type:"textarea",rows:2,maxlength:"500","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1})):p("",!0),we.value?(s(),c(E,{key:2,label:"支付单审核"},{default:a(()=>[r(ze,{modelValue:g.payment_slip_audit_status,"onUpdate:modelValue":e[10]||(e[10]=u=>g.payment_slip_audit_status=u),class:"w-full",clearable:"",placeholder:"不修改"},{default:a(()=>[r(C,{label:"待审核",value:0}),r(C,{label:"已通过",value:1}),r(C,{label:"已驳回",value:2})]),_:1},8,["modelValue"]),l.value?(s(),m("div",Tl," 当前:"+i(k(vt)(l.value.payment_slip_audit_status)),1)):p("",!0)]),_:1})):p("",!0),we.value&&g.payment_slip_audit_status!==""&&g.payment_slip_audit_status!==null&&g.payment_slip_audit_status!==void 0?(s(),c(E,{key:3,label:"支付审核意见"},{default:a(()=>[r(_e,{modelValue:g.payment_slip_audit_remark,"onUpdate:modelValue":e[11]||(e[11]=u=>g.payment_slip_audit_remark=u),type:"textarea",rows:2,maxlength:"500","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1})):p("",!0)]),_:1},8,["model"])]),_:1},8,["modelValue"]),r(rt,{modelValue:le.value,"onUpdate:modelValue":e[20]||(e[20]=u=>le.value=u),title:"修改服用参数",width:"480px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:Ut},{footer:a(()=>[r(w,{onClick:e[19]||(e[19]=u=>le.value=!1)},{default:a(()=>[...e[80]||(e[80]=[d("取消",-1)])]),_:1}),r(w,{type:"primary",loading:Ne.value,onClick:Ct},{default:a(()=>[...e[81]||(e[81]=[d("保存",-1)])]),_:1},8,["loading"])]),default:a(()=>[r(lt,{ref_key:"patchUsageFormRef",ref:Se,model:h,rules:At.value,"label-width":"108px"},{default:a(()=>[q.value?(s(),m("div",zl,"主方")):p("",!0),r(E,{label:"每天次数",prop:"times_per_day"},{default:a(()=>[r(ne,{modelValue:h.times_per_day,"onUpdate:modelValue":e[14]||(e[14]=u=>h.times_per_day=u),min:1,max:6,step:1,"controls-position":"right",class:"w-full"},null,8,["modelValue"])]),_:1}),r(E,{label:"处方开立",prop:"usage_days"},{default:a(()=>[n("div",Al,[r(ne,{modelValue:h.usage_days,"onUpdate:modelValue":e[15]||(e[15]=u=>h.usage_days=u),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[75]||(e[75]=n("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1}),q.value?(s(),m(O,{key:1},[e[77]||(e[77]=n("div",{class:"text-xs font-medium text-gray-500 mb-3 mt-2 pt-2 border-t border-gray-100"},"辅方",-1)),r(E,{label:"每天次数",prop:"aux_times_per_day"},{default:a(()=>[r(ne,{modelValue:h.aux_times_per_day,"onUpdate:modelValue":e[16]||(e[16]=u=>h.aux_times_per_day=u),min:1,max:6,step:1,"controls-position":"right",class:"w-full"},null,8,["modelValue"])]),_:1}),r(E,{label:"处方开立",prop:"aux_usage_days"},{default:a(()=>[n("div",Dl,[r(ne,{modelValue:h.aux_usage_days,"onUpdate:modelValue":e[17]||(e[17]=u=>h.aux_usage_days=u),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[76]||(e[76]=n("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1})],64)):p("",!0),e[79]||(e[79]=n("div",{class:"text-xs font-medium text-gray-500 mb-3 mt-2 pt-2 border-t border-gray-100"},"订单设置",-1)),r(E,{label:"服用天数",prop:"medication_days"},{default:a(()=>[n("div",Ul,[r(ne,{modelValue:h.medication_days,"onUpdate:modelValue":e[18]||(e[18]=u=>h.medication_days=u),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[78]||(e[78]=n("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue"])])):p("",!0)]}),_:3},8,["modelValue","append-to-body"])}}}),Bl=Ua(El,[["__scopeId","data-v-3fe6d04f"]]);export{Bl as default}; diff --git a/server/public/admin/assets/PrescriptionOrderTimeDialog-i6cJMJuf.js b/server/public/admin/assets/PrescriptionOrderTimeDialog-i6cJMJuf.js deleted file mode 100644 index 6d597b1e9..000000000 --- a/server/public/admin/assets/PrescriptionOrderTimeDialog-i6cJMJuf.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-DLSipsFu.js";import"./.pnpm-CyuAWpdG.js";import"./tcm-QAkeqQ9Q.js";import"./index-Dxvz9lb1.js";export{o as default}; diff --git a/server/public/admin/assets/PrescriptionOrderTimeDialog-xjyeSjh7.js b/server/public/admin/assets/PrescriptionOrderTimeDialog-xjyeSjh7.js new file mode 100644 index 000000000..6198f1ab4 --- /dev/null +++ b/server/public/admin/assets/PrescriptionOrderTimeDialog-xjyeSjh7.js @@ -0,0 +1 @@ +import{_ as o}from"./PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-CJXWubSx.js";import"./.pnpm-CyuAWpdG.js";import"./tcm-BSADvQNg.js";import"./index-Bkarz3gO.js";export{o as default}; diff --git a/server/public/admin/assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-DLSipsFu.js b/server/public/admin/assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-CJXWubSx.js similarity index 95% rename from server/public/admin/assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-DLSipsFu.js rename to server/public/admin/assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-CJXWubSx.js index 0276dc12c..2a9b642a6 100644 --- a/server/public/admin/assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-DLSipsFu.js +++ b/server/public/admin/assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-CJXWubSx.js @@ -1 +1 @@ -import{o as $,q as T,O as Y,D as r,v as n,bd as w,bb as E,s as _,T as M,az as S,K as B,L as v,aB as C,M as p,aC as H,n as F}from"./.pnpm-CyuAWpdG.js";import{n as O}from"./tcm-QAkeqQ9Q.js";import{j as q}from"./index-Dxvz9lb1.js";const P={class:"break-all"},I=$({__name:"PrescriptionOrderTimeDialog",emits:["saved"],setup(R,{expose:b,emit:g}){const k=g,d=p(!1),t=p(!1),f=p(""),m=p(),a=H({id:0,create_time:""}),y={create_time:[{required:!0,message:"请选择创建时间",trigger:"change"}]};function D(o){const e=String(o??"").trim();if(/^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}(:\d{2})?$/.test(e))return e.replace("T"," ").padEnd(19,":00");if(!/^\d+$/.test(e)||Number(e)<=0)return"";const i=Number(e),l=new Date(i<1e11?i*1e3:i);if(Number.isNaN(l.getTime()))return"";const s=u=>String(u).padStart(2,"0");return`${l.getFullYear()}-${s(l.getMonth()+1)}-${s(l.getDate())} ${s(l.getHours())}:${s(l.getMinutes())}:${s(l.getSeconds())}`}function N(o){t.value||!Number(o.id)||(a.id=Number(o.id),a.create_time=D(o.create_time),f.value=String(o.order_no||""),d.value=!0,F(()=>{var e;return(e=m.value)==null?void 0:e.clearValidate()}))}async function x(){if(!(t.value||!m.value)){t.value=!0;try{if(!await m.value.validate().catch(()=>!1))return;await O({id:a.id,create_time:a.create_time}),q.msgSuccess("订单创建时间已修改"),d.value=!1,k("saved",a.id)}catch{}finally{t.value=!1}}}return b({open:N}),(o,e)=>{const i=E,l=S,s=w,u=B,V=C;return T(),Y(V,{modelValue:d.value,"onUpdate:modelValue":e[2]||(e[2]=c=>d.value=c),title:"修改订单创建时间",width:"min(440px, 94vw)","append-to-body":"","destroy-on-close":"","close-on-click-modal":!1,"close-on-press-escape":!t.value,"show-close":!t.value},{footer:r(()=>[n(u,{disabled:t.value,onClick:e[1]||(e[1]=c=>d.value=!1)},{default:r(()=>[...e[3]||(e[3]=[v("取消",-1)])]),_:1},8,["disabled"]),n(u,{type:"primary",loading:t.value,onClick:x},{default:r(()=>[...e[4]||(e[4]=[v("保存",-1)])]),_:1},8,["loading"])]),default:r(()=>[n(s,{ref_key:"formRef",ref:m,model:a,rules:y,"label-position":"top"},{default:r(()=>[n(i,{label:"业务订单"},{default:r(()=>[_("span",P,M(f.value||`#${a.id}`),1)]),_:1}),n(i,{label:"创建时间",prop:"create_time"},{default:r(()=>[n(l,{modelValue:a.create_time,"onUpdate:modelValue":e[0]||(e[0]=c=>a.create_time=c),type:"datetime",format:"YYYY-MM-DD HH:mm:ss","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:"请选择创建时间",clearable:!1,disabled:t.value,class:"!w-full"},null,8,["modelValue","disabled"])]),_:1})]),_:1},8,["model"]),e[5]||(e[5]=_("p",{class:"text-xs text-gray-500"},"保存后,列表和业绩统计将按新的创建时间归属日期,修改记录可在订单日志中查看。",-1))]),_:1},8,["modelValue","close-on-press-escape","show-close"])}}});export{I as _}; +import{o as $,q as T,O as Y,D as r,v as n,bd as w,bb as E,s as _,T as M,az as S,K as B,L as v,aB as C,M as p,aC as H,n as F}from"./.pnpm-CyuAWpdG.js";import{n as O}from"./tcm-BSADvQNg.js";import{j as q}from"./index-Bkarz3gO.js";const P={class:"break-all"},I=$({__name:"PrescriptionOrderTimeDialog",emits:["saved"],setup(R,{expose:b,emit:g}){const k=g,d=p(!1),t=p(!1),f=p(""),m=p(),a=H({id:0,create_time:""}),y={create_time:[{required:!0,message:"请选择创建时间",trigger:"change"}]};function D(o){const e=String(o??"").trim();if(/^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}(:\d{2})?$/.test(e))return e.replace("T"," ").padEnd(19,":00");if(!/^\d+$/.test(e)||Number(e)<=0)return"";const i=Number(e),l=new Date(i<1e11?i*1e3:i);if(Number.isNaN(l.getTime()))return"";const s=u=>String(u).padStart(2,"0");return`${l.getFullYear()}-${s(l.getMonth()+1)}-${s(l.getDate())} ${s(l.getHours())}:${s(l.getMinutes())}:${s(l.getSeconds())}`}function N(o){t.value||!Number(o.id)||(a.id=Number(o.id),a.create_time=D(o.create_time),f.value=String(o.order_no||""),d.value=!0,F(()=>{var e;return(e=m.value)==null?void 0:e.clearValidate()}))}async function x(){if(!(t.value||!m.value)){t.value=!0;try{if(!await m.value.validate().catch(()=>!1))return;await O({id:a.id,create_time:a.create_time}),q.msgSuccess("订单创建时间已修改"),d.value=!1,k("saved",a.id)}catch{}finally{t.value=!1}}}return b({open:N}),(o,e)=>{const i=E,l=S,s=w,u=B,V=C;return T(),Y(V,{modelValue:d.value,"onUpdate:modelValue":e[2]||(e[2]=c=>d.value=c),title:"修改订单创建时间",width:"min(440px, 94vw)","append-to-body":"","destroy-on-close":"","close-on-click-modal":!1,"close-on-press-escape":!t.value,"show-close":!t.value},{footer:r(()=>[n(u,{disabled:t.value,onClick:e[1]||(e[1]=c=>d.value=!1)},{default:r(()=>[...e[3]||(e[3]=[v("取消",-1)])]),_:1},8,["disabled"]),n(u,{type:"primary",loading:t.value,onClick:x},{default:r(()=>[...e[4]||(e[4]=[v("保存",-1)])]),_:1},8,["loading"])]),default:r(()=>[n(s,{ref_key:"formRef",ref:m,model:a,rules:y,"label-position":"top"},{default:r(()=>[n(i,{label:"业务订单"},{default:r(()=>[_("span",P,M(f.value||`#${a.id}`),1)]),_:1}),n(i,{label:"创建时间",prop:"create_time"},{default:r(()=>[n(l,{modelValue:a.create_time,"onUpdate:modelValue":e[0]||(e[0]=c=>a.create_time=c),type:"datetime",format:"YYYY-MM-DD HH:mm:ss","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:"请选择创建时间",clearable:!1,disabled:t.value,class:"!w-full"},null,8,["modelValue","disabled"])]),_:1})]),_:1},8,["model"]),e[5]||(e[5]=_("p",{class:"text-xs text-gray-500"},"保存后,列表和业绩统计将按新的创建时间归属日期,修改记录可在订单日志中查看。",-1))]),_:1},8,["modelValue","close-on-press-escape","show-close"])}}});export{I as _}; diff --git a/server/public/admin/assets/ProgressPanel-Cmnqit8V.js b/server/public/admin/assets/ProgressPanel-BWL8PMwt.js similarity index 98% rename from server/public/admin/assets/ProgressPanel-Cmnqit8V.js rename to server/public/admin/assets/ProgressPanel-BWL8PMwt.js index 3dd4770b7..6397feada 100644 --- a/server/public/admin/assets/ProgressPanel-Cmnqit8V.js +++ b/server/public/admin/assets/ProgressPanel-BWL8PMwt.js @@ -1 +1 @@ -import{o as ie,p as m,ap as de,aq as re,q as d,r,s as e,T as s,v as p,D as h,u as f,cQ as ue,w as ce,L as v,ae as k,F as x,G as L,P as G,O as Q,bC as _e,ac as me,bn as pe,bl as ve,bm as ge,bk as he,C as fe,M as we,aC as ye}from"./.pnpm-CyuAWpdG.js";import{_ as be}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{d as $}from"./dayjs-B2bPhvDy.js";import{u as ke}from"./usePaging-CghUEVfD.js";import{r as xe}from"./first_visit-BxZL4Ke4.js";import{_ as De}from"./index-Dxvz9lb1.js";const Ne={class:"progress-board"},Ce={class:"board-section overview-section"},Se={class:"section-heading"},qe={class:"heading-copy"},Me={class:"heading-badge"},$e={class:"scope-chip"},Pe={class:"overview-grid"},Ae={class:"overview-card"},Le={class:"overview-card"},Te={key:0},Ve={key:1},Ye={key:0,class:"remaining-detail"},Ee={class:"remaining-detail-heading"},ze={class:"remaining-doctor-list"},Be={class:"remaining-doctor-identity"},Re={class:"doctor-index"},Ie={class:"remaining-doctor-metrics"},Oe={class:"is-remaining"},Fe={class:"board-section schedule-section"},je={class:"section-heading"},Ue={class:"heading-copy"},Ge={class:"heading-badge"},Qe={class:"schedule-range"},We={class:"schedule-grid"},He=["aria-pressed","onClick"],Je={class:"schedule-date"},Ke={class:"schedule-card-stats"},Xe={class:"schedule-card-action"},Ze={class:"schedule-drilldown"},es={class:"drilldown-heading"},ss={key:0,class:"doctor-schedule-list"},ts={class:"doctor-identity"},ns={class:"doctor-index"},os={class:"doctor-windows"},ls={class:"doctor-metric"},as={class:"doctor-metric doctor-metric-booked"},is={key:0,class:"doctor-metric doctor-metric-completed"},ds={class:"doctor-metric doctor-metric-passed"},rs={class:"doctor-metric doctor-metric-empty"},us={class:"board-section queue-section"},cs={class:"section-heading queue-heading"},_s={class:"heading-copy"},ms={class:"queue-count"},ps={class:"queue-number"},vs={class:"patient-cell"},gs={class:"appointment-clock"},hs={key:0,class:"pagination-wrap"},fs=ie({__name:"ProgressPanel",emits:["openDiagnosis"],setup(ws,{expose:W,emit:H}){const J=H,w=$().format("YYYY-MM-DD"),y=we(w),P=ye({keyword:"",status:1,start_date:w,end_date:w}),{pager:a,getLists:N,resetPage:K}=ke({fetchFun:xe,params:P,size:15,firstLoading:!0,latestOnly:!0}),g=m(()=>{var t,o,i,_,c,C,S,q,M,n,b,B,R,I,O,F,j,U;return{totalVisits:Number(((o=(t=a.extend)==null?void 0:t.today_overview)==null?void 0:o.total_visits)||0),booked:Number(((_=(i=a.extend)==null?void 0:i.today_overview)==null?void 0:_.booked)||0),completed:Number(((C=(c=a.extend)==null?void 0:c.today_overview)==null?void 0:C.completed)||0),missed:Number(((q=(S=a.extend)==null?void 0:S.today_overview)==null?void 0:q.missed)||0),emptySlots:Number(((n=(M=a.extend)==null?void 0:M.today_overview)==null?void 0:n.empty_slots)||0),passedSlots:Number(((B=(b=a.extend)==null?void 0:b.today_overview)==null?void 0:B.passed_slots)||0),remainingSlots:Number(((I=(R=a.extend)==null?void 0:R.today_overview)==null?void 0:I.remaining_slots)??((F=(O=a.extend)==null?void 0:O.today_overview)==null?void 0:F.empty_slots)??0),doctorCount:Number(((U=(j=a.extend)==null?void 0:j.today_overview)==null?void 0:U.doctor_count)||0)}}),l=m(()=>{var t;return((t=a.extend)==null?void 0:t.schedule_mode)==="ownership"}),D=m(()=>{var o;const t=Array.isArray((o=a.extend)==null?void 0:o.week_schedule)?a.extend.week_schedule:[];return t.length?t:Array.from({length:7},(i,_)=>{const c=$().add(_,"day");return{date:c.format("YYYY-MM-DD"),date_text:c.format("MM-DD"),weekday:`周${"日一二三四五六"[c.day()]}`,total_slots:0,booked_slots:0,passed_slots:0,remaining_slots:0,empty_slots:0,doctor_count:0,doctors:[],total_appointments:0,waiting_appointments:0,completed_appointments:0,missed_appointments:0}})}),u=m(()=>D.value.find(t=>t.date===y.value)||D.value[0]||{date:w,date_text:$().format("MM-DD"),weekday:`周${"日一二三四五六"[$().day()]}`,total_slots:0,booked_slots:0,passed_slots:0,remaining_slots:0,empty_slots:0,doctor_count:0,doctors:[],total_appointments:0,waiting_appointments:0,completed_appointments:0,missed_appointments:0}),T=m(()=>{var t;return Array.isArray((t=u.value)==null?void 0:t.doctors)?u.value.doctors:[]}),V=m(()=>{const t=D.value.find(i=>i.date===w);return(Array.isArray(t==null?void 0:t.doctors)?t.doctors:[]).map(i=>({...i,remaining_slots:Number(i.remaining_slots??i.empty_slots??0),passed_slots:Number(i.passed_slots||0)})).sort((i,_)=>_.remaining_slots-i.remaining_slots||_.booked_slots-i.booked_slots||String(i.doctor_name||"").localeCompare(String(_.doctor_name||""),"zh-CN"))}),Y=m(()=>{const t=u.value;return`${t.date_text||""} ${t.weekday||""} `}),E=m(()=>y.value===w?"今日":Y.value.trim()||y.value),X=m(()=>{var t,o;return((o=(t=a.extend)==null?void 0:t.scope)==null?void 0:o.label)||"按权限加载"}),Z=m(()=>{const t=D.value;return t.length?`${t[0].date_text} 至 ${t[t.length-1].date_text}`:""});let A=null;function ee(t){return N(t)}function se(t){t&&(y.value=t,P.start_date=t,P.end_date=t,K())}function z(t){const o=l.value?t.appointment_times:t.schedule_windows,i=Array.isArray(o)?o.filter(Boolean):[];return i.length?i.join("、"):l.value?"暂无预约时刻":"未设置具体时段"}function te(t){return String(t.appointment_time||"").slice(0,5)||"—"}function ne(t){if(t.queue_status==="consulting")return"0(进行中)";if(t.queue_status==="next")return"0(待接诊)";const o=Math.max(0,Number(t.ahead_count||0));return o===0?"0 位":`${o} 位 · 约 ${Number(t.estimated_wait_minutes||o*15)} 分钟`}function oe(t){return t==="consulting"?"success":t==="next"?"warning":t==="completed"?"success":t==="missed"?"danger":"info"}function le({row:t}){return Number(t.is_self_patient)===1?"queue-row-self":""}function ae(t){J("openDiagnosis",t)}return W({refresh:ee,loading:m(()=>a.loading)}),de(()=>{N(),A=setInterval(()=>N({silent:!0}),15e3)}),re(()=>{A&&clearInterval(A)}),(t,o)=>{const i=ce,_=_e,c=ve,C=ge,S=he,q=be,M=pe;return d(),r("div",Ne,[e("section",Ce,[e("div",Se,[e("div",qe,[o[1]||(o[1]=e("h2",null,"今日面诊概览",-1)),e("span",Me,s(l.value?"按本人归属":"与排班合并"),1)]),e("span",$e,[p(i,null,{default:h(()=>[p(f(ue))]),_:1}),v(s(X.value),1)])]),e("div",Pe,[e("article",Ae,[e("span",null,s(l.value?"今日本人面诊":"今日面诊总号源"),1),e("strong",null,s(g.value.totalVisits),1),e("small",null,s(g.value.doctorCount)+" 位"+s(l.value?"接诊":"排班")+"医生",1)]),e("article",Le,[e("span",null,s(l.value?"待面诊":"已预约"),1),e("strong",null,s(g.value.booked),1),e("small",null,s(l.value?"本人归属患者的有效挂号":"按有效挂号占用号源"),1)]),e("article",{class:k(["overview-card",l.value?"overview-card-completed":"overview-card-empty"])},[e("span",null,s(l.value?"已完成":"空号"),1),e("strong",null,s(l.value?g.value.completed:g.value.remainingSlots),1),l.value?(d(),r("small",Te,"已过号 "+s(g.value.missed)+" 人",1)):(d(),r("small",Ve,"过号 "+s(g.value.passedSlots)+" · 未挂号 "+s(g.value.remainingSlots),1))],2)]),!l.value&&V.value.length?(d(),r("div",Ye,[e("div",Ee,[o[2]||(o[2]=e("h3",null,"医生剩余号源详情",-1)),e("span",null,"合计剩余可约 "+s(g.value.remainingSlots),1)]),e("div",ze,[(d(!0),r(x,null,L(V.value,(n,b)=>(d(),r("article",{key:n.doctor_id,class:"remaining-doctor-row"},[e("div",Be,[e("span",Re,s(b+1),1),e("div",null,[e("strong",null,s(n.doctor_name),1),e("small",null,s(z(n)),1)])]),e("div",Ie,[e("span",null,[o[3]||(o[3]=v("过号 ",-1)),e("strong",null,s(n.passed_slots||0),1)]),e("span",Oe,[o[4]||(o[4]=v("未挂号 / 剩余 ",-1)),e("strong",null,s(n.remaining_slots||0),1)])])]))),128))])])):G("",!0)]),e("section",Fe,[e("div",je,[e("div",Ue,[e("h2",null,s(l.value?"近一周面诊安排":"近一周排班"),1),e("span",Ge,s(l.value?"本人患者":"今日起 7 天"),1)]),e("span",Qe,s(Z.value),1)]),e("div",We,[(d(!0),r(x,null,L(D.value,n=>(d(),r("button",{key:n.date,type:"button",class:k(["schedule-card",{"is-today":n.date===f(w),"is-selected":n.date===y.value}]),"aria-pressed":n.date===y.value,onClick:b=>se(n.date)},[e("span",Je,s(n.date_text)+" "+s(n.weekday),1),e("strong",null,s(l.value?n.total_appointments:n.total_slots),1),e("span",Ke,[e("span",null,s(l.value?"待诊":"已约")+" "+s(l.value?n.waiting_appointments:n.booked_slots),1),o[5]||(o[5]=e("i",null,"/",-1)),e("span",{class:k({"is-completed":l.value})},s(l.value?"完成":"剩余")+" "+s(l.value?n.completed_appointments:n.remaining_slots??n.empty_slots),3)]),e("span",Xe,[e("span",null,s(n.doctor_count)+" 位医生",1),e("span",null,s(n.date===y.value?"正在查看":"查看明细")+" ›",1)])],10,He))),128))]),e("div",Ze,[e("div",es,[e("div",null,[e("h3",null,s(Y.value)+s(l.value?"面诊安排":"排班明细"),1),e("p",null,"共 "+s(u.value.doctor_count)+" 位"+s(l.value?"接诊":"排班")+"医生,点击上方日期可切换",1)]),e("div",{class:k(["drilldown-summary",{"is-ownership":l.value}])},[e("span",null,[v(s(l.value?"面诊总数":"总号源")+" ",1),e("strong",null,s(l.value?u.value.total_appointments:u.value.total_slots),1)]),e("span",null,[v(s(l.value?"待面诊":"已预约")+" ",1),e("strong",null,s(l.value?u.value.waiting_appointments:u.value.booked_slots),1)]),l.value?(d(),r(x,{key:0},[e("span",null,[o[6]||(o[6]=v("已完成 ",-1)),e("strong",null,s(u.value.completed_appointments),1)]),e("span",null,[o[7]||(o[7]=v("已过号 ",-1)),e("strong",null,s(u.value.missed_appointments),1)])],64)):(d(),r(x,{key:1},[e("span",null,[o[8]||(o[8]=v("过号 ",-1)),e("strong",null,s(u.value.passed_slots||0),1)]),e("span",null,[o[9]||(o[9]=v("剩余可约 ",-1)),e("strong",null,s(u.value.remaining_slots??u.value.empty_slots),1)])],64))],2)]),T.value.length?(d(),r("div",ss,[(d(!0),r(x,null,L(T.value,(n,b)=>(d(),r("article",{key:n.doctor_id,class:k(["doctor-schedule-row",{"is-ownership":l.value}])},[e("div",ts,[e("span",ns,s(b+1),1),e("div",null,[e("strong",null,s(n.doctor_name),1),e("small",null,s(l.value?"本人患者接诊医生":"医生排班"),1)])]),e("div",os,[e("span",null,s(l.value?"预约时刻":"排班时段"),1),e("strong",null,s(z(n)),1)]),e("div",ls,[e("span",null,s(l.value?"面诊总数":"总号源"),1),e("strong",null,s(l.value?n.total_appointments:n.total_slots),1)]),e("div",as,[e("span",null,s(l.value?"待面诊":"已预约"),1),e("strong",null,s(l.value?n.waiting_appointments:n.booked_slots),1)]),l.value?(d(),r("div",is,[o[10]||(o[10]=e("span",null,"完成 / 过号",-1)),e("strong",null,s(n.completed_appointments)+" / "+s(n.missed_appointments),1)])):(d(),r(x,{key:1},[e("div",ds,[o[11]||(o[11]=e("span",null,"过号",-1)),e("strong",null,s(n.passed_slots||0),1)]),e("div",rs,[o[12]||(o[12]=e("span",null,"未挂号 / 剩余",-1)),e("strong",null,s(n.remaining_slots??n.empty_slots),1)])],64))],2))),128))])):(d(),Q(_,{key:1,"image-size":56,description:l.value?"该日期暂无本人归属患者的有效挂号":"该日期暂无当前权限范围内的医生排班"},null,8,["description"]))])]),e("section",us,[e("div",cs,[e("div",_s,[e("h2",null,s(E.value)+"候诊列表",1),o[13]||(o[13]=e("span",{class:"heading-badge"},"按医生排队",-1)),e("span",ms,"共 "+s(f(a).count)+" 人",1)]),o[14]||(o[14]=e("span",{class:"refresh-time"},"每 15 秒自动刷新",-1))]),me((d(),Q(S,{data:f(a).lists,class:"queue-table","row-class-name":le,onRowDblclick:ae},{empty:h(()=>[p(_,{description:`当前权限范围内${E.value}暂无候诊患者`},null,8,["description"])]),default:h(()=>[p(c,{label:"排队",width:"92"},{default:h(({row:n})=>[e("span",ps,s(n.queue_no||"—"),1)]),_:1}),p(c,{label:"患者","min-width":"170"},{default:h(({row:n})=>[e("div",vs,[e("strong",null,s(n.patient_name||"未命名患者"),1),e("span",null,s(n.phone_masked||"无手机号"),1)])]),_:1}),p(c,{prop:"doctor_name",label:"医生","min-width":"130","show-overflow-tooltip":""}),p(c,{label:"预约时间","min-width":"135"},{default:h(({row:n})=>[e("span",gs,s(te(n)),1)]),_:1}),p(c,{label:"前方等待","min-width":"180"},{default:h(({row:n})=>[e("span",{class:k(["waiting-text",`is-${n.queue_status||"waiting"}`])},s(ne(n)),3)]),_:1}),p(c,{label:"状态","min-width":"110"},{default:h(({row:n})=>[p(C,{size:"small",round:"",effect:"light",type:oe(n.queue_status)},{default:h(()=>[v(s(n.queue_status_text||"等待中"),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])),[[M,f(a).loading]]),f(a).count>f(a).size?(d(),r("div",hs,[p(q,{modelValue:f(a),"onUpdate:modelValue":o[0]||(o[0]=n=>fe(a)?a.value=n:null),onChange:f(N)},null,8,["modelValue","onChange"])])):G("",!0)])])}}}),Cs=De(fs,[["__scopeId","data-v-315ced2e"]]);export{Cs as default}; +import{o as ie,p as m,ap as de,aq as re,q as d,r,s as e,T as s,v as p,D as h,u as f,cQ as ue,w as ce,L as v,ae as k,F as x,G as L,P as G,O as Q,bC as _e,ac as me,bn as pe,bl as ve,bm as ge,bk as he,C as fe,M as we,aC as ye}from"./.pnpm-CyuAWpdG.js";import{_ as be}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{d as $}from"./dayjs-B2bPhvDy.js";import{u as ke}from"./usePaging-CghUEVfD.js";import{r as xe}from"./first_visit-B5IgLifl.js";import{_ as De}from"./index-Bkarz3gO.js";const Ne={class:"progress-board"},Ce={class:"board-section overview-section"},Se={class:"section-heading"},qe={class:"heading-copy"},Me={class:"heading-badge"},$e={class:"scope-chip"},Pe={class:"overview-grid"},Ae={class:"overview-card"},Le={class:"overview-card"},Te={key:0},Ve={key:1},Ye={key:0,class:"remaining-detail"},Ee={class:"remaining-detail-heading"},ze={class:"remaining-doctor-list"},Be={class:"remaining-doctor-identity"},Re={class:"doctor-index"},Ie={class:"remaining-doctor-metrics"},Oe={class:"is-remaining"},Fe={class:"board-section schedule-section"},je={class:"section-heading"},Ue={class:"heading-copy"},Ge={class:"heading-badge"},Qe={class:"schedule-range"},We={class:"schedule-grid"},He=["aria-pressed","onClick"],Je={class:"schedule-date"},Ke={class:"schedule-card-stats"},Xe={class:"schedule-card-action"},Ze={class:"schedule-drilldown"},es={class:"drilldown-heading"},ss={key:0,class:"doctor-schedule-list"},ts={class:"doctor-identity"},ns={class:"doctor-index"},os={class:"doctor-windows"},ls={class:"doctor-metric"},as={class:"doctor-metric doctor-metric-booked"},is={key:0,class:"doctor-metric doctor-metric-completed"},ds={class:"doctor-metric doctor-metric-passed"},rs={class:"doctor-metric doctor-metric-empty"},us={class:"board-section queue-section"},cs={class:"section-heading queue-heading"},_s={class:"heading-copy"},ms={class:"queue-count"},ps={class:"queue-number"},vs={class:"patient-cell"},gs={class:"appointment-clock"},hs={key:0,class:"pagination-wrap"},fs=ie({__name:"ProgressPanel",emits:["openDiagnosis"],setup(ws,{expose:W,emit:H}){const J=H,w=$().format("YYYY-MM-DD"),y=we(w),P=ye({keyword:"",status:1,start_date:w,end_date:w}),{pager:a,getLists:N,resetPage:K}=ke({fetchFun:xe,params:P,size:15,firstLoading:!0,latestOnly:!0}),g=m(()=>{var t,o,i,_,c,C,S,q,M,n,b,B,R,I,O,F,j,U;return{totalVisits:Number(((o=(t=a.extend)==null?void 0:t.today_overview)==null?void 0:o.total_visits)||0),booked:Number(((_=(i=a.extend)==null?void 0:i.today_overview)==null?void 0:_.booked)||0),completed:Number(((C=(c=a.extend)==null?void 0:c.today_overview)==null?void 0:C.completed)||0),missed:Number(((q=(S=a.extend)==null?void 0:S.today_overview)==null?void 0:q.missed)||0),emptySlots:Number(((n=(M=a.extend)==null?void 0:M.today_overview)==null?void 0:n.empty_slots)||0),passedSlots:Number(((B=(b=a.extend)==null?void 0:b.today_overview)==null?void 0:B.passed_slots)||0),remainingSlots:Number(((I=(R=a.extend)==null?void 0:R.today_overview)==null?void 0:I.remaining_slots)??((F=(O=a.extend)==null?void 0:O.today_overview)==null?void 0:F.empty_slots)??0),doctorCount:Number(((U=(j=a.extend)==null?void 0:j.today_overview)==null?void 0:U.doctor_count)||0)}}),l=m(()=>{var t;return((t=a.extend)==null?void 0:t.schedule_mode)==="ownership"}),D=m(()=>{var o;const t=Array.isArray((o=a.extend)==null?void 0:o.week_schedule)?a.extend.week_schedule:[];return t.length?t:Array.from({length:7},(i,_)=>{const c=$().add(_,"day");return{date:c.format("YYYY-MM-DD"),date_text:c.format("MM-DD"),weekday:`周${"日一二三四五六"[c.day()]}`,total_slots:0,booked_slots:0,passed_slots:0,remaining_slots:0,empty_slots:0,doctor_count:0,doctors:[],total_appointments:0,waiting_appointments:0,completed_appointments:0,missed_appointments:0}})}),u=m(()=>D.value.find(t=>t.date===y.value)||D.value[0]||{date:w,date_text:$().format("MM-DD"),weekday:`周${"日一二三四五六"[$().day()]}`,total_slots:0,booked_slots:0,passed_slots:0,remaining_slots:0,empty_slots:0,doctor_count:0,doctors:[],total_appointments:0,waiting_appointments:0,completed_appointments:0,missed_appointments:0}),T=m(()=>{var t;return Array.isArray((t=u.value)==null?void 0:t.doctors)?u.value.doctors:[]}),V=m(()=>{const t=D.value.find(i=>i.date===w);return(Array.isArray(t==null?void 0:t.doctors)?t.doctors:[]).map(i=>({...i,remaining_slots:Number(i.remaining_slots??i.empty_slots??0),passed_slots:Number(i.passed_slots||0)})).sort((i,_)=>_.remaining_slots-i.remaining_slots||_.booked_slots-i.booked_slots||String(i.doctor_name||"").localeCompare(String(_.doctor_name||""),"zh-CN"))}),Y=m(()=>{const t=u.value;return`${t.date_text||""} ${t.weekday||""} `}),E=m(()=>y.value===w?"今日":Y.value.trim()||y.value),X=m(()=>{var t,o;return((o=(t=a.extend)==null?void 0:t.scope)==null?void 0:o.label)||"按权限加载"}),Z=m(()=>{const t=D.value;return t.length?`${t[0].date_text} 至 ${t[t.length-1].date_text}`:""});let A=null;function ee(t){return N(t)}function se(t){t&&(y.value=t,P.start_date=t,P.end_date=t,K())}function z(t){const o=l.value?t.appointment_times:t.schedule_windows,i=Array.isArray(o)?o.filter(Boolean):[];return i.length?i.join("、"):l.value?"暂无预约时刻":"未设置具体时段"}function te(t){return String(t.appointment_time||"").slice(0,5)||"—"}function ne(t){if(t.queue_status==="consulting")return"0(进行中)";if(t.queue_status==="next")return"0(待接诊)";const o=Math.max(0,Number(t.ahead_count||0));return o===0?"0 位":`${o} 位 · 约 ${Number(t.estimated_wait_minutes||o*15)} 分钟`}function oe(t){return t==="consulting"?"success":t==="next"?"warning":t==="completed"?"success":t==="missed"?"danger":"info"}function le({row:t}){return Number(t.is_self_patient)===1?"queue-row-self":""}function ae(t){J("openDiagnosis",t)}return W({refresh:ee,loading:m(()=>a.loading)}),de(()=>{N(),A=setInterval(()=>N({silent:!0}),15e3)}),re(()=>{A&&clearInterval(A)}),(t,o)=>{const i=ce,_=_e,c=ve,C=ge,S=he,q=be,M=pe;return d(),r("div",Ne,[e("section",Ce,[e("div",Se,[e("div",qe,[o[1]||(o[1]=e("h2",null,"今日面诊概览",-1)),e("span",Me,s(l.value?"按本人归属":"与排班合并"),1)]),e("span",$e,[p(i,null,{default:h(()=>[p(f(ue))]),_:1}),v(s(X.value),1)])]),e("div",Pe,[e("article",Ae,[e("span",null,s(l.value?"今日本人面诊":"今日面诊总号源"),1),e("strong",null,s(g.value.totalVisits),1),e("small",null,s(g.value.doctorCount)+" 位"+s(l.value?"接诊":"排班")+"医生",1)]),e("article",Le,[e("span",null,s(l.value?"待面诊":"已预约"),1),e("strong",null,s(g.value.booked),1),e("small",null,s(l.value?"本人归属患者的有效挂号":"按有效挂号占用号源"),1)]),e("article",{class:k(["overview-card",l.value?"overview-card-completed":"overview-card-empty"])},[e("span",null,s(l.value?"已完成":"空号"),1),e("strong",null,s(l.value?g.value.completed:g.value.remainingSlots),1),l.value?(d(),r("small",Te,"已过号 "+s(g.value.missed)+" 人",1)):(d(),r("small",Ve,"过号 "+s(g.value.passedSlots)+" · 未挂号 "+s(g.value.remainingSlots),1))],2)]),!l.value&&V.value.length?(d(),r("div",Ye,[e("div",Ee,[o[2]||(o[2]=e("h3",null,"医生剩余号源详情",-1)),e("span",null,"合计剩余可约 "+s(g.value.remainingSlots),1)]),e("div",ze,[(d(!0),r(x,null,L(V.value,(n,b)=>(d(),r("article",{key:n.doctor_id,class:"remaining-doctor-row"},[e("div",Be,[e("span",Re,s(b+1),1),e("div",null,[e("strong",null,s(n.doctor_name),1),e("small",null,s(z(n)),1)])]),e("div",Ie,[e("span",null,[o[3]||(o[3]=v("过号 ",-1)),e("strong",null,s(n.passed_slots||0),1)]),e("span",Oe,[o[4]||(o[4]=v("未挂号 / 剩余 ",-1)),e("strong",null,s(n.remaining_slots||0),1)])])]))),128))])])):G("",!0)]),e("section",Fe,[e("div",je,[e("div",Ue,[e("h2",null,s(l.value?"近一周面诊安排":"近一周排班"),1),e("span",Ge,s(l.value?"本人患者":"今日起 7 天"),1)]),e("span",Qe,s(Z.value),1)]),e("div",We,[(d(!0),r(x,null,L(D.value,n=>(d(),r("button",{key:n.date,type:"button",class:k(["schedule-card",{"is-today":n.date===f(w),"is-selected":n.date===y.value}]),"aria-pressed":n.date===y.value,onClick:b=>se(n.date)},[e("span",Je,s(n.date_text)+" "+s(n.weekday),1),e("strong",null,s(l.value?n.total_appointments:n.total_slots),1),e("span",Ke,[e("span",null,s(l.value?"待诊":"已约")+" "+s(l.value?n.waiting_appointments:n.booked_slots),1),o[5]||(o[5]=e("i",null,"/",-1)),e("span",{class:k({"is-completed":l.value})},s(l.value?"完成":"剩余")+" "+s(l.value?n.completed_appointments:n.remaining_slots??n.empty_slots),3)]),e("span",Xe,[e("span",null,s(n.doctor_count)+" 位医生",1),e("span",null,s(n.date===y.value?"正在查看":"查看明细")+" ›",1)])],10,He))),128))]),e("div",Ze,[e("div",es,[e("div",null,[e("h3",null,s(Y.value)+s(l.value?"面诊安排":"排班明细"),1),e("p",null,"共 "+s(u.value.doctor_count)+" 位"+s(l.value?"接诊":"排班")+"医生,点击上方日期可切换",1)]),e("div",{class:k(["drilldown-summary",{"is-ownership":l.value}])},[e("span",null,[v(s(l.value?"面诊总数":"总号源")+" ",1),e("strong",null,s(l.value?u.value.total_appointments:u.value.total_slots),1)]),e("span",null,[v(s(l.value?"待面诊":"已预约")+" ",1),e("strong",null,s(l.value?u.value.waiting_appointments:u.value.booked_slots),1)]),l.value?(d(),r(x,{key:0},[e("span",null,[o[6]||(o[6]=v("已完成 ",-1)),e("strong",null,s(u.value.completed_appointments),1)]),e("span",null,[o[7]||(o[7]=v("已过号 ",-1)),e("strong",null,s(u.value.missed_appointments),1)])],64)):(d(),r(x,{key:1},[e("span",null,[o[8]||(o[8]=v("过号 ",-1)),e("strong",null,s(u.value.passed_slots||0),1)]),e("span",null,[o[9]||(o[9]=v("剩余可约 ",-1)),e("strong",null,s(u.value.remaining_slots??u.value.empty_slots),1)])],64))],2)]),T.value.length?(d(),r("div",ss,[(d(!0),r(x,null,L(T.value,(n,b)=>(d(),r("article",{key:n.doctor_id,class:k(["doctor-schedule-row",{"is-ownership":l.value}])},[e("div",ts,[e("span",ns,s(b+1),1),e("div",null,[e("strong",null,s(n.doctor_name),1),e("small",null,s(l.value?"本人患者接诊医生":"医生排班"),1)])]),e("div",os,[e("span",null,s(l.value?"预约时刻":"排班时段"),1),e("strong",null,s(z(n)),1)]),e("div",ls,[e("span",null,s(l.value?"面诊总数":"总号源"),1),e("strong",null,s(l.value?n.total_appointments:n.total_slots),1)]),e("div",as,[e("span",null,s(l.value?"待面诊":"已预约"),1),e("strong",null,s(l.value?n.waiting_appointments:n.booked_slots),1)]),l.value?(d(),r("div",is,[o[10]||(o[10]=e("span",null,"完成 / 过号",-1)),e("strong",null,s(n.completed_appointments)+" / "+s(n.missed_appointments),1)])):(d(),r(x,{key:1},[e("div",ds,[o[11]||(o[11]=e("span",null,"过号",-1)),e("strong",null,s(n.passed_slots||0),1)]),e("div",rs,[o[12]||(o[12]=e("span",null,"未挂号 / 剩余",-1)),e("strong",null,s(n.remaining_slots??n.empty_slots),1)])],64))],2))),128))])):(d(),Q(_,{key:1,"image-size":56,description:l.value?"该日期暂无本人归属患者的有效挂号":"该日期暂无当前权限范围内的医生排班"},null,8,["description"]))])]),e("section",us,[e("div",cs,[e("div",_s,[e("h2",null,s(E.value)+"候诊列表",1),o[13]||(o[13]=e("span",{class:"heading-badge"},"按医生排队",-1)),e("span",ms,"共 "+s(f(a).count)+" 人",1)]),o[14]||(o[14]=e("span",{class:"refresh-time"},"每 15 秒自动刷新",-1))]),me((d(),Q(S,{data:f(a).lists,class:"queue-table","row-class-name":le,onRowDblclick:ae},{empty:h(()=>[p(_,{description:`当前权限范围内${E.value}暂无候诊患者`},null,8,["description"])]),default:h(()=>[p(c,{label:"排队",width:"92"},{default:h(({row:n})=>[e("span",ps,s(n.queue_no||"—"),1)]),_:1}),p(c,{label:"患者","min-width":"170"},{default:h(({row:n})=>[e("div",vs,[e("strong",null,s(n.patient_name||"未命名患者"),1),e("span",null,s(n.phone_masked||"无手机号"),1)])]),_:1}),p(c,{prop:"doctor_name",label:"医生","min-width":"130","show-overflow-tooltip":""}),p(c,{label:"预约时间","min-width":"135"},{default:h(({row:n})=>[e("span",gs,s(te(n)),1)]),_:1}),p(c,{label:"前方等待","min-width":"180"},{default:h(({row:n})=>[e("span",{class:k(["waiting-text",`is-${n.queue_status||"waiting"}`])},s(ne(n)),3)]),_:1}),p(c,{label:"状态","min-width":"110"},{default:h(({row:n})=>[p(C,{size:"small",round:"",effect:"light",type:oe(n.queue_status)},{default:h(()=>[v(s(n.queue_status_text||"等待中"),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])),[[M,f(a).loading]]),f(a).count>f(a).size?(d(),r("div",hs,[p(q,{modelValue:f(a),"onUpdate:modelValue":o[0]||(o[0]=n=>fe(a)?a.value=n:null),onChange:f(N)},null,8,["modelValue","onChange"])])):G("",!0)])])}}}),Cs=De(fs,[["__scopeId","data-v-315ced2e"]]);export{Cs as default}; diff --git a/server/public/admin/assets/PromotionAutomationForm-DyEeuDmw.js b/server/public/admin/assets/PromotionAutomationForm-NjSjwmp0.js similarity index 99% rename from server/public/admin/assets/PromotionAutomationForm-DyEeuDmw.js rename to server/public/admin/assets/PromotionAutomationForm-NjSjwmp0.js index af7a59390..abc475ea7 100644 --- a/server/public/admin/assets/PromotionAutomationForm-DyEeuDmw.js +++ b/server/public/admin/assets/PromotionAutomationForm-NjSjwmp0.js @@ -1 +1 @@ -import{o as Ue,R as ve,by as Ee,q as s,r as i,v as o,bo as Ce,s as d,bb as xe,D as u,bf as Ie,bq as Te,L as r,F as y,G as V,T as _,K as He,cB as Me,u as H,O as h,bg as Se,c6 as Be,P as c,bh as $e,bi as Ne,cx as ee,ae as le,I as De,cD as Ae,bz as ze,aA as Pe,bc as Re,aw as Fe,p as b,M as w,n as Ge}from"./.pnpm-CyuAWpdG.js";import{y as Ke,z as Le}from"./first_visit-BxZL4Ke4.js";import{w as pe,t as Oe,W as ce,p as qe,v as We}from"./WelcomeMessageEditor-BCxSXNSC.js";import{_ as Ye}from"./index-Dxvz9lb1.js";const je={class:"automation-form"},Je={key:0,class:"reception-schedules"},Qe={class:"schedule-heading"},Xe={class:"time-row"},Ze={key:0},el={key:0,class:"inline-error"},ll={key:0,class:"legacy-tags-warning full-width",role:"alert"},al={key:1,class:"full-width tags-content"},tl={class:"tag-select-row"},sl={key:0,role:"alert",class:"inline-error"},ol={key:1,class:"field-help"},dl={key:2,class:"custom-tag-editor"},ul={class:"custom-tag-row"},nl={key:0,role:"alert",class:"inline-error"},il={key:3,role:"status",class:"tag-success"},rl={key:0,class:"full-width remark-content"},ml={class:"token-buttons"},vl={class:"remark-preview"},pl={class:"field-help"},cl={key:0,class:"field-help"},bl={key:1,class:"field-help warning-help"},fl={key:2,class:"field-help warning-help"},_l={class:"welcome-block"},gl={key:0},kl={class:"schedule-heading"},yl={class:"time-row"},wl={key:0},Vl=Ue({__name:"PromotionAutomationForm",props:{modelValue:{},mainMemberIds:{},members:{},disabled:{type:Boolean},disabledSections:{},backupExcludedMemberIds:{}},emits:["update:modelValue","busy"],setup(W,{emit:be}){const C=W,Y=be,t=b({get:()=>C.modelValue,set:a=>Y("update:modelValue",a)}),j=a=>{var e;return!!(C.disabled||(e=C.disabledSections)!=null&&e.includes(a))},x=b(()=>j("reception")),m=b(()=>j("customer")),U=b(()=>j("welcome")),fe=b(()=>C.backupExcludedMemberIds||C.mainMemberIds),ae=b(()=>C.members.filter(a=>C.mainMemberIds.includes(Number(a.id)))),_e=b(()=>t.value.backup_member_admin_ids.filter(a=>!C.members.some(e=>Number(e.id)===a))),P=b(()=>{var a;return((a=ae.value[0])==null?void 0:a.name)||"小陈"}),te=b(()=>qe(t.value.remark_template,P.value,20)),R=w(),J=w({start:0,end:0}),M=w([]),T=w(!1),B=w(""),se=w(!1),g=w(!1),F=w(!1),$=w(""),S=w(""),N=w(""),ge=b(()=>t.value.tag_ids.length>1),G=b({get:()=>t.value.tag_ids.length===1?t.value.tag_ids[0]:"",set:a=>{t.value.tag_ids=a?[a]:[],N.value=""}}),ke=b(()=>{const a=M.value.flatMap(e=>e.tag);return t.value.tag_ids.map(e=>{var v;return((v=a.find(p=>p.id===e))==null?void 0:v.name)||e}).join("、")}),K=w(new Set),D=b(()=>K.value.size>0);ve([g,D],([a,e])=>Y("busy",a||e),{flush:"sync"});const oe=b(()=>{const a=new Set(M.value.flatMap(e=>e.tag.map(v=>v.id)));return t.value.tag_ids.filter(e=>!a.has(e))});ve([()=>t.value.tags_enabled,m],([a,e])=>{a&&!e&&!se.value&&!T.value&&ne()},{immediate:!0});function de(a){var e;return`${a.name} · ${((e=a.dept_names)==null?void 0:e.join(" / "))||a.userid||"未分部门"}`}function ye(){t.value.reception_schedule.push({weekdays:[1,2,3,4,5],start:"09:00",end:"18:00",member_admin_ids:[...C.mainMemberIds]})}function we(){t.value.welcome_schedule.push({weekdays:[1,2,3,4,5],start:"09:00",end:"18:00",text:"",attachments:[]})}function Ve(a){t.value.welcome_schedule.splice(a,1),K.value.clear()}function ue(a,e){e?K.value.add(a):K.value.delete(a)}async function ne(){if(!(g.value||T.value)){T.value=!0,B.value="";try{const a=await Ke();if(!Array.isArray(a==null?void 0:a.tag_groups))throw new Error("标签接口未返回有效的标签列表。");M.value=a.tag_groups.map(e=>({...e,tag:Array.isArray(e.tag)?e.tag:[]})),se.value=!0}catch(a){B.value=a instanceof Error?a.message:typeof a=="string"?a:"企业微信标签加载失败。"}finally{T.value=!1}}}async function ie(){var a;if(!(m.value||g.value||T.value)&&(S.value=We($.value),N.value="",!S.value)){g.value=!0;try{const e=await Le({name:$.value.trim()});if(!((a=e==null?void 0:e.tag)!=null&&a.id)||!e.tag.name||!e.group_id)throw new Error("企业微信未返回有效的标签 ID,请刷新标签后确认。");let v=M.value.find(I=>I.group_id===e.group_id);v||(v={group_id:e.group_id,group_name:e.group_name,tag:[]},M.value.push(v));const p=v.tag.findIndex(I=>I.id===e.tag.id);p>=0?v.tag[p]=e.tag:v.tag.push(e.tag),G.value=e.tag.id,N.value=`${e.reused?"已选用已有":"已创建并选用"}标签“${e.tag.name}”,保存方案后生效。`,$.value="",F.value=!1}catch(e){S.value=e instanceof Error?e.message:typeof e=="string"?e:"自定义标签创建失败,请刷新确认或重试。"}finally{g.value=!1}}}function L(){var e;const a=(e=R.value)==null?void 0:e.input;a&&(J.value={start:a.selectionStart||0,end:a.selectionEnd||0})}async function he(a){var I,E,k,A;const{start:e,end:v}=J.value;t.value.remark_template=t.value.remark_template.slice(0,e)+a+t.value.remark_template.slice(v),await Ge();const p=e+a.length;(E=(I=R.value)==null?void 0:I.input)==null||E.focus(),(A=(k=R.value)==null?void 0:k.input)==null||A.setSelectionRange(p,p),J.value={start:p,end:p}}return Ee(()=>Y("busy",!1)),(a,e)=>{const v=Ce,p=Te,I=Ie,E=xe,k=He,A=Se,re=Me,O=Be,z=Ne,Q=$e,q=De,me=Ae,X=Pe;return s(),i("div",je,[o(v,{class:"automation-note",type:"info","show-icon":"",closable:!1,title:"自动化设置只作用于之后新添加的客户,不会写入企微获客链接详情中的“欢迎语/客户标签”配置。",description:"系统会在客户添加回调中立即发送渠道欢迎语并添加标签,后台任务负责失败重试及其他补偿。测试时请使用系统复制的、带渠道参数的链接。"}),d("section",{class:le(["automation-section",{"is-disabled":x.value}])},[e[24]||(e[24]=d("h3",{class:"form-section-title"},"接待设置",-1)),o(E,{label:"接待模式"},{default:u(()=>[o(I,{modelValue:t.value.reception_mode,"onUpdate:modelValue":e[0]||(e[0]=l=>t.value.reception_mode=l),disabled:x.value},{default:u(()=>[o(p,{value:"always"},{default:u(()=>[...e[16]||(e[16]=[r("全天接待",-1)])]),_:1}),o(p,{value:"scheduled"},{default:u(()=>[...e[17]||(e[17]=[r("按星期时段自动上下线",-1)])]),_:1})]),_:1},8,["modelValue","disabled"]),e[18]||(e[18]=d("p",{class:"field-help"},"成员仍受每日上限、有效期及启用状态限制;时间统一使用北京时间。",-1))]),_:1}),t.value.reception_mode==="scheduled"?(s(),i("div",Je,[(s(!0),i(y,null,V(t.value.reception_schedule,(l,f)=>(s(),i("div",{key:f,class:"schedule-card"},[d("div",Qe,[d("strong",null,"接待时段 "+_(f+1),1),o(k,{type:"danger",text:"",size:"small",disabled:x.value,onClick:n=>t.value.reception_schedule.splice(f,1)},{default:u(()=>[...e[19]||(e[19]=[r("删除时段",-1)])]),_:1},8,["disabled","onClick"])]),o(re,{modelValue:l.weekdays,"onUpdate:modelValue":n=>l.weekdays=n,class:"weekday-select",disabled:x.value},{default:u(()=>[(s(!0),i(y,null,V(H(pe),(n,Z)=>(s(),h(A,{key:n,value:Z+1},{default:u(()=>[r(_(n),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),d("div",Xe,[o(O,{modelValue:l.start,"onUpdate:modelValue":n=>l.start=n,disabled:x.value,format:"HH:mm","value-format":"HH:mm",placeholder:"开始时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),e[20]||(e[20]=d("span",null,"至",-1)),o(O,{modelValue:l.end,"onUpdate:modelValue":n=>l.end=n,disabled:x.value,format:"HH:mm","value-format":"HH:mm",placeholder:"结束时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),l.endl.member_admin_ids=n,disabled:x.value,multiple:"",filterable:"",clearable:"",placeholder:"从上方主接待成员中选择",style:{width:"100%"}},{default:u(()=>[(s(!0),i(y,null,V(ae.value,n=>(s(),h(z,{key:n.id,value:Number(n.id),label:de(n)},null,8,["value","label"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),l.member_admin_ids.some(n=>!W.mainMemberIds.includes(n))?(s(),i("p",el,"该时段含已从主接待移除的成员,请重新选择。")):c("",!0)]))),128)),o(k,{icon:H(ee),disabled:x.value||t.value.reception_schedule.length>=30,onClick:ye},{default:u(()=>[...e[21]||(e[21]=[r("添加接待时段",-1)])]),_:1},8,["icon","disabled"]),e[22]||(e[22]=d("p",{class:"field-help"},"最多 30 个时段。跨午夜时段归属开始日,例如星期一 22:00 至 02:00 包含星期二凌晨;接待时段重叠时取成员并集。",-1))])):c("",!0),o(E,{label:"备用成员",required:t.value.reception_mode==="scheduled"},{default:u(()=>[o(Q,{modelValue:t.value.backup_member_admin_ids,"onUpdate:modelValue":e[1]||(e[1]=l=>t.value.backup_member_admin_ids=l),disabled:x.value,multiple:"",filterable:"",clearable:"","collapse-tags":"","collapse-tags-tooltip":"","max-collapse-tags":3,"multiple-limit":500,placeholder:"主接待成员均不可用时由备用成员接待",style:{width:"100%"}},{default:u(()=>[(s(!0),i(y,null,V(W.members,l=>(s(),h(z,{key:l.id,value:Number(l.id),label:de(l),disabled:fe.value.includes(Number(l.id))},null,8,["value","label","disabled"]))),128)),(s(!0),i(y,null,V(_e.value,l=>(s(),h(z,{key:`missing-${l}`,value:l,label:`成员 ${l}(当前不可选,请移除后重新选择)`,disabled:""},null,8,["value","label"]))),128))]),_:1},8,["modelValue","disabled"]),e[23]||(e[23]=d("p",{class:"field-help"},"备用成员不能与主接待重复。按时段模式至少配置一名备用成员;仅当无可用主接待时进入官方成员范围。",-1))]),_:1},8,["required"])],2),d("section",{class:le(["automation-section",{"is-disabled":m.value}])},[e[31]||(e[31]=d("h3",{class:"form-section-title"},"客户设置",-1)),o(E,{label:"自动添加客户标签"},{default:u(()=>[o(q,{modelValue:t.value.tags_enabled,"onUpdate:modelValue":e[2]||(e[2]=l=>t.value.tags_enabled=l),disabled:m.value||g.value},null,8,["modelValue","disabled"]),ge.value?(s(),i("div",ll,[d("p",null,"原方案设置了多个标签:"+_(ke.value)+"。现在仅支持单选,请重新选择一个标签,或清空原标签。",1),o(k,{size:"small",disabled:m.value||g.value,onClick:e[3]||(e[3]=l=>G.value="")},{default:u(()=>[...e[25]||(e[25]=[r("清空原标签",-1)])]),_:1},8,["disabled"])])):c("",!0),t.value.tags_enabled?(s(),i("div",al,[d("div",tl,[o(Q,{modelValue:G.value,"onUpdate:modelValue":e[4]||(e[4]=l=>G.value=l),disabled:m.value||g.value,loading:T.value,filterable:"",clearable:"",placeholder:"选择一个企业微信客户标签","aria-label":"企业微信客户标签",class:"tag-select"},{default:u(()=>[(s(!0),i(y,null,V(M.value,l=>(s(),h(me,{key:l.group_id,label:l.group_name},{default:u(()=>[(s(!0),i(y,null,V(l.tag,f=>(s(),h(z,{key:f.id,value:f.id,label:f.name},null,8,["value","label"]))),128))]),_:2},1032,["label"]))),128)),oe.value.length?(s(),h(me,{key:0,label:"已选标签(名称暂不可用)"},{default:u(()=>[(s(!0),i(y,null,V(oe.value,l=>(s(),h(z,{key:l,value:l,label:`已选标签 · ${l}`},null,8,["value","label"]))),128))]),_:1})):c("",!0)]),_:1},8,["modelValue","disabled","loading"]),o(k,{icon:H(ee),disabled:m.value||g.value,onClick:e[5]||(e[5]=l=>F.value=!F.value)},{default:u(()=>[...e[26]||(e[26]=[r("自定义标签",-1)])]),_:1},8,["icon","disabled"]),o(k,{icon:H(ze),disabled:m.value||g.value,loading:T.value,onClick:ne},{default:u(()=>[r(_(B.value?"重试":"刷新标签"),1)]),_:1},8,["icon","disabled","loading"])]),B.value?(s(),i("p",sl,_(B.value)+" 已保留原有标签,点击“重试”重新加载。",1)):(s(),i("p",ol,"每个方案只选一个标签,可选择已有企业微信标签,也可自定义创建。客户添加成功后由系统调用企微接口打标,不会显示在企微获客链接详情的“客户标签”配置中。")),F.value?(s(),i("div",dl,[e[28]||(e[28]=d("label",{for:"promotion-custom-tag-name"},"自定义标签名称",-1)),d("div",ul,[o(X,{id:"promotion-custom-tag-name",modelValue:$.value,"onUpdate:modelValue":e[6]||(e[6]=l=>$.value=l),disabled:m.value||g.value,maxlength:"30","show-word-limit":"",placeholder:"例如:官网咨询",onInput:e[7]||(e[7]=l=>S.value=""),onKeydown:Re(Fe(ie,["prevent"]),["enter"])},null,8,["modelValue","disabled","onKeydown"]),o(k,{type:"primary",disabled:m.value||T.value,loading:g.value,onClick:ie},{default:u(()=>[...e[27]||(e[27]=[r("创建并选用",-1)])]),_:1},8,["disabled","loading"])]),e[29]||(e[29]=d("p",{class:"field-help"},"创建到企业微信“推广渠道”分组,同组同名标签会复用。创建后即保存到企微标签库,取消方案编辑不会删除标签。",-1)),S.value?(s(),i("p",nl,_(S.value)+" 原有选择未改变。",1)):c("",!0)])):c("",!0),N.value?(s(),i("p",il,_(N.value),1)):c("",!0)])):c("",!0)]),_:1}),o(E,{label:"自动设置客户备注"},{default:u(()=>[o(q,{modelValue:t.value.remark_enabled,"onUpdate:modelValue":e[8]||(e[8]=l=>t.value.remark_enabled=l),disabled:m.value},null,8,["modelValue","disabled"]),t.value.remark_enabled?(s(),i("div",rl,[d("div",ml,[(s(!0),i(y,null,V(H(Oe),l=>(s(),h(k,{key:l.value,size:"small",disabled:m.value,onClick:f=>he(l.value)},{default:u(()=>[r("插入"+_(l.label),1)]),_:2},1032,["disabled","onClick"]))),128))]),o(X,{ref_key:"remarkInput",ref:R,modelValue:t.value.remark_template,"onUpdate:modelValue":e[9]||(e[9]=l=>t.value.remark_template=l),disabled:m.value,maxlength:"200","show-word-limit":"",placeholder:"例如:官网-{customer_name}",onSelect:L,onKeyup:L,onClick:L,onBlur:L},null,8,["modelValue","disabled"]),d("div",vl,[e[30]||(e[30]=d("span",null,"备注预览",-1)),d("strong",null,_(te.value||"—"),1),d("small",null,_(Array.from(te.value).length)+"/20 字",1)]),d("p",pl,"示例客户:张女士;员工:"+_(P.value)+"。添加时间格式为 YYYY-MM-DD,生成后的备注最多保留前 20 字。",1)])):c("",!0)]),_:1}),o(E,{label:"自动设置客户描述"},{default:u(()=>[o(q,{modelValue:t.value.description_enabled,"onUpdate:modelValue":e[10]||(e[10]=l=>t.value.description_enabled=l),disabled:m.value},null,8,["modelValue","disabled"]),t.value.description_enabled?(s(),h(X,{key:0,modelValue:t.value.description,"onUpdate:modelValue":e[11]||(e[11]=l=>t.value.description=l),class:"description-input",disabled:m.value,type:"textarea",rows:3,maxlength:"150","show-word-limit":"",placeholder:"请输入客户描述,最多 150 字"},null,8,["modelValue","disabled"])):c("",!0)]),_:1})],2),d("section",{class:le(["automation-section",{"is-disabled":U.value}])},[e[42]||(e[42]=d("h3",{class:"form-section-title"},"欢迎语设置",-1)),o(E,{label:"欢迎语模式"},{default:u(()=>[o(I,{modelValue:t.value.welcome_mode,"onUpdate:modelValue":e[12]||(e[12]=l=>t.value.welcome_mode=l),disabled:U.value||D.value},{default:u(()=>[o(p,{value:"channel"},{default:u(()=>[...e[32]||(e[32]=[r("渠道欢迎语",-1)])]),_:1}),o(p,{value:"default"},{default:u(()=>[...e[33]||(e[33]=[r("默认欢迎语",-1)])]),_:1}),o(p,{value:"none"},{default:u(()=>[...e[34]||(e[34]=[r("不发送欢迎语",-1)])]),_:1})]),_:1},8,["modelValue","disabled"]),t.value.welcome_mode==="default"?(s(),i("p",cl,"沿用企业微信后台配置,本系统不发送欢迎语。")):t.value.welcome_mode==="none"?(s(),i("p",bl,"仅关闭本系统欢迎语,无法覆盖或关闭企业微信后台已配置的欢迎语。")):(s(),i("p",fl,"渠道欢迎语由客户添加回调即时发送,不会显示在企微获客链接详情中。同一接待成员若已配置企微原生欢迎语,企微可能不再下发欢迎码,请先关闭冲突配置。"))]),_:1}),t.value.welcome_mode==="channel"?(s(),i(y,{key:0},[d("div",_l,[e[35]||(e[35]=d("h4",null,"基础渠道欢迎语",-1)),e[36]||(e[36]=d("p",{class:"field-help"},"未开启分时欢迎语,或新客户添加时间未匹配任何时段时,使用以下内容。",-1)),o(ce,{modelValue:t.value.welcome,"onUpdate:modelValue":e[13]||(e[13]=l=>t.value.welcome=l),disabled:U.value,"employee-name":P.value,onBusy:e[14]||(e[14]=l=>ue("basic",l))},null,8,["modelValue","disabled","employee-name"])]),o(E,{class:"schedule-switch",label:"分时欢迎语"},{default:u(()=>[o(q,{modelValue:t.value.welcome_schedule_enabled,"onUpdate:modelValue":e[15]||(e[15]=l=>t.value.welcome_schedule_enabled=l),disabled:U.value||D.value},null,8,["modelValue","disabled"]),e[37]||(e[37]=d("span",{class:"switch-help"},"按客户添加时的北京时间匹配,时段不能重叠",-1))]),_:1}),t.value.welcome_schedule_enabled?(s(),i("div",gl,[(s(!0),i(y,null,V(t.value.welcome_schedule,(l,f)=>(s(),i("div",{key:f,class:"schedule-card welcome-schedule"},[d("div",kl,[d("strong",null,"欢迎语时段 "+_(f+1),1),o(k,{type:"danger",text:"",size:"small",disabled:U.value||D.value,onClick:n=>Ve(f)},{default:u(()=>[...e[38]||(e[38]=[r("删除时段",-1)])]),_:1},8,["disabled","onClick"])]),o(re,{modelValue:l.weekdays,"onUpdate:modelValue":n=>l.weekdays=n,class:"weekday-select",disabled:U.value},{default:u(()=>[(s(!0),i(y,null,V(H(pe),(n,Z)=>(s(),h(A,{key:n,value:Z+1},{default:u(()=>[r(_(n),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),d("div",yl,[o(O,{modelValue:l.start,"onUpdate:modelValue":n=>l.start=n,disabled:U.value,format:"HH:mm","value-format":"HH:mm",placeholder:"开始时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),e[39]||(e[39]=d("span",null,"至",-1)),o(O,{modelValue:l.end,"onUpdate:modelValue":n=>l.end=n,disabled:U.value,format:"HH:mm","value-format":"HH:mm",placeholder:"结束时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),l.endObject.assign(l,n),onBusy:n=>ue(`slot-${f}`,n)},null,8,["model-value","disabled","employee-name","onUpdate:modelValue","onBusy"])]))),128)),o(k,{icon:H(ee),disabled:U.value||D.value||t.value.welcome_schedule.length>=30,onClick:we},{default:u(()=>[...e[40]||(e[40]=[r("添加欢迎语时段",-1)])]),_:1},8,["icon","disabled"]),e[41]||(e[41]=d("p",{class:"field-help"},"最多 30 个时段,支持跨午夜。时段外自动使用基础渠道欢迎语,不会随机选择内容。",-1))])):c("",!0)],64)):c("",!0)],2)])}}}),xl=Ye(Vl,[["__scopeId","data-v-a7e42c87"]]);export{xl as default}; +import{o as Ue,R as ve,by as Ee,q as s,r as i,v as o,bo as Ce,s as d,bb as xe,D as u,bf as Ie,bq as Te,L as r,F as y,G as V,T as _,K as He,cB as Me,u as H,O as h,bg as Se,c6 as Be,P as c,bh as $e,bi as Ne,cx as ee,ae as le,I as De,cD as Ae,bz as ze,aA as Pe,bc as Re,aw as Fe,p as b,M as w,n as Ge}from"./.pnpm-CyuAWpdG.js";import{y as Ke,z as Le}from"./first_visit-B5IgLifl.js";import{w as pe,t as Oe,W as ce,p as qe,v as We}from"./WelcomeMessageEditor-3rIW6eTh.js";import{_ as Ye}from"./index-Bkarz3gO.js";const je={class:"automation-form"},Je={key:0,class:"reception-schedules"},Qe={class:"schedule-heading"},Xe={class:"time-row"},Ze={key:0},el={key:0,class:"inline-error"},ll={key:0,class:"legacy-tags-warning full-width",role:"alert"},al={key:1,class:"full-width tags-content"},tl={class:"tag-select-row"},sl={key:0,role:"alert",class:"inline-error"},ol={key:1,class:"field-help"},dl={key:2,class:"custom-tag-editor"},ul={class:"custom-tag-row"},nl={key:0,role:"alert",class:"inline-error"},il={key:3,role:"status",class:"tag-success"},rl={key:0,class:"full-width remark-content"},ml={class:"token-buttons"},vl={class:"remark-preview"},pl={class:"field-help"},cl={key:0,class:"field-help"},bl={key:1,class:"field-help warning-help"},fl={key:2,class:"field-help warning-help"},_l={class:"welcome-block"},gl={key:0},kl={class:"schedule-heading"},yl={class:"time-row"},wl={key:0},Vl=Ue({__name:"PromotionAutomationForm",props:{modelValue:{},mainMemberIds:{},members:{},disabled:{type:Boolean},disabledSections:{},backupExcludedMemberIds:{}},emits:["update:modelValue","busy"],setup(W,{emit:be}){const C=W,Y=be,t=b({get:()=>C.modelValue,set:a=>Y("update:modelValue",a)}),j=a=>{var e;return!!(C.disabled||(e=C.disabledSections)!=null&&e.includes(a))},x=b(()=>j("reception")),m=b(()=>j("customer")),U=b(()=>j("welcome")),fe=b(()=>C.backupExcludedMemberIds||C.mainMemberIds),ae=b(()=>C.members.filter(a=>C.mainMemberIds.includes(Number(a.id)))),_e=b(()=>t.value.backup_member_admin_ids.filter(a=>!C.members.some(e=>Number(e.id)===a))),P=b(()=>{var a;return((a=ae.value[0])==null?void 0:a.name)||"小陈"}),te=b(()=>qe(t.value.remark_template,P.value,20)),R=w(),J=w({start:0,end:0}),M=w([]),T=w(!1),B=w(""),se=w(!1),g=w(!1),F=w(!1),$=w(""),S=w(""),N=w(""),ge=b(()=>t.value.tag_ids.length>1),G=b({get:()=>t.value.tag_ids.length===1?t.value.tag_ids[0]:"",set:a=>{t.value.tag_ids=a?[a]:[],N.value=""}}),ke=b(()=>{const a=M.value.flatMap(e=>e.tag);return t.value.tag_ids.map(e=>{var v;return((v=a.find(p=>p.id===e))==null?void 0:v.name)||e}).join("、")}),K=w(new Set),D=b(()=>K.value.size>0);ve([g,D],([a,e])=>Y("busy",a||e),{flush:"sync"});const oe=b(()=>{const a=new Set(M.value.flatMap(e=>e.tag.map(v=>v.id)));return t.value.tag_ids.filter(e=>!a.has(e))});ve([()=>t.value.tags_enabled,m],([a,e])=>{a&&!e&&!se.value&&!T.value&&ne()},{immediate:!0});function de(a){var e;return`${a.name} · ${((e=a.dept_names)==null?void 0:e.join(" / "))||a.userid||"未分部门"}`}function ye(){t.value.reception_schedule.push({weekdays:[1,2,3,4,5],start:"09:00",end:"18:00",member_admin_ids:[...C.mainMemberIds]})}function we(){t.value.welcome_schedule.push({weekdays:[1,2,3,4,5],start:"09:00",end:"18:00",text:"",attachments:[]})}function Ve(a){t.value.welcome_schedule.splice(a,1),K.value.clear()}function ue(a,e){e?K.value.add(a):K.value.delete(a)}async function ne(){if(!(g.value||T.value)){T.value=!0,B.value="";try{const a=await Ke();if(!Array.isArray(a==null?void 0:a.tag_groups))throw new Error("标签接口未返回有效的标签列表。");M.value=a.tag_groups.map(e=>({...e,tag:Array.isArray(e.tag)?e.tag:[]})),se.value=!0}catch(a){B.value=a instanceof Error?a.message:typeof a=="string"?a:"企业微信标签加载失败。"}finally{T.value=!1}}}async function ie(){var a;if(!(m.value||g.value||T.value)&&(S.value=We($.value),N.value="",!S.value)){g.value=!0;try{const e=await Le({name:$.value.trim()});if(!((a=e==null?void 0:e.tag)!=null&&a.id)||!e.tag.name||!e.group_id)throw new Error("企业微信未返回有效的标签 ID,请刷新标签后确认。");let v=M.value.find(I=>I.group_id===e.group_id);v||(v={group_id:e.group_id,group_name:e.group_name,tag:[]},M.value.push(v));const p=v.tag.findIndex(I=>I.id===e.tag.id);p>=0?v.tag[p]=e.tag:v.tag.push(e.tag),G.value=e.tag.id,N.value=`${e.reused?"已选用已有":"已创建并选用"}标签“${e.tag.name}”,保存方案后生效。`,$.value="",F.value=!1}catch(e){S.value=e instanceof Error?e.message:typeof e=="string"?e:"自定义标签创建失败,请刷新确认或重试。"}finally{g.value=!1}}}function L(){var e;const a=(e=R.value)==null?void 0:e.input;a&&(J.value={start:a.selectionStart||0,end:a.selectionEnd||0})}async function he(a){var I,E,k,A;const{start:e,end:v}=J.value;t.value.remark_template=t.value.remark_template.slice(0,e)+a+t.value.remark_template.slice(v),await Ge();const p=e+a.length;(E=(I=R.value)==null?void 0:I.input)==null||E.focus(),(A=(k=R.value)==null?void 0:k.input)==null||A.setSelectionRange(p,p),J.value={start:p,end:p}}return Ee(()=>Y("busy",!1)),(a,e)=>{const v=Ce,p=Te,I=Ie,E=xe,k=He,A=Se,re=Me,O=Be,z=Ne,Q=$e,q=De,me=Ae,X=Pe;return s(),i("div",je,[o(v,{class:"automation-note",type:"info","show-icon":"",closable:!1,title:"自动化设置只作用于之后新添加的客户,不会写入企微获客链接详情中的“欢迎语/客户标签”配置。",description:"系统会在客户添加回调中立即发送渠道欢迎语并添加标签,后台任务负责失败重试及其他补偿。测试时请使用系统复制的、带渠道参数的链接。"}),d("section",{class:le(["automation-section",{"is-disabled":x.value}])},[e[24]||(e[24]=d("h3",{class:"form-section-title"},"接待设置",-1)),o(E,{label:"接待模式"},{default:u(()=>[o(I,{modelValue:t.value.reception_mode,"onUpdate:modelValue":e[0]||(e[0]=l=>t.value.reception_mode=l),disabled:x.value},{default:u(()=>[o(p,{value:"always"},{default:u(()=>[...e[16]||(e[16]=[r("全天接待",-1)])]),_:1}),o(p,{value:"scheduled"},{default:u(()=>[...e[17]||(e[17]=[r("按星期时段自动上下线",-1)])]),_:1})]),_:1},8,["modelValue","disabled"]),e[18]||(e[18]=d("p",{class:"field-help"},"成员仍受每日上限、有效期及启用状态限制;时间统一使用北京时间。",-1))]),_:1}),t.value.reception_mode==="scheduled"?(s(),i("div",Je,[(s(!0),i(y,null,V(t.value.reception_schedule,(l,f)=>(s(),i("div",{key:f,class:"schedule-card"},[d("div",Qe,[d("strong",null,"接待时段 "+_(f+1),1),o(k,{type:"danger",text:"",size:"small",disabled:x.value,onClick:n=>t.value.reception_schedule.splice(f,1)},{default:u(()=>[...e[19]||(e[19]=[r("删除时段",-1)])]),_:1},8,["disabled","onClick"])]),o(re,{modelValue:l.weekdays,"onUpdate:modelValue":n=>l.weekdays=n,class:"weekday-select",disabled:x.value},{default:u(()=>[(s(!0),i(y,null,V(H(pe),(n,Z)=>(s(),h(A,{key:n,value:Z+1},{default:u(()=>[r(_(n),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),d("div",Xe,[o(O,{modelValue:l.start,"onUpdate:modelValue":n=>l.start=n,disabled:x.value,format:"HH:mm","value-format":"HH:mm",placeholder:"开始时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),e[20]||(e[20]=d("span",null,"至",-1)),o(O,{modelValue:l.end,"onUpdate:modelValue":n=>l.end=n,disabled:x.value,format:"HH:mm","value-format":"HH:mm",placeholder:"结束时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),l.endl.member_admin_ids=n,disabled:x.value,multiple:"",filterable:"",clearable:"",placeholder:"从上方主接待成员中选择",style:{width:"100%"}},{default:u(()=>[(s(!0),i(y,null,V(ae.value,n=>(s(),h(z,{key:n.id,value:Number(n.id),label:de(n)},null,8,["value","label"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),l.member_admin_ids.some(n=>!W.mainMemberIds.includes(n))?(s(),i("p",el,"该时段含已从主接待移除的成员,请重新选择。")):c("",!0)]))),128)),o(k,{icon:H(ee),disabled:x.value||t.value.reception_schedule.length>=30,onClick:ye},{default:u(()=>[...e[21]||(e[21]=[r("添加接待时段",-1)])]),_:1},8,["icon","disabled"]),e[22]||(e[22]=d("p",{class:"field-help"},"最多 30 个时段。跨午夜时段归属开始日,例如星期一 22:00 至 02:00 包含星期二凌晨;接待时段重叠时取成员并集。",-1))])):c("",!0),o(E,{label:"备用成员",required:t.value.reception_mode==="scheduled"},{default:u(()=>[o(Q,{modelValue:t.value.backup_member_admin_ids,"onUpdate:modelValue":e[1]||(e[1]=l=>t.value.backup_member_admin_ids=l),disabled:x.value,multiple:"",filterable:"",clearable:"","collapse-tags":"","collapse-tags-tooltip":"","max-collapse-tags":3,"multiple-limit":500,placeholder:"主接待成员均不可用时由备用成员接待",style:{width:"100%"}},{default:u(()=>[(s(!0),i(y,null,V(W.members,l=>(s(),h(z,{key:l.id,value:Number(l.id),label:de(l),disabled:fe.value.includes(Number(l.id))},null,8,["value","label","disabled"]))),128)),(s(!0),i(y,null,V(_e.value,l=>(s(),h(z,{key:`missing-${l}`,value:l,label:`成员 ${l}(当前不可选,请移除后重新选择)`,disabled:""},null,8,["value","label"]))),128))]),_:1},8,["modelValue","disabled"]),e[23]||(e[23]=d("p",{class:"field-help"},"备用成员不能与主接待重复。按时段模式至少配置一名备用成员;仅当无可用主接待时进入官方成员范围。",-1))]),_:1},8,["required"])],2),d("section",{class:le(["automation-section",{"is-disabled":m.value}])},[e[31]||(e[31]=d("h3",{class:"form-section-title"},"客户设置",-1)),o(E,{label:"自动添加客户标签"},{default:u(()=>[o(q,{modelValue:t.value.tags_enabled,"onUpdate:modelValue":e[2]||(e[2]=l=>t.value.tags_enabled=l),disabled:m.value||g.value},null,8,["modelValue","disabled"]),ge.value?(s(),i("div",ll,[d("p",null,"原方案设置了多个标签:"+_(ke.value)+"。现在仅支持单选,请重新选择一个标签,或清空原标签。",1),o(k,{size:"small",disabled:m.value||g.value,onClick:e[3]||(e[3]=l=>G.value="")},{default:u(()=>[...e[25]||(e[25]=[r("清空原标签",-1)])]),_:1},8,["disabled"])])):c("",!0),t.value.tags_enabled?(s(),i("div",al,[d("div",tl,[o(Q,{modelValue:G.value,"onUpdate:modelValue":e[4]||(e[4]=l=>G.value=l),disabled:m.value||g.value,loading:T.value,filterable:"",clearable:"",placeholder:"选择一个企业微信客户标签","aria-label":"企业微信客户标签",class:"tag-select"},{default:u(()=>[(s(!0),i(y,null,V(M.value,l=>(s(),h(me,{key:l.group_id,label:l.group_name},{default:u(()=>[(s(!0),i(y,null,V(l.tag,f=>(s(),h(z,{key:f.id,value:f.id,label:f.name},null,8,["value","label"]))),128))]),_:2},1032,["label"]))),128)),oe.value.length?(s(),h(me,{key:0,label:"已选标签(名称暂不可用)"},{default:u(()=>[(s(!0),i(y,null,V(oe.value,l=>(s(),h(z,{key:l,value:l,label:`已选标签 · ${l}`},null,8,["value","label"]))),128))]),_:1})):c("",!0)]),_:1},8,["modelValue","disabled","loading"]),o(k,{icon:H(ee),disabled:m.value||g.value,onClick:e[5]||(e[5]=l=>F.value=!F.value)},{default:u(()=>[...e[26]||(e[26]=[r("自定义标签",-1)])]),_:1},8,["icon","disabled"]),o(k,{icon:H(ze),disabled:m.value||g.value,loading:T.value,onClick:ne},{default:u(()=>[r(_(B.value?"重试":"刷新标签"),1)]),_:1},8,["icon","disabled","loading"])]),B.value?(s(),i("p",sl,_(B.value)+" 已保留原有标签,点击“重试”重新加载。",1)):(s(),i("p",ol,"每个方案只选一个标签,可选择已有企业微信标签,也可自定义创建。客户添加成功后由系统调用企微接口打标,不会显示在企微获客链接详情的“客户标签”配置中。")),F.value?(s(),i("div",dl,[e[28]||(e[28]=d("label",{for:"promotion-custom-tag-name"},"自定义标签名称",-1)),d("div",ul,[o(X,{id:"promotion-custom-tag-name",modelValue:$.value,"onUpdate:modelValue":e[6]||(e[6]=l=>$.value=l),disabled:m.value||g.value,maxlength:"30","show-word-limit":"",placeholder:"例如:官网咨询",onInput:e[7]||(e[7]=l=>S.value=""),onKeydown:Re(Fe(ie,["prevent"]),["enter"])},null,8,["modelValue","disabled","onKeydown"]),o(k,{type:"primary",disabled:m.value||T.value,loading:g.value,onClick:ie},{default:u(()=>[...e[27]||(e[27]=[r("创建并选用",-1)])]),_:1},8,["disabled","loading"])]),e[29]||(e[29]=d("p",{class:"field-help"},"创建到企业微信“推广渠道”分组,同组同名标签会复用。创建后即保存到企微标签库,取消方案编辑不会删除标签。",-1)),S.value?(s(),i("p",nl,_(S.value)+" 原有选择未改变。",1)):c("",!0)])):c("",!0),N.value?(s(),i("p",il,_(N.value),1)):c("",!0)])):c("",!0)]),_:1}),o(E,{label:"自动设置客户备注"},{default:u(()=>[o(q,{modelValue:t.value.remark_enabled,"onUpdate:modelValue":e[8]||(e[8]=l=>t.value.remark_enabled=l),disabled:m.value},null,8,["modelValue","disabled"]),t.value.remark_enabled?(s(),i("div",rl,[d("div",ml,[(s(!0),i(y,null,V(H(Oe),l=>(s(),h(k,{key:l.value,size:"small",disabled:m.value,onClick:f=>he(l.value)},{default:u(()=>[r("插入"+_(l.label),1)]),_:2},1032,["disabled","onClick"]))),128))]),o(X,{ref_key:"remarkInput",ref:R,modelValue:t.value.remark_template,"onUpdate:modelValue":e[9]||(e[9]=l=>t.value.remark_template=l),disabled:m.value,maxlength:"200","show-word-limit":"",placeholder:"例如:官网-{customer_name}",onSelect:L,onKeyup:L,onClick:L,onBlur:L},null,8,["modelValue","disabled"]),d("div",vl,[e[30]||(e[30]=d("span",null,"备注预览",-1)),d("strong",null,_(te.value||"—"),1),d("small",null,_(Array.from(te.value).length)+"/20 字",1)]),d("p",pl,"示例客户:张女士;员工:"+_(P.value)+"。添加时间格式为 YYYY-MM-DD,生成后的备注最多保留前 20 字。",1)])):c("",!0)]),_:1}),o(E,{label:"自动设置客户描述"},{default:u(()=>[o(q,{modelValue:t.value.description_enabled,"onUpdate:modelValue":e[10]||(e[10]=l=>t.value.description_enabled=l),disabled:m.value},null,8,["modelValue","disabled"]),t.value.description_enabled?(s(),h(X,{key:0,modelValue:t.value.description,"onUpdate:modelValue":e[11]||(e[11]=l=>t.value.description=l),class:"description-input",disabled:m.value,type:"textarea",rows:3,maxlength:"150","show-word-limit":"",placeholder:"请输入客户描述,最多 150 字"},null,8,["modelValue","disabled"])):c("",!0)]),_:1})],2),d("section",{class:le(["automation-section",{"is-disabled":U.value}])},[e[42]||(e[42]=d("h3",{class:"form-section-title"},"欢迎语设置",-1)),o(E,{label:"欢迎语模式"},{default:u(()=>[o(I,{modelValue:t.value.welcome_mode,"onUpdate:modelValue":e[12]||(e[12]=l=>t.value.welcome_mode=l),disabled:U.value||D.value},{default:u(()=>[o(p,{value:"channel"},{default:u(()=>[...e[32]||(e[32]=[r("渠道欢迎语",-1)])]),_:1}),o(p,{value:"default"},{default:u(()=>[...e[33]||(e[33]=[r("默认欢迎语",-1)])]),_:1}),o(p,{value:"none"},{default:u(()=>[...e[34]||(e[34]=[r("不发送欢迎语",-1)])]),_:1})]),_:1},8,["modelValue","disabled"]),t.value.welcome_mode==="default"?(s(),i("p",cl,"沿用企业微信后台配置,本系统不发送欢迎语。")):t.value.welcome_mode==="none"?(s(),i("p",bl,"仅关闭本系统欢迎语,无法覆盖或关闭企业微信后台已配置的欢迎语。")):(s(),i("p",fl,"渠道欢迎语由客户添加回调即时发送,不会显示在企微获客链接详情中。同一接待成员若已配置企微原生欢迎语,企微可能不再下发欢迎码,请先关闭冲突配置。"))]),_:1}),t.value.welcome_mode==="channel"?(s(),i(y,{key:0},[d("div",_l,[e[35]||(e[35]=d("h4",null,"基础渠道欢迎语",-1)),e[36]||(e[36]=d("p",{class:"field-help"},"未开启分时欢迎语,或新客户添加时间未匹配任何时段时,使用以下内容。",-1)),o(ce,{modelValue:t.value.welcome,"onUpdate:modelValue":e[13]||(e[13]=l=>t.value.welcome=l),disabled:U.value,"employee-name":P.value,onBusy:e[14]||(e[14]=l=>ue("basic",l))},null,8,["modelValue","disabled","employee-name"])]),o(E,{class:"schedule-switch",label:"分时欢迎语"},{default:u(()=>[o(q,{modelValue:t.value.welcome_schedule_enabled,"onUpdate:modelValue":e[15]||(e[15]=l=>t.value.welcome_schedule_enabled=l),disabled:U.value||D.value},null,8,["modelValue","disabled"]),e[37]||(e[37]=d("span",{class:"switch-help"},"按客户添加时的北京时间匹配,时段不能重叠",-1))]),_:1}),t.value.welcome_schedule_enabled?(s(),i("div",gl,[(s(!0),i(y,null,V(t.value.welcome_schedule,(l,f)=>(s(),i("div",{key:f,class:"schedule-card welcome-schedule"},[d("div",kl,[d("strong",null,"欢迎语时段 "+_(f+1),1),o(k,{type:"danger",text:"",size:"small",disabled:U.value||D.value,onClick:n=>Ve(f)},{default:u(()=>[...e[38]||(e[38]=[r("删除时段",-1)])]),_:1},8,["disabled","onClick"])]),o(re,{modelValue:l.weekdays,"onUpdate:modelValue":n=>l.weekdays=n,class:"weekday-select",disabled:U.value},{default:u(()=>[(s(!0),i(y,null,V(H(pe),(n,Z)=>(s(),h(A,{key:n,value:Z+1},{default:u(()=>[r(_(n),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"]),d("div",yl,[o(O,{modelValue:l.start,"onUpdate:modelValue":n=>l.start=n,disabled:U.value,format:"HH:mm","value-format":"HH:mm",placeholder:"开始时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),e[39]||(e[39]=d("span",null,"至",-1)),o(O,{modelValue:l.end,"onUpdate:modelValue":n=>l.end=n,disabled:U.value,format:"HH:mm","value-format":"HH:mm",placeholder:"结束时间",clearable:!1},null,8,["modelValue","onUpdate:modelValue","disabled"]),l.endObject.assign(l,n),onBusy:n=>ue(`slot-${f}`,n)},null,8,["model-value","disabled","employee-name","onUpdate:modelValue","onBusy"])]))),128)),o(k,{icon:H(ee),disabled:U.value||D.value||t.value.welcome_schedule.length>=30,onClick:we},{default:u(()=>[...e[40]||(e[40]=[r("添加欢迎语时段",-1)])]),_:1},8,["icon","disabled"]),e[41]||(e[41]=d("p",{class:"field-help"},"最多 30 个时段,支持跨午夜。时段外自动使用基础渠道欢迎语,不会随机选择内容。",-1))])):c("",!0)],64)):c("",!0)],2)])}}}),xl=Ye(Vl,[["__scopeId","data-v-a7e42c87"]]);export{xl as default}; diff --git a/server/public/admin/assets/RecordingPlaybackBlock-GbWd6PMw.js b/server/public/admin/assets/RecordingPlaybackBlock-DDHsYga7.js similarity index 94% rename from server/public/admin/assets/RecordingPlaybackBlock-GbWd6PMw.js rename to server/public/admin/assets/RecordingPlaybackBlock-DDHsYga7.js index 3c134384d..feb000f41 100644 --- a/server/public/admin/assets/RecordingPlaybackBlock-GbWd6PMw.js +++ b/server/public/admin/assets/RecordingPlaybackBlock-DDHsYga7.js @@ -1 +1 @@ -import{o as L,q as i,r as c,s as d,F as v,O as m,bt as B,D as _,L as k,P as y,G as q,p as f,T as w}from"./.pnpm-CyuAWpdG.js";import H from"./RecordingVideoPlayer-grUPRDCj.js";import{e as I,_ as P}from"./index-Dxvz9lb1.js";const R={key:0,class:"recording-list"},C={class:"recording-item"},V={key:1,class:"recording-alternates"},N={class:"recording-alternates__links"},D={key:1,class:"text-gray-400"},E=L({__name:"RecordingPlaybackBlock",props:{recordId:{},urls:{}},setup(l){const $=l,h=I(),u=f(()=>{const e=$.urls||[],t=new Set,r=[];for(const o of e){const s=String(o??"").trim();!s||t.has(s)||(t.add(s),r.push(s))}return r}),a=f(()=>{const e=u.value;if(!e.length)return null;const t=e.find(n=>/\.mp4(\?|#|$)/i.test(n));if(t)return t;const r=e.find(n=>/\.m3u8(\?|#|$)/i.test(n)&&/vod-qcloud\.com/i.test(n));if(r)return r;const o=e.find(n=>/\.m3u8(\?|#|$)/i.test(n)&&/\.cos\.[^/]+\.myqcloud\.com/i.test(n));if(o)return o;const s=e.find(n=>/\.m3u8(\?|#|$)/i.test(n));return s||e[0]}),p=f(()=>{const e=u.value,t=a.value;return t?e.filter(r=>r!==t):e.slice(1)});function b(e){if(!e||typeof e!="string")return!1;const t=e.trim();return/^https?:\/\//i.test(t)?/\.(mp4|webm|ogg|mov|mkv|m4v|m3u8)(\?|#|$)/i.test(t):/\.(mp4|webm|ogg|mov|mkv|m4v|m3u8)(\?|#|$)/i.test(t)||t.startsWith("/uploads/")}function g(e){return h.getImageUrl(String(e||"").trim())}function S(e,t){const r=e.trim();return/\.mp4(\?|#|$)/i.test(r)?`MP4 ${t+1}`:/vod-qcloud\.com/i.test(r)&&/\.m3u8/i.test(r)?`点播 ${t+1}`:/\.cos\.[^/]+\.myqcloud\.com/i.test(r)&&/\.m3u8/i.test(r)?`COS HLS ${t+1}`:/\.m3u8/i.test(r)?`HLS ${t+1}`:`链接 ${t+1}`}return(e,t)=>{const r=B;return u.value.length?(i(),c("div",R,[d("div",C,[a.value?(i(),c(v,{key:0},[b(a.value)?(i(),m(H,{key:`${l.recordId}-${a.value}`,src:a.value},null,8,["src"])):(i(),m(r,{key:1,href:g(a.value),target:"_blank",type:"primary"},{default:_(()=>[...t[0]||(t[0]=[k(" 打开回放 ",-1)])]),_:1},8,["href"]))],64)):y("",!0),p.value.length?(i(),c("div",V,[t[1]||(t[1]=d("span",{class:"recording-alternates__label"},"备用地址",-1)),d("div",N,[(i(!0),c(v,null,q(p.value,(o,s)=>(i(),m(r,{key:`${l.recordId}-alt-${s}-${o.slice(-32)}`,href:g(o),target:"_blank",type:"primary",class:"recording-alternates__link"},{default:_(()=>[k(w(S(o,s)),1)]),_:2},1032,["href"]))),128))])])):y("",!0)])])):(i(),c("span",D,"暂无"))}}}),x=P(E,[["__scopeId","data-v-d67b2e91"]]);export{x as default}; +import{o as L,q as i,r as c,s as d,F as v,O as m,bt as B,D as _,L as k,P as y,G as q,p as f,T as w}from"./.pnpm-CyuAWpdG.js";import H from"./RecordingVideoPlayer-B0kkGDId.js";import{e as I,_ as P}from"./index-Bkarz3gO.js";const R={key:0,class:"recording-list"},C={class:"recording-item"},V={key:1,class:"recording-alternates"},N={class:"recording-alternates__links"},D={key:1,class:"text-gray-400"},E=L({__name:"RecordingPlaybackBlock",props:{recordId:{},urls:{}},setup(l){const $=l,h=I(),u=f(()=>{const e=$.urls||[],t=new Set,r=[];for(const o of e){const s=String(o??"").trim();!s||t.has(s)||(t.add(s),r.push(s))}return r}),a=f(()=>{const e=u.value;if(!e.length)return null;const t=e.find(n=>/\.mp4(\?|#|$)/i.test(n));if(t)return t;const r=e.find(n=>/\.m3u8(\?|#|$)/i.test(n)&&/vod-qcloud\.com/i.test(n));if(r)return r;const o=e.find(n=>/\.m3u8(\?|#|$)/i.test(n)&&/\.cos\.[^/]+\.myqcloud\.com/i.test(n));if(o)return o;const s=e.find(n=>/\.m3u8(\?|#|$)/i.test(n));return s||e[0]}),p=f(()=>{const e=u.value,t=a.value;return t?e.filter(r=>r!==t):e.slice(1)});function b(e){if(!e||typeof e!="string")return!1;const t=e.trim();return/^https?:\/\//i.test(t)?/\.(mp4|webm|ogg|mov|mkv|m4v|m3u8)(\?|#|$)/i.test(t):/\.(mp4|webm|ogg|mov|mkv|m4v|m3u8)(\?|#|$)/i.test(t)||t.startsWith("/uploads/")}function g(e){return h.getImageUrl(String(e||"").trim())}function S(e,t){const r=e.trim();return/\.mp4(\?|#|$)/i.test(r)?`MP4 ${t+1}`:/vod-qcloud\.com/i.test(r)&&/\.m3u8/i.test(r)?`点播 ${t+1}`:/\.cos\.[^/]+\.myqcloud\.com/i.test(r)&&/\.m3u8/i.test(r)?`COS HLS ${t+1}`:/\.m3u8/i.test(r)?`HLS ${t+1}`:`链接 ${t+1}`}return(e,t)=>{const r=B;return u.value.length?(i(),c("div",R,[d("div",C,[a.value?(i(),c(v,{key:0},[b(a.value)?(i(),m(H,{key:`${l.recordId}-${a.value}`,src:a.value},null,8,["src"])):(i(),m(r,{key:1,href:g(a.value),target:"_blank",type:"primary"},{default:_(()=>[...t[0]||(t[0]=[k(" 打开回放 ",-1)])]),_:1},8,["href"]))],64)):y("",!0),p.value.length?(i(),c("div",V,[t[1]||(t[1]=d("span",{class:"recording-alternates__label"},"备用地址",-1)),d("div",N,[(i(!0),c(v,null,q(p.value,(o,s)=>(i(),m(r,{key:`${l.recordId}-alt-${s}-${o.slice(-32)}`,href:g(o),target:"_blank",type:"primary",class:"recording-alternates__link"},{default:_(()=>[k(w(S(o,s)),1)]),_:2},1032,["href"]))),128))])])):y("",!0)])])):(i(),c("span",D,"暂无"))}}}),x=P(E,[["__scopeId","data-v-d67b2e91"]]);export{x as default}; diff --git a/server/public/admin/assets/RecordingVideoPlayer-grUPRDCj.js b/server/public/admin/assets/RecordingVideoPlayer-B0kkGDId.js similarity index 98% rename from server/public/admin/assets/RecordingVideoPlayer-grUPRDCj.js rename to server/public/admin/assets/RecordingVideoPlayer-B0kkGDId.js index 12b433d87..4068c2b7c 100644 --- a/server/public/admin/assets/RecordingVideoPlayer-grUPRDCj.js +++ b/server/public/admin/assets/RecordingVideoPlayer-B0kkGDId.js @@ -1,2 +1,2 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css"])))=>i.map(i=>d[i]); -import{o as K,ap as z,n as S,R as H,aq as G,q as v,r as p,s as f,ac as O,ad as Q,bc as W,aw as $,F as w,v as k,D as I,u as j,ba as J,w as X,P,L as Y,bt as Z,M as _,p as E,al as ee}from"./.pnpm-CyuAWpdG.js";import{e as ae,_ as ne}from"./index-Dxvz9lb1.js";const te={class:"recording-playback__shell"},re=["preload"],oe=["onKeydown"],le=K({__name:"RecordingVideoPlayer",props:{src:{}},setup(B){const V=B,A=ae(),b=_(null),m=_(null),c=_(!1),s=_(!1),t=_(!1);let d=null,r=null,l=0,u=null;function i(){u!==null&&(clearTimeout(u),u=null)}const y=E(()=>{const e=String(V.src||"").trim();return e?q(A.getImageUrl(e)):""}),D=E(()=>{if(!s.value)return"none";const e=y.value;return e&&!L(e)?"metadata":"none"}),U=E(()=>!s.value||t.value);function q(e){if(!e||!/^https?:\/\//i.test(e))return e;try{const a=new URL(e),n=a.hostname.toLowerCase();if(n.includes("myqcloud.com")||n.includes("vod-qcloud.com")||n.includes("vod-qcloud"))return a.pathname.includes("+")&&(a.pathname=a.pathname.replace(/\+/g,"%2B")),a.href}catch{}return e}function L(e){return/\.m3u8(\?|#|$)/i.test(e)}function C(){var n;t.value=!1,i();const e=m.value,a=(n=e==null?void 0:e.error)==null?void 0:n.code;a===MediaError.MEDIA_ERR_ABORTED||a===1||(c.value=!0)}function h(){d&&(d.destroy(),d=null);const e=m.value;e&&(e.pause(),e.removeAttribute("src"),e.load())}function R(e,a){let n=!1;const o=()=>{n||a!==l||(n=!0,i(),t.value=!1)};e.addEventListener("loadedmetadata",()=>o(),{once:!0}),e.addEventListener("loadeddata",()=>o(),{once:!0}),e.addEventListener("canplay",()=>o(),{once:!0}),e.addEventListener("playing",()=>o(),{once:!0}),e.addEventListener("progress",()=>{try{e.buffered.length>0&&e.buffered.end(0)>0&&o("progress-buffered")}catch{}},{passive:!0})}async function g(){if(!s.value)return;await S();const e=m.value,a=y.value;if(!e)return;if(!a){t.value=!1,i();return}const n=++l;if(t.value=!0,i(),h(),c.value=!1,L(a)){try{const o=await ee(()=>import("./.pnpm-CyuAWpdG.js").then(M=>M.dQ),__vite__mapDeps([0,1])),x=o.default;if(x.isSupported()){d=new x({enableWorker:!0,lowLatencyMode:!1,maxBufferLength:20,maxMaxBufferLength:120}),d.on(o.Events.MANIFEST_PARSED,()=>{n===l&&(t.value=!1,i())}),d.on(o.Events.ERROR,(M,F)=>{if(F.fatal){if(n!==l)return;t.value=!1,i(),c.value=!0,h()}}),d.loadSource(a),d.attachMedia(e),u=setTimeout(()=>{u=null,n===l&&t.value&&(t.value=!1)},45e3);return}if(e.canPlayType("application/vnd.apple.mpegurl")){R(e,n),e.src=a,u=setTimeout(()=>{u=null,n===l&&t.value&&(t.value=!1)},45e3);return}}catch{if(n!==l)return;t.value=!1,i(),c.value=!0;return}if(n!==l)return;t.value=!1,i(),c.value=!0;return}R(e,n),e.src=a,u=setTimeout(()=>{u=null,n===l&&t.value&&(t.value=!1)},25e3)}function N(){const e=b.value;if(!e||typeof IntersectionObserver>"u"){s.value=!0,g();return}r=new IntersectionObserver(a=>{for(const n of a)if(n.isIntersecting){r==null||r.disconnect(),r=null,s.value=!0,g();break}},{root:null,rootMargin:"240px 0px",threshold:0}),r.observe(e)}function T(){r==null||r.disconnect(),r=null,s.value||(s.value=!0),g()}return z(()=>{S(()=>{N()})}),H(y,()=>{s.value&&g()}),G(()=>{r==null||r.disconnect(),r=null,i(),l++,h()}),(e,a)=>{const n=X,o=Z;return v(),p("div",{ref_key:"wrapRef",ref:b,class:"recording-playback"},[f("div",te,[O(f("video",{ref_key:"videoRef",ref:m,class:"recording-video",controls:"",playsinline:"","webkit-playsinline":"",preload:D.value,onError:C},null,40,re),[[Q,!c.value]]),!c.value&&U.value?(v(),p("div",{key:0,class:"recording-playback__overlay",role:"button",tabindex:"0",onClick:T,onKeydown:W($(T,["prevent"]),["enter"])},[s.value?(v(),p(w,{key:1},[k(n,{class:"recording-playback__spin"},{default:I(()=>[k(j(J))]),_:1}),a[2]||(a[2]=f("span",null,"正在加载…",-1))],64)):(v(),p(w,{key:0},[a[0]||(a[0]=f("span",{class:"recording-playback__overlay-title"},"预览待加载",-1)),a[1]||(a[1]=f("span",{class:"recording-playback__overlay-desc"},"滚动至此处将自动加载(减轻并发卡顿),也可点击立即加载",-1))],64))],40,oe)):P("",!0)]),c.value?(v(),p(w,{key:0},[k(o,{href:y.value||"#",target:"_blank",type:"primary"},{default:I(()=>[...a[3]||(a[3]=[Y("在新窗口打开",-1)])]),_:1},8,["href"]),a[4]||(a[4]=f("div",{class:"recording-playback__hint"}," 内嵌播放失败(编码不支持、跨域或私有存储等)时可尝试在新窗口打开。 ",-1))],64)):P("",!0)],512)}}}),ie=ne(le,[["__scopeId","data-v-749b0199"]]);export{ie as default}; +import{o as K,ap as z,n as S,R as H,aq as G,q as v,r as p,s as f,ac as O,ad as Q,bc as W,aw as $,F as w,v as k,D as I,u as j,ba as J,w as X,P,L as Y,bt as Z,M as _,p as E,al as ee}from"./.pnpm-CyuAWpdG.js";import{e as ae,_ as ne}from"./index-Bkarz3gO.js";const te={class:"recording-playback__shell"},re=["preload"],oe=["onKeydown"],le=K({__name:"RecordingVideoPlayer",props:{src:{}},setup(B){const V=B,A=ae(),b=_(null),m=_(null),c=_(!1),s=_(!1),t=_(!1);let d=null,r=null,l=0,u=null;function i(){u!==null&&(clearTimeout(u),u=null)}const y=E(()=>{const e=String(V.src||"").trim();return e?q(A.getImageUrl(e)):""}),D=E(()=>{if(!s.value)return"none";const e=y.value;return e&&!L(e)?"metadata":"none"}),U=E(()=>!s.value||t.value);function q(e){if(!e||!/^https?:\/\//i.test(e))return e;try{const a=new URL(e),n=a.hostname.toLowerCase();if(n.includes("myqcloud.com")||n.includes("vod-qcloud.com")||n.includes("vod-qcloud"))return a.pathname.includes("+")&&(a.pathname=a.pathname.replace(/\+/g,"%2B")),a.href}catch{}return e}function L(e){return/\.m3u8(\?|#|$)/i.test(e)}function C(){var n;t.value=!1,i();const e=m.value,a=(n=e==null?void 0:e.error)==null?void 0:n.code;a===MediaError.MEDIA_ERR_ABORTED||a===1||(c.value=!0)}function h(){d&&(d.destroy(),d=null);const e=m.value;e&&(e.pause(),e.removeAttribute("src"),e.load())}function R(e,a){let n=!1;const o=()=>{n||a!==l||(n=!0,i(),t.value=!1)};e.addEventListener("loadedmetadata",()=>o(),{once:!0}),e.addEventListener("loadeddata",()=>o(),{once:!0}),e.addEventListener("canplay",()=>o(),{once:!0}),e.addEventListener("playing",()=>o(),{once:!0}),e.addEventListener("progress",()=>{try{e.buffered.length>0&&e.buffered.end(0)>0&&o("progress-buffered")}catch{}},{passive:!0})}async function g(){if(!s.value)return;await S();const e=m.value,a=y.value;if(!e)return;if(!a){t.value=!1,i();return}const n=++l;if(t.value=!0,i(),h(),c.value=!1,L(a)){try{const o=await ee(()=>import("./.pnpm-CyuAWpdG.js").then(M=>M.dQ),__vite__mapDeps([0,1])),x=o.default;if(x.isSupported()){d=new x({enableWorker:!0,lowLatencyMode:!1,maxBufferLength:20,maxMaxBufferLength:120}),d.on(o.Events.MANIFEST_PARSED,()=>{n===l&&(t.value=!1,i())}),d.on(o.Events.ERROR,(M,F)=>{if(F.fatal){if(n!==l)return;t.value=!1,i(),c.value=!0,h()}}),d.loadSource(a),d.attachMedia(e),u=setTimeout(()=>{u=null,n===l&&t.value&&(t.value=!1)},45e3);return}if(e.canPlayType("application/vnd.apple.mpegurl")){R(e,n),e.src=a,u=setTimeout(()=>{u=null,n===l&&t.value&&(t.value=!1)},45e3);return}}catch{if(n!==l)return;t.value=!1,i(),c.value=!0;return}if(n!==l)return;t.value=!1,i(),c.value=!0;return}R(e,n),e.src=a,u=setTimeout(()=>{u=null,n===l&&t.value&&(t.value=!1)},25e3)}function N(){const e=b.value;if(!e||typeof IntersectionObserver>"u"){s.value=!0,g();return}r=new IntersectionObserver(a=>{for(const n of a)if(n.isIntersecting){r==null||r.disconnect(),r=null,s.value=!0,g();break}},{root:null,rootMargin:"240px 0px",threshold:0}),r.observe(e)}function T(){r==null||r.disconnect(),r=null,s.value||(s.value=!0),g()}return z(()=>{S(()=>{N()})}),H(y,()=>{s.value&&g()}),G(()=>{r==null||r.disconnect(),r=null,i(),l++,h()}),(e,a)=>{const n=X,o=Z;return v(),p("div",{ref_key:"wrapRef",ref:b,class:"recording-playback"},[f("div",te,[O(f("video",{ref_key:"videoRef",ref:m,class:"recording-video",controls:"",playsinline:"","webkit-playsinline":"",preload:D.value,onError:C},null,40,re),[[Q,!c.value]]),!c.value&&U.value?(v(),p("div",{key:0,class:"recording-playback__overlay",role:"button",tabindex:"0",onClick:T,onKeydown:W($(T,["prevent"]),["enter"])},[s.value?(v(),p(w,{key:1},[k(n,{class:"recording-playback__spin"},{default:I(()=>[k(j(J))]),_:1}),a[2]||(a[2]=f("span",null,"正在加载…",-1))],64)):(v(),p(w,{key:0},[a[0]||(a[0]=f("span",{class:"recording-playback__overlay-title"},"预览待加载",-1)),a[1]||(a[1]=f("span",{class:"recording-playback__overlay-desc"},"滚动至此处将自动加载(减轻并发卡顿),也可点击立即加载",-1))],64))],40,oe)):P("",!0)]),c.value?(v(),p(w,{key:0},[k(o,{href:y.value||"#",target:"_blank",type:"primary"},{default:I(()=>[...a[3]||(a[3]=[Y("在新窗口打开",-1)])]),_:1},8,["href"]),a[4]||(a[4]=f("div",{class:"recording-playback__hint"}," 内嵌播放失败(编码不支持、跨域或私有存储等)时可尝试在新窗口打开。 ",-1))],64)):P("",!0)],512)}}}),ie=ne(le,[["__scopeId","data-v-749b0199"]]);export{ie as default}; diff --git a/server/public/admin/assets/RevisitNodeCell-DGzlUBxp.js b/server/public/admin/assets/RevisitNodeCell-C_WC8gU-.js similarity index 97% rename from server/public/admin/assets/RevisitNodeCell-DGzlUBxp.js rename to server/public/admin/assets/RevisitNodeCell-C_WC8gU-.js index 1a16052cb..be9ec5b71 100644 --- a/server/public/admin/assets/RevisitNodeCell-DGzlUBxp.js +++ b/server/public/admin/assets/RevisitNodeCell-C_WC8gU-.js @@ -1 +1 @@ -import{o as V,q as t,r as o,ae as v,s as i,O as h,D as u,v as z,bm as M,L as d,T as l,F as y,G as P,a1 as F,P as r,p as a}from"./.pnpm-CyuAWpdG.js";import{$ as q,a0 as A,a1 as G,S as I,a2 as O,a3 as U,a4 as Y,a5 as $,Y as j,V as H,U as J,T as K,a6 as Q,_ as W}from"./index-Dxvz9lb1.js";const X={class:"rv-line rv-line--head"},Z={class:"rv-tooltip"},ee={key:3,class:"rv-doctor"},te={key:0,class:"rv-dot"},se={class:"rv-line rv-line--order"},ae={key:0,class:"rv-order-date"},oe={key:1,class:"rv-dot"},le={class:"rv-anchor"},re={class:"rv-line rv-line--due"},ie={key:0,class:"rv-due-date"},ce={key:0,class:"rv-line rv-line--follow"},ne={key:1,class:"rv-none"},ue=V({__name:"RevisitNodeCell",props:{due:{},compact:{type:Boolean,default:!1},hasPrescription:{type:Boolean,default:!1},followupDoctorName:{default:""},prescribedText:{}},setup(n){const e=n,c=a(()=>q(e.due)),p=a(()=>e.prescribedText!==void 0?e.prescribedText:e.hasPrescription?"已开方":"未开方"),m=a(()=>A(e.due)),T=a(()=>{var s;return c.value&&Number((s=e.due)==null?void 0:s.current_slot)>0?"primary":"info"}),x=a(()=>G(e.due)),f=a(()=>{var s;return c.value?I((s=e.due)==null?void 0:s.order_date):""}),k=a(()=>O(e.due)),S=a(()=>U(e.due)),g=a(()=>{var s;return c.value?Y((s=e.due)==null?void 0:s.anchor_src):""}),D=a(()=>$(e.due)),b=a(()=>j(e.due)),L=a(()=>{var s;return H((s=e.due)==null?void 0:s.state)}),B=a(()=>{var s;return J((s=e.due)==null?void 0:s.state)}),E=a(()=>K(e.due)),C=a(()=>Q(e.due));return(s,N)=>{const _=M,R=F;return t(),o("div",{class:v(["rv-cell",{"rv-cell--compact":n.compact}])},[i("div",X,[c.value&&x.value.length?(t(),h(R,{key:0,placement:"top","show-after":300,"hide-after":0},{content:u(()=>[i("div",Z,[(t(!0),o(y,null,P(x.value,w=>(t(),o("div",{key:w},l(w),1))),128))])]),default:u(()=>[z(_,{size:"small",type:T.value,effect:"light",class:"rv-slot-tag"},{default:u(()=>[d(l(m.value),1)]),_:1},8,["type"])]),_:1})):c.value?(t(),h(_,{key:1,size:"small",type:T.value,effect:"light",class:"rv-slot-tag"},{default:u(()=>[d(l(m.value),1)]),_:1},8,["type"])):r("",!0),p.value?(t(),o("span",{key:2,class:v(["rv-prescribed",n.hasPrescription?"rv-prescribed--yes":"rv-prescribed--no"])},l(p.value),3)):r("",!0),n.followupDoctorName?(t(),o("span",ee,[p.value?(t(),o("span",te,"·")):r("",!0),d(l(n.followupDoctorName),1)])):r("",!0)]),c.value?(t(),o(y,{key:0},[i("div",se,[f.value?(t(),o("span",ae,l(f.value)+" 开药",1)):r("",!0),f.value?(t(),o("span",oe,"·")):r("",!0),i("span",{class:v(["rv-days",{"rv-days--missing":k.value}])},l(S.value),3),!k.value&&g.value?(t(),o(y,{key:2},[N[0]||(N[0]=i("span",{class:"rv-dot"},"·",-1)),i("span",le,l(g.value),1)],64)):r("",!0)]),i("div",re,[D.value?(t(),o("span",ie,l(D.value),1)):r("",!0),b.value?(t(),h(_,{key:1,size:"small",type:L.value,effect:B.value,class:v(E.value)},{default:u(()=>[d(l(b.value),1)]),_:1},8,["type","effect","class"])):r("",!0)]),C.value?(t(),o("div",ce,l(C.value),1)):r("",!0)],64)):(t(),o("span",ne,"—"))],2)}}}),pe=W(ue,[["__scopeId","data-v-fb0ce27b"]]);export{pe as default}; +import{o as V,q as t,r as o,ae as v,s as i,O as h,D as u,v as z,bm as M,L as d,T as l,F as y,G as P,a1 as F,P as r,p as a}from"./.pnpm-CyuAWpdG.js";import{$ as q,a0 as A,a1 as G,S as I,a2 as O,a3 as U,a4 as Y,a5 as $,Y as j,V as H,U as J,T as K,a6 as Q,_ as W}from"./index-Bkarz3gO.js";const X={class:"rv-line rv-line--head"},Z={class:"rv-tooltip"},ee={key:3,class:"rv-doctor"},te={key:0,class:"rv-dot"},se={class:"rv-line rv-line--order"},ae={key:0,class:"rv-order-date"},oe={key:1,class:"rv-dot"},le={class:"rv-anchor"},re={class:"rv-line rv-line--due"},ie={key:0,class:"rv-due-date"},ce={key:0,class:"rv-line rv-line--follow"},ne={key:1,class:"rv-none"},ue=V({__name:"RevisitNodeCell",props:{due:{},compact:{type:Boolean,default:!1},hasPrescription:{type:Boolean,default:!1},followupDoctorName:{default:""},prescribedText:{}},setup(n){const e=n,c=a(()=>q(e.due)),p=a(()=>e.prescribedText!==void 0?e.prescribedText:e.hasPrescription?"已开方":"未开方"),m=a(()=>A(e.due)),T=a(()=>{var s;return c.value&&Number((s=e.due)==null?void 0:s.current_slot)>0?"primary":"info"}),x=a(()=>G(e.due)),f=a(()=>{var s;return c.value?I((s=e.due)==null?void 0:s.order_date):""}),k=a(()=>O(e.due)),S=a(()=>U(e.due)),g=a(()=>{var s;return c.value?Y((s=e.due)==null?void 0:s.anchor_src):""}),D=a(()=>$(e.due)),b=a(()=>j(e.due)),L=a(()=>{var s;return H((s=e.due)==null?void 0:s.state)}),B=a(()=>{var s;return J((s=e.due)==null?void 0:s.state)}),E=a(()=>K(e.due)),C=a(()=>Q(e.due));return(s,N)=>{const _=M,R=F;return t(),o("div",{class:v(["rv-cell",{"rv-cell--compact":n.compact}])},[i("div",X,[c.value&&x.value.length?(t(),h(R,{key:0,placement:"top","show-after":300,"hide-after":0},{content:u(()=>[i("div",Z,[(t(!0),o(y,null,P(x.value,w=>(t(),o("div",{key:w},l(w),1))),128))])]),default:u(()=>[z(_,{size:"small",type:T.value,effect:"light",class:"rv-slot-tag"},{default:u(()=>[d(l(m.value),1)]),_:1},8,["type"])]),_:1})):c.value?(t(),h(_,{key:1,size:"small",type:T.value,effect:"light",class:"rv-slot-tag"},{default:u(()=>[d(l(m.value),1)]),_:1},8,["type"])):r("",!0),p.value?(t(),o("span",{key:2,class:v(["rv-prescribed",n.hasPrescription?"rv-prescribed--yes":"rv-prescribed--no"])},l(p.value),3)):r("",!0),n.followupDoctorName?(t(),o("span",ee,[p.value?(t(),o("span",te,"·")):r("",!0),d(l(n.followupDoctorName),1)])):r("",!0)]),c.value?(t(),o(y,{key:0},[i("div",se,[f.value?(t(),o("span",ae,l(f.value)+" 开药",1)):r("",!0),f.value?(t(),o("span",oe,"·")):r("",!0),i("span",{class:v(["rv-days",{"rv-days--missing":k.value}])},l(S.value),3),!k.value&&g.value?(t(),o(y,{key:2},[N[0]||(N[0]=i("span",{class:"rv-dot"},"·",-1)),i("span",le,l(g.value),1)],64)):r("",!0)]),i("div",re,[D.value?(t(),o("span",ie,l(D.value),1)):r("",!0),b.value?(t(),h(_,{key:1,size:"small",type:L.value,effect:B.value,class:v(E.value)},{default:u(()=>[d(l(b.value),1)]),_:1},8,["type","effect","class"])):r("",!0)]),C.value?(t(),o("div",ce,l(C.value),1)):r("",!0)],64)):(t(),o("span",ne,"—"))],2)}}}),pe=W(ue,[["__scopeId","data-v-fb0ce27b"]]);export{pe as default}; diff --git a/server/public/admin/assets/SendPanel-Da0QIw47.js b/server/public/admin/assets/SendPanel-LUM3zkeh.js similarity index 99% rename from server/public/admin/assets/SendPanel-Da0QIw47.js rename to server/public/admin/assets/SendPanel-LUM3zkeh.js index 525075933..4f25471f6 100644 --- a/server/public/admin/assets/SendPanel-Da0QIw47.js +++ b/server/public/admin/assets/SendPanel-LUM3zkeh.js @@ -1 +1 @@ -import{o as te,q as c,r as w,F as I,G as ae,ae as ne,O as T,aa as ie,v as l,w as se,D as t,u as b,bI as P,s as x,T as F,bJ as K,bK as N,P as $,K as oe,av as ue,aA as re,bc as de,aw as me,a1 as pe,bF as fe,bG as ve,L as C,aB as ce,bd as ge,bb as _e,M as V,p as ye}from"./.pnpm-CyuAWpdG.js";import{r as y,j as _,_ as ke}from"./index-Dxvz9lb1.js";import{u as G}from"./file-CefRfHD9.js";function $e(r){return y.get({url:"/qywx.message/session_list",params:r})}function Be(r){return y.get({url:"/qywx.message/archive_list",params:r})}function Ae(r){return y.post({url:"/qywx.message/mark_read",params:{session_id:r}})}function De(r){return y.post({url:"/qywx.message/send",params:r})}function We(r){return y.get({url:"/qywx.message/send_task_list",params:r})}function je(r,h=""){return y.get({url:"/qywx.message/send_task_detail",params:{task_id:r,cursor:h}})}function Oe(r=""){return y.get({url:"/qywx.message/staff_list",params:{keyword:r}})}function Pe(){return y.get({url:"/qywx.message/archive_status"})}function Ke(r=5,h=!1){return y.post({url:"/qywx.message/pull_archive",params:{max_batches:r,download:h}})}async function J(r,h){const M=new FormData;return M.append("file",r),M.append("type",h),y.post({url:"/qywx.message/upload_to_qywx",data:M,headers:{"Content-Type":"multipart/form-data"}})}const we={class:"send-panel"},be={key:0,class:"attachment-list"},xe=["src"],Ve={class:"attachment-filename"},he={class:"attachment-filename"},qe={class:"attachment-filename"},Ce={class:"send-toolbar"},Me={class:"toolbar-left"},Se={class:"toolbar-right"},Ue={class:"link-picurl-row"},Ee={key:0,class:"mini-preview"},Le=te({__name:"SendPanel",props:{canSendMessage:{type:Boolean}},emits:["send"],setup(r,{emit:h}){const M=r,H=h,S=V(""),d=V([]),L=V(!1),f=V(null),z=V("image"),U=V(!1),v=V({title:"",url:"",picurl:"",desc:""}),E=V(!1),m=V({title:"",appid:"",page:"",pic_media_id:"",preview:""}),B=ye(()=>{if(!M.canSendMessage||L.value)return!1;const o=S.value.trim().length>0,e=d.value.some(s=>!s.uploading);return o||e});function R(o){if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}z.value=o;const e=o==="image"?"image/*":o==="video"?"video/*":"*/*";f.value&&(f.value.accept=e,f.value.value="",f.value.click())}function Q(){z.value="link-cover",f.value&&(f.value.accept="image/*",f.value.value="",f.value.click())}function X(){z.value="mini-cover",f.value&&(f.value.accept="image/*",f.value.value="",f.value.click())}async function Y(o){var g;const s=(g=o.target.files)==null?void 0:g[0];if(!s)return;const n=z.value;if(n==="link-cover"){try{const u=await G(s,s.name);v.value.picurl=u.uri||u.url,_.msgSuccess("封面上传成功")}catch(u){_.msgError((u==null?void 0:u.message)||"封面上传失败")}return}if(n==="mini-cover"){try{const u=await J(s,"image");m.value.pic_media_id=u.media_id;const k=await G(s,s.name);m.value.preview=k.uri||k.url,_.msgSuccess("小程序封面上传成功")}catch(u){_.msgError((u==null?void 0:u.message)||"封面上传失败")}return}const i=n==="file"?"":URL.createObjectURL(s),p={msgtype:n,uploading:!0,preview:i,file_name:s.name};d.value.push(p);const q=d.value.length-1;try{const k=(await J(s,n)).media_id;n==="image"?p.image={media_id:k}:n==="video"?p.video={media_id:k}:p.file={media_id:k},p.uploading=!1}catch(u){_.msgError((u==null?void 0:u.message)||"上传失败"),d.value.splice(q,1)}}function Z(o){const e=d.value[o];e!=null&&e.preview&&e.preview.startsWith("blob:")&&URL.revokeObjectURL(e.preview),d.value.splice(o,1)}function ee(){const{title:o,url:e,picurl:s,desc:n}=v.value;if(!o.trim()||!e.trim()||!s.trim()){_.msgWarning("请完整填写标题、链接地址与封面图");return}if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}d.value.push({msgtype:"link",link:{title:o,url:e,picurl:s,desc:n}}),U.value=!1,v.value={title:"",url:"",picurl:"",desc:""}}function le(){const{title:o,appid:e,page:s,pic_media_id:n}=m.value;if(!o.trim()||!e.trim()||!s.trim()||!n){_.msgWarning("请完整填写小程序信息");return}if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}d.value.push({msgtype:"miniprogram",miniprogram:{title:o,appid:e,page:s,pic_media_id:n}}),E.value=!1,m.value={title:"",appid:"",page:"",pic_media_id:"",preview:""}}async function A(){if(!B.value)return;const o=d.value.filter(n=>!n.uploading).map(n=>{const i={msgtype:n.msgtype};return n.image&&(i.image=n.image),n.video&&(i.video=n.video),n.file&&(i.file=n.file),n.link&&(i.link=n.link),n.miniprogram&&(i.miniprogram=n.miniprogram),i}),e={},s=S.value.trim();s&&(e.text={content:s}),o.length&&(e.attachments=o),L.value=!0;try{await H("send",e),S.value="",d.value.forEach(n=>{var i;(i=n.preview)!=null&&i.startsWith("blob:")&&URL.revokeObjectURL(n.preview)}),d.value=[]}finally{L.value=!1}}return(o,e)=>{const s=ie,n=se,i=oe,p=re,q=pe,g=_e,u=ge,k=ce;return c(),w("div",we,[d.value.length?(c(),w("div",be,[(c(!0),w(I,null,ae(d.value,(a,D)=>{var W,j,O;return c(),w("div",{key:D,class:ne(["attachment-item","attachment-"+a.msgtype])},[a.msgtype==="image"?(c(),T(s,{key:0,src:a.preview||"",fit:"cover",class:"attachment-preview"},null,8,["src"])):a.msgtype==="video"?(c(),w("video",{key:1,src:a.preview||"",class:"attachment-preview",muted:""},null,8,xe)):a.msgtype==="file"?(c(),w(I,{key:2},[l(n,{size:20},{default:t(()=>[l(b(P))]),_:1}),x("span",Ve,F(a.file_name),1)],64)):a.msgtype==="link"?(c(),w(I,{key:3},[l(n,{size:20},{default:t(()=>[l(b(K))]),_:1}),x("span",he,F(((W=a.link)==null?void 0:W.title)||((j=a.link)==null?void 0:j.url)),1)],64)):a.msgtype==="miniprogram"?(c(),w(I,{key:4},[l(n,{size:20},{default:t(()=>[l(b(N))]),_:1}),x("span",qe,F((O=a.miniprogram)==null?void 0:O.title),1)],64)):$("",!0),a.uploading?(c(),T(i,{key:5,type:"primary",link:"",loading:"",size:"small"})):(c(),T(i,{key:6,class:"attachment-remove",type:"danger",link:"",onClick:Ie=>Z(D)},{default:t(()=>[l(n,null,{default:t(()=>[l(b(ue))]),_:1})]),_:1},8,["onClick"]))],2)}),128))])):$("",!0),l(p,{modelValue:S.value,"onUpdate:modelValue":e[0]||(e[0]=a=>S.value=a),type:"textarea",rows:3,placeholder:"在此输入消息,Ctrl+Enter 发送。该消息以代发员工身份发给客户,员工手机端确认后送达。",resize:"none",onKeydown:de(me(A,["ctrl"]),["enter"])},null,8,["modelValue","onKeydown"]),x("div",Ce,[x("div",Me,[l(q,{content:"图片",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[1]||(e[1]=a=>R("image"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(fe))]),_:1})]),_:1})]),_:1}),l(q,{content:"视频",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[2]||(e[2]=a=>R("video"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(ve))]),_:1})]),_:1})]),_:1}),l(q,{content:"文件",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[3]||(e[3]=a=>R("file"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(P))]),_:1})]),_:1})]),_:1}),l(q,{content:"链接",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[4]||(e[4]=a=>U.value=!0)},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(K))]),_:1})]),_:1})]),_:1}),l(q,{content:"小程序",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[5]||(e[5]=a=>E.value=!0)},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(N))]),_:1})]),_:1})]),_:1})]),x("div",Se,[e[18]||(e[18]=x("span",{class:"send-hint"}," 员工手机端确认后送达客户 · Ctrl+Enter 快速发送 ",-1)),l(i,{type:"primary",disabled:!B.value,loading:L.value,onClick:A},{default:t(()=>[...e[17]||(e[17]=[C(" 发送 ",-1)])]),_:1},8,["disabled","loading"])])]),x("input",{ref_key:"fileInputRef",ref:f,type:"file",hidden:"",onChange:Y},null,544),l(k,{modelValue:U.value,"onUpdate:modelValue":e[11]||(e[11]=a=>U.value=a),title:"添加链接",width:"480px"},{footer:t(()=>[l(i,{onClick:e[10]||(e[10]=a=>U.value=!1)},{default:t(()=>[...e[20]||(e[20]=[C("取消",-1)])]),_:1}),l(i,{type:"primary",onClick:ee},{default:t(()=>[...e[21]||(e[21]=[C("确定",-1)])]),_:1})]),default:t(()=>[l(u,{"label-width":"80px",model:v.value},{default:t(()=>[l(g,{label:"标题"},{default:t(()=>[l(p,{modelValue:v.value.title,"onUpdate:modelValue":e[6]||(e[6]=a=>v.value.title=a),maxlength:"128"},null,8,["modelValue"])]),_:1}),l(g,{label:"链接地址"},{default:t(()=>[l(p,{modelValue:v.value.url,"onUpdate:modelValue":e[7]||(e[7]=a=>v.value.url=a),placeholder:"https://..."},null,8,["modelValue"])]),_:1}),l(g,{label:"封面图"},{default:t(()=>[x("div",Ue,[l(p,{modelValue:v.value.picurl,"onUpdate:modelValue":e[8]||(e[8]=a=>v.value.picurl=a),placeholder:"https://..."},null,8,["modelValue"]),l(i,{onClick:Q},{default:t(()=>[...e[19]||(e[19]=[C("本地上传",-1)])]),_:1})])]),_:1}),l(g,{label:"描述"},{default:t(()=>[l(p,{modelValue:v.value.desc,"onUpdate:modelValue":e[9]||(e[9]=a=>v.value.desc=a),type:"textarea",rows:2,maxlength:"512"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(k,{modelValue:E.value,"onUpdate:modelValue":e[16]||(e[16]=a=>E.value=a),title:"添加小程序",width:"480px"},{footer:t(()=>[l(i,{onClick:e[15]||(e[15]=a=>E.value=!1)},{default:t(()=>[...e[22]||(e[22]=[C("取消",-1)])]),_:1}),l(i,{type:"primary",disabled:!m.value.pic_media_id||!m.value.appid,onClick:le},{default:t(()=>[...e[23]||(e[23]=[C(" 确定 ",-1)])]),_:1},8,["disabled"])]),default:t(()=>[l(u,{"label-width":"100px",model:m.value},{default:t(()=>[l(g,{label:"标题"},{default:t(()=>[l(p,{modelValue:m.value.title,"onUpdate:modelValue":e[12]||(e[12]=a=>m.value.title=a)},null,8,["modelValue"])]),_:1}),l(g,{label:"appid"},{default:t(()=>[l(p,{modelValue:m.value.appid,"onUpdate:modelValue":e[13]||(e[13]=a=>m.value.appid=a),placeholder:"wx..."},null,8,["modelValue"])]),_:1}),l(g,{label:"页面路径"},{default:t(()=>[l(p,{modelValue:m.value.page,"onUpdate:modelValue":e[14]||(e[14]=a=>m.value.page=a),placeholder:"/pages/index/index"},null,8,["modelValue"])]),_:1}),l(g,{label:"封面图"},{default:t(()=>[l(i,{onClick:X},{default:t(()=>[C(F(m.value.pic_media_id?"已选择 · 重新选择":"上传封面(必填)"),1)]),_:1}),m.value.preview?(c(),w("div",Ee,[l(s,{src:m.value.preview,fit:"cover"},null,8,["src"])])):$("",!0)]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),ze=ke(Le,[["__scopeId","data-v-afee3bd0"]]),Ne=Object.freeze(Object.defineProperty({__proto__:null,default:ze},Symbol.toStringTag,{value:"Module"}));export{ze as S,Pe as a,Ke as b,Oe as c,Ae as d,Be as e,De as f,We as g,je as h,Ne as i,$e as q}; +import{o as te,q as c,r as w,F as I,G as ae,ae as ne,O as T,aa as ie,v as l,w as se,D as t,u as b,bI as P,s as x,T as F,bJ as K,bK as N,P as $,K as oe,av as ue,aA as re,bc as de,aw as me,a1 as pe,bF as fe,bG as ve,L as C,aB as ce,bd as ge,bb as _e,M as V,p as ye}from"./.pnpm-CyuAWpdG.js";import{r as y,j as _,_ as ke}from"./index-Bkarz3gO.js";import{u as G}from"./file-BjbV-eNx.js";function $e(r){return y.get({url:"/qywx.message/session_list",params:r})}function Be(r){return y.get({url:"/qywx.message/archive_list",params:r})}function Ae(r){return y.post({url:"/qywx.message/mark_read",params:{session_id:r}})}function De(r){return y.post({url:"/qywx.message/send",params:r})}function We(r){return y.get({url:"/qywx.message/send_task_list",params:r})}function je(r,h=""){return y.get({url:"/qywx.message/send_task_detail",params:{task_id:r,cursor:h}})}function Oe(r=""){return y.get({url:"/qywx.message/staff_list",params:{keyword:r}})}function Pe(){return y.get({url:"/qywx.message/archive_status"})}function Ke(r=5,h=!1){return y.post({url:"/qywx.message/pull_archive",params:{max_batches:r,download:h}})}async function J(r,h){const M=new FormData;return M.append("file",r),M.append("type",h),y.post({url:"/qywx.message/upload_to_qywx",data:M,headers:{"Content-Type":"multipart/form-data"}})}const we={class:"send-panel"},be={key:0,class:"attachment-list"},xe=["src"],Ve={class:"attachment-filename"},he={class:"attachment-filename"},qe={class:"attachment-filename"},Ce={class:"send-toolbar"},Me={class:"toolbar-left"},Se={class:"toolbar-right"},Ue={class:"link-picurl-row"},Ee={key:0,class:"mini-preview"},Le=te({__name:"SendPanel",props:{canSendMessage:{type:Boolean}},emits:["send"],setup(r,{emit:h}){const M=r,H=h,S=V(""),d=V([]),L=V(!1),f=V(null),z=V("image"),U=V(!1),v=V({title:"",url:"",picurl:"",desc:""}),E=V(!1),m=V({title:"",appid:"",page:"",pic_media_id:"",preview:""}),B=ye(()=>{if(!M.canSendMessage||L.value)return!1;const o=S.value.trim().length>0,e=d.value.some(s=>!s.uploading);return o||e});function R(o){if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}z.value=o;const e=o==="image"?"image/*":o==="video"?"video/*":"*/*";f.value&&(f.value.accept=e,f.value.value="",f.value.click())}function Q(){z.value="link-cover",f.value&&(f.value.accept="image/*",f.value.value="",f.value.click())}function X(){z.value="mini-cover",f.value&&(f.value.accept="image/*",f.value.value="",f.value.click())}async function Y(o){var g;const s=(g=o.target.files)==null?void 0:g[0];if(!s)return;const n=z.value;if(n==="link-cover"){try{const u=await G(s,s.name);v.value.picurl=u.uri||u.url,_.msgSuccess("封面上传成功")}catch(u){_.msgError((u==null?void 0:u.message)||"封面上传失败")}return}if(n==="mini-cover"){try{const u=await J(s,"image");m.value.pic_media_id=u.media_id;const k=await G(s,s.name);m.value.preview=k.uri||k.url,_.msgSuccess("小程序封面上传成功")}catch(u){_.msgError((u==null?void 0:u.message)||"封面上传失败")}return}const i=n==="file"?"":URL.createObjectURL(s),p={msgtype:n,uploading:!0,preview:i,file_name:s.name};d.value.push(p);const q=d.value.length-1;try{const k=(await J(s,n)).media_id;n==="image"?p.image={media_id:k}:n==="video"?p.video={media_id:k}:p.file={media_id:k},p.uploading=!1}catch(u){_.msgError((u==null?void 0:u.message)||"上传失败"),d.value.splice(q,1)}}function Z(o){const e=d.value[o];e!=null&&e.preview&&e.preview.startsWith("blob:")&&URL.revokeObjectURL(e.preview),d.value.splice(o,1)}function ee(){const{title:o,url:e,picurl:s,desc:n}=v.value;if(!o.trim()||!e.trim()||!s.trim()){_.msgWarning("请完整填写标题、链接地址与封面图");return}if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}d.value.push({msgtype:"link",link:{title:o,url:e,picurl:s,desc:n}}),U.value=!1,v.value={title:"",url:"",picurl:"",desc:""}}function le(){const{title:o,appid:e,page:s,pic_media_id:n}=m.value;if(!o.trim()||!e.trim()||!s.trim()||!n){_.msgWarning("请完整填写小程序信息");return}if(d.value.length>=9){_.msgWarning("最多添加 9 个附件");return}d.value.push({msgtype:"miniprogram",miniprogram:{title:o,appid:e,page:s,pic_media_id:n}}),E.value=!1,m.value={title:"",appid:"",page:"",pic_media_id:"",preview:""}}async function A(){if(!B.value)return;const o=d.value.filter(n=>!n.uploading).map(n=>{const i={msgtype:n.msgtype};return n.image&&(i.image=n.image),n.video&&(i.video=n.video),n.file&&(i.file=n.file),n.link&&(i.link=n.link),n.miniprogram&&(i.miniprogram=n.miniprogram),i}),e={},s=S.value.trim();s&&(e.text={content:s}),o.length&&(e.attachments=o),L.value=!0;try{await H("send",e),S.value="",d.value.forEach(n=>{var i;(i=n.preview)!=null&&i.startsWith("blob:")&&URL.revokeObjectURL(n.preview)}),d.value=[]}finally{L.value=!1}}return(o,e)=>{const s=ie,n=se,i=oe,p=re,q=pe,g=_e,u=ge,k=ce;return c(),w("div",we,[d.value.length?(c(),w("div",be,[(c(!0),w(I,null,ae(d.value,(a,D)=>{var W,j,O;return c(),w("div",{key:D,class:ne(["attachment-item","attachment-"+a.msgtype])},[a.msgtype==="image"?(c(),T(s,{key:0,src:a.preview||"",fit:"cover",class:"attachment-preview"},null,8,["src"])):a.msgtype==="video"?(c(),w("video",{key:1,src:a.preview||"",class:"attachment-preview",muted:""},null,8,xe)):a.msgtype==="file"?(c(),w(I,{key:2},[l(n,{size:20},{default:t(()=>[l(b(P))]),_:1}),x("span",Ve,F(a.file_name),1)],64)):a.msgtype==="link"?(c(),w(I,{key:3},[l(n,{size:20},{default:t(()=>[l(b(K))]),_:1}),x("span",he,F(((W=a.link)==null?void 0:W.title)||((j=a.link)==null?void 0:j.url)),1)],64)):a.msgtype==="miniprogram"?(c(),w(I,{key:4},[l(n,{size:20},{default:t(()=>[l(b(N))]),_:1}),x("span",qe,F((O=a.miniprogram)==null?void 0:O.title),1)],64)):$("",!0),a.uploading?(c(),T(i,{key:5,type:"primary",link:"",loading:"",size:"small"})):(c(),T(i,{key:6,class:"attachment-remove",type:"danger",link:"",onClick:Ie=>Z(D)},{default:t(()=>[l(n,null,{default:t(()=>[l(b(ue))]),_:1})]),_:1},8,["onClick"]))],2)}),128))])):$("",!0),l(p,{modelValue:S.value,"onUpdate:modelValue":e[0]||(e[0]=a=>S.value=a),type:"textarea",rows:3,placeholder:"在此输入消息,Ctrl+Enter 发送。该消息以代发员工身份发给客户,员工手机端确认后送达。",resize:"none",onKeydown:de(me(A,["ctrl"]),["enter"])},null,8,["modelValue","onKeydown"]),x("div",Ce,[x("div",Me,[l(q,{content:"图片",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[1]||(e[1]=a=>R("image"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(fe))]),_:1})]),_:1})]),_:1}),l(q,{content:"视频",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[2]||(e[2]=a=>R("video"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(ve))]),_:1})]),_:1})]),_:1}),l(q,{content:"文件",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[3]||(e[3]=a=>R("file"))},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(P))]),_:1})]),_:1})]),_:1}),l(q,{content:"链接",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[4]||(e[4]=a=>U.value=!0)},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(K))]),_:1})]),_:1})]),_:1}),l(q,{content:"小程序",placement:"top"},{default:t(()=>[l(i,{link:"",onClick:e[5]||(e[5]=a=>E.value=!0)},{default:t(()=>[l(n,{size:18},{default:t(()=>[l(b(N))]),_:1})]),_:1})]),_:1})]),x("div",Se,[e[18]||(e[18]=x("span",{class:"send-hint"}," 员工手机端确认后送达客户 · Ctrl+Enter 快速发送 ",-1)),l(i,{type:"primary",disabled:!B.value,loading:L.value,onClick:A},{default:t(()=>[...e[17]||(e[17]=[C(" 发送 ",-1)])]),_:1},8,["disabled","loading"])])]),x("input",{ref_key:"fileInputRef",ref:f,type:"file",hidden:"",onChange:Y},null,544),l(k,{modelValue:U.value,"onUpdate:modelValue":e[11]||(e[11]=a=>U.value=a),title:"添加链接",width:"480px"},{footer:t(()=>[l(i,{onClick:e[10]||(e[10]=a=>U.value=!1)},{default:t(()=>[...e[20]||(e[20]=[C("取消",-1)])]),_:1}),l(i,{type:"primary",onClick:ee},{default:t(()=>[...e[21]||(e[21]=[C("确定",-1)])]),_:1})]),default:t(()=>[l(u,{"label-width":"80px",model:v.value},{default:t(()=>[l(g,{label:"标题"},{default:t(()=>[l(p,{modelValue:v.value.title,"onUpdate:modelValue":e[6]||(e[6]=a=>v.value.title=a),maxlength:"128"},null,8,["modelValue"])]),_:1}),l(g,{label:"链接地址"},{default:t(()=>[l(p,{modelValue:v.value.url,"onUpdate:modelValue":e[7]||(e[7]=a=>v.value.url=a),placeholder:"https://..."},null,8,["modelValue"])]),_:1}),l(g,{label:"封面图"},{default:t(()=>[x("div",Ue,[l(p,{modelValue:v.value.picurl,"onUpdate:modelValue":e[8]||(e[8]=a=>v.value.picurl=a),placeholder:"https://..."},null,8,["modelValue"]),l(i,{onClick:Q},{default:t(()=>[...e[19]||(e[19]=[C("本地上传",-1)])]),_:1})])]),_:1}),l(g,{label:"描述"},{default:t(()=>[l(p,{modelValue:v.value.desc,"onUpdate:modelValue":e[9]||(e[9]=a=>v.value.desc=a),type:"textarea",rows:2,maxlength:"512"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(k,{modelValue:E.value,"onUpdate:modelValue":e[16]||(e[16]=a=>E.value=a),title:"添加小程序",width:"480px"},{footer:t(()=>[l(i,{onClick:e[15]||(e[15]=a=>E.value=!1)},{default:t(()=>[...e[22]||(e[22]=[C("取消",-1)])]),_:1}),l(i,{type:"primary",disabled:!m.value.pic_media_id||!m.value.appid,onClick:le},{default:t(()=>[...e[23]||(e[23]=[C(" 确定 ",-1)])]),_:1},8,["disabled"])]),default:t(()=>[l(u,{"label-width":"100px",model:m.value},{default:t(()=>[l(g,{label:"标题"},{default:t(()=>[l(p,{modelValue:m.value.title,"onUpdate:modelValue":e[12]||(e[12]=a=>m.value.title=a)},null,8,["modelValue"])]),_:1}),l(g,{label:"appid"},{default:t(()=>[l(p,{modelValue:m.value.appid,"onUpdate:modelValue":e[13]||(e[13]=a=>m.value.appid=a),placeholder:"wx..."},null,8,["modelValue"])]),_:1}),l(g,{label:"页面路径"},{default:t(()=>[l(p,{modelValue:m.value.page,"onUpdate:modelValue":e[14]||(e[14]=a=>m.value.page=a),placeholder:"/pages/index/index"},null,8,["modelValue"])]),_:1}),l(g,{label:"封面图"},{default:t(()=>[l(i,{onClick:X},{default:t(()=>[C(F(m.value.pic_media_id?"已选择 · 重新选择":"上传封面(必填)"),1)]),_:1}),m.value.preview?(c(),w("div",Ee,[l(s,{src:m.value.preview,fit:"cover"},null,8,["src"])])):$("",!0)]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),ze=ke(Le,[["__scopeId","data-v-afee3bd0"]]),Ne=Object.freeze(Object.defineProperty({__proto__:null,default:ze},Symbol.toStringTag,{value:"Module"}));export{ze as S,Pe as a,Ke as b,Oe as c,Ae as d,Be as e,De as f,We as g,je as h,Ne as i,$e as q}; diff --git a/server/public/admin/assets/TrackingMatrix-CG5kqAiU.js b/server/public/admin/assets/TrackingMatrix-Bz6noxFF.js similarity index 99% rename from server/public/admin/assets/TrackingMatrix-CG5kqAiU.js rename to server/public/admin/assets/TrackingMatrix-Bz6noxFF.js index 587db4870..2c7a7348c 100644 --- a/server/public/admin/assets/TrackingMatrix-CG5kqAiU.js +++ b/server/public/admin/assets/TrackingMatrix-Bz6noxFF.js @@ -1 +1 @@ -import{o as O,R as U,ap as G,ac as W,bn as j,q as n,r as i,s as r,v as p,D as d,be as J,L as f,bf as K,O as M,az as Q,P as m,bC as X,bl as Z,ae as R,T as c,a1 as ee,bk as te,M as y,p as T}from"./.pnpm-CyuAWpdG.js";import{f as se,e as ae,d as ne,c as le,b as ie}from"./blood-thresholds-QpDuElbH.js";import{_ as oe}from"./tcm-QAkeqQ9Q.js";import{_ as re}from"./index-Dxvz9lb1.js";const de={class:"tracking-matrix"},ce={class:"toolbar"},ue={key:0,class:"cell-blood"},pe={class:"value"},_e={key:0,class:"cell-up"},ge={class:"value"},fe={key:0,class:"cell-up"},me={class:"value"},he={key:0,class:"cell-up"},ve={key:1,class:"cell-empty"},ye={key:0,class:"cell-up"},ke={key:1,class:"cell-empty"},be={key:0},xe={key:1,class:"cell-empty"},De={key:0},He={key:1,class:"cell-empty"},Se={class:"diet-tip"},Me={key:1,class:"cell-empty"},Te={class:"exercise-tip"},Be={key:0},Ce={class:"cell-checked"},Re={key:0,class:"meta"},Ve={key:1,class:"meta"},Ee={key:1,class:"cell-empty"},Ie=O({__name:"TrackingMatrix",props:{diagnosisId:{},age:{default:null}},setup(Y,{expose:q}){const g=Y,h=y("30"),k=y(null),B=y(!1),b=y([]),x=y([]),D=y([]);let C=0;const E=s=>`${s.getFullYear()}-${String(s.getMonth()+1).padStart(2,"0")}-${String(s.getDate()).padStart(2,"0")}`,I=s=>{if(s==="custom"){const[_,o]=k.value||["",""];return{start:_||"",end:o||""}}const e=s==="7"?7:30,t=new Date;t.setHours(0,0,0,0);const l=new Date(t);return l.setDate(l.getDate()-(e-1)),{start:E(l),end:E(t)}},z=s=>s.getTime()>Date.now(),H=async()=>{if(!g.diagnosisId||g.diagnosisId<=0){b.value=[],x.value=[],D.value=[];return}const s=I(h.value);if(h.value==="custom"&&(!s.start||!s.end))return;const e=++C;B.value=!0;try{const t=await oe({id:g.diagnosisId,start_date:s.start,end_date:s.end});if(e!==C)return;b.value=(t==null?void 0:t.blood_records)||[],x.value=(t==null?void 0:t.diet_records)||[],D.value=(t==null?void 0:t.exercise_records)||[]}catch{e===C&&(b.value=[],x.value=[],D.value=[])}finally{e===C&&(B.value=!1)}},N=()=>{if(h.value==="custom"&&!k.value){const s=I("30");k.value=[s.start,s.end]}H()},P=()=>{h.value==="custom"&&H()};U(()=>g.diagnosisId,s=>{s&&s>0&&H()}),G(()=>{g.diagnosisId&&g.diagnosisId>0&&H()});const $=T(()=>{const s=new Map;for(const e of b.value){const t=String(e.record_date||"");if(!t)continue;s.has(t)||s.set(t,{record_date:t,record_date_ts:e.record_date_ts});const l=s.get(t),_=["fasting_blood_sugar","postprandial_blood_sugar","other_blood_sugar","systolic_pressure","diastolic_pressure","western_medicine","insulin"];for(const o of _)(l[o]===void 0||l[o]===null||l[o]==="")&&e[o]!==void 0&&e[o]!==null&&e[o]!==""&&(l[o]=e[o])}return s}),w=T(()=>{const s=new Map;for(const e of x.value){const t=String(e.record_date||"");t&&(s.has(t)||s.set(t,e))}return s}),A=T(()=>{const s=new Map;for(const e of D.value){const t=String(e.record_date||"");t&&(s.has(t)||s.set(t,e))}return s}),L=T(()=>{const s=new Set;for(const t of b.value)t.record_date&&s.add(String(t.record_date));for(const t of x.value)t.record_date&&s.add(String(t.record_date));for(const t of D.value)t.record_date&&s.add(String(t.record_date));const e=Array.from(s).filter(t=>t.length===10);return e.sort((t,l)=>tl?-1:0),e}),F=T(()=>L.value.map(s=>{const e=$.value.get(s),t=w.value.get(s),l=A.value.get(s),_=(e==null?void 0:e.fasting_blood_sugar)??null,o=(e==null?void 0:e.postprandial_blood_sugar)??null,u=(e==null?void 0:e.other_blood_sugar)??null,v=(e==null?void 0:e.systolic_pressure)??null,S=(e==null?void 0:e.diastolic_pressure)??null,V=_!==null&&_!==""||o!==null&&o!==""||u!==null&&u!=="",a=v||S?se({systolic_pressure:v,diastolic_pressure:S}):"";return{date:s,dateLabel:`${s}`,bloodAny:V,fasting:_??"—",postprandial:o??"—",other:u??"—",fastingHigh:ie(_,g.age),postprandialHigh:le(o,g.age),otherHigh:ne(u,g.age),bp:a,bpHigh:ae({systolic_pressure:v,diastolic_pressure:S}),westernMedicine:(e==null?void 0:e.western_medicine)||"",insulin:(e==null?void 0:e.insulin)||"",diet:t?{breakfast:t.breakfast||"",lunch:t.lunch||"",dinner:t.dinner||""}:null,exercise:l?{duration:l.duration||0,intensityText:l.intensity_text||"",remark:l.remark||""}:null}}));return q({refresh:H}),(s,e)=>{const t=J,l=K,_=Q,o=X,u=Z,v=ee,S=te,V=j;return W((n(),i("div",de,[r("div",ce,[p(l,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=a=>h.value=a),onChange:N},{default:d(()=>[p(t,{value:"7"},{default:d(()=>[...e[2]||(e[2]=[f("最近 7 天",-1)])]),_:1}),p(t,{value:"30"},{default:d(()=>[...e[3]||(e[3]=[f("最近 30 天",-1)])]),_:1}),p(t,{value:"custom"},{default:d(()=>[...e[4]||(e[4]=[f("自定义",-1)])]),_:1})]),_:1},8,["modelValue"]),h.value==="custom"?(n(),M(_,{key:0,modelValue:k.value,"onUpdate:modelValue":e[1]||(e[1]=a=>k.value=a),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",clearable:!1,size:"default","disabled-date":z,onChange:P},null,8,["modelValue"])):m("",!0),e[5]||(e[5]=r("span",{class:"hint"}," 超阈值红字↑(年龄分段:<50:空7/餐9,≥50:空8/餐10) ",-1))]),!B.value&&L.value.length===0?(n(),M(o,{key:0,description:"所选区间内无任何打卡记录","image-size":80})):(n(),M(S,{key:1,data:F.value,border:"",stripe:"",class:"matrix-table","empty-text":"暂无数据","row-key":"date","max-height":"640"},{default:d(()=>[p(u,{prop:"dateLabel",label:"日期",width:"120",fixed:"left"}),p(u,{label:"血糖 (mmol/L)","min-width":"180"},{default:d(({row:a})=>[a.bloodAny?(n(),i("div",ue,[r("span",{class:R({"cell-high":a.fastingHigh})},[e[6]||(e[6]=f(" 空 ",-1)),r("span",pe,c(a.fasting??"—"),1),a.fastingHigh?(n(),i("span",_e,"↑")):m("",!0)],2),r("span",{class:R({"cell-high":a.postprandialHigh})},[e[7]||(e[7]=f(" 餐 ",-1)),r("span",ge,c(a.postprandial??"—"),1),a.postprandialHigh?(n(),i("span",fe,"↑")):m("",!0)],2),r("span",{class:R({"cell-high":a.otherHigh})},[e[8]||(e[8]=f(" 其他 ",-1)),r("span",me,c(a.other??"—"),1),a.otherHigh?(n(),i("span",he,"↑")):m("",!0)],2)])):(n(),i("span",ve,"—"))]),_:1}),p(u,{label:"血压 (mmHg)",width:"120",align:"center"},{default:d(({row:a})=>[a.bp?(n(),i("span",{key:0,class:R({"cell-high":a.bpHigh})},[f(c(a.bp)+" ",1),a.bpHigh?(n(),i("span",ye,"↑")):m("",!0)],2)):(n(),i("span",ke,"—"))]),_:1}),p(u,{label:"西药","min-width":"120","show-overflow-tooltip":""},{default:d(({row:a})=>[a.westernMedicine?(n(),i("span",be,c(a.westernMedicine),1)):(n(),i("span",xe,"—"))]),_:1}),p(u,{label:"胰岛素","min-width":"120","show-overflow-tooltip":""},{default:d(({row:a})=>[a.insulin?(n(),i("span",De,c(a.insulin),1)):(n(),i("span",He,"—"))]),_:1}),p(u,{label:"饮食打卡",width:"110",align:"center"},{default:d(({row:a})=>[a.diet?(n(),M(v,{key:0,placement:"top",disabled:!a.diet,effect:"light"},{content:d(()=>[r("div",Se,[r("div",null,"早:"+c(a.diet.breakfast||"—"),1),r("div",null,"午:"+c(a.diet.lunch||"—"),1),r("div",null,"晚:"+c(a.diet.dinner||"—"),1)])]),default:d(()=>[e[9]||(e[9]=r("span",{class:"cell-checked"},"已打卡",-1))]),_:2},1032,["disabled"])):(n(),i("span",Me,"—"))]),_:1}),p(u,{label:"运动打卡","min-width":"160",align:"center"},{default:d(({row:a})=>[a.exercise?(n(),M(v,{key:0,placement:"top",effect:"light"},{content:d(()=>[r("div",Te,[r("div",null,"强度:"+c(a.exercise.intensityText||"—"),1),r("div",null,"时长:"+c(a.exercise.duration?a.exercise.duration+" min":"—"),1),a.exercise.remark?(n(),i("div",Be,"备注:"+c(a.exercise.remark),1)):m("",!0)])]),default:d(()=>[r("span",Ce,[e[10]||(e[10]=f(" 已打卡 ",-1)),a.exercise.duration?(n(),i("span",Re,"· "+c(a.exercise.duration)+"min",1)):m("",!0),a.exercise.intensityText?(n(),i("span",Ve,"· "+c(a.exercise.intensityText),1)):m("",!0)])]),_:2},1024)):(n(),i("span",Ee,"—"))]),_:1})]),_:1},8,["data"]))])),[[V,B.value]])}}}),Ne=re(Ie,[["__scopeId","data-v-87978983"]]);export{Ne as default}; +import{o as O,R as U,ap as G,ac as W,bn as j,q as n,r as i,s as r,v as p,D as d,be as J,L as f,bf as K,O as M,az as Q,P as m,bC as X,bl as Z,ae as R,T as c,a1 as ee,bk as te,M as y,p as T}from"./.pnpm-CyuAWpdG.js";import{f as se,e as ae,d as ne,c as le,b as ie}from"./blood-thresholds-QpDuElbH.js";import{_ as oe}from"./tcm-BSADvQNg.js";import{_ as re}from"./index-Bkarz3gO.js";const de={class:"tracking-matrix"},ce={class:"toolbar"},ue={key:0,class:"cell-blood"},pe={class:"value"},_e={key:0,class:"cell-up"},ge={class:"value"},fe={key:0,class:"cell-up"},me={class:"value"},he={key:0,class:"cell-up"},ve={key:1,class:"cell-empty"},ye={key:0,class:"cell-up"},ke={key:1,class:"cell-empty"},be={key:0},xe={key:1,class:"cell-empty"},De={key:0},He={key:1,class:"cell-empty"},Se={class:"diet-tip"},Me={key:1,class:"cell-empty"},Te={class:"exercise-tip"},Be={key:0},Ce={class:"cell-checked"},Re={key:0,class:"meta"},Ve={key:1,class:"meta"},Ee={key:1,class:"cell-empty"},Ie=O({__name:"TrackingMatrix",props:{diagnosisId:{},age:{default:null}},setup(Y,{expose:q}){const g=Y,h=y("30"),k=y(null),B=y(!1),b=y([]),x=y([]),D=y([]);let C=0;const E=s=>`${s.getFullYear()}-${String(s.getMonth()+1).padStart(2,"0")}-${String(s.getDate()).padStart(2,"0")}`,I=s=>{if(s==="custom"){const[_,o]=k.value||["",""];return{start:_||"",end:o||""}}const e=s==="7"?7:30,t=new Date;t.setHours(0,0,0,0);const l=new Date(t);return l.setDate(l.getDate()-(e-1)),{start:E(l),end:E(t)}},z=s=>s.getTime()>Date.now(),H=async()=>{if(!g.diagnosisId||g.diagnosisId<=0){b.value=[],x.value=[],D.value=[];return}const s=I(h.value);if(h.value==="custom"&&(!s.start||!s.end))return;const e=++C;B.value=!0;try{const t=await oe({id:g.diagnosisId,start_date:s.start,end_date:s.end});if(e!==C)return;b.value=(t==null?void 0:t.blood_records)||[],x.value=(t==null?void 0:t.diet_records)||[],D.value=(t==null?void 0:t.exercise_records)||[]}catch{e===C&&(b.value=[],x.value=[],D.value=[])}finally{e===C&&(B.value=!1)}},N=()=>{if(h.value==="custom"&&!k.value){const s=I("30");k.value=[s.start,s.end]}H()},P=()=>{h.value==="custom"&&H()};U(()=>g.diagnosisId,s=>{s&&s>0&&H()}),G(()=>{g.diagnosisId&&g.diagnosisId>0&&H()});const $=T(()=>{const s=new Map;for(const e of b.value){const t=String(e.record_date||"");if(!t)continue;s.has(t)||s.set(t,{record_date:t,record_date_ts:e.record_date_ts});const l=s.get(t),_=["fasting_blood_sugar","postprandial_blood_sugar","other_blood_sugar","systolic_pressure","diastolic_pressure","western_medicine","insulin"];for(const o of _)(l[o]===void 0||l[o]===null||l[o]==="")&&e[o]!==void 0&&e[o]!==null&&e[o]!==""&&(l[o]=e[o])}return s}),w=T(()=>{const s=new Map;for(const e of x.value){const t=String(e.record_date||"");t&&(s.has(t)||s.set(t,e))}return s}),A=T(()=>{const s=new Map;for(const e of D.value){const t=String(e.record_date||"");t&&(s.has(t)||s.set(t,e))}return s}),L=T(()=>{const s=new Set;for(const t of b.value)t.record_date&&s.add(String(t.record_date));for(const t of x.value)t.record_date&&s.add(String(t.record_date));for(const t of D.value)t.record_date&&s.add(String(t.record_date));const e=Array.from(s).filter(t=>t.length===10);return e.sort((t,l)=>tl?-1:0),e}),F=T(()=>L.value.map(s=>{const e=$.value.get(s),t=w.value.get(s),l=A.value.get(s),_=(e==null?void 0:e.fasting_blood_sugar)??null,o=(e==null?void 0:e.postprandial_blood_sugar)??null,u=(e==null?void 0:e.other_blood_sugar)??null,v=(e==null?void 0:e.systolic_pressure)??null,S=(e==null?void 0:e.diastolic_pressure)??null,V=_!==null&&_!==""||o!==null&&o!==""||u!==null&&u!=="",a=v||S?se({systolic_pressure:v,diastolic_pressure:S}):"";return{date:s,dateLabel:`${s}`,bloodAny:V,fasting:_??"—",postprandial:o??"—",other:u??"—",fastingHigh:ie(_,g.age),postprandialHigh:le(o,g.age),otherHigh:ne(u,g.age),bp:a,bpHigh:ae({systolic_pressure:v,diastolic_pressure:S}),westernMedicine:(e==null?void 0:e.western_medicine)||"",insulin:(e==null?void 0:e.insulin)||"",diet:t?{breakfast:t.breakfast||"",lunch:t.lunch||"",dinner:t.dinner||""}:null,exercise:l?{duration:l.duration||0,intensityText:l.intensity_text||"",remark:l.remark||""}:null}}));return q({refresh:H}),(s,e)=>{const t=J,l=K,_=Q,o=X,u=Z,v=ee,S=te,V=j;return W((n(),i("div",de,[r("div",ce,[p(l,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=a=>h.value=a),onChange:N},{default:d(()=>[p(t,{value:"7"},{default:d(()=>[...e[2]||(e[2]=[f("最近 7 天",-1)])]),_:1}),p(t,{value:"30"},{default:d(()=>[...e[3]||(e[3]=[f("最近 30 天",-1)])]),_:1}),p(t,{value:"custom"},{default:d(()=>[...e[4]||(e[4]=[f("自定义",-1)])]),_:1})]),_:1},8,["modelValue"]),h.value==="custom"?(n(),M(_,{key:0,modelValue:k.value,"onUpdate:modelValue":e[1]||(e[1]=a=>k.value=a),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",clearable:!1,size:"default","disabled-date":z,onChange:P},null,8,["modelValue"])):m("",!0),e[5]||(e[5]=r("span",{class:"hint"}," 超阈值红字↑(年龄分段:<50:空7/餐9,≥50:空8/餐10) ",-1))]),!B.value&&L.value.length===0?(n(),M(o,{key:0,description:"所选区间内无任何打卡记录","image-size":80})):(n(),M(S,{key:1,data:F.value,border:"",stripe:"",class:"matrix-table","empty-text":"暂无数据","row-key":"date","max-height":"640"},{default:d(()=>[p(u,{prop:"dateLabel",label:"日期",width:"120",fixed:"left"}),p(u,{label:"血糖 (mmol/L)","min-width":"180"},{default:d(({row:a})=>[a.bloodAny?(n(),i("div",ue,[r("span",{class:R({"cell-high":a.fastingHigh})},[e[6]||(e[6]=f(" 空 ",-1)),r("span",pe,c(a.fasting??"—"),1),a.fastingHigh?(n(),i("span",_e,"↑")):m("",!0)],2),r("span",{class:R({"cell-high":a.postprandialHigh})},[e[7]||(e[7]=f(" 餐 ",-1)),r("span",ge,c(a.postprandial??"—"),1),a.postprandialHigh?(n(),i("span",fe,"↑")):m("",!0)],2),r("span",{class:R({"cell-high":a.otherHigh})},[e[8]||(e[8]=f(" 其他 ",-1)),r("span",me,c(a.other??"—"),1),a.otherHigh?(n(),i("span",he,"↑")):m("",!0)],2)])):(n(),i("span",ve,"—"))]),_:1}),p(u,{label:"血压 (mmHg)",width:"120",align:"center"},{default:d(({row:a})=>[a.bp?(n(),i("span",{key:0,class:R({"cell-high":a.bpHigh})},[f(c(a.bp)+" ",1),a.bpHigh?(n(),i("span",ye,"↑")):m("",!0)],2)):(n(),i("span",ke,"—"))]),_:1}),p(u,{label:"西药","min-width":"120","show-overflow-tooltip":""},{default:d(({row:a})=>[a.westernMedicine?(n(),i("span",be,c(a.westernMedicine),1)):(n(),i("span",xe,"—"))]),_:1}),p(u,{label:"胰岛素","min-width":"120","show-overflow-tooltip":""},{default:d(({row:a})=>[a.insulin?(n(),i("span",De,c(a.insulin),1)):(n(),i("span",He,"—"))]),_:1}),p(u,{label:"饮食打卡",width:"110",align:"center"},{default:d(({row:a})=>[a.diet?(n(),M(v,{key:0,placement:"top",disabled:!a.diet,effect:"light"},{content:d(()=>[r("div",Se,[r("div",null,"早:"+c(a.diet.breakfast||"—"),1),r("div",null,"午:"+c(a.diet.lunch||"—"),1),r("div",null,"晚:"+c(a.diet.dinner||"—"),1)])]),default:d(()=>[e[9]||(e[9]=r("span",{class:"cell-checked"},"已打卡",-1))]),_:2},1032,["disabled"])):(n(),i("span",Me,"—"))]),_:1}),p(u,{label:"运动打卡","min-width":"160",align:"center"},{default:d(({row:a})=>[a.exercise?(n(),M(v,{key:0,placement:"top",effect:"light"},{content:d(()=>[r("div",Te,[r("div",null,"强度:"+c(a.exercise.intensityText||"—"),1),r("div",null,"时长:"+c(a.exercise.duration?a.exercise.duration+" min":"—"),1),a.exercise.remark?(n(),i("div",Be,"备注:"+c(a.exercise.remark),1)):m("",!0)])]),default:d(()=>[r("span",Ce,[e[10]||(e[10]=f(" 已打卡 ",-1)),a.exercise.duration?(n(),i("span",Re,"· "+c(a.exercise.duration)+"min",1)):m("",!0),a.exercise.intensityText?(n(),i("span",Ve,"· "+c(a.exercise.intensityText),1)):m("",!0)])]),_:2},1024)):(n(),i("span",Ee,"—"))]),_:1})]),_:1},8,["data"]))])),[[V,B.value]])}}}),Ne=re(Ie,[["__scopeId","data-v-87978983"]]);export{Ne as default}; diff --git a/server/public/admin/assets/TrackingNoteTimeline-Dpu7gUCf.js b/server/public/admin/assets/TrackingNoteTimeline-CFinhPqD.js similarity index 93% rename from server/public/admin/assets/TrackingNoteTimeline-Dpu7gUCf.js rename to server/public/admin/assets/TrackingNoteTimeline-CFinhPqD.js index 3fd403706..dead57374 100644 --- a/server/public/admin/assets/TrackingNoteTimeline-Dpu7gUCf.js +++ b/server/public/admin/assets/TrackingNoteTimeline-CFinhPqD.js @@ -1,2 +1,2 @@ -import{o as T,q as e,r as t,v as m,aA as V,s as d,D as w,L as I,K as C,P as r,F as u,G as v,T as g,O as E,bC as z,M as p}from"./.pnpm-CyuAWpdG.js";import{a6 as L}from"./tcm-QAkeqQ9Q.js";import{j as M,_ as S}from"./index-Dxvz9lb1.js";/* empty css */const A={class:"tracking-timeline-wrap"},D={key:0,class:"timeline-input"},F={class:"input-actions"},H={key:1,class:"tracking-timeline"},j={class:"timeline-date"},q={class:"timeline-body"},G={key:0,class:"timeline-content"},K=T({__name:"TrackingNoteTimeline",props:{notes:{},diagnosisId:{},readonly:{type:Boolean}},emits:["refresh"],setup(n,{emit:f}){const c=n,y=f,o=p(""),l=p(!1),_=s=>s?s.split(` +import{o as T,q as e,r as t,v as m,aA as V,s as d,D as w,L as I,K as C,P as r,F as u,G as v,T as g,O as E,bC as z,M as p}from"./.pnpm-CyuAWpdG.js";import{a6 as L}from"./tcm-BSADvQNg.js";import{j as M,_ as S}from"./index-Bkarz3gO.js";/* empty css */const A={class:"tracking-timeline-wrap"},D={key:0,class:"timeline-input"},F={class:"input-actions"},H={key:1,class:"tracking-timeline"},j={class:"timeline-date"},q={class:"timeline-body"},G={key:0,class:"timeline-content"},K=T({__name:"TrackingNoteTimeline",props:{notes:{},diagnosisId:{},readonly:{type:Boolean}},emits:["refresh"],setup(n,{emit:f}){const c=n,y=f,o=p(""),l=p(!1),_=s=>s?s.split(` `).filter(Boolean):[],k=async()=>{if(!c.diagnosisId)return;const s=o.value.trim();if(s){l.value=!0;try{await L({diagnosis_id:c.diagnosisId,tracking_content:s}),M.msgSuccess("已添加"),o.value="",y("refresh")}finally{l.value=!1}}};return(s,i)=>{const h=V,b=C,x=z;return e(),t("div",A,[!n.readonly&&n.diagnosisId?(e(),t("div",D,[m(h,{modelValue:o.value,"onUpdate:modelValue":i[0]||(i[0]=a=>o.value=a),type:"textarea",rows:2,placeholder:"输入跟踪备注,回车换行;保存后将以「[HH:MM] 内容」追加到当天记录",maxlength:"1000","show-word-limit":"",resize:"none",disabled:l.value},null,8,["modelValue","disabled"]),d("div",F,[m(b,{type:"primary",size:"small",loading:l.value,disabled:!o.value.trim(),onClick:k},{default:w(()=>[...i[1]||(i[1]=[I(" 添加 ",-1)])]),_:1},8,["loading","disabled"])])])):r("",!0),n.notes.length?(e(),t("div",H,[(e(!0),t(u,null,v(n.notes,a=>(e(),t("div",{key:a.id,class:"timeline-node"},[i[2]||(i[2]=d("div",{class:"timeline-dot"},null,-1)),d("div",j,g(a.note_date),1),d("div",q,[a.content?(e(),t("div",G,[(e(!0),t(u,null,v(_(a.content),(B,N)=>(e(),t("div",{key:N,class:"content-line"},g(B),1))),128))])):r("",!0)])]))),128))])):r("",!0),!n.notes.length&&n.readonly?(e(),E(x,{key:2,description:"暂无跟踪备注","image-size":48})):r("",!0)])}}}),Q=S(K,[["__scopeId","data-v-82b635bd"]]);export{Q as default}; diff --git a/server/public/admin/assets/WecomFloatingWidgetBuilder-LkQ-33ym.js b/server/public/admin/assets/WecomFloatingWidgetBuilder-DSuI6Hvw.js similarity index 99% rename from server/public/admin/assets/WecomFloatingWidgetBuilder-LkQ-33ym.js rename to server/public/admin/assets/WecomFloatingWidgetBuilder-DSuI6Hvw.js index d25aa3ed0..72607740e 100644 --- a/server/public/admin/assets/WecomFloatingWidgetBuilder-LkQ-33ym.js +++ b/server/public/admin/assets/WecomFloatingWidgetBuilder-DSuI6Hvw.js @@ -1 +1 @@ -import{o as ae,aC as re,M as T,R as de,q as v,r as C,s as t,v as l,D as a,u as m,cZ as ue,w as ce,ae as V,L as _,T as f,F as pe,G as me,O as fe,at as L,P as O,bb as be,I as _e,H as ge,aA as ye,bf as we,be as ve,c_ as xe,J as ke,aw as z,bd as Ce,cq as Ve,c$ as Ee,K as he,d0 as Ae,d1 as R,t as Se,cC as Te,d2 as Oe,d3 as P,p as W,E as p}from"./.pnpm-CyuAWpdG.js";import{B as We}from"./first_visit-BxZL4Ke4.js";import{_ as Be}from"./index-Dxvz9lb1.js";const Ue=["bubble","pill","card","message","edge","bar"],y=Object.freeze({v:1,enabled:!1,template:"bubble",position:"bottom-right",title:"专属顾问在线",subtitle:"点击添加企业微信,获取一对一服务",button_text:"立即咨询",primary_color:"#139A8C",bottom_offset:28,show_mobile:!0}),B=Object.freeze([{id:"bubble",name:"轻巧气泡",description:"圆形入口,占用空间最少",scene:"内容型页面"},{id:"pill",name:"行动胶囊",description:"图标与按钮文案同时露出",scene:"营销落地页"},{id:"card",name:"顾问名片",description:"完整呈现标题、说明与行动按钮",scene:"高意向咨询"},{id:"message",name:"消息提醒",description:"模拟新消息,视觉提醒更明确",scene:"活动推广页"},{id:"edge",name:"贴边咨询",description:"沿浏览器边缘停靠,干扰更低",scene:"工具与内容页"},{id:"bar",name:"底部咨询条",description:"宽幅行动区,移动端更醒目",scene:"移动端页面"}]),Ie=new Set(Ue),Ne=new Set(["bottom-right","bottom-left"]),$e=/^#[0-9A-F]{6}$/i;function De(n){if(n&&typeof n=="object"&&!Array.isArray(n))return n;if(typeof n!="string"||!n.trim())return{};try{const r=JSON.parse(n);return r&&typeof r=="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function j(n,r){return n===!0||n===1||n==="1"||n==="true"?!0:n===!1||n===0||n==="0"||n==="false"?!1:r}function U(n,r,d){return n==null?r:Array.from(String(n).trim()).slice(0,d).join("")}function I(n){const r=De(n),d=String(r.template||""),A=String(r.position||""),o=String(r.primary_color||"").trim().toUpperCase(),b=Number(r.bottom_offset),x=Number.isFinite(b)?Math.min(160,Math.max(16,Math.round(b))):y.bottom_offset;return{v:1,enabled:j(r.enabled,y.enabled),template:Ie.has(d)?d:y.template,position:Ne.has(A)?A:y.position,title:U(r.title,y.title,24),subtitle:U(r.subtitle,y.subtitle,48),button_text:U(r.button_text,y.button_text,12),primary_color:$e.test(o)?o:y.primary_color,bottom_offset:x,show_mobile:j(r.show_mobile,y.show_mobile)}}function N(){return{...y}}const Fe={class:"widget-builder","aria-label":"企业微信浮窗客服配置"},Me={class:"builder-header"},Le={class:"builder-intro"},ze={class:"builder-icon"},Re={class:"publish-state"},Pe={class:"builder-layout"},je={class:"builder-controls"},Ge={class:"control-section template-section"},qe={class:"template-grid",role:"radiogroup","aria-label":"浮窗客服模板"},He=["aria-checked","onClick","onKeydown"],Je={class:"template-copy"},Ke={class:"control-section config-section"},Xe={class:"control-heading"},Ze={key:0,class:"dirty-state"},Qe={class:"form-grid"},Ye={class:"switch-control"},et={class:"switch-control"},tt={class:"color-control"},ot={class:"offset-control"},lt={class:"form-actions"},st={class:"action-note"},nt={class:"action-buttons"},it={class:"preview-panel","aria-label":"浮窗实时预览"},at={class:"preview-header"},rt={key:0,class:"mobile-hidden-note"},dt=["aria-label"],ut={class:"widget-copy"},ct={class:"widget-title"},pt={key:0,class:"widget-subtitle"},mt={class:"widget-cta"},ft={class:"install-section"},bt={class:"install-heading"},_t={class:"code-grid"},gt={class:"code-card"},yt={class:"code-card"},wt={class:"install-tip"},vt=ae({__name:"WecomFloatingWidgetBuilder",props:{pool:{}},emits:["saved"],setup(n,{emit:r}){const d=n,A=r,o=re(N()),b=T(N()),x=T("desktop"),S=T(!1),G=["#139A8C","#168C74","#2878D0","#C76A2B","#BA4E68","#43546A"],q=W(()=>({"--widget-primary":o.primary_color,"--widget-bottom":`${o.bottom_offset}px`})),H=W(()=>JSON.stringify(o)!==JSON.stringify(b.value)),J=W(()=>o.enabled?b.value.enabled?"保存更新":"保存并启用":b.value.enabled?"保存并停用":"保存配置");function K(){return d.pool.widget_config??d.pool.widget??d.pool.widgetConfig}function X(){const i=I(K());Object.assign(o,i),b.value={...i}}de(()=>[d.pool.id,d.pool.widget_config,d.pool.widget,d.pool.widgetConfig],X,{immediate:!0,deep:!0});function Z(i,e){if(!["ArrowRight","ArrowDown","ArrowLeft","ArrowUp","Home","End"].includes(i.key))return;i.preventDefault();const g=B.length-1;let c=e;(i.key==="ArrowRight"||i.key==="ArrowDown")&&(c=e===g?0:e+1),(i.key==="ArrowLeft"||i.key==="ArrowUp")&&(c=e===0?g:e-1),i.key==="Home"&&(c=0),i.key==="End"&&(c=g),o.template=B[c].id;const E=i.currentTarget.closest(".template-grid"),w=E==null?void 0:E.querySelectorAll(".template-option");window.requestAnimationFrame(()=>{var k;return(k=w==null?void 0:w[c])==null?void 0:k.focus()})}function Q(){o.primary_color=I({...o,primary_color:typeof o.primary_color=="string"?o.primary_color:""}).primary_color}function Y(){Object.assign(o,N()),p.info("已恢复默认配置,保存后生效")}function ee(){if(!o.title.trim())return p.warning("请输入浮窗标题"),!1;if(!o.button_text.trim())return p.warning("请输入按钮文字"),!1;const i=typeof o.primary_color=="string"?o.primary_color.trim():"";return/^#[0-9A-F]{6}$/i.test(i)?!0:(p.warning("主题色请输入 #RRGGBB 格式"),!1)}async function te(){if(!ee())return;const i=b.value.enabled,e=o.enabled,u=I({...o,enabled:e});S.value=!0;try{await We({pool_id:Number(d.pool.id),...u}),Object.assign(o,u),b.value={...u},!e&&i?p.success("浮窗已停用,最多 60 秒生效"):e?i?p.success("浮窗配置已保存,最多 60 秒生效"):p.success("浮窗已启用,最多 60 秒生效"):p.success("浮窗配置已保存,当前保持未启用"),A("saved",u)}catch(g){p.error((g==null?void 0:g.message)||"浮窗配置保存失败")}finally{S.value=!1}}function $(i){const e=document.createElement("textarea");e.value=i,e.setAttribute("readonly",""),e.style.position="fixed",e.style.left="-9999px",e.style.opacity="0",document.body.appendChild(e);try{if(e.focus(),e.select(),!document.execCommand("copy"))throw new Error("copy command failed")}finally{e.remove()}}async function D(i,e){var u;if(!i){p.warning(`${e}暂无内容`);return}try{if(window.isSecureContext&&((u=navigator.clipboard)!=null&&u.writeText))try{await navigator.clipboard.writeText(i)}catch{$(i)}else $(i);p.success(`${e}已复制`)}catch{p.error(`${e}复制失败,请手动选择代码复制`)}}function oe(){const i=d.pool.main_url||d.pool.go_url||d.pool.compat_go_url;if(!i){p.warning("当前方案暂无测试链接");return}window.open(i,"_blank","noopener,noreferrer")}return(i,e)=>{const u=ce,g=_e,c=be,E=ge,w=ye,k=ve,F=we,le=xe,se=ke,ne=Ce,h=he;return v(),C("section",Fe,[t("header",Me,[t("div",Le,[t("span",ze,[l(u,null,{default:a(()=>[l(m(ue))]),_:1})]),e[15]||(e[15]=t("div",null,[t("h3",null,"浮窗客服模板"),t("p",null,"选择模板并调整内容,保存后基础脚本会自动在推广页展示浮窗。")],-1))]),t("div",Re,[t("span",{class:V(["state-badge",b.value.enabled?"is-enabled":"is-disabled"])},[e[16]||(e[16]=t("i",{"aria-hidden":"true"},null,-1)),_(f(b.value.enabled?"已启用":"未启用"),1)],2),e[17]||(e[17]=t("small",null,"配置保存后最多 60 秒生效",-1))])]),t("div",Pe,[t("div",je,[t("section",Ge,[e[19]||(e[19]=t("div",{class:"control-heading"},[t("div",null,[t("span",{class:"section-index"},"01"),t("h4",null,"选择展示模板")]),t("span",null,"支持方向键切换")],-1)),t("div",qe,[(v(!0),C(pe,null,me(m(B),(s,ie)=>(v(),C("button",{key:s.id,type:"button",class:V(["template-option",{active:o.template===s.id}]),role:"radio","aria-checked":o.template===s.id,onClick:M=>o.template=s.id,onKeydown:M=>Z(M,ie)},[t("span",{class:V(["template-swatch",`is-${s.id}`]),"aria-hidden":"true"},[...e[18]||(e[18]=[t("i",{class:"swatch-icon"},null,-1),t("i",{class:"swatch-line is-long"},null,-1),t("i",{class:"swatch-line is-short"},null,-1),t("i",{class:"swatch-action"},null,-1)])],2),t("span",Je,[t("strong",null,f(s.name),1),t("small",null,f(s.description),1),t("em",null,f(s.scene),1)]),o.template===s.id?(v(),fe(u,{key:0,class:"selected-check"},{default:a(()=>[l(m(L))]),_:1})):O("",!0)],42,He))),128))])]),t("section",Ke,[t("div",Xe,[e[20]||(e[20]=t("div",null,[t("span",{class:"section-index"},"02"),t("h4",null,"调整浮窗内容")],-1)),H.value?(v(),C("span",Ze,"有未保存更改")):O("",!0)]),l(ne,{class:"widget-form","label-position":"top",onSubmit:e[10]||(e[10]=z(()=>{},["prevent"]))},{default:a(()=>[t("div",Qe,[l(c,{label:"显示浮窗"},{default:a(()=>[t("div",Ye,[l(g,{modelValue:o.enabled,"onUpdate:modelValue":e[0]||(e[0]=s=>o.enabled=s),"active-text":"显示","inactive-text":"隐藏"},null,8,["modelValue"]),e[21]||(e[21]=t("small",null,"保存后应用到推广页",-1))])]),_:1}),l(c,{label:"移动端展示"},{default:a(()=>[t("div",et,[l(g,{modelValue:o.show_mobile,"onUpdate:modelValue":e[1]||(e[1]=s=>o.show_mobile=s),"active-text":"展示","inactive-text":"隐藏"},null,8,["modelValue"]),e[22]||(e[22]=t("small",null,"关闭后仅在桌面端出现",-1))])]),_:1}),l(c,{label:"主题色"},{default:a(()=>[t("div",tt,[l(E,{modelValue:o.primary_color,"onUpdate:modelValue":e[2]||(e[2]=s=>o.primary_color=s),predefine:G},null,8,["modelValue"]),l(w,{modelValue:o.primary_color,"onUpdate:modelValue":e[3]||(e[3]=s=>o.primary_color=s),maxlength:"7","aria-label":"主题色十六进制值",onBlur:Q},null,8,["modelValue"])])]),_:1}),l(c,{label:"左右位置"},{default:a(()=>[l(F,{modelValue:o.position,"onUpdate:modelValue":e[4]||(e[4]=s=>o.position=s),class:"position-control"},{default:a(()=>[l(k,{value:"bottom-left"},{default:a(()=>[...e[23]||(e[23]=[_("左下角",-1)])]),_:1}),l(k,{value:"bottom-right"},{default:a(()=>[...e[24]||(e[24]=[_("右下角",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(c,{label:"距底距离",class:"is-wide"},{default:a(()=>[t("div",ot,[l(le,{modelValue:o.bottom_offset,"onUpdate:modelValue":e[5]||(e[5]=s=>o.bottom_offset=s),min:16,max:160,step:4},null,8,["modelValue"]),l(se,{modelValue:o.bottom_offset,"onUpdate:modelValue":e[6]||(e[6]=s=>o.bottom_offset=s),min:16,max:160,step:4,"controls-position":"right","aria-label":"距底距离,单位像素"},null,8,["modelValue"]),e[25]||(e[25]=t("span",null,"px",-1))])]),_:1}),l(c,{label:"标题",class:"is-wide"},{default:a(()=>[l(w,{modelValue:o.title,"onUpdate:modelValue":e[7]||(e[7]=s=>o.title=s),maxlength:"24","show-word-limit":"",placeholder:"例如:专属顾问在线"},null,8,["modelValue"])]),_:1}),l(c,{label:"副文案",class:"is-wide"},{default:a(()=>[l(w,{modelValue:o.subtitle,"onUpdate:modelValue":e[8]||(e[8]=s=>o.subtitle=s),maxlength:"48","show-word-limit":"",placeholder:"说明点击后可以获得什么服务"},null,8,["modelValue"])]),_:1}),l(c,{label:"按钮文字",class:"is-wide"},{default:a(()=>[l(w,{modelValue:o.button_text,"onUpdate:modelValue":e[9]||(e[9]=s=>o.button_text=s),maxlength:"12","show-word-limit":"",placeholder:"例如:立即咨询"},null,8,["modelValue"])]),_:1})])]),_:1}),t("footer",lt,[t("div",st,[l(u,null,{default:a(()=>[l(m(Ve))]),_:1}),t("span",null,"当前方案:"+f(n.pool.name||`方案 ${n.pool.id}`),1)]),t("div",nt,[l(h,{icon:m(Ee),onClick:Y},{default:a(()=>[...e[26]||(e[26]=[_("恢复默认",-1)])]),_:1},8,["icon"]),l(h,{type:"primary",loading:S.value,onClick:te},{default:a(()=>[_(f(J.value),1)]),_:1},8,["loading"])])])])]),t("aside",it,[t("header",at,[t("div",null,[e[27]||(e[27]=t("strong",null,"实时预览",-1)),t("span",null,f(o.enabled?"保存后按此样式展示":"配置预览,当前尚未启用"),1)]),l(F,{modelValue:x.value,"onUpdate:modelValue":e[11]||(e[11]=s=>x.value=s),size:"small","aria-label":"预览设备"},{default:a(()=>[l(k,{value:"desktop"},{default:a(()=>[l(u,null,{default:a(()=>[l(m(Ae))]),_:1}),e[28]||(e[28]=_("桌面",-1))]),_:1}),l(k,{value:"mobile"},{default:a(()=>[l(u,null,{default:a(()=>[l(m(R))]),_:1}),e[29]||(e[29]=_("手机",-1))]),_:1})]),_:1},8,["modelValue"])]),t("div",{class:V(["preview-canvas",`is-${x.value}`])},[e[34]||(e[34]=t("div",{class:"browser-chrome","aria-hidden":"true"},[t("span"),t("span"),t("span"),t("i",null,"promotion.example.com")],-1)),t("div",{class:V(["preview-stage",[`position-${o.position}`,{"is-mobile-hidden":x.value==="mobile"&&!o.show_mobile}]]),style:Se(q.value)},[e[33]||(e[33]=Te('',1)),x.value==="mobile"&&!o.show_mobile?(v(),C("div",rt,[l(u,null,{default:a(()=>[l(m(R))]),_:1}),e[30]||(e[30]=t("strong",null,"移动端已隐藏",-1)),e[31]||(e[31]=t("span",null,"开启“移动端展示”后可查看效果",-1))])):(v(),C("button",{key:1,type:"button",class:V(["live-widget",`template-${o.template}`]),"aria-label":o.button_text||o.title||"企业微信咨询",onClick:e[12]||(e[12]=z(()=>{},["prevent"]))},[e[32]||(e[32]=t("span",{class:"consult-icon","aria-hidden":"true"},"企",-1)),t("span",ut,[t("strong",ct,f(o.title),1),o.subtitle?(v(),C("small",pt,f(o.subtitle),1)):O("",!0)]),t("span",mt,f(o.button_text),1)],10,dt))],6)],2)])]),t("section",ft,[t("div",bt,[e[36]||(e[36]=t("div",null,[t("span",{class:"section-index"},"03"),t("h4",null,"安装与手动触发"),t("p",null,"基础脚本只需安装一次;启用浮窗后,脚本会自动读取本方案的最新配置。")],-1)),l(h,{type:"primary",plain:"",icon:m(Oe),disabled:!n.pool.go_url,onClick:oe},{default:a(()=>[...e[35]||(e[35]=[_(" 打开测试链接 ",-1)])]),_:1},8,["icon","disabled"])]),t("div",_t,[t("article",gt,[e[38]||(e[38]=t("div",{class:"code-title"},[t("span",null,"1"),t("div",null,[t("strong",null,"安装基础脚本"),t("small",null,"放在页面 之前,只需一次。")])],-1)),t("pre",null,[t("code",null,f(n.pool.install_code||"暂无基础脚本"),1)]),l(h,{type:"primary",plain:"",icon:m(P),onClick:e[13]||(e[13]=s=>D(n.pool.install_code,"基础脚本"))},{default:a(()=>[...e[37]||(e[37]=[_(" 复制基础脚本 ",-1)])]),_:1},8,["icon"])]),t("article",yt,[e[40]||(e[40]=t("div",{class:"code-title"},[t("span",null,"2"),t("div",null,[t("strong",null,"手动触发代码"),t("small",null,"需要额外入口时,将属性放到按钮或链接上。")])],-1)),t("pre",null,[t("code",null,f(n.pool.trigger_code||"暂无手动触发代码"),1)]),l(h,{type:"primary",plain:"",icon:m(P),onClick:e[14]||(e[14]=s=>D(n.pool.trigger_code,"手动触发代码"))},{default:a(()=>[...e[39]||(e[39]=[_(" 复制触发代码 ",-1)])]),_:1},8,["icon"])])]),t("div",wt,[l(u,null,{default:a(()=>[l(m(L))]),_:1}),e[41]||(e[41]=t("span",null,[t("strong",null,"一个方案,一个官方链接"),_("浮窗会直接打开企业微信链接,多名医助由企业微信执行均衡分流。")],-1))])])])}}}),Vt=Be(vt,[["__scopeId","data-v-51ceed15"]]);export{Vt as default}; +import{o as ae,aC as re,M as T,R as de,q as v,r as C,s as t,v as l,D as a,u as m,cZ as ue,w as ce,ae as V,L as _,T as f,F as pe,G as me,O as fe,at as L,P as O,bb as be,I as _e,H as ge,aA as ye,bf as we,be as ve,c_ as xe,J as ke,aw as z,bd as Ce,cq as Ve,c$ as Ee,K as he,d0 as Ae,d1 as R,t as Se,cC as Te,d2 as Oe,d3 as P,p as W,E as p}from"./.pnpm-CyuAWpdG.js";import{B as We}from"./first_visit-B5IgLifl.js";import{_ as Be}from"./index-Bkarz3gO.js";const Ue=["bubble","pill","card","message","edge","bar"],y=Object.freeze({v:1,enabled:!1,template:"bubble",position:"bottom-right",title:"专属顾问在线",subtitle:"点击添加企业微信,获取一对一服务",button_text:"立即咨询",primary_color:"#139A8C",bottom_offset:28,show_mobile:!0}),B=Object.freeze([{id:"bubble",name:"轻巧气泡",description:"圆形入口,占用空间最少",scene:"内容型页面"},{id:"pill",name:"行动胶囊",description:"图标与按钮文案同时露出",scene:"营销落地页"},{id:"card",name:"顾问名片",description:"完整呈现标题、说明与行动按钮",scene:"高意向咨询"},{id:"message",name:"消息提醒",description:"模拟新消息,视觉提醒更明确",scene:"活动推广页"},{id:"edge",name:"贴边咨询",description:"沿浏览器边缘停靠,干扰更低",scene:"工具与内容页"},{id:"bar",name:"底部咨询条",description:"宽幅行动区,移动端更醒目",scene:"移动端页面"}]),Ie=new Set(Ue),Ne=new Set(["bottom-right","bottom-left"]),$e=/^#[0-9A-F]{6}$/i;function De(n){if(n&&typeof n=="object"&&!Array.isArray(n))return n;if(typeof n!="string"||!n.trim())return{};try{const r=JSON.parse(n);return r&&typeof r=="object"&&!Array.isArray(r)?r:{}}catch{return{}}}function j(n,r){return n===!0||n===1||n==="1"||n==="true"?!0:n===!1||n===0||n==="0"||n==="false"?!1:r}function U(n,r,d){return n==null?r:Array.from(String(n).trim()).slice(0,d).join("")}function I(n){const r=De(n),d=String(r.template||""),A=String(r.position||""),o=String(r.primary_color||"").trim().toUpperCase(),b=Number(r.bottom_offset),x=Number.isFinite(b)?Math.min(160,Math.max(16,Math.round(b))):y.bottom_offset;return{v:1,enabled:j(r.enabled,y.enabled),template:Ie.has(d)?d:y.template,position:Ne.has(A)?A:y.position,title:U(r.title,y.title,24),subtitle:U(r.subtitle,y.subtitle,48),button_text:U(r.button_text,y.button_text,12),primary_color:$e.test(o)?o:y.primary_color,bottom_offset:x,show_mobile:j(r.show_mobile,y.show_mobile)}}function N(){return{...y}}const Fe={class:"widget-builder","aria-label":"企业微信浮窗客服配置"},Me={class:"builder-header"},Le={class:"builder-intro"},ze={class:"builder-icon"},Re={class:"publish-state"},Pe={class:"builder-layout"},je={class:"builder-controls"},Ge={class:"control-section template-section"},qe={class:"template-grid",role:"radiogroup","aria-label":"浮窗客服模板"},He=["aria-checked","onClick","onKeydown"],Je={class:"template-copy"},Ke={class:"control-section config-section"},Xe={class:"control-heading"},Ze={key:0,class:"dirty-state"},Qe={class:"form-grid"},Ye={class:"switch-control"},et={class:"switch-control"},tt={class:"color-control"},ot={class:"offset-control"},lt={class:"form-actions"},st={class:"action-note"},nt={class:"action-buttons"},it={class:"preview-panel","aria-label":"浮窗实时预览"},at={class:"preview-header"},rt={key:0,class:"mobile-hidden-note"},dt=["aria-label"],ut={class:"widget-copy"},ct={class:"widget-title"},pt={key:0,class:"widget-subtitle"},mt={class:"widget-cta"},ft={class:"install-section"},bt={class:"install-heading"},_t={class:"code-grid"},gt={class:"code-card"},yt={class:"code-card"},wt={class:"install-tip"},vt=ae({__name:"WecomFloatingWidgetBuilder",props:{pool:{}},emits:["saved"],setup(n,{emit:r}){const d=n,A=r,o=re(N()),b=T(N()),x=T("desktop"),S=T(!1),G=["#139A8C","#168C74","#2878D0","#C76A2B","#BA4E68","#43546A"],q=W(()=>({"--widget-primary":o.primary_color,"--widget-bottom":`${o.bottom_offset}px`})),H=W(()=>JSON.stringify(o)!==JSON.stringify(b.value)),J=W(()=>o.enabled?b.value.enabled?"保存更新":"保存并启用":b.value.enabled?"保存并停用":"保存配置");function K(){return d.pool.widget_config??d.pool.widget??d.pool.widgetConfig}function X(){const i=I(K());Object.assign(o,i),b.value={...i}}de(()=>[d.pool.id,d.pool.widget_config,d.pool.widget,d.pool.widgetConfig],X,{immediate:!0,deep:!0});function Z(i,e){if(!["ArrowRight","ArrowDown","ArrowLeft","ArrowUp","Home","End"].includes(i.key))return;i.preventDefault();const g=B.length-1;let c=e;(i.key==="ArrowRight"||i.key==="ArrowDown")&&(c=e===g?0:e+1),(i.key==="ArrowLeft"||i.key==="ArrowUp")&&(c=e===0?g:e-1),i.key==="Home"&&(c=0),i.key==="End"&&(c=g),o.template=B[c].id;const E=i.currentTarget.closest(".template-grid"),w=E==null?void 0:E.querySelectorAll(".template-option");window.requestAnimationFrame(()=>{var k;return(k=w==null?void 0:w[c])==null?void 0:k.focus()})}function Q(){o.primary_color=I({...o,primary_color:typeof o.primary_color=="string"?o.primary_color:""}).primary_color}function Y(){Object.assign(o,N()),p.info("已恢复默认配置,保存后生效")}function ee(){if(!o.title.trim())return p.warning("请输入浮窗标题"),!1;if(!o.button_text.trim())return p.warning("请输入按钮文字"),!1;const i=typeof o.primary_color=="string"?o.primary_color.trim():"";return/^#[0-9A-F]{6}$/i.test(i)?!0:(p.warning("主题色请输入 #RRGGBB 格式"),!1)}async function te(){if(!ee())return;const i=b.value.enabled,e=o.enabled,u=I({...o,enabled:e});S.value=!0;try{await We({pool_id:Number(d.pool.id),...u}),Object.assign(o,u),b.value={...u},!e&&i?p.success("浮窗已停用,最多 60 秒生效"):e?i?p.success("浮窗配置已保存,最多 60 秒生效"):p.success("浮窗已启用,最多 60 秒生效"):p.success("浮窗配置已保存,当前保持未启用"),A("saved",u)}catch(g){p.error((g==null?void 0:g.message)||"浮窗配置保存失败")}finally{S.value=!1}}function $(i){const e=document.createElement("textarea");e.value=i,e.setAttribute("readonly",""),e.style.position="fixed",e.style.left="-9999px",e.style.opacity="0",document.body.appendChild(e);try{if(e.focus(),e.select(),!document.execCommand("copy"))throw new Error("copy command failed")}finally{e.remove()}}async function D(i,e){var u;if(!i){p.warning(`${e}暂无内容`);return}try{if(window.isSecureContext&&((u=navigator.clipboard)!=null&&u.writeText))try{await navigator.clipboard.writeText(i)}catch{$(i)}else $(i);p.success(`${e}已复制`)}catch{p.error(`${e}复制失败,请手动选择代码复制`)}}function oe(){const i=d.pool.main_url||d.pool.go_url||d.pool.compat_go_url;if(!i){p.warning("当前方案暂无测试链接");return}window.open(i,"_blank","noopener,noreferrer")}return(i,e)=>{const u=ce,g=_e,c=be,E=ge,w=ye,k=ve,F=we,le=xe,se=ke,ne=Ce,h=he;return v(),C("section",Fe,[t("header",Me,[t("div",Le,[t("span",ze,[l(u,null,{default:a(()=>[l(m(ue))]),_:1})]),e[15]||(e[15]=t("div",null,[t("h3",null,"浮窗客服模板"),t("p",null,"选择模板并调整内容,保存后基础脚本会自动在推广页展示浮窗。")],-1))]),t("div",Re,[t("span",{class:V(["state-badge",b.value.enabled?"is-enabled":"is-disabled"])},[e[16]||(e[16]=t("i",{"aria-hidden":"true"},null,-1)),_(f(b.value.enabled?"已启用":"未启用"),1)],2),e[17]||(e[17]=t("small",null,"配置保存后最多 60 秒生效",-1))])]),t("div",Pe,[t("div",je,[t("section",Ge,[e[19]||(e[19]=t("div",{class:"control-heading"},[t("div",null,[t("span",{class:"section-index"},"01"),t("h4",null,"选择展示模板")]),t("span",null,"支持方向键切换")],-1)),t("div",qe,[(v(!0),C(pe,null,me(m(B),(s,ie)=>(v(),C("button",{key:s.id,type:"button",class:V(["template-option",{active:o.template===s.id}]),role:"radio","aria-checked":o.template===s.id,onClick:M=>o.template=s.id,onKeydown:M=>Z(M,ie)},[t("span",{class:V(["template-swatch",`is-${s.id}`]),"aria-hidden":"true"},[...e[18]||(e[18]=[t("i",{class:"swatch-icon"},null,-1),t("i",{class:"swatch-line is-long"},null,-1),t("i",{class:"swatch-line is-short"},null,-1),t("i",{class:"swatch-action"},null,-1)])],2),t("span",Je,[t("strong",null,f(s.name),1),t("small",null,f(s.description),1),t("em",null,f(s.scene),1)]),o.template===s.id?(v(),fe(u,{key:0,class:"selected-check"},{default:a(()=>[l(m(L))]),_:1})):O("",!0)],42,He))),128))])]),t("section",Ke,[t("div",Xe,[e[20]||(e[20]=t("div",null,[t("span",{class:"section-index"},"02"),t("h4",null,"调整浮窗内容")],-1)),H.value?(v(),C("span",Ze,"有未保存更改")):O("",!0)]),l(ne,{class:"widget-form","label-position":"top",onSubmit:e[10]||(e[10]=z(()=>{},["prevent"]))},{default:a(()=>[t("div",Qe,[l(c,{label:"显示浮窗"},{default:a(()=>[t("div",Ye,[l(g,{modelValue:o.enabled,"onUpdate:modelValue":e[0]||(e[0]=s=>o.enabled=s),"active-text":"显示","inactive-text":"隐藏"},null,8,["modelValue"]),e[21]||(e[21]=t("small",null,"保存后应用到推广页",-1))])]),_:1}),l(c,{label:"移动端展示"},{default:a(()=>[t("div",et,[l(g,{modelValue:o.show_mobile,"onUpdate:modelValue":e[1]||(e[1]=s=>o.show_mobile=s),"active-text":"展示","inactive-text":"隐藏"},null,8,["modelValue"]),e[22]||(e[22]=t("small",null,"关闭后仅在桌面端出现",-1))])]),_:1}),l(c,{label:"主题色"},{default:a(()=>[t("div",tt,[l(E,{modelValue:o.primary_color,"onUpdate:modelValue":e[2]||(e[2]=s=>o.primary_color=s),predefine:G},null,8,["modelValue"]),l(w,{modelValue:o.primary_color,"onUpdate:modelValue":e[3]||(e[3]=s=>o.primary_color=s),maxlength:"7","aria-label":"主题色十六进制值",onBlur:Q},null,8,["modelValue"])])]),_:1}),l(c,{label:"左右位置"},{default:a(()=>[l(F,{modelValue:o.position,"onUpdate:modelValue":e[4]||(e[4]=s=>o.position=s),class:"position-control"},{default:a(()=>[l(k,{value:"bottom-left"},{default:a(()=>[...e[23]||(e[23]=[_("左下角",-1)])]),_:1}),l(k,{value:"bottom-right"},{default:a(()=>[...e[24]||(e[24]=[_("右下角",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(c,{label:"距底距离",class:"is-wide"},{default:a(()=>[t("div",ot,[l(le,{modelValue:o.bottom_offset,"onUpdate:modelValue":e[5]||(e[5]=s=>o.bottom_offset=s),min:16,max:160,step:4},null,8,["modelValue"]),l(se,{modelValue:o.bottom_offset,"onUpdate:modelValue":e[6]||(e[6]=s=>o.bottom_offset=s),min:16,max:160,step:4,"controls-position":"right","aria-label":"距底距离,单位像素"},null,8,["modelValue"]),e[25]||(e[25]=t("span",null,"px",-1))])]),_:1}),l(c,{label:"标题",class:"is-wide"},{default:a(()=>[l(w,{modelValue:o.title,"onUpdate:modelValue":e[7]||(e[7]=s=>o.title=s),maxlength:"24","show-word-limit":"",placeholder:"例如:专属顾问在线"},null,8,["modelValue"])]),_:1}),l(c,{label:"副文案",class:"is-wide"},{default:a(()=>[l(w,{modelValue:o.subtitle,"onUpdate:modelValue":e[8]||(e[8]=s=>o.subtitle=s),maxlength:"48","show-word-limit":"",placeholder:"说明点击后可以获得什么服务"},null,8,["modelValue"])]),_:1}),l(c,{label:"按钮文字",class:"is-wide"},{default:a(()=>[l(w,{modelValue:o.button_text,"onUpdate:modelValue":e[9]||(e[9]=s=>o.button_text=s),maxlength:"12","show-word-limit":"",placeholder:"例如:立即咨询"},null,8,["modelValue"])]),_:1})])]),_:1}),t("footer",lt,[t("div",st,[l(u,null,{default:a(()=>[l(m(Ve))]),_:1}),t("span",null,"当前方案:"+f(n.pool.name||`方案 ${n.pool.id}`),1)]),t("div",nt,[l(h,{icon:m(Ee),onClick:Y},{default:a(()=>[...e[26]||(e[26]=[_("恢复默认",-1)])]),_:1},8,["icon"]),l(h,{type:"primary",loading:S.value,onClick:te},{default:a(()=>[_(f(J.value),1)]),_:1},8,["loading"])])])])]),t("aside",it,[t("header",at,[t("div",null,[e[27]||(e[27]=t("strong",null,"实时预览",-1)),t("span",null,f(o.enabled?"保存后按此样式展示":"配置预览,当前尚未启用"),1)]),l(F,{modelValue:x.value,"onUpdate:modelValue":e[11]||(e[11]=s=>x.value=s),size:"small","aria-label":"预览设备"},{default:a(()=>[l(k,{value:"desktop"},{default:a(()=>[l(u,null,{default:a(()=>[l(m(Ae))]),_:1}),e[28]||(e[28]=_("桌面",-1))]),_:1}),l(k,{value:"mobile"},{default:a(()=>[l(u,null,{default:a(()=>[l(m(R))]),_:1}),e[29]||(e[29]=_("手机",-1))]),_:1})]),_:1},8,["modelValue"])]),t("div",{class:V(["preview-canvas",`is-${x.value}`])},[e[34]||(e[34]=t("div",{class:"browser-chrome","aria-hidden":"true"},[t("span"),t("span"),t("span"),t("i",null,"promotion.example.com")],-1)),t("div",{class:V(["preview-stage",[`position-${o.position}`,{"is-mobile-hidden":x.value==="mobile"&&!o.show_mobile}]]),style:Se(q.value)},[e[33]||(e[33]=Te('',1)),x.value==="mobile"&&!o.show_mobile?(v(),C("div",rt,[l(u,null,{default:a(()=>[l(m(R))]),_:1}),e[30]||(e[30]=t("strong",null,"移动端已隐藏",-1)),e[31]||(e[31]=t("span",null,"开启“移动端展示”后可查看效果",-1))])):(v(),C("button",{key:1,type:"button",class:V(["live-widget",`template-${o.template}`]),"aria-label":o.button_text||o.title||"企业微信咨询",onClick:e[12]||(e[12]=z(()=>{},["prevent"]))},[e[32]||(e[32]=t("span",{class:"consult-icon","aria-hidden":"true"},"企",-1)),t("span",ut,[t("strong",ct,f(o.title),1),o.subtitle?(v(),C("small",pt,f(o.subtitle),1)):O("",!0)]),t("span",mt,f(o.button_text),1)],10,dt))],6)],2)])]),t("section",ft,[t("div",bt,[e[36]||(e[36]=t("div",null,[t("span",{class:"section-index"},"03"),t("h4",null,"安装与手动触发"),t("p",null,"基础脚本只需安装一次;启用浮窗后,脚本会自动读取本方案的最新配置。")],-1)),l(h,{type:"primary",plain:"",icon:m(Oe),disabled:!n.pool.go_url,onClick:oe},{default:a(()=>[...e[35]||(e[35]=[_(" 打开测试链接 ",-1)])]),_:1},8,["icon","disabled"])]),t("div",_t,[t("article",gt,[e[38]||(e[38]=t("div",{class:"code-title"},[t("span",null,"1"),t("div",null,[t("strong",null,"安装基础脚本"),t("small",null,"放在页面 之前,只需一次。")])],-1)),t("pre",null,[t("code",null,f(n.pool.install_code||"暂无基础脚本"),1)]),l(h,{type:"primary",plain:"",icon:m(P),onClick:e[13]||(e[13]=s=>D(n.pool.install_code,"基础脚本"))},{default:a(()=>[...e[37]||(e[37]=[_(" 复制基础脚本 ",-1)])]),_:1},8,["icon"])]),t("article",yt,[e[40]||(e[40]=t("div",{class:"code-title"},[t("span",null,"2"),t("div",null,[t("strong",null,"手动触发代码"),t("small",null,"需要额外入口时,将属性放到按钮或链接上。")])],-1)),t("pre",null,[t("code",null,f(n.pool.trigger_code||"暂无手动触发代码"),1)]),l(h,{type:"primary",plain:"",icon:m(P),onClick:e[14]||(e[14]=s=>D(n.pool.trigger_code,"手动触发代码"))},{default:a(()=>[...e[39]||(e[39]=[_(" 复制触发代码 ",-1)])]),_:1},8,["icon"])])]),t("div",wt,[l(u,null,{default:a(()=>[l(m(L))]),_:1}),e[41]||(e[41]=t("span",null,[t("strong",null,"一个方案,一个官方链接"),_("浮窗会直接打开企业微信链接,多名医助由企业微信执行均衡分流。")],-1))])])])}}}),Vt=Be(vt,[["__scopeId","data-v-51ceed15"]]);export{Vt as default}; diff --git a/server/public/admin/assets/WelcomeMessageEditor-BCxSXNSC.js b/server/public/admin/assets/WelcomeMessageEditor-3rIW6eTh.js similarity index 99% rename from server/public/admin/assets/WelcomeMessageEditor-BCxSXNSC.js rename to server/public/admin/assets/WelcomeMessageEditor-3rIW6eTh.js index 27a4bda95..0d9978bac 100644 --- a/server/public/admin/assets/WelcomeMessageEditor-BCxSXNSC.js +++ b/server/public/admin/assets/WelcomeMessageEditor-3rIW6eTh.js @@ -1 +1 @@ -import{o as de,by as oe,q as u,r as f,s as a,v as c,bZ as re,D as v,F as C,G as M,T as o,K as ue,L as w,O as F,u as h,aA as me,ae as G,$ as ce,cx as pe,Z as fe,_ as be,P as z,cX as X,w as ge,bF as _e,bK as ve,cY as ye,bI as ke,M as E,p as Y,n as Q,E as we}from"./.pnpm-CyuAWpdG.js";import{A as he}from"./first_visit-BxZL4Ke4.js";import{_ as Ve}from"./index-Dxvz9lb1.js";const ol=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"],xe=[{label:"客户昵称",value:"{customer_name}"},{label:"员工昵称",value:"{employee_name}"},{label:"添加时间",value:"{add_time}"}],N=e=>new TextEncoder().encode(e).length;function rl(e){return e.trim()?/[\p{C}\u2028\u2029]/u.test(e)?"标签名称不能包含换行、控制字符或不可见格式字符":Array.from(e.trim()).length>30?"标签名称最多 30 个字符":"":"请输入自定义标签名称"}function Ce(){return{reception_mode:"always",reception_schedule:[],backup_member_admin_ids:[],tags_enabled:!1,tag_ids:[],remark_enabled:!1,remark_template:"{customer_name}",description_enabled:!1,description:"",welcome_mode:"default",welcome:{text:"",attachments:[]},welcome_schedule_enabled:!1,welcome_schedule:[]}}function ul(e){var m,n;const b=Ce();if(!e)return b;const s=JSON.parse(JSON.stringify(e));return{reception_mode:s.reception_mode==="scheduled"?"scheduled":"always",reception_schedule:(s.reception_schedule||[]).map(({weekdays:r,start:$,end:V,member_admin_ids:y})=>({weekdays:[...r],start:$,end:V,member_admin_ids:y.map(Number)})),backup_member_admin_ids:(s.backup_member_admin_ids||[]).map(Number),tags_enabled:!!s.tags_enabled,tag_ids:[...s.tag_ids||[]],remark_enabled:!!s.remark_enabled,remark_template:s.remark_template??b.remark_template,description_enabled:!!s.description_enabled,description:s.description||"",welcome_mode:s.welcome_mode||"default",welcome:{text:((m=s.welcome)==null?void 0:m.text)||"",attachments:((n=s.welcome)==null?void 0:n.attachments)||[]},welcome_schedule_enabled:!!s.welcome_schedule_enabled,welcome_schedule:(s.welcome_schedule||[]).map(({weekdays:r,start:$,end:V,text:y,attachments:U})=>({weekdays:[...r],start:$,end:V,text:y||"",attachments:U||[]}))}}function ml(e){return{...e,tags_enabled:e.tags_enabled?1:0,remark_enabled:e.remark_enabled?1:0,description_enabled:e.description_enabled?1:0,welcome_schedule_enabled:e.welcome_schedule_enabled?1:0}}function $e(e,b="小陈",s){const m=new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Shanghai",year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date),n=e.replace(/\{(customer_name|employee_name|add_time)\}/g,r=>({"{customer_name}":"张女士","{employee_name}":b,"{add_time}":m})[r]||r);return s?Array.from(n).slice(0,s).join(""):n}function W(e){try{return["https:","http:"].includes(new URL(e).protocol)}catch{return!1}}function ee(e,b){return!e.weekdays.length||e.weekdays.some(s=>s<1||s>7)?`${b}请选择星期`:!/^(?:[01]\d|2[0-3]):[0-5]\d$/.test(e.start)||!/^(?:[01]\d|2[0-3]):[0-5]\d$/.test(e.end)?`${b}请填写有效的起止时间`:e.start===e.end?`${b}开始与结束时间不能相同,全天接待请选择全天模式`:""}function le(e,b,s=!0){if(Array.from(e.text).length>1200)return`${b}正文不能超过 1200 字`;if(N(e.text)>4e3)return`${b}正文不能超过 4000 UTF-8 字节,请减少表情或文字`;if(e.attachments.length>9)return`${b}最多添加 9 个附件`;if(s&&!e.text.trim()&&!e.attachments.length)return`${b}请填写正文或添加附件`;for(const[m,n]of e.attachments.entries()){const r=`${b}第 ${m+1} 个附件:`;switch(n.msgtype){case"image":if(!n.image.asset_id&&!W(n.image.pic_url||""))return r+"请上传图片或填写有效图片地址";break;case"video":if(!n.video.asset_id)return r+"请先上传视频";break;case"file":if(!n.file.asset_id)return r+"请先上传文件";break;case"link":if(!n.link.title.trim()||!W(n.link.url))return r+"请填写网页标题和有效的 HTTP/HTTPS 链接";if(N(n.link.title)>128||N(n.link.desc)>512)return r+"网页标题限 128 字节,描述限 512 字节";if(n.link.picurl&&!W(n.link.picurl))return r+"网页封面地址无效";break;case"miniprogram":if(!n.miniprogram.title.trim()||!n.miniprogram.appid.trim()||!n.miniprogram.page.trim()||!n.miniprogram.pic_asset_id)return r+"请填写小程序标题、AppID、页面路径并上传封面";if(N(n.miniprogram.title)>64)return r+"小程序标题不能超过 64 字节";break}}return""}function Ue(e){const b=new Set;for(const s of e){const[m,n]=s.start.split(":").map(Number),[r,$]=s.end.split(":").map(Number),V=m*60+n,y=(r*60+$-V+1440)%1440;for(const U of new Set(s.weekdays))for(let T=0;Tb.includes(m)))return"备用成员不能与主接待成员重复";if(e.reception_schedule.length>30||e.welcome_schedule.length>30)return"每类时段最多添加 30 条";if(e.reception_mode==="scheduled"){if(!e.reception_schedule.length)return"按时段接待至少需要一个接待时段";if(!e.backup_member_admin_ids.length)return"按时段接待至少需要一名备用成员,以承接非接待时段的客户"}for(const[m,n]of e.reception_schedule.entries()){const r=ee(n,`接待时段 ${m+1}:`);if(r)return r;if(!n.member_admin_ids.length)return`接待时段 ${m+1}:请至少选择一名成员`;if(n.member_admin_ids.some($=>!b.includes($)))return`接待时段 ${m+1}:成员必须来自主接待成员,请重新选择`}if(e.tags_enabled&&!e.tag_ids.length)return"启用客户标签后,请选择一个企业微信标签,或创建自定义标签";if(e.tag_ids.length>1)return"客户标签只能选择一个,请重新选择或清空原标签";if(e.remark_enabled&&!e.remark_template.trim())return"请填写客户备注模板";if(Array.from(e.remark_template).length>200)return"客户备注模板不能超过 200 字";if(e.description_enabled&&!e.description.trim())return"请填写客户描述";if(Array.from(e.description).length>150)return"客户描述不能超过 150 字";const s=le(e.welcome,"基础渠道欢迎语:",e.welcome_mode==="channel");if(s)return s;if(e.welcome_mode==="channel"&&e.welcome_schedule_enabled&&!e.welcome_schedule.length)return"请至少添加一个分时欢迎语时段";for(const[m,n]of e.welcome_schedule.entries()){const r=ee(n,`欢迎语时段 ${m+1}:`)||le(n,`欢迎语时段 ${m+1}:`);if(r)return r}return Ue(e.welcome_schedule)?"分时欢迎语的时间范围不能重叠(跨午夜时段归属开始日)":""}const Ae={class:"welcome-editor"},Ne={class:"welcome-editor__fields"},Te={class:"text-tools"},Ee={class:"emoji-grid"},Se=["onClick"],Be={class:"attachments-heading"},Pe={key:0,class:"attachment-empty"},Ie={class:"attachment-card__heading"},Me={class:"upload-field"},ze={class:"field-tip"},De={class:"attachment-label"},je={class:"attachment-label"},Le={class:"attachment-label"},Oe={class:"upload-field mini-upload"},Fe={key:3,role:"alert",class:"upload-error"},Ge=["accept"],We={class:"welcome-preview","aria-label":"欢迎语手机预览"},Re={class:"phone-heading"},Je={class:"phone-content"},He={key:0,class:"chat-row"},Ke={class:"chat-avatar"},Ze={class:"chat-bubble"},qe={class:"chat-avatar"},Xe={class:"chat-bubble attachment-preview"},Ye=["src"],Qe={key:1,class:"media-placeholder"},el=["src"],ll={key:1,class:"media-placeholder"},tl={key:1,class:"preview-empty"},al=de({__name:"WelcomeMessageEditor",props:{modelValue:{},disabled:{type:Boolean},employeeName:{}},emits:["update:modelValue","busy"],setup(e,{emit:b}){const s=e,m=b,n=E(),r=E(),$=E({start:0,end:0}),V=E(-1),y=Y(()=>V.value>=0),U=E({}),T=E({}),I=E({index:0,type:"image"}),R=E("image/jpeg,image/png"),te=["😊","😀","👋","🌹","❤️","👍","🙏","🎉","☀️","✨","💐","🤝","💬","✅","🌿","🍀"],J=[{value:"image",label:"图片"},{value:"link",label:"网页"},{value:"miniprogram",label:"小程序"},{value:"video",label:"视频"},{value:"file",label:"文件"}],ae=Y(()=>Array.from(s.modelValue.text).length>1200||N(s.modelValue.text)>4e3);function H(i){m("update:modelValue",{...s.modelValue,text:i})}function D(){var l;const i=(l=n.value)==null?void 0:l.textarea;i&&($.value={start:i.selectionStart,end:i.selectionEnd})}async function K(i){var _,S,A,k;if(s.disabled)return;const{start:l,end:d}=$.value;H(s.modelValue.text.slice(0,l)+i+s.modelValue.text.slice(d)),await Q();const x=l+i.length;(S=(_=n.value)==null?void 0:_.textarea)==null||S.focus(),(k=(A=n.value)==null?void 0:A.textarea)==null||k.setSelectionRange(x,x),$.value={start:x,end:x}}function L(i){var l;return((l=J.find(d=>d.value===i))==null?void 0:l.label)||"附件"}function se(i){if(s.disabled||y.value||s.modelValue.attachments.length>=9)return;let l;i==="image"?l={msgtype:"image",image:{asset_id:""}}:i==="video"?l={msgtype:"video",video:{asset_id:""}}:i==="file"?l={msgtype:"file",file:{asset_id:""}}:i==="link"?l={msgtype:"link",link:{title:"",url:"",desc:"",picurl:""}}:l={msgtype:"miniprogram",miniprogram:{title:"",appid:"",page:"",pic_asset_id:""}},m("update:modelValue",{...s.modelValue,attachments:[...s.modelValue.attachments,l]})}function ie(i){U.value={},m("update:modelValue",{...s.modelValue,attachments:s.modelValue.attachments.filter((l,d)=>d!==i)})}function Z(i,l){const d=[...s.modelValue.attachments];[d[i],d[i+l]]=[d[i+l],d[i]],U.value={},m("update:modelValue",{...s.modelValue,attachments:d})}function B(i){return i.msgtype==="image"?i.image.asset_id||"":i.msgtype==="video"?i.video.asset_id:i.msgtype==="file"?i.file.asset_id:i.msgtype==="miniprogram"?i.miniprogram.pic_asset_id:""}function O(i){var d;const l=B(i);return l?((d=T.value[l])==null?void 0:d.name)||`已保存素材 ${l.slice(-10)}`:i.msgtype==="image"&&i.image.pic_url?"已保存的企微图片":"尚未上传"}function j(i){var l;return((l=T.value[B(i)])==null?void 0:l.url)||""}async function q(i,l){var d;I.value={index:i,type:l},R.value=l==="image"?".jpg,.jpeg,.png":l==="video"?".mp4":"*",await Q(),(d=r.value)==null||d.click()}async function ne(i){var P;const l=i.target,d=(P=l.files)==null?void 0:P[0];if(l.value="",!d)return;const{index:x,type:_}=I.value,S=_==="file"?20:10;let A="";if(d.size<=5||d.size>S*1024*1024?A=`文件必须大于 5 字节且不超过 ${S}MB`:_==="image"&&!/\.(jpe?g|png)$/i.test(d.name)?A="图片仅支持 JPG / PNG 格式":_==="video"&&!/\.mp4$/i.test(d.name)&&(A="视频仅支持 MP4 格式"),A){U.value[x]=A;return}const k=s.modelValue.attachments[x];if(k){V.value=x,m("busy",!0),delete U.value[x];try{const t=await he(d,_);if(!(t!=null&&t.asset_id))throw new Error("上传接口未返回素材 ID");const p=String(t.asset_id);T.value[p]={name:t.name||d.name,url:_==="image"?URL.createObjectURL(d):void 0},k.msgtype==="image"?k.image={asset_id:p}:k.msgtype==="video"?k.video.asset_id=p:k.msgtype==="file"?k.file.asset_id=p:k.msgtype==="miniprogram"&&(k.miniprogram.pic_asset_id=p),we.success("素材已上传")}catch(t){U.value[x]=t instanceof Error?t.message:typeof t=="string"?t:"素材上传失败"}finally{V.value=-1,m("busy",!1)}}}return oe(()=>{Object.values(T.value).forEach(i=>{i.url&&URL.revokeObjectURL(i.url)}),m("busy",!1)}),(i,l)=>{const d=ue,x=re,_=me,S=be,A=fe,k=ce,P=ge;return u(),f("div",Ae,[a("div",Ne,[a("div",Te,[c(x,{placement:"bottom-start",trigger:"click",width:240,disabled:e.disabled},{reference:v(()=>[c(d,{size:"small",disabled:e.disabled},{default:v(()=>[...l[0]||(l[0]=[w("☺ 插入表情",-1)])]),_:1},8,["disabled"])]),default:v(()=>[a("div",Ee,[(u(),f(C,null,M(te,t=>a("button",{key:t,type:"button",onClick:p=>K(t)},o(t),9,Se)),64))])]),_:1},8,["disabled"]),(u(!0),f(C,null,M(h(xe),t=>(u(),F(d,{key:t.value,size:"small",disabled:e.disabled,onClick:p=>K(t.value)},{default:v(()=>[w(o(t.label),1)]),_:2},1032,["disabled","onClick"]))),128))]),c(_,{ref_key:"textInput",ref:n,"model-value":e.modelValue.text,type:"textarea",rows:6,disabled:e.disabled,placeholder:"请输入欢迎语,也可插入客户昵称、员工昵称和添加日期","onUpdate:modelValue":H,onSelect:D,onKeyup:D,onClick:D,onBlur:D},null,8,["model-value","disabled"]),a("div",{class:G(["text-count",{"is-error":ae.value}])},o(Array.from(e.modelValue.text).length)+"/1200 字 · "+o(h(N)(e.modelValue.text))+"/4000 字节",3),a("div",Be,[a("strong",null,[l[1]||(l[1]=w("附件 ",-1)),a("span",null,o(e.modelValue.attachments.length)+"/9",1)]),c(k,{disabled:e.disabled||e.modelValue.attachments.length>=9||y.value,onCommand:se},{dropdown:v(()=>[c(A,null,{default:v(()=>[(u(),f(C,null,M(J,t=>c(S,{key:t.value,command:t.value},{default:v(()=>[w(o(t.label),1)]),_:2},1032,["command"])),64))]),_:1})]),default:v(()=>[c(d,{size:"small",disabled:e.disabled||e.modelValue.attachments.length>=9||y.value,icon:h(pe)},{default:v(()=>[...l[2]||(l[2]=[w("添加附件",-1)])]),_:1},8,["disabled","icon"])]),_:1},8,["disabled"])]),e.modelValue.attachments.length?z("",!0):(u(),f("div",Pe,"可添加图片、网页、小程序、视频或文件。")),(u(!0),f(C,null,M(e.modelValue.attachments,(t,p)=>(u(),f("div",{key:p,class:"attachment-card"},[a("div",Ie,[a("strong",null,o(p+1)+". "+o(L(t.msgtype)),1),a("div",null,[c(d,{text:"",size:"small",disabled:e.disabled||y.value||p===0,onClick:g=>Z(p,-1)},{default:v(()=>[...l[3]||(l[3]=[w("上移",-1)])]),_:1},8,["disabled","onClick"]),c(d,{text:"",size:"small",disabled:e.disabled||y.value||p===e.modelValue.attachments.length-1,onClick:g=>Z(p,1)},{default:v(()=>[...l[4]||(l[4]=[w("下移",-1)])]),_:1},8,["disabled","onClick"]),c(d,{text:"",type:"danger",size:"small",disabled:e.disabled||y.value,onClick:g=>ie(p)},{default:v(()=>[...l[5]||(l[5]=[w("删除",-1)])]),_:1},8,["disabled","onClick"])])]),t.msgtype==="image"||t.msgtype==="video"||t.msgtype==="file"?(u(),f(C,{key:0},[a("div",Me,[c(d,{size:"small",icon:h(X),loading:V.value===p,disabled:e.disabled||y.value,onClick:g=>q(p,t.msgtype)},{default:v(()=>[w(o(B(t)?"重新上传":"上传")+o(L(t.msgtype)),1)]),_:2},1032,["icon","loading","disabled","onClick"]),a("span",{class:G(B(t)?"asset-ready":"muted")},o(O(t)),3)]),a("small",ze,o(t.msgtype==="image"?"JPG / PNG,最多 10MB。":t.msgtype==="video"?"MP4,最多 10MB。":"文件最多 20MB。")+"上传成功后由服务端保存素材;未上传完成不能提交。",1)],64)):t.msgtype==="link"?(u(),f(C,{key:1},[a("label",De,[l[6]||(l[6]=w("网页标题 ",-1)),a("span",null,o(h(N)(t.link.title))+"/128 字节",1)]),c(_,{modelValue:t.link.title,"onUpdate:modelValue":g=>t.link.title=g,disabled:e.disabled,placeholder:"必填:网页标题"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[8]||(l[8]=a("label",{class:"attachment-label"},"网页地址",-1)),c(_,{modelValue:t.link.url,"onUpdate:modelValue":g=>t.link.url=g,disabled:e.disabled,placeholder:"https://"},null,8,["modelValue","onUpdate:modelValue","disabled"]),a("label",je,[l[7]||(l[7]=w("网页描述 ",-1)),a("span",null,o(h(N)(t.link.desc))+"/512 字节",1)]),c(_,{modelValue:t.link.desc,"onUpdate:modelValue":g=>t.link.desc=g,disabled:e.disabled,type:"textarea",rows:2,placeholder:"选填:网页摘要"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[9]||(l[9]=a("label",{class:"attachment-label"},"网页封面地址",-1)),c(_,{modelValue:t.link.picurl,"onUpdate:modelValue":g=>t.link.picurl=g,disabled:e.disabled,placeholder:"选填:公网可访问的 HTTPS 图片地址"},null,8,["modelValue","onUpdate:modelValue","disabled"])],64)):t.msgtype==="miniprogram"?(u(),f(C,{key:2},[a("label",Le,[l[10]||(l[10]=w("小程序标题 ",-1)),a("span",null,o(h(N)(t.miniprogram.title))+"/64 字节",1)]),c(_,{modelValue:t.miniprogram.title,"onUpdate:modelValue":g=>t.miniprogram.title=g,disabled:e.disabled,placeholder:"必填:小程序标题"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[11]||(l[11]=a("label",{class:"attachment-label"},"AppID",-1)),c(_,{modelValue:t.miniprogram.appid,"onUpdate:modelValue":g=>t.miniprogram.appid=g,disabled:e.disabled,placeholder:"必填:小程序 AppID"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[12]||(l[12]=a("label",{class:"attachment-label"},"页面路径",-1)),c(_,{modelValue:t.miniprogram.page,"onUpdate:modelValue":g=>t.miniprogram.page=g,disabled:e.disabled,placeholder:"pages/index/index,可包含查询参数"},null,8,["modelValue","onUpdate:modelValue","disabled"]),a("div",Oe,[c(d,{size:"small",icon:h(X),loading:V.value===p,disabled:e.disabled||y.value,onClick:g=>q(p,"image")},{default:v(()=>[w(o(t.miniprogram.pic_asset_id?"更换封面":"上传小程序封面"),1)]),_:2},1032,["icon","loading","disabled","onClick"]),a("span",{class:G(B(t)?"asset-ready":"muted")},o(O(t)),3)]),l[13]||(l[13]=a("small",{class:"field-tip"},"JPG / PNG,最多 10MB。",-1))],64)):z("",!0),U.value[p]?(u(),f("div",Fe,o(U.value[p])+" 请重试上传,原素材未被替换。",1)):z("",!0)]))),128)),a("input",{ref_key:"fileInput",ref:r,class:"file-input",type:"file",accept:R.value,onChange:ne},null,40,Ge)]),a("aside",We,[a("div",Re,[l[14]||(l[14]=a("span",null,"‹",-1)),a("strong",null,o(e.employeeName||"接待员工"),1),l[15]||(l[15]=a("span",null,"···",-1))]),a("div",Je,[l[19]||(l[19]=a("div",{class:"preview-time"},"添加成功 · 预览示例",-1)),e.modelValue.text?(u(),f("div",He,[a("span",Ke,o((e.employeeName||"员").slice(0,1)),1),a("div",Ze,o(h($e)(e.modelValue.text,e.employeeName)),1)])):z("",!0),(u(!0),f(C,null,M(e.modelValue.attachments,(t,p)=>(u(),f("div",{key:p,class:"chat-row"},[a("span",qe,o((e.employeeName||"员").slice(0,1)),1),a("div",Xe,[t.msgtype==="image"?(u(),f(C,{key:0},[j(t)?(u(),f("img",{key:0,src:j(t),alt:"欢迎语图片预览"},null,8,Ye)):(u(),f("div",Qe,[c(P,null,{default:v(()=>[c(h(_e))]),_:1}),a("span",null,o(B(t)?"已保存的图片素材":"待上传图片"),1)]))],64)):t.msgtype==="link"?(u(),f(C,{key:1},[a("strong",null,o(t.link.title||"网页标题"),1),a("p",null,o(t.link.desc||"网页摘要"),1),l[16]||(l[16]=a("small",null,"网页链接",-1))],64)):t.msgtype==="miniprogram"?(u(),f(C,{key:2},[l[18]||(l[18]=a("small",null,"小程序",-1)),a("strong",null,o(t.miniprogram.title||"小程序标题"),1),j(t)?(u(),f("img",{key:0,src:j(t),alt:"小程序封面预览"},null,8,el)):(u(),f("div",ll,[c(P,null,{default:v(()=>[c(h(ve))]),_:1}),l[17]||(l[17]=a("span",null,"小程序封面",-1))]))],64)):(u(),f(C,{key:3},[c(P,{class:"file-icon"},{default:v(()=>[t.msgtype==="video"?(u(),F(h(ye),{key:0})):(u(),F(h(ke),{key:1}))]),_:2},1024),a("strong",null,o(O(t)),1),a("small",null,o(L(t.msgtype)),1)],64))])]))),128)),!e.modelValue.text&&!e.modelValue.attachments.length?(u(),f("div",tl,"编辑内容后在这里预览")):z("",!0)]),l[20]||(l[20]=a("div",{class:"phone-input"},[a("span",null,"⊕"),a("span",{class:"phone-input__blank"}),a("span",null,"☺")],-1)),l[21]||(l[21]=a("p",{class:"preview-note"},"仅为排版示意,昵称与时间会替换为实际值。",-1))])])}}}),sl=Ve(al,[["__scopeId","data-v-1e5d0e03"]]),pl=Object.freeze(Object.defineProperty({__proto__:null,default:sl},Symbol.toStringTag,{value:"Module"}));export{sl as W,cl as a,pl as b,ul as c,Ce as d,W as i,$e as p,ml as s,xe as t,rl as v,ol as w}; +import{o as de,by as oe,q as u,r as f,s as a,v as c,bZ as re,D as v,F as C,G as M,T as o,K as ue,L as w,O as F,u as h,aA as me,ae as G,$ as ce,cx as pe,Z as fe,_ as be,P as z,cX as X,w as ge,bF as _e,bK as ve,cY as ye,bI as ke,M as E,p as Y,n as Q,E as we}from"./.pnpm-CyuAWpdG.js";import{A as he}from"./first_visit-B5IgLifl.js";import{_ as Ve}from"./index-Bkarz3gO.js";const ol=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"],xe=[{label:"客户昵称",value:"{customer_name}"},{label:"员工昵称",value:"{employee_name}"},{label:"添加时间",value:"{add_time}"}],N=e=>new TextEncoder().encode(e).length;function rl(e){return e.trim()?/[\p{C}\u2028\u2029]/u.test(e)?"标签名称不能包含换行、控制字符或不可见格式字符":Array.from(e.trim()).length>30?"标签名称最多 30 个字符":"":"请输入自定义标签名称"}function Ce(){return{reception_mode:"always",reception_schedule:[],backup_member_admin_ids:[],tags_enabled:!1,tag_ids:[],remark_enabled:!1,remark_template:"{customer_name}",description_enabled:!1,description:"",welcome_mode:"default",welcome:{text:"",attachments:[]},welcome_schedule_enabled:!1,welcome_schedule:[]}}function ul(e){var m,n;const b=Ce();if(!e)return b;const s=JSON.parse(JSON.stringify(e));return{reception_mode:s.reception_mode==="scheduled"?"scheduled":"always",reception_schedule:(s.reception_schedule||[]).map(({weekdays:r,start:$,end:V,member_admin_ids:y})=>({weekdays:[...r],start:$,end:V,member_admin_ids:y.map(Number)})),backup_member_admin_ids:(s.backup_member_admin_ids||[]).map(Number),tags_enabled:!!s.tags_enabled,tag_ids:[...s.tag_ids||[]],remark_enabled:!!s.remark_enabled,remark_template:s.remark_template??b.remark_template,description_enabled:!!s.description_enabled,description:s.description||"",welcome_mode:s.welcome_mode||"default",welcome:{text:((m=s.welcome)==null?void 0:m.text)||"",attachments:((n=s.welcome)==null?void 0:n.attachments)||[]},welcome_schedule_enabled:!!s.welcome_schedule_enabled,welcome_schedule:(s.welcome_schedule||[]).map(({weekdays:r,start:$,end:V,text:y,attachments:U})=>({weekdays:[...r],start:$,end:V,text:y||"",attachments:U||[]}))}}function ml(e){return{...e,tags_enabled:e.tags_enabled?1:0,remark_enabled:e.remark_enabled?1:0,description_enabled:e.description_enabled?1:0,welcome_schedule_enabled:e.welcome_schedule_enabled?1:0}}function $e(e,b="小陈",s){const m=new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Shanghai",year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date),n=e.replace(/\{(customer_name|employee_name|add_time)\}/g,r=>({"{customer_name}":"张女士","{employee_name}":b,"{add_time}":m})[r]||r);return s?Array.from(n).slice(0,s).join(""):n}function W(e){try{return["https:","http:"].includes(new URL(e).protocol)}catch{return!1}}function ee(e,b){return!e.weekdays.length||e.weekdays.some(s=>s<1||s>7)?`${b}请选择星期`:!/^(?:[01]\d|2[0-3]):[0-5]\d$/.test(e.start)||!/^(?:[01]\d|2[0-3]):[0-5]\d$/.test(e.end)?`${b}请填写有效的起止时间`:e.start===e.end?`${b}开始与结束时间不能相同,全天接待请选择全天模式`:""}function le(e,b,s=!0){if(Array.from(e.text).length>1200)return`${b}正文不能超过 1200 字`;if(N(e.text)>4e3)return`${b}正文不能超过 4000 UTF-8 字节,请减少表情或文字`;if(e.attachments.length>9)return`${b}最多添加 9 个附件`;if(s&&!e.text.trim()&&!e.attachments.length)return`${b}请填写正文或添加附件`;for(const[m,n]of e.attachments.entries()){const r=`${b}第 ${m+1} 个附件:`;switch(n.msgtype){case"image":if(!n.image.asset_id&&!W(n.image.pic_url||""))return r+"请上传图片或填写有效图片地址";break;case"video":if(!n.video.asset_id)return r+"请先上传视频";break;case"file":if(!n.file.asset_id)return r+"请先上传文件";break;case"link":if(!n.link.title.trim()||!W(n.link.url))return r+"请填写网页标题和有效的 HTTP/HTTPS 链接";if(N(n.link.title)>128||N(n.link.desc)>512)return r+"网页标题限 128 字节,描述限 512 字节";if(n.link.picurl&&!W(n.link.picurl))return r+"网页封面地址无效";break;case"miniprogram":if(!n.miniprogram.title.trim()||!n.miniprogram.appid.trim()||!n.miniprogram.page.trim()||!n.miniprogram.pic_asset_id)return r+"请填写小程序标题、AppID、页面路径并上传封面";if(N(n.miniprogram.title)>64)return r+"小程序标题不能超过 64 字节";break}}return""}function Ue(e){const b=new Set;for(const s of e){const[m,n]=s.start.split(":").map(Number),[r,$]=s.end.split(":").map(Number),V=m*60+n,y=(r*60+$-V+1440)%1440;for(const U of new Set(s.weekdays))for(let T=0;Tb.includes(m)))return"备用成员不能与主接待成员重复";if(e.reception_schedule.length>30||e.welcome_schedule.length>30)return"每类时段最多添加 30 条";if(e.reception_mode==="scheduled"){if(!e.reception_schedule.length)return"按时段接待至少需要一个接待时段";if(!e.backup_member_admin_ids.length)return"按时段接待至少需要一名备用成员,以承接非接待时段的客户"}for(const[m,n]of e.reception_schedule.entries()){const r=ee(n,`接待时段 ${m+1}:`);if(r)return r;if(!n.member_admin_ids.length)return`接待时段 ${m+1}:请至少选择一名成员`;if(n.member_admin_ids.some($=>!b.includes($)))return`接待时段 ${m+1}:成员必须来自主接待成员,请重新选择`}if(e.tags_enabled&&!e.tag_ids.length)return"启用客户标签后,请选择一个企业微信标签,或创建自定义标签";if(e.tag_ids.length>1)return"客户标签只能选择一个,请重新选择或清空原标签";if(e.remark_enabled&&!e.remark_template.trim())return"请填写客户备注模板";if(Array.from(e.remark_template).length>200)return"客户备注模板不能超过 200 字";if(e.description_enabled&&!e.description.trim())return"请填写客户描述";if(Array.from(e.description).length>150)return"客户描述不能超过 150 字";const s=le(e.welcome,"基础渠道欢迎语:",e.welcome_mode==="channel");if(s)return s;if(e.welcome_mode==="channel"&&e.welcome_schedule_enabled&&!e.welcome_schedule.length)return"请至少添加一个分时欢迎语时段";for(const[m,n]of e.welcome_schedule.entries()){const r=ee(n,`欢迎语时段 ${m+1}:`)||le(n,`欢迎语时段 ${m+1}:`);if(r)return r}return Ue(e.welcome_schedule)?"分时欢迎语的时间范围不能重叠(跨午夜时段归属开始日)":""}const Ae={class:"welcome-editor"},Ne={class:"welcome-editor__fields"},Te={class:"text-tools"},Ee={class:"emoji-grid"},Se=["onClick"],Be={class:"attachments-heading"},Pe={key:0,class:"attachment-empty"},Ie={class:"attachment-card__heading"},Me={class:"upload-field"},ze={class:"field-tip"},De={class:"attachment-label"},je={class:"attachment-label"},Le={class:"attachment-label"},Oe={class:"upload-field mini-upload"},Fe={key:3,role:"alert",class:"upload-error"},Ge=["accept"],We={class:"welcome-preview","aria-label":"欢迎语手机预览"},Re={class:"phone-heading"},Je={class:"phone-content"},He={key:0,class:"chat-row"},Ke={class:"chat-avatar"},Ze={class:"chat-bubble"},qe={class:"chat-avatar"},Xe={class:"chat-bubble attachment-preview"},Ye=["src"],Qe={key:1,class:"media-placeholder"},el=["src"],ll={key:1,class:"media-placeholder"},tl={key:1,class:"preview-empty"},al=de({__name:"WelcomeMessageEditor",props:{modelValue:{},disabled:{type:Boolean},employeeName:{}},emits:["update:modelValue","busy"],setup(e,{emit:b}){const s=e,m=b,n=E(),r=E(),$=E({start:0,end:0}),V=E(-1),y=Y(()=>V.value>=0),U=E({}),T=E({}),I=E({index:0,type:"image"}),R=E("image/jpeg,image/png"),te=["😊","😀","👋","🌹","❤️","👍","🙏","🎉","☀️","✨","💐","🤝","💬","✅","🌿","🍀"],J=[{value:"image",label:"图片"},{value:"link",label:"网页"},{value:"miniprogram",label:"小程序"},{value:"video",label:"视频"},{value:"file",label:"文件"}],ae=Y(()=>Array.from(s.modelValue.text).length>1200||N(s.modelValue.text)>4e3);function H(i){m("update:modelValue",{...s.modelValue,text:i})}function D(){var l;const i=(l=n.value)==null?void 0:l.textarea;i&&($.value={start:i.selectionStart,end:i.selectionEnd})}async function K(i){var _,S,A,k;if(s.disabled)return;const{start:l,end:d}=$.value;H(s.modelValue.text.slice(0,l)+i+s.modelValue.text.slice(d)),await Q();const x=l+i.length;(S=(_=n.value)==null?void 0:_.textarea)==null||S.focus(),(k=(A=n.value)==null?void 0:A.textarea)==null||k.setSelectionRange(x,x),$.value={start:x,end:x}}function L(i){var l;return((l=J.find(d=>d.value===i))==null?void 0:l.label)||"附件"}function se(i){if(s.disabled||y.value||s.modelValue.attachments.length>=9)return;let l;i==="image"?l={msgtype:"image",image:{asset_id:""}}:i==="video"?l={msgtype:"video",video:{asset_id:""}}:i==="file"?l={msgtype:"file",file:{asset_id:""}}:i==="link"?l={msgtype:"link",link:{title:"",url:"",desc:"",picurl:""}}:l={msgtype:"miniprogram",miniprogram:{title:"",appid:"",page:"",pic_asset_id:""}},m("update:modelValue",{...s.modelValue,attachments:[...s.modelValue.attachments,l]})}function ie(i){U.value={},m("update:modelValue",{...s.modelValue,attachments:s.modelValue.attachments.filter((l,d)=>d!==i)})}function Z(i,l){const d=[...s.modelValue.attachments];[d[i],d[i+l]]=[d[i+l],d[i]],U.value={},m("update:modelValue",{...s.modelValue,attachments:d})}function B(i){return i.msgtype==="image"?i.image.asset_id||"":i.msgtype==="video"?i.video.asset_id:i.msgtype==="file"?i.file.asset_id:i.msgtype==="miniprogram"?i.miniprogram.pic_asset_id:""}function O(i){var d;const l=B(i);return l?((d=T.value[l])==null?void 0:d.name)||`已保存素材 ${l.slice(-10)}`:i.msgtype==="image"&&i.image.pic_url?"已保存的企微图片":"尚未上传"}function j(i){var l;return((l=T.value[B(i)])==null?void 0:l.url)||""}async function q(i,l){var d;I.value={index:i,type:l},R.value=l==="image"?".jpg,.jpeg,.png":l==="video"?".mp4":"*",await Q(),(d=r.value)==null||d.click()}async function ne(i){var P;const l=i.target,d=(P=l.files)==null?void 0:P[0];if(l.value="",!d)return;const{index:x,type:_}=I.value,S=_==="file"?20:10;let A="";if(d.size<=5||d.size>S*1024*1024?A=`文件必须大于 5 字节且不超过 ${S}MB`:_==="image"&&!/\.(jpe?g|png)$/i.test(d.name)?A="图片仅支持 JPG / PNG 格式":_==="video"&&!/\.mp4$/i.test(d.name)&&(A="视频仅支持 MP4 格式"),A){U.value[x]=A;return}const k=s.modelValue.attachments[x];if(k){V.value=x,m("busy",!0),delete U.value[x];try{const t=await he(d,_);if(!(t!=null&&t.asset_id))throw new Error("上传接口未返回素材 ID");const p=String(t.asset_id);T.value[p]={name:t.name||d.name,url:_==="image"?URL.createObjectURL(d):void 0},k.msgtype==="image"?k.image={asset_id:p}:k.msgtype==="video"?k.video.asset_id=p:k.msgtype==="file"?k.file.asset_id=p:k.msgtype==="miniprogram"&&(k.miniprogram.pic_asset_id=p),we.success("素材已上传")}catch(t){U.value[x]=t instanceof Error?t.message:typeof t=="string"?t:"素材上传失败"}finally{V.value=-1,m("busy",!1)}}}return oe(()=>{Object.values(T.value).forEach(i=>{i.url&&URL.revokeObjectURL(i.url)}),m("busy",!1)}),(i,l)=>{const d=ue,x=re,_=me,S=be,A=fe,k=ce,P=ge;return u(),f("div",Ae,[a("div",Ne,[a("div",Te,[c(x,{placement:"bottom-start",trigger:"click",width:240,disabled:e.disabled},{reference:v(()=>[c(d,{size:"small",disabled:e.disabled},{default:v(()=>[...l[0]||(l[0]=[w("☺ 插入表情",-1)])]),_:1},8,["disabled"])]),default:v(()=>[a("div",Ee,[(u(),f(C,null,M(te,t=>a("button",{key:t,type:"button",onClick:p=>K(t)},o(t),9,Se)),64))])]),_:1},8,["disabled"]),(u(!0),f(C,null,M(h(xe),t=>(u(),F(d,{key:t.value,size:"small",disabled:e.disabled,onClick:p=>K(t.value)},{default:v(()=>[w(o(t.label),1)]),_:2},1032,["disabled","onClick"]))),128))]),c(_,{ref_key:"textInput",ref:n,"model-value":e.modelValue.text,type:"textarea",rows:6,disabled:e.disabled,placeholder:"请输入欢迎语,也可插入客户昵称、员工昵称和添加日期","onUpdate:modelValue":H,onSelect:D,onKeyup:D,onClick:D,onBlur:D},null,8,["model-value","disabled"]),a("div",{class:G(["text-count",{"is-error":ae.value}])},o(Array.from(e.modelValue.text).length)+"/1200 字 · "+o(h(N)(e.modelValue.text))+"/4000 字节",3),a("div",Be,[a("strong",null,[l[1]||(l[1]=w("附件 ",-1)),a("span",null,o(e.modelValue.attachments.length)+"/9",1)]),c(k,{disabled:e.disabled||e.modelValue.attachments.length>=9||y.value,onCommand:se},{dropdown:v(()=>[c(A,null,{default:v(()=>[(u(),f(C,null,M(J,t=>c(S,{key:t.value,command:t.value},{default:v(()=>[w(o(t.label),1)]),_:2},1032,["command"])),64))]),_:1})]),default:v(()=>[c(d,{size:"small",disabled:e.disabled||e.modelValue.attachments.length>=9||y.value,icon:h(pe)},{default:v(()=>[...l[2]||(l[2]=[w("添加附件",-1)])]),_:1},8,["disabled","icon"])]),_:1},8,["disabled"])]),e.modelValue.attachments.length?z("",!0):(u(),f("div",Pe,"可添加图片、网页、小程序、视频或文件。")),(u(!0),f(C,null,M(e.modelValue.attachments,(t,p)=>(u(),f("div",{key:p,class:"attachment-card"},[a("div",Ie,[a("strong",null,o(p+1)+". "+o(L(t.msgtype)),1),a("div",null,[c(d,{text:"",size:"small",disabled:e.disabled||y.value||p===0,onClick:g=>Z(p,-1)},{default:v(()=>[...l[3]||(l[3]=[w("上移",-1)])]),_:1},8,["disabled","onClick"]),c(d,{text:"",size:"small",disabled:e.disabled||y.value||p===e.modelValue.attachments.length-1,onClick:g=>Z(p,1)},{default:v(()=>[...l[4]||(l[4]=[w("下移",-1)])]),_:1},8,["disabled","onClick"]),c(d,{text:"",type:"danger",size:"small",disabled:e.disabled||y.value,onClick:g=>ie(p)},{default:v(()=>[...l[5]||(l[5]=[w("删除",-1)])]),_:1},8,["disabled","onClick"])])]),t.msgtype==="image"||t.msgtype==="video"||t.msgtype==="file"?(u(),f(C,{key:0},[a("div",Me,[c(d,{size:"small",icon:h(X),loading:V.value===p,disabled:e.disabled||y.value,onClick:g=>q(p,t.msgtype)},{default:v(()=>[w(o(B(t)?"重新上传":"上传")+o(L(t.msgtype)),1)]),_:2},1032,["icon","loading","disabled","onClick"]),a("span",{class:G(B(t)?"asset-ready":"muted")},o(O(t)),3)]),a("small",ze,o(t.msgtype==="image"?"JPG / PNG,最多 10MB。":t.msgtype==="video"?"MP4,最多 10MB。":"文件最多 20MB。")+"上传成功后由服务端保存素材;未上传完成不能提交。",1)],64)):t.msgtype==="link"?(u(),f(C,{key:1},[a("label",De,[l[6]||(l[6]=w("网页标题 ",-1)),a("span",null,o(h(N)(t.link.title))+"/128 字节",1)]),c(_,{modelValue:t.link.title,"onUpdate:modelValue":g=>t.link.title=g,disabled:e.disabled,placeholder:"必填:网页标题"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[8]||(l[8]=a("label",{class:"attachment-label"},"网页地址",-1)),c(_,{modelValue:t.link.url,"onUpdate:modelValue":g=>t.link.url=g,disabled:e.disabled,placeholder:"https://"},null,8,["modelValue","onUpdate:modelValue","disabled"]),a("label",je,[l[7]||(l[7]=w("网页描述 ",-1)),a("span",null,o(h(N)(t.link.desc))+"/512 字节",1)]),c(_,{modelValue:t.link.desc,"onUpdate:modelValue":g=>t.link.desc=g,disabled:e.disabled,type:"textarea",rows:2,placeholder:"选填:网页摘要"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[9]||(l[9]=a("label",{class:"attachment-label"},"网页封面地址",-1)),c(_,{modelValue:t.link.picurl,"onUpdate:modelValue":g=>t.link.picurl=g,disabled:e.disabled,placeholder:"选填:公网可访问的 HTTPS 图片地址"},null,8,["modelValue","onUpdate:modelValue","disabled"])],64)):t.msgtype==="miniprogram"?(u(),f(C,{key:2},[a("label",Le,[l[10]||(l[10]=w("小程序标题 ",-1)),a("span",null,o(h(N)(t.miniprogram.title))+"/64 字节",1)]),c(_,{modelValue:t.miniprogram.title,"onUpdate:modelValue":g=>t.miniprogram.title=g,disabled:e.disabled,placeholder:"必填:小程序标题"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[11]||(l[11]=a("label",{class:"attachment-label"},"AppID",-1)),c(_,{modelValue:t.miniprogram.appid,"onUpdate:modelValue":g=>t.miniprogram.appid=g,disabled:e.disabled,placeholder:"必填:小程序 AppID"},null,8,["modelValue","onUpdate:modelValue","disabled"]),l[12]||(l[12]=a("label",{class:"attachment-label"},"页面路径",-1)),c(_,{modelValue:t.miniprogram.page,"onUpdate:modelValue":g=>t.miniprogram.page=g,disabled:e.disabled,placeholder:"pages/index/index,可包含查询参数"},null,8,["modelValue","onUpdate:modelValue","disabled"]),a("div",Oe,[c(d,{size:"small",icon:h(X),loading:V.value===p,disabled:e.disabled||y.value,onClick:g=>q(p,"image")},{default:v(()=>[w(o(t.miniprogram.pic_asset_id?"更换封面":"上传小程序封面"),1)]),_:2},1032,["icon","loading","disabled","onClick"]),a("span",{class:G(B(t)?"asset-ready":"muted")},o(O(t)),3)]),l[13]||(l[13]=a("small",{class:"field-tip"},"JPG / PNG,最多 10MB。",-1))],64)):z("",!0),U.value[p]?(u(),f("div",Fe,o(U.value[p])+" 请重试上传,原素材未被替换。",1)):z("",!0)]))),128)),a("input",{ref_key:"fileInput",ref:r,class:"file-input",type:"file",accept:R.value,onChange:ne},null,40,Ge)]),a("aside",We,[a("div",Re,[l[14]||(l[14]=a("span",null,"‹",-1)),a("strong",null,o(e.employeeName||"接待员工"),1),l[15]||(l[15]=a("span",null,"···",-1))]),a("div",Je,[l[19]||(l[19]=a("div",{class:"preview-time"},"添加成功 · 预览示例",-1)),e.modelValue.text?(u(),f("div",He,[a("span",Ke,o((e.employeeName||"员").slice(0,1)),1),a("div",Ze,o(h($e)(e.modelValue.text,e.employeeName)),1)])):z("",!0),(u(!0),f(C,null,M(e.modelValue.attachments,(t,p)=>(u(),f("div",{key:p,class:"chat-row"},[a("span",qe,o((e.employeeName||"员").slice(0,1)),1),a("div",Xe,[t.msgtype==="image"?(u(),f(C,{key:0},[j(t)?(u(),f("img",{key:0,src:j(t),alt:"欢迎语图片预览"},null,8,Ye)):(u(),f("div",Qe,[c(P,null,{default:v(()=>[c(h(_e))]),_:1}),a("span",null,o(B(t)?"已保存的图片素材":"待上传图片"),1)]))],64)):t.msgtype==="link"?(u(),f(C,{key:1},[a("strong",null,o(t.link.title||"网页标题"),1),a("p",null,o(t.link.desc||"网页摘要"),1),l[16]||(l[16]=a("small",null,"网页链接",-1))],64)):t.msgtype==="miniprogram"?(u(),f(C,{key:2},[l[18]||(l[18]=a("small",null,"小程序",-1)),a("strong",null,o(t.miniprogram.title||"小程序标题"),1),j(t)?(u(),f("img",{key:0,src:j(t),alt:"小程序封面预览"},null,8,el)):(u(),f("div",ll,[c(P,null,{default:v(()=>[c(h(ve))]),_:1}),l[17]||(l[17]=a("span",null,"小程序封面",-1))]))],64)):(u(),f(C,{key:3},[c(P,{class:"file-icon"},{default:v(()=>[t.msgtype==="video"?(u(),F(h(ye),{key:0})):(u(),F(h(ke),{key:1}))]),_:2},1024),a("strong",null,o(O(t)),1),a("small",null,o(L(t.msgtype)),1)],64))])]))),128)),!e.modelValue.text&&!e.modelValue.attachments.length?(u(),f("div",tl,"编辑内容后在这里预览")):z("",!0)]),l[20]||(l[20]=a("div",{class:"phone-input"},[a("span",null,"⊕"),a("span",{class:"phone-input__blank"}),a("span",null,"☺")],-1)),l[21]||(l[21]=a("p",{class:"preview-note"},"仅为排版示意,昵称与时间会替换为实际值。",-1))])])}}}),sl=Ve(al,[["__scopeId","data-v-1e5d0e03"]]),pl=Object.freeze(Object.defineProperty({__proto__:null,default:sl},Symbol.toStringTag,{value:"Module"}));export{sl as W,cl as a,pl as b,ul as c,Ce as d,W as i,$e as p,ml as s,xe as t,rl as v,ol as w}; diff --git a/server/public/admin/assets/account-adjust-BZWMca9h.js b/server/public/admin/assets/account-adjust-BZWMca9h.js deleted file mode 100644 index 4428ae72d..000000000 --- a/server/public/admin/assets/account-adjust-BZWMca9h.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./account-adjust.vue_vue_type_script_setup_true_lang-B4ND4Tl6.js";import"./.pnpm-CyuAWpdG.js";import"./index-BnfLT5cB.js";import"./index-Dxvz9lb1.js";export{o as default}; diff --git a/server/public/admin/assets/account-adjust-rKw30abd.js b/server/public/admin/assets/account-adjust-rKw30abd.js new file mode 100644 index 000000000..b9fc9ad5b --- /dev/null +++ b/server/public/admin/assets/account-adjust-rKw30abd.js @@ -0,0 +1 @@ +import{_ as o}from"./account-adjust.vue_vue_type_script_setup_true_lang-CQST3icF.js";import"./.pnpm-CyuAWpdG.js";import"./index-CS5Wg0xx.js";import"./index-Bkarz3gO.js";export{o as default}; diff --git a/server/public/admin/assets/account-adjust.vue_vue_type_script_setup_true_lang-B4ND4Tl6.js b/server/public/admin/assets/account-adjust.vue_vue_type_script_setup_true_lang-CQST3icF.js similarity index 97% rename from server/public/admin/assets/account-adjust.vue_vue_type_script_setup_true_lang-B4ND4Tl6.js rename to server/public/admin/assets/account-adjust.vue_vue_type_script_setup_true_lang-CQST3icF.js index 6f1f92dc6..c432edcdb 100644 --- a/server/public/admin/assets/account-adjust.vue_vue_type_script_setup_true_lang-B4ND4Tl6.js +++ b/server/public/admin/assets/account-adjust.vue_vue_type_script_setup_true_lang-CQST3icF.js @@ -1 +1 @@ -import{o as N,R as v,q as h,O as B,D as l,s as j,v as t,bd as D,u as n,bb as F,L as u,T as w,bf as I,bq as S,aA as T,a8 as y,aC as U,p as A}from"./.pnpm-CyuAWpdG.js";import{_ as G}from"./index-BnfLT5cB.js";import{j as V}from"./index-Dxvz9lb1.js";const L={class:"pr-8"},H=N({__name:"account-adjust",props:{show:{type:Boolean,required:!0},value:{type:[Number,String],required:!0}},emits:["update:show","confirm"],setup(d,{emit:k}){const s=y(),i=d,f=k,o=U({action:1,num:"",remark:""}),m=y(),c=A(()=>Number(i.value)+Number(o.num)*(o.action==1?1:-1)),R={num:[{required:!0,message:"请输入调整的金额"}]},g=e=>{if(e.includes("-"))return V.msgError("请输入正整数");o.num=e},x=async()=>{var e;await((e=s.value)==null?void 0:e.validate()),f("confirm",o)},C=()=>{var e;f("update:show",!1),(e=s.value)==null||e.resetFields()};return v(()=>i.show,e=>{var a,r;e?(a=m.value)==null||a.open():(r=m.value)==null||r.close()}),v(c,e=>{e<0&&(V.msgError("调整后余额需大于0"),o.num="")}),(e,a)=>{const r=F,_=S,E=I,b=T,q=D;return h(),B(G,{ref_key:"popupRef",ref:m,title:"余额调整",width:"500px",onConfirm:x,async:!0,onClose:C},{default:l(()=>[j("div",L,[t(q,{ref_key:"formRef",ref:s,model:n(o),"label-width":"120px",rules:R},{default:l(()=>[t(r,{label:"当前余额"},{default:l(()=>[u("¥ "+w(d.value),1)]),_:1}),t(r,{label:"余额增减",required:"",prop:"action"},{default:l(()=>[t(E,{modelValue:n(o).action,"onUpdate:modelValue":a[0]||(a[0]=p=>n(o).action=p)},{default:l(()=>[t(_,{value:1},{default:l(()=>[...a[2]||(a[2]=[u("增加余额",-1)])]),_:1}),t(_,{value:2},{default:l(()=>[...a[3]||(a[3]=[u("扣减余额",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"调整余额",prop:"num"},{default:l(()=>[t(b,{"model-value":n(o).num,placeholder:"请输入调整的金额",type:"number",onInput:g},null,8,["model-value"])]),_:1}),t(r,{label:"调整后余额"},{default:l(()=>[u(" ¥ "+w(n(c)),1)]),_:1}),t(r,{label:"备注",prop:"remark"},{default:l(()=>[t(b,{modelValue:n(o).remark,"onUpdate:modelValue":a[1]||(a[1]=p=>n(o).remark=p),type:"textarea",rows:4},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},512)}}});export{H as _}; +import{o as N,R as v,q as h,O as B,D as l,s as j,v as t,bd as D,u as n,bb as F,L as u,T as w,bf as I,bq as S,aA as T,a8 as y,aC as U,p as A}from"./.pnpm-CyuAWpdG.js";import{_ as G}from"./index-CS5Wg0xx.js";import{j as V}from"./index-Bkarz3gO.js";const L={class:"pr-8"},H=N({__name:"account-adjust",props:{show:{type:Boolean,required:!0},value:{type:[Number,String],required:!0}},emits:["update:show","confirm"],setup(d,{emit:k}){const s=y(),i=d,f=k,o=U({action:1,num:"",remark:""}),m=y(),c=A(()=>Number(i.value)+Number(o.num)*(o.action==1?1:-1)),R={num:[{required:!0,message:"请输入调整的金额"}]},g=e=>{if(e.includes("-"))return V.msgError("请输入正整数");o.num=e},x=async()=>{var e;await((e=s.value)==null?void 0:e.validate()),f("confirm",o)},C=()=>{var e;f("update:show",!1),(e=s.value)==null||e.resetFields()};return v(()=>i.show,e=>{var a,r;e?(a=m.value)==null||a.open():(r=m.value)==null||r.close()}),v(c,e=>{e<0&&(V.msgError("调整后余额需大于0"),o.num="")}),(e,a)=>{const r=F,_=S,E=I,b=T,q=D;return h(),B(G,{ref_key:"popupRef",ref:m,title:"余额调整",width:"500px",onConfirm:x,async:!0,onClose:C},{default:l(()=>[j("div",L,[t(q,{ref_key:"formRef",ref:s,model:n(o),"label-width":"120px",rules:R},{default:l(()=>[t(r,{label:"当前余额"},{default:l(()=>[u("¥ "+w(d.value),1)]),_:1}),t(r,{label:"余额增减",required:"",prop:"action"},{default:l(()=>[t(E,{modelValue:n(o).action,"onUpdate:modelValue":a[0]||(a[0]=p=>n(o).action=p)},{default:l(()=>[t(_,{value:1},{default:l(()=>[...a[2]||(a[2]=[u("增加余额",-1)])]),_:1}),t(_,{value:2},{default:l(()=>[...a[3]||(a[3]=[u("扣减余额",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"调整余额",prop:"num"},{default:l(()=>[t(b,{"model-value":n(o).num,placeholder:"请输入调整的金额",type:"number",onInput:g},null,8,["model-value"])]),_:1}),t(r,{label:"调整后余额"},{default:l(()=>[u(" ¥ "+w(n(c)),1)]),_:1}),t(r,{label:"备注",prop:"remark"},{default:l(()=>[t(b,{modelValue:n(o).remark,"onUpdate:modelValue":a[1]||(a[1]=p=>n(o).remark=p),type:"textarea",rows:4},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},512)}}});export{H as _}; diff --git a/server/public/admin/assets/account_cost-CKkKx2VX.js b/server/public/admin/assets/account_cost-CEn1CsUd.js similarity index 94% rename from server/public/admin/assets/account_cost-CKkKx2VX.js rename to server/public/admin/assets/account_cost-CEn1CsUd.js index 9184a3949..5d708beb4 100644 --- a/server/public/admin/assets/account_cost-CKkKx2VX.js +++ b/server/public/admin/assets/account_cost-CEn1CsUd.js @@ -1 +1 @@ -import{o as P,W as ie,ap as re,bp as pe,q as i,r as D,v as t,D as s,s as r,T as g,u as o,bj as ce,bd as ue,C as S,bb as me,bL as _e,aA as fe,bc as ve,K as ge,L as u,O as m,P as A,ac as h,bk as ye,bl as be,a1 as we,bn as he,a8 as Ce,M as F,p as ke,aC as xe,n as O}from"./.pnpm-CyuAWpdG.js";import{_ as Ve}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as Te,l as Ee,j as De,_ as Se}from"./index-Dxvz9lb1.js";import{p as Le,a as Re}from"./self_input_stats-CIFG1oqD.js";import{d as Ae}from"./department-DToZNvdH.js";import{u as Fe}from"./usePaging-CghUEVfD.js";import{_ as Oe}from"./cost-edit.vue_vue_type_script_setup_true_lang-C1_RZ-ed.js";import{_ as Pe}from"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-NXWg0oJL.js";import{u as $e}from"./useMediaSourceOptions-CerfJKnV.js";import{L as Me,u as Ue}from"./useListTimeFilter-7kq30CnT.js";import"./index-BnfLT5cB.js";const Be={class:"personal-account-cost-page"},Ie={class:"flex flex-wrap"},Ne={class:"w-1/2 md:w-1/3"},je={class:"text-4xl"},Ke={class:"w-1/2 md:w-1/3"},qe={class:"text-4xl"},ze={class:"dept-cell"},Qe={key:1},We={key:2,class:"text-gray-400"},Ge={class:"flex justify-end mt-4"},He=P({name:"personalAccountCost"}),Je=P({...He,setup(Xe){const $=ie(),y=Ce(),b=F(!1),C=F([]),{mediaSourceOptions:L,mediaSourceLoading:R,loadMediaSourceOptions:M,refreshMediaSourceOptions:k}=$e(),U={value:"id",label:"name",children:"children"},x=ke(()=>Ee("stats.self_input/overview")||""),B=()=>{x.value&&$.push(x.value)},l=xe({media_source:"",dept_id:void 0,remark:""}),{time_type:V,dateRange:T,resolve:I,handleTimeTypeChange:N,handleCustomDateChange:j,resetTimeFilter:K}=Ue("today"),{pager:d,getLists:_}=Fe({fetchFun:async n=>{const[e,c]=I();return Le({...n,start_date:e,end_date:c})},params:l}),f=()=>{d.page=1,_()},q=()=>N(f),z=()=>j(f),Q=()=>{K(),l.media_source="",l.dept_id=void 0,l.remark="",d.page=1,d.size=15,_()},W=n=>{n&&k()},G=async()=>{await k(),_()},H=async()=>{var n;await k(),b.value=!0,await O(),(n=y.value)==null||n.open("add")},J=async n=>{var e,c;b.value=!0,await O(),(e=y.value)==null||e.open("edit"),(c=y.value)==null||c.setFormData(n)},X=async n=>{await De.confirm("确定删除该账户消耗记录?"),await Re({id:n}),_()},Y=async()=>{try{const n=await Ae({apply_data_scope:1});Array.isArray(n)&&(C.value=n)}catch{C.value=[]}};return re(async()=>{Y(),M(),await _()}),(n,e)=>{const c=ce,Z=_e,w=me,ee=fe,v=ge,te=ue,ae=Te,p=be,oe=we,se=ye,ne=Ve,E=pe("perms"),le=he;return i(),D("div",Be,[t(c,{class:"!border-none mb-4",shadow:"never"},{default:s(()=>[r("div",Ie,[r("div",Ne,[e[7]||(e[7]=r("div",{class:"leading-10"},"当前筛选天数",-1)),r("div",je,g(o(d).extend.days_count??0),1)]),r("div",Ke,[e[8]||(e[8]=r("div",{class:"leading-10"},"累计账户消耗 (元)",-1)),r("div",qe,"¥"+g(o(d).extend.total_amount??"0.00"),1)])])]),_:1}),t(c,{class:"!border-none",shadow:"never"},{default:s(()=>[t(te,{inline:!0,model:o(l),class:"stats-filter-form"},{default:s(()=>[t(Me,{"time-type":o(V),"onUpdate:timeType":e[0]||(e[0]=a=>S(V)?V.value=a:null),"date-range":o(T),"onUpdate:dateRange":e[1]||(e[1]=a=>S(T)?T.value=a:null),onTimeTypeChange:q,onCustomChange:z},null,8,["time-type","date-range"]),t(w,{label:"部门"},{default:s(()=>[t(Z,{modelValue:o(l).dept_id,"onUpdate:modelValue":e[2]||(e[2]=a=>o(l).dept_id=a),data:o(C),"node-key":"id",props:U,"default-expand-all":!0,"check-strictly":"",placeholder:"全部部门",clearable:"",filterable:"",class:"w-[220px]",onChange:f},null,8,["modelValue","data"])]),_:1}),t(w,{label:"自媒体来源"},{default:s(()=>[t(Pe,{modelValue:o(l).media_source,"onUpdate:modelValue":e[3]||(e[3]=a=>o(l).media_source=a),options:o(L),loading:o(R),placeholder:"全部来源","allow-create":!1,"select-class":"w-[220px]",onChange:f,onVisibleChange:W},null,8,["modelValue","options","loading"])]),_:1}),t(w,{class:"w-[280px]",label:"备注/录入人"},{default:s(()=>[t(ee,{modelValue:o(l).remark,"onUpdate:modelValue":e[4]||(e[4]=a=>o(l).remark=a),placeholder:"备注 / 创建人",clearable:"",onKeyup:ve(f,["enter"])},null,8,["modelValue"])]),_:1}),t(w,null,{default:s(()=>[t(v,{type:"primary",loading:o(d).loading,onClick:f},{default:s(()=>[...e[9]||(e[9]=[u("查询",-1)])]),_:1},8,["loading"]),t(v,{onClick:Q},{default:s(()=>[...e[10]||(e[10]=[u("重置",-1)])]),_:1}),o(x)?(i(),m(v,{key:0,class:"ml-2",onClick:B},{default:s(()=>[...e[11]||(e[11]=[u("返回统计",-1)])]),_:1})):A("",!0)]),_:1})]),_:1},8,["model"])]),_:1}),t(c,{class:"!border-none mt-4",shadow:"never"},{default:s(()=>[r("div",null,[h((i(),m(v,{type:"primary",onClick:H},{icon:s(()=>[t(ae,{name:"el-icon-Plus"})]),default:s(()=>[e[12]||(e[12]=u(" 新增 ",-1))]),_:1})),[[E,["stats.personal_account_cost/add"]]])]),h((i(),m(se,{class:"mt-4",size:"large",data:o(d).lists},{default:s(()=>[t(p,{label:"日期",prop:"cost_date","min-width":"120"}),t(p,{label:"自媒体来源",prop:"media_source","min-width":"160","show-overflow-tooltip":""}),t(p,{label:"账户消耗","min-width":"120"},{default:s(({row:a})=>[u("¥"+g(a.amount),1)]),_:1}),t(p,{label:"备注",prop:"remark","min-width":"200","show-overflow-tooltip":""}),t(p,{label:"录入人",prop:"creator_name","min-width":"100"}),t(p,{label:"部门",prop:"dept_name","min-width":"140"},{default:s(({row:a})=>[a.dept_path?(i(),m(oe,{key:0,content:a.dept_path,placement:"top",effect:"dark"},{default:s(()=>[r("span",ze,g(a.dept_name||"未分配"),1)]),_:2},1032,["content"])):a.dept_name?(i(),D("span",Qe,g(a.dept_name),1)):(i(),D("span",We,"未分配"))]),_:1}),t(p,{label:"最后修改人",prop:"updater_name","min-width":"100"}),t(p,{label:"更新时间",prop:"update_time","min-width":"180"}),t(p,{label:"操作",width:"160",fixed:"right"},{default:s(({row:a})=>[h((i(),m(v,{type:"primary",link:"",onClick:de=>J(a)},{default:s(()=>[...e[13]||(e[13]=[u(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[E,["stats.personal_account_cost/edit"]]]),h((i(),m(v,{type:"danger",link:"",onClick:de=>X(a.id)},{default:s(()=>[...e[14]||(e[14]=[u(" 删除 ",-1)])]),_:1},8,["onClick"])),[[E,["stats.personal_account_cost/delete"]]])]),_:1})]),_:1},8,["data"])),[[le,o(d).loading]]),r("div",Ge,[t(ne,{modelValue:o(d),"onUpdate:modelValue":e[5]||(e[5]=a=>S(d)?d.value=a:null),onChange:o(_)},null,8,["modelValue","onChange"])])]),_:1}),o(b)?(i(),m(Oe,{key:0,ref_key:"editRef",ref:y,"media-source-options":o(L),"media-source-loading":o(R),onSuccess:G,onClose:e[6]||(e[6]=a=>b.value=!1)},null,8,["media-source-options","media-source-loading"])):A("",!0)])}}}),rt=Se(Je,[["__scopeId","data-v-1e1f4e9b"]]);export{rt as default}; +import{o as P,W as ie,ap as re,bp as pe,q as i,r as D,v as t,D as s,s as r,T as g,u as o,bj as ce,bd as ue,C as S,bb as me,bL as _e,aA as fe,bc as ve,K as ge,L as u,O as m,P as A,ac as h,bk as ye,bl as be,a1 as we,bn as he,a8 as Ce,M as F,p as ke,aC as xe,n as O}from"./.pnpm-CyuAWpdG.js";import{_ as Ve}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as Te,l as Ee,j as De,_ as Se}from"./index-Bkarz3gO.js";import{p as Le,a as Re}from"./self_input_stats-DXFvDfvT.js";import{d as Ae}from"./department-BeBGhsmA.js";import{u as Fe}from"./usePaging-CghUEVfD.js";import{_ as Oe}from"./cost-edit.vue_vue_type_script_setup_true_lang-D_BAJfJE.js";import{_ as Pe}from"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-NXWg0oJL.js";import{u as $e}from"./useMediaSourceOptions-DDX835sU.js";import{L as Me,u as Ue}from"./useListTimeFilter-F3VNdKVb.js";import"./index-CS5Wg0xx.js";const Be={class:"personal-account-cost-page"},Ie={class:"flex flex-wrap"},Ne={class:"w-1/2 md:w-1/3"},je={class:"text-4xl"},Ke={class:"w-1/2 md:w-1/3"},qe={class:"text-4xl"},ze={class:"dept-cell"},Qe={key:1},We={key:2,class:"text-gray-400"},Ge={class:"flex justify-end mt-4"},He=P({name:"personalAccountCost"}),Je=P({...He,setup(Xe){const $=ie(),y=Ce(),b=F(!1),C=F([]),{mediaSourceOptions:L,mediaSourceLoading:R,loadMediaSourceOptions:M,refreshMediaSourceOptions:k}=$e(),U={value:"id",label:"name",children:"children"},x=ke(()=>Ee("stats.self_input/overview")||""),B=()=>{x.value&&$.push(x.value)},l=xe({media_source:"",dept_id:void 0,remark:""}),{time_type:V,dateRange:T,resolve:I,handleTimeTypeChange:N,handleCustomDateChange:j,resetTimeFilter:K}=Ue("today"),{pager:d,getLists:_}=Fe({fetchFun:async n=>{const[e,c]=I();return Le({...n,start_date:e,end_date:c})},params:l}),f=()=>{d.page=1,_()},q=()=>N(f),z=()=>j(f),Q=()=>{K(),l.media_source="",l.dept_id=void 0,l.remark="",d.page=1,d.size=15,_()},W=n=>{n&&k()},G=async()=>{await k(),_()},H=async()=>{var n;await k(),b.value=!0,await O(),(n=y.value)==null||n.open("add")},J=async n=>{var e,c;b.value=!0,await O(),(e=y.value)==null||e.open("edit"),(c=y.value)==null||c.setFormData(n)},X=async n=>{await De.confirm("确定删除该账户消耗记录?"),await Re({id:n}),_()},Y=async()=>{try{const n=await Ae({apply_data_scope:1});Array.isArray(n)&&(C.value=n)}catch{C.value=[]}};return re(async()=>{Y(),M(),await _()}),(n,e)=>{const c=ce,Z=_e,w=me,ee=fe,v=ge,te=ue,ae=Te,p=be,oe=we,se=ye,ne=Ve,E=pe("perms"),le=he;return i(),D("div",Be,[t(c,{class:"!border-none mb-4",shadow:"never"},{default:s(()=>[r("div",Ie,[r("div",Ne,[e[7]||(e[7]=r("div",{class:"leading-10"},"当前筛选天数",-1)),r("div",je,g(o(d).extend.days_count??0),1)]),r("div",Ke,[e[8]||(e[8]=r("div",{class:"leading-10"},"累计账户消耗 (元)",-1)),r("div",qe,"¥"+g(o(d).extend.total_amount??"0.00"),1)])])]),_:1}),t(c,{class:"!border-none",shadow:"never"},{default:s(()=>[t(te,{inline:!0,model:o(l),class:"stats-filter-form"},{default:s(()=>[t(Me,{"time-type":o(V),"onUpdate:timeType":e[0]||(e[0]=a=>S(V)?V.value=a:null),"date-range":o(T),"onUpdate:dateRange":e[1]||(e[1]=a=>S(T)?T.value=a:null),onTimeTypeChange:q,onCustomChange:z},null,8,["time-type","date-range"]),t(w,{label:"部门"},{default:s(()=>[t(Z,{modelValue:o(l).dept_id,"onUpdate:modelValue":e[2]||(e[2]=a=>o(l).dept_id=a),data:o(C),"node-key":"id",props:U,"default-expand-all":!0,"check-strictly":"",placeholder:"全部部门",clearable:"",filterable:"",class:"w-[220px]",onChange:f},null,8,["modelValue","data"])]),_:1}),t(w,{label:"自媒体来源"},{default:s(()=>[t(Pe,{modelValue:o(l).media_source,"onUpdate:modelValue":e[3]||(e[3]=a=>o(l).media_source=a),options:o(L),loading:o(R),placeholder:"全部来源","allow-create":!1,"select-class":"w-[220px]",onChange:f,onVisibleChange:W},null,8,["modelValue","options","loading"])]),_:1}),t(w,{class:"w-[280px]",label:"备注/录入人"},{default:s(()=>[t(ee,{modelValue:o(l).remark,"onUpdate:modelValue":e[4]||(e[4]=a=>o(l).remark=a),placeholder:"备注 / 创建人",clearable:"",onKeyup:ve(f,["enter"])},null,8,["modelValue"])]),_:1}),t(w,null,{default:s(()=>[t(v,{type:"primary",loading:o(d).loading,onClick:f},{default:s(()=>[...e[9]||(e[9]=[u("查询",-1)])]),_:1},8,["loading"]),t(v,{onClick:Q},{default:s(()=>[...e[10]||(e[10]=[u("重置",-1)])]),_:1}),o(x)?(i(),m(v,{key:0,class:"ml-2",onClick:B},{default:s(()=>[...e[11]||(e[11]=[u("返回统计",-1)])]),_:1})):A("",!0)]),_:1})]),_:1},8,["model"])]),_:1}),t(c,{class:"!border-none mt-4",shadow:"never"},{default:s(()=>[r("div",null,[h((i(),m(v,{type:"primary",onClick:H},{icon:s(()=>[t(ae,{name:"el-icon-Plus"})]),default:s(()=>[e[12]||(e[12]=u(" 新增 ",-1))]),_:1})),[[E,["stats.personal_account_cost/add"]]])]),h((i(),m(se,{class:"mt-4",size:"large",data:o(d).lists},{default:s(()=>[t(p,{label:"日期",prop:"cost_date","min-width":"120"}),t(p,{label:"自媒体来源",prop:"media_source","min-width":"160","show-overflow-tooltip":""}),t(p,{label:"账户消耗","min-width":"120"},{default:s(({row:a})=>[u("¥"+g(a.amount),1)]),_:1}),t(p,{label:"备注",prop:"remark","min-width":"200","show-overflow-tooltip":""}),t(p,{label:"录入人",prop:"creator_name","min-width":"100"}),t(p,{label:"部门",prop:"dept_name","min-width":"140"},{default:s(({row:a})=>[a.dept_path?(i(),m(oe,{key:0,content:a.dept_path,placement:"top",effect:"dark"},{default:s(()=>[r("span",ze,g(a.dept_name||"未分配"),1)]),_:2},1032,["content"])):a.dept_name?(i(),D("span",Qe,g(a.dept_name),1)):(i(),D("span",We,"未分配"))]),_:1}),t(p,{label:"最后修改人",prop:"updater_name","min-width":"100"}),t(p,{label:"更新时间",prop:"update_time","min-width":"180"}),t(p,{label:"操作",width:"160",fixed:"right"},{default:s(({row:a})=>[h((i(),m(v,{type:"primary",link:"",onClick:de=>J(a)},{default:s(()=>[...e[13]||(e[13]=[u(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[E,["stats.personal_account_cost/edit"]]]),h((i(),m(v,{type:"danger",link:"",onClick:de=>X(a.id)},{default:s(()=>[...e[14]||(e[14]=[u(" 删除 ",-1)])]),_:1},8,["onClick"])),[[E,["stats.personal_account_cost/delete"]]])]),_:1})]),_:1},8,["data"])),[[le,o(d).loading]]),r("div",Ge,[t(ne,{modelValue:o(d),"onUpdate:modelValue":e[5]||(e[5]=a=>S(d)?d.value=a:null),onChange:o(_)},null,8,["modelValue","onChange"])])]),_:1}),o(b)?(i(),m(Oe,{key:0,ref_key:"editRef",ref:y,"media-source-options":o(L),"media-source-loading":o(R),onSuccess:G,onClose:e[6]||(e[6]=a=>b.value=!1)},null,8,["media-source-options","media-source-loading"])):A("",!0)])}}}),rt=Se(Je,[["__scopeId","data-v-1e1f4e9b"]]);export{rt as default}; diff --git a/server/public/admin/assets/add-BnODf4Ac.js b/server/public/admin/assets/add-Dcq0hbPf.js similarity index 99% rename from server/public/admin/assets/add-BnODf4Ac.js rename to server/public/admin/assets/add-Dcq0hbPf.js index b5029b210..46e331326 100644 --- a/server/public/admin/assets/add-BnODf4Ac.js +++ b/server/public/admin/assets/add-Dcq0hbPf.js @@ -1 +1 @@ -import{o as pe,W as me,Q as _e,ap as fe,by as be,q as u,r as f,s as _,v as a,D as o,w as ye,u as t,cv as ge,L as s,K as Ve,T as w,bb as ve,aA as ce,bf as ke,bq as we,J as Ue,az as xe,bh as Ee,bi as Oe,F as g,G as V,O as v,cB as qe,di as Be,be as De,bd as Ce,M as p,p as Se,E as le}from"./.pnpm-CyuAWpdG.js";import{ab as ae,ac as Ie,ad as Re,ae as Pe,af as Le}from"./tcm-QAkeqQ9Q.js";import{n as c,j as te,_ as Me}from"./index-Dxvz9lb1.js";const Ne={class:"diagnosis-page"},Fe={class:"page-header"},Te={class:"page-title"},Ye={class:"page-content"},$e={class:"form-section"},Ge={class:"form-section"},Ae={class:"form-section"},He={class:"form-section"},Xe={class:"form-section"},he={class:"form-section"},je={class:"form-section"},ze={class:"form-section"},Je={class:"page-footer"},Ke=pe({__name:"add",setup(Qe){const P=me(),oe=_e(),L=p(),S=p("add"),I=p(!1),de=Se(()=>S.value==="add"?"新增诊单":"编辑诊单"),d=p({id:"",patient_id:"",patient_name:"",id_card:"",phone:"",gender:1,age:void 0,diagnosis_date:"",diagnosis_type:"",syndrome_type:"",diabetes_type:"",diabetes_discovery_year:"",local_hospital_diagnosis:[],local_hospital_name:"",marital_status:void 0,height:void 0,weight:void 0,region:"",systolic_pressure:void 0,diastolic_pressure:void 0,fasting_blood_sugar:"",appetite:"",water_intake:"",diet_condition:[],weight_change:"",body_feeling:[],sleep_condition:[],eye_condition:[],head_feeling:[],sweat_condition:[],skin_condition:[],urine_condition:[],stool_condition:[],kidney_condition:[],fatty_liver_degree:"",past_history:[],trauma_history:0,surgery_history:0,allergy_history:0,family_history:0,pregnancy_history:0,symptoms:"",tongue_coating:"",pulse:"",treatment_principle:"",prescription:"",doctor_advice:"",remark:"",current_medications:"",status:1}),ne={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],id_card:[{validator:(r,e,i)=>{if(!e){i();return}if(!/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e)){i(new Error("身份证号格式不正确"));return}i()},trigger:"blur"}],phone:[{required:!0,validator:(r,e,i)=>{if(!e){i(new Error("请输入手机号"));return}if(!/^1[3-9]\d{9}$/.test(e)){i(new Error("手机号格式不正确"));return}i()},trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],age:[{required:!0,message:"请输入年龄",trigger:"blur"}],diagnosis_type:[{required:!0,message:"请选择诊断类型",trigger:"change"}],syndrome_type:[{required:!0,message:"请选择证型",trigger:"change"}],diabetes_type:[{required:!0,message:"请选择糖尿病期数",trigger:"change"}],local_hospital_name:[{required:!0,message:"请输入当地就诊医院名称",trigger:"blur"}],diabetes_discovery_year:[{max:50,message:"最多50个字符",trigger:"blur"}]},M=p([]),N=p([]),F=p([]),T=p([]),Y=p([]),$=p([]),G=p([]),A=p([]),H=p([]),X=p([]),h=p([]),j=p([]),z=p([]),J=p([]),K=p([]),Q=p([]),W=p([]),Z=p([]),ue=async()=>{try{const[r,e,i,x,m,n,b,U,O,D,E,q,y,k,B,C,l,R]=await Promise.all([c({type:"diagnosis_type"}),c({type:"syndrome_type"}),c({type:"diabetes_type"}),c({type:"past_history"}),c({type:"appetite"}),c({type:"water_intake"}),c({type:"diet_condition"}),c({type:"weight_change"}),c({type:"body_feeling"}),c({type:"sleep_condition"}),c({type:"eye_condition"}),c({type:"head_feeling"}),c({type:"sweat_condition"}),c({type:"skin_condition"}),c({type:"urine_condition"}),c({type:"stool_condition"}),c({type:"kidney_condition"}),c({type:"fatty_liver_degree"})]);M.value=(r==null?void 0:r.diagnosis_type)||[],N.value=(e==null?void 0:e.syndrome_type)||[],F.value=(i==null?void 0:i.diabetes_type)||[],T.value=(x==null?void 0:x.past_history)||[],Y.value=(m==null?void 0:m.appetite)||[],$.value=(n==null?void 0:n.water_intake)||[],G.value=(b==null?void 0:b.diet_condition)||[],A.value=(U==null?void 0:U.weight_change)||[],H.value=(O==null?void 0:O.body_feeling)||[],X.value=(D==null?void 0:D.sleep_condition)||[],h.value=(E==null?void 0:E.eye_condition)||[],j.value=(q==null?void 0:q.head_feeling)||[],z.value=(y==null?void 0:y.sweat_condition)||[],J.value=(k==null?void 0:k.skin_condition)||[],K.value=(B==null?void 0:B.urine_condition)||[],Q.value=(C==null?void 0:C.stool_condition)||[],W.value=(l==null?void 0:l.kidney_condition)||[],Z.value=(R==null?void 0:R.fatty_liver_degree)||[]}catch(r){console.error("获取字典数据失败:",r)}},se=async()=>{if(!(!d.value.phone||!/^1[3-9]\d{9}$/.test(d.value.phone)))try{const r=await Ie({phone:d.value.phone,id:d.value.id||""});r.exists&&le.warning(r.message)}catch(r){console.error("检查手机号失败:",r)}},re=async()=>{if(!(!d.value.id_card||!/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(d.value.id_card)))try{const r=await Re({id_card:d.value.id_card,id:d.value.id||""});r.exists&&le.warning(r.message)}catch(r){console.error("检查身份证号失败:",r)}},ie=async()=>{var r;await((r=L.value)==null?void 0:r.validate()),I.value=!0;try{if(S.value==="add"){const e=await Pe(d.value);if(te.msgSuccess("新增成功"),e&&e.id){S.value="edit",d.value.id=e.id;try{const i=await ae({id:e.id});d.value.patient_id=i.patient_id}catch(i){console.error("获取详情失败:",i)}P.replace({query:{id:e.id}})}}else await Le(d.value),te.msgSuccess("编辑成功")}catch(e){console.error("提交失败:",e)}finally{I.value=!1}},ee=()=>{P.back()};return fe(async()=>{await ue(),setTimeout(()=>{const e=document.querySelector(".el-aside");e&&(e.style.display="none");const i=document.querySelector(".el-main");i&&(i.style.width="100%"(i).style.marginLeft="0");const x=document.querySelector(".el-container");x&&(x.style.width="100%")},100);const r=oe.query.id;if(r){S.value="edit";const e=await ae({id:Number(r)});d.value=e}}),be(()=>{const r=document.querySelector(".el-aside");r&&(r.style.display="");const e=document.querySelector(".el-main");e&&(e.style.width=""(e).style.marginLeft="");const i=document.querySelector(".el-container");i&&(i.style.width="")}),(r,e)=>{const i=ye,x=Ve,m=ce,n=ve,b=we,U=ke,O=Ue,D=xe,E=Oe,q=Ee,y=Be,k=qe,B=De,C=Ce;return u(),f("div",Ne,[_("div",Fe,[a(x,{link:"",onClick:ee,class:"back-btn"},{default:o(()=>[a(i,null,{default:o(()=>[a(t(ge))]),_:1}),e[49]||(e[49]=s(" 返回 ",-1))]),_:1}),_("h1",Te,w(t(de)),1)]),_("div",Ye,[a(C,{ref_key:"formRef",ref:L,model:t(d),rules:ne,"label-width":"auto",class:"diagnosis-form"},{default:o(()=>[_("div",$e,[e[52]||(e[52]=_("div",{class:"section-title"},"基本信息",-1)),a(n,{label:"患者ID"},{default:o(()=>[a(m,{modelValue:t(d).patient_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t(d).patient_id=l),disabled:"",placeholder:"系统自动生成"},null,8,["modelValue"])]),_:1}),a(n,{label:"患者姓名",prop:"patient_name"},{default:o(()=>[a(m,{modelValue:t(d).patient_name,"onUpdate:modelValue":e[1]||(e[1]=l=>t(d).patient_name=l),placeholder:"请输入患者姓名"},null,8,["modelValue"])]),_:1}),a(n,{label:"身份证号",prop:"id_card"},{default:o(()=>[a(m,{modelValue:t(d).id_card,"onUpdate:modelValue":e[2]||(e[2]=l=>t(d).id_card=l),placeholder:"请输入身份证号",maxlength:"18",onBlur:re},null,8,["modelValue"])]),_:1}),a(n,{label:"手机号",prop:"phone"},{default:o(()=>[a(m,{modelValue:t(d).phone,"onUpdate:modelValue":e[3]||(e[3]=l=>t(d).phone=l),placeholder:"请输入手机号",maxlength:"11",onBlur:se},null,8,["modelValue"])]),_:1}),a(n,{label:"性别",prop:"gender"},{default:o(()=>[a(U,{modelValue:t(d).gender,"onUpdate:modelValue":e[4]||(e[4]=l=>t(d).gender=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[50]||(e[50]=[s("男",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[51]||(e[51]=[s("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"年龄",prop:"age"},{default:o(()=>[a(O,{modelValue:t(d).age,"onUpdate:modelValue":e[5]||(e[5]=l=>t(d).age=l),min:0,max:150,placeholder:"请输入年龄",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"诊断日期",prop:"diagnosis_date"},{default:o(()=>[a(D,{modelValue:t(d).diagnosis_date,"onUpdate:modelValue":e[6]||(e[6]=l=>t(d).diagnosis_date=l),type:"date",placeholder:"请选择诊断日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1})]),_("div",Ge,[e[53]||(e[53]=_("div",{class:"section-title"},"生命体征",-1)),a(n,{label:"婚姻状态",prop:"marital_status"},{default:o(()=>[a(q,{modelValue:t(d).marital_status,"onUpdate:modelValue":e[7]||(e[7]=l=>t(d).marital_status=l),placeholder:"请选择婚姻状态",class:"w-full"},{default:o(()=>[a(E,{label:"未婚",value:0}),a(E,{label:"已婚",value:1}),a(E,{label:"离异",value:2})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"身高(cm)",prop:"height"},{default:o(()=>[a(O,{modelValue:t(d).height,"onUpdate:modelValue":e[8]||(e[8]=l=>t(d).height=l),min:0,max:300,placeholder:"请输入身高",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"体重(kg)",prop:"weight"},{default:o(()=>[a(O,{modelValue:t(d).weight,"onUpdate:modelValue":e[9]||(e[9]=l=>t(d).weight=l),min:0,max:500,step:.1,placeholder:"请输入体重",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"地区",prop:"region"},{default:o(()=>[a(m,{modelValue:t(d).region,"onUpdate:modelValue":e[10]||(e[10]=l=>t(d).region=l),placeholder:"请输入地区"},null,8,["modelValue"])]),_:1}),a(n,{label:"收缩压(mmHg)",prop:"systolic_pressure"},{default:o(()=>[a(O,{modelValue:t(d).systolic_pressure,"onUpdate:modelValue":e[11]||(e[11]=l=>t(d).systolic_pressure=l),min:0,max:250,placeholder:"请输入收缩压",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"舒张压(mmHg)",prop:"diastolic_pressure"},{default:o(()=>[a(O,{modelValue:t(d).diastolic_pressure,"onUpdate:modelValue":e[12]||(e[12]=l=>t(d).diastolic_pressure=l),min:0,max:150,placeholder:"请输入舒张压",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"空腹血糖(mmol/L)",prop:"fasting_blood_sugar"},{default:o(()=>[a(m,{modelValue:t(d).fasting_blood_sugar,"onUpdate:modelValue":e[13]||(e[13]=l=>t(d).fasting_blood_sugar=l),placeholder:"请输入空腹血糖,如:8.5 或 8-9",maxlength:"20",class:"w-full"},null,8,["modelValue"])]),_:1})]),_("div",Ae,[e[56]||(e[56]=_("div",{class:"section-title"},"诊断信息",-1)),a(n,{label:"诊断类型",prop:"diagnosis_type"},{default:o(()=>[a(q,{modelValue:t(d).diagnosis_type,"onUpdate:modelValue":e[14]||(e[14]=l=>t(d).diagnosis_type=l),placeholder:"请选择诊断类型",class:"w-full"},{default:o(()=>[(u(!0),f(g,null,V(t(M),l=>(u(),v(E,{key:l.value,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"证型",prop:"syndrome_type"},{default:o(()=>[a(q,{modelValue:t(d).syndrome_type,"onUpdate:modelValue":e[15]||(e[15]=l=>t(d).syndrome_type=l),placeholder:"请选择证型",class:"w-full"},{default:o(()=>[(u(!0),f(g,null,V(t(N),l=>(u(),v(E,{key:l.value,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"糖尿病期数",prop:"diabetes_type"},{default:o(()=>[a(q,{modelValue:t(d).diabetes_type,"onUpdate:modelValue":e[16]||(e[16]=l=>t(d).diabetes_type=l),placeholder:"请选择糖尿病期数",class:"w-full"},{default:o(()=>[(u(!0),f(g,null,V(t(F),l=>(u(),v(E,{key:l.value,label:l.name+(l.remark?" ("+l.remark+")":""),value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"状态",prop:"status"},{default:o(()=>[a(U,{modelValue:t(d).status,"onUpdate:modelValue":e[17]||(e[17]=l=>t(d).status=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[54]||(e[54]=[s("启用",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[55]||(e[55]=[s("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"在用药物",prop:"current_medications"},{default:o(()=>[a(m,{modelValue:t(d).current_medications,"onUpdate:modelValue":e[18]||(e[18]=l=>t(d).current_medications=l),type:"textarea",rows:3,placeholder:"请填写患者当前正在使用的药物(如降压药、降糖药等),多种请换行或顿号分隔",maxlength:"2000","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_("div",He,[e[60]||(e[60]=_("div",{class:"section-title"},"主诉",-1)),a(n,{label:"发现糖尿病就患病史",prop:"diabetes_discovery_year"},{default:o(()=>[a(m,{modelValue:t(d).diabetes_discovery_year,"onUpdate:modelValue":e[19]||(e[19]=l=>t(d).diabetes_discovery_year=l),clearable:"",maxlength:"50","show-word-limit":"",placeholder:"可填数字或文字,如:5、1年、半年",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"当地医院诊断结果"},{default:o(()=>[a(k,{modelValue:t(d).local_hospital_diagnosis,"onUpdate:modelValue":e[20]||(e[20]=l=>t(d).local_hospital_diagnosis=l),class:"checkbox-group"},{default:o(()=>[a(y,{label:"糖尿病"},{default:o(()=>[...e[57]||(e[57]=[s("糖尿病",-1)])]),_:1}),a(y,{label:"高血压"},{default:o(()=>[...e[58]||(e[58]=[s("高血压",-1)])]),_:1}),a(y,{label:"糖尿病高血压"},{default:o(()=>[...e[59]||(e[59]=[s("糖尿病高血压",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"当地就诊医院名称",prop:"local_hospital_name"},{default:o(()=>[a(m,{modelValue:t(d).local_hospital_name,"onUpdate:modelValue":e[21]||(e[21]=l=>t(d).local_hospital_name=l),placeholder:"请输入当地就诊医院名称(不能填写当地、本地、互联网等关键词)"},null,8,["modelValue"])]),_:1})]),_("div",Xe,[e[61]||(e[61]=_("div",{class:"section-title"},"现病史",-1)),a(n,{label:"口腔感觉"},{default:o(()=>[a(U,{modelValue:t(d).appetite,"onUpdate:modelValue":e[22]||(e[22]=l=>t(d).appetite=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t(Y),l=>(u(),v(B,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"每日饮水量"},{default:o(()=>[a(U,{modelValue:t(d).water_intake,"onUpdate:modelValue":e[23]||(e[23]=l=>t(d).water_intake=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t($),l=>(u(),v(B,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"近一个月体重变化"},{default:o(()=>[a(U,{modelValue:t(d).weight_change,"onUpdate:modelValue":e[24]||(e[24]=l=>t(d).weight_change=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t(A),l=>(u(),v(B,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"脂肪肝程度"},{default:o(()=>[a(U,{modelValue:t(d).fatty_liver_degree,"onUpdate:modelValue":e[25]||(e[25]=l=>t(d).fatty_liver_degree=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t(Z),l=>(u(),v(B,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"饮食情况"},{default:o(()=>[a(k,{modelValue:t(d).diet_condition,"onUpdate:modelValue":e[26]||(e[26]=l=>t(d).diet_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(G),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"肢体感觉"},{default:o(()=>[a(k,{modelValue:t(d).body_feeling,"onUpdate:modelValue":e[27]||(e[27]=l=>t(d).body_feeling=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(H),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"睡眠情况"},{default:o(()=>[a(k,{modelValue:t(d).sleep_condition,"onUpdate:modelValue":e[28]||(e[28]=l=>t(d).sleep_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(X),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"眼睛情况"},{default:o(()=>[a(k,{modelValue:t(d).eye_condition,"onUpdate:modelValue":e[29]||(e[29]=l=>t(d).eye_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(h),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"头部感觉"},{default:o(()=>[a(k,{modelValue:t(d).head_feeling,"onUpdate:modelValue":e[30]||(e[30]=l=>t(d).head_feeling=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(j),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"出汗情况"},{default:o(()=>[a(k,{modelValue:t(d).sweat_condition,"onUpdate:modelValue":e[31]||(e[31]=l=>t(d).sweat_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(z),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"皮肤情况"},{default:o(()=>[a(k,{modelValue:t(d).skin_condition,"onUpdate:modelValue":e[32]||(e[32]=l=>t(d).skin_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(J),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"小便情况"},{default:o(()=>[a(k,{modelValue:t(d).urine_condition,"onUpdate:modelValue":e[33]||(e[33]=l=>t(d).urine_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(K),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"大便情况"},{default:o(()=>[a(k,{modelValue:t(d).stool_condition,"onUpdate:modelValue":e[34]||(e[34]=l=>t(d).stool_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(Q),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"腰肾情况"},{default:o(()=>[a(k,{modelValue:t(d).kidney_condition,"onUpdate:modelValue":e[35]||(e[35]=l=>t(d).kidney_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(W),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"病情补充",prop:"symptoms"},{default:o(()=>[a(m,{modelValue:t(d).symptoms,"onUpdate:modelValue":e[36]||(e[36]=l=>t(d).symptoms=l),type:"textarea",rows:3,placeholder:"请输入症状"},null,8,["modelValue"])]),_:1})]),_("div",he,[e[62]||(e[62]=_("div",{class:"section-title"},"既往史",-1)),a(n,{label:""},{default:o(()=>[a(k,{modelValue:t(d).past_history,"onUpdate:modelValue":e[37]||(e[37]=l=>t(d).past_history=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(T),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_("div",je,[e[73]||(e[73]=_("div",{class:"section-title"},"其他病史",-1)),a(n,{label:"外伤史"},{default:o(()=>[a(U,{modelValue:t(d).trauma_history,"onUpdate:modelValue":e[38]||(e[38]=l=>t(d).trauma_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[63]||(e[63]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[64]||(e[64]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"手术史"},{default:o(()=>[a(U,{modelValue:t(d).surgery_history,"onUpdate:modelValue":e[39]||(e[39]=l=>t(d).surgery_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[65]||(e[65]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[66]||(e[66]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"过敏史"},{default:o(()=>[a(U,{modelValue:t(d).allergy_history,"onUpdate:modelValue":e[40]||(e[40]=l=>t(d).allergy_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[67]||(e[67]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[68]||(e[68]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"家族病史"},{default:o(()=>[a(U,{modelValue:t(d).family_history,"onUpdate:modelValue":e[41]||(e[41]=l=>t(d).family_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[69]||(e[69]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[70]||(e[70]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"妊娠哺乳史"},{default:o(()=>[a(U,{modelValue:t(d).pregnancy_history,"onUpdate:modelValue":e[42]||(e[42]=l=>t(d).pregnancy_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[71]||(e[71]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[72]||(e[72]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_("div",ze,[e[74]||(e[74]=_("div",{class:"section-title"},"诊断详情",-1)),a(n,{label:"舌苔",prop:"tongue_coating"},{default:o(()=>[a(m,{modelValue:t(d).tongue_coating,"onUpdate:modelValue":e[43]||(e[43]=l=>t(d).tongue_coating=l),placeholder:"请输入舌苔情况"},null,8,["modelValue"])]),_:1}),a(n,{label:"脉象",prop:"pulse"},{default:o(()=>[a(m,{modelValue:t(d).pulse,"onUpdate:modelValue":e[44]||(e[44]=l=>t(d).pulse=l),placeholder:"请输入脉象"},null,8,["modelValue"])]),_:1}),a(n,{label:"治则",prop:"treatment_principle"},{default:o(()=>[a(m,{modelValue:t(d).treatment_principle,"onUpdate:modelValue":e[45]||(e[45]=l=>t(d).treatment_principle=l),type:"textarea",rows:3,placeholder:"请输入治则"},null,8,["modelValue"])]),_:1}),a(n,{label:"处方",prop:"prescription"},{default:o(()=>[a(m,{modelValue:t(d).prescription,"onUpdate:modelValue":e[46]||(e[46]=l=>t(d).prescription=l),type:"textarea",rows:3,placeholder:"请输入处方"},null,8,["modelValue"])]),_:1}),a(n,{label:"医嘱",prop:"doctor_advice"},{default:o(()=>[a(m,{modelValue:t(d).doctor_advice,"onUpdate:modelValue":e[47]||(e[47]=l=>t(d).doctor_advice=l),type:"textarea",rows:3,placeholder:"请输入医嘱"},null,8,["modelValue"])]),_:1}),a(n,{label:"备注",prop:"remark"},{default:o(()=>[a(m,{modelValue:t(d).remark,"onUpdate:modelValue":e[48]||(e[48]=l=>t(d).remark=l),type:"textarea",rows:2,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})])]),_:1},8,["model"])]),_("div",Je,[a(x,{onClick:ee,class:"btn-cancel"},{default:o(()=>[...e[75]||(e[75]=[s("取消",-1)])]),_:1}),a(x,{type:"primary",onClick:ie,loading:t(I),class:"btn-submit"},{default:o(()=>[...e[76]||(e[76]=[s(" 保存 ",-1)])]),_:1},8,["loading"])])])}}}),tl=Me(Ke,[["__scopeId","data-v-b3c2cdd1"]]);export{tl as default}; +import{o as pe,W as me,Q as _e,ap as fe,by as be,q as u,r as f,s as _,v as a,D as o,w as ye,u as t,cv as ge,L as s,K as Ve,T as w,bb as ve,aA as ce,bf as ke,bq as we,J as Ue,az as xe,bh as Ee,bi as Oe,F as g,G as V,O as v,cB as qe,di as Be,be as De,bd as Ce,M as p,p as Se,E as le}from"./.pnpm-CyuAWpdG.js";import{ab as ae,ac as Ie,ad as Re,ae as Pe,af as Le}from"./tcm-BSADvQNg.js";import{n as c,j as te,_ as Me}from"./index-Bkarz3gO.js";const Ne={class:"diagnosis-page"},Fe={class:"page-header"},Te={class:"page-title"},Ye={class:"page-content"},$e={class:"form-section"},Ge={class:"form-section"},Ae={class:"form-section"},He={class:"form-section"},Xe={class:"form-section"},he={class:"form-section"},je={class:"form-section"},ze={class:"form-section"},Je={class:"page-footer"},Ke=pe({__name:"add",setup(Qe){const P=me(),oe=_e(),L=p(),S=p("add"),I=p(!1),de=Se(()=>S.value==="add"?"新增诊单":"编辑诊单"),d=p({id:"",patient_id:"",patient_name:"",id_card:"",phone:"",gender:1,age:void 0,diagnosis_date:"",diagnosis_type:"",syndrome_type:"",diabetes_type:"",diabetes_discovery_year:"",local_hospital_diagnosis:[],local_hospital_name:"",marital_status:void 0,height:void 0,weight:void 0,region:"",systolic_pressure:void 0,diastolic_pressure:void 0,fasting_blood_sugar:"",appetite:"",water_intake:"",diet_condition:[],weight_change:"",body_feeling:[],sleep_condition:[],eye_condition:[],head_feeling:[],sweat_condition:[],skin_condition:[],urine_condition:[],stool_condition:[],kidney_condition:[],fatty_liver_degree:"",past_history:[],trauma_history:0,surgery_history:0,allergy_history:0,family_history:0,pregnancy_history:0,symptoms:"",tongue_coating:"",pulse:"",treatment_principle:"",prescription:"",doctor_advice:"",remark:"",current_medications:"",status:1}),ne={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],id_card:[{validator:(r,e,i)=>{if(!e){i();return}if(!/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e)){i(new Error("身份证号格式不正确"));return}i()},trigger:"blur"}],phone:[{required:!0,validator:(r,e,i)=>{if(!e){i(new Error("请输入手机号"));return}if(!/^1[3-9]\d{9}$/.test(e)){i(new Error("手机号格式不正确"));return}i()},trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],age:[{required:!0,message:"请输入年龄",trigger:"blur"}],diagnosis_type:[{required:!0,message:"请选择诊断类型",trigger:"change"}],syndrome_type:[{required:!0,message:"请选择证型",trigger:"change"}],diabetes_type:[{required:!0,message:"请选择糖尿病期数",trigger:"change"}],local_hospital_name:[{required:!0,message:"请输入当地就诊医院名称",trigger:"blur"}],diabetes_discovery_year:[{max:50,message:"最多50个字符",trigger:"blur"}]},M=p([]),N=p([]),F=p([]),T=p([]),Y=p([]),$=p([]),G=p([]),A=p([]),H=p([]),X=p([]),h=p([]),j=p([]),z=p([]),J=p([]),K=p([]),Q=p([]),W=p([]),Z=p([]),ue=async()=>{try{const[r,e,i,x,m,n,b,U,O,D,E,q,y,k,B,C,l,R]=await Promise.all([c({type:"diagnosis_type"}),c({type:"syndrome_type"}),c({type:"diabetes_type"}),c({type:"past_history"}),c({type:"appetite"}),c({type:"water_intake"}),c({type:"diet_condition"}),c({type:"weight_change"}),c({type:"body_feeling"}),c({type:"sleep_condition"}),c({type:"eye_condition"}),c({type:"head_feeling"}),c({type:"sweat_condition"}),c({type:"skin_condition"}),c({type:"urine_condition"}),c({type:"stool_condition"}),c({type:"kidney_condition"}),c({type:"fatty_liver_degree"})]);M.value=(r==null?void 0:r.diagnosis_type)||[],N.value=(e==null?void 0:e.syndrome_type)||[],F.value=(i==null?void 0:i.diabetes_type)||[],T.value=(x==null?void 0:x.past_history)||[],Y.value=(m==null?void 0:m.appetite)||[],$.value=(n==null?void 0:n.water_intake)||[],G.value=(b==null?void 0:b.diet_condition)||[],A.value=(U==null?void 0:U.weight_change)||[],H.value=(O==null?void 0:O.body_feeling)||[],X.value=(D==null?void 0:D.sleep_condition)||[],h.value=(E==null?void 0:E.eye_condition)||[],j.value=(q==null?void 0:q.head_feeling)||[],z.value=(y==null?void 0:y.sweat_condition)||[],J.value=(k==null?void 0:k.skin_condition)||[],K.value=(B==null?void 0:B.urine_condition)||[],Q.value=(C==null?void 0:C.stool_condition)||[],W.value=(l==null?void 0:l.kidney_condition)||[],Z.value=(R==null?void 0:R.fatty_liver_degree)||[]}catch(r){console.error("获取字典数据失败:",r)}},se=async()=>{if(!(!d.value.phone||!/^1[3-9]\d{9}$/.test(d.value.phone)))try{const r=await Ie({phone:d.value.phone,id:d.value.id||""});r.exists&&le.warning(r.message)}catch(r){console.error("检查手机号失败:",r)}},re=async()=>{if(!(!d.value.id_card||!/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(d.value.id_card)))try{const r=await Re({id_card:d.value.id_card,id:d.value.id||""});r.exists&&le.warning(r.message)}catch(r){console.error("检查身份证号失败:",r)}},ie=async()=>{var r;await((r=L.value)==null?void 0:r.validate()),I.value=!0;try{if(S.value==="add"){const e=await Pe(d.value);if(te.msgSuccess("新增成功"),e&&e.id){S.value="edit",d.value.id=e.id;try{const i=await ae({id:e.id});d.value.patient_id=i.patient_id}catch(i){console.error("获取详情失败:",i)}P.replace({query:{id:e.id}})}}else await Le(d.value),te.msgSuccess("编辑成功")}catch(e){console.error("提交失败:",e)}finally{I.value=!1}},ee=()=>{P.back()};return fe(async()=>{await ue(),setTimeout(()=>{const e=document.querySelector(".el-aside");e&&(e.style.display="none");const i=document.querySelector(".el-main");i&&(i.style.width="100%"(i).style.marginLeft="0");const x=document.querySelector(".el-container");x&&(x.style.width="100%")},100);const r=oe.query.id;if(r){S.value="edit";const e=await ae({id:Number(r)});d.value=e}}),be(()=>{const r=document.querySelector(".el-aside");r&&(r.style.display="");const e=document.querySelector(".el-main");e&&(e.style.width=""(e).style.marginLeft="");const i=document.querySelector(".el-container");i&&(i.style.width="")}),(r,e)=>{const i=ye,x=Ve,m=ce,n=ve,b=we,U=ke,O=Ue,D=xe,E=Oe,q=Ee,y=Be,k=qe,B=De,C=Ce;return u(),f("div",Ne,[_("div",Fe,[a(x,{link:"",onClick:ee,class:"back-btn"},{default:o(()=>[a(i,null,{default:o(()=>[a(t(ge))]),_:1}),e[49]||(e[49]=s(" 返回 ",-1))]),_:1}),_("h1",Te,w(t(de)),1)]),_("div",Ye,[a(C,{ref_key:"formRef",ref:L,model:t(d),rules:ne,"label-width":"auto",class:"diagnosis-form"},{default:o(()=>[_("div",$e,[e[52]||(e[52]=_("div",{class:"section-title"},"基本信息",-1)),a(n,{label:"患者ID"},{default:o(()=>[a(m,{modelValue:t(d).patient_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t(d).patient_id=l),disabled:"",placeholder:"系统自动生成"},null,8,["modelValue"])]),_:1}),a(n,{label:"患者姓名",prop:"patient_name"},{default:o(()=>[a(m,{modelValue:t(d).patient_name,"onUpdate:modelValue":e[1]||(e[1]=l=>t(d).patient_name=l),placeholder:"请输入患者姓名"},null,8,["modelValue"])]),_:1}),a(n,{label:"身份证号",prop:"id_card"},{default:o(()=>[a(m,{modelValue:t(d).id_card,"onUpdate:modelValue":e[2]||(e[2]=l=>t(d).id_card=l),placeholder:"请输入身份证号",maxlength:"18",onBlur:re},null,8,["modelValue"])]),_:1}),a(n,{label:"手机号",prop:"phone"},{default:o(()=>[a(m,{modelValue:t(d).phone,"onUpdate:modelValue":e[3]||(e[3]=l=>t(d).phone=l),placeholder:"请输入手机号",maxlength:"11",onBlur:se},null,8,["modelValue"])]),_:1}),a(n,{label:"性别",prop:"gender"},{default:o(()=>[a(U,{modelValue:t(d).gender,"onUpdate:modelValue":e[4]||(e[4]=l=>t(d).gender=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[50]||(e[50]=[s("男",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[51]||(e[51]=[s("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"年龄",prop:"age"},{default:o(()=>[a(O,{modelValue:t(d).age,"onUpdate:modelValue":e[5]||(e[5]=l=>t(d).age=l),min:0,max:150,placeholder:"请输入年龄",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"诊断日期",prop:"diagnosis_date"},{default:o(()=>[a(D,{modelValue:t(d).diagnosis_date,"onUpdate:modelValue":e[6]||(e[6]=l=>t(d).diagnosis_date=l),type:"date",placeholder:"请选择诊断日期","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1})]),_("div",Ge,[e[53]||(e[53]=_("div",{class:"section-title"},"生命体征",-1)),a(n,{label:"婚姻状态",prop:"marital_status"},{default:o(()=>[a(q,{modelValue:t(d).marital_status,"onUpdate:modelValue":e[7]||(e[7]=l=>t(d).marital_status=l),placeholder:"请选择婚姻状态",class:"w-full"},{default:o(()=>[a(E,{label:"未婚",value:0}),a(E,{label:"已婚",value:1}),a(E,{label:"离异",value:2})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"身高(cm)",prop:"height"},{default:o(()=>[a(O,{modelValue:t(d).height,"onUpdate:modelValue":e[8]||(e[8]=l=>t(d).height=l),min:0,max:300,placeholder:"请输入身高",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"体重(kg)",prop:"weight"},{default:o(()=>[a(O,{modelValue:t(d).weight,"onUpdate:modelValue":e[9]||(e[9]=l=>t(d).weight=l),min:0,max:500,step:.1,placeholder:"请输入体重",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"地区",prop:"region"},{default:o(()=>[a(m,{modelValue:t(d).region,"onUpdate:modelValue":e[10]||(e[10]=l=>t(d).region=l),placeholder:"请输入地区"},null,8,["modelValue"])]),_:1}),a(n,{label:"收缩压(mmHg)",prop:"systolic_pressure"},{default:o(()=>[a(O,{modelValue:t(d).systolic_pressure,"onUpdate:modelValue":e[11]||(e[11]=l=>t(d).systolic_pressure=l),min:0,max:250,placeholder:"请输入收缩压",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"舒张压(mmHg)",prop:"diastolic_pressure"},{default:o(()=>[a(O,{modelValue:t(d).diastolic_pressure,"onUpdate:modelValue":e[12]||(e[12]=l=>t(d).diastolic_pressure=l),min:0,max:150,placeholder:"请输入舒张压",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"空腹血糖(mmol/L)",prop:"fasting_blood_sugar"},{default:o(()=>[a(m,{modelValue:t(d).fasting_blood_sugar,"onUpdate:modelValue":e[13]||(e[13]=l=>t(d).fasting_blood_sugar=l),placeholder:"请输入空腹血糖,如:8.5 或 8-9",maxlength:"20",class:"w-full"},null,8,["modelValue"])]),_:1})]),_("div",Ae,[e[56]||(e[56]=_("div",{class:"section-title"},"诊断信息",-1)),a(n,{label:"诊断类型",prop:"diagnosis_type"},{default:o(()=>[a(q,{modelValue:t(d).diagnosis_type,"onUpdate:modelValue":e[14]||(e[14]=l=>t(d).diagnosis_type=l),placeholder:"请选择诊断类型",class:"w-full"},{default:o(()=>[(u(!0),f(g,null,V(t(M),l=>(u(),v(E,{key:l.value,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"证型",prop:"syndrome_type"},{default:o(()=>[a(q,{modelValue:t(d).syndrome_type,"onUpdate:modelValue":e[15]||(e[15]=l=>t(d).syndrome_type=l),placeholder:"请选择证型",class:"w-full"},{default:o(()=>[(u(!0),f(g,null,V(t(N),l=>(u(),v(E,{key:l.value,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"糖尿病期数",prop:"diabetes_type"},{default:o(()=>[a(q,{modelValue:t(d).diabetes_type,"onUpdate:modelValue":e[16]||(e[16]=l=>t(d).diabetes_type=l),placeholder:"请选择糖尿病期数",class:"w-full"},{default:o(()=>[(u(!0),f(g,null,V(t(F),l=>(u(),v(E,{key:l.value,label:l.name+(l.remark?" ("+l.remark+")":""),value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"状态",prop:"status"},{default:o(()=>[a(U,{modelValue:t(d).status,"onUpdate:modelValue":e[17]||(e[17]=l=>t(d).status=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[54]||(e[54]=[s("启用",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[55]||(e[55]=[s("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"在用药物",prop:"current_medications"},{default:o(()=>[a(m,{modelValue:t(d).current_medications,"onUpdate:modelValue":e[18]||(e[18]=l=>t(d).current_medications=l),type:"textarea",rows:3,placeholder:"请填写患者当前正在使用的药物(如降压药、降糖药等),多种请换行或顿号分隔",maxlength:"2000","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_("div",He,[e[60]||(e[60]=_("div",{class:"section-title"},"主诉",-1)),a(n,{label:"发现糖尿病就患病史",prop:"diabetes_discovery_year"},{default:o(()=>[a(m,{modelValue:t(d).diabetes_discovery_year,"onUpdate:modelValue":e[19]||(e[19]=l=>t(d).diabetes_discovery_year=l),clearable:"",maxlength:"50","show-word-limit":"",placeholder:"可填数字或文字,如:5、1年、半年",class:"w-full"},null,8,["modelValue"])]),_:1}),a(n,{label:"当地医院诊断结果"},{default:o(()=>[a(k,{modelValue:t(d).local_hospital_diagnosis,"onUpdate:modelValue":e[20]||(e[20]=l=>t(d).local_hospital_diagnosis=l),class:"checkbox-group"},{default:o(()=>[a(y,{label:"糖尿病"},{default:o(()=>[...e[57]||(e[57]=[s("糖尿病",-1)])]),_:1}),a(y,{label:"高血压"},{default:o(()=>[...e[58]||(e[58]=[s("高血压",-1)])]),_:1}),a(y,{label:"糖尿病高血压"},{default:o(()=>[...e[59]||(e[59]=[s("糖尿病高血压",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"当地就诊医院名称",prop:"local_hospital_name"},{default:o(()=>[a(m,{modelValue:t(d).local_hospital_name,"onUpdate:modelValue":e[21]||(e[21]=l=>t(d).local_hospital_name=l),placeholder:"请输入当地就诊医院名称(不能填写当地、本地、互联网等关键词)"},null,8,["modelValue"])]),_:1})]),_("div",Xe,[e[61]||(e[61]=_("div",{class:"section-title"},"现病史",-1)),a(n,{label:"口腔感觉"},{default:o(()=>[a(U,{modelValue:t(d).appetite,"onUpdate:modelValue":e[22]||(e[22]=l=>t(d).appetite=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t(Y),l=>(u(),v(B,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"每日饮水量"},{default:o(()=>[a(U,{modelValue:t(d).water_intake,"onUpdate:modelValue":e[23]||(e[23]=l=>t(d).water_intake=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t($),l=>(u(),v(B,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"近一个月体重变化"},{default:o(()=>[a(U,{modelValue:t(d).weight_change,"onUpdate:modelValue":e[24]||(e[24]=l=>t(d).weight_change=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t(A),l=>(u(),v(B,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"脂肪肝程度"},{default:o(()=>[a(U,{modelValue:t(d).fatty_liver_degree,"onUpdate:modelValue":e[25]||(e[25]=l=>t(d).fatty_liver_degree=l),class:"radio-group"},{default:o(()=>[(u(!0),f(g,null,V(t(Z),l=>(u(),v(B,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"饮食情况"},{default:o(()=>[a(k,{modelValue:t(d).diet_condition,"onUpdate:modelValue":e[26]||(e[26]=l=>t(d).diet_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(G),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"肢体感觉"},{default:o(()=>[a(k,{modelValue:t(d).body_feeling,"onUpdate:modelValue":e[27]||(e[27]=l=>t(d).body_feeling=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(H),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"睡眠情况"},{default:o(()=>[a(k,{modelValue:t(d).sleep_condition,"onUpdate:modelValue":e[28]||(e[28]=l=>t(d).sleep_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(X),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"眼睛情况"},{default:o(()=>[a(k,{modelValue:t(d).eye_condition,"onUpdate:modelValue":e[29]||(e[29]=l=>t(d).eye_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(h),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"头部感觉"},{default:o(()=>[a(k,{modelValue:t(d).head_feeling,"onUpdate:modelValue":e[30]||(e[30]=l=>t(d).head_feeling=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(j),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"出汗情况"},{default:o(()=>[a(k,{modelValue:t(d).sweat_condition,"onUpdate:modelValue":e[31]||(e[31]=l=>t(d).sweat_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(z),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"皮肤情况"},{default:o(()=>[a(k,{modelValue:t(d).skin_condition,"onUpdate:modelValue":e[32]||(e[32]=l=>t(d).skin_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(J),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"小便情况"},{default:o(()=>[a(k,{modelValue:t(d).urine_condition,"onUpdate:modelValue":e[33]||(e[33]=l=>t(d).urine_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(K),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"大便情况"},{default:o(()=>[a(k,{modelValue:t(d).stool_condition,"onUpdate:modelValue":e[34]||(e[34]=l=>t(d).stool_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(Q),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"腰肾情况"},{default:o(()=>[a(k,{modelValue:t(d).kidney_condition,"onUpdate:modelValue":e[35]||(e[35]=l=>t(d).kidney_condition=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(W),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"病情补充",prop:"symptoms"},{default:o(()=>[a(m,{modelValue:t(d).symptoms,"onUpdate:modelValue":e[36]||(e[36]=l=>t(d).symptoms=l),type:"textarea",rows:3,placeholder:"请输入症状"},null,8,["modelValue"])]),_:1})]),_("div",he,[e[62]||(e[62]=_("div",{class:"section-title"},"既往史",-1)),a(n,{label:""},{default:o(()=>[a(k,{modelValue:t(d).past_history,"onUpdate:modelValue":e[37]||(e[37]=l=>t(d).past_history=l),class:"checkbox-group"},{default:o(()=>[(u(!0),f(g,null,V(t(T),l=>(u(),v(y,{key:l.value,label:l.value},{default:o(()=>[s(w(l.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_("div",je,[e[73]||(e[73]=_("div",{class:"section-title"},"其他病史",-1)),a(n,{label:"外伤史"},{default:o(()=>[a(U,{modelValue:t(d).trauma_history,"onUpdate:modelValue":e[38]||(e[38]=l=>t(d).trauma_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[63]||(e[63]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[64]||(e[64]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"手术史"},{default:o(()=>[a(U,{modelValue:t(d).surgery_history,"onUpdate:modelValue":e[39]||(e[39]=l=>t(d).surgery_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[65]||(e[65]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[66]||(e[66]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"过敏史"},{default:o(()=>[a(U,{modelValue:t(d).allergy_history,"onUpdate:modelValue":e[40]||(e[40]=l=>t(d).allergy_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[67]||(e[67]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[68]||(e[68]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"家族病史"},{default:o(()=>[a(U,{modelValue:t(d).family_history,"onUpdate:modelValue":e[41]||(e[41]=l=>t(d).family_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[69]||(e[69]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[70]||(e[70]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(n,{label:"妊娠哺乳史"},{default:o(()=>[a(U,{modelValue:t(d).pregnancy_history,"onUpdate:modelValue":e[42]||(e[42]=l=>t(d).pregnancy_history=l)},{default:o(()=>[a(b,{label:1},{default:o(()=>[...e[71]||(e[71]=[s("有",-1)])]),_:1}),a(b,{label:0},{default:o(()=>[...e[72]||(e[72]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_("div",ze,[e[74]||(e[74]=_("div",{class:"section-title"},"诊断详情",-1)),a(n,{label:"舌苔",prop:"tongue_coating"},{default:o(()=>[a(m,{modelValue:t(d).tongue_coating,"onUpdate:modelValue":e[43]||(e[43]=l=>t(d).tongue_coating=l),placeholder:"请输入舌苔情况"},null,8,["modelValue"])]),_:1}),a(n,{label:"脉象",prop:"pulse"},{default:o(()=>[a(m,{modelValue:t(d).pulse,"onUpdate:modelValue":e[44]||(e[44]=l=>t(d).pulse=l),placeholder:"请输入脉象"},null,8,["modelValue"])]),_:1}),a(n,{label:"治则",prop:"treatment_principle"},{default:o(()=>[a(m,{modelValue:t(d).treatment_principle,"onUpdate:modelValue":e[45]||(e[45]=l=>t(d).treatment_principle=l),type:"textarea",rows:3,placeholder:"请输入治则"},null,8,["modelValue"])]),_:1}),a(n,{label:"处方",prop:"prescription"},{default:o(()=>[a(m,{modelValue:t(d).prescription,"onUpdate:modelValue":e[46]||(e[46]=l=>t(d).prescription=l),type:"textarea",rows:3,placeholder:"请输入处方"},null,8,["modelValue"])]),_:1}),a(n,{label:"医嘱",prop:"doctor_advice"},{default:o(()=>[a(m,{modelValue:t(d).doctor_advice,"onUpdate:modelValue":e[47]||(e[47]=l=>t(d).doctor_advice=l),type:"textarea",rows:3,placeholder:"请输入医嘱"},null,8,["modelValue"])]),_:1}),a(n,{label:"备注",prop:"remark"},{default:o(()=>[a(m,{modelValue:t(d).remark,"onUpdate:modelValue":e[48]||(e[48]=l=>t(d).remark=l),type:"textarea",rows:2,placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})])]),_:1},8,["model"])]),_("div",Je,[a(x,{onClick:ee,class:"btn-cancel"},{default:o(()=>[...e[75]||(e[75]=[s("取消",-1)])]),_:1}),a(x,{type:"primary",onClick:ie,loading:t(I),class:"btn-submit"},{default:o(()=>[...e[76]||(e[76]=[s(" 保存 ",-1)])]),_:1},8,["loading"])])])}}}),tl=Me(Ke,[["__scopeId","data-v-b3c2cdd1"]]);export{tl as default}; diff --git a/server/public/admin/assets/add-nav-BjltaeZg.js b/server/public/admin/assets/add-nav-BjltaeZg.js new file mode 100644 index 000000000..d9a464ba0 --- /dev/null +++ b/server/public/admin/assets/add-nav-BjltaeZg.js @@ -0,0 +1 @@ +import{_ as o}from"./add-nav.vue_vue_type_script_setup_true_lang-ByQYZkB9.js";import"./.pnpm-CyuAWpdG.js";import"./index-Cqk_cdo9.js";import"./index-Bkarz3gO.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";export{o as default}; diff --git a/server/public/admin/assets/add-nav-tqYQknrT.js b/server/public/admin/assets/add-nav-tqYQknrT.js deleted file mode 100644 index 7d219e7b9..000000000 --- a/server/public/admin/assets/add-nav-tqYQknrT.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./add-nav.vue_vue_type_script_setup_true_lang-CaeukMqg.js";import"./.pnpm-CyuAWpdG.js";import"./index-ClBYIwNX.js";import"./index-Dxvz9lb1.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";export{o as default}; diff --git a/server/public/admin/assets/add-nav.vue_vue_type_script_setup_true_lang-CaeukMqg.js b/server/public/admin/assets/add-nav.vue_vue_type_script_setup_true_lang-ByQYZkB9.js similarity index 92% rename from server/public/admin/assets/add-nav.vue_vue_type_script_setup_true_lang-CaeukMqg.js rename to server/public/admin/assets/add-nav.vue_vue_type_script_setup_true_lang-ByQYZkB9.js index 019161ea0..15ea5c986 100644 --- a/server/public/admin/assets/add-nav.vue_vue_type_script_setup_true_lang-CaeukMqg.js +++ b/server/public/admin/assets/add-nav.vue_vue_type_script_setup_true_lang-ByQYZkB9.js @@ -1 +1 @@ -import{o as E,q as p,r as C,s as l,v as a,u as c,bR as B,C as N,D as d,O as $,aA as z,bb as A,I as D,K as I,L as R,p as L}from"./.pnpm-CyuAWpdG.js";import{_ as j}from"./index-ClBYIwNX.js";import{_ as q}from"./picker-BKygjDQE.js";import{_ as F}from"./picker-BDO86vcM.js";import{c as K,j as r}from"./index-Dxvz9lb1.js";const O={class:"bg-fill-light flex items-center w-full p-4 mb-4"},P={class:"upload-btn w-[60px] h-[60px]"},S={class:"ml-3 flex-1"},T={class:"flex items-center"},G={class:"flex items-center mt-[18px]"},H={class:"flex-1 flex items-center"},J={class:"drag-move cursor-move ml-auto"},Z=E({__name:"add-nav",props:{modelValue:{type:Array,default:()=>[]},max:{type:Number,default:100},min:{type:Number,default:1}},emits:["update:modelValue"],setup(_,{emit:f}){const t=_,V=f,m=L({get(){return t.modelValue},set(s){V("update:modelValue",s)}}),x=()=>{var s;((s=t.modelValue)==null?void 0:s.length){var e;if(((e=t.modelValue)==null?void 0:e.length)<=t.min)return r.msgError(`最少保留${t.min}个`);m.value.splice(s,1)};return(s,e)=>{const u=K,g=F,b=z,h=q,k=D,w=A,y=j,U=I;return p(),C("div",null,[l("div",null,[a(c(B),{class:"draggable",modelValue:c(m),"onUpdate:modelValue":e[0]||(e[0]=o=>N(m)?m.value=o:null),animation:"300",handle:".drag-move","item-key":"index"},{item:d(({element:o,index:i})=>[(p(),$(y,{class:"w-[467px]",key:i,onClose:n=>v(i)},{default:d(()=>[l("div",O,[a(g,{modelValue:o.image,"onUpdate:modelValue":n=>o.image=n,"upload-class":"bg-body",size:"60px","exclude-domain":""},{upload:d(()=>[l("div",P,[a(u,{name:"el-icon-Plus",size:20})])]),_:1},8,["modelValue","onUpdate:modelValue"]),l("div",S,[l("div",T,[e[1]||(e[1]=l("span",{class:"text-tx-regular flex-none mr-3"},"名称",-1)),a(b,{modelValue:o.name,"onUpdate:modelValue":n=>o.name=n,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),l("div",G,[e[2]||(e[2]=l("span",{class:"text-tx-regular flex-none mr-3"},"链接",-1)),a(h,{modelValue:o.link,"onUpdate:modelValue":n=>o.link=n},null,8,["modelValue","onUpdate:modelValue"])]),a(w,{label:"是否显示",class:"mt-[18px]"},{default:d(()=>[l("div",H,[a(k,{modelValue:o.is_show,"onUpdate:modelValue":n=>o.is_show=n,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),l("div",J,[a(u,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])]),l("div",null,[a(U,{type:"primary",onClick:x},{default:d(()=>[...e[3]||(e[3]=[R("添加",-1)])]),_:1})])])}}});export{Z as _}; +import{o as E,q as p,r as C,s as l,v as a,u as c,bR as B,C as N,D as d,O as $,aA as z,bb as A,I as D,K as I,L as R,p as L}from"./.pnpm-CyuAWpdG.js";import{_ as j}from"./index-Cqk_cdo9.js";import{_ as q}from"./picker-CSWk6Vbk.js";import{_ as F}from"./picker-BTh9eW9u.js";import{c as K,j as r}from"./index-Bkarz3gO.js";const O={class:"bg-fill-light flex items-center w-full p-4 mb-4"},P={class:"upload-btn w-[60px] h-[60px]"},S={class:"ml-3 flex-1"},T={class:"flex items-center"},G={class:"flex items-center mt-[18px]"},H={class:"flex-1 flex items-center"},J={class:"drag-move cursor-move ml-auto"},Z=E({__name:"add-nav",props:{modelValue:{type:Array,default:()=>[]},max:{type:Number,default:100},min:{type:Number,default:1}},emits:["update:modelValue"],setup(_,{emit:f}){const t=_,V=f,m=L({get(){return t.modelValue},set(s){V("update:modelValue",s)}}),x=()=>{var s;((s=t.modelValue)==null?void 0:s.length){var e;if(((e=t.modelValue)==null?void 0:e.length)<=t.min)return r.msgError(`最少保留${t.min}个`);m.value.splice(s,1)};return(s,e)=>{const u=K,g=F,b=z,h=q,k=D,w=A,y=j,U=I;return p(),C("div",null,[l("div",null,[a(c(B),{class:"draggable",modelValue:c(m),"onUpdate:modelValue":e[0]||(e[0]=o=>N(m)?m.value=o:null),animation:"300",handle:".drag-move","item-key":"index"},{item:d(({element:o,index:i})=>[(p(),$(y,{class:"w-[467px]",key:i,onClose:n=>v(i)},{default:d(()=>[l("div",O,[a(g,{modelValue:o.image,"onUpdate:modelValue":n=>o.image=n,"upload-class":"bg-body",size:"60px","exclude-domain":""},{upload:d(()=>[l("div",P,[a(u,{name:"el-icon-Plus",size:20})])]),_:1},8,["modelValue","onUpdate:modelValue"]),l("div",S,[l("div",T,[e[1]||(e[1]=l("span",{class:"text-tx-regular flex-none mr-3"},"名称",-1)),a(b,{modelValue:o.name,"onUpdate:modelValue":n=>o.name=n,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),l("div",G,[e[2]||(e[2]=l("span",{class:"text-tx-regular flex-none mr-3"},"链接",-1)),a(h,{modelValue:o.link,"onUpdate:modelValue":n=>o.link=n},null,8,["modelValue","onUpdate:modelValue"])]),a(w,{label:"是否显示",class:"mt-[18px]"},{default:d(()=>[l("div",H,[a(k,{modelValue:o.is_show,"onUpdate:modelValue":n=>o.is_show=n,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),l("div",J,[a(u,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])]),l("div",null,[a(U,{type:"primary",onClick:x},{default:d(()=>[...e[3]||(e[3]=[R("添加",-1)])]),_:1})])])}}});export{Z as _}; diff --git a/server/public/admin/assets/admin-7zsFFzhs.js b/server/public/admin/assets/admin-DmTP1JeV.js similarity index 84% rename from server/public/admin/assets/admin-7zsFFzhs.js rename to server/public/admin/assets/admin-DmTP1JeV.js index 2ee5f0c5a..4dcad5a7e 100644 --- a/server/public/admin/assets/admin-7zsFFzhs.js +++ b/server/public/admin/assets/admin-DmTP1JeV.js @@ -1 +1 @@ -import{r as n}from"./index-Dxvz9lb1.js";function e(t){return n.get({url:"/auth.admin/lists",params:t},{ignoreCancelToken:!0})}function i(t){return n.post({url:"/auth.admin/add",params:t})}function r(t){return n.post({url:"/auth.admin/edit",params:t})}function u(t){return n.post({url:"/auth.admin/delete",params:t})}function d(t){return n.get({url:"/auth.admin/detail",params:t})}export{e as a,r as b,u as c,i as d,d as e}; +import{r as n}from"./index-Bkarz3gO.js";function e(t){return n.get({url:"/auth.admin/lists",params:t},{ignoreCancelToken:!0})}function i(t){return n.post({url:"/auth.admin/add",params:t})}function r(t){return n.post({url:"/auth.admin/edit",params:t})}function u(t){return n.post({url:"/auth.admin/delete",params:t})}function d(t){return n.get({url:"/auth.admin/detail",params:t})}export{e as a,r as b,u as c,i as d,d as e}; diff --git a/server/public/admin/assets/ai_mcp-Dog5pgH2.js b/server/public/admin/assets/ai_mcp-Bk1FasTW.js similarity index 81% rename from server/public/admin/assets/ai_mcp-Dog5pgH2.js rename to server/public/admin/assets/ai_mcp-Bk1FasTW.js index dc3a7469b..6c0d3596b 100644 --- a/server/public/admin/assets/ai_mcp-Dog5pgH2.js +++ b/server/public/admin/assets/ai_mcp-Bk1FasTW.js @@ -1 +1 @@ -import{r}from"./index-Dxvz9lb1.js";const a={urlPrefix:"mcp"};function s(t){return r.get({url:"/admin/grants",params:t},a)}function i(t){return r.post({url:"/admin/revoke",params:t},a)}function e(t){return r.get({url:"/admin/logs",params:t},a)}function o(t){return r.get({url:"/admin/catalog",params:t},a)}export{e as a,o as b,s as c,i as d}; +import{r}from"./index-Bkarz3gO.js";const a={urlPrefix:"mcp"};function s(t){return r.get({url:"/admin/grants",params:t},a)}function i(t){return r.post({url:"/admin/revoke",params:t},a)}function e(t){return r.get({url:"/admin/logs",params:t},a)}function o(t){return r.get({url:"/admin/catalog",params:t},a)}export{e as a,o as b,s as c,i as d}; diff --git a/server/public/admin/assets/appointment-FizcUjTK.js b/server/public/admin/assets/appointment-C_cZtFED.js similarity index 97% rename from server/public/admin/assets/appointment-FizcUjTK.js rename to server/public/admin/assets/appointment-C_cZtFED.js index d44339a50..2e43bea3f 100644 --- a/server/public/admin/assets/appointment-FizcUjTK.js +++ b/server/public/admin/assets/appointment-C_cZtFED.js @@ -1 +1 @@ -import{o as Se,q as d,O as D,D as s,ac as Te,r as k,bo as Ve,P as z,v as i,bd as we,bb as Ce,s as y,T as w,bf as Ye,bq as Ee,L as h,bh as Me,F as x,G as N,bi as xe,aA as Ne,bC as Ie,K as Ae,u as Be,bz as Le,ae as O,bn as ze,B as Re,M as p,aC as P,p as S,n as Ue}from"./.pnpm-CyuAWpdG.js";import{d as v,i as We}from"./dayjs-B2bPhvDy.js";import{g as $e}from"./tcm-QAkeqQ9Q.js";import{n as qe,j as c,_ as Fe}from"./index-Dxvz9lb1.js";import{a as j,r as He,g as Oe,o as Pe}from"./doctor-8vo_5fa4.js";import{N as je}from"./first_visit-BxZL4Ke4.js";const Ge={class:"text-gray-500"},Qe={class:"doctor-list"},Ke={key:2,class:"appointment-time-container"},Je={class:"date-selector"},Xe={key:0,class:"time-slots-container"},Ze={class:"time-slots-header"},et={class:"time-slots-grid"},tt=["onClick"],at={class:"slot-time"},nt={class:"drawer-footer"},lt=Se({__name:"appointment",props:{apiScene:{default:"default"}},emits:["success"],setup(G,{expose:Q,emit:K}){v.extend(We);const J=G,C=p(!1),T=p(!1),I=p(!1),A=p(!1),R=p([]),f=p([]),E=p(""),u=p(0),m=p([]),Y=p([]),V=p(!1),_=P({id:0,name:"",gender:"",age:0}),a=P({appointmentMethod:"time",appointmentType:"video",patientId:0,date:"",appointmentTime:"",remark:"",channel_source:"",channel_source_detail:""}),X=new Set(["自媒体3Q","自媒体3H","自媒体2H","自媒体2Q"]);function U(e){return X.has(String(e??"").trim())}const Z=S(()=>{const e=a.channel_source;if(e===""||e==null)return"";const t=Y.value.find(n=>String(n.value)===String(e));return t?String(t.name??"").trim():""}),B=S(()=>U(Z.value)),ee=e=>{const t=Y.value.find(o=>String(o.value)===String(e)),n=t?String(t.name??"").trim():"";U(n)||(a.channel_source_detail="")},te=S(()=>{if(!u.value||m.value.length===0)return[];const e=[],t=["日","一","二","三","四","五","六"],n=v().startOf("day");for(const o of m.value){const r=v(o);if(r.isBefore(n))continue;const g=`${r.format("MM月DD日")} (${t[r.day()]})`;e.push({date:o,label:g})}return e}),ae=S(()=>{if(!a.date||f.value.length===0)return[];const e=v().format("YYYY-MM-DD");if(!(a.date===e))return f.value;const n=v();return f.value.map(o=>{const r=v(`${a.date} ${o.time}`);return r.isBefore(n)||r.isSame(n,"minute")?{...o,available:!1}:o})}),ne=()=>v().format("YYYY-MM-DD"),L=S(()=>a.date===ne()),le=S(()=>V.value?L.value?"该患者今日已有挂号(已预约或已过号),不能重复预约今天,请改选其他日期。":"该患者今日已有挂号记录;可为患者预约其他日期的时段。":""),W=S(()=>V.value&&L.value),oe=S(()=>!W.value&&u.value&&a.date&&a.appointmentTime&&!!a.channel_source&&(!B.value||a.channel_source_detail.trim()!=="")),se=K,ie=async e=>{C.value=!0,_.id=e.patient_id||e.id,_.name=e.patient_name||e.name,_.gender=e.gender_desc||e.gender,_.age=e.age||0,a.appointmentMethod="time",a.appointmentType="video",a.patientId=_.id,u.value=0,a.date="",a.appointmentTime="",a.remark="",a.channel_source="",a.channel_source_detail="",f.value=[],m.value=[],E.value="",V.value=!1,await de(),await ce(),await ue(),await re()},re=async()=>{V.value=!1;const e=_.id;if(!e)return;const t=v().format("YYYY-MM-DD");try{const n=await j({patient_id:e,start_date:t,end_date:t,page_no:1,page_size:50}),r=((n==null?void 0:n.lists)||[]).find(g=>{const b=Number(g.status);return b===1||b===4});V.value=!!r}catch(n){console.error("检查今日挂号状态失败:",n)}},ue=async()=>{try{const e=await j({patient_id:_.id,status:3,page_no:1,page_size:1});if(e!=null&&e.lists&&e.lists.length>0){const t=e.lists[0];t.appointment_date&&t.appointment_time?E.value=`${t.appointment_date} ${t.appointment_time}`:t.appointment_date&&(E.value=t.appointment_date)}}catch(e){console.error("加载就诊记录失败:",e)}},de=async()=>{try{const e=await qe({type:"channels"}),t=((e==null?void 0:e.channels)||[]).filter(n=>n.status!==0);t.sort((n,o)=>{const r=Number((o==null?void 0:o.sort)??0)-Number((n==null?void 0:n.sort)??0);return r!==0?r:Number((o==null?void 0:o.id)??0)-Number((n==null?void 0:n.id)??0)}),Y.value=t.map(n=>({...n,value:(n==null?void 0:n.value)!=null&&n.value!==""?String(n.value):""}))}catch(e){console.error("加载渠道来源失败:",e),Y.value=[]}},ce=async()=>{try{T.value=!0;const e=await $e();R.value=e||[]}catch(e){console.error("加载医生列表失败:",e),c.msgError("加载医生列表失败")}finally{T.value=!1}},me=()=>{u.value=0,a.date="",a.appointmentTime="",f.value=[]},pe=async()=>{a.appointmentTime="",a.date="",f.value=[],m.value=[],u.value&&await ve()},ve=async()=>{if(u.value)try{T.value=!0;const e=v().format("YYYY-MM-DD"),t=v().add(6,"day").format("YYYY-MM-DD"),n=await He({doctor_id:u.value,start_date:e,end_date:t,status:1});if(n!=null&&n.lists&&n.lists.length>0){if(m.value=[...new Set(n.lists.map(o=>o.date))],m.value.sort(),await Ue(),m.value.length>0){const o=v().format("YYYY-MM-DD");let r=m.value.includes(o)?o:m.value[0];V.value&&r===o&&(r=m.value.find(b=>b>o)??m.value.find(b=>b!==o)??r),$(r)}}else m.value=[],c.msgWarning("该医生暂无排班")}catch(e){console.error("加载医生排班失败:",e),c.msgError("加载医生排班失败"),m.value=[]}finally{T.value=!1}},$=e=>{a.date=e,a.appointmentTime="",u.value&&q()},q=async()=>{if(!(!u.value||!a.date))try{T.value=!0;const e=await Oe({doctor_id:u.value,appointment_date:a.date,period:"all"});console.log("时间段数据:",e),f.value=((e==null?void 0:e.slots)||[]).map(t=>({time:t.time,available:t.available,quota:t.available?1:0})),console.log("处理后的时间段:",f.value)}catch(e){console.error("加载时间段失败:",e),c.msgError("加载时间段失败"),f.value=[]}finally{T.value=!1}},fe=e=>{if(!e.available){c.msgWarning("该时间段不可预约");return}a.appointmentTime=e.time},_e=async()=>{if(!(!u.value||!a.date))try{A.value=!0;const e=a.appointmentTime;if(a.appointmentTime="",await q(),e){const t=f.value.find(n=>n.time===e);t&&t.available&&(a.appointmentTime=e)}c.msgSuccess("刷新成功")}catch(e){console.error("刷新失败:",e),c.msgError("刷新失败,请重试")}finally{A.value=!1}},ge=async()=>{if(!u.value){c.msgWarning("请选择医生");return}if(!a.date){c.msgWarning("请选择日期");return}if(!a.appointmentTime){c.msgWarning("请选择预约时间");return}if(!a.channel_source){c.msgWarning("请选择渠道来源");return}if(B.value&&!a.channel_source_detail.trim()){c.msgWarning("请填写自媒体渠道补充信息");return}if(W.value){c.msgWarning("该患者今日已有挂号(已预约或已过号),不能重复预约今天,请改选其他日期。");return}try{I.value=!0;const e={patient_id:_.id,doctor_id:u.value,appointment_date:a.date,period:"all",appointment_time:a.appointmentTime,appointment_type:a.appointmentType,remark:a.remark,channel_source:String(a.channel_source??""),channel_source_detail:a.channel_source_detail.trim()};console.log("提交预约参数:",e),J.apiScene==="my_patient"?await je(e):await Pe(e),c.msgSuccess("预约成功"),C.value=!1,se("success")}catch(e){console.error("预约失败:",e),c.msgError("预约失败")}finally{I.value=!1}};return Q({open:ie}),(e,t)=>{const n=Ve,o=Ce,r=Ee,g=Ye,b=xe,ye=Me,F=Ne,H=Ie,M=Ae,he=we,be=Re,De=ze;return d(),D(be,{modelValue:C.value,"onUpdate:modelValue":t[8]||(t[8]=l=>C.value=l),title:"预约问诊",direction:"rtl",size:"60%","close-on-click-modal":!1,"z-index":2e3},{footer:s(()=>[y("div",nt,[i(M,{onClick:t[7]||(t[7]=l=>C.value=!1)},{default:s(()=>[...t[14]||(t[14]=[h("取消",-1)])]),_:1}),i(M,{type:"primary",onClick:ge,loading:I.value,disabled:!oe.value},{default:s(()=>[...t[15]||(t[15]=[h(" 确定 ",-1)])]),_:1},8,["loading","disabled"])])]),default:s(()=>[Te((d(),k("div",null,[V.value?(d(),D(n,{key:0,type:L.value?"warning":"info",closable:!1,"show-icon":"",class:"today-block-alert",title:le.value},null,8,["type","title"])):z("",!0),i(he,{model:a,"label-width":"100px",class:"appointment-form"},{default:s(()=>[i(o,{label:"上次就诊:"},{default:s(()=>[y("span",Ge,w(E.value||"无就诊记录"),1)]),_:1}),i(o,{label:"预约方式:"},{default:s(()=>[i(g,{modelValue:a.appointmentMethod,"onUpdate:modelValue":t[0]||(t[0]=l=>a.appointmentMethod=l),onChange:me},{default:s(()=>[i(r,{value:"time"},{default:s(()=>[...t[9]||(t[9]=[h("选择时段预约有专医生",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),i(o,{label:"挂号类型:"},{default:s(()=>[i(g,{modelValue:a.appointmentType,"onUpdate:modelValue":t[1]||(t[1]=l=>a.appointmentType=l)},{default:s(()=>[i(r,{value:"video"},{default:s(()=>[...t[10]||(t[10]=[h("视频问诊",-1)])]),_:1}),i(r,{value:"text"},{default:s(()=>[...t[11]||(t[11]=[h("图文问诊",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),i(o,{label:"选择患者:"},{default:s(()=>[i(g,{modelValue:a.patientId,"onUpdate:modelValue":t[2]||(t[2]=l=>a.patientId=l)},{default:s(()=>[i(r,{value:_.id},{default:s(()=>[h(w(_.name),1)]),_:1},8,["value"])]),_:1},8,["modelValue"])]),_:1}),i(o,{label:"渠道来源:",required:""},{default:s(()=>[i(ye,{modelValue:a.channel_source,"onUpdate:modelValue":t[3]||(t[3]=l=>a.channel_source=l),placeholder:"请选择渠道来源",class:"channel-source-select",onChange:ee},{default:s(()=>[(d(!0),k(x,null,N(Y.value,l=>(d(),D(b,{key:String(l.value),label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),B.value?(d(),D(o,{key:0,label:"自媒体补充:",required:""},{default:s(()=>[i(F,{modelValue:a.channel_source_detail,"onUpdate:modelValue":t[4]||(t[4]=l=>a.channel_source_detail=l),clearable:"",maxlength:"128","show-word-limit":"",placeholder:"请输入自媒体相关补充内容",class:"channel-source-select"},null,8,["modelValue"])]),_:1})):z("",!0),i(o,{label:"预约医生:"},{default:s(()=>[y("div",Qe,[i(g,{modelValue:u.value,"onUpdate:modelValue":t[5]||(t[5]=l=>u.value=l),onChange:pe},{default:s(()=>[(d(!0),k(x,null,N(R.value,l=>(d(),D(r,{key:l.id,value:l.id,class:"doctor-radio"},{default:s(()=>[h(w(l.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])]),_:1}),i(o,{label:"预约时间:"},{default:s(()=>[u.value?u.value&&m.value.length===0?(d(),D(H,{key:1,description:"该医生暂无排班","image-size":80})):(d(),k("div",Ke,[y("div",Je,[(d(!0),k(x,null,N(te.value,l=>(d(),D(M,{key:l.date,type:a.date===l.date?"primary":"",onClick:ke=>$(l.date),class:"date-button"},{default:s(()=>[h(w(l.label),1)]),_:2},1032,["type","onClick"]))),128))]),a.date?(d(),k("div",Xe,[y("div",Ze,[t[13]||(t[13]=y("span",{class:"header-title"},"可预约时段",-1)),i(M,{text:"",type:"primary",size:"small",loading:A.value,onClick:_e},{icon:s(()=>[i(Be(Le))]),default:s(()=>[t[12]||(t[12]=h(" 刷新 ",-1))]),_:1},8,["loading"])]),y("div",et,[(d(!0),k(x,null,N(ae.value,l=>(d(),k("div",{key:l.time,class:O(["time-slot-item",{available:l.available,unavailable:!l.available,selected:a.appointmentTime===l.time}]),onClick:ke=>fe(l)},[y("div",at,w(l.time),1),y("div",{class:O(["slot-status",{"status-available":l.available}])},w(l.available?"可约":"已约"),3)],10,tt))),128))])])):z("",!0)])):(d(),D(H,{key:0,description:"请先选择医生","image-size":80}))]),_:1}),i(o,{label:"备注:"},{default:s(()=>[i(F,{modelValue:a.remark,"onUpdate:modelValue":t[6]||(t[6]=l=>a.remark=l),type:"textarea",rows:2,placeholder:"请输入备注信息"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])),[[De,T.value]])]),_:1},8,["modelValue"])}}}),ct=Fe(lt,[["__scopeId","data-v-504aaeec"]]);export{ct as default}; +import{o as Se,q as d,O as D,D as s,ac as Te,r as k,bo as Ve,P as z,v as i,bd as we,bb as Ce,s as y,T as w,bf as Ye,bq as Ee,L as h,bh as Me,F as x,G as N,bi as xe,aA as Ne,bC as Ie,K as Ae,u as Be,bz as Le,ae as O,bn as ze,B as Re,M as p,aC as P,p as S,n as Ue}from"./.pnpm-CyuAWpdG.js";import{d as v,i as We}from"./dayjs-B2bPhvDy.js";import{g as $e}from"./tcm-BSADvQNg.js";import{n as qe,j as c,_ as Fe}from"./index-Bkarz3gO.js";import{a as j,r as He,g as Oe,o as Pe}from"./doctor-DBvYeWd3.js";import{N as je}from"./first_visit-B5IgLifl.js";const Ge={class:"text-gray-500"},Qe={class:"doctor-list"},Ke={key:2,class:"appointment-time-container"},Je={class:"date-selector"},Xe={key:0,class:"time-slots-container"},Ze={class:"time-slots-header"},et={class:"time-slots-grid"},tt=["onClick"],at={class:"slot-time"},nt={class:"drawer-footer"},lt=Se({__name:"appointment",props:{apiScene:{default:"default"}},emits:["success"],setup(G,{expose:Q,emit:K}){v.extend(We);const J=G,C=p(!1),T=p(!1),I=p(!1),A=p(!1),R=p([]),f=p([]),E=p(""),u=p(0),m=p([]),Y=p([]),V=p(!1),_=P({id:0,name:"",gender:"",age:0}),a=P({appointmentMethod:"time",appointmentType:"video",patientId:0,date:"",appointmentTime:"",remark:"",channel_source:"",channel_source_detail:""}),X=new Set(["自媒体3Q","自媒体3H","自媒体2H","自媒体2Q"]);function U(e){return X.has(String(e??"").trim())}const Z=S(()=>{const e=a.channel_source;if(e===""||e==null)return"";const t=Y.value.find(n=>String(n.value)===String(e));return t?String(t.name??"").trim():""}),B=S(()=>U(Z.value)),ee=e=>{const t=Y.value.find(o=>String(o.value)===String(e)),n=t?String(t.name??"").trim():"";U(n)||(a.channel_source_detail="")},te=S(()=>{if(!u.value||m.value.length===0)return[];const e=[],t=["日","一","二","三","四","五","六"],n=v().startOf("day");for(const o of m.value){const r=v(o);if(r.isBefore(n))continue;const g=`${r.format("MM月DD日")} (${t[r.day()]})`;e.push({date:o,label:g})}return e}),ae=S(()=>{if(!a.date||f.value.length===0)return[];const e=v().format("YYYY-MM-DD");if(!(a.date===e))return f.value;const n=v();return f.value.map(o=>{const r=v(`${a.date} ${o.time}`);return r.isBefore(n)||r.isSame(n,"minute")?{...o,available:!1}:o})}),ne=()=>v().format("YYYY-MM-DD"),L=S(()=>a.date===ne()),le=S(()=>V.value?L.value?"该患者今日已有挂号(已预约或已过号),不能重复预约今天,请改选其他日期。":"该患者今日已有挂号记录;可为患者预约其他日期的时段。":""),W=S(()=>V.value&&L.value),oe=S(()=>!W.value&&u.value&&a.date&&a.appointmentTime&&!!a.channel_source&&(!B.value||a.channel_source_detail.trim()!=="")),se=K,ie=async e=>{C.value=!0,_.id=e.patient_id||e.id,_.name=e.patient_name||e.name,_.gender=e.gender_desc||e.gender,_.age=e.age||0,a.appointmentMethod="time",a.appointmentType="video",a.patientId=_.id,u.value=0,a.date="",a.appointmentTime="",a.remark="",a.channel_source="",a.channel_source_detail="",f.value=[],m.value=[],E.value="",V.value=!1,await de(),await ce(),await ue(),await re()},re=async()=>{V.value=!1;const e=_.id;if(!e)return;const t=v().format("YYYY-MM-DD");try{const n=await j({patient_id:e,start_date:t,end_date:t,page_no:1,page_size:50}),r=((n==null?void 0:n.lists)||[]).find(g=>{const b=Number(g.status);return b===1||b===4});V.value=!!r}catch(n){console.error("检查今日挂号状态失败:",n)}},ue=async()=>{try{const e=await j({patient_id:_.id,status:3,page_no:1,page_size:1});if(e!=null&&e.lists&&e.lists.length>0){const t=e.lists[0];t.appointment_date&&t.appointment_time?E.value=`${t.appointment_date} ${t.appointment_time}`:t.appointment_date&&(E.value=t.appointment_date)}}catch(e){console.error("加载就诊记录失败:",e)}},de=async()=>{try{const e=await qe({type:"channels"}),t=((e==null?void 0:e.channels)||[]).filter(n=>n.status!==0);t.sort((n,o)=>{const r=Number((o==null?void 0:o.sort)??0)-Number((n==null?void 0:n.sort)??0);return r!==0?r:Number((o==null?void 0:o.id)??0)-Number((n==null?void 0:n.id)??0)}),Y.value=t.map(n=>({...n,value:(n==null?void 0:n.value)!=null&&n.value!==""?String(n.value):""}))}catch(e){console.error("加载渠道来源失败:",e),Y.value=[]}},ce=async()=>{try{T.value=!0;const e=await $e();R.value=e||[]}catch(e){console.error("加载医生列表失败:",e),c.msgError("加载医生列表失败")}finally{T.value=!1}},me=()=>{u.value=0,a.date="",a.appointmentTime="",f.value=[]},pe=async()=>{a.appointmentTime="",a.date="",f.value=[],m.value=[],u.value&&await ve()},ve=async()=>{if(u.value)try{T.value=!0;const e=v().format("YYYY-MM-DD"),t=v().add(6,"day").format("YYYY-MM-DD"),n=await He({doctor_id:u.value,start_date:e,end_date:t,status:1});if(n!=null&&n.lists&&n.lists.length>0){if(m.value=[...new Set(n.lists.map(o=>o.date))],m.value.sort(),await Ue(),m.value.length>0){const o=v().format("YYYY-MM-DD");let r=m.value.includes(o)?o:m.value[0];V.value&&r===o&&(r=m.value.find(b=>b>o)??m.value.find(b=>b!==o)??r),$(r)}}else m.value=[],c.msgWarning("该医生暂无排班")}catch(e){console.error("加载医生排班失败:",e),c.msgError("加载医生排班失败"),m.value=[]}finally{T.value=!1}},$=e=>{a.date=e,a.appointmentTime="",u.value&&q()},q=async()=>{if(!(!u.value||!a.date))try{T.value=!0;const e=await Oe({doctor_id:u.value,appointment_date:a.date,period:"all"});console.log("时间段数据:",e),f.value=((e==null?void 0:e.slots)||[]).map(t=>({time:t.time,available:t.available,quota:t.available?1:0})),console.log("处理后的时间段:",f.value)}catch(e){console.error("加载时间段失败:",e),c.msgError("加载时间段失败"),f.value=[]}finally{T.value=!1}},fe=e=>{if(!e.available){c.msgWarning("该时间段不可预约");return}a.appointmentTime=e.time},_e=async()=>{if(!(!u.value||!a.date))try{A.value=!0;const e=a.appointmentTime;if(a.appointmentTime="",await q(),e){const t=f.value.find(n=>n.time===e);t&&t.available&&(a.appointmentTime=e)}c.msgSuccess("刷新成功")}catch(e){console.error("刷新失败:",e),c.msgError("刷新失败,请重试")}finally{A.value=!1}},ge=async()=>{if(!u.value){c.msgWarning("请选择医生");return}if(!a.date){c.msgWarning("请选择日期");return}if(!a.appointmentTime){c.msgWarning("请选择预约时间");return}if(!a.channel_source){c.msgWarning("请选择渠道来源");return}if(B.value&&!a.channel_source_detail.trim()){c.msgWarning("请填写自媒体渠道补充信息");return}if(W.value){c.msgWarning("该患者今日已有挂号(已预约或已过号),不能重复预约今天,请改选其他日期。");return}try{I.value=!0;const e={patient_id:_.id,doctor_id:u.value,appointment_date:a.date,period:"all",appointment_time:a.appointmentTime,appointment_type:a.appointmentType,remark:a.remark,channel_source:String(a.channel_source??""),channel_source_detail:a.channel_source_detail.trim()};console.log("提交预约参数:",e),J.apiScene==="my_patient"?await je(e):await Pe(e),c.msgSuccess("预约成功"),C.value=!1,se("success")}catch(e){console.error("预约失败:",e),c.msgError("预约失败")}finally{I.value=!1}};return Q({open:ie}),(e,t)=>{const n=Ve,o=Ce,r=Ee,g=Ye,b=xe,ye=Me,F=Ne,H=Ie,M=Ae,he=we,be=Re,De=ze;return d(),D(be,{modelValue:C.value,"onUpdate:modelValue":t[8]||(t[8]=l=>C.value=l),title:"预约问诊",direction:"rtl",size:"60%","close-on-click-modal":!1,"z-index":2e3},{footer:s(()=>[y("div",nt,[i(M,{onClick:t[7]||(t[7]=l=>C.value=!1)},{default:s(()=>[...t[14]||(t[14]=[h("取消",-1)])]),_:1}),i(M,{type:"primary",onClick:ge,loading:I.value,disabled:!oe.value},{default:s(()=>[...t[15]||(t[15]=[h(" 确定 ",-1)])]),_:1},8,["loading","disabled"])])]),default:s(()=>[Te((d(),k("div",null,[V.value?(d(),D(n,{key:0,type:L.value?"warning":"info",closable:!1,"show-icon":"",class:"today-block-alert",title:le.value},null,8,["type","title"])):z("",!0),i(he,{model:a,"label-width":"100px",class:"appointment-form"},{default:s(()=>[i(o,{label:"上次就诊:"},{default:s(()=>[y("span",Ge,w(E.value||"无就诊记录"),1)]),_:1}),i(o,{label:"预约方式:"},{default:s(()=>[i(g,{modelValue:a.appointmentMethod,"onUpdate:modelValue":t[0]||(t[0]=l=>a.appointmentMethod=l),onChange:me},{default:s(()=>[i(r,{value:"time"},{default:s(()=>[...t[9]||(t[9]=[h("选择时段预约有专医生",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),i(o,{label:"挂号类型:"},{default:s(()=>[i(g,{modelValue:a.appointmentType,"onUpdate:modelValue":t[1]||(t[1]=l=>a.appointmentType=l)},{default:s(()=>[i(r,{value:"video"},{default:s(()=>[...t[10]||(t[10]=[h("视频问诊",-1)])]),_:1}),i(r,{value:"text"},{default:s(()=>[...t[11]||(t[11]=[h("图文问诊",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),i(o,{label:"选择患者:"},{default:s(()=>[i(g,{modelValue:a.patientId,"onUpdate:modelValue":t[2]||(t[2]=l=>a.patientId=l)},{default:s(()=>[i(r,{value:_.id},{default:s(()=>[h(w(_.name),1)]),_:1},8,["value"])]),_:1},8,["modelValue"])]),_:1}),i(o,{label:"渠道来源:",required:""},{default:s(()=>[i(ye,{modelValue:a.channel_source,"onUpdate:modelValue":t[3]||(t[3]=l=>a.channel_source=l),placeholder:"请选择渠道来源",class:"channel-source-select",onChange:ee},{default:s(()=>[(d(!0),k(x,null,N(Y.value,l=>(d(),D(b,{key:String(l.value),label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),B.value?(d(),D(o,{key:0,label:"自媒体补充:",required:""},{default:s(()=>[i(F,{modelValue:a.channel_source_detail,"onUpdate:modelValue":t[4]||(t[4]=l=>a.channel_source_detail=l),clearable:"",maxlength:"128","show-word-limit":"",placeholder:"请输入自媒体相关补充内容",class:"channel-source-select"},null,8,["modelValue"])]),_:1})):z("",!0),i(o,{label:"预约医生:"},{default:s(()=>[y("div",Qe,[i(g,{modelValue:u.value,"onUpdate:modelValue":t[5]||(t[5]=l=>u.value=l),onChange:pe},{default:s(()=>[(d(!0),k(x,null,N(R.value,l=>(d(),D(r,{key:l.id,value:l.id,class:"doctor-radio"},{default:s(()=>[h(w(l.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])]),_:1}),i(o,{label:"预约时间:"},{default:s(()=>[u.value?u.value&&m.value.length===0?(d(),D(H,{key:1,description:"该医生暂无排班","image-size":80})):(d(),k("div",Ke,[y("div",Je,[(d(!0),k(x,null,N(te.value,l=>(d(),D(M,{key:l.date,type:a.date===l.date?"primary":"",onClick:ke=>$(l.date),class:"date-button"},{default:s(()=>[h(w(l.label),1)]),_:2},1032,["type","onClick"]))),128))]),a.date?(d(),k("div",Xe,[y("div",Ze,[t[13]||(t[13]=y("span",{class:"header-title"},"可预约时段",-1)),i(M,{text:"",type:"primary",size:"small",loading:A.value,onClick:_e},{icon:s(()=>[i(Be(Le))]),default:s(()=>[t[12]||(t[12]=h(" 刷新 ",-1))]),_:1},8,["loading"])]),y("div",et,[(d(!0),k(x,null,N(ae.value,l=>(d(),k("div",{key:l.time,class:O(["time-slot-item",{available:l.available,unavailable:!l.available,selected:a.appointmentTime===l.time}]),onClick:ke=>fe(l)},[y("div",at,w(l.time),1),y("div",{class:O(["slot-status",{"status-available":l.available}])},w(l.available?"可约":"已约"),3)],10,tt))),128))])])):z("",!0)])):(d(),D(H,{key:0,description:"请先选择医生","image-size":80}))]),_:1}),i(o,{label:"备注:"},{default:s(()=>[i(F,{modelValue:a.remark,"onUpdate:modelValue":t[6]||(t[6]=l=>a.remark=l),type:"textarea",rows:2,placeholder:"请输入备注信息"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])),[[De,T.value]])]),_:1},8,["modelValue"])}}}),ct=Fe(lt,[["__scopeId","data-v-504aaeec"]]);export{ct as default}; diff --git a/server/public/admin/assets/article-D_HL_wgA.js b/server/public/admin/assets/article-Cct6St-z.js similarity index 93% rename from server/public/admin/assets/article-D_HL_wgA.js rename to server/public/admin/assets/article-Cct6St-z.js index a723854e0..63814b68c 100644 --- a/server/public/admin/assets/article-D_HL_wgA.js +++ b/server/public/admin/assets/article-Cct6St-z.js @@ -1 +1 @@ -import{r as e}from"./index-Dxvz9lb1.js";function a(t){return e.get({url:"/article.articleCate/lists",params:t})}function l(t){return e.get({url:"/article.articleCate/all",params:t})}function i(t){return e.post({url:"/article.articleCate/add",params:t})}function c(t){return e.post({url:"/article.articleCate/edit",params:t})}function u(t){return e.post({url:"/article.articleCate/delete",params:t})}function n(t){return e.get({url:"/article.articleCate/detail",params:t})}function s(t){return e.post({url:"/article.articleCate/updateStatus",params:t})}function o(t){return e.get({url:"/article.article/lists",params:t})}function d(t){return e.post({url:"/article.article/add",params:t})}function f(t){return e.post({url:"/article.article/edit",params:t})}function C(t){return e.post({url:"/article.article/delete",params:t})}function p(t){return e.get({url:"/article.article/detail",params:t})}function g(t){return e.post({url:"/article.article/updateStatus",params:t})}export{a,u as b,s as c,c as d,i as e,n as f,p as g,f as h,d as i,l as j,o as k,g as l,C as m}; +import{r as e}from"./index-Bkarz3gO.js";function a(t){return e.get({url:"/article.articleCate/lists",params:t})}function l(t){return e.get({url:"/article.articleCate/all",params:t})}function i(t){return e.post({url:"/article.articleCate/add",params:t})}function c(t){return e.post({url:"/article.articleCate/edit",params:t})}function u(t){return e.post({url:"/article.articleCate/delete",params:t})}function n(t){return e.get({url:"/article.articleCate/detail",params:t})}function s(t){return e.post({url:"/article.articleCate/updateStatus",params:t})}function o(t){return e.get({url:"/article.article/lists",params:t})}function d(t){return e.post({url:"/article.article/add",params:t})}function f(t){return e.post({url:"/article.article/edit",params:t})}function C(t){return e.post({url:"/article.article/delete",params:t})}function p(t){return e.get({url:"/article.article/detail",params:t})}function g(t){return e.post({url:"/article.article/updateStatus",params:t})}export{a,u as b,s as c,c as d,i as e,n as f,p as g,f as h,d as i,l as j,o as k,g as l,C as m}; diff --git a/server/public/admin/assets/asset-CMies7fs.js b/server/public/admin/assets/asset-LsxWDUaP.js similarity index 90% rename from server/public/admin/assets/asset-CMies7fs.js rename to server/public/admin/assets/asset-LsxWDUaP.js index 40a2368f6..7350b9b78 100644 --- a/server/public/admin/assets/asset-CMies7fs.js +++ b/server/public/admin/assets/asset-LsxWDUaP.js @@ -1 +1 @@ -import{r as e}from"./index-Dxvz9lb1.js";function r(s){return e.get({url:"/asset.AssetUser/lists",params:s})}function u(s){return e.post({url:"/asset.AssetUser/add",params:s})}function a(s){return e.post({url:"/asset.AssetUser/edit",params:s})}function i(s){return e.post({url:"/asset.AssetUser/delete",params:s})}function o(s){return e.get({url:"/asset.AssetResource/lists",params:s})}function n(s){return e.post({url:"/asset.AssetResource/add",params:s})}function A(s){return e.post({url:"/asset.AssetResource/edit",params:s})}function c(s){return e.post({url:"/asset.AssetResource/delete",params:s})}export{o as a,c as b,A as c,n as d,r as e,a as f,i as g,u as h}; +import{r as e}from"./index-Bkarz3gO.js";function r(s){return e.get({url:"/asset.AssetUser/lists",params:s})}function u(s){return e.post({url:"/asset.AssetUser/add",params:s})}function a(s){return e.post({url:"/asset.AssetUser/edit",params:s})}function i(s){return e.post({url:"/asset.AssetUser/delete",params:s})}function o(s){return e.get({url:"/asset.AssetResource/lists",params:s})}function n(s){return e.post({url:"/asset.AssetResource/add",params:s})}function A(s){return e.post({url:"/asset.AssetResource/edit",params:s})}function c(s){return e.post({url:"/asset.AssetResource/delete",params:s})}export{o as a,c as b,A as c,n as d,r as e,a as f,i as g,u as h}; diff --git a/server/public/admin/assets/attr-B6FOMi5s.js b/server/public/admin/assets/attr-B6FOMi5s.js deleted file mode 100644 index 03fcc267d..000000000 --- a/server/public/admin/assets/attr-B6FOMi5s.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-kgBs74gd.js";import"./.pnpm-CyuAWpdG.js";import"./add-nav.vue_vue_type_script_setup_true_lang-CaeukMqg.js";import"./index-ClBYIwNX.js";import"./index-Dxvz9lb1.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";export{o as default}; diff --git a/server/public/admin/assets/attr-B7D1YtoY.js b/server/public/admin/assets/attr-B7D1YtoY.js new file mode 100644 index 000000000..c9cb1a64e --- /dev/null +++ b/server/public/admin/assets/attr-B7D1YtoY.js @@ -0,0 +1 @@ +import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-CYy_gUQo.js";import"./.pnpm-CyuAWpdG.js";import"./index-Cqk_cdo9.js";import"./index-Bkarz3gO.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";export{o as default}; diff --git a/server/public/admin/assets/attr-BN_LWX1D.js b/server/public/admin/assets/attr-BN_LWX1D.js new file mode 100644 index 000000000..f1a689c1b --- /dev/null +++ b/server/public/admin/assets/attr-BN_LWX1D.js @@ -0,0 +1 @@ +import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-VLQINM6l.js";import"./.pnpm-CyuAWpdG.js";import"./index-Cqk_cdo9.js";import"./index-Bkarz3gO.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";export{o as default}; diff --git a/server/public/admin/assets/attr-BteOquiM.js b/server/public/admin/assets/attr-BteOquiM.js new file mode 100644 index 000000000..cadbdfef8 --- /dev/null +++ b/server/public/admin/assets/attr-BteOquiM.js @@ -0,0 +1 @@ +import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-DEQz3dX_.js";import"./.pnpm-CyuAWpdG.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./picker-BTh9eW9u.js";import"./index-CS5Wg0xx.js";import"./index-Bkarz3gO.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";export{o as default}; diff --git a/server/public/admin/assets/attr-C26ZoaXM.js b/server/public/admin/assets/attr-C26ZoaXM.js deleted file mode 100644 index 3e2630a65..000000000 --- a/server/public/admin/assets/attr-C26ZoaXM.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-Co9N5gOC.js";import"./.pnpm-CyuAWpdG.js";import"./index-ClBYIwNX.js";import"./index-Dxvz9lb1.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";export{o as default}; diff --git a/server/public/admin/assets/attr-CJFMtyHc.js b/server/public/admin/assets/attr-CJFMtyHc.js new file mode 100644 index 000000000..0e34bc339 --- /dev/null +++ b/server/public/admin/assets/attr-CJFMtyHc.js @@ -0,0 +1 @@ +import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-BoEBITiA.js";import"./.pnpm-CyuAWpdG.js";import"./picker-BTh9eW9u.js";import"./index-CS5Wg0xx.js";import"./index-Bkarz3gO.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";export{o as default}; diff --git a/server/public/admin/assets/attr-CaPGzd7K.js b/server/public/admin/assets/attr-CaPGzd7K.js new file mode 100644 index 000000000..b0b1e7386 --- /dev/null +++ b/server/public/admin/assets/attr-CaPGzd7K.js @@ -0,0 +1 @@ +import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-BPT_wucL.js";import"./.pnpm-CyuAWpdG.js";import"./index-Cqk_cdo9.js";import"./index-Bkarz3gO.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";export{o as default}; diff --git a/server/public/admin/assets/attr-D-UoRRL5.js b/server/public/admin/assets/attr-D-UoRRL5.js deleted file mode 100644 index 2a4a4b0c3..000000000 --- a/server/public/admin/assets/attr-D-UoRRL5.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-53z4NSmb.js";import"./.pnpm-CyuAWpdG.js";import"./index-ClBYIwNX.js";import"./index-Dxvz9lb1.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";export{o as default}; diff --git a/server/public/admin/assets/attr-D5lzCy74.js b/server/public/admin/assets/attr-D5lzCy74.js deleted file mode 100644 index 4396ef43b..000000000 --- a/server/public/admin/assets/attr-D5lzCy74.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-CsV4MUsa.js";import"./.pnpm-CyuAWpdG.js";import"./index-ClBYIwNX.js";import"./index-Dxvz9lb1.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";export{o as default}; diff --git a/server/public/admin/assets/attr-D9VUrNbu.js b/server/public/admin/assets/attr-D9VUrNbu.js deleted file mode 100644 index 5f5372bc6..000000000 --- a/server/public/admin/assets/attr-D9VUrNbu.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-BUrcLo0c.js";import"./.pnpm-CyuAWpdG.js";import"./add-nav.vue_vue_type_script_setup_true_lang-CaeukMqg.js";import"./index-ClBYIwNX.js";import"./index-Dxvz9lb1.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";export{o as default}; diff --git a/server/public/admin/assets/attr-DGZCW9wJ.js b/server/public/admin/assets/attr-DGZCW9wJ.js deleted file mode 100644 index dd11fedbe..000000000 --- a/server/public/admin/assets/attr-DGZCW9wJ.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-BWENGozb.js";import"./.pnpm-CyuAWpdG.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./picker-BDO86vcM.js";import"./index-BnfLT5cB.js";import"./index-Dxvz9lb1.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";export{o as default}; diff --git a/server/public/admin/assets/attr-DOCKwB30.js b/server/public/admin/assets/attr-DOCKwB30.js deleted file mode 100644 index d2cdd6d36..000000000 --- a/server/public/admin/assets/attr-DOCKwB30.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-DQUc65nD.js";import"./.pnpm-CyuAWpdG.js";import"./picker-BDO86vcM.js";import"./index-BnfLT5cB.js";import"./index-Dxvz9lb1.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";export{o as default}; diff --git a/server/public/admin/assets/attr-DUHfvQ2s.js b/server/public/admin/assets/attr-DUHfvQ2s.js new file mode 100644 index 000000000..a9295d870 --- /dev/null +++ b/server/public/admin/assets/attr-DUHfvQ2s.js @@ -0,0 +1 @@ +import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-BsVB4T8K.js";import"./.pnpm-CyuAWpdG.js";import"./add-nav.vue_vue_type_script_setup_true_lang-ByQYZkB9.js";import"./index-Cqk_cdo9.js";import"./index-Bkarz3gO.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";export{o as default}; diff --git a/server/public/admin/assets/attr-BKcZmDiX.js b/server/public/admin/assets/attr-DWgf0zU2.js similarity index 92% rename from server/public/admin/assets/attr-BKcZmDiX.js rename to server/public/admin/assets/attr-DWgf0zU2.js index 627f69739..b251862e2 100644 --- a/server/public/admin/assets/attr-BKcZmDiX.js +++ b/server/public/admin/assets/attr-DWgf0zU2.js @@ -1 +1 @@ -import{o as O,q as s,O as i,D as t,v as l,bj as q,s as o,bf as A,u as p,bq as S,L as _,P as x,r as b,bR as G,F as K,bb as L,aA as P,I as T,K as H,bd as J,p as M,co as E}from"./.pnpm-CyuAWpdG.js";import{_ as Q}from"./index-ClBYIwNX.js";import{c as W,j as h,_ as X}from"./index-Dxvz9lb1.js";import{_ as Y}from"./picker-BKygjDQE.js";import{_ as Z}from"./picker-BDO86vcM.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";const ee={class:"flex items-end"},te={key:0,class:"text-xs text-tx-secondary ml-2"},le={key:1,class:"text-xs text-tx-secondary ml-2"},oe={class:"flex-1"},ae={class:"bg-fill-light w-full p-4 mt-4"},ne={class:"flex justify-center w-[467px]"},se={class:"flex-1"},de={class:"flex-1 flex items-center"},me={class:"drag-move cursor-move ml-auto"},ue={key:0,class:"mt-4"},y=5,ie=O({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},emits:["update:content"],setup(d,{emit:C}){const V=C,f=d,c=M({get:()=>f.content,set:m=>{V("update:content",m)}}),j=()=>{var m;if(((m=f.content.data)==null?void 0:m.length){var u;if(((u=f.content.data)==null?void 0:u.length)<=1)return h.msgError("最少保留一张图片");const e=E(f.content);e.data.splice(m,1),V("update:content",e)};return(m,e)=>{const u=S,k=A,g=q,v=Z,D=Y,F=P,w=L,I=T,N=W,R=Q,$=H,z=J;return s(),i(z,{"label-width":"70px"},{default:t(()=>[l(g,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[e[5]||(e[5]=o("div",{class:"flex items-end mb-4"},[o("div",{class:"text-base dark:text-[#ffffff] text-[#101010] font-medium"},"展示样式")],-1)),l(k,{modelValue:p(c).style,"onUpdate:modelValue":e[0]||(e[0]=r=>p(c).style=r)},{default:t(()=>[l(u,{value:1},{default:t(()=>[...e[3]||(e[3]=[_("常规",-1)])]),_:1}),l(u,{value:2},{default:t(()=>[...e[4]||(e[4]=[_("大屏",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),d.content.style==1?(s(),i(g,{key:0,shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[e[8]||(e[8]=o("div",{class:"flex items-end mb-4"},[o("div",{class:"text-base text-[#101010] dark:text-[#ffffff] font-medium"},"背景联动")],-1)),l(k,{modelValue:p(c).bg_style,"onUpdate:modelValue":e[1]||(e[1]=r=>p(c).bg_style=r)},{default:t(()=>[l(u,{value:1},{default:t(()=>[...e[6]||(e[6]=[_("开启",-1)])]),_:1}),l(u,{value:0},{default:t(()=>[...e[7]||(e[7]=[_("关闭",-1)])]),_:1})]),_:1},8,["modelValue"]),e[9]||(e[9]=o("div",{class:"p-[15px] rounded-[8px] bg-[#f3f8ff] text-[#136bdf] mt-2"}," 开启背景联动后,需为轮播图设置背景图,轮播图切换时,背景图也跟随切换,此时该页面自身的“页面背景“设置将失效。 ",-1))]),_:1})):x("",!0),l(g,{shadow:"never",class:"!border-none flex-1 mt-2"},{default:t(()=>{var r;return[o("div",ee,[e[10]||(e[10]=o("div",{class:"text-base text-[#101010] dark:text-[#ffffff] font-medium"},"轮播图片",-1)),d.content.style==1?(s(),b("div",te," 最多添加5张,建议图片尺寸:750px*340px ")):(s(),b("div",le," 最多添加5张,建议图片尺寸:750px*1100px "))]),o("div",oe,[l(p(G),{class:"draggable",modelValue:p(c).data,"onUpdate:modelValue":e[2]||(e[2]=a=>p(c).data=a),animation:"300",handle:".drag-move","item-key":"index"},{item:t(({element:a,index:U})=>[(s(),i(R,{key:U,onClose:n=>B(U),class:"w-full"},{default:t(()=>[o("div",ae,[o("div",ne,[d.content.style==1?(s(),b(K,{key:0},[l(v,{size:"122px",modelValue:a.image,"onUpdate:modelValue":n=>a.image=n,"upload-class":"bg-body","exclude-domain":""},{upload:t(()=>[...e[11]||(e[11]=[o("div",{class:"w-[122px] h-[122px] banner-upload-btn"}," 轮播图 ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"]),d.content.style==1||d.content.bg_style==1?(s(),i(v,{key:0,class:"ml-[40px]",size:"122px",modelValue:a.bg,"onUpdate:modelValue":n=>a.bg=n,"upload-class":"bg-body","exclude-domain":""},{upload:t(()=>[...e[12]||(e[12]=[o("div",{class:"w-[122px] h-[122px] banner-upload-btn"}," 背景图 ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"])):x("",!0)],64)):(s(),i(v,{key:1,width:"396px",height:"196px",modelValue:a.image,"onUpdate:modelValue":n=>a.image=n,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]))]),o("div",se,[l(w,{class:"mt-[18px]",label:"图片链接"},{default:t(()=>[d.type=="mobile"?(s(),i(D,{key:0,modelValue:a.link,"onUpdate:modelValue":n=>a.link=n},null,8,["modelValue","onUpdate:modelValue"])):x("",!0),d.type=="pc"?(s(),i(F,{key:1,placeholder:"请输入链接",modelValue:a.link.path,"onUpdate:modelValue":n=>a.link.path=n},null,8,["modelValue","onUpdate:modelValue"])):x("",!0)]),_:2},1024),l(w,{label:"是否显示",class:"mt-[18px] !mb-0"},{default:t(()=>[o("div",de,[l(I,{modelValue:a.is_show,"onUpdate:modelValue":n=>a.is_show=n,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),o("div",me,[l(N,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])]),((r=d.content.data)==null?void 0:r.length)[...e[13]||(e[13]=[_("添加图片",-1)])]),_:1})])):x("",!0)]}),_:1})]),_:1})}}}),Ue=X(ie,[["__scopeId","data-v-f10c74d9"]]);export{Ue as default}; +import{o as O,q as s,O as i,D as t,v as l,bj as q,s as o,bf as A,u as p,bq as S,L as _,P as x,r as b,bR as G,F as K,bb as L,aA as P,I as T,K as H,bd as J,p as M,co as E}from"./.pnpm-CyuAWpdG.js";import{_ as Q}from"./index-Cqk_cdo9.js";import{c as W,j as h,_ as X}from"./index-Bkarz3gO.js";import{_ as Y}from"./picker-CSWk6Vbk.js";import{_ as Z}from"./picker-BTh9eW9u.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";const ee={class:"flex items-end"},te={key:0,class:"text-xs text-tx-secondary ml-2"},le={key:1,class:"text-xs text-tx-secondary ml-2"},oe={class:"flex-1"},ae={class:"bg-fill-light w-full p-4 mt-4"},ne={class:"flex justify-center w-[467px]"},se={class:"flex-1"},de={class:"flex-1 flex items-center"},me={class:"drag-move cursor-move ml-auto"},ue={key:0,class:"mt-4"},y=5,ie=O({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},emits:["update:content"],setup(d,{emit:C}){const V=C,f=d,c=M({get:()=>f.content,set:m=>{V("update:content",m)}}),j=()=>{var m;if(((m=f.content.data)==null?void 0:m.length){var u;if(((u=f.content.data)==null?void 0:u.length)<=1)return h.msgError("最少保留一张图片");const e=E(f.content);e.data.splice(m,1),V("update:content",e)};return(m,e)=>{const u=S,k=A,g=q,v=Z,D=Y,F=P,w=L,I=T,N=W,R=Q,$=H,z=J;return s(),i(z,{"label-width":"70px"},{default:t(()=>[l(g,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[e[5]||(e[5]=o("div",{class:"flex items-end mb-4"},[o("div",{class:"text-base dark:text-[#ffffff] text-[#101010] font-medium"},"展示样式")],-1)),l(k,{modelValue:p(c).style,"onUpdate:modelValue":e[0]||(e[0]=r=>p(c).style=r)},{default:t(()=>[l(u,{value:1},{default:t(()=>[...e[3]||(e[3]=[_("常规",-1)])]),_:1}),l(u,{value:2},{default:t(()=>[...e[4]||(e[4]=[_("大屏",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),d.content.style==1?(s(),i(g,{key:0,shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[e[8]||(e[8]=o("div",{class:"flex items-end mb-4"},[o("div",{class:"text-base text-[#101010] dark:text-[#ffffff] font-medium"},"背景联动")],-1)),l(k,{modelValue:p(c).bg_style,"onUpdate:modelValue":e[1]||(e[1]=r=>p(c).bg_style=r)},{default:t(()=>[l(u,{value:1},{default:t(()=>[...e[6]||(e[6]=[_("开启",-1)])]),_:1}),l(u,{value:0},{default:t(()=>[...e[7]||(e[7]=[_("关闭",-1)])]),_:1})]),_:1},8,["modelValue"]),e[9]||(e[9]=o("div",{class:"p-[15px] rounded-[8px] bg-[#f3f8ff] text-[#136bdf] mt-2"}," 开启背景联动后,需为轮播图设置背景图,轮播图切换时,背景图也跟随切换,此时该页面自身的“页面背景“设置将失效。 ",-1))]),_:1})):x("",!0),l(g,{shadow:"never",class:"!border-none flex-1 mt-2"},{default:t(()=>{var r;return[o("div",ee,[e[10]||(e[10]=o("div",{class:"text-base text-[#101010] dark:text-[#ffffff] font-medium"},"轮播图片",-1)),d.content.style==1?(s(),b("div",te," 最多添加5张,建议图片尺寸:750px*340px ")):(s(),b("div",le," 最多添加5张,建议图片尺寸:750px*1100px "))]),o("div",oe,[l(p(G),{class:"draggable",modelValue:p(c).data,"onUpdate:modelValue":e[2]||(e[2]=a=>p(c).data=a),animation:"300",handle:".drag-move","item-key":"index"},{item:t(({element:a,index:U})=>[(s(),i(R,{key:U,onClose:n=>B(U),class:"w-full"},{default:t(()=>[o("div",ae,[o("div",ne,[d.content.style==1?(s(),b(K,{key:0},[l(v,{size:"122px",modelValue:a.image,"onUpdate:modelValue":n=>a.image=n,"upload-class":"bg-body","exclude-domain":""},{upload:t(()=>[...e[11]||(e[11]=[o("div",{class:"w-[122px] h-[122px] banner-upload-btn"}," 轮播图 ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"]),d.content.style==1||d.content.bg_style==1?(s(),i(v,{key:0,class:"ml-[40px]",size:"122px",modelValue:a.bg,"onUpdate:modelValue":n=>a.bg=n,"upload-class":"bg-body","exclude-domain":""},{upload:t(()=>[...e[12]||(e[12]=[o("div",{class:"w-[122px] h-[122px] banner-upload-btn"}," 背景图 ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"])):x("",!0)],64)):(s(),i(v,{key:1,width:"396px",height:"196px",modelValue:a.image,"onUpdate:modelValue":n=>a.image=n,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]))]),o("div",se,[l(w,{class:"mt-[18px]",label:"图片链接"},{default:t(()=>[d.type=="mobile"?(s(),i(D,{key:0,modelValue:a.link,"onUpdate:modelValue":n=>a.link=n},null,8,["modelValue","onUpdate:modelValue"])):x("",!0),d.type=="pc"?(s(),i(F,{key:1,placeholder:"请输入链接",modelValue:a.link.path,"onUpdate:modelValue":n=>a.link.path=n},null,8,["modelValue","onUpdate:modelValue"])):x("",!0)]),_:2},1024),l(w,{label:"是否显示",class:"mt-[18px] !mb-0"},{default:t(()=>[o("div",de,[l(I,{modelValue:a.is_show,"onUpdate:modelValue":n=>a.is_show=n,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),o("div",me,[l(N,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])]),((r=d.content.data)==null?void 0:r.length)[...e[13]||(e[13]=[_("添加图片",-1)])]),_:1})])):x("",!0)]}),_:1})]),_:1})}}}),Ue=X(ie,[["__scopeId","data-v-f10c74d9"]]);export{Ue as default}; diff --git a/server/public/admin/assets/attr-Dg64O8cG.js b/server/public/admin/assets/attr-Dg64O8cG.js new file mode 100644 index 000000000..178b10292 --- /dev/null +++ b/server/public/admin/assets/attr-Dg64O8cG.js @@ -0,0 +1 @@ +import{_ as o}from"./attr.vue_vue_type_script_setup_true_lang-DyWBgKkz.js";import"./.pnpm-CyuAWpdG.js";import"./add-nav.vue_vue_type_script_setup_true_lang-ByQYZkB9.js";import"./index-Cqk_cdo9.js";import"./index-Bkarz3gO.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";export{o as default}; diff --git a/server/public/admin/assets/attr-D0wjYsnJ.js b/server/public/admin/assets/attr-DzQFlx_u.js similarity index 74% rename from server/public/admin/assets/attr-D0wjYsnJ.js rename to server/public/admin/assets/attr-DzQFlx_u.js index a01ad3e13..51cc850ae 100644 --- a/server/public/admin/assets/attr-D0wjYsnJ.js +++ b/server/public/admin/assets/attr-DzQFlx_u.js @@ -1 +1 @@ -import{o as b,q as c,r as V,s as v,v as t,D as a,Y as x,X as E,u as l,bd as g,F as k,p as w}from"./.pnpm-CyuAWpdG.js";import{_ as p}from"./menu-set.vue_vue_type_script_setup_true_lang-CJyli6Nb.js";import"./index-ClBYIwNX.js";import"./index-Dxvz9lb1.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";const $=b({__name:"attr",props:{modelValue:{type:Object,default:()=>({nav:[],menu:{}})}},emits:["update:modelValue"],setup(s,{emit:u}){const d=s,i=u,o=w({get(){return d.modelValue},set(n){i("update:modelValue",n)}});return(n,e)=>{const r=E,f=x,_=g;return c(),V(k,null,[e[2]||(e[2]=v("div",{class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2"}," pc导航设置 ",-1)),t(_,{class:"mt-4","label-width":"70px"},{default:a(()=>[t(f,{"model-value":"nav"},{default:a(()=>[t(r,{label:"主导航设置",name:"nav"},{default:a(()=>[t(p,{modelValue:l(o).nav,"onUpdate:modelValue":e[0]||(e[0]=m=>l(o).nav=m)},null,8,["modelValue"])]),_:1}),t(r,{label:"菜单设置",name:"menu"},{default:a(()=>[t(p,{modelValue:l(o).menu,"onUpdate:modelValue":e[1]||(e[1]=m=>l(o).menu=m)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],64)}}});export{$ as default}; +import{o as b,q as c,r as V,s as v,v as t,D as a,Y as x,X as E,u as l,bd as g,F as k,p as w}from"./.pnpm-CyuAWpdG.js";import{_ as p}from"./menu-set.vue_vue_type_script_setup_true_lang-xu18r-v2.js";import"./index-Cqk_cdo9.js";import"./index-Bkarz3gO.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";const $=b({__name:"attr",props:{modelValue:{type:Object,default:()=>({nav:[],menu:{}})}},emits:["update:modelValue"],setup(s,{emit:u}){const d=s,i=u,o=w({get(){return d.modelValue},set(n){i("update:modelValue",n)}});return(n,e)=>{const r=E,f=x,_=g;return c(),V(k,null,[e[2]||(e[2]=v("div",{class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2"}," pc导航设置 ",-1)),t(_,{class:"mt-4","label-width":"70px"},{default:a(()=>[t(f,{"model-value":"nav"},{default:a(()=>[t(r,{label:"主导航设置",name:"nav"},{default:a(()=>[t(p,{modelValue:l(o).nav,"onUpdate:modelValue":e[0]||(e[0]=m=>l(o).nav=m)},null,8,["modelValue"])]),_:1}),t(r,{label:"菜单设置",name:"menu"},{default:a(()=>[t(p,{modelValue:l(o).menu,"onUpdate:modelValue":e[1]||(e[1]=m=>l(o).menu=m)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],64)}}});export{$ as default}; diff --git a/server/public/admin/assets/attr-setting-CWaq33SP.js b/server/public/admin/assets/attr-setting-CWaq33SP.js new file mode 100644 index 000000000..f227a8548 --- /dev/null +++ b/server/public/admin/assets/attr-setting-CWaq33SP.js @@ -0,0 +1 @@ +import{_ as o}from"./attr-setting.vue_vue_type_script_setup_true_lang-D7NyugHW.js";import"./.pnpm-CyuAWpdG.js";import"./index-BLw2qqEh.js";import"./attr-DWgf0zU2.js";import"./index-Cqk_cdo9.js";import"./index-Bkarz3gO.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./content.vue_vue_type_script_setup_true_lang-3GiNjvv7.js";import"./decoration-img-SoINHtbg.js";import"./attr.vue_vue_type_script_setup_true_lang-BoEBITiA.js";import"./content-BR-B7Y89.js";import"./attr.vue_vue_type_script_setup_true_lang-VLQINM6l.js";import"./content.vue_vue_type_script_setup_true_lang-DJb4aHFp.js";import"./attr.vue_vue_type_script_setup_true_lang-BsVB4T8K.js";import"./add-nav.vue_vue_type_script_setup_true_lang-ByQYZkB9.js";import"./content-CPrgdURU.js";import"./attr.vue_vue_type_script_setup_true_lang-DyWBgKkz.js";import"./content.vue_vue_type_script_setup_true_lang-DIToE7Db.js";import"./attr.vue_vue_type_script_setup_true_lang-Bkj1p-jl.js";import"./content-B1kkCzVQ.js";import"./decoration-BCfnNTDP.js";import"./attr.vue_vue_type_script_setup_true_lang-DEQz3dX_.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./content-DLUkNAW_.js";import"./content.vue_vue_type_script_setup_true_lang-D7k_-QjC.js";import"./attr.vue_vue_type_script_setup_true_lang-jrtitgMf.js";import"./content-C1VdJnCo.js";import"./attr.vue_vue_type_script_setup_true_lang-BPT_wucL.js";import"./content.vue_vue_type_script_setup_true_lang-_A_7DW4P.js";import"./attr.vue_vue_type_script_setup_true_lang-ObQLkrtE.js";import"./content-DraD2KOm.js";export{o as default}; diff --git a/server/public/admin/assets/attr-setting-DN289Yb7.js b/server/public/admin/assets/attr-setting-DN289Yb7.js deleted file mode 100644 index 46f52cb1c..000000000 --- a/server/public/admin/assets/attr-setting-DN289Yb7.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./attr-setting.vue_vue_type_script_setup_true_lang-BB4y2fA5.js";import"./.pnpm-CyuAWpdG.js";import"./index-DdPJHEsY.js";import"./attr-BKcZmDiX.js";import"./index-ClBYIwNX.js";import"./index-Dxvz9lb1.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./content.vue_vue_type_script_setup_true_lang-DVlBS5Y8.js";import"./decoration-img-DKpVnT4z.js";import"./attr.vue_vue_type_script_setup_true_lang-DQUc65nD.js";import"./content-CkQUB7ti.js";import"./attr.vue_vue_type_script_setup_true_lang-Co9N5gOC.js";import"./content.vue_vue_type_script_setup_true_lang-D3yhrH9m.js";import"./attr.vue_vue_type_script_setup_true_lang-BUrcLo0c.js";import"./add-nav.vue_vue_type_script_setup_true_lang-CaeukMqg.js";import"./content-BtlOdmdD.js";import"./attr.vue_vue_type_script_setup_true_lang-kgBs74gd.js";import"./content.vue_vue_type_script_setup_true_lang-CwwLmi2B.js";import"./attr.vue_vue_type_script_setup_true_lang-Bkj1p-jl.js";import"./content-DqDTOak9.js";import"./decoration-9ln5Pyvl.js";import"./attr.vue_vue_type_script_setup_true_lang-BWENGozb.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./content-0LXu-5MK.js";import"./content.vue_vue_type_script_setup_true_lang-BlC3oWQE.js";import"./attr.vue_vue_type_script_setup_true_lang-jrtitgMf.js";import"./content-C5W1CaMe.js";import"./attr.vue_vue_type_script_setup_true_lang-CsV4MUsa.js";import"./content.vue_vue_type_script_setup_true_lang-Unv1Zxh1.js";import"./attr.vue_vue_type_script_setup_true_lang-ObQLkrtE.js";import"./content-DdjhpUgB.js";export{o as default}; diff --git a/server/public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang-BB4y2fA5.js b/server/public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang-D7NyugHW.js similarity index 94% rename from server/public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang-BB4y2fA5.js rename to server/public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang-D7NyugHW.js index 3c7fb58ea..6b153fbcd 100644 --- a/server/public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang-BB4y2fA5.js +++ b/server/public/admin/assets/attr-setting.vue_vue_type_script_setup_true_lang-D7NyugHW.js @@ -1 +1 @@ -import{o as b,q as a,r as g,v as c,bj as y,D as r,s as x,T as _,a2 as h,O as i,a3 as w,a4 as v,u as C}from"./.pnpm-CyuAWpdG.js";import{e as k}from"./index-DdPJHEsY.js";const B={class:"pages-setting"},D={class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2 text-xl font-medium"},N=b({__name:"attr-setting",props:{widget:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},emits:["update:content"],setup(e,{emit:d}){const m=d,p=n=>{m("update:content",n)};return(n,E)=>{const f=y,u=h;return a(),g("div",B,[c(f,{shadow:"never",class:"!border-none flex"},{default:r(()=>{var t;return[x("div",D,_((t=e.widget)==null?void 0:t.title),1)]}),_:1}),c(u,{class:"w-full",style:{height:"calc(100% - 60px)"}},{default:r(()=>{var t,s,o,l;return[(a(),i(w,null,[(a(),i(v((s=C(k)[(t=e.widget)==null?void 0:t.name])==null?void 0:s.attr),{content:(o=e.widget)==null?void 0:o.content,styles:(l=e.widget)==null?void 0:l.styles,type:e.type,"onUpdate:content":p},null,40,["content","styles","type"]))],1024))]}),_:1})])}}});export{N as _}; +import{o as b,q as a,r as g,v as c,bj as y,D as r,s as x,T as _,a2 as h,O as i,a3 as w,a4 as v,u as C}from"./.pnpm-CyuAWpdG.js";import{e as k}from"./index-BLw2qqEh.js";const B={class:"pages-setting"},D={class:"title flex items-center before:w-[3px] before:h-[14px] before:block before:bg-primary before:mr-2 text-xl font-medium"},N=b({__name:"attr-setting",props:{widget:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},emits:["update:content"],setup(e,{emit:d}){const m=d,p=n=>{m("update:content",n)};return(n,E)=>{const f=y,u=h;return a(),g("div",B,[c(f,{shadow:"never",class:"!border-none flex"},{default:r(()=>{var t;return[x("div",D,_((t=e.widget)==null?void 0:t.title),1)]}),_:1}),c(u,{class:"w-full",style:{height:"calc(100% - 60px)"}},{default:r(()=>{var t,s,o,l;return[(a(),i(w,null,[(a(),i(v((s=C(k)[(t=e.widget)==null?void 0:t.name])==null?void 0:s.attr),{content:(o=e.widget)==null?void 0:o.content,styles:(l=e.widget)==null?void 0:l.styles,type:e.type,"onUpdate:content":p},null,40,["content","styles","type"]))],1024))]}),_:1})])}}});export{N as _}; diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CsV4MUsa.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BPT_wucL.js similarity index 93% rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CsV4MUsa.js rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BPT_wucL.js index de65164e2..35fd46fbe 100644 --- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CsV4MUsa.js +++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BPT_wucL.js @@ -1 +1 @@ -import{o as $,q as u,r as b,v as t,D as l,bj as I,s,u as i,bR as O,O as A,bb as F,aA as R,I as q,K as z,L as K,P as L,bd as P,p as S,co as g}from"./.pnpm-CyuAWpdG.js";import{_ as T}from"./index-ClBYIwNX.js";import{c as G,j as v}from"./index-Dxvz9lb1.js";import{_ as H}from"./picker-BKygjDQE.js";import{_ as J}from"./picker-BDO86vcM.js";const M={class:"bg-fill-light flex items-center w-full p-4 mt-4"},Q={class:"ml-3 flex-1"},W={class:"flex-1 flex items-center"},X={class:"drag-move cursor-move ml-auto"},Y={key:0,class:"mt-4"},p=5,le=$({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(r,{emit:h}){const m=h,c=r,f=S({get:()=>c.content,set:a=>{m("update:content",a)}}),k=()=>{var a;if(((a=c.content.data)==null?void 0:a.length){var d;if(((d=c.content.data)==null?void 0:d.length)<=1)return v.msgError("最少保留一张图片");const e=g(c.content);e.data.splice(a,1),m("update:content",e)};return(a,e)=>{const d=J,y=R,_=F,E=H,U=q,C=G,B=T,D=z,j=I,N=P;return u(),b("div",null,[t(N,{"label-width":"70px"},{default:l(()=>[t(j,{shadow:"never",class:"!border-none flex mt-2"},{default:l(()=>{var x;return[e[2]||(e[2]=s("div",{class:"flex items-end mb-4"},[s("div",{class:"text-base text-[#101010] font-medium"},"菜单"),s("div",{class:"text-xs text-tx-secondary ml-2"}," 最多添加5张,建议图片尺寸:750px*200px ")],-1)),t(i(O),{class:"draggable",modelValue:i(f).data,"onUpdate:modelValue":e[0]||(e[0]=o=>i(f).data=o),animation:"300",handle:".drag-move","item-key":"index"},{item:l(({element:o,index:V})=>[(u(),A(B,{key:V,onClose:n=>w(V),class:"w-[467px]"},{default:l(()=>[s("div",M,[t(d,{modelValue:o.image,"onUpdate:modelValue":n=>o.image=n,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),s("div",Q,[t(_,{label:"图片名称"},{default:l(()=>[t(y,{modelValue:o.name,"onUpdate:modelValue":n=>o.name=n,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),t(_,{class:"mt-[18px]",label:"图片链接"},{default:l(()=>[t(E,{modelValue:o.link,"onUpdate:modelValue":n=>o.link=n},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),t(_,{label:"是否显示",class:"mt-[18px]"},{default:l(()=>[s("div",W,[t(U,{modelValue:o.is_show,"onUpdate:modelValue":n=>o.is_show=n,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),s("div",X,[t(C,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"]),((x=r.content.data)==null?void 0:x.length)[...e[1]||(e[1]=[K("添加图片",-1)])]),_:1})])):L("",!0)]}),_:1})]),_:1})])}}});export{le as _}; +import{o as $,q as u,r as b,v as t,D as l,bj as I,s,u as i,bR as O,O as A,bb as F,aA as R,I as q,K as z,L as K,P as L,bd as P,p as S,co as g}from"./.pnpm-CyuAWpdG.js";import{_ as T}from"./index-Cqk_cdo9.js";import{c as G,j as v}from"./index-Bkarz3gO.js";import{_ as H}from"./picker-CSWk6Vbk.js";import{_ as J}from"./picker-BTh9eW9u.js";const M={class:"bg-fill-light flex items-center w-full p-4 mt-4"},Q={class:"ml-3 flex-1"},W={class:"flex-1 flex items-center"},X={class:"drag-move cursor-move ml-auto"},Y={key:0,class:"mt-4"},p=5,le=$({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(r,{emit:h}){const m=h,c=r,f=S({get:()=>c.content,set:a=>{m("update:content",a)}}),k=()=>{var a;if(((a=c.content.data)==null?void 0:a.length){var d;if(((d=c.content.data)==null?void 0:d.length)<=1)return v.msgError("最少保留一张图片");const e=g(c.content);e.data.splice(a,1),m("update:content",e)};return(a,e)=>{const d=J,y=R,_=F,E=H,U=q,C=G,B=T,D=z,j=I,N=P;return u(),b("div",null,[t(N,{"label-width":"70px"},{default:l(()=>[t(j,{shadow:"never",class:"!border-none flex mt-2"},{default:l(()=>{var x;return[e[2]||(e[2]=s("div",{class:"flex items-end mb-4"},[s("div",{class:"text-base text-[#101010] font-medium"},"菜单"),s("div",{class:"text-xs text-tx-secondary ml-2"}," 最多添加5张,建议图片尺寸:750px*200px ")],-1)),t(i(O),{class:"draggable",modelValue:i(f).data,"onUpdate:modelValue":e[0]||(e[0]=o=>i(f).data=o),animation:"300",handle:".drag-move","item-key":"index"},{item:l(({element:o,index:V})=>[(u(),A(B,{key:V,onClose:n=>w(V),class:"w-[467px]"},{default:l(()=>[s("div",M,[t(d,{modelValue:o.image,"onUpdate:modelValue":n=>o.image=n,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),s("div",Q,[t(_,{label:"图片名称"},{default:l(()=>[t(y,{modelValue:o.name,"onUpdate:modelValue":n=>o.name=n,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),t(_,{class:"mt-[18px]",label:"图片链接"},{default:l(()=>[t(E,{modelValue:o.link,"onUpdate:modelValue":n=>o.link=n},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),t(_,{label:"是否显示",class:"mt-[18px]"},{default:l(()=>[s("div",W,[t(U,{modelValue:o.is_show,"onUpdate:modelValue":n=>o.is_show=n,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),s("div",X,[t(C,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"]),((x=r.content.data)==null?void 0:x.length)[...e[1]||(e[1]=[K("添加图片",-1)])]),_:1})])):L("",!0)]}),_:1})]),_:1})])}}});export{le as _}; diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DQUc65nD.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BoEBITiA.js similarity index 96% rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DQUc65nD.js rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BoEBITiA.js index 85e774112..6c6709f30 100644 --- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DQUc65nD.js +++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BoEBITiA.js @@ -1 +1 @@ -import{o as V,q as b,r as w,v as e,D as n,bj as x,bb as g,aA as k,u as o,s as E,bd as U,p as v}from"./.pnpm-CyuAWpdG.js";import{_ as j}from"./picker-BDO86vcM.js";const B=V({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(u,{emit:p}){const r=p,i=u,l=v({get:()=>i.content,set:d=>{r("update:content",d)}});return(d,t)=>{const s=k,m=g,_=j,c=x,f=U;return b(),w("div",null,[e(f,{"label-width":"90px",size:"large","label-position":"top"},{default:n(()=>[e(c,{shadow:"never",class:"!border-none flex mt-2"},{default:n(()=>[e(m,{label:"平台名称"},{default:n(()=>[e(s,{class:"w-[400px]","show-word-limit":"",maxlength:"20",modelValue:o(l).title,"onUpdate:modelValue":t[0]||(t[0]=a=>o(l).title=a)},null,8,["modelValue"])]),_:1}),e(m,{label:"客服二维码"},{default:n(()=>[E("div",null,[e(_,{modelValue:o(l).qrcode,"onUpdate:modelValue":t[1]||(t[1]=a=>o(l).qrcode=a),"exclude-domain":""},null,8,["modelValue"])])]),_:1}),e(m,{label:"备注"},{default:n(()=>[e(s,{class:"w-[400px]","show-word-limit":"",maxlength:"20",modelValue:o(l).remark,"onUpdate:modelValue":t[2]||(t[2]=a=>o(l).remark=a)},null,8,["modelValue"])]),_:1}),e(m,{label:"联系电话"},{default:n(()=>[e(s,{class:"w-[400px]",modelValue:o(l).mobile,"onUpdate:modelValue":t[3]||(t[3]=a=>o(l).mobile=a)},null,8,["modelValue"])]),_:1}),e(m,{label:"服务时间"},{default:n(()=>[e(s,{class:"w-[400px]","show-word-limit":"",maxlength:"20",modelValue:o(l).time,"onUpdate:modelValue":t[4]||(t[4]=a=>o(l).time=a)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})])}}});export{B as _}; +import{o as V,q as b,r as w,v as e,D as n,bj as x,bb as g,aA as k,u as o,s as E,bd as U,p as v}from"./.pnpm-CyuAWpdG.js";import{_ as j}from"./picker-BTh9eW9u.js";const B=V({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(u,{emit:p}){const r=p,i=u,l=v({get:()=>i.content,set:d=>{r("update:content",d)}});return(d,t)=>{const s=k,m=g,_=j,c=x,f=U;return b(),w("div",null,[e(f,{"label-width":"90px",size:"large","label-position":"top"},{default:n(()=>[e(c,{shadow:"never",class:"!border-none flex mt-2"},{default:n(()=>[e(m,{label:"平台名称"},{default:n(()=>[e(s,{class:"w-[400px]","show-word-limit":"",maxlength:"20",modelValue:o(l).title,"onUpdate:modelValue":t[0]||(t[0]=a=>o(l).title=a)},null,8,["modelValue"])]),_:1}),e(m,{label:"客服二维码"},{default:n(()=>[E("div",null,[e(_,{modelValue:o(l).qrcode,"onUpdate:modelValue":t[1]||(t[1]=a=>o(l).qrcode=a),"exclude-domain":""},null,8,["modelValue"])])]),_:1}),e(m,{label:"备注"},{default:n(()=>[e(s,{class:"w-[400px]","show-word-limit":"",maxlength:"20",modelValue:o(l).remark,"onUpdate:modelValue":t[2]||(t[2]=a=>o(l).remark=a)},null,8,["modelValue"])]),_:1}),e(m,{label:"联系电话"},{default:n(()=>[e(s,{class:"w-[400px]",modelValue:o(l).mobile,"onUpdate:modelValue":t[3]||(t[3]=a=>o(l).mobile=a)},null,8,["modelValue"])]),_:1}),e(m,{label:"服务时间"},{default:n(()=>[e(s,{class:"w-[400px]","show-word-limit":"",maxlength:"20",modelValue:o(l).time,"onUpdate:modelValue":t[4]||(t[4]=a=>o(l).time=a)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})])}}});export{B as _}; diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BUrcLo0c.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BsVB4T8K.js similarity index 96% rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BUrcLo0c.js rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BsVB4T8K.js index 437f80055..30067f5cb 100644 --- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BUrcLo0c.js +++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BsVB4T8K.js @@ -1 +1 @@ -import{o as V,q as E,r as w,v as t,D as o,bj as y,bb as j,aA as B,u as s,s as a,bf as C,bq as N,L as u,bd as U,p as g}from"./.pnpm-CyuAWpdG.js";import{_ as k}from"./add-nav.vue_vue_type_script_setup_true_lang-CaeukMqg.js";const q={class:"flex-1"},I=V({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(p,{emit:i}){const f=i,_=p,l=g({get:()=>_.content,set:m=>{f("update:content",m)}});return(m,e)=>{const x=B,c=j,d=y,r=N,b=C,v=U;return E(),w("div",null,[t(v,{"label-width":"70px"},{default:o(()=>[t(d,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[t(c,{label:"标题"},{default:o(()=>[t(x,{class:"w-[396px]",modelValue:s(l).title,"onUpdate:modelValue":e[0]||(e[0]=n=>s(l).title=n)},null,8,["modelValue"])]),_:1})]),_:1}),t(d,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[5]||(e[5]=a("div",{class:"flex items-end mb-4"},[a("div",{class:"text-base text-[#101010] font-medium"},"展示样式")],-1)),t(b,{modelValue:s(l).style,"onUpdate:modelValue":e[1]||(e[1]=n=>s(l).style=n)},{default:o(()=>[t(r,{value:1},{default:o(()=>[...e[3]||(e[3]=[u("横排",-1)])]),_:1}),t(r,{value:2},{default:o(()=>[...e[4]||(e[4]=[u("竖排",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(d,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[6]||(e[6]=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",q,[t(k,{modelValue:s(l).data,"onUpdate:modelValue":e[2]||(e[2]=n=>s(l).data=n)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{I as _}; +import{o as V,q as E,r as w,v as t,D as o,bj as y,bb as j,aA as B,u as s,s as a,bf as C,bq as N,L as u,bd as U,p as g}from"./.pnpm-CyuAWpdG.js";import{_ as k}from"./add-nav.vue_vue_type_script_setup_true_lang-ByQYZkB9.js";const q={class:"flex-1"},I=V({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(p,{emit:i}){const f=i,_=p,l=g({get:()=>_.content,set:m=>{f("update:content",m)}});return(m,e)=>{const x=B,c=j,d=y,r=N,b=C,v=U;return E(),w("div",null,[t(v,{"label-width":"70px"},{default:o(()=>[t(d,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[t(c,{label:"标题"},{default:o(()=>[t(x,{class:"w-[396px]",modelValue:s(l).title,"onUpdate:modelValue":e[0]||(e[0]=n=>s(l).title=n)},null,8,["modelValue"])]),_:1})]),_:1}),t(d,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[5]||(e[5]=a("div",{class:"flex items-end mb-4"},[a("div",{class:"text-base text-[#101010] font-medium"},"展示样式")],-1)),t(b,{modelValue:s(l).style,"onUpdate:modelValue":e[1]||(e[1]=n=>s(l).style=n)},{default:o(()=>[t(r,{value:1},{default:o(()=>[...e[3]||(e[3]=[u("横排",-1)])]),_:1}),t(r,{value:2},{default:o(()=>[...e[4]||(e[4]=[u("竖排",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(d,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[6]||(e[6]=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",q,[t(k,{modelValue:s(l).data,"onUpdate:modelValue":e[2]||(e[2]=n=>s(l).data=n)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{I as _}; diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-53z4NSmb.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CYy_gUQo.js similarity index 96% rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-53z4NSmb.js rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CYy_gUQo.js index 540c07b52..bf7dbacf0 100644 --- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-53z4NSmb.js +++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-CYy_gUQo.js @@ -1 +1 @@ -import{o as A,q as V,r as v,v as e,D as t,s,L as h,bj as L,bb as R,u as m,bR as q,ae as K,aA as M,I as O,K as G,T as w,P as H,bd as J,F as Q,p as y}from"./.pnpm-CyuAWpdG.js";import{_ as W}from"./index-ClBYIwNX.js";import{_ as X}from"./picker-BKygjDQE.js";import{_ as Y}from"./picker-BDO86vcM.js";import{c as Z,j as b}from"./index-Dxvz9lb1.js";import{_ as ee}from"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";const le={class:"mb-[18px] max-w-[400px]"},oe={class:"bg-fill-light w-full p-4 mt-4"},te={class:"upload-btn w-[60px] h-[60px]"},se={class:"upload-btn w-[60px] h-[60px]"},ae={class:"flex-1 flex items-center"},ne={class:"drag-move cursor-move ml-auto"},de={key:0,class:"mt-4"},c=5,p=2,_e=A({__name:"attr",props:{modelValue:{type:Object,default:()=>({list:[],style:{}})}},emits:["update:modelValue"],setup(k,{emit:U}){const C=k,E=U,n=y({get(){return C.modelValue},set(a){E("update:modelValue",a)}}),$=y(()=>{var a;return((a=n.value.list)==null?void 0:a.filter(l=>l.is_show=="1"))||[]}),z=()=>{var a;((a=n.value.list)==null?void 0:a.length){var l;if(((l=n.value.list)==null?void 0:l.length)<=p)return b.msgError(`最少保留${p}个`);n.value.list.splice(a,1)},D=a=>a.relatedContext.index!=0,F=a=>{if($.value.length{const _=L,x=ee,i=R,f=Z,g=Y,N=M,j=X,I=O,P=W,S=G,T=J;return V(),v(Q,null,[e(_,{shadow:"never",class:"!border-none flex"},{default:t(()=>[...l[3]||(l[3]=[s("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(" 底部导航设置 "),s("span",{class:"form-tips ml-[10px] !mt-0"}," 至少添加2个导航,最多添加5个导航 ")],-1)])]),_:1}),e(T,{"label-width":"70px"},{default:t(()=>[e(_,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[l[4]||(l[4]=s("div",{class:"flex items-end mb-4"},[s("div",{class:"text-base text-[#101010] font-medium"},"展示样式")],-1)),e(i,{label:"默认颜色"},{default:t(()=>[e(x,{class:"max-w-[400px]",modelValue:m(n).style.default_color,"onUpdate:modelValue":l[0]||(l[0]=u=>m(n).style.default_color=u),"default-color":"#999999"},null,8,["modelValue"])]),_:1}),e(i,{label:"选中颜色",style:{"margin-bottom":"0"}},{default:t(()=>[e(x,{class:"max-w-[400px]",modelValue:m(n).style.selected_color,"onUpdate:modelValue":l[1]||(l[1]=u=>m(n).style.selected_color=u),"default-color":"#4173ff"},null,8,["modelValue"])]),_:1})]),_:1}),e(_,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>{var u;return[l[7]||(l[7]=s("div",{class:"flex items-end mb-4"},[s("div",{class:"text-base text-[#101010] font-medium"},"菜单设置"),s("div",{class:"text-xs text-tx-secondary ml-2"},"建议图片尺寸:100px*100px")],-1)),s("div",le,[e(m(q),{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:r})=>[e(P,{onClose:d=>B(r),class:K(["max-w-[400px]",{draggable:r!=0}]),"show-close":r!==0},{default:t(()=>[s("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(()=>[s("div",te,[e(f,{name:"el-icon-Plus",size:16}),l[5]||(l[5]=s("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(()=>[s("div",se,[e(f,{name:"el-icon-Plus",size:16}),l[6]||(l[6]=s("span",{class:"text-xs leading-5"}," 选中 ",-1))])]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"导航名称"},{default:t(()=>[e(N,{modelValue:o.name,"onUpdate:modelValue":d=>o.name=d,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"链接地址"},{default:t(()=>[e(j,{"is-tab":!0,disabled:r===0,modelValue:o.link,"onUpdate:modelValue":d=>o.link=d},null,8,["disabled","modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"是否显示"},{default:t(()=>[s("div",ae,[e(I,{disabled:r==0,modelValue:o.is_show,"onUpdate:modelValue":d=>o.is_show=d,"active-value":1,"inactive-value":0,onChange:d=>F(o)},null,8,["disabled","modelValue","onUpdate:modelValue","onChange"]),s("div",ne,[e(f,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])]),_:2},1032,["onClose","show-close","class"])]),_:1},8,["modelValue"])]),((u=m(n).list)==null?void 0:u.length){var o;return[h(" 添加导航 "+w((o=m(n).list)==null?void 0:o.length)+" / "+w(c),1)]}),_:1})])):H("",!0)]}),_:1})]),_:1})],64)}}});export{_e as _}; +import{o as A,q as V,r as v,v as e,D as t,s,L as h,bj as L,bb as R,u as m,bR as q,ae as K,aA as M,I as O,K as G,T as w,P as H,bd as J,F as Q,p as y}from"./.pnpm-CyuAWpdG.js";import{_ as W}from"./index-Cqk_cdo9.js";import{_ as X}from"./picker-CSWk6Vbk.js";import{_ as Y}from"./picker-BTh9eW9u.js";import{c as Z,j as b}from"./index-Bkarz3gO.js";import{_ as ee}from"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";const le={class:"mb-[18px] max-w-[400px]"},oe={class:"bg-fill-light w-full p-4 mt-4"},te={class:"upload-btn w-[60px] h-[60px]"},se={class:"upload-btn w-[60px] h-[60px]"},ae={class:"flex-1 flex items-center"},ne={class:"drag-move cursor-move ml-auto"},de={key:0,class:"mt-4"},c=5,p=2,_e=A({__name:"attr",props:{modelValue:{type:Object,default:()=>({list:[],style:{}})}},emits:["update:modelValue"],setup(k,{emit:U}){const C=k,E=U,n=y({get(){return C.modelValue},set(a){E("update:modelValue",a)}}),$=y(()=>{var a;return((a=n.value.list)==null?void 0:a.filter(l=>l.is_show=="1"))||[]}),z=()=>{var a;((a=n.value.list)==null?void 0:a.length){var l;if(((l=n.value.list)==null?void 0:l.length)<=p)return b.msgError(`最少保留${p}个`);n.value.list.splice(a,1)},D=a=>a.relatedContext.index!=0,F=a=>{if($.value.length{const _=L,x=ee,i=R,f=Z,g=Y,N=M,j=X,I=O,P=W,S=G,T=J;return V(),v(Q,null,[e(_,{shadow:"never",class:"!border-none flex"},{default:t(()=>[...l[3]||(l[3]=[s("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(" 底部导航设置 "),s("span",{class:"form-tips ml-[10px] !mt-0"}," 至少添加2个导航,最多添加5个导航 ")],-1)])]),_:1}),e(T,{"label-width":"70px"},{default:t(()=>[e(_,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[l[4]||(l[4]=s("div",{class:"flex items-end mb-4"},[s("div",{class:"text-base text-[#101010] font-medium"},"展示样式")],-1)),e(i,{label:"默认颜色"},{default:t(()=>[e(x,{class:"max-w-[400px]",modelValue:m(n).style.default_color,"onUpdate:modelValue":l[0]||(l[0]=u=>m(n).style.default_color=u),"default-color":"#999999"},null,8,["modelValue"])]),_:1}),e(i,{label:"选中颜色",style:{"margin-bottom":"0"}},{default:t(()=>[e(x,{class:"max-w-[400px]",modelValue:m(n).style.selected_color,"onUpdate:modelValue":l[1]||(l[1]=u=>m(n).style.selected_color=u),"default-color":"#4173ff"},null,8,["modelValue"])]),_:1})]),_:1}),e(_,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>{var u;return[l[7]||(l[7]=s("div",{class:"flex items-end mb-4"},[s("div",{class:"text-base text-[#101010] font-medium"},"菜单设置"),s("div",{class:"text-xs text-tx-secondary ml-2"},"建议图片尺寸:100px*100px")],-1)),s("div",le,[e(m(q),{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:r})=>[e(P,{onClose:d=>B(r),class:K(["max-w-[400px]",{draggable:r!=0}]),"show-close":r!==0},{default:t(()=>[s("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(()=>[s("div",te,[e(f,{name:"el-icon-Plus",size:16}),l[5]||(l[5]=s("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(()=>[s("div",se,[e(f,{name:"el-icon-Plus",size:16}),l[6]||(l[6]=s("span",{class:"text-xs leading-5"}," 选中 ",-1))])]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"导航名称"},{default:t(()=>[e(N,{modelValue:o.name,"onUpdate:modelValue":d=>o.name=d,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"链接地址"},{default:t(()=>[e(j,{"is-tab":!0,disabled:r===0,modelValue:o.link,"onUpdate:modelValue":d=>o.link=d},null,8,["disabled","modelValue","onUpdate:modelValue"])]),_:2},1024),e(i,{label:"是否显示"},{default:t(()=>[s("div",ae,[e(I,{disabled:r==0,modelValue:o.is_show,"onUpdate:modelValue":d=>o.is_show=d,"active-value":1,"inactive-value":0,onChange:d=>F(o)},null,8,["disabled","modelValue","onUpdate:modelValue","onChange"]),s("div",ne,[e(f,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])]),_:2},1032,["onClose","show-close","class"])]),_:1},8,["modelValue"])]),((u=m(n).list)==null?void 0:u.length){var o;return[h(" 添加导航 "+w((o=m(n).list)==null?void 0:o.length)+" / "+w(c),1)]}),_:1})])):H("",!0)]}),_:1})]),_:1})],64)}}});export{_e as _}; diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BWENGozb.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DEQz3dX_.js similarity index 97% rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BWENGozb.js rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DEQz3dX_.js index ae9669269..07239ebb2 100644 --- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-BWENGozb.js +++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DEQz3dX_.js @@ -1 +1 @@ -import{o as E,q as s,O as r,D as t,v as l,bj as F,bb as C,bf as N,u as a,bq as j,L as p,aA as z,P as i,s as b,bd as B,p as O}from"./.pnpm-CyuAWpdG.js";import{_ as q}from"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import{_ as D}from"./picker-BDO86vcM.js";const G=E({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(u,{emit:g}){const y=g,x=u,o=O({get:()=>x.content,set:f=>{y("update:content",f)}});return(f,e)=>{const m=j,_=N,d=C,v=z,V=D,k=q,U=F,w=B;return s(),r(w,{ref:"form","label-width":"80px",size:"large"},{default:t(()=>[l(U,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[l(d,{label:"页面标题"},{default:t(()=>[l(_,{modelValue:a(o).title_type,"onUpdate:modelValue":e[0]||(e[0]=n=>a(o).title_type=n)},{default:t(()=>[l(m,{value:"1"},{default:t(()=>[...e[7]||(e[7]=[p("文字",-1)])]),_:1}),l(m,{value:"2"},{default:t(()=>[...e[8]||(e[8]=[p("图片",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),u.content.title_type==1?(s(),r(d,{key:0},{default:t(()=>[l(v,{modelValue:a(o).title,"onUpdate:modelValue":e[1]||(e[1]=n=>a(o).title=n),maxlength:"8","show-word-limit":"",class:"w-[300px]",placeholder:"请输入页面标题"},null,8,["modelValue"])]),_:1})):i("",!0),u.content.title_type==2?(s(),r(d,{key:1},{default:t(()=>[l(V,{modelValue:a(o).title_img,"onUpdate:modelValue":e[2]||(e[2]=n=>a(o).title_img=n),limit:1,size:"100px"},null,8,["modelValue"]),e[9]||(e[9]=b("div",{class:"form-tips"},"建议图片尺寸:300px*40px",-1))]),_:1})):i("",!0),u.content.title_type==1?(s(),r(d,{key:2,label:"文字颜色"},{default:t(()=>[l(_,{modelValue:a(o).text_color,"onUpdate:modelValue":e[3]||(e[3]=n=>a(o).text_color=n)},{default:t(()=>[l(m,{value:"1"},{default:t(()=>[...e[10]||(e[10]=[p("白色",-1)])]),_:1}),l(m,{value:"2"},{default:t(()=>[...e[11]||(e[11]=[p("黑色",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})):i("",!0),l(d,{label:"页面背景"},{default:t(()=>[l(_,{modelValue:a(o).bg_type,"onUpdate:modelValue":e[4]||(e[4]=n=>a(o).bg_type=n)},{default:t(()=>[l(m,{value:"1"},{default:t(()=>[...e[12]||(e[12]=[p("背景颜色",-1)])]),_:1}),l(m,{value:"2"},{default:t(()=>[...e[13]||(e[13]=[p("背景图片",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),u.content.bg_type==1?(s(),r(d,{key:3},{default:t(()=>[l(k,{modelValue:a(o).bg_color,"onUpdate:modelValue":e[5]||(e[5]=n=>a(o).bg_color=n),"reset-color":"#F5F5F5"},null,8,["modelValue"])]),_:1})):i("",!0),u.content.bg_type==2?(s(),r(d,{key:4},{default:t(()=>[l(V,{modelValue:a(o).bg_image,"onUpdate:modelValue":e[6]||(e[6]=n=>a(o).bg_image=n),limit:1,size:"100px"},null,8,["modelValue"]),e[14]||(e[14]=b("div",{class:"form-tips"},"建议图片尺寸:750px*高度不限",-1))]),_:1})):i("",!0)]),_:1})]),_:1},512)}}});export{G as _}; +import{o as E,q as s,O as r,D as t,v as l,bj as F,bb as C,bf as N,u as a,bq as j,L as p,aA as z,P as i,s as b,bd as B,p as O}from"./.pnpm-CyuAWpdG.js";import{_ as q}from"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import{_ as D}from"./picker-BTh9eW9u.js";const G=E({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(u,{emit:g}){const y=g,x=u,o=O({get:()=>x.content,set:f=>{y("update:content",f)}});return(f,e)=>{const m=j,_=N,d=C,v=z,V=D,k=q,U=F,w=B;return s(),r(w,{ref:"form","label-width":"80px",size:"large"},{default:t(()=>[l(U,{shadow:"never",class:"!border-none flex mt-2"},{default:t(()=>[l(d,{label:"页面标题"},{default:t(()=>[l(_,{modelValue:a(o).title_type,"onUpdate:modelValue":e[0]||(e[0]=n=>a(o).title_type=n)},{default:t(()=>[l(m,{value:"1"},{default:t(()=>[...e[7]||(e[7]=[p("文字",-1)])]),_:1}),l(m,{value:"2"},{default:t(()=>[...e[8]||(e[8]=[p("图片",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),u.content.title_type==1?(s(),r(d,{key:0},{default:t(()=>[l(v,{modelValue:a(o).title,"onUpdate:modelValue":e[1]||(e[1]=n=>a(o).title=n),maxlength:"8","show-word-limit":"",class:"w-[300px]",placeholder:"请输入页面标题"},null,8,["modelValue"])]),_:1})):i("",!0),u.content.title_type==2?(s(),r(d,{key:1},{default:t(()=>[l(V,{modelValue:a(o).title_img,"onUpdate:modelValue":e[2]||(e[2]=n=>a(o).title_img=n),limit:1,size:"100px"},null,8,["modelValue"]),e[9]||(e[9]=b("div",{class:"form-tips"},"建议图片尺寸:300px*40px",-1))]),_:1})):i("",!0),u.content.title_type==1?(s(),r(d,{key:2,label:"文字颜色"},{default:t(()=>[l(_,{modelValue:a(o).text_color,"onUpdate:modelValue":e[3]||(e[3]=n=>a(o).text_color=n)},{default:t(()=>[l(m,{value:"1"},{default:t(()=>[...e[10]||(e[10]=[p("白色",-1)])]),_:1}),l(m,{value:"2"},{default:t(()=>[...e[11]||(e[11]=[p("黑色",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})):i("",!0),l(d,{label:"页面背景"},{default:t(()=>[l(_,{modelValue:a(o).bg_type,"onUpdate:modelValue":e[4]||(e[4]=n=>a(o).bg_type=n)},{default:t(()=>[l(m,{value:"1"},{default:t(()=>[...e[12]||(e[12]=[p("背景颜色",-1)])]),_:1}),l(m,{value:"2"},{default:t(()=>[...e[13]||(e[13]=[p("背景图片",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),u.content.bg_type==1?(s(),r(d,{key:3},{default:t(()=>[l(k,{modelValue:a(o).bg_color,"onUpdate:modelValue":e[5]||(e[5]=n=>a(o).bg_color=n),"reset-color":"#F5F5F5"},null,8,["modelValue"])]),_:1})):i("",!0),u.content.bg_type==2?(s(),r(d,{key:4},{default:t(()=>[l(V,{modelValue:a(o).bg_image,"onUpdate:modelValue":e[6]||(e[6]=n=>a(o).bg_image=n),limit:1,size:"100px"},null,8,["modelValue"]),e[14]||(e[14]=b("div",{class:"form-tips"},"建议图片尺寸:750px*高度不限",-1))]),_:1})):i("",!0)]),_:1})]),_:1},512)}}});export{G as _}; diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-kgBs74gd.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DyWBgKkz.js similarity index 96% rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-kgBs74gd.js rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DyWBgKkz.js index 2c72f884a..fea10e414 100644 --- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-kgBs74gd.js +++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-DyWBgKkz.js @@ -1 +1 @@ -import{o as F,q as d,r as u,v as l,D as o,bj as U,s as n,bf as g,u as s,bq as j,L as b,bb as B,bh as C,F as x,G as c,bi as N,bd as O,p as q}from"./.pnpm-CyuAWpdG.js";import{_ as D}from"./add-nav.vue_vue_type_script_setup_true_lang-CaeukMqg.js";const G={class:"flex-1 mt-4"},I=F({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(v,{emit:V}){const y=V,w=v,a=q({get:()=>w.content,set:m=>{y("update:content",m)}});return(m,e)=>{const r=j,E=g,p=N,i=C,_=B,f=U,k=O;return d(),u("div",null,[l(k,{"label-width":"70px"},{default:o(()=>[l(f,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[6]||(e[6]=n("div",{class:"flex items-end mb-4"},[n("div",{class:"text-base text-[#101010] font-medium"},"展示样式")],-1)),l(E,{modelValue:s(a).style,"onUpdate:modelValue":e[0]||(e[0]=t=>s(a).style=t)},{default:o(()=>[l(r,{value:1},{default:o(()=>[...e[4]||(e[4]=[b("固定显示",-1)])]),_:1}),l(r,{value:2},{default:o(()=>[...e[5]||(e[5]=[b("分页滑动",-1)])]),_:1})]),_:1},8,["modelValue"]),l(_,{label:"每行数量",class:"mt-4"},{default:o(()=>[l(i,{modelValue:s(a).per_line,"onUpdate:modelValue":e[1]||(e[1]=t=>s(a).per_line=t),style:{width:"300px"}},{default:o(()=>[(d(),u(x,null,c(5,t=>l(p,{key:t,label:t+"个",value:t},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(_,{label:"显示行数"},{default:o(()=>[l(i,{modelValue:s(a).show_line,"onUpdate:modelValue":e[2]||(e[2]=t=>s(a).show_line=t),style:{width:"300px"}},{default:o(()=>[(d(),u(x,null,c(2,t=>l(p,{key:t,label:t+"行",value:t},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(f,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[7]||(e[7]=n("div",{class:"flex items-end"},[n("div",{class:"text-base text-[#101010] font-medium"},"菜单设置"),n("div",{class:"text-xs text-tx-secondary ml-2"},"建议图片尺寸:100px*100px")],-1)),n("div",G,[l(D,{modelValue:s(a).data,"onUpdate:modelValue":e[3]||(e[3]=t=>s(a).data=t)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{I as _}; +import{o as F,q as d,r as u,v as l,D as o,bj as U,s as n,bf as g,u as s,bq as j,L as b,bb as B,bh as C,F as x,G as c,bi as N,bd as O,p as q}from"./.pnpm-CyuAWpdG.js";import{_ as D}from"./add-nav.vue_vue_type_script_setup_true_lang-ByQYZkB9.js";const G={class:"flex-1 mt-4"},I=F({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},emits:["update:content"],setup(v,{emit:V}){const y=V,w=v,a=q({get:()=>w.content,set:m=>{y("update:content",m)}});return(m,e)=>{const r=j,E=g,p=N,i=C,_=B,f=U,k=O;return d(),u("div",null,[l(k,{"label-width":"70px"},{default:o(()=>[l(f,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[6]||(e[6]=n("div",{class:"flex items-end mb-4"},[n("div",{class:"text-base text-[#101010] font-medium"},"展示样式")],-1)),l(E,{modelValue:s(a).style,"onUpdate:modelValue":e[0]||(e[0]=t=>s(a).style=t)},{default:o(()=>[l(r,{value:1},{default:o(()=>[...e[4]||(e[4]=[b("固定显示",-1)])]),_:1}),l(r,{value:2},{default:o(()=>[...e[5]||(e[5]=[b("分页滑动",-1)])]),_:1})]),_:1},8,["modelValue"]),l(_,{label:"每行数量",class:"mt-4"},{default:o(()=>[l(i,{modelValue:s(a).per_line,"onUpdate:modelValue":e[1]||(e[1]=t=>s(a).per_line=t),style:{width:"300px"}},{default:o(()=>[(d(),u(x,null,c(5,t=>l(p,{key:t,label:t+"个",value:t},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(_,{label:"显示行数"},{default:o(()=>[l(i,{modelValue:s(a).show_line,"onUpdate:modelValue":e[2]||(e[2]=t=>s(a).show_line=t),style:{width:"300px"}},{default:o(()=>[(d(),u(x,null,c(2,t=>l(p,{key:t,label:t+"行",value:t},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(f,{shadow:"never",class:"!border-none flex mt-2"},{default:o(()=>[e[7]||(e[7]=n("div",{class:"flex items-end"},[n("div",{class:"text-base text-[#101010] font-medium"},"菜单设置"),n("div",{class:"text-xs text-tx-secondary ml-2"},"建议图片尺寸:100px*100px")],-1)),n("div",G,[l(D,{modelValue:s(a).data,"onUpdate:modelValue":e[3]||(e[3]=t=>s(a).data=t)},null,8,["modelValue"])])]),_:1})]),_:1})])}}});export{I as _}; diff --git a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Co9N5gOC.js b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-VLQINM6l.js similarity index 93% rename from server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Co9N5gOC.js rename to server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-VLQINM6l.js index 06ffacb16..3e317e2bb 100644 --- a/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-Co9N5gOC.js +++ b/server/public/admin/assets/attr.vue_vue_type_script_setup_true_lang-VLQINM6l.js @@ -1 +1 @@ -import{o as O,q as d,r as b,v as o,D as s,bj as A,s as n,u as p,bR as F,O as _,bb as R,P as r,aA as S,I as q,K as z,L as K,bd as L,p as P,co as v}from"./.pnpm-CyuAWpdG.js";import{_ as T}from"./index-ClBYIwNX.js";import{c as G,j as k}from"./index-Dxvz9lb1.js";import{_ as H}from"./picker-BKygjDQE.js";import{_ as J}from"./picker-BDO86vcM.js";const M={class:"flex-1"},Q={class:"bg-fill-light w-full p-4 mt-4"},W={class:"flex-1"},X={class:"flex-1 flex items-center"},Y={class:"drag-move cursor-move ml-auto"},Z={key:0,class:"mt-4"},f=5,ae=O({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},emits:["update:content"],setup(m,{emit:y}){const u=y,c=m,g=P({get:()=>c.content,set:a=>{u("update:content",a)}}),w=()=>{var a;if(((a=c.content.data)==null?void 0:a.length){var i;if(((i=c.content.data)==null?void 0:i.length)<=1)return k.msgError("最少保留一张图片");const e=v(c.content);e.data.splice(a,1),u("update:content",e)};return(a,e)=>{const i=J,U=H,C=S,h=R,B=q,D=G,j=T,N=z,$=A,I=L;return d(),b("div",null,[o(I,{"label-width":"70px"},{default:s(()=>[o($,{shadow:"never",class:"!border-none flex mt-2"},{default:s(()=>{var x;return[e[2]||(e[2]=n("div",{class:"flex items-end"},[n("div",{class:"text-base text-[#101010] font-medium"},"图片设置"),n("div",{class:"text-xs text-tx-secondary ml-2"}," 最多添加5张,建议图片尺寸:750px*200px ")],-1)),n("div",M,[o(p(F),{class:"draggable",modelValue:p(g).data,"onUpdate:modelValue":e[0]||(e[0]=t=>p(g).data=t),animation:"300",handle:".drag-move"},{item:s(({element:t,index:V})=>[(d(),_(j,{key:V,onClose:l=>E(V),class:"w-full"},{default:s(()=>[n("div",Q,[o(i,{width:"396px",height:"196px",modelValue:t.image,"onUpdate:modelValue":l=>t.image=l,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),n("div",W,[o(h,{class:"mt-[18px]",label:"图片链接"},{default:s(()=>[m.type=="mobile"?(d(),_(U,{key:0,modelValue:t.link,"onUpdate:modelValue":l=>t.link=l},null,8,["modelValue","onUpdate:modelValue"])):r("",!0),m.type=="pc"?(d(),_(C,{key:1,placeholder:"请输入链接",modelValue:t.link.path,"onUpdate:modelValue":l=>t.link.path=l},null,8,["modelValue","onUpdate:modelValue"])):r("",!0)]),_:2},1024),o(h,{label:"是否显示",class:"mt-[18px] !mb-0"},{default:s(()=>[n("div",X,[o(B,{modelValue:t.is_show,"onUpdate:modelValue":l=>t.is_show=l,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),n("div",Y,[o(D,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])]),((x=m.content.data)==null?void 0:x.length)[...e[1]||(e[1]=[K("添加图片",-1)])]),_:1})])):r("",!0)]}),_:1})]),_:1})])}}});export{ae as _}; +import{o as O,q as d,r as b,v as o,D as s,bj as A,s as n,u as p,bR as F,O as _,bb as R,P as r,aA as S,I as q,K as z,L as K,bd as L,p as P,co as v}from"./.pnpm-CyuAWpdG.js";import{_ as T}from"./index-Cqk_cdo9.js";import{c as G,j as k}from"./index-Bkarz3gO.js";import{_ as H}from"./picker-CSWk6Vbk.js";import{_ as J}from"./picker-BTh9eW9u.js";const M={class:"flex-1"},Q={class:"bg-fill-light w-full p-4 mt-4"},W={class:"flex-1"},X={class:"flex-1 flex items-center"},Y={class:"drag-move cursor-move ml-auto"},Z={key:0,class:"mt-4"},f=5,ae=O({__name:"attr",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},type:{type:String,default:"mobile"}},emits:["update:content"],setup(m,{emit:y}){const u=y,c=m,g=P({get:()=>c.content,set:a=>{u("update:content",a)}}),w=()=>{var a;if(((a=c.content.data)==null?void 0:a.length){var i;if(((i=c.content.data)==null?void 0:i.length)<=1)return k.msgError("最少保留一张图片");const e=v(c.content);e.data.splice(a,1),u("update:content",e)};return(a,e)=>{const i=J,U=H,C=S,h=R,B=q,D=G,j=T,N=z,$=A,I=L;return d(),b("div",null,[o(I,{"label-width":"70px"},{default:s(()=>[o($,{shadow:"never",class:"!border-none flex mt-2"},{default:s(()=>{var x;return[e[2]||(e[2]=n("div",{class:"flex items-end"},[n("div",{class:"text-base text-[#101010] font-medium"},"图片设置"),n("div",{class:"text-xs text-tx-secondary ml-2"}," 最多添加5张,建议图片尺寸:750px*200px ")],-1)),n("div",M,[o(p(F),{class:"draggable",modelValue:p(g).data,"onUpdate:modelValue":e[0]||(e[0]=t=>p(g).data=t),animation:"300",handle:".drag-move"},{item:s(({element:t,index:V})=>[(d(),_(j,{key:V,onClose:l=>E(V),class:"w-full"},{default:s(()=>[n("div",Q,[o(i,{width:"396px",height:"196px",modelValue:t.image,"onUpdate:modelValue":l=>t.image=l,"upload-class":"bg-body","exclude-domain":""},null,8,["modelValue","onUpdate:modelValue"]),n("div",W,[o(h,{class:"mt-[18px]",label:"图片链接"},{default:s(()=>[m.type=="mobile"?(d(),_(U,{key:0,modelValue:t.link,"onUpdate:modelValue":l=>t.link=l},null,8,["modelValue","onUpdate:modelValue"])):r("",!0),m.type=="pc"?(d(),_(C,{key:1,placeholder:"请输入链接",modelValue:t.link.path,"onUpdate:modelValue":l=>t.link.path=l},null,8,["modelValue","onUpdate:modelValue"])):r("",!0)]),_:2},1024),o(h,{label:"是否显示",class:"mt-[18px] !mb-0"},{default:s(()=>[n("div",X,[o(B,{modelValue:t.is_show,"onUpdate:modelValue":l=>t.is_show=l,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),n("div",Y,[o(D,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)])])]),_:2},1032,["onClose"]))]),_:1},8,["modelValue"])]),((x=m.content.data)==null?void 0:x.length)[...e[1]||(e[1]=[K("添加图片",-1)])]),_:1})])):r("",!0)]}),_:1})]),_:1})])}}});export{ae as _}; diff --git a/server/public/admin/assets/auth-BTjFjF41.js b/server/public/admin/assets/auth-BTjFjF41.js deleted file mode 100644 index 0dcc928c3..000000000 --- a/server/public/admin/assets/auth-BTjFjF41.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./auth.vue_vue_type_script_setup_true_lang-CtcRAVMj.js";import"./.pnpm-CyuAWpdG.js";import"./menu-Y8cDrxAC.js";import"./index-Dxvz9lb1.js";import"./role-B1hWAn9n.js";import"./index-BnfLT5cB.js";export{o as default}; diff --git a/server/public/admin/assets/auth-SMWheuQD.js b/server/public/admin/assets/auth-SMWheuQD.js new file mode 100644 index 000000000..cc97f1b35 --- /dev/null +++ b/server/public/admin/assets/auth-SMWheuQD.js @@ -0,0 +1 @@ +import{_ as o}from"./auth.vue_vue_type_script_setup_true_lang-CrhdXTk1.js";import"./.pnpm-CyuAWpdG.js";import"./menu-BmHYTFQt.js";import"./index-Bkarz3gO.js";import"./role-fMbnnhKr.js";import"./index-CS5Wg0xx.js";export{o as default}; diff --git a/server/public/admin/assets/auth.vue_vue_type_script_setup_true_lang-CtcRAVMj.js b/server/public/admin/assets/auth.vue_vue_type_script_setup_true_lang-CrhdXTk1.js similarity index 92% rename from server/public/admin/assets/auth.vue_vue_type_script_setup_true_lang-CtcRAVMj.js rename to server/public/admin/assets/auth.vue_vue_type_script_setup_true_lang-CrhdXTk1.js index 60b816efc..d20fe26a5 100644 --- a/server/public/admin/assets/auth.vue_vue_type_script_setup_true_lang-CtcRAVMj.js +++ b/server/public/admin/assets/auth.vue_vue_type_script_setup_true_lang-CrhdXTk1.js @@ -1 +1 @@ -import{o as O,q as k,r as H,v as s,D as i,ac as I,O as U,bd as j,u as c,a2 as z,bb as G,s as y,bg as J,C as P,bV as Q,bn as W,a8 as f,M as r,aC as X,n as b}from"./.pnpm-CyuAWpdG.js";import{m as Y}from"./menu-Y8cDrxAC.js";import{a as Z}from"./role-B1hWAn9n.js";import{_ as $}from"./index-BnfLT5cB.js";import{y as ee}from"./index-Dxvz9lb1.js";const te={class:"edit-popup"},re=O({__name:"auth",emits:["success","close"],setup(ae,{expose:C,emit:x}){const _=x,l=f(),h=f(),u=f(),g=r(!1),d=r(!0),m=r(!1),v=r([]),p=r([]),o=X({id:"",name:"",desc:"",sort:0,data_scope:1,menu_id:[]}),E={name:[{required:!0,message:"请输入名称",trigger:["blur"]}]},w=()=>{m.value=!0,Y().then(e=>{p.value=e,v.value=ee(e),b(()=>{A()}),m.value=!1})},R=()=>{var a,n;const e=(a=l.value)==null?void 0:a.getCheckedKeys(),t=(n=l.value)==null?void 0:n.getHalfCheckedKeys();return e==null||e.unshift.apply(e,t),e},A=()=>{o.menu_id.forEach(e=>{b(()=>{var t;(t=l.value)==null||t.setChecked(e,!0,!1)})})},D=e=>{const t=p.value;for(let a=0;a{var t,a;e?(t=l.value)==null||t.setCheckedKeys(v.value.map(n=>n.id)):(a=l.value)==null||a.setCheckedKeys([])},V=async()=>{var e,t;await((e=h.value)==null?void 0:e.validate()),o.menu_id=R(),await Z(o),(t=u.value)==null||t.close(),_("success")},B=()=>{_("close")},S=()=>{var e;(e=u.value)==null||e.open()},T=async e=>{for(const t in o)e[t]!=null&&e[t]!=null&&(o[t]=e[t])};return w(),C({open:S,setFormData:T}),(e,t)=>{const a=J,n=Q,F=G,q=z,L=j,M=W;return k(),H("div",te,[s($,{ref_key:"popupRef",ref:u,title:"分配权限",async:!0,width:"550px",onConfirm:V,onClose:B},{default:i(()=>[I((k(),U(L,{class:"ls-form",ref_key:"formRef",ref:h,rules:E,model:c(o),"label-width":"60px"},{default:i(()=>[s(q,{class:"h-[400px] sm:h-[600px]"},{default:i(()=>[s(F,{label:"权限",prop:"menu_id"},{default:i(()=>[y("div",null,[s(a,{label:"展开/折叠",onChange:D}),s(a,{label:"全选/不全选",onChange:K}),s(a,{modelValue:c(d),"onUpdate:modelValue":t[0]||(t[0]=N=>P(d)?d.value=N:null),label:"父子联动"},null,8,["modelValue"]),y("div",null,[s(n,{ref_key:"treeRef",ref:l,data:c(p),props:{label:"name",children:"children"},"check-strictly":!c(d),"node-key":"id","default-expand-all":c(g),"show-checkbox":""},null,8,["data","check-strictly","default-expand-all"])])])]),_:1})]),_:1})]),_:1},8,["model"])),[[M,c(m)]])]),_:1},512)])}}});export{re as _}; +import{o as O,q as k,r as H,v as s,D as i,ac as I,O as U,bd as j,u as c,a2 as z,bb as G,s as y,bg as J,C as P,bV as Q,bn as W,a8 as f,M as r,aC as X,n as b}from"./.pnpm-CyuAWpdG.js";import{m as Y}from"./menu-BmHYTFQt.js";import{a as Z}from"./role-fMbnnhKr.js";import{_ as $}from"./index-CS5Wg0xx.js";import{y as ee}from"./index-Bkarz3gO.js";const te={class:"edit-popup"},re=O({__name:"auth",emits:["success","close"],setup(ae,{expose:C,emit:x}){const _=x,l=f(),h=f(),u=f(),g=r(!1),d=r(!0),m=r(!1),v=r([]),p=r([]),o=X({id:"",name:"",desc:"",sort:0,data_scope:1,menu_id:[]}),E={name:[{required:!0,message:"请输入名称",trigger:["blur"]}]},w=()=>{m.value=!0,Y().then(e=>{p.value=e,v.value=ee(e),b(()=>{A()}),m.value=!1})},R=()=>{var a,n;const e=(a=l.value)==null?void 0:a.getCheckedKeys(),t=(n=l.value)==null?void 0:n.getHalfCheckedKeys();return e==null||e.unshift.apply(e,t),e},A=()=>{o.menu_id.forEach(e=>{b(()=>{var t;(t=l.value)==null||t.setChecked(e,!0,!1)})})},D=e=>{const t=p.value;for(let a=0;a{var t,a;e?(t=l.value)==null||t.setCheckedKeys(v.value.map(n=>n.id)):(a=l.value)==null||a.setCheckedKeys([])},V=async()=>{var e,t;await((e=h.value)==null?void 0:e.validate()),o.menu_id=R(),await Z(o),(t=u.value)==null||t.close(),_("success")},B=()=>{_("close")},S=()=>{var e;(e=u.value)==null||e.open()},T=async e=>{for(const t in o)e[t]!=null&&e[t]!=null&&(o[t]=e[t])};return w(),C({open:S,setFormData:T}),(e,t)=>{const a=J,n=Q,F=G,q=z,L=j,M=W;return k(),H("div",te,[s($,{ref_key:"popupRef",ref:u,title:"分配权限",async:!0,width:"550px",onConfirm:V,onClose:B},{default:i(()=>[I((k(),U(L,{class:"ls-form",ref_key:"formRef",ref:h,rules:E,model:c(o),"label-width":"60px"},{default:i(()=>[s(q,{class:"h-[400px] sm:h-[600px]"},{default:i(()=>[s(F,{label:"权限",prop:"menu_id"},{default:i(()=>[y("div",null,[s(a,{label:"展开/折叠",onChange:D}),s(a,{label:"全选/不全选",onChange:K}),s(a,{modelValue:c(d),"onUpdate:modelValue":t[0]||(t[0]=N=>P(d)?d.value=N:null),label:"父子联动"},null,8,["modelValue"]),y("div",null,[s(n,{ref_key:"treeRef",ref:l,data:c(p),props:{label:"name",children:"children"},"check-strictly":!c(d),"node-key":"id","default-expand-all":c(g),"show-checkbox":""},null,8,["data","check-strictly","default-expand-all"])])])]),_:1})]),_:1})]),_:1},8,["model"])),[[M,c(m)]])]),_:1},512)])}}});export{re as _}; diff --git a/server/public/admin/assets/balance_details-CFmJYiHU.js b/server/public/admin/assets/balance_details-BzMAkkJh.js similarity index 94% rename from server/public/admin/assets/balance_details-CFmJYiHU.js rename to server/public/admin/assets/balance_details-BzMAkkJh.js index 88eecbd14..03d827132 100644 --- a/server/public/admin/assets/balance_details-CFmJYiHU.js +++ b/server/public/admin/assets/balance_details-BzMAkkJh.js @@ -1 +1 @@ -import{o as y,q as m,r as h,v as e,D as l,bo as K,bd as P,u as a,bb as N,aA as O,bc as j,bh as q,bi as z,F as A,G as I,O as w,K as R,L as _,bj as S,ac as $,bk as G,bl as H,s as p,T as v,ae as J,bn as M,C as Q,aC as W}from"./.pnpm-CyuAWpdG.js";import{_ as X}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{h as Y}from"./index-Dxvz9lb1.js";import{_ as Z}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{g as ee,h as te}from"./finance-D9pJwZQS.js";import{u as ae}from"./useDictOptions-ByJNOzqa.js";import{u as ne}from"./usePaging-CghUEVfD.js";const le={class:"flex items-center"},oe={class:"flex justify-end mt-4"},se=y({name:"balanceDetail"}),be=y({...se,setup(ie){const o=W({user_info:"",change_type:"",start_time:"",end_time:""}),{pager:i,getLists:d,resetPage:c,resetParams:C}=ne({fetchFun:ee,params:o}),{optionsData:x}=ae({change_type:{api:te}});return d(),(re,n)=>{const V=K,E=O,r=N,u=z,T=q,k=Z,f=R,D=P,b=S,s=H,U=Y,B=G,F=X,L=M;return m(),h("div",null,[e(b,{class:"!border-none",shadow:"never"},{default:l(()=>[e(V,{type:"warning",title:"温馨提示:用户账户变动记录",closable:!1,"show-icon":""}),e(D,{ref:"formRef",class:"mb-[-16px] mt-[16px]",model:a(o),inline:!0},{default:l(()=>[e(r,{class:"w-[280px]",label:"用户信息"},{default:l(()=>[e(E,{modelValue:a(o).user_info,"onUpdate:modelValue":n[0]||(n[0]=t=>a(o).user_info=t),placeholder:"请输入用户账号/昵称/手机号",clearable:"",onKeyup:j(a(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(r,{class:"w-[280px]",label:"变动类型"},{default:l(()=>[e(T,{modelValue:a(o).change_type,"onUpdate:modelValue":n[1]||(n[1]=t=>a(o).change_type=t)},{default:l(()=>[e(u,{label:"全部",value:""}),(m(!0),h(A,null,I(a(x).change_type,(t,g)=>(m(),w(u,{key:g,label:t,value:g},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(r,{label:"记录时间"},{default:l(()=>[e(k,{startTime:a(o).start_time,"onUpdate:startTime":n[2]||(n[2]=t=>a(o).start_time=t),endTime:a(o).end_time,"onUpdate:endTime":n[3]||(n[3]=t=>a(o).end_time=t)},null,8,["startTime","endTime"])]),_:1}),e(r,null,{default:l(()=>[e(f,{type:"primary",onClick:a(c)},{default:l(()=>[...n[5]||(n[5]=[_("查询",-1)])]),_:1},8,["onClick"]),e(f,{onClick:a(C)},{default:l(()=>[...n[6]||(n[6]=[_("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),e(b,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[$((m(),w(B,{size:"large",data:a(i).lists},{default:l(()=>[e(s,{label:"用户账号",prop:"account","min-width":"100"}),e(s,{label:"用户昵称","min-width":"160"},{default:l(({row:t})=>[p("div",le,[e(U,{class:"flex-none mr-2",src:t.avatar,width:40,height:40,"preview-teleported":"",fit:"contain"},null,8,["src"]),_(" "+v(t.nickname),1)])]),_:1}),e(s,{label:"手机号码",prop:"mobile","min-width":"100"}),e(s,{label:"变动金额",prop:"change_amount","min-width":"100"},{default:l(({row:t})=>[p("span",{class:J({"text-error":t.action==2})},v(t.change_amount),3)]),_:1}),e(s,{label:"剩余金额",prop:"left_amount","min-width":"100"}),e(s,{label:"变动类型",prop:"change_type_desc","min-width":"120"}),e(s,{label:"来源单号",prop:"source_sn","min-width":"100"}),e(s,{label:"记录时间",prop:"create_time","min-width":"120"})]),_:1},8,["data"])),[[L,a(i).loading]]),p("div",oe,[e(F,{modelValue:a(i),"onUpdate:modelValue":n[4]||(n[4]=t=>Q(i)?i.value=t:null),onChange:a(d)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{be as default}; +import{o as y,q as m,r as h,v as e,D as l,bo as K,bd as P,u as a,bb as N,aA as O,bc as j,bh as q,bi as z,F as A,G as I,O as w,K as R,L as _,bj as S,ac as $,bk as G,bl as H,s as p,T as v,ae as J,bn as M,C as Q,aC as W}from"./.pnpm-CyuAWpdG.js";import{_ as X}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{h as Y}from"./index-Bkarz3gO.js";import{_ as Z}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{g as ee,h as te}from"./finance-C684dcZP.js";import{u as ae}from"./useDictOptions-dnxxXBSU.js";import{u as ne}from"./usePaging-CghUEVfD.js";const le={class:"flex items-center"},oe={class:"flex justify-end mt-4"},se=y({name:"balanceDetail"}),be=y({...se,setup(ie){const o=W({user_info:"",change_type:"",start_time:"",end_time:""}),{pager:i,getLists:d,resetPage:c,resetParams:C}=ne({fetchFun:ee,params:o}),{optionsData:x}=ae({change_type:{api:te}});return d(),(re,n)=>{const V=K,E=O,r=N,u=z,T=q,k=Z,f=R,D=P,b=S,s=H,U=Y,B=G,F=X,L=M;return m(),h("div",null,[e(b,{class:"!border-none",shadow:"never"},{default:l(()=>[e(V,{type:"warning",title:"温馨提示:用户账户变动记录",closable:!1,"show-icon":""}),e(D,{ref:"formRef",class:"mb-[-16px] mt-[16px]",model:a(o),inline:!0},{default:l(()=>[e(r,{class:"w-[280px]",label:"用户信息"},{default:l(()=>[e(E,{modelValue:a(o).user_info,"onUpdate:modelValue":n[0]||(n[0]=t=>a(o).user_info=t),placeholder:"请输入用户账号/昵称/手机号",clearable:"",onKeyup:j(a(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(r,{class:"w-[280px]",label:"变动类型"},{default:l(()=>[e(T,{modelValue:a(o).change_type,"onUpdate:modelValue":n[1]||(n[1]=t=>a(o).change_type=t)},{default:l(()=>[e(u,{label:"全部",value:""}),(m(!0),h(A,null,I(a(x).change_type,(t,g)=>(m(),w(u,{key:g,label:t,value:g},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(r,{label:"记录时间"},{default:l(()=>[e(k,{startTime:a(o).start_time,"onUpdate:startTime":n[2]||(n[2]=t=>a(o).start_time=t),endTime:a(o).end_time,"onUpdate:endTime":n[3]||(n[3]=t=>a(o).end_time=t)},null,8,["startTime","endTime"])]),_:1}),e(r,null,{default:l(()=>[e(f,{type:"primary",onClick:a(c)},{default:l(()=>[...n[5]||(n[5]=[_("查询",-1)])]),_:1},8,["onClick"]),e(f,{onClick:a(C)},{default:l(()=>[...n[6]||(n[6]=[_("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),e(b,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[$((m(),w(B,{size:"large",data:a(i).lists},{default:l(()=>[e(s,{label:"用户账号",prop:"account","min-width":"100"}),e(s,{label:"用户昵称","min-width":"160"},{default:l(({row:t})=>[p("div",le,[e(U,{class:"flex-none mr-2",src:t.avatar,width:40,height:40,"preview-teleported":"",fit:"contain"},null,8,["src"]),_(" "+v(t.nickname),1)])]),_:1}),e(s,{label:"手机号码",prop:"mobile","min-width":"100"}),e(s,{label:"变动金额",prop:"change_amount","min-width":"100"},{default:l(({row:t})=>[p("span",{class:J({"text-error":t.action==2})},v(t.change_amount),3)]),_:1}),e(s,{label:"剩余金额",prop:"left_amount","min-width":"100"}),e(s,{label:"变动类型",prop:"change_type_desc","min-width":"120"}),e(s,{label:"来源单号",prop:"source_sn","min-width":"100"}),e(s,{label:"记录时间",prop:"create_time","min-width":"120"})]),_:1},8,["data"])),[[L,a(i).loading]]),p("div",oe,[e(F,{modelValue:a(i),"onUpdate:modelValue":n[4]||(n[4]=t=>Q(i)?i.value=t:null),onChange:a(d)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{be as default}; diff --git a/server/public/admin/assets/bind-work-wechat-BRSOS94Y.js b/server/public/admin/assets/bind-work-wechat-QMt0FvIK.js similarity index 97% rename from server/public/admin/assets/bind-work-wechat-BRSOS94Y.js rename to server/public/admin/assets/bind-work-wechat-QMt0FvIK.js index f36bed6ef..643919ebd 100644 --- a/server/public/admin/assets/bind-work-wechat-BRSOS94Y.js +++ b/server/public/admin/assets/bind-work-wechat-QMt0FvIK.js @@ -1 +1 @@ -import{o as T,W as $,ap as j,E as p,aq as z,q as d,r as l,s as r,v as c,D as y,u as S,ba as I,w as A,F as D,L as M,K as F,M as k,n as C}from"./.pnpm-CyuAWpdG.js";import{_ as K}from"./footer.vue_vue_type_script_setup_true_lang-DVmBDxqU.js";import{u as Q,g as V,P as L,a as X,b as G,_ as H}from"./index-Dxvz9lb1.js";import{a as J}from"./wecomOauthPostMessage-C_e6VGrO.js";const Y={class:"bind-wx flex flex-col"},Z={class:"flex-1 flex items-center justify-center"},ee={class:"bind-wx-card bg-body rounded-md px-10 py-10 w-[480px]"},te={key:0,class:"text-center py-10"},oe={key:0,class:"text-center py-10"},ne={key:1,id:"wxwork_bind_qrcode_container",class:"wxwork-qrcode mx-auto"},ae={class:"mt-8 flex justify-center gap-4"},w="bind_wxwork",g="like_admin_wx_bind_oauth",se=T({__name:"bind-work-wechat",setup(re){const u=$(),f=Q(),x=k(!1),_=k(!1),m=k({corp_id:"",agent_id:""}),U=()=>/wxwork/i.test(navigator.userAgent),v=()=>window.location.origin+window.location.pathname+"?bind_wxwork=1";function W(){const o=new URLSearchParams(window.location.search),e=window.location.hash||"",t=e.includes("?")?e.split("?").slice(1).join("?"):"";return t&&new URLSearchParams(t).forEach((n,i)=>{o.has(i)||o.set(i,n)}),o}const E=()=>{f.logout()},q=async()=>{try{await f.getUserInfo()}catch{}if(f.isPaw===0){u.replace("/change-password");return}u.replace(L.INDEX)},b=async o=>{_.value=!0;try{await G({code:o}),window.history.replaceState({},"",window.location.pathname),await q()}catch(e){console.error(e),p.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"绑定失败"),_.value=!1}};let s=null;const B=async()=>{if(!m.value.corp_id)return;x.value=!0,window.WwLogin||await new Promise((e,t)=>{const n=document.createElement("script");n.src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js",n.onload=()=>e(),n.onerror=()=>t(new Error("加载企业微信 JS 失败")),document.head.appendChild(n)}),await C(),x.value=!1,await C();const o=encodeURIComponent(v());new window.WwLogin({id:"wxwork_bind_qrcode_container",appid:m.value.corp_id,agentid:m.value.agent_id,redirect_uri:o,lang:"zh",state:w,href:"",self_redirect:!1})};return j(async()=>{let o="";try{o=(new URLSearchParams(window.location.search).get("code")||"").trim()}catch{o=""}if(!V()){p.error("请先登录"),u.push(L.LOGIN);return}const e=W(),t=o||(e.get("code")||"").trim(),n=e.get("state"),i=n!=null?String(n).trim():"",P=i===w||i==="admin_bind_wx"||i.toLowerCase()===w.toLowerCase(),R=e.get("bind_wxwork")==="1",N=!!t&&i===""&&u.currentRoute.value.path==="/bind-work-wechat";if(t&&(P||R||N)){if(sessionStorage.getItem(g)===t)return;sessionStorage.setItem(g,t);try{await b(t)}finally{sessionStorage.removeItem(g)}return}try{const a=await X();if(!(a!=null&&a.enabled)||!a.corp_id){p.error("企业微信未配置,请联系管理员");return}if(m.value={corp_id:a.corp_id,agent_id:a.agent_id},U()){_.value=!0;const h=encodeURIComponent(v()),O=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${a.corp_id}&redirect_uri=${h}&response_type=code&scope=snsapi_privateinfo&agentid=${a.agent_id}&state=${w}#wechat_redirect`;window.location.href=O;return}s==null||s(),s=J({pathIncludes:"bind-work-wechat",lockKey:g,wxBindState:w,onCode:h=>b(h)}),await B()}catch(a){console.error(a),p.error("获取企业微信配置失败")}}),z(()=>{s==null||s(),s=null}),(o,e)=>{const t=A,n=F;return d(),l("div",Y,[r("div",Z,[r("div",ee,[e[4]||(e[4]=r("div",{class:"text-center text-2xl font-medium mb-2"},"绑定企业微信",-1)),e[5]||(e[5]=r("div",{class:"text-center text-gray-500 text-sm mb-8"}," 根据安全策略,需绑定企业微信账号后方可使用管理后台 ",-1)),_.value?(d(),l("div",te,[c(t,{class:"is-loading mb-4",size:40,color:"var(--el-color-primary)"},{default:y(()=>[c(S(I))]),_:1}),e[0]||(e[0]=r("div",{class:"text-gray-500"},"企业微信授权中...",-1))])):(d(),l(D,{key:1},[x.value?(d(),l("div",oe,[c(t,{class:"is-loading",size:32,color:"var(--el-color-primary)"},{default:y(()=>[c(S(I))]),_:1}),e[1]||(e[1]=r("div",{class:"mt-2 text-gray-400 text-sm"},"加载扫码...",-1))])):(d(),l("div",ne)),e[2]||(e[2]=r("div",{class:"text-center text-sm text-gray-400 mt-4"}," 请使用企业微信扫描二维码完成绑定 ",-1))],64)),r("div",ae,[c(n,{onClick:E},{default:y(()=>[...e[3]||(e[3]=[M("退出登录",-1)])]),_:1})])])]),c(K)])}}}),ue=H(se,[["__scopeId","data-v-d4a61522"]]);export{ue as default}; +import{o as T,W as $,ap as j,E as p,aq as z,q as d,r as l,s as r,v as c,D as y,u as S,ba as I,w as A,F as D,L as M,K as F,M as k,n as C}from"./.pnpm-CyuAWpdG.js";import{_ as K}from"./footer.vue_vue_type_script_setup_true_lang-CPBf3DXQ.js";import{u as Q,g as V,P as L,a as X,b as G,_ as H}from"./index-Bkarz3gO.js";import{a as J}from"./wecomOauthPostMessage-C_e6VGrO.js";const Y={class:"bind-wx flex flex-col"},Z={class:"flex-1 flex items-center justify-center"},ee={class:"bind-wx-card bg-body rounded-md px-10 py-10 w-[480px]"},te={key:0,class:"text-center py-10"},oe={key:0,class:"text-center py-10"},ne={key:1,id:"wxwork_bind_qrcode_container",class:"wxwork-qrcode mx-auto"},ae={class:"mt-8 flex justify-center gap-4"},w="bind_wxwork",g="like_admin_wx_bind_oauth",se=T({__name:"bind-work-wechat",setup(re){const u=$(),f=Q(),x=k(!1),_=k(!1),m=k({corp_id:"",agent_id:""}),U=()=>/wxwork/i.test(navigator.userAgent),v=()=>window.location.origin+window.location.pathname+"?bind_wxwork=1";function W(){const o=new URLSearchParams(window.location.search),e=window.location.hash||"",t=e.includes("?")?e.split("?").slice(1).join("?"):"";return t&&new URLSearchParams(t).forEach((n,i)=>{o.has(i)||o.set(i,n)}),o}const E=()=>{f.logout()},q=async()=>{try{await f.getUserInfo()}catch{}if(f.isPaw===0){u.replace("/change-password");return}u.replace(L.INDEX)},b=async o=>{_.value=!0;try{await G({code:o}),window.history.replaceState({},"",window.location.pathname),await q()}catch(e){console.error(e),p.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"绑定失败"),_.value=!1}};let s=null;const B=async()=>{if(!m.value.corp_id)return;x.value=!0,window.WwLogin||await new Promise((e,t)=>{const n=document.createElement("script");n.src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js",n.onload=()=>e(),n.onerror=()=>t(new Error("加载企业微信 JS 失败")),document.head.appendChild(n)}),await C(),x.value=!1,await C();const o=encodeURIComponent(v());new window.WwLogin({id:"wxwork_bind_qrcode_container",appid:m.value.corp_id,agentid:m.value.agent_id,redirect_uri:o,lang:"zh",state:w,href:"",self_redirect:!1})};return j(async()=>{let o="";try{o=(new URLSearchParams(window.location.search).get("code")||"").trim()}catch{o=""}if(!V()){p.error("请先登录"),u.push(L.LOGIN);return}const e=W(),t=o||(e.get("code")||"").trim(),n=e.get("state"),i=n!=null?String(n).trim():"",P=i===w||i==="admin_bind_wx"||i.toLowerCase()===w.toLowerCase(),R=e.get("bind_wxwork")==="1",N=!!t&&i===""&&u.currentRoute.value.path==="/bind-work-wechat";if(t&&(P||R||N)){if(sessionStorage.getItem(g)===t)return;sessionStorage.setItem(g,t);try{await b(t)}finally{sessionStorage.removeItem(g)}return}try{const a=await X();if(!(a!=null&&a.enabled)||!a.corp_id){p.error("企业微信未配置,请联系管理员");return}if(m.value={corp_id:a.corp_id,agent_id:a.agent_id},U()){_.value=!0;const h=encodeURIComponent(v()),O=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${a.corp_id}&redirect_uri=${h}&response_type=code&scope=snsapi_privateinfo&agentid=${a.agent_id}&state=${w}#wechat_redirect`;window.location.href=O;return}s==null||s(),s=J({pathIncludes:"bind-work-wechat",lockKey:g,wxBindState:w,onCode:h=>b(h)}),await B()}catch(a){console.error(a),p.error("获取企业微信配置失败")}}),z(()=>{s==null||s(),s=null}),(o,e)=>{const t=A,n=F;return d(),l("div",Y,[r("div",Z,[r("div",ee,[e[4]||(e[4]=r("div",{class:"text-center text-2xl font-medium mb-2"},"绑定企业微信",-1)),e[5]||(e[5]=r("div",{class:"text-center text-gray-500 text-sm mb-8"}," 根据安全策略,需绑定企业微信账号后方可使用管理后台 ",-1)),_.value?(d(),l("div",te,[c(t,{class:"is-loading mb-4",size:40,color:"var(--el-color-primary)"},{default:y(()=>[c(S(I))]),_:1}),e[0]||(e[0]=r("div",{class:"text-gray-500"},"企业微信授权中...",-1))])):(d(),l(D,{key:1},[x.value?(d(),l("div",oe,[c(t,{class:"is-loading",size:32,color:"var(--el-color-primary)"},{default:y(()=>[c(S(I))]),_:1}),e[1]||(e[1]=r("div",{class:"mt-2 text-gray-400 text-sm"},"加载扫码...",-1))])):(d(),l("div",ne)),e[2]||(e[2]=r("div",{class:"text-center text-sm text-gray-400 mt-4"}," 请使用企业微信扫描二维码完成绑定 ",-1))],64)),r("div",ae,[c(n,{onClick:E},{default:y(()=>[...e[3]||(e[3]=[M("退出登录",-1)])]),_:1})])])]),c(K)])}}}),ue=H(se,[["__scopeId","data-v-d4a61522"]]);export{ue as default}; diff --git a/server/public/admin/assets/cache-CI01ujaE.js b/server/public/admin/assets/cache-DY5PbfVb.js similarity index 94% rename from server/public/admin/assets/cache-CI01ujaE.js rename to server/public/admin/assets/cache-DY5PbfVb.js index d6b119300..a04951beb 100644 --- a/server/public/admin/assets/cache-CI01ujaE.js +++ b/server/public/admin/assets/cache-DY5PbfVb.js @@ -1 +1 @@ -import{o as l,q as i,r as m,v as e,D as a,bo as p,bj as f,bk as b,u,bl as h,K as w,L as C,M as k}from"./.pnpm-CyuAWpdG.js";import{j as E,D as x}from"./index-Dxvz9lb1.js";const y={class:"cache"},v=l({name:"cache"}),j=l({...v,setup(g){const s=k([{content:"系统缓存",desc:"系统运行过程中产生的各类缓存数据"}]),c=async()=>{await E.confirm("确认清除系统缓存?"),await x(),window.location.reload()};return(B,o)=>{const r=p,n=f,t=h,_=w,d=b;return i(),m("div",y,[e(n,{class:"!border-none",shadow:"never"},{default:a(()=>[e(r,{type:"warning",title:"温馨提示:管理系统运行过程中产生的缓存",closable:!1,"show-icon":""})]),_:1}),e(n,{class:"!border-none mt-4",shadow:"never"},{default:a(()=>[e(d,{data:u(s),size:"large"},{default:a(()=>[e(t,{label:"管理内容",prop:"content","min-width":"130"}),e(t,{label:"内容说明",prop:"desc","min-width":"180"}),e(t,{label:"操作",width:"130",fixed:"right"},{default:a(()=>[e(_,{type:"primary",link:"",onClick:c},{default:a(()=>[...o[0]||(o[0]=[C("清除系统缓存",-1)])]),_:1})]),_:1})]),_:1},8,["data"])]),_:1})])}}});export{j as default}; +import{o as l,q as i,r as m,v as e,D as a,bo as p,bj as f,bk as b,u,bl as h,K as w,L as C,M as k}from"./.pnpm-CyuAWpdG.js";import{j as E,D as x}from"./index-Bkarz3gO.js";const y={class:"cache"},v=l({name:"cache"}),j=l({...v,setup(g){const s=k([{content:"系统缓存",desc:"系统运行过程中产生的各类缓存数据"}]),c=async()=>{await E.confirm("确认清除系统缓存?"),await x(),window.location.reload()};return(B,o)=>{const r=p,n=f,t=h,_=w,d=b;return i(),m("div",y,[e(n,{class:"!border-none",shadow:"never"},{default:a(()=>[e(r,{type:"warning",title:"温馨提示:管理系统运行过程中产生的缓存",closable:!1,"show-icon":""})]),_:1}),e(n,{class:"!border-none mt-4",shadow:"never"},{default:a(()=>[e(d,{data:u(s),size:"large"},{default:a(()=>[e(t,{label:"管理内容",prop:"content","min-width":"130"}),e(t,{label:"内容说明",prop:"desc","min-width":"180"}),e(t,{label:"操作",width:"130",fixed:"right"},{default:a(()=>[e(_,{type:"primary",link:"",onClick:c},{default:a(()=>[...o[0]||(o[0]=[C("清除系统缓存",-1)])]),_:1})]),_:1})]),_:1},8,["data"])]),_:1})])}}});export{j as default}; diff --git a/server/public/admin/assets/change-password-pIHWLEVG.js b/server/public/admin/assets/change-password-BOj_3PLz.js similarity index 95% rename from server/public/admin/assets/change-password-pIHWLEVG.js rename to server/public/admin/assets/change-password-BOj_3PLz.js index 09f075a7d..ab11b92d7 100644 --- a/server/public/admin/assets/change-password-pIHWLEVG.js +++ b/server/public/admin/assets/change-password-BOj_3PLz.js @@ -1 +1 @@ -import{o as k,W as v,ap as E,E as l,q as h,r as V,s as n,v as e,D as r,bb as C,aA as P,bc as L,bd as F,L as z,u as f,K as B,a8 as I,aC as N}from"./.pnpm-CyuAWpdG.js";import{u as R,g as S,P as q,c as K,d as U,_ as D}from"./index-Dxvz9lb1.js";import{u as M}from"./useLockFn-d8ytjraO.js";import{_ as T}from"./footer.vue_vue_type_script_setup_true_lang-DVmBDxqU.js";const $={class:"change-password flex flex-col"},j={class:"flex-1 flex items-center justify-center"},A={class:"change-password-card bg-body rounded-md px-10 py-10 w-[480px]"},G=k({__name:"change-password",setup(O){const i=I(),_=v(),m=R();E(()=>{S()||(l.error("请先登录"),_.push(q.LOGIN))});const o=N({password:"",password_confirm:""}),w={password:[{required:!0,message:"请输入新密码",trigger:"blur"},{min:6,message:"密码长度不能少于6位",trigger:"blur"}],password_confirm:[{required:!0,validator:(t,s,a)=>{s===""?a(new Error("请再次输入密码")):s!==o.password?a(new Error("两次输入的密码不一致")):a()},trigger:"blur"}]},p=async()=>{var t;await((t=i.value)==null?void 0:t.validate());try{await U({password:o.password,password_confirm:o.password_confirm}),l.success("密码修改成功,请重新登录"),m.isPaw=1,await m.logout()}catch(s){l.error((s==null?void 0:s.msg)||(s==null?void 0:s.message)||"密码修改失败")}},{isLock:g,lockFn:x}=M(p);return(t,s)=>{const a=K,c=P,u=C,b=F,y=B;return h(),V("div",$,[n("div",j,[n("div",A,[s[3]||(s[3]=n("div",{class:"text-center text-2xl font-medium mb-2"},"首次登录",-1)),s[4]||(s[4]=n("div",{class:"text-center text-gray-500 text-sm mb-8"},"为了您的账号安全,请修改初始密码",-1)),e(b,{ref_key:"formRef",ref:i,model:o,size:"large",rules:w},{default:r(()=>[e(u,{prop:"password"},{default:r(()=>[e(c,{modelValue:o.password,"onUpdate:modelValue":s[0]||(s[0]=d=>o.password=d),type:"password","show-password":"",placeholder:"请输入新密码"},{prepend:r(()=>[e(a,{name:"el-icon-Lock",size:"16"})]),_:1},8,["modelValue"])]),_:1}),e(u,{prop:"password_confirm"},{default:r(()=>[e(c,{modelValue:o.password_confirm,"onUpdate:modelValue":s[1]||(s[1]=d=>o.password_confirm=d),type:"password","show-password":"",placeholder:"请再次输入新密码",onKeyup:L(p,["enter"])},{prepend:r(()=>[e(a,{name:"el-icon-Lock",size:"16"})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"]),e(y,{type:"primary",size:"large",loading:f(g),onClick:f(x),class:"w-full"},{default:r(()=>[...s[2]||(s[2]=[z(" 确认修改 ",-1)])]),_:1},8,["loading","onClick"])])]),e(T)])}}}),Y=D(G,[["__scopeId","data-v-bbd4ab41"]]);export{Y as default}; +import{o as k,W as v,ap as E,E as l,q as h,r as V,s as n,v as e,D as r,bb as C,aA as P,bc as L,bd as F,L as z,u as f,K as B,a8 as I,aC as N}from"./.pnpm-CyuAWpdG.js";import{u as R,g as S,P as q,c as K,d as U,_ as D}from"./index-Bkarz3gO.js";import{u as M}from"./useLockFn-d8ytjraO.js";import{_ as T}from"./footer.vue_vue_type_script_setup_true_lang-CPBf3DXQ.js";const $={class:"change-password flex flex-col"},j={class:"flex-1 flex items-center justify-center"},A={class:"change-password-card bg-body rounded-md px-10 py-10 w-[480px]"},G=k({__name:"change-password",setup(O){const i=I(),_=v(),m=R();E(()=>{S()||(l.error("请先登录"),_.push(q.LOGIN))});const o=N({password:"",password_confirm:""}),w={password:[{required:!0,message:"请输入新密码",trigger:"blur"},{min:6,message:"密码长度不能少于6位",trigger:"blur"}],password_confirm:[{required:!0,validator:(t,s,a)=>{s===""?a(new Error("请再次输入密码")):s!==o.password?a(new Error("两次输入的密码不一致")):a()},trigger:"blur"}]},p=async()=>{var t;await((t=i.value)==null?void 0:t.validate());try{await U({password:o.password,password_confirm:o.password_confirm}),l.success("密码修改成功,请重新登录"),m.isPaw=1,await m.logout()}catch(s){l.error((s==null?void 0:s.msg)||(s==null?void 0:s.message)||"密码修改失败")}},{isLock:g,lockFn:x}=M(p);return(t,s)=>{const a=K,c=P,u=C,b=F,y=B;return h(),V("div",$,[n("div",j,[n("div",A,[s[3]||(s[3]=n("div",{class:"text-center text-2xl font-medium mb-2"},"首次登录",-1)),s[4]||(s[4]=n("div",{class:"text-center text-gray-500 text-sm mb-8"},"为了您的账号安全,请修改初始密码",-1)),e(b,{ref_key:"formRef",ref:i,model:o,size:"large",rules:w},{default:r(()=>[e(u,{prop:"password"},{default:r(()=>[e(c,{modelValue:o.password,"onUpdate:modelValue":s[0]||(s[0]=d=>o.password=d),type:"password","show-password":"",placeholder:"请输入新密码"},{prepend:r(()=>[e(a,{name:"el-icon-Lock",size:"16"})]),_:1},8,["modelValue"])]),_:1}),e(u,{prop:"password_confirm"},{default:r(()=>[e(c,{modelValue:o.password_confirm,"onUpdate:modelValue":s[1]||(s[1]=d=>o.password_confirm=d),type:"password","show-password":"",placeholder:"请再次输入新密码",onKeyup:L(p,["enter"])},{prepend:r(()=>[e(a,{name:"el-icon-Lock",size:"16"})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"]),e(y,{type:"primary",size:"large",loading:f(g),onClick:f(x),class:"w-full"},{default:r(()=>[...s[2]||(s[2]=[z(" 确认修改 ",-1)])]),_:1},8,["loading","onClick"])])]),e(T)])}}}),Y=D(G,[["__scopeId","data-v-bbd4ab41"]]);export{Y as default}; diff --git a/server/public/admin/assets/code-Bx-mc3Tz.js b/server/public/admin/assets/code-C__TNCcp.js similarity index 92% rename from server/public/admin/assets/code-Bx-mc3Tz.js rename to server/public/admin/assets/code-C__TNCcp.js index d16d4eccd..ab21b1d8a 100644 --- a/server/public/admin/assets/code-Bx-mc3Tz.js +++ b/server/public/admin/assets/code-C__TNCcp.js @@ -1 +1 @@ -import{r as t}from"./index-Dxvz9lb1.js";function o(e){return t.get({url:"/tools.generator/generateTable",params:e})}function n(e){return t.get({url:"/tools.generator/dataTable",params:e})}function a(e){return t.post({url:"/tools.generator/selectTable",params:e})}function l(e){return t.get({url:"/tools.generator/detail",params:e})}function s(e){return t.post({url:"/tools.generator/syncColumn",params:e})}function u(e){return t.post({url:"/tools.generator/delete",params:e})}function g(e){return t.post({url:"/tools.generator/edit",params:e})}function i(e){return t.post({url:"/tools.generator/preview",params:e})}function c(e){return t.post({url:"/tools.generator/generate",params:e})}function f(){return t.get({url:"/tools.generator/getModels"})}export{f as a,o as b,u as c,i as d,c as e,n as f,g,a as h,s,l as t}; +import{r as t}from"./index-Bkarz3gO.js";function o(e){return t.get({url:"/tools.generator/generateTable",params:e})}function n(e){return t.get({url:"/tools.generator/dataTable",params:e})}function a(e){return t.post({url:"/tools.generator/selectTable",params:e})}function l(e){return t.get({url:"/tools.generator/detail",params:e})}function s(e){return t.post({url:"/tools.generator/syncColumn",params:e})}function u(e){return t.post({url:"/tools.generator/delete",params:e})}function g(e){return t.post({url:"/tools.generator/edit",params:e})}function i(e){return t.post({url:"/tools.generator/preview",params:e})}function c(e){return t.post({url:"/tools.generator/generate",params:e})}function f(){return t.get({url:"/tools.generator/getModels"})}export{f as a,o as b,u as c,i as d,c as e,n as f,g,a as h,s,l as t}; diff --git a/server/public/admin/assets/code-preview-DGJNumV5.js b/server/public/admin/assets/code-preview-DGJNumV5.js deleted file mode 100644 index 593a5bcd7..000000000 --- a/server/public/admin/assets/code-preview-DGJNumV5.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./code-preview.vue_vue_type_script_setup_true_lang-B09gNHmz.js";import"./.pnpm-CyuAWpdG.js";import"./index-Dxvz9lb1.js";export{o as default}; diff --git a/server/public/admin/assets/code-preview-Y5vXP8uG.js b/server/public/admin/assets/code-preview-Y5vXP8uG.js new file mode 100644 index 000000000..8b3555bbe --- /dev/null +++ b/server/public/admin/assets/code-preview-Y5vXP8uG.js @@ -0,0 +1 @@ +import{_ as o}from"./code-preview.vue_vue_type_script_setup_true_lang-D4QV-rVa.js";import"./.pnpm-CyuAWpdG.js";import"./index-Bkarz3gO.js";export{o as default}; diff --git a/server/public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang-B09gNHmz.js b/server/public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang-D4QV-rVa.js similarity index 95% rename from server/public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang-B09gNHmz.js rename to server/public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang-D4QV-rVa.js index 6c5e1b420..d68a0174c 100644 --- a/server/public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang-B09gNHmz.js +++ b/server/public/admin/assets/code-preview.vue_vue_type_script_setup_true_lang-D4QV-rVa.js @@ -1 +1 @@ -import{o as w,x as T,q as c,r as u,v as t,D as a,Y as j,C as m,u as i,F as D,G as N,O as $,X as F,s as p,a2 as L,K as S,L as U,aB as q,M as G,p as H,aH as K}from"./.pnpm-CyuAWpdG.js";import{c as M,j as _}from"./index-Dxvz9lb1.js";const O={class:"code-preview"},P={class:"flex",style:{height:"50vh"}},z=w({__name:"code-preview",props:{modelValue:{type:Boolean},code:{}},emits:["update:modelValue"],setup(d,{emit:f}){const b=d,V=f,{toClipboard:v}=K(),n=G("index0"),g=async l=>{try{await v(l),_.msgSuccess("复制成功")}catch{_.msgError("复制失败")}},s=H({get(){return b.modelValue},set(l){V("update:modelValue",l)}});return(l,e)=>{const h=T("highlightjs"),C=L,x=M,y=S,k=F,B=j,E=q;return c(),u("div",O,[t(E,{modelValue:i(s),"onUpdate:modelValue":e[1]||(e[1]=o=>m(s)?s.value=o:null),width:"900px",title:"代码预览"},{default:a(()=>[t(B,{modelValue:i(n),"onUpdate:modelValue":e[0]||(e[0]=o=>m(n)?n.value=o:null)},{default:a(()=>[(c(!0),u(D,null,N(d.code,(o,r)=>(c(),$(k,{label:o.name,name:`index${r}`,key:r},{default:a(()=>[p("div",P,[t(C,{class:"flex-1"},{default:a(()=>[t(h,{autodetect:"",code:o.content},null,8,["code"])]),_:2},1024),p("div",null,[t(y,{onClick:R=>g(o.content),type:"primary",link:""},{icon:a(()=>[t(x,{name:"el-icon-CopyDocument"})]),default:a(()=>[e[2]||(e[2]=U(" 复制 ",-1))]),_:1},8,["onClick"])])])]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])])}}});export{z as _}; +import{o as w,x as T,q as c,r as u,v as t,D as a,Y as j,C as m,u as i,F as D,G as N,O as $,X as F,s as p,a2 as L,K as S,L as U,aB as q,M as G,p as H,aH as K}from"./.pnpm-CyuAWpdG.js";import{c as M,j as _}from"./index-Bkarz3gO.js";const O={class:"code-preview"},P={class:"flex",style:{height:"50vh"}},z=w({__name:"code-preview",props:{modelValue:{type:Boolean},code:{}},emits:["update:modelValue"],setup(d,{emit:f}){const b=d,V=f,{toClipboard:v}=K(),n=G("index0"),g=async l=>{try{await v(l),_.msgSuccess("复制成功")}catch{_.msgError("复制失败")}},s=H({get(){return b.modelValue},set(l){V("update:modelValue",l)}});return(l,e)=>{const h=T("highlightjs"),C=L,x=M,y=S,k=F,B=j,E=q;return c(),u("div",O,[t(E,{modelValue:i(s),"onUpdate:modelValue":e[1]||(e[1]=o=>m(s)?s.value=o:null),width:"900px",title:"代码预览"},{default:a(()=>[t(B,{modelValue:i(n),"onUpdate:modelValue":e[0]||(e[0]=o=>m(n)?n.value=o:null)},{default:a(()=>[(c(!0),u(D,null,N(d.code,(o,r)=>(c(),$(k,{label:o.name,name:`index${r}`,key:r},{default:a(()=>[p("div",P,[t(C,{class:"flex-1"},{default:a(()=>[t(h,{autodetect:"",code:o.content},null,8,["code"])]),_:2},1024),p("div",null,[t(y,{onClick:R=>g(o.content),type:"primary",link:""},{icon:a(()=>[t(x,{name:"el-icon-CopyDocument"})]),default:a(()=>[e[2]||(e[2]=U(" 复制 ",-1))]),_:1},8,["onClick"])])])]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])])}}});export{z as _}; diff --git a/server/public/admin/assets/commission-settlement-BATYB6RQ.js b/server/public/admin/assets/commission-settlement-C4UrnS8s.js similarity index 99% rename from server/public/admin/assets/commission-settlement-BATYB6RQ.js rename to server/public/admin/assets/commission-settlement-C4UrnS8s.js index b5bfe91b5..c6fd27c2a 100644 --- a/server/public/admin/assets/commission-settlement-BATYB6RQ.js +++ b/server/public/admin/assets/commission-settlement-C4UrnS8s.js @@ -1 +1 @@ -import{o as gt,M as p,R as ht,ap as bt,q as u,r as m,s as r,cC as wt,T as _,P as v,v as n,D as o,az as yt,bg as kt,L as s,bh as xt,bi as Ct,F as S,G as Ue,O as b,cD as St,ac as H,bL as Vt,bn as Ot,K as Dt,w as Et,u as B,bB as zt,cz as Nt,bj as Mt,bo as $t,bm as Tt,aA as Rt,Y as Lt,X as Ft,cE as Bt,bk as Ut,bl as It,bt as Pt,cF as Yt,cG as qt,aw as Ie,ae as Pe,bf as Gt,be as At,bu as jt,aB as Ht,p as T,aC as Wt,E as w,e as Ye}from"./.pnpm-CyuAWpdG.js";import{c as qe,a as Qt,b as Xt,d as Jt,e as Zt,f as Kt,g as el}from"./stats-Bao68QGi.js";import{_ as tl}from"./index-Dxvz9lb1.js";const ll={class:"cs-page"},al={class:"cs-masthead"},nl={class:"cs-masthead__inner"},ol={key:0,class:"cs-masthead__stats"},sl={class:"cs-stat"},rl={class:"cs-stat__value"},il={key:0,class:"cs-stat"},dl={class:"cs-stat__value cs-stat__value--xs"},ul={key:1,class:"cs-stat"},_l={class:"cs-stat__value cs-stat__value--xs"},cl={class:"filter-surface"},pl={class:"filter-row filter-row--top"},ml={class:"filter-field"},fl={class:"filter-field filter-field--rangewrap"},vl={class:"filter-field"},gl={class:"filter-field filter-field--wide"},hl={class:"filter-select filter-select--dept filter-dept-tree-wrap"},bl={class:"filter-actions"},wl={class:"cs-alert__body"},yl={key:0},kl={key:1},xl={key:2,class:"cs-alert__meta"},Cl={class:"cs-reconcile"},Sl={class:"cs-reconcile__head"},Vl={class:"cs-reconcile__tags"},Ol={key:3,class:"cs-reconcile__meta"},Dl={key:4,class:"cs-reconcile__meta"},El={class:"cs-reconcile__toolbar"},zl={key:0,class:"cs-reconcile__carry"},Nl={class:"cs-table-head"},Ml={class:"cs-table-head__row"},$l={key:0,class:"cs-drill-state"},Tl={class:"cs-dept-link__text"},Rl={key:1,class:"cs-muted"},Ll={class:"cs-dialog__bar"},Fl={class:"cs-patient-cell"},Bl={class:"cs-patient-cell__name"},Ul={key:0,class:"cs-patient-cell__meta cs-muted"},Il={key:0},Pl={key:1,class:"cs-muted"},Yl={key:0,class:"cs-muted"},ql={key:1,class:"cs-muted"},Gl={class:"cs-dialog__pager"},Al={class:"cs-dialog__bar cs-dialog__bar--split"},jl={class:"cs-dialog__hint"},Hl={class:"cs-patient-cell"},Wl={class:"cs-patient-cell__name"},Ql={key:0,class:"cs-patient-cell__meta cs-muted"},Xl={key:0},Jl={key:1,class:"cs-muted"},Zl={key:0,class:"cs-muted"},Kl={key:1,class:"cs-muted"},ea={class:"cs-dialog__pager"},ta=gt({__name:"commission-settlement",setup(la){const Ge={value:"id",label:"name",children:"children"};function Ae(t){if(!t.length)return[];const e=new Map;for(const f of t)e.set(f.id,{...f,children:[]});const i=[];for(const f of t){const g=e.get(f.id),y=Number(f.pid);y>0&&e.has(y)?e.get(y).children.push(g):i.push(g)}const a=f=>{var g;(g=f.children)!=null&&g.length?f.children.forEach(a):delete f.children};i.forEach(a);const x=f=>{var g;f.sort((y,z)=>{const C=y.name.includes("中心")?-1:1,N=z.name.includes("中心")?-1:1;return C!==N?C-N:y.id-z.id});for(const y of f)(g=y.children)!=null&&g.length&&x(y.children)};return x(i),i}function ke(){const t=new Date,e=t.getFullYear(),i=String(t.getMonth()+1).padStart(2,"0");return`${e}-${i}`}function W(t){return String(t).padStart(2,"0")}function xe(t){return`${t.getFullYear()}-${W(t.getMonth()+1)}-${W(t.getDate())} ${W(t.getHours())}:${W(t.getMinutes())}:${W(t.getSeconds())}`}function re(t){const e=/^(\d{4})-(\d{2})$/.exec(t),i=e?parseInt(e[1],10):new Date().getFullYear(),a=e?parseInt(e[2],10):new Date().getMonth()+1,x=new Date(i,a-2,1,0,0,0),f=new Date(i,a-1,0,23,59,59);return[xe(x),xe(f)]}const h=p(ke()),U=p(re(h.value)),ae=p(!1),R=p(!1),ne=p([]),ie=p(!1),je=T(()=>Ae(ne.value)),O=p([]),Ce=p([]),de=p(!1),Q=p(""),ue=p([]),Se=p([]),Ve=p([]),oe=p([]),se=p([]),Oe=p("dept"),I=p({}),c=Wt({settlement_month:"",order_month:"",order_start_time:"",order_end_time:"",fulfillment_status:3,explicit_order_time_window:!1,cutoff_end:"",rule_note:"",channel_name:"",require_system_auto_prescription:!1}),D=p(null),X=p(""),_e=p(!1),ce=p(!1),pe=p(!1),L=T(()=>{var t;return Number((t=D.value)==null?void 0:t.status)===1}),me=p(!1),fe=p(!1),P=p("all"),ve=p([]),ge=p(0),De=p(1),Ee=p(20),J=p(!1),Y=p(null),$=p("all"),q=p([]),G=p(0),Z=p(1),ze=p(20),he=p(!1),He=T(()=>{const t=Y.value;return t?t.mode==="dept"?`已完成业绩订单 · ${t.dept_name}`:t.title:"已完成业绩订单"}),K=T(()=>c.order_start_time&&c.order_end_time?`${c.order_start_time}~${c.order_end_time}`:c.order_month||"—"),We=T(()=>{const t=new Map;for(const e of ne.value){const i=Number(e.pid),a=t.get(i)??[];a.push(e.id),t.set(i,a)}return t}),be=T(()=>{const t=new Map;for(const e of ne.value)t.set(e.id,e);return t}),ee=T(()=>{if(O.value.length!==1)return null;const t=O.value[0];return be.value.get(t)??null}),Qe=T(()=>{const t=ee.value;if(!t)return"返回顶层";const e=Number(t.pid),i=e>0?be.value.get(e):null;return!i||Number(i.pid)<=0?"返回顶层":`返回上级 · ${i.name}`});function Ne(t){if(!t||t<=0)return!1;const e=We.value.get(t);return!!(e&&e.length>0)}function Xe(t){if(!(!t||!t.dept_id||t.dept_id<=0)){if(Ne(t.dept_id)){O.value=[t.dept_id],E();return}Ze(t.dept_id,t.dept_name)}}function Je(){const t=ee.value;if(!t){O.value=[],E();return}const e=Number(t.pid),i=e>0?be.value.get(e):null;!i||Number(i.pid)<=0?O.value=[]:O.value=[e],E()}function Ze(t,e){if(!h.value){w.warning("请选择结算月");return}Y.value={mode:"dept",dept_id:t,dept_name:e},$.value="all",Z.value=1,q.value=[],G.value=0,J.value=!0,te(1)}function Ke(t){if(!h.value){w.warning("请选择结算月");return}Y.value={mode:"channel",title:`业务订单 · ${t.appt_channel_name} · 医助 ${t.assistant_name}`,assistant_id:t.assistant_id,appt_channel_value:Number(t.appt_channel_value??0)},$.value="all",Z.value=1,q.value=[],G.value=0,J.value=!0,te(1)}function et(t){if(!h.value){w.warning("请选择结算月");return}Y.value={mode:"channel",title:`业务订单 · ${t.appt_channel_name} · 医生 ${t.doctor_name}`,doctor_id:t.doctor_id,appt_channel_value:Number(t.appt_channel_value??0)},$.value="all",Z.value=1,q.value=[],G.value=0,J.value=!0,te(1)}async function te(t){if(!(!h.value||!Y.value)){he.value=!0,Z.value=t;try{const e=Y.value,i={settlement_month:h.value,page:t,page_size:ze.value};e.mode==="dept"?(Object.assign(i,F()),i.table_row_dept_id=e.dept_id):(Object.assign(i,F()),i.appt_channel_value=e.appt_channel_value,e.assistant_id!=null&&(i.assistant_id=e.assistant_id),e.doctor_id!=null&&(i.doctor_id=e.doctor_id)),$.value&&$.value!=="all"&&(i.bucket=$.value);const a=await qe(i);q.value=(a==null?void 0:a.list)||[],G.value=Number((a==null?void 0:a.count)??0)}catch(e){w.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"加载明细失败"),q.value=[],G.value=0}finally{he.value=!1}}}function k(t){return t==null||!Number.isFinite(Number(t))?"—":`¥ ${Number(t).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}`}async function tt(){ie.value=!0;try{const t=await Qt();ne.value=(t||[]).sort((e,i)=>{const a=e.name.includes("中心")?-1:1,x=i.name.includes("中心")?-1:1;return a!==x?a-x:e.id-i.id})}catch{}finally{ie.value=!1}}async function lt(){de.value=!0;try{const t=await Xt();Ce.value=(t==null?void 0:t.groups)||[]}catch{}finally{de.value=!1}}async function E(){var i;const t=h.value;if(!t){w.warning("请选择结算月");return}const e=U.value;if(!e||!e[0]||!e[1]){w.warning("请设置订单创建时间范围");return}R.value=!0;try{const a=await Jt(F());ue.value=(a==null?void 0:a.rows)||[],Se.value=(a==null?void 0:a.assistant_rows)||[],Ve.value=(a==null?void 0:a.doctor_rows)||[],oe.value=(a==null?void 0:a.assistant_channel_rows)||[],se.value=(a==null?void 0:a.doctor_channel_rows)||[],I.value=(a==null?void 0:a.total)||{},c.settlement_month=(a==null?void 0:a.settlement_month)||t,c.order_month=(a==null?void 0:a.order_month)||"",c.order_start_time=a!=null&&a.order_start_time?String(a.order_start_time):"",c.order_end_time=a!=null&&a.order_end_time?String(a.order_end_time):"",c.fulfillment_status=(a==null?void 0:a.fulfillment_status)!=null?Number(a.fulfillment_status):3,c.explicit_order_time_window=typeof(a==null?void 0:a.explicit_order_time_window)=="boolean"?a.explicit_order_time_window:!!(c.order_start_time&&c.order_end_time),c.cutoff_end=(a==null?void 0:a.cutoff_end)||"",c.rule_note=(a==null?void 0:a.rule_note)||"",c.channel_name=(a==null?void 0:a.channel_name)||"",c.require_system_auto_prescription=typeof(a==null?void 0:a.require_system_auto_prescription)=="boolean"?a.require_system_auto_prescription:!1,D.value=(a==null?void 0:a.confirm)??null,X.value=((i=a==null?void 0:a.confirm)==null?void 0:i.reconcile_note)!=null?String(a.confirm.reconcile_note):""}catch(a){w.error((a==null?void 0:a.msg)||(a==null?void 0:a.message)||"加载失败"),ue.value=[],Se.value=[],Ve.value=[],oe.value=[],se.value=[],I.value={},D.value=null}finally{R.value=!1}}function F(){const e={settlement_month:h.value,fulfillment_status:3},i=U.value;return i&&i[0]&&i[1]&&(e.start_time=i[0],e.end_time=i[1]),ae.value&&(e.require_system_auto_prescription=1),O.value.length>0&&(e.dept_ids=O.value.join(",")),Q.value&&(e.channel_code=Q.value),e}function at(){if(!h.value){w.warning("请选择结算月");return}me.value=!0}function nt(){P.value="all",we(1)}async function we(t){if(h.value){fe.value=!0,De.value=t;try{const e={...F(),page:t,page_size:Ee.value};P.value&&P.value!=="all"&&(e.bucket=P.value);const i=await qe(e);ve.value=(i==null?void 0:i.list)||[],ge.value=Number((i==null?void 0:i.count)??0)}catch(e){w.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"加载明细失败"),ve.value=[],ge.value=0}finally{fe.value=!1}}}async function ot(){if(!h.value){w.warning("请选择结算月");return}if(L.value){w.warning("已确定业绩不可修改备注;请先撤回确定");return}_e.value=!0;try{await Zt({...F(),reconcile_note:X.value}),w.success("已保存核对备注"),await E()}catch(t){w.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"保存失败")}finally{_e.value=!1}}async function st(){if(!h.value){w.warning("请选择结算月");return}try{await Ye.confirm("确定后将为「顺延下期」订单写入结转记录,下一结算月在相同渠道与部门筛选下自动并入统计。确定后仍可「撤回确定」以清除结转并重新核对(与财务对齐后再操作)。","确定本期业绩",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"})}catch{return}ce.value=!0;try{const t=await Kt({...F(),reconcile_note:X.value});w.success(`已确定本期业绩;结转 ${Number((t==null?void 0:t.deferred_carry_count)??0)} 单至 ${String((t==null?void 0:t.next_settlement_month)??"下期")}`),await E()}catch(t){w.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"提交失败")}finally{ce.value=!1}}async function rt(){if(!h.value){w.warning("请选择结算月");return}try{await Ye.confirm("将撤回本次「确定业绩」状态,并删除已写入的顺延结转记录(下期将不再汇入这些单)。确定后继续?","撤回确定业绩",{confirmButtonText:"撤回",cancelButtonText:"取消",type:"warning"})}catch{return}pe.value=!0;try{await el(F()),w.success("已撤回确定;可重新保存备注并再次确定本期业绩"),await E()}catch(t){w.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"撤回失败")}finally{pe.value=!1}}function it(){h.value=ke(),U.value=re(h.value),ae.value=!1,O.value=[],Q.value="",E()}function Me(t){const{columns:e}=t,i=I.value,a=[];return e.forEach((x,f)=>{if(f===0){a[f]="合计";return}const g=x.property;if(!i||!g){a[f]="";return}if(g==="primary_dept_name"||g==="appt_channel_name"){a[f]="";return}if(g==="carry_in_order_count"){a[f]=String(i.carry_in_order_count??0);return}const y={completed_order_count:String(i.completed_order_count??0),completed_order_amount:k(i.completed_order_amount),current_period_count:String(i.current_period_count??0),current_period_amount:k(i.current_period_amount),deferred_period_count:String(i.deferred_period_count??0),deferred_period_amount:k(i.deferred_period_amount)};a[f]=y[String(g)]??""}),a}function $e(t,e){return i=>{const{rowIndex:a,columnIndex:x}=i;if(x>1)return;const f=t.value;if(!f||f.length===0)return;const g=f[a];if(!g)return;const y=g[e],z=a>0?f[a-1]:null;if(z&&z[e]===y)return{rowspan:0,colspan:0};let C=1;for(let N=a+1;N{if(f===0){a[f]="合计";return}const g=x.property;if(!i||!g){a[f]="";return}const y={completed_order_count:String(i.completed_order_count??0),completed_order_amount:k(i.completed_order_amount),current_period_count:String(i.current_period_count??0),current_period_amount:k(i.current_period_amount),deferred_period_count:String(i.deferred_period_count??0),deferred_period_amount:k(i.deferred_period_amount)};a[f]=y[String(g)]??""}),a}return ht(h,t=>{t&&(U.value=re(t))}),bt(async()=>{await Promise.all([tt(),lt()]),await E()}),(t,e)=>{const i=yt,a=kt,x=Ct,f=St,g=xt,y=Vt,z=Et,C=Dt,N=Mt,ct=$t,V=Tt,pt=Rt,mt=Pt,d=It,le=Ut,ye=Ft,ft=Lt,A=At,Re=Gt,Le=jt,Fe=Ht,j=Ot;return u(),m("div",ll,[r("header",al,[r("div",nl,[e[16]||(e[16]=wt('
财务结算 · 业绩台账

提成结算业绩

订单池默认与处方订单列表同源:创建时间 start_time~end_time + fulfillment_status(默认完成态 3),账号列表可见性/数据域一并生效。 选结算月仍可套用「物流签收与尾款支付均须在结算月 7 日 24 点前」拆分「本期提成 / 顺延下期」 (仅有签收在范围内、尾款晚于截止仍会顺延); 展示部门/渠道下拉与列表不同,勾选后会与列表计数不同。

',1)),c.settlement_month||c.cutoff_end?(u(),m("dl",ol,[r("div",sl,[e[13]||(e[13]=r("dt",{class:"cs-stat__label"},"结算月",-1)),r("dd",rl,_(c.settlement_month||h.value),1)]),c.order_month||c.order_start_time?(u(),m("div",il,[e[14]||(e[14]=r("dt",{class:"cs-stat__label"},"订单时间窗",-1)),r("dd",dl,_(K.value),1)])):v("",!0),c.cutoff_end?(u(),m("div",ul,[e[15]||(e[15]=r("dt",{class:"cs-stat__label"},"截止时刻",-1)),r("dd",_l,_(c.cutoff_end),1)])):v("",!0)])):v("",!0)])]),n(N,{class:"cs-panel filter-card",shadow:"never"},{default:o(()=>[r("div",cl,[r("div",pl,[r("div",ml,[e[17]||(e[17]=r("span",{class:"lbl"},"结算月",-1)),n(i,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=l=>h.value=l),type:"month","value-format":"YYYY-MM",placeholder:"选择结算月",class:"filter-month"},null,8,["modelValue"])]),r("div",fl,[e[19]||(e[19]=r("span",{class:"lbl"},"订单创建",-1)),n(i,{modelValue:U.value,"onUpdate:modelValue":e[1]||(e[1]=l=>U.value=l),type:"datetimerange","value-format":"YYYY-MM-DD HH:mm:ss","range-separator":"至","start-placeholder":"列表 start_time","end-placeholder":"列表 end_time",class:"filter-datetimerange"},null,8,["modelValue"]),n(a,{modelValue:ae.value,"onUpdate:modelValue":e[2]||(e[2]=l=>ae.value=l),class:"filter-sa-check"},{default:o(()=>[...e[18]||(e[18]=[s(" 仅系统代开处方 ",-1)])]),_:1},8,["modelValue"])]),r("div",vl,[e[20]||(e[20]=r("span",{class:"lbl"},"渠道来源",-1)),n(g,{modelValue:Q.value,"onUpdate:modelValue":e[3]||(e[3]=l=>Q.value=l),filterable:"",clearable:"",placeholder:"全部",class:"filter-select filter-select--channel",loading:de.value,onChange:E},{default:o(()=>[n(x,{label:"全部",value:""}),(u(!0),m(S,null,Ue(Ce.value,l=>(u(),b(f,{key:l.group_name,label:l.group_name},{default:o(()=>[(u(!0),m(S,null,Ue(l.channels,M=>(u(),b(x,{key:M.channel_code,label:M.channel_name,value:M.channel_code},null,8,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","loading"])]),r("div",gl,[e[21]||(e[21]=r("span",{class:"lbl"},"展示部门",-1)),H((u(),m("div",hl,[n(y,{modelValue:O.value,"onUpdate:modelValue":e[4]||(e[4]=l=>O.value=l),data:je.value,multiple:"","collapse-tags":"","collapse-tags-tooltip":"",filterable:"","check-strictly":"","render-after-expand":!1,"default-expand-all":!0,placeholder:"默认:所有「中心」部门",class:"filter-dept-tree-select","node-key":"id",props:Ge},null,8,["modelValue","data"])])),[[j,ie.value]])]),r("div",bl,[n(C,{type:"primary",class:"filter-btn filter-btn--query",loading:R.value,onClick:E},{default:o(()=>[n(z,{class:"filter-btn__icon"},{default:o(()=>[n(B(zt))]),_:1}),e[22]||(e[22]=s(" 查询 ",-1))]),_:1},8,["loading"]),n(C,{class:"filter-btn filter-btn--reset",disabled:R.value,onClick:it},{default:o(()=>[n(z,{class:"filter-btn__icon"},{default:o(()=>[n(B(Nt))]),_:1}),e[23]||(e[23]=s(" 重置 ",-1))]),_:1},8,["disabled"])])])])]),_:1}),n(ct,{type:"info",closable:!1,"show-icon":"",class:"cs-alert"},{title:o(()=>[...e[24]||(e[24]=[r("span",{class:"cs-alert__title"},"统计口径",-1)])]),default:o(()=>[r("div",wl,[c.rule_note?(u(),m("p",yl,_(c.rule_note),1)):(u(),m("p",kl,[...e[25]||(e[25]=[s(" 请选择结算月并设置",-1),r("strong",null,"订单创建时间范围",-1),s("(与处方订单列表 URL 参数 ",-1),r("code",null,"start_time",-1),s("/",-1),r("code",null,"end_time",-1),s("/",-1),r("code",null,"fulfillment_status",-1),s(" 一致);切换结算月会自动带出",-1),r("strong",null,"上一自然月整段",-1),s("作为默认时段,可按业务修改(例如 2026-04-02~04-30)。 「仅系统代开处方」勾选后与列表在未限制开方类型时的条数会不一致。 ",-1)])])),c.cutoff_end?(u(),m("p",xl,[e[30]||(e[30]=s(" 当前结算月:",-1)),r("strong",null,_(c.settlement_month),1),e[31]||(e[31]=s(" · 订单时间:",-1)),r("strong",null,_(K.value),1),e[32]||(e[32]=s(" · 履约状态:",-1)),r("strong",null,_(c.fulfillment_status??3),1),e[33]||(e[33]=s(" · 截止时刻:",-1)),r("strong",null,_(c.cutoff_end),1),c.channel_name?(u(),m(S,{key:0},[e[26]||(e[26]=s(" · 渠道:",-1)),r("strong",null,_(c.channel_name),1)],64)):v("",!0),c.settlement_month?(u(),m(S,{key:1},[e[29]||(e[29]=s(" · 处方池:",-1)),r("strong",null,_(c.require_system_auto_prescription?"仅系统代开":"含手动与系统"),1),c.explicit_order_time_window?(u(),m(S,{key:0},[e[27]||(e[27]=s(" · 列表对齐:",-1)),e[28]||(e[28]=r("strong",null,"是",-1))],64)):v("",!0)],64)):v("",!0)])):v("",!0)])]),_:1}),n(N,{class:"cs-panel cs-reconcile-card",shadow:"never"},{default:o(()=>{var l,M,Be;return[r("div",Cl,[r("div",Sl,[r("div",Vl,[L.value?(u(),b(V,{key:0,type:"success",effect:"dark"},{default:o(()=>[...e[34]||(e[34]=[s("已确定业绩",-1)])]),_:1})):((l=D.value)==null?void 0:l.status)===2?(u(),b(V,{key:1,type:"warning",effect:"plain"},{default:o(()=>[...e[35]||(e[35]=[s("已撤回确定",-1)])]),_:1})):(u(),b(V,{key:2,type:"info",effect:"plain"},{default:o(()=>[...e[36]||(e[36]=[s("待确定业绩",-1)])]),_:1})),L.value&&((M=D.value)!=null&&M.confirmed_at_text)?(u(),m("span",Ol,_(D.value.confirmed_admin_name||"—")+" · "+_(D.value.confirmed_at_text),1)):((Be=D.value)==null?void 0:Be.status)===2&&D.value.revoked_at_text?(u(),m("span",Dl," 撤回:"+_(D.value.revoked_admin_name||"—")+" · "+_(D.value.revoked_at_text),1)):v("",!0)]),r("div",El,[n(C,{type:"primary",plain:"",onClick:at},{default:o(()=>[...e[37]||(e[37]=[s("业绩明细核对",-1)])]),_:1}),n(C,{disabled:L.value||_e.value,onClick:ot},{default:o(()=>[...e[38]||(e[38]=[s(" 保存核对备注 ",-1)])]),_:1},8,["disabled"]),n(C,{type:"warning",disabled:L.value||ce.value,onClick:st},{default:o(()=>[...e[39]||(e[39]=[s(" 确定本期业绩 ",-1)])]),_:1},8,["disabled"]),L.value?(u(),b(C,{key:0,type:"danger",plain:"",loading:pe.value,onClick:rt},{default:o(()=>[...e[40]||(e[40]=[s(" 撤回确定 ",-1)])]),_:1},8,["loading"])):v("",!0)])]),n(pt,{modelValue:X.value,"onUpdate:modelValue":e[5]||(e[5]=vt=>X.value=vt),type:"textarea",rows:2,maxlength:"500","show-word-limit":"",placeholder:"核对备注(可与财务线下对齐后填写;确定业绩前可反复保存)",disabled:L.value,class:"cs-reconcile__note"},null,8,["modelValue","disabled"]),Number(I.value.carry_in_order_count)>0?(u(),m("p",zl,[e[41]||(e[41]=s(" 上期顺延汇入本期:",-1)),r("strong",null,_(I.value.carry_in_order_count),1),e[42]||(e[42]=s(" 单(已并入当前汇总) ",-1))])):v("",!0)])]}),_:1}),n(N,{class:"cs-panel cs-summary-card",shadow:"never"},{default:o(()=>[n(ft,{modelValue:Oe.value,"onUpdate:modelValue":e[6]||(e[6]=l=>Oe.value=l),class:"cs-summary-tabs"},{default:o(()=>[n(ye,{label:"部门汇总",name:"dept"},{default:o(()=>[r("div",Nl,[r("div",Ml,[e[43]||(e[43]=r("span",{class:"cs-table-head__title"},"部门汇总",-1)),ee.value?(u(),m("div",$l,[n(V,{size:"small",type:"info",effect:"plain",class:"cs-drill-state__tag"},{default:o(()=>[s(" 当前下钻:"+_(ee.value.path||ee.value.name),1)]),_:1}),n(C,{link:"",type:"primary",class:"cs-drill-state__back",onClick:Je},{default:o(()=>[n(z,null,{default:o(()=>[n(B(Bt))]),_:1}),s(" "+_(Qe.value),1)]),_:1})])):v("",!0)]),e[44]||(e[44]=r("span",{class:"cs-table-head__hint"},[s(" 金额单位:元;与业绩看板相同的部门摊列规则(业绩归属医助 → 展示「中心」)。 "),r("strong",null,"点击部门"),s(":若有子部门则下钻一层;末级部门弹出「已完成业绩订单」明细。 ")],-1))]),H((u(),b(le,{data:ue.value,border:"",stripe:"",size:"small",class:"cs-table cs-table--clickable","show-summary":"","summary-method":_t},{default:o(()=>[n(d,{prop:"dept_name",label:"部门","min-width":"220",fixed:""},{default:o(({row:l})=>[l.dept_id>0?(u(),b(mt,{key:0,type:"primary",underline:!1,class:"cs-dept-link",onClick:M=>Xe(l)},{default:o(()=>[r("span",Tl,_(l.dept_name),1),n(z,{class:"cs-dept-link__icon"},{default:o(()=>[Ne(l.dept_id)?(u(),b(B(Yt),{key:0})):(u(),b(B(qt),{key:1}))]),_:2},1024)]),_:2},1032,["onClick"])):(u(),m("span",Rl,_(l.dept_name),1))]),_:1}),n(d,{prop:"completed_order_count",label:"已完成单数","min-width":"104",align:"right"}),n(d,{prop:"completed_order_amount",label:"已完成金额","min-width":"112",align:"right"},{default:o(({row:l})=>[s(_(k(l.completed_order_amount)),1)]),_:1}),n(d,{prop:"current_period_count",label:"本期提成单数","min-width":"118",align:"right"}),n(d,{prop:"current_period_amount",label:"本期提成金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.current_period_amount)),1)]),_:1}),n(d,{prop:"deferred_period_count",label:"顺延下期单数","min-width":"118",align:"right"}),n(d,{prop:"deferred_period_amount",label:"顺延下期金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.deferred_period_amount)),1)]),_:1})]),_:1},8,["data"])),[[j,R.value]])]),_:1}),n(ye,{label:"按医助下发",name:"assistant"},{default:o(()=>[e[45]||(e[45]=r("div",{class:"cs-table-head"},[r("span",{class:"cs-table-head__title"},"业绩归属医助 × 挂号渠道"),r("span",{class:"cs-table-head__hint"},[s(" 按诊单业绩归属医助 "),r("strong",null,"×"),s(" 挂号渠道(doctor_appointment.channels)拆分到行; "),r("strong",null,"「复诊2」「复诊3」「自媒体1」等保持各自独立"),s(",未关联挂号统一归到「未匹配挂号渠道」。 同一医助多行"),r("strong",null,"自动合并「医助 / 归属中心」单元格"),s(",「顺延汇入」为上期结转进入本期订单池的单数。 "),r("strong",null,"展示部门"),s("有勾选时,本表仅列出"),r("strong",null,"可归入该部门上下文"),s("的业绩医助(与人事部门落在所选部门范围内的账号一致)。 "),r("strong",null,"点击挂号渠道"),s(":查看该行对应的业务订单明细(与上方部门筛选一致)。 ")])],-1)),H((u(),b(le,{data:oe.value,border:"",stripe:"",size:"small",class:"cs-table cs-table--grouped","show-summary":"","summary-method":Me,"span-method":B(dt)},{default:o(()=>[n(d,{prop:"assistant_name",label:"医助","min-width":"120",fixed:"","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属中心","min-width":"120","show-overflow-tooltip":""}),n(d,{prop:"appt_channel_name",label:"挂号渠道","min-width":"120","show-overflow-tooltip":""},{default:o(({row:l})=>[n(V,{size:"small",class:Pe(["cs-channel-tag cs-channel-tag--clickable",Te(l.appt_channel_name)]),effect:"plain",onClick:Ie(M=>Ke(l),["stop"])},{default:o(()=>[s(_(l.appt_channel_name),1)]),_:2},1032,["class","onClick"])]),_:1}),n(d,{prop:"carry_in_order_count",label:"顺延汇入单数","min-width":"112",align:"right"}),n(d,{prop:"completed_order_count",label:"已完成单数","min-width":"104",align:"right"}),n(d,{prop:"completed_order_amount",label:"已完成金额","min-width":"112",align:"right"},{default:o(({row:l})=>[s(_(k(l.completed_order_amount)),1)]),_:1}),n(d,{prop:"current_period_count",label:"本期提成单数","min-width":"118",align:"right"}),n(d,{prop:"current_period_amount",label:"本期提成金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.current_period_amount)),1)]),_:1}),n(d,{prop:"deferred_period_count",label:"顺延下期单数","min-width":"118",align:"right"}),n(d,{prop:"deferred_period_amount",label:"顺延下期金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.deferred_period_amount)),1)]),_:1})]),_:1},8,["data","span-method"])),[[j,R.value]])]),_:1}),n(ye,{label:"按医生下发",name:"doctor"},{default:o(()=>[e[46]||(e[46]=r("div",{class:"cs-table-head"},[r("span",{class:"cs-table-head__title"},"处方开方医生 × 挂号渠道"),r("span",{class:"cs-table-head__hint"},[s(" 按处方创建账号(开方人) "),r("strong",null,"×"),s(" 挂号渠道拆分; 可与医助维度交叉核对;同一医生多行自动合并「医生 / 归属中心」单元格。 "),r("strong",null,"展示部门"),s("有勾选时,与医助表相同,仅统计"),r("strong",null,"该部门上下文内"),s("订单对应的开方医生。 "),r("strong",null,"点击挂号渠道"),s(":查看该行对应的业务订单明细。 ")])],-1)),H((u(),b(le,{data:se.value,border:"",stripe:"",size:"small",class:"cs-table cs-table--grouped","show-summary":"","summary-method":Me,"span-method":B(ut)},{default:o(()=>[n(d,{prop:"doctor_name",label:"医生","min-width":"120",fixed:"","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属中心","min-width":"120","show-overflow-tooltip":""}),n(d,{prop:"appt_channel_name",label:"挂号渠道","min-width":"120","show-overflow-tooltip":""},{default:o(({row:l})=>[n(V,{size:"small",class:Pe(["cs-channel-tag cs-channel-tag--clickable",Te(l.appt_channel_name)]),effect:"plain",onClick:Ie(M=>et(l),["stop"])},{default:o(()=>[s(_(l.appt_channel_name),1)]),_:2},1032,["class","onClick"])]),_:1}),n(d,{prop:"carry_in_order_count",label:"顺延汇入单数","min-width":"112",align:"right"}),n(d,{prop:"completed_order_count",label:"已完成单数","min-width":"104",align:"right"}),n(d,{prop:"completed_order_amount",label:"已完成金额","min-width":"112",align:"right"},{default:o(({row:l})=>[s(_(k(l.completed_order_amount)),1)]),_:1}),n(d,{prop:"current_period_count",label:"本期提成单数","min-width":"118",align:"right"}),n(d,{prop:"current_period_amount",label:"本期提成金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.current_period_amount)),1)]),_:1}),n(d,{prop:"deferred_period_count",label:"顺延下期单数","min-width":"118",align:"right"}),n(d,{prop:"deferred_period_amount",label:"顺延下期金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.deferred_period_amount)),1)]),_:1})]),_:1},8,["data","span-method"])),[[j,R.value]])]),_:1})]),_:1},8,["modelValue"])]),_:1}),n(Fe,{modelValue:me.value,"onUpdate:modelValue":e[9]||(e[9]=l=>me.value=l),title:"业绩明细核对",width:"1280px","destroy-on-close":"",class:"cs-dialog",onOpen:nt},{default:o(()=>[r("div",Ll,[n(Re,{modelValue:P.value,"onUpdate:modelValue":e[7]||(e[7]=l=>P.value=l),size:"small",onChange:e[8]||(e[8]=l=>we(1))},{default:o(()=>[n(A,{label:"all"},{default:o(()=>[...e[47]||(e[47]=[s("全部",-1)])]),_:1}),n(A,{label:"current"},{default:o(()=>[...e[48]||(e[48]=[s("本期提成",-1)])]),_:1}),n(A,{label:"deferred"},{default:o(()=>[...e[49]||(e[49]=[s("顺延下期",-1)])]),_:1})]),_:1},8,["modelValue"])]),H((u(),b(le,{data:ve.value,border:"",stripe:"",size:"small","max-height":"440"},{default:o(()=>[n(d,{prop:"order_no",label:"业务订单号","min-width":"128","show-overflow-tooltip":""}),n(d,{label:"患者","min-width":"112","show-overflow-tooltip":""},{default:o(({row:l})=>[r("div",Fl,[r("span",Bl,_(l.patient_name||"—"),1),l.patient_phone||l.patient_gender_text?(u(),m("span",Ul,[l.patient_gender_text?(u(),m(S,{key:0},[s(_(l.patient_gender_text),1)],64)):v("",!0),l.patient_gender_text&&l.patient_phone?(u(),m(S,{key:1},[s(" · ")],64)):v("",!0),l.patient_phone?(u(),m(S,{key:2},[s(_(l.patient_phone),1)],64)):v("",!0)])):v("",!0)])]),_:1}),n(d,{label:"快递单号","min-width":"132","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.tracking_number||"—"),1)]),_:1}),n(d,{label:"挂号日期","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[r("span",null,_(l.appointment_date_text||"—"),1),l.appointment_status&&Number(l.appointment_status)!==3?(u(),b(V,{key:0,class:"cs-tag-appt-muted",type:"info",size:"small",effect:"plain"},{default:o(()=>[...e[50]||(e[50]=[s("未完结挂号",-1)])]),_:1})):v("",!0)]),_:1}),n(d,{label:"挂号渠道","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.appt_channel_name||"—"),1)]),_:1}),n(d,{prop:"assistant_name",label:"业绩医助","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"doctor_name",label:"开方医生","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属部门","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"amount",label:"金额",width:"108",align:"right"},{default:o(({row:l})=>[s(_(k(l.amount)),1)]),_:1}),n(d,{label:"分段",width:"88",align:"center"},{default:o(({row:l})=>[l.bucket==="current"?(u(),b(V,{key:0,type:"success",size:"small"},{default:o(()=>[...e[51]||(e[51]=[s("本期",-1)])]),_:1})):(u(),b(V,{key:1,type:"warning",size:"small"},{default:o(()=>[...e[52]||(e[52]=[s("顺延",-1)])]),_:1}))]),_:1}),n(d,{label:"结转",width:"72",align:"center"},{default:o(({row:l})=>[l.is_carry_in?(u(),m("span",Il,"是")):(u(),m("span",Pl,"—"))]),_:1}),n(d,{label:"顺延说明","min-width":"200","show-overflow-tooltip":""},{default:o(({row:l})=>[l.bucket==="deferred"&&l.bucket_defer_text?(u(),m("span",Yl,_(l.bucket_defer_text),1)):(u(),m("span",ql,"—"))]),_:1}),n(d,{label:"物流签收","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.sign_time_text||"—"),1)]),_:1}),n(d,{prop:"pay_time_text",label:"尾款支付","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.pay_time_text||"—"),1)]),_:1}),n(d,{prop:"create_time_text",label:"订单创建",width:"152"})]),_:1},8,["data"])),[[j,fe.value]]),r("div",Gl,[n(Le,{layout:"total, prev, pager, next",total:ge.value,"page-size":Ee.value,"current-page":De.value,onCurrentChange:we},null,8,["total","page-size","current-page"])])]),_:1},8,["modelValue"]),n(Fe,{modelValue:J.value,"onUpdate:modelValue":e[12]||(e[12]=l=>J.value=l),title:He.value,width:"1280px","destroy-on-close":"",class:"cs-dialog"},{default:o(()=>[r("div",Al,[n(Re,{modelValue:$.value,"onUpdate:modelValue":e[10]||(e[10]=l=>$.value=l),size:"small",onChange:e[11]||(e[11]=l=>te(1))},{default:o(()=>[n(A,{label:"all"},{default:o(()=>[...e[53]||(e[53]=[s("全部已完成",-1)])]),_:1}),n(A,{label:"current"},{default:o(()=>[...e[54]||(e[54]=[s("本期提成",-1)])]),_:1}),n(A,{label:"deferred"},{default:o(()=>[...e[55]||(e[55]=[s("顺延下期",-1)])]),_:1})]),_:1},8,["modelValue"]),r("span",jl,[e[58]||(e[58]=s(" 结算月:",-1)),r("strong",null,_(c.settlement_month||h.value),1),K.value&&K.value!=="—"?(u(),m(S,{key:0},[e[56]||(e[56]=s(" · 订单创建:",-1)),r("strong",null,_(K.value),1)],64)):v("",!0),c.channel_name?(u(),m(S,{key:1},[e[57]||(e[57]=s(" · 渠道:",-1)),r("strong",null,_(c.channel_name),1)],64)):v("",!0)])]),H((u(),b(le,{data:q.value,border:"",stripe:"",size:"small","max-height":"440"},{default:o(()=>[n(d,{prop:"order_no",label:"业务订单号","min-width":"128","show-overflow-tooltip":""}),n(d,{label:"患者","min-width":"112","show-overflow-tooltip":""},{default:o(({row:l})=>[r("div",Hl,[r("span",Wl,_(l.patient_name||"—"),1),l.patient_phone||l.patient_gender_text?(u(),m("span",Ql,[l.patient_gender_text?(u(),m(S,{key:0},[s(_(l.patient_gender_text),1)],64)):v("",!0),l.patient_gender_text&&l.patient_phone?(u(),m(S,{key:1},[s(" · ")],64)):v("",!0),l.patient_phone?(u(),m(S,{key:2},[s(_(l.patient_phone),1)],64)):v("",!0)])):v("",!0)])]),_:1}),n(d,{label:"快递单号","min-width":"132","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.tracking_number||"—"),1)]),_:1}),n(d,{label:"挂号日期","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[r("span",null,_(l.appointment_date_text||"—"),1),l.appointment_status&&Number(l.appointment_status)!==3?(u(),b(V,{key:0,class:"cs-tag-appt-muted",type:"info",size:"small",effect:"plain"},{default:o(()=>[...e[59]||(e[59]=[s("未完结挂号",-1)])]),_:1})):v("",!0)]),_:1}),n(d,{label:"挂号渠道","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.appt_channel_name||"—"),1)]),_:1}),n(d,{prop:"assistant_name",label:"业绩医助","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"doctor_name",label:"开方医生","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属部门","min-width":"120","show-overflow-tooltip":""}),n(d,{prop:"amount",label:"金额",width:"108",align:"right"},{default:o(({row:l})=>[s(_(k(l.amount)),1)]),_:1}),n(d,{label:"分段",width:"88",align:"center"},{default:o(({row:l})=>[l.bucket==="current"?(u(),b(V,{key:0,type:"success",size:"small"},{default:o(()=>[...e[60]||(e[60]=[s("本期",-1)])]),_:1})):(u(),b(V,{key:1,type:"warning",size:"small"},{default:o(()=>[...e[61]||(e[61]=[s("顺延",-1)])]),_:1}))]),_:1}),n(d,{label:"结转",width:"72",align:"center"},{default:o(({row:l})=>[l.is_carry_in?(u(),m("span",Xl,"是")):(u(),m("span",Jl,"—"))]),_:1}),n(d,{label:"顺延说明","min-width":"200","show-overflow-tooltip":""},{default:o(({row:l})=>[l.bucket==="deferred"&&l.bucket_defer_text?(u(),m("span",Zl,_(l.bucket_defer_text),1)):(u(),m("span",Kl,"—"))]),_:1}),n(d,{label:"物流签收","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.sign_time_text||"—"),1)]),_:1}),n(d,{prop:"pay_time_text",label:"尾款支付","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.pay_time_text||"—"),1)]),_:1}),n(d,{prop:"create_time_text",label:"订单创建",width:"152"})]),_:1},8,["data"])),[[j,he.value]]),r("div",ea,[n(Le,{layout:"total, prev, pager, next",total:G.value,"page-size":ze.value,"current-page":Z.value,onCurrentChange:te},null,8,["total","page-size","current-page"])])]),_:1},8,["modelValue","title"])])}}}),sa=tl(ta,[["__scopeId","data-v-a7de712c"]]);export{sa as default}; +import{o as gt,M as p,R as ht,ap as bt,q as u,r as m,s as r,cC as wt,T as _,P as v,v as n,D as o,az as yt,bg as kt,L as s,bh as xt,bi as Ct,F as S,G as Ue,O as b,cD as St,ac as H,bL as Vt,bn as Ot,K as Dt,w as Et,u as B,bB as zt,cz as Nt,bj as Mt,bo as $t,bm as Tt,aA as Rt,Y as Lt,X as Ft,cE as Bt,bk as Ut,bl as It,bt as Pt,cF as Yt,cG as qt,aw as Ie,ae as Pe,bf as Gt,be as At,bu as jt,aB as Ht,p as T,aC as Wt,E as w,e as Ye}from"./.pnpm-CyuAWpdG.js";import{c as qe,a as Qt,b as Xt,d as Jt,e as Zt,f as Kt,g as el}from"./stats-B9TgZYZ_.js";import{_ as tl}from"./index-Bkarz3gO.js";const ll={class:"cs-page"},al={class:"cs-masthead"},nl={class:"cs-masthead__inner"},ol={key:0,class:"cs-masthead__stats"},sl={class:"cs-stat"},rl={class:"cs-stat__value"},il={key:0,class:"cs-stat"},dl={class:"cs-stat__value cs-stat__value--xs"},ul={key:1,class:"cs-stat"},_l={class:"cs-stat__value cs-stat__value--xs"},cl={class:"filter-surface"},pl={class:"filter-row filter-row--top"},ml={class:"filter-field"},fl={class:"filter-field filter-field--rangewrap"},vl={class:"filter-field"},gl={class:"filter-field filter-field--wide"},hl={class:"filter-select filter-select--dept filter-dept-tree-wrap"},bl={class:"filter-actions"},wl={class:"cs-alert__body"},yl={key:0},kl={key:1},xl={key:2,class:"cs-alert__meta"},Cl={class:"cs-reconcile"},Sl={class:"cs-reconcile__head"},Vl={class:"cs-reconcile__tags"},Ol={key:3,class:"cs-reconcile__meta"},Dl={key:4,class:"cs-reconcile__meta"},El={class:"cs-reconcile__toolbar"},zl={key:0,class:"cs-reconcile__carry"},Nl={class:"cs-table-head"},Ml={class:"cs-table-head__row"},$l={key:0,class:"cs-drill-state"},Tl={class:"cs-dept-link__text"},Rl={key:1,class:"cs-muted"},Ll={class:"cs-dialog__bar"},Fl={class:"cs-patient-cell"},Bl={class:"cs-patient-cell__name"},Ul={key:0,class:"cs-patient-cell__meta cs-muted"},Il={key:0},Pl={key:1,class:"cs-muted"},Yl={key:0,class:"cs-muted"},ql={key:1,class:"cs-muted"},Gl={class:"cs-dialog__pager"},Al={class:"cs-dialog__bar cs-dialog__bar--split"},jl={class:"cs-dialog__hint"},Hl={class:"cs-patient-cell"},Wl={class:"cs-patient-cell__name"},Ql={key:0,class:"cs-patient-cell__meta cs-muted"},Xl={key:0},Jl={key:1,class:"cs-muted"},Zl={key:0,class:"cs-muted"},Kl={key:1,class:"cs-muted"},ea={class:"cs-dialog__pager"},ta=gt({__name:"commission-settlement",setup(la){const Ge={value:"id",label:"name",children:"children"};function Ae(t){if(!t.length)return[];const e=new Map;for(const f of t)e.set(f.id,{...f,children:[]});const i=[];for(const f of t){const g=e.get(f.id),y=Number(f.pid);y>0&&e.has(y)?e.get(y).children.push(g):i.push(g)}const a=f=>{var g;(g=f.children)!=null&&g.length?f.children.forEach(a):delete f.children};i.forEach(a);const x=f=>{var g;f.sort((y,z)=>{const C=y.name.includes("中心")?-1:1,N=z.name.includes("中心")?-1:1;return C!==N?C-N:y.id-z.id});for(const y of f)(g=y.children)!=null&&g.length&&x(y.children)};return x(i),i}function ke(){const t=new Date,e=t.getFullYear(),i=String(t.getMonth()+1).padStart(2,"0");return`${e}-${i}`}function W(t){return String(t).padStart(2,"0")}function xe(t){return`${t.getFullYear()}-${W(t.getMonth()+1)}-${W(t.getDate())} ${W(t.getHours())}:${W(t.getMinutes())}:${W(t.getSeconds())}`}function re(t){const e=/^(\d{4})-(\d{2})$/.exec(t),i=e?parseInt(e[1],10):new Date().getFullYear(),a=e?parseInt(e[2],10):new Date().getMonth()+1,x=new Date(i,a-2,1,0,0,0),f=new Date(i,a-1,0,23,59,59);return[xe(x),xe(f)]}const h=p(ke()),U=p(re(h.value)),ae=p(!1),R=p(!1),ne=p([]),ie=p(!1),je=T(()=>Ae(ne.value)),O=p([]),Ce=p([]),de=p(!1),Q=p(""),ue=p([]),Se=p([]),Ve=p([]),oe=p([]),se=p([]),Oe=p("dept"),I=p({}),c=Wt({settlement_month:"",order_month:"",order_start_time:"",order_end_time:"",fulfillment_status:3,explicit_order_time_window:!1,cutoff_end:"",rule_note:"",channel_name:"",require_system_auto_prescription:!1}),D=p(null),X=p(""),_e=p(!1),ce=p(!1),pe=p(!1),L=T(()=>{var t;return Number((t=D.value)==null?void 0:t.status)===1}),me=p(!1),fe=p(!1),P=p("all"),ve=p([]),ge=p(0),De=p(1),Ee=p(20),J=p(!1),Y=p(null),$=p("all"),q=p([]),G=p(0),Z=p(1),ze=p(20),he=p(!1),He=T(()=>{const t=Y.value;return t?t.mode==="dept"?`已完成业绩订单 · ${t.dept_name}`:t.title:"已完成业绩订单"}),K=T(()=>c.order_start_time&&c.order_end_time?`${c.order_start_time}~${c.order_end_time}`:c.order_month||"—"),We=T(()=>{const t=new Map;for(const e of ne.value){const i=Number(e.pid),a=t.get(i)??[];a.push(e.id),t.set(i,a)}return t}),be=T(()=>{const t=new Map;for(const e of ne.value)t.set(e.id,e);return t}),ee=T(()=>{if(O.value.length!==1)return null;const t=O.value[0];return be.value.get(t)??null}),Qe=T(()=>{const t=ee.value;if(!t)return"返回顶层";const e=Number(t.pid),i=e>0?be.value.get(e):null;return!i||Number(i.pid)<=0?"返回顶层":`返回上级 · ${i.name}`});function Ne(t){if(!t||t<=0)return!1;const e=We.value.get(t);return!!(e&&e.length>0)}function Xe(t){if(!(!t||!t.dept_id||t.dept_id<=0)){if(Ne(t.dept_id)){O.value=[t.dept_id],E();return}Ze(t.dept_id,t.dept_name)}}function Je(){const t=ee.value;if(!t){O.value=[],E();return}const e=Number(t.pid),i=e>0?be.value.get(e):null;!i||Number(i.pid)<=0?O.value=[]:O.value=[e],E()}function Ze(t,e){if(!h.value){w.warning("请选择结算月");return}Y.value={mode:"dept",dept_id:t,dept_name:e},$.value="all",Z.value=1,q.value=[],G.value=0,J.value=!0,te(1)}function Ke(t){if(!h.value){w.warning("请选择结算月");return}Y.value={mode:"channel",title:`业务订单 · ${t.appt_channel_name} · 医助 ${t.assistant_name}`,assistant_id:t.assistant_id,appt_channel_value:Number(t.appt_channel_value??0)},$.value="all",Z.value=1,q.value=[],G.value=0,J.value=!0,te(1)}function et(t){if(!h.value){w.warning("请选择结算月");return}Y.value={mode:"channel",title:`业务订单 · ${t.appt_channel_name} · 医生 ${t.doctor_name}`,doctor_id:t.doctor_id,appt_channel_value:Number(t.appt_channel_value??0)},$.value="all",Z.value=1,q.value=[],G.value=0,J.value=!0,te(1)}async function te(t){if(!(!h.value||!Y.value)){he.value=!0,Z.value=t;try{const e=Y.value,i={settlement_month:h.value,page:t,page_size:ze.value};e.mode==="dept"?(Object.assign(i,F()),i.table_row_dept_id=e.dept_id):(Object.assign(i,F()),i.appt_channel_value=e.appt_channel_value,e.assistant_id!=null&&(i.assistant_id=e.assistant_id),e.doctor_id!=null&&(i.doctor_id=e.doctor_id)),$.value&&$.value!=="all"&&(i.bucket=$.value);const a=await qe(i);q.value=(a==null?void 0:a.list)||[],G.value=Number((a==null?void 0:a.count)??0)}catch(e){w.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"加载明细失败"),q.value=[],G.value=0}finally{he.value=!1}}}function k(t){return t==null||!Number.isFinite(Number(t))?"—":`¥ ${Number(t).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}`}async function tt(){ie.value=!0;try{const t=await Qt();ne.value=(t||[]).sort((e,i)=>{const a=e.name.includes("中心")?-1:1,x=i.name.includes("中心")?-1:1;return a!==x?a-x:e.id-i.id})}catch{}finally{ie.value=!1}}async function lt(){de.value=!0;try{const t=await Xt();Ce.value=(t==null?void 0:t.groups)||[]}catch{}finally{de.value=!1}}async function E(){var i;const t=h.value;if(!t){w.warning("请选择结算月");return}const e=U.value;if(!e||!e[0]||!e[1]){w.warning("请设置订单创建时间范围");return}R.value=!0;try{const a=await Jt(F());ue.value=(a==null?void 0:a.rows)||[],Se.value=(a==null?void 0:a.assistant_rows)||[],Ve.value=(a==null?void 0:a.doctor_rows)||[],oe.value=(a==null?void 0:a.assistant_channel_rows)||[],se.value=(a==null?void 0:a.doctor_channel_rows)||[],I.value=(a==null?void 0:a.total)||{},c.settlement_month=(a==null?void 0:a.settlement_month)||t,c.order_month=(a==null?void 0:a.order_month)||"",c.order_start_time=a!=null&&a.order_start_time?String(a.order_start_time):"",c.order_end_time=a!=null&&a.order_end_time?String(a.order_end_time):"",c.fulfillment_status=(a==null?void 0:a.fulfillment_status)!=null?Number(a.fulfillment_status):3,c.explicit_order_time_window=typeof(a==null?void 0:a.explicit_order_time_window)=="boolean"?a.explicit_order_time_window:!!(c.order_start_time&&c.order_end_time),c.cutoff_end=(a==null?void 0:a.cutoff_end)||"",c.rule_note=(a==null?void 0:a.rule_note)||"",c.channel_name=(a==null?void 0:a.channel_name)||"",c.require_system_auto_prescription=typeof(a==null?void 0:a.require_system_auto_prescription)=="boolean"?a.require_system_auto_prescription:!1,D.value=(a==null?void 0:a.confirm)??null,X.value=((i=a==null?void 0:a.confirm)==null?void 0:i.reconcile_note)!=null?String(a.confirm.reconcile_note):""}catch(a){w.error((a==null?void 0:a.msg)||(a==null?void 0:a.message)||"加载失败"),ue.value=[],Se.value=[],Ve.value=[],oe.value=[],se.value=[],I.value={},D.value=null}finally{R.value=!1}}function F(){const e={settlement_month:h.value,fulfillment_status:3},i=U.value;return i&&i[0]&&i[1]&&(e.start_time=i[0],e.end_time=i[1]),ae.value&&(e.require_system_auto_prescription=1),O.value.length>0&&(e.dept_ids=O.value.join(",")),Q.value&&(e.channel_code=Q.value),e}function at(){if(!h.value){w.warning("请选择结算月");return}me.value=!0}function nt(){P.value="all",we(1)}async function we(t){if(h.value){fe.value=!0,De.value=t;try{const e={...F(),page:t,page_size:Ee.value};P.value&&P.value!=="all"&&(e.bucket=P.value);const i=await qe(e);ve.value=(i==null?void 0:i.list)||[],ge.value=Number((i==null?void 0:i.count)??0)}catch(e){w.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"加载明细失败"),ve.value=[],ge.value=0}finally{fe.value=!1}}}async function ot(){if(!h.value){w.warning("请选择结算月");return}if(L.value){w.warning("已确定业绩不可修改备注;请先撤回确定");return}_e.value=!0;try{await Zt({...F(),reconcile_note:X.value}),w.success("已保存核对备注"),await E()}catch(t){w.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"保存失败")}finally{_e.value=!1}}async function st(){if(!h.value){w.warning("请选择结算月");return}try{await Ye.confirm("确定后将为「顺延下期」订单写入结转记录,下一结算月在相同渠道与部门筛选下自动并入统计。确定后仍可「撤回确定」以清除结转并重新核对(与财务对齐后再操作)。","确定本期业绩",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"})}catch{return}ce.value=!0;try{const t=await Kt({...F(),reconcile_note:X.value});w.success(`已确定本期业绩;结转 ${Number((t==null?void 0:t.deferred_carry_count)??0)} 单至 ${String((t==null?void 0:t.next_settlement_month)??"下期")}`),await E()}catch(t){w.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"提交失败")}finally{ce.value=!1}}async function rt(){if(!h.value){w.warning("请选择结算月");return}try{await Ye.confirm("将撤回本次「确定业绩」状态,并删除已写入的顺延结转记录(下期将不再汇入这些单)。确定后继续?","撤回确定业绩",{confirmButtonText:"撤回",cancelButtonText:"取消",type:"warning"})}catch{return}pe.value=!0;try{await el(F()),w.success("已撤回确定;可重新保存备注并再次确定本期业绩"),await E()}catch(t){w.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"撤回失败")}finally{pe.value=!1}}function it(){h.value=ke(),U.value=re(h.value),ae.value=!1,O.value=[],Q.value="",E()}function Me(t){const{columns:e}=t,i=I.value,a=[];return e.forEach((x,f)=>{if(f===0){a[f]="合计";return}const g=x.property;if(!i||!g){a[f]="";return}if(g==="primary_dept_name"||g==="appt_channel_name"){a[f]="";return}if(g==="carry_in_order_count"){a[f]=String(i.carry_in_order_count??0);return}const y={completed_order_count:String(i.completed_order_count??0),completed_order_amount:k(i.completed_order_amount),current_period_count:String(i.current_period_count??0),current_period_amount:k(i.current_period_amount),deferred_period_count:String(i.deferred_period_count??0),deferred_period_amount:k(i.deferred_period_amount)};a[f]=y[String(g)]??""}),a}function $e(t,e){return i=>{const{rowIndex:a,columnIndex:x}=i;if(x>1)return;const f=t.value;if(!f||f.length===0)return;const g=f[a];if(!g)return;const y=g[e],z=a>0?f[a-1]:null;if(z&&z[e]===y)return{rowspan:0,colspan:0};let C=1;for(let N=a+1;N{if(f===0){a[f]="合计";return}const g=x.property;if(!i||!g){a[f]="";return}const y={completed_order_count:String(i.completed_order_count??0),completed_order_amount:k(i.completed_order_amount),current_period_count:String(i.current_period_count??0),current_period_amount:k(i.current_period_amount),deferred_period_count:String(i.deferred_period_count??0),deferred_period_amount:k(i.deferred_period_amount)};a[f]=y[String(g)]??""}),a}return ht(h,t=>{t&&(U.value=re(t))}),bt(async()=>{await Promise.all([tt(),lt()]),await E()}),(t,e)=>{const i=yt,a=kt,x=Ct,f=St,g=xt,y=Vt,z=Et,C=Dt,N=Mt,ct=$t,V=Tt,pt=Rt,mt=Pt,d=It,le=Ut,ye=Ft,ft=Lt,A=At,Re=Gt,Le=jt,Fe=Ht,j=Ot;return u(),m("div",ll,[r("header",al,[r("div",nl,[e[16]||(e[16]=wt('
财务结算 · 业绩台账

提成结算业绩

订单池默认与处方订单列表同源:创建时间 start_time~end_time + fulfillment_status(默认完成态 3),账号列表可见性/数据域一并生效。 选结算月仍可套用「物流签收与尾款支付均须在结算月 7 日 24 点前」拆分「本期提成 / 顺延下期」 (仅有签收在范围内、尾款晚于截止仍会顺延); 展示部门/渠道下拉与列表不同,勾选后会与列表计数不同。

',1)),c.settlement_month||c.cutoff_end?(u(),m("dl",ol,[r("div",sl,[e[13]||(e[13]=r("dt",{class:"cs-stat__label"},"结算月",-1)),r("dd",rl,_(c.settlement_month||h.value),1)]),c.order_month||c.order_start_time?(u(),m("div",il,[e[14]||(e[14]=r("dt",{class:"cs-stat__label"},"订单时间窗",-1)),r("dd",dl,_(K.value),1)])):v("",!0),c.cutoff_end?(u(),m("div",ul,[e[15]||(e[15]=r("dt",{class:"cs-stat__label"},"截止时刻",-1)),r("dd",_l,_(c.cutoff_end),1)])):v("",!0)])):v("",!0)])]),n(N,{class:"cs-panel filter-card",shadow:"never"},{default:o(()=>[r("div",cl,[r("div",pl,[r("div",ml,[e[17]||(e[17]=r("span",{class:"lbl"},"结算月",-1)),n(i,{modelValue:h.value,"onUpdate:modelValue":e[0]||(e[0]=l=>h.value=l),type:"month","value-format":"YYYY-MM",placeholder:"选择结算月",class:"filter-month"},null,8,["modelValue"])]),r("div",fl,[e[19]||(e[19]=r("span",{class:"lbl"},"订单创建",-1)),n(i,{modelValue:U.value,"onUpdate:modelValue":e[1]||(e[1]=l=>U.value=l),type:"datetimerange","value-format":"YYYY-MM-DD HH:mm:ss","range-separator":"至","start-placeholder":"列表 start_time","end-placeholder":"列表 end_time",class:"filter-datetimerange"},null,8,["modelValue"]),n(a,{modelValue:ae.value,"onUpdate:modelValue":e[2]||(e[2]=l=>ae.value=l),class:"filter-sa-check"},{default:o(()=>[...e[18]||(e[18]=[s(" 仅系统代开处方 ",-1)])]),_:1},8,["modelValue"])]),r("div",vl,[e[20]||(e[20]=r("span",{class:"lbl"},"渠道来源",-1)),n(g,{modelValue:Q.value,"onUpdate:modelValue":e[3]||(e[3]=l=>Q.value=l),filterable:"",clearable:"",placeholder:"全部",class:"filter-select filter-select--channel",loading:de.value,onChange:E},{default:o(()=>[n(x,{label:"全部",value:""}),(u(!0),m(S,null,Ue(Ce.value,l=>(u(),b(f,{key:l.group_name,label:l.group_name},{default:o(()=>[(u(!0),m(S,null,Ue(l.channels,M=>(u(),b(x,{key:M.channel_code,label:M.channel_name,value:M.channel_code},null,8,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","loading"])]),r("div",gl,[e[21]||(e[21]=r("span",{class:"lbl"},"展示部门",-1)),H((u(),m("div",hl,[n(y,{modelValue:O.value,"onUpdate:modelValue":e[4]||(e[4]=l=>O.value=l),data:je.value,multiple:"","collapse-tags":"","collapse-tags-tooltip":"",filterable:"","check-strictly":"","render-after-expand":!1,"default-expand-all":!0,placeholder:"默认:所有「中心」部门",class:"filter-dept-tree-select","node-key":"id",props:Ge},null,8,["modelValue","data"])])),[[j,ie.value]])]),r("div",bl,[n(C,{type:"primary",class:"filter-btn filter-btn--query",loading:R.value,onClick:E},{default:o(()=>[n(z,{class:"filter-btn__icon"},{default:o(()=>[n(B(zt))]),_:1}),e[22]||(e[22]=s(" 查询 ",-1))]),_:1},8,["loading"]),n(C,{class:"filter-btn filter-btn--reset",disabled:R.value,onClick:it},{default:o(()=>[n(z,{class:"filter-btn__icon"},{default:o(()=>[n(B(Nt))]),_:1}),e[23]||(e[23]=s(" 重置 ",-1))]),_:1},8,["disabled"])])])])]),_:1}),n(ct,{type:"info",closable:!1,"show-icon":"",class:"cs-alert"},{title:o(()=>[...e[24]||(e[24]=[r("span",{class:"cs-alert__title"},"统计口径",-1)])]),default:o(()=>[r("div",wl,[c.rule_note?(u(),m("p",yl,_(c.rule_note),1)):(u(),m("p",kl,[...e[25]||(e[25]=[s(" 请选择结算月并设置",-1),r("strong",null,"订单创建时间范围",-1),s("(与处方订单列表 URL 参数 ",-1),r("code",null,"start_time",-1),s("/",-1),r("code",null,"end_time",-1),s("/",-1),r("code",null,"fulfillment_status",-1),s(" 一致);切换结算月会自动带出",-1),r("strong",null,"上一自然月整段",-1),s("作为默认时段,可按业务修改(例如 2026-04-02~04-30)。 「仅系统代开处方」勾选后与列表在未限制开方类型时的条数会不一致。 ",-1)])])),c.cutoff_end?(u(),m("p",xl,[e[30]||(e[30]=s(" 当前结算月:",-1)),r("strong",null,_(c.settlement_month),1),e[31]||(e[31]=s(" · 订单时间:",-1)),r("strong",null,_(K.value),1),e[32]||(e[32]=s(" · 履约状态:",-1)),r("strong",null,_(c.fulfillment_status??3),1),e[33]||(e[33]=s(" · 截止时刻:",-1)),r("strong",null,_(c.cutoff_end),1),c.channel_name?(u(),m(S,{key:0},[e[26]||(e[26]=s(" · 渠道:",-1)),r("strong",null,_(c.channel_name),1)],64)):v("",!0),c.settlement_month?(u(),m(S,{key:1},[e[29]||(e[29]=s(" · 处方池:",-1)),r("strong",null,_(c.require_system_auto_prescription?"仅系统代开":"含手动与系统"),1),c.explicit_order_time_window?(u(),m(S,{key:0},[e[27]||(e[27]=s(" · 列表对齐:",-1)),e[28]||(e[28]=r("strong",null,"是",-1))],64)):v("",!0)],64)):v("",!0)])):v("",!0)])]),_:1}),n(N,{class:"cs-panel cs-reconcile-card",shadow:"never"},{default:o(()=>{var l,M,Be;return[r("div",Cl,[r("div",Sl,[r("div",Vl,[L.value?(u(),b(V,{key:0,type:"success",effect:"dark"},{default:o(()=>[...e[34]||(e[34]=[s("已确定业绩",-1)])]),_:1})):((l=D.value)==null?void 0:l.status)===2?(u(),b(V,{key:1,type:"warning",effect:"plain"},{default:o(()=>[...e[35]||(e[35]=[s("已撤回确定",-1)])]),_:1})):(u(),b(V,{key:2,type:"info",effect:"plain"},{default:o(()=>[...e[36]||(e[36]=[s("待确定业绩",-1)])]),_:1})),L.value&&((M=D.value)!=null&&M.confirmed_at_text)?(u(),m("span",Ol,_(D.value.confirmed_admin_name||"—")+" · "+_(D.value.confirmed_at_text),1)):((Be=D.value)==null?void 0:Be.status)===2&&D.value.revoked_at_text?(u(),m("span",Dl," 撤回:"+_(D.value.revoked_admin_name||"—")+" · "+_(D.value.revoked_at_text),1)):v("",!0)]),r("div",El,[n(C,{type:"primary",plain:"",onClick:at},{default:o(()=>[...e[37]||(e[37]=[s("业绩明细核对",-1)])]),_:1}),n(C,{disabled:L.value||_e.value,onClick:ot},{default:o(()=>[...e[38]||(e[38]=[s(" 保存核对备注 ",-1)])]),_:1},8,["disabled"]),n(C,{type:"warning",disabled:L.value||ce.value,onClick:st},{default:o(()=>[...e[39]||(e[39]=[s(" 确定本期业绩 ",-1)])]),_:1},8,["disabled"]),L.value?(u(),b(C,{key:0,type:"danger",plain:"",loading:pe.value,onClick:rt},{default:o(()=>[...e[40]||(e[40]=[s(" 撤回确定 ",-1)])]),_:1},8,["loading"])):v("",!0)])]),n(pt,{modelValue:X.value,"onUpdate:modelValue":e[5]||(e[5]=vt=>X.value=vt),type:"textarea",rows:2,maxlength:"500","show-word-limit":"",placeholder:"核对备注(可与财务线下对齐后填写;确定业绩前可反复保存)",disabled:L.value,class:"cs-reconcile__note"},null,8,["modelValue","disabled"]),Number(I.value.carry_in_order_count)>0?(u(),m("p",zl,[e[41]||(e[41]=s(" 上期顺延汇入本期:",-1)),r("strong",null,_(I.value.carry_in_order_count),1),e[42]||(e[42]=s(" 单(已并入当前汇总) ",-1))])):v("",!0)])]}),_:1}),n(N,{class:"cs-panel cs-summary-card",shadow:"never"},{default:o(()=>[n(ft,{modelValue:Oe.value,"onUpdate:modelValue":e[6]||(e[6]=l=>Oe.value=l),class:"cs-summary-tabs"},{default:o(()=>[n(ye,{label:"部门汇总",name:"dept"},{default:o(()=>[r("div",Nl,[r("div",Ml,[e[43]||(e[43]=r("span",{class:"cs-table-head__title"},"部门汇总",-1)),ee.value?(u(),m("div",$l,[n(V,{size:"small",type:"info",effect:"plain",class:"cs-drill-state__tag"},{default:o(()=>[s(" 当前下钻:"+_(ee.value.path||ee.value.name),1)]),_:1}),n(C,{link:"",type:"primary",class:"cs-drill-state__back",onClick:Je},{default:o(()=>[n(z,null,{default:o(()=>[n(B(Bt))]),_:1}),s(" "+_(Qe.value),1)]),_:1})])):v("",!0)]),e[44]||(e[44]=r("span",{class:"cs-table-head__hint"},[s(" 金额单位:元;与业绩看板相同的部门摊列规则(业绩归属医助 → 展示「中心」)。 "),r("strong",null,"点击部门"),s(":若有子部门则下钻一层;末级部门弹出「已完成业绩订单」明细。 ")],-1))]),H((u(),b(le,{data:ue.value,border:"",stripe:"",size:"small",class:"cs-table cs-table--clickable","show-summary":"","summary-method":_t},{default:o(()=>[n(d,{prop:"dept_name",label:"部门","min-width":"220",fixed:""},{default:o(({row:l})=>[l.dept_id>0?(u(),b(mt,{key:0,type:"primary",underline:!1,class:"cs-dept-link",onClick:M=>Xe(l)},{default:o(()=>[r("span",Tl,_(l.dept_name),1),n(z,{class:"cs-dept-link__icon"},{default:o(()=>[Ne(l.dept_id)?(u(),b(B(Yt),{key:0})):(u(),b(B(qt),{key:1}))]),_:2},1024)]),_:2},1032,["onClick"])):(u(),m("span",Rl,_(l.dept_name),1))]),_:1}),n(d,{prop:"completed_order_count",label:"已完成单数","min-width":"104",align:"right"}),n(d,{prop:"completed_order_amount",label:"已完成金额","min-width":"112",align:"right"},{default:o(({row:l})=>[s(_(k(l.completed_order_amount)),1)]),_:1}),n(d,{prop:"current_period_count",label:"本期提成单数","min-width":"118",align:"right"}),n(d,{prop:"current_period_amount",label:"本期提成金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.current_period_amount)),1)]),_:1}),n(d,{prop:"deferred_period_count",label:"顺延下期单数","min-width":"118",align:"right"}),n(d,{prop:"deferred_period_amount",label:"顺延下期金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.deferred_period_amount)),1)]),_:1})]),_:1},8,["data"])),[[j,R.value]])]),_:1}),n(ye,{label:"按医助下发",name:"assistant"},{default:o(()=>[e[45]||(e[45]=r("div",{class:"cs-table-head"},[r("span",{class:"cs-table-head__title"},"业绩归属医助 × 挂号渠道"),r("span",{class:"cs-table-head__hint"},[s(" 按诊单业绩归属医助 "),r("strong",null,"×"),s(" 挂号渠道(doctor_appointment.channels)拆分到行; "),r("strong",null,"「复诊2」「复诊3」「自媒体1」等保持各自独立"),s(",未关联挂号统一归到「未匹配挂号渠道」。 同一医助多行"),r("strong",null,"自动合并「医助 / 归属中心」单元格"),s(",「顺延汇入」为上期结转进入本期订单池的单数。 "),r("strong",null,"展示部门"),s("有勾选时,本表仅列出"),r("strong",null,"可归入该部门上下文"),s("的业绩医助(与人事部门落在所选部门范围内的账号一致)。 "),r("strong",null,"点击挂号渠道"),s(":查看该行对应的业务订单明细(与上方部门筛选一致)。 ")])],-1)),H((u(),b(le,{data:oe.value,border:"",stripe:"",size:"small",class:"cs-table cs-table--grouped","show-summary":"","summary-method":Me,"span-method":B(dt)},{default:o(()=>[n(d,{prop:"assistant_name",label:"医助","min-width":"120",fixed:"","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属中心","min-width":"120","show-overflow-tooltip":""}),n(d,{prop:"appt_channel_name",label:"挂号渠道","min-width":"120","show-overflow-tooltip":""},{default:o(({row:l})=>[n(V,{size:"small",class:Pe(["cs-channel-tag cs-channel-tag--clickable",Te(l.appt_channel_name)]),effect:"plain",onClick:Ie(M=>Ke(l),["stop"])},{default:o(()=>[s(_(l.appt_channel_name),1)]),_:2},1032,["class","onClick"])]),_:1}),n(d,{prop:"carry_in_order_count",label:"顺延汇入单数","min-width":"112",align:"right"}),n(d,{prop:"completed_order_count",label:"已完成单数","min-width":"104",align:"right"}),n(d,{prop:"completed_order_amount",label:"已完成金额","min-width":"112",align:"right"},{default:o(({row:l})=>[s(_(k(l.completed_order_amount)),1)]),_:1}),n(d,{prop:"current_period_count",label:"本期提成单数","min-width":"118",align:"right"}),n(d,{prop:"current_period_amount",label:"本期提成金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.current_period_amount)),1)]),_:1}),n(d,{prop:"deferred_period_count",label:"顺延下期单数","min-width":"118",align:"right"}),n(d,{prop:"deferred_period_amount",label:"顺延下期金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.deferred_period_amount)),1)]),_:1})]),_:1},8,["data","span-method"])),[[j,R.value]])]),_:1}),n(ye,{label:"按医生下发",name:"doctor"},{default:o(()=>[e[46]||(e[46]=r("div",{class:"cs-table-head"},[r("span",{class:"cs-table-head__title"},"处方开方医生 × 挂号渠道"),r("span",{class:"cs-table-head__hint"},[s(" 按处方创建账号(开方人) "),r("strong",null,"×"),s(" 挂号渠道拆分; 可与医助维度交叉核对;同一医生多行自动合并「医生 / 归属中心」单元格。 "),r("strong",null,"展示部门"),s("有勾选时,与医助表相同,仅统计"),r("strong",null,"该部门上下文内"),s("订单对应的开方医生。 "),r("strong",null,"点击挂号渠道"),s(":查看该行对应的业务订单明细。 ")])],-1)),H((u(),b(le,{data:se.value,border:"",stripe:"",size:"small",class:"cs-table cs-table--grouped","show-summary":"","summary-method":Me,"span-method":B(ut)},{default:o(()=>[n(d,{prop:"doctor_name",label:"医生","min-width":"120",fixed:"","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属中心","min-width":"120","show-overflow-tooltip":""}),n(d,{prop:"appt_channel_name",label:"挂号渠道","min-width":"120","show-overflow-tooltip":""},{default:o(({row:l})=>[n(V,{size:"small",class:Pe(["cs-channel-tag cs-channel-tag--clickable",Te(l.appt_channel_name)]),effect:"plain",onClick:Ie(M=>et(l),["stop"])},{default:o(()=>[s(_(l.appt_channel_name),1)]),_:2},1032,["class","onClick"])]),_:1}),n(d,{prop:"carry_in_order_count",label:"顺延汇入单数","min-width":"112",align:"right"}),n(d,{prop:"completed_order_count",label:"已完成单数","min-width":"104",align:"right"}),n(d,{prop:"completed_order_amount",label:"已完成金额","min-width":"112",align:"right"},{default:o(({row:l})=>[s(_(k(l.completed_order_amount)),1)]),_:1}),n(d,{prop:"current_period_count",label:"本期提成单数","min-width":"118",align:"right"}),n(d,{prop:"current_period_amount",label:"本期提成金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.current_period_amount)),1)]),_:1}),n(d,{prop:"deferred_period_count",label:"顺延下期单数","min-width":"118",align:"right"}),n(d,{prop:"deferred_period_amount",label:"顺延下期金额","min-width":"118",align:"right"},{default:o(({row:l})=>[s(_(k(l.deferred_period_amount)),1)]),_:1})]),_:1},8,["data","span-method"])),[[j,R.value]])]),_:1})]),_:1},8,["modelValue"])]),_:1}),n(Fe,{modelValue:me.value,"onUpdate:modelValue":e[9]||(e[9]=l=>me.value=l),title:"业绩明细核对",width:"1280px","destroy-on-close":"",class:"cs-dialog",onOpen:nt},{default:o(()=>[r("div",Ll,[n(Re,{modelValue:P.value,"onUpdate:modelValue":e[7]||(e[7]=l=>P.value=l),size:"small",onChange:e[8]||(e[8]=l=>we(1))},{default:o(()=>[n(A,{label:"all"},{default:o(()=>[...e[47]||(e[47]=[s("全部",-1)])]),_:1}),n(A,{label:"current"},{default:o(()=>[...e[48]||(e[48]=[s("本期提成",-1)])]),_:1}),n(A,{label:"deferred"},{default:o(()=>[...e[49]||(e[49]=[s("顺延下期",-1)])]),_:1})]),_:1},8,["modelValue"])]),H((u(),b(le,{data:ve.value,border:"",stripe:"",size:"small","max-height":"440"},{default:o(()=>[n(d,{prop:"order_no",label:"业务订单号","min-width":"128","show-overflow-tooltip":""}),n(d,{label:"患者","min-width":"112","show-overflow-tooltip":""},{default:o(({row:l})=>[r("div",Fl,[r("span",Bl,_(l.patient_name||"—"),1),l.patient_phone||l.patient_gender_text?(u(),m("span",Ul,[l.patient_gender_text?(u(),m(S,{key:0},[s(_(l.patient_gender_text),1)],64)):v("",!0),l.patient_gender_text&&l.patient_phone?(u(),m(S,{key:1},[s(" · ")],64)):v("",!0),l.patient_phone?(u(),m(S,{key:2},[s(_(l.patient_phone),1)],64)):v("",!0)])):v("",!0)])]),_:1}),n(d,{label:"快递单号","min-width":"132","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.tracking_number||"—"),1)]),_:1}),n(d,{label:"挂号日期","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[r("span",null,_(l.appointment_date_text||"—"),1),l.appointment_status&&Number(l.appointment_status)!==3?(u(),b(V,{key:0,class:"cs-tag-appt-muted",type:"info",size:"small",effect:"plain"},{default:o(()=>[...e[50]||(e[50]=[s("未完结挂号",-1)])]),_:1})):v("",!0)]),_:1}),n(d,{label:"挂号渠道","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.appt_channel_name||"—"),1)]),_:1}),n(d,{prop:"assistant_name",label:"业绩医助","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"doctor_name",label:"开方医生","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属部门","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"amount",label:"金额",width:"108",align:"right"},{default:o(({row:l})=>[s(_(k(l.amount)),1)]),_:1}),n(d,{label:"分段",width:"88",align:"center"},{default:o(({row:l})=>[l.bucket==="current"?(u(),b(V,{key:0,type:"success",size:"small"},{default:o(()=>[...e[51]||(e[51]=[s("本期",-1)])]),_:1})):(u(),b(V,{key:1,type:"warning",size:"small"},{default:o(()=>[...e[52]||(e[52]=[s("顺延",-1)])]),_:1}))]),_:1}),n(d,{label:"结转",width:"72",align:"center"},{default:o(({row:l})=>[l.is_carry_in?(u(),m("span",Il,"是")):(u(),m("span",Pl,"—"))]),_:1}),n(d,{label:"顺延说明","min-width":"200","show-overflow-tooltip":""},{default:o(({row:l})=>[l.bucket==="deferred"&&l.bucket_defer_text?(u(),m("span",Yl,_(l.bucket_defer_text),1)):(u(),m("span",ql,"—"))]),_:1}),n(d,{label:"物流签收","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.sign_time_text||"—"),1)]),_:1}),n(d,{prop:"pay_time_text",label:"尾款支付","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.pay_time_text||"—"),1)]),_:1}),n(d,{prop:"create_time_text",label:"订单创建",width:"152"})]),_:1},8,["data"])),[[j,fe.value]]),r("div",Gl,[n(Le,{layout:"total, prev, pager, next",total:ge.value,"page-size":Ee.value,"current-page":De.value,onCurrentChange:we},null,8,["total","page-size","current-page"])])]),_:1},8,["modelValue"]),n(Fe,{modelValue:J.value,"onUpdate:modelValue":e[12]||(e[12]=l=>J.value=l),title:He.value,width:"1280px","destroy-on-close":"",class:"cs-dialog"},{default:o(()=>[r("div",Al,[n(Re,{modelValue:$.value,"onUpdate:modelValue":e[10]||(e[10]=l=>$.value=l),size:"small",onChange:e[11]||(e[11]=l=>te(1))},{default:o(()=>[n(A,{label:"all"},{default:o(()=>[...e[53]||(e[53]=[s("全部已完成",-1)])]),_:1}),n(A,{label:"current"},{default:o(()=>[...e[54]||(e[54]=[s("本期提成",-1)])]),_:1}),n(A,{label:"deferred"},{default:o(()=>[...e[55]||(e[55]=[s("顺延下期",-1)])]),_:1})]),_:1},8,["modelValue"]),r("span",jl,[e[58]||(e[58]=s(" 结算月:",-1)),r("strong",null,_(c.settlement_month||h.value),1),K.value&&K.value!=="—"?(u(),m(S,{key:0},[e[56]||(e[56]=s(" · 订单创建:",-1)),r("strong",null,_(K.value),1)],64)):v("",!0),c.channel_name?(u(),m(S,{key:1},[e[57]||(e[57]=s(" · 渠道:",-1)),r("strong",null,_(c.channel_name),1)],64)):v("",!0)])]),H((u(),b(le,{data:q.value,border:"",stripe:"",size:"small","max-height":"440"},{default:o(()=>[n(d,{prop:"order_no",label:"业务订单号","min-width":"128","show-overflow-tooltip":""}),n(d,{label:"患者","min-width":"112","show-overflow-tooltip":""},{default:o(({row:l})=>[r("div",Hl,[r("span",Wl,_(l.patient_name||"—"),1),l.patient_phone||l.patient_gender_text?(u(),m("span",Ql,[l.patient_gender_text?(u(),m(S,{key:0},[s(_(l.patient_gender_text),1)],64)):v("",!0),l.patient_gender_text&&l.patient_phone?(u(),m(S,{key:1},[s(" · ")],64)):v("",!0),l.patient_phone?(u(),m(S,{key:2},[s(_(l.patient_phone),1)],64)):v("",!0)])):v("",!0)])]),_:1}),n(d,{label:"快递单号","min-width":"132","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.tracking_number||"—"),1)]),_:1}),n(d,{label:"挂号日期","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[r("span",null,_(l.appointment_date_text||"—"),1),l.appointment_status&&Number(l.appointment_status)!==3?(u(),b(V,{key:0,class:"cs-tag-appt-muted",type:"info",size:"small",effect:"plain"},{default:o(()=>[...e[59]||(e[59]=[s("未完结挂号",-1)])]),_:1})):v("",!0)]),_:1}),n(d,{label:"挂号渠道","min-width":"124","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.appt_channel_name||"—"),1)]),_:1}),n(d,{prop:"assistant_name",label:"业绩医助","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"doctor_name",label:"开方医生","min-width":"100","show-overflow-tooltip":""}),n(d,{prop:"primary_dept_name",label:"归属部门","min-width":"120","show-overflow-tooltip":""}),n(d,{prop:"amount",label:"金额",width:"108",align:"right"},{default:o(({row:l})=>[s(_(k(l.amount)),1)]),_:1}),n(d,{label:"分段",width:"88",align:"center"},{default:o(({row:l})=>[l.bucket==="current"?(u(),b(V,{key:0,type:"success",size:"small"},{default:o(()=>[...e[60]||(e[60]=[s("本期",-1)])]),_:1})):(u(),b(V,{key:1,type:"warning",size:"small"},{default:o(()=>[...e[61]||(e[61]=[s("顺延",-1)])]),_:1}))]),_:1}),n(d,{label:"结转",width:"72",align:"center"},{default:o(({row:l})=>[l.is_carry_in?(u(),m("span",Xl,"是")):(u(),m("span",Jl,"—"))]),_:1}),n(d,{label:"顺延说明","min-width":"200","show-overflow-tooltip":""},{default:o(({row:l})=>[l.bucket==="deferred"&&l.bucket_defer_text?(u(),m("span",Zl,_(l.bucket_defer_text),1)):(u(),m("span",Kl,"—"))]),_:1}),n(d,{label:"物流签收","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.sign_time_text||"—"),1)]),_:1}),n(d,{prop:"pay_time_text",label:"尾款支付","min-width":"152","show-overflow-tooltip":""},{default:o(({row:l})=>[s(_(l.pay_time_text||"—"),1)]),_:1}),n(d,{prop:"create_time_text",label:"订单创建",width:"152"})]),_:1},8,["data"])),[[j,he.value]]),r("div",ea,[n(Le,{layout:"total, prev, pager, next",total:G.value,"page-size":ze.value,"current-page":Z.value,onCurrentChange:te},null,8,["total","page-size","current-page"])])]),_:1},8,["modelValue","title"])])}}}),sa=tl(ta,[["__scopeId","data-v-a7de712c"]]);export{sa as default}; diff --git a/server/public/admin/assets/config-7zVqSxlr.js b/server/public/admin/assets/config-pV4ZDwQ6.js similarity index 94% rename from server/public/admin/assets/config-7zVqSxlr.js rename to server/public/admin/assets/config-pV4ZDwQ6.js index 0f742ba77..4a0439c1d 100644 --- a/server/public/admin/assets/config-7zVqSxlr.js +++ b/server/public/admin/assets/config-pV4ZDwQ6.js @@ -1 +1 @@ -import{_ as I}from"./index-9qT8_5W1.js";import{o as x,bp as g,q as m,r as R,v as l,D as d,bo as j,bj as B,s as o,bb as T,aA as O,u as t,ac as f,O as v,K,L as r,bf as L,bq as N,bd as F,aC as J,a8 as z}from"./.pnpm-CyuAWpdG.js";import{_ as G}from"./picker-BDO86vcM.js";import{g as M,s as Z}from"./wx_oa-vu-UopqS.js";import{e as H}from"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const P={class:"w-80"},Q={class:"w-80"},W={class:"w-80"},X={class:"w-80"},Y={class:"flex-1 min-w-0"},$={class:"sm:flex"},h={class:"mr-4 sm:w-80 flex"},ee={class:"flex-1 min-w-0"},le={class:"w-80"},oe={class:"flex-1 min-w-0"},se={class:"w-80"},te={class:"flex-1 min-w-0"},de={class:"flex-1 min-w-0"},ne={class:"sm:flex"},ae={class:"mr-4 sm:w-80 flex"},ie={class:"flex-1 min-w-0"},re={class:"sm:flex"},me={class:"mr-4 sm:w-80 flex"},pe={class:"flex-1 min-w-0"},ue={class:"sm:flex"},_e={class:"mr-4 sm:w-80 flex"},fe=x({name:"wxOaConfig"}),qe=x({...fe,setup(ve){const y=H(),s=J({name:"",original_id:" ",qr_code:"",app_id:"",app_secret:"",url:"",token:"",encoding_aes_key:"",encryption_type:1,business_domain:"",js_secure_domain:"",web_auth_domain:""}),w=z(),k={app_id:[{required:!0,message:"请输入AppID",trigger:["blur","change"]}],app_secret:[{required:!0,message:"请输入AppSecret",trigger:["blur","change"]}]},c=async()=>{const p=await M();for(const e in s)s[e]=p[e]},A=async()=>{var p;await((p=w.value)==null?void 0:p.validate()),await Z(s),c()};return c(),(p,e)=>{const U=j,u=B,i=O,a=T,E=G,_=K,V=N,D=L,S=F,q=I,b=g("copy"),C=g("perms");return m(),R("div",null,[l(u,{class:"!border-none",shadow:"never"},{default:d(()=>[l(U,{type:"warning",title:"温馨提示:填写微信公众号开发配置,请前往微信公众平台申请服务号并完成认证",closable:!1,"show-icon":""})]),_:1}),l(S,{ref_key:"formRef",ref:w,model:t(s),rules:k,"label-width":t(y).isMobile?"80px":"160px"},{default:d(()=>[l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[13]||(e[13]=o("div",{class:"font-medium mb-7"},"微信公众号",-1)),l(a,{label:"公众号名称",prop:"name"},{default:d(()=>[o("div",P,[l(i,{modelValue:t(s).name,"onUpdate:modelValue":e[0]||(e[0]=n=>t(s).name=n),placeholder:"请输入公众号名称"},null,8,["modelValue"])])]),_:1}),l(a,{label:"原始ID",prop:"original_id"},{default:d(()=>[o("div",Q,[l(i,{modelValue:t(s).original_id,"onUpdate:modelValue":e[1]||(e[1]=n=>t(s).original_id=n),placeholder:"请输入原始ID"},null,8,["modelValue"])])]),_:1}),l(a,{label:"公众号二维码",prop:"qr_code"},{default:d(()=>[o("div",null,[o("div",null,[l(E,{modelValue:t(s).qr_code,"onUpdate:modelValue":e[2]||(e[2]=n=>t(s).qr_code=n),limit:1},null,8,["modelValue"])]),e[12]||(e[12]=o("div",{class:"form-tips"},"建议尺寸:宽400px*高400px。jpg,jpeg,png格式",-1))])]),_:1})]),_:1}),l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[15]||(e[15]=o("div",{class:"font-medium mb-7"},"公众号开发者信息",-1)),l(a,{label:"AppID",prop:"app_id"},{default:d(()=>[o("div",W,[l(i,{modelValue:t(s).app_id,"onUpdate:modelValue":e[3]||(e[3]=n=>t(s).app_id=n),placeholder:"请输入AppID"},null,8,["modelValue"])])]),_:1}),l(a,{label:"AppSecret",prop:"app_secret"},{default:d(()=>[o("div",X,[l(i,{modelValue:t(s).app_secret,"onUpdate:modelValue":e[4]||(e[4]=n=>t(s).app_secret=n),placeholder:"请输入AppSecret"},null,8,["modelValue"])])]),_:1}),l(a,null,{default:d(()=>[...e[14]||(e[14]=[o("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->开发者ID,设置AppID和AppSecret ",-1)])]),_:1})]),_:1}),l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[23]||(e[23]=o("div",{class:"font-medium mb-7"},"服务器配置",-1)),l(a,{label:"URL"},{default:d(()=>[o("div",Y,[o("div",$,[o("div",h,[l(i,{modelValue:t(s).url,"onUpdate:modelValue":e[5]||(e[5]=n=>t(s).url=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[16]||(e[16]=[r("复制",-1)])]),_:1})),[[b,t(s).url]])]),e[17]||(e[17]=o("div",{class:"form-tips"}," 登录微信公众平台,点击开发>基本配置>服务器配置,填写服务器地址(URL) ",-1))])]),_:1}),l(a,{label:"Token",prop:"Token"},{default:d(()=>[o("div",ee,[o("div",le,[l(i,{modelValue:t(s).token,"onUpdate:modelValue":e[6]||(e[6]=n=>t(s).token=n),placeholder:"请输入Token"},null,8,["modelValue"])]),e[18]||(e[18]=o("div",{class:"form-tips"}," 登录微信公众平台,点击开发>基本配置>服务器配置,设置令牌Token。不填默认为“likeshop” ",-1))])]),_:1}),l(a,{label:"EncodingAESKey",prop:"encoding_aes_key"},{default:d(()=>[o("div",oe,[o("div",se,[l(i,{modelValue:t(s).encoding_aes_key,"onUpdate:modelValue":e[7]||(e[7]=n=>t(s).encoding_aes_key=n),placeholder:"请输入EncodingAESKey"},null,8,["modelValue"])]),e[19]||(e[19]=o("div",{class:"form-tips"}," 消息加密密钥由43位字符组成,字符范围为A-Z,a-z,0-9 ",-1))])]),_:1}),l(a,{label:"消息加密方式",required:"",prop:"encryption_type"},{default:d(()=>[o("div",te,[l(D,{class:"flex-col !items-start min-w-0",modelValue:t(s).encryption_type,"onUpdate:modelValue":e[8]||(e[8]=n=>t(s).encryption_type=n)},{default:d(()=>[l(V,{value:1},{default:d(()=>[...e[20]||(e[20]=[r(" 明文模式 (不使用消息体加解密功能,安全系数较低) ",-1)])]),_:1}),l(V,{value:2},{default:d(()=>[...e[21]||(e[21]=[r(" 兼容模式 (明文、密文将共存,方便开发者调试和维护) ",-1)])]),_:1}),l(V,{value:3},{default:d(()=>[...e[22]||(e[22]=[r(" 安全模式(推荐) (消息包为纯密文,需要开发者加密和解密,安全系数高) ",-1)])]),_:1})]),_:1},8,["modelValue"])])]),_:1})]),_:1}),l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[30]||(e[30]=o("div",{class:"font-medium mb-7"},"功能设置",-1)),l(a,{label:"业务域名"},{default:d(()=>[o("div",de,[o("div",ne,[o("div",ae,[l(i,{modelValue:t(s).business_domain,"onUpdate:modelValue":e[9]||(e[9]=n=>t(s).business_domain=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[24]||(e[24]=[r("复制",-1)])]),_:1})),[[b,t(s).business_domain]])]),e[25]||(e[25]=o("div",{class:"form-tips"}," 登录微信公众平台,点击设置>公众号设置>功能设置,填写业务域名 ",-1))])]),_:1}),l(a,{label:"JS接口安全域名"},{default:d(()=>[o("div",ie,[o("div",re,[o("div",me,[l(i,{modelValue:t(s).js_secure_domain,"onUpdate:modelValue":e[10]||(e[10]=n=>t(s).js_secure_domain=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[26]||(e[26]=[r("复制",-1)])]),_:1})),[[b,t(s).js_secure_domain]])]),e[27]||(e[27]=o("div",{class:"form-tips"}," 登录微信公众平台,点击设置>公众号设置>功能设置,填写JS接口安全域名 ",-1))])]),_:1}),l(a,{label:"网页授权域名"},{default:d(()=>[o("div",pe,[o("div",ue,[o("div",_e,[l(i,{modelValue:t(s).web_auth_domain,"onUpdate:modelValue":e[11]||(e[11]=n=>t(s).web_auth_domain=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[28]||(e[28]=[r("复制",-1)])]),_:1})),[[b,t(s).web_auth_domain]])]),e[29]||(e[29]=o("div",{class:"form-tips"}," 登录微信公众平台,点击设置>公众号设置>功能设置,填写网页授权域名 ",-1))])]),_:1})]),_:1})]),_:1},8,["model","label-width"]),f((m(),v(q,null,{default:d(()=>[l(_,{type:"primary",onClick:A},{default:d(()=>[...e[31]||(e[31]=[r("保存",-1)])]),_:1})]),_:1})),[[C,["channel.official_account_setting/setConfig"]]])])}}});export{qe as default}; +import{_ as I}from"./index-DIl3M8Wa.js";import{o as x,bp as g,q as m,r as R,v as l,D as d,bo as j,bj as B,s as o,bb as T,aA as O,u as t,ac as f,O as v,K,L as r,bf as L,bq as N,bd as F,aC as J,a8 as z}from"./.pnpm-CyuAWpdG.js";import{_ as G}from"./picker-BTh9eW9u.js";import{g as M,s as Z}from"./wx_oa-C-EoclSf.js";import{e as H}from"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const P={class:"w-80"},Q={class:"w-80"},W={class:"w-80"},X={class:"w-80"},Y={class:"flex-1 min-w-0"},$={class:"sm:flex"},h={class:"mr-4 sm:w-80 flex"},ee={class:"flex-1 min-w-0"},le={class:"w-80"},oe={class:"flex-1 min-w-0"},se={class:"w-80"},te={class:"flex-1 min-w-0"},de={class:"flex-1 min-w-0"},ne={class:"sm:flex"},ae={class:"mr-4 sm:w-80 flex"},ie={class:"flex-1 min-w-0"},re={class:"sm:flex"},me={class:"mr-4 sm:w-80 flex"},pe={class:"flex-1 min-w-0"},ue={class:"sm:flex"},_e={class:"mr-4 sm:w-80 flex"},fe=x({name:"wxOaConfig"}),qe=x({...fe,setup(ve){const y=H(),s=J({name:"",original_id:" ",qr_code:"",app_id:"",app_secret:"",url:"",token:"",encoding_aes_key:"",encryption_type:1,business_domain:"",js_secure_domain:"",web_auth_domain:""}),w=z(),k={app_id:[{required:!0,message:"请输入AppID",trigger:["blur","change"]}],app_secret:[{required:!0,message:"请输入AppSecret",trigger:["blur","change"]}]},c=async()=>{const p=await M();for(const e in s)s[e]=p[e]},A=async()=>{var p;await((p=w.value)==null?void 0:p.validate()),await Z(s),c()};return c(),(p,e)=>{const U=j,u=B,i=O,a=T,E=G,_=K,V=N,D=L,S=F,q=I,b=g("copy"),C=g("perms");return m(),R("div",null,[l(u,{class:"!border-none",shadow:"never"},{default:d(()=>[l(U,{type:"warning",title:"温馨提示:填写微信公众号开发配置,请前往微信公众平台申请服务号并完成认证",closable:!1,"show-icon":""})]),_:1}),l(S,{ref_key:"formRef",ref:w,model:t(s),rules:k,"label-width":t(y).isMobile?"80px":"160px"},{default:d(()=>[l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[13]||(e[13]=o("div",{class:"font-medium mb-7"},"微信公众号",-1)),l(a,{label:"公众号名称",prop:"name"},{default:d(()=>[o("div",P,[l(i,{modelValue:t(s).name,"onUpdate:modelValue":e[0]||(e[0]=n=>t(s).name=n),placeholder:"请输入公众号名称"},null,8,["modelValue"])])]),_:1}),l(a,{label:"原始ID",prop:"original_id"},{default:d(()=>[o("div",Q,[l(i,{modelValue:t(s).original_id,"onUpdate:modelValue":e[1]||(e[1]=n=>t(s).original_id=n),placeholder:"请输入原始ID"},null,8,["modelValue"])])]),_:1}),l(a,{label:"公众号二维码",prop:"qr_code"},{default:d(()=>[o("div",null,[o("div",null,[l(E,{modelValue:t(s).qr_code,"onUpdate:modelValue":e[2]||(e[2]=n=>t(s).qr_code=n),limit:1},null,8,["modelValue"])]),e[12]||(e[12]=o("div",{class:"form-tips"},"建议尺寸:宽400px*高400px。jpg,jpeg,png格式",-1))])]),_:1})]),_:1}),l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[15]||(e[15]=o("div",{class:"font-medium mb-7"},"公众号开发者信息",-1)),l(a,{label:"AppID",prop:"app_id"},{default:d(()=>[o("div",W,[l(i,{modelValue:t(s).app_id,"onUpdate:modelValue":e[3]||(e[3]=n=>t(s).app_id=n),placeholder:"请输入AppID"},null,8,["modelValue"])])]),_:1}),l(a,{label:"AppSecret",prop:"app_secret"},{default:d(()=>[o("div",X,[l(i,{modelValue:t(s).app_secret,"onUpdate:modelValue":e[4]||(e[4]=n=>t(s).app_secret=n),placeholder:"请输入AppSecret"},null,8,["modelValue"])])]),_:1}),l(a,null,{default:d(()=>[...e[14]||(e[14]=[o("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->开发者ID,设置AppID和AppSecret ",-1)])]),_:1})]),_:1}),l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[23]||(e[23]=o("div",{class:"font-medium mb-7"},"服务器配置",-1)),l(a,{label:"URL"},{default:d(()=>[o("div",Y,[o("div",$,[o("div",h,[l(i,{modelValue:t(s).url,"onUpdate:modelValue":e[5]||(e[5]=n=>t(s).url=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[16]||(e[16]=[r("复制",-1)])]),_:1})),[[b,t(s).url]])]),e[17]||(e[17]=o("div",{class:"form-tips"}," 登录微信公众平台,点击开发>基本配置>服务器配置,填写服务器地址(URL) ",-1))])]),_:1}),l(a,{label:"Token",prop:"Token"},{default:d(()=>[o("div",ee,[o("div",le,[l(i,{modelValue:t(s).token,"onUpdate:modelValue":e[6]||(e[6]=n=>t(s).token=n),placeholder:"请输入Token"},null,8,["modelValue"])]),e[18]||(e[18]=o("div",{class:"form-tips"}," 登录微信公众平台,点击开发>基本配置>服务器配置,设置令牌Token。不填默认为“likeshop” ",-1))])]),_:1}),l(a,{label:"EncodingAESKey",prop:"encoding_aes_key"},{default:d(()=>[o("div",oe,[o("div",se,[l(i,{modelValue:t(s).encoding_aes_key,"onUpdate:modelValue":e[7]||(e[7]=n=>t(s).encoding_aes_key=n),placeholder:"请输入EncodingAESKey"},null,8,["modelValue"])]),e[19]||(e[19]=o("div",{class:"form-tips"}," 消息加密密钥由43位字符组成,字符范围为A-Z,a-z,0-9 ",-1))])]),_:1}),l(a,{label:"消息加密方式",required:"",prop:"encryption_type"},{default:d(()=>[o("div",te,[l(D,{class:"flex-col !items-start min-w-0",modelValue:t(s).encryption_type,"onUpdate:modelValue":e[8]||(e[8]=n=>t(s).encryption_type=n)},{default:d(()=>[l(V,{value:1},{default:d(()=>[...e[20]||(e[20]=[r(" 明文模式 (不使用消息体加解密功能,安全系数较低) ",-1)])]),_:1}),l(V,{value:2},{default:d(()=>[...e[21]||(e[21]=[r(" 兼容模式 (明文、密文将共存,方便开发者调试和维护) ",-1)])]),_:1}),l(V,{value:3},{default:d(()=>[...e[22]||(e[22]=[r(" 安全模式(推荐) (消息包为纯密文,需要开发者加密和解密,安全系数高) ",-1)])]),_:1})]),_:1},8,["modelValue"])])]),_:1})]),_:1}),l(u,{class:"!border-none mt-4",shadow:"never"},{default:d(()=>[e[30]||(e[30]=o("div",{class:"font-medium mb-7"},"功能设置",-1)),l(a,{label:"业务域名"},{default:d(()=>[o("div",de,[o("div",ne,[o("div",ae,[l(i,{modelValue:t(s).business_domain,"onUpdate:modelValue":e[9]||(e[9]=n=>t(s).business_domain=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[24]||(e[24]=[r("复制",-1)])]),_:1})),[[b,t(s).business_domain]])]),e[25]||(e[25]=o("div",{class:"form-tips"}," 登录微信公众平台,点击设置>公众号设置>功能设置,填写业务域名 ",-1))])]),_:1}),l(a,{label:"JS接口安全域名"},{default:d(()=>[o("div",ie,[o("div",re,[o("div",me,[l(i,{modelValue:t(s).js_secure_domain,"onUpdate:modelValue":e[10]||(e[10]=n=>t(s).js_secure_domain=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[26]||(e[26]=[r("复制",-1)])]),_:1})),[[b,t(s).js_secure_domain]])]),e[27]||(e[27]=o("div",{class:"form-tips"}," 登录微信公众平台,点击设置>公众号设置>功能设置,填写JS接口安全域名 ",-1))])]),_:1}),l(a,{label:"网页授权域名"},{default:d(()=>[o("div",pe,[o("div",ue,[o("div",_e,[l(i,{modelValue:t(s).web_auth_domain,"onUpdate:modelValue":e[11]||(e[11]=n=>t(s).web_auth_domain=n),disabled:""},null,8,["modelValue"])]),f((m(),v(_,null,{default:d(()=>[...e[28]||(e[28]=[r("复制",-1)])]),_:1})),[[b,t(s).web_auth_domain]])]),e[29]||(e[29]=o("div",{class:"form-tips"}," 登录微信公众平台,点击设置>公众号设置>功能设置,填写网页授权域名 ",-1))])]),_:1})]),_:1})]),_:1},8,["model","label-width"]),f((m(),v(q,null,{default:d(()=>[l(_,{type:"primary",onClick:A},{default:d(()=>[...e[31]||(e[31]=[r("保存",-1)])]),_:1})]),_:1})),[[C,["channel.official_account_setting/setConfig"]]])])}}});export{qe as default}; diff --git a/server/public/admin/assets/consumer-BUIWfqzk.js b/server/public/admin/assets/consumer-BSTqFJW9.js similarity index 81% rename from server/public/admin/assets/consumer-BUIWfqzk.js rename to server/public/admin/assets/consumer-BSTqFJW9.js index 02eb185ed..d5e9ff52c 100644 --- a/server/public/admin/assets/consumer-BUIWfqzk.js +++ b/server/public/admin/assets/consumer-BSTqFJW9.js @@ -1 +1 @@ -import{r}from"./index-Dxvz9lb1.js";function u(e){return r.get({url:"/user.user/lists",params:e},{ignoreCancelToken:!0})}function s(e){return r.get({url:"/user.user/detail",params:e})}function n(e){return r.post({url:"/user.user/edit",params:e})}function o(e){return r.post({url:"/user.user/adjustMoney",params:e})}export{o as a,u as b,s as g,n as u}; +import{r}from"./index-Bkarz3gO.js";function u(e){return r.get({url:"/user.user/lists",params:e},{ignoreCancelToken:!0})}function s(e){return r.get({url:"/user.user/detail",params:e})}function n(e){return r.post({url:"/user.user/edit",params:e})}function o(e){return r.post({url:"/user.user/adjustMoney",params:e})}export{o as a,u as b,s as g,n as u}; diff --git a/server/public/admin/assets/content-DqDTOak9.js b/server/public/admin/assets/content-B1kkCzVQ.js similarity index 90% rename from server/public/admin/assets/content-DqDTOak9.js rename to server/public/admin/assets/content-B1kkCzVQ.js index e088559f1..632cb7dbb 100644 --- a/server/public/admin/assets/content-DqDTOak9.js +++ b/server/public/admin/assets/content-B1kkCzVQ.js @@ -1 +1 @@ -import{c as r,_ as d}from"./index-Dxvz9lb1.js";import{g as _}from"./decoration-9ln5Pyvl.js";import{o as p,q as s,r as c,s as e,F as x,G as m,P as f,T as o,v as u,u as v,M as w}from"./.pnpm-CyuAWpdG.js";const y={class:"news"},b={key:0,class:"mr-[10px]"},g=["src"],h={class:"flex flex-col justify-between flex-1"},j={class:"text-[15px] font-medium line-clamp-2"},k={class:"line-clamp-1 text-sm mt-[8px]"},D={class:"text-[#999] text-xs w-full flex justify-between mt-[8px]"},V={class:"flex items-center"},B={class:"ml-[5px]"},N=p({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(C){const a=w([]);return(async()=>{const n=await _({limit:10});a.value=n})(),(n,i)=>{const l=r;return s(),c("div",y,[i[0]||(i[0]=e("div",{class:"flex items-center news-title mx-[10px] my-[15px] text-[17px] font-medium"}," 最新资讯 ",-1)),(s(!0),c(x,null,m(v(a),t=>(s(),c("div",{key:t.id,class:"news-card flex bg-white px-[10px] py-[16px] text-[#333] border-[#f2f2f2] border-b"},[t.image?(s(),c("div",b,[e("img",{src:t.image,class:"w-[120px] h-[90px] object-contain"},null,8,g)])):f("",!0),e("div",h,[e("div",j,o(t.title),1),e("div",k,o(t.desc),1),e("div",D,[e("div",null,o(t.create_time),1),e("div",V,[u(l,{name:"el-icon-View"}),e("div",B,o(t.click),1)])])])]))),128))])}}}),A=d(N,[["__scopeId","data-v-dba98882"]]);export{A as default}; +import{c as r,_ as d}from"./index-Bkarz3gO.js";import{g as _}from"./decoration-BCfnNTDP.js";import{o as p,q as s,r as c,s as e,F as x,G as m,P as f,T as o,v as u,u as v,M as w}from"./.pnpm-CyuAWpdG.js";const y={class:"news"},b={key:0,class:"mr-[10px]"},g=["src"],h={class:"flex flex-col justify-between flex-1"},j={class:"text-[15px] font-medium line-clamp-2"},k={class:"line-clamp-1 text-sm mt-[8px]"},D={class:"text-[#999] text-xs w-full flex justify-between mt-[8px]"},V={class:"flex items-center"},B={class:"ml-[5px]"},N=p({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(C){const a=w([]);return(async()=>{const n=await _({limit:10});a.value=n})(),(n,i)=>{const l=r;return s(),c("div",y,[i[0]||(i[0]=e("div",{class:"flex items-center news-title mx-[10px] my-[15px] text-[17px] font-medium"}," 最新资讯 ",-1)),(s(!0),c(x,null,m(v(a),t=>(s(),c("div",{key:t.id,class:"news-card flex bg-white px-[10px] py-[16px] text-[#333] border-[#f2f2f2] border-b"},[t.image?(s(),c("div",b,[e("img",{src:t.image,class:"w-[120px] h-[90px] object-contain"},null,8,g)])):f("",!0),e("div",h,[e("div",j,o(t.title),1),e("div",k,o(t.desc),1),e("div",D,[e("div",null,o(t.create_time),1),e("div",V,[u(l,{name:"el-icon-View"}),e("div",B,o(t.click),1)])])])]))),128))])}}}),A=d(N,[["__scopeId","data-v-dba98882"]]);export{A as default}; diff --git a/server/public/admin/assets/content-BQZ0Yf5N.js b/server/public/admin/assets/content-BQZ0Yf5N.js new file mode 100644 index 000000000..87a640234 --- /dev/null +++ b/server/public/admin/assets/content-BQZ0Yf5N.js @@ -0,0 +1 @@ +import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-_A_7DW4P.js";import"./decoration-img-SoINHtbg.js";import"./.pnpm-CyuAWpdG.js";import"./index-Bkarz3gO.js";export{o as default}; diff --git a/server/public/admin/assets/content-CkQUB7ti.js b/server/public/admin/assets/content-BR-B7Y89.js similarity index 90% rename from server/public/admin/assets/content-CkQUB7ti.js rename to server/public/admin/assets/content-BR-B7Y89.js index a1846c1c8..fcf3f708e 100644 --- a/server/public/admin/assets/content-CkQUB7ti.js +++ b/server/public/admin/assets/content-BR-B7Y89.js @@ -1 +1 @@ -import i from"./decoration-img-DKpVnT4z.js";import{o as m,q as n,r as s,s as t,T as c,v as a,P as r,L as l,F as x}from"./.pnpm-CyuAWpdG.js";import{_ as d}from"./index-Dxvz9lb1.js";const f={class:"customer-service bg-white flex flex-col justify-center items-center mx-[18px] mt-[15px] rounded-[10px] px-[10px] pb-[50px]"},u={class:"w-full border-solid border-0 border-b border-[#f5f5f5] p-[15px] text-center text-[#101010] text-base font-medium"},p={class:"mt-[30px]"},b={key:0,class:"text-sm mt-[20px] font-medium"},h={key:1,class:"text-sm mt-[12px] flex flex-wrap"},w=["href"],v={key:2,class:"text-muted text-sm mt-[15px]"},y=m({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(e){return(g,o)=>(n(),s(x,null,[o[0]||(o[0]=t("view",{class:"bg-white p-[15px] flex text-[#101010] font-medium text-lg"}," 联系我们 ",-1)),t("view",f,[t("view",u,c(e.content.title),1),t("view",p,[a(i,{width:"100px",height:"100px",src:e.content.qrcode,alt:""},null,8,["src"])]),e.content.remark?(n(),s("view",b,c(e.content.remark),1)):r("",!0),e.content.mobile?(n(),s("view",h,[t("a",{class:"ml-[5px] phone text-primary underline",href:"tel:"+e.content.mobile},c(e.content.mobile),9,w)])):r("",!0),e.content.time?(n(),s("view",v," 服务时间:"+c(e.content.time),1)):r("",!0)]),o[1]||(o[1]=l(" Î ",-1))],64))}}),V=d(y,[["__scopeId","data-v-ed28524a"]]);export{V as default}; +import i from"./decoration-img-SoINHtbg.js";import{o as m,q as n,r as s,s as t,T as c,v as a,P as r,L as l,F as x}from"./.pnpm-CyuAWpdG.js";import{_ as d}from"./index-Bkarz3gO.js";const f={class:"customer-service bg-white flex flex-col justify-center items-center mx-[18px] mt-[15px] rounded-[10px] px-[10px] pb-[50px]"},u={class:"w-full border-solid border-0 border-b border-[#f5f5f5] p-[15px] text-center text-[#101010] text-base font-medium"},p={class:"mt-[30px]"},b={key:0,class:"text-sm mt-[20px] font-medium"},h={key:1,class:"text-sm mt-[12px] flex flex-wrap"},w=["href"],v={key:2,class:"text-muted text-sm mt-[15px]"},y=m({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(e){return(g,o)=>(n(),s(x,null,[o[0]||(o[0]=t("view",{class:"bg-white p-[15px] flex text-[#101010] font-medium text-lg"}," 联系我们 ",-1)),t("view",f,[t("view",u,c(e.content.title),1),t("view",p,[a(i,{width:"100px",height:"100px",src:e.content.qrcode,alt:""},null,8,["src"])]),e.content.remark?(n(),s("view",b,c(e.content.remark),1)):r("",!0),e.content.mobile?(n(),s("view",h,[t("a",{class:"ml-[5px] phone text-primary underline",href:"tel:"+e.content.mobile},c(e.content.mobile),9,w)])):r("",!0),e.content.time?(n(),s("view",v," 服务时间:"+c(e.content.time),1)):r("",!0)]),o[1]||(o[1]=l(" Î ",-1))],64))}}),V=d(y,[["__scopeId","data-v-ed28524a"]]);export{V as default}; diff --git a/server/public/admin/assets/content-Dq3aXIKw.js b/server/public/admin/assets/content-C0CugWwU.js similarity index 84% rename from server/public/admin/assets/content-Dq3aXIKw.js rename to server/public/admin/assets/content-C0CugWwU.js index c1e70d45b..8131478fd 100644 --- a/server/public/admin/assets/content-Dq3aXIKw.js +++ b/server/public/admin/assets/content-C0CugWwU.js @@ -1 +1 @@ -import i from"./decoration-img-DKpVnT4z.js";import{o as p,q as t,r as s,F as d,G as f,t as m,v as u,s as _,T as x,u as y,p as b}from"./.pnpm-CyuAWpdG.js";import{_ as h}from"./index-Dxvz9lb1.js";const v={class:"tabbar flex"},g={class:"leading-3 text-[12px] mt-[4px]"},k=p({__name:"content",props:{style:{type:Object,default:()=>({})},list:{type:Array,default:()=>[]}},setup(a){const c=a,n=b(()=>{var e;return((e=c.list)==null?void 0:e.filter(r=>r.is_show==1))||[]});return(e,r)=>(t(),s("div",v,[(t(!0),s(d,null,f(y(n),(o,l)=>(t(),s("div",{key:l,class:"tabbar-item flex flex-col justify-center items-center flex-1",style:m({color:a.style.default_color})},[u(i,{width:"22px",height:"22px",src:o.unselected,fit:"cover"},null,8,["src"]),_("div",g,x(o.name),1)],4))),128))]))}}),D=h(k,[["__scopeId","data-v-0405bccb"]]);export{D as default}; +import i from"./decoration-img-SoINHtbg.js";import{o as p,q as t,r as s,F as d,G as f,t as m,v as u,s as _,T as x,u as y,p as b}from"./.pnpm-CyuAWpdG.js";import{_ as h}from"./index-Bkarz3gO.js";const v={class:"tabbar flex"},g={class:"leading-3 text-[12px] mt-[4px]"},k=p({__name:"content",props:{style:{type:Object,default:()=>({})},list:{type:Array,default:()=>[]}},setup(a){const c=a,n=b(()=>{var e;return((e=c.list)==null?void 0:e.filter(r=>r.is_show==1))||[]});return(e,r)=>(t(),s("div",v,[(t(!0),s(d,null,f(y(n),(o,l)=>(t(),s("div",{key:l,class:"tabbar-item flex flex-col justify-center items-center flex-1",style:m({color:a.style.default_color})},[u(i,{width:"22px",height:"22px",src:o.unselected,fit:"cover"},null,8,["src"]),_("div",g,x(o.name),1)],4))),128))]))}}),D=h(k,[["__scopeId","data-v-0405bccb"]]);export{D as default}; diff --git a/server/public/admin/assets/content-C5W1CaMe.js b/server/public/admin/assets/content-C1VdJnCo.js similarity index 85% rename from server/public/admin/assets/content-C5W1CaMe.js rename to server/public/admin/assets/content-C1VdJnCo.js index 63fb3e6ac..b51470cb6 100644 --- a/server/public/admin/assets/content-C5W1CaMe.js +++ b/server/public/admin/assets/content-C1VdJnCo.js @@ -1 +1 @@ -import{_ as o,c as t}from"./index-Dxvz9lb1.js";import{q as n,r as a,s,v as r}from"./.pnpm-CyuAWpdG.js";const _={},d={class:"search"},i={class:"search-con flex items-center px-[15px]"};function m(p,e){const c=t;return n(),a("div",d,[s("div",i,[r(c,{name:"el-icon-Search",size:17}),e[0]||(e[0]=s("span",{class:"ml-[5px]"},"请输入关键词搜索",-1))])])}const x=o(_,[["render",m],["__scopeId","data-v-3514bdd8"]]);export{x as default}; +import{_ as o,c as t}from"./index-Bkarz3gO.js";import{q as n,r as a,s,v as r}from"./.pnpm-CyuAWpdG.js";const _={},d={class:"search"},i={class:"search-con flex items-center px-[15px]"};function m(p,e){const c=t;return n(),a("div",d,[s("div",i,[r(c,{name:"el-icon-Search",size:17}),e[0]||(e[0]=s("span",{class:"ml-[5px]"},"请输入关键词搜索",-1))])])}const x=o(_,[["render",m],["__scopeId","data-v-3514bdd8"]]);export{x as default}; diff --git a/server/public/admin/assets/content-BtlOdmdD.js b/server/public/admin/assets/content-CPrgdURU.js similarity index 90% rename from server/public/admin/assets/content-BtlOdmdD.js rename to server/public/admin/assets/content-CPrgdURU.js index 15297f4e0..232436b14 100644 --- a/server/public/admin/assets/content-BtlOdmdD.js +++ b/server/public/admin/assets/content-CPrgdURU.js @@ -1 +1 @@ -import{c as v,_ as y}from"./index-Dxvz9lb1.js";import m from"./decoration-img-DKpVnT4z.js";import{o as b,q as e,r as t,s as c,T as r,P as l,F as x,G as u,v as i,u as _,p as g}from"./.pnpm-CyuAWpdG.js";const k={class:"my-service"},w={key:0,class:"title px-[15px] py-[10px]"},B={key:1,class:"flex flex-wrap pt-[20px] pb-[10px]"},N={class:"mt-[7px]"},V={key:2},j={class:"ml-[10px] flex-1"},C=b({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(s){const f=s,d=g(()=>{var o;return((o=f.content.data)==null?void 0:o.filter(p=>p.is_show=="1"))||[]});return(o,p)=>{const h=v;return e(),t("div",k,[s.content.title?(e(),t("div",w,[c("div",null,r(s.content.title),1)])):l("",!0),s.content.style==1?(e(),t("div",B,[(e(!0),t(x,null,u(_(d),(n,a)=>(e(),t("div",{key:a,class:"flex flex-col items-center w-1/4 mb-[15px]"},[i(m,{width:"26px",height:"26px",src:n.image,alt:""},null,8,["src"]),c("div",N,r(n.name),1)]))),128))])):l("",!0),s.content.style==2?(e(),t("div",V,[(e(!0),t(x,null,u(_(d),(n,a)=>(e(),t("div",{key:a,class:"flex items-center border-b border-[#e5e5e5] h-[50px] px-[12px]"},[i(m,{width:"24px",height:"24px",src:n.image,alt:""},null,8,["src"]),c("div",j,r(n.name),1),c("div",null,[i(h,{name:"el-icon-ArrowRight"})])]))),128))])):l("",!0)])}}}),L=y(C,[["__scopeId","data-v-2f09c27b"]]);export{L as default}; +import{c as v,_ as y}from"./index-Bkarz3gO.js";import m from"./decoration-img-SoINHtbg.js";import{o as b,q as e,r as t,s as c,T as r,P as l,F as x,G as u,v as i,u as _,p as g}from"./.pnpm-CyuAWpdG.js";const k={class:"my-service"},w={key:0,class:"title px-[15px] py-[10px]"},B={key:1,class:"flex flex-wrap pt-[20px] pb-[10px]"},N={class:"mt-[7px]"},V={key:2},j={class:"ml-[10px] flex-1"},C=b({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(s){const f=s,d=g(()=>{var o;return((o=f.content.data)==null?void 0:o.filter(p=>p.is_show=="1"))||[]});return(o,p)=>{const h=v;return e(),t("div",k,[s.content.title?(e(),t("div",w,[c("div",null,r(s.content.title),1)])):l("",!0),s.content.style==1?(e(),t("div",B,[(e(!0),t(x,null,u(_(d),(n,a)=>(e(),t("div",{key:a,class:"flex flex-col items-center w-1/4 mb-[15px]"},[i(m,{width:"26px",height:"26px",src:n.image,alt:""},null,8,["src"]),c("div",N,r(n.name),1)]))),128))])):l("",!0),s.content.style==2?(e(),t("div",V,[(e(!0),t(x,null,u(_(d),(n,a)=>(e(),t("div",{key:a,class:"flex items-center border-b border-[#e5e5e5] h-[50px] px-[12px]"},[i(m,{width:"24px",height:"24px",src:n.image,alt:""},null,8,["src"]),c("div",j,r(n.name),1),c("div",null,[i(h,{name:"el-icon-ArrowRight"})])]))),128))])):l("",!0)])}}}),L=y(C,[["__scopeId","data-v-2f09c27b"]]);export{L as default}; diff --git a/server/public/admin/assets/content-CleXkNTz.js b/server/public/admin/assets/content-CleXkNTz.js new file mode 100644 index 000000000..c1a16658d --- /dev/null +++ b/server/public/admin/assets/content-CleXkNTz.js @@ -0,0 +1 @@ +import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-D7k_-QjC.js";import"./.pnpm-CyuAWpdG.js";import"./index-Cqk_cdo9.js";import"./index-Bkarz3gO.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";export{o as default}; diff --git a/server/public/admin/assets/content-Cucfe3T0.js b/server/public/admin/assets/content-Cucfe3T0.js deleted file mode 100644 index 5a7b05291..000000000 --- a/server/public/admin/assets/content-Cucfe3T0.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-Unv1Zxh1.js";import"./decoration-img-DKpVnT4z.js";import"./.pnpm-CyuAWpdG.js";import"./index-Dxvz9lb1.js";export{o as default}; diff --git a/server/public/admin/assets/content-BwspHpXJ.js b/server/public/admin/assets/content-D4rgmjq4.js similarity index 90% rename from server/public/admin/assets/content-BwspHpXJ.js rename to server/public/admin/assets/content-D4rgmjq4.js index 8847920f6..31989801d 100644 --- a/server/public/admin/assets/content-BwspHpXJ.js +++ b/server/public/admin/assets/content-D4rgmjq4.js @@ -1 +1 @@ -import{o as m,q as t,r as o,v as l,D as r,s as e,F as c,G as d,ae as v,T as p,P as f,a2 as h}from"./.pnpm-CyuAWpdG.js";import u from"./decoration-img-DKpVnT4z.js";import{_ as x}from"./index-Dxvz9lb1.js";const y={class:"pc-aside absolute top-0 bottom-0 left-0 w-[150px]"},k={class:"h-full px-[10px] flex flex-col"},b={class:"mb-auto"},g={class:"nav"},w=["to"],C={class:"ml-[10px]"},B={class:"menu"},D={class:"ml-[6px] line-clamp-1"},E=m({__name:"content",props:{nav:{type:Array,default:()=>[]},menu:{type:Array,default:()=>[]}},setup(i){return(N,n)=>{const _=h;return t(),o("div",y,[l(_,null,{default:r(()=>[e("div",k,[e("div",b,[e("div",g,[(t(!0),o(c,null,d(i.nav,(s,a)=>(t(),o(c,{key:a},[s.is_show=="1"?(t(),o("div",{key:0,to:s.link.path,class:v(["nav-item",{active:a==0}])},[l(u,{width:"18px",height:"18px",src:a==0?s.selected:s.unselected,fit:"cover"},{error:r(()=>[...n[0]||(n[0]=[e("span",null,null,-1)])]),_:1},8,["src"]),e("div",C,p(s.name),1)],10,w)):f("",!0)],64))),128))])]),e("div",null,[e("div",B,[(t(!0),o(c,null,d(i.menu,(s,a)=>(t(),o("div",{class:"menu-item",key:a},[l(u,{width:"16px",height:"16px",src:s.unselected,fit:"cover"},{error:r(()=>[...n[1]||(n[1]=[e("span",null,null,-1)])]),_:1},8,["src"]),e("span",D,p(s.name),1)]))),128))])])])]),_:1})])}}}),F=x(E,[["__scopeId","data-v-35c14957"]]);export{F as default}; +import{o as m,q as t,r as o,v as l,D as r,s as e,F as c,G as d,ae as v,T as p,P as f,a2 as h}from"./.pnpm-CyuAWpdG.js";import u from"./decoration-img-SoINHtbg.js";import{_ as x}from"./index-Bkarz3gO.js";const y={class:"pc-aside absolute top-0 bottom-0 left-0 w-[150px]"},k={class:"h-full px-[10px] flex flex-col"},b={class:"mb-auto"},g={class:"nav"},w=["to"],C={class:"ml-[10px]"},B={class:"menu"},D={class:"ml-[6px] line-clamp-1"},E=m({__name:"content",props:{nav:{type:Array,default:()=>[]},menu:{type:Array,default:()=>[]}},setup(i){return(N,n)=>{const _=h;return t(),o("div",y,[l(_,null,{default:r(()=>[e("div",k,[e("div",b,[e("div",g,[(t(!0),o(c,null,d(i.nav,(s,a)=>(t(),o(c,{key:a},[s.is_show=="1"?(t(),o("div",{key:0,to:s.link.path,class:v(["nav-item",{active:a==0}])},[l(u,{width:"18px",height:"18px",src:a==0?s.selected:s.unselected,fit:"cover"},{error:r(()=>[...n[0]||(n[0]=[e("span",null,null,-1)])]),_:1},8,["src"]),e("div",C,p(s.name),1)],10,w)):f("",!0)],64))),128))])]),e("div",null,[e("div",B,[(t(!0),o(c,null,d(i.menu,(s,a)=>(t(),o("div",{class:"menu-item",key:a},[l(u,{width:"16px",height:"16px",src:s.unselected,fit:"cover"},{error:r(()=>[...n[1]||(n[1]=[e("span",null,null,-1)])]),_:1},8,["src"]),e("span",D,p(s.name),1)]))),128))])])])]),_:1})])}}}),F=x(E,[["__scopeId","data-v-35c14957"]]);export{F as default}; diff --git a/server/public/admin/assets/content-0LXu-5MK.js b/server/public/admin/assets/content-DLUkNAW_.js similarity index 69% rename from server/public/admin/assets/content-0LXu-5MK.js rename to server/public/admin/assets/content-DLUkNAW_.js index b5299871f..175fc5df6 100644 --- a/server/public/admin/assets/content-0LXu-5MK.js +++ b/server/public/admin/assets/content-DLUkNAW_.js @@ -1 +1 @@ -import{_ as e}from"./index-Dxvz9lb1.js";import{q as t,r as c}from"./.pnpm-CyuAWpdG.js";const o={},r={class:"page-mate"};function n(s,a){return t(),c("div",r)}const m=e(o,[["render",n]]);export{m as default}; +import{_ as e}from"./index-Bkarz3gO.js";import{q as t,r as c}from"./.pnpm-CyuAWpdG.js";const o={},r={class:"page-mate"};function n(s,a){return t(),c("div",r)}const m=e(o,[["render",n]]);export{m as default}; diff --git a/server/public/admin/assets/content-DodBlWvt.js b/server/public/admin/assets/content-DodBlWvt.js new file mode 100644 index 000000000..9ae59cbfe --- /dev/null +++ b/server/public/admin/assets/content-DodBlWvt.js @@ -0,0 +1 @@ +import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-DJb4aHFp.js";import"./decoration-img-SoINHtbg.js";import"./.pnpm-CyuAWpdG.js";import"./index-Bkarz3gO.js";export{o as default}; diff --git a/server/public/admin/assets/content-DdjhpUgB.js b/server/public/admin/assets/content-DraD2KOm.js similarity index 86% rename from server/public/admin/assets/content-DdjhpUgB.js rename to server/public/admin/assets/content-DraD2KOm.js index 94f51fd94..377d46a6b 100644 --- a/server/public/admin/assets/content-DdjhpUgB.js +++ b/server/public/admin/assets/content-DraD2KOm.js @@ -1 +1 @@ -import{_ as s}from"./index-Dxvz9lb1.js";import{q as a,r as o,s as e}from"./.pnpm-CyuAWpdG.js";const r="/admin/assets/default_avatar-C6VB7PGm.png",n={},c={class:"user-info flex items-center px-[25px]"};function p(_,t){return a(),o("div",c,[...t[0]||(t[0]=[e("img",{src:r,class:"w-[60px] h-[60px]",alt:""},null,-1),e("div",{class:"text-white text-[18px] ml-[10px]"},"未登录",-1)])])}const m=s(n,[["render",p],["__scopeId","data-v-4b1b613f"]]);export{m as default}; +import{_ as s}from"./index-Bkarz3gO.js";import{q as a,r as o,s as e}from"./.pnpm-CyuAWpdG.js";const r="/admin/assets/default_avatar-C6VB7PGm.png",n={},c={class:"user-info flex items-center px-[25px]"};function p(_,t){return a(),o("div",c,[...t[0]||(t[0]=[e("img",{src:r,class:"w-[60px] h-[60px]",alt:""},null,-1),e("div",{class:"text-white text-[18px] ml-[10px]"},"未登录",-1)])])}const m=s(n,[["render",p],["__scopeId","data-v-4b1b613f"]]);export{m as default}; diff --git a/server/public/admin/assets/content-DraxgVnJ.js b/server/public/admin/assets/content-DraxgVnJ.js deleted file mode 100644 index 094431dc4..000000000 --- a/server/public/admin/assets/content-DraxgVnJ.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-D3yhrH9m.js";import"./decoration-img-DKpVnT4z.js";import"./.pnpm-CyuAWpdG.js";import"./index-Dxvz9lb1.js";export{o as default}; diff --git a/server/public/admin/assets/content-Dzcw4koZ.js b/server/public/admin/assets/content-Dzcw4koZ.js deleted file mode 100644 index 7c154d657..000000000 --- a/server/public/admin/assets/content-Dzcw4koZ.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-BlC3oWQE.js";import"./.pnpm-CyuAWpdG.js";import"./index-ClBYIwNX.js";import"./index-Dxvz9lb1.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";export{o as default}; diff --git a/server/public/admin/assets/content-IXSBK-yr.js b/server/public/admin/assets/content-IXSBK-yr.js deleted file mode 100644 index 5f5e40bfe..000000000 --- a/server/public/admin/assets/content-IXSBK-yr.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-CwwLmi2B.js";import"./decoration-img-DKpVnT4z.js";import"./.pnpm-CyuAWpdG.js";import"./index-Dxvz9lb1.js";export{o as default}; diff --git a/server/public/admin/assets/content-ODnAm3dm.js b/server/public/admin/assets/content-ODnAm3dm.js new file mode 100644 index 000000000..4b090c1bf --- /dev/null +++ b/server/public/admin/assets/content-ODnAm3dm.js @@ -0,0 +1 @@ +import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-DIToE7Db.js";import"./decoration-img-SoINHtbg.js";import"./.pnpm-CyuAWpdG.js";import"./index-Bkarz3gO.js";export{o as default}; diff --git a/server/public/admin/assets/content-ZhiYWbMw.js b/server/public/admin/assets/content-ZhiYWbMw.js new file mode 100644 index 000000000..918561d7f --- /dev/null +++ b/server/public/admin/assets/content-ZhiYWbMw.js @@ -0,0 +1 @@ +import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-3GiNjvv7.js";import"./decoration-img-SoINHtbg.js";import"./.pnpm-CyuAWpdG.js";import"./index-Bkarz3gO.js";export{o as default}; diff --git a/server/public/admin/assets/content-gqkMlJui.js b/server/public/admin/assets/content-gqkMlJui.js deleted file mode 100644 index e5113a575..000000000 --- a/server/public/admin/assets/content-gqkMlJui.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./content.vue_vue_type_script_setup_true_lang-DVlBS5Y8.js";import"./decoration-img-DKpVnT4z.js";import"./.pnpm-CyuAWpdG.js";import"./index-Dxvz9lb1.js";export{o as default}; diff --git a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DVlBS5Y8.js b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-3GiNjvv7.js similarity index 90% rename from server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DVlBS5Y8.js rename to server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-3GiNjvv7.js index 85b8b08fc..db9287daf 100644 --- a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DVlBS5Y8.js +++ b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-3GiNjvv7.js @@ -1 +1 @@ -import c from"./decoration-img-DKpVnT4z.js";import{o as i,q as l,r as u,s as h,v as m,u as f,t as d,p as s}from"./.pnpm-CyuAWpdG.js";const p={class:"banner-image w-full h-full"},v=i({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},height:{type:String,default:"170px"}},setup(e){const r=e,t=s(()=>{var a;return((a=r.content.data)==null?void 0:a.filter(n=>n.is_show=="1"))||[]}),o=s(()=>Array.isArray(t.value)&&t.value[0]?t.value[0].image:"");return(a,n)=>(l(),u("div",{class:"banner",style:d(e.styles)},[h("div",p,[m(c,{width:"100%",height:e.content.style==1?e.height:"550px",src:f(o),fit:"contain"},null,8,["height","src"])])],4))}});export{v as _}; +import c from"./decoration-img-SoINHtbg.js";import{o as i,q as l,r as u,s as h,v as m,u as f,t as d,p as s}from"./.pnpm-CyuAWpdG.js";const p={class:"banner-image w-full h-full"},v=i({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},height:{type:String,default:"170px"}},setup(e){const r=e,t=s(()=>{var a;return((a=r.content.data)==null?void 0:a.filter(n=>n.is_show=="1"))||[]}),o=s(()=>Array.isArray(t.value)&&t.value[0]?t.value[0].image:"");return(a,n)=>(l(),u("div",{class:"banner",style:d(e.styles)},[h("div",p,[m(c,{width:"100%",height:e.content.style==1?e.height:"550px",src:f(o),fit:"contain"},null,8,["height","src"])])],4))}});export{v as _}; diff --git a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-BlC3oWQE.js b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-D7k_-QjC.js similarity index 88% rename from server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-BlC3oWQE.js rename to server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-D7k_-QjC.js index 4f7bf1bb0..5429e1ec2 100644 --- a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-BlC3oWQE.js +++ b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-D7k_-QjC.js @@ -1 +1 @@ -import{o as U,q as r,O as u,D as n,v as o,bo as D,a2 as N,s as l,r as f,F as O,G as R,K as S,L as $,a8 as A,co as g}from"./.pnpm-CyuAWpdG.js";import{_ as F}from"./index-ClBYIwNX.js";import{_ as L}from"./picker-BKygjDQE.js";import{_ as q}from"./picker-BDO86vcM.js";import{_ as G}from"./index-BnfLT5cB.js";import{j as h}from"./index-Dxvz9lb1.js";const K={class:"flex flex-wrap p-4"},T={class:"bg-fill-light w-full p-4"},z={class:"flex items-center"},H={class:"mt-4 ml-4"},X=U({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},height:{type:String,default:"170px"}},emits:["update:content"],setup(m,{expose:x,emit:k}){const _=k,i=A(),a=m,y=()=>{var e;(e=i.value)==null||e.open()},b=()=>{var e;(e=i.value)==null||e.close()},w=()=>{var e;if(((e=a.content.data)==null?void 0:e.length)<10){const t=g(a.content);t.data.push({image:"",name:"",link:{}}),_("update:content",t)}else h.msgError("最多添加10张图片")},V=e=>{var s;if(((s=a.content.data)==null?void 0:s.length)<=1)return h.msgError("最少保留一个轮播图");const t=g(a.content);t.data.splice(e,1),_("update:content",t)};return x({open:y}),(e,t)=>{const s=D,v=q,C=L,E=F,B=S,j=N;return r(),u(G,{ref_key:"popupRef",ref:i,title:"轮播图设置",async:!0,width:"980px",onConfirm:b},{default:n(()=>[o(s,{title:"最多可添加10张,建议图片尺寸750px*440px",type:"warning"}),o(j,{height:"400px",class:"mt-4"},{default:n(()=>[l("div",K,[(r(!0),f(O,null,R(m.content.data,(c,d)=>(r(),f("div",{key:d,class:"w-[400px] mr-4 mb-4"},[(r(),u(E,{key:d,onClose:p=>V(d),class:"w-full"},{default:n(()=>[l("div",T,[l("div",z,[o(v,{width:"122px",height:"122px",modelValue:c.image,"onUpdate:modelValue":p=>c.image=p,"upload-class":"bg-body","exclude-domain":""},{upload:n(()=>[...t[0]||(t[0]=[l("div",{class:"w-[122px] h-[122px] flex justify-center items-center"}," 轮播图 ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"]),o(C,{modelValue:c.link,"onUpdate:modelValue":p=>c.link=p},null,8,["modelValue","onUpdate:modelValue"])])])]),_:2},1032,["onClose"]))]))),128))]),l("div",H,[o(B,{link:"",type:"primary",onClick:w},{default:n(()=>[...t[1]||(t[1]=[$("+ 添加轮播图",-1)])]),_:1})])]),_:1})]),_:1},512)}}});export{X as _}; +import{o as U,q as r,O as u,D as n,v as o,bo as D,a2 as N,s as l,r as f,F as O,G as R,K as S,L as $,a8 as A,co as g}from"./.pnpm-CyuAWpdG.js";import{_ as F}from"./index-Cqk_cdo9.js";import{_ as L}from"./picker-CSWk6Vbk.js";import{_ as q}from"./picker-BTh9eW9u.js";import{_ as G}from"./index-CS5Wg0xx.js";import{j as h}from"./index-Bkarz3gO.js";const K={class:"flex flex-wrap p-4"},T={class:"bg-fill-light w-full p-4"},z={class:"flex items-center"},H={class:"mt-4 ml-4"},X=U({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},height:{type:String,default:"170px"}},emits:["update:content"],setup(m,{expose:x,emit:k}){const _=k,i=A(),a=m,y=()=>{var e;(e=i.value)==null||e.open()},b=()=>{var e;(e=i.value)==null||e.close()},w=()=>{var e;if(((e=a.content.data)==null?void 0:e.length)<10){const t=g(a.content);t.data.push({image:"",name:"",link:{}}),_("update:content",t)}else h.msgError("最多添加10张图片")},V=e=>{var s;if(((s=a.content.data)==null?void 0:s.length)<=1)return h.msgError("最少保留一个轮播图");const t=g(a.content);t.data.splice(e,1),_("update:content",t)};return x({open:y}),(e,t)=>{const s=D,v=q,C=L,E=F,B=S,j=N;return r(),u(G,{ref_key:"popupRef",ref:i,title:"轮播图设置",async:!0,width:"980px",onConfirm:b},{default:n(()=>[o(s,{title:"最多可添加10张,建议图片尺寸750px*440px",type:"warning"}),o(j,{height:"400px",class:"mt-4"},{default:n(()=>[l("div",K,[(r(!0),f(O,null,R(m.content.data,(c,d)=>(r(),f("div",{key:d,class:"w-[400px] mr-4 mb-4"},[(r(),u(E,{key:d,onClose:p=>V(d),class:"w-full"},{default:n(()=>[l("div",T,[l("div",z,[o(v,{width:"122px",height:"122px",modelValue:c.image,"onUpdate:modelValue":p=>c.image=p,"upload-class":"bg-body","exclude-domain":""},{upload:n(()=>[...t[0]||(t[0]=[l("div",{class:"w-[122px] h-[122px] flex justify-center items-center"}," 轮播图 ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"]),o(C,{modelValue:c.link,"onUpdate:modelValue":p=>c.link=p},null,8,["modelValue","onUpdate:modelValue"])])])]),_:2},1032,["onClose"]))]))),128))]),l("div",H,[o(B,{link:"",type:"primary",onClick:w},{default:n(()=>[...t[1]||(t[1]=[$("+ 添加轮播图",-1)])]),_:1})])]),_:1})]),_:1},512)}}});export{X as _}; diff --git a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-CwwLmi2B.js b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DIToE7Db.js similarity index 92% rename from server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-CwwLmi2B.js rename to server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DIToE7Db.js index 73b47061b..704d1330d 100644 --- a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-CwwLmi2B.js +++ b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DIToE7Db.js @@ -1 +1 @@ -import p from"./decoration-img-DKpVnT4z.js";import{o as d,q as n,r as a,s as r,F as m,G as u,v as _,T as f,u as g,t as h,p as x}from"./.pnpm-CyuAWpdG.js";const y={class:"nav bg-white pt-[15px] pb-[8px]"},w={class:"mt-[7px]"},k=d({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(o){const t=o,c=x(()=>{var s;return(((s=t.content.data)==null?void 0:s.filter(e=>e.is_show=="1"))||[]).slice(0,t.content.show_line*t.content.per_line)});return(l,s)=>(n(),a("div",y,[r("div",{class:"grid grid-rows-auto gap-y-3 w-full",style:h({"grid-template-columns":`repeat(${o.content.per_line}, 1fr)`})},[(n(!0),a(m,null,u(g(c),(e,i)=>(n(),a("div",{key:i,class:"flex flex-col items-center"},[_(p,{width:"41px",height:"41px",src:e.image,alt:""},null,8,["src"]),r("div",w,f(e.name),1)]))),128))],4)]))}});export{k as _}; +import p from"./decoration-img-SoINHtbg.js";import{o as d,q as n,r as a,s as r,F as m,G as u,v as _,T as f,u as g,t as h,p as x}from"./.pnpm-CyuAWpdG.js";const y={class:"nav bg-white pt-[15px] pb-[8px]"},w={class:"mt-[7px]"},k=d({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(o){const t=o,c=x(()=>{var s;return(((s=t.content.data)==null?void 0:s.filter(e=>e.is_show=="1"))||[]).slice(0,t.content.show_line*t.content.per_line)});return(l,s)=>(n(),a("div",y,[r("div",{class:"grid grid-rows-auto gap-y-3 w-full",style:h({"grid-template-columns":`repeat(${o.content.per_line}, 1fr)`})},[(n(!0),a(m,null,u(g(c),(e,i)=>(n(),a("div",{key:i,class:"flex flex-col items-center"},[_(p,{width:"41px",height:"41px",src:e.image,alt:""},null,8,["src"]),r("div",w,f(e.name),1)]))),128))],4)]))}});export{k as _}; diff --git a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-D3yhrH9m.js b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DJb4aHFp.js similarity index 90% rename from server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-D3yhrH9m.js rename to server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DJb4aHFp.js index 17b448ad2..5b3b3e7af 100644 --- a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-D3yhrH9m.js +++ b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-DJb4aHFp.js @@ -1 +1 @@ -import c from"./decoration-img-DKpVnT4z.js";import{o as i,q as l,r as u,s as h,v as m,u as f,t as d,p as n}from"./.pnpm-CyuAWpdG.js";const g={class:"banner-image w-full h-full"},v=i({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},height:{type:String,default:"96px"}},setup(e){const r=e,t=n(()=>{var a;return((a=r.content.data)==null?void 0:a.filter(s=>s.is_show=="1"))||[]}),o=n(()=>Array.isArray(t.value)&&t.value[0]?t.value[0].image:"");return(a,s)=>(l(),u("div",{class:"banner",style:d(e.styles)},[h("div",g,[m(c,{width:"100%",height:e.styles.height||e.height,src:f(o),fit:"contain"},null,8,["height","src"])])],4))}});export{v as _}; +import c from"./decoration-img-SoINHtbg.js";import{o as i,q as l,r as u,s as h,v as m,u as f,t as d,p as n}from"./.pnpm-CyuAWpdG.js";const g={class:"banner-image w-full h-full"},v=i({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})},height:{type:String,default:"96px"}},setup(e){const r=e,t=n(()=>{var a;return((a=r.content.data)==null?void 0:a.filter(s=>s.is_show=="1"))||[]}),o=n(()=>Array.isArray(t.value)&&t.value[0]?t.value[0].image:"");return(a,s)=>(l(),u("div",{class:"banner",style:d(e.styles)},[h("div",g,[m(c,{width:"100%",height:e.styles.height||e.height,src:f(o),fit:"contain"},null,8,["height","src"])])],4))}});export{v as _}; diff --git a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Unv1Zxh1.js b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-_A_7DW4P.js similarity index 89% rename from server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Unv1Zxh1.js rename to server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-_A_7DW4P.js index ba6722eea..3206090a4 100644 --- a/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-Unv1Zxh1.js +++ b/server/public/admin/assets/content.vue_vue_type_script_setup_true_lang-_A_7DW4P.js @@ -1 +1 @@ -import c from"./decoration-img-DKpVnT4z.js";import{o as i,q as p,r as m,s as u,v as l,u as d,p as a}from"./.pnpm-CyuAWpdG.js";const _={class:"banner mx-[10px] mt-[10px]"},f={class:"banner-image"},v=i({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(n){const o=n,e=a(()=>{var t;return((t=o.content.data)==null?void 0:t.filter(s=>s.is_show=="1"))||[]}),r=a(()=>Array.isArray(e.value)&&e.value[0]?e.value[0].image:"");return(t,s)=>(p(),m("div",_,[u("div",f,[l(c,{width:"100%",height:"100px",src:d(r),fit:"contain"},null,8,["src"])])]))}});export{v as _}; +import c from"./decoration-img-SoINHtbg.js";import{o as i,q as p,r as m,s as u,v as l,u as d,p as a}from"./.pnpm-CyuAWpdG.js";const _={class:"banner mx-[10px] mt-[10px]"},f={class:"banner-image"},v=i({__name:"content",props:{content:{type:Object,default:()=>({})},styles:{type:Object,default:()=>({})}},setup(n){const o=n,e=a(()=>{var t;return((t=o.content.data)==null?void 0:t.filter(s=>s.is_show=="1"))||[]}),r=a(()=>Array.isArray(e.value)&&e.value[0]?e.value[0].image:"");return(t,s)=>(p(),m("div",_,[u("div",f,[l(c,{width:"100%",height:"100px",src:d(r),fit:"contain"},null,8,["src"])])]))}});export{v as _}; diff --git a/server/public/admin/assets/cost-edit-CxiOaeXj.js b/server/public/admin/assets/cost-edit-CxiOaeXj.js new file mode 100644 index 000000000..c30817abf --- /dev/null +++ b/server/public/admin/assets/cost-edit-CxiOaeXj.js @@ -0,0 +1 @@ +import{_ as o}from"./cost-edit.vue_vue_type_script_setup_true_lang-D_BAJfJE.js";import"./.pnpm-CyuAWpdG.js";import"./self_input_stats-DXFvDfvT.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-NXWg0oJL.js";export{o as default}; diff --git a/server/public/admin/assets/cost-edit-DJ7jLU8g.js b/server/public/admin/assets/cost-edit-DJ7jLU8g.js deleted file mode 100644 index 9ffa433fc..000000000 --- a/server/public/admin/assets/cost-edit-DJ7jLU8g.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./cost-edit.vue_vue_type_script_setup_true_lang-C1_RZ-ed.js";import"./.pnpm-CyuAWpdG.js";import"./self_input_stats-CIFG1oqD.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";import"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-NXWg0oJL.js";export{o as default}; diff --git a/server/public/admin/assets/cost-edit.vue_vue_type_script_setup_true_lang-C1_RZ-ed.js b/server/public/admin/assets/cost-edit.vue_vue_type_script_setup_true_lang-D_BAJfJE.js similarity index 95% rename from server/public/admin/assets/cost-edit.vue_vue_type_script_setup_true_lang-C1_RZ-ed.js rename to server/public/admin/assets/cost-edit.vue_vue_type_script_setup_true_lang-D_BAJfJE.js index 5e25c599c..255e2b74a 100644 --- a/server/public/admin/assets/cost-edit.vue_vue_type_script_setup_true_lang-C1_RZ-ed.js +++ b/server/public/admin/assets/cost-edit.vue_vue_type_script_setup_true_lang-D_BAJfJE.js @@ -1 +1 @@ -import{o as E,q as D,r as S,v as l,D as r,bd as q,u as a,bb as A,az as F,J as U,aA as Y,a8 as p,M as B,p as I,aC as M}from"./.pnpm-CyuAWpdG.js";import{b as N,c as z}from"./self_input_stats-CIFG1oqD.js";import{_ as L}from"./index-BnfLT5cB.js";import{_ as O}from"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-NXWg0oJL.js";const J={class:"edit-popup"},G=E({__name:"cost-edit",props:{mediaSourceOptions:{default:()=>[]},mediaSourceLoading:{type:Boolean,default:!1}},emits:["success","close"],setup(u,{expose:_,emit:f}){const i=f,c=p(),m=p(),n=B("add"),b=I(()=>n.value==="edit"?"编辑账户消耗":"新增账户消耗"),e=M({id:"",cost_date:"",media_source:"",amount:0,remark:""}),g={cost_date:[{required:!0,message:"请选择日期",trigger:["change"]}],media_source:[{required:!0,message:"请填写自媒体来源",trigger:["blur"]}],amount:[{required:!0,message:"请输入账户消耗金额",trigger:["blur","change"]}]},w=()=>{e.id="",e.cost_date="",e.media_source="",e.amount=0,e.remark=""},k=async()=>{var t,o;await((t=c.value)==null?void 0:t.validate()),n.value==="edit"?await N(e):await z(e),(o=m.value)==null||o.close(),i("success")},V=(t="add")=>{var o;n.value=t,w(),(o=m.value)==null||o.open()},v=t=>{e.id=t.id??"",e.cost_date=t.cost_date??"",e.media_source=t.media_source??"",e.amount=Number(t.amount??0),e.remark=t.remark??""},x=()=>{i("close")};return _({open:V,setFormData:v}),(t,o)=>{const C=F,d=A,R=U,h=Y,y=q;return D(),S("div",J,[l(L,{ref_key:"popupRef",ref:m,title:a(b),async:!0,width:"520px",onConfirm:k,onClose:x},{default:r(()=>[l(y,{ref_key:"formRef",ref:c,model:a(e),"label-width":"110px",rules:g},{default:r(()=>[l(d,{label:"日期",prop:"cost_date"},{default:r(()=>[l(C,{modelValue:a(e).cost_date,"onUpdate:modelValue":o[0]||(o[0]=s=>a(e).cost_date=s),type:"date","value-format":"YYYY-MM-DD",placeholder:"请选择日期",disabled:a(n)==="edit",class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),l(d,{label:"自媒体来源",prop:"media_source"},{default:r(()=>[l(O,{modelValue:a(e).media_source,"onUpdate:modelValue":o[1]||(o[1]=s=>a(e).media_source=s),options:u.mediaSourceOptions,loading:u.mediaSourceLoading,placeholder:"请选择自媒体来源","allow-create":!1,disabled:a(n)==="edit","select-class":"w-full"},null,8,["modelValue","options","loading","disabled"])]),_:1}),l(d,{label:"账户消耗",prop:"amount"},{default:r(()=>[l(R,{modelValue:a(e).amount,"onUpdate:modelValue":o[2]||(o[2]=s=>a(e).amount=s),min:0,step:.01,precision:2,class:"w-full"},null,8,["modelValue"])]),_:1}),l(d,{label:"备注",prop:"remark"},{default:r(()=>[l(h,{modelValue:a(e).remark,"onUpdate:modelValue":o[3]||(o[3]=s=>a(e).remark=s),type:"textarea",autosize:{minRows:3,maxRows:5},maxlength:"255","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{G as _}; +import{o as E,q as D,r as S,v as l,D as r,bd as q,u as a,bb as A,az as F,J as U,aA as Y,a8 as p,M as B,p as I,aC as M}from"./.pnpm-CyuAWpdG.js";import{b as N,c as z}from"./self_input_stats-DXFvDfvT.js";import{_ as L}from"./index-CS5Wg0xx.js";import{_ as O}from"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-NXWg0oJL.js";const J={class:"edit-popup"},G=E({__name:"cost-edit",props:{mediaSourceOptions:{default:()=>[]},mediaSourceLoading:{type:Boolean,default:!1}},emits:["success","close"],setup(u,{expose:_,emit:f}){const i=f,c=p(),m=p(),n=B("add"),b=I(()=>n.value==="edit"?"编辑账户消耗":"新增账户消耗"),e=M({id:"",cost_date:"",media_source:"",amount:0,remark:""}),g={cost_date:[{required:!0,message:"请选择日期",trigger:["change"]}],media_source:[{required:!0,message:"请填写自媒体来源",trigger:["blur"]}],amount:[{required:!0,message:"请输入账户消耗金额",trigger:["blur","change"]}]},w=()=>{e.id="",e.cost_date="",e.media_source="",e.amount=0,e.remark=""},k=async()=>{var t,o;await((t=c.value)==null?void 0:t.validate()),n.value==="edit"?await N(e):await z(e),(o=m.value)==null||o.close(),i("success")},V=(t="add")=>{var o;n.value=t,w(),(o=m.value)==null||o.open()},v=t=>{e.id=t.id??"",e.cost_date=t.cost_date??"",e.media_source=t.media_source??"",e.amount=Number(t.amount??0),e.remark=t.remark??""},x=()=>{i("close")};return _({open:V,setFormData:v}),(t,o)=>{const C=F,d=A,R=U,h=Y,y=q;return D(),S("div",J,[l(L,{ref_key:"popupRef",ref:m,title:a(b),async:!0,width:"520px",onConfirm:k,onClose:x},{default:r(()=>[l(y,{ref_key:"formRef",ref:c,model:a(e),"label-width":"110px",rules:g},{default:r(()=>[l(d,{label:"日期",prop:"cost_date"},{default:r(()=>[l(C,{modelValue:a(e).cost_date,"onUpdate:modelValue":o[0]||(o[0]=s=>a(e).cost_date=s),type:"date","value-format":"YYYY-MM-DD",placeholder:"请选择日期",disabled:a(n)==="edit",class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),l(d,{label:"自媒体来源",prop:"media_source"},{default:r(()=>[l(O,{modelValue:a(e).media_source,"onUpdate:modelValue":o[1]||(o[1]=s=>a(e).media_source=s),options:u.mediaSourceOptions,loading:u.mediaSourceLoading,placeholder:"请选择自媒体来源","allow-create":!1,disabled:a(n)==="edit","select-class":"w-full"},null,8,["modelValue","options","loading","disabled"])]),_:1}),l(d,{label:"账户消耗",prop:"amount"},{default:r(()=>[l(R,{modelValue:a(e).amount,"onUpdate:modelValue":o[2]||(o[2]=s=>a(e).amount=s),min:0,step:.01,precision:2,class:"w-full"},null,8,["modelValue"])]),_:1}),l(d,{label:"备注",prop:"remark"},{default:r(()=>[l(h,{modelValue:a(e).remark,"onUpdate:modelValue":o[3]||(o[3]=s=>a(e).remark=s),type:"textarea",autosize:{minRows:3,maxRows:5},maxlength:"255","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{G as _}; diff --git a/server/public/admin/assets/data-table-BD0poTdm.js b/server/public/admin/assets/data-table-BD0poTdm.js deleted file mode 100644 index 3017a17fa..000000000 --- a/server/public/admin/assets/data-table-BD0poTdm.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./data-table.vue_vue_type_script_setup_true_lang-7I2yFg3i.js";import"./.pnpm-CyuAWpdG.js";import"./code-Bx-mc3Tz.js";import"./index-Dxvz9lb1.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-BnfLT5cB.js";import"./usePaging-CghUEVfD.js";export{o as default}; diff --git a/server/public/admin/assets/data-table-DGWuJM8Y.js b/server/public/admin/assets/data-table-DGWuJM8Y.js new file mode 100644 index 000000000..0929c38c7 --- /dev/null +++ b/server/public/admin/assets/data-table-DGWuJM8Y.js @@ -0,0 +1 @@ +import{_ as o}from"./data-table.vue_vue_type_script_setup_true_lang-D8E8ySzm.js";import"./.pnpm-CyuAWpdG.js";import"./code-C__TNCcp.js";import"./index-Bkarz3gO.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-CS5Wg0xx.js";import"./usePaging-CghUEVfD.js";export{o as default}; diff --git a/server/public/admin/assets/data-table.vue_vue_type_script_setup_true_lang-7I2yFg3i.js b/server/public/admin/assets/data-table.vue_vue_type_script_setup_true_lang-D8E8ySzm.js similarity index 92% rename from server/public/admin/assets/data-table.vue_vue_type_script_setup_true_lang-7I2yFg3i.js rename to server/public/admin/assets/data-table.vue_vue_type_script_setup_true_lang-D8E8ySzm.js index ed1af0dae..7c66abb09 100644 --- a/server/public/admin/assets/data-table.vue_vue_type_script_setup_true_lang-7I2yFg3i.js +++ b/server/public/admin/assets/data-table.vue_vue_type_script_setup_true_lang-D8E8ySzm.js @@ -1 +1 @@ -import{o as R,R as T,q as b,r as g,v as e,D as o,bd as B,u as a,bb as D,aA as F,bc as h,K as L,L as C,ac as N,bk as P,bl as S,bn as U,s as j,C as z,ah as I,a8 as M,aC as $,M as q}from"./.pnpm-CyuAWpdG.js";import{f as A,h as G}from"./code-Bx-mc3Tz.js";import{_ as H}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as J}from"./index-BnfLT5cB.js";import{u as O}from"./usePaging-CghUEVfD.js";import{j as Q}from"./index-Dxvz9lb1.js";const W={class:"data-table"},X={class:"m-4"},Y={class:"flex justify-end mt-4"},se=R({__name:"data-table",emits:["success"],setup(Z,{emit:v}){const w=v,u=M(),n=$({name:"",comment:""}),{pager:s,getLists:_,resetParams:y,resetPage:c}=O({fetchFun:A,params:n,size:10}),d=q([]),V=l=>{d.value=l.map(({name:t,comment:i})=>({name:t,comment:i}))},k=async()=>{var l;if(!d.value.length)return Q.msgError("请选择数据表");await G({table:d.value}),(l=u.value)==null||l.close(),w("success")};return T(()=>{var l;return(l=u.value)==null?void 0:l.visible},l=>{l&&_()}),(l,t)=>{const i=F,p=D,f=L,E=B,r=S,x=P,K=U;return b(),g("div",W,[e(J,{ref_key:"popupRef",ref:u,clickModalClose:!1,title:"选择表",width:"900px",async:!0,onConfirm:k},{trigger:o(()=>[I(l.$slots,"default")]),default:o(()=>[e(E,{class:"ls-form",model:a(n),inline:""},{default:o(()=>[e(p,{class:"w-[280px]",label:"表名称"},{default:o(()=>[e(i,{modelValue:a(n).name,"onUpdate:modelValue":t[0]||(t[0]=m=>a(n).name=m),clearable:"",onKeyup:h(a(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(p,{class:"w-[280px]",label:"表描述"},{default:o(()=>[e(i,{modelValue:a(n).comment,"onUpdate:modelValue":t[1]||(t[1]=m=>a(n).comment=m),clearable:"",onKeyup:h(a(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(p,null,{default:o(()=>[e(f,{type:"primary",onClick:a(c)},{default:o(()=>[...t[3]||(t[3]=[C("查询",-1)])]),_:1},8,["onClick"]),e(f,{onClick:a(y)},{default:o(()=>[...t[4]||(t[4]=[C("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"]),N((b(),g("div",X,[e(x,{height:"400",size:"large",data:a(s).lists,onSelectionChange:V},{default:o(()=>[e(r,{type:"selection",width:"55"}),e(r,{label:"表名称",prop:"name","min-width":"150"}),e(r,{label:"表描述",prop:"comment","min-width":"160"}),e(r,{label:"创建时间",prop:"create_time","min-width":"180"})]),_:1},8,["data"])])),[[K,a(s).loading]]),j("div",Y,[e(H,{modelValue:a(s),"onUpdate:modelValue":t[2]||(t[2]=m=>z(s)?s.value=m:null),onChange:a(_)},null,8,["modelValue","onChange"])])]),_:3},512)])}}});export{se as _}; +import{o as R,R as T,q as b,r as g,v as e,D as o,bd as B,u as a,bb as D,aA as F,bc as h,K as L,L as C,ac as N,bk as P,bl as S,bn as U,s as j,C as z,ah as I,a8 as M,aC as $,M as q}from"./.pnpm-CyuAWpdG.js";import{f as A,h as G}from"./code-C__TNCcp.js";import{_ as H}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as J}from"./index-CS5Wg0xx.js";import{u as O}from"./usePaging-CghUEVfD.js";import{j as Q}from"./index-Bkarz3gO.js";const W={class:"data-table"},X={class:"m-4"},Y={class:"flex justify-end mt-4"},se=R({__name:"data-table",emits:["success"],setup(Z,{emit:v}){const w=v,u=M(),n=$({name:"",comment:""}),{pager:s,getLists:_,resetParams:y,resetPage:c}=O({fetchFun:A,params:n,size:10}),d=q([]),V=l=>{d.value=l.map(({name:t,comment:i})=>({name:t,comment:i}))},k=async()=>{var l;if(!d.value.length)return Q.msgError("请选择数据表");await G({table:d.value}),(l=u.value)==null||l.close(),w("success")};return T(()=>{var l;return(l=u.value)==null?void 0:l.visible},l=>{l&&_()}),(l,t)=>{const i=F,p=D,f=L,E=B,r=S,x=P,K=U;return b(),g("div",W,[e(J,{ref_key:"popupRef",ref:u,clickModalClose:!1,title:"选择表",width:"900px",async:!0,onConfirm:k},{trigger:o(()=>[I(l.$slots,"default")]),default:o(()=>[e(E,{class:"ls-form",model:a(n),inline:""},{default:o(()=>[e(p,{class:"w-[280px]",label:"表名称"},{default:o(()=>[e(i,{modelValue:a(n).name,"onUpdate:modelValue":t[0]||(t[0]=m=>a(n).name=m),clearable:"",onKeyup:h(a(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(p,{class:"w-[280px]",label:"表描述"},{default:o(()=>[e(i,{modelValue:a(n).comment,"onUpdate:modelValue":t[1]||(t[1]=m=>a(n).comment=m),clearable:"",onKeyup:h(a(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(p,null,{default:o(()=>[e(f,{type:"primary",onClick:a(c)},{default:o(()=>[...t[3]||(t[3]=[C("查询",-1)])]),_:1},8,["onClick"]),e(f,{onClick:a(y)},{default:o(()=>[...t[4]||(t[4]=[C("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"]),N((b(),g("div",X,[e(x,{height:"400",size:"large",data:a(s).lists,onSelectionChange:V},{default:o(()=>[e(r,{type:"selection",width:"55"}),e(r,{label:"表名称",prop:"name","min-width":"150"}),e(r,{label:"表描述",prop:"comment","min-width":"160"}),e(r,{label:"创建时间",prop:"create_time","min-width":"180"})]),_:1},8,["data"])])),[[K,a(s).loading]]),j("div",Y,[e(H,{modelValue:a(s),"onUpdate:modelValue":t[2]||(t[2]=m=>z(s)?s.value=m:null),onChange:a(_)},null,8,["modelValue","onChange"])])]),_:3},512)])}}});export{se as _}; diff --git a/server/public/admin/assets/decoration-9ln5Pyvl.js b/server/public/admin/assets/decoration-BCfnNTDP.js similarity index 87% rename from server/public/admin/assets/decoration-9ln5Pyvl.js rename to server/public/admin/assets/decoration-BCfnNTDP.js index 604f4d42a..ca054cd35 100644 --- a/server/public/admin/assets/decoration-9ln5Pyvl.js +++ b/server/public/admin/assets/decoration-BCfnNTDP.js @@ -1 +1 @@ -import{r as t}from"./index-Dxvz9lb1.js";function a(e){return t.get({url:"/decorate.page/detail",params:e},{ignoreCancelToken:!0})}function o(e){return t.post({url:"/decorate.page/save",params:e})}function c(e){return t.get({url:"/decorate.data/article",params:e})}function n(e){return t.get({url:"/decorate.tabbar/detail",params:e})}function u(e){return t.post({url:"/decorate.tabbar/save",params:e})}function s(){return t.get({url:"/decorate.data/pc"})}export{a,s as b,n as c,u as d,c as g,o as s}; +import{r as t}from"./index-Bkarz3gO.js";function a(e){return t.get({url:"/decorate.page/detail",params:e},{ignoreCancelToken:!0})}function o(e){return t.post({url:"/decorate.page/save",params:e})}function c(e){return t.get({url:"/decorate.data/article",params:e})}function n(e){return t.get({url:"/decorate.tabbar/detail",params:e})}function u(e){return t.post({url:"/decorate.tabbar/save",params:e})}function s(){return t.get({url:"/decorate.data/pc"})}export{a,s as b,n as c,u as d,c as g,o as s}; diff --git a/server/public/admin/assets/decoration-img-DKpVnT4z.js b/server/public/admin/assets/decoration-img-SoINHtbg.js similarity index 92% rename from server/public/admin/assets/decoration-img-DKpVnT4z.js rename to server/public/admin/assets/decoration-img-SoINHtbg.js index a6655b9ac..179683357 100644 --- a/server/public/admin/assets/decoration-img-DKpVnT4z.js +++ b/server/public/admin/assets/decoration-img-SoINHtbg.js @@ -1 +1 @@ -import{o as p,a9 as u,q as l,O as _,D as a,s as o,v as g,a7 as f,u as h,aa as y,p as v}from"./.pnpm-CyuAWpdG.js";import{e as N,c as b,o as t,_ as w}from"./index-Dxvz9lb1.js";const I={class:"image-slot"},S=p({__name:"decoration-img",props:{width:{type:[String,Number],default:"auto"},height:{type:[String,Number],default:"auto"},radius:{type:[String,Number],default:0},...u},setup(r){const e=r,{getImageUrl:i}=N(),n=v(()=>({width:t(e.width),height:t(e.height),borderRadius:t(e.radius)}));return(c,s)=>{const d=b,m=y;return l(),_(m,f({style:n.value},e,{src:h(i)(c.src)}),{placeholder:a(()=>[...s[0]||(s[0]=[o("div",{class:"image-slot"},null,-1)])]),error:a(()=>[o("div",I,[g(d,{name:"el-icon-Picture",size:30})])]),_:1},16,["style","src"])}}}),P=w(S,[["__scopeId","data-v-5e0890d2"]]);export{P as default}; +import{o as p,a9 as u,q as l,O as _,D as a,s as o,v as g,a7 as f,u as h,aa as y,p as v}from"./.pnpm-CyuAWpdG.js";import{e as N,c as b,o as t,_ as w}from"./index-Bkarz3gO.js";const I={class:"image-slot"},S=p({__name:"decoration-img",props:{width:{type:[String,Number],default:"auto"},height:{type:[String,Number],default:"auto"},radius:{type:[String,Number],default:0},...u},setup(r){const e=r,{getImageUrl:i}=N(),n=v(()=>({width:t(e.width),height:t(e.height),borderRadius:t(e.radius)}));return(c,s)=>{const d=b,m=y;return l(),_(m,f({style:n.value},e,{src:h(i)(c.src)}),{placeholder:a(()=>[...s[0]||(s[0]=[o("div",{class:"image-slot"},null,-1)])]),error:a(()=>[o("div",I,[g(d,{name:"el-icon-Picture",size:30})])]),_:1},16,["style","src"])}}}),P=w(S,[["__scopeId","data-v-5e0890d2"]]);export{P as default}; diff --git a/server/public/admin/assets/default_reply-DlS9tKKW.js b/server/public/admin/assets/default_reply-CNq3IauE.js similarity index 91% rename from server/public/admin/assets/default_reply-DlS9tKKW.js rename to server/public/admin/assets/default_reply-CNq3IauE.js index 0d4a4c13c..5f2a8b563 100644 --- a/server/public/admin/assets/default_reply-DlS9tKKW.js +++ b/server/public/admin/assets/default_reply-CNq3IauE.js @@ -1 +1 @@ -import{o as T,q as f,r as B,v as t,D as l,bo as L,bj as N,s as g,K as j,L as p,ac as O,O as y,bk as P,u as o,bl as U,T as A,I as q,bn as z,C as F,P as I,a8 as K,M,p as G,n as b}from"./.pnpm-CyuAWpdG.js";import{_ as H}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as J,j as w}from"./index-Dxvz9lb1.js";import{d as Q,o as W,e as X}from"./wx_oa-vu-UopqS.js";import{u as Y}from"./usePaging-CghUEVfD.js";import{_ as Z}from"./edit.vue_vue_type_script_setup_true_lang-DRGhGv7L.js";import"./index-BnfLT5cB.js";const ee={class:"flex justify-end mt-4"},re=T({__name:"default_reply",setup(te){const r=K(),c=M(!1),h=G(()=>n=>{switch(n){case 1:return"文本"}}),{pager:d,getLists:s}=Y({fetchFun:Q,params:{reply_type:3}}),C=async()=>{var n;c.value=!0,await b(),(n=r.value)==null||n.open("add",3)},k=async n=>{var e,u;c.value=!0,await b(),(e=r.value)==null||e.open("edit",3),(u=r.value)==null||u.getDetail(n)},V=async n=>{await w.confirm("确定要删除?"),await W({id:n}),w.msgSuccess("删除成功"),s()},E=async n=>{try{await X({id:n}),s()}catch{s()}};return s(),(n,e)=>{const u=L,v=N,$=J,_=j,i=U,x=q,R=P,S=H,D=z;return f(),B("div",null,[t(v,{class:"!border-none",shadow:"never"},{default:l(()=>[t(u,{type:"warning",title:"温馨提示:1.粉丝在公众号发送内容时,系统无法匹配情况下发送启用的默认文本回复;2.同时只能启用一个默认回复。",closable:!1,"show-icon":""})]),_:1}),t(v,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[g("div",null,[t(_,{class:"mb-4",type:"primary",onClick:e[0]||(e[0]=a=>C())},{icon:l(()=>[t($,{name:"el-icon-Plus"})]),default:l(()=>[e[3]||(e[3]=p(" 新增 ",-1))]),_:1})]),O((f(),y(R,{size:"large",data:o(d).lists},{default:l(()=>[t(i,{label:"规则名称",prop:"name","min-width":"120"}),t(i,{label:"回复类型","min-width":"120"},{default:l(({row:a})=>[p(A(o(h)(a.content_type)),1)]),_:1}),t(i,{label:"回复内容",prop:"content","min-width":"120"}),t(i,{label:"状态","min-width":"120"},{default:l(({row:a})=>[t(x,{modelValue:a.status,"onUpdate:modelValue":m=>a.status=m,"active-value":1,"inactive-value":0,onChange:m=>E(a.id)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),t(i,{label:"排序",prop:"sort","min-width":"120"}),t(i,{label:"操作",width:"120",fixed:"right"},{default:l(({row:a})=>[t(_,{type:"primary",link:"",onClick:m=>k(a)},{default:l(()=>[...e[4]||(e[4]=[p(" 编辑 ",-1)])]),_:1},8,["onClick"]),t(_,{type:"danger",link:"",onClick:m=>V(a.id)},{default:l(()=>[...e[5]||(e[5]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[D,o(d).loading]]),g("div",ee,[t(S,{modelValue:o(d),"onUpdate:modelValue":e[1]||(e[1]=a=>F(d)?d.value=a:null),onChange:o(s)},null,8,["modelValue","onChange"])])]),_:1}),o(c)?(f(),y(Z,{key:0,ref_key:"editRef",ref:r,onSuccess:o(s),onClose:e[2]||(e[2]=a=>c.value=!1)},null,8,["onSuccess"])):I("",!0)])}}});export{re as default}; +import{o as T,q as f,r as B,v as t,D as l,bo as L,bj as N,s as g,K as j,L as p,ac as O,O as y,bk as P,u as o,bl as U,T as A,I as q,bn as z,C as F,P as I,a8 as K,M,p as G,n as b}from"./.pnpm-CyuAWpdG.js";import{_ as H}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as J,j as w}from"./index-Bkarz3gO.js";import{d as Q,o as W,e as X}from"./wx_oa-C-EoclSf.js";import{u as Y}from"./usePaging-CghUEVfD.js";import{_ as Z}from"./edit.vue_vue_type_script_setup_true_lang-DjT3f1Sv.js";import"./index-CS5Wg0xx.js";const ee={class:"flex justify-end mt-4"},re=T({__name:"default_reply",setup(te){const r=K(),c=M(!1),h=G(()=>n=>{switch(n){case 1:return"文本"}}),{pager:d,getLists:s}=Y({fetchFun:Q,params:{reply_type:3}}),C=async()=>{var n;c.value=!0,await b(),(n=r.value)==null||n.open("add",3)},k=async n=>{var e,u;c.value=!0,await b(),(e=r.value)==null||e.open("edit",3),(u=r.value)==null||u.getDetail(n)},V=async n=>{await w.confirm("确定要删除?"),await W({id:n}),w.msgSuccess("删除成功"),s()},E=async n=>{try{await X({id:n}),s()}catch{s()}};return s(),(n,e)=>{const u=L,v=N,$=J,_=j,i=U,x=q,R=P,S=H,D=z;return f(),B("div",null,[t(v,{class:"!border-none",shadow:"never"},{default:l(()=>[t(u,{type:"warning",title:"温馨提示:1.粉丝在公众号发送内容时,系统无法匹配情况下发送启用的默认文本回复;2.同时只能启用一个默认回复。",closable:!1,"show-icon":""})]),_:1}),t(v,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[g("div",null,[t(_,{class:"mb-4",type:"primary",onClick:e[0]||(e[0]=a=>C())},{icon:l(()=>[t($,{name:"el-icon-Plus"})]),default:l(()=>[e[3]||(e[3]=p(" 新增 ",-1))]),_:1})]),O((f(),y(R,{size:"large",data:o(d).lists},{default:l(()=>[t(i,{label:"规则名称",prop:"name","min-width":"120"}),t(i,{label:"回复类型","min-width":"120"},{default:l(({row:a})=>[p(A(o(h)(a.content_type)),1)]),_:1}),t(i,{label:"回复内容",prop:"content","min-width":"120"}),t(i,{label:"状态","min-width":"120"},{default:l(({row:a})=>[t(x,{modelValue:a.status,"onUpdate:modelValue":m=>a.status=m,"active-value":1,"inactive-value":0,onChange:m=>E(a.id)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),t(i,{label:"排序",prop:"sort","min-width":"120"}),t(i,{label:"操作",width:"120",fixed:"right"},{default:l(({row:a})=>[t(_,{type:"primary",link:"",onClick:m=>k(a)},{default:l(()=>[...e[4]||(e[4]=[p(" 编辑 ",-1)])]),_:1},8,["onClick"]),t(_,{type:"danger",link:"",onClick:m=>V(a.id)},{default:l(()=>[...e[5]||(e[5]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[D,o(d).loading]]),g("div",ee,[t(S,{modelValue:o(d),"onUpdate:modelValue":e[1]||(e[1]=a=>F(d)?d.value=a:null),onChange:o(s)},null,8,["modelValue","onChange"])])]),_:1}),o(c)?(f(),y(Z,{key:0,ref_key:"editRef",ref:r,onSuccess:o(s),onClose:e[2]||(e[2]=a=>c.value=!1)},null,8,["onSuccess"])):I("",!0)])}}});export{re as default}; diff --git a/server/public/admin/assets/department-DToZNvdH.js b/server/public/admin/assets/department-BeBGhsmA.js similarity index 86% rename from server/public/admin/assets/department-DToZNvdH.js rename to server/public/admin/assets/department-BeBGhsmA.js index 2d7af9eac..d5475d6bd 100644 --- a/server/public/admin/assets/department-DToZNvdH.js +++ b/server/public/admin/assets/department-BeBGhsmA.js @@ -1 +1 @@ -import{r as e}from"./index-Dxvz9lb1.js";function p(t){return e.get({url:"/dept.dept/lists",params:t})}function r(t){return e.post({url:"/dept.dept/add",params:t})}function u(t){return e.post({url:"/dept.dept/edit",params:t})}function n(t){return e.post({url:"/dept.dept/delete",params:t})}function l(t){return e.get({url:"/dept.dept/detail",params:t})}function s(t){return e.get({url:"/dept.dept/all",params:t})}export{u as a,r as b,l as c,s as d,p as e,n as f}; +import{r as e}from"./index-Bkarz3gO.js";function p(t){return e.get({url:"/dept.dept/lists",params:t})}function r(t){return e.post({url:"/dept.dept/add",params:t})}function u(t){return e.post({url:"/dept.dept/edit",params:t})}function n(t){return e.post({url:"/dept.dept/delete",params:t})}function l(t){return e.get({url:"/dept.dept/detail",params:t})}function s(t){return e.get({url:"/dept.dept/all",params:t})}export{u as a,r as b,l as c,s as d,p as e,n as f}; diff --git a/server/public/admin/assets/dept-tongji-NKrpNQc1.js b/server/public/admin/assets/dept-tongji-FUPtvTEd.js similarity index 97% rename from server/public/admin/assets/dept-tongji-NKrpNQc1.js rename to server/public/admin/assets/dept-tongji-FUPtvTEd.js index 63ef5520c..9fc8cce49 100644 --- a/server/public/admin/assets/dept-tongji-NKrpNQc1.js +++ b/server/public/admin/assets/dept-tongji-FUPtvTEd.js @@ -1 +1 @@ -import{o as S,ap as Y,q as r,r as y,v as t,D as a,bd as j,bb as P,bh as U,F as q,G,O as k,bi as I,bf as O,be as K,L as n,az as W,P as A,K as H,s as m,bj as J,ac as Q,bn as X,bk as Z,bl as $,bm as ee,T as p,bC as te,M as g,aC as ae,E as le}from"./.pnpm-CyuAWpdG.js";import{d as se,e as oe}from"./doctor-8vo_5fa4.js";import{_ as ne}from"./index-Dxvz9lb1.js";const de={class:"dept-statistics-page"},ie={key:0},re={class:"status-overview"},ce={class:"status-tags"},_e={key:1,class:"empty-data"},me=S({__name:"dept-tongji",setup(pe){const u=g(!1),V=g([]),v=g([]),i=g([]),o=ae({dept_id:"",time_type:"today",start_date:"",end_date:""}),D=async()=>{try{const s=await se(),e=h=>{let c=[];return h.forEach(d=>{c.push({id:d.id,name:d.name}),d.children&&d.children.length>0&&(c=c.concat(e(d.children)))}),c};V.value=e(s)||[]}catch(s){console.error("获取部门列表失败:",s)}},b=async()=>{u.value=!0;try{const s={time_type:o.time_type};o.dept_id&&(s.dept_id=o.dept_id),o.time_type==="custom"&&i.value&&i.value.length===2&&(s.start_date=i.value[0],s.end_date=i.value[1]);const e=await oe(s);v.value=e.lists||[]}catch(s){console.error("获取统计数据错误:",s),le.error(s.msg||"获取统计数据失败")}finally{u.value=!1}},T=()=>{o.time_type!=="custom"&&(i.value=[])},x=()=>{o.dept_id="",o.time_type="today",i.value=[],b()},z=s=>s>=80?"success":s>=60?"primary":"warning";return Y(()=>{D(),b()}),(s,e)=>{const h=I,c=U,d=P,f=K,L=O,B=W,C=H,M=j,w=J,E=$,_=ee,R=Z,F=te,N=X;return r(),y("div",de,[t(w,{class:"mb-4",shadow:"hover"},{header:a(()=>[...e[3]||(e[3]=[m("div",{class:"card-header"},[m("span",{class:"card-title"},"筛选条件")],-1)])]),default:a(()=>[t(M,{inline:!0,model:o,class:"filter-form"},{default:a(()=>[t(d,{label:"部门"},{default:a(()=>[t(c,{modelValue:o.dept_id,"onUpdate:modelValue":e[0]||(e[0]=l=>o.dept_id=l),placeholder:"全部部门",clearable:"",filterable:"",style:{width:"200px"}},{default:a(()=>[(r(!0),y(q,null,G(V.value,l=>(r(),k(h,{key:l.id,label:l.name,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"时间范围"},{default:a(()=>[t(L,{modelValue:o.time_type,"onUpdate:modelValue":e[1]||(e[1]=l=>o.time_type=l),onChange:T},{default:a(()=>[t(f,{label:"today"},{default:a(()=>[...e[4]||(e[4]=[n("今天",-1)])]),_:1}),t(f,{label:"week"},{default:a(()=>[...e[5]||(e[5]=[n("最近7天",-1)])]),_:1}),t(f,{label:"month"},{default:a(()=>[...e[6]||(e[6]=[n("最近30天",-1)])]),_:1}),t(f,{label:"custom"},{default:a(()=>[...e[7]||(e[7]=[n("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o.time_type==="custom"?(r(),k(d,{key:0},{default:a(()=>[t(B,{modelValue:i.value,"onUpdate:modelValue":e[2]||(e[2]=l=>i.value=l),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"260px"}},null,8,["modelValue"])]),_:1})):A("",!0),t(d,null,{default:a(()=>[t(C,{type:"primary",onClick:b,loading:u.value},{default:a(()=>[...e[8]||(e[8]=[n("查询",-1)])]),_:1},8,["loading"]),t(C,{onClick:x},{default:a(()=>[...e[9]||(e[9]=[n("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),Q((r(),k(w,{class:"mb-4",shadow:"hover"},{header:a(()=>[...e[10]||(e[10]=[m("div",{class:"card-header"},[m("span",{class:"card-title"},"部门统计数据")],-1)])]),default:a(()=>[v.value.length>0?(r(),y("div",ie,[t(R,{data:v.value,style:{width:"100%"},"header-cell-style":{background:"#f5f7fa",color:"#606266",fontWeight:"600"}},{default:a(()=>[t(E,{prop:"dept_name",label:"部门名称",width:"120"}),t(E,{label:"状态明细","min-width":"700"},{default:a(({row:l})=>[m("div",re,[m("div",ce,[t(_,{type:"info",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已挂号: "+p(l.registered_count),1)]),_:2},1024),t(_,{type:"success",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已完成: "+p(l.completed_count),1)]),_:2},1024),t(_,{type:"danger",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已取消: "+p(l.canceled_count),1)]),_:2},1024),t(_,{type:"warning",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已过号: "+p(l.expired_count),1)]),_:2},1024),t(_,{type:"primary",size:"small",class:"compact-tag"},{default:a(()=>[n(" 总数量: "+p(l.total_count),1)]),_:2},1024),t(_,{type:z(l.completion_rate),size:"small",class:"compact-tag"},{default:a(()=>[n(" 完成率: "+p(l.completion_rate)+"% ",1)]),_:2},1032,["type"])])])]),_:1}),t(E,{prop:"time_range",label:"统计时间","min-width":"200"})]),_:1},8,["data"])])):(r(),y("div",_e,[t(F,{description:"暂无统计数据"})]))]),_:1})),[[N,u.value]])])}}}),ge=ne(me,[["__scopeId","data-v-edcb5eaf"]]);export{ge as default}; +import{o as S,ap as Y,q as r,r as y,v as t,D as a,bd as j,bb as P,bh as U,F as q,G,O as k,bi as I,bf as O,be as K,L as n,az as W,P as A,K as H,s as m,bj as J,ac as Q,bn as X,bk as Z,bl as $,bm as ee,T as p,bC as te,M as g,aC as ae,E as le}from"./.pnpm-CyuAWpdG.js";import{d as se,e as oe}from"./doctor-DBvYeWd3.js";import{_ as ne}from"./index-Bkarz3gO.js";const de={class:"dept-statistics-page"},ie={key:0},re={class:"status-overview"},ce={class:"status-tags"},_e={key:1,class:"empty-data"},me=S({__name:"dept-tongji",setup(pe){const u=g(!1),V=g([]),v=g([]),i=g([]),o=ae({dept_id:"",time_type:"today",start_date:"",end_date:""}),D=async()=>{try{const s=await se(),e=h=>{let c=[];return h.forEach(d=>{c.push({id:d.id,name:d.name}),d.children&&d.children.length>0&&(c=c.concat(e(d.children)))}),c};V.value=e(s)||[]}catch(s){console.error("获取部门列表失败:",s)}},b=async()=>{u.value=!0;try{const s={time_type:o.time_type};o.dept_id&&(s.dept_id=o.dept_id),o.time_type==="custom"&&i.value&&i.value.length===2&&(s.start_date=i.value[0],s.end_date=i.value[1]);const e=await oe(s);v.value=e.lists||[]}catch(s){console.error("获取统计数据错误:",s),le.error(s.msg||"获取统计数据失败")}finally{u.value=!1}},T=()=>{o.time_type!=="custom"&&(i.value=[])},x=()=>{o.dept_id="",o.time_type="today",i.value=[],b()},z=s=>s>=80?"success":s>=60?"primary":"warning";return Y(()=>{D(),b()}),(s,e)=>{const h=I,c=U,d=P,f=K,L=O,B=W,C=H,M=j,w=J,E=$,_=ee,R=Z,F=te,N=X;return r(),y("div",de,[t(w,{class:"mb-4",shadow:"hover"},{header:a(()=>[...e[3]||(e[3]=[m("div",{class:"card-header"},[m("span",{class:"card-title"},"筛选条件")],-1)])]),default:a(()=>[t(M,{inline:!0,model:o,class:"filter-form"},{default:a(()=>[t(d,{label:"部门"},{default:a(()=>[t(c,{modelValue:o.dept_id,"onUpdate:modelValue":e[0]||(e[0]=l=>o.dept_id=l),placeholder:"全部部门",clearable:"",filterable:"",style:{width:"200px"}},{default:a(()=>[(r(!0),y(q,null,G(V.value,l=>(r(),k(h,{key:l.id,label:l.name,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"时间范围"},{default:a(()=>[t(L,{modelValue:o.time_type,"onUpdate:modelValue":e[1]||(e[1]=l=>o.time_type=l),onChange:T},{default:a(()=>[t(f,{label:"today"},{default:a(()=>[...e[4]||(e[4]=[n("今天",-1)])]),_:1}),t(f,{label:"week"},{default:a(()=>[...e[5]||(e[5]=[n("最近7天",-1)])]),_:1}),t(f,{label:"month"},{default:a(()=>[...e[6]||(e[6]=[n("最近30天",-1)])]),_:1}),t(f,{label:"custom"},{default:a(()=>[...e[7]||(e[7]=[n("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o.time_type==="custom"?(r(),k(d,{key:0},{default:a(()=>[t(B,{modelValue:i.value,"onUpdate:modelValue":e[2]||(e[2]=l=>i.value=l),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"260px"}},null,8,["modelValue"])]),_:1})):A("",!0),t(d,null,{default:a(()=>[t(C,{type:"primary",onClick:b,loading:u.value},{default:a(()=>[...e[8]||(e[8]=[n("查询",-1)])]),_:1},8,["loading"]),t(C,{onClick:x},{default:a(()=>[...e[9]||(e[9]=[n("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),Q((r(),k(w,{class:"mb-4",shadow:"hover"},{header:a(()=>[...e[10]||(e[10]=[m("div",{class:"card-header"},[m("span",{class:"card-title"},"部门统计数据")],-1)])]),default:a(()=>[v.value.length>0?(r(),y("div",ie,[t(R,{data:v.value,style:{width:"100%"},"header-cell-style":{background:"#f5f7fa",color:"#606266",fontWeight:"600"}},{default:a(()=>[t(E,{prop:"dept_name",label:"部门名称",width:"120"}),t(E,{label:"状态明细","min-width":"700"},{default:a(({row:l})=>[m("div",re,[m("div",ce,[t(_,{type:"info",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已挂号: "+p(l.registered_count),1)]),_:2},1024),t(_,{type:"success",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已完成: "+p(l.completed_count),1)]),_:2},1024),t(_,{type:"danger",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已取消: "+p(l.canceled_count),1)]),_:2},1024),t(_,{type:"warning",size:"small",class:"compact-tag"},{default:a(()=>[n(" 已过号: "+p(l.expired_count),1)]),_:2},1024),t(_,{type:"primary",size:"small",class:"compact-tag"},{default:a(()=>[n(" 总数量: "+p(l.total_count),1)]),_:2},1024),t(_,{type:z(l.completion_rate),size:"small",class:"compact-tag"},{default:a(()=>[n(" 完成率: "+p(l.completion_rate)+"% ",1)]),_:2},1032,["type"])])])]),_:1}),t(E,{prop:"time_range",label:"统计时间","min-width":"200"})]),_:1},8,["data"])])):(r(),y("div",_e,[t(F,{description:"暂无统计数据"})]))]),_:1})),[[N,u.value]])])}}}),ge=ne(me,[["__scopeId","data-v-edcb5eaf"]]);export{ge as default}; diff --git a/server/public/admin/assets/detail-BC-AUtN0.js b/server/public/admin/assets/detail-C1EBtcAD.js similarity index 95% rename from server/public/admin/assets/detail-BC-AUtN0.js rename to server/public/admin/assets/detail-C1EBtcAD.js index 659c4eb79..11cd7f730 100644 --- a/server/public/admin/assets/detail-BC-AUtN0.js +++ b/server/public/admin/assets/detail-C1EBtcAD.js @@ -1 +1 @@ -import{_ as N}from"./index-BnfLT5cB.js";import{o as V,q as r,r as p,v as l,D as a,c1 as C,c2 as I,L as n,T as o,u as t,F as m,G as y,O as u,bm as L,P as O,aa as T,s as g,M as h,p as F}from"./.pnpm-CyuAWpdG.js";import{ab as R}from"./tcm-QAkeqQ9Q.js";import{n as q}from"./index-Dxvz9lb1.js";const z={class:"detail-popup"},G={key:0},H={key:0,class:"flex gap-2"},M={key:1},P={key:0,class:"flex flex-wrap gap-2"},S={key:1},j={style:{"white-space":"pre-wrap"}},A={style:{"white-space":"pre-wrap"}},J={style:{"white-space":"pre-wrap"}},Z=V({__name:"detail",setup(K,{expose:x}){const b=h(),e=h({}),v=h([]),D=async()=>{try{const i=await q({type:"past_history"});v.value=(i==null?void 0:i.past_history)||[]}catch(i){console.error("获取字典数据失败:",i)}},w=F(()=>!e.value.past_history||!e.value.past_history.length?[]:e.value.past_history.map(i=>{const _=v.value.find(s=>s.value===i);return _?_.name:i}));return x({open:async i=>{b.value.open(),await D(),e.value=await R({id:i})}}),(i,_)=>{const s=I,d=L,k=T,E=C,B=N;return r(),p("div",z,[l(B,{ref_key:"popupRef",ref:b,title:"诊单详情",width:"800px","show-confirm":!1,"z-index":1500},{default:a(()=>[l(E,{column:2,border:""},{default:a(()=>[l(s,{label:"患者ID"},{default:a(()=>[n(o(t(e).patient_id),1)]),_:1}),l(s,{label:"患者姓名"},{default:a(()=>[n(o(t(e).patient_name),1)]),_:1}),l(s,{label:"性别"},{default:a(()=>[n(o(t(e).gender_desc),1)]),_:1}),l(s,{label:"年龄"},{default:a(()=>[n(o(t(e).age)+"岁 ",1)]),_:1}),l(s,{label:"诊断日期"},{default:a(()=>[n(o(t(e).diagnosis_date_text),1)]),_:1}),l(s,{label:"诊断类型"},{default:a(()=>[n(o(t(e).diagnosis_type),1)]),_:1}),l(s,{label:"证型",span:2},{default:a(()=>[n(o(t(e).syndrome_type),1)]),_:1}),l(s,{label:"既往史",span:2},{default:a(()=>[(r(!0),p(m,null,y(t(w),c=>(r(),u(d,{key:c,class:"mr-2",type:"info"},{default:a(()=>[n(o(c),1)]),_:2},1024))),128)),t(w).length?O("",!0):(r(),p("span",G,"无"))]),_:1}),l(s,{label:"外伤史"},{default:a(()=>[n(o(t(e).trauma_history?"有":"无"),1)]),_:1}),l(s,{label:"手术史"},{default:a(()=>[n(o(t(e).surgery_history?"有":"无"),1)]),_:1}),l(s,{label:"过敏史"},{default:a(()=>[n(o(t(e).allergy_history?"有":"无"),1)]),_:1}),l(s,{label:"家族病史"},{default:a(()=>[n(o(t(e).family_history?"有":"无"),1)]),_:1}),l(s,{label:"妊娠哺乳史",span:2},{default:a(()=>[n(o(t(e).pregnancy_history?"有":"无"),1)]),_:1}),l(s,{label:"舌苔照片",span:2},{default:a(()=>[t(e).tongue_images&&t(e).tongue_images.length?(r(),p("div",H,[(r(!0),p(m,null,y(t(e).tongue_images,(c,f)=>(r(),u(k,{key:f,src:c,"preview-src-list":t(e).tongue_images,style:{width:"100px",height:"100px"},fit:"cover"},null,8,["src","preview-src-list"]))),128))])):(r(),p("span",M,"暂无"))]),_:1}),l(s,{label:"检查报告",span:2},{default:a(()=>[t(e).report_files&&t(e).report_files.length?(r(),p("div",P,[(r(!0),p(m,null,y(t(e).report_files,(c,f)=>(r(),u(k,{key:f,src:c,"preview-src-list":t(e).report_files,style:{width:"100px",height:"100px"},fit:"cover"},null,8,["src","preview-src-list"]))),128))])):(r(),p("span",S,"暂无"))]),_:1}),l(s,{label:"症状",span:2},{default:a(()=>[n(o(t(e).symptoms||"无"),1)]),_:1}),l(s,{label:"舌苔"},{default:a(()=>[n(o(t(e).tongue_coating||"无"),1)]),_:1}),l(s,{label:"脉象"},{default:a(()=>[n(o(t(e).pulse||"无"),1)]),_:1}),l(s,{label:"治则",span:2},{default:a(()=>[n(o(t(e).treatment_principle||"无"),1)]),_:1}),l(s,{label:"在用药物",span:2},{default:a(()=>[g("div",j,o(t(e).current_medications||"无"),1)]),_:1}),l(s,{label:"处方",span:2},{default:a(()=>[g("div",A,o(t(e).prescription||"无"),1)]),_:1}),l(s,{label:"医嘱",span:2},{default:a(()=>[g("div",J,o(t(e).doctor_advice||"无"),1)]),_:1}),l(s,{label:"备注",span:2},{default:a(()=>[n(o(t(e).remark||"无"),1)]),_:1}),l(s,{label:"状态"},{default:a(()=>[t(e).status==1?(r(),u(d,{key:0,type:"success"},{default:a(()=>[..._[0]||(_[0]=[n("启用",-1)])]),_:1})):(r(),u(d,{key:1,type:"danger"},{default:a(()=>[..._[1]||(_[1]=[n("禁用",-1)])]),_:1}))]),_:1}),l(s,{label:"创建时间"},{default:a(()=>[n(o(t(e).create_time),1)]),_:1})]),_:1})]),_:1},512)])}}});export{Z as default}; +import{_ as N}from"./index-CS5Wg0xx.js";import{o as V,q as r,r as p,v as l,D as a,c1 as C,c2 as I,L as n,T as o,u as t,F as m,G as y,O as u,bm as L,P as O,aa as T,s as g,M as h,p as F}from"./.pnpm-CyuAWpdG.js";import{ab as R}from"./tcm-BSADvQNg.js";import{n as q}from"./index-Bkarz3gO.js";const z={class:"detail-popup"},G={key:0},H={key:0,class:"flex gap-2"},M={key:1},P={key:0,class:"flex flex-wrap gap-2"},S={key:1},j={style:{"white-space":"pre-wrap"}},A={style:{"white-space":"pre-wrap"}},J={style:{"white-space":"pre-wrap"}},Z=V({__name:"detail",setup(K,{expose:x}){const b=h(),e=h({}),v=h([]),D=async()=>{try{const i=await q({type:"past_history"});v.value=(i==null?void 0:i.past_history)||[]}catch(i){console.error("获取字典数据失败:",i)}},w=F(()=>!e.value.past_history||!e.value.past_history.length?[]:e.value.past_history.map(i=>{const _=v.value.find(s=>s.value===i);return _?_.name:i}));return x({open:async i=>{b.value.open(),await D(),e.value=await R({id:i})}}),(i,_)=>{const s=I,d=L,k=T,E=C,B=N;return r(),p("div",z,[l(B,{ref_key:"popupRef",ref:b,title:"诊单详情",width:"800px","show-confirm":!1,"z-index":1500},{default:a(()=>[l(E,{column:2,border:""},{default:a(()=>[l(s,{label:"患者ID"},{default:a(()=>[n(o(t(e).patient_id),1)]),_:1}),l(s,{label:"患者姓名"},{default:a(()=>[n(o(t(e).patient_name),1)]),_:1}),l(s,{label:"性别"},{default:a(()=>[n(o(t(e).gender_desc),1)]),_:1}),l(s,{label:"年龄"},{default:a(()=>[n(o(t(e).age)+"岁 ",1)]),_:1}),l(s,{label:"诊断日期"},{default:a(()=>[n(o(t(e).diagnosis_date_text),1)]),_:1}),l(s,{label:"诊断类型"},{default:a(()=>[n(o(t(e).diagnosis_type),1)]),_:1}),l(s,{label:"证型",span:2},{default:a(()=>[n(o(t(e).syndrome_type),1)]),_:1}),l(s,{label:"既往史",span:2},{default:a(()=>[(r(!0),p(m,null,y(t(w),c=>(r(),u(d,{key:c,class:"mr-2",type:"info"},{default:a(()=>[n(o(c),1)]),_:2},1024))),128)),t(w).length?O("",!0):(r(),p("span",G,"无"))]),_:1}),l(s,{label:"外伤史"},{default:a(()=>[n(o(t(e).trauma_history?"有":"无"),1)]),_:1}),l(s,{label:"手术史"},{default:a(()=>[n(o(t(e).surgery_history?"有":"无"),1)]),_:1}),l(s,{label:"过敏史"},{default:a(()=>[n(o(t(e).allergy_history?"有":"无"),1)]),_:1}),l(s,{label:"家族病史"},{default:a(()=>[n(o(t(e).family_history?"有":"无"),1)]),_:1}),l(s,{label:"妊娠哺乳史",span:2},{default:a(()=>[n(o(t(e).pregnancy_history?"有":"无"),1)]),_:1}),l(s,{label:"舌苔照片",span:2},{default:a(()=>[t(e).tongue_images&&t(e).tongue_images.length?(r(),p("div",H,[(r(!0),p(m,null,y(t(e).tongue_images,(c,f)=>(r(),u(k,{key:f,src:c,"preview-src-list":t(e).tongue_images,style:{width:"100px",height:"100px"},fit:"cover"},null,8,["src","preview-src-list"]))),128))])):(r(),p("span",M,"暂无"))]),_:1}),l(s,{label:"检查报告",span:2},{default:a(()=>[t(e).report_files&&t(e).report_files.length?(r(),p("div",P,[(r(!0),p(m,null,y(t(e).report_files,(c,f)=>(r(),u(k,{key:f,src:c,"preview-src-list":t(e).report_files,style:{width:"100px",height:"100px"},fit:"cover"},null,8,["src","preview-src-list"]))),128))])):(r(),p("span",S,"暂无"))]),_:1}),l(s,{label:"症状",span:2},{default:a(()=>[n(o(t(e).symptoms||"无"),1)]),_:1}),l(s,{label:"舌苔"},{default:a(()=>[n(o(t(e).tongue_coating||"无"),1)]),_:1}),l(s,{label:"脉象"},{default:a(()=>[n(o(t(e).pulse||"无"),1)]),_:1}),l(s,{label:"治则",span:2},{default:a(()=>[n(o(t(e).treatment_principle||"无"),1)]),_:1}),l(s,{label:"在用药物",span:2},{default:a(()=>[g("div",j,o(t(e).current_medications||"无"),1)]),_:1}),l(s,{label:"处方",span:2},{default:a(()=>[g("div",A,o(t(e).prescription||"无"),1)]),_:1}),l(s,{label:"医嘱",span:2},{default:a(()=>[g("div",J,o(t(e).doctor_advice||"无"),1)]),_:1}),l(s,{label:"备注",span:2},{default:a(()=>[n(o(t(e).remark||"无"),1)]),_:1}),l(s,{label:"状态"},{default:a(()=>[t(e).status==1?(r(),u(d,{key:0,type:"success"},{default:a(()=>[..._[0]||(_[0]=[n("启用",-1)])]),_:1})):(r(),u(d,{key:1,type:"danger"},{default:a(()=>[..._[1]||(_[1]=[n("禁用",-1)])]),_:1}))]),_:1}),l(s,{label:"创建时间"},{default:a(()=>[n(o(t(e).create_time),1)]),_:1})]),_:1})]),_:1},512)])}}});export{Z as default}; diff --git a/server/public/admin/assets/detail-CQb98XKw.js b/server/public/admin/assets/detail-DcdzZoOu.js similarity index 93% rename from server/public/admin/assets/detail-CQb98XKw.js rename to server/public/admin/assets/detail-DcdzZoOu.js index 020ed850c..676cdf0a7 100644 --- a/server/public/admin/assets/detail-CQb98XKw.js +++ b/server/public/admin/assets/detail-DcdzZoOu.js @@ -1 +1 @@ -import{o as C,Q as q,bp as R,q as d,r as A,v as t,D as a,br as N,bj as V,bd as F,u as s,s as c,a0 as M,L as r,T as i,ac as p,O as b,K as O,bb as S,aC as g,a8 as T}from"./.pnpm-CyuAWpdG.js";import{_ as U}from"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import{c as z,s as H}from"./index-Dxvz9lb1.js";import{g as I,u as K,a as L}from"./consumer-BUIWfqzk.js";import{_ as Q}from"./account-adjust.vue_vue_type_script_setup_true_lang-B4ND4Tl6.js";import"./index-BnfLT5cB.js";const G={class:"bg-page flex py-5 mb-10 items-center"},J={class:"basis-40 flex flex-col justify-center items-center"},W={class:"basis-40 flex flex-col justify-center items-center"},X={class:"mt-2 flex items-center"},Y=C({name:"consumerDetail"}),oe=C({...Y,setup(Z){const w=q(),l=g({avatar:"",channel:"",create_time:"",login_time:"",mobile:"",nickname:"",real_name:0,sex:0,sn:"",account:"",user_money:""}),u=g({show:!1,value:""}),j=T(),E=async()=>{const o=await I({id:w.query.id});Object.keys(l).forEach(e=>{l[e]=o[e]})},v=async(o,e)=>{H(o)||(await K({id:w.query.id,field:e,value:o}),E())},D=o=>{u.show=!0,u.value=o},h=async o=>{await L({user_id:w.query.id,...o}),u.show=!1,E()};return E(),(o,e)=>{const B=N,k=V,$=M,_=O,m=S,y=z,x=U,P=F,f=R("perms");return d(),A("div",null,[t(k,{class:"!border-none",shadow:"never"},{default:a(()=>[t(B,{content:"用户详情",onBack:e[0]||(e[0]=n=>o.$router.back())})]),_:1}),t(k,{class:"mt-4 !border-none",header:"基本资料",shadow:"never"},{default:a(()=>[t(P,{ref_key:"formRef",ref:j,class:"ls-form",model:s(l),"label-width":"120px"},{default:a(()=>[c("div",G,[c("div",J,[e[7]||(e[7]=c("div",{class:"mb-2 text-tx-regular"},"用户头像",-1)),t($,{src:s(l).avatar,size:58},null,8,["src"])]),c("div",W,[e[9]||(e[9]=c("div",{class:"text-tx-regular"},"账户余额",-1)),c("div",X,[r(" ¥"+i(s(l).user_money)+" ",1),p((d(),b(_,{type:"primary",link:"",onClick:e[1]||(e[1]=n=>D(s(l).user_money))},{default:a(()=>[...e[8]||(e[8]=[r(" 调整 ",-1)])]),_:1})),[[f,["user.user/adjustMoney"]]])])])]),t(m,{label:"用户昵称:"},{default:a(()=>[r(i(s(l).nickname),1)]),_:1}),t(m,{label:"账号:"},{default:a(()=>[r(i(s(l).account)+" ",1),p((d(),b(x,{class:"ml-[10px]",onConfirm:e[2]||(e[2]=n=>v(n,"account")),limit:32},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"真实姓名:"},{default:a(()=>[r(i(s(l).real_name||"-")+" ",1),p((d(),b(x,{class:"ml-[10px]",onConfirm:e[3]||(e[3]=n=>v(n,"real_name")),limit:32},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"性别:"},{default:a(()=>[r(i(s(l).sex)+" ",1),p((d(),b(x,{class:"ml-[10px]",type:"select",options:[{label:"未知",value:0},{label:"男",value:1},{label:"女",value:2}],onConfirm:e[4]||(e[4]=n=>v(n,"sex"))},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"联系电话:"},{default:a(()=>[r(i(s(l).mobile||"-")+" ",1),p((d(),b(x,{class:"ml-[10px]",type:"number",onConfirm:e[5]||(e[5]=n=>v(n,"mobile"))},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"注册来源:"},{default:a(()=>[r(i(s(l).channel),1)]),_:1}),t(m,{label:"注册时间:"},{default:a(()=>[r(i(s(l).create_time),1)]),_:1}),t(m,{label:"最近登录时间:"},{default:a(()=>[r(i(s(l).login_time),1)]),_:1})]),_:1},8,["model"])]),_:1}),t(Q,{show:s(u).show,"onUpdate:show":e[6]||(e[6]=n=>s(u).show=n),value:s(u).value,onConfirm:h},null,8,["show","value"])])}}});export{oe as default}; +import{o as C,Q as q,bp as R,q as d,r as A,v as t,D as a,br as N,bj as V,bd as F,u as s,s as c,a0 as M,L as r,T as i,ac as p,O as b,K as O,bb as S,aC as g,a8 as T}from"./.pnpm-CyuAWpdG.js";import{_ as U}from"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import{c as z,s as H}from"./index-Bkarz3gO.js";import{g as I,u as K,a as L}from"./consumer-BSTqFJW9.js";import{_ as Q}from"./account-adjust.vue_vue_type_script_setup_true_lang-CQST3icF.js";import"./index-CS5Wg0xx.js";const G={class:"bg-page flex py-5 mb-10 items-center"},J={class:"basis-40 flex flex-col justify-center items-center"},W={class:"basis-40 flex flex-col justify-center items-center"},X={class:"mt-2 flex items-center"},Y=C({name:"consumerDetail"}),oe=C({...Y,setup(Z){const w=q(),l=g({avatar:"",channel:"",create_time:"",login_time:"",mobile:"",nickname:"",real_name:0,sex:0,sn:"",account:"",user_money:""}),u=g({show:!1,value:""}),j=T(),E=async()=>{const o=await I({id:w.query.id});Object.keys(l).forEach(e=>{l[e]=o[e]})},v=async(o,e)=>{H(o)||(await K({id:w.query.id,field:e,value:o}),E())},D=o=>{u.show=!0,u.value=o},h=async o=>{await L({user_id:w.query.id,...o}),u.show=!1,E()};return E(),(o,e)=>{const B=N,k=V,$=M,_=O,m=S,y=z,x=U,P=F,f=R("perms");return d(),A("div",null,[t(k,{class:"!border-none",shadow:"never"},{default:a(()=>[t(B,{content:"用户详情",onBack:e[0]||(e[0]=n=>o.$router.back())})]),_:1}),t(k,{class:"mt-4 !border-none",header:"基本资料",shadow:"never"},{default:a(()=>[t(P,{ref_key:"formRef",ref:j,class:"ls-form",model:s(l),"label-width":"120px"},{default:a(()=>[c("div",G,[c("div",J,[e[7]||(e[7]=c("div",{class:"mb-2 text-tx-regular"},"用户头像",-1)),t($,{src:s(l).avatar,size:58},null,8,["src"])]),c("div",W,[e[9]||(e[9]=c("div",{class:"text-tx-regular"},"账户余额",-1)),c("div",X,[r(" ¥"+i(s(l).user_money)+" ",1),p((d(),b(_,{type:"primary",link:"",onClick:e[1]||(e[1]=n=>D(s(l).user_money))},{default:a(()=>[...e[8]||(e[8]=[r(" 调整 ",-1)])]),_:1})),[[f,["user.user/adjustMoney"]]])])])]),t(m,{label:"用户昵称:"},{default:a(()=>[r(i(s(l).nickname),1)]),_:1}),t(m,{label:"账号:"},{default:a(()=>[r(i(s(l).account)+" ",1),p((d(),b(x,{class:"ml-[10px]",onConfirm:e[2]||(e[2]=n=>v(n,"account")),limit:32},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"真实姓名:"},{default:a(()=>[r(i(s(l).real_name||"-")+" ",1),p((d(),b(x,{class:"ml-[10px]",onConfirm:e[3]||(e[3]=n=>v(n,"real_name")),limit:32},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"性别:"},{default:a(()=>[r(i(s(l).sex)+" ",1),p((d(),b(x,{class:"ml-[10px]",type:"select",options:[{label:"未知",value:0},{label:"男",value:1},{label:"女",value:2}],onConfirm:e[4]||(e[4]=n=>v(n,"sex"))},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"联系电话:"},{default:a(()=>[r(i(s(l).mobile||"-")+" ",1),p((d(),b(x,{class:"ml-[10px]",type:"number",onConfirm:e[5]||(e[5]=n=>v(n,"mobile"))},{default:a(()=>[t(_,{type:"primary",link:""},{default:a(()=>[t(y,{name:"el-icon-EditPen"})]),_:1})]),_:1})),[[f,["user.user/edit"]]])]),_:1}),t(m,{label:"注册来源:"},{default:a(()=>[r(i(s(l).channel),1)]),_:1}),t(m,{label:"注册时间:"},{default:a(()=>[r(i(s(l).create_time),1)]),_:1}),t(m,{label:"最近登录时间:"},{default:a(()=>[r(i(s(l).login_time),1)]),_:1})]),_:1},8,["model"])]),_:1}),t(Q,{show:s(u).show,"onUpdate:show":e[6]||(e[6]=n=>s(u).show=n),value:s(u).value,onConfirm:h},null,8,["show","value"])])}}});export{oe as default}; diff --git a/server/public/admin/assets/dict-C0-nzPZh.js b/server/public/admin/assets/dict-B9ij5Vr6.js similarity index 92% rename from server/public/admin/assets/dict-C0-nzPZh.js rename to server/public/admin/assets/dict-B9ij5Vr6.js index b95502e6c..5abef35d6 100644 --- a/server/public/admin/assets/dict-C0-nzPZh.js +++ b/server/public/admin/assets/dict-B9ij5Vr6.js @@ -1 +1 @@ -import{r as i}from"./index-Dxvz9lb1.js";function d(t){return i.get({url:"/setting.dict.dict_type/lists",params:t})}function n(t){return i.get({url:"/setting.dict.dict_type/all",params:t})}function c(t){return i.post({url:"/setting.dict.dict_type/add",params:t})}function r(t){return i.post({url:"/setting.dict.dict_type/edit",params:t})}function s(t){return i.post({url:"/setting.dict.dict_type/delete",params:t})}function a(t){return i.get({url:"/setting.dict.dict_data/lists",params:t},{ignoreCancelToken:!0})}function u(t){return i.post({url:"/setting.dict.dict_data/add",params:t})}function l(t){return i.post({url:"/setting.dict.dict_data/edit",params:t})}function o(t){return i.post({url:"/setting.dict.dict_data/delete",params:t})}export{l as a,u as b,a as c,n as d,o as e,d as f,r as g,c as h,s as i}; +import{r as i}from"./index-Bkarz3gO.js";function d(t){return i.get({url:"/setting.dict.dict_type/lists",params:t})}function n(t){return i.get({url:"/setting.dict.dict_type/all",params:t})}function c(t){return i.post({url:"/setting.dict.dict_type/add",params:t})}function r(t){return i.post({url:"/setting.dict.dict_type/edit",params:t})}function s(t){return i.post({url:"/setting.dict.dict_type/delete",params:t})}function a(t){return i.get({url:"/setting.dict.dict_data/lists",params:t},{ignoreCancelToken:!0})}function u(t){return i.post({url:"/setting.dict.dict_data/add",params:t})}function l(t){return i.post({url:"/setting.dict.dict_data/edit",params:t})}function o(t){return i.post({url:"/setting.dict.dict_data/delete",params:t})}export{l as a,u as b,a as c,n as d,o as e,d as f,r as g,c as h,s as i}; diff --git a/server/public/admin/assets/doctor-8vo_5fa4.js b/server/public/admin/assets/doctor-DBvYeWd3.js similarity index 95% rename from server/public/admin/assets/doctor-8vo_5fa4.js rename to server/public/admin/assets/doctor-DBvYeWd3.js index 1f60ec734..c5aae9c51 100644 --- a/server/public/admin/assets/doctor-8vo_5fa4.js +++ b/server/public/admin/assets/doctor-DBvYeWd3.js @@ -1 +1 @@ -import{r as e}from"./index-Dxvz9lb1.js";function o(t){return e.get({url:"/auth.admin/lists",params:{...t,role_id:1,exclude_disabled:1}})}function n(t){return e.get({url:"/doctor.roster/lists",params:t})}function s(t){return e.post({url:"/doctor.roster/save",params:t})}function i(t){return e.post({url:"/doctor.roster/delete",params:t})}function a(t){return e.post({url:"/doctor.roster/batchSave",params:t})}function u(t){return e.get({url:"/doctor.appointment/availableSlots",params:t})}function c(t){return e.post({url:"/doctor.appointment/create",params:t})}function p(t){return e.post({url:"/doctor.appointment/cancel",params:t})}function l(t){return e.get({url:"/doctor.appointment/lists",params:t})}function d(t){return e.post({url:"/doctor.appointment/edit",params:t})}function m(t){return e.post({url:"/doctor.appointment/batchEditChannel",params:t})}function f(t){return e.get({url:"/doctor.appointment/detail",params:t})}function g(t){return e.post({url:"/doctor.appointment/complete",params:t})}function h(t){return e.get({url:"/doctor.statistics/lists",params:t})}function S(){return e.get({url:"/dept.dept/all"})}function b(t){return e.get({url:"/doctor.statistics/deptLists",params:t})}export{l as a,m as b,d as c,S as d,b as e,o as f,u as g,s as h,i,a as j,h as k,g as l,p as m,f as n,c as o,n as r}; +import{r as e}from"./index-Bkarz3gO.js";function o(t){return e.get({url:"/auth.admin/lists",params:{...t,role_id:1,exclude_disabled:1}})}function n(t){return e.get({url:"/doctor.roster/lists",params:t})}function s(t){return e.post({url:"/doctor.roster/save",params:t})}function i(t){return e.post({url:"/doctor.roster/delete",params:t})}function a(t){return e.post({url:"/doctor.roster/batchSave",params:t})}function u(t){return e.get({url:"/doctor.appointment/availableSlots",params:t})}function c(t){return e.post({url:"/doctor.appointment/create",params:t})}function p(t){return e.post({url:"/doctor.appointment/cancel",params:t})}function l(t){return e.get({url:"/doctor.appointment/lists",params:t})}function d(t){return e.post({url:"/doctor.appointment/edit",params:t})}function m(t){return e.post({url:"/doctor.appointment/batchEditChannel",params:t})}function f(t){return e.get({url:"/doctor.appointment/detail",params:t})}function g(t){return e.post({url:"/doctor.appointment/complete",params:t})}function h(t){return e.get({url:"/doctor.statistics/lists",params:t})}function S(){return e.get({url:"/dept.dept/all"})}function b(t){return e.get({url:"/doctor.statistics/deptLists",params:t})}export{l as a,m as b,d as c,S as d,b as e,o as f,u as g,s as h,i,a as j,h as k,g as l,p as m,f as n,c as o,n as r}; diff --git a/server/public/admin/assets/edit-1rUTHce5.js b/server/public/admin/assets/edit-1rUTHce5.js new file mode 100644 index 000000000..cb9d1ac33 --- /dev/null +++ b/server/public/admin/assets/edit-1rUTHce5.js @@ -0,0 +1 @@ +import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-DjT3f1Sv.js";import"./.pnpm-CyuAWpdG.js";import"./wx_oa-C-EoclSf.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";export{o as default}; diff --git a/server/public/admin/assets/edit-B0XKivI5.js b/server/public/admin/assets/edit-B0XKivI5.js deleted file mode 100644 index d19d97bd6..000000000 --- a/server/public/admin/assets/edit-B0XKivI5.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-onWuscvD.js";import"./.pnpm-CyuAWpdG.js";import"./role-B1hWAn9n.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";export{o as default}; diff --git a/server/public/admin/assets/edit-BBEsLRrQ.js b/server/public/admin/assets/edit-BBEsLRrQ.js deleted file mode 100644 index c6a66c336..000000000 --- a/server/public/admin/assets/edit-BBEsLRrQ.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-B1vNi0Rd.js";import"./.pnpm-CyuAWpdG.js";import"./dict-C0-nzPZh.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";export{o as default}; diff --git a/server/public/admin/assets/edit-BCexivTr.js b/server/public/admin/assets/edit-BCexivTr.js new file mode 100644 index 000000000..8065d3618 --- /dev/null +++ b/server/public/admin/assets/edit-BCexivTr.js @@ -0,0 +1 @@ +import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-DQvX-3X6.js";import"./.pnpm-CyuAWpdG.js";import"./message-CaYd28kO.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";export{o as default}; diff --git a/server/public/admin/assets/edit-D46JCM5b.js b/server/public/admin/assets/edit-BIjbB1xo.js similarity index 89% rename from server/public/admin/assets/edit-D46JCM5b.js rename to server/public/admin/assets/edit-BIjbB1xo.js index db79eb58b..c6ba10927 100644 --- a/server/public/admin/assets/edit-D46JCM5b.js +++ b/server/public/admin/assets/edit-BIjbB1xo.js @@ -1 +1 @@ -import{_ as $}from"./index-9qT8_5W1.js";import{o as w,Q as j,W as z,q as m,r as V,v as l,D as s,br as A,bj as I,bd as L,u as a,s as n,bb as T,aA as G,bh as S,F as H,G as J,O as K,bi as M,J as P,bf as Q,bq as W,L as p,K as X,aC as v,a8 as Y}from"./.pnpm-CyuAWpdG.js";import{_ as Z}from"./index.vue_vue_type_style_index_0_lang-CduB--xp.js";import{_ as ee}from"./picker-BDO86vcM.js";import{g as le,h as te,i as oe,j as ae}from"./article-D_HL_wgA.js";import{u as se}from"./useDictOptions-ByJNOzqa.js";import{k as ne}from"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const re={class:"article-edit"},ie={class:"xl:flex"},de={class:"w-80"},ue={class:"w-80"},me={class:"w-80"},pe={class:"w-80"},_e={class:"xl:ml-20"},ce=w({name:"articleListsEdit"}),De=w({...ce,setup(fe){const u=j(),g=z(),t=v({id:"",title:"",image:"",cid:"",desc:"",author:"",content:"",click_virtual:0,sort:0,is_show:1,abstract:""}),{removeTab:x}=ne(),_=Y(),k=v({title:[{required:!0,message:"请输入文章标题",trigger:"blur"}],cid:[{required:!0,message:"请选择文章栏目",trigger:"blur"}]}),E=async()=>{const i=await le({id:u.query.id});Object.keys(t).forEach(e=>{t[e]=i[e]})},{optionsData:R}=se({article_cate:{api:ae}}),y=async()=>{var i;await((i=_.value)==null?void 0:i.validate()),u.query.id?await te(t):await oe(t),x(),g.back()};return u.query.id&&E(),(i,e)=>{const U=A,c=I,d=G,r=T,q=M,h=S,B=ee,f=P,b=W,C=Q,D=Z,F=L,N=X,O=$;return m(),V("div",re,[l(c,{class:"!border-none",shadow:"never"},{default:s(()=>[l(U,{content:i.$route.meta.title,onBack:e[0]||(e[0]=o=>i.$router.back())},null,8,["content"])]),_:1}),l(c,{class:"mt-4 !border-none",shadow:"never"},{default:s(()=>[l(F,{ref_key:"formRef",ref:_,class:"ls-form",model:a(t),"label-width":"85px",rules:a(k)},{default:s(()=>[n("div",ie,[n("div",null,[l(r,{label:"文章标题",prop:"title"},{default:s(()=>[n("div",de,[l(d,{modelValue:a(t).title,"onUpdate:modelValue":e[1]||(e[1]=o=>a(t).title=o),placeholder:"请输入文章标题",type:"textarea",autosize:{minRows:3,maxRows:3},maxlength:"64","show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"文章栏目",prop:"cid"},{default:s(()=>[l(h,{class:"w-80",modelValue:a(t).cid,"onUpdate:modelValue":e[2]||(e[2]=o=>a(t).cid=o),placeholder:"请选择文章栏目",clearable:""},{default:s(()=>[(m(!0),V(H,null,J(a(R).article_cate,o=>(m(),K(q,{key:o.id,label:o.name,value:o.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"文章简介",prop:"desc"},{default:s(()=>[n("div",ue,[l(d,{modelValue:a(t).desc,"onUpdate:modelValue":e[3]||(e[3]=o=>a(t).desc=o),placeholder:"请输入文章简介",type:"textarea",autosize:{minRows:3,maxRows:6},maxlength:200,"show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"摘要",prop:"abstract"},{default:s(()=>[n("div",me,[l(d,{type:"textarea",autosize:{minRows:6,maxRows:6},modelValue:a(t).abstract,"onUpdate:modelValue":e[4]||(e[4]=o=>a(t).abstract=o),maxlength:"200","show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"文章封面",prop:"image"},{default:s(()=>[n("div",null,[n("div",null,[l(B,{modelValue:a(t).image,"onUpdate:modelValue":e[5]||(e[5]=o=>a(t).image=o),limit:1},null,8,["modelValue"])]),e[11]||(e[11]=n("div",{class:"form-tips"},"建议尺寸:240*180px",-1))])]),_:1}),l(r,{label:"作者",prop:"author"},{default:s(()=>[n("div",pe,[l(d,{modelValue:a(t).author,"onUpdate:modelValue":e[6]||(e[6]=o=>a(t).author=o),placeholder:"请输入作者名称"},null,8,["modelValue"])])]),_:1}),l(r,{label:"排序",prop:"sort"},{default:s(()=>[n("div",null,[l(f,{modelValue:a(t).sort,"onUpdate:modelValue":e[7]||(e[7]=o=>a(t).sort=o),min:0,max:9999},null,8,["modelValue"]),e[12]||(e[12]=n("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),l(r,{label:"初始浏览量",prop:"click_virtual"},{default:s(()=>[n("div",null,[l(f,{modelValue:a(t).click_virtual,"onUpdate:modelValue":e[8]||(e[8]=o=>a(t).click_virtual=o),min:0},null,8,["modelValue"])])]),_:1}),l(r,{label:"文章状态",required:"",prop:"is_show"},{default:s(()=>[l(C,{modelValue:a(t).is_show,"onUpdate:modelValue":e[9]||(e[9]=o=>a(t).is_show=o)},{default:s(()=>[l(b,{value:1},{default:s(()=>[...e[13]||(e[13]=[p("显示",-1)])]),_:1}),l(b,{value:0},{default:s(()=>[...e[14]||(e[14]=[p("隐藏",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),n("div",_e,[l(r,{label:"文章内容",prop:"content"},{default:s(()=>[l(D,{modelValue:a(t).content,"onUpdate:modelValue":e[10]||(e[10]=o=>a(t).content=o),height:667,width:375},null,8,["modelValue"])]),_:1})])])]),_:1},8,["model","rules"])]),_:1}),l(O,null,{default:s(()=>[l(N,{type:"primary",onClick:y},{default:s(()=>[...e[15]||(e[15]=[p("保存",-1)])]),_:1})]),_:1})])}}});export{De as default}; +import{_ as $}from"./index-DIl3M8Wa.js";import{o as w,Q as j,W as z,q as m,r as V,v as l,D as s,br as A,bj as I,bd as L,u as a,s as n,bb as T,aA as G,bh as S,F as H,G as J,O as K,bi as M,J as P,bf as Q,bq as W,L as p,K as X,aC as v,a8 as Y}from"./.pnpm-CyuAWpdG.js";import{_ as Z}from"./index.vue_vue_type_style_index_0_lang-D6-pu4qU.js";import{_ as ee}from"./picker-BTh9eW9u.js";import{g as le,h as te,i as oe,j as ae}from"./article-Cct6St-z.js";import{u as se}from"./useDictOptions-dnxxXBSU.js";import{k as ne}from"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const re={class:"article-edit"},ie={class:"xl:flex"},de={class:"w-80"},ue={class:"w-80"},me={class:"w-80"},pe={class:"w-80"},_e={class:"xl:ml-20"},ce=w({name:"articleListsEdit"}),De=w({...ce,setup(fe){const u=j(),g=z(),t=v({id:"",title:"",image:"",cid:"",desc:"",author:"",content:"",click_virtual:0,sort:0,is_show:1,abstract:""}),{removeTab:x}=ne(),_=Y(),k=v({title:[{required:!0,message:"请输入文章标题",trigger:"blur"}],cid:[{required:!0,message:"请选择文章栏目",trigger:"blur"}]}),E=async()=>{const i=await le({id:u.query.id});Object.keys(t).forEach(e=>{t[e]=i[e]})},{optionsData:R}=se({article_cate:{api:ae}}),y=async()=>{var i;await((i=_.value)==null?void 0:i.validate()),u.query.id?await te(t):await oe(t),x(),g.back()};return u.query.id&&E(),(i,e)=>{const U=A,c=I,d=G,r=T,q=M,h=S,B=ee,f=P,b=W,C=Q,D=Z,F=L,N=X,O=$;return m(),V("div",re,[l(c,{class:"!border-none",shadow:"never"},{default:s(()=>[l(U,{content:i.$route.meta.title,onBack:e[0]||(e[0]=o=>i.$router.back())},null,8,["content"])]),_:1}),l(c,{class:"mt-4 !border-none",shadow:"never"},{default:s(()=>[l(F,{ref_key:"formRef",ref:_,class:"ls-form",model:a(t),"label-width":"85px",rules:a(k)},{default:s(()=>[n("div",ie,[n("div",null,[l(r,{label:"文章标题",prop:"title"},{default:s(()=>[n("div",de,[l(d,{modelValue:a(t).title,"onUpdate:modelValue":e[1]||(e[1]=o=>a(t).title=o),placeholder:"请输入文章标题",type:"textarea",autosize:{minRows:3,maxRows:3},maxlength:"64","show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"文章栏目",prop:"cid"},{default:s(()=>[l(h,{class:"w-80",modelValue:a(t).cid,"onUpdate:modelValue":e[2]||(e[2]=o=>a(t).cid=o),placeholder:"请选择文章栏目",clearable:""},{default:s(()=>[(m(!0),V(H,null,J(a(R).article_cate,o=>(m(),K(q,{key:o.id,label:o.name,value:o.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"文章简介",prop:"desc"},{default:s(()=>[n("div",ue,[l(d,{modelValue:a(t).desc,"onUpdate:modelValue":e[3]||(e[3]=o=>a(t).desc=o),placeholder:"请输入文章简介",type:"textarea",autosize:{minRows:3,maxRows:6},maxlength:200,"show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"摘要",prop:"abstract"},{default:s(()=>[n("div",me,[l(d,{type:"textarea",autosize:{minRows:6,maxRows:6},modelValue:a(t).abstract,"onUpdate:modelValue":e[4]||(e[4]=o=>a(t).abstract=o),maxlength:"200","show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"文章封面",prop:"image"},{default:s(()=>[n("div",null,[n("div",null,[l(B,{modelValue:a(t).image,"onUpdate:modelValue":e[5]||(e[5]=o=>a(t).image=o),limit:1},null,8,["modelValue"])]),e[11]||(e[11]=n("div",{class:"form-tips"},"建议尺寸:240*180px",-1))])]),_:1}),l(r,{label:"作者",prop:"author"},{default:s(()=>[n("div",pe,[l(d,{modelValue:a(t).author,"onUpdate:modelValue":e[6]||(e[6]=o=>a(t).author=o),placeholder:"请输入作者名称"},null,8,["modelValue"])])]),_:1}),l(r,{label:"排序",prop:"sort"},{default:s(()=>[n("div",null,[l(f,{modelValue:a(t).sort,"onUpdate:modelValue":e[7]||(e[7]=o=>a(t).sort=o),min:0,max:9999},null,8,["modelValue"]),e[12]||(e[12]=n("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),l(r,{label:"初始浏览量",prop:"click_virtual"},{default:s(()=>[n("div",null,[l(f,{modelValue:a(t).click_virtual,"onUpdate:modelValue":e[8]||(e[8]=o=>a(t).click_virtual=o),min:0},null,8,["modelValue"])])]),_:1}),l(r,{label:"文章状态",required:"",prop:"is_show"},{default:s(()=>[l(C,{modelValue:a(t).is_show,"onUpdate:modelValue":e[9]||(e[9]=o=>a(t).is_show=o)},{default:s(()=>[l(b,{value:1},{default:s(()=>[...e[13]||(e[13]=[p("显示",-1)])]),_:1}),l(b,{value:0},{default:s(()=>[...e[14]||(e[14]=[p("隐藏",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),n("div",_e,[l(r,{label:"文章内容",prop:"content"},{default:s(()=>[l(D,{modelValue:a(t).content,"onUpdate:modelValue":e[10]||(e[10]=o=>a(t).content=o),height:667,width:375},null,8,["modelValue"])]),_:1})])])]),_:1},8,["model","rules"])]),_:1}),l(O,null,{default:s(()=>[l(N,{type:"primary",onClick:y},{default:s(()=>[...e[15]||(e[15]=[p("保存",-1)])]),_:1})]),_:1})])}}});export{De as default}; diff --git a/server/public/admin/assets/edit-eKqjns4J.js b/server/public/admin/assets/edit-BLDNFAUG.js similarity index 95% rename from server/public/admin/assets/edit-eKqjns4J.js rename to server/public/admin/assets/edit-BLDNFAUG.js index 6479708ed..2e14d6f57 100644 --- a/server/public/admin/assets/edit-eKqjns4J.js +++ b/server/public/admin/assets/edit-BLDNFAUG.js @@ -1 +1 @@ -import{o as H,q as y,O as z,B as G,u as l,C as J,D as i,ac as O,r as V,v as o,bd as $,bb as j,bq as Q,L as u,T as W,aA as X,s as n,F as b,bf as Y,P as k,J as Z,K as h,bn as ee,M as m,p as le,e as oe}from"./.pnpm-CyuAWpdG.js";import{_ as te}from"./picker-BDO86vcM.js";import{g as ae,s as ie}from"./pay-Ia2pwkX0.js";import{u as ne}from"./useLockFn-d8ytjraO.js";import{u as se}from"./getExposeType-BkPR_d5H.js";import{_ as de}from"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const re={class:"h-full flex flex-col","element-loading-text":"加载中...","element-loading-background":"var(--el-bg-color)"},pe={class:"flex-1"},ue={class:"flex-1"},me={class:"flex-1"},fe=H({__name:"edit",emits:["refresh"],setup(_e,{expose:x,emit:w}){const f=m(!1),v=se(),U=m(),C=m("profile"),I=m(!1),c=m(!0),_=le(()=>{switch(t.value.pay_way){case 1:return"余额支付";case 2:return"微信支付";case 3:return"支付宝支付";default:return""}}),t=m({id:"",pay_way:0,name:"",icon:"",sort:0,remark:"",domain:"",config:{interface_version:"",merchant_type:"",mch_id:"",pay_sign_key:"",apiclient_cert:"",apiclient_key:"",mode:"",app_id:"",private_key:"",ali_public_key:""}}),E={name:[{required:!0,message:"请输入显示名称"}],"config.mch_id":[{required:!0,message:"请输入微信支付商户号"}],"config.pay_sign_key":[{required:!0,message:"请输入微信支付商户API密钥"}],"config.apiclient_cert":[{required:!0,message:"请输入微信支付证书"}],"config.apiclient_key":[{required:!0,message:"请输入微信支付证书密钥"}],"config.app_id":[{required:!0,message:"请输入支付宝应用ID"}],"config.private_key":[{required:!0,message:"请输入支付宝应用私钥"}],"config.ali_public_key":[{required:!0,message:"请输入支付宝公钥"}]},D=w,q=(d,e,p)=>{c.value=!0,C.value=p||"profile",I.value=e||!1,P(d),U.value=d,f.value=!0},P=async d=>{const e=await ae({id:d});e.config||(e.config=t.value.config),c.value=!1,t.value=e},B=d=>{oe.confirm("修改还未保存,确认退出编辑吗?").then(()=>{d()}).catch(()=>{})},F=()=>{var d;(d=v.value)==null||d.resetFields()},R=async()=>{var d;await((d=v.value)==null?void 0:d.validate()),await ie(t.value),f.value=!1,D("refresh")},{isLock:A,lockFn:N}=ne(R);return x({openHandle:q}),(d,e)=>{const p=Q,s=j,r=X,L=te,g=Y,S=Z,K=h,M=G,T=ee;return y(),z(M,{modelValue:l(f),"onUpdate:modelValue":e[14]||(e[14]=a=>J(f)?f.value=a:null),"destroy-on-close":"",title:`${l(_)}配置`,direction:"rtl",size:"50%",onClose:F,"before-close":B},{default:i(()=>[O((y(),V("div",re,[o(l($),{ref_key:"formRef",ref:v,model:l(t),"label-width":"9rem",rules:E},{default:i(()=>[o(s,{label:"支付方式"},{default:i(()=>[o(p,{value:l(_),"model-value":l(_)},{default:i(()=>[u(W(l(_)),1)]),_:1},8,["value","model-value"])]),_:1}),o(s,{label:"显示名称",prop:"name"},{default:i(()=>[o(r,{modelValue:l(t).name,"onUpdate:modelValue":e[0]||(e[0]=a=>l(t).name=a),placeholder:"请输入显示名称",style:{"max-width":"250px"}},null,8,["modelValue"])]),_:1}),o(s,{label:"图标",prop:"image"},{default:i(()=>[n("div",null,[o(L,{limit:1,disabled:!1,modelValue:l(t).icon,"onUpdate:modelValue":e[1]||(e[1]=a=>l(t).icon=a)},null,8,["modelValue"]),e[15]||(e[15]=n("div",{class:"form-tips"},"建议尺寸:200*200px",-1))])]),_:1}),l(t).pay_way==2?(y(),V(b,{key:0},[o(s,{prop:"config.interface_version",label:"微信支付接口版本"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.interface_version,"onUpdate:modelValue":e[2]||(e[2]=a=>l(t).config.interface_version=a)},{default:i(()=>[o(p,{value:"v3"},{default:i(()=>[...e[16]||(e[16]=[u("V3",-1)])]),_:1})]),_:1},8,["modelValue"]),e[17]||(e[17]=n("div",{class:"form-tips"},"暂时只支持V3版本",-1))])]),_:1}),o(s,{label:"商户类型",prop:"config.merchant_type"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.merchant_type,"onUpdate:modelValue":e[3]||(e[3]=a=>l(t).config.merchant_type=a)},{default:i(()=>[o(p,{value:"ordinary_merchant"},{default:i(()=>[...e[18]||(e[18]=[u("普通商户",-1)])]),_:1})]),_:1},8,["modelValue"]),e[19]||(e[19]=n("div",{class:"form-tips"}," 暂时只支持普通商户类型,服务商户类型模式暂不支持 ",-1))])]),_:1}),o(s,{label:"微信支付商户号",prop:"config.mch_id"},{default:i(()=>[n("div",null,[o(r,{modelValue:l(t).config.mch_id,"onUpdate:modelValue":e[4]||(e[4]=a=>l(t).config.mch_id=a),placeholder:"请输入微信支付商户号",style:{"max-width":"250px"}},null,8,["modelValue"]),e[20]||(e[20]=n("div",{class:"form-tips"},"微信支付商户号(MCHID)",-1))])]),_:1}),o(s,{label:"商户API密钥",prop:"config.pay_sign_key"},{default:i(()=>[n("div",null,[o(r,{modelValue:l(t).config.pay_sign_key,"onUpdate:modelValue":e[5]||(e[5]=a=>l(t).config.pay_sign_key=a),placeholder:"请输入微信支付商户API密钥",style:{"max-width":"250px"}},null,8,["modelValue"]),e[21]||(e[21]=n("div",{class:"form-tips"},"微信支付商户API密钥(paySignKey)",-1))])]),_:1}),o(s,{label:"微信支付证书",prop:"config.apiclient_cert"},{default:i(()=>[n("div",null,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.apiclient_cert,"onUpdate:modelValue":e[6]||(e[6]=a=>l(t).config.apiclient_cert=a),placeholder:"请输入微信支付证书",style:{"max-width":"400px"}},null,8,["modelValue"]),e[22]||(e[22]=n("div",{class:"form-tips"}," 微信支付证书(apiclient_cert.pem),前往微信商家平台生成并黏贴至此处 ",-1))])]),_:1}),o(s,{label:"微信支付证书密钥",prop:"config.apiclient_key"},{default:i(()=>[n("div",null,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.apiclient_key,"onUpdate:modelValue":e[7]||(e[7]=a=>l(t).config.apiclient_key=a),placeholder:"请输入微信支付证书密钥",style:{"max-width":"400px"}},null,8,["modelValue"]),e[23]||(e[23]=n("div",{class:"form-tips"}," 微信支付证书密钥(apiclient_key.pem),前往微信商家平台生成并黏贴至此处 ",-1))])]),_:1}),o(s,{label:"支付授权目录"},{default:i(()=>[...e[24]||(e[24]=[n("div",null,[n("div",null,[n("span",{class:"mr-[20px]"},"https://前台手机域名地址/")])],-1)])]),_:1})],64)):k("",!0),l(t).pay_way==3?(y(),V(b,{key:1},[o(s,{label:"模式",prop:"config.mode"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.mode,"onUpdate:modelValue":e[8]||(e[8]=a=>l(t).config.mode=a)},{default:i(()=>[o(p,{value:"normal_mode"},{default:i(()=>[...e[25]||(e[25]=[u("普通模式",-1)])]),_:1})]),_:1},8,["modelValue"]),e[26]||(e[26]=n("div",{class:"form-tips"},"暂时仅支持支付宝普通模式",-1))])]),_:1}),o(s,{label:"商户类型",prop:"config.merchant_type"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.merchant_type,"onUpdate:modelValue":e[9]||(e[9]=a=>l(t).config.merchant_type=a)},{default:i(()=>[o(p,{value:"ordinary_merchant"},{default:i(()=>[...e[27]||(e[27]=[u("普通商户",-1)])]),_:1})]),_:1},8,["modelValue"]),e[28]||(e[28]=n("div",{class:"form-tips"}," 暂时只支持普通商户类型,服务商户类型模式暂不支持 ",-1))])]),_:1}),o(s,{label:"应用ID",prop:"config.app_id"},{default:i(()=>[n("div",pe,[o(r,{modelValue:l(t).config.app_id,"onUpdate:modelValue":e[10]||(e[10]=a=>l(t).config.app_id=a),placeholder:"请输入支付宝应用ID",style:{"max-width":"250px"}},null,8,["modelValue"]),e[29]||(e[29]=n("div",{class:"form-tips"},"支付宝应用APP_ID",-1))])]),_:1}),o(s,{label:"应用私钥",prop:"config.private_key"},{default:i(()=>[n("div",ue,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.private_key,"onUpdate:modelValue":e[11]||(e[11]=a=>l(t).config.private_key=a),placeholder:"请输入支付宝应用私钥",style:{"max-width":"400px"}},null,8,["modelValue"]),e[30]||(e[30]=n("div",{class:"form-tips"},"支付宝应用私钥(private_key)",-1))])]),_:1}),o(s,{label:"支付宝公钥",prop:"config.ali_public_key"},{default:i(()=>[n("div",me,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.ali_public_key,"onUpdate:modelValue":e[12]||(e[12]=a=>l(t).config.ali_public_key=a),placeholder:"请输入支付宝公钥",style:{"max-width":"400px"}},null,8,["modelValue"]),e[31]||(e[31]=n("div",{class:"form-tips"},"支付宝公钥(alipayCertPublicKey)",-1))])]),_:1})],64)):k("",!0),o(s,{label:"排序",prop:"sort"},{default:i(()=>[n("div",null,[o(S,{modelValue:l(t).sort,"onUpdate:modelValue":e[13]||(e[13]=a=>l(t).sort=a),min:0,max:9999},null,8,["modelValue"]),e[32]||(e[32]=n("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),o(s,null,{default:i(()=>[o(K,{type:"primary",loading:l(A),onClick:l(N)},{default:i(()=>[...e[33]||(e[33]=[u("保存",-1)])]),_:1},8,["loading","onClick"])]),_:1})]),_:1},8,["model"])])),[[T,l(c)]])]),_:1},8,["modelValue","title"])}}}),qe=de(fe,[["__scopeId","data-v-221f14e8"]]);export{qe as default}; +import{o as H,q as y,O as z,B as G,u as l,C as J,D as i,ac as O,r as V,v as o,bd as $,bb as j,bq as Q,L as u,T as W,aA as X,s as n,F as b,bf as Y,P as k,J as Z,K as h,bn as ee,M as m,p as le,e as oe}from"./.pnpm-CyuAWpdG.js";import{_ as te}from"./picker-BTh9eW9u.js";import{g as ae,s as ie}from"./pay-BmHqMA5y.js";import{u as ne}from"./useLockFn-d8ytjraO.js";import{u as se}from"./getExposeType-BkPR_d5H.js";import{_ as de}from"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const re={class:"h-full flex flex-col","element-loading-text":"加载中...","element-loading-background":"var(--el-bg-color)"},pe={class:"flex-1"},ue={class:"flex-1"},me={class:"flex-1"},fe=H({__name:"edit",emits:["refresh"],setup(_e,{expose:x,emit:w}){const f=m(!1),v=se(),U=m(),C=m("profile"),I=m(!1),c=m(!0),_=le(()=>{switch(t.value.pay_way){case 1:return"余额支付";case 2:return"微信支付";case 3:return"支付宝支付";default:return""}}),t=m({id:"",pay_way:0,name:"",icon:"",sort:0,remark:"",domain:"",config:{interface_version:"",merchant_type:"",mch_id:"",pay_sign_key:"",apiclient_cert:"",apiclient_key:"",mode:"",app_id:"",private_key:"",ali_public_key:""}}),E={name:[{required:!0,message:"请输入显示名称"}],"config.mch_id":[{required:!0,message:"请输入微信支付商户号"}],"config.pay_sign_key":[{required:!0,message:"请输入微信支付商户API密钥"}],"config.apiclient_cert":[{required:!0,message:"请输入微信支付证书"}],"config.apiclient_key":[{required:!0,message:"请输入微信支付证书密钥"}],"config.app_id":[{required:!0,message:"请输入支付宝应用ID"}],"config.private_key":[{required:!0,message:"请输入支付宝应用私钥"}],"config.ali_public_key":[{required:!0,message:"请输入支付宝公钥"}]},D=w,q=(d,e,p)=>{c.value=!0,C.value=p||"profile",I.value=e||!1,P(d),U.value=d,f.value=!0},P=async d=>{const e=await ae({id:d});e.config||(e.config=t.value.config),c.value=!1,t.value=e},B=d=>{oe.confirm("修改还未保存,确认退出编辑吗?").then(()=>{d()}).catch(()=>{})},F=()=>{var d;(d=v.value)==null||d.resetFields()},R=async()=>{var d;await((d=v.value)==null?void 0:d.validate()),await ie(t.value),f.value=!1,D("refresh")},{isLock:A,lockFn:N}=ne(R);return x({openHandle:q}),(d,e)=>{const p=Q,s=j,r=X,L=te,g=Y,S=Z,K=h,M=G,T=ee;return y(),z(M,{modelValue:l(f),"onUpdate:modelValue":e[14]||(e[14]=a=>J(f)?f.value=a:null),"destroy-on-close":"",title:`${l(_)}配置`,direction:"rtl",size:"50%",onClose:F,"before-close":B},{default:i(()=>[O((y(),V("div",re,[o(l($),{ref_key:"formRef",ref:v,model:l(t),"label-width":"9rem",rules:E},{default:i(()=>[o(s,{label:"支付方式"},{default:i(()=>[o(p,{value:l(_),"model-value":l(_)},{default:i(()=>[u(W(l(_)),1)]),_:1},8,["value","model-value"])]),_:1}),o(s,{label:"显示名称",prop:"name"},{default:i(()=>[o(r,{modelValue:l(t).name,"onUpdate:modelValue":e[0]||(e[0]=a=>l(t).name=a),placeholder:"请输入显示名称",style:{"max-width":"250px"}},null,8,["modelValue"])]),_:1}),o(s,{label:"图标",prop:"image"},{default:i(()=>[n("div",null,[o(L,{limit:1,disabled:!1,modelValue:l(t).icon,"onUpdate:modelValue":e[1]||(e[1]=a=>l(t).icon=a)},null,8,["modelValue"]),e[15]||(e[15]=n("div",{class:"form-tips"},"建议尺寸:200*200px",-1))])]),_:1}),l(t).pay_way==2?(y(),V(b,{key:0},[o(s,{prop:"config.interface_version",label:"微信支付接口版本"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.interface_version,"onUpdate:modelValue":e[2]||(e[2]=a=>l(t).config.interface_version=a)},{default:i(()=>[o(p,{value:"v3"},{default:i(()=>[...e[16]||(e[16]=[u("V3",-1)])]),_:1})]),_:1},8,["modelValue"]),e[17]||(e[17]=n("div",{class:"form-tips"},"暂时只支持V3版本",-1))])]),_:1}),o(s,{label:"商户类型",prop:"config.merchant_type"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.merchant_type,"onUpdate:modelValue":e[3]||(e[3]=a=>l(t).config.merchant_type=a)},{default:i(()=>[o(p,{value:"ordinary_merchant"},{default:i(()=>[...e[18]||(e[18]=[u("普通商户",-1)])]),_:1})]),_:1},8,["modelValue"]),e[19]||(e[19]=n("div",{class:"form-tips"}," 暂时只支持普通商户类型,服务商户类型模式暂不支持 ",-1))])]),_:1}),o(s,{label:"微信支付商户号",prop:"config.mch_id"},{default:i(()=>[n("div",null,[o(r,{modelValue:l(t).config.mch_id,"onUpdate:modelValue":e[4]||(e[4]=a=>l(t).config.mch_id=a),placeholder:"请输入微信支付商户号",style:{"max-width":"250px"}},null,8,["modelValue"]),e[20]||(e[20]=n("div",{class:"form-tips"},"微信支付商户号(MCHID)",-1))])]),_:1}),o(s,{label:"商户API密钥",prop:"config.pay_sign_key"},{default:i(()=>[n("div",null,[o(r,{modelValue:l(t).config.pay_sign_key,"onUpdate:modelValue":e[5]||(e[5]=a=>l(t).config.pay_sign_key=a),placeholder:"请输入微信支付商户API密钥",style:{"max-width":"250px"}},null,8,["modelValue"]),e[21]||(e[21]=n("div",{class:"form-tips"},"微信支付商户API密钥(paySignKey)",-1))])]),_:1}),o(s,{label:"微信支付证书",prop:"config.apiclient_cert"},{default:i(()=>[n("div",null,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.apiclient_cert,"onUpdate:modelValue":e[6]||(e[6]=a=>l(t).config.apiclient_cert=a),placeholder:"请输入微信支付证书",style:{"max-width":"400px"}},null,8,["modelValue"]),e[22]||(e[22]=n("div",{class:"form-tips"}," 微信支付证书(apiclient_cert.pem),前往微信商家平台生成并黏贴至此处 ",-1))])]),_:1}),o(s,{label:"微信支付证书密钥",prop:"config.apiclient_key"},{default:i(()=>[n("div",null,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.apiclient_key,"onUpdate:modelValue":e[7]||(e[7]=a=>l(t).config.apiclient_key=a),placeholder:"请输入微信支付证书密钥",style:{"max-width":"400px"}},null,8,["modelValue"]),e[23]||(e[23]=n("div",{class:"form-tips"}," 微信支付证书密钥(apiclient_key.pem),前往微信商家平台生成并黏贴至此处 ",-1))])]),_:1}),o(s,{label:"支付授权目录"},{default:i(()=>[...e[24]||(e[24]=[n("div",null,[n("div",null,[n("span",{class:"mr-[20px]"},"https://前台手机域名地址/")])],-1)])]),_:1})],64)):k("",!0),l(t).pay_way==3?(y(),V(b,{key:1},[o(s,{label:"模式",prop:"config.mode"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.mode,"onUpdate:modelValue":e[8]||(e[8]=a=>l(t).config.mode=a)},{default:i(()=>[o(p,{value:"normal_mode"},{default:i(()=>[...e[25]||(e[25]=[u("普通模式",-1)])]),_:1})]),_:1},8,["modelValue"]),e[26]||(e[26]=n("div",{class:"form-tips"},"暂时仅支持支付宝普通模式",-1))])]),_:1}),o(s,{label:"商户类型",prop:"config.merchant_type"},{default:i(()=>[n("div",null,[o(g,{modelValue:l(t).config.merchant_type,"onUpdate:modelValue":e[9]||(e[9]=a=>l(t).config.merchant_type=a)},{default:i(()=>[o(p,{value:"ordinary_merchant"},{default:i(()=>[...e[27]||(e[27]=[u("普通商户",-1)])]),_:1})]),_:1},8,["modelValue"]),e[28]||(e[28]=n("div",{class:"form-tips"}," 暂时只支持普通商户类型,服务商户类型模式暂不支持 ",-1))])]),_:1}),o(s,{label:"应用ID",prop:"config.app_id"},{default:i(()=>[n("div",pe,[o(r,{modelValue:l(t).config.app_id,"onUpdate:modelValue":e[10]||(e[10]=a=>l(t).config.app_id=a),placeholder:"请输入支付宝应用ID",style:{"max-width":"250px"}},null,8,["modelValue"]),e[29]||(e[29]=n("div",{class:"form-tips"},"支付宝应用APP_ID",-1))])]),_:1}),o(s,{label:"应用私钥",prop:"config.private_key"},{default:i(()=>[n("div",ue,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.private_key,"onUpdate:modelValue":e[11]||(e[11]=a=>l(t).config.private_key=a),placeholder:"请输入支付宝应用私钥",style:{"max-width":"400px"}},null,8,["modelValue"]),e[30]||(e[30]=n("div",{class:"form-tips"},"支付宝应用私钥(private_key)",-1))])]),_:1}),o(s,{label:"支付宝公钥",prop:"config.ali_public_key"},{default:i(()=>[n("div",me,[o(r,{type:"textarea",rows:3,modelValue:l(t).config.ali_public_key,"onUpdate:modelValue":e[12]||(e[12]=a=>l(t).config.ali_public_key=a),placeholder:"请输入支付宝公钥",style:{"max-width":"400px"}},null,8,["modelValue"]),e[31]||(e[31]=n("div",{class:"form-tips"},"支付宝公钥(alipayCertPublicKey)",-1))])]),_:1})],64)):k("",!0),o(s,{label:"排序",prop:"sort"},{default:i(()=>[n("div",null,[o(S,{modelValue:l(t).sort,"onUpdate:modelValue":e[13]||(e[13]=a=>l(t).sort=a),min:0,max:9999},null,8,["modelValue"]),e[32]||(e[32]=n("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),o(s,null,{default:i(()=>[o(K,{type:"primary",loading:l(A),onClick:l(N)},{default:i(()=>[...e[33]||(e[33]=[u("保存",-1)])]),_:1},8,["loading","onClick"])]),_:1})]),_:1},8,["model"])])),[[T,l(c)]])]),_:1},8,["modelValue","title"])}}}),qe=de(fe,[["__scopeId","data-v-221f14e8"]]);export{qe as default}; diff --git a/server/public/admin/assets/edit-C3BLD59B.js b/server/public/admin/assets/edit-Bl3F_If2.js similarity index 95% rename from server/public/admin/assets/edit-C3BLD59B.js rename to server/public/admin/assets/edit-Bl3F_If2.js index df5b2aa59..e948b72d6 100644 --- a/server/public/admin/assets/edit-C3BLD59B.js +++ b/server/public/admin/assets/edit-Bl3F_If2.js @@ -1 +1 @@ -import{o as X,q as g,r as y,v as o,D as d,bd as Y,u as a,bE as Z,L as p,bb as h,aA as ee,s as i,bf as le,bq as ae,J as oe,bL as te,bh as de,F as B,G as O,O as S,bi as ne,I as re,T as c,K as se,C as ie,B as ue,a8 as pe,M as V,p as me,aC as F}from"./.pnpm-CyuAWpdG.js";import{_ as fe}from"./picker-BDO86vcM.js";import{b as _e,d as be,e as ge}from"./admin-7zsFFzhs.js";import{d as ce}from"./department-DToZNvdH.js";import{j as Ve}from"./post-B9rSvSIv.js";import{j as ve,n as we,_ as ye}from"./index-Dxvz9lb1.js";import{u as xe}from"./useDictOptions-ByJNOzqa.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const Ue={class:"edit-drawer"},Ee={class:"w-full"},je={class:"ml-2 text-gray-500"},qe={class:"ml-2 text-gray-500"},De={class:"ml-2 text-gray-500"},ke={class:"ml-2 text-gray-500"},Ce={class:"flex justify-end"},Re=X({__name:"edit",emits:["success","close"],setup(Ae,{expose:I,emit:N}){function T(r){if(r.status!==1)return!0;const e=r.children;return Array.isArray(e)&&e.length>0}const x=N,U=pe(),m=V(!1),f=V("add"),v=V(!1),E=V([]),L=async()=>{const r=await we({type:"department"});E.value=(r==null?void 0:r.department)||[]},G=me(()=>f.value=="edit"?"编辑医生":"新增医生"),l=F({id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[1],dept_id:[],jobs_id:[],avatar:"",title:"",license_no:"",qualification_images:"",enable_image_consult:1,enable_video_consult:1,enable_charge:0,department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1}),{optionsData:j}=xe({jobs:{api:Ve},dept:{api:ce,params:{apply_data_scope:1}}}),w=(r,e,s)=>{l.password&&(e||s(new Error("请再次输入密码")),e!==l.password&&s(new Error("两次输入密码不一致!"))),s()},_=F({account:[{required:!0,message:"请输入账号",trigger:["blur"]}],name:[{required:!0,message:"请输入姓名",trigger:["blur"]}],gender:[{required:!0,message:"请选择性别",trigger:["change"]}],dept_id:[{required:!0,type:"array",min:1,message:"请选择归属部门",trigger:["change"]}],phone:[{validator:(r,e,s)=>{e&&!/^1[3-9]\d{9}$/.test(e)?s(new Error("请输入正确的手机号")):s()},trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:["blur"]}],password_confirm:[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:w,trigger:"blur"}]}),z=async()=>{var r;try{await((r=U.value)==null?void 0:r.validate()),v.value=!0,f.value=="edit"?await _e(l):await be(l),ve.msgSuccess(f.value=="edit"?"编辑成功":"新增成功"),m.value=!1,x("success")}catch(e){console.error("提交失败:",e)}finally{v.value=!1}},J=(r="add")=>{f.value=r,m.value=!0,L(),r==="add"&&(Object.assign(l,{id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[1],dept_id:[],jobs_id:[],avatar:"",title:"",license_no:"",qualification_images:"",enable_image_consult:1,enable_video_consult:1,enable_charge:0,department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1}),_.password=[{required:!0,message:"请输入密码",trigger:["blur"]}],_.password_confirm=[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:w,trigger:"blur"}])},K=async r=>{_.password=[],_.password_confirm=[{validator:w,trigger:"blur"}];const e=await ge({id:r.id});for(const s in l)e[s]!=null&&e[s]!=null&&(l[s]=e[s]);l.role_id.includes(1)||l.role_id.push(1)},q=()=>{m.value=!1,x("close")};return I({open:J,setFormData:K}),(r,e)=>{const s=Z,u=ee,n=h,D=fe,k=ae,M=le,P=oe,$=te,C=ne,R=de,b=re,H=Y,A=se,Q=ue;return g(),y("div",Ue,[o(Q,{modelValue:a(m),"onUpdate:modelValue":e[23]||(e[23]=t=>ie(m)?m.value=t:null),title:a(G),direction:"rtl",size:"780px","before-close":q},{footer:d(()=>[i("div",Ce,[o(A,{onClick:q},{default:d(()=>[...e[35]||(e[35]=[p("取消",-1)])]),_:1}),o(A,{type:"primary",onClick:z,loading:a(v)},{default:d(()=>[...e[36]||(e[36]=[p("确定",-1)])]),_:1},8,["loading"])])]),default:d(()=>[o(H,{ref_key:"formRef",ref:U,model:a(l),"label-width":"100px",rules:a(_)},{default:d(()=>[o(s,{"content-position":"left"},{default:d(()=>[...e[24]||(e[24]=[p("基本信息",-1)])]),_:1}),o(n,{label:"账号",prop:"account"},{default:d(()=>[o(u,{modelValue:a(l).account,"onUpdate:modelValue":e[0]||(e[0]=t=>a(l).account=t),placeholder:"请输入账号",clearable:""},null,8,["modelValue"])]),_:1}),o(n,{label:"头像"},{default:d(()=>[i("div",null,[i("div",null,[o(D,{modelValue:a(l).avatar,"onUpdate:modelValue":e[1]||(e[1]=t=>a(l).avatar=t),limit:1},null,8,["modelValue"])]),e[25]||(e[25]=i("div",{class:"form-tips"},"建议尺寸:100*100px,支持jpg,jpeg,png格式",-1))])]),_:1}),o(n,{label:"姓名",prop:"name"},{default:d(()=>[o(u,{modelValue:a(l).name,"onUpdate:modelValue":e[2]||(e[2]=t=>a(l).name=t),placeholder:"请输入姓名",clearable:""},null,8,["modelValue"])]),_:1}),o(n,{label:"性别",prop:"gender"},{default:d(()=>[o(M,{modelValue:a(l).gender,"onUpdate:modelValue":e[3]||(e[3]=t=>a(l).gender=t)},{default:d(()=>[o(k,{label:1},{default:d(()=>[...e[26]||(e[26]=[p("男",-1)])]),_:1}),o(k,{label:2},{default:d(()=>[...e[27]||(e[27]=[p("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o(n,{label:"年龄",prop:"age"},{default:d(()=>[o(P,{modelValue:a(l).age,"onUpdate:modelValue":e[4]||(e[4]=t=>a(l).age=t),min:18,max:100,placeholder:"请输入年龄"},null,8,["modelValue"])]),_:1}),o(n,{label:"手机号",prop:"phone"},{default:d(()=>[o(u,{modelValue:a(l).phone,"onUpdate:modelValue":e[5]||(e[5]=t=>a(l).phone=t),placeholder:"请输入手机号",clearable:""},null,8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:d(()=>[...e[28]||(e[28]=[p("组织信息",-1)])]),_:1}),o(n,{label:"归属部门",prop:"dept_id"},{default:d(()=>[i("div",Ee,[o($,{class:"flex-1 w-full",modelValue:a(l).dept_id,"onUpdate:modelValue":e[6]||(e[6]=t=>a(l).dept_id=t),data:a(j).dept,clearable:"",multiple:"","node-key":"id",props:{label:"name",disabled:T},"check-strictly":"","default-expand-all":!0,placeholder:"请选择末级归属部门"},null,8,["modelValue","data","props"]),e[29]||(e[29]=i("div",{class:"form-tips"},"仅可选末级部门(含下级的父部门不可选),与数据权限范围一致。",-1))])]),_:1}),o(n,{label:"岗位",prop:"jobs_id"},{default:d(()=>[o(R,{class:"flex-1",modelValue:a(l).jobs_id,"onUpdate:modelValue":e[7]||(e[7]=t=>a(l).jobs_id=t),clearable:"",multiple:"",placeholder:"请选择岗位"},{default:d(()=>[(g(!0),y(B,null,O(a(j).jobs,(t,W)=>(g(),S(C,{key:W,label:t.name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:d(()=>[...e[30]||(e[30]=[p("专业信息",-1)])]),_:1}),o(n,{label:"职称",prop:"title"},{default:d(()=>[o(u,{modelValue:a(l).title,"onUpdate:modelValue":e[8]||(e[8]=t=>a(l).title=t),placeholder:"如:主任医师、副主任医师",clearable:""},null,8,["modelValue"])]),_:1}),o(n,{label:"执业证书编号",prop:"license_no"},{default:d(()=>[o(u,{modelValue:a(l).license_no,"onUpdate:modelValue":e[9]||(e[9]=t=>a(l).license_no=t),placeholder:"请输入执业证书编号",clearable:""},null,8,["modelValue"])]),_:1}),o(n,{label:"资质图片"},{default:d(()=>[i("div",null,[i("div",null,[o(D,{modelValue:a(l).qualification_images,"onUpdate:modelValue":e[10]||(e[10]=t=>a(l).qualification_images=t),limit:9},null,8,["modelValue"])]),e[31]||(e[31]=i("div",{class:"form-tips"},"上传医生资质证书、荣誉证书等图片,最多9张,建议尺寸:800*600px",-1))])]),_:1}),o(n,{label:"图文问诊"},{default:d(()=>[o(b,{modelValue:a(l).enable_image_consult,"onUpdate:modelValue":e[11]||(e[11]=t=>a(l).enable_image_consult=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),i("span",je,c(a(l).enable_image_consult===1?"已开启":"已关闭"),1)]),_:1}),o(n,{label:"视频问诊"},{default:d(()=>[o(b,{modelValue:a(l).enable_video_consult,"onUpdate:modelValue":e[12]||(e[12]=t=>a(l).enable_video_consult=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),i("span",qe,c(a(l).enable_video_consult===1?"已开启":"已关闭"),1)]),_:1}),o(n,{label:"是否开启收费"},{default:d(()=>[o(b,{modelValue:a(l).enable_charge,"onUpdate:modelValue":e[13]||(e[13]=t=>a(l).enable_charge=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),i("span",De,c(a(l).enable_charge===1?"已开启":"已关闭"),1)]),_:1}),o(n,{label:"所属科室",prop:"department"},{default:d(()=>[o(R,{modelValue:a(l).department,"onUpdate:modelValue":e[14]||(e[14]=t=>a(l).department=t),placeholder:"请选择所属科室",clearable:"",class:"flex-1"},{default:d(()=>[(g(!0),y(B,null,O(a(E),t=>(g(),S(C,{key:t.value,label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(n,{label:"擅长领域",prop:"specialty"},{default:d(()=>[o(u,{modelValue:a(l).specialty,"onUpdate:modelValue":e[15]||(e[15]=t=>a(l).specialty=t),type:"textarea",rows:3,placeholder:"请输入擅长领域"},null,8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:d(()=>[...e[32]||(e[32]=[p("履历信息",-1)])]),_:1}),o(n,{label:"教育背景",prop:"education"},{default:d(()=>[o(u,{modelValue:a(l).education,"onUpdate:modelValue":e[16]||(e[16]=t=>a(l).education=t),type:"textarea",rows:3,placeholder:"请输入教育背景,如:北京中医药大学 中医学博士"},null,8,["modelValue"])]),_:1}),o(n,{label:"工作经历",prop:"experience"},{default:d(()=>[o(u,{modelValue:a(l).experience,"onUpdate:modelValue":e[17]||(e[17]=t=>a(l).experience=t),type:"textarea",rows:4,placeholder:"请输入工作经历"},null,8,["modelValue"])]),_:1}),o(n,{label:"荣誉资质",prop:"honors"},{default:d(()=>[o(u,{modelValue:a(l).honors,"onUpdate:modelValue":e[18]||(e[18]=t=>a(l).honors=t),type:"textarea",rows:3,placeholder:"请输入荣誉资质"},null,8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:d(()=>[...e[33]||(e[33]=[p("账号设置",-1)])]),_:1}),o(n,{label:"密码",prop:"password"},{default:d(()=>[o(u,{modelValue:a(l).password,"onUpdate:modelValue":e[19]||(e[19]=t=>a(l).password=t),"show-password":"",clearable:"",placeholder:a(f)==="edit"?"不修改请留空":"请输入密码"},null,8,["modelValue","placeholder"])]),_:1}),o(n,{label:"确认密码",prop:"password_confirm"},{default:d(()=>[o(u,{modelValue:a(l).password_confirm,"onUpdate:modelValue":e[20]||(e[20]=t=>a(l).password_confirm=t),"show-password":"",clearable:"",placeholder:a(f)==="edit"?"不修改请留空":"请输入确认密码"},null,8,["modelValue","placeholder"])]),_:1}),o(n,{label:"状态"},{default:d(()=>[o(b,{modelValue:a(l).disable,"onUpdate:modelValue":e[21]||(e[21]=t=>a(l).disable=t),"active-value":0,"inactive-value":1},null,8,["modelValue"]),i("span",ke,c(a(l).disable===0?"启用":"禁用"),1)]),_:1}),o(n,{label:"多处登录"},{default:d(()=>[i("div",null,[o(b,{modelValue:a(l).multipoint_login,"onUpdate:modelValue":e[22]||(e[22]=t=>a(l).multipoint_login=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[34]||(e[34]=i("div",{class:"form-tips"},"允许多人同时在线登录",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}}),Qe=ye(Re,[["__scopeId","data-v-c5cf7e96"]]);export{Qe as default}; +import{o as X,q as g,r as y,v as o,D as d,bd as Y,u as a,bE as Z,L as p,bb as h,aA as ee,s as i,bf as le,bq as ae,J as oe,bL as te,bh as de,F as B,G as O,O as S,bi as ne,I as re,T as c,K as se,C as ie,B as ue,a8 as pe,M as V,p as me,aC as F}from"./.pnpm-CyuAWpdG.js";import{_ as fe}from"./picker-BTh9eW9u.js";import{b as _e,d as be,e as ge}from"./admin-DmTP1JeV.js";import{d as ce}from"./department-BeBGhsmA.js";import{j as Ve}from"./post-DqkuJrmM.js";import{j as ve,n as we,_ as ye}from"./index-Bkarz3gO.js";import{u as xe}from"./useDictOptions-dnxxXBSU.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const Ue={class:"edit-drawer"},Ee={class:"w-full"},je={class:"ml-2 text-gray-500"},qe={class:"ml-2 text-gray-500"},De={class:"ml-2 text-gray-500"},ke={class:"ml-2 text-gray-500"},Ce={class:"flex justify-end"},Re=X({__name:"edit",emits:["success","close"],setup(Ae,{expose:I,emit:N}){function T(r){if(r.status!==1)return!0;const e=r.children;return Array.isArray(e)&&e.length>0}const x=N,U=pe(),m=V(!1),f=V("add"),v=V(!1),E=V([]),L=async()=>{const r=await we({type:"department"});E.value=(r==null?void 0:r.department)||[]},G=me(()=>f.value=="edit"?"编辑医生":"新增医生"),l=F({id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[1],dept_id:[],jobs_id:[],avatar:"",title:"",license_no:"",qualification_images:"",enable_image_consult:1,enable_video_consult:1,enable_charge:0,department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1}),{optionsData:j}=xe({jobs:{api:Ve},dept:{api:ce,params:{apply_data_scope:1}}}),w=(r,e,s)=>{l.password&&(e||s(new Error("请再次输入密码")),e!==l.password&&s(new Error("两次输入密码不一致!"))),s()},_=F({account:[{required:!0,message:"请输入账号",trigger:["blur"]}],name:[{required:!0,message:"请输入姓名",trigger:["blur"]}],gender:[{required:!0,message:"请选择性别",trigger:["change"]}],dept_id:[{required:!0,type:"array",min:1,message:"请选择归属部门",trigger:["change"]}],phone:[{validator:(r,e,s)=>{e&&!/^1[3-9]\d{9}$/.test(e)?s(new Error("请输入正确的手机号")):s()},trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:["blur"]}],password_confirm:[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:w,trigger:"blur"}]}),z=async()=>{var r;try{await((r=U.value)==null?void 0:r.validate()),v.value=!0,f.value=="edit"?await _e(l):await be(l),ve.msgSuccess(f.value=="edit"?"编辑成功":"新增成功"),m.value=!1,x("success")}catch(e){console.error("提交失败:",e)}finally{v.value=!1}},J=(r="add")=>{f.value=r,m.value=!0,L(),r==="add"&&(Object.assign(l,{id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[1],dept_id:[],jobs_id:[],avatar:"",title:"",license_no:"",qualification_images:"",enable_image_consult:1,enable_video_consult:1,enable_charge:0,department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1}),_.password=[{required:!0,message:"请输入密码",trigger:["blur"]}],_.password_confirm=[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:w,trigger:"blur"}])},K=async r=>{_.password=[],_.password_confirm=[{validator:w,trigger:"blur"}];const e=await ge({id:r.id});for(const s in l)e[s]!=null&&e[s]!=null&&(l[s]=e[s]);l.role_id.includes(1)||l.role_id.push(1)},q=()=>{m.value=!1,x("close")};return I({open:J,setFormData:K}),(r,e)=>{const s=Z,u=ee,n=h,D=fe,k=ae,M=le,P=oe,$=te,C=ne,R=de,b=re,H=Y,A=se,Q=ue;return g(),y("div",Ue,[o(Q,{modelValue:a(m),"onUpdate:modelValue":e[23]||(e[23]=t=>ie(m)?m.value=t:null),title:a(G),direction:"rtl",size:"780px","before-close":q},{footer:d(()=>[i("div",Ce,[o(A,{onClick:q},{default:d(()=>[...e[35]||(e[35]=[p("取消",-1)])]),_:1}),o(A,{type:"primary",onClick:z,loading:a(v)},{default:d(()=>[...e[36]||(e[36]=[p("确定",-1)])]),_:1},8,["loading"])])]),default:d(()=>[o(H,{ref_key:"formRef",ref:U,model:a(l),"label-width":"100px",rules:a(_)},{default:d(()=>[o(s,{"content-position":"left"},{default:d(()=>[...e[24]||(e[24]=[p("基本信息",-1)])]),_:1}),o(n,{label:"账号",prop:"account"},{default:d(()=>[o(u,{modelValue:a(l).account,"onUpdate:modelValue":e[0]||(e[0]=t=>a(l).account=t),placeholder:"请输入账号",clearable:""},null,8,["modelValue"])]),_:1}),o(n,{label:"头像"},{default:d(()=>[i("div",null,[i("div",null,[o(D,{modelValue:a(l).avatar,"onUpdate:modelValue":e[1]||(e[1]=t=>a(l).avatar=t),limit:1},null,8,["modelValue"])]),e[25]||(e[25]=i("div",{class:"form-tips"},"建议尺寸:100*100px,支持jpg,jpeg,png格式",-1))])]),_:1}),o(n,{label:"姓名",prop:"name"},{default:d(()=>[o(u,{modelValue:a(l).name,"onUpdate:modelValue":e[2]||(e[2]=t=>a(l).name=t),placeholder:"请输入姓名",clearable:""},null,8,["modelValue"])]),_:1}),o(n,{label:"性别",prop:"gender"},{default:d(()=>[o(M,{modelValue:a(l).gender,"onUpdate:modelValue":e[3]||(e[3]=t=>a(l).gender=t)},{default:d(()=>[o(k,{label:1},{default:d(()=>[...e[26]||(e[26]=[p("男",-1)])]),_:1}),o(k,{label:2},{default:d(()=>[...e[27]||(e[27]=[p("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o(n,{label:"年龄",prop:"age"},{default:d(()=>[o(P,{modelValue:a(l).age,"onUpdate:modelValue":e[4]||(e[4]=t=>a(l).age=t),min:18,max:100,placeholder:"请输入年龄"},null,8,["modelValue"])]),_:1}),o(n,{label:"手机号",prop:"phone"},{default:d(()=>[o(u,{modelValue:a(l).phone,"onUpdate:modelValue":e[5]||(e[5]=t=>a(l).phone=t),placeholder:"请输入手机号",clearable:""},null,8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:d(()=>[...e[28]||(e[28]=[p("组织信息",-1)])]),_:1}),o(n,{label:"归属部门",prop:"dept_id"},{default:d(()=>[i("div",Ee,[o($,{class:"flex-1 w-full",modelValue:a(l).dept_id,"onUpdate:modelValue":e[6]||(e[6]=t=>a(l).dept_id=t),data:a(j).dept,clearable:"",multiple:"","node-key":"id",props:{label:"name",disabled:T},"check-strictly":"","default-expand-all":!0,placeholder:"请选择末级归属部门"},null,8,["modelValue","data","props"]),e[29]||(e[29]=i("div",{class:"form-tips"},"仅可选末级部门(含下级的父部门不可选),与数据权限范围一致。",-1))])]),_:1}),o(n,{label:"岗位",prop:"jobs_id"},{default:d(()=>[o(R,{class:"flex-1",modelValue:a(l).jobs_id,"onUpdate:modelValue":e[7]||(e[7]=t=>a(l).jobs_id=t),clearable:"",multiple:"",placeholder:"请选择岗位"},{default:d(()=>[(g(!0),y(B,null,O(a(j).jobs,(t,W)=>(g(),S(C,{key:W,label:t.name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:d(()=>[...e[30]||(e[30]=[p("专业信息",-1)])]),_:1}),o(n,{label:"职称",prop:"title"},{default:d(()=>[o(u,{modelValue:a(l).title,"onUpdate:modelValue":e[8]||(e[8]=t=>a(l).title=t),placeholder:"如:主任医师、副主任医师",clearable:""},null,8,["modelValue"])]),_:1}),o(n,{label:"执业证书编号",prop:"license_no"},{default:d(()=>[o(u,{modelValue:a(l).license_no,"onUpdate:modelValue":e[9]||(e[9]=t=>a(l).license_no=t),placeholder:"请输入执业证书编号",clearable:""},null,8,["modelValue"])]),_:1}),o(n,{label:"资质图片"},{default:d(()=>[i("div",null,[i("div",null,[o(D,{modelValue:a(l).qualification_images,"onUpdate:modelValue":e[10]||(e[10]=t=>a(l).qualification_images=t),limit:9},null,8,["modelValue"])]),e[31]||(e[31]=i("div",{class:"form-tips"},"上传医生资质证书、荣誉证书等图片,最多9张,建议尺寸:800*600px",-1))])]),_:1}),o(n,{label:"图文问诊"},{default:d(()=>[o(b,{modelValue:a(l).enable_image_consult,"onUpdate:modelValue":e[11]||(e[11]=t=>a(l).enable_image_consult=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),i("span",je,c(a(l).enable_image_consult===1?"已开启":"已关闭"),1)]),_:1}),o(n,{label:"视频问诊"},{default:d(()=>[o(b,{modelValue:a(l).enable_video_consult,"onUpdate:modelValue":e[12]||(e[12]=t=>a(l).enable_video_consult=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),i("span",qe,c(a(l).enable_video_consult===1?"已开启":"已关闭"),1)]),_:1}),o(n,{label:"是否开启收费"},{default:d(()=>[o(b,{modelValue:a(l).enable_charge,"onUpdate:modelValue":e[13]||(e[13]=t=>a(l).enable_charge=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),i("span",De,c(a(l).enable_charge===1?"已开启":"已关闭"),1)]),_:1}),o(n,{label:"所属科室",prop:"department"},{default:d(()=>[o(R,{modelValue:a(l).department,"onUpdate:modelValue":e[14]||(e[14]=t=>a(l).department=t),placeholder:"请选择所属科室",clearable:"",class:"flex-1"},{default:d(()=>[(g(!0),y(B,null,O(a(E),t=>(g(),S(C,{key:t.value,label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(n,{label:"擅长领域",prop:"specialty"},{default:d(()=>[o(u,{modelValue:a(l).specialty,"onUpdate:modelValue":e[15]||(e[15]=t=>a(l).specialty=t),type:"textarea",rows:3,placeholder:"请输入擅长领域"},null,8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:d(()=>[...e[32]||(e[32]=[p("履历信息",-1)])]),_:1}),o(n,{label:"教育背景",prop:"education"},{default:d(()=>[o(u,{modelValue:a(l).education,"onUpdate:modelValue":e[16]||(e[16]=t=>a(l).education=t),type:"textarea",rows:3,placeholder:"请输入教育背景,如:北京中医药大学 中医学博士"},null,8,["modelValue"])]),_:1}),o(n,{label:"工作经历",prop:"experience"},{default:d(()=>[o(u,{modelValue:a(l).experience,"onUpdate:modelValue":e[17]||(e[17]=t=>a(l).experience=t),type:"textarea",rows:4,placeholder:"请输入工作经历"},null,8,["modelValue"])]),_:1}),o(n,{label:"荣誉资质",prop:"honors"},{default:d(()=>[o(u,{modelValue:a(l).honors,"onUpdate:modelValue":e[18]||(e[18]=t=>a(l).honors=t),type:"textarea",rows:3,placeholder:"请输入荣誉资质"},null,8,["modelValue"])]),_:1}),o(s,{"content-position":"left"},{default:d(()=>[...e[33]||(e[33]=[p("账号设置",-1)])]),_:1}),o(n,{label:"密码",prop:"password"},{default:d(()=>[o(u,{modelValue:a(l).password,"onUpdate:modelValue":e[19]||(e[19]=t=>a(l).password=t),"show-password":"",clearable:"",placeholder:a(f)==="edit"?"不修改请留空":"请输入密码"},null,8,["modelValue","placeholder"])]),_:1}),o(n,{label:"确认密码",prop:"password_confirm"},{default:d(()=>[o(u,{modelValue:a(l).password_confirm,"onUpdate:modelValue":e[20]||(e[20]=t=>a(l).password_confirm=t),"show-password":"",clearable:"",placeholder:a(f)==="edit"?"不修改请留空":"请输入确认密码"},null,8,["modelValue","placeholder"])]),_:1}),o(n,{label:"状态"},{default:d(()=>[o(b,{modelValue:a(l).disable,"onUpdate:modelValue":e[21]||(e[21]=t=>a(l).disable=t),"active-value":0,"inactive-value":1},null,8,["modelValue"]),i("span",ke,c(a(l).disable===0?"启用":"禁用"),1)]),_:1}),o(n,{label:"多处登录"},{default:d(()=>[i("div",null,[o(b,{modelValue:a(l).multipoint_login,"onUpdate:modelValue":e[22]||(e[22]=t=>a(l).multipoint_login=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[34]||(e[34]=i("div",{class:"form-tips"},"允许多人同时在线登录",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}}),Qe=ye(Re,[["__scopeId","data-v-c5cf7e96"]]);export{Qe as default}; diff --git a/server/public/admin/assets/edit-BsuBmpNt.js b/server/public/admin/assets/edit-BsuBmpNt.js deleted file mode 100644 index d55d035b6..000000000 --- a/server/public/admin/assets/edit-BsuBmpNt.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-CezjvrER.js";import"./.pnpm-CyuAWpdG.js";import"./post-B9rSvSIv.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";export{o as default}; diff --git a/server/public/admin/assets/edit-DFFSwWxS.js b/server/public/admin/assets/edit-BuMVMky1.js similarity index 96% rename from server/public/admin/assets/edit-DFFSwWxS.js rename to server/public/admin/assets/edit-BuMVMky1.js index db5ddb0fb..101286d4e 100644 --- a/server/public/admin/assets/edit-DFFSwWxS.js +++ b/server/public/admin/assets/edit-BuMVMky1.js @@ -1 +1 @@ -import{o as Pl,R as ke,M as p,by as Ol,q as u,r as _,v as t,D as a,Y as Rl,X as Cl,bd as Dl,s as H,bE as Il,L as s,O as r,bo as Fl,F as V,T as w,P,bb as Al,aA as zl,c9 as Bl,ca as Ll,bf as Sl,bq as Tl,J as $l,bh as Ml,bi as ql,G as O,I as Yl,az as Jl,cB as Gl,di as Wl,be as Xl,bC as Hl,K as jl,u as j,bm as Kl,B as Ql,p as T,E as he}from"./.pnpm-CyuAWpdG.js";import{$ as Zl,ac as Ke,ab as Qe,ae as ea,af as la,ad as aa}from"./tcm-QAkeqQ9Q.js";import{e as ta,j as xe,u as oa,n as N,_ as ua}from"./index-Dxvz9lb1.js";import{h as I}from"./perm-DOfZAzJJ.js";import ia from"./DailyMatrix-BSZy3g0c.js";import{F as na,f as da}from"./FollowupAudioPanel-GXQTu6xF.js";import sa from"./CaseRecordList-Bdp996ss.js";import ra from"./CallRecordPanel-DFudUjln.js";import pa from"./ImChatRecordPanel-CafeXQX5.js";import va from"./AssignLogPanel-0TFZiCkF.js";import fa from"./AppointmentRecordPanel-C2wB-h-D.js";import ma from"./NoteTimeline-DDh0aI3_.js";/* empty css */import _a from"./PatientOrderList-BP2alDvZ.js";import ca from"./index-Cis-_1uh.js";import{g as ga}from"./patient-Bz8-LT2R.js";import"./picker-BDO86vcM.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";import"./DiagnosisTodoList-CE1isNg2.js";import"./blood-thresholds-QpDuElbH.js";import"./FollowupAudioReview-92Fgd7wW.js";import"./FollowupAudioField-BG0mRnT5.js";import"./RecordingPlaybackBlock-GbWd6PMw.js";import"./RecordingVideoPlayer-grUPRDCj.js";import"./dayjs-B2bPhvDy.js";import"./im-business-message-parse-DdA9BRrQ.js";import"./doctor-8vo_5fa4.js";import"./PrescriptionOrderDetailDrawer-v90LlSLZ.js";import"./prescription-order-utils-CXfs2Bra.js";import"./index-Cf6ygfGC.js";import"./medicine-EUKQYFsM.js";import"./diabetes-discovery-display-B_wmGXQJ.js";import"./index-DT7CSmCp.js";const ba={class:"edit-drawer"},ya={class:"tcm-dd-header"},Va={class:"tcm-dd-header__row"},wa={class:"tcm-dd-header__title"},ka={key:0,class:"tcm-dd-header__sub"},ha={key:0,class:"tcm-dd-header__name"},xa={key:1,class:"tcm-dd-header__id"},Ua={key:0,class:"tcm-dd-header__sep"},Na=["disabled"],Ea=["disabled"],Pa={key:0,class:"text-xs text-gray-400 mt-1"},Oa={key:0,class:"text-xs text-gray-400 mt-1"},Ra={key:0,class:"p-4"},Ca={key:1,role:"alert"},Da={key:0,class:"bingli-tab-content"},Ia={class:"tcm-dd-footer"},Fa=Pl({__name:"edit",emits:["success"],setup(Aa,{expose:Ze,emit:el}){const Ue=el;ta();const re=p(),ll=p(null),pe=p(),Ne=p(null),oe=p(null),Z=p(null),ee=p(!1),ue=p(""),ve=p(null),J=p("");let k=0,G;const g=p(!1),x=p(!1),fe=p(),D=p("add"),K=p(!1),A=T(()=>I(["tcm.diagnosis/phonePlain"])),Ee=T(()=>I(["tcm.diagnosis/dailyRecord"])),ie=T(()=>I(["tcm.diagnosis/followupAudio"])),me=p(!1),_e=p(!0),le=p(null),z=T(()=>x.value?!1:D.value==="add"?!0:_e.value),al=T(()=>D.value!=="edit"?!1:z.value?!A.value:!0),$=p(!1),tl=T(()=>D.value!=="edit"||!U.value?!1:z.value?!A.value:!0),ol=T(()=>z.value?D.value==="add"||!U.value?!0:A.value:!1),M=p(!1),b=p("basic"),ul=T(()=>x.value?"诊单详情":D.value==="add"?"新增诊单":"编辑诊单"),ce=p([]),Pe=async()=>{if(l.value.id)try{ce.value=await ga({diagnosis_id:Number(l.value.id)})||[]}catch{ce.value=[]}},Oe=p([]),il=async()=>{if(l.value.id)try{Oe.value=await Zl({diagnosis_id:Number(l.value.id)})||[]}catch{Oe.value=[]}};ke(()=>b.value,async i=>{i==="doctorNote"&&l.value.id&&await Pe(),i==="trackingNote"&&l.value.id&&await il()}),ke([g,b],()=>{g.value&&(b.value==="chat"&&!I(["tcm.diagnosis/chat"])&&(b.value="basic"),b.value==="visit"&&!I(["tcm.diagnosis/huifang"])&&(b.value="basic"),b.value==="assignLog"&&!I(["tcm.diagnosis/assign"])&&!I(["tcm.diagnosis/detail"])&&(b.value="basic"),b.value==="appointmentRecords"&&!I(["doctor.appointment/lists"])&&(b.value="basic"),b.value==="daily"&&!Ee.value&&(b.value="basic"))});const l=p({id:"",patient_id:"",patient_name:"",id_card:"",phone:"",gender:1,age:void 0,diagnosis_date:"",diagnosis_type:"",syndrome_type:"",diabetes_type:"",diabetes_discovery_year:"",local_hospital_diagnosis:[],local_hospital_name:"",marital_status:void 0,height:void 0,weight:void 0,region:"",systolic_pressure:void 0,diastolic_pressure:void 0,fasting_blood_sugar:"",appetite:[],water_intake:"",diet_condition:[],weight_change:"",body_feeling:[],sleep_condition:[],eye_condition:[],head_feeling:[],sweat_condition:[],skin_condition:[],urine_condition:[],stool_condition:[],kidney_condition:[],fatty_liver_degree:"",past_history:[],trauma_history:0,surgery_history:0,allergy_history:0,family_history:0,pregnancy_history:0,assistant_id:void 0,symptoms:"",tongue_coating:"",pulse:"",treatment_principle:"",prescription:"",doctor_advice:"",remark:"",current_medications:"",status:1,create_source:"admin",show_card:1,external_userid:""}),ge=()=>JSON.stringify({...l.value,phone:R.value||l.value.phone,id_card:U.value||l.value.id_card}),ne=T(()=>!x.value&&!!J.value&&ge()!==J.value),nl=()=>!ne.value&&g.value&&!x.value;async function dl(i,e){var v;return i==="followupAudio"&&ne.value?(xe.msgWarning("病历有未保存修改,请先保存后再进入回访录音审核,当前输入已保留"),!1):e==="followupAudio"?await((v=oe.value)==null?void 0:v.confirmLeave())??!0:!0}async function sl(i){var v,n;if(!g.value||Number(l.value.id)!==i)return;const e=k;try{if(await Ve(i,!0),e!==k||!g.value||Number(l.value.id)!==i)return;await((n=(v=Ne.value)==null?void 0:v.refresh)==null?void 0:n.call(v)),Ue("success")}catch{e===k&&xe.msgWarning("录音已采纳,但病历或日常记录刷新失败,请手动刷新查看")}}function Q(){G==null||G.abort(),G=void 0,Z.value=null,ve.value=null,ee.value=!1,ue.value=""}async function Re(){if(ee.value)return;Q();const i=Number(l.value.id);if(!g.value||!i||!ie.value)return;const e=k,v=new AbortController;G=v,ee.value=!0;const n=()=>G===v&&!v.signal.aborted&&e===k&&g.value&&Number(l.value.id)===i;try{const c=await da(i,v.signal);if(!n())return;if(typeof(c==null?void 0:c.enabled)!="boolean")throw new Error("Invalid capability response");Z.value=c,ve.value=i}catch{if(!n())return;ue.value="回访录音状态加载失败,请重新加载;若仍失败,请联系管理员检查权限或服务状态"}finally{n()&&(ee.value=!1,G=void 0)}}ke([g,()=>l.value.id,ie],()=>{!ie.value&&b.value==="followupAudio"&&(b.value="basic"),Q(),Re()},{flush:"sync"}),Ol(()=>{k++,Q()});const rl=[{value:"",label:"未设置"},{value:"admin",label:"后台建档"},{value:"mnp",label:"小程序完整建档"},{value:"mnp_daily",label:"小程序手机号快捷建档"}],R=p(""),U=p(""),be=p(!1),ye=p(!1),de=i=>!i||i.length<11?i:i.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),pl=()=>{R.value&&($.value=!$.value)},vl=()=>{U.value&&(M.value=!M.value)},se=i=>i&&(i.length===15?i.replace(/(\d{6})\d{5}(\d{4})/,"$1*****$2"):i.length===18?i.replace(/(\d{6})\d{8}(\d{4})/,"$1********$2"):i),fl=()=>{if(be.value=!0,!!R.value){if(A.value){l.value.phone=R.value;return}D.value==="add"&&(l.value.phone=R.value)}},ml=async()=>{if(be.value=!1,A.value){if(l.value.phone&&l.value.phone.length===11&&(R.value=l.value.phone,/^1[3-9]\d{9}$/.test(l.value.phone)))try{const i=await Ke({phone:l.value.phone,id:l.value.id||""});i.exists&&he.warning(i.message)}catch(i){console.error("检查手机号失败:",i)}return}if(D.value==="add"&&l.value.phone&&l.value.phone.length===11){if(R.value=l.value.phone,/^1[3-9]\d{9}$/.test(l.value.phone))try{const i=await Ke({phone:l.value.phone,id:l.value.id||""});i.exists&&he.warning(i.message)}catch(i){console.error("检查手机号失败:",i)}l.value.phone=de(l.value.phone)}},_l=()=>{if(ye.value=!0,!!U.value){if(A.value){l.value.id_card=U.value;return}D.value==="add"&&(l.value.id_card=U.value)}},cl=async()=>{ye.value=!1;const i=async e=>{if(/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e)){const v=parseInt(e.substring(6,10)),n=parseInt(e.substring(10,12)),c=parseInt(e.substring(12,14)),m=new Date;let d=m.getFullYear()-v;(m.getMonth()+1{const n=U.value||e;if(!n){v();return}if(!/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(n)){v(new Error("身份证号格式不正确"));return}v()},trigger:"blur"}],phone:[{required:!0,validator:(i,e,v)=>{const n=R.value||e;if(!n){v(new Error("请输入手机号"));return}if(!/^1[3-9]\d{9}$/.test(n)){v(new Error("手机号格式不正确"));return}v()},trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],age:[{required:!0,message:"请输入年龄",trigger:"blur"}],fasting_blood_sugar:[{required:!0,message:"请输入空腹血糖",trigger:"blur"}],diagnosis_type:[{required:!0,message:"请选择诊断类型",trigger:"change"}],local_hospital_name:[{required:!0,message:"请输入当地就诊医院名称",trigger:"blur"}],diabetes_discovery_year:[{max:50,message:"最多50个字符",trigger:"blur"}]},Ce=p([]),bl=p([]),yl=p([]),De=p([]),Ie=p([]),Fe=p([]),Ae=p([]),ze=p([]),Be=p([]),Le=p([]),Se=p([]),Te=p([]),$e=p([]),Me=p([]),qe=p([]),Ye=p([]),Je=p([]),Ge=p([]),We=async()=>{try{const[i,e,v,n,c,m,d,f,y,q,F,L,S,W,ae,te,h,E]=await Promise.all([N({type:"diagnosis_type"}),N({type:"syndrome_type"}),N({type:"diabetes_type"}),N({type:"past_history"}),N({type:"appetite"}),N({type:"water_intake"}),N({type:"diet_condition"}),N({type:"weight_change"}),N({type:"body_feeling"}),N({type:"sleep_condition"}),N({type:"eye_condition"}),N({type:"head_feeling"}),N({type:"sweat_condition"}),N({type:"skin_condition"}),N({type:"urine_condition"}),N({type:"stool_condition"}),N({type:"kidney_condition"}),N({type:"fatty_liver_degree"})]);Ce.value=(i==null?void 0:i.diagnosis_type)||[],bl.value=(e==null?void 0:e.syndrome_type)||[],yl.value=(v==null?void 0:v.diabetes_type)||[],De.value=(n==null?void 0:n.past_history)||[],Ie.value=(c==null?void 0:c.appetite)||[],Fe.value=(m==null?void 0:m.water_intake)||[],Ae.value=(d==null?void 0:d.diet_condition)||[],ze.value=(f==null?void 0:f.weight_change)||[],Be.value=(y==null?void 0:y.body_feeling)||[],Le.value=(q==null?void 0:q.sleep_condition)||[],Se.value=(F==null?void 0:F.eye_condition)||[],Te.value=(L==null?void 0:L.head_feeling)||[],$e.value=(S==null?void 0:S.sweat_condition)||[],Me.value=(W==null?void 0:W.skin_condition)||[],qe.value=(ae==null?void 0:ae.urine_condition)||[],Ye.value=(te==null?void 0:te.stool_condition)||[],Je.value=(h==null?void 0:h.kidney_condition)||[],Ge.value=(E==null?void 0:E.fatty_liver_degree)||[]}catch(i){console.error("获取字典数据失败:",i)}};async function Ve(i,e=!1){const v=k,n=await Qe({id:i});if(v!==k||!g.value)return;if(e&&ne.value){xe.msgWarning("录音已采纳,病历仍保留你的未保存修改;请核对后再保存,未用刷新覆盖输入");return}R.value=n.phone||"",U.value=n.id_card||"",me.value=!!n.patient_basic_locked,_e.value=n.can_edit_patient_basic!==!1,le.value=n.latest_prescription_order??null,n.phone=A.value?n.phone||"":de(n.phone||""),n.id_card=A.value?n.id_card||"":se(n.id_card||""),l.value=n,l.value.create_source=n.create_source??"",l.value.show_card=Number(n.show_card)===0?0:1;const c=n.diabetes_discovery_year;l.value.diabetes_discovery_year=c==null||c===""?"":String(c),J.value=ge()}const Xe=()=>{me.value=!1,_e.value=!0,le.value=null},Vl=async(i,e)=>{var n;const v=++k;if(K.value=!1,J.value="",Q(),l.value.id="",x.value=!1,D.value=i,g.value=!0,b.value="basic",$.value=!1,M.value=!1,Xe(),await We(),!(v!==k||!g.value)){if(i==="edit"&&e)await Ve(e);else if(i==="add"){const c=oa();l.value.assistant_id=((n=c.userInfo)==null?void 0:n.id)||"",l.value.diagnosis_type="follow_up"}}},wl=async i=>{if(!i)return;const e=++k;K.value=!1,J.value="",Q(),l.value.id="",x.value=!0,D.value="edit",g.value=!0,b.value="basic",$.value=!1,M.value=!1,Xe(),await We(),!(e!==k||!g.value)&&await Ve(i)},kl=async()=>{var v;if(x.value||K.value)return;const i=k;if(await((v=fe.value)==null?void 0:v.validate()),i!==k||!g.value)return;const e=JSON.parse(ge());K.value=!0;try{const n={...l.value,phone:R.value||l.value.phone,id_card:U.value||l.value.id_card};if(D.value==="add"){const c=await ea(n);if(i!==k||!g.value)return;if(c&&c.id){D.value="edit",$.value=!1,M.value=!1,l.value.id=c.id,e.id=c.id;try{const m=await Qe({id:c.id});if(i!==k||!g.value)return;l.value.patient_id=m.patient_id,e.patient_id=m.patient_id,R.value=m.phone||"",U.value=m.id_card||"",l.value.phone=A.value?m.phone||"":de(m.phone||""),l.value.id_card=A.value?m.id_card||"":se(m.id_card||"")}catch(m){console.error("获取详情失败:",m)}}}else await la(n);if(i!==k||!g.value)return;J.value=JSON.stringify(e),Ue("success")}catch(n){console.error("提交失败:",n)}finally{i===k&&(K.value=!1)}},hl=i=>{var e;(e=pe.value)==null||e.openById(i.id,{slipType:"user"})},xl=()=>{var e;if(x.value)return;const i={id:l.value.id,diagnosis_id:l.value.id,appointment_id:0,patient_name:l.value.patient_name,patient_phone:R.value||l.value.phone,patient_gender:l.value.gender,patient_age:l.value.age,case_record:JSON.parse(JSON.stringify(l.value))};(e=pe.value)==null||e.open(i)},He=async()=>{var i;oe.value&&!await oe.value.confirmLeave()||(k++,Q(),J.value="",(i=fe.value)==null||i.resetFields(),l.value={id:"",patient_id:"",patient_name:"",id_card:"",phone:"",gender:1,age:void 0,diagnosis_date:"",diagnosis_type:"",syndrome_type:"",diabetes_type:"",diabetes_discovery_year:"",local_hospital_diagnosis:[],local_hospital_name:"",marital_status:void 0,height:void 0,weight:void 0,region:"",systolic_pressure:void 0,diastolic_pressure:void 0,fasting_blood_sugar:"",appetite:[],water_intake:"",diet_condition:[],weight_change:"",body_feeling:[],sleep_condition:[],eye_condition:[],head_feeling:[],sweat_condition:[],skin_condition:[],urine_condition:[],stool_condition:[],kidney_condition:[],fatty_liver_degree:"",past_history:[],trauma_history:0,surgery_history:0,allergy_history:0,family_history:0,pregnancy_history:0,assistant_id:void 0,symptoms:"",tongue_coating:"",pulse:"",treatment_principle:"",prescription:"",doctor_advice:"",remark:"",current_medications:"",status:1,create_source:"admin",show_card:1,external_userid:""},R.value="",U.value="",be.value=!1,ye.value=!1,$.value=!1,M.value=!1,x.value=!1,g.value=!1)};return Ze({open:Vl,openViewOnly:wl,refreshCaseList:()=>{var i,e;return(e=(i=re.value)==null?void 0:i.refresh)==null?void 0:e.call(i)}}),(i,e)=>{const v=Kl,n=Il,c=Fl,m=zl,d=Al,f=Ll,y=Bl,q=Tl,F=Sl,L=$l,S=ql,W=Ml,ae=Yl,te=Jl,h=Wl,E=Gl,C=Xl,Ul=Dl,B=Cl,Y=Hl,we=jl,Nl=Rl,El=Ql;return u(),_("div",ba,[t(El,{modelValue:g.value,"onUpdate:modelValue":e[46]||(e[46]=o=>g.value=o),size:"60%","before-close":He,"z-index":x.value?4e3:1500,modal:!0,class:"diagnosis-drawer tcm-diagnosis-drawer"},{header:a(()=>[H("div",ya,[H("div",Va,[H("h2",wa,w(ul.value),1),x.value?(u(),r(v,{key:0,type:"info",effect:"plain",round:"",size:"small",class:"tcm-dd-header__badge"},{default:a(()=>[...e[47]||(e[47]=[s(" 只读 ",-1)])]),_:1})):D.value==="add"?(u(),r(v,{key:1,type:"success",effect:"plain",round:"",size:"small",class:"tcm-dd-header__badge"},{default:a(()=>[...e[48]||(e[48]=[s(" 新建 ",-1)])]),_:1})):(u(),r(v,{key:2,type:"warning",effect:"plain",round:"",size:"small",class:"tcm-dd-header__badge"},{default:a(()=>[...e[49]||(e[49]=[s(" 编辑 ",-1)])]),_:1}))]),l.value.patient_name||l.value.id?(u(),_("p",ka,[l.value.patient_name?(u(),_("span",ha,w(l.value.patient_name),1)):P("",!0),l.value.id?(u(),_("span",xa,[l.value.patient_name?(u(),_("span",Ua,"·")):P("",!0),s(" 诊单 "+w(l.value.patient_id||l.value.id),1)])):P("",!0)])):P("",!0)])]),footer:a(()=>[H("div",Ia,[t(we,{class:"tcm-dd-footer__btn",onClick:He},{default:a(()=>[s(w(x.value?"关闭":"取消"),1)]),_:1}),!x.value&&b.value==="basic"?(u(),r(we,{key:0,class:"tcm-dd-footer__btn",type:"primary",onClick:kl,loading:K.value},{default:a(()=>[...e[79]||(e[79]=[s(" 保存病历 ",-1)])]),_:1},8,["loading"])):P("",!0)])]),default:a(()=>[t(Nl,{modelValue:b.value,"onUpdate:modelValue":e[44]||(e[44]=o=>b.value=o),"before-leave":dl,class:"diagnosis-tabs tcm-diagnosis-tabs"},{default:a(()=>[t(B,{label:"病历",name:"basic"},{default:a(()=>[t(Ul,{ref_key:"formRef",ref:fe,model:l.value,rules:gl,"label-width":"160px"},{default:a(()=>[H("fieldset",{disabled:x.value,class:"diagnosis-view-fieldset border-0 min-w-0 p-0 m-0"},[t(n,{"content-position":"left"},{default:a(()=>[...e[50]||(e[50]=[s("基本信息",-1)])]),_:1}),D.value==="edit"&&me.value&&!z.value?(u(),r(c,{key:0,type:"warning",closable:!1,"show-icon":"",class:"mb-3"},{default:a(()=>[le.value?(u(),_(V,{key:0},[s(" 最近业务订单 #"+w(le.value.id)+" 状态为「"+w(le.value.fulfillment_status_text)+"」,患者基本信息不可修改 ",1)],64)):(u(),_(V,{key:1},[s(" 存在未完成的业务订单,患者基本信息不可修改 ")],64))]),_:1})):P("",!0),t(d,{label:"诊单ID"},{default:a(()=>[t(m,{modelValue:l.value.patient_id,"onUpdate:modelValue":e[0]||(e[0]=o=>l.value.patient_id=o),disabled:"",placeholder:"系统自动生成"},null,8,["modelValue"])]),_:1}),H("fieldset",{disabled:!z.value,class:"diagnosis-patient-basic-fieldset border-0 min-w-0 p-0 m-0"},[t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"姓名",prop:"patient_name"},{default:a(()=>[t(m,{modelValue:l.value.patient_name,"onUpdate:modelValue":e[1]||(e[1]=o=>l.value.patient_name=o),placeholder:"请输入姓名",disabled:!z.value},null,8,["modelValue","disabled"])]),_:1})]),_:1}),t(f,{span:12},{default:a(()=>[t(d,{label:"身份证号",prop:"id_card"},{default:a(()=>[tl.value?(u(),_(V,{key:0},[t(m,{"model-value":M.value?U.value||"":se(U.value||""),readonly:"",placeholder:"点击可查看完整身份证号",maxlength:"18",class:"cursor-pointer phone-mask-toggle",onClick:vl},null,8,["model-value"]),U.value&&!M.value?(u(),_("p",Pa," 当前为脱敏显示,点击输入框可查看完整号码 ")):P("",!0)],64)):(u(),r(m,{key:1,modelValue:l.value.id_card,"onUpdate:modelValue":e[2]||(e[2]=o=>l.value.id_card=o),placeholder:"请输入身份证号",maxlength:"18",disabled:!ol.value,onFocus:_l,onBlur:cl},null,8,["modelValue","disabled"]))]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"手机号",prop:"phone"},{default:a(()=>[al.value?(u(),_(V,{key:0},[t(m,{"model-value":$.value?R.value||"":de(R.value||""),readonly:"",placeholder:"点击可查看完整手机号",maxlength:"11",class:"cursor-pointer phone-mask-toggle",onClick:pl},null,8,["model-value"]),R.value&&!$.value?(u(),_("p",Oa," 当前为脱敏显示,点击输入框可查看完整号码 ")):P("",!0)],64)):(u(),r(m,{key:1,modelValue:l.value.phone,"onUpdate:modelValue":e[3]||(e[3]=o=>l.value.phone=o),placeholder:"请输入手机号",maxlength:"11",disabled:!z.value,onFocus:fl,onBlur:ml},null,8,["modelValue","disabled"]))]),_:1})]),_:1}),t(f,{span:12},{default:a(()=>[t(d,{label:"性别",prop:"gender"},{default:a(()=>[t(F,{modelValue:l.value.gender,"onUpdate:modelValue":e[4]||(e[4]=o=>l.value.gender=o),disabled:!z.value},{default:a(()=>[t(q,{label:1},{default:a(()=>[...e[51]||(e[51]=[s("男",-1)])]),_:1}),t(q,{label:0},{default:a(()=>[...e[52]||(e[52]=[s("女",-1)])]),_:1})]),_:1},8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"年龄",prop:"age"},{default:a(()=>[t(L,{modelValue:l.value.age,"onUpdate:modelValue":e[5]||(e[5]=o=>l.value.age=o),min:0,max:150,placeholder:"请输入年龄",class:"w-full",disabled:!z.value,controls:z.value},null,8,["modelValue","disabled","controls"])]),_:1})]),_:1})]),_:1})],8,Ea),t(n,{"content-position":"left"},{default:a(()=>[...e[53]||(e[53]=[s("生命体征",-1)])]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:8},{default:a(()=>[t(d,{label:"婚姻状态",prop:"marital_status"},{default:a(()=>[t(W,{modelValue:l.value.marital_status,"onUpdate:modelValue":e[6]||(e[6]=o=>l.value.marital_status=o),placeholder:"请选择婚姻状态",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},{default:a(()=>[t(S,{label:"未婚",value:0}),t(S,{label:"已婚",value:1}),t(S,{label:"离异",value:2})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(f,{span:8},{default:a(()=>[t(d,{label:"就诊人身高(cm)",prop:"height"},{default:a(()=>[t(L,{modelValue:l.value.height,"onUpdate:modelValue":e[7]||(e[7]=o=>l.value.height=o),min:0,max:300,placeholder:"请输入身高",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),t(f,{span:8},{default:a(()=>[t(d,{label:"体重(kg)",prop:"weight"},{default:a(()=>[t(L,{modelValue:l.value.weight,"onUpdate:modelValue":e[8]||(e[8]=o=>l.value.weight=o),min:0,max:500,step:.1,placeholder:"请输入体重",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:8},{default:a(()=>[t(d,{label:"地区",prop:"region"},{default:a(()=>[t(m,{modelValue:l.value.region,"onUpdate:modelValue":e[9]||(e[9]=o=>l.value.region=o),placeholder:"请输入地区"},null,8,["modelValue"])]),_:1})]),_:1}),t(f,{span:8},{default:a(()=>[t(d,{label:"就诊人血压(高压mmHg)",prop:"systolic_pressure"},{default:a(()=>[t(L,{modelValue:l.value.systolic_pressure,"onUpdate:modelValue":e[10]||(e[10]=o=>l.value.systolic_pressure=o),min:0,max:250,placeholder:"请输入高压",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),t(f,{span:8},{default:a(()=>[t(d,{label:"就诊人血压(低压mmHg)",prop:"diastolic_pressure"},{default:a(()=>[t(L,{modelValue:l.value.diastolic_pressure,"onUpdate:modelValue":e[11]||(e[11]=o=>l.value.diastolic_pressure=o),min:0,max:150,placeholder:"请输入低压",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:8},{default:a(()=>[t(d,{label:"空腹血糖(mmol/L)",prop:"fasting_blood_sugar"},{default:a(()=>[t(m,{modelValue:l.value.fasting_blood_sugar,"onUpdate:modelValue":e[12]||(e[12]=o=>l.value.fasting_blood_sugar=o),placeholder:"请输入空腹血糖,如:8.5 或 8-9",maxlength:"20",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"诊断类型",prop:"diagnosis_type"},{default:a(()=>[t(W,{modelValue:l.value.diagnosis_type,"onUpdate:modelValue":e[13]||(e[13]=o=>l.value.diagnosis_type=o),placeholder:"请选择诊断类型",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},{default:a(()=>[(u(!0),_(V,null,O(Ce.value,o=>(u(),r(S,{key:o.value,label:o.name,value:o.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"状态",prop:"status"},{default:a(()=>[t(F,{modelValue:l.value.status,"onUpdate:modelValue":e[14]||(e[14]=o=>l.value.status=o)},{default:a(()=>[t(q,{label:1},{default:a(()=>[...e[54]||(e[54]=[s("启用",-1)])]),_:1}),t(q,{label:0},{default:a(()=>[...e[55]||(e[55]=[s("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(f,{span:12},{default:a(()=>[t(d,{label:"渠道来源",prop:"create_source"},{default:a(()=>[t(W,{modelValue:l.value.create_source,"onUpdate:modelValue":e[15]||(e[15]=o=>l.value.create_source=o),placeholder:"请选择渠道来源",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},{default:a(()=>[(u(),_(V,null,O(rl,o=>t(S,{key:o.value,label:o.label,value:o.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"统计端就诊卡",prop:"show_card"},{default:a(()=>[t(ae,{modelValue:l.value.show_card,"onUpdate:modelValue":e[16]||(e[16]=o=>l.value.show_card=o),"active-value":1,"inactive-value":0,"active-text":"显示","inactive-text":"隐藏","inline-prompt":""},null,8,["modelValue"]),e[56]||(e[56]=H("span",{class:"form-tips ml-3"}," 关闭后,该就诊卡将不会出现在小程序统计端 ",-1))]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"在用药物",prop:"current_medications"},{default:a(()=>[t(m,{modelValue:l.value.current_medications,"onUpdate:modelValue":e[17]||(e[17]=o=>l.value.current_medications=o),type:"textarea",rows:3,placeholder:"请填写患者当前正在使用的药物(如降压药、降糖药等),多种请换行或顿号分隔",maxlength:"2000","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(n,{"content-position":"left"},{default:a(()=>[...e[57]||(e[57]=[s("主诉",-1)])]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"当地医院诊断日期",prop:"diagnosis_date"},{default:a(()=>[t(te,{modelValue:l.value.diagnosis_date,"onUpdate:modelValue":e[18]||(e[18]=o=>l.value.diagnosis_date=o),type:"date",placeholder:"请选择诊断日期","value-format":"YYYY-MM-DD",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},null,8,["modelValue"])]),_:1})]),_:1}),t(f,{span:12},{default:a(()=>[t(d,{label:"发现糖尿病患病史",prop:"diabetes_discovery_year"},{default:a(()=>[t(m,{modelValue:l.value.diabetes_discovery_year,"onUpdate:modelValue":e[19]||(e[19]=o=>l.value.diabetes_discovery_year=o),clearable:"",maxlength:"50","show-word-limit":"",placeholder:"可填数字或文字,如:5、1年、半年",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(d,{label:"当地医院诊断结果",prop:"local_hospital_diagnosis",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.local_hospital_diagnosis,"onUpdate:modelValue":e[20]||(e[20]=o=>l.value.local_hospital_diagnosis=o)},{default:a(()=>[t(h,{label:"糖尿病"},{default:a(()=>[...e[58]||(e[58]=[s("糖尿病",-1)])]),_:1}),t(h,{label:"消渴病"},{default:a(()=>[...e[59]||(e[59]=[s("消渴病",-1)])]),_:1}),t(h,{label:"糖尿病前期"},{default:a(()=>[...e[60]||(e[60]=[s("糖尿病前期",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"当地就诊医院名称",prop:"local_hospital_name"},{default:a(()=>[t(m,{modelValue:l.value.local_hospital_name,"onUpdate:modelValue":e[21]||(e[21]=o=>l.value.local_hospital_name=o),placeholder:"请输入当地就诊医院名称(不能填写当地、本地、互联网等关键词)"},null,8,["modelValue"])]),_:1}),t(n,{"content-position":"left"},{default:a(()=>[...e[61]||(e[61]=[s("现病史",-1)])]),_:1}),t(y,{gutter:20},{default:a(()=>[t(d,{label:"口腔感觉",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.appetite,"onUpdate:modelValue":e[22]||(e[22]=o=>l.value.appetite=o)},{default:a(()=>[(u(!0),_(V,null,O(Ie.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:20},{default:a(()=>[t(d,{label:"每日饮水量",class:"compact-form-item"},{default:a(()=>[t(F,{modelValue:l.value.water_intake,"onUpdate:modelValue":e[23]||(e[23]=o=>l.value.water_intake=o)},{default:a(()=>[t(C,{label:""},{default:a(()=>[...e[62]||(e[62]=[s("无",-1)])]),_:1}),(u(!0),_(V,null,O(Fe.value,o=>(u(),r(C,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"近一个月体重变化",class:"compact-form-item"},{default:a(()=>[t(F,{modelValue:l.value.weight_change,"onUpdate:modelValue":e[24]||(e[24]=o=>l.value.weight_change=o)},{default:a(()=>[t(C,{label:""},{default:a(()=>[...e[63]||(e[63]=[s("无",-1)])]),_:1}),(u(!0),_(V,null,O(ze.value,o=>(u(),r(C,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"脂肪肝程度",class:"compact-form-item"},{default:a(()=>[t(F,{modelValue:l.value.fatty_liver_degree,"onUpdate:modelValue":e[25]||(e[25]=o=>l.value.fatty_liver_degree=o)},{default:a(()=>[t(C,{label:""},{default:a(()=>[...e[64]||(e[64]=[s("无",-1)])]),_:1}),(u(!0),_(V,null,O(Ge.value,o=>(u(),r(C,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(d,{label:"饮食情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.diet_condition,"onUpdate:modelValue":e[26]||(e[26]=o=>l.value.diet_condition=o)},{default:a(()=>[(u(!0),_(V,null,O(Ae.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"肢体感觉",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.body_feeling,"onUpdate:modelValue":e[27]||(e[27]=o=>l.value.body_feeling=o)},{default:a(()=>[(u(!0),_(V,null,O(Be.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"睡眠情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.sleep_condition,"onUpdate:modelValue":e[28]||(e[28]=o=>l.value.sleep_condition=o)},{default:a(()=>[(u(!0),_(V,null,O(Le.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"眼睛情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.eye_condition,"onUpdate:modelValue":e[29]||(e[29]=o=>l.value.eye_condition=o)},{default:a(()=>[(u(!0),_(V,null,O(Se.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"头部感觉",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.head_feeling,"onUpdate:modelValue":e[30]||(e[30]=o=>l.value.head_feeling=o)},{default:a(()=>[(u(!0),_(V,null,O(Te.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"出汗情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.sweat_condition,"onUpdate:modelValue":e[31]||(e[31]=o=>l.value.sweat_condition=o)},{default:a(()=>[(u(!0),_(V,null,O($e.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"皮肤情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.skin_condition,"onUpdate:modelValue":e[32]||(e[32]=o=>l.value.skin_condition=o)},{default:a(()=>[(u(!0),_(V,null,O(Me.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"小便情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.urine_condition,"onUpdate:modelValue":e[33]||(e[33]=o=>l.value.urine_condition=o)},{default:a(()=>[(u(!0),_(V,null,O(qe.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"大便情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.stool_condition,"onUpdate:modelValue":e[34]||(e[34]=o=>l.value.stool_condition=o)},{default:a(()=>[(u(!0),_(V,null,O(Ye.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"腰肾情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.kidney_condition,"onUpdate:modelValue":e[35]||(e[35]=o=>l.value.kidney_condition=o)},{default:a(()=>[(u(!0),_(V,null,O(Je.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"其他补充",prop:"symptoms"},{default:a(()=>[t(m,{modelValue:l.value.symptoms,"onUpdate:modelValue":e[36]||(e[36]=o=>l.value.symptoms=o),type:"textarea",rows:3,placeholder:"请输入症状"},null,8,["modelValue"])]),_:1}),t(n,{"content-position":"left"},{default:a(()=>[...e[65]||(e[65]=[s("既往史",-1)])]),_:1}),t(d,{label:"",prop:"past_history",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.past_history,"onUpdate:modelValue":e[37]||(e[37]=o=>l.value.past_history=o)},{default:a(()=>[(u(!0),_(V,null,O(De.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(n,{"content-position":"left"},{default:a(()=>[...e[66]||(e[66]=[s("其他病史",-1)])]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:8},{default:a(()=>[t(d,{label:"外伤史"},{default:a(()=>[t(F,{modelValue:l.value.trauma_history,"onUpdate:modelValue":e[38]||(e[38]=o=>l.value.trauma_history=o)},{default:a(()=>[t(C,{label:1},{default:a(()=>[...e[67]||(e[67]=[s("有",-1)])]),_:1}),t(C,{label:0},{default:a(()=>[...e[68]||(e[68]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(f,{span:8},{default:a(()=>[t(d,{label:"手术史"},{default:a(()=>[t(F,{modelValue:l.value.surgery_history,"onUpdate:modelValue":e[39]||(e[39]=o=>l.value.surgery_history=o)},{default:a(()=>[t(C,{label:1},{default:a(()=>[...e[69]||(e[69]=[s("有",-1)])]),_:1}),t(C,{label:0},{default:a(()=>[...e[70]||(e[70]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(f,{span:8},{default:a(()=>[t(d,{label:"过敏史"},{default:a(()=>[t(F,{modelValue:l.value.allergy_history,"onUpdate:modelValue":e[40]||(e[40]=o=>l.value.allergy_history=o)},{default:a(()=>[t(C,{label:1},{default:a(()=>[...e[71]||(e[71]=[s("有",-1)])]),_:1}),t(C,{label:0},{default:a(()=>[...e[72]||(e[72]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"家族病史"},{default:a(()=>[t(F,{modelValue:l.value.family_history,"onUpdate:modelValue":e[41]||(e[41]=o=>l.value.family_history=o)},{default:a(()=>[t(C,{label:1},{default:a(()=>[...e[73]||(e[73]=[s("有",-1)])]),_:1}),t(C,{label:0},{default:a(()=>[...e[74]||(e[74]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(f,{span:12},{default:a(()=>[t(d,{label:"妊娠哺乳史"},{default:a(()=>[t(F,{modelValue:l.value.pregnancy_history,"onUpdate:modelValue":e[42]||(e[42]=o=>l.value.pregnancy_history=o)},{default:a(()=>[t(C,{label:1},{default:a(()=>[...e[75]||(e[75]=[s("有",-1)])]),_:1}),t(C,{label:0},{default:a(()=>[...e[76]||(e[76]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(n,{"content-position":"left"},{default:a(()=>[...e[77]||(e[77]=[s("诊断信息",-1)])]),_:1}),t(d,{label:"病史补充",prop:"remark"},{default:a(()=>[t(m,{modelValue:l.value.remark,"onUpdate:modelValue":e[43]||(e[43]=o=>l.value.remark=o),type:"textarea",rows:2,placeholder:"请输入病史补充"},null,8,["modelValue"])]),_:1})],8,Na)]),_:1},8,["model"])]),_:1}),t(B,{label:"医生备注",name:"doctorNote",disabled:!l.value.id,lazy:""},{default:a(()=>[l.value.id?(u(),_("div",Ra,[t(ma,{notes:ce.value,"diagnosis-id":Number(l.value.id),readonly:x.value,onRefresh:Pe},null,8,["notes","diagnosis-id","readonly"])])):(u(),r(Y,{key:1,description:"请先保存诊单后查看"}))]),_:1},8,["disabled"]),Ee.value?(u(),r(B,{key:0,label:"日常记录",name:"daily",disabled:!l.value.id,lazy:""},{default:a(()=>[l.value.id?(u(),r(ia,{key:0,ref_key:"dailyMatrixRef",ref:Ne,"diagnosis-id":Number(l.value.id),"patient-id":Number(l.value.patient_id),age:l.value.age,"patient-name":l.value.patient_name,"read-only":x.value},null,8,["diagnosis-id","patient-id","age","patient-name","read-only"])):(u(),r(Y,{key:1,description:"请先保存诊单后查看"}))]),_:1},8,["disabled"])):P("",!0),l.value.id&&ie.value?(u(),r(B,{key:1,label:"回访录音",name:"followupAudio",lazy:""},{default:a(()=>{var o,X;return[ee.value?(u(),r(c,{key:0,title:"正在检查回访录音状态…",type:"info",closable:!1,"show-icon":""})):ue.value?(u(),_("div",Ca,[t(c,{title:ue.value,type:"error",closable:!1,"show-icon":""},null,8,["title"]),t(we,{class:"mt-3",onClick:Re},{default:a(()=>[...e[78]||(e[78]=[s("重新加载",-1)])]),_:1})])):g.value&&((o=Z.value)!=null&&o.enabled)&&ve.value===Number(l.value.id)?(u(),r(na,{key:Number(l.value.id),ref_key:"followupAudioRef",ref:oe,"diagnosis-id":Number(l.value.id),"view-only":x.value,active:b.value==="followupAudio",capabilities:Z.value,"basic-dirty":ne.value,"before-apply":nl,onApplied:sl},null,8,["diagnosis-id","view-only","active","capabilities","basic-dirty"])):(u(),r(c,{key:3,title:((X=Z.value)==null?void 0:X.test_scope_allowed)===!1?"当前诊单未开放回访录音":"当前未启用回访录音,请联系管理员确认",type:"info",closable:!1,"show-icon":""},null,8,["title"]))]}),_:1})):P("",!0),j(I)(["tcm.diagnosis/chufang"])?(u(),r(B,{key:2,label:"处方",name:"bingli",disabled:!l.value.id},{default:a(()=>[l.value.id?(u(),_("div",Da,[t(sa,{ref_key:"caseRecordListRef",ref:re,"diagnosis-id":Number(l.value.id),"read-only":x.value,onView:hl,onOpenPrescription:xl},null,8,["diagnosis-id","read-only"])])):(u(),r(Y,{key:1,description:"请先保存诊单,开方后病历将在此显示"}))]),_:1},8,["disabled"])):P("",!0),j(I)(["tcm.diagnosis/patientOrders"])?(u(),r(B,{key:3,label:"业务订单",name:"patientOrders",disabled:!l.value.id,lazy:""},{default:a(()=>[l.value.id?(u(),r(_a,{key:0,"diagnosis-id":Number(l.value.id),"patient-id":Number(l.value.patient_id)||0},null,8,["diagnosis-id","patient-id"])):(u(),r(Y,{key:1,description:"请先保存诊单后查看业务订单"}))]),_:1},8,["disabled"])):P("",!0),j(I)(["tcm.diagnosis/huifang"])?(u(),r(B,{key:4,label:"视频录制回放记录",name:"visit",disabled:!l.value.id,lazy:""},{default:a(()=>[l.value.id?(u(),r(ra,{key:0,ref_key:"callRecordPanelRef",ref:ll,"diagnosis-id":Number(l.value.id)},null,8,["diagnosis-id"])):(u(),r(Y,{key:1,description:"请先保存诊单后再查看视频录制回放记录"}))]),_:1},8,["disabled"])):P("",!0),j(I)(["tcm.diagnosis/chat"])?(u(),r(B,{key:5,label:"聊天记录",name:"chat",disabled:!l.value.id,lazy:""},{default:a(()=>[b.value==="chat"&&l.value.id?(u(),r(pa,{key:0,"diagnosis-id":Number(l.value.id)},null,8,["diagnosis-id"])):l.value.id?P("",!0):(u(),r(Y,{key:1,description:"请先保存诊单后再查看聊天记录"}))]),_:1},8,["disabled"])):P("",!0),j(I)(["tcm.diagnosis/assign"])||j(I)(["tcm.diagnosis/detail"])?(u(),r(B,{key:6,label:"指派医助记录",name:"assignLog",disabled:!l.value.id,lazy:""},{default:a(()=>[l.value.id?(u(),r(va,{key:0,"diagnosis-id":Number(l.value.id)},null,8,["diagnosis-id"])):(u(),r(Y,{key:1,description:"请先保存诊单后再查看指派记录"}))]),_:1},8,["disabled"])):P("",!0),j(I)(["doctor.appointment/lists"])?(u(),r(B,{key:7,label:"挂号记录",name:"appointmentRecords",disabled:!l.value.id,lazy:""},{default:a(()=>[l.value.id?(u(),r(fa,{key:0,"diagnosis-id":Number(l.value.id)},null,8,["diagnosis-id"])):(u(),r(Y,{key:1,description:"请先保存诊单后再查看挂号记录"}))]),_:1},8,["disabled"])):P("",!0)]),_:1},8,["modelValue"]),t(ca,{ref_key:"prescriptionRef",ref:pe,onSuccess:e[45]||(e[45]=o=>{var X,je;return(je=(X=re.value)==null?void 0:X.refresh)==null?void 0:je.call(X)})},null,512)]),_:1},8,["modelValue","z-index"])])}}}),xt=ua(Fa,[["__scopeId","data-v-a84d8ebf"]]);export{xt as default}; +import{o as Pl,R as ke,M as p,by as Ol,q as u,r as _,v as t,D as a,Y as Rl,X as Cl,bd as Dl,s as H,bE as Il,L as s,O as r,bo as Fl,F as V,T as w,P,bb as Al,aA as zl,c9 as Bl,ca as Ll,bf as Sl,bq as Tl,J as $l,bh as Ml,bi as ql,G as O,I as Yl,az as Jl,cB as Gl,di as Wl,be as Xl,bC as Hl,K as jl,u as j,bm as Kl,B as Ql,p as T,E as he}from"./.pnpm-CyuAWpdG.js";import{$ as Zl,ac as Ke,ab as Qe,ae as ea,af as la,ad as aa}from"./tcm-BSADvQNg.js";import{e as ta,j as xe,u as oa,n as N,_ as ua}from"./index-Bkarz3gO.js";import{h as I}from"./perm-CHCBwnFR.js";import ia from"./DailyMatrix-BkYJBu_D.js";import{F as na,f as da}from"./FollowupAudioPanel-BQogJqk-.js";import sa from"./CaseRecordList-2_yvVfnZ.js";import ra from"./CallRecordPanel-PGnYdg0x.js";import pa from"./ImChatRecordPanel-CO99W60y.js";import va from"./AssignLogPanel-mqnmyStx.js";import fa from"./AppointmentRecordPanel-aR2VA9u1.js";import ma from"./NoteTimeline-D83GYvN5.js";/* empty css */import _a from"./PatientOrderList-Dk7f29yf.js";import ca from"./index-C_PSjf1W.js";import{g as ga}from"./patient-B_ifBl-W.js";import"./picker-BTh9eW9u.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";import"./DiagnosisTodoList-VonOdKxB.js";import"./blood-thresholds-QpDuElbH.js";import"./FollowupAudioReview-BDRNtxGL.js";import"./FollowupAudioField-Dz9Csp0b.js";import"./RecordingPlaybackBlock-DDHsYga7.js";import"./RecordingVideoPlayer-B0kkGDId.js";import"./dayjs-B2bPhvDy.js";import"./im-business-message-parse-DdA9BRrQ.js";import"./doctor-DBvYeWd3.js";import"./PrescriptionOrderDetailDrawer-CX7YbddA.js";import"./prescription-order-utils-CXfs2Bra.js";import"./index-DAIDDabA.js";import"./medicine-DPIOyHj8.js";import"./diabetes-discovery-display-B_wmGXQJ.js";import"./index-CTRSsggc.js";const ba={class:"edit-drawer"},ya={class:"tcm-dd-header"},Va={class:"tcm-dd-header__row"},wa={class:"tcm-dd-header__title"},ka={key:0,class:"tcm-dd-header__sub"},ha={key:0,class:"tcm-dd-header__name"},xa={key:1,class:"tcm-dd-header__id"},Ua={key:0,class:"tcm-dd-header__sep"},Na=["disabled"],Ea=["disabled"],Pa={key:0,class:"text-xs text-gray-400 mt-1"},Oa={key:0,class:"text-xs text-gray-400 mt-1"},Ra={key:0,class:"p-4"},Ca={key:1,role:"alert"},Da={key:0,class:"bingli-tab-content"},Ia={class:"tcm-dd-footer"},Fa=Pl({__name:"edit",emits:["success"],setup(Aa,{expose:Ze,emit:el}){const Ue=el;ta();const re=p(),ll=p(null),pe=p(),Ne=p(null),oe=p(null),Z=p(null),ee=p(!1),ue=p(""),ve=p(null),J=p("");let k=0,G;const g=p(!1),x=p(!1),fe=p(),D=p("add"),K=p(!1),A=T(()=>I(["tcm.diagnosis/phonePlain"])),Ee=T(()=>I(["tcm.diagnosis/dailyRecord"])),ie=T(()=>I(["tcm.diagnosis/followupAudio"])),me=p(!1),_e=p(!0),le=p(null),z=T(()=>x.value?!1:D.value==="add"?!0:_e.value),al=T(()=>D.value!=="edit"?!1:z.value?!A.value:!0),$=p(!1),tl=T(()=>D.value!=="edit"||!U.value?!1:z.value?!A.value:!0),ol=T(()=>z.value?D.value==="add"||!U.value?!0:A.value:!1),M=p(!1),b=p("basic"),ul=T(()=>x.value?"诊单详情":D.value==="add"?"新增诊单":"编辑诊单"),ce=p([]),Pe=async()=>{if(l.value.id)try{ce.value=await ga({diagnosis_id:Number(l.value.id)})||[]}catch{ce.value=[]}},Oe=p([]),il=async()=>{if(l.value.id)try{Oe.value=await Zl({diagnosis_id:Number(l.value.id)})||[]}catch{Oe.value=[]}};ke(()=>b.value,async i=>{i==="doctorNote"&&l.value.id&&await Pe(),i==="trackingNote"&&l.value.id&&await il()}),ke([g,b],()=>{g.value&&(b.value==="chat"&&!I(["tcm.diagnosis/chat"])&&(b.value="basic"),b.value==="visit"&&!I(["tcm.diagnosis/huifang"])&&(b.value="basic"),b.value==="assignLog"&&!I(["tcm.diagnosis/assign"])&&!I(["tcm.diagnosis/detail"])&&(b.value="basic"),b.value==="appointmentRecords"&&!I(["doctor.appointment/lists"])&&(b.value="basic"),b.value==="daily"&&!Ee.value&&(b.value="basic"))});const l=p({id:"",patient_id:"",patient_name:"",id_card:"",phone:"",gender:1,age:void 0,diagnosis_date:"",diagnosis_type:"",syndrome_type:"",diabetes_type:"",diabetes_discovery_year:"",local_hospital_diagnosis:[],local_hospital_name:"",marital_status:void 0,height:void 0,weight:void 0,region:"",systolic_pressure:void 0,diastolic_pressure:void 0,fasting_blood_sugar:"",appetite:[],water_intake:"",diet_condition:[],weight_change:"",body_feeling:[],sleep_condition:[],eye_condition:[],head_feeling:[],sweat_condition:[],skin_condition:[],urine_condition:[],stool_condition:[],kidney_condition:[],fatty_liver_degree:"",past_history:[],trauma_history:0,surgery_history:0,allergy_history:0,family_history:0,pregnancy_history:0,assistant_id:void 0,symptoms:"",tongue_coating:"",pulse:"",treatment_principle:"",prescription:"",doctor_advice:"",remark:"",current_medications:"",status:1,create_source:"admin",show_card:1,external_userid:""}),ge=()=>JSON.stringify({...l.value,phone:R.value||l.value.phone,id_card:U.value||l.value.id_card}),ne=T(()=>!x.value&&!!J.value&&ge()!==J.value),nl=()=>!ne.value&&g.value&&!x.value;async function dl(i,e){var v;return i==="followupAudio"&&ne.value?(xe.msgWarning("病历有未保存修改,请先保存后再进入回访录音审核,当前输入已保留"),!1):e==="followupAudio"?await((v=oe.value)==null?void 0:v.confirmLeave())??!0:!0}async function sl(i){var v,n;if(!g.value||Number(l.value.id)!==i)return;const e=k;try{if(await Ve(i,!0),e!==k||!g.value||Number(l.value.id)!==i)return;await((n=(v=Ne.value)==null?void 0:v.refresh)==null?void 0:n.call(v)),Ue("success")}catch{e===k&&xe.msgWarning("录音已采纳,但病历或日常记录刷新失败,请手动刷新查看")}}function Q(){G==null||G.abort(),G=void 0,Z.value=null,ve.value=null,ee.value=!1,ue.value=""}async function Re(){if(ee.value)return;Q();const i=Number(l.value.id);if(!g.value||!i||!ie.value)return;const e=k,v=new AbortController;G=v,ee.value=!0;const n=()=>G===v&&!v.signal.aborted&&e===k&&g.value&&Number(l.value.id)===i;try{const c=await da(i,v.signal);if(!n())return;if(typeof(c==null?void 0:c.enabled)!="boolean")throw new Error("Invalid capability response");Z.value=c,ve.value=i}catch{if(!n())return;ue.value="回访录音状态加载失败,请重新加载;若仍失败,请联系管理员检查权限或服务状态"}finally{n()&&(ee.value=!1,G=void 0)}}ke([g,()=>l.value.id,ie],()=>{!ie.value&&b.value==="followupAudio"&&(b.value="basic"),Q(),Re()},{flush:"sync"}),Ol(()=>{k++,Q()});const rl=[{value:"",label:"未设置"},{value:"admin",label:"后台建档"},{value:"mnp",label:"小程序完整建档"},{value:"mnp_daily",label:"小程序手机号快捷建档"}],R=p(""),U=p(""),be=p(!1),ye=p(!1),de=i=>!i||i.length<11?i:i.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),pl=()=>{R.value&&($.value=!$.value)},vl=()=>{U.value&&(M.value=!M.value)},se=i=>i&&(i.length===15?i.replace(/(\d{6})\d{5}(\d{4})/,"$1*****$2"):i.length===18?i.replace(/(\d{6})\d{8}(\d{4})/,"$1********$2"):i),fl=()=>{if(be.value=!0,!!R.value){if(A.value){l.value.phone=R.value;return}D.value==="add"&&(l.value.phone=R.value)}},ml=async()=>{if(be.value=!1,A.value){if(l.value.phone&&l.value.phone.length===11&&(R.value=l.value.phone,/^1[3-9]\d{9}$/.test(l.value.phone)))try{const i=await Ke({phone:l.value.phone,id:l.value.id||""});i.exists&&he.warning(i.message)}catch(i){console.error("检查手机号失败:",i)}return}if(D.value==="add"&&l.value.phone&&l.value.phone.length===11){if(R.value=l.value.phone,/^1[3-9]\d{9}$/.test(l.value.phone))try{const i=await Ke({phone:l.value.phone,id:l.value.id||""});i.exists&&he.warning(i.message)}catch(i){console.error("检查手机号失败:",i)}l.value.phone=de(l.value.phone)}},_l=()=>{if(ye.value=!0,!!U.value){if(A.value){l.value.id_card=U.value;return}D.value==="add"&&(l.value.id_card=U.value)}},cl=async()=>{ye.value=!1;const i=async e=>{if(/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e)){const v=parseInt(e.substring(6,10)),n=parseInt(e.substring(10,12)),c=parseInt(e.substring(12,14)),m=new Date;let d=m.getFullYear()-v;(m.getMonth()+1{const n=U.value||e;if(!n){v();return}if(!/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(n)){v(new Error("身份证号格式不正确"));return}v()},trigger:"blur"}],phone:[{required:!0,validator:(i,e,v)=>{const n=R.value||e;if(!n){v(new Error("请输入手机号"));return}if(!/^1[3-9]\d{9}$/.test(n)){v(new Error("手机号格式不正确"));return}v()},trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],age:[{required:!0,message:"请输入年龄",trigger:"blur"}],fasting_blood_sugar:[{required:!0,message:"请输入空腹血糖",trigger:"blur"}],diagnosis_type:[{required:!0,message:"请选择诊断类型",trigger:"change"}],local_hospital_name:[{required:!0,message:"请输入当地就诊医院名称",trigger:"blur"}],diabetes_discovery_year:[{max:50,message:"最多50个字符",trigger:"blur"}]},Ce=p([]),bl=p([]),yl=p([]),De=p([]),Ie=p([]),Fe=p([]),Ae=p([]),ze=p([]),Be=p([]),Le=p([]),Se=p([]),Te=p([]),$e=p([]),Me=p([]),qe=p([]),Ye=p([]),Je=p([]),Ge=p([]),We=async()=>{try{const[i,e,v,n,c,m,d,f,y,q,F,L,S,W,ae,te,h,E]=await Promise.all([N({type:"diagnosis_type"}),N({type:"syndrome_type"}),N({type:"diabetes_type"}),N({type:"past_history"}),N({type:"appetite"}),N({type:"water_intake"}),N({type:"diet_condition"}),N({type:"weight_change"}),N({type:"body_feeling"}),N({type:"sleep_condition"}),N({type:"eye_condition"}),N({type:"head_feeling"}),N({type:"sweat_condition"}),N({type:"skin_condition"}),N({type:"urine_condition"}),N({type:"stool_condition"}),N({type:"kidney_condition"}),N({type:"fatty_liver_degree"})]);Ce.value=(i==null?void 0:i.diagnosis_type)||[],bl.value=(e==null?void 0:e.syndrome_type)||[],yl.value=(v==null?void 0:v.diabetes_type)||[],De.value=(n==null?void 0:n.past_history)||[],Ie.value=(c==null?void 0:c.appetite)||[],Fe.value=(m==null?void 0:m.water_intake)||[],Ae.value=(d==null?void 0:d.diet_condition)||[],ze.value=(f==null?void 0:f.weight_change)||[],Be.value=(y==null?void 0:y.body_feeling)||[],Le.value=(q==null?void 0:q.sleep_condition)||[],Se.value=(F==null?void 0:F.eye_condition)||[],Te.value=(L==null?void 0:L.head_feeling)||[],$e.value=(S==null?void 0:S.sweat_condition)||[],Me.value=(W==null?void 0:W.skin_condition)||[],qe.value=(ae==null?void 0:ae.urine_condition)||[],Ye.value=(te==null?void 0:te.stool_condition)||[],Je.value=(h==null?void 0:h.kidney_condition)||[],Ge.value=(E==null?void 0:E.fatty_liver_degree)||[]}catch(i){console.error("获取字典数据失败:",i)}};async function Ve(i,e=!1){const v=k,n=await Qe({id:i});if(v!==k||!g.value)return;if(e&&ne.value){xe.msgWarning("录音已采纳,病历仍保留你的未保存修改;请核对后再保存,未用刷新覆盖输入");return}R.value=n.phone||"",U.value=n.id_card||"",me.value=!!n.patient_basic_locked,_e.value=n.can_edit_patient_basic!==!1,le.value=n.latest_prescription_order??null,n.phone=A.value?n.phone||"":de(n.phone||""),n.id_card=A.value?n.id_card||"":se(n.id_card||""),l.value=n,l.value.create_source=n.create_source??"",l.value.show_card=Number(n.show_card)===0?0:1;const c=n.diabetes_discovery_year;l.value.diabetes_discovery_year=c==null||c===""?"":String(c),J.value=ge()}const Xe=()=>{me.value=!1,_e.value=!0,le.value=null},Vl=async(i,e)=>{var n;const v=++k;if(K.value=!1,J.value="",Q(),l.value.id="",x.value=!1,D.value=i,g.value=!0,b.value="basic",$.value=!1,M.value=!1,Xe(),await We(),!(v!==k||!g.value)){if(i==="edit"&&e)await Ve(e);else if(i==="add"){const c=oa();l.value.assistant_id=((n=c.userInfo)==null?void 0:n.id)||"",l.value.diagnosis_type="follow_up"}}},wl=async i=>{if(!i)return;const e=++k;K.value=!1,J.value="",Q(),l.value.id="",x.value=!0,D.value="edit",g.value=!0,b.value="basic",$.value=!1,M.value=!1,Xe(),await We(),!(e!==k||!g.value)&&await Ve(i)},kl=async()=>{var v;if(x.value||K.value)return;const i=k;if(await((v=fe.value)==null?void 0:v.validate()),i!==k||!g.value)return;const e=JSON.parse(ge());K.value=!0;try{const n={...l.value,phone:R.value||l.value.phone,id_card:U.value||l.value.id_card};if(D.value==="add"){const c=await ea(n);if(i!==k||!g.value)return;if(c&&c.id){D.value="edit",$.value=!1,M.value=!1,l.value.id=c.id,e.id=c.id;try{const m=await Qe({id:c.id});if(i!==k||!g.value)return;l.value.patient_id=m.patient_id,e.patient_id=m.patient_id,R.value=m.phone||"",U.value=m.id_card||"",l.value.phone=A.value?m.phone||"":de(m.phone||""),l.value.id_card=A.value?m.id_card||"":se(m.id_card||"")}catch(m){console.error("获取详情失败:",m)}}}else await la(n);if(i!==k||!g.value)return;J.value=JSON.stringify(e),Ue("success")}catch(n){console.error("提交失败:",n)}finally{i===k&&(K.value=!1)}},hl=i=>{var e;(e=pe.value)==null||e.openById(i.id,{slipType:"user"})},xl=()=>{var e;if(x.value)return;const i={id:l.value.id,diagnosis_id:l.value.id,appointment_id:0,patient_name:l.value.patient_name,patient_phone:R.value||l.value.phone,patient_gender:l.value.gender,patient_age:l.value.age,case_record:JSON.parse(JSON.stringify(l.value))};(e=pe.value)==null||e.open(i)},He=async()=>{var i;oe.value&&!await oe.value.confirmLeave()||(k++,Q(),J.value="",(i=fe.value)==null||i.resetFields(),l.value={id:"",patient_id:"",patient_name:"",id_card:"",phone:"",gender:1,age:void 0,diagnosis_date:"",diagnosis_type:"",syndrome_type:"",diabetes_type:"",diabetes_discovery_year:"",local_hospital_diagnosis:[],local_hospital_name:"",marital_status:void 0,height:void 0,weight:void 0,region:"",systolic_pressure:void 0,diastolic_pressure:void 0,fasting_blood_sugar:"",appetite:[],water_intake:"",diet_condition:[],weight_change:"",body_feeling:[],sleep_condition:[],eye_condition:[],head_feeling:[],sweat_condition:[],skin_condition:[],urine_condition:[],stool_condition:[],kidney_condition:[],fatty_liver_degree:"",past_history:[],trauma_history:0,surgery_history:0,allergy_history:0,family_history:0,pregnancy_history:0,assistant_id:void 0,symptoms:"",tongue_coating:"",pulse:"",treatment_principle:"",prescription:"",doctor_advice:"",remark:"",current_medications:"",status:1,create_source:"admin",show_card:1,external_userid:""},R.value="",U.value="",be.value=!1,ye.value=!1,$.value=!1,M.value=!1,x.value=!1,g.value=!1)};return Ze({open:Vl,openViewOnly:wl,refreshCaseList:()=>{var i,e;return(e=(i=re.value)==null?void 0:i.refresh)==null?void 0:e.call(i)}}),(i,e)=>{const v=Kl,n=Il,c=Fl,m=zl,d=Al,f=Ll,y=Bl,q=Tl,F=Sl,L=$l,S=ql,W=Ml,ae=Yl,te=Jl,h=Wl,E=Gl,C=Xl,Ul=Dl,B=Cl,Y=Hl,we=jl,Nl=Rl,El=Ql;return u(),_("div",ba,[t(El,{modelValue:g.value,"onUpdate:modelValue":e[46]||(e[46]=o=>g.value=o),size:"60%","before-close":He,"z-index":x.value?4e3:1500,modal:!0,class:"diagnosis-drawer tcm-diagnosis-drawer"},{header:a(()=>[H("div",ya,[H("div",Va,[H("h2",wa,w(ul.value),1),x.value?(u(),r(v,{key:0,type:"info",effect:"plain",round:"",size:"small",class:"tcm-dd-header__badge"},{default:a(()=>[...e[47]||(e[47]=[s(" 只读 ",-1)])]),_:1})):D.value==="add"?(u(),r(v,{key:1,type:"success",effect:"plain",round:"",size:"small",class:"tcm-dd-header__badge"},{default:a(()=>[...e[48]||(e[48]=[s(" 新建 ",-1)])]),_:1})):(u(),r(v,{key:2,type:"warning",effect:"plain",round:"",size:"small",class:"tcm-dd-header__badge"},{default:a(()=>[...e[49]||(e[49]=[s(" 编辑 ",-1)])]),_:1}))]),l.value.patient_name||l.value.id?(u(),_("p",ka,[l.value.patient_name?(u(),_("span",ha,w(l.value.patient_name),1)):P("",!0),l.value.id?(u(),_("span",xa,[l.value.patient_name?(u(),_("span",Ua,"·")):P("",!0),s(" 诊单 "+w(l.value.patient_id||l.value.id),1)])):P("",!0)])):P("",!0)])]),footer:a(()=>[H("div",Ia,[t(we,{class:"tcm-dd-footer__btn",onClick:He},{default:a(()=>[s(w(x.value?"关闭":"取消"),1)]),_:1}),!x.value&&b.value==="basic"?(u(),r(we,{key:0,class:"tcm-dd-footer__btn",type:"primary",onClick:kl,loading:K.value},{default:a(()=>[...e[79]||(e[79]=[s(" 保存病历 ",-1)])]),_:1},8,["loading"])):P("",!0)])]),default:a(()=>[t(Nl,{modelValue:b.value,"onUpdate:modelValue":e[44]||(e[44]=o=>b.value=o),"before-leave":dl,class:"diagnosis-tabs tcm-diagnosis-tabs"},{default:a(()=>[t(B,{label:"病历",name:"basic"},{default:a(()=>[t(Ul,{ref_key:"formRef",ref:fe,model:l.value,rules:gl,"label-width":"160px"},{default:a(()=>[H("fieldset",{disabled:x.value,class:"diagnosis-view-fieldset border-0 min-w-0 p-0 m-0"},[t(n,{"content-position":"left"},{default:a(()=>[...e[50]||(e[50]=[s("基本信息",-1)])]),_:1}),D.value==="edit"&&me.value&&!z.value?(u(),r(c,{key:0,type:"warning",closable:!1,"show-icon":"",class:"mb-3"},{default:a(()=>[le.value?(u(),_(V,{key:0},[s(" 最近业务订单 #"+w(le.value.id)+" 状态为「"+w(le.value.fulfillment_status_text)+"」,患者基本信息不可修改 ",1)],64)):(u(),_(V,{key:1},[s(" 存在未完成的业务订单,患者基本信息不可修改 ")],64))]),_:1})):P("",!0),t(d,{label:"诊单ID"},{default:a(()=>[t(m,{modelValue:l.value.patient_id,"onUpdate:modelValue":e[0]||(e[0]=o=>l.value.patient_id=o),disabled:"",placeholder:"系统自动生成"},null,8,["modelValue"])]),_:1}),H("fieldset",{disabled:!z.value,class:"diagnosis-patient-basic-fieldset border-0 min-w-0 p-0 m-0"},[t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"姓名",prop:"patient_name"},{default:a(()=>[t(m,{modelValue:l.value.patient_name,"onUpdate:modelValue":e[1]||(e[1]=o=>l.value.patient_name=o),placeholder:"请输入姓名",disabled:!z.value},null,8,["modelValue","disabled"])]),_:1})]),_:1}),t(f,{span:12},{default:a(()=>[t(d,{label:"身份证号",prop:"id_card"},{default:a(()=>[tl.value?(u(),_(V,{key:0},[t(m,{"model-value":M.value?U.value||"":se(U.value||""),readonly:"",placeholder:"点击可查看完整身份证号",maxlength:"18",class:"cursor-pointer phone-mask-toggle",onClick:vl},null,8,["model-value"]),U.value&&!M.value?(u(),_("p",Pa," 当前为脱敏显示,点击输入框可查看完整号码 ")):P("",!0)],64)):(u(),r(m,{key:1,modelValue:l.value.id_card,"onUpdate:modelValue":e[2]||(e[2]=o=>l.value.id_card=o),placeholder:"请输入身份证号",maxlength:"18",disabled:!ol.value,onFocus:_l,onBlur:cl},null,8,["modelValue","disabled"]))]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"手机号",prop:"phone"},{default:a(()=>[al.value?(u(),_(V,{key:0},[t(m,{"model-value":$.value?R.value||"":de(R.value||""),readonly:"",placeholder:"点击可查看完整手机号",maxlength:"11",class:"cursor-pointer phone-mask-toggle",onClick:pl},null,8,["model-value"]),R.value&&!$.value?(u(),_("p",Oa," 当前为脱敏显示,点击输入框可查看完整号码 ")):P("",!0)],64)):(u(),r(m,{key:1,modelValue:l.value.phone,"onUpdate:modelValue":e[3]||(e[3]=o=>l.value.phone=o),placeholder:"请输入手机号",maxlength:"11",disabled:!z.value,onFocus:fl,onBlur:ml},null,8,["modelValue","disabled"]))]),_:1})]),_:1}),t(f,{span:12},{default:a(()=>[t(d,{label:"性别",prop:"gender"},{default:a(()=>[t(F,{modelValue:l.value.gender,"onUpdate:modelValue":e[4]||(e[4]=o=>l.value.gender=o),disabled:!z.value},{default:a(()=>[t(q,{label:1},{default:a(()=>[...e[51]||(e[51]=[s("男",-1)])]),_:1}),t(q,{label:0},{default:a(()=>[...e[52]||(e[52]=[s("女",-1)])]),_:1})]),_:1},8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"年龄",prop:"age"},{default:a(()=>[t(L,{modelValue:l.value.age,"onUpdate:modelValue":e[5]||(e[5]=o=>l.value.age=o),min:0,max:150,placeholder:"请输入年龄",class:"w-full",disabled:!z.value,controls:z.value},null,8,["modelValue","disabled","controls"])]),_:1})]),_:1})]),_:1})],8,Ea),t(n,{"content-position":"left"},{default:a(()=>[...e[53]||(e[53]=[s("生命体征",-1)])]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:8},{default:a(()=>[t(d,{label:"婚姻状态",prop:"marital_status"},{default:a(()=>[t(W,{modelValue:l.value.marital_status,"onUpdate:modelValue":e[6]||(e[6]=o=>l.value.marital_status=o),placeholder:"请选择婚姻状态",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},{default:a(()=>[t(S,{label:"未婚",value:0}),t(S,{label:"已婚",value:1}),t(S,{label:"离异",value:2})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(f,{span:8},{default:a(()=>[t(d,{label:"就诊人身高(cm)",prop:"height"},{default:a(()=>[t(L,{modelValue:l.value.height,"onUpdate:modelValue":e[7]||(e[7]=o=>l.value.height=o),min:0,max:300,placeholder:"请输入身高",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),t(f,{span:8},{default:a(()=>[t(d,{label:"体重(kg)",prop:"weight"},{default:a(()=>[t(L,{modelValue:l.value.weight,"onUpdate:modelValue":e[8]||(e[8]=o=>l.value.weight=o),min:0,max:500,step:.1,placeholder:"请输入体重",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:8},{default:a(()=>[t(d,{label:"地区",prop:"region"},{default:a(()=>[t(m,{modelValue:l.value.region,"onUpdate:modelValue":e[9]||(e[9]=o=>l.value.region=o),placeholder:"请输入地区"},null,8,["modelValue"])]),_:1})]),_:1}),t(f,{span:8},{default:a(()=>[t(d,{label:"就诊人血压(高压mmHg)",prop:"systolic_pressure"},{default:a(()=>[t(L,{modelValue:l.value.systolic_pressure,"onUpdate:modelValue":e[10]||(e[10]=o=>l.value.systolic_pressure=o),min:0,max:250,placeholder:"请输入高压",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),t(f,{span:8},{default:a(()=>[t(d,{label:"就诊人血压(低压mmHg)",prop:"diastolic_pressure"},{default:a(()=>[t(L,{modelValue:l.value.diastolic_pressure,"onUpdate:modelValue":e[11]||(e[11]=o=>l.value.diastolic_pressure=o),min:0,max:150,placeholder:"请输入低压",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:8},{default:a(()=>[t(d,{label:"空腹血糖(mmol/L)",prop:"fasting_blood_sugar"},{default:a(()=>[t(m,{modelValue:l.value.fasting_blood_sugar,"onUpdate:modelValue":e[12]||(e[12]=o=>l.value.fasting_blood_sugar=o),placeholder:"请输入空腹血糖,如:8.5 或 8-9",maxlength:"20",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"诊断类型",prop:"diagnosis_type"},{default:a(()=>[t(W,{modelValue:l.value.diagnosis_type,"onUpdate:modelValue":e[13]||(e[13]=o=>l.value.diagnosis_type=o),placeholder:"请选择诊断类型",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},{default:a(()=>[(u(!0),_(V,null,O(Ce.value,o=>(u(),r(S,{key:o.value,label:o.name,value:o.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"状态",prop:"status"},{default:a(()=>[t(F,{modelValue:l.value.status,"onUpdate:modelValue":e[14]||(e[14]=o=>l.value.status=o)},{default:a(()=>[t(q,{label:1},{default:a(()=>[...e[54]||(e[54]=[s("启用",-1)])]),_:1}),t(q,{label:0},{default:a(()=>[...e[55]||(e[55]=[s("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(f,{span:12},{default:a(()=>[t(d,{label:"渠道来源",prop:"create_source"},{default:a(()=>[t(W,{modelValue:l.value.create_source,"onUpdate:modelValue":e[15]||(e[15]=o=>l.value.create_source=o),placeholder:"请选择渠道来源",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},{default:a(()=>[(u(),_(V,null,O(rl,o=>t(S,{key:o.value,label:o.label,value:o.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"统计端就诊卡",prop:"show_card"},{default:a(()=>[t(ae,{modelValue:l.value.show_card,"onUpdate:modelValue":e[16]||(e[16]=o=>l.value.show_card=o),"active-value":1,"inactive-value":0,"active-text":"显示","inactive-text":"隐藏","inline-prompt":""},null,8,["modelValue"]),e[56]||(e[56]=H("span",{class:"form-tips ml-3"}," 关闭后,该就诊卡将不会出现在小程序统计端 ",-1))]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"在用药物",prop:"current_medications"},{default:a(()=>[t(m,{modelValue:l.value.current_medications,"onUpdate:modelValue":e[17]||(e[17]=o=>l.value.current_medications=o),type:"textarea",rows:3,placeholder:"请填写患者当前正在使用的药物(如降压药、降糖药等),多种请换行或顿号分隔",maxlength:"2000","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(n,{"content-position":"left"},{default:a(()=>[...e[57]||(e[57]=[s("主诉",-1)])]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"当地医院诊断日期",prop:"diagnosis_date"},{default:a(()=>[t(te,{modelValue:l.value.diagnosis_date,"onUpdate:modelValue":e[18]||(e[18]=o=>l.value.diagnosis_date=o),type:"date",placeholder:"请选择诊断日期","value-format":"YYYY-MM-DD",class:"w-full","popper-options":{strategy:"fixed"},"popper-class":"high-z-index"},null,8,["modelValue"])]),_:1})]),_:1}),t(f,{span:12},{default:a(()=>[t(d,{label:"发现糖尿病患病史",prop:"diabetes_discovery_year"},{default:a(()=>[t(m,{modelValue:l.value.diabetes_discovery_year,"onUpdate:modelValue":e[19]||(e[19]=o=>l.value.diabetes_discovery_year=o),clearable:"",maxlength:"50","show-word-limit":"",placeholder:"可填数字或文字,如:5、1年、半年",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(d,{label:"当地医院诊断结果",prop:"local_hospital_diagnosis",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.local_hospital_diagnosis,"onUpdate:modelValue":e[20]||(e[20]=o=>l.value.local_hospital_diagnosis=o)},{default:a(()=>[t(h,{label:"糖尿病"},{default:a(()=>[...e[58]||(e[58]=[s("糖尿病",-1)])]),_:1}),t(h,{label:"消渴病"},{default:a(()=>[...e[59]||(e[59]=[s("消渴病",-1)])]),_:1}),t(h,{label:"糖尿病前期"},{default:a(()=>[...e[60]||(e[60]=[s("糖尿病前期",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"当地就诊医院名称",prop:"local_hospital_name"},{default:a(()=>[t(m,{modelValue:l.value.local_hospital_name,"onUpdate:modelValue":e[21]||(e[21]=o=>l.value.local_hospital_name=o),placeholder:"请输入当地就诊医院名称(不能填写当地、本地、互联网等关键词)"},null,8,["modelValue"])]),_:1}),t(n,{"content-position":"left"},{default:a(()=>[...e[61]||(e[61]=[s("现病史",-1)])]),_:1}),t(y,{gutter:20},{default:a(()=>[t(d,{label:"口腔感觉",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.appetite,"onUpdate:modelValue":e[22]||(e[22]=o=>l.value.appetite=o)},{default:a(()=>[(u(!0),_(V,null,O(Ie.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:20},{default:a(()=>[t(d,{label:"每日饮水量",class:"compact-form-item"},{default:a(()=>[t(F,{modelValue:l.value.water_intake,"onUpdate:modelValue":e[23]||(e[23]=o=>l.value.water_intake=o)},{default:a(()=>[t(C,{label:""},{default:a(()=>[...e[62]||(e[62]=[s("无",-1)])]),_:1}),(u(!0),_(V,null,O(Fe.value,o=>(u(),r(C,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"近一个月体重变化",class:"compact-form-item"},{default:a(()=>[t(F,{modelValue:l.value.weight_change,"onUpdate:modelValue":e[24]||(e[24]=o=>l.value.weight_change=o)},{default:a(()=>[t(C,{label:""},{default:a(()=>[...e[63]||(e[63]=[s("无",-1)])]),_:1}),(u(!0),_(V,null,O(ze.value,o=>(u(),r(C,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"脂肪肝程度",class:"compact-form-item"},{default:a(()=>[t(F,{modelValue:l.value.fatty_liver_degree,"onUpdate:modelValue":e[25]||(e[25]=o=>l.value.fatty_liver_degree=o)},{default:a(()=>[t(C,{label:""},{default:a(()=>[...e[64]||(e[64]=[s("无",-1)])]),_:1}),(u(!0),_(V,null,O(Ge.value,o=>(u(),r(C,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(d,{label:"饮食情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.diet_condition,"onUpdate:modelValue":e[26]||(e[26]=o=>l.value.diet_condition=o)},{default:a(()=>[(u(!0),_(V,null,O(Ae.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"肢体感觉",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.body_feeling,"onUpdate:modelValue":e[27]||(e[27]=o=>l.value.body_feeling=o)},{default:a(()=>[(u(!0),_(V,null,O(Be.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"睡眠情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.sleep_condition,"onUpdate:modelValue":e[28]||(e[28]=o=>l.value.sleep_condition=o)},{default:a(()=>[(u(!0),_(V,null,O(Le.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"眼睛情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.eye_condition,"onUpdate:modelValue":e[29]||(e[29]=o=>l.value.eye_condition=o)},{default:a(()=>[(u(!0),_(V,null,O(Se.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"头部感觉",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.head_feeling,"onUpdate:modelValue":e[30]||(e[30]=o=>l.value.head_feeling=o)},{default:a(()=>[(u(!0),_(V,null,O(Te.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"出汗情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.sweat_condition,"onUpdate:modelValue":e[31]||(e[31]=o=>l.value.sweat_condition=o)},{default:a(()=>[(u(!0),_(V,null,O($e.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"皮肤情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.skin_condition,"onUpdate:modelValue":e[32]||(e[32]=o=>l.value.skin_condition=o)},{default:a(()=>[(u(!0),_(V,null,O(Me.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"小便情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.urine_condition,"onUpdate:modelValue":e[33]||(e[33]=o=>l.value.urine_condition=o)},{default:a(()=>[(u(!0),_(V,null,O(qe.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"大便情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.stool_condition,"onUpdate:modelValue":e[34]||(e[34]=o=>l.value.stool_condition=o)},{default:a(()=>[(u(!0),_(V,null,O(Ye.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"腰肾情况",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.kidney_condition,"onUpdate:modelValue":e[35]||(e[35]=o=>l.value.kidney_condition=o)},{default:a(()=>[(u(!0),_(V,null,O(Je.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(d,{label:"其他补充",prop:"symptoms"},{default:a(()=>[t(m,{modelValue:l.value.symptoms,"onUpdate:modelValue":e[36]||(e[36]=o=>l.value.symptoms=o),type:"textarea",rows:3,placeholder:"请输入症状"},null,8,["modelValue"])]),_:1}),t(n,{"content-position":"left"},{default:a(()=>[...e[65]||(e[65]=[s("既往史",-1)])]),_:1}),t(d,{label:"",prop:"past_history",class:"checkbox-form-item"},{default:a(()=>[t(E,{modelValue:l.value.past_history,"onUpdate:modelValue":e[37]||(e[37]=o=>l.value.past_history=o)},{default:a(()=>[(u(!0),_(V,null,O(De.value,o=>(u(),r(h,{key:o.value,label:o.value},{default:a(()=>[s(w(o.name),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(n,{"content-position":"left"},{default:a(()=>[...e[66]||(e[66]=[s("其他病史",-1)])]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:8},{default:a(()=>[t(d,{label:"外伤史"},{default:a(()=>[t(F,{modelValue:l.value.trauma_history,"onUpdate:modelValue":e[38]||(e[38]=o=>l.value.trauma_history=o)},{default:a(()=>[t(C,{label:1},{default:a(()=>[...e[67]||(e[67]=[s("有",-1)])]),_:1}),t(C,{label:0},{default:a(()=>[...e[68]||(e[68]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(f,{span:8},{default:a(()=>[t(d,{label:"手术史"},{default:a(()=>[t(F,{modelValue:l.value.surgery_history,"onUpdate:modelValue":e[39]||(e[39]=o=>l.value.surgery_history=o)},{default:a(()=>[t(C,{label:1},{default:a(()=>[...e[69]||(e[69]=[s("有",-1)])]),_:1}),t(C,{label:0},{default:a(()=>[...e[70]||(e[70]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(f,{span:8},{default:a(()=>[t(d,{label:"过敏史"},{default:a(()=>[t(F,{modelValue:l.value.allergy_history,"onUpdate:modelValue":e[40]||(e[40]=o=>l.value.allergy_history=o)},{default:a(()=>[t(C,{label:1},{default:a(()=>[...e[71]||(e[71]=[s("有",-1)])]),_:1}),t(C,{label:0},{default:a(()=>[...e[72]||(e[72]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(y,{gutter:20},{default:a(()=>[t(f,{span:12},{default:a(()=>[t(d,{label:"家族病史"},{default:a(()=>[t(F,{modelValue:l.value.family_history,"onUpdate:modelValue":e[41]||(e[41]=o=>l.value.family_history=o)},{default:a(()=>[t(C,{label:1},{default:a(()=>[...e[73]||(e[73]=[s("有",-1)])]),_:1}),t(C,{label:0},{default:a(()=>[...e[74]||(e[74]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(f,{span:12},{default:a(()=>[t(d,{label:"妊娠哺乳史"},{default:a(()=>[t(F,{modelValue:l.value.pregnancy_history,"onUpdate:modelValue":e[42]||(e[42]=o=>l.value.pregnancy_history=o)},{default:a(()=>[t(C,{label:1},{default:a(()=>[...e[75]||(e[75]=[s("有",-1)])]),_:1}),t(C,{label:0},{default:a(()=>[...e[76]||(e[76]=[s("无",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(n,{"content-position":"left"},{default:a(()=>[...e[77]||(e[77]=[s("诊断信息",-1)])]),_:1}),t(d,{label:"病史补充",prop:"remark"},{default:a(()=>[t(m,{modelValue:l.value.remark,"onUpdate:modelValue":e[43]||(e[43]=o=>l.value.remark=o),type:"textarea",rows:2,placeholder:"请输入病史补充"},null,8,["modelValue"])]),_:1})],8,Na)]),_:1},8,["model"])]),_:1}),t(B,{label:"医生备注",name:"doctorNote",disabled:!l.value.id,lazy:""},{default:a(()=>[l.value.id?(u(),_("div",Ra,[t(ma,{notes:ce.value,"diagnosis-id":Number(l.value.id),readonly:x.value,onRefresh:Pe},null,8,["notes","diagnosis-id","readonly"])])):(u(),r(Y,{key:1,description:"请先保存诊单后查看"}))]),_:1},8,["disabled"]),Ee.value?(u(),r(B,{key:0,label:"日常记录",name:"daily",disabled:!l.value.id,lazy:""},{default:a(()=>[l.value.id?(u(),r(ia,{key:0,ref_key:"dailyMatrixRef",ref:Ne,"diagnosis-id":Number(l.value.id),"patient-id":Number(l.value.patient_id),age:l.value.age,"patient-name":l.value.patient_name,"read-only":x.value},null,8,["diagnosis-id","patient-id","age","patient-name","read-only"])):(u(),r(Y,{key:1,description:"请先保存诊单后查看"}))]),_:1},8,["disabled"])):P("",!0),l.value.id&&ie.value?(u(),r(B,{key:1,label:"回访录音",name:"followupAudio",lazy:""},{default:a(()=>{var o,X;return[ee.value?(u(),r(c,{key:0,title:"正在检查回访录音状态…",type:"info",closable:!1,"show-icon":""})):ue.value?(u(),_("div",Ca,[t(c,{title:ue.value,type:"error",closable:!1,"show-icon":""},null,8,["title"]),t(we,{class:"mt-3",onClick:Re},{default:a(()=>[...e[78]||(e[78]=[s("重新加载",-1)])]),_:1})])):g.value&&((o=Z.value)!=null&&o.enabled)&&ve.value===Number(l.value.id)?(u(),r(na,{key:Number(l.value.id),ref_key:"followupAudioRef",ref:oe,"diagnosis-id":Number(l.value.id),"view-only":x.value,active:b.value==="followupAudio",capabilities:Z.value,"basic-dirty":ne.value,"before-apply":nl,onApplied:sl},null,8,["diagnosis-id","view-only","active","capabilities","basic-dirty"])):(u(),r(c,{key:3,title:((X=Z.value)==null?void 0:X.test_scope_allowed)===!1?"当前诊单未开放回访录音":"当前未启用回访录音,请联系管理员确认",type:"info",closable:!1,"show-icon":""},null,8,["title"]))]}),_:1})):P("",!0),j(I)(["tcm.diagnosis/chufang"])?(u(),r(B,{key:2,label:"处方",name:"bingli",disabled:!l.value.id},{default:a(()=>[l.value.id?(u(),_("div",Da,[t(sa,{ref_key:"caseRecordListRef",ref:re,"diagnosis-id":Number(l.value.id),"read-only":x.value,onView:hl,onOpenPrescription:xl},null,8,["diagnosis-id","read-only"])])):(u(),r(Y,{key:1,description:"请先保存诊单,开方后病历将在此显示"}))]),_:1},8,["disabled"])):P("",!0),j(I)(["tcm.diagnosis/patientOrders"])?(u(),r(B,{key:3,label:"业务订单",name:"patientOrders",disabled:!l.value.id,lazy:""},{default:a(()=>[l.value.id?(u(),r(_a,{key:0,"diagnosis-id":Number(l.value.id),"patient-id":Number(l.value.patient_id)||0},null,8,["diagnosis-id","patient-id"])):(u(),r(Y,{key:1,description:"请先保存诊单后查看业务订单"}))]),_:1},8,["disabled"])):P("",!0),j(I)(["tcm.diagnosis/huifang"])?(u(),r(B,{key:4,label:"视频录制回放记录",name:"visit",disabled:!l.value.id,lazy:""},{default:a(()=>[l.value.id?(u(),r(ra,{key:0,ref_key:"callRecordPanelRef",ref:ll,"diagnosis-id":Number(l.value.id)},null,8,["diagnosis-id"])):(u(),r(Y,{key:1,description:"请先保存诊单后再查看视频录制回放记录"}))]),_:1},8,["disabled"])):P("",!0),j(I)(["tcm.diagnosis/chat"])?(u(),r(B,{key:5,label:"聊天记录",name:"chat",disabled:!l.value.id,lazy:""},{default:a(()=>[b.value==="chat"&&l.value.id?(u(),r(pa,{key:0,"diagnosis-id":Number(l.value.id)},null,8,["diagnosis-id"])):l.value.id?P("",!0):(u(),r(Y,{key:1,description:"请先保存诊单后再查看聊天记录"}))]),_:1},8,["disabled"])):P("",!0),j(I)(["tcm.diagnosis/assign"])||j(I)(["tcm.diagnosis/detail"])?(u(),r(B,{key:6,label:"指派医助记录",name:"assignLog",disabled:!l.value.id,lazy:""},{default:a(()=>[l.value.id?(u(),r(va,{key:0,"diagnosis-id":Number(l.value.id)},null,8,["diagnosis-id"])):(u(),r(Y,{key:1,description:"请先保存诊单后再查看指派记录"}))]),_:1},8,["disabled"])):P("",!0),j(I)(["doctor.appointment/lists"])?(u(),r(B,{key:7,label:"挂号记录",name:"appointmentRecords",disabled:!l.value.id,lazy:""},{default:a(()=>[l.value.id?(u(),r(fa,{key:0,"diagnosis-id":Number(l.value.id)},null,8,["diagnosis-id"])):(u(),r(Y,{key:1,description:"请先保存诊单后再查看挂号记录"}))]),_:1},8,["disabled"])):P("",!0)]),_:1},8,["modelValue"]),t(ca,{ref_key:"prescriptionRef",ref:pe,onSuccess:e[45]||(e[45]=o=>{var X,je;return(je=(X=re.value)==null?void 0:X.refresh)==null?void 0:je.call(X)})},null,512)]),_:1},8,["modelValue","z-index"])])}}}),xt=ua(Fa,[["__scopeId","data-v-a84d8ebf"]]);export{xt as default}; diff --git a/server/public/admin/assets/edit-p6uNhAfj.js b/server/public/admin/assets/edit-C9_x1u1_.js similarity index 94% rename from server/public/admin/assets/edit-p6uNhAfj.js rename to server/public/admin/assets/edit-C9_x1u1_.js index 258129172..f00378fae 100644 --- a/server/public/admin/assets/edit-p6uNhAfj.js +++ b/server/public/admin/assets/edit-C9_x1u1_.js @@ -1 +1 @@ -import{_ as D}from"./index-9qT8_5W1.js";import{o as v,Q as I,W as F,ap as M,q as N,r as $,v as a,D as t,br as j,bj as A,bd as G,u as l,bb as H,s as u,aA as L,bf as S,bq as z,L as f,I as J,bk as K,bl as O,K as P,aC as w,a8 as Q,M as W}from"./.pnpm-CyuAWpdG.js";import{k as X,G as Y,H as Z,I as ee,J as ae}from"./index-Dxvz9lb1.js";const oe={class:"article-edit"},le={class:"w-80"},te={class:"w-80"},se={class:"w-80"},ne={class:"w-80"},re={class:"w-80"},de=v({name:"scheduledTaskEdit"}),ce=v({...de,setup(ue){const m=I(),V=F(),o=w({id:"",name:"",command:"",expression:"",params:"",remark:"",status:1,type:1}),{removeTab:x}=X(),i=Q(),E=w({name:[{required:!0,message:"请输入名称"}],command:[{required:!0,message:"请输入thankphp命令,如vresion"}],expression:[{required:!0,message:"请输入crontab规则,例:5 9 * * *"}]}),k=async()=>{const n=await Y({id:m.query.id});Object.keys(o).forEach(e=>{o[e]=n[e]})},p=W([]),c=async()=>{var e;await((e=i.value)==null?void 0:e.validateField(["expression"]));const n=await Z({expression:o.expression});p.value=n},y=async()=>{var n;await((n=i.value)==null?void 0:n.validate()),m.query.id?await ee(o):await ae(o),x(),V.back()};return M(async()=>{m.query.id&&(await k(),await c())}),(n,e)=>{const h=j,_=A,d=L,r=H,g=z,R=S,q=J,b=O,U=K,B=G,C=P,T=D;return N(),$("div",oe,[a(_,{class:"!border-none",shadow:"never"},{default:t(()=>[a(h,{content:n.$route.meta.title,onBack:e[0]||(e[0]=s=>n.$router.back())},null,8,["content"])]),_:1}),a(_,{class:"mt-4 !border-none",shadow:"never"},{default:t(()=>[a(B,{ref_key:"formRef",ref:i,class:"ls-form",model:l(o),"label-width":"85px",rules:l(E)},{default:t(()=>[a(r,{label:"名称",prop:"name"},{default:t(()=>[u("div",le,[a(d,{modelValue:l(o).name,"onUpdate:modelValue":e[1]||(e[1]=s=>l(o).name=s),placeholder:"请输入名称",maxlength:"30",clearable:""},null,8,["modelValue"])])]),_:1}),a(r,{label:"类型",prop:"type"},{default:t(()=>[a(R,{modelValue:l(o).type,"onUpdate:modelValue":e[2]||(e[2]=s=>l(o).type=s)},{default:t(()=>[a(g,{value:1},{default:t(()=>[...e[8]||(e[8]=[f("定时任务",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(r,{label:"命令",prop:"command"},{default:t(()=>[u("div",te,[a(d,{modelValue:l(o).command,"onUpdate:modelValue":e[3]||(e[3]=s=>l(o).command=s),placeholder:"请输入thinkphp命令,如vresion",clearable:""},null,8,["modelValue"])])]),_:1}),a(r,{label:"参数",prop:"params"},{default:t(()=>[u("div",se,[a(d,{modelValue:l(o).params,"onUpdate:modelValue":e[4]||(e[4]=s=>l(o).params=s),placeholder:"请输入参数,例:--id 8 --name 测试",clearable:""},null,8,["modelValue"])])]),_:1}),a(r,{label:"状态"},{default:t(()=>[a(q,{modelValue:l(o).status,"onUpdate:modelValue":e[5]||(e[5]=s=>l(o).status=s),"active-value":1,"inactive-value":2},null,8,["modelValue"])]),_:1}),a(r,{label:"规则",prop:"expression"},{default:t(()=>[u("div",ne,[a(d,{onBlur:c,modelValue:l(o).expression,"onUpdate:modelValue":e[6]||(e[6]=s=>l(o).expression=s),placeholder:"请输入crontab规则,例:5 9 * * *"},null,8,["modelValue"])])]),_:1}),a(r,null,{default:t(()=>[a(U,{data:l(p),style:{"max-width":"320px"}},{default:t(()=>[a(b,{prop:"time",label:"序号","min-width":"80"}),a(b,{prop:"date",label:"执行时间","min-width":"240"})]),_:1},8,["data"])]),_:1}),a(r,{label:"备注",prop:"remark"},{default:t(()=>[u("div",re,[a(d,{modelValue:l(o).remark,"onUpdate:modelValue":e[7]||(e[7]=s=>l(o).remark=s),type:"textarea",autosize:{minRows:3,maxRows:6},maxlength:200,"show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1})]),_:1},8,["model","rules"])]),_:1}),a(T,null,{default:t(()=>[a(C,{type:"primary",onClick:y},{default:t(()=>[...e[9]||(e[9]=[f("保存",-1)])]),_:1})]),_:1})])}}});export{ce as default}; +import{_ as D}from"./index-DIl3M8Wa.js";import{o as v,Q as I,W as F,ap as M,q as N,r as $,v as a,D as t,br as j,bj as A,bd as G,u as l,bb as H,s as u,aA as L,bf as S,bq as z,L as f,I as J,bk as K,bl as O,K as P,aC as w,a8 as Q,M as W}from"./.pnpm-CyuAWpdG.js";import{k as X,G as Y,H as Z,I as ee,J as ae}from"./index-Bkarz3gO.js";const oe={class:"article-edit"},le={class:"w-80"},te={class:"w-80"},se={class:"w-80"},ne={class:"w-80"},re={class:"w-80"},de=v({name:"scheduledTaskEdit"}),ce=v({...de,setup(ue){const m=I(),V=F(),o=w({id:"",name:"",command:"",expression:"",params:"",remark:"",status:1,type:1}),{removeTab:x}=X(),i=Q(),E=w({name:[{required:!0,message:"请输入名称"}],command:[{required:!0,message:"请输入thankphp命令,如vresion"}],expression:[{required:!0,message:"请输入crontab规则,例:5 9 * * *"}]}),k=async()=>{const n=await Y({id:m.query.id});Object.keys(o).forEach(e=>{o[e]=n[e]})},p=W([]),c=async()=>{var e;await((e=i.value)==null?void 0:e.validateField(["expression"]));const n=await Z({expression:o.expression});p.value=n},y=async()=>{var n;await((n=i.value)==null?void 0:n.validate()),m.query.id?await ee(o):await ae(o),x(),V.back()};return M(async()=>{m.query.id&&(await k(),await c())}),(n,e)=>{const h=j,_=A,d=L,r=H,g=z,R=S,q=J,b=O,U=K,B=G,C=P,T=D;return N(),$("div",oe,[a(_,{class:"!border-none",shadow:"never"},{default:t(()=>[a(h,{content:n.$route.meta.title,onBack:e[0]||(e[0]=s=>n.$router.back())},null,8,["content"])]),_:1}),a(_,{class:"mt-4 !border-none",shadow:"never"},{default:t(()=>[a(B,{ref_key:"formRef",ref:i,class:"ls-form",model:l(o),"label-width":"85px",rules:l(E)},{default:t(()=>[a(r,{label:"名称",prop:"name"},{default:t(()=>[u("div",le,[a(d,{modelValue:l(o).name,"onUpdate:modelValue":e[1]||(e[1]=s=>l(o).name=s),placeholder:"请输入名称",maxlength:"30",clearable:""},null,8,["modelValue"])])]),_:1}),a(r,{label:"类型",prop:"type"},{default:t(()=>[a(R,{modelValue:l(o).type,"onUpdate:modelValue":e[2]||(e[2]=s=>l(o).type=s)},{default:t(()=>[a(g,{value:1},{default:t(()=>[...e[8]||(e[8]=[f("定时任务",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(r,{label:"命令",prop:"command"},{default:t(()=>[u("div",te,[a(d,{modelValue:l(o).command,"onUpdate:modelValue":e[3]||(e[3]=s=>l(o).command=s),placeholder:"请输入thinkphp命令,如vresion",clearable:""},null,8,["modelValue"])])]),_:1}),a(r,{label:"参数",prop:"params"},{default:t(()=>[u("div",se,[a(d,{modelValue:l(o).params,"onUpdate:modelValue":e[4]||(e[4]=s=>l(o).params=s),placeholder:"请输入参数,例:--id 8 --name 测试",clearable:""},null,8,["modelValue"])])]),_:1}),a(r,{label:"状态"},{default:t(()=>[a(q,{modelValue:l(o).status,"onUpdate:modelValue":e[5]||(e[5]=s=>l(o).status=s),"active-value":1,"inactive-value":2},null,8,["modelValue"])]),_:1}),a(r,{label:"规则",prop:"expression"},{default:t(()=>[u("div",ne,[a(d,{onBlur:c,modelValue:l(o).expression,"onUpdate:modelValue":e[6]||(e[6]=s=>l(o).expression=s),placeholder:"请输入crontab规则,例:5 9 * * *"},null,8,["modelValue"])])]),_:1}),a(r,null,{default:t(()=>[a(U,{data:l(p),style:{"max-width":"320px"}},{default:t(()=>[a(b,{prop:"time",label:"序号","min-width":"80"}),a(b,{prop:"date",label:"执行时间","min-width":"240"})]),_:1},8,["data"])]),_:1}),a(r,{label:"备注",prop:"remark"},{default:t(()=>[u("div",re,[a(d,{modelValue:l(o).remark,"onUpdate:modelValue":e[7]||(e[7]=s=>l(o).remark=s),type:"textarea",autosize:{minRows:3,maxRows:6},maxlength:200,"show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1})]),_:1},8,["model","rules"])]),_:1}),a(T,null,{default:t(()=>[a(C,{type:"primary",onClick:y},{default:t(()=>[...e[9]||(e[9]=[f("保存",-1)])]),_:1})]),_:1})])}}});export{ce as default}; diff --git a/server/public/admin/assets/edit-DT_4uSs7.js b/server/public/admin/assets/edit-CBYCRUdy.js similarity index 97% rename from server/public/admin/assets/edit-DT_4uSs7.js rename to server/public/admin/assets/edit-CBYCRUdy.js index 0df9c0b25..624d3c088 100644 --- a/server/public/admin/assets/edit-DT_4uSs7.js +++ b/server/public/admin/assets/edit-CBYCRUdy.js @@ -1 +1 @@ -import{_ as ye}from"./index-9qT8_5W1.js";import{o as G,q as p,r as v,F as q,G as D,T as J,u as n,p as Z,Q as ge,W as ke,v as l,D as t,br as Ue,bj as we,bd as Ee,Y as qe,C,X as xe,bb as Ce,s as u,aA as De,bk as Re,bl as Ae,bg as $e,bh as Ie,bi as Te,O as w,bf as Be,bq as Ne,L as b,P as z,bL as Pe,K as Le,M as E,aC as h,a8 as ee,n as Oe,l as le,bM as ae,R as Se}from"./.pnpm-CyuAWpdG.js";import{c as Fe,j as te,_ as je}from"./index-Dxvz9lb1.js";import{m as Qe}from"./menu-Y8cDrxAC.js";import{d as ze}from"./dict-C0-nzPZh.js";import{t as Ge,g as Ke}from"./code-Bx-mc3Tz.js";import{u as Me}from"./useDictOptions-ByJNOzqa.js";import{_ as We}from"./relations-add.vue_vue_type_script_setup_true_lang-BwTVgg-3.js";import"./index-BnfLT5cB.js";const He=G({__name:"index",props:{options:{default:()=>[]},value:{},config:{default:()=>({label:"name",value:"value"})}},setup(L){const c=L,O=Z(()=>c.value!==null&&typeof c.value<"u"?Array.isArray(c.value)?c.value:String(c.value).split(","):[]),R=Z(()=>c.options.filter(x=>O.value.includes(x[c.config.value])));return(x,S)=>(p(),v("div",null,[(p(!0),v(q,null,D(n(R),(o,g)=>(p(),v("span",{key:g},J(g!=0?"、":"")+J(o[L.config.label]),1))),128))]))}}),Xe={class:"code-edit"},Ye={class:"w-80"},Je={class:"w-80"},Ze={class:"w-80"},he={class:"w-80"},el={class:"header-checkbox"},ll={class:"header-checkbox"},al={class:"header-checkbox"},tl={class:"header-checkbox"},ol={class:"header-checkbox"},nl={class:"w-80"},ul={class:"w-80"},dl={class:"w-80"},sl={class:"w-80"},ml={class:"mt-4"},rl=G({name:"tableEdit"}),il=G({...rl,setup(L){const c=ge(),O=ke(),R=E("column"),x=E(!1),S=[{name:"一对一",value:"has_one"},{name:"一对多",value:"has_many"}],o=h({id:"",table_name:"",table_comment:"",author:"",remark:"",template_type:0,generate_type:0,module_name:"",class_dir:"",class_comment:"",table_column:[],menu:{pid:0,name:"",type:0},tree:{tree_id:0,tree_pid:0,tree_name:0},delete:{name:"",type:0},relations:[]}),g=E(!1),A=E(!1),$=E(!1),I=E(!1),T=E(!1),oe=()=>{o.table_column.forEach(d=>{d.is_required=g.value?1:0})},ne=()=>{o.table_column.forEach(d=>{d.is_insert=A.value?1:0})},ue=()=>{o.table_column.forEach(d=>{d.is_update=$.value?1:0})},de=()=>{o.table_column.forEach(d=>{d.is_lists=I.value?1:0})},se=()=>{o.table_column.forEach(d=>{d.is_query=T.value?1:0})};let F=0;const K=ee(),j=ee(),M=h({table_name:[{required:!0,message:"请输入表名称"}],table_comment:[{required:!0,message:"请输入表描述"}],module_name:[{required:!0,message:"请输入模块名"}],generate_type:[{required:!0,trigger:"change"}],template_type:[{required:!0,trigger:"change"}],"menu.pid":[{required:!0,message:"请选择父级菜单"}],"menu.name":[{required:!0,message:"请输入菜单名称"}],"delete.type":[{required:!0,trigger:"change"}],"delete.name":[{required:!0,message:"请选择删除字段"}]}),W=async(d,e,k)=>{var V,_;x.value=!0,await Oe(),e&&k!==void 0&&((V=j.value)==null||V.setFormData(e),F=k),(_=j.value)==null||_.open(d)},me=d=>{const e=le.cloneDeep(ae(d));o.relations.push(e)},re=async d=>{const e=le.cloneDeep(ae(d));console.log(F),o.relations.splice(F,1,e)},ie=d=>{o.relations.splice(d,1)},pe=async()=>{const d=await Ge({id:c.query.id});Object.keys(o).forEach(e=>{o[e]=d[e]}),Se(()=>o.generate_type,e=>{e==1&&te.confirm("生成到模块方式如遇同名文件会覆盖旧文件,确定要选择此方式吗?").catch(()=>{o.generate_type=0})})},{optionsData:H}=Me({dict_type:{api:ze},menu:{api:Qe,transformData(d){const e={id:0,name:"顶级",children:[]};return e.children=d,[e]}}}),_e=async()=>{var d,e;try{await((d=K.value)==null?void 0:d.validate()),await Ke(o),O.back()}catch(k){for(const V in k)Object.keys(M).includes(V)&&te.msgError((e=k[V][0])==null?void 0:e.message)}};return pe(),(d,e)=>{const k=Ue,V=we,_=De,r=Ce,B=xe,i=Ae,f=$e,m=Te,U=Ie,X=Re,y=Ne,N=Be,be=Pe,fe=Fe,P=Le,Y=He,ve=qe,ce=Ee,Ve=ye;return p(),v("div",Xe,[l(V,{class:"!border-none",shadow:"never"},{default:t(()=>[l(k,{content:"编辑数据表",onBack:e[0]||(e[0]=a=>d.$router.back())})]),_:1}),l(V,{class:"mt-4 !border-none",shadow:"never"},{default:t(()=>[l(ce,{ref_key:"formRef",ref:K,class:"ls-form",model:n(o),"label-width":"100px",rules:n(M)},{default:t(()=>[l(ve,{modelValue:n(R),"onUpdate:modelValue":e[25]||(e[25]=a=>C(R)?R.value=a:null)},{default:t(()=>[l(B,{label:"基础信息",name:"base"},{default:t(()=>[l(r,{label:"表名称",prop:"table_name"},{default:t(()=>[u("div",Ye,[l(_,{modelValue:n(o).table_name,"onUpdate:modelValue":e[1]||(e[1]=a=>n(o).table_name=a),placeholder:"请输入表名称",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"表描述",prop:"table_comment"},{default:t(()=>[u("div",Je,[l(_,{modelValue:n(o).table_comment,"onUpdate:modelValue":e[2]||(e[2]=a=>n(o).table_comment=a),placeholder:"请输入表描述",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"作者"},{default:t(()=>[u("div",Ze,[l(_,{modelValue:n(o).author,"onUpdate:modelValue":e[3]||(e[3]=a=>n(o).author=a),clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"备注"},{default:t(()=>[u("div",he,[l(_,{modelValue:n(o).remark,"onUpdate:modelValue":e[4]||(e[4]=a=>n(o).remark=a),class:"w-full",type:"textarea",autosize:{minRows:4,maxRows:4},maxlength:"200","show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1})]),_:1}),l(B,{label:"字段管理",name:"column"},{default:t(()=>[l(X,{data:n(o).table_column},{default:t(()=>[l(i,{label:"字段列名",prop:"column_name"}),l(i,{label:"字段描述",prop:"column_comment","min-width":"120"},{default:t(({row:a})=>[l(_,{modelValue:a.column_comment,"onUpdate:modelValue":s=>a.column_comment=s,clearable:""},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"物理类型",prop:"column_type"}),l(i,{label:"必填",width:"80"},{header:t(()=>[u("div",el,[l(f,{modelValue:n(g),"onUpdate:modelValue":e[5]||(e[5]=a=>C(g)?g.value=a:null),onChange:oe},null,8,["modelValue"]),e[26]||(e[26]=u("span",null,"必填",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_required,"onUpdate:modelValue":s=>a.is_required=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"插入",width:"80"},{header:t(()=>[u("div",ll,[l(f,{modelValue:n(A),"onUpdate:modelValue":e[6]||(e[6]=a=>C(A)?A.value=a:null),onChange:ne},null,8,["modelValue"]),e[27]||(e[27]=u("span",null,"插入",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_insert,"onUpdate:modelValue":s=>a.is_insert=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"编辑",width:"80"},{header:t(()=>[u("div",al,[l(f,{modelValue:n($),"onUpdate:modelValue":e[7]||(e[7]=a=>C($)?$.value=a:null),onChange:ue},null,8,["modelValue"]),e[28]||(e[28]=u("span",null,"编辑",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_update,"onUpdate:modelValue":s=>a.is_update=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"列表",width:"80"},{header:t(()=>[u("div",tl,[l(f,{modelValue:n(I),"onUpdate:modelValue":e[8]||(e[8]=a=>C(I)?I.value=a:null),onChange:de},null,8,["modelValue"]),e[29]||(e[29]=u("span",null,"列表",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_lists,"onUpdate:modelValue":s=>a.is_lists=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"查询",width:"80"},{header:t(()=>[u("div",ol,[l(f,{modelValue:n(T),"onUpdate:modelValue":e[9]||(e[9]=a=>C(T)?T.value=a:null),onChange:se},null,8,["modelValue"]),e[30]||(e[30]=u("span",null,"查询",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_query,"onUpdate:modelValue":s=>a.is_query=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"查询方式"},{default:t(({row:a})=>[l(U,{modelValue:a.query_type,"onUpdate:modelValue":s=>a.query_type=s},{default:t(()=>[l(m,{label:"=",value:"="}),l(m,{label:"!=",value:"!="}),l(m,{label:">",value:">"}),l(m,{label:">=",value:">="}),l(m,{label:"<",value:"<"}),l(m,{label:"<=",value:"<="}),l(m,{label:"LIKE",value:"like"}),l(m,{label:"BETWEEN",value:"between"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"显示类型","min-width":"120"},{default:t(({row:a})=>[l(U,{modelValue:a.view_type,"onUpdate:modelValue":s=>a.view_type=s},{default:t(()=>[l(m,{label:"文本框",value:"input"}),l(m,{label:"文本域",value:"textarea"}),l(m,{label:"下拉框",value:"select"}),l(m,{label:"单选框",value:"radio"}),l(m,{label:"复选框",value:"checkbox"}),l(m,{label:"日期控件",value:"datetime"}),l(m,{label:"图片选择控件",value:"imageSelect"}),l(m,{label:"富文本控件",value:"editor"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"字典类型","min-width":"120"},{default:t(({row:a})=>[l(U,{modelValue:a.dict_type,"onUpdate:modelValue":s=>a.dict_type=s,clearable:"",disabled:!(a.view_type=="select"||a.view_type=="radio"||a.view_type=="checkbox"),placeholder:"字典类型"},{default:t(()=>[(p(!0),v(q,null,D(n(H).dict_type,(s,Q)=>(p(),w(m,{key:Q,label:s.name,value:s.type,disabled:!s.status},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"])]),_:1})]),_:1},8,["data"])]),_:1}),l(B,{label:"生成配置",name:"config"},{default:t(()=>[l(r,{label:"模板类型",prop:"template_type"},{default:t(()=>[l(N,{modelValue:n(o).template_type,"onUpdate:modelValue":e[10]||(e[10]=a=>n(o).template_type=a)},{default:t(()=>[l(y,{value:0},{default:t(()=>[...e[31]||(e[31]=[b("单表(curd)",-1)])]),_:1}),l(y,{value:1},{default:t(()=>[...e[32]||(e[32]=[b("树表(curd)",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"删除类型",prop:"delete.type"},{default:t(()=>[l(N,{modelValue:n(o).delete.type,"onUpdate:modelValue":e[11]||(e[11]=a=>n(o).delete.type=a)},{default:t(()=>[l(y,{value:0},{default:t(()=>[...e[33]||(e[33]=[b("物理删除",-1)])]),_:1}),l(y,{value:1},{default:t(()=>[...e[34]||(e[34]=[b("软删除",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),n(o).delete.type==1?(p(),w(r,{key:0,label:"删除字段",prop:"delete.name"},{default:t(()=>[l(U,{class:"w-80",modelValue:n(o).delete.name,"onUpdate:modelValue":e[12]||(e[12]=a=>n(o).delete.name=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1})):z("",!0),n(o).template_type==1?(p(),v(q,{key:1},[l(r,{label:"树表ID",prop:"treePrimary"},{default:t(()=>[u("div",null,[l(U,{class:"w-80",modelValue:n(o).tree.tree_id,"onUpdate:modelValue":e[13]||(e[13]=a=>n(o).tree.tree_id=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"]),e[35]||(e[35]=u("div",{class:"form-tips"},"指定树表的主要ID,一般为主键",-1))])]),_:1}),l(r,{label:"树表父ID",prop:"treeParent"},{default:t(()=>[u("div",null,[l(U,{class:"w-80",modelValue:n(o).tree.tree_pid,"onUpdate:modelValue":e[14]||(e[14]=a=>n(o).tree.tree_pid=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"]),e[36]||(e[36]=u("div",{class:"form-tips"},"指定树表的父ID,比如:parent_id",-1))])]),_:1}),l(r,{label:"树名称",prop:"treeName"},{default:t(()=>[l(U,{class:"w-80",modelValue:n(o).tree.tree_name,"onUpdate:modelValue":e[15]||(e[15]=a=>n(o).tree.tree_name=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1})],64)):z("",!0),l(r,{label:"类描述"},{default:t(()=>[u("div",nl,[u("div",null,[l(_,{modelValue:n(o).class_comment,"onUpdate:modelValue":e[16]||(e[16]=a=>n(o).class_comment=a),placeholder:"请输入文件描述",clearable:""},null,8,["modelValue"])]),e[37]||(e[37]=u("div",{class:"form-tips"},[u("div",null," 例:填写test,生成文件描述为test控制器(test逻辑/test模型) ")],-1))])]),_:1}),l(r,{label:"生成方式",prop:"generate_type"},{default:t(()=>[l(N,{modelValue:n(o).generate_type,"onUpdate:modelValue":e[17]||(e[17]=a=>n(o).generate_type=a)},{default:t(()=>[l(y,{value:0},{default:t(()=>[...e[38]||(e[38]=[b("压缩包下载",-1)])]),_:1}),l(y,{value:1},{default:t(()=>[...e[39]||(e[39]=[b("生成到模块",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"模块名",prop:"module_name"},{default:t(()=>[u("div",ul,[l(_,{modelValue:n(o).module_name,"onUpdate:modelValue":e[18]||(e[18]=a=>n(o).module_name=a),placeholder:"请输入模块名",clearable:""},null,8,["modelValue"]),e[40]||(e[40]=u("div",{class:"form-tips"},"生成文件所在模块",-1))])]),_:1}),l(r,{label:"类目录"},{default:t(()=>[u("div",dl,[u("div",null,[l(_,{modelValue:n(o).class_dir,"onUpdate:modelValue":e[19]||(e[19]=a=>n(o).class_dir=a),placeholder:"请输入文件所在目录",clearable:""},null,8,["modelValue"])]),e[41]||(e[41]=u("div",{class:"form-tips"},[u("div",null," 例:填写test,则在app/模块名/controller/test下生成控制器 ")],-1))])]),_:1}),l(r,{label:"父级菜单",prop:"menu.pid"},{default:t(()=>[l(be,{class:"w-80",modelValue:n(o).menu.pid,"onUpdate:modelValue":e[20]||(e[20]=a=>n(o).menu.pid=a),data:n(H).menu,clearable:"","node-key":"id",props:{label:"name"},"default-expand-all":"",placeholder:"请选择父级菜单","check-strictly":""},null,8,["modelValue","data"])]),_:1}),l(r,{label:"菜单名称",prop:"menu.name"},{default:t(()=>[u("div",sl,[l(_,{modelValue:n(o).menu.name,"onUpdate:modelValue":e[21]||(e[21]=a=>n(o).menu.name=a),placeholder:"请输入菜单名称",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"菜单构建",prop:"menu.type",required:""},{default:t(()=>[u("div",null,[l(N,{modelValue:n(o).menu.type,"onUpdate:modelValue":e[22]||(e[22]=a=>n(o).menu.type=a)},{default:t(()=>[l(y,{value:1},{default:t(()=>[...e[42]||(e[42]=[b("自动构建",-1)])]),_:1}),l(y,{value:0},{default:t(()=>[...e[43]||(e[43]=[b("手动添加",-1)])]),_:1})]),_:1},8,["modelValue"]),e[44]||(e[44]=u("div",{class:"form-tips"}," 自动构建:自动执行生成菜单sql。手动添加:自行添加菜单。 ",-1))])]),_:1})]),_:1}),l(B,{label:"关联配置",name:"relations"},{default:t(()=>[l(P,{type:"primary",onClick:e[23]||(e[23]=a=>W("add"))},{icon:t(()=>[l(fe,{name:"el-icon-Plus"})]),default:t(()=>[e[45]||(e[45]=b(" 新增关联 ",-1))]),_:1}),u("div",ml,[l(X,{data:n(o).relations,size:"small"},{default:t(()=>[l(i,{prop:"type",label:"关联类型"},{default:t(({row:a})=>[l(Y,{value:a.type,options:S},null,8,["value"])]),_:1}),l(i,{prop:"name",label:"关联名称"}),l(i,{prop:"model",label:"关联模型"}),l(i,{prop:"local_key",label:"关联键"},{default:t(({row:a})=>[l(Y,{value:a.local_key,options:n(o).table_column,config:{label:"column_comment",value:"column_name"}},null,8,["value","options"])]),_:1}),l(i,{prop:"foreign_key",label:"外键"}),l(i,{label:"操作"},{default:t(({row:a,$index:s})=>[l(P,{link:"",type:"primary",onClick:Q=>W("edit",a,s)},{default:t(()=>[...e[46]||(e[46]=[b(" 编辑 ",-1)])]),_:1},8,["onClick"]),l(P,{link:"",type:"danger",onClick:Q=>ie(s)},{default:t(()=>[...e[47]||(e[47]=[b(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"]),n(x)?(p(),w(We,{key:0,column:n(o).table_column,types:S,ref_key:"editRef",ref:j,onAdd:me,onEdit:re,onClose:e[24]||(e[24]=a=>x.value=!1)},null,8,["column"])):z("",!0)])]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["model","rules"])]),_:1}),l(Ve,null,{default:t(()=>[l(P,{type:"primary",onClick:_e},{default:t(()=>[...e[48]||(e[48]=[b("保存",-1)])]),_:1})]),_:1})])}}}),kl=je(il,[["__scopeId","data-v-f4669353"]]);export{kl as default}; +import{_ as ye}from"./index-DIl3M8Wa.js";import{o as G,q as p,r as v,F as q,G as D,T as J,u as n,p as Z,Q as ge,W as ke,v as l,D as t,br as Ue,bj as we,bd as Ee,Y as qe,C,X as xe,bb as Ce,s as u,aA as De,bk as Re,bl as Ae,bg as $e,bh as Ie,bi as Te,O as w,bf as Be,bq as Ne,L as b,P as z,bL as Pe,K as Le,M as E,aC as h,a8 as ee,n as Oe,l as le,bM as ae,R as Se}from"./.pnpm-CyuAWpdG.js";import{c as Fe,j as te,_ as je}from"./index-Bkarz3gO.js";import{m as Qe}from"./menu-BmHYTFQt.js";import{d as ze}from"./dict-B9ij5Vr6.js";import{t as Ge,g as Ke}from"./code-C__TNCcp.js";import{u as Me}from"./useDictOptions-dnxxXBSU.js";import{_ as We}from"./relations-add.vue_vue_type_script_setup_true_lang-D1ua-rLJ.js";import"./index-CS5Wg0xx.js";const He=G({__name:"index",props:{options:{default:()=>[]},value:{},config:{default:()=>({label:"name",value:"value"})}},setup(L){const c=L,O=Z(()=>c.value!==null&&typeof c.value<"u"?Array.isArray(c.value)?c.value:String(c.value).split(","):[]),R=Z(()=>c.options.filter(x=>O.value.includes(x[c.config.value])));return(x,S)=>(p(),v("div",null,[(p(!0),v(q,null,D(n(R),(o,g)=>(p(),v("span",{key:g},J(g!=0?"、":"")+J(o[L.config.label]),1))),128))]))}}),Xe={class:"code-edit"},Ye={class:"w-80"},Je={class:"w-80"},Ze={class:"w-80"},he={class:"w-80"},el={class:"header-checkbox"},ll={class:"header-checkbox"},al={class:"header-checkbox"},tl={class:"header-checkbox"},ol={class:"header-checkbox"},nl={class:"w-80"},ul={class:"w-80"},dl={class:"w-80"},sl={class:"w-80"},ml={class:"mt-4"},rl=G({name:"tableEdit"}),il=G({...rl,setup(L){const c=ge(),O=ke(),R=E("column"),x=E(!1),S=[{name:"一对一",value:"has_one"},{name:"一对多",value:"has_many"}],o=h({id:"",table_name:"",table_comment:"",author:"",remark:"",template_type:0,generate_type:0,module_name:"",class_dir:"",class_comment:"",table_column:[],menu:{pid:0,name:"",type:0},tree:{tree_id:0,tree_pid:0,tree_name:0},delete:{name:"",type:0},relations:[]}),g=E(!1),A=E(!1),$=E(!1),I=E(!1),T=E(!1),oe=()=>{o.table_column.forEach(d=>{d.is_required=g.value?1:0})},ne=()=>{o.table_column.forEach(d=>{d.is_insert=A.value?1:0})},ue=()=>{o.table_column.forEach(d=>{d.is_update=$.value?1:0})},de=()=>{o.table_column.forEach(d=>{d.is_lists=I.value?1:0})},se=()=>{o.table_column.forEach(d=>{d.is_query=T.value?1:0})};let F=0;const K=ee(),j=ee(),M=h({table_name:[{required:!0,message:"请输入表名称"}],table_comment:[{required:!0,message:"请输入表描述"}],module_name:[{required:!0,message:"请输入模块名"}],generate_type:[{required:!0,trigger:"change"}],template_type:[{required:!0,trigger:"change"}],"menu.pid":[{required:!0,message:"请选择父级菜单"}],"menu.name":[{required:!0,message:"请输入菜单名称"}],"delete.type":[{required:!0,trigger:"change"}],"delete.name":[{required:!0,message:"请选择删除字段"}]}),W=async(d,e,k)=>{var V,_;x.value=!0,await Oe(),e&&k!==void 0&&((V=j.value)==null||V.setFormData(e),F=k),(_=j.value)==null||_.open(d)},me=d=>{const e=le.cloneDeep(ae(d));o.relations.push(e)},re=async d=>{const e=le.cloneDeep(ae(d));console.log(F),o.relations.splice(F,1,e)},ie=d=>{o.relations.splice(d,1)},pe=async()=>{const d=await Ge({id:c.query.id});Object.keys(o).forEach(e=>{o[e]=d[e]}),Se(()=>o.generate_type,e=>{e==1&&te.confirm("生成到模块方式如遇同名文件会覆盖旧文件,确定要选择此方式吗?").catch(()=>{o.generate_type=0})})},{optionsData:H}=Me({dict_type:{api:ze},menu:{api:Qe,transformData(d){const e={id:0,name:"顶级",children:[]};return e.children=d,[e]}}}),_e=async()=>{var d,e;try{await((d=K.value)==null?void 0:d.validate()),await Ke(o),O.back()}catch(k){for(const V in k)Object.keys(M).includes(V)&&te.msgError((e=k[V][0])==null?void 0:e.message)}};return pe(),(d,e)=>{const k=Ue,V=we,_=De,r=Ce,B=xe,i=Ae,f=$e,m=Te,U=Ie,X=Re,y=Ne,N=Be,be=Pe,fe=Fe,P=Le,Y=He,ve=qe,ce=Ee,Ve=ye;return p(),v("div",Xe,[l(V,{class:"!border-none",shadow:"never"},{default:t(()=>[l(k,{content:"编辑数据表",onBack:e[0]||(e[0]=a=>d.$router.back())})]),_:1}),l(V,{class:"mt-4 !border-none",shadow:"never"},{default:t(()=>[l(ce,{ref_key:"formRef",ref:K,class:"ls-form",model:n(o),"label-width":"100px",rules:n(M)},{default:t(()=>[l(ve,{modelValue:n(R),"onUpdate:modelValue":e[25]||(e[25]=a=>C(R)?R.value=a:null)},{default:t(()=>[l(B,{label:"基础信息",name:"base"},{default:t(()=>[l(r,{label:"表名称",prop:"table_name"},{default:t(()=>[u("div",Ye,[l(_,{modelValue:n(o).table_name,"onUpdate:modelValue":e[1]||(e[1]=a=>n(o).table_name=a),placeholder:"请输入表名称",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"表描述",prop:"table_comment"},{default:t(()=>[u("div",Je,[l(_,{modelValue:n(o).table_comment,"onUpdate:modelValue":e[2]||(e[2]=a=>n(o).table_comment=a),placeholder:"请输入表描述",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"作者"},{default:t(()=>[u("div",Ze,[l(_,{modelValue:n(o).author,"onUpdate:modelValue":e[3]||(e[3]=a=>n(o).author=a),clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"备注"},{default:t(()=>[u("div",he,[l(_,{modelValue:n(o).remark,"onUpdate:modelValue":e[4]||(e[4]=a=>n(o).remark=a),class:"w-full",type:"textarea",autosize:{minRows:4,maxRows:4},maxlength:"200","show-word-limit":"",clearable:""},null,8,["modelValue"])])]),_:1})]),_:1}),l(B,{label:"字段管理",name:"column"},{default:t(()=>[l(X,{data:n(o).table_column},{default:t(()=>[l(i,{label:"字段列名",prop:"column_name"}),l(i,{label:"字段描述",prop:"column_comment","min-width":"120"},{default:t(({row:a})=>[l(_,{modelValue:a.column_comment,"onUpdate:modelValue":s=>a.column_comment=s,clearable:""},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"物理类型",prop:"column_type"}),l(i,{label:"必填",width:"80"},{header:t(()=>[u("div",el,[l(f,{modelValue:n(g),"onUpdate:modelValue":e[5]||(e[5]=a=>C(g)?g.value=a:null),onChange:oe},null,8,["modelValue"]),e[26]||(e[26]=u("span",null,"必填",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_required,"onUpdate:modelValue":s=>a.is_required=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"插入",width:"80"},{header:t(()=>[u("div",ll,[l(f,{modelValue:n(A),"onUpdate:modelValue":e[6]||(e[6]=a=>C(A)?A.value=a:null),onChange:ne},null,8,["modelValue"]),e[27]||(e[27]=u("span",null,"插入",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_insert,"onUpdate:modelValue":s=>a.is_insert=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"编辑",width:"80"},{header:t(()=>[u("div",al,[l(f,{modelValue:n($),"onUpdate:modelValue":e[7]||(e[7]=a=>C($)?$.value=a:null),onChange:ue},null,8,["modelValue"]),e[28]||(e[28]=u("span",null,"编辑",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_update,"onUpdate:modelValue":s=>a.is_update=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"列表",width:"80"},{header:t(()=>[u("div",tl,[l(f,{modelValue:n(I),"onUpdate:modelValue":e[8]||(e[8]=a=>C(I)?I.value=a:null),onChange:de},null,8,["modelValue"]),e[29]||(e[29]=u("span",null,"列表",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_lists,"onUpdate:modelValue":s=>a.is_lists=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"查询",width:"80"},{header:t(()=>[u("div",ol,[l(f,{modelValue:n(T),"onUpdate:modelValue":e[9]||(e[9]=a=>C(T)?T.value=a:null),onChange:se},null,8,["modelValue"]),e[30]||(e[30]=u("span",null,"查询",-1))])]),default:t(({row:a})=>[l(f,{modelValue:a.is_query,"onUpdate:modelValue":s=>a.is_query=s,"true-value":1,"false-value":0},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"查询方式"},{default:t(({row:a})=>[l(U,{modelValue:a.query_type,"onUpdate:modelValue":s=>a.query_type=s},{default:t(()=>[l(m,{label:"=",value:"="}),l(m,{label:"!=",value:"!="}),l(m,{label:">",value:">"}),l(m,{label:">=",value:">="}),l(m,{label:"<",value:"<"}),l(m,{label:"<=",value:"<="}),l(m,{label:"LIKE",value:"like"}),l(m,{label:"BETWEEN",value:"between"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"显示类型","min-width":"120"},{default:t(({row:a})=>[l(U,{modelValue:a.view_type,"onUpdate:modelValue":s=>a.view_type=s},{default:t(()=>[l(m,{label:"文本框",value:"input"}),l(m,{label:"文本域",value:"textarea"}),l(m,{label:"下拉框",value:"select"}),l(m,{label:"单选框",value:"radio"}),l(m,{label:"复选框",value:"checkbox"}),l(m,{label:"日期控件",value:"datetime"}),l(m,{label:"图片选择控件",value:"imageSelect"}),l(m,{label:"富文本控件",value:"editor"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:1}),l(i,{label:"字典类型","min-width":"120"},{default:t(({row:a})=>[l(U,{modelValue:a.dict_type,"onUpdate:modelValue":s=>a.dict_type=s,clearable:"",disabled:!(a.view_type=="select"||a.view_type=="radio"||a.view_type=="checkbox"),placeholder:"字典类型"},{default:t(()=>[(p(!0),v(q,null,D(n(H).dict_type,(s,Q)=>(p(),w(m,{key:Q,label:s.name,value:s.type,disabled:!s.status},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue","onUpdate:modelValue","disabled"])]),_:1})]),_:1},8,["data"])]),_:1}),l(B,{label:"生成配置",name:"config"},{default:t(()=>[l(r,{label:"模板类型",prop:"template_type"},{default:t(()=>[l(N,{modelValue:n(o).template_type,"onUpdate:modelValue":e[10]||(e[10]=a=>n(o).template_type=a)},{default:t(()=>[l(y,{value:0},{default:t(()=>[...e[31]||(e[31]=[b("单表(curd)",-1)])]),_:1}),l(y,{value:1},{default:t(()=>[...e[32]||(e[32]=[b("树表(curd)",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"删除类型",prop:"delete.type"},{default:t(()=>[l(N,{modelValue:n(o).delete.type,"onUpdate:modelValue":e[11]||(e[11]=a=>n(o).delete.type=a)},{default:t(()=>[l(y,{value:0},{default:t(()=>[...e[33]||(e[33]=[b("物理删除",-1)])]),_:1}),l(y,{value:1},{default:t(()=>[...e[34]||(e[34]=[b("软删除",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),n(o).delete.type==1?(p(),w(r,{key:0,label:"删除字段",prop:"delete.name"},{default:t(()=>[l(U,{class:"w-80",modelValue:n(o).delete.name,"onUpdate:modelValue":e[12]||(e[12]=a=>n(o).delete.name=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1})):z("",!0),n(o).template_type==1?(p(),v(q,{key:1},[l(r,{label:"树表ID",prop:"treePrimary"},{default:t(()=>[u("div",null,[l(U,{class:"w-80",modelValue:n(o).tree.tree_id,"onUpdate:modelValue":e[13]||(e[13]=a=>n(o).tree.tree_id=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"]),e[35]||(e[35]=u("div",{class:"form-tips"},"指定树表的主要ID,一般为主键",-1))])]),_:1}),l(r,{label:"树表父ID",prop:"treeParent"},{default:t(()=>[u("div",null,[l(U,{class:"w-80",modelValue:n(o).tree.tree_pid,"onUpdate:modelValue":e[14]||(e[14]=a=>n(o).tree.tree_pid=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"]),e[36]||(e[36]=u("div",{class:"form-tips"},"指定树表的父ID,比如:parent_id",-1))])]),_:1}),l(r,{label:"树名称",prop:"treeName"},{default:t(()=>[l(U,{class:"w-80",modelValue:n(o).tree.tree_name,"onUpdate:modelValue":e[15]||(e[15]=a=>n(o).tree.tree_name=a),clearable:""},{default:t(()=>[(p(!0),v(q,null,D(n(o).table_column,a=>(p(),w(m,{key:a.id,value:a.column_name,label:`${a.column_name}:${a.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1})],64)):z("",!0),l(r,{label:"类描述"},{default:t(()=>[u("div",nl,[u("div",null,[l(_,{modelValue:n(o).class_comment,"onUpdate:modelValue":e[16]||(e[16]=a=>n(o).class_comment=a),placeholder:"请输入文件描述",clearable:""},null,8,["modelValue"])]),e[37]||(e[37]=u("div",{class:"form-tips"},[u("div",null," 例:填写test,生成文件描述为test控制器(test逻辑/test模型) ")],-1))])]),_:1}),l(r,{label:"生成方式",prop:"generate_type"},{default:t(()=>[l(N,{modelValue:n(o).generate_type,"onUpdate:modelValue":e[17]||(e[17]=a=>n(o).generate_type=a)},{default:t(()=>[l(y,{value:0},{default:t(()=>[...e[38]||(e[38]=[b("压缩包下载",-1)])]),_:1}),l(y,{value:1},{default:t(()=>[...e[39]||(e[39]=[b("生成到模块",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"模块名",prop:"module_name"},{default:t(()=>[u("div",ul,[l(_,{modelValue:n(o).module_name,"onUpdate:modelValue":e[18]||(e[18]=a=>n(o).module_name=a),placeholder:"请输入模块名",clearable:""},null,8,["modelValue"]),e[40]||(e[40]=u("div",{class:"form-tips"},"生成文件所在模块",-1))])]),_:1}),l(r,{label:"类目录"},{default:t(()=>[u("div",dl,[u("div",null,[l(_,{modelValue:n(o).class_dir,"onUpdate:modelValue":e[19]||(e[19]=a=>n(o).class_dir=a),placeholder:"请输入文件所在目录",clearable:""},null,8,["modelValue"])]),e[41]||(e[41]=u("div",{class:"form-tips"},[u("div",null," 例:填写test,则在app/模块名/controller/test下生成控制器 ")],-1))])]),_:1}),l(r,{label:"父级菜单",prop:"menu.pid"},{default:t(()=>[l(be,{class:"w-80",modelValue:n(o).menu.pid,"onUpdate:modelValue":e[20]||(e[20]=a=>n(o).menu.pid=a),data:n(H).menu,clearable:"","node-key":"id",props:{label:"name"},"default-expand-all":"",placeholder:"请选择父级菜单","check-strictly":""},null,8,["modelValue","data"])]),_:1}),l(r,{label:"菜单名称",prop:"menu.name"},{default:t(()=>[u("div",sl,[l(_,{modelValue:n(o).menu.name,"onUpdate:modelValue":e[21]||(e[21]=a=>n(o).menu.name=a),placeholder:"请输入菜单名称",clearable:""},null,8,["modelValue"])])]),_:1}),l(r,{label:"菜单构建",prop:"menu.type",required:""},{default:t(()=>[u("div",null,[l(N,{modelValue:n(o).menu.type,"onUpdate:modelValue":e[22]||(e[22]=a=>n(o).menu.type=a)},{default:t(()=>[l(y,{value:1},{default:t(()=>[...e[42]||(e[42]=[b("自动构建",-1)])]),_:1}),l(y,{value:0},{default:t(()=>[...e[43]||(e[43]=[b("手动添加",-1)])]),_:1})]),_:1},8,["modelValue"]),e[44]||(e[44]=u("div",{class:"form-tips"}," 自动构建:自动执行生成菜单sql。手动添加:自行添加菜单。 ",-1))])]),_:1})]),_:1}),l(B,{label:"关联配置",name:"relations"},{default:t(()=>[l(P,{type:"primary",onClick:e[23]||(e[23]=a=>W("add"))},{icon:t(()=>[l(fe,{name:"el-icon-Plus"})]),default:t(()=>[e[45]||(e[45]=b(" 新增关联 ",-1))]),_:1}),u("div",ml,[l(X,{data:n(o).relations,size:"small"},{default:t(()=>[l(i,{prop:"type",label:"关联类型"},{default:t(({row:a})=>[l(Y,{value:a.type,options:S},null,8,["value"])]),_:1}),l(i,{prop:"name",label:"关联名称"}),l(i,{prop:"model",label:"关联模型"}),l(i,{prop:"local_key",label:"关联键"},{default:t(({row:a})=>[l(Y,{value:a.local_key,options:n(o).table_column,config:{label:"column_comment",value:"column_name"}},null,8,["value","options"])]),_:1}),l(i,{prop:"foreign_key",label:"外键"}),l(i,{label:"操作"},{default:t(({row:a,$index:s})=>[l(P,{link:"",type:"primary",onClick:Q=>W("edit",a,s)},{default:t(()=>[...e[46]||(e[46]=[b(" 编辑 ",-1)])]),_:1},8,["onClick"]),l(P,{link:"",type:"danger",onClick:Q=>ie(s)},{default:t(()=>[...e[47]||(e[47]=[b(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"]),n(x)?(p(),w(We,{key:0,column:n(o).table_column,types:S,ref_key:"editRef",ref:j,onAdd:me,onEdit:re,onClose:e[24]||(e[24]=a=>x.value=!1)},null,8,["column"])):z("",!0)])]),_:1})]),_:1},8,["modelValue"])]),_:1},8,["model","rules"])]),_:1}),l(Ve,null,{default:t(()=>[l(P,{type:"primary",onClick:_e},{default:t(()=>[...e[48]||(e[48]=[b("保存",-1)])]),_:1})]),_:1})])}}}),kl=je(il,[["__scopeId","data-v-f4669353"]]);export{kl as default}; diff --git a/server/public/admin/assets/edit-CTFWDUh7.js b/server/public/admin/assets/edit-CTFWDUh7.js deleted file mode 100644 index 156484894..000000000 --- a/server/public/admin/assets/edit-CTFWDUh7.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-k1s5vx9i.js";import"./.pnpm-CyuAWpdG.js";import"./department-DToZNvdH.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";import"./useDictOptions-ByJNOzqa.js";export{o as default}; diff --git a/server/public/admin/assets/edit-CXebpAtJ.js b/server/public/admin/assets/edit-CXebpAtJ.js new file mode 100644 index 000000000..0211f29e9 --- /dev/null +++ b/server/public/admin/assets/edit-CXebpAtJ.js @@ -0,0 +1 @@ +import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-BuYDp57-.js";import"./.pnpm-CyuAWpdG.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";export{o as default}; diff --git a/server/public/admin/assets/edit-CY-J0Vmu.js b/server/public/admin/assets/edit-CY-J0Vmu.js new file mode 100644 index 000000000..46dfde8c5 --- /dev/null +++ b/server/public/admin/assets/edit-CY-J0Vmu.js @@ -0,0 +1 @@ +import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-DVUU54qM.js";import"./.pnpm-CyuAWpdG.js";import"./department-BeBGhsmA.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./useDictOptions-dnxxXBSU.js";export{o as default}; diff --git a/server/public/admin/assets/edit-CuB2aN2_.js b/server/public/admin/assets/edit-CuB2aN2_.js new file mode 100644 index 000000000..95f83bdc5 --- /dev/null +++ b/server/public/admin/assets/edit-CuB2aN2_.js @@ -0,0 +1 @@ +import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-DLPKXcae.js";import"./.pnpm-CyuAWpdG.js";import"./picker-BTh9eW9u.js";import"./index-CS5Wg0xx.js";import"./index-Bkarz3gO.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";import"./department-BeBGhsmA.js";import"./post-DqkuJrmM.js";import"./admin-DmTP1JeV.js";import"./role-fMbnnhKr.js";import"./useDictOptions-dnxxXBSU.js";export{o as default}; diff --git a/server/public/admin/assets/edit-BiF8KYEx.js b/server/public/admin/assets/edit-D1GgBUgu.js similarity index 96% rename from server/public/admin/assets/edit-BiF8KYEx.js rename to server/public/admin/assets/edit-D1GgBUgu.js index b39742359..d4eddd915 100644 --- a/server/public/admin/assets/edit-BiF8KYEx.js +++ b/server/public/admin/assets/edit-D1GgBUgu.js @@ -1 +1 @@ -import{o as T,q as r,r as p,v as n,D as s,bd as z,u as l,bb as A,az as L,bh as J,F as h,G as g,O as k,cD as j,bi as H,s as V,T as K,bL as Q,J as W,aA as X,a8 as v,M as Z,p as $,aC as ee}from"./.pnpm-CyuAWpdG.js";import{a as ae,b as te,c as oe}from"./finance-D9pJwZQS.js";import{_ as le}from"./index-BnfLT5cB.js";import{_ as ne}from"./index-Dxvz9lb1.js";const se={class:"edit-popup"},de={class:"channel-opt-row"},re={class:"opt-name"},ce=T({__name:"edit",props:{mediaChannelGroups:{},deptOptions:{},defaultMediaChannelCode:{}},emits:["success","close"],setup(i,{expose:w,emit:C}){const y=i,_=C,f=v(),m=v(),c=Z("add"),E=$(()=>c.value==="edit"?"编辑账户消耗":"新增账户消耗"),x={value:"id",label:"name",children:"children"},e=ee({id:"",cost_date:"",media_channel_code:"",dept_id:"",amount:0,remark:""}),D={cost_date:[{required:!0,message:"请选择日期",trigger:["change"]}],media_channel_code:[{required:!0,message:"请选择自媒体渠道",trigger:["change"]}],dept_id:[{required:!0,message:"请选择绑定部门",trigger:["change"]}],amount:[{required:!0,message:"请输入账户消耗金额",trigger:["blur","change"]}]},R=()=>{e.id="",e.cost_date="",e.media_channel_code=y.defaultMediaChannelCode||"",e.dept_id="",e.amount=0,e.remark=""},F=async()=>{var t,a;await((t=f.value)==null?void 0:t.validate()),c.value==="edit"?await ae(e):await te(e),(a=m.value)==null||a.close(),_("success")},q=(t="add")=>{var a;c.value=t,R(),(a=m.value)==null||a.open()},b=t=>{e.id=t.id??"",e.cost_date=t.cost_date??"",e.media_channel_code=t.media_channel_code??"",e.dept_id=t.dept_id?Number(t.dept_id):"",e.amount=Number(t.amount??0),e.remark=t.remark??""},M=async t=>{const a=await oe({id:t.id});b(a)},N=()=>{_("close")};return w({open:q,setFormData:b,getDetail:M}),(t,a)=>{const O=L,d=A,U=H,B=j,G=J,I=Q,S=W,Y=X,P=z;return r(),p("div",se,[n(le,{ref_key:"popupRef",ref:m,title:l(E),async:!0,width:"560px",onConfirm:F,onClose:N},{default:s(()=>[n(P,{ref_key:"formRef",ref:f,model:l(e),"label-width":"100px",rules:D},{default:s(()=>[n(d,{label:"日期",prop:"cost_date"},{default:s(()=>[n(O,{modelValue:l(e).cost_date,"onUpdate:modelValue":a[0]||(a[0]=o=>l(e).cost_date=o),type:"date","value-format":"YYYY-MM-DD",placeholder:"请选择日期",disabled:l(c)==="edit"},null,8,["modelValue","disabled"])]),_:1}),n(d,{label:"自媒体渠道",prop:"media_channel_code"},{default:s(()=>[n(G,{modelValue:l(e).media_channel_code,"onUpdate:modelValue":a[1]||(a[1]=o=>l(e).media_channel_code=o),placeholder:"请选择自媒体渠道",class:"account-cost-channel-select w-full",filterable:""},{default:s(()=>[(r(!0),p(h,null,g(i.mediaChannelGroups,o=>(r(),k(B,{key:o.group_name,label:o.group_name},{default:s(()=>[(r(!0),p(h,null,g(o.channels,u=>(r(),k(U,{key:u.channel_code,label:u.channel_name,value:u.channel_code},{default:s(()=>[V("div",de,[V("span",re,K(u.channel_name),1)])]),_:2},1032,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),n(d,{label:"部门",prop:"dept_id"},{default:s(()=>[n(I,{modelValue:l(e).dept_id,"onUpdate:modelValue":a[2]||(a[2]=o=>l(e).dept_id=o),data:i.deptOptions,"node-key":"id",props:x,"default-expand-all":!0,"check-strictly":"",placeholder:"请选择绑定部门",clearable:"",filterable:"",class:"w-full"},null,8,["modelValue","data"])]),_:1}),n(d,{label:"账户消耗",prop:"amount"},{default:s(()=>[n(S,{modelValue:l(e).amount,"onUpdate:modelValue":a[3]||(a[3]=o=>l(e).amount=o),min:0,step:.01,precision:2,class:"w-full"},null,8,["modelValue"])]),_:1}),n(d,{label:"备注",prop:"remark"},{default:s(()=>[n(Y,{modelValue:l(e).remark,"onUpdate:modelValue":a[4]||(a[4]=o=>l(e).remark=o),type:"textarea",autosize:{minRows:4,maxRows:6},maxlength:"255","show-word-limit":"",placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}}),_e=ne(ce,[["__scopeId","data-v-234837b3"]]);export{_e as default}; +import{o as T,q as r,r as p,v as n,D as s,bd as z,u as l,bb as A,az as L,bh as J,F as h,G as g,O as k,cD as j,bi as H,s as V,T as K,bL as Q,J as W,aA as X,a8 as v,M as Z,p as $,aC as ee}from"./.pnpm-CyuAWpdG.js";import{a as ae,b as te,c as oe}from"./finance-C684dcZP.js";import{_ as le}from"./index-CS5Wg0xx.js";import{_ as ne}from"./index-Bkarz3gO.js";const se={class:"edit-popup"},de={class:"channel-opt-row"},re={class:"opt-name"},ce=T({__name:"edit",props:{mediaChannelGroups:{},deptOptions:{},defaultMediaChannelCode:{}},emits:["success","close"],setup(i,{expose:w,emit:C}){const y=i,_=C,f=v(),m=v(),c=Z("add"),E=$(()=>c.value==="edit"?"编辑账户消耗":"新增账户消耗"),x={value:"id",label:"name",children:"children"},e=ee({id:"",cost_date:"",media_channel_code:"",dept_id:"",amount:0,remark:""}),D={cost_date:[{required:!0,message:"请选择日期",trigger:["change"]}],media_channel_code:[{required:!0,message:"请选择自媒体渠道",trigger:["change"]}],dept_id:[{required:!0,message:"请选择绑定部门",trigger:["change"]}],amount:[{required:!0,message:"请输入账户消耗金额",trigger:["blur","change"]}]},R=()=>{e.id="",e.cost_date="",e.media_channel_code=y.defaultMediaChannelCode||"",e.dept_id="",e.amount=0,e.remark=""},F=async()=>{var t,a;await((t=f.value)==null?void 0:t.validate()),c.value==="edit"?await ae(e):await te(e),(a=m.value)==null||a.close(),_("success")},q=(t="add")=>{var a;c.value=t,R(),(a=m.value)==null||a.open()},b=t=>{e.id=t.id??"",e.cost_date=t.cost_date??"",e.media_channel_code=t.media_channel_code??"",e.dept_id=t.dept_id?Number(t.dept_id):"",e.amount=Number(t.amount??0),e.remark=t.remark??""},M=async t=>{const a=await oe({id:t.id});b(a)},N=()=>{_("close")};return w({open:q,setFormData:b,getDetail:M}),(t,a)=>{const O=L,d=A,U=H,B=j,G=J,I=Q,S=W,Y=X,P=z;return r(),p("div",se,[n(le,{ref_key:"popupRef",ref:m,title:l(E),async:!0,width:"560px",onConfirm:F,onClose:N},{default:s(()=>[n(P,{ref_key:"formRef",ref:f,model:l(e),"label-width":"100px",rules:D},{default:s(()=>[n(d,{label:"日期",prop:"cost_date"},{default:s(()=>[n(O,{modelValue:l(e).cost_date,"onUpdate:modelValue":a[0]||(a[0]=o=>l(e).cost_date=o),type:"date","value-format":"YYYY-MM-DD",placeholder:"请选择日期",disabled:l(c)==="edit"},null,8,["modelValue","disabled"])]),_:1}),n(d,{label:"自媒体渠道",prop:"media_channel_code"},{default:s(()=>[n(G,{modelValue:l(e).media_channel_code,"onUpdate:modelValue":a[1]||(a[1]=o=>l(e).media_channel_code=o),placeholder:"请选择自媒体渠道",class:"account-cost-channel-select w-full",filterable:""},{default:s(()=>[(r(!0),p(h,null,g(i.mediaChannelGroups,o=>(r(),k(B,{key:o.group_name,label:o.group_name},{default:s(()=>[(r(!0),p(h,null,g(o.channels,u=>(r(),k(U,{key:u.channel_code,label:u.channel_name,value:u.channel_code},{default:s(()=>[V("div",de,[V("span",re,K(u.channel_name),1)])]),_:2},1032,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),n(d,{label:"部门",prop:"dept_id"},{default:s(()=>[n(I,{modelValue:l(e).dept_id,"onUpdate:modelValue":a[2]||(a[2]=o=>l(e).dept_id=o),data:i.deptOptions,"node-key":"id",props:x,"default-expand-all":!0,"check-strictly":"",placeholder:"请选择绑定部门",clearable:"",filterable:"",class:"w-full"},null,8,["modelValue","data"])]),_:1}),n(d,{label:"账户消耗",prop:"amount"},{default:s(()=>[n(S,{modelValue:l(e).amount,"onUpdate:modelValue":a[3]||(a[3]=o=>l(e).amount=o),min:0,step:.01,precision:2,class:"w-full"},null,8,["modelValue"])]),_:1}),n(d,{label:"备注",prop:"remark"},{default:s(()=>[n(Y,{modelValue:l(e).remark,"onUpdate:modelValue":a[4]||(a[4]=o=>l(e).remark=o),type:"textarea",autosize:{minRows:4,maxRows:6},maxlength:"255","show-word-limit":"",placeholder:"请输入备注"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}}),_e=ne(ce,[["__scopeId","data-v-234837b3"]]);export{_e as default}; diff --git a/server/public/admin/assets/edit-D5LhAhOU.js b/server/public/admin/assets/edit-D5LhAhOU.js deleted file mode 100644 index 950d31d58..000000000 --- a/server/public/admin/assets/edit-D5LhAhOU.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-DRGhGv7L.js";import"./.pnpm-CyuAWpdG.js";import"./wx_oa-vu-UopqS.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";export{o as default}; diff --git a/server/public/admin/assets/edit-D7bBKhZX.js b/server/public/admin/assets/edit-D7bBKhZX.js deleted file mode 100644 index 5cf7310c8..000000000 --- a/server/public/admin/assets/edit-D7bBKhZX.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-C4JjYzlV.js";import"./.pnpm-CyuAWpdG.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";export{o as default}; diff --git a/server/public/admin/assets/edit-D8pSrFpm.js b/server/public/admin/assets/edit-D8pSrFpm.js new file mode 100644 index 000000000..2b31f4b05 --- /dev/null +++ b/server/public/admin/assets/edit-D8pSrFpm.js @@ -0,0 +1 @@ +import{_ as o}from"./edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-Cc4NW4mp.js";import"./.pnpm-CyuAWpdG.js";import"./article-Cct6St-z.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";export{o as default}; diff --git a/server/public/admin/assets/edit-BPzwN_e3.js b/server/public/admin/assets/edit-DEtg6iCP.js similarity index 96% rename from server/public/admin/assets/edit-BPzwN_e3.js rename to server/public/admin/assets/edit-DEtg6iCP.js index 163e7d2e3..51f9dbd99 100644 --- a/server/public/admin/assets/edit-BPzwN_e3.js +++ b/server/public/admin/assets/edit-DEtg6iCP.js @@ -1 +1 @@ -import{o as w,Q as N,W as T,q as m,r as p,v as t,D as s,br as j,bj as L,ac as S,bn as U,u as a,O as G,s as r,bb as M,L as d,T as _,bf as O,bq as $,aA as z,F as A,G as H,bd as K,K as P,M as Q,aC as W,a8 as J,l as X}from"./.pnpm-CyuAWpdG.js";import{_ as Y}from"./index-9qT8_5W1.js";import{n as Z,s as h}from"./message-7QdBbth1.js";import{k as ee,j as te}from"./index-Dxvz9lb1.js";const se={class:"w-80"},oe={class:"flex-1"},ae={class:"w-full max-w-[320px]"},ne={class:"form-tips"},le=w({name:"noticeEdit"}),ue=w({...le,setup(ie){const f=N(),y=T(),u=Q(!1),o=W({id:"",scene_name:"",type:"",scene_desc:"",sms_notice:{status:0,template_id:"",content:"",tips:[]},oa_notice:{},mnp_notice:{},system_notice:{}}),k={"sms_notice.template_id":[{required:!0,message:"请输入模板ID",trigger:"blur"}],"sms_notice.content":[{required:!0,message:"请输入短信内容",trigger:"blur"}]},{removeTab:E}=ee(),b=J(),V=async()=>{u.value=!0;const l=await Z({id:f.query.id});Object.keys(l).forEach(e=>{o[e]=l[e]}),u.value=!1},x=async()=>{var e;await((e=b.value)==null?void 0:e.validate());const l={id:o.id,template:X.pick(o,["sms_notice","oa_notice","mnp_notice","system_notice"])};await h(l),te.msgSuccess("操作成功"),E(),y.back()};return f.query.id&&V(),(l,e)=>{const D=j,c=L,i=M,v=$,R=O,g=z,q=K,B=P,C=Y,I=U;return m(),p("div",null,[t(c,{class:"!border-none",shadow:"never"},{default:s(()=>[t(D,{content:"编辑通知设置",onBack:e[0]||(e[0]=n=>l.$router.back())})]),_:1}),S((m(),G(q,{ref_key:"formRef",ref:b,model:a(o),"label-width":"120px",rules:k},{default:s(()=>[t(c,{class:"!border-none mt-4",shadow:"never"},{default:s(()=>[e[4]||(e[4]=r("div",{class:"font-medium mb-7"},"通知名称",-1)),t(i,{label:"通知名称"},{default:s(()=>[d(_(a(o).scene_name),1)]),_:1}),t(i,{label:"通知类型"},{default:s(()=>[d(_(a(o).type),1)]),_:1}),t(i,{label:"通知业务"},{default:s(()=>[d(_(a(o).scene_desc),1)]),_:1})]),_:1}),t(c,{class:"!border-none mt-4",shadow:"never"},{default:s(()=>[e[7]||(e[7]=r("div",{class:"font-medium mb-7"},"短信通知",-1)),t(i,{label:"开启状态",prop:"sms_notice.status",required:""},{default:s(()=>[t(R,{modelValue:a(o).sms_notice.status,"onUpdate:modelValue":e[1]||(e[1]=n=>a(o).sms_notice.status=n)},{default:s(()=>[t(v,{value:"0"},{default:s(()=>[...e[5]||(e[5]=[d("关闭",-1)])]),_:1}),t(v,{value:"1"},{default:s(()=>[...e[6]||(e[6]=[d("开启",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(i,{label:"模板ID",prop:"sms_notice.template_id"},{default:s(()=>[r("div",se,[t(g,{modelValue:a(o).sms_notice.template_id,"onUpdate:modelValue":e[2]||(e[2]=n=>a(o).sms_notice.template_id=n),placeholder:"请输入模板ID"},null,8,["modelValue"])])]),_:1}),t(i,{label:"短信内容",prop:"sms_notice.content"},{default:s(()=>[r("div",oe,[r("div",ae,[t(g,{type:"textarea",autosize:{minRows:6,maxRows:6},modelValue:a(o).sms_notice.content,"onUpdate:modelValue":e[3]||(e[3]=n=>a(o).sms_notice.content=n)},null,8,["modelValue"])]),r("div",ne,[(m(!0),p(A,null,H(a(o).sms_notice.tips,(n,F)=>(m(),p("div",{key:F},_(n),1))),128))])])]),_:1})]),_:1})]),_:1},8,["model"])),[[I,a(u)]]),t(C,null,{default:s(()=>[t(B,{type:"primary",onClick:x},{default:s(()=>[...e[8]||(e[8]=[d("保存",-1)])]),_:1})]),_:1})])}}});export{ue as default}; +import{o as w,Q as N,W as T,q as m,r as p,v as t,D as s,br as j,bj as L,ac as S,bn as U,u as a,O as G,s as r,bb as M,L as d,T as _,bf as O,bq as $,aA as z,F as A,G as H,bd as K,K as P,M as Q,aC as W,a8 as J,l as X}from"./.pnpm-CyuAWpdG.js";import{_ as Y}from"./index-DIl3M8Wa.js";import{n as Z,s as h}from"./message-CaYd28kO.js";import{k as ee,j as te}from"./index-Bkarz3gO.js";const se={class:"w-80"},oe={class:"flex-1"},ae={class:"w-full max-w-[320px]"},ne={class:"form-tips"},le=w({name:"noticeEdit"}),ue=w({...le,setup(ie){const f=N(),y=T(),u=Q(!1),o=W({id:"",scene_name:"",type:"",scene_desc:"",sms_notice:{status:0,template_id:"",content:"",tips:[]},oa_notice:{},mnp_notice:{},system_notice:{}}),k={"sms_notice.template_id":[{required:!0,message:"请输入模板ID",trigger:"blur"}],"sms_notice.content":[{required:!0,message:"请输入短信内容",trigger:"blur"}]},{removeTab:E}=ee(),b=J(),V=async()=>{u.value=!0;const l=await Z({id:f.query.id});Object.keys(l).forEach(e=>{o[e]=l[e]}),u.value=!1},x=async()=>{var e;await((e=b.value)==null?void 0:e.validate());const l={id:o.id,template:X.pick(o,["sms_notice","oa_notice","mnp_notice","system_notice"])};await h(l),te.msgSuccess("操作成功"),E(),y.back()};return f.query.id&&V(),(l,e)=>{const D=j,c=L,i=M,v=$,R=O,g=z,q=K,B=P,C=Y,I=U;return m(),p("div",null,[t(c,{class:"!border-none",shadow:"never"},{default:s(()=>[t(D,{content:"编辑通知设置",onBack:e[0]||(e[0]=n=>l.$router.back())})]),_:1}),S((m(),G(q,{ref_key:"formRef",ref:b,model:a(o),"label-width":"120px",rules:k},{default:s(()=>[t(c,{class:"!border-none mt-4",shadow:"never"},{default:s(()=>[e[4]||(e[4]=r("div",{class:"font-medium mb-7"},"通知名称",-1)),t(i,{label:"通知名称"},{default:s(()=>[d(_(a(o).scene_name),1)]),_:1}),t(i,{label:"通知类型"},{default:s(()=>[d(_(a(o).type),1)]),_:1}),t(i,{label:"通知业务"},{default:s(()=>[d(_(a(o).scene_desc),1)]),_:1})]),_:1}),t(c,{class:"!border-none mt-4",shadow:"never"},{default:s(()=>[e[7]||(e[7]=r("div",{class:"font-medium mb-7"},"短信通知",-1)),t(i,{label:"开启状态",prop:"sms_notice.status",required:""},{default:s(()=>[t(R,{modelValue:a(o).sms_notice.status,"onUpdate:modelValue":e[1]||(e[1]=n=>a(o).sms_notice.status=n)},{default:s(()=>[t(v,{value:"0"},{default:s(()=>[...e[5]||(e[5]=[d("关闭",-1)])]),_:1}),t(v,{value:"1"},{default:s(()=>[...e[6]||(e[6]=[d("开启",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(i,{label:"模板ID",prop:"sms_notice.template_id"},{default:s(()=>[r("div",se,[t(g,{modelValue:a(o).sms_notice.template_id,"onUpdate:modelValue":e[2]||(e[2]=n=>a(o).sms_notice.template_id=n),placeholder:"请输入模板ID"},null,8,["modelValue"])])]),_:1}),t(i,{label:"短信内容",prop:"sms_notice.content"},{default:s(()=>[r("div",oe,[r("div",ae,[t(g,{type:"textarea",autosize:{minRows:6,maxRows:6},modelValue:a(o).sms_notice.content,"onUpdate:modelValue":e[3]||(e[3]=n=>a(o).sms_notice.content=n)},null,8,["modelValue"])]),r("div",ne,[(m(!0),p(A,null,H(a(o).sms_notice.tips,(n,F)=>(m(),p("div",{key:F},_(n),1))),128))])])]),_:1})]),_:1})]),_:1},8,["model"])),[[I,a(u)]]),t(C,null,{default:s(()=>[t(B,{type:"primary",onClick:x},{default:s(()=>[...e[8]||(e[8]=[d("保存",-1)])]),_:1})]),_:1})])}}});export{ue as default}; diff --git a/server/public/admin/assets/edit-RtJ3KIa8.js b/server/public/admin/assets/edit-DN5qnF9I.js similarity index 94% rename from server/public/admin/assets/edit-RtJ3KIa8.js rename to server/public/admin/assets/edit-DN5qnF9I.js index 9088f8ce3..275535979 100644 --- a/server/public/admin/assets/edit-RtJ3KIa8.js +++ b/server/public/admin/assets/edit-DN5qnF9I.js @@ -1 +1 @@ -import{o as X,q as _,r as v,v as a,D as r,bd as Y,u as l,bE as Z,L as p,O as w,bb as h,s as i,T as A,P as ee,aA as le,bf as oe,bq as ae,J as te,bL as re,bh as de,F as B,G as N,bi as ne,I as se,K as ie,C as ue,B as pe,a8 as me,M as g,p as fe,aC as O}from"./.pnpm-CyuAWpdG.js";import{_ as _e}from"./picker-BDO86vcM.js";import{b as be,d as ge,e as ce}from"./admin-7zsFFzhs.js";import{d as Ve}from"./department-DToZNvdH.js";import{j as ve}from"./post-B9rSvSIv.js";import{j as we,n as ye,_ as xe}from"./index-Dxvz9lb1.js";import{u as Ee}from"./useDictOptions-ByJNOzqa.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const Ue={class:"edit-drawer"},je={class:"text-primary font-medium"},De={class:"w-full"},ke={class:"ml-2 text-gray-500"},qe={class:"flex justify-end"},Ce=X({__name:"edit",emits:["success","close"],setup(Re,{expose:S,emit:F}){function I(n){if(n.status!==1)return!0;const e=n.children;return Array.isArray(e)&&e.length>0}const y=F,x=me(),f=g(!1),m=g("add"),c=g(!1),E=g([]),T=async()=>{const n=await ye({type:"department"});E.value=(n==null?void 0:n.department)||[]},L=fe(()=>m.value=="edit"?"编辑医助":"新增医助"),o=O({id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[2],dept_id:[],jobs_id:[],avatar:"",title:"",department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1,diagnosis_count:null}),{optionsData:U}=Ee({jobs:{api:ve},dept:{api:Ve,params:{apply_data_scope:1}}}),V=(n,e,s)=>{o.password&&(e||s(new Error("请再次输入密码")),e!==o.password&&s(new Error("两次输入密码不一致!"))),s()},b=O({account:[{required:!0,message:"请输入账号",trigger:["blur"]}],name:[{required:!0,message:"请输入姓名",trigger:["blur"]}],gender:[{required:!0,message:"请选择性别",trigger:["change"]}],dept_id:[{required:!0,type:"array",min:1,message:"请选择归属部门",trigger:["change"]}],phone:[{validator:(n,e,s)=>{e&&!/^1[3-9]\d{9}$/.test(e)?s(new Error("请输入正确的手机号")):s()},trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:["blur"]}],password_confirm:[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:V,trigger:"blur"}]}),G=async()=>{var n;try{await((n=x.value)==null?void 0:n.validate()),c.value=!0,m.value=="edit"?await be(o):await ge(o),we.msgSuccess(m.value=="edit"?"编辑成功":"新增成功"),f.value=!1,y("success")}catch(e){console.error("提交失败:",e)}finally{c.value=!1}},P=(n="add")=>{m.value=n,f.value=!0,T(),n==="add"&&(Object.assign(o,{id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[2],dept_id:[],jobs_id:[],avatar:"",title:"",department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1,diagnosis_count:null}),b.password=[{required:!0,message:"请输入密码",trigger:["blur"]}],b.password_confirm=[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:V,trigger:"blur"}])},z=async n=>{b.password=[],b.password_confirm=[{validator:V,trigger:"blur"}];const e=await ce({id:n.id});for(const s in o)e[s]!=null&&e[s]!=null&&(o[s]=e[s]);o.role_id.includes(2)||o.role_id.push(2)},j=()=>{f.value=!1,y("close")};return S({open:P,setFormData:z}),(n,e)=>{const s=Z,d=h,u=le,J=_e,D=ae,K=oe,M=te,$=re,k=ne,q=de,C=se,H=Y,R=ie,Q=pe;return _(),v("div",Ue,[a(Q,{modelValue:l(f),"onUpdate:modelValue":e[18]||(e[18]=t=>ue(f)?f.value=t:null),title:l(L),direction:"rtl",size:"780px","before-close":j},{footer:r(()=>[i("div",qe,[a(R,{onClick:j},{default:r(()=>[...e[30]||(e[30]=[p("取消",-1)])]),_:1}),a(R,{type:"primary",onClick:G,loading:l(c)},{default:r(()=>[...e[31]||(e[31]=[p("确定",-1)])]),_:1},8,["loading"])])]),default:r(()=>[a(H,{ref_key:"formRef",ref:x,model:l(o),"label-width":"100px",rules:l(b)},{default:r(()=>[a(s,{"content-position":"left"},{default:r(()=>[...e[19]||(e[19]=[p("基本信息",-1)])]),_:1}),l(m)==="edit"&&l(o).diagnosis_count!=null?(_(),w(d,{key:0,label:"创建诊单数"},{default:r(()=>[i("span",je,A(l(o).diagnosis_count),1),e[20]||(e[20]=i("span",{class:"text-tx-secondary text-sm ml-2"},"条",-1))]),_:1})):ee("",!0),a(d,{label:"账号",prop:"account"},{default:r(()=>[a(u,{modelValue:l(o).account,"onUpdate:modelValue":e[0]||(e[0]=t=>l(o).account=t),placeholder:"请输入账号",clearable:""},null,8,["modelValue"])]),_:1}),a(d,{label:"头像"},{default:r(()=>[i("div",null,[i("div",null,[a(J,{modelValue:l(o).avatar,"onUpdate:modelValue":e[1]||(e[1]=t=>l(o).avatar=t),limit:1},null,8,["modelValue"])]),e[21]||(e[21]=i("div",{class:"form-tips"},"建议尺寸:100*100px,支持jpg,jpeg,png格式",-1))])]),_:1}),a(d,{label:"姓名",prop:"name"},{default:r(()=>[a(u,{modelValue:l(o).name,"onUpdate:modelValue":e[2]||(e[2]=t=>l(o).name=t),placeholder:"请输入姓名",clearable:""},null,8,["modelValue"])]),_:1}),a(d,{label:"性别",prop:"gender"},{default:r(()=>[a(K,{modelValue:l(o).gender,"onUpdate:modelValue":e[3]||(e[3]=t=>l(o).gender=t)},{default:r(()=>[a(D,{label:1},{default:r(()=>[...e[22]||(e[22]=[p("男",-1)])]),_:1}),a(D,{label:2},{default:r(()=>[...e[23]||(e[23]=[p("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(d,{label:"年龄",prop:"age"},{default:r(()=>[a(M,{modelValue:l(o).age,"onUpdate:modelValue":e[4]||(e[4]=t=>l(o).age=t),min:18,max:100,placeholder:"请输入年龄"},null,8,["modelValue"])]),_:1}),a(d,{label:"手机号",prop:"phone"},{default:r(()=>[a(u,{modelValue:l(o).phone,"onUpdate:modelValue":e[5]||(e[5]=t=>l(o).phone=t),placeholder:"请输入手机号",clearable:""},null,8,["modelValue"])]),_:1}),a(s,{"content-position":"left"},{default:r(()=>[...e[24]||(e[24]=[p("组织信息",-1)])]),_:1}),a(d,{label:"归属部门",prop:"dept_id"},{default:r(()=>[i("div",De,[a($,{class:"flex-1 w-full",modelValue:l(o).dept_id,"onUpdate:modelValue":e[6]||(e[6]=t=>l(o).dept_id=t),data:l(U).dept,clearable:"",multiple:"","node-key":"id",props:{label:"name",disabled:I},"check-strictly":"","default-expand-all":!0,placeholder:"请选择末级归属部门"},null,8,["modelValue","data","props"]),e[25]||(e[25]=i("div",{class:"form-tips"},"仅可选末级部门(含下级的父部门不可选),与数据权限范围一致。",-1))])]),_:1}),a(d,{label:"岗位",prop:"jobs_id"},{default:r(()=>[a(q,{class:"flex-1",modelValue:l(o).jobs_id,"onUpdate:modelValue":e[7]||(e[7]=t=>l(o).jobs_id=t),clearable:"",multiple:"",placeholder:"请选择岗位"},{default:r(()=>[(_(!0),v(B,null,N(l(U).jobs,(t,W)=>(_(),w(k,{key:W,label:t.name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(s,{"content-position":"left"},{default:r(()=>[...e[26]||(e[26]=[p("专业信息",-1)])]),_:1}),a(d,{label:"职称",prop:"title"},{default:r(()=>[a(u,{modelValue:l(o).title,"onUpdate:modelValue":e[8]||(e[8]=t=>l(o).title=t),placeholder:"如:主任医师、副主任医师",clearable:""},null,8,["modelValue"])]),_:1}),a(d,{label:"所属科室",prop:"department"},{default:r(()=>[a(q,{modelValue:l(o).department,"onUpdate:modelValue":e[9]||(e[9]=t=>l(o).department=t),placeholder:"请选择所属科室",clearable:"",class:"flex-1"},{default:r(()=>[(_(!0),v(B,null,N(l(E),t=>(_(),w(k,{key:t.value,label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(d,{label:"擅长领域",prop:"specialty"},{default:r(()=>[a(u,{modelValue:l(o).specialty,"onUpdate:modelValue":e[10]||(e[10]=t=>l(o).specialty=t),type:"textarea",rows:3,placeholder:"请输入擅长领域"},null,8,["modelValue"])]),_:1}),a(s,{"content-position":"left"},{default:r(()=>[...e[27]||(e[27]=[p("履历信息",-1)])]),_:1}),a(d,{label:"教育背景",prop:"education"},{default:r(()=>[a(u,{modelValue:l(o).education,"onUpdate:modelValue":e[11]||(e[11]=t=>l(o).education=t),type:"textarea",rows:3,placeholder:"请输入教育背景,如:北京中医药大学 中医学博士"},null,8,["modelValue"])]),_:1}),a(d,{label:"工作经历",prop:"experience"},{default:r(()=>[a(u,{modelValue:l(o).experience,"onUpdate:modelValue":e[12]||(e[12]=t=>l(o).experience=t),type:"textarea",rows:4,placeholder:"请输入工作经历"},null,8,["modelValue"])]),_:1}),a(d,{label:"荣誉资质",prop:"honors"},{default:r(()=>[a(u,{modelValue:l(o).honors,"onUpdate:modelValue":e[13]||(e[13]=t=>l(o).honors=t),type:"textarea",rows:3,placeholder:"请输入荣誉资质"},null,8,["modelValue"])]),_:1}),a(s,{"content-position":"left"},{default:r(()=>[...e[28]||(e[28]=[p("账号设置",-1)])]),_:1}),a(d,{label:"密码",prop:"password"},{default:r(()=>[a(u,{modelValue:l(o).password,"onUpdate:modelValue":e[14]||(e[14]=t=>l(o).password=t),"show-password":"",clearable:"",placeholder:l(m)==="edit"?"不修改请留空":"请输入密码"},null,8,["modelValue","placeholder"])]),_:1}),a(d,{label:"确认密码",prop:"password_confirm"},{default:r(()=>[a(u,{modelValue:l(o).password_confirm,"onUpdate:modelValue":e[15]||(e[15]=t=>l(o).password_confirm=t),"show-password":"",clearable:"",placeholder:l(m)==="edit"?"不修改请留空":"请输入确认密码"},null,8,["modelValue","placeholder"])]),_:1}),a(d,{label:"状态"},{default:r(()=>[a(C,{modelValue:l(o).disable,"onUpdate:modelValue":e[16]||(e[16]=t=>l(o).disable=t),"active-value":0,"inactive-value":1},null,8,["modelValue"]),i("span",ke,A(l(o).disable===0?"启用":"禁用"),1)]),_:1}),a(d,{label:"多处登录"},{default:r(()=>[i("div",null,[a(C,{modelValue:l(o).multipoint_login,"onUpdate:modelValue":e[17]||(e[17]=t=>l(o).multipoint_login=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[29]||(e[29]=i("div",{class:"form-tips"},"允许多人同时在线登录",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}}),He=xe(Ce,[["__scopeId","data-v-f616077a"]]);export{He as default}; +import{o as X,q as _,r as v,v as a,D as r,bd as Y,u as l,bE as Z,L as p,O as w,bb as h,s as i,T as A,P as ee,aA as le,bf as oe,bq as ae,J as te,bL as re,bh as de,F as B,G as N,bi as ne,I as se,K as ie,C as ue,B as pe,a8 as me,M as g,p as fe,aC as O}from"./.pnpm-CyuAWpdG.js";import{_ as _e}from"./picker-BTh9eW9u.js";import{b as be,d as ge,e as ce}from"./admin-DmTP1JeV.js";import{d as Ve}from"./department-BeBGhsmA.js";import{j as ve}from"./post-DqkuJrmM.js";import{j as we,n as ye,_ as xe}from"./index-Bkarz3gO.js";import{u as Ee}from"./useDictOptions-dnxxXBSU.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const Ue={class:"edit-drawer"},je={class:"text-primary font-medium"},De={class:"w-full"},ke={class:"ml-2 text-gray-500"},qe={class:"flex justify-end"},Ce=X({__name:"edit",emits:["success","close"],setup(Re,{expose:S,emit:F}){function I(n){if(n.status!==1)return!0;const e=n.children;return Array.isArray(e)&&e.length>0}const y=F,x=me(),f=g(!1),m=g("add"),c=g(!1),E=g([]),T=async()=>{const n=await ye({type:"department"});E.value=(n==null?void 0:n.department)||[]},L=fe(()=>m.value=="edit"?"编辑医助":"新增医助"),o=O({id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[2],dept_id:[],jobs_id:[],avatar:"",title:"",department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1,diagnosis_count:null}),{optionsData:U}=Ee({jobs:{api:ve},dept:{api:Ve,params:{apply_data_scope:1}}}),V=(n,e,s)=>{o.password&&(e||s(new Error("请再次输入密码")),e!==o.password&&s(new Error("两次输入密码不一致!"))),s()},b=O({account:[{required:!0,message:"请输入账号",trigger:["blur"]}],name:[{required:!0,message:"请输入姓名",trigger:["blur"]}],gender:[{required:!0,message:"请选择性别",trigger:["change"]}],dept_id:[{required:!0,type:"array",min:1,message:"请选择归属部门",trigger:["change"]}],phone:[{validator:(n,e,s)=>{e&&!/^1[3-9]\d{9}$/.test(e)?s(new Error("请输入正确的手机号")):s()},trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:["blur"]}],password_confirm:[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:V,trigger:"blur"}]}),G=async()=>{var n;try{await((n=x.value)==null?void 0:n.validate()),c.value=!0,m.value=="edit"?await be(o):await ge(o),we.msgSuccess(m.value=="edit"?"编辑成功":"新增成功"),f.value=!1,y("success")}catch(e){console.error("提交失败:",e)}finally{c.value=!1}},P=(n="add")=>{m.value=n,f.value=!0,T(),n==="add"&&(Object.assign(o,{id:"",account:"",name:"",gender:1,age:null,phone:"",role_id:[2],dept_id:[],jobs_id:[],avatar:"",title:"",department:"",specialty:"",education:"",experience:"",honors:"",password:"",password_confirm:"",disable:0,multipoint_login:1,diagnosis_count:null}),b.password=[{required:!0,message:"请输入密码",trigger:["blur"]}],b.password_confirm=[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:V,trigger:"blur"}])},z=async n=>{b.password=[],b.password_confirm=[{validator:V,trigger:"blur"}];const e=await ce({id:n.id});for(const s in o)e[s]!=null&&e[s]!=null&&(o[s]=e[s]);o.role_id.includes(2)||o.role_id.push(2)},j=()=>{f.value=!1,y("close")};return S({open:P,setFormData:z}),(n,e)=>{const s=Z,d=h,u=le,J=_e,D=ae,K=oe,M=te,$=re,k=ne,q=de,C=se,H=Y,R=ie,Q=pe;return _(),v("div",Ue,[a(Q,{modelValue:l(f),"onUpdate:modelValue":e[18]||(e[18]=t=>ue(f)?f.value=t:null),title:l(L),direction:"rtl",size:"780px","before-close":j},{footer:r(()=>[i("div",qe,[a(R,{onClick:j},{default:r(()=>[...e[30]||(e[30]=[p("取消",-1)])]),_:1}),a(R,{type:"primary",onClick:G,loading:l(c)},{default:r(()=>[...e[31]||(e[31]=[p("确定",-1)])]),_:1},8,["loading"])])]),default:r(()=>[a(H,{ref_key:"formRef",ref:x,model:l(o),"label-width":"100px",rules:l(b)},{default:r(()=>[a(s,{"content-position":"left"},{default:r(()=>[...e[19]||(e[19]=[p("基本信息",-1)])]),_:1}),l(m)==="edit"&&l(o).diagnosis_count!=null?(_(),w(d,{key:0,label:"创建诊单数"},{default:r(()=>[i("span",je,A(l(o).diagnosis_count),1),e[20]||(e[20]=i("span",{class:"text-tx-secondary text-sm ml-2"},"条",-1))]),_:1})):ee("",!0),a(d,{label:"账号",prop:"account"},{default:r(()=>[a(u,{modelValue:l(o).account,"onUpdate:modelValue":e[0]||(e[0]=t=>l(o).account=t),placeholder:"请输入账号",clearable:""},null,8,["modelValue"])]),_:1}),a(d,{label:"头像"},{default:r(()=>[i("div",null,[i("div",null,[a(J,{modelValue:l(o).avatar,"onUpdate:modelValue":e[1]||(e[1]=t=>l(o).avatar=t),limit:1},null,8,["modelValue"])]),e[21]||(e[21]=i("div",{class:"form-tips"},"建议尺寸:100*100px,支持jpg,jpeg,png格式",-1))])]),_:1}),a(d,{label:"姓名",prop:"name"},{default:r(()=>[a(u,{modelValue:l(o).name,"onUpdate:modelValue":e[2]||(e[2]=t=>l(o).name=t),placeholder:"请输入姓名",clearable:""},null,8,["modelValue"])]),_:1}),a(d,{label:"性别",prop:"gender"},{default:r(()=>[a(K,{modelValue:l(o).gender,"onUpdate:modelValue":e[3]||(e[3]=t=>l(o).gender=t)},{default:r(()=>[a(D,{label:1},{default:r(()=>[...e[22]||(e[22]=[p("男",-1)])]),_:1}),a(D,{label:2},{default:r(()=>[...e[23]||(e[23]=[p("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(d,{label:"年龄",prop:"age"},{default:r(()=>[a(M,{modelValue:l(o).age,"onUpdate:modelValue":e[4]||(e[4]=t=>l(o).age=t),min:18,max:100,placeholder:"请输入年龄"},null,8,["modelValue"])]),_:1}),a(d,{label:"手机号",prop:"phone"},{default:r(()=>[a(u,{modelValue:l(o).phone,"onUpdate:modelValue":e[5]||(e[5]=t=>l(o).phone=t),placeholder:"请输入手机号",clearable:""},null,8,["modelValue"])]),_:1}),a(s,{"content-position":"left"},{default:r(()=>[...e[24]||(e[24]=[p("组织信息",-1)])]),_:1}),a(d,{label:"归属部门",prop:"dept_id"},{default:r(()=>[i("div",De,[a($,{class:"flex-1 w-full",modelValue:l(o).dept_id,"onUpdate:modelValue":e[6]||(e[6]=t=>l(o).dept_id=t),data:l(U).dept,clearable:"",multiple:"","node-key":"id",props:{label:"name",disabled:I},"check-strictly":"","default-expand-all":!0,placeholder:"请选择末级归属部门"},null,8,["modelValue","data","props"]),e[25]||(e[25]=i("div",{class:"form-tips"},"仅可选末级部门(含下级的父部门不可选),与数据权限范围一致。",-1))])]),_:1}),a(d,{label:"岗位",prop:"jobs_id"},{default:r(()=>[a(q,{class:"flex-1",modelValue:l(o).jobs_id,"onUpdate:modelValue":e[7]||(e[7]=t=>l(o).jobs_id=t),clearable:"",multiple:"",placeholder:"请选择岗位"},{default:r(()=>[(_(!0),v(B,null,N(l(U).jobs,(t,W)=>(_(),w(k,{key:W,label:t.name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(s,{"content-position":"left"},{default:r(()=>[...e[26]||(e[26]=[p("专业信息",-1)])]),_:1}),a(d,{label:"职称",prop:"title"},{default:r(()=>[a(u,{modelValue:l(o).title,"onUpdate:modelValue":e[8]||(e[8]=t=>l(o).title=t),placeholder:"如:主任医师、副主任医师",clearable:""},null,8,["modelValue"])]),_:1}),a(d,{label:"所属科室",prop:"department"},{default:r(()=>[a(q,{modelValue:l(o).department,"onUpdate:modelValue":e[9]||(e[9]=t=>l(o).department=t),placeholder:"请选择所属科室",clearable:"",class:"flex-1"},{default:r(()=>[(_(!0),v(B,null,N(l(E),t=>(_(),w(k,{key:t.value,label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(d,{label:"擅长领域",prop:"specialty"},{default:r(()=>[a(u,{modelValue:l(o).specialty,"onUpdate:modelValue":e[10]||(e[10]=t=>l(o).specialty=t),type:"textarea",rows:3,placeholder:"请输入擅长领域"},null,8,["modelValue"])]),_:1}),a(s,{"content-position":"left"},{default:r(()=>[...e[27]||(e[27]=[p("履历信息",-1)])]),_:1}),a(d,{label:"教育背景",prop:"education"},{default:r(()=>[a(u,{modelValue:l(o).education,"onUpdate:modelValue":e[11]||(e[11]=t=>l(o).education=t),type:"textarea",rows:3,placeholder:"请输入教育背景,如:北京中医药大学 中医学博士"},null,8,["modelValue"])]),_:1}),a(d,{label:"工作经历",prop:"experience"},{default:r(()=>[a(u,{modelValue:l(o).experience,"onUpdate:modelValue":e[12]||(e[12]=t=>l(o).experience=t),type:"textarea",rows:4,placeholder:"请输入工作经历"},null,8,["modelValue"])]),_:1}),a(d,{label:"荣誉资质",prop:"honors"},{default:r(()=>[a(u,{modelValue:l(o).honors,"onUpdate:modelValue":e[13]||(e[13]=t=>l(o).honors=t),type:"textarea",rows:3,placeholder:"请输入荣誉资质"},null,8,["modelValue"])]),_:1}),a(s,{"content-position":"left"},{default:r(()=>[...e[28]||(e[28]=[p("账号设置",-1)])]),_:1}),a(d,{label:"密码",prop:"password"},{default:r(()=>[a(u,{modelValue:l(o).password,"onUpdate:modelValue":e[14]||(e[14]=t=>l(o).password=t),"show-password":"",clearable:"",placeholder:l(m)==="edit"?"不修改请留空":"请输入密码"},null,8,["modelValue","placeholder"])]),_:1}),a(d,{label:"确认密码",prop:"password_confirm"},{default:r(()=>[a(u,{modelValue:l(o).password_confirm,"onUpdate:modelValue":e[15]||(e[15]=t=>l(o).password_confirm=t),"show-password":"",clearable:"",placeholder:l(m)==="edit"?"不修改请留空":"请输入确认密码"},null,8,["modelValue","placeholder"])]),_:1}),a(d,{label:"状态"},{default:r(()=>[a(C,{modelValue:l(o).disable,"onUpdate:modelValue":e[16]||(e[16]=t=>l(o).disable=t),"active-value":0,"inactive-value":1},null,8,["modelValue"]),i("span",ke,A(l(o).disable===0?"启用":"禁用"),1)]),_:1}),a(d,{label:"多处登录"},{default:r(()=>[i("div",null,[a(C,{modelValue:l(o).multipoint_login,"onUpdate:modelValue":e[17]||(e[17]=t=>l(o).multipoint_login=t),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[29]||(e[29]=i("div",{class:"form-tips"},"允许多人同时在线登录",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}}),He=xe(Ce,[["__scopeId","data-v-f616077a"]]);export{He as default}; diff --git a/server/public/admin/assets/edit-DNMajQA9.js b/server/public/admin/assets/edit-DNMajQA9.js deleted file mode 100644 index bd30f553d..000000000 --- a/server/public/admin/assets/edit-DNMajQA9.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-DTrkMGri.js";import"./.pnpm-CyuAWpdG.js";import"./picker-BDO86vcM.js";import"./index-BnfLT5cB.js";import"./index-Dxvz9lb1.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";import"./department-DToZNvdH.js";import"./post-B9rSvSIv.js";import"./admin-7zsFFzhs.js";import"./role-B1hWAn9n.js";import"./useDictOptions-ByJNOzqa.js";export{o as default}; diff --git a/server/public/admin/assets/edit-DgZzjCGB.js b/server/public/admin/assets/edit-DgZzjCGB.js new file mode 100644 index 000000000..8fa5238bd --- /dev/null +++ b/server/public/admin/assets/edit-DgZzjCGB.js @@ -0,0 +1 @@ +import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-BHJ0itxS.js";import"./.pnpm-CyuAWpdG.js";import"./dict-B9ij5Vr6.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";export{o as default}; diff --git a/server/public/admin/assets/edit-Dj3GXlCw.js b/server/public/admin/assets/edit-Dj3GXlCw.js deleted file mode 100644 index 95c06b359..000000000 --- a/server/public/admin/assets/edit-Dj3GXlCw.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-DMpcHZPx.js";import"./.pnpm-CyuAWpdG.js";import"./message-7QdBbth1.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";export{o as default}; diff --git a/server/public/admin/assets/edit-Dl5YLtWp.js b/server/public/admin/assets/edit-Dl5YLtWp.js deleted file mode 100644 index 9fc7786c1..000000000 --- a/server/public/admin/assets/edit-Dl5YLtWp.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-CxUw8LRg.js";import"./.pnpm-CyuAWpdG.js";import"./dict-C0-nzPZh.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";export{o as default}; diff --git a/server/public/admin/assets/edit-Dpuh4hz7.js b/server/public/admin/assets/edit-Dpuh4hz7.js new file mode 100644 index 000000000..5a4241c2f --- /dev/null +++ b/server/public/admin/assets/edit-Dpuh4hz7.js @@ -0,0 +1 @@ +import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-jjgQMFv5.js";import"./.pnpm-CyuAWpdG.js";import"./role-fMbnnhKr.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";export{o as default}; diff --git a/server/public/admin/assets/edit-DtkVYJd_.js b/server/public/admin/assets/edit-DtkVYJd_.js new file mode 100644 index 000000000..4546471c5 --- /dev/null +++ b/server/public/admin/assets/edit-DtkVYJd_.js @@ -0,0 +1 @@ +import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-Bz31OqAj.js";import"./.pnpm-CyuAWpdG.js";import"./dict-B9ij5Vr6.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";export{o as default}; diff --git a/server/public/admin/assets/edit-L84XrS85.js b/server/public/admin/assets/edit-L84XrS85.js deleted file mode 100644 index 4e3d901c1..000000000 --- a/server/public/admin/assets/edit-L84XrS85.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-b3Kn2zcn.js";import"./.pnpm-CyuAWpdG.js";import"./article-D_HL_wgA.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";export{o as default}; diff --git a/server/public/admin/assets/edit-LJZ6wso0.js b/server/public/admin/assets/edit-LJZ6wso0.js deleted file mode 100644 index 38bf5dbef..000000000 --- a/server/public/admin/assets/edit-LJZ6wso0.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-ccnC9QVe.js";import"./.pnpm-CyuAWpdG.js";import"./picker.vue_vue_type_script_setup_true_lang-r5jdEAJg.js";import"./index-Dxvz9lb1.js";import"./menu-Y8cDrxAC.js";import"./index-BnfLT5cB.js";export{o as default}; diff --git a/server/public/admin/assets/edit-xJcxxh2h.js b/server/public/admin/assets/edit-xJcxxh2h.js new file mode 100644 index 000000000..17233d6ef --- /dev/null +++ b/server/public/admin/assets/edit-xJcxxh2h.js @@ -0,0 +1 @@ +import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-qmD3gOVD.js";import"./.pnpm-CyuAWpdG.js";import"./picker.vue_vue_type_script_setup_true_lang-CMq9B6V2.js";import"./index-Bkarz3gO.js";import"./menu-BmHYTFQt.js";import"./index-CS5Wg0xx.js";export{o as default}; diff --git a/server/public/admin/assets/edit-x_JoTDRp.js b/server/public/admin/assets/edit-x_JoTDRp.js new file mode 100644 index 000000000..fabca5486 --- /dev/null +++ b/server/public/admin/assets/edit-x_JoTDRp.js @@ -0,0 +1 @@ +import{_ as o}from"./edit.vue_vue_type_script_setup_true_lang-Co2sfVXO.js";import"./.pnpm-CyuAWpdG.js";import"./post-DqkuJrmM.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";export{o as default}; diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CxUw8LRg.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-BHJ0itxS.js similarity index 94% rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CxUw8LRg.js rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-BHJ0itxS.js index 577462020..b90c03856 100644 --- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CxUw8LRg.js +++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-BHJ0itxS.js @@ -1 +1 @@ -import{o as R,q as E,r as C,v as t,D as s,bd as q,u as a,bb as D,aA as F,bf as T,bq as U,L as _,a8 as c,p as A,aC as B,M as I}from"./.pnpm-CyuAWpdG.js";import{g as N,h}from"./dict-C0-nzPZh.js";import{_ as z}from"./index-BnfLT5cB.js";const G={class:"edit-popup"},K=R({__name:"edit",emits:["success","close"],setup(L,{expose:b,emit:V}){const p=V,i=c(),u=c(),m=I("add"),v=A(()=>m.value=="edit"?"编辑字典类型":"新增字典类型"),o=B({id:"",name:"",type:"",status:1,remark:""}),y={name:[{required:!0,message:"请输入字典名称",trigger:["blur"]}],type:[{required:!0,message:"请输入字典类型",trigger:["blur"]}]},w=async()=>{var l,e;await((l=i.value)==null?void 0:l.validate()),m.value=="edit"?await N(o):await h(o),(e=u.value)==null||e.close(),p("success")},g=()=>{p("close")};return b({open:(l="add")=>{var e;m.value=l,(e=u.value)==null||e.open()},setFormData:l=>{for(const e in o)l[e]!=null&&l[e]!=null&&(o[e]=l[e])}}),(l,e)=>{const d=F,n=D,f=U,x=T,k=q;return E(),C("div",G,[t(z,{ref_key:"popupRef",ref:u,title:a(v),async:!0,width:"550px",onConfirm:w,onClose:g},{default:s(()=>[t(k,{class:"ls-form",ref_key:"formRef",ref:i,rules:y,model:a(o),"label-width":"84px"},{default:s(()=>[t(n,{label:"字典名称",prop:"name"},{default:s(()=>[t(d,{modelValue:a(o).name,"onUpdate:modelValue":e[0]||(e[0]=r=>a(o).name=r),placeholder:"请输入字典名称",clearable:""},null,8,["modelValue"])]),_:1}),t(n,{label:"字典类型",prop:"type"},{default:s(()=>[t(d,{modelValue:a(o).type,"onUpdate:modelValue":e[1]||(e[1]=r=>a(o).type=r),placeholder:"请输入字典类型",clearable:""},null,8,["modelValue"])]),_:1}),t(n,{label:"字典状态",required:"",prop:"status"},{default:s(()=>[t(x,{modelValue:a(o).status,"onUpdate:modelValue":e[2]||(e[2]=r=>a(o).status=r)},{default:s(()=>[t(f,{value:1},{default:s(()=>[...e[4]||(e[4]=[_("正常",-1)])]),_:1}),t(f,{value:0},{default:s(()=>[...e[5]||(e[5]=[_("停用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(n,{label:"备注",prop:"remark"},{default:s(()=>[t(d,{modelValue:a(o).remark,"onUpdate:modelValue":e[3]||(e[3]=r=>a(o).remark=r),type:"textarea",autosize:{minRows:4,maxRows:6},clearable:"",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{K as _}; +import{o as R,q as E,r as C,v as t,D as s,bd as q,u as a,bb as D,aA as F,bf as T,bq as U,L as _,a8 as c,p as A,aC as B,M as I}from"./.pnpm-CyuAWpdG.js";import{g as N,h}from"./dict-B9ij5Vr6.js";import{_ as z}from"./index-CS5Wg0xx.js";const G={class:"edit-popup"},K=R({__name:"edit",emits:["success","close"],setup(L,{expose:b,emit:V}){const p=V,i=c(),u=c(),m=I("add"),v=A(()=>m.value=="edit"?"编辑字典类型":"新增字典类型"),o=B({id:"",name:"",type:"",status:1,remark:""}),y={name:[{required:!0,message:"请输入字典名称",trigger:["blur"]}],type:[{required:!0,message:"请输入字典类型",trigger:["blur"]}]},w=async()=>{var l,e;await((l=i.value)==null?void 0:l.validate()),m.value=="edit"?await N(o):await h(o),(e=u.value)==null||e.close(),p("success")},g=()=>{p("close")};return b({open:(l="add")=>{var e;m.value=l,(e=u.value)==null||e.open()},setFormData:l=>{for(const e in o)l[e]!=null&&l[e]!=null&&(o[e]=l[e])}}),(l,e)=>{const d=F,n=D,f=U,x=T,k=q;return E(),C("div",G,[t(z,{ref_key:"popupRef",ref:u,title:a(v),async:!0,width:"550px",onConfirm:w,onClose:g},{default:s(()=>[t(k,{class:"ls-form",ref_key:"formRef",ref:i,rules:y,model:a(o),"label-width":"84px"},{default:s(()=>[t(n,{label:"字典名称",prop:"name"},{default:s(()=>[t(d,{modelValue:a(o).name,"onUpdate:modelValue":e[0]||(e[0]=r=>a(o).name=r),placeholder:"请输入字典名称",clearable:""},null,8,["modelValue"])]),_:1}),t(n,{label:"字典类型",prop:"type"},{default:s(()=>[t(d,{modelValue:a(o).type,"onUpdate:modelValue":e[1]||(e[1]=r=>a(o).type=r),placeholder:"请输入字典类型",clearable:""},null,8,["modelValue"])]),_:1}),t(n,{label:"字典状态",required:"",prop:"status"},{default:s(()=>[t(x,{modelValue:a(o).status,"onUpdate:modelValue":e[2]||(e[2]=r=>a(o).status=r)},{default:s(()=>[t(f,{value:1},{default:s(()=>[...e[4]||(e[4]=[_("正常",-1)])]),_:1}),t(f,{value:0},{default:s(()=>[...e[5]||(e[5]=[_("停用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(n,{label:"备注",prop:"remark"},{default:s(()=>[t(d,{modelValue:a(o).remark,"onUpdate:modelValue":e[3]||(e[3]=r=>a(o).remark=r),type:"textarea",autosize:{minRows:4,maxRows:6},clearable:"",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{K as _}; diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-C4JjYzlV.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-BuYDp57-.js similarity index 98% rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-C4JjYzlV.js rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-BuYDp57-.js index 75bc853e2..3fc178ba2 100644 --- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-C4JjYzlV.js +++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-BuYDp57-.js @@ -1 +1 @@ -import{o as U,q as _,r as k,v as l,D as r,bd as Y,u as o,bb as B,s as u,bq as I,L as g,T as y,aA as T,O as h,P as E,bf as F,a8 as V,aC as G,p as L}from"./.pnpm-CyuAWpdG.js";import{r as f}from"./index-Dxvz9lb1.js";import{_ as P}from"./index-BnfLT5cB.js";function ee(){return f.get({url:"/setting.storage/lists"})}function j(d){return f.post({url:"/setting.storage/setup",params:d})}function z(d){return f.get({url:"/setting.storage/detail",params:d})}const H={class:"edit-popup"},J={class:"form-tips"},M={key:0},Q={class:"flex-1"},W={class:"flex-1"},te=U({__name:"edit",emits:["success"],setup(d,{expose:v,emit:C}){const R=C,p=V(),m=V(),t=G({engine:"",bucket:"",access_key:"",secret_key:"",domain:"",region:"",status:0}),q=[{name:"本地存储",type:"local",tips:"本地存储方式不需要配置其他参数"},{name:"七牛云存储",type:"qiniu",tips:"切换七牛云存储后,素材库需要重新上传至七牛云"},{name:"阿里云OSS",type:"aliyun",tips:"切换阿里云OSS后,素材库需要重新上传至阿里云OSS"},{name:"腾讯云OSS",type:"qcloud",tips:"切换腾讯云OSS后,素材库需要重新上传至腾讯云OSS"}],x={bucket:[{required:!0,message:"请输入存储空间名称",trigger:"blur"}],access_key:[{required:!0,message:"请输入ACCESS_KEY",trigger:"blur"}],secret_key:[{required:!0,message:"请输入SECRET_KEY",trigger:"blur"}],domain:[{required:!0,message:"请输入空间域名",trigger:"blur"}],region:[{required:!0,message:"请输入REGION",trigger:"blur"}]},b=L(()=>q.find(s=>s.type==t.engine)),O=async()=>{var s,e;await((s=p.value)==null?void 0:s.validate()),await j(t),(e=m.value)==null||e.close(),R("success")},K=async()=>{const s=await z({engine:t.engine});for(const e in s)t[e]=s[e]},w=s=>{var e;t.engine=s,(e=m.value)==null||e.open(),K()},A=()=>{var s;(s=p.value)==null||s.resetFields()};return v({open:w}),(s,e)=>{const c=I,n=B,i=T,D=F,N=Y;return _(),k("div",H,[l(P,{ref_key:"popupRef",ref:m,title:"设置存储",async:!0,width:"550px",onConfirm:O,onClose:A},{default:r(()=>[l(N,{ref_key:"formRef",ref:p,model:o(t),"label-width":"120px",rules:x},{default:r(()=>[l(n,{label:"存储方式",prop:"engine"},{default:r(()=>{var a;return[u("div",null,[l(c,{checked:""},{default:r(()=>{var S;return[g(y((S=o(b))==null?void 0:S.name),1)]}),_:1}),u("div",J,y((a=o(b))==null?void 0:a.tips),1)])]}),_:1}),o(t).engine!=="local"?(_(),k("div",M,[l(n,{label:" 存储空间名称",prop:"bucket"},{default:r(()=>[u("div",Q,[l(i,{modelValue:o(t).bucket,"onUpdate:modelValue":e[0]||(e[0]=a=>o(t).bucket=a),placeholder:"请输入存储空间名称(Bucket)",clearable:""},null,8,["modelValue"])])]),_:1}),l(n,{label:"ACCESS_KEY",prop:"access_key"},{default:r(()=>[l(i,{modelValue:o(t).access_key,"onUpdate:modelValue":e[1]||(e[1]=a=>o(t).access_key=a),placeholder:"请输入ACCESS_KEY(AK)",clearable:""},null,8,["modelValue"])]),_:1}),l(n,{label:"SECRET_KEY",prop:"secret_key"},{default:r(()=>[l(i,{modelValue:o(t).secret_key,"onUpdate:modelValue":e[2]||(e[2]=a=>o(t).secret_key=a),placeholder:"请输入SECRET_KEY(SK)",clearable:""},null,8,["modelValue"])]),_:1}),l(n,{label:"空间域名",prop:"domain"},{default:r(()=>[u("div",W,[u("div",null,[l(i,{modelValue:o(t).domain,"onUpdate:modelValue":e[3]||(e[3]=a=>o(t).domain=a),placeholder:"请输入空间域名(Domain)",clearable:""},null,8,["modelValue"])]),e[6]||(e[6]=u("div",{class:"form-tips"}," 请补全http://或https://,例如https://static.cloud.com ",-1))])]),_:1}),o(t).engine=="qcloud"?(_(),h(n,{key:0,label:"REGION",prop:"region"},{default:r(()=>[l(i,{modelValue:o(t).region,"onUpdate:modelValue":e[4]||(e[4]=a=>o(t).region=a),placeholder:"请输入region",clearable:""},null,8,["modelValue"])]),_:1})):E("",!0)])):E("",!0),l(n,{label:"状态",prop:"status"},{default:r(()=>[l(D,{modelValue:o(t).status,"onUpdate:modelValue":e[5]||(e[5]=a=>o(t).status=a)},{default:r(()=>[l(c,{value:0},{default:r(()=>[...e[7]||(e[7]=[g("关闭",-1)])]),_:1}),l(c,{value:1},{default:r(()=>[...e[8]||(e[8]=[g("开启",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},512)])}}});export{te as _,ee as s}; +import{o as U,q as _,r as k,v as l,D as r,bd as Y,u as o,bb as B,s as u,bq as I,L as g,T as y,aA as T,O as h,P as E,bf as F,a8 as V,aC as G,p as L}from"./.pnpm-CyuAWpdG.js";import{r as f}from"./index-Bkarz3gO.js";import{_ as P}from"./index-CS5Wg0xx.js";function ee(){return f.get({url:"/setting.storage/lists"})}function j(d){return f.post({url:"/setting.storage/setup",params:d})}function z(d){return f.get({url:"/setting.storage/detail",params:d})}const H={class:"edit-popup"},J={class:"form-tips"},M={key:0},Q={class:"flex-1"},W={class:"flex-1"},te=U({__name:"edit",emits:["success"],setup(d,{expose:v,emit:C}){const R=C,p=V(),m=V(),t=G({engine:"",bucket:"",access_key:"",secret_key:"",domain:"",region:"",status:0}),q=[{name:"本地存储",type:"local",tips:"本地存储方式不需要配置其他参数"},{name:"七牛云存储",type:"qiniu",tips:"切换七牛云存储后,素材库需要重新上传至七牛云"},{name:"阿里云OSS",type:"aliyun",tips:"切换阿里云OSS后,素材库需要重新上传至阿里云OSS"},{name:"腾讯云OSS",type:"qcloud",tips:"切换腾讯云OSS后,素材库需要重新上传至腾讯云OSS"}],x={bucket:[{required:!0,message:"请输入存储空间名称",trigger:"blur"}],access_key:[{required:!0,message:"请输入ACCESS_KEY",trigger:"blur"}],secret_key:[{required:!0,message:"请输入SECRET_KEY",trigger:"blur"}],domain:[{required:!0,message:"请输入空间域名",trigger:"blur"}],region:[{required:!0,message:"请输入REGION",trigger:"blur"}]},b=L(()=>q.find(s=>s.type==t.engine)),O=async()=>{var s,e;await((s=p.value)==null?void 0:s.validate()),await j(t),(e=m.value)==null||e.close(),R("success")},K=async()=>{const s=await z({engine:t.engine});for(const e in s)t[e]=s[e]},w=s=>{var e;t.engine=s,(e=m.value)==null||e.open(),K()},A=()=>{var s;(s=p.value)==null||s.resetFields()};return v({open:w}),(s,e)=>{const c=I,n=B,i=T,D=F,N=Y;return _(),k("div",H,[l(P,{ref_key:"popupRef",ref:m,title:"设置存储",async:!0,width:"550px",onConfirm:O,onClose:A},{default:r(()=>[l(N,{ref_key:"formRef",ref:p,model:o(t),"label-width":"120px",rules:x},{default:r(()=>[l(n,{label:"存储方式",prop:"engine"},{default:r(()=>{var a;return[u("div",null,[l(c,{checked:""},{default:r(()=>{var S;return[g(y((S=o(b))==null?void 0:S.name),1)]}),_:1}),u("div",J,y((a=o(b))==null?void 0:a.tips),1)])]}),_:1}),o(t).engine!=="local"?(_(),k("div",M,[l(n,{label:" 存储空间名称",prop:"bucket"},{default:r(()=>[u("div",Q,[l(i,{modelValue:o(t).bucket,"onUpdate:modelValue":e[0]||(e[0]=a=>o(t).bucket=a),placeholder:"请输入存储空间名称(Bucket)",clearable:""},null,8,["modelValue"])])]),_:1}),l(n,{label:"ACCESS_KEY",prop:"access_key"},{default:r(()=>[l(i,{modelValue:o(t).access_key,"onUpdate:modelValue":e[1]||(e[1]=a=>o(t).access_key=a),placeholder:"请输入ACCESS_KEY(AK)",clearable:""},null,8,["modelValue"])]),_:1}),l(n,{label:"SECRET_KEY",prop:"secret_key"},{default:r(()=>[l(i,{modelValue:o(t).secret_key,"onUpdate:modelValue":e[2]||(e[2]=a=>o(t).secret_key=a),placeholder:"请输入SECRET_KEY(SK)",clearable:""},null,8,["modelValue"])]),_:1}),l(n,{label:"空间域名",prop:"domain"},{default:r(()=>[u("div",W,[u("div",null,[l(i,{modelValue:o(t).domain,"onUpdate:modelValue":e[3]||(e[3]=a=>o(t).domain=a),placeholder:"请输入空间域名(Domain)",clearable:""},null,8,["modelValue"])]),e[6]||(e[6]=u("div",{class:"form-tips"}," 请补全http://或https://,例如https://static.cloud.com ",-1))])]),_:1}),o(t).engine=="qcloud"?(_(),h(n,{key:0,label:"REGION",prop:"region"},{default:r(()=>[l(i,{modelValue:o(t).region,"onUpdate:modelValue":e[4]||(e[4]=a=>o(t).region=a),placeholder:"请输入region",clearable:""},null,8,["modelValue"])]),_:1})):E("",!0)])):E("",!0),l(n,{label:"状态",prop:"status"},{default:r(()=>[l(D,{modelValue:o(t).status,"onUpdate:modelValue":e[5]||(e[5]=a=>o(t).status=a)},{default:r(()=>[l(c,{value:0},{default:r(()=>[...e[7]||(e[7]=[g("关闭",-1)])]),_:1}),l(c,{value:1},{default:r(()=>[...e[8]||(e[8]=[g("开启",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},512)])}}});export{te as _,ee as s}; diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-B1vNi0Rd.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-Bz31OqAj.js similarity index 97% rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-B1vNi0Rd.js rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-Bz31OqAj.js index 40d074ab2..2e698a055 100644 --- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-B1vNi0Rd.js +++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-Bz31OqAj.js @@ -1 +1 @@ -import{o as C,q as D,r as q,v as a,D as t,bd as U,u as o,bb as F,aA as N,s as _,J as B,bf as I,bq as A,L as c,a8 as v,p as T,aC as z,M as G}from"./.pnpm-CyuAWpdG.js";import{a as J,b as L}from"./dict-C0-nzPZh.js";import{_ as M}from"./index-BnfLT5cB.js";const S={class:"edit-popup"},W=C({__name:"edit",emits:["success","close"],setup(j,{expose:b,emit:V}){const p=V,i=v(),d=v(),m=G("add"),w=T(()=>m.value=="edit"?"编辑字典数据":"新增字典数据"),l=z({id:"",type_value:"",name:"",value:"",sort:0,status:1,remark:"",type_id:0}),x={name:[{required:!0,message:"请输入数据名称",trigger:["blur"]}],value:[{required:!0,message:"请输入数据值",trigger:["blur"]}]},g=async()=>{var s,e;await((s=i.value)==null?void 0:s.validate()),m.value=="edit"?await J(l):await L(l),(e=d.value)==null||e.close(),p("success")},k=()=>{p("close")};return b({open:(s="add")=>{var e;m.value=s,(e=d.value)==null||e.open()},setFormData:s=>{for(const e in l)s[e]!=null&&s[e]!=null&&(l[e]=s[e])}}),(s,e)=>{const n=N,r=F,y=B,f=A,R=I,E=U;return D(),q("div",S,[a(M,{ref_key:"popupRef",ref:d,title:o(w),async:!0,width:"550px",onConfirm:g,onClose:k},{default:t(()=>[a(E,{class:"ls-form",ref_key:"formRef",ref:i,rules:x,model:o(l),"label-width":"84px"},{default:t(()=>[a(r,{label:"字典类型"},{default:t(()=>[a(n,{"model-value":o(l).type_value,placeholder:"请输入字典类型",disabled:""},null,8,["model-value"])]),_:1}),a(r,{label:"数据名称",prop:"name"},{default:t(()=>[a(n,{modelValue:o(l).name,"onUpdate:modelValue":e[0]||(e[0]=u=>o(l).name=u),placeholder:"请输入数据名称",clearable:""},null,8,["modelValue"])]),_:1}),a(r,{label:"数据值",prop:"value"},{default:t(()=>[a(n,{modelValue:o(l).value,"onUpdate:modelValue":e[1]||(e[1]=u=>o(l).value=u),placeholder:"请输入数据值",clearable:""},null,8,["modelValue"])]),_:1}),a(r,{label:"排序",prop:"sort"},{default:t(()=>[_("div",null,[a(y,{modelValue:o(l).sort,"onUpdate:modelValue":e[2]||(e[2]=u=>o(l).sort=u),min:0,max:9999},null,8,["modelValue"]),e[5]||(e[5]=_("div",{class:"form-tips"},"数值越大越排前",-1))])]),_:1}),a(r,{label:"状态",required:"",prop:"status"},{default:t(()=>[a(R,{modelValue:o(l).status,"onUpdate:modelValue":e[3]||(e[3]=u=>o(l).status=u)},{default:t(()=>[a(f,{value:1},{default:t(()=>[...e[6]||(e[6]=[c("正常",-1)])]),_:1}),a(f,{value:0},{default:t(()=>[...e[7]||(e[7]=[c("停用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(r,{label:"备注",prop:"remark"},{default:t(()=>[a(n,{modelValue:o(l).remark,"onUpdate:modelValue":e[4]||(e[4]=u=>o(l).remark=u),type:"textarea",autosize:{minRows:4,maxRows:6},clearable:"",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{W as _}; +import{o as C,q as D,r as q,v as a,D as t,bd as U,u as o,bb as F,aA as N,s as _,J as B,bf as I,bq as A,L as c,a8 as v,p as T,aC as z,M as G}from"./.pnpm-CyuAWpdG.js";import{a as J,b as L}from"./dict-B9ij5Vr6.js";import{_ as M}from"./index-CS5Wg0xx.js";const S={class:"edit-popup"},W=C({__name:"edit",emits:["success","close"],setup(j,{expose:b,emit:V}){const p=V,i=v(),d=v(),m=G("add"),w=T(()=>m.value=="edit"?"编辑字典数据":"新增字典数据"),l=z({id:"",type_value:"",name:"",value:"",sort:0,status:1,remark:"",type_id:0}),x={name:[{required:!0,message:"请输入数据名称",trigger:["blur"]}],value:[{required:!0,message:"请输入数据值",trigger:["blur"]}]},g=async()=>{var s,e;await((s=i.value)==null?void 0:s.validate()),m.value=="edit"?await J(l):await L(l),(e=d.value)==null||e.close(),p("success")},k=()=>{p("close")};return b({open:(s="add")=>{var e;m.value=s,(e=d.value)==null||e.open()},setFormData:s=>{for(const e in l)s[e]!=null&&s[e]!=null&&(l[e]=s[e])}}),(s,e)=>{const n=N,r=F,y=B,f=A,R=I,E=U;return D(),q("div",S,[a(M,{ref_key:"popupRef",ref:d,title:o(w),async:!0,width:"550px",onConfirm:g,onClose:k},{default:t(()=>[a(E,{class:"ls-form",ref_key:"formRef",ref:i,rules:x,model:o(l),"label-width":"84px"},{default:t(()=>[a(r,{label:"字典类型"},{default:t(()=>[a(n,{"model-value":o(l).type_value,placeholder:"请输入字典类型",disabled:""},null,8,["model-value"])]),_:1}),a(r,{label:"数据名称",prop:"name"},{default:t(()=>[a(n,{modelValue:o(l).name,"onUpdate:modelValue":e[0]||(e[0]=u=>o(l).name=u),placeholder:"请输入数据名称",clearable:""},null,8,["modelValue"])]),_:1}),a(r,{label:"数据值",prop:"value"},{default:t(()=>[a(n,{modelValue:o(l).value,"onUpdate:modelValue":e[1]||(e[1]=u=>o(l).value=u),placeholder:"请输入数据值",clearable:""},null,8,["modelValue"])]),_:1}),a(r,{label:"排序",prop:"sort"},{default:t(()=>[_("div",null,[a(y,{modelValue:o(l).sort,"onUpdate:modelValue":e[2]||(e[2]=u=>o(l).sort=u),min:0,max:9999},null,8,["modelValue"]),e[5]||(e[5]=_("div",{class:"form-tips"},"数值越大越排前",-1))])]),_:1}),a(r,{label:"状态",required:"",prop:"status"},{default:t(()=>[a(R,{modelValue:o(l).status,"onUpdate:modelValue":e[3]||(e[3]=u=>o(l).status=u)},{default:t(()=>[a(f,{value:1},{default:t(()=>[...e[6]||(e[6]=[c("正常",-1)])]),_:1}),a(f,{value:0},{default:t(()=>[...e[7]||(e[7]=[c("停用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(r,{label:"备注",prop:"remark"},{default:t(()=>[a(n,{modelValue:o(l).remark,"onUpdate:modelValue":e[4]||(e[4]=u=>o(l).remark=u),type:"textarea",autosize:{minRows:4,maxRows:6},clearable:"",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{W as _}; diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CezjvrER.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-Co2sfVXO.js similarity index 94% rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CezjvrER.js rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-Co2sfVXO.js index e9bc7f907..bcecf2603 100644 --- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-CezjvrER.js +++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-Co2sfVXO.js @@ -1 +1 @@ -import{o as D,q as U,r as h,v as l,D as n,bd as q,u as t,bb as I,aA as j,s as f,J as B,I as F,a8 as _,p as N,aC as A,M as S}from"./.pnpm-CyuAWpdG.js";import{a as z,b as J,c as M}from"./post-B9rSvSIv.js";import{_ as T}from"./index-BnfLT5cB.js";const G={class:"edit-popup"},P=D({__name:"edit",emits:["success","close"],setup(H,{expose:b,emit:v}){const i=v,p=_(),u=_(),m=S("add"),V=N(()=>m.value=="edit"?"编辑岗位":"新增岗位"),o=A({id:"",name:"",code:"",sort:0,remark:"",status:1}),w={code:[{required:!0,message:"请输入岗位编码",trigger:["blur"]}],name:[{required:!0,message:"请输入岗位名称",trigger:["blur"]}]},x=async()=>{var a,e;await((a=p.value)==null?void 0:a.validate()),m.value=="edit"?await z(o):await J(o),(e=u.value)==null||e.close(),i("success")},g=(a="add")=>{var e;m.value=a,(e=u.value)==null||e.open()},c=a=>{for(const e in o)a[e]!=null&&a[e]!=null&&(o[e]=a[e])},k=async a=>{const e=await M({id:a.id});c(e)},R=()=>{i("close")};return b({open:g,setFormData:c,getDetail:k}),(a,e)=>{const d=j,r=I,y=B,E=F,C=q;return U(),h("div",G,[l(T,{ref_key:"popupRef",ref:u,title:t(V),async:!0,width:"550px",onConfirm:x,onClose:R},{default:n(()=>[l(C,{ref_key:"formRef",ref:p,model:t(o),"label-width":"84px",rules:w},{default:n(()=>[l(r,{label:"岗位名称",prop:"name"},{default:n(()=>[l(d,{modelValue:t(o).name,"onUpdate:modelValue":e[0]||(e[0]=s=>t(o).name=s),placeholder:"请输入岗位名称",clearable:"",maxlength:100},null,8,["modelValue"])]),_:1}),l(r,{label:"岗位编码",prop:"code"},{default:n(()=>[l(d,{modelValue:t(o).code,"onUpdate:modelValue":e[1]||(e[1]=s=>t(o).code=s),placeholder:"请输入岗位编码",clearable:""},null,8,["modelValue"])]),_:1}),l(r,{label:"排序",prop:"sort"},{default:n(()=>[f("div",null,[l(y,{modelValue:t(o).sort,"onUpdate:modelValue":e[2]||(e[2]=s=>t(o).sort=s),min:0,max:9999},null,8,["modelValue"]),e[5]||(e[5]=f("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),l(r,{label:"备注",prop:"remark"},{default:n(()=>[l(d,{modelValue:t(o).remark,"onUpdate:modelValue":e[3]||(e[3]=s=>t(o).remark=s),placeholder:"请输入备注",type:"textarea",autosize:{minRows:4,maxRows:6},maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(r,{label:"岗位状态",required:"",prop:"status"},{default:n(()=>[l(E,{modelValue:t(o).status,"onUpdate:modelValue":e[4]||(e[4]=s=>t(o).status=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{P as _}; +import{o as D,q as U,r as h,v as l,D as n,bd as q,u as t,bb as I,aA as j,s as f,J as B,I as F,a8 as _,p as N,aC as A,M as S}from"./.pnpm-CyuAWpdG.js";import{a as z,b as J,c as M}from"./post-DqkuJrmM.js";import{_ as T}from"./index-CS5Wg0xx.js";const G={class:"edit-popup"},P=D({__name:"edit",emits:["success","close"],setup(H,{expose:b,emit:v}){const i=v,p=_(),u=_(),m=S("add"),V=N(()=>m.value=="edit"?"编辑岗位":"新增岗位"),o=A({id:"",name:"",code:"",sort:0,remark:"",status:1}),w={code:[{required:!0,message:"请输入岗位编码",trigger:["blur"]}],name:[{required:!0,message:"请输入岗位名称",trigger:["blur"]}]},x=async()=>{var a,e;await((a=p.value)==null?void 0:a.validate()),m.value=="edit"?await z(o):await J(o),(e=u.value)==null||e.close(),i("success")},g=(a="add")=>{var e;m.value=a,(e=u.value)==null||e.open()},c=a=>{for(const e in o)a[e]!=null&&a[e]!=null&&(o[e]=a[e])},k=async a=>{const e=await M({id:a.id});c(e)},R=()=>{i("close")};return b({open:g,setFormData:c,getDetail:k}),(a,e)=>{const d=j,r=I,y=B,E=F,C=q;return U(),h("div",G,[l(T,{ref_key:"popupRef",ref:u,title:t(V),async:!0,width:"550px",onConfirm:x,onClose:R},{default:n(()=>[l(C,{ref_key:"formRef",ref:p,model:t(o),"label-width":"84px",rules:w},{default:n(()=>[l(r,{label:"岗位名称",prop:"name"},{default:n(()=>[l(d,{modelValue:t(o).name,"onUpdate:modelValue":e[0]||(e[0]=s=>t(o).name=s),placeholder:"请输入岗位名称",clearable:"",maxlength:100},null,8,["modelValue"])]),_:1}),l(r,{label:"岗位编码",prop:"code"},{default:n(()=>[l(d,{modelValue:t(o).code,"onUpdate:modelValue":e[1]||(e[1]=s=>t(o).code=s),placeholder:"请输入岗位编码",clearable:""},null,8,["modelValue"])]),_:1}),l(r,{label:"排序",prop:"sort"},{default:n(()=>[f("div",null,[l(y,{modelValue:t(o).sort,"onUpdate:modelValue":e[2]||(e[2]=s=>t(o).sort=s),min:0,max:9999},null,8,["modelValue"]),e[5]||(e[5]=f("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),l(r,{label:"备注",prop:"remark"},{default:n(()=>[l(d,{modelValue:t(o).remark,"onUpdate:modelValue":e[3]||(e[3]=s=>t(o).remark=s),placeholder:"请输入备注",type:"textarea",autosize:{minRows:4,maxRows:6},maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(r,{label:"岗位状态",required:"",prop:"status"},{default:n(()=>[l(E,{modelValue:t(o).status,"onUpdate:modelValue":e[4]||(e[4]=s=>t(o).status=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{P as _}; diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DTrkMGri.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DLPKXcae.js similarity index 93% rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DTrkMGri.js rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DLPKXcae.js index 3ff3fbbba..915b1ea9c 100644 --- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DTrkMGri.js +++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DLPKXcae.js @@ -1 +1 @@ -import{o as T,q as i,r as V,v as t,D as d,bd as G,u as o,bb as M,aA as P,s as u,bL as z,bh as H,F as j,G as U,O as p,bi as J,P as k,I as K,a8 as C,p as Q,aC as q,M as W}from"./.pnpm-CyuAWpdG.js";import{_ as X}from"./picker-BDO86vcM.js";import{d as Y}from"./department-DToZNvdH.js";import{j as Z}from"./post-B9rSvSIv.js";import{b as $,d as h,e as ee}from"./admin-7zsFFzhs.js";import{r as le}from"./role-B1hWAn9n.js";import{_ as oe}from"./index-BnfLT5cB.js";import{u as ae}from"./useDictOptions-ByJNOzqa.js";const te={class:"edit-popup"},ce=T({__name:"edit",emits:["success","close"],setup(re,{expose:D,emit:R}){const v=R,w=C(),m=C(),f=W("add"),A=Q(()=>f.value=="edit"?"编辑管理员":"新增管理员"),l=q({id:"",account:"",name:"",dept_id:[],jobs_id:[],role_id:[],avatar:"",password:"",password_confirm:"",disable:0,multipoint_login:1,root:0}),g=(n,e,r)=>{l.password&&(e||r(new Error("请再次输入密码")),e!==l.password&&r(new Error("两次输入密码不一致!"))),r()},_=q({account:[{required:!0,message:"请输入账号",trigger:["blur"]}],name:[{required:!0,message:"请输入名称",trigger:["blur"]}],role_id:[{required:!0,validator:(n,e,r)=>{l.root||l.role_id.length?r():r(new Error("请选择角色"))}}],password:[{required:!0,message:"请输入密码",trigger:["blur"]}],password_confirm:[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:g,trigger:"blur"}]}),{optionsData:c}=ae({role:{api:le},jobs:{api:Z},dept:{api:Y}}),F=async()=>{var n,e;await((n=w.value)==null?void 0:n.validate()),f.value=="edit"?await $(l):await h(l),(e=m.value)==null||e.close(),v("success")},I=(n="add")=>{var e;f.value=n,(e=m.value)==null||e.open()},B=async n=>{_.password=[],_.password_confirm=[{validator:g,trigger:"blur"}];const e=await ee({id:n.id});for(const r in l)e[r]!=null&&e[r]!=null&&(l[r]=e[r])},S=()=>{v("close")};return D({open:I,setFormData:B}),(n,e)=>{const r=P,s=M,N=X,O=z,y=J,E=H,x=K,L=G;return i(),V("div",te,[t(oe,{ref_key:"popupRef",ref:m,title:o(A),async:!0,width:"550px",onConfirm:F,onClose:S},{default:d(()=>[t(L,{ref_key:"formRef",ref:w,model:o(l),"label-width":"84px",rules:o(_)},{default:d(()=>[t(s,{label:"账号",prop:"account"},{default:d(()=>[t(r,{modelValue:o(l).account,"onUpdate:modelValue":e[0]||(e[0]=a=>o(l).account=a),disabled:o(l).root==1,placeholder:"请输入账号",clearable:""},null,8,["modelValue","disabled"])]),_:1}),t(s,{label:"头像"},{default:d(()=>[u("div",null,[u("div",null,[t(N,{modelValue:o(l).avatar,"onUpdate:modelValue":e[1]||(e[1]=a=>o(l).avatar=a),limit:1},null,8,["modelValue"])]),e[10]||(e[10]=u("div",{class:"form-tips"},"建议尺寸:100*100px,支持jpg,jpeg,png格式",-1))])]),_:1}),t(s,{label:"名称",prop:"name"},{default:d(()=>[t(r,{modelValue:o(l).name,"onUpdate:modelValue":e[2]||(e[2]=a=>o(l).name=a),placeholder:"请输入名称",clearable:""},null,8,["modelValue"])]),_:1}),t(s,{label:"归属部门",prop:"dept_id"},{default:d(()=>[t(O,{class:"flex-1",modelValue:o(l).dept_id,"onUpdate:modelValue":e[3]||(e[3]=a=>o(l).dept_id=a),data:o(c).dept,clearable:"",multiple:"","node-key":"id",props:{value:"id",label:"name",disabled(a){return a.status!==1}},"check-strictly":"","default-expand-all":!0,placeholder:"请选择上级部门"},null,8,["modelValue","data","props"])]),_:1}),t(s,{label:"岗位",prop:"jobs_id"},{default:d(()=>[t(E,{class:"flex-1",modelValue:o(l).jobs_id,"onUpdate:modelValue":e[4]||(e[4]=a=>o(l).jobs_id=a),clearable:"",multiple:"",placeholder:"请选择岗位"},{default:d(()=>[(i(!0),V(j,null,U(o(c).jobs,(a,b)=>(i(),p(y,{key:b,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(l).root!=1?(i(),p(s,{key:0,label:"角色",prop:"role_id"},{default:d(()=>[t(E,{modelValue:o(l).role_id,"onUpdate:modelValue":e[5]||(e[5]=a=>o(l).role_id=a),disabled:o(l).root==1,class:"flex-1",multiple:"",placeholder:"请选择角色",clearable:""},{default:d(()=>[(i(!0),V(j,null,U(o(c).role,(a,b)=>(i(),p(y,{key:b,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled"])]),_:1})):k("",!0),t(s,{label:"密码",prop:"password"},{default:d(()=>[t(r,{modelValue:o(l).password,"onUpdate:modelValue":e[6]||(e[6]=a=>o(l).password=a),"show-password":"",clearable:"",placeholder:"请输入密码"},null,8,["modelValue"])]),_:1}),t(s,{label:"确认密码",prop:"password_confirm"},{default:d(()=>[t(r,{modelValue:o(l).password_confirm,"onUpdate:modelValue":e[7]||(e[7]=a=>o(l).password_confirm=a),"show-password":"",clearable:"",placeholder:"请输入确认密码"},null,8,["modelValue"])]),_:1}),o(l).root!=1?(i(),p(s,{key:1,label:"管理员状态"},{default:d(()=>[t(x,{modelValue:o(l).disable,"onUpdate:modelValue":e[8]||(e[8]=a=>o(l).disable=a),"active-value":0,"inactive-value":1},null,8,["modelValue"])]),_:1})):k("",!0),t(s,{label:"多处登录"},{default:d(()=>[u("div",null,[t(x,{modelValue:o(l).multipoint_login,"onUpdate:modelValue":e[9]||(e[9]=a=>o(l).multipoint_login=a),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[11]||(e[11]=u("div",{class:"form-tips"},"允许多人同时在线登录",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["title"])])}}});export{ce as _}; +import{o as T,q as i,r as V,v as t,D as d,bd as G,u as o,bb as M,aA as P,s as u,bL as z,bh as H,F as j,G as U,O as p,bi as J,P as k,I as K,a8 as C,p as Q,aC as q,M as W}from"./.pnpm-CyuAWpdG.js";import{_ as X}from"./picker-BTh9eW9u.js";import{d as Y}from"./department-BeBGhsmA.js";import{j as Z}from"./post-DqkuJrmM.js";import{b as $,d as h,e as ee}from"./admin-DmTP1JeV.js";import{r as le}from"./role-fMbnnhKr.js";import{_ as oe}from"./index-CS5Wg0xx.js";import{u as ae}from"./useDictOptions-dnxxXBSU.js";const te={class:"edit-popup"},ce=T({__name:"edit",emits:["success","close"],setup(re,{expose:D,emit:R}){const v=R,w=C(),m=C(),f=W("add"),A=Q(()=>f.value=="edit"?"编辑管理员":"新增管理员"),l=q({id:"",account:"",name:"",dept_id:[],jobs_id:[],role_id:[],avatar:"",password:"",password_confirm:"",disable:0,multipoint_login:1,root:0}),g=(n,e,r)=>{l.password&&(e||r(new Error("请再次输入密码")),e!==l.password&&r(new Error("两次输入密码不一致!"))),r()},_=q({account:[{required:!0,message:"请输入账号",trigger:["blur"]}],name:[{required:!0,message:"请输入名称",trigger:["blur"]}],role_id:[{required:!0,validator:(n,e,r)=>{l.root||l.role_id.length?r():r(new Error("请选择角色"))}}],password:[{required:!0,message:"请输入密码",trigger:["blur"]}],password_confirm:[{required:!0,message:"请输入确认密码",trigger:["blur"]},{validator:g,trigger:"blur"}]}),{optionsData:c}=ae({role:{api:le},jobs:{api:Z},dept:{api:Y}}),F=async()=>{var n,e;await((n=w.value)==null?void 0:n.validate()),f.value=="edit"?await $(l):await h(l),(e=m.value)==null||e.close(),v("success")},I=(n="add")=>{var e;f.value=n,(e=m.value)==null||e.open()},B=async n=>{_.password=[],_.password_confirm=[{validator:g,trigger:"blur"}];const e=await ee({id:n.id});for(const r in l)e[r]!=null&&e[r]!=null&&(l[r]=e[r])},S=()=>{v("close")};return D({open:I,setFormData:B}),(n,e)=>{const r=P,s=M,N=X,O=z,y=J,E=H,x=K,L=G;return i(),V("div",te,[t(oe,{ref_key:"popupRef",ref:m,title:o(A),async:!0,width:"550px",onConfirm:F,onClose:S},{default:d(()=>[t(L,{ref_key:"formRef",ref:w,model:o(l),"label-width":"84px",rules:o(_)},{default:d(()=>[t(s,{label:"账号",prop:"account"},{default:d(()=>[t(r,{modelValue:o(l).account,"onUpdate:modelValue":e[0]||(e[0]=a=>o(l).account=a),disabled:o(l).root==1,placeholder:"请输入账号",clearable:""},null,8,["modelValue","disabled"])]),_:1}),t(s,{label:"头像"},{default:d(()=>[u("div",null,[u("div",null,[t(N,{modelValue:o(l).avatar,"onUpdate:modelValue":e[1]||(e[1]=a=>o(l).avatar=a),limit:1},null,8,["modelValue"])]),e[10]||(e[10]=u("div",{class:"form-tips"},"建议尺寸:100*100px,支持jpg,jpeg,png格式",-1))])]),_:1}),t(s,{label:"名称",prop:"name"},{default:d(()=>[t(r,{modelValue:o(l).name,"onUpdate:modelValue":e[2]||(e[2]=a=>o(l).name=a),placeholder:"请输入名称",clearable:""},null,8,["modelValue"])]),_:1}),t(s,{label:"归属部门",prop:"dept_id"},{default:d(()=>[t(O,{class:"flex-1",modelValue:o(l).dept_id,"onUpdate:modelValue":e[3]||(e[3]=a=>o(l).dept_id=a),data:o(c).dept,clearable:"",multiple:"","node-key":"id",props:{value:"id",label:"name",disabled(a){return a.status!==1}},"check-strictly":"","default-expand-all":!0,placeholder:"请选择上级部门"},null,8,["modelValue","data","props"])]),_:1}),t(s,{label:"岗位",prop:"jobs_id"},{default:d(()=>[t(E,{class:"flex-1",modelValue:o(l).jobs_id,"onUpdate:modelValue":e[4]||(e[4]=a=>o(l).jobs_id=a),clearable:"",multiple:"",placeholder:"请选择岗位"},{default:d(()=>[(i(!0),V(j,null,U(o(c).jobs,(a,b)=>(i(),p(y,{key:b,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(l).root!=1?(i(),p(s,{key:0,label:"角色",prop:"role_id"},{default:d(()=>[t(E,{modelValue:o(l).role_id,"onUpdate:modelValue":e[5]||(e[5]=a=>o(l).role_id=a),disabled:o(l).root==1,class:"flex-1",multiple:"",placeholder:"请选择角色",clearable:""},{default:d(()=>[(i(!0),V(j,null,U(o(c).role,(a,b)=>(i(),p(y,{key:b,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled"])]),_:1})):k("",!0),t(s,{label:"密码",prop:"password"},{default:d(()=>[t(r,{modelValue:o(l).password,"onUpdate:modelValue":e[6]||(e[6]=a=>o(l).password=a),"show-password":"",clearable:"",placeholder:"请输入密码"},null,8,["modelValue"])]),_:1}),t(s,{label:"确认密码",prop:"password_confirm"},{default:d(()=>[t(r,{modelValue:o(l).password_confirm,"onUpdate:modelValue":e[7]||(e[7]=a=>o(l).password_confirm=a),"show-password":"",clearable:"",placeholder:"请输入确认密码"},null,8,["modelValue"])]),_:1}),o(l).root!=1?(i(),p(s,{key:1,label:"管理员状态"},{default:d(()=>[t(x,{modelValue:o(l).disable,"onUpdate:modelValue":e[8]||(e[8]=a=>o(l).disable=a),"active-value":0,"inactive-value":1},null,8,["modelValue"])]),_:1})):k("",!0),t(s,{label:"多处登录"},{default:d(()=>[u("div",null,[t(x,{modelValue:o(l).multipoint_login,"onUpdate:modelValue":e[9]||(e[9]=a=>o(l).multipoint_login=a),"active-value":1,"inactive-value":0},null,8,["modelValue"]),e[11]||(e[11]=u("div",{class:"form-tips"},"允许多人同时在线登录",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["title"])])}}});export{ce as _}; diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DMpcHZPx.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DQvX-3X6.js similarity index 97% rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DMpcHZPx.js rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DQvX-3X6.js index 0f03413c2..9cb3efc56 100644 --- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DMpcHZPx.js +++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DQvX-3X6.js @@ -1 +1 @@ -import{o as S,q as n,r as I,v as a,D as o,bd as T,u as l,bb as q,s as w,T as x,aA as A,O as _,P as m,bf as K,bq as U,L as c,a8 as y,aC as Y}from"./.pnpm-CyuAWpdG.js";import{b as B,c as N}from"./message-7QdBbth1.js";import{_ as F}from"./index-BnfLT5cB.js";const G={class:"edit-popup"},H=S({__name:"edit",emits:["success"],setup(L,{expose:g,emit:E}){const V=E,d=y(),i=y(),t=Y({name:"",type:"",sign:"",app_key:"",app_id:"",secret_key:"",secret_id:"",status:0}),b={sign:[{required:!0,message:"请输入短信签名",trigger:"blur"}],app_id:[{required:!0,message:"请输入APP_ID",trigger:"blur"}],app_key:[{required:!0,message:"请输入APP_KEY",trigger:"blur"}],secret_key:[{required:!0,message:"请输入SECRET_KEY",trigger:"blur"}],secret_id:[{required:!0,message:"请输入SECRET_ID",trigger:"blur"}]},k=async()=>{var s,e;await((s=d.value)==null?void 0:s.validate()),await B(t),(e=i.value)==null||e.close(),V("success")},C=async()=>{const s=await N({type:t.type});for(const e in s)t[e]=s[e]},R=s=>{var e;t.type=s,(e=i.value)==null||e.open(),C()},P=()=>{var s;(s=d.value)==null||s.resetFields()};return g({open:R}),(s,e)=>{const p=q,u=A,f=U,v=K,D=T;return n(),I("div",G,[a(F,{ref_key:"popupRef",ref:i,title:"设置短信",async:!0,width:"550px",onConfirm:k,onClose:P},{default:o(()=>[a(D,{ref_key:"formRef",ref:d,model:l(t),"label-width":"120px",rules:b},{default:o(()=>[a(p,{label:"短信渠道"},{default:o(()=>[w("div",null,x(l(t).name),1)]),_:1}),a(p,{label:"短信签名",prop:"sign"},{default:o(()=>[a(u,{modelValue:l(t).sign,"onUpdate:modelValue":e[0]||(e[0]=r=>l(t).sign=r),placeholder:"请输入短信签名"},null,8,["modelValue"])]),_:1}),l(t).type=="ali"?(n(),_(p,{key:0,label:"APP_KEY",prop:"app_key"},{default:o(()=>[a(u,{modelValue:l(t).app_key,"onUpdate:modelValue":e[1]||(e[1]=r=>l(t).app_key=r),placeholder:"请输入APP_KEY"},null,8,["modelValue"])]),_:1})):m("",!0),l(t).type=="tencent"?(n(),_(p,{key:1,label:"APP_ID",prop:"app_id"},{default:o(()=>[a(u,{modelValue:l(t).app_id,"onUpdate:modelValue":e[2]||(e[2]=r=>l(t).app_id=r),placeholder:"请输入APP_ID"},null,8,["modelValue"])]),_:1})):m("",!0),l(t).type=="tencent"?(n(),_(p,{key:2,label:"SECRET_ID",prop:"secret_id"},{default:o(()=>[a(u,{modelValue:l(t).secret_id,"onUpdate:modelValue":e[3]||(e[3]=r=>l(t).secret_id=r),placeholder:"请输入SECRET_ID"},null,8,["modelValue"])]),_:1})):m("",!0),a(p,{label:"SECRET_KEY",prop:"secret_key"},{default:o(()=>[a(u,{modelValue:l(t).secret_key,"onUpdate:modelValue":e[4]||(e[4]=r=>l(t).secret_key=r),placeholder:"请输入SECRET_KEY"},null,8,["modelValue"])]),_:1}),a(p,{label:"状态",prop:"status"},{default:o(()=>[a(v,{modelValue:l(t).status,"onUpdate:modelValue":e[5]||(e[5]=r=>l(t).status=r)},{default:o(()=>[a(f,{value:0},{default:o(()=>[...e[6]||(e[6]=[c("关闭",-1)])]),_:1}),a(f,{value:1},{default:o(()=>[...e[7]||(e[7]=[c("开启",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},512)])}}});export{H as _}; +import{o as S,q as n,r as I,v as a,D as o,bd as T,u as l,bb as q,s as w,T as x,aA as A,O as _,P as m,bf as K,bq as U,L as c,a8 as y,aC as Y}from"./.pnpm-CyuAWpdG.js";import{b as B,c as N}from"./message-CaYd28kO.js";import{_ as F}from"./index-CS5Wg0xx.js";const G={class:"edit-popup"},H=S({__name:"edit",emits:["success"],setup(L,{expose:g,emit:E}){const V=E,d=y(),i=y(),t=Y({name:"",type:"",sign:"",app_key:"",app_id:"",secret_key:"",secret_id:"",status:0}),b={sign:[{required:!0,message:"请输入短信签名",trigger:"blur"}],app_id:[{required:!0,message:"请输入APP_ID",trigger:"blur"}],app_key:[{required:!0,message:"请输入APP_KEY",trigger:"blur"}],secret_key:[{required:!0,message:"请输入SECRET_KEY",trigger:"blur"}],secret_id:[{required:!0,message:"请输入SECRET_ID",trigger:"blur"}]},k=async()=>{var s,e;await((s=d.value)==null?void 0:s.validate()),await B(t),(e=i.value)==null||e.close(),V("success")},C=async()=>{const s=await N({type:t.type});for(const e in s)t[e]=s[e]},R=s=>{var e;t.type=s,(e=i.value)==null||e.open(),C()},P=()=>{var s;(s=d.value)==null||s.resetFields()};return g({open:R}),(s,e)=>{const p=q,u=A,f=U,v=K,D=T;return n(),I("div",G,[a(F,{ref_key:"popupRef",ref:i,title:"设置短信",async:!0,width:"550px",onConfirm:k,onClose:P},{default:o(()=>[a(D,{ref_key:"formRef",ref:d,model:l(t),"label-width":"120px",rules:b},{default:o(()=>[a(p,{label:"短信渠道"},{default:o(()=>[w("div",null,x(l(t).name),1)]),_:1}),a(p,{label:"短信签名",prop:"sign"},{default:o(()=>[a(u,{modelValue:l(t).sign,"onUpdate:modelValue":e[0]||(e[0]=r=>l(t).sign=r),placeholder:"请输入短信签名"},null,8,["modelValue"])]),_:1}),l(t).type=="ali"?(n(),_(p,{key:0,label:"APP_KEY",prop:"app_key"},{default:o(()=>[a(u,{modelValue:l(t).app_key,"onUpdate:modelValue":e[1]||(e[1]=r=>l(t).app_key=r),placeholder:"请输入APP_KEY"},null,8,["modelValue"])]),_:1})):m("",!0),l(t).type=="tencent"?(n(),_(p,{key:1,label:"APP_ID",prop:"app_id"},{default:o(()=>[a(u,{modelValue:l(t).app_id,"onUpdate:modelValue":e[2]||(e[2]=r=>l(t).app_id=r),placeholder:"请输入APP_ID"},null,8,["modelValue"])]),_:1})):m("",!0),l(t).type=="tencent"?(n(),_(p,{key:2,label:"SECRET_ID",prop:"secret_id"},{default:o(()=>[a(u,{modelValue:l(t).secret_id,"onUpdate:modelValue":e[3]||(e[3]=r=>l(t).secret_id=r),placeholder:"请输入SECRET_ID"},null,8,["modelValue"])]),_:1})):m("",!0),a(p,{label:"SECRET_KEY",prop:"secret_key"},{default:o(()=>[a(u,{modelValue:l(t).secret_key,"onUpdate:modelValue":e[4]||(e[4]=r=>l(t).secret_key=r),placeholder:"请输入SECRET_KEY"},null,8,["modelValue"])]),_:1}),a(p,{label:"状态",prop:"status"},{default:o(()=>[a(v,{modelValue:l(t).status,"onUpdate:modelValue":e[5]||(e[5]=r=>l(t).status=r)},{default:o(()=>[a(f,{value:0},{default:o(()=>[...e[6]||(e[6]=[c("关闭",-1)])]),_:1}),a(f,{value:1},{default:o(()=>[...e[7]||(e[7]=[c("开启",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},512)])}}});export{H as _}; diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-k1s5vx9i.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DVUU54qM.js similarity index 93% rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-k1s5vx9i.js rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DVUU54qM.js index 238ebfb10..a70b0bd1c 100644 --- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-k1s5vx9i.js +++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DVUU54qM.js @@ -1 +1 @@ -import{o as B,q as _,r as I,v as o,D as d,bd as N,u as t,O as q,bb as A,bL as F,P as M,aA as S,s as b,J as O,I as T,a8 as V,p as J,aC as L,M as P}from"./.pnpm-CyuAWpdG.js";import{d as $,a as j,b as z,c as G}from"./department-DToZNvdH.js";import{_ as H}from"./index-BnfLT5cB.js";import{u as K}from"./useDictOptions-ByJNOzqa.js";const Q={class:"edit-popup"},te=B({__name:"edit",emits:["success","close"],setup(W,{expose:v,emit:g}){const m=g,c=V(),u=V(),p=P("add"),w=J(()=>p.value=="edit"?"编辑部门":"新增部门"),l=L({id:"",pid:"",name:"",leader:"",mobile:"",sort:0,status:1}),x={pid:[{required:!0,message:"请选择上级部门",trigger:["change"]}],name:[{required:!0,message:"请输入部门名称",trigger:["blur"]}],mobile:[{validator:(a,e,r)=>{if(e){const n=/^[1][3,4,5,6,7,8,9][0-9]{9}$/;if(console.log(n.test(e)),n.test(e))r();else return r(new Error("请输入正确的手机号"))}else return r()},trigger:["blur"]}]},{optionsData:k}=K({dept:{api:$}}),y=async()=>{var a,e;await((a=c.value)==null?void 0:a.validate()),p.value=="edit"?await j(l):await z(l),(e=u.value)==null||e.close(),m("success")},E=(a="add")=>{var e;p.value=a,(e=u.value)==null||e.open()},f=a=>{for(const e in l)a[e]!=null&&a[e]!=null&&(l[e]=a[e])},C=async a=>{const e=await G({id:a.id});f(e)},D=()=>{m("close")};return v({open:E,setFormData:f,getDetail:C}),(a,e)=>{const r=F,n=A,i=S,h=O,R=T,U=N;return _(),I("div",Q,[o(H,{ref_key:"popupRef",ref:u,title:t(w),async:!0,width:"550px",onConfirm:y,onClose:D},{default:d(()=>[o(U,{ref_key:"formRef",ref:c,model:t(l),"label-width":"84px",rules:x},{default:d(()=>[t(l).pid!==0?(_(),q(n,{key:0,label:"上级部门",prop:"pid"},{default:d(()=>[o(r,{class:"flex-1",modelValue:t(l).pid,"onUpdate:modelValue":e[0]||(e[0]=s=>t(l).pid=s),data:t(k).dept,clearable:"","node-key":"id",props:{value:"id",label:"name"},"check-strictly":"","default-expand-all":!0,placeholder:"请选择上级部门"},null,8,["modelValue","data"])]),_:1})):M("",!0),o(n,{label:"部门名称",prop:"name"},{default:d(()=>[o(i,{modelValue:t(l).name,"onUpdate:modelValue":e[1]||(e[1]=s=>t(l).name=s),placeholder:"请输入部门名称",maxlength:100},null,8,["modelValue"])]),_:1}),o(n,{label:"负责人",prop:"leader"},{default:d(()=>[o(i,{modelValue:t(l).leader,"onUpdate:modelValue":e[2]||(e[2]=s=>t(l).leader=s),placeholder:"请输入负责人姓名",maxlength:30},null,8,["modelValue"])]),_:1}),o(n,{label:"联系电话",prop:"mobile"},{default:d(()=>[o(i,{modelValue:t(l).mobile,"onUpdate:modelValue":e[3]||(e[3]=s=>t(l).mobile=s),placeholder:"请输入联系电话"},null,8,["modelValue"])]),_:1}),o(n,{label:"排序",prop:"sort"},{default:d(()=>[b("div",null,[o(h,{modelValue:t(l).sort,"onUpdate:modelValue":e[4]||(e[4]=s=>t(l).sort=s),min:0,max:9999},null,8,["modelValue"]),e[6]||(e[6]=b("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),o(n,{label:"部门状态"},{default:d(()=>[o(R,{modelValue:t(l).status,"onUpdate:modelValue":e[5]||(e[5]=s=>t(l).status=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{te as _}; +import{o as B,q as _,r as I,v as o,D as d,bd as N,u as t,O as q,bb as A,bL as F,P as M,aA as S,s as b,J as O,I as T,a8 as V,p as J,aC as L,M as P}from"./.pnpm-CyuAWpdG.js";import{d as $,a as j,b as z,c as G}from"./department-BeBGhsmA.js";import{_ as H}from"./index-CS5Wg0xx.js";import{u as K}from"./useDictOptions-dnxxXBSU.js";const Q={class:"edit-popup"},te=B({__name:"edit",emits:["success","close"],setup(W,{expose:v,emit:g}){const m=g,c=V(),u=V(),p=P("add"),w=J(()=>p.value=="edit"?"编辑部门":"新增部门"),l=L({id:"",pid:"",name:"",leader:"",mobile:"",sort:0,status:1}),x={pid:[{required:!0,message:"请选择上级部门",trigger:["change"]}],name:[{required:!0,message:"请输入部门名称",trigger:["blur"]}],mobile:[{validator:(a,e,r)=>{if(e){const n=/^[1][3,4,5,6,7,8,9][0-9]{9}$/;if(console.log(n.test(e)),n.test(e))r();else return r(new Error("请输入正确的手机号"))}else return r()},trigger:["blur"]}]},{optionsData:k}=K({dept:{api:$}}),y=async()=>{var a,e;await((a=c.value)==null?void 0:a.validate()),p.value=="edit"?await j(l):await z(l),(e=u.value)==null||e.close(),m("success")},E=(a="add")=>{var e;p.value=a,(e=u.value)==null||e.open()},f=a=>{for(const e in l)a[e]!=null&&a[e]!=null&&(l[e]=a[e])},C=async a=>{const e=await G({id:a.id});f(e)},D=()=>{m("close")};return v({open:E,setFormData:f,getDetail:C}),(a,e)=>{const r=F,n=A,i=S,h=O,R=T,U=N;return _(),I("div",Q,[o(H,{ref_key:"popupRef",ref:u,title:t(w),async:!0,width:"550px",onConfirm:y,onClose:D},{default:d(()=>[o(U,{ref_key:"formRef",ref:c,model:t(l),"label-width":"84px",rules:x},{default:d(()=>[t(l).pid!==0?(_(),q(n,{key:0,label:"上级部门",prop:"pid"},{default:d(()=>[o(r,{class:"flex-1",modelValue:t(l).pid,"onUpdate:modelValue":e[0]||(e[0]=s=>t(l).pid=s),data:t(k).dept,clearable:"","node-key":"id",props:{value:"id",label:"name"},"check-strictly":"","default-expand-all":!0,placeholder:"请选择上级部门"},null,8,["modelValue","data"])]),_:1})):M("",!0),o(n,{label:"部门名称",prop:"name"},{default:d(()=>[o(i,{modelValue:t(l).name,"onUpdate:modelValue":e[1]||(e[1]=s=>t(l).name=s),placeholder:"请输入部门名称",maxlength:100},null,8,["modelValue"])]),_:1}),o(n,{label:"负责人",prop:"leader"},{default:d(()=>[o(i,{modelValue:t(l).leader,"onUpdate:modelValue":e[2]||(e[2]=s=>t(l).leader=s),placeholder:"请输入负责人姓名",maxlength:30},null,8,["modelValue"])]),_:1}),o(n,{label:"联系电话",prop:"mobile"},{default:d(()=>[o(i,{modelValue:t(l).mobile,"onUpdate:modelValue":e[3]||(e[3]=s=>t(l).mobile=s),placeholder:"请输入联系电话"},null,8,["modelValue"])]),_:1}),o(n,{label:"排序",prop:"sort"},{default:d(()=>[b("div",null,[o(h,{modelValue:t(l).sort,"onUpdate:modelValue":e[4]||(e[4]=s=>t(l).sort=s),min:0,max:9999},null,8,["modelValue"]),e[6]||(e[6]=b("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),o(n,{label:"部门状态"},{default:d(()=>[o(R,{modelValue:t(l).status,"onUpdate:modelValue":e[5]||(e[5]=s=>t(l).status=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{te as _}; diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DRGhGv7L.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DjT3f1Sv.js similarity index 97% rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DRGhGv7L.js rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DjT3f1Sv.js index 9954772fc..678d9c6e5 100644 --- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DRGhGv7L.js +++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-DjT3f1Sv.js @@ -1 +1 @@ -import{o as F,q as i,r as A,v as o,D as a,bd as O,u as l,bb as S,s as n,aA as T,O as c,P as v,bf as z,bq as G,L as m,J,I as L,a8 as w,p as M,aC as P,M as j}from"./.pnpm-CyuAWpdG.js";import{f as H,h as K,i as Q}from"./wx_oa-vu-UopqS.js";import{_ as W}from"./index-BnfLT5cB.js";const X={class:"edit-popup"},Y={class:"flex-1"},Z={class:"flex-1"},$={class:"flex-1"},h={class:"flex-1"},ee={class:"flex-1"},te={class:"flex-1"},le={class:"flex-1"},de=F({__name:"edit",emits:["success","close"],setup(oe,{expose:x,emit:k}){const V=k,g=w(),_=w(),f=j("add"),R=M(()=>f.value=="edit"?"编辑":"新增"),t=P({id:"",name:"",reply_type:0,content_type:1,keyword:"",content:"",matching_type:1,status:1,sort:0,reply_num:1}),E={name:[{required:!0,message:"请输入规则名称",trigger:["blur"]}],keyword:[{required:!0,message:"请输入关键词",trigger:["blur"]}],matching_type:[{required:!0,message:"请选择匹配方式",trigger:["blur"]}],content_type:[{required:!0,message:"请选择回复类型",trigger:["blur"]}],content:[{required:!0,message:"请输入回复内容",trigger:["blur"]}]},q=async()=>{var d,e;await((d=g.value)==null?void 0:d.validate()),f.value=="edit"?await H(t):await K(t),(e=_.value)==null||e.close(),V("success")},U=(d="add",e=0)=>{var u;f.value=d,t.reply_type=e,(u=_.value)==null||u.open()},b=d=>{for(const e in t)d[e]!=null&&d[e]!=null&&(t[e]=d[e])},C=async d=>{const e=await Q({id:d.id});b(e)},D=()=>{V("close")};return x({open:U,setFormData:b,getDetail:C}),(d,e)=>{const u=T,r=S,p=G,y=z,N=J,B=L,I=O;return i(),A("div",X,[o(W,{ref_key:"popupRef",ref:_,title:l(R),async:!0,width:"500px",onConfirm:q,onClose:D},{default:a(()=>[o(I,{ref_key:"formRef",ref:g,model:l(t),"label-width":"84px",rules:E,class:"pr-10"},{default:a(()=>[o(r,{label:"规则名称",prop:"name"},{default:a(()=>[n("div",Y,[o(u,{modelValue:l(t).name,"onUpdate:modelValue":e[0]||(e[0]=s=>l(t).name=s),placeholder:"请输入规则名称"},null,8,["modelValue"]),e[8]||(e[8]=n("div",{class:"form-tips"},"方便通过名称管理关注回复内容",-1))])]),_:1}),l(t).reply_type==2?(i(),c(r,{key:0,label:"关键词",prop:"keyword"},{default:a(()=>[n("div",Z,[o(u,{modelValue:l(t).keyword,"onUpdate:modelValue":e[1]||(e[1]=s=>l(t).keyword=s),placeholder:"请输入关键词"},null,8,["modelValue"]),e[9]||(e[9]=n("div",{class:"form-tips"},"方便通过名称管理关注回复内容",-1))])]),_:1})):v("",!0),l(t).reply_type==2?(i(),c(r,{key:1,label:"匹配方式",prop:"matching_type"},{default:a(()=>[n("div",$,[o(y,{modelValue:l(t).matching_type,"onUpdate:modelValue":e[2]||(e[2]=s=>l(t).matching_type=s)},{default:a(()=>[o(p,{value:1},{default:a(()=>[...e[10]||(e[10]=[m("全匹配",-1)])]),_:1}),o(p,{value:2},{default:a(()=>[...e[11]||(e[11]=[m("模糊匹配",-1)])]),_:1})]),_:1},8,["modelValue"]),e[12]||(e[12]=n("div",{class:"form-tips"},"模糊匹配时,关键词部分匹配用户输入的内容即可",-1))])]),_:1})):v("",!0),o(r,{label:"回复类型",prop:"content_type",min:0},{default:a(()=>[n("div",h,[o(y,{modelValue:l(t).content_type,"onUpdate:modelValue":e[3]||(e[3]=s=>l(t).content_type=s)},{default:a(()=>[o(p,{value:1},{default:a(()=>[...e[13]||(e[13]=[m("文本",-1)])]),_:1})]),_:1},8,["modelValue"]),e[14]||(e[14]=n("div",{class:"form-tips"},"暂时只支持文本类型",-1))])]),_:1}),o(r,{label:"回复内容",prop:"content"},{default:a(()=>[n("div",ee,[o(u,{modelValue:l(t).content,"onUpdate:modelValue":e[4]||(e[4]=s=>l(t).content=s),autosize:{minRows:4,maxRows:4},type:"textarea",maxlength:"200","show-word-limit":"",placeholder:"请输入回复内容"},null,8,["modelValue"])])]),_:1}),o(r,{label:"排序"},{default:a(()=>[n("div",te,[o(N,{modelValue:l(t).sort,"onUpdate:modelValue":e[5]||(e[5]=s=>l(t).sort=s),min:0,max:9999},null,8,["modelValue"])])]),_:1}),l(t).reply_type==2?(i(),c(r,{key:2,label:"回复数量",prop:"reply_num",required:""},{default:a(()=>[n("div",le,[o(y,{modelValue:l(t).reply_num,"onUpdate:modelValue":e[6]||(e[6]=s=>l(t).reply_num=s)},{default:a(()=>[o(p,{value:1},{default:a(()=>[...e[15]||(e[15]=[m("回复匹配首词条",-1)])]),_:1})]),_:1},8,["modelValue"]),e[16]||(e[16]=n("div",{class:"form-tips"}," 设置关键词匹配多条时回复的数量,暂时支持回复一条内容 ",-1))])]),_:1})):v("",!0),o(r,{label:"启用状态"},{default:a(()=>[o(B,{modelValue:l(t).status,"onUpdate:modelValue":e[7]||(e[7]=s=>l(t).status=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{de as _}; +import{o as F,q as i,r as A,v as o,D as a,bd as O,u as l,bb as S,s as n,aA as T,O as c,P as v,bf as z,bq as G,L as m,J,I as L,a8 as w,p as M,aC as P,M as j}from"./.pnpm-CyuAWpdG.js";import{f as H,h as K,i as Q}from"./wx_oa-C-EoclSf.js";import{_ as W}from"./index-CS5Wg0xx.js";const X={class:"edit-popup"},Y={class:"flex-1"},Z={class:"flex-1"},$={class:"flex-1"},h={class:"flex-1"},ee={class:"flex-1"},te={class:"flex-1"},le={class:"flex-1"},de=F({__name:"edit",emits:["success","close"],setup(oe,{expose:x,emit:k}){const V=k,g=w(),_=w(),f=j("add"),R=M(()=>f.value=="edit"?"编辑":"新增"),t=P({id:"",name:"",reply_type:0,content_type:1,keyword:"",content:"",matching_type:1,status:1,sort:0,reply_num:1}),E={name:[{required:!0,message:"请输入规则名称",trigger:["blur"]}],keyword:[{required:!0,message:"请输入关键词",trigger:["blur"]}],matching_type:[{required:!0,message:"请选择匹配方式",trigger:["blur"]}],content_type:[{required:!0,message:"请选择回复类型",trigger:["blur"]}],content:[{required:!0,message:"请输入回复内容",trigger:["blur"]}]},q=async()=>{var d,e;await((d=g.value)==null?void 0:d.validate()),f.value=="edit"?await H(t):await K(t),(e=_.value)==null||e.close(),V("success")},U=(d="add",e=0)=>{var u;f.value=d,t.reply_type=e,(u=_.value)==null||u.open()},b=d=>{for(const e in t)d[e]!=null&&d[e]!=null&&(t[e]=d[e])},C=async d=>{const e=await Q({id:d.id});b(e)},D=()=>{V("close")};return x({open:U,setFormData:b,getDetail:C}),(d,e)=>{const u=T,r=S,p=G,y=z,N=J,B=L,I=O;return i(),A("div",X,[o(W,{ref_key:"popupRef",ref:_,title:l(R),async:!0,width:"500px",onConfirm:q,onClose:D},{default:a(()=>[o(I,{ref_key:"formRef",ref:g,model:l(t),"label-width":"84px",rules:E,class:"pr-10"},{default:a(()=>[o(r,{label:"规则名称",prop:"name"},{default:a(()=>[n("div",Y,[o(u,{modelValue:l(t).name,"onUpdate:modelValue":e[0]||(e[0]=s=>l(t).name=s),placeholder:"请输入规则名称"},null,8,["modelValue"]),e[8]||(e[8]=n("div",{class:"form-tips"},"方便通过名称管理关注回复内容",-1))])]),_:1}),l(t).reply_type==2?(i(),c(r,{key:0,label:"关键词",prop:"keyword"},{default:a(()=>[n("div",Z,[o(u,{modelValue:l(t).keyword,"onUpdate:modelValue":e[1]||(e[1]=s=>l(t).keyword=s),placeholder:"请输入关键词"},null,8,["modelValue"]),e[9]||(e[9]=n("div",{class:"form-tips"},"方便通过名称管理关注回复内容",-1))])]),_:1})):v("",!0),l(t).reply_type==2?(i(),c(r,{key:1,label:"匹配方式",prop:"matching_type"},{default:a(()=>[n("div",$,[o(y,{modelValue:l(t).matching_type,"onUpdate:modelValue":e[2]||(e[2]=s=>l(t).matching_type=s)},{default:a(()=>[o(p,{value:1},{default:a(()=>[...e[10]||(e[10]=[m("全匹配",-1)])]),_:1}),o(p,{value:2},{default:a(()=>[...e[11]||(e[11]=[m("模糊匹配",-1)])]),_:1})]),_:1},8,["modelValue"]),e[12]||(e[12]=n("div",{class:"form-tips"},"模糊匹配时,关键词部分匹配用户输入的内容即可",-1))])]),_:1})):v("",!0),o(r,{label:"回复类型",prop:"content_type",min:0},{default:a(()=>[n("div",h,[o(y,{modelValue:l(t).content_type,"onUpdate:modelValue":e[3]||(e[3]=s=>l(t).content_type=s)},{default:a(()=>[o(p,{value:1},{default:a(()=>[...e[13]||(e[13]=[m("文本",-1)])]),_:1})]),_:1},8,["modelValue"]),e[14]||(e[14]=n("div",{class:"form-tips"},"暂时只支持文本类型",-1))])]),_:1}),o(r,{label:"回复内容",prop:"content"},{default:a(()=>[n("div",ee,[o(u,{modelValue:l(t).content,"onUpdate:modelValue":e[4]||(e[4]=s=>l(t).content=s),autosize:{minRows:4,maxRows:4},type:"textarea",maxlength:"200","show-word-limit":"",placeholder:"请输入回复内容"},null,8,["modelValue"])])]),_:1}),o(r,{label:"排序"},{default:a(()=>[n("div",te,[o(N,{modelValue:l(t).sort,"onUpdate:modelValue":e[5]||(e[5]=s=>l(t).sort=s),min:0,max:9999},null,8,["modelValue"])])]),_:1}),l(t).reply_type==2?(i(),c(r,{key:2,label:"回复数量",prop:"reply_num",required:""},{default:a(()=>[n("div",le,[o(y,{modelValue:l(t).reply_num,"onUpdate:modelValue":e[6]||(e[6]=s=>l(t).reply_num=s)},{default:a(()=>[o(p,{value:1},{default:a(()=>[...e[15]||(e[15]=[m("回复匹配首词条",-1)])]),_:1})]),_:1},8,["modelValue"]),e[16]||(e[16]=n("div",{class:"form-tips"}," 设置关键词匹配多条时回复的数量,暂时支持回复一条内容 ",-1))])]),_:1})):v("",!0),o(r,{label:"启用状态"},{default:a(()=>[o(B,{modelValue:l(t).status,"onUpdate:modelValue":e[7]||(e[7]=s=>l(t).status=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{de as _}; diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-onWuscvD.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-jjgQMFv5.js similarity index 94% rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-onWuscvD.js rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-jjgQMFv5.js index 5715ed58a..b611ac57c 100644 --- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-onWuscvD.js +++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-jjgQMFv5.js @@ -1 +1 @@ -import{o as h,q as C,r as g,v as o,D as n,bd as k,u as a,bb as D,aA as F,J as U,bh as I,bi as q,a8 as _,p as A,aC as B,M as N}from"./.pnpm-CyuAWpdG.js";import{a as S,b as z}from"./role-B1hWAn9n.js";import{_ as J}from"./index-BnfLT5cB.js";const M={class:"edit-popup"},L=h({__name:"edit",emits:["success","close"],setup(O,{expose:f,emit:b}){const r=b,c=_(),u=_(),d=N("add"),v=A(()=>d.value=="edit"?"编辑角色":"新增角色"),l=B({id:"",name:"",desc:"",sort:0,data_scope:1,menu_id:[]}),V={name:[{required:!0,message:"请输入名称",trigger:["blur"]}]},w=async()=>{var t,e;await((t=c.value)==null?void 0:t.validate()),d.value=="edit"?await S(l):await z(l),(e=u.value)==null||e.close(),r("success")},x=()=>{r("close")};return f({open:(t="add")=>{var e;d.value=t,(e=u.value)==null||e.open()},setFormData:async t=>{for(const e in l)t[e]!=null&&t[e]!=null&&(l[e]=t[e])}}),(t,e)=>{const i=F,m=D,E=U,p=q,y=I,R=k;return C(),g("div",M,[o(J,{ref_key:"popupRef",ref:u,title:a(v),async:!0,width:"550px",onConfirm:w,onClose:x},{default:n(()=>[o(R,{class:"ls-form",ref_key:"formRef",ref:c,rules:V,model:a(l),"label-width":"60px"},{default:n(()=>[o(m,{label:"名称",prop:"name"},{default:n(()=>[o(i,{class:"ls-input",modelValue:a(l).name,"onUpdate:modelValue":e[0]||(e[0]=s=>a(l).name=s),placeholder:"请输入名称",clearable:""},null,8,["modelValue"])]),_:1}),o(m,{label:"备注",prop:"desc"},{default:n(()=>[o(i,{modelValue:a(l).desc,"onUpdate:modelValue":e[1]||(e[1]=s=>a(l).desc=s),type:"textarea",autosize:{minRows:4,maxRows:6},placeholder:"请输入备注",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),o(m,{label:"排序",prop:"sort"},{default:n(()=>[o(E,{modelValue:a(l).sort,"onUpdate:modelValue":e[2]||(e[2]=s=>a(l).sort=s),min:0,max:9999},null,8,["modelValue"])]),_:1}),o(m,{label:"数据范围",prop:"data_scope"},{default:n(()=>[o(y,{modelValue:a(l).data_scope,"onUpdate:modelValue":e[3]||(e[3]=s=>a(l).data_scope=s),placeholder:"请选择数据范围",class:"ls-input"},{default:n(()=>[o(p,{value:1,label:"全部数据(免隔离)"}),o(p,{value:2,label:"本部门及下级部门"}),o(p,{value:3,label:"仅本部门"}),o(p,{value:4,label:"仅本人"})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{L as _}; +import{o as h,q as C,r as g,v as o,D as n,bd as k,u as a,bb as D,aA as F,J as U,bh as I,bi as q,a8 as _,p as A,aC as B,M as N}from"./.pnpm-CyuAWpdG.js";import{a as S,b as z}from"./role-fMbnnhKr.js";import{_ as J}from"./index-CS5Wg0xx.js";const M={class:"edit-popup"},L=h({__name:"edit",emits:["success","close"],setup(O,{expose:f,emit:b}){const r=b,c=_(),u=_(),d=N("add"),v=A(()=>d.value=="edit"?"编辑角色":"新增角色"),l=B({id:"",name:"",desc:"",sort:0,data_scope:1,menu_id:[]}),V={name:[{required:!0,message:"请输入名称",trigger:["blur"]}]},w=async()=>{var t,e;await((t=c.value)==null?void 0:t.validate()),d.value=="edit"?await S(l):await z(l),(e=u.value)==null||e.close(),r("success")},x=()=>{r("close")};return f({open:(t="add")=>{var e;d.value=t,(e=u.value)==null||e.open()},setFormData:async t=>{for(const e in l)t[e]!=null&&t[e]!=null&&(l[e]=t[e])}}),(t,e)=>{const i=F,m=D,E=U,p=q,y=I,R=k;return C(),g("div",M,[o(J,{ref_key:"popupRef",ref:u,title:a(v),async:!0,width:"550px",onConfirm:w,onClose:x},{default:n(()=>[o(R,{class:"ls-form",ref_key:"formRef",ref:c,rules:V,model:a(l),"label-width":"60px"},{default:n(()=>[o(m,{label:"名称",prop:"name"},{default:n(()=>[o(i,{class:"ls-input",modelValue:a(l).name,"onUpdate:modelValue":e[0]||(e[0]=s=>a(l).name=s),placeholder:"请输入名称",clearable:""},null,8,["modelValue"])]),_:1}),o(m,{label:"备注",prop:"desc"},{default:n(()=>[o(i,{modelValue:a(l).desc,"onUpdate:modelValue":e[1]||(e[1]=s=>a(l).desc=s),type:"textarea",autosize:{minRows:4,maxRows:6},placeholder:"请输入备注",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),o(m,{label:"排序",prop:"sort"},{default:n(()=>[o(E,{modelValue:a(l).sort,"onUpdate:modelValue":e[2]||(e[2]=s=>a(l).sort=s),min:0,max:9999},null,8,["modelValue"])]),_:1}),o(m,{label:"数据范围",prop:"data_scope"},{default:n(()=>[o(y,{modelValue:a(l).data_scope,"onUpdate:modelValue":e[3]||(e[3]=s=>a(l).data_scope=s),placeholder:"请选择数据范围",class:"ls-input"},{default:n(()=>[o(p,{value:1,label:"全部数据(免隔离)"}),o(p,{value:2,label:"本部门及下级部门"}),o(p,{value:3,label:"仅本部门"}),o(p,{value:4,label:"仅本人"})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{L as _}; diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-ccnC9QVe.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-qmD3gOVD.js similarity index 97% rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-ccnC9QVe.js rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-qmD3gOVD.js index 22811ed8a..5c87d86ae 100644 --- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-ccnC9QVe.js +++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_lang-qmD3gOVD.js @@ -1 +1 @@ -import{o as S,M as U,aC as J,q as i,r as K,v as t,D as a,bd as $,u as l,bb as j,bf as z,bq as H,L as m,bL as Q,aA as W,O as f,P as v,s as d,dd as X,J as Y,a8 as w,p as Z}from"./.pnpm-CyuAWpdG.js";import{_ as h}from"./picker.vue_vue_type_script_setup_true_lang-r5jdEAJg.js";import{a as ee,b as le,c as oe,d as te}from"./menu-Y8cDrxAC.js";import{_ as ae}from"./index-BnfLT5cB.js";import{w as se,M as n,x as de,y as ue}from"./index-Dxvz9lb1.js";const ne={class:"edit-popup"},re={class:"flex-1"},pe={class:"flex-1"},ie={class:"flex-1"},me={class:"flex-1"},fe={class:"flex-1"},ce=S({__name:"edit",emits:["success","close"],setup(ve,{expose:x,emit:N}){const c=N,g=w(),b=w(),y=U("add"),C=Z(()=>y.value=="edit"?"编辑菜单":"新增菜单"),T=U(se()),O=(u,e)=>{const r=u?T.value.filter(V=>V.toLowerCase().includes(u.toLowerCase())):T.value;e(r.map(V=>({value:V})))},o=J({id:"",pid:0,type:n.CATALOGUE,icon:"",name:"",sort:0,paths:"",perms:"",component:"",selected:"",params:"",is_cache:1,is_show:1,is_disable:0}),A={pid:[{required:!0,message:"请选择父级菜单",trigger:["blur","change"]}],name:[{required:!0,message:"请输入菜单名称",trigger:"blur"}],paths:[{required:!0,message:"请输入路由地址",trigger:"blur"}],component:[{required:!0,message:"请输入组件地址",trigger:"blur"}]},k=U([]),q=async()=>{const u=await ee({page_type:0}),e={id:0,name:"顶级",children:[]};e.children=de(ue(u.lists).filter(r=>r.type!=n.BUTTON)),k.value.push(e)},B=async()=>{var u,e;await((u=g.value)==null?void 0:u.validate()),y.value=="edit"?await le(o):await oe(o),(e=b.value)==null||e.close(),c("success")},M=(u="add")=>{var e;y.value=u,(e=b.value)==null||e.open()},E=u=>{for(const e in o)u[e]!=null&&u[e]!=null&&(o[e]=u[e])},L=async u=>{const e=await te({id:u.id});E(e)},R=()=>{c("close")};return q(),x({open:M,setFormData:E,getDetail:L}),(u,e)=>{const r=H,V=z,p=j,D=Q,_=W,G=h,I=X,F=Y,P=$;return i(),K("div",ne,[t(ae,{ref_key:"popupRef",ref:b,title:l(C),async:!0,width:"550px",onConfirm:B,onClose:R},{default:a(()=>[t(P,{ref_key:"formRef",ref:g,model:l(o),"label-width":"80px",rules:A},{default:a(()=>[t(p,{label:"菜单类型",prop:"type",required:""},{default:a(()=>[t(V,{modelValue:l(o).type,"onUpdate:modelValue":e[0]||(e[0]=s=>l(o).type=s)},{default:a(()=>[t(r,{value:l(n).CATALOGUE},{default:a(()=>[...e[13]||(e[13]=[m("目录",-1)])]),_:1},8,["value"]),t(r,{value:l(n).MENU},{default:a(()=>[...e[14]||(e[14]=[m("菜单",-1)])]),_:1},8,["value"]),t(r,{value:l(n).BUTTON},{default:a(()=>[...e[15]||(e[15]=[m("按钮",-1)])]),_:1},8,["value"])]),_:1},8,["modelValue"])]),_:1}),t(p,{label:"父级菜单",prop:"pid"},{default:a(()=>[t(D,{class:"flex-1",modelValue:l(o).pid,"onUpdate:modelValue":e[1]||(e[1]=s=>l(o).pid=s),data:l(k),clearable:"","node-key":"id",props:{label:"name"},"default-expand-all":!0,placeholder:"请选择父级菜单","check-strictly":""},null,8,["modelValue","data"])]),_:1}),t(p,{label:"菜单名称",prop:"name"},{default:a(()=>[t(_,{modelValue:l(o).name,"onUpdate:modelValue":e[2]||(e[2]=s=>l(o).name=s),placeholder:"请输入菜单名称",clearable:""},null,8,["modelValue"])]),_:1}),l(o).type!=l(n).BUTTON?(i(),f(p,{key:0,label:"菜单图标",prop:"icon"},{default:a(()=>[t(G,{class:"flex-1",modelValue:l(o).icon,"onUpdate:modelValue":e[3]||(e[3]=s=>l(o).icon=s)},null,8,["modelValue"])]),_:1})):v("",!0),l(o).type!=l(n).BUTTON?(i(),f(p,{key:1,label:"路由路径",prop:"paths"},{default:a(()=>[d("div",re,[t(_,{modelValue:l(o).paths,"onUpdate:modelValue":e[4]||(e[4]=s=>l(o).paths=s),placeholder:"请输入路由路径",clearable:""},null,8,["modelValue"]),e[16]||(e[16]=d("div",{class:"form-tips"}," 访问的路由地址,如:`user`,如外网地址需内链访问则以`http(s)://`开头 ",-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:2,label:"组件路径",prop:"component"},{default:a(()=>[d("div",pe,[t(I,{class:"w-full",modelValue:l(o).component,"onUpdate:modelValue":e[5]||(e[5]=s=>l(o).component=s),"fetch-suggestions":O,clearable:"",placeholder:"请输入组件路径"},null,8,["modelValue"]),e[17]||(e[17]=d("div",{class:"form-tips"}," 访问的组件路径,如:`user/setting`,默认在`views`目录下 ",-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:3,label:"选中菜单",prop:"selected"},{default:a(()=>[d("div",ie,[t(_,{modelValue:l(o).selected,"onUpdate:modelValue":e[6]||(e[6]=s=>l(o).selected=s),placeholder:"请输入路由路径",clearable:""},null,8,["modelValue"]),e[18]||(e[18]=d("div",{class:"form-tips"}," 访问详情页面,编辑页面时,菜单高亮显示,如`/consumer/lists` ",-1))])]),_:1})):v("",!0),l(o).type!=l(n).CATALOGUE?(i(),f(p,{key:4,label:"权限字符",prop:"perms"},{default:a(()=>[d("div",me,[t(_,{modelValue:l(o).perms,"onUpdate:modelValue":e[7]||(e[7]=s=>l(o).perms=s),placeholder:"请输入权限字符",clearable:""},null,8,["modelValue"]),e[19]||(e[19]=d("div",{class:"form-tips"}," 将作为server端API验权使用,如`auth.admin/user`,请谨慎修改 ",-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:5,label:"路由参数",prop:"params"},{default:a(()=>[d("div",null,[d("div",fe,[t(_,{modelValue:l(o).params,"onUpdate:modelValue":e[8]||(e[8]=s=>l(o).params=s),placeholder:"请输入路由参数",clearable:""},null,8,["modelValue"])]),e[20]||(e[20]=d("div",{class:"form-tips"},' 访问路由的默认传递参数,如:`{"id": 1, "name": "admin"}`或`id=1&name=admin` ',-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:6,label:"是否缓存",prop:"is_cache",required:""},{default:a(()=>[d("div",null,[t(V,{modelValue:l(o).is_cache,"onUpdate:modelValue":e[9]||(e[9]=s=>l(o).is_cache=s)},{default:a(()=>[t(r,{value:1},{default:a(()=>[...e[21]||(e[21]=[m("缓存",-1)])]),_:1}),t(r,{value:0},{default:a(()=>[...e[22]||(e[22]=[m("不缓存",-1)])]),_:1})]),_:1},8,["modelValue"]),e[23]||(e[23]=d("div",{class:"form-tips"},"选择缓存则会被`keep-alive`缓存",-1))])]),_:1})):v("",!0),l(o).type!=l(n).BUTTON?(i(),f(p,{key:7,label:"是否显示",prop:"is_show",required:""},{default:a(()=>[d("div",null,[t(V,{modelValue:l(o).is_show,"onUpdate:modelValue":e[10]||(e[10]=s=>l(o).is_show=s)},{default:a(()=>[t(r,{value:1},{default:a(()=>[...e[24]||(e[24]=[m("显示",-1)])]),_:1}),t(r,{value:0},{default:a(()=>[...e[25]||(e[25]=[m("隐藏",-1)])]),_:1})]),_:1},8,["modelValue"]),e[26]||(e[26]=d("div",{class:"form-tips"}," 选择隐藏则路由将不会出现在侧边栏,但仍然可以访问 ",-1))])]),_:1})):v("",!0),l(o).type!=l(n).BUTTON?(i(),f(p,{key:8,label:"菜单状态",prop:"is_disable",required:""},{default:a(()=>[d("div",null,[t(V,{modelValue:l(o).is_disable,"onUpdate:modelValue":e[11]||(e[11]=s=>l(o).is_disable=s)},{default:a(()=>[t(r,{value:0},{default:a(()=>[...e[27]||(e[27]=[m("正常",-1)])]),_:1}),t(r,{value:1},{default:a(()=>[...e[28]||(e[28]=[m("停用",-1)])]),_:1})]),_:1},8,["modelValue"]),e[29]||(e[29]=d("div",{class:"form-tips"},"选择停用则路由将不会出现在侧边栏,也不能被访问",-1))])]),_:1})):v("",!0),t(p,{label:"菜单排序",prop:"sort"},{default:a(()=>[d("div",null,[t(F,{modelValue:l(o).sort,"onUpdate:modelValue":e[12]||(e[12]=s=>l(o).sort=s),min:0,max:9999},null,8,["modelValue"]),e[30]||(e[30]=d("div",{class:"form-tips"},"数值越大越排前",-1))])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{ce as _}; +import{o as S,M as U,aC as J,q as i,r as K,v as t,D as a,bd as $,u as l,bb as j,bf as z,bq as H,L as m,bL as Q,aA as W,O as f,P as v,s as d,dd as X,J as Y,a8 as w,p as Z}from"./.pnpm-CyuAWpdG.js";import{_ as h}from"./picker.vue_vue_type_script_setup_true_lang-CMq9B6V2.js";import{a as ee,b as le,c as oe,d as te}from"./menu-BmHYTFQt.js";import{_ as ae}from"./index-CS5Wg0xx.js";import{w as se,M as n,x as de,y as ue}from"./index-Bkarz3gO.js";const ne={class:"edit-popup"},re={class:"flex-1"},pe={class:"flex-1"},ie={class:"flex-1"},me={class:"flex-1"},fe={class:"flex-1"},ce=S({__name:"edit",emits:["success","close"],setup(ve,{expose:x,emit:N}){const c=N,g=w(),b=w(),y=U("add"),C=Z(()=>y.value=="edit"?"编辑菜单":"新增菜单"),T=U(se()),O=(u,e)=>{const r=u?T.value.filter(V=>V.toLowerCase().includes(u.toLowerCase())):T.value;e(r.map(V=>({value:V})))},o=J({id:"",pid:0,type:n.CATALOGUE,icon:"",name:"",sort:0,paths:"",perms:"",component:"",selected:"",params:"",is_cache:1,is_show:1,is_disable:0}),A={pid:[{required:!0,message:"请选择父级菜单",trigger:["blur","change"]}],name:[{required:!0,message:"请输入菜单名称",trigger:"blur"}],paths:[{required:!0,message:"请输入路由地址",trigger:"blur"}],component:[{required:!0,message:"请输入组件地址",trigger:"blur"}]},k=U([]),q=async()=>{const u=await ee({page_type:0}),e={id:0,name:"顶级",children:[]};e.children=de(ue(u.lists).filter(r=>r.type!=n.BUTTON)),k.value.push(e)},B=async()=>{var u,e;await((u=g.value)==null?void 0:u.validate()),y.value=="edit"?await le(o):await oe(o),(e=b.value)==null||e.close(),c("success")},M=(u="add")=>{var e;y.value=u,(e=b.value)==null||e.open()},E=u=>{for(const e in o)u[e]!=null&&u[e]!=null&&(o[e]=u[e])},L=async u=>{const e=await te({id:u.id});E(e)},R=()=>{c("close")};return q(),x({open:M,setFormData:E,getDetail:L}),(u,e)=>{const r=H,V=z,p=j,D=Q,_=W,G=h,I=X,F=Y,P=$;return i(),K("div",ne,[t(ae,{ref_key:"popupRef",ref:b,title:l(C),async:!0,width:"550px",onConfirm:B,onClose:R},{default:a(()=>[t(P,{ref_key:"formRef",ref:g,model:l(o),"label-width":"80px",rules:A},{default:a(()=>[t(p,{label:"菜单类型",prop:"type",required:""},{default:a(()=>[t(V,{modelValue:l(o).type,"onUpdate:modelValue":e[0]||(e[0]=s=>l(o).type=s)},{default:a(()=>[t(r,{value:l(n).CATALOGUE},{default:a(()=>[...e[13]||(e[13]=[m("目录",-1)])]),_:1},8,["value"]),t(r,{value:l(n).MENU},{default:a(()=>[...e[14]||(e[14]=[m("菜单",-1)])]),_:1},8,["value"]),t(r,{value:l(n).BUTTON},{default:a(()=>[...e[15]||(e[15]=[m("按钮",-1)])]),_:1},8,["value"])]),_:1},8,["modelValue"])]),_:1}),t(p,{label:"父级菜单",prop:"pid"},{default:a(()=>[t(D,{class:"flex-1",modelValue:l(o).pid,"onUpdate:modelValue":e[1]||(e[1]=s=>l(o).pid=s),data:l(k),clearable:"","node-key":"id",props:{label:"name"},"default-expand-all":!0,placeholder:"请选择父级菜单","check-strictly":""},null,8,["modelValue","data"])]),_:1}),t(p,{label:"菜单名称",prop:"name"},{default:a(()=>[t(_,{modelValue:l(o).name,"onUpdate:modelValue":e[2]||(e[2]=s=>l(o).name=s),placeholder:"请输入菜单名称",clearable:""},null,8,["modelValue"])]),_:1}),l(o).type!=l(n).BUTTON?(i(),f(p,{key:0,label:"菜单图标",prop:"icon"},{default:a(()=>[t(G,{class:"flex-1",modelValue:l(o).icon,"onUpdate:modelValue":e[3]||(e[3]=s=>l(o).icon=s)},null,8,["modelValue"])]),_:1})):v("",!0),l(o).type!=l(n).BUTTON?(i(),f(p,{key:1,label:"路由路径",prop:"paths"},{default:a(()=>[d("div",re,[t(_,{modelValue:l(o).paths,"onUpdate:modelValue":e[4]||(e[4]=s=>l(o).paths=s),placeholder:"请输入路由路径",clearable:""},null,8,["modelValue"]),e[16]||(e[16]=d("div",{class:"form-tips"}," 访问的路由地址,如:`user`,如外网地址需内链访问则以`http(s)://`开头 ",-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:2,label:"组件路径",prop:"component"},{default:a(()=>[d("div",pe,[t(I,{class:"w-full",modelValue:l(o).component,"onUpdate:modelValue":e[5]||(e[5]=s=>l(o).component=s),"fetch-suggestions":O,clearable:"",placeholder:"请输入组件路径"},null,8,["modelValue"]),e[17]||(e[17]=d("div",{class:"form-tips"}," 访问的组件路径,如:`user/setting`,默认在`views`目录下 ",-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:3,label:"选中菜单",prop:"selected"},{default:a(()=>[d("div",ie,[t(_,{modelValue:l(o).selected,"onUpdate:modelValue":e[6]||(e[6]=s=>l(o).selected=s),placeholder:"请输入路由路径",clearable:""},null,8,["modelValue"]),e[18]||(e[18]=d("div",{class:"form-tips"}," 访问详情页面,编辑页面时,菜单高亮显示,如`/consumer/lists` ",-1))])]),_:1})):v("",!0),l(o).type!=l(n).CATALOGUE?(i(),f(p,{key:4,label:"权限字符",prop:"perms"},{default:a(()=>[d("div",me,[t(_,{modelValue:l(o).perms,"onUpdate:modelValue":e[7]||(e[7]=s=>l(o).perms=s),placeholder:"请输入权限字符",clearable:""},null,8,["modelValue"]),e[19]||(e[19]=d("div",{class:"form-tips"}," 将作为server端API验权使用,如`auth.admin/user`,请谨慎修改 ",-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:5,label:"路由参数",prop:"params"},{default:a(()=>[d("div",null,[d("div",fe,[t(_,{modelValue:l(o).params,"onUpdate:modelValue":e[8]||(e[8]=s=>l(o).params=s),placeholder:"请输入路由参数",clearable:""},null,8,["modelValue"])]),e[20]||(e[20]=d("div",{class:"form-tips"},' 访问路由的默认传递参数,如:`{"id": 1, "name": "admin"}`或`id=1&name=admin` ',-1))])]),_:1})):v("",!0),l(o).type==l(n).MENU?(i(),f(p,{key:6,label:"是否缓存",prop:"is_cache",required:""},{default:a(()=>[d("div",null,[t(V,{modelValue:l(o).is_cache,"onUpdate:modelValue":e[9]||(e[9]=s=>l(o).is_cache=s)},{default:a(()=>[t(r,{value:1},{default:a(()=>[...e[21]||(e[21]=[m("缓存",-1)])]),_:1}),t(r,{value:0},{default:a(()=>[...e[22]||(e[22]=[m("不缓存",-1)])]),_:1})]),_:1},8,["modelValue"]),e[23]||(e[23]=d("div",{class:"form-tips"},"选择缓存则会被`keep-alive`缓存",-1))])]),_:1})):v("",!0),l(o).type!=l(n).BUTTON?(i(),f(p,{key:7,label:"是否显示",prop:"is_show",required:""},{default:a(()=>[d("div",null,[t(V,{modelValue:l(o).is_show,"onUpdate:modelValue":e[10]||(e[10]=s=>l(o).is_show=s)},{default:a(()=>[t(r,{value:1},{default:a(()=>[...e[24]||(e[24]=[m("显示",-1)])]),_:1}),t(r,{value:0},{default:a(()=>[...e[25]||(e[25]=[m("隐藏",-1)])]),_:1})]),_:1},8,["modelValue"]),e[26]||(e[26]=d("div",{class:"form-tips"}," 选择隐藏则路由将不会出现在侧边栏,但仍然可以访问 ",-1))])]),_:1})):v("",!0),l(o).type!=l(n).BUTTON?(i(),f(p,{key:8,label:"菜单状态",prop:"is_disable",required:""},{default:a(()=>[d("div",null,[t(V,{modelValue:l(o).is_disable,"onUpdate:modelValue":e[11]||(e[11]=s=>l(o).is_disable=s)},{default:a(()=>[t(r,{value:0},{default:a(()=>[...e[27]||(e[27]=[m("正常",-1)])]),_:1}),t(r,{value:1},{default:a(()=>[...e[28]||(e[28]=[m("停用",-1)])]),_:1})]),_:1},8,["modelValue"]),e[29]||(e[29]=d("div",{class:"form-tips"},"选择停用则路由将不会出现在侧边栏,也不能被访问",-1))])]),_:1})):v("",!0),t(p,{label:"菜单排序",prop:"sort"},{default:a(()=>[d("div",null,[t(F,{modelValue:l(o).sort,"onUpdate:modelValue":e[12]||(e[12]=s=>l(o).sort=s),min:0,max:9999},null,8,["modelValue"]),e[30]||(e[30]=d("div",{class:"form-tips"},"数值越大越排前",-1))])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{ce as _}; diff --git a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-b3Kn2zcn.js b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-Cc4NW4mp.js similarity index 96% rename from server/public/admin/assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-b3Kn2zcn.js rename to server/public/admin/assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-Cc4NW4mp.js index f87397be2..5cdca6463 100644 --- a/server/public/admin/assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-b3Kn2zcn.js +++ b/server/public/admin/assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-Cc4NW4mp.js @@ -1 +1 @@ -import{o as f,q as D,r as I,v as a,D as n,bd as B,u as l,bb as F,aA as N,s as c,J as U,I as q,a8 as _,p as A,aC as S,M as J}from"./.pnpm-CyuAWpdG.js";import{d as M,e as T,f as j}from"./article-D_HL_wgA.js";import{_ as z}from"./index-BnfLT5cB.js";const G={class:"edit-popup"},H=f({name:"articleColumnEdit"}),Q=f({...H,emits:["success","close"],setup(K,{expose:v,emit:w}){const u=w,d=_(),i=_(),r=J("add"),b=A(()=>r.value=="edit"?"编辑栏目":"新增栏目"),o=S({id:"",name:"",sort:0,is_show:1}),V={name:[{required:!0,message:"请输入栏目名称",trigger:["blur"]}]},C=async()=>{var t,e;await((t=d.value)==null?void 0:t.validate()),r.value=="edit"?await M(o):await T(o),(e=i.value)==null||e.close(),u("success")},E=(t="add")=>{var e;r.value=t,(e=i.value)==null||e.open()},p=t=>{for(const e in o)t[e]!=null&&t[e]!=null&&(o[e]=t[e])},h=async t=>{const e=await j({id:t.id});p(e)},x=()=>{u("close")};return v({open:E,setFormData:p,getDetail:h}),(t,e)=>{const y=N,m=F,R=U,g=q,k=B;return D(),I("div",G,[a(z,{ref_key:"popupRef",ref:i,title:l(b),async:!0,width:"550px",onConfirm:C,onClose:x},{default:n(()=>[a(k,{ref_key:"formRef",ref:d,model:l(o),"label-width":"84px",rules:V},{default:n(()=>[a(m,{label:"栏目名称",prop:"name"},{default:n(()=>[a(y,{modelValue:l(o).name,"onUpdate:modelValue":e[0]||(e[0]=s=>l(o).name=s),placeholder:"请输入栏目名称",clearable:""},null,8,["modelValue"])]),_:1}),a(m,{label:"排序",prop:"sort"},{default:n(()=>[c("div",null,[a(R,{modelValue:l(o).sort,"onUpdate:modelValue":e[1]||(e[1]=s=>l(o).sort=s),min:0,max:9999},null,8,["modelValue"]),e[3]||(e[3]=c("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),a(m,{label:"状态",prop:"is_show"},{default:n(()=>[a(g,{modelValue:l(o).is_show,"onUpdate:modelValue":e[2]||(e[2]=s=>l(o).is_show=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{Q as _}; +import{o as f,q as D,r as I,v as a,D as n,bd as B,u as l,bb as F,aA as N,s as c,J as U,I as q,a8 as _,p as A,aC as S,M as J}from"./.pnpm-CyuAWpdG.js";import{d as M,e as T,f as j}from"./article-Cct6St-z.js";import{_ as z}from"./index-CS5Wg0xx.js";const G={class:"edit-popup"},H=f({name:"articleColumnEdit"}),Q=f({...H,emits:["success","close"],setup(K,{expose:v,emit:w}){const u=w,d=_(),i=_(),r=J("add"),b=A(()=>r.value=="edit"?"编辑栏目":"新增栏目"),o=S({id:"",name:"",sort:0,is_show:1}),V={name:[{required:!0,message:"请输入栏目名称",trigger:["blur"]}]},C=async()=>{var t,e;await((t=d.value)==null?void 0:t.validate()),r.value=="edit"?await M(o):await T(o),(e=i.value)==null||e.close(),u("success")},E=(t="add")=>{var e;r.value=t,(e=i.value)==null||e.open()},p=t=>{for(const e in o)t[e]!=null&&t[e]!=null&&(o[e]=t[e])},h=async t=>{const e=await j({id:t.id});p(e)},x=()=>{u("close")};return v({open:E,setFormData:p,getDetail:h}),(t,e)=>{const y=N,m=F,R=U,g=q,k=B;return D(),I("div",G,[a(z,{ref_key:"popupRef",ref:i,title:l(b),async:!0,width:"550px",onConfirm:C,onClose:x},{default:n(()=>[a(k,{ref_key:"formRef",ref:d,model:l(o),"label-width":"84px",rules:V},{default:n(()=>[a(m,{label:"栏目名称",prop:"name"},{default:n(()=>[a(y,{modelValue:l(o).name,"onUpdate:modelValue":e[0]||(e[0]=s=>l(o).name=s),placeholder:"请输入栏目名称",clearable:""},null,8,["modelValue"])]),_:1}),a(m,{label:"排序",prop:"sort"},{default:n(()=>[c("div",null,[a(R,{modelValue:l(o).sort,"onUpdate:modelValue":e[1]||(e[1]=s=>l(o).sort=s),min:0,max:9999},null,8,["modelValue"]),e[3]||(e[3]=c("div",{class:"form-tips"},"默认为0, 数值越大越排前",-1))])]),_:1}),a(m,{label:"状态",prop:"is_show"},{default:n(()=>[a(g,{modelValue:l(o).is_show,"onUpdate:modelValue":e[2]||(e[2]=s=>l(o).is_show=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{Q as _}; diff --git a/server/public/admin/assets/environment-Dsx_MlBK.js b/server/public/admin/assets/environment--Se_RjaM.js similarity index 96% rename from server/public/admin/assets/environment-Dsx_MlBK.js rename to server/public/admin/assets/environment--Se_RjaM.js index 3cfcac948..3b65cf1ed 100644 --- a/server/public/admin/assets/environment-Dsx_MlBK.js +++ b/server/public/admin/assets/environment--Se_RjaM.js @@ -1 +1 @@ -import{c as b,E as f}from"./index-Dxvz9lb1.js";import{o as i,ap as k,q as n,r as h,v as e,D as t,s as l,bk as x,u as p,bl as y,bj as C,O as c,aC as w}from"./.pnpm-CyuAWpdG.js";const B={class:"system-environment"},E={class:"mt-4"},g={class:"mt-4"},q={class:"mt-4"},S=i({name:"environment"}),T=i({...S,setup(I){const s=w({server:[],env:[],auth:[]}),v=()=>{f().then(r=>{s.server=r.server,s.env=r.env,s.auth=r.auth})};return k(()=>{v()}),(r,o)=>{const a=y,_=x,m=C,d=b;return n(),h("div",B,[e(m,{class:"!border-none",shadow:"never"},{default:t(()=>[o[0]||(o[0]=l("div",null,"服务器信息",-1)),l("div",E,[e(_,{data:p(s).server},{default:t(()=>[e(a,{prop:"param",label:"参数"}),e(a,{prop:"value",label:"值"})]),_:1},8,["data"])])]),_:1}),e(m,{shadow:"never",class:"!border-none mt-4"},{default:t(()=>[o[1]||(o[1]=l("div",null,"PHP环境要求",-1)),l("div",g,[e(_,{data:p(s).env},{default:t(()=>[e(a,{prop:"option",label:"选项"}),e(a,{prop:"require",label:"要求"}),e(a,{label:"状态"},{default:t(u=>[u.row.status?(n(),c(d,{key:0,name:"el-icon-Select",class:"text-success"})):(n(),c(d,{key:1,name:"el-icon-CloseBold",class:"text-danger"}))]),_:1}),e(a,{prop:"remark",label:"说明及帮助"})]),_:1},8,["data"])])]),_:1}),e(m,{shadow:"never",class:"!border-none mt-4"},{default:t(()=>[o[2]||(o[2]=l("div",null,"目录权限",-1)),l("div",q,[e(_,{data:p(s).auth},{default:t(()=>[e(a,{prop:"dir",label:"选项"}),e(a,{prop:"require",label:"要求"}),e(a,{label:"状态"},{default:t(u=>[u.row.status?(n(),c(d,{key:0,name:"el-icon-Select",class:"text-success"})):(n(),c(d,{key:1,name:"el-icon-CloseBold",class:"text-danger"}))]),_:1}),e(a,{prop:"remark",label:"说明及帮助"})]),_:1},8,["data"])])]),_:1})])}}});export{T as default}; +import{c as b,E as f}from"./index-Bkarz3gO.js";import{o as i,ap as k,q as n,r as h,v as e,D as t,s as l,bk as x,u as p,bl as y,bj as C,O as c,aC as w}from"./.pnpm-CyuAWpdG.js";const B={class:"system-environment"},E={class:"mt-4"},g={class:"mt-4"},q={class:"mt-4"},S=i({name:"environment"}),T=i({...S,setup(I){const s=w({server:[],env:[],auth:[]}),v=()=>{f().then(r=>{s.server=r.server,s.env=r.env,s.auth=r.auth})};return k(()=>{v()}),(r,o)=>{const a=y,_=x,m=C,d=b;return n(),h("div",B,[e(m,{class:"!border-none",shadow:"never"},{default:t(()=>[o[0]||(o[0]=l("div",null,"服务器信息",-1)),l("div",E,[e(_,{data:p(s).server},{default:t(()=>[e(a,{prop:"param",label:"参数"}),e(a,{prop:"value",label:"值"})]),_:1},8,["data"])])]),_:1}),e(m,{shadow:"never",class:"!border-none mt-4"},{default:t(()=>[o[1]||(o[1]=l("div",null,"PHP环境要求",-1)),l("div",g,[e(_,{data:p(s).env},{default:t(()=>[e(a,{prop:"option",label:"选项"}),e(a,{prop:"require",label:"要求"}),e(a,{label:"状态"},{default:t(u=>[u.row.status?(n(),c(d,{key:0,name:"el-icon-Select",class:"text-success"})):(n(),c(d,{key:1,name:"el-icon-CloseBold",class:"text-danger"}))]),_:1}),e(a,{prop:"remark",label:"说明及帮助"})]),_:1},8,["data"])])]),_:1}),e(m,{shadow:"never",class:"!border-none mt-4"},{default:t(()=>[o[2]||(o[2]=l("div",null,"目录权限",-1)),l("div",q,[e(_,{data:p(s).auth},{default:t(()=>[e(a,{prop:"dir",label:"选项"}),e(a,{prop:"require",label:"要求"}),e(a,{label:"状态"},{default:t(u=>[u.row.status?(n(),c(d,{key:0,name:"el-icon-Select",class:"text-success"})):(n(),c(d,{key:1,name:"el-icon-CloseBold",class:"text-danger"}))]),_:1}),e(a,{prop:"remark",label:"说明及帮助"})]),_:1},8,["data"])])]),_:1})])}}});export{T as default}; diff --git a/server/public/admin/assets/error-Ce2og2WO.js b/server/public/admin/assets/error-DD91xBpX.js similarity index 92% rename from server/public/admin/assets/error-Ce2og2WO.js rename to server/public/admin/assets/error-DD91xBpX.js index bf865468b..8e7c983ff 100644 --- a/server/public/admin/assets/error-Ce2og2WO.js +++ b/server/public/admin/assets/error-DD91xBpX.js @@ -1 +1 @@ -import{o as u,W as m,aq as v,q as l,r as _,s,ah as f,T as r,O as p,D as B,L as h,u as x,P as g,M as y,K as k}from"./.pnpm-CyuAWpdG.js";import{_ as w}from"./index-Dxvz9lb1.js";const C={class:"error"},I={class:"error-code"},S={class:"text-lg text-tx-secondary mt-7 mb-7"},E=u({__name:"error",props:{code:String,title:String,showBtn:{type:Boolean,default:!0}},setup(e){const c=e;let t=null;const o=y(5),a=m();return c.showBtn&&(t=setInterval(()=>{o.value===0?(clearInterval(t),a.go(-1)):o.value--},1e3)),v(()=>{t&&clearInterval(t)}),(d,n)=>{const i=k;return l(),_("div",C,[s("div",null,[f(d.$slots,"content",{},()=>[s("div",I,r(e.code),1)],!0),s("div",S,r(e.title),1),e.showBtn?(l(),p(i,{key:0,type:"primary",onClick:n[0]||(n[0]=N=>x(a).go(-1))},{default:B(()=>[h(r(o.value)+" 秒后返回上一页 ",1)]),_:1})):g("",!0)])])}}}),q=w(E,[["__scopeId","data-v-0154c8e6"]]);export{q as default}; +import{o as u,W as m,aq as v,q as l,r as _,s,ah as f,T as r,O as p,D as B,L as h,u as x,P as g,M as y,K as k}from"./.pnpm-CyuAWpdG.js";import{_ as w}from"./index-Bkarz3gO.js";const C={class:"error"},I={class:"error-code"},S={class:"text-lg text-tx-secondary mt-7 mb-7"},E=u({__name:"error",props:{code:String,title:String,showBtn:{type:Boolean,default:!0}},setup(e){const c=e;let t=null;const o=y(5),a=m();return c.showBtn&&(t=setInterval(()=>{o.value===0?(clearInterval(t),a.go(-1)):o.value--},1e3)),v(()=>{t&&clearInterval(t)}),(d,n)=>{const i=k;return l(),_("div",C,[s("div",null,[f(d.$slots,"content",{},()=>[s("div",I,r(e.code),1)],!0),s("div",S,r(e.title),1),e.showBtn?(l(),p(i,{key:0,type:"primary",onClick:n[0]||(n[0]=N=>x(a).go(-1))},{default:B(()=>[h(r(o.value)+" 秒后返回上一页 ",1)]),_:1})):g("",!0)])])}}}),q=w(E,[["__scopeId","data-v-0154c8e6"]]);export{q as default}; diff --git a/server/public/admin/assets/fans-DGKJ29C1.js b/server/public/admin/assets/fans-DYvCYhBT.js similarity index 89% rename from server/public/admin/assets/fans-DGKJ29C1.js rename to server/public/admin/assets/fans-DYvCYhBT.js index 87c7e1bf4..11c73bbc1 100644 --- a/server/public/admin/assets/fans-DGKJ29C1.js +++ b/server/public/admin/assets/fans-DYvCYhBT.js @@ -1 +1 @@ -import{r as n}from"./index-Dxvz9lb1.js";function e(t){return n.get({url:"/fan/lists",params:t})}function i(t){return n.post({url:"/fan/add",params:t})}function s(t){return n.post({url:"/fan/edit",params:t})}function a(t){return n.post({url:"/fan/delete",params:t})}function f(t){return n.get({url:"/fan/visitRecordLists",params:t})}function o(t){return n.post({url:"/fan/addVisitRecord",params:t})}function u(t){return n.post({url:"/fan/editVisitRecord",params:t})}function d(t){return n.post({url:"/fan/deleteVisitRecord",params:t})}export{i as a,s as b,o as c,u as d,d as e,e as f,f as g,a as h}; +import{r as n}from"./index-Bkarz3gO.js";function e(t){return n.get({url:"/fan/lists",params:t})}function i(t){return n.post({url:"/fan/add",params:t})}function s(t){return n.post({url:"/fan/edit",params:t})}function a(t){return n.post({url:"/fan/delete",params:t})}function f(t){return n.get({url:"/fan/visitRecordLists",params:t})}function o(t){return n.post({url:"/fan/addVisitRecord",params:t})}function u(t){return n.post({url:"/fan/editVisitRecord",params:t})}function d(t){return n.post({url:"/fan/deleteVisitRecord",params:t})}export{i as a,s as b,o as c,u as d,d as e,e as f,f as g,a as h}; diff --git a/server/public/admin/assets/file-CefRfHD9.js b/server/public/admin/assets/file-BjbV-eNx.js similarity index 95% rename from server/public/admin/assets/file-CefRfHD9.js rename to server/public/admin/assets/file-BjbV-eNx.js index 4608aed8e..5088547a6 100644 --- a/server/public/admin/assets/file-CefRfHD9.js +++ b/server/public/admin/assets/file-BjbV-eNx.js @@ -1 +1 @@ -import{e as f,q as a,g as c,R as p,r as t}from"./index-Dxvz9lb1.js";async function i(e,n="image",o=0){const l=f(),r=new FormData;r.append("file",e),r.append("cid",String(o));const u=`${a.baseUrl}${a.urlPrefix}/upload/${n}`,s=await(await fetch(u,{method:"POST",headers:{token:c()||"",version:l.config.version||""},body:r})).json();if(s.code!==p.SUCCESS)throw new Error(s.msg||"上传失败");return s.data}async function m(e,n="screenshot.jpg"){const o=e instanceof File?e:new File([e],n,{type:e.type||"image/jpeg"});return i(o,"image",0)}async function C(e,n="recording.webm"){const o=e instanceof File?e:new File([e],n,{type:e.type||"video/webm"});return i(o,"video",0)}function b(e){return t.post({url:"/file/addCate",params:e})}function w(e){return t.post({url:"/file/editCate",params:e})}function y(e){return t.post({url:"/file/delCate",params:e})}function j(e){return t.get({url:"/file/listCate",params:e})}function S(e){return t.get({url:"/file/lists",params:e},{ignoreCancelToken:!0,isOpenRetry:!1})}function h(e){return t.post({url:"/file/delete",params:e})}function v(e){return t.post({url:"/file/move",params:e})}function F(e){return t.post({url:"/file/rename",params:e})}function O(e){return t.post({url:"/upload/ossCredentials",params:e})}function k(e){return t.post({url:"/upload/ossConfirm",params:e})}export{i as a,y as b,w as c,b as d,F as e,j as f,v as g,h,S as i,O as j,k,C as l,m as u}; +import{e as f,q as a,g as c,R as p,r as t}from"./index-Bkarz3gO.js";async function i(e,n="image",o=0){const l=f(),r=new FormData;r.append("file",e),r.append("cid",String(o));const u=`${a.baseUrl}${a.urlPrefix}/upload/${n}`,s=await(await fetch(u,{method:"POST",headers:{token:c()||"",version:l.config.version||""},body:r})).json();if(s.code!==p.SUCCESS)throw new Error(s.msg||"上传失败");return s.data}async function m(e,n="screenshot.jpg"){const o=e instanceof File?e:new File([e],n,{type:e.type||"image/jpeg"});return i(o,"image",0)}async function C(e,n="recording.webm"){const o=e instanceof File?e:new File([e],n,{type:e.type||"video/webm"});return i(o,"video",0)}function b(e){return t.post({url:"/file/addCate",params:e})}function w(e){return t.post({url:"/file/editCate",params:e})}function y(e){return t.post({url:"/file/delCate",params:e})}function j(e){return t.get({url:"/file/listCate",params:e})}function S(e){return t.get({url:"/file/lists",params:e},{ignoreCancelToken:!0,isOpenRetry:!1})}function h(e){return t.post({url:"/file/delete",params:e})}function v(e){return t.post({url:"/file/move",params:e})}function F(e){return t.post({url:"/file/rename",params:e})}function O(e){return t.post({url:"/upload/ossCredentials",params:e})}function k(e){return t.post({url:"/upload/ossConfirm",params:e})}export{i as a,y as b,w as c,b as d,F as e,j as f,v as g,h,S as i,O as j,k,C as l,m as u}; diff --git a/server/public/admin/assets/file-BYqZCJsR.js b/server/public/admin/assets/file-D_yAcnto.js similarity index 90% rename from server/public/admin/assets/file-BYqZCJsR.js rename to server/public/admin/assets/file-D_yAcnto.js index 65cba8356..e0702de36 100644 --- a/server/public/admin/assets/file-BYqZCJsR.js +++ b/server/public/admin/assets/file-D_yAcnto.js @@ -1 +1 @@ -import{o as v,q as r,r as p,v as a,D as n,s as e,u as s,bj as f,K as x,L as V,aA as _,aC as w}from"./.pnpm-CyuAWpdG.js";import{_ as U}from"./picker-BDO86vcM.js";import"./index-BnfLT5cB.js";import"./index-Dxvz9lb1.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const b={class:"flex flex-wrap"},B={class:"flex m-4"},C={class:"flex m-4"},E={class:"flex flex-1 m-4"},k={class:"flex-1"},N={class:"flex flex-wrap"},c={class:"flex m-4"},g={class:"flex m-4"},j={class:"flex m-4"},q={class:"flex m-4 items-center"},y={class:"flex m-4 items-center"},P=v({__name:"file",setup(z){const o=w({value1:"",value2:[],value3:"",value4:"",value5:"",value6:""});return(A,l)=>{const d=U,u=f,i=x,m=_;return r(),p("div",null,[a(u,{header:"基础使用",shadow:"never",class:"!border-none"},{default:n(()=>[e("div",b,[e("div",B,[l[6]||(l[6]=e("div",{class:"mr-4"},"选择图片:",-1)),a(d,{modelValue:s(o).value1,"onUpdate:modelValue":l[0]||(l[0]=t=>s(o).value1=t)},null,8,["modelValue"])]),e("div",C,[l[7]||(l[7]=e("div",{class:"mr-4"},"选择视频:",-1)),a(d,{type:"video",modelValue:s(o).value3,"onUpdate:modelValue":l[1]||(l[1]=t=>s(o).value3=t)},null,8,["modelValue"])]),e("div",E,[l[8]||(l[8]=e("div",{class:"mr-4"},"多张图片:",-1)),e("div",k,[a(d,{limit:4,modelValue:s(o).value2,"onUpdate:modelValue":l[2]||(l[2]=t=>s(o).value2=t)},null,8,["modelValue"])])])])]),_:1}),a(u,{header:"进阶用法",shadow:"never",class:"!border-none mt-4"},{default:n(()=>[e("div",N,[e("div",c,[l[9]||(l[9]=e("div",{class:"mr-4"},"自定义选择器大小:",-1)),a(d,{size:"60px",modelValue:s(o).value4,"onUpdate:modelValue":l[3]||(l[3]=t=>s(o).value4=t)},null,8,["modelValue"])]),e("div",g,[l[11]||(l[11]=e("div",{class:"mr-4"},"使用插槽:",-1)),a(d,{modelValue:s(o).value5,"onUpdate:modelValue":l[4]||(l[4]=t=>s(o).value5=t)},{upload:n(()=>[a(i,null,{default:n(()=>[...l[10]||(l[10]=[V("选择文件",-1)])]),_:1})]),_:1},8,["modelValue"])]),e("div",j,[l[12]||(l[12]=e("div",{class:"mr-4"},"选出地址不带域名:",-1)),a(d,{"exclude-domain":!0,modelValue:s(o).value6,"onUpdate:modelValue":l[5]||(l[5]=t=>s(o).value6=t)},null,8,["modelValue"])])]),e("div",null,[e("div",q,[l[13]||(l[13]=e("div",{class:"w-20 flex-none"},"带域名:",-1)),a(m,{class:"w-[500px]","model-value":s(o).value5},null,8,["model-value"])]),e("div",y,[l[14]||(l[14]=e("div",{class:"w-20 flex-none"},"不带域名:",-1)),a(m,{class:"w-[500px]","model-value":s(o).value6},null,8,["model-value"])])])]),_:1})])}}});export{P as default}; +import{o as v,q as r,r as p,v as a,D as n,s as e,u as s,bj as f,K as x,L as V,aA as _,aC as w}from"./.pnpm-CyuAWpdG.js";import{_ as U}from"./picker-BTh9eW9u.js";import"./index-CS5Wg0xx.js";import"./index-Bkarz3gO.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const b={class:"flex flex-wrap"},B={class:"flex m-4"},C={class:"flex m-4"},E={class:"flex flex-1 m-4"},k={class:"flex-1"},N={class:"flex flex-wrap"},c={class:"flex m-4"},g={class:"flex m-4"},j={class:"flex m-4"},q={class:"flex m-4 items-center"},y={class:"flex m-4 items-center"},P=v({__name:"file",setup(z){const o=w({value1:"",value2:[],value3:"",value4:"",value5:"",value6:""});return(A,l)=>{const d=U,u=f,i=x,m=_;return r(),p("div",null,[a(u,{header:"基础使用",shadow:"never",class:"!border-none"},{default:n(()=>[e("div",b,[e("div",B,[l[6]||(l[6]=e("div",{class:"mr-4"},"选择图片:",-1)),a(d,{modelValue:s(o).value1,"onUpdate:modelValue":l[0]||(l[0]=t=>s(o).value1=t)},null,8,["modelValue"])]),e("div",C,[l[7]||(l[7]=e("div",{class:"mr-4"},"选择视频:",-1)),a(d,{type:"video",modelValue:s(o).value3,"onUpdate:modelValue":l[1]||(l[1]=t=>s(o).value3=t)},null,8,["modelValue"])]),e("div",E,[l[8]||(l[8]=e("div",{class:"mr-4"},"多张图片:",-1)),e("div",k,[a(d,{limit:4,modelValue:s(o).value2,"onUpdate:modelValue":l[2]||(l[2]=t=>s(o).value2=t)},null,8,["modelValue"])])])])]),_:1}),a(u,{header:"进阶用法",shadow:"never",class:"!border-none mt-4"},{default:n(()=>[e("div",N,[e("div",c,[l[9]||(l[9]=e("div",{class:"mr-4"},"自定义选择器大小:",-1)),a(d,{size:"60px",modelValue:s(o).value4,"onUpdate:modelValue":l[3]||(l[3]=t=>s(o).value4=t)},null,8,["modelValue"])]),e("div",g,[l[11]||(l[11]=e("div",{class:"mr-4"},"使用插槽:",-1)),a(d,{modelValue:s(o).value5,"onUpdate:modelValue":l[4]||(l[4]=t=>s(o).value5=t)},{upload:n(()=>[a(i,null,{default:n(()=>[...l[10]||(l[10]=[V("选择文件",-1)])]),_:1})]),_:1},8,["modelValue"])]),e("div",j,[l[12]||(l[12]=e("div",{class:"mr-4"},"选出地址不带域名:",-1)),a(d,{"exclude-domain":!0,modelValue:s(o).value6,"onUpdate:modelValue":l[5]||(l[5]=t=>s(o).value6=t)},null,8,["modelValue"])])]),e("div",null,[e("div",q,[l[13]||(l[13]=e("div",{class:"w-20 flex-none"},"带域名:",-1)),a(m,{class:"w-[500px]","model-value":s(o).value5},null,8,["model-value"])]),e("div",y,[l[14]||(l[14]=e("div",{class:"w-20 flex-none"},"不带域名:",-1)),a(m,{class:"w-[500px]","model-value":s(o).value6},null,8,["model-value"])])])]),_:1})])}}});export{P as default}; diff --git a/server/public/admin/assets/filing-DZkb8wMP.js b/server/public/admin/assets/filing-Cf_ZtO1K.js similarity index 88% rename from server/public/admin/assets/filing-DZkb8wMP.js rename to server/public/admin/assets/filing-Cf_ZtO1K.js index 391ab4327..2ec203112 100644 --- a/server/public/admin/assets/filing-DZkb8wMP.js +++ b/server/public/admin/assets/filing-Cf_ZtO1K.js @@ -1 +1 @@ -import{_ as F}from"./index-9qT8_5W1.js";import{o as g,bp as x,q as i,r as m,v as e,D as t,s as l,bd as U,F as N,G as j,u as f,O as v,bb as A,aA as I,K as L,L as b,bj as $,ac as q,M as G}from"./.pnpm-CyuAWpdG.js";import{c as K,j as M}from"./index-Dxvz9lb1.js";import{_ as O}from"./index-ClBYIwNX.js";import{g as P,s as S}from"./website-DRg8FnbB.js";const T={class:"website-filing"},z={class:"py-4 bg-fill-lighter"},H={class:"w-80"},J={class:"w-80"},Q=g({name:"webFilling"}),oe=g({...Q,setup(R){const n=G([{key:"",value:""}]),c=async()=>{const s=await P();s.length&&(n.value=s)},w=()=>{n.value.push({key:"",value:""})},h=s=>{if(n.value.length<=1)return M.msgError("至少保留一个");n.value.splice(s,1)},y=async()=>{await S({config:n.value}),c()};return c(),(s,o)=>{const _=I,d=A,k=O,V=K,p=L,C=U,E=$,D=F,B=x("perms");return i(),m("div",T,[e(E,{shadow:"never",class:"!border-none"},{default:t(()=>[o[2]||(o[2]=l("div",{class:"mb-5"},"站点底部版权备案信息设置",-1)),e(C,{ref:"form",class:"ls-form","label-width":"100px"},{default:t(()=>[(i(!0),m(N,null,j(f(n),(a,u)=>(i(),v(k,{class:"mb-4",key:u,"show-close":f(n).length>1,onClose:r=>h(u)},{default:t(()=>[l("div",z,[e(d,{label:"显示名称",prop:"icp_link"},{default:t(()=>[l("div",H,[l("div",null,[e(_,{modelValue:a.key,"onUpdate:modelValue":r=>a.key=r,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])])])]),_:2},1024),e(d,{label:"跳转链接",prop:"icp_link"},{default:t(()=>[l("div",J,[l("div",null,[e(_,{modelValue:a.value,"onUpdate:modelValue":r=>a.value=r,placeholder:"请输入链接,例如:http://www.beian.gov.cn"},null,8,["modelValue","onUpdate:modelValue"])]),o[0]||(o[0]=l("div",{class:"form-tips"},"跳转链接不设置,则不跳转",-1))])]),_:2},1024)])]),_:2},1032,["show-close","onClose"]))),128)),l("div",null,[e(p,{type:"primary",onClick:w},{default:t(()=>[e(V,{name:"el-icon-Plus"}),o[1]||(o[1]=b(" 添加 ",-1))]),_:1})])]),_:1},512)]),_:1}),q((i(),v(D,null,{default:t(()=>[e(p,{type:"primary",onClick:y},{default:t(()=>[...o[3]||(o[3]=[b("保存",-1)])]),_:1})]),_:1})),[[B,["setting.web.web_setting/setCopyright"]]])])}}});export{oe as default}; +import{_ as F}from"./index-DIl3M8Wa.js";import{o as g,bp as x,q as i,r as m,v as e,D as t,s as l,bd as U,F as N,G as j,u as f,O as v,bb as A,aA as I,K as L,L as b,bj as $,ac as q,M as G}from"./.pnpm-CyuAWpdG.js";import{c as K,j as M}from"./index-Bkarz3gO.js";import{_ as O}from"./index-Cqk_cdo9.js";import{g as P,s as S}from"./website-Uj_9T8tc.js";const T={class:"website-filing"},z={class:"py-4 bg-fill-lighter"},H={class:"w-80"},J={class:"w-80"},Q=g({name:"webFilling"}),oe=g({...Q,setup(R){const n=G([{key:"",value:""}]),c=async()=>{const s=await P();s.length&&(n.value=s)},w=()=>{n.value.push({key:"",value:""})},h=s=>{if(n.value.length<=1)return M.msgError("至少保留一个");n.value.splice(s,1)},y=async()=>{await S({config:n.value}),c()};return c(),(s,o)=>{const _=I,d=A,k=O,V=K,p=L,C=U,E=$,D=F,B=x("perms");return i(),m("div",T,[e(E,{shadow:"never",class:"!border-none"},{default:t(()=>[o[2]||(o[2]=l("div",{class:"mb-5"},"站点底部版权备案信息设置",-1)),e(C,{ref:"form",class:"ls-form","label-width":"100px"},{default:t(()=>[(i(!0),m(N,null,j(f(n),(a,u)=>(i(),v(k,{class:"mb-4",key:u,"show-close":f(n).length>1,onClose:r=>h(u)},{default:t(()=>[l("div",z,[e(d,{label:"显示名称",prop:"icp_link"},{default:t(()=>[l("div",H,[l("div",null,[e(_,{modelValue:a.key,"onUpdate:modelValue":r=>a.key=r,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])])])]),_:2},1024),e(d,{label:"跳转链接",prop:"icp_link"},{default:t(()=>[l("div",J,[l("div",null,[e(_,{modelValue:a.value,"onUpdate:modelValue":r=>a.value=r,placeholder:"请输入链接,例如:http://www.beian.gov.cn"},null,8,["modelValue","onUpdate:modelValue"])]),o[0]||(o[0]=l("div",{class:"form-tips"},"跳转链接不设置,则不跳转",-1))])]),_:2},1024)])]),_:2},1032,["show-close","onClose"]))),128)),l("div",null,[e(p,{type:"primary",onClick:w},{default:t(()=>[e(V,{name:"el-icon-Plus"}),o[1]||(o[1]=b(" 添加 ",-1))]),_:1})])]),_:1},512)]),_:1}),q((i(),v(D,null,{default:t(()=>[e(p,{type:"primary",onClick:y},{default:t(()=>[...o[3]||(o[3]=[b("保存",-1)])]),_:1})]),_:1})),[[B,["setting.web.web_setting/setCopyright"]]])])}}});export{oe as default}; diff --git a/server/public/admin/assets/finance-D9pJwZQS.js b/server/public/admin/assets/finance-C684dcZP.js similarity index 95% rename from server/public/admin/assets/finance-D9pJwZQS.js rename to server/public/admin/assets/finance-C684dcZP.js index 09a6e7cd9..565ca1427 100644 --- a/server/public/admin/assets/finance-D9pJwZQS.js +++ b/server/public/admin/assets/finance-C684dcZP.js @@ -1 +1 @@ -import{r as t}from"./index-Dxvz9lb1.js";function r(n){return t.get({url:"/finance.account_log/lists",params:n})}function c(n){return t.get({url:"/recharge.recharge/lists",params:n},{ignoreCancelToken:!0})}function a(n){return t.get({url:"/finance.account_log/getUmChangeType",params:n})}function u(n){return t.post({url:"/recharge.recharge/refund",params:n})}function o(n){return t.post({url:"/recharge.recharge/refundAgain",params:n})}function s(n){return t.get({url:"/finance.refund/record",params:n})}function f(n){return t.get({url:"/finance.refund/log",params:n})}function i(n){return t.get({url:"/finance.refund/stat",params:n})}function g(n){return t.get({url:"/finance.account_cost/lists",params:n})}function l(n){return t.post({url:"/finance.account_cost/add",params:n})}function d(n){return t.post({url:"/finance.account_cost/edit",params:n})}function p(n){return t.get({url:"/finance.account_cost/detail",params:n})}function h(n){return t.post({url:"/finance.account_cost/delete",params:n})}function _(n){return t.get({url:"/finance.dept_performance_target/monthMatrix",params:n})}function m(n){return t.post({url:"/finance.dept_performance_target/batchSave",params:n})}export{d as a,l as b,p as c,_ as d,g as e,h as f,r as g,a as h,m as i,c as j,u as k,s as l,o as m,i as n,f as r}; +import{r as t}from"./index-Bkarz3gO.js";function r(n){return t.get({url:"/finance.account_log/lists",params:n})}function c(n){return t.get({url:"/recharge.recharge/lists",params:n},{ignoreCancelToken:!0})}function a(n){return t.get({url:"/finance.account_log/getUmChangeType",params:n})}function u(n){return t.post({url:"/recharge.recharge/refund",params:n})}function o(n){return t.post({url:"/recharge.recharge/refundAgain",params:n})}function s(n){return t.get({url:"/finance.refund/record",params:n})}function f(n){return t.get({url:"/finance.refund/log",params:n})}function i(n){return t.get({url:"/finance.refund/stat",params:n})}function g(n){return t.get({url:"/finance.account_cost/lists",params:n})}function l(n){return t.post({url:"/finance.account_cost/add",params:n})}function d(n){return t.post({url:"/finance.account_cost/edit",params:n})}function p(n){return t.get({url:"/finance.account_cost/detail",params:n})}function h(n){return t.post({url:"/finance.account_cost/delete",params:n})}function _(n){return t.get({url:"/finance.dept_performance_target/monthMatrix",params:n})}function m(n){return t.post({url:"/finance.dept_performance_target/batchSave",params:n})}export{d as a,l as b,p as c,_ as d,g as e,h as f,r as g,a as h,m as i,c as j,u as k,s as l,o as m,i as n,f as r}; diff --git a/server/public/admin/assets/first_visit-BxZL4Ke4.js b/server/public/admin/assets/first_visit-B5IgLifl.js similarity index 98% rename from server/public/admin/assets/first_visit-BxZL4Ke4.js rename to server/public/admin/assets/first_visit-B5IgLifl.js index ad0006c83..4695eedfa 100644 --- a/server/public/admin/assets/first_visit-BxZL4Ke4.js +++ b/server/public/admin/assets/first_visit-B5IgLifl.js @@ -1 +1 @@ -import{r as e}from"./index-Dxvz9lb1.js";function n(t){return e.get({url:"/firstvisit.myPatient/lists",params:t})}function s(t){return e.get({url:"/firstvisit.myPatient/orders",params:t})}function a(t){return e.get({url:"/firstvisit.myPatient/orderDetail",params:t})}function u(t){return e.post({url:"/firstvisit.myPatient/orderEdit",params:t})}function m(t){return e.post({url:"/firstvisit.myPatient/orderAuditPrescription",params:t})}function c(t){return e.post({url:"/firstvisit.myPatient/orderRevokeRxAudit",params:t})}function f(t){return e.post({url:"/firstvisit.myPatient/orderAuditPayment",params:t})}function P(t){return e.post({url:"/firstvisit.myPatient/orderRevokePayAudit",params:t})}function l(t){return e.post({url:"/firstvisit.myPatient/orderDdcode",params:t})}function d(t){return e.post({url:"/firstvisit.myPatient/orderShip",params:t})}function v(t){return e.post({url:"/firstvisit.myPatient/orderAddPayOrder",params:t})}function p(t){return e.post({url:"/firstvisit.myPatient/orderComplete",params:t})}function y(t){return e.post({url:"/firstvisit.myPatient/orderRefund",params:t})}function w(t){return e.post({url:"/firstvisit.myPatient/orderWithdraw",params:t})}function g(t){return e.post({url:"/firstvisit.myPatient/orderUploadToPharmacy",params:t})}function O(t){return e.get({url:"/firstvisit.myPatient/progress",params:t})}function C(t){return e.post({url:"/firstvisit.myPatient/createAppointment",params:t})}function A(t){return e.post({url:"/firstvisit.myPatient/cancelAppointment",params:t})}function h(){return e.get({url:"/firstvisit.myPatient/assistants"})}function k(t){return e.post({url:"/firstvisit.myPatient/assign",params:t})}function T(t){return e.post({url:"/firstvisit.myPatient/fillIdCard",params:t})}function S(t){return e.get({url:"/firstvisit.conversion/overview",params:t,timeout:12e4},{ignoreCancelToken:!0})}function D(t){return e.get({url:"/firstvisit.conversion/fansDetail",params:t,timeout:12e4},{ignoreCancelToken:!0})}function R(t){return e.get({url:"/firstvisit.registrationStats/overview",params:t,timeout:12e4},{ignoreCancelToken:!0})}function b(t){return e.get({url:"/firstvisit.doctorDashboard/overview",params:t,timeout:12e4},{ignoreCancelToken:!0})}function M(){return e.get({url:"/firstvisit.wecomPromotion/overview"})}function W(t){return e.post({url:"/firstvisit.wecomPromotion/savePool",params:t,timeout:12e4})}function U(){return e.get({url:"/firstvisit.wecomPromotion/tagOptions"})}function x(t){return e.post({url:"/firstvisit.wecomPromotion/createTag",params:t,timeout:3e4},{ignoreCancelToken:!0})}function F(t,r){const i=new FormData;return i.append("file",t),i.append("type",r),e.post({url:"/firstvisit.wecomPromotion/uploadWelcomeMedia",data:i,headers:{"Content-Type":"multipart/form-data"},timeout:12e4},{ignoreCancelToken:!0})}function L(t){return e.post({url:"/firstvisit.wecomPromotion/saveWidget",params:t})}function V(t){return e.post({url:"/firstvisit.wecomPromotion/batchSetOperators",params:t})}function B(t){return e.post({url:"/firstvisit.wecomPromotion/batchUpdatePools",params:t,timeout:12e4},{ignoreCancelToken:!0})}function E(t){return e.post({url:"/firstvisit.wecomPromotion/deletePool",params:t,timeout:12e4})}function I(t){return e.post({url:"/firstvisit.wecomPromotion/saveMember",params:t,timeout:12e4})}function q(t){return e.post({url:"/firstvisit.wecomPromotion/toggleMember",params:t,timeout:12e4})}function j(){return e.post({url:"/firstvisit.wecomPromotion/checkApiPermission"})}function z(t){return e.post({url:"/firstvisit.wecomPromotion/syncMemberRange",params:t,timeout:12e4},{ignoreCancelToken:!0,isOpenRetry:!1})}function G(t){return e.get({url:"/firstvisit.wecomPromotion/customerStatistics",params:t,timeout:12e4},{ignoreCancelToken:!0})}function H(t={}){return e.post({url:"/firstvisit.wecomPromotion/syncCustomers",params:t,timeout:12e4})}export{F as A,L as B,G as C,M as D,B as E,V as F,W as G,E as H,I,q as J,j as K,H as L,z as M,C as N,D as a,b,m as c,f as d,c as e,S as f,P as g,l as h,d as i,u as j,v as k,p as l,a as m,y as n,w as o,g as p,s as q,O as r,n as s,k as t,T as u,A as v,h as w,R as x,U as y,x as z}; +import{r as e}from"./index-Bkarz3gO.js";function n(t){return e.get({url:"/firstvisit.myPatient/lists",params:t})}function s(t){return e.get({url:"/firstvisit.myPatient/orders",params:t})}function a(t){return e.get({url:"/firstvisit.myPatient/orderDetail",params:t})}function u(t){return e.post({url:"/firstvisit.myPatient/orderEdit",params:t})}function m(t){return e.post({url:"/firstvisit.myPatient/orderAuditPrescription",params:t})}function c(t){return e.post({url:"/firstvisit.myPatient/orderRevokeRxAudit",params:t})}function f(t){return e.post({url:"/firstvisit.myPatient/orderAuditPayment",params:t})}function P(t){return e.post({url:"/firstvisit.myPatient/orderRevokePayAudit",params:t})}function l(t){return e.post({url:"/firstvisit.myPatient/orderDdcode",params:t})}function d(t){return e.post({url:"/firstvisit.myPatient/orderShip",params:t})}function v(t){return e.post({url:"/firstvisit.myPatient/orderAddPayOrder",params:t})}function p(t){return e.post({url:"/firstvisit.myPatient/orderComplete",params:t})}function y(t){return e.post({url:"/firstvisit.myPatient/orderRefund",params:t})}function w(t){return e.post({url:"/firstvisit.myPatient/orderWithdraw",params:t})}function g(t){return e.post({url:"/firstvisit.myPatient/orderUploadToPharmacy",params:t})}function O(t){return e.get({url:"/firstvisit.myPatient/progress",params:t})}function C(t){return e.post({url:"/firstvisit.myPatient/createAppointment",params:t})}function A(t){return e.post({url:"/firstvisit.myPatient/cancelAppointment",params:t})}function h(){return e.get({url:"/firstvisit.myPatient/assistants"})}function k(t){return e.post({url:"/firstvisit.myPatient/assign",params:t})}function T(t){return e.post({url:"/firstvisit.myPatient/fillIdCard",params:t})}function S(t){return e.get({url:"/firstvisit.conversion/overview",params:t,timeout:12e4},{ignoreCancelToken:!0})}function D(t){return e.get({url:"/firstvisit.conversion/fansDetail",params:t,timeout:12e4},{ignoreCancelToken:!0})}function R(t){return e.get({url:"/firstvisit.registrationStats/overview",params:t,timeout:12e4},{ignoreCancelToken:!0})}function b(t){return e.get({url:"/firstvisit.doctorDashboard/overview",params:t,timeout:12e4},{ignoreCancelToken:!0})}function M(){return e.get({url:"/firstvisit.wecomPromotion/overview"})}function W(t){return e.post({url:"/firstvisit.wecomPromotion/savePool",params:t,timeout:12e4})}function U(){return e.get({url:"/firstvisit.wecomPromotion/tagOptions"})}function x(t){return e.post({url:"/firstvisit.wecomPromotion/createTag",params:t,timeout:3e4},{ignoreCancelToken:!0})}function F(t,r){const i=new FormData;return i.append("file",t),i.append("type",r),e.post({url:"/firstvisit.wecomPromotion/uploadWelcomeMedia",data:i,headers:{"Content-Type":"multipart/form-data"},timeout:12e4},{ignoreCancelToken:!0})}function L(t){return e.post({url:"/firstvisit.wecomPromotion/saveWidget",params:t})}function V(t){return e.post({url:"/firstvisit.wecomPromotion/batchSetOperators",params:t})}function B(t){return e.post({url:"/firstvisit.wecomPromotion/batchUpdatePools",params:t,timeout:12e4},{ignoreCancelToken:!0})}function E(t){return e.post({url:"/firstvisit.wecomPromotion/deletePool",params:t,timeout:12e4})}function I(t){return e.post({url:"/firstvisit.wecomPromotion/saveMember",params:t,timeout:12e4})}function q(t){return e.post({url:"/firstvisit.wecomPromotion/toggleMember",params:t,timeout:12e4})}function j(){return e.post({url:"/firstvisit.wecomPromotion/checkApiPermission"})}function z(t){return e.post({url:"/firstvisit.wecomPromotion/syncMemberRange",params:t,timeout:12e4},{ignoreCancelToken:!0,isOpenRetry:!1})}function G(t){return e.get({url:"/firstvisit.wecomPromotion/customerStatistics",params:t,timeout:12e4},{ignoreCancelToken:!0})}function H(t={}){return e.post({url:"/firstvisit.wecomPromotion/syncCustomers",params:t,timeout:12e4})}export{F as A,L as B,G as C,M as D,B as E,V as F,W as G,E as H,I,q as J,j as K,H as L,z as M,C as N,D as a,b,m as c,f as d,c as e,S as f,P as g,l as h,d as i,u as j,v as k,p as l,a as m,y as n,w as o,g as p,s as q,O as r,n as s,k as t,T as u,A as v,h as w,R as x,U as y,x as z}; diff --git a/server/public/admin/assets/follow_reply-DcTwnOL_.js b/server/public/admin/assets/follow_reply-DXfUAf5w.js similarity index 91% rename from server/public/admin/assets/follow_reply-DcTwnOL_.js rename to server/public/admin/assets/follow_reply-DXfUAf5w.js index 3acc4b9ed..36c00315b 100644 --- a/server/public/admin/assets/follow_reply-DcTwnOL_.js +++ b/server/public/admin/assets/follow_reply-DXfUAf5w.js @@ -1 +1 @@ -import{o as S,q as f,r as T,v as t,D as l,bo as B,bj as L,s as y,K as N,L as p,ac as j,O as g,bk as O,u as o,bl as P,T as U,I as A,bn as q,C as z,P as F,a8 as I,M as K,p as M,n as b}from"./.pnpm-CyuAWpdG.js";import{_ as G}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as H,j as J}from"./index-Dxvz9lb1.js";import{d as Q,o as W,e as X}from"./wx_oa-vu-UopqS.js";import{u as Y}from"./usePaging-CghUEVfD.js";import{_ as Z}from"./edit.vue_vue_type_script_setup_true_lang-DRGhGv7L.js";import"./index-BnfLT5cB.js";const ee={class:"flex justify-end mt-4"},de=S({__name:"follow_reply",setup(te){const d=I(),c=K(!1),w=M(()=>n=>{switch(n){case 1:return"文本"}}),{pager:r,getLists:s}=Y({fetchFun:Q,params:{reply_type:1}}),h=async()=>{var n;c.value=!0,await b(),(n=d.value)==null||n.open("add",1)},C=async n=>{var e,u;c.value=!0,await b(),(e=d.value)==null||e.open("edit",1),(u=d.value)==null||u.getDetail(n)},k=async n=>{await J.confirm("确定要删除?"),await W({id:n}),s()},V=async n=>{try{await X({id:n}),s()}catch{s()}};return s(),(n,e)=>{const u=B,v=L,E=H,_=N,i=P,$=A,x=O,R=G,D=q;return f(),T("div",null,[t(v,{class:"!border-none",shadow:"never"},{default:l(()=>[t(u,{type:"warning",title:"温馨提示:1.粉丝关注公众号时,会自动发送启用的关注回复;2.同时只能启用一个关注回复。",closable:!1,"show-icon":""})]),_:1}),t(v,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[y("div",null,[t(_,{class:"mb-4",type:"primary",onClick:e[0]||(e[0]=a=>h())},{icon:l(()=>[t(E,{name:"el-icon-Plus"})]),default:l(()=>[e[3]||(e[3]=p(" 新增 ",-1))]),_:1})]),j((f(),g(x,{size:"large",data:o(r).lists},{default:l(()=>[t(i,{label:"规则名称",prop:"name","min-width":"120"}),t(i,{label:"回复类型","min-width":"120"},{default:l(({row:a})=>[p(U(o(w)(a.content_type)),1)]),_:1}),t(i,{label:"回复内容",prop:"content","min-width":"120"}),t(i,{label:"状态","min-width":"120"},{default:l(({row:a})=>[t($,{modelValue:a.status,"onUpdate:modelValue":m=>a.status=m,"active-value":1,"inactive-value":0,onChange:m=>V(a.id)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),t(i,{label:"排序",prop:"sort","min-width":"120"}),t(i,{label:"操作",width:"120",fixed:"right"},{default:l(({row:a})=>[t(_,{type:"primary",link:"",onClick:m=>C(a)},{default:l(()=>[...e[4]||(e[4]=[p(" 编辑 ",-1)])]),_:1},8,["onClick"]),t(_,{type:"danger",link:"",onClick:m=>k(a.id)},{default:l(()=>[...e[5]||(e[5]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[D,o(r).loading]]),y("div",ee,[t(R,{modelValue:o(r),"onUpdate:modelValue":e[1]||(e[1]=a=>z(r)?r.value=a:null),onChange:o(s)},null,8,["modelValue","onChange"])])]),_:1}),o(c)?(f(),g(Z,{key:0,ref_key:"editRef",ref:d,onSuccess:o(s),onClose:e[2]||(e[2]=a=>c.value=!1)},null,8,["onSuccess"])):F("",!0)])}}});export{de as default}; +import{o as S,q as f,r as T,v as t,D as l,bo as B,bj as L,s as y,K as N,L as p,ac as j,O as g,bk as O,u as o,bl as P,T as U,I as A,bn as q,C as z,P as F,a8 as I,M as K,p as M,n as b}from"./.pnpm-CyuAWpdG.js";import{_ as G}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as H,j as J}from"./index-Bkarz3gO.js";import{d as Q,o as W,e as X}from"./wx_oa-C-EoclSf.js";import{u as Y}from"./usePaging-CghUEVfD.js";import{_ as Z}from"./edit.vue_vue_type_script_setup_true_lang-DjT3f1Sv.js";import"./index-CS5Wg0xx.js";const ee={class:"flex justify-end mt-4"},de=S({__name:"follow_reply",setup(te){const d=I(),c=K(!1),w=M(()=>n=>{switch(n){case 1:return"文本"}}),{pager:r,getLists:s}=Y({fetchFun:Q,params:{reply_type:1}}),h=async()=>{var n;c.value=!0,await b(),(n=d.value)==null||n.open("add",1)},C=async n=>{var e,u;c.value=!0,await b(),(e=d.value)==null||e.open("edit",1),(u=d.value)==null||u.getDetail(n)},k=async n=>{await J.confirm("确定要删除?"),await W({id:n}),s()},V=async n=>{try{await X({id:n}),s()}catch{s()}};return s(),(n,e)=>{const u=B,v=L,E=H,_=N,i=P,$=A,x=O,R=G,D=q;return f(),T("div",null,[t(v,{class:"!border-none",shadow:"never"},{default:l(()=>[t(u,{type:"warning",title:"温馨提示:1.粉丝关注公众号时,会自动发送启用的关注回复;2.同时只能启用一个关注回复。",closable:!1,"show-icon":""})]),_:1}),t(v,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[y("div",null,[t(_,{class:"mb-4",type:"primary",onClick:e[0]||(e[0]=a=>h())},{icon:l(()=>[t(E,{name:"el-icon-Plus"})]),default:l(()=>[e[3]||(e[3]=p(" 新增 ",-1))]),_:1})]),j((f(),g(x,{size:"large",data:o(r).lists},{default:l(()=>[t(i,{label:"规则名称",prop:"name","min-width":"120"}),t(i,{label:"回复类型","min-width":"120"},{default:l(({row:a})=>[p(U(o(w)(a.content_type)),1)]),_:1}),t(i,{label:"回复内容",prop:"content","min-width":"120"}),t(i,{label:"状态","min-width":"120"},{default:l(({row:a})=>[t($,{modelValue:a.status,"onUpdate:modelValue":m=>a.status=m,"active-value":1,"inactive-value":0,onChange:m=>V(a.id)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),t(i,{label:"排序",prop:"sort","min-width":"120"}),t(i,{label:"操作",width:"120",fixed:"right"},{default:l(({row:a})=>[t(_,{type:"primary",link:"",onClick:m=>C(a)},{default:l(()=>[...e[4]||(e[4]=[p(" 编辑 ",-1)])]),_:1},8,["onClick"]),t(_,{type:"danger",link:"",onClick:m=>k(a.id)},{default:l(()=>[...e[5]||(e[5]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[D,o(r).loading]]),y("div",ee,[t(R,{modelValue:o(r),"onUpdate:modelValue":e[1]||(e[1]=a=>z(r)?r.value=a:null),onChange:o(s)},null,8,["modelValue","onChange"])])]),_:1}),o(c)?(f(),g(Z,{key:0,ref_key:"editRef",ref:d,onSuccess:o(s),onClose:e[2]||(e[2]=a=>c.value=!1)},null,8,["onSuccess"])):F("",!0)])}}});export{de as default}; diff --git a/server/public/admin/assets/footer.vue_vue_type_script_setup_true_lang-DVmBDxqU.js b/server/public/admin/assets/footer.vue_vue_type_script_setup_true_lang-CPBf3DXQ.js similarity index 87% rename from server/public/admin/assets/footer.vue_vue_type_script_setup_true_lang-DVmBDxqU.js rename to server/public/admin/assets/footer.vue_vue_type_script_setup_true_lang-CPBf3DXQ.js index b7b7831d9..57d55457f 100644 --- a/server/public/admin/assets/footer.vue_vue_type_script_setup_true_lang-DVmBDxqU.js +++ b/server/public/admin/assets/footer.vue_vue_type_script_setup_true_lang-CPBf3DXQ.js @@ -1 +1 @@ -import{e as a}from"./index-Dxvz9lb1.js";import{o as n,q as t,r as o,s as c,F as p,G as _,u as i,p as u,T as l}from"./.pnpm-CyuAWpdG.js";const f={class:"layout-footer"},m={class:"text-center p-2 text-xs text-tx-secondary max-w-[900px] mx-auto"},x=["href"],v=n({__name:"footer",setup(d){const s=a(),r=u(()=>s.config.copyright_config||[]);return(h,y)=>(t(),o("footer",f,[c("div",m,[(t(!0),o(p,null,_(i(r),e=>(t(),o("a",{class:"mx-1 hover:underline",href:e.value,target:"_blank",key:e.key},l(e.key),9,x))),128))])]))}});export{v as _}; +import{e as a}from"./index-Bkarz3gO.js";import{o as n,q as t,r as o,s as c,F as p,G as _,u as i,p as u,T as l}from"./.pnpm-CyuAWpdG.js";const f={class:"layout-footer"},m={class:"text-center p-2 text-xs text-tx-secondary max-w-[900px] mx-auto"},x=["href"],v=n({__name:"footer",setup(d){const s=a(),r=u(()=>s.config.copyright_config||[]);return(h,y)=>(t(),o("footer",f,[c("div",m,[(t(!0),o(p,null,_(i(r),e=>(t(),o("a",{class:"mx-1 hover:underline",href:e.value,target:"_blank",key:e.key},l(e.key),9,x))),128))])]))}});export{v as _}; diff --git a/server/public/admin/assets/guahao-Bm45eY5R.js b/server/public/admin/assets/guahao-77jKS1zA.js similarity index 98% rename from server/public/admin/assets/guahao-Bm45eY5R.js rename to server/public/admin/assets/guahao-77jKS1zA.js index 0df43e6ca..87a91f73b 100644 --- a/server/public/admin/assets/guahao-Bm45eY5R.js +++ b/server/public/admin/assets/guahao-77jKS1zA.js @@ -1 +1 @@ -import{o as J,ap as Se,bs as ke,bp as Ce,q as m,r as S,v as l,D as n,bd as xe,aw as Ee,u as a,bb as Ue,aA as De,bc as W,bh as Ne,F as D,G as N,O as v,bi as Te,K as qe,L as _,bj as Be,s as b,ac as L,T as c,P as F,bk as Fe,bl as Ae,bm as Pe,bn as Re,C as M,az as He,c6 as Ie,bf as Le,be as Me,aB as $e,aC as $,M as k,p as A}from"./.pnpm-CyuAWpdG.js";import{_ as Ke}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as Oe}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{j as g,n as je}from"./index-Dxvz9lb1.js";import{a as Ge,b as Ye,c as ze}from"./doctor-8vo_5fa4.js";import{a as Qe}from"./appointment-type-DJT6wPaT.js";import{o as We}from"./tcm-QAkeqQ9Q.js";import{u as Je}from"./usePaging-CghUEVfD.js";const Xe={class:"guahao-list"},Ze={class:"flex flex-wrap items-center gap-3 mb-4"},et={key:0,class:"text-sm text-gray-500"},tt={class:"text-sm"},lt={class:"font-medium"},at={class:"text-gray-500"},nt={class:"text-xs text-gray-400"},ot={class:"text-gray-500"},st={class:"text-sm"},it={key:0,class:"text-xs text-gray-400 truncate"},rt={class:"flex justify-end mt-4"},ut={class:"text-sm text-gray-600 mb-4"},dt=J({name:"consumerPrescriptionGuahao"}),Vt=J({...dt,setup(mt){const u=$({start_date:"",end_date:"",patient_name:"",doctor_name:"",assistant_id:void 0,appointment_type:"",status:"",channel_source:""}),X={start_date:"",end_date:"",patient_name:"",doctor_name:"",assistant_id:void 0,appointment_type:"",status:"",channel_source:""},{pager:E,getLists:U,resetPage:T}=Je({fetchFun:Ge,params:u}),q=k([]),K=k(null),h=k([]);function Z(s){h.value=s}const ee=new Set(["自媒体3Q","自媒体3H","自媒体2H","自媒体2Q"]);function B(s){return ee.has(String(s??"").trim())}const y=k([]),te=A(()=>{const s=o.channel_source;if(s===""||s==null)return"";const e=y.value.find(i=>String(i.value)===String(s));return e?String(e.name??"").trim():""}),O=A(()=>B(te.value)),le=A(()=>{const s=p.channel_source;if(s===""||s==null)return"";const e=y.value.find(i=>String(i.value)===String(s));return e?String(e.name??"").trim():""}),j=A(()=>B(le.value));function ae(s){const e=y.value.find(d=>String(d.value)===String(s)),i=e?String(e.name??"").trim():"";B(i)||(p.channel_source_detail="")}const C=k(!1),P=k(!1),p=$({channel_source:"",channel_source_detail:""});function ne(){if(h.value.length===0){g.msgWarning("请先勾选挂号记录");return}p.channel_source="",p.channel_source_detail="",C.value=!0}function oe(){p.channel_source="",p.channel_source_detail=""}async function se(){var s,e;if(h.value.length===0){g.msgWarning("请先勾选挂号记录");return}if(!p.channel_source){g.msgError("请选择渠道来源");return}if(j.value&&!p.channel_source_detail.trim()){g.msgError("请填写自媒体补充说明");return}P.value=!0;try{const i=h.value.map(d=>Number(d.id));await Ye({ids:i,channel_source:p.channel_source,channel_source_detail:p.channel_source_detail.trim()}),g.msgSuccess("批量修改成功"),C.value=!1,(e=(s=K.value)==null?void 0:s.clearSelection)==null||e.call(s),h.value=[],U()}finally{P.value=!1}}function ie(s){const e=y.value.find(d=>String(d.value)===String(s)),i=e?String(e.name??"").trim():"";B(i)||(o.channel_source_detail="")}const x=k(!1),R=k(!1),o=$({id:0,appointment_date:"",appointment_time:"",period:"morning",appointment_type:"video",status:1,remark:"",assistant_id:void 0,channel_source:"",channel_source_detail:""});function re(s){const e=String(s||"");return e.length>=11?e.slice(0,3)+"****"+e.slice(-4):e||"—"}function G(s){const e=String(s||"");return e.length>=5?e.slice(0,5):e||"—"}function ue(){Object.assign(u,X),T()}function de(s){const e=String(s.period??s.type??"morning");return e==="afternoon"||e==="all"?e:"morning"}async function me(){try{const s=await We();q.value=(s==null?void 0:s.lists)??s??[]}catch{q.value=[]}}async function pe(){try{const s=await je({type:"channels"}),e=((s==null?void 0:s.channels)||[]).filter(i=>i.status!==0);e.sort((i,d)=>{const r=Number((d==null?void 0:d.sort)??0)-Number((i==null?void 0:i.sort)??0);return r!==0?r:Number((d==null?void 0:d.id)??0)-Number((i==null?void 0:i.id)??0)}),y.value=e}catch{y.value=[]}}function _e(s){o.id=Number(s.id),o.appointment_date=String(s.appointment_date||""),o.appointment_time=G(String(s.appointment_time||"")),o.period=de(s),o.appointment_type=String(s.appointment_type||"video"),o.status=Number(s.status),o.remark=String(s.remark||"");const e=s.appointment_assistant_id;o.assistant_id=e!=null&&e!==""?Number(e):void 0,o.channel_source=String(s.channel_source??s.channels??""),o.channel_source_detail=String(s.channel_source_detail??""),x.value=!0}function ce(){o.id=0,o.appointment_date="",o.appointment_time="",o.period="morning",o.appointment_type="video",o.status=1,o.remark="",o.assistant_id=void 0,o.channel_source="",o.channel_source_detail=""}async function fe(){if(!o.appointment_date){g.msgError("请选择预约日期");return}if(!o.appointment_time){g.msgError("请选择预约时间");return}if(!o.channel_source){g.msgError("请选择渠道来源");return}if(O.value&&!o.channel_source_detail.trim()){g.msgError("请填写自媒体补充说明");return}R.value=!0;try{const s={id:o.id,appointment_date:o.appointment_date,appointment_time:o.appointment_time,period:o.period,appointment_type:o.appointment_type,status:o.status,remark:o.remark,assistant_id:o.assistant_id??"",channel_source:o.channel_source,channel_source_detail:o.channel_source_detail.trim()};await ze(s),g.msgSuccess("保存成功"),x.value=!1,U()}finally{R.value=!1}}return Se(()=>{me(),pe()}),ke(()=>{U()}),U(),(s,e)=>{const i=Ue,d=De,r=Te,V=Ne,w=qe,H=xe,Y=Be,f=Ae,ve=Pe,be=Fe,ge=Ke,he=He,ye=Ie,I=Me,Ve=Le,z=$e,Q=Ce("perms"),we=Re;return m(),S("div",Xe,[l(Y,{class:"!border-none",shadow:"never"},{default:n(()=>[l(H,{class:"mb-[-16px]",model:a(u),inline:!0,onSubmit:e[8]||(e[8]=Ee(()=>{},["prevent"]))},{default:n(()=>[l(i,{label:"预约日期"},{default:n(()=>[l(Oe,{startTime:a(u).start_date,"onUpdate:startTime":e[0]||(e[0]=t=>a(u).start_date=t),endTime:a(u).end_date,"onUpdate:endTime":e[1]||(e[1]=t=>a(u).end_date=t)},null,8,["startTime","endTime"])]),_:1}),l(i,{label:"患者姓名"},{default:n(()=>[l(d,{modelValue:a(u).patient_name,"onUpdate:modelValue":e[2]||(e[2]=t=>a(u).patient_name=t),placeholder:"模糊搜索",clearable:"",class:"!w-[160px]",onKeyup:W(a(T),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(i,{label:"医生"},{default:n(()=>[l(d,{modelValue:a(u).doctor_name,"onUpdate:modelValue":e[3]||(e[3]=t=>a(u).doctor_name=t),placeholder:"模糊搜索",clearable:"",class:"!w-[140px]",onKeyup:W(a(T),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(i,{label:"医助"},{default:n(()=>[l(V,{modelValue:a(u).assistant_id,"onUpdate:modelValue":e[4]||(e[4]=t=>a(u).assistant_id=t),placeholder:"全部",clearable:"",filterable:"",class:"!w-[180px]"},{default:n(()=>[(m(!0),S(D,null,N(a(q),t=>(m(),v(r,{key:t.id,label:t.name+(t.account?` (${t.account})`:""),value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"挂号类型"},{default:n(()=>[l(V,{modelValue:a(u).appointment_type,"onUpdate:modelValue":e[5]||(e[5]=t=>a(u).appointment_type=t),placeholder:"全部",clearable:"",class:"!w-[140px]"},{default:n(()=>[l(r,{label:"全部",value:""}),l(r,{label:"视频问诊",value:"video"}),l(r,{label:"图文问诊",value:"text"})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"状态"},{default:n(()=>[l(V,{modelValue:a(u).status,"onUpdate:modelValue":e[6]||(e[6]=t=>a(u).status=t),placeholder:"全部",clearable:"",class:"!w-[130px]"},{default:n(()=>[l(r,{label:"已预约",value:1}),l(r,{label:"已取消",value:2}),l(r,{label:"已完成",value:3}),l(r,{label:"已过号",value:4})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"渠道"},{default:n(()=>[l(V,{modelValue:a(u).channel_source,"onUpdate:modelValue":e[7]||(e[7]=t=>a(u).channel_source=t),placeholder:"全部",clearable:"",filterable:"",class:"!w-[200px]"},{default:n(()=>[(m(!0),S(D,null,N(a(y),t=>(m(),v(r,{key:String(t.value),label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(i,null,{default:n(()=>[l(w,{type:"primary",onClick:a(T)},{default:n(()=>[...e[25]||(e[25]=[_("查询",-1)])]),_:1},8,["onClick"]),l(w,{onClick:ue},{default:n(()=>[...e[26]||(e[26]=[_("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),l(Y,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[b("div",Ze,[L((m(),v(w,{type:"primary",disabled:a(h).length===0,onClick:ne},{default:n(()=>[...e[27]||(e[27]=[_(" 批量修改渠道 ",-1)])]),_:1},8,["disabled"])),[[Q,["doctor.appointment/edit"]]]),a(h).length>0?(m(),S("span",et," 已选 "+c(a(h).length)+" 条 ",1)):F("",!0)]),L((m(),v(be,{ref_key:"tableRef",ref:K,"row-key":"id",data:a(E).lists,size:"large",stripe:"",onSelectionChange:Z},{default:n(()=>[l(f,{type:"selection",width:"48",align:"center","reserve-selection":""}),l(f,{label:"ID",prop:"id",width:"72",align:"center"}),l(f,{label:"诊单/患者","min-width":"140"},{default:n(({row:t})=>[b("div",tt,[b("div",lt,c(t.patient_name||"—"),1),b("div",at,c(re(t.patient_phone)),1),b("div",nt,"诊单 #"+c(t.diagnosis_id??t.patient_id),1)])]),_:1}),l(f,{label:"医生",prop:"doctor_name",width:"100","show-overflow-tooltip":""}),l(f,{label:"医助",prop:"assistant_name",width:"100","show-overflow-tooltip":""}),l(f,{label:"预约时间","min-width":"128"},{default:n(({row:t})=>[b("div",null,c(t.appointment_date),1),b("div",ot,c(G(t.appointment_time))+" · "+c(t.period_desc),1)]),_:1}),l(f,{label:"挂号类型",width:"110"},{default:n(({row:t})=>[_(c(a(Qe)(t.appointment_type)),1)]),_:1}),l(f,{label:"渠道","min-width":"130","show-overflow-tooltip":""},{default:n(({row:t})=>[b("div",st,c(t.channel_source_desc||"—"),1),t.channel_source_detail?(m(),S("div",it,c(t.channel_source_detail),1)):F("",!0)]),_:1}),l(f,{label:"状态",width:"96",align:"center"},{default:n(({row:t})=>[l(ve,{type:t.status===1?"success":t.status===2?"info":t.status===3?"primary":"danger",size:"small",effect:"light"},{default:n(()=>[_(c(t.status_desc),1)]),_:2},1032,["type"])]),_:1}),l(f,{label:"备注",prop:"remark","min-width":"120","show-overflow-tooltip":""}),l(f,{label:"操作",width:"100",fixed:"right",align:"center"},{default:n(({row:t})=>[L((m(),v(w,{type:"primary",link:"",onClick:pt=>_e(t)},{default:n(()=>[...e[28]||(e[28]=[_(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[Q,["doctor.appointment/edit"]]])]),_:1})]),_:1},8,["data"])),[[we,a(E).loading]]),b("div",rt,[l(ge,{modelValue:a(E),"onUpdate:modelValue":e[9]||(e[9]=t=>M(E)?E.value=t:null),onChange:a(U)},null,8,["modelValue","onChange"])])]),_:1}),l(z,{modelValue:a(x),"onUpdate:modelValue":e[20]||(e[20]=t=>M(x)?x.value=t:null),title:"编辑挂号",width:"560px","destroy-on-close":"",onClosed:ce},{footer:n(()=>[l(w,{onClick:e[19]||(e[19]=t=>x.value=!1)},{default:n(()=>[...e[32]||(e[32]=[_("取消",-1)])]),_:1}),l(w,{type:"primary",loading:a(R),onClick:fe},{default:n(()=>[...e[33]||(e[33]=[_("保存",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(H,{model:a(o),"label-width":"96px"},{default:n(()=>[l(i,{label:"预约日期",required:""},{default:n(()=>[l(he,{modelValue:a(o).appointment_date,"onUpdate:modelValue":e[10]||(e[10]=t=>a(o).appointment_date=t),type:"date","value-format":"YYYY-MM-DD",placeholder:"选择日期",class:"!w-full"},null,8,["modelValue"])]),_:1}),l(i,{label:"预约时间",required:""},{default:n(()=>[l(ye,{modelValue:a(o).appointment_time,"onUpdate:modelValue":e[11]||(e[11]=t=>a(o).appointment_time=t),format:"HH:mm","value-format":"HH:mm",placeholder:"时间",class:"!w-full"},null,8,["modelValue"])]),_:1}),l(i,{label:"时段",required:""},{default:n(()=>[l(Ve,{modelValue:a(o).period,"onUpdate:modelValue":e[12]||(e[12]=t=>a(o).period=t)},{default:n(()=>[l(I,{label:"morning"},{default:n(()=>[...e[29]||(e[29]=[_("上午",-1)])]),_:1}),l(I,{label:"afternoon"},{default:n(()=>[...e[30]||(e[30]=[_("下午",-1)])]),_:1}),l(I,{label:"all"},{default:n(()=>[...e[31]||(e[31]=[_("全天",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"挂号类型",required:""},{default:n(()=>[l(V,{modelValue:a(o).appointment_type,"onUpdate:modelValue":e[13]||(e[13]=t=>a(o).appointment_type=t),class:"!w-full"},{default:n(()=>[l(r,{label:"视频问诊",value:"video"}),l(r,{label:"图文问诊",value:"text"})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"渠道来源",required:""},{default:n(()=>[l(V,{modelValue:a(o).channel_source,"onUpdate:modelValue":e[14]||(e[14]=t=>a(o).channel_source=t),placeholder:"请选择渠道来源",filterable:"",class:"!w-full",onChange:ie},{default:n(()=>[(m(!0),S(D,null,N(a(y),t=>(m(),v(r,{key:String(t.value),label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(O)?(m(),v(i,{key:0,label:"自媒体补充",required:""},{default:n(()=>[l(d,{modelValue:a(o).channel_source_detail,"onUpdate:modelValue":e[15]||(e[15]=t=>a(o).channel_source_detail=t),maxlength:"128","show-word-limit":"",placeholder:"请输入自媒体相关补充内容",clearable:"",class:"!w-full"},null,8,["modelValue"])]),_:1})):F("",!0),l(i,{label:"状态",required:""},{default:n(()=>[l(V,{modelValue:a(o).status,"onUpdate:modelValue":e[16]||(e[16]=t=>a(o).status=t),class:"!w-full"},{default:n(()=>[l(r,{label:"已预约",value:1}),l(r,{label:"已取消",value:2}),l(r,{label:"已完成",value:3}),l(r,{label:"已过号",value:4})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"挂号医助"},{default:n(()=>[l(V,{modelValue:a(o).assistant_id,"onUpdate:modelValue":e[17]||(e[17]=t=>a(o).assistant_id=t),placeholder:"不修改可留空",clearable:"",filterable:"",class:"!w-full"},{default:n(()=>[(m(!0),S(D,null,N(a(q),t=>(m(),v(r,{key:t.id,label:t.name+(t.account?` (${t.account})`:""),value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"备注"},{default:n(()=>[l(d,{modelValue:a(o).remark,"onUpdate:modelValue":e[18]||(e[18]=t=>a(o).remark=t),type:"textarea",rows:3,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(z,{modelValue:a(C),"onUpdate:modelValue":e[24]||(e[24]=t=>M(C)?C.value=t:null),title:"批量修改渠道",width:"520px","destroy-on-close":"",onClosed:oe},{footer:n(()=>[l(w,{onClick:e[23]||(e[23]=t=>C.value=!1)},{default:n(()=>[...e[34]||(e[34]=[_("取消",-1)])]),_:1}),l(w,{type:"primary",loading:a(P),onClick:se},{default:n(()=>[...e[35]||(e[35]=[_("确定",-1)])]),_:1},8,["loading"])]),default:n(()=>[b("p",ut,"将对已选 "+c(a(h).length)+" 条挂号写入同一渠道来源(仅改渠道,不改其它字段)。",1),l(H,{model:a(p),"label-width":"96px"},{default:n(()=>[l(i,{label:"渠道来源",required:""},{default:n(()=>[l(V,{modelValue:a(p).channel_source,"onUpdate:modelValue":e[21]||(e[21]=t=>a(p).channel_source=t),placeholder:"请选择渠道来源",filterable:"",class:"!w-full",onChange:ae},{default:n(()=>[(m(!0),S(D,null,N(a(y),t=>(m(),v(r,{key:String(t.value),label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(j)?(m(),v(i,{key:0,label:"自媒体补充",required:""},{default:n(()=>[l(d,{modelValue:a(p).channel_source_detail,"onUpdate:modelValue":e[22]||(e[22]=t=>a(p).channel_source_detail=t),maxlength:"128","show-word-limit":"",placeholder:"请输入自媒体相关补充内容",clearable:"",class:"!w-full"},null,8,["modelValue"])]),_:1})):F("",!0)]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}});export{Vt as default}; +import{o as J,ap as Se,bs as ke,bp as Ce,q as m,r as S,v as l,D as n,bd as xe,aw as Ee,u as a,bb as Ue,aA as De,bc as W,bh as Ne,F as D,G as N,O as v,bi as Te,K as qe,L as _,bj as Be,s as b,ac as L,T as c,P as F,bk as Fe,bl as Ae,bm as Pe,bn as Re,C as M,az as He,c6 as Ie,bf as Le,be as Me,aB as $e,aC as $,M as k,p as A}from"./.pnpm-CyuAWpdG.js";import{_ as Ke}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as Oe}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{j as g,n as je}from"./index-Bkarz3gO.js";import{a as Ge,b as Ye,c as ze}from"./doctor-DBvYeWd3.js";import{a as Qe}from"./appointment-type-DJT6wPaT.js";import{o as We}from"./tcm-BSADvQNg.js";import{u as Je}from"./usePaging-CghUEVfD.js";const Xe={class:"guahao-list"},Ze={class:"flex flex-wrap items-center gap-3 mb-4"},et={key:0,class:"text-sm text-gray-500"},tt={class:"text-sm"},lt={class:"font-medium"},at={class:"text-gray-500"},nt={class:"text-xs text-gray-400"},ot={class:"text-gray-500"},st={class:"text-sm"},it={key:0,class:"text-xs text-gray-400 truncate"},rt={class:"flex justify-end mt-4"},ut={class:"text-sm text-gray-600 mb-4"},dt=J({name:"consumerPrescriptionGuahao"}),Vt=J({...dt,setup(mt){const u=$({start_date:"",end_date:"",patient_name:"",doctor_name:"",assistant_id:void 0,appointment_type:"",status:"",channel_source:""}),X={start_date:"",end_date:"",patient_name:"",doctor_name:"",assistant_id:void 0,appointment_type:"",status:"",channel_source:""},{pager:E,getLists:U,resetPage:T}=Je({fetchFun:Ge,params:u}),q=k([]),K=k(null),h=k([]);function Z(s){h.value=s}const ee=new Set(["自媒体3Q","自媒体3H","自媒体2H","自媒体2Q"]);function B(s){return ee.has(String(s??"").trim())}const y=k([]),te=A(()=>{const s=o.channel_source;if(s===""||s==null)return"";const e=y.value.find(i=>String(i.value)===String(s));return e?String(e.name??"").trim():""}),O=A(()=>B(te.value)),le=A(()=>{const s=p.channel_source;if(s===""||s==null)return"";const e=y.value.find(i=>String(i.value)===String(s));return e?String(e.name??"").trim():""}),j=A(()=>B(le.value));function ae(s){const e=y.value.find(d=>String(d.value)===String(s)),i=e?String(e.name??"").trim():"";B(i)||(p.channel_source_detail="")}const C=k(!1),P=k(!1),p=$({channel_source:"",channel_source_detail:""});function ne(){if(h.value.length===0){g.msgWarning("请先勾选挂号记录");return}p.channel_source="",p.channel_source_detail="",C.value=!0}function oe(){p.channel_source="",p.channel_source_detail=""}async function se(){var s,e;if(h.value.length===0){g.msgWarning("请先勾选挂号记录");return}if(!p.channel_source){g.msgError("请选择渠道来源");return}if(j.value&&!p.channel_source_detail.trim()){g.msgError("请填写自媒体补充说明");return}P.value=!0;try{const i=h.value.map(d=>Number(d.id));await Ye({ids:i,channel_source:p.channel_source,channel_source_detail:p.channel_source_detail.trim()}),g.msgSuccess("批量修改成功"),C.value=!1,(e=(s=K.value)==null?void 0:s.clearSelection)==null||e.call(s),h.value=[],U()}finally{P.value=!1}}function ie(s){const e=y.value.find(d=>String(d.value)===String(s)),i=e?String(e.name??"").trim():"";B(i)||(o.channel_source_detail="")}const x=k(!1),R=k(!1),o=$({id:0,appointment_date:"",appointment_time:"",period:"morning",appointment_type:"video",status:1,remark:"",assistant_id:void 0,channel_source:"",channel_source_detail:""});function re(s){const e=String(s||"");return e.length>=11?e.slice(0,3)+"****"+e.slice(-4):e||"—"}function G(s){const e=String(s||"");return e.length>=5?e.slice(0,5):e||"—"}function ue(){Object.assign(u,X),T()}function de(s){const e=String(s.period??s.type??"morning");return e==="afternoon"||e==="all"?e:"morning"}async function me(){try{const s=await We();q.value=(s==null?void 0:s.lists)??s??[]}catch{q.value=[]}}async function pe(){try{const s=await je({type:"channels"}),e=((s==null?void 0:s.channels)||[]).filter(i=>i.status!==0);e.sort((i,d)=>{const r=Number((d==null?void 0:d.sort)??0)-Number((i==null?void 0:i.sort)??0);return r!==0?r:Number((d==null?void 0:d.id)??0)-Number((i==null?void 0:i.id)??0)}),y.value=e}catch{y.value=[]}}function _e(s){o.id=Number(s.id),o.appointment_date=String(s.appointment_date||""),o.appointment_time=G(String(s.appointment_time||"")),o.period=de(s),o.appointment_type=String(s.appointment_type||"video"),o.status=Number(s.status),o.remark=String(s.remark||"");const e=s.appointment_assistant_id;o.assistant_id=e!=null&&e!==""?Number(e):void 0,o.channel_source=String(s.channel_source??s.channels??""),o.channel_source_detail=String(s.channel_source_detail??""),x.value=!0}function ce(){o.id=0,o.appointment_date="",o.appointment_time="",o.period="morning",o.appointment_type="video",o.status=1,o.remark="",o.assistant_id=void 0,o.channel_source="",o.channel_source_detail=""}async function fe(){if(!o.appointment_date){g.msgError("请选择预约日期");return}if(!o.appointment_time){g.msgError("请选择预约时间");return}if(!o.channel_source){g.msgError("请选择渠道来源");return}if(O.value&&!o.channel_source_detail.trim()){g.msgError("请填写自媒体补充说明");return}R.value=!0;try{const s={id:o.id,appointment_date:o.appointment_date,appointment_time:o.appointment_time,period:o.period,appointment_type:o.appointment_type,status:o.status,remark:o.remark,assistant_id:o.assistant_id??"",channel_source:o.channel_source,channel_source_detail:o.channel_source_detail.trim()};await ze(s),g.msgSuccess("保存成功"),x.value=!1,U()}finally{R.value=!1}}return Se(()=>{me(),pe()}),ke(()=>{U()}),U(),(s,e)=>{const i=Ue,d=De,r=Te,V=Ne,w=qe,H=xe,Y=Be,f=Ae,ve=Pe,be=Fe,ge=Ke,he=He,ye=Ie,I=Me,Ve=Le,z=$e,Q=Ce("perms"),we=Re;return m(),S("div",Xe,[l(Y,{class:"!border-none",shadow:"never"},{default:n(()=>[l(H,{class:"mb-[-16px]",model:a(u),inline:!0,onSubmit:e[8]||(e[8]=Ee(()=>{},["prevent"]))},{default:n(()=>[l(i,{label:"预约日期"},{default:n(()=>[l(Oe,{startTime:a(u).start_date,"onUpdate:startTime":e[0]||(e[0]=t=>a(u).start_date=t),endTime:a(u).end_date,"onUpdate:endTime":e[1]||(e[1]=t=>a(u).end_date=t)},null,8,["startTime","endTime"])]),_:1}),l(i,{label:"患者姓名"},{default:n(()=>[l(d,{modelValue:a(u).patient_name,"onUpdate:modelValue":e[2]||(e[2]=t=>a(u).patient_name=t),placeholder:"模糊搜索",clearable:"",class:"!w-[160px]",onKeyup:W(a(T),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(i,{label:"医生"},{default:n(()=>[l(d,{modelValue:a(u).doctor_name,"onUpdate:modelValue":e[3]||(e[3]=t=>a(u).doctor_name=t),placeholder:"模糊搜索",clearable:"",class:"!w-[140px]",onKeyup:W(a(T),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(i,{label:"医助"},{default:n(()=>[l(V,{modelValue:a(u).assistant_id,"onUpdate:modelValue":e[4]||(e[4]=t=>a(u).assistant_id=t),placeholder:"全部",clearable:"",filterable:"",class:"!w-[180px]"},{default:n(()=>[(m(!0),S(D,null,N(a(q),t=>(m(),v(r,{key:t.id,label:t.name+(t.account?` (${t.account})`:""),value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"挂号类型"},{default:n(()=>[l(V,{modelValue:a(u).appointment_type,"onUpdate:modelValue":e[5]||(e[5]=t=>a(u).appointment_type=t),placeholder:"全部",clearable:"",class:"!w-[140px]"},{default:n(()=>[l(r,{label:"全部",value:""}),l(r,{label:"视频问诊",value:"video"}),l(r,{label:"图文问诊",value:"text"})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"状态"},{default:n(()=>[l(V,{modelValue:a(u).status,"onUpdate:modelValue":e[6]||(e[6]=t=>a(u).status=t),placeholder:"全部",clearable:"",class:"!w-[130px]"},{default:n(()=>[l(r,{label:"已预约",value:1}),l(r,{label:"已取消",value:2}),l(r,{label:"已完成",value:3}),l(r,{label:"已过号",value:4})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"渠道"},{default:n(()=>[l(V,{modelValue:a(u).channel_source,"onUpdate:modelValue":e[7]||(e[7]=t=>a(u).channel_source=t),placeholder:"全部",clearable:"",filterable:"",class:"!w-[200px]"},{default:n(()=>[(m(!0),S(D,null,N(a(y),t=>(m(),v(r,{key:String(t.value),label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(i,null,{default:n(()=>[l(w,{type:"primary",onClick:a(T)},{default:n(()=>[...e[25]||(e[25]=[_("查询",-1)])]),_:1},8,["onClick"]),l(w,{onClick:ue},{default:n(()=>[...e[26]||(e[26]=[_("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),l(Y,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[b("div",Ze,[L((m(),v(w,{type:"primary",disabled:a(h).length===0,onClick:ne},{default:n(()=>[...e[27]||(e[27]=[_(" 批量修改渠道 ",-1)])]),_:1},8,["disabled"])),[[Q,["doctor.appointment/edit"]]]),a(h).length>0?(m(),S("span",et," 已选 "+c(a(h).length)+" 条 ",1)):F("",!0)]),L((m(),v(be,{ref_key:"tableRef",ref:K,"row-key":"id",data:a(E).lists,size:"large",stripe:"",onSelectionChange:Z},{default:n(()=>[l(f,{type:"selection",width:"48",align:"center","reserve-selection":""}),l(f,{label:"ID",prop:"id",width:"72",align:"center"}),l(f,{label:"诊单/患者","min-width":"140"},{default:n(({row:t})=>[b("div",tt,[b("div",lt,c(t.patient_name||"—"),1),b("div",at,c(re(t.patient_phone)),1),b("div",nt,"诊单 #"+c(t.diagnosis_id??t.patient_id),1)])]),_:1}),l(f,{label:"医生",prop:"doctor_name",width:"100","show-overflow-tooltip":""}),l(f,{label:"医助",prop:"assistant_name",width:"100","show-overflow-tooltip":""}),l(f,{label:"预约时间","min-width":"128"},{default:n(({row:t})=>[b("div",null,c(t.appointment_date),1),b("div",ot,c(G(t.appointment_time))+" · "+c(t.period_desc),1)]),_:1}),l(f,{label:"挂号类型",width:"110"},{default:n(({row:t})=>[_(c(a(Qe)(t.appointment_type)),1)]),_:1}),l(f,{label:"渠道","min-width":"130","show-overflow-tooltip":""},{default:n(({row:t})=>[b("div",st,c(t.channel_source_desc||"—"),1),t.channel_source_detail?(m(),S("div",it,c(t.channel_source_detail),1)):F("",!0)]),_:1}),l(f,{label:"状态",width:"96",align:"center"},{default:n(({row:t})=>[l(ve,{type:t.status===1?"success":t.status===2?"info":t.status===3?"primary":"danger",size:"small",effect:"light"},{default:n(()=>[_(c(t.status_desc),1)]),_:2},1032,["type"])]),_:1}),l(f,{label:"备注",prop:"remark","min-width":"120","show-overflow-tooltip":""}),l(f,{label:"操作",width:"100",fixed:"right",align:"center"},{default:n(({row:t})=>[L((m(),v(w,{type:"primary",link:"",onClick:pt=>_e(t)},{default:n(()=>[...e[28]||(e[28]=[_(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[Q,["doctor.appointment/edit"]]])]),_:1})]),_:1},8,["data"])),[[we,a(E).loading]]),b("div",rt,[l(ge,{modelValue:a(E),"onUpdate:modelValue":e[9]||(e[9]=t=>M(E)?E.value=t:null),onChange:a(U)},null,8,["modelValue","onChange"])])]),_:1}),l(z,{modelValue:a(x),"onUpdate:modelValue":e[20]||(e[20]=t=>M(x)?x.value=t:null),title:"编辑挂号",width:"560px","destroy-on-close":"",onClosed:ce},{footer:n(()=>[l(w,{onClick:e[19]||(e[19]=t=>x.value=!1)},{default:n(()=>[...e[32]||(e[32]=[_("取消",-1)])]),_:1}),l(w,{type:"primary",loading:a(R),onClick:fe},{default:n(()=>[...e[33]||(e[33]=[_("保存",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(H,{model:a(o),"label-width":"96px"},{default:n(()=>[l(i,{label:"预约日期",required:""},{default:n(()=>[l(he,{modelValue:a(o).appointment_date,"onUpdate:modelValue":e[10]||(e[10]=t=>a(o).appointment_date=t),type:"date","value-format":"YYYY-MM-DD",placeholder:"选择日期",class:"!w-full"},null,8,["modelValue"])]),_:1}),l(i,{label:"预约时间",required:""},{default:n(()=>[l(ye,{modelValue:a(o).appointment_time,"onUpdate:modelValue":e[11]||(e[11]=t=>a(o).appointment_time=t),format:"HH:mm","value-format":"HH:mm",placeholder:"时间",class:"!w-full"},null,8,["modelValue"])]),_:1}),l(i,{label:"时段",required:""},{default:n(()=>[l(Ve,{modelValue:a(o).period,"onUpdate:modelValue":e[12]||(e[12]=t=>a(o).period=t)},{default:n(()=>[l(I,{label:"morning"},{default:n(()=>[...e[29]||(e[29]=[_("上午",-1)])]),_:1}),l(I,{label:"afternoon"},{default:n(()=>[...e[30]||(e[30]=[_("下午",-1)])]),_:1}),l(I,{label:"all"},{default:n(()=>[...e[31]||(e[31]=[_("全天",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"挂号类型",required:""},{default:n(()=>[l(V,{modelValue:a(o).appointment_type,"onUpdate:modelValue":e[13]||(e[13]=t=>a(o).appointment_type=t),class:"!w-full"},{default:n(()=>[l(r,{label:"视频问诊",value:"video"}),l(r,{label:"图文问诊",value:"text"})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"渠道来源",required:""},{default:n(()=>[l(V,{modelValue:a(o).channel_source,"onUpdate:modelValue":e[14]||(e[14]=t=>a(o).channel_source=t),placeholder:"请选择渠道来源",filterable:"",class:"!w-full",onChange:ie},{default:n(()=>[(m(!0),S(D,null,N(a(y),t=>(m(),v(r,{key:String(t.value),label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(O)?(m(),v(i,{key:0,label:"自媒体补充",required:""},{default:n(()=>[l(d,{modelValue:a(o).channel_source_detail,"onUpdate:modelValue":e[15]||(e[15]=t=>a(o).channel_source_detail=t),maxlength:"128","show-word-limit":"",placeholder:"请输入自媒体相关补充内容",clearable:"",class:"!w-full"},null,8,["modelValue"])]),_:1})):F("",!0),l(i,{label:"状态",required:""},{default:n(()=>[l(V,{modelValue:a(o).status,"onUpdate:modelValue":e[16]||(e[16]=t=>a(o).status=t),class:"!w-full"},{default:n(()=>[l(r,{label:"已预约",value:1}),l(r,{label:"已取消",value:2}),l(r,{label:"已完成",value:3}),l(r,{label:"已过号",value:4})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"挂号医助"},{default:n(()=>[l(V,{modelValue:a(o).assistant_id,"onUpdate:modelValue":e[17]||(e[17]=t=>a(o).assistant_id=t),placeholder:"不修改可留空",clearable:"",filterable:"",class:"!w-full"},{default:n(()=>[(m(!0),S(D,null,N(a(q),t=>(m(),v(r,{key:t.id,label:t.name+(t.account?` (${t.account})`:""),value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"备注"},{default:n(()=>[l(d,{modelValue:a(o).remark,"onUpdate:modelValue":e[18]||(e[18]=t=>a(o).remark=t),type:"textarea",rows:3,maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(z,{modelValue:a(C),"onUpdate:modelValue":e[24]||(e[24]=t=>M(C)?C.value=t:null),title:"批量修改渠道",width:"520px","destroy-on-close":"",onClosed:oe},{footer:n(()=>[l(w,{onClick:e[23]||(e[23]=t=>C.value=!1)},{default:n(()=>[...e[34]||(e[34]=[_("取消",-1)])]),_:1}),l(w,{type:"primary",loading:a(P),onClick:se},{default:n(()=>[...e[35]||(e[35]=[_("确定",-1)])]),_:1},8,["loading"])]),default:n(()=>[b("p",ut,"将对已选 "+c(a(h).length)+" 条挂号写入同一渠道来源(仅改渠道,不改其它字段)。",1),l(H,{model:a(p),"label-width":"96px"},{default:n(()=>[l(i,{label:"渠道来源",required:""},{default:n(()=>[l(V,{modelValue:a(p).channel_source,"onUpdate:modelValue":e[21]||(e[21]=t=>a(p).channel_source=t),placeholder:"请选择渠道来源",filterable:"",class:"!w-full",onChange:ae},{default:n(()=>[(m(!0),S(D,null,N(a(y),t=>(m(),v(r,{key:String(t.value),label:t.name,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(j)?(m(),v(i,{key:0,label:"自媒体补充",required:""},{default:n(()=>[l(d,{modelValue:a(p).channel_source_detail,"onUpdate:modelValue":e[22]||(e[22]=t=>a(p).channel_source_detail=t),maxlength:"128","show-word-limit":"",placeholder:"请输入自媒体相关补充内容",clearable:"",class:"!w-full"},null,8,["modelValue"])]),_:1})):F("",!0)]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}});export{Vt as default}; diff --git a/server/public/admin/assets/h5-BvJ9_TsW.js b/server/public/admin/assets/h5-CpGZ84vN.js similarity index 94% rename from server/public/admin/assets/h5-BvJ9_TsW.js rename to server/public/admin/assets/h5-CpGZ84vN.js index 76aced19b..7acc76a94 100644 --- a/server/public/admin/assets/h5-BvJ9_TsW.js +++ b/server/public/admin/assets/h5-CpGZ84vN.js @@ -1 +1 @@ -import{_ as N}from"./index-9qT8_5W1.js";import{o as V,bp as v,q as d,r as H,v as o,D as t,bo as R,bj as U,bd as A,u as l,bb as F,s as _,bf as I,bq as S,L as s,O as p,aA as T,P as j,T as G,ac as w,K,aC as L}from"./.pnpm-CyuAWpdG.js";import{r as C}from"./index-Dxvz9lb1.js";function O(i){return C.post({url:"/channel.web_page_setting/setConfig",params:i})}function P(){return C.get({url:"/channel.web_page_setting/getConfig"})}const z={class:"w-80"},J={class:"flex-1 min-w-0 break-words"},M=V({name:"h5Config"}),Y=V({...M,setup(i){const a=L({status:0,page_status:0,page_url:"",url:""}),m=async()=>{const f=await P();for(const e in a)a[e]=f[e]},y=async()=>{await O(a),m()};return m(),(f,e)=>{const E=R,g=U,r=S,c=I,u=F,k=T,b=K,x=A,D=N,B=v("copy"),q=v("perms");return d(),H("div",null,[o(g,{class:"!border-none",shadow:"never"},{default:t(()=>[o(E,{type:"warning",title:"温馨提示:H5设置",closable:!1,"show-icon":""})]),_:1}),o(g,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[o(x,{ref:"formRef",model:l(a),"label-width":"120px"},{default:t(()=>[o(u,{label:"渠道状态",required:"",prop:"status"},{default:t(()=>[_("div",null,[o(c,{modelValue:l(a).status,"onUpdate:modelValue":e[0]||(e[0]=n=>l(a).status=n)},{default:t(()=>[o(r,{value:1},{default:t(()=>[...e[3]||(e[3]=[s("开启",-1)])]),_:1}),o(r,{value:0},{default:t(()=>[...e[4]||(e[4]=[s("关闭",-1)])]),_:1})]),_:1},8,["modelValue"]),e[5]||(e[5]=_("div",{class:"form-tips"},"状态为关闭时,将不对外提供服务,请谨慎操作",-1))])]),_:1}),o(u,{label:"关闭后访问页面",prop:"page_status"},{default:t(()=>[o(c,{modelValue:l(a).page_status,"onUpdate:modelValue":e[1]||(e[1]=n=>l(a).page_status=n)},{default:t(()=>[o(r,{value:0},{default:t(()=>[...e[6]||(e[6]=[s("空页面",-1)])]),_:1}),o(r,{value:1},{default:t(()=>[...e[7]||(e[7]=[s("自定义链接",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(a).page_status==1?(d(),p(u,{key:0,label:"",prop:"page_url"},{default:t(()=>[_("div",z,[o(k,{modelValue:l(a).page_url,"onUpdate:modelValue":e[2]||(e[2]=n=>l(a).page_url=n),placeholder:"请输入完整的url"},null,8,["modelValue"])])]),_:1})):j("",!0),o(u,{label:"访问链接"},{default:t(()=>[_("div",J,[s(G(l(a).url)+" ",1),w((d(),p(b,null,{default:t(()=>[...e[8]||(e[8]=[s("复制",-1)])]),_:1})),[[B,l(a).url]])])]),_:1})]),_:1},8,["model"])]),_:1}),w((d(),p(D,null,{default:t(()=>[o(b,{type:"primary",onClick:y},{default:t(()=>[...e[9]||(e[9]=[s("保存",-1)])]),_:1})]),_:1})),[[q,["channel.web_page_setting/setConfig"]]])])}}});export{Y as default}; +import{_ as N}from"./index-DIl3M8Wa.js";import{o as V,bp as v,q as d,r as H,v as o,D as t,bo as R,bj as U,bd as A,u as l,bb as F,s as _,bf as I,bq as S,L as s,O as p,aA as T,P as j,T as G,ac as w,K,aC as L}from"./.pnpm-CyuAWpdG.js";import{r as C}from"./index-Bkarz3gO.js";function O(i){return C.post({url:"/channel.web_page_setting/setConfig",params:i})}function P(){return C.get({url:"/channel.web_page_setting/getConfig"})}const z={class:"w-80"},J={class:"flex-1 min-w-0 break-words"},M=V({name:"h5Config"}),Y=V({...M,setup(i){const a=L({status:0,page_status:0,page_url:"",url:""}),m=async()=>{const f=await P();for(const e in a)a[e]=f[e]},y=async()=>{await O(a),m()};return m(),(f,e)=>{const E=R,g=U,r=S,c=I,u=F,k=T,b=K,x=A,D=N,B=v("copy"),q=v("perms");return d(),H("div",null,[o(g,{class:"!border-none",shadow:"never"},{default:t(()=>[o(E,{type:"warning",title:"温馨提示:H5设置",closable:!1,"show-icon":""})]),_:1}),o(g,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[o(x,{ref:"formRef",model:l(a),"label-width":"120px"},{default:t(()=>[o(u,{label:"渠道状态",required:"",prop:"status"},{default:t(()=>[_("div",null,[o(c,{modelValue:l(a).status,"onUpdate:modelValue":e[0]||(e[0]=n=>l(a).status=n)},{default:t(()=>[o(r,{value:1},{default:t(()=>[...e[3]||(e[3]=[s("开启",-1)])]),_:1}),o(r,{value:0},{default:t(()=>[...e[4]||(e[4]=[s("关闭",-1)])]),_:1})]),_:1},8,["modelValue"]),e[5]||(e[5]=_("div",{class:"form-tips"},"状态为关闭时,将不对外提供服务,请谨慎操作",-1))])]),_:1}),o(u,{label:"关闭后访问页面",prop:"page_status"},{default:t(()=>[o(c,{modelValue:l(a).page_status,"onUpdate:modelValue":e[1]||(e[1]=n=>l(a).page_status=n)},{default:t(()=>[o(r,{value:0},{default:t(()=>[...e[6]||(e[6]=[s("空页面",-1)])]),_:1}),o(r,{value:1},{default:t(()=>[...e[7]||(e[7]=[s("自定义链接",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(a).page_status==1?(d(),p(u,{key:0,label:"",prop:"page_url"},{default:t(()=>[_("div",z,[o(k,{modelValue:l(a).page_url,"onUpdate:modelValue":e[2]||(e[2]=n=>l(a).page_url=n),placeholder:"请输入完整的url"},null,8,["modelValue"])])]),_:1})):j("",!0),o(u,{label:"访问链接"},{default:t(()=>[_("div",J,[s(G(l(a).url)+" ",1),w((d(),p(b,null,{default:t(()=>[...e[8]||(e[8]=[s("复制",-1)])]),_:1})),[[B,l(a).url]])])]),_:1})]),_:1},8,["model"])]),_:1}),w((d(),p(D,null,{default:t(()=>[o(b,{type:"primary",onClick:y},{default:t(()=>[...e[9]||(e[9]=[s("保存",-1)])]),_:1})]),_:1})),[[q,["channel.web_page_setting/setConfig"]]])])}}});export{Y as default}; diff --git a/server/public/admin/assets/h5-DMwOBeA2.js b/server/public/admin/assets/h5-CqbDVG-k.js similarity index 99% rename from server/public/admin/assets/h5-DMwOBeA2.js rename to server/public/admin/assets/h5-CqbDVG-k.js index 73a6f1b7e..8fb4034f7 100644 --- a/server/public/admin/assets/h5-DMwOBeA2.js +++ b/server/public/admin/assets/h5-CqbDVG-k.js @@ -1 +1 @@ -import{o as ie,q as r,r as u,s as n,v as l,bc as De,C as q,u as a,aA as Fe,D as s,bi as Ue,bh as $e,L as i,K as Ye,ac as ae,bn as Le,bC as Me,P as g,F as se,G as oe,cx as Se,w as qe,bd as Te,bb as He,J as Ne,bf as Be,bq as Ie,I as Ae,B as Ke,bm as Pe,T as p,be as je,az as Ge,M as d,p as Je}from"./.pnpm-CyuAWpdG.js";import{f as Oe,a as Xe,b as Qe,c as We,d as Ze,e as et,g as tt,h as lt}from"./fans-DGKJ29C1.js";import{j as ne,_ as at}from"./index-Dxvz9lb1.js";import{d as st}from"./dayjs-B2bPhvDy.js";const ot={class:"fans-h5"},nt={class:"h5-header"},it={class:"h5-search"},dt={class:"h5-filter-row"},rt={class:"h5-list"},ut={key:0,class:"h5-empty"},mt={class:"h5-card-header"},vt={class:"h5-card-name"},pt={class:"name"},_t={key:0,class:"age"},ct={class:"h5-card-body"},ft={class:"info-line"},gt={class:"value"},yt={class:"info-line"},Vt={class:"value"},bt={key:0,class:"info-line"},kt={class:"value remark"},ht={class:"h5-card-footer"},xt={class:"footer-left"},Ct={class:"visit-info"},wt={class:"visit-count"},zt={key:0,class:"creator-info"},Et={class:"actions"},Rt={key:0},Dt={key:1},Ft={key:2,class:"h5-no-more"},Ut={class:"h5-form-row"},$t={class:"h5-visit-header"},Yt={class:"h5-visit-list"},Lt={key:0,class:"h5-empty"},Mt={class:"visit-card-header"},St={class:"visit-card-tags"},qt={class:"visit-time"},Tt={class:"visit-card-actions"},Ht={class:"visit-card-content"},Nt={key:0,class:"visit-card-result"},Bt={class:"visit-card-meta"},It={key:0,class:"next-visit"},At={key:1,class:"operator"},Kt=ie({name:"fansH5"}),Pt=ie({...Kt,setup(jt){const y=d(""),C=d({name:"",phone:"",gender:"",status:""}),b=d([]),E=d(!1),R=d(!1),T=d(1),de=15,j=d(0),G=Je(()=>b.value.length{o?R.value=!0:E.value=!0;try{const e={page_no:T.value,page_size:de,...C.value};y.value&&(/^\d+$/.test(y.value)?e.phone=y.value:e.name=y.value);const f=await Oe(e);o?b.value=[...b.value,...f.lists||[]]:b.value=f.lists||[],j.value=f.count||0}catch(e){console.error(e)}finally{E.value=!1,R.value=!1}},V=()=>{T.value=1,H()},re=()=>{y.value="",C.value={name:"",phone:"",gender:"",status:""},V()},ue=()=>{R.value||(T.value++,H(!0))},k=d(!1),D=d("add"),N=d(),B=d(!1),m=d({id:0,name:"",phone:"",id_card:"",age:0,gender:1,status:1,remark:""}),me={name:[{required:!0,message:"请输入姓名",trigger:"blur"}],phone:[{required:!0,message:"请输入手机号",trigger:"blur"},{pattern:/^1[3-9]\d{9}$/,message:"手机号格式不正确",trigger:"blur"}],id_card:[{pattern:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,message:"身份证号格式不正确",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}]},ve=()=>{D.value="add",k.value=!0},pe=o=>{D.value="edit",m.value={id:o.id,name:o.name,phone:o.phone,id_card:o.id_card,age:o.age,gender:o.gender,status:o.status,remark:o.remark},k.value=!0},_e=()=>{var o;m.value={id:0,name:"",phone:"",id_card:"",age:0,gender:1,status:1,remark:""},(o=N.value)==null||o.resetFields()},ce=async()=>{var o;await((o=N.value)==null?void 0:o.validate()),B.value=!0;try{D.value==="add"?await Xe(m.value):await Qe(m.value),k.value=!1,V()}catch{}finally{B.value=!1}},fe=async o=>{await ne.confirm(`确定删除粉丝「${o.name}」吗?`);try{await lt({id:o.id}),V()}catch{}},F=d(!1),U=d(null),h=d([]),$=d(!1),J=d(0),w=d(1),ge={1:"",2:"success",3:"info",4:"warning",5:"danger"},ye=o=>{U.value=o,F.value=!0,w.value=1,h.value=[],Y()},Y=async()=>{$.value=!0;try{const o=await tt({fan_id:U.value.id,page_no:w.value,page_size:15});w.value===1?h.value=o.lists||[]:h.value=[...h.value,...o.lists||[]],J.value=o.count||0}catch(o){console.error(o)}finally{$.value=!1}},Ve=()=>{w.value++,Y()},x=d(!1),L=d("add"),I=d(),A=d(!1),v=d({id:0,fan_id:0,visit_type:1,visit_time:"",content:"",result:"",next_visit_time:""}),be={visit_type:[{required:!0,message:"请选择回访类型",trigger:"change"}],visit_time:[{required:!0,message:"请选择回访时间",trigger:"change"}],content:[{required:!0,message:"请输入回访内容",trigger:"blur"}]},ke=()=>{L.value="add",v.value={id:0,fan_id:U.value.id,visit_type:1,visit_time:st().format("YYYY-MM-DD HH:mm:ss"),content:"",result:"",next_visit_time:""},x.value=!0},he=o=>{L.value="edit",v.value={id:o.id,fan_id:o.fan_id,visit_type:o.visit_type,visit_time:o.visit_time_text||"",content:o.content||"",result:o.result||"",next_visit_time:o.next_visit_time_text||""},x.value=!0},xe=()=>{var o;v.value={id:0,fan_id:0,visit_type:1,visit_time:"",content:"",result:"",next_visit_time:""},(o=I.value)==null||o.resetFields()},Ce=async()=>{var o;await((o=I.value)==null?void 0:o.validate()),A.value=!0;try{L.value==="add"?await We(v.value):await Ze(v.value),x.value=!1,w.value=1,Y()}catch{}finally{A.value=!1}},we=async o=>{await ne.confirm("确定删除该回访记录吗?");try{await et({id:o}),w.value=1,Y()}catch{}};return H(),(o,e)=>{var le;const f=Fe,M=Ue,O=$e,_=Ye,X=Me,K=Pe,ze=qe,c=He,Ee=Ne,Q=Ie,W=Be,Re=Ae,Z=Te,P=Ke,z=je,ee=Ge,te=Le;return r(),u("div",ot,[n("div",nt,[n("div",it,[l(f,{modelValue:a(y),"onUpdate:modelValue":e[0]||(e[0]=t=>q(y)?y.value=t:null),placeholder:"搜索姓名 / 手机号",clearable:"","prefix-icon":"Search",onKeyup:De(V,["enter"]),onClear:V},null,8,["modelValue"])]),n("div",dt,[l(O,{modelValue:a(C).gender,"onUpdate:modelValue":e[1]||(e[1]=t=>a(C).gender=t),placeholder:"性别",clearable:"",size:"small",onChange:V},{default:s(()=>[l(M,{label:"男",value:1}),l(M,{label:"女",value:2})]),_:1},8,["modelValue"]),l(O,{modelValue:a(C).status,"onUpdate:modelValue":e[2]||(e[2]=t=>a(C).status=t),placeholder:"状态",clearable:"",size:"small",onChange:V},{default:s(()=>[l(M,{label:"启用",value:1}),l(M,{label:"禁用",value:0})]),_:1},8,["modelValue"]),l(_,{type:"primary",size:"small",onClick:V},{default:s(()=>[...e[20]||(e[20]=[i("查询",-1)])]),_:1}),l(_,{size:"small",onClick:re},{default:s(()=>[...e[21]||(e[21]=[i("重置",-1)])]),_:1})])]),ae((r(),u("div",rt,[a(b).length===0&&!a(E)?(r(),u("div",ut,[l(X,{description:"暂无粉丝数据"})])):g("",!0),(r(!0),u(se,null,oe(a(b),t=>(r(),u("div",{key:t.id,class:"h5-card"},[n("div",mt,[n("div",vt,[n("span",pt,p(t.name),1),l(K,{size:"small",type:t.gender===1?"":t.gender===2?"danger":"info",effect:"plain"},{default:s(()=>[i(p(t.gender_desc),1)]),_:2},1032,["type"]),t.age?(r(),u("span",_t,p(t.age)+"岁",1)):g("",!0)]),l(K,{size:"small",type:t.status==1?"success":"danger"},{default:s(()=>[i(p(t.status==1?"启用":"禁用"),1)]),_:2},1032,["type"])]),n("div",ct,[n("div",ft,[e[22]||(e[22]=n("span",{class:"label"},"手机",-1)),n("span",gt,p(t.phone||"-"),1)]),n("div",yt,[e[23]||(e[23]=n("span",{class:"label"},"身份证",-1)),n("span",Vt,p(t.id_card||"-"),1)]),t.remark?(r(),u("div",bt,[e[24]||(e[24]=n("span",{class:"label"},"备注",-1)),n("span",kt,p(t.remark),1)])):g("",!0)]),n("div",ht,[n("div",xt,[n("div",Ct,[e[25]||(e[25]=i(" 回访 ",-1)),n("span",wt,p(t.visit_count||0),1),e[26]||(e[26]=i(" 次 ",-1))]),t.creator_name?(r(),u("div",zt," 登记人:"+p(t.creator_name),1)):g("",!0)]),n("div",Et,[l(_,{type:"primary",text:"",size:"small",onClick:S=>pe(t)},{default:s(()=>[...e[27]||(e[27]=[i("编辑",-1)])]),_:1},8,["onClick"]),l(_,{type:"success",text:"",size:"small",onClick:S=>ye(t)},{default:s(()=>[...e[28]||(e[28]=[i("回访",-1)])]),_:1},8,["onClick"]),l(_,{type:"danger",text:"",size:"small",onClick:S=>fe(t)},{default:s(()=>[...e[29]||(e[29]=[i("删除",-1)])]),_:1},8,["onClick"])])])]))),128)),a(G)?(r(),u("div",{key:1,class:"h5-load-more",onClick:ue},[a(R)?(r(),u("span",Dt,"加载中...")):(r(),u("span",Rt,"加载更多"))])):g("",!0),!a(G)&&a(b).length>0?(r(),u("div",Ft,"没有更多了")):g("",!0)])),[[te,a(E)]]),n("div",{class:"h5-fab",onClick:ve},[l(ze,{size:24},{default:s(()=>[l(a(Se))]),_:1})]),l(P,{modelValue:a(k),"onUpdate:modelValue":e[11]||(e[11]=t=>q(k)?k.value=t:null),title:a(D)==="add"?"新增粉丝":"编辑粉丝",direction:"btt",size:"85%","close-on-click-modal":!1,onClosed:_e},{footer:s(()=>[l(_,{class:"flex-1",onClick:e[10]||(e[10]=t=>k.value=!1)},{default:s(()=>[...e[32]||(e[32]=[i("取消",-1)])]),_:1}),l(_,{class:"flex-1",type:"primary",loading:a(B),onClick:ce},{default:s(()=>[...e[33]||(e[33]=[i("确定",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(Z,{ref_key:"fanFormRef",ref:N,model:a(m),rules:me,"label-position":"top",class:"h5-form"},{default:s(()=>[l(c,{label:"姓名",prop:"name"},{default:s(()=>[l(f,{modelValue:a(m).name,"onUpdate:modelValue":e[3]||(e[3]=t=>a(m).name=t),placeholder:"请输入姓名",maxlength:"50"},null,8,["modelValue"])]),_:1}),l(c,{label:"手机号",prop:"phone"},{default:s(()=>[l(f,{modelValue:a(m).phone,"onUpdate:modelValue":e[4]||(e[4]=t=>a(m).phone=t),placeholder:"请输入手机号",maxlength:"11"},null,8,["modelValue"])]),_:1}),l(c,{label:"身份证号",prop:"id_card"},{default:s(()=>[l(f,{modelValue:a(m).id_card,"onUpdate:modelValue":e[5]||(e[5]=t=>a(m).id_card=t),placeholder:"请输入身份证号码",maxlength:"18"},null,8,["modelValue"])]),_:1}),n("div",Ut,[l(c,{label:"年龄",prop:"age",class:"flex-1"},{default:s(()=>[l(Ee,{modelValue:a(m).age,"onUpdate:modelValue":e[6]||(e[6]=t=>a(m).age=t),min:0,max:150,"controls-position":"right",class:"!w-full"},null,8,["modelValue"])]),_:1}),l(c,{label:"性别",prop:"gender",class:"flex-1"},{default:s(()=>[l(W,{modelValue:a(m).gender,"onUpdate:modelValue":e[7]||(e[7]=t=>a(m).gender=t)},{default:s(()=>[l(Q,{label:1},{default:s(()=>[...e[30]||(e[30]=[i("男",-1)])]),_:1}),l(Q,{label:2},{default:s(()=>[...e[31]||(e[31]=[i("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),l(c,{label:"状态"},{default:s(()=>[l(Re,{modelValue:a(m).status,"onUpdate:modelValue":e[8]||(e[8]=t=>a(m).status=t),"active-value":1,"inactive-value":0,"active-text":"启用","inactive-text":"禁用"},null,8,["modelValue"])]),_:1}),l(c,{label:"备注"},{default:s(()=>[l(f,{modelValue:a(m).remark,"onUpdate:modelValue":e[9]||(e[9]=t=>a(m).remark=t),type:"textarea",rows:3,placeholder:"请输入备注",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(P,{modelValue:a(F),"onUpdate:modelValue":e[12]||(e[12]=t=>q(F)?F.value=t:null),title:`回访记录 - ${((le=a(U))==null?void 0:le.name)||""}`,direction:"rtl",size:"100%","close-on-click-modal":!1},{default:s(()=>[n("div",$t,[l(_,{type:"primary",size:"small",onClick:ke},{default:s(()=>[...e[34]||(e[34]=[i("+ 新增回访",-1)])]),_:1})]),ae((r(),u("div",Yt,[a(h).length===0&&!a($)?(r(),u("div",Lt,[l(X,{description:"暂无回访记录","image-size":80})])):g("",!0),(r(!0),u(se,null,oe(a(h),t=>(r(),u("div",{key:t.id,class:"h5-visit-card"},[n("div",Mt,[n("div",St,[l(K,{size:"small",type:ge[t.visit_type]},{default:s(()=>[i(p(t.visit_type_desc),1)]),_:2},1032,["type"]),n("span",qt,p(t.visit_time_text),1)]),n("div",Tt,[l(_,{type:"primary",text:"",size:"small",onClick:S=>he(t)},{default:s(()=>[...e[35]||(e[35]=[i("编辑",-1)])]),_:1},8,["onClick"]),l(_,{type:"danger",text:"",size:"small",onClick:S=>we(t.id)},{default:s(()=>[...e[36]||(e[36]=[i("删除",-1)])]),_:1},8,["onClick"])])]),n("div",Ht,p(t.content),1),t.result?(r(),u("div",Nt,[e[37]||(e[37]=n("span",{class:"label"},"结果:",-1)),i(p(t.result),1)])):g("",!0),n("div",Bt,[t.next_visit_time_text?(r(),u("span",It,"下次回访:"+p(t.next_visit_time_text),1)):g("",!0),t.operator_name?(r(),u("span",At,p(t.operator_name),1)):g("",!0)])]))),128)),a(J)>a(h).length?(r(),u("div",{key:1,class:"h5-load-more",onClick:Ve}," 加载更多 ")):g("",!0)])),[[te,a($)]])]),_:1},8,["modelValue","title"]),l(P,{modelValue:a(x),"onUpdate:modelValue":e[19]||(e[19]=t=>q(x)?x.value=t:null),title:a(L)==="add"?"新增回访记录":"编辑回访记录",direction:"btt",size:"80%","close-on-click-modal":!1,onClosed:xe},{footer:s(()=>[l(_,{class:"flex-1",onClick:e[18]||(e[18]=t=>x.value=!1)},{default:s(()=>[...e[43]||(e[43]=[i("取消",-1)])]),_:1}),l(_,{class:"flex-1",type:"primary",loading:a(A),onClick:Ce},{default:s(()=>[...e[44]||(e[44]=[i("确定",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(Z,{ref_key:"visitFormRef",ref:I,model:a(v),rules:be,"label-position":"top",class:"h5-form"},{default:s(()=>[l(c,{label:"回访类型",prop:"visit_type"},{default:s(()=>[l(W,{modelValue:a(v).visit_type,"onUpdate:modelValue":e[13]||(e[13]=t=>a(v).visit_type=t),class:"h5-radio-group"},{default:s(()=>[l(z,{label:1},{default:s(()=>[...e[38]||(e[38]=[i("电话",-1)])]),_:1}),l(z,{label:2},{default:s(()=>[...e[39]||(e[39]=[i("微信",-1)])]),_:1}),l(z,{label:3},{default:s(()=>[...e[40]||(e[40]=[i("短信",-1)])]),_:1}),l(z,{label:4},{default:s(()=>[...e[41]||(e[41]=[i("上门",-1)])]),_:1}),l(z,{label:5},{default:s(()=>[...e[42]||(e[42]=[i("其他",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(c,{label:"回访时间",prop:"visit_time"},{default:s(()=>[l(ee,{modelValue:a(v).visit_time,"onUpdate:modelValue":e[14]||(e[14]=t=>a(v).visit_time=t),type:"datetime",placeholder:"请选择回访时间","value-format":"YYYY-MM-DD HH:mm:ss",class:"!w-full"},null,8,["modelValue"])]),_:1}),l(c,{label:"回访内容",prop:"content"},{default:s(()=>[l(f,{modelValue:a(v).content,"onUpdate:modelValue":e[15]||(e[15]=t=>a(v).content=t),type:"textarea",rows:4,placeholder:"请输入回访内容"},null,8,["modelValue"])]),_:1}),l(c,{label:"回访结果"},{default:s(()=>[l(f,{modelValue:a(v).result,"onUpdate:modelValue":e[16]||(e[16]=t=>a(v).result=t),type:"textarea",rows:3,placeholder:"请输入回访结果"},null,8,["modelValue"])]),_:1}),l(c,{label:"下次回访时间"},{default:s(()=>[l(ee,{modelValue:a(v).next_visit_time,"onUpdate:modelValue":e[17]||(e[17]=t=>a(v).next_visit_time=t),type:"datetime",placeholder:"请选择下次回访时间","value-format":"YYYY-MM-DD HH:mm:ss",class:"!w-full"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Qt=at(Pt,[["__scopeId","data-v-004381f4"]]);export{Qt as default}; +import{o as ie,q as r,r as u,s as n,v as l,bc as De,C as q,u as a,aA as Fe,D as s,bi as Ue,bh as $e,L as i,K as Ye,ac as ae,bn as Le,bC as Me,P as g,F as se,G as oe,cx as Se,w as qe,bd as Te,bb as He,J as Ne,bf as Be,bq as Ie,I as Ae,B as Ke,bm as Pe,T as p,be as je,az as Ge,M as d,p as Je}from"./.pnpm-CyuAWpdG.js";import{f as Oe,a as Xe,b as Qe,c as We,d as Ze,e as et,g as tt,h as lt}from"./fans-DYvCYhBT.js";import{j as ne,_ as at}from"./index-Bkarz3gO.js";import{d as st}from"./dayjs-B2bPhvDy.js";const ot={class:"fans-h5"},nt={class:"h5-header"},it={class:"h5-search"},dt={class:"h5-filter-row"},rt={class:"h5-list"},ut={key:0,class:"h5-empty"},mt={class:"h5-card-header"},vt={class:"h5-card-name"},pt={class:"name"},_t={key:0,class:"age"},ct={class:"h5-card-body"},ft={class:"info-line"},gt={class:"value"},yt={class:"info-line"},Vt={class:"value"},bt={key:0,class:"info-line"},kt={class:"value remark"},ht={class:"h5-card-footer"},xt={class:"footer-left"},Ct={class:"visit-info"},wt={class:"visit-count"},zt={key:0,class:"creator-info"},Et={class:"actions"},Rt={key:0},Dt={key:1},Ft={key:2,class:"h5-no-more"},Ut={class:"h5-form-row"},$t={class:"h5-visit-header"},Yt={class:"h5-visit-list"},Lt={key:0,class:"h5-empty"},Mt={class:"visit-card-header"},St={class:"visit-card-tags"},qt={class:"visit-time"},Tt={class:"visit-card-actions"},Ht={class:"visit-card-content"},Nt={key:0,class:"visit-card-result"},Bt={class:"visit-card-meta"},It={key:0,class:"next-visit"},At={key:1,class:"operator"},Kt=ie({name:"fansH5"}),Pt=ie({...Kt,setup(jt){const y=d(""),C=d({name:"",phone:"",gender:"",status:""}),b=d([]),E=d(!1),R=d(!1),T=d(1),de=15,j=d(0),G=Je(()=>b.value.length{o?R.value=!0:E.value=!0;try{const e={page_no:T.value,page_size:de,...C.value};y.value&&(/^\d+$/.test(y.value)?e.phone=y.value:e.name=y.value);const f=await Oe(e);o?b.value=[...b.value,...f.lists||[]]:b.value=f.lists||[],j.value=f.count||0}catch(e){console.error(e)}finally{E.value=!1,R.value=!1}},V=()=>{T.value=1,H()},re=()=>{y.value="",C.value={name:"",phone:"",gender:"",status:""},V()},ue=()=>{R.value||(T.value++,H(!0))},k=d(!1),D=d("add"),N=d(),B=d(!1),m=d({id:0,name:"",phone:"",id_card:"",age:0,gender:1,status:1,remark:""}),me={name:[{required:!0,message:"请输入姓名",trigger:"blur"}],phone:[{required:!0,message:"请输入手机号",trigger:"blur"},{pattern:/^1[3-9]\d{9}$/,message:"手机号格式不正确",trigger:"blur"}],id_card:[{pattern:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,message:"身份证号格式不正确",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}]},ve=()=>{D.value="add",k.value=!0},pe=o=>{D.value="edit",m.value={id:o.id,name:o.name,phone:o.phone,id_card:o.id_card,age:o.age,gender:o.gender,status:o.status,remark:o.remark},k.value=!0},_e=()=>{var o;m.value={id:0,name:"",phone:"",id_card:"",age:0,gender:1,status:1,remark:""},(o=N.value)==null||o.resetFields()},ce=async()=>{var o;await((o=N.value)==null?void 0:o.validate()),B.value=!0;try{D.value==="add"?await Xe(m.value):await Qe(m.value),k.value=!1,V()}catch{}finally{B.value=!1}},fe=async o=>{await ne.confirm(`确定删除粉丝「${o.name}」吗?`);try{await lt({id:o.id}),V()}catch{}},F=d(!1),U=d(null),h=d([]),$=d(!1),J=d(0),w=d(1),ge={1:"",2:"success",3:"info",4:"warning",5:"danger"},ye=o=>{U.value=o,F.value=!0,w.value=1,h.value=[],Y()},Y=async()=>{$.value=!0;try{const o=await tt({fan_id:U.value.id,page_no:w.value,page_size:15});w.value===1?h.value=o.lists||[]:h.value=[...h.value,...o.lists||[]],J.value=o.count||0}catch(o){console.error(o)}finally{$.value=!1}},Ve=()=>{w.value++,Y()},x=d(!1),L=d("add"),I=d(),A=d(!1),v=d({id:0,fan_id:0,visit_type:1,visit_time:"",content:"",result:"",next_visit_time:""}),be={visit_type:[{required:!0,message:"请选择回访类型",trigger:"change"}],visit_time:[{required:!0,message:"请选择回访时间",trigger:"change"}],content:[{required:!0,message:"请输入回访内容",trigger:"blur"}]},ke=()=>{L.value="add",v.value={id:0,fan_id:U.value.id,visit_type:1,visit_time:st().format("YYYY-MM-DD HH:mm:ss"),content:"",result:"",next_visit_time:""},x.value=!0},he=o=>{L.value="edit",v.value={id:o.id,fan_id:o.fan_id,visit_type:o.visit_type,visit_time:o.visit_time_text||"",content:o.content||"",result:o.result||"",next_visit_time:o.next_visit_time_text||""},x.value=!0},xe=()=>{var o;v.value={id:0,fan_id:0,visit_type:1,visit_time:"",content:"",result:"",next_visit_time:""},(o=I.value)==null||o.resetFields()},Ce=async()=>{var o;await((o=I.value)==null?void 0:o.validate()),A.value=!0;try{L.value==="add"?await We(v.value):await Ze(v.value),x.value=!1,w.value=1,Y()}catch{}finally{A.value=!1}},we=async o=>{await ne.confirm("确定删除该回访记录吗?");try{await et({id:o}),w.value=1,Y()}catch{}};return H(),(o,e)=>{var le;const f=Fe,M=Ue,O=$e,_=Ye,X=Me,K=Pe,ze=qe,c=He,Ee=Ne,Q=Ie,W=Be,Re=Ae,Z=Te,P=Ke,z=je,ee=Ge,te=Le;return r(),u("div",ot,[n("div",nt,[n("div",it,[l(f,{modelValue:a(y),"onUpdate:modelValue":e[0]||(e[0]=t=>q(y)?y.value=t:null),placeholder:"搜索姓名 / 手机号",clearable:"","prefix-icon":"Search",onKeyup:De(V,["enter"]),onClear:V},null,8,["modelValue"])]),n("div",dt,[l(O,{modelValue:a(C).gender,"onUpdate:modelValue":e[1]||(e[1]=t=>a(C).gender=t),placeholder:"性别",clearable:"",size:"small",onChange:V},{default:s(()=>[l(M,{label:"男",value:1}),l(M,{label:"女",value:2})]),_:1},8,["modelValue"]),l(O,{modelValue:a(C).status,"onUpdate:modelValue":e[2]||(e[2]=t=>a(C).status=t),placeholder:"状态",clearable:"",size:"small",onChange:V},{default:s(()=>[l(M,{label:"启用",value:1}),l(M,{label:"禁用",value:0})]),_:1},8,["modelValue"]),l(_,{type:"primary",size:"small",onClick:V},{default:s(()=>[...e[20]||(e[20]=[i("查询",-1)])]),_:1}),l(_,{size:"small",onClick:re},{default:s(()=>[...e[21]||(e[21]=[i("重置",-1)])]),_:1})])]),ae((r(),u("div",rt,[a(b).length===0&&!a(E)?(r(),u("div",ut,[l(X,{description:"暂无粉丝数据"})])):g("",!0),(r(!0),u(se,null,oe(a(b),t=>(r(),u("div",{key:t.id,class:"h5-card"},[n("div",mt,[n("div",vt,[n("span",pt,p(t.name),1),l(K,{size:"small",type:t.gender===1?"":t.gender===2?"danger":"info",effect:"plain"},{default:s(()=>[i(p(t.gender_desc),1)]),_:2},1032,["type"]),t.age?(r(),u("span",_t,p(t.age)+"岁",1)):g("",!0)]),l(K,{size:"small",type:t.status==1?"success":"danger"},{default:s(()=>[i(p(t.status==1?"启用":"禁用"),1)]),_:2},1032,["type"])]),n("div",ct,[n("div",ft,[e[22]||(e[22]=n("span",{class:"label"},"手机",-1)),n("span",gt,p(t.phone||"-"),1)]),n("div",yt,[e[23]||(e[23]=n("span",{class:"label"},"身份证",-1)),n("span",Vt,p(t.id_card||"-"),1)]),t.remark?(r(),u("div",bt,[e[24]||(e[24]=n("span",{class:"label"},"备注",-1)),n("span",kt,p(t.remark),1)])):g("",!0)]),n("div",ht,[n("div",xt,[n("div",Ct,[e[25]||(e[25]=i(" 回访 ",-1)),n("span",wt,p(t.visit_count||0),1),e[26]||(e[26]=i(" 次 ",-1))]),t.creator_name?(r(),u("div",zt," 登记人:"+p(t.creator_name),1)):g("",!0)]),n("div",Et,[l(_,{type:"primary",text:"",size:"small",onClick:S=>pe(t)},{default:s(()=>[...e[27]||(e[27]=[i("编辑",-1)])]),_:1},8,["onClick"]),l(_,{type:"success",text:"",size:"small",onClick:S=>ye(t)},{default:s(()=>[...e[28]||(e[28]=[i("回访",-1)])]),_:1},8,["onClick"]),l(_,{type:"danger",text:"",size:"small",onClick:S=>fe(t)},{default:s(()=>[...e[29]||(e[29]=[i("删除",-1)])]),_:1},8,["onClick"])])])]))),128)),a(G)?(r(),u("div",{key:1,class:"h5-load-more",onClick:ue},[a(R)?(r(),u("span",Dt,"加载中...")):(r(),u("span",Rt,"加载更多"))])):g("",!0),!a(G)&&a(b).length>0?(r(),u("div",Ft,"没有更多了")):g("",!0)])),[[te,a(E)]]),n("div",{class:"h5-fab",onClick:ve},[l(ze,{size:24},{default:s(()=>[l(a(Se))]),_:1})]),l(P,{modelValue:a(k),"onUpdate:modelValue":e[11]||(e[11]=t=>q(k)?k.value=t:null),title:a(D)==="add"?"新增粉丝":"编辑粉丝",direction:"btt",size:"85%","close-on-click-modal":!1,onClosed:_e},{footer:s(()=>[l(_,{class:"flex-1",onClick:e[10]||(e[10]=t=>k.value=!1)},{default:s(()=>[...e[32]||(e[32]=[i("取消",-1)])]),_:1}),l(_,{class:"flex-1",type:"primary",loading:a(B),onClick:ce},{default:s(()=>[...e[33]||(e[33]=[i("确定",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(Z,{ref_key:"fanFormRef",ref:N,model:a(m),rules:me,"label-position":"top",class:"h5-form"},{default:s(()=>[l(c,{label:"姓名",prop:"name"},{default:s(()=>[l(f,{modelValue:a(m).name,"onUpdate:modelValue":e[3]||(e[3]=t=>a(m).name=t),placeholder:"请输入姓名",maxlength:"50"},null,8,["modelValue"])]),_:1}),l(c,{label:"手机号",prop:"phone"},{default:s(()=>[l(f,{modelValue:a(m).phone,"onUpdate:modelValue":e[4]||(e[4]=t=>a(m).phone=t),placeholder:"请输入手机号",maxlength:"11"},null,8,["modelValue"])]),_:1}),l(c,{label:"身份证号",prop:"id_card"},{default:s(()=>[l(f,{modelValue:a(m).id_card,"onUpdate:modelValue":e[5]||(e[5]=t=>a(m).id_card=t),placeholder:"请输入身份证号码",maxlength:"18"},null,8,["modelValue"])]),_:1}),n("div",Ut,[l(c,{label:"年龄",prop:"age",class:"flex-1"},{default:s(()=>[l(Ee,{modelValue:a(m).age,"onUpdate:modelValue":e[6]||(e[6]=t=>a(m).age=t),min:0,max:150,"controls-position":"right",class:"!w-full"},null,8,["modelValue"])]),_:1}),l(c,{label:"性别",prop:"gender",class:"flex-1"},{default:s(()=>[l(W,{modelValue:a(m).gender,"onUpdate:modelValue":e[7]||(e[7]=t=>a(m).gender=t)},{default:s(()=>[l(Q,{label:1},{default:s(()=>[...e[30]||(e[30]=[i("男",-1)])]),_:1}),l(Q,{label:2},{default:s(()=>[...e[31]||(e[31]=[i("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),l(c,{label:"状态"},{default:s(()=>[l(Re,{modelValue:a(m).status,"onUpdate:modelValue":e[8]||(e[8]=t=>a(m).status=t),"active-value":1,"inactive-value":0,"active-text":"启用","inactive-text":"禁用"},null,8,["modelValue"])]),_:1}),l(c,{label:"备注"},{default:s(()=>[l(f,{modelValue:a(m).remark,"onUpdate:modelValue":e[9]||(e[9]=t=>a(m).remark=t),type:"textarea",rows:3,placeholder:"请输入备注",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(P,{modelValue:a(F),"onUpdate:modelValue":e[12]||(e[12]=t=>q(F)?F.value=t:null),title:`回访记录 - ${((le=a(U))==null?void 0:le.name)||""}`,direction:"rtl",size:"100%","close-on-click-modal":!1},{default:s(()=>[n("div",$t,[l(_,{type:"primary",size:"small",onClick:ke},{default:s(()=>[...e[34]||(e[34]=[i("+ 新增回访",-1)])]),_:1})]),ae((r(),u("div",Yt,[a(h).length===0&&!a($)?(r(),u("div",Lt,[l(X,{description:"暂无回访记录","image-size":80})])):g("",!0),(r(!0),u(se,null,oe(a(h),t=>(r(),u("div",{key:t.id,class:"h5-visit-card"},[n("div",Mt,[n("div",St,[l(K,{size:"small",type:ge[t.visit_type]},{default:s(()=>[i(p(t.visit_type_desc),1)]),_:2},1032,["type"]),n("span",qt,p(t.visit_time_text),1)]),n("div",Tt,[l(_,{type:"primary",text:"",size:"small",onClick:S=>he(t)},{default:s(()=>[...e[35]||(e[35]=[i("编辑",-1)])]),_:1},8,["onClick"]),l(_,{type:"danger",text:"",size:"small",onClick:S=>we(t.id)},{default:s(()=>[...e[36]||(e[36]=[i("删除",-1)])]),_:1},8,["onClick"])])]),n("div",Ht,p(t.content),1),t.result?(r(),u("div",Nt,[e[37]||(e[37]=n("span",{class:"label"},"结果:",-1)),i(p(t.result),1)])):g("",!0),n("div",Bt,[t.next_visit_time_text?(r(),u("span",It,"下次回访:"+p(t.next_visit_time_text),1)):g("",!0),t.operator_name?(r(),u("span",At,p(t.operator_name),1)):g("",!0)])]))),128)),a(J)>a(h).length?(r(),u("div",{key:1,class:"h5-load-more",onClick:Ve}," 加载更多 ")):g("",!0)])),[[te,a($)]])]),_:1},8,["modelValue","title"]),l(P,{modelValue:a(x),"onUpdate:modelValue":e[19]||(e[19]=t=>q(x)?x.value=t:null),title:a(L)==="add"?"新增回访记录":"编辑回访记录",direction:"btt",size:"80%","close-on-click-modal":!1,onClosed:xe},{footer:s(()=>[l(_,{class:"flex-1",onClick:e[18]||(e[18]=t=>x.value=!1)},{default:s(()=>[...e[43]||(e[43]=[i("取消",-1)])]),_:1}),l(_,{class:"flex-1",type:"primary",loading:a(A),onClick:Ce},{default:s(()=>[...e[44]||(e[44]=[i("确定",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(Z,{ref_key:"visitFormRef",ref:I,model:a(v),rules:be,"label-position":"top",class:"h5-form"},{default:s(()=>[l(c,{label:"回访类型",prop:"visit_type"},{default:s(()=>[l(W,{modelValue:a(v).visit_type,"onUpdate:modelValue":e[13]||(e[13]=t=>a(v).visit_type=t),class:"h5-radio-group"},{default:s(()=>[l(z,{label:1},{default:s(()=>[...e[38]||(e[38]=[i("电话",-1)])]),_:1}),l(z,{label:2},{default:s(()=>[...e[39]||(e[39]=[i("微信",-1)])]),_:1}),l(z,{label:3},{default:s(()=>[...e[40]||(e[40]=[i("短信",-1)])]),_:1}),l(z,{label:4},{default:s(()=>[...e[41]||(e[41]=[i("上门",-1)])]),_:1}),l(z,{label:5},{default:s(()=>[...e[42]||(e[42]=[i("其他",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(c,{label:"回访时间",prop:"visit_time"},{default:s(()=>[l(ee,{modelValue:a(v).visit_time,"onUpdate:modelValue":e[14]||(e[14]=t=>a(v).visit_time=t),type:"datetime",placeholder:"请选择回访时间","value-format":"YYYY-MM-DD HH:mm:ss",class:"!w-full"},null,8,["modelValue"])]),_:1}),l(c,{label:"回访内容",prop:"content"},{default:s(()=>[l(f,{modelValue:a(v).content,"onUpdate:modelValue":e[15]||(e[15]=t=>a(v).content=t),type:"textarea",rows:4,placeholder:"请输入回访内容"},null,8,["modelValue"])]),_:1}),l(c,{label:"回访结果"},{default:s(()=>[l(f,{modelValue:a(v).result,"onUpdate:modelValue":e[16]||(e[16]=t=>a(v).result=t),type:"textarea",rows:3,placeholder:"请输入回访结果"},null,8,["modelValue"])]),_:1}),l(c,{label:"下次回访时间"},{default:s(()=>[l(ee,{modelValue:a(v).next_visit_time,"onUpdate:modelValue":e[17]||(e[17]=t=>a(v).next_visit_time=t),type:"datetime",placeholder:"请选择下次回访时间","value-format":"YYYY-MM-DD HH:mm:ss",class:"!w-full"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Qt=at(Pt,[["__scopeId","data-v-004381f4"]]);export{Qt as default}; diff --git a/server/public/admin/assets/icon-W3DsMNzy.js b/server/public/admin/assets/icon-B_56fy5q.js similarity index 94% rename from server/public/admin/assets/icon-W3DsMNzy.js rename to server/public/admin/assets/icon-B_56fy5q.js index a4ae0df01..a4851e3ca 100644 --- a/server/public/admin/assets/icon-W3DsMNzy.js +++ b/server/public/admin/assets/icon-B_56fy5q.js @@ -1 +1 @@ -import{o as z,bp as x,q as n,r as t,v as e,D as l,s as o,bj as b,u as i,F as u,G as f,ac as v,O as h,K as w,aC as y}from"./.pnpm-CyuAWpdG.js";import{_ as g}from"./picker.vue_vue_type_script_setup_true_lang-r5jdEAJg.js";import{c as s,z as k,B}from"./index-Dxvz9lb1.js";const V={class:"flex items-center"},C={class:"flex items-center"},E={class:"flex items-center"},N={class:"flex items-center"},D={class:"flex flex-wrap"},F={class:"flex items-center"},S={class:"flex flex-wrap"},q=z({__name:"icon",setup(I){const r=y({value:""});return(L,m)=>{const c=b,p=g,d=w,_=x("copy");return n(),t("div",null,[e(c,{header:"element-plus图标",shadow:"never",class:"!border-none"},{default:l(()=>[o("div",V,[e(s,{class:"m-4",size:24,name:"el-icon-Search"}),e(s,{class:"m-4",size:24,name:"el-icon-Plus"}),e(s,{class:"m-4",size:24,name:"el-icon-FullScreen"}),e(s,{class:"m-4",size:24,name:"el-icon-Setting"}),e(s,{class:"m-4",size:24,name:"el-icon-Warning"})])]),_:1}),e(c,{header:"本地图标",shadow:"never",class:"!border-none mt-4"},{default:l(()=>[o("div",C,[e(s,{class:"m-4",size:24,name:"local-icon-baoxian"}),e(s,{class:"m-4",size:24,name:"local-icon-youhui"}),e(s,{class:"m-4",size:24,name:"local-icon-daiyunying"}),e(s,{class:"m-4",size:24,name:"local-icon-diancanshezhi"}),e(s,{class:"m-4",size:24,name:"local-icon-dianzifapiao"})])]),_:1}),e(c,{header:"图标选择器",shadow:"never",class:"!border-none mt-4"},{default:l(()=>[o("div",E,[e(p,{modelValue:i(r).value,"onUpdate:modelValue":m[0]||(m[0]=a=>i(r).value=a)},null,8,["modelValue"])])]),_:1}),e(c,{header:"element-plus图标库大全(点击复制图标名称)",shadow:"never",class:"!border-none mt-4"},{default:l(()=>[o("div",N,[o("div",D,[(n(!0),t(u,null,f(i(k)(),a=>(n(),t("div",{key:a,class:"m-1"},[v((n(),h(d,null,{default:l(()=>[e(s,{name:a,size:20},null,8,["name"])]),_:2},1024)),[[_,a]])]))),128))])])]),_:1}),e(c,{header:"本地图标库大全(点击复制图标名称)",shadow:"never",class:"!border-none mt-4"},{default:l(()=>[o("div",F,[o("div",S,[(n(!0),t(u,null,f(i(B)(),a=>(n(),t("div",{key:a,class:"m-1"},[v((n(),h(d,null,{default:l(()=>[e(s,{name:a,size:20},null,8,["name"])]),_:2},1024)),[[_,a]])]))),128))])])]),_:1})])}}});export{q as default}; +import{o as z,bp as x,q as n,r as t,v as e,D as l,s as o,bj as b,u as i,F as u,G as f,ac as v,O as h,K as w,aC as y}from"./.pnpm-CyuAWpdG.js";import{_ as g}from"./picker.vue_vue_type_script_setup_true_lang-CMq9B6V2.js";import{c as s,z as k,B}from"./index-Bkarz3gO.js";const V={class:"flex items-center"},C={class:"flex items-center"},E={class:"flex items-center"},N={class:"flex items-center"},D={class:"flex flex-wrap"},F={class:"flex items-center"},S={class:"flex flex-wrap"},q=z({__name:"icon",setup(I){const r=y({value:""});return(L,m)=>{const c=b,p=g,d=w,_=x("copy");return n(),t("div",null,[e(c,{header:"element-plus图标",shadow:"never",class:"!border-none"},{default:l(()=>[o("div",V,[e(s,{class:"m-4",size:24,name:"el-icon-Search"}),e(s,{class:"m-4",size:24,name:"el-icon-Plus"}),e(s,{class:"m-4",size:24,name:"el-icon-FullScreen"}),e(s,{class:"m-4",size:24,name:"el-icon-Setting"}),e(s,{class:"m-4",size:24,name:"el-icon-Warning"})])]),_:1}),e(c,{header:"本地图标",shadow:"never",class:"!border-none mt-4"},{default:l(()=>[o("div",C,[e(s,{class:"m-4",size:24,name:"local-icon-baoxian"}),e(s,{class:"m-4",size:24,name:"local-icon-youhui"}),e(s,{class:"m-4",size:24,name:"local-icon-daiyunying"}),e(s,{class:"m-4",size:24,name:"local-icon-diancanshezhi"}),e(s,{class:"m-4",size:24,name:"local-icon-dianzifapiao"})])]),_:1}),e(c,{header:"图标选择器",shadow:"never",class:"!border-none mt-4"},{default:l(()=>[o("div",E,[e(p,{modelValue:i(r).value,"onUpdate:modelValue":m[0]||(m[0]=a=>i(r).value=a)},null,8,["modelValue"])])]),_:1}),e(c,{header:"element-plus图标库大全(点击复制图标名称)",shadow:"never",class:"!border-none mt-4"},{default:l(()=>[o("div",N,[o("div",D,[(n(!0),t(u,null,f(i(k)(),a=>(n(),t("div",{key:a,class:"m-1"},[v((n(),h(d,null,{default:l(()=>[e(s,{name:a,size:20},null,8,["name"])]),_:2},1024)),[[_,a]])]))),128))])])]),_:1}),e(c,{header:"本地图标库大全(点击复制图标名称)",shadow:"never",class:"!border-none mt-4"},{default:l(()=>[o("div",F,[o("div",S,[(n(!0),t(u,null,f(i(B)(),a=>(n(),t("div",{key:a,class:"m-1"},[v((n(),h(d,null,{default:l(()=>[e(s,{name:a,size:20},null,8,["name"])]),_:2},1024)),[[_,a]])]))),128))])])]),_:1})])}}});export{q as default}; diff --git a/server/public/admin/assets/index-BhYtdemN.js b/server/public/admin/assets/index-4vePLNn_.js similarity index 97% rename from server/public/admin/assets/index-BhYtdemN.js rename to server/public/admin/assets/index-4vePLNn_.js index bc0b9501e..fd8da0bb1 100644 --- a/server/public/admin/assets/index-BhYtdemN.js +++ b/server/public/admin/assets/index-4vePLNn_.js @@ -1 +1 @@ -import{o as K,W as he,ap as I,bp as we,q as s,r as v,v as o,D as n,bd as Ce,u as l,bb as Ee,bf as Ve,be as xe,L as d,O as u,az as je,C as A,P as R,bL as Se,K as We,bj as De,s as c,F as U,G as z,T as g,ae as Oe,ac as w,bk as Re,bl as Te,a1 as Fe,bn as Ye,a8 as $e,M as T,aC as q,p as C,E as Me,n as G}from"./.pnpm-CyuAWpdG.js";import{_ as Ne}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as Le,l as Pe,j as Be,_ as Ie}from"./index-Dxvz9lb1.js";import{d as Ae,e as Ue}from"./self_input_stats-CIFG1oqD.js";import{d as ze}from"./department-DToZNvdH.js";import{u as qe}from"./usePaging-CghUEVfD.js";import{_ as Ge}from"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-NXWg0oJL.js";import{_ as Ke}from"./yeji-edit.vue_vue_type_script_setup_true_lang-9szyzbBz.js";import{u as Qe}from"./useMediaSourceOptions-CerfJKnV.js";import"./index-BnfLT5cB.js";const He={class:"self-input-stats-page"},Je={class:"stats-kpi-grid"},Xe={class:"stats-kpi-label"},Ze={class:"card-header"},et={class:"card-header-main"},tt={class:"card-hint"},at={class:"card-header-actions"},nt={class:"dept-cell"},ot={key:1},lt={key:2,class:"text-gray-400"},st={class:"flex justify-end mt-4"},it=K({name:"selfInputStats"}),rt=K({...it,setup(dt){const Q=he(),E=$e(),V=T(!1),_=T([]),j=T([]),{mediaSourceOptions:F,mediaSourceLoading:Y,loadMediaSourceOptions:H,refreshMediaSourceOptions:S}=Qe(),J={value:"id",label:"name",children:"children"},f=q({date_range:[],summary:{},can_view_finance:!1}),$=new Set(["account_cost","cash_cost","roi"]),M=C(()=>!!f.can_view_finance),i=q({media_source:"",dept_id:void 0,time_type:"today",start_date:"",end_date:""}),W=C(()=>Pe("stats.personal_account_cost/lists")||""),X=()=>{W.value&&Q.push(W.value)},Z=async t=>{i.time_type==="custom"&&(t.start_date=_.value[0]||"",t.end_date=_.value[1]||"");const e=await Ae(t);return Object.assign(f,(e==null?void 0:e.extend)||{}),e},ee=async()=>{try{const t=await ze({apply_data_scope:1});Array.isArray(t)&&(j.value=t)}catch{j.value=[]}},te=t=>{t&&S()},ae=async()=>{await S(),await m()};I(()=>{ee(),H()});const{pager:p,getLists:ne}=qe({fetchFun:Z,params:i,firstLoading:!0}),N=[{key:"add_fans_count",label:"加粉数",type:"count"},{key:"total_open_count",label:"总开口",type:"count"},{key:"unreplied_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:"order_amount",label:"订单金额",type:"money"},{key:"account_cost",label:"账户消耗",type:"money"},{key:"total_open_rate",label:"总开口率",type:"percent"},{key:"paid_appointment_rate",label:"付费挂号率",type:"percent"},{key:"open_appointment_rate",label:"开口挂号率",type:"percent"},{key:"interview_rate",label:"面诊率",type:"percent"},{key:"receive_rate",label:"接诊率",type:"percent"},{key:"open_receive_rate",label:"开口接诊率",type:"percent"},{key:"interview_receive_rate",label:"面诊接诊率",type:"percent"},{key:"avg_unit_price",label:"平均单价",type:"money"},{key:"cash_cost",label:"现金成本",type:"money"},{key:"roi",label:"ROI",type:"ratio"}],L=[{key:"add_fans_count",label:"加粉数",type:"count"},{key:"total_open_count",label:"总开口",type:"count"},{key:"unreplied_count",label:"未回复",type:"count"},{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:"order_amount",label:"订单金额",type:"money",minWidth:110},{key:"account_cost",label:"账户消耗",type:"money",minWidth:110},{key:"total_open_rate",label:"总开口率",type:"percent",minWidth:100},{key:"paid_appointment_rate",label:"付费挂号率",type:"percent",minWidth:110},{key:"open_appointment_rate",label:"开口挂号率",type:"percent",minWidth:110},{key:"interview_rate",label:"面诊率",type:"percent",minWidth:100},{key:"receive_rate",label:"接诊率",type:"percent",minWidth:100},{key:"interview_receive_rate",label:"面诊接诊率",type:"percent",minWidth:120},{key:"open_receive_rate",label:"开口接诊率",type:"percent",minWidth:110},{key:"avg_unit_price",label:"平均单价",type:"money",minWidth:100},{key:"cash_cost",label:"现金成本",type:"money",minWidth:100},{key:"roi",label:"ROI",type:"ratio",minWidth:80}],oe=C(()=>M.value?N:N.filter(t=>!$.has(t.key))),le=C(()=>M.value?L:L.filter(t=>!$.has(t.key))),se=C(()=>{var t;return(t=f.date_range)!=null&&t.length?`${f.date_range[0]} 至 ${f.date_range[1]}`:"未选择"}),m=async()=>{try{await ne()}catch(t){console.error("获取自录转化统计失败:",t),Me.error((t==null?void 0:t.msg)||"获取统计数据失败")}},ie=()=>{i.time_type!=="custom"&&(_.value=[],p.page=1,m())},re=()=>{_.value.length===2&&(p.page=1,m())},D=()=>{p.page=1,m()},de=()=>{i.media_source="",i.dept_id=void 0,i.time_type="today",_.value=[],p.page=1,p.size=15,m()},P=(t,e,r="count")=>{const b=(e==null?void 0:e[t])??0;return r==="money"?`¥${Number(b||0).toFixed(2)}`:r==="percent"?`${Number(b||0).toFixed(2)}%`:r==="ratio"?Number(b||0).toFixed(2):String(b??0)},pe=async()=>{var t;await S(),V.value=!0,await G(),(t=E.value)==null||t.open("add")},ce=async t=>{var e,r;V.value=!0,await G(),(e=E.value)==null||e.open("edit"),(r=E.value)==null||r.setFormData(t)},ue=async t=>{await Be.confirm("确定删除该业绩记录?"),await Ue({id:t}),m()};return I(async()=>{await m()}),(t,e)=>{const r=xe,b=Ve,h=Ee,_e=je,me=Se,k=We,ye=Ce,B=De,fe=Le,y=Te,be=Fe,ke=Re,ve=Ne,x=we("perms"),ge=Ye;return s(),v("div",He,[o(B,{class:"!border-none",shadow:"never"},{default:n(()=>[o(ye,{inline:!0,model:l(i),class:"stats-filter-form"},{default:n(()=>[o(h,{label:"时间范围"},{default:n(()=>[o(b,{modelValue:l(i).time_type,"onUpdate:modelValue":e[0]||(e[0]=a=>l(i).time_type=a),onChange:ie},{default:n(()=>[o(r,{label:"today"},{default:n(()=>[...e[6]||(e[6]=[d("今天",-1)])]),_:1}),o(r,{label:"yesterday"},{default:n(()=>[...e[7]||(e[7]=[d("昨天",-1)])]),_:1}),o(r,{label:"week"},{default:n(()=>[...e[8]||(e[8]=[d("最近7天",-1)])]),_:1}),o(r,{label:"month"},{default:n(()=>[...e[9]||(e[9]=[d("最近30天",-1)])]),_:1}),o(r,{label:"custom"},{default:n(()=>[...e[10]||(e[10]=[d("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(i).time_type==="custom"?(s(),u(h,{key:0},{default:n(()=>[o(_e,{modelValue:l(_),"onUpdate:modelValue":e[1]||(e[1]=a=>A(_)?_.value=a:null),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",style:{width:"260px"},onChange:re},null,8,["modelValue"])]),_:1})):R("",!0),o(h,{label:"部门"},{default:n(()=>[o(me,{modelValue:l(i).dept_id,"onUpdate:modelValue":e[2]||(e[2]=a=>l(i).dept_id=a),data:l(j),"node-key":"id",props:J,"default-expand-all":!0,"check-strictly":"",placeholder:"全部部门",clearable:"",filterable:"",style:{width:"220px"},onChange:D},null,8,["modelValue","data"])]),_:1}),o(h,{label:"自媒体来源"},{default:n(()=>[o(Ge,{modelValue:l(i).media_source,"onUpdate:modelValue":e[3]||(e[3]=a=>l(i).media_source=a),options:l(F),loading:l(Y),placeholder:"全部来源","allow-create":!1,"select-style":"width: 220px",onChange:D,onVisibleChange:te},null,8,["modelValue","options","loading"])]),_:1}),o(h,null,{default:n(()=>[o(k,{type:"primary",loading:l(p).loading,onClick:D},{default:n(()=>[...e[11]||(e[11]=[d("查询",-1)])]),_:1},8,["loading"]),o(k,{onClick:de},{default:n(()=>[...e[12]||(e[12]=[d("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),c("div",Je,[(s(!0),v(U,null,z(l(oe),a=>(s(),v("div",{key:a.key,class:"stats-kpi-card"},[c("div",Xe,g(a.label),1),c("div",{class:Oe(["stats-kpi-value",{"is-money":a.type==="money"}])},g(P(a.key,l(f).summary,a.type)),3)]))),128))]),o(B,{class:"!border-none mt-4 stats-detail-card",shadow:"never"},{header:n(()=>[c("div",Ze,[c("div",et,[e[13]||(e[13]=c("span",{class:"card-title"},"业绩明细",-1)),c("span",tt,g(l(se)),1)]),c("div",at,[w((s(),u(k,{type:"primary",onClick:pe},{icon:n(()=>[o(fe,{name:"el-icon-Plus"})]),default:n(()=>[e[14]||(e[14]=d(" 新增业绩 ",-1))]),_:1})),[[x,["stats.personal_yeji/add"]]]),l(W)?w((s(),u(k,{key:0,onClick:X},{default:n(()=>[...e[15]||(e[15]=[d(" 账户消耗录入 ",-1)])]),_:1})),[[x,["stats.personal_account_cost/lists"]]]):R("",!0)])])]),default:n(()=>[w((s(),u(ke,{data:l(p).lists,border:"",size:"large","max-height":"640"},{default:n(()=>[o(y,{label:"日期",prop:"yeji_date","min-width":"110",fixed:"left"}),o(y,{label:"自媒体来源",prop:"media_source","min-width":"140","show-overflow-tooltip":""}),o(y,{label:"录入人",prop:"creator_name","min-width":"100"}),o(y,{label:"部门",prop:"dept_name","min-width":"140"},{default:n(({row:a})=>[a.dept_path?(s(),u(be,{key:0,content:a.dept_path,placement:"top",effect:"dark"},{default:n(()=>[c("span",nt,g(a.dept_name||"未分配"),1)]),_:2},1032,["content"])):a.dept_name?(s(),v("span",ot,g(a.dept_name),1)):(s(),v("span",lt,"未分配"))]),_:1}),(s(!0),v(U,null,z(l(le),a=>(s(),u(y,{key:a.key,label:a.label,"min-width":a.minWidth||100,align:"right"},{default:n(({row:O})=>[d(g(P(a.key,O,a.type)),1)]),_:2},1032,["label","min-width"]))),128)),o(y,{label:"备注",prop:"remark","min-width":"160","show-overflow-tooltip":""}),o(y,{label:"操作",width:"140",fixed:"right"},{default:n(({row:a})=>[w((s(),u(k,{type:"primary",link:"",onClick:O=>ce(a)},{default:n(()=>[...e[16]||(e[16]=[d(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[x,["stats.personal_yeji/edit"]]]),w((s(),u(k,{type:"danger",link:"",onClick:O=>ue(a.id)},{default:n(()=>[...e[17]||(e[17]=[d(" 删除 ",-1)])]),_:1},8,["onClick"])),[[x,["stats.personal_yeji/delete"]]])]),_:1})]),_:1},8,["data"])),[[ge,l(p).loading]]),c("div",st,[o(ve,{modelValue:l(p),"onUpdate:modelValue":e[4]||(e[4]=a=>A(p)?p.value=a:null),onChange:m},null,8,["modelValue"])])]),_:1}),l(V)?(s(),u(Ke,{key:0,ref_key:"yejiEditRef",ref:E,"media-source-options":l(F),"media-source-loading":l(Y),onSuccess:ae,onClose:e[5]||(e[5]=a=>V.value=!1)},null,8,["media-source-options","media-source-loading"])):R("",!0)])}}}),gt=Ie(rt,[["__scopeId","data-v-47b76778"]]);export{gt as default}; +import{o as K,W as he,ap as I,bp as we,q as s,r as v,v as o,D as n,bd as Ce,u as l,bb as Ee,bf as Ve,be as xe,L as d,O as u,az as je,C as A,P as R,bL as Se,K as We,bj as De,s as c,F as U,G as z,T as g,ae as Oe,ac as w,bk as Re,bl as Te,a1 as Fe,bn as Ye,a8 as $e,M as T,aC as q,p as C,E as Me,n as G}from"./.pnpm-CyuAWpdG.js";import{_ as Ne}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as Le,l as Pe,j as Be,_ as Ie}from"./index-Bkarz3gO.js";import{d as Ae,e as Ue}from"./self_input_stats-DXFvDfvT.js";import{d as ze}from"./department-BeBGhsmA.js";import{u as qe}from"./usePaging-CghUEVfD.js";import{_ as Ge}from"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-NXWg0oJL.js";import{_ as Ke}from"./yeji-edit.vue_vue_type_script_setup_true_lang-CJg4Mu-Y.js";import{u as Qe}from"./useMediaSourceOptions-DDX835sU.js";import"./index-CS5Wg0xx.js";const He={class:"self-input-stats-page"},Je={class:"stats-kpi-grid"},Xe={class:"stats-kpi-label"},Ze={class:"card-header"},et={class:"card-header-main"},tt={class:"card-hint"},at={class:"card-header-actions"},nt={class:"dept-cell"},ot={key:1},lt={key:2,class:"text-gray-400"},st={class:"flex justify-end mt-4"},it=K({name:"selfInputStats"}),rt=K({...it,setup(dt){const Q=he(),E=$e(),V=T(!1),_=T([]),j=T([]),{mediaSourceOptions:F,mediaSourceLoading:Y,loadMediaSourceOptions:H,refreshMediaSourceOptions:S}=Qe(),J={value:"id",label:"name",children:"children"},f=q({date_range:[],summary:{},can_view_finance:!1}),$=new Set(["account_cost","cash_cost","roi"]),M=C(()=>!!f.can_view_finance),i=q({media_source:"",dept_id:void 0,time_type:"today",start_date:"",end_date:""}),W=C(()=>Pe("stats.personal_account_cost/lists")||""),X=()=>{W.value&&Q.push(W.value)},Z=async t=>{i.time_type==="custom"&&(t.start_date=_.value[0]||"",t.end_date=_.value[1]||"");const e=await Ae(t);return Object.assign(f,(e==null?void 0:e.extend)||{}),e},ee=async()=>{try{const t=await ze({apply_data_scope:1});Array.isArray(t)&&(j.value=t)}catch{j.value=[]}},te=t=>{t&&S()},ae=async()=>{await S(),await m()};I(()=>{ee(),H()});const{pager:p,getLists:ne}=qe({fetchFun:Z,params:i,firstLoading:!0}),N=[{key:"add_fans_count",label:"加粉数",type:"count"},{key:"total_open_count",label:"总开口",type:"count"},{key:"unreplied_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:"order_amount",label:"订单金额",type:"money"},{key:"account_cost",label:"账户消耗",type:"money"},{key:"total_open_rate",label:"总开口率",type:"percent"},{key:"paid_appointment_rate",label:"付费挂号率",type:"percent"},{key:"open_appointment_rate",label:"开口挂号率",type:"percent"},{key:"interview_rate",label:"面诊率",type:"percent"},{key:"receive_rate",label:"接诊率",type:"percent"},{key:"open_receive_rate",label:"开口接诊率",type:"percent"},{key:"interview_receive_rate",label:"面诊接诊率",type:"percent"},{key:"avg_unit_price",label:"平均单价",type:"money"},{key:"cash_cost",label:"现金成本",type:"money"},{key:"roi",label:"ROI",type:"ratio"}],L=[{key:"add_fans_count",label:"加粉数",type:"count"},{key:"total_open_count",label:"总开口",type:"count"},{key:"unreplied_count",label:"未回复",type:"count"},{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:"order_amount",label:"订单金额",type:"money",minWidth:110},{key:"account_cost",label:"账户消耗",type:"money",minWidth:110},{key:"total_open_rate",label:"总开口率",type:"percent",minWidth:100},{key:"paid_appointment_rate",label:"付费挂号率",type:"percent",minWidth:110},{key:"open_appointment_rate",label:"开口挂号率",type:"percent",minWidth:110},{key:"interview_rate",label:"面诊率",type:"percent",minWidth:100},{key:"receive_rate",label:"接诊率",type:"percent",minWidth:100},{key:"interview_receive_rate",label:"面诊接诊率",type:"percent",minWidth:120},{key:"open_receive_rate",label:"开口接诊率",type:"percent",minWidth:110},{key:"avg_unit_price",label:"平均单价",type:"money",minWidth:100},{key:"cash_cost",label:"现金成本",type:"money",minWidth:100},{key:"roi",label:"ROI",type:"ratio",minWidth:80}],oe=C(()=>M.value?N:N.filter(t=>!$.has(t.key))),le=C(()=>M.value?L:L.filter(t=>!$.has(t.key))),se=C(()=>{var t;return(t=f.date_range)!=null&&t.length?`${f.date_range[0]} 至 ${f.date_range[1]}`:"未选择"}),m=async()=>{try{await ne()}catch(t){console.error("获取自录转化统计失败:",t),Me.error((t==null?void 0:t.msg)||"获取统计数据失败")}},ie=()=>{i.time_type!=="custom"&&(_.value=[],p.page=1,m())},re=()=>{_.value.length===2&&(p.page=1,m())},D=()=>{p.page=1,m()},de=()=>{i.media_source="",i.dept_id=void 0,i.time_type="today",_.value=[],p.page=1,p.size=15,m()},P=(t,e,r="count")=>{const b=(e==null?void 0:e[t])??0;return r==="money"?`¥${Number(b||0).toFixed(2)}`:r==="percent"?`${Number(b||0).toFixed(2)}%`:r==="ratio"?Number(b||0).toFixed(2):String(b??0)},pe=async()=>{var t;await S(),V.value=!0,await G(),(t=E.value)==null||t.open("add")},ce=async t=>{var e,r;V.value=!0,await G(),(e=E.value)==null||e.open("edit"),(r=E.value)==null||r.setFormData(t)},ue=async t=>{await Be.confirm("确定删除该业绩记录?"),await Ue({id:t}),m()};return I(async()=>{await m()}),(t,e)=>{const r=xe,b=Ve,h=Ee,_e=je,me=Se,k=We,ye=Ce,B=De,fe=Le,y=Te,be=Fe,ke=Re,ve=Ne,x=we("perms"),ge=Ye;return s(),v("div",He,[o(B,{class:"!border-none",shadow:"never"},{default:n(()=>[o(ye,{inline:!0,model:l(i),class:"stats-filter-form"},{default:n(()=>[o(h,{label:"时间范围"},{default:n(()=>[o(b,{modelValue:l(i).time_type,"onUpdate:modelValue":e[0]||(e[0]=a=>l(i).time_type=a),onChange:ie},{default:n(()=>[o(r,{label:"today"},{default:n(()=>[...e[6]||(e[6]=[d("今天",-1)])]),_:1}),o(r,{label:"yesterday"},{default:n(()=>[...e[7]||(e[7]=[d("昨天",-1)])]),_:1}),o(r,{label:"week"},{default:n(()=>[...e[8]||(e[8]=[d("最近7天",-1)])]),_:1}),o(r,{label:"month"},{default:n(()=>[...e[9]||(e[9]=[d("最近30天",-1)])]),_:1}),o(r,{label:"custom"},{default:n(()=>[...e[10]||(e[10]=[d("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(i).time_type==="custom"?(s(),u(h,{key:0},{default:n(()=>[o(_e,{modelValue:l(_),"onUpdate:modelValue":e[1]||(e[1]=a=>A(_)?_.value=a:null),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",style:{width:"260px"},onChange:re},null,8,["modelValue"])]),_:1})):R("",!0),o(h,{label:"部门"},{default:n(()=>[o(me,{modelValue:l(i).dept_id,"onUpdate:modelValue":e[2]||(e[2]=a=>l(i).dept_id=a),data:l(j),"node-key":"id",props:J,"default-expand-all":!0,"check-strictly":"",placeholder:"全部部门",clearable:"",filterable:"",style:{width:"220px"},onChange:D},null,8,["modelValue","data"])]),_:1}),o(h,{label:"自媒体来源"},{default:n(()=>[o(Ge,{modelValue:l(i).media_source,"onUpdate:modelValue":e[3]||(e[3]=a=>l(i).media_source=a),options:l(F),loading:l(Y),placeholder:"全部来源","allow-create":!1,"select-style":"width: 220px",onChange:D,onVisibleChange:te},null,8,["modelValue","options","loading"])]),_:1}),o(h,null,{default:n(()=>[o(k,{type:"primary",loading:l(p).loading,onClick:D},{default:n(()=>[...e[11]||(e[11]=[d("查询",-1)])]),_:1},8,["loading"]),o(k,{onClick:de},{default:n(()=>[...e[12]||(e[12]=[d("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),c("div",Je,[(s(!0),v(U,null,z(l(oe),a=>(s(),v("div",{key:a.key,class:"stats-kpi-card"},[c("div",Xe,g(a.label),1),c("div",{class:Oe(["stats-kpi-value",{"is-money":a.type==="money"}])},g(P(a.key,l(f).summary,a.type)),3)]))),128))]),o(B,{class:"!border-none mt-4 stats-detail-card",shadow:"never"},{header:n(()=>[c("div",Ze,[c("div",et,[e[13]||(e[13]=c("span",{class:"card-title"},"业绩明细",-1)),c("span",tt,g(l(se)),1)]),c("div",at,[w((s(),u(k,{type:"primary",onClick:pe},{icon:n(()=>[o(fe,{name:"el-icon-Plus"})]),default:n(()=>[e[14]||(e[14]=d(" 新增业绩 ",-1))]),_:1})),[[x,["stats.personal_yeji/add"]]]),l(W)?w((s(),u(k,{key:0,onClick:X},{default:n(()=>[...e[15]||(e[15]=[d(" 账户消耗录入 ",-1)])]),_:1})),[[x,["stats.personal_account_cost/lists"]]]):R("",!0)])])]),default:n(()=>[w((s(),u(ke,{data:l(p).lists,border:"",size:"large","max-height":"640"},{default:n(()=>[o(y,{label:"日期",prop:"yeji_date","min-width":"110",fixed:"left"}),o(y,{label:"自媒体来源",prop:"media_source","min-width":"140","show-overflow-tooltip":""}),o(y,{label:"录入人",prop:"creator_name","min-width":"100"}),o(y,{label:"部门",prop:"dept_name","min-width":"140"},{default:n(({row:a})=>[a.dept_path?(s(),u(be,{key:0,content:a.dept_path,placement:"top",effect:"dark"},{default:n(()=>[c("span",nt,g(a.dept_name||"未分配"),1)]),_:2},1032,["content"])):a.dept_name?(s(),v("span",ot,g(a.dept_name),1)):(s(),v("span",lt,"未分配"))]),_:1}),(s(!0),v(U,null,z(l(le),a=>(s(),u(y,{key:a.key,label:a.label,"min-width":a.minWidth||100,align:"right"},{default:n(({row:O})=>[d(g(P(a.key,O,a.type)),1)]),_:2},1032,["label","min-width"]))),128)),o(y,{label:"备注",prop:"remark","min-width":"160","show-overflow-tooltip":""}),o(y,{label:"操作",width:"140",fixed:"right"},{default:n(({row:a})=>[w((s(),u(k,{type:"primary",link:"",onClick:O=>ce(a)},{default:n(()=>[...e[16]||(e[16]=[d(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[x,["stats.personal_yeji/edit"]]]),w((s(),u(k,{type:"danger",link:"",onClick:O=>ue(a.id)},{default:n(()=>[...e[17]||(e[17]=[d(" 删除 ",-1)])]),_:1},8,["onClick"])),[[x,["stats.personal_yeji/delete"]]])]),_:1})]),_:1},8,["data"])),[[ge,l(p).loading]]),c("div",st,[o(ve,{modelValue:l(p),"onUpdate:modelValue":e[4]||(e[4]=a=>A(p)?p.value=a:null),onChange:m},null,8,["modelValue"])])]),_:1}),l(V)?(s(),u(Ke,{key:0,ref_key:"yejiEditRef",ref:E,"media-source-options":l(F),"media-source-loading":l(Y),onSuccess:ae,onClose:e[5]||(e[5]=a=>V.value=!1)},null,8,["media-source-options","media-source-loading"])):R("",!0)])}}}),gt=Ie(rt,[["__scopeId","data-v-47b76778"]]);export{gt as default}; diff --git a/server/public/admin/assets/index-CrHG8Y0M.js b/server/public/admin/assets/index-7KDk7kVi.js similarity index 88% rename from server/public/admin/assets/index-CrHG8Y0M.js rename to server/public/admin/assets/index-7KDk7kVi.js index be5f7052f..a466951cd 100644 --- a/server/public/admin/assets/index-CrHG8Y0M.js +++ b/server/public/admin/assets/index-7KDk7kVi.js @@ -1 +1 @@ -import{o as x,ap as S,bp as T,q as s,r as A,v as e,D as o,bd as z,u as n,bb as M,aA as q,bc as k,K as O,L as _,bj as G,ac as f,bn as H,O as m,s as V,bk as J,bl as Q,a0 as W,I as X,C as Y,P as Z,a8 as ee,aC as ae,M as te,n as E}from"./.pnpm-CyuAWpdG.js";import{_ as oe}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as le,j as ne,_ as ie}from"./index-Dxvz9lb1.js";import{a as se,b as de,c as me}from"./admin-7zsFFzhs.js";import{u as re}from"./usePaging-CghUEVfD.js";import pe from"./edit-C3BLD59B.js";import"./picker-BDO86vcM.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./department-DToZNvdH.js";import"./post-B9rSvSIv.js";import"./useDictOptions-ByJNOzqa.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=ee(),d=ae({account:"",name:"",role_id:1,apply_data_scope:1}),v=te(!1),{pager:r,getLists:p,resetParams:D,resetPage:g}=re({fetchFun:se,params:d}),P=t=>{de({id:t.id,avatar:t.avatar,account:t.account,name:t.name,role_id:t.role_id,jobs_id:t.jobs_id,dept_id:t.dept_id,disable:t.disable,multipoint_login:t.multipoint_login}).finally(()=>{p()})},I=async()=>{var t;v.value=!0,await E(),(t=b.value)==null||t.open("add")},K=async t=>{var a,c;v.value=!0,await E(),(a=b.value)==null||a.open("edit"),(c=b.value)==null||c.setFormData(t)},$=async t=>{await ne.confirm("确定要删除该医生吗?"),await me({id:t}),p()};return S(()=>{p()}),(t,a)=>{const c=q,C=M,u=O,j=z,y=G,B=le,i=Q,L=W,U=X,F=J,N=oe,h=T("perms"),R=H;return s(),A("div",ce,[e(y,{class:"!border-none",shadow:"never"},{default:o(()=>[e(j,{class:"mb-[-16px]",model:n(d),inline:""},{default:o(()=>[e(C,{class:"w-[280px]",label:"医生账号"},{default:o(()=>[e(c,{modelValue:n(d).account,"onUpdate:modelValue":a[0]||(a[0]=l=>n(d).account=l),placeholder:"请输入医生账号",clearable:"",onKeyup:k(n(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(C,{class:"w-[280px]",label:"医生名称"},{default:o(()=>[e(c,{modelValue:n(d).name,"onUpdate:modelValue":a[1]||(a[1]=l=>n(d).name=l),placeholder:"请输入医生名称",clearable:"",onKeyup:k(n(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(C,null,{default:o(()=>[e(u,{type:"primary",onClick:n(g)},{default:o(()=>[...a[4]||(a[4]=[_("查询",-1)])]),_:1},8,["onClick"]),e(u,{onClick:n(D)},{default:o(()=>[...a[5]||(a[5]=[_("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),f((s(),m(y,{class:"mt-4 !border-none",shadow:"never"},{default:o(()=>[f((s(),m(u,{type:"primary",onClick:I},{icon:o(()=>[e(B,{name:"el-icon-Plus"})]),default:o(()=>[a[6]||(a[6]=_(" 新增医生 ",-1))]),_:1})),[[h,["auth.admin/add"]]]),V("div",ue,[e(F,{data:n(r).lists,size:"large"},{default:o(()=>[e(i,{label:"ID",prop:"id","min-width":"60"}),e(i,{label:"头像","min-width":"100"},{default:o(({row:l})=>[e(L,{size:50,src:l.avatar},null,8,["src"])]),_:1}),e(i,{label:"账号",prop:"account","min-width":"120"}),e(i,{label:"姓名",prop:"name","min-width":"100"}),e(i,{label:"手机号",prop:"phone","min-width":"120"}),e(i,{label:"创建时间",prop:"create_time","min-width":"180"}),e(i,{label:"最近登录时间",prop:"login_time","min-width":"180"}),e(i,{label:"最近登录IP",prop:"login_ip","min-width":"120"}),f((s(),m(i,{label:"状态","min-width":"100"},{default:o(({row:l})=>[e(U,{modelValue:l.disable,"onUpdate:modelValue":w=>l.disable=w,"active-value":0,"inactive-value":1,onChange:w=>P(l)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1})),[[h,["auth.admin/edit"]]]),e(i,{label:"操作",width:"120",fixed:"right"},{default:o(({row:l})=>[f((s(),m(u,{type:"primary",link:"",onClick:w=>K(l)},{default:o(()=>[...a[7]||(a[7]=[_(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[h,["auth.admin/edit"]]]),f((s(),m(u,{type:"danger",link:"",onClick:w=>$(l.id)},{default:o(()=>[...a[8]||(a[8]=[_(" 删除 ",-1)])]),_:1},8,["onClick"])),[[h,["auth.admin/delete"]]])]),_:1})]),_:1},8,["data"])]),V("div",_e,[e(N,{modelValue:n(r),"onUpdate:modelValue":a[2]||(a[2]=l=>Y(r)?r.value=l:null),onChange:n(p)},null,8,["modelValue","onChange"])])]),_:1})),[[R,n(r).loading]]),n(v)?(s(),m(pe,{key:0,ref_key:"editRef",ref:b,onSuccess:n(p),onClose:a[3]||(a[3]=l=>v.value=!1)},null,8,["onSuccess"])):Z("",!0)])}}}),Le=ie(be,[["__scopeId","data-v-72ffb098"]]);export{Le as default}; +import{o as x,ap as S,bp as T,q as s,r as A,v as e,D as o,bd as z,u as n,bb as M,aA as q,bc as k,K as O,L as _,bj as G,ac as f,bn as H,O as m,s as V,bk as J,bl as Q,a0 as W,I as X,C as Y,P as Z,a8 as ee,aC as ae,M as te,n as E}from"./.pnpm-CyuAWpdG.js";import{_ as oe}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as le,j as ne,_ as ie}from"./index-Bkarz3gO.js";import{a as se,b as de,c as me}from"./admin-DmTP1JeV.js";import{u as re}from"./usePaging-CghUEVfD.js";import pe from"./edit-Bl3F_If2.js";import"./picker-BTh9eW9u.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./department-BeBGhsmA.js";import"./post-DqkuJrmM.js";import"./useDictOptions-dnxxXBSU.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=ee(),d=ae({account:"",name:"",role_id:1,apply_data_scope:1}),v=te(!1),{pager:r,getLists:p,resetParams:D,resetPage:g}=re({fetchFun:se,params:d}),P=t=>{de({id:t.id,avatar:t.avatar,account:t.account,name:t.name,role_id:t.role_id,jobs_id:t.jobs_id,dept_id:t.dept_id,disable:t.disable,multipoint_login:t.multipoint_login}).finally(()=>{p()})},I=async()=>{var t;v.value=!0,await E(),(t=b.value)==null||t.open("add")},K=async t=>{var a,c;v.value=!0,await E(),(a=b.value)==null||a.open("edit"),(c=b.value)==null||c.setFormData(t)},$=async t=>{await ne.confirm("确定要删除该医生吗?"),await me({id:t}),p()};return S(()=>{p()}),(t,a)=>{const c=q,C=M,u=O,j=z,y=G,B=le,i=Q,L=W,U=X,F=J,N=oe,h=T("perms"),R=H;return s(),A("div",ce,[e(y,{class:"!border-none",shadow:"never"},{default:o(()=>[e(j,{class:"mb-[-16px]",model:n(d),inline:""},{default:o(()=>[e(C,{class:"w-[280px]",label:"医生账号"},{default:o(()=>[e(c,{modelValue:n(d).account,"onUpdate:modelValue":a[0]||(a[0]=l=>n(d).account=l),placeholder:"请输入医生账号",clearable:"",onKeyup:k(n(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(C,{class:"w-[280px]",label:"医生名称"},{default:o(()=>[e(c,{modelValue:n(d).name,"onUpdate:modelValue":a[1]||(a[1]=l=>n(d).name=l),placeholder:"请输入医生名称",clearable:"",onKeyup:k(n(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(C,null,{default:o(()=>[e(u,{type:"primary",onClick:n(g)},{default:o(()=>[...a[4]||(a[4]=[_("查询",-1)])]),_:1},8,["onClick"]),e(u,{onClick:n(D)},{default:o(()=>[...a[5]||(a[5]=[_("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),f((s(),m(y,{class:"mt-4 !border-none",shadow:"never"},{default:o(()=>[f((s(),m(u,{type:"primary",onClick:I},{icon:o(()=>[e(B,{name:"el-icon-Plus"})]),default:o(()=>[a[6]||(a[6]=_(" 新增医生 ",-1))]),_:1})),[[h,["auth.admin/add"]]]),V("div",ue,[e(F,{data:n(r).lists,size:"large"},{default:o(()=>[e(i,{label:"ID",prop:"id","min-width":"60"}),e(i,{label:"头像","min-width":"100"},{default:o(({row:l})=>[e(L,{size:50,src:l.avatar},null,8,["src"])]),_:1}),e(i,{label:"账号",prop:"account","min-width":"120"}),e(i,{label:"姓名",prop:"name","min-width":"100"}),e(i,{label:"手机号",prop:"phone","min-width":"120"}),e(i,{label:"创建时间",prop:"create_time","min-width":"180"}),e(i,{label:"最近登录时间",prop:"login_time","min-width":"180"}),e(i,{label:"最近登录IP",prop:"login_ip","min-width":"120"}),f((s(),m(i,{label:"状态","min-width":"100"},{default:o(({row:l})=>[e(U,{modelValue:l.disable,"onUpdate:modelValue":w=>l.disable=w,"active-value":0,"inactive-value":1,onChange:w=>P(l)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1})),[[h,["auth.admin/edit"]]]),e(i,{label:"操作",width:"120",fixed:"right"},{default:o(({row:l})=>[f((s(),m(u,{type:"primary",link:"",onClick:w=>K(l)},{default:o(()=>[...a[7]||(a[7]=[_(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[h,["auth.admin/edit"]]]),f((s(),m(u,{type:"danger",link:"",onClick:w=>$(l.id)},{default:o(()=>[...a[8]||(a[8]=[_(" 删除 ",-1)])]),_:1},8,["onClick"])),[[h,["auth.admin/delete"]]])]),_:1})]),_:1},8,["data"])]),V("div",_e,[e(N,{modelValue:n(r),"onUpdate:modelValue":a[2]||(a[2]=l=>Y(r)?r.value=l:null),onChange:n(p)},null,8,["modelValue","onChange"])])]),_:1})),[[R,n(r).loading]]),n(v)?(s(),m(pe,{key:0,ref_key:"editRef",ref:b,onSuccess:n(p),onClose:a[3]||(a[3]=l=>v.value=!1)},null,8,["onSuccess"])):Z("",!0)])}}}),Le=ie(be,[["__scopeId","data-v-72ffb098"]]);export{Le as default}; diff --git a/server/public/admin/assets/index-B-4Yu01u.js b/server/public/admin/assets/index-B-4Yu01u.js new file mode 100644 index 000000000..907f00287 --- /dev/null +++ b/server/public/admin/assets/index-B-4Yu01u.js @@ -0,0 +1 @@ +import{o as $,q as o,r as A,ac as K,bn as z,O as c,D as n,s as u,v as m,bo as H,L as k,P as _,bd as J,bb as Q,bh as R,F as O,G as P,bi as W,K as X,T as B,bj as Y,M as f,aC as N,p as S}from"./.pnpm-CyuAWpdG.js";import{_ as Z}from"./index-DIl3M8Wa.js";import{r as V,j as ee}from"./index-Bkarz3gO.js";function F(p){const l=p,t=d=>Array.isArray(d)&&d.every(b=>Number.isSafeInteger(b)&&b>0);if(!l||!t(l.role_ids)||!t(l.admin_ids))throw new Error("可见范围配置响应格式不正确");return{role_ids:[...l.role_ids],admin_ids:[...l.admin_ids]}}async function le(){const p=await V.get({url:"/tcm.prescriptionAi/getVisibilityConfig"});return F(p)}async function ae(p){const l=await V.post({url:"/tcm.prescriptionAi/setVisibilityConfig",params:p});return F(l)}function ie(){return V.get({url:"/tcm.prescriptionAi/visibilityOptions"})}function se(){return V.get({url:"/tcm.prescriptionAi/capabilities"})}const te={class:"prescription-ai-visibility"},oe={key:1,role:"status",class:"mb-5"},ne={class:"w-full max-w-[640px]"},re={class:"w-full max-w-[640px]"},de=$({name:"prescriptionAiVisibility"}),fe=$({...de,setup(p){const l=f(!1),t=f(!1),d=f(!1),b=f(!1),g=f(!1),v=f(""),y=f(""),i=N({role_ids:[],admin_ids:[]}),w=N({roles:[],admins:[]}),L=S(()=>{const a=new Map(w.roles.map(e=>[e.id,e]));for(const e of i.role_ids)a.has(e)||a.set(e,{id:e,name:`已配置角色 #${e}(当前不在可选列表)`});return[...a.values()]}),M=S(()=>{const a=new Map(w.admins.map(e=>[e.id,{id:e.id,label:`${e.name||`用户 #${e.id}`}(${e.account})`}]));for(const e of i.admin_ids)a.has(e)||a.set(e,{id:e,label:`已配置用户 #${e}(当前不在可选列表)`});return[...a.values()]}),x=a=>{i.role_ids=[...a.role_ids],i.admin_ids=[...a.admin_ids]},E=async()=>{if(!(l.value||t.value)){l.value=!0,d.value=!1,g.value=!1,v.value="",y.value="";try{if((await se()).can_manage_visibility!==!0){v.value="当前账号无权管理处方 AI 一致度可见范围。";return}g.value=!0;const[e,s]=await Promise.all([le(),ie()]);if(!Array.isArray(s==null?void 0:s.roles)||!Array.isArray(s==null?void 0:s.admins))throw new Error("可选用户组或用户响应格式不正确");x(e),w.roles=s.roles,w.admins=s.admins,b.value=!0,d.value=!0}catch{v.value="可见范围加载失败,尚未读取完整配置。请重试加载后再保存。"}finally{l.value=!1}}},j=async()=>{if(!(!d.value||!g.value||l.value||t.value)){t.value=!0,y.value="";try{const a=await ae({role_ids:[...i.role_ids],admin_ids:[...i.admin_ids]});x(a),ee.msgSuccess("可见范围已保存")}catch{y.value="保存结果未确认,当前选择已保留。请重试保存,或重新加载以确认服务端策略。"}finally{t.value=!1}}};return E(),(a,e)=>{const s=H,h=W,I=R,C=Q,q=J,D=X,T=Y,U=Z,G=z;return o(),A("div",te,[K((o(),c(T,{shadow:"never",class:"!border-none"},{default:n(()=>[e[7]||(e[7]=u("div",{class:"text-xl font-medium mb-[20px]"},"处方 AI 一致度可见范围",-1)),m(s,{type:"info",closable:!1,"show-icon":"",class:"mb-5"},{title:n(()=>[...e[2]||(e[2]=[k("指定用户组或用户可查看一致度",-1)])]),default:n(()=>[e[3]||(e[3]=u("div",{class:"leading-6"}," 用户命中任一指定系统角色,或被单独指定,即可查看桌面端“与 AI 一致度”、逐味对照和一致度统计。AI 报告继续按原有权限开放,已有报告不受影响,患者与处方的数据范围保持原有规则。 ",-1))]),_:1}),v.value?(o(),c(s,{key:0,title:v.value,type:"error",closable:!1,"show-icon":"",class:"mb-5"},null,8,["title"])):_("",!0),l.value?(o(),A("div",oe,"正在读取当前可见范围…")):_("",!0),b.value?(o(),c(q,{key:2,class:"ls-form",model:i,disabled:!d.value||l.value||t.value,"label-width":"140px"},{default:n(()=>[m(C,{label:"指定用户组",prop:"role_ids"},{default:n(()=>[u("div",ne,[m(I,{modelValue:i.role_ids,"onUpdate:modelValue":e[0]||(e[0]=r=>i.role_ids=r),class:"w-full",multiple:"",filterable:"",clearable:"",placeholder:"请选择系统角色,可搜索角色名称"},{default:n(()=>[(o(!0),A(O,null,P(L.value,r=>(o(),c(h,{key:r.id,label:r.name,value:r.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e[4]||(e[4]=u("div",{class:"form-tips"},"账号拥有任一指定角色即可命中。",-1))])]),_:1}),m(C,{label:"指定用户",prop:"admin_ids"},{default:n(()=>[u("div",re,[m(I,{modelValue:i.admin_ids,"onUpdate:modelValue":e[1]||(e[1]=r=>i.admin_ids=r),class:"w-full",multiple:"",filterable:"",clearable:"",placeholder:"请选择用户,可搜索姓名或账号"},{default:n(()=>[(o(!0),A(O,null,P(M.value,r=>(o(),c(h,{key:r.id,label:r.label,value:r.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e[5]||(e[5]=u("div",{class:"form-tips"}," 单独指定的用户无需同时命中用户组。当前不在可选列表中的已配置 ID 会保留,移除后保存才会取消该项授权。 ",-1))])]),_:1}),m(C,{label:"生效规则"},{default:n(()=>[...e[6]||(e[6]=[u("div",null,[u("div",{class:"leading-6"},"指定用户组与指定用户按“或”生效。"),u("div",{class:"form-tips"}," 两项均为空时,所有账号(包括超级管理员)均隐藏一致度、对照与统计。 拥有本页管理权限不自动获得一致度查看权,超级管理员也需命中上述名单。 ")],-1)])]),_:1})]),_:1},8,["model","disabled"])):_("",!0),d.value&&!i.role_ids.length&&!i.admin_ids.length?(o(),c(s,{key:3,title:"当前选择为空:保存后所有账号将隐藏一致度、对照与统计,AI 报告仍保留。",type:"warning",closable:!1,"show-icon":"",class:"mb-5"})):_("",!0),y.value?(o(),c(s,{key:4,title:y.value,type:"error",closable:!1,"show-icon":"",class:"mb-5"},null,8,["title"])):_("",!0),m(D,{disabled:l.value||t.value,onClick:E},{default:n(()=>[k(B(v.value?"重试加载":"重新加载"),1)]),_:1},8,["disabled"])]),_:1})),[[G,l.value]]),g.value?(o(),c(U,{key:0},{default:n(()=>[m(D,{type:"primary",loading:t.value,disabled:!d.value||l.value||t.value,onClick:j},{default:n(()=>[k(B(t.value?"正在保存":"保存"),1)]),_:1},8,["loading","disabled"])]),_:1})):_("",!0)])}}});export{fe as default}; diff --git a/server/public/admin/assets/index-B3vHLAW8.css b/server/public/admin/assets/index-B3vHLAW8.css deleted file mode 100644 index 93d10b15f..000000000 --- a/server/public/admin/assets/index-B3vHLAW8.css +++ /dev/null @@ -1 +0,0 @@ -.icon-select[data-v-352f3746]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.app-breadcrumb[data-v-94d84829] .el-breadcrumb__item .el-breadcrumb__inner{color:#303133;font-weight:500}.app-breadcrumb[data-v-94d84829] .el-breadcrumb__item:last-child .el-breadcrumb__inner{color:#303133}.app-breadcrumb[data-v-94d84829] .el-breadcrumb__separator{color:#606266}.app-tabs[data-v-414a904e]{border-top-width:1px;border-color:var(--el-border-color)}.app-tabs[data-v-414a904e] .el-tabs{height:40px}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__header{margin-bottom:0}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__content{display:none}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__nav-next,.app-tabs[data-v-414a904e] .el-tabs .el-tabs__nav-prev{font-size:var( --el-font-size-large)}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__nav-wrap:after{height:0}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__item{font-weight:400;padding:0 15px!important;box-sizing:border-box}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__item.is-active{color:var(--el-text-color-primary);background-color:var(--el-color-primary-light-9)}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__item.is-active:before{content:"";display:inline-block;width:6px;height:6px;background-color:var(--el-color-primary);margin-right:6px;border-radius:50%;vertical-align:2px}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__item.is-active:after{position:absolute;content:"";display:block;top:0;height:2px;left:0;width:100%;background-color:var(--el-color-primary)}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__item .is-icon-close{color:var(--el-text-color-regular);vertical-align:-2px}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__item .is-icon-close:hover{color:var(--color-white);background-color:var(--el-color-danger)}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__active-bar{display:none}.navbar{height:var(--navbar-height);display:flex;background-color:var(--el-bg-color);padding-left:8px;padding-right:8px}.navbar .navbar-item{display:flex;height:100%;align-items:center;justify-content:center}.navbar .navbar-item:hover{background-color:var(--el-bg-color-page)}.el-image[data-v-275301c7]{display:block}.el-image .el-image__error[data-v-275301c7]{font-size:var(--el-font-size-extra-small)}.logo[data-v-590d56e3]{height:var(--navbar-height);overflow:hidden;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:flex;align-items:center;padding:8px}.logo .logo-title[data-v-590d56e3]{width:70%;position:absolute;font-size:var( --el-font-size-large)}.logo .title-width-enter-active[data-v-590d56e3]{opacity:0;transition:all .3s ease-out}.logo .title-width-leave-active[data-v-590d56e3]{transition:all .3s cubic-bezier(1,.5,.8,1)}.logo .title-width-enter-from[data-v-590d56e3],.logo .title-width-leave-to[data-v-590d56e3]{width:0;opacity:0}.el-menu-item .menu-item-icon[data-v-65172b69],.el-sub-menu__title .menu-item-icon[data-v-65172b69]{margin-right:8px;width:var(--el-menu-icon-width);text-align:center;vertical-align:middle}.menu.theme-dark .el-menu[data-v-6c529f19] .el-menu-item.is-active{border-color:var(--el-color-primary);background-color:var(--el-color-primary)}.menu.theme-dark[data-v-6c529f19] .el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{background-color:var(--el-color-primary)!important}.menu.theme-light[data-v-6c529f19] .el-menu .el-menu-item{border-color:transparent}.menu.theme-light[data-v-6c529f19] .el-menu .el-menu-item.is-active{border-right-width:2px;border-color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)}.menu.theme-light[data-v-6c529f19] .el-menu .el-menu-item:hover,.menu.theme-light[data-v-6c529f19] .el-menu .el-sub-menu__title:hover{color:var(--el-color-primary)}.menu .el-menu[data-v-6c529f19]{border-right:none}.menu .el-menu[data-v-6c529f19]:not(.el-menu--collapse){width:var(--aside-width)}.side[data-v-ed43753e]{position:relative;z-index:999;display:flex;height:100%;flex-direction:column;border-right-width:1px;border-color:var(--el-border-color-light);background-color:var(--side-dark-color, var(--el-bg-color))}.sidebar[data-v-7243bf96] .el-drawer__body{padding:0}:root.dark{color-scheme:dark;--table-header-bg-color: var(--el-bg-color);--el-bg-color-page: #0a0a0a;--el-bg-color: #1d2124;--el-bg-color-overlay: #1d1e1f;--el-text-color-primary: #e5eaf3;--el-text-color-regular: #cfd3dc;--el-text-color-secondary: #a3a6ad;--el-text-color-placeholder: #8d9095;--el-text-color-disabled: #6c6e72;--el-border-color-darker: #636466;--el-border-color-dark: #58585b;--el-border-color: #4c4d4f;--el-border-color-light: #414243;--el-border-color-lighter: #363637;--el-border-color-extra-light: #2b2b2c;--el-fill-color-darker: #424243;--el-fill-color-dark: #39393a;--el-fill-color: #303030;--el-fill-color-light: #262727;--el-fill-color-lighter: #1d1d1d;--el-fill-color-extra-light: #191919;--el-fill-color-blank: var(--el-bg-color);--el-mask-color: rgba(0, 0, 0, .8);--el-mask-color-extra-light: rgba(0, 0, 0, .3);--el-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .36), 0px 8px 20px rgba(0, 0, 0, .72);--el-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .72);--el-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .72);--el-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .72), 0px 12px 32px #000000, 0px 8px 16px -8px #000000 !important;--w-e-textarea-bg-color: var(--el-bg-color);--w-e-textarea-color: var(--el-text-color-primary);--w-e-textarea-border-color: var(--el-border-color);--w-e-textarea-slight-border-color: var(--el-border-color-light);--w-e-textarea-slight-color: var(--el-border-color);--w-e-textarea-slight-bg-color: var(--el-bg-color-page);--w-e-toolbar-color: var(--el-text-color-primary);--w-e-toolbar-bg-color: var(--el-bg-color);--w-e-toolbar-active-color: var(--el-text-color-primary);--w-e-toolbar-active-bg-color: var(--el-bg-color);--w-e-toolbar-disabled-color: var(--el-text-color-disabled);--w-e-toolbar-border-color: var(--el-border-color);--w-e-modal-button-bg-color: var(--el-bg-color);--w-e-modal-button-border-color: var(--el-border-color)}:root{--el-font-family: PingFang SC, Arial, Hiragino Sans GB, Microsoft YaHei, sans-serif;--el-font-weight-primary: 400;--el-menu-item-height: 46px;--el-menu-sub-item-height: var(--el-menu-item-height);--el-menu-icon-width: 18px;--aside-width: 200px;--navbar-height: 50px;--color-white: #ffffff;--table-header-bg-color: #f8f8f8;--el-font-size-extra-large: 18px;--el-menu-base-level-padding: 16px;--el-menu-level-padding: 26px;--el-font-size-large: 16px;--el-font-size-medium: 15px;--el-font-size-base: 14px;--el-font-size-small: 13px;--el-font-size-extra-small: 12px;--el-bg-color: var(--color-white);--el-bg-color-page: #f6f6f6;--el-bg-color-overlay: #ffffff;--el-text-color-primary: #333333;--el-text-color-regular: #666666;--el-text-color-secondary: #999999;--el-text-color-placeholder: #a8abb2;--el-text-color-disabled: #c0c4cc;--el-border-color: #dcdfe6;--el-border-color-light: #e4e7ed;--el-border-color-lighter: #ebeef5;--el-border-color-extra-light: #f2f2f2;--el-border-color-dark: #d4d7de;--el-border-color-darker: #cdd0d6;--el-fill-color: #f0f2f5;--el-fill-color-light: #f8f8f8;--el-fill-color-lighter: #fafafa;--el-fill-color-extra-light: #fafcff;--el-fill-color-dark: #ebedf0;--el-fill-color-darker: #e6e8eb;--el-fill-color-blank: #ffffff;--el-mask-color: rgba(255, 255, 255, .5);--el-mask-color-extra-light: rgba(255, 255, 255, .22);-el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .08), 0px 12px 32px rgba(0, 0, 0, .12), 0px 8px 16px -8px rgba(0, 0, 0, .16)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:PingFang SC,Arial,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-right-6{right:-24px}.-top-8{top:-32px}.bottom-0{bottom:0}.left-0{left:0}.left-1\/2{left:50%}.right-4{right:16px}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:16px}.z-\[100\]{z-index:100}.\!m-0{margin:0!important}.m-0{margin:0}.m-1{margin:4px}.m-4{margin:16px}.m-5{margin:20px}.mx-1{margin-left:4px;margin-right:4px}.mx-10{margin-left:40px;margin-right:40px}.mx-2{margin-left:8px;margin-right:8px}.mx-4{margin-left:16px;margin-right:16px}.mx-\[10px\]{margin-left:10px;margin-right:10px}.mx-\[18px\]{margin-left:18px;margin-right:18px}.mx-\[30px\]{margin-left:30px;margin-right:30px}.mx-auto{margin-left:auto;margin-right:auto}.my-\[15px\]{margin-top:15px;margin-bottom:15px}.\!mb-0{margin-bottom:0!important}.\!mb-3{margin-bottom:12px!important}.\!mt-0{margin-top:0!important}.-mt-1{margin-top:-4px}.-mt-2{margin-top:-8px}.mb-0\.5{margin-bottom:2px}.mb-1{margin-bottom:4px}.mb-1\.5{margin-bottom:6px}.mb-10{margin-bottom:40px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-5{margin-bottom:20px}.mb-6{margin-bottom:24px}.mb-7{margin-bottom:28px}.mb-8{margin-bottom:32px}.mb-\[-16px\]{margin-bottom:-16px}.mb-\[10px\]{margin-bottom:10px}.mb-\[15px\]{margin-bottom:15px}.mb-\[16px\]{margin-bottom:16px}.mb-\[18px\]{margin-bottom:18px}.mb-\[20px\]{margin-bottom:20px}.mb-\[24px\]{margin-bottom:24px}.mb-auto{margin-bottom:auto}.ml-0\.5{margin-left:2px}.ml-1{margin-left:4px}.ml-2{margin-left:8px}.ml-2\.5{margin-left:10px}.ml-3{margin-left:12px}.ml-4{margin-left:16px}.ml-5{margin-left:20px}.ml-\[100px\]{margin-left:100px}.ml-\[101px\]{margin-left:101px}.ml-\[10px\]{margin-left:10px}.ml-\[14px\]{margin-left:14px}.ml-\[30px\]{margin-left:30px}.ml-\[40px\]{margin-left:40px}.ml-\[5px\]{margin-left:5px}.ml-\[6px\]{margin-left:6px}.ml-auto{margin-left:auto}.mr-1{margin-right:4px}.mr-2{margin-right:8px}.mr-3{margin-right:12px}.mr-4{margin-right:16px}.mr-5{margin-right:20px}.mr-6{margin-right:24px}.mr-\[10px\]{margin-right:10px}.mr-\[20px\]{margin-right:20px}.mr-\[35px\]{margin-right:35px}.mr-auto{margin-right:auto}.mt-0\.5{margin-top:2px}.mt-1{margin-top:4px}.mt-1\.5{margin-top:6px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-5{margin-top:20px}.mt-7{margin-top:28px}.mt-8{margin-top:32px}.mt-\[-10px\]{margin-top:-10px}.mt-\[10px\]{margin-top:10px}.mt-\[12px\]{margin-top:12px}.mt-\[15px\]{margin-top:15px}.mt-\[16px\]{margin-top:16px}.mt-\[18px\]{margin-top:18px}.mt-\[20px\]{margin-top:20px}.mt-\[30px\]{margin-top:30px}.mt-\[40px\]{margin-top:40px}.mt-\[4px\]{margin-top:4px}.mt-\[7px\]{margin-top:7px}.mt-\[8px\]{margin-top:8px}.mt-auto{margin-top:auto}.box-border{box-sizing:border-box}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-video{aspect-ratio:16 / 9}.size-full{width:100%;height:100%}.\!h-auto{height:auto!important}.\!h-full{height:100%!important}.h-10{height:40px}.h-16{height:64px}.h-28{height:112px}.h-5{height:20px}.h-64{height:256px}.h-\[122px\]{height:122px}.h-\[150px\]{height:150px}.h-\[16px\]{height:16px}.h-\[280px\]{height:280px}.h-\[34px\]{height:34px}.h-\[400px\]{height:400px}.h-\[50px\]{height:50px}.h-\[530px\]{height:530px}.h-\[58px\]{height:58px}.h-\[60px\]{height:60px}.h-\[90px\]{height:90px}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[320px\]{max-height:320px}.min-h-0{min-height:0px}.min-h-\[100px\]{min-height:100px}.min-h-\[350px\]{min-height:350px}.min-h-\[52px\]{min-height:52px}.min-h-\[56px\]{min-height:56px}.min-h-\[668px\]{min-height:668px}.min-h-screen{min-height:100vh}.\!w-40{width:160px!important}.\!w-\[120px\]{width:120px!important}.\!w-\[130px\]{width:130px!important}.\!w-\[140px\]{width:140px!important}.\!w-\[160px\]{width:160px!important}.\!w-\[180px\]{width:180px!important}.\!w-\[200px\]{width:200px!important}.\!w-\[260px\]{width:260px!important}.\!w-\[280px\]{width:280px!important}.\!w-full{width:100%!important}.w-1\/2{width:50%}.w-1\/4{width:25%}.w-10{width:40px}.w-14{width:56px}.w-16{width:64px}.w-20{width:80px}.w-28{width:112px}.w-48{width:192px}.w-5{width:20px}.w-60{width:240px}.w-64{width:256px}.w-80{width:320px}.w-\[120px\]{width:120px}.w-\[122px\]{width:122px}.w-\[130px\]{width:130px}.w-\[136px\]{width:136px}.w-\[140px\]{width:140px}.w-\[150px\]{width:150px}.w-\[160px\]{width:160px}.w-\[170px\]{width:170px}.w-\[180px\]{width:180px}.w-\[200px\]{width:200px}.w-\[20px\]{width:20px}.w-\[220px\]{width:220px}.w-\[260px\]{width:260px}.w-\[280px\]{width:280px}.w-\[300px\]{width:300px}.w-\[34px\]{width:34px}.w-\[380px\]{width:380px}.w-\[396px\]{width:396px}.w-\[400px\]{width:400px}.w-\[467px\]{width:467px}.w-\[480px\]{width:480px}.w-\[500px\]{width:500px}.w-\[560px\]{width:560px}.w-\[58px\]{width:58px}.w-\[60px\]{width:60px}.w-\[640px\]{width:640px}.w-\[86px\]{width:86px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[100px\]{min-width:100px}.min-w-\[1100px\]{min-width:1100px}.min-w-\[140px\]{min-width:140px}.min-w-\[200px\]{min-width:200px}.min-w-\[900px\]{min-width:900px}.max-w-52{max-width:208px}.max-w-\[1200px\]{max-width:1200px}.max-w-\[150px\]{max-width:150px}.max-w-\[320px\]{max-width:320px}.max-w-\[400px\]{max-width:400px}.max-w-\[900px\]{max-width:900px}.max-w-full{max-width:100%}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.basis-40{flex-basis:160px}.border-collapse{border-collapse:collapse}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.\!items-start{align-items:flex-start!important}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:2px}.gap-1{gap:4px}.gap-1\.5{gap:6px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-x-2{-moz-column-gap:8px;column-gap:8px}.gap-x-3{-moz-column-gap:12px;column-gap:12px}.gap-x-4{-moz-column-gap:16px;column-gap:16px}.gap-y-1{row-gap:4px}.gap-y-2{row-gap:8px}.gap-y-3{row-gap:12px}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2px * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(4px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4px * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(6px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(6px * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(8px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(8px * var(--tw-space-y-reverse))}.self-end{align-self:flex-end}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\!whitespace-normal{white-space:normal!important}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[3px\]{border-radius:3px}.rounded-\[8px\]{border-radius:8px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.\!border-2{border-width:2px!important}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.\!border-none{border-style:none!important}.\!border-red-500{--tw-border-opacity: 1 !important;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))!important}.border-\[\#dcdfe6\]{--tw-border-opacity: 1;border-color:rgb(220 223 230 / var(--tw-border-opacity, 1))}.border-\[\#e5e5e5\]{--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1))}.border-\[\#f2f2f2\]{--tw-border-opacity: 1;border-color:rgb(242 242 242 / var(--tw-border-opacity, 1))}.border-\[\#f5f5f5\]{--tw-border-opacity: 1;border-color:rgb(245 245 245 / var(--tw-border-opacity, 1))}.border-amber-100{--tw-border-opacity: 1;border-color:rgb(254 243 199 / var(--tw-border-opacity, 1))}.border-amber-200\/80{border-color:#fde68acc}.border-br{border-color:var(--el-border-color)}.border-br-light{border-color:var(--el-border-color-light)}.border-emerald-100{--tw-border-opacity: 1;border-color:rgb(209 250 229 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-primary{border-color:var(--el-color-primary)}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-200\/90{border-color:#e2e8f0e6}.\!bg-primary{background-color:var(--el-color-primary)!important}.bg-\[\#f3f8ff\]{--tw-bg-opacity: 1;background-color:rgb(243 248 255 / var(--tw-bg-opacity, 1))}.bg-\[rgba\(0\,0\,0\,0\.3\)\]{background-color:#0000004d}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/50{background-color:#fffbeb80}.bg-body{background-color:var(--el-bg-color)}.bg-br-extra-light{background-color:var(--el-border-color-extra-light)}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-fill-light{background-color:var(--el-fill-color-light)}.bg-fill-lighter{background-color:var(--el-fill-color-lighter)}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-50\/50{background-color:#f9fafb80}.bg-gray-50\/80{background-color:#f9fafbcc}.bg-page{background-color:var(--el-bg-color-page)}.bg-primary{background-color:var(--el-color-primary)}.bg-primary-light-9{background-color:var(--el-color-primary-light-9)}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-sky-500\/10{background-color:#0ea5e91a}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-white{background-color:var(--color-white)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-slate-50{--tw-gradient-from: #f8fafc var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-white{--tw-gradient-to: var(--color-white) var(--tw-gradient-to-position)}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.object-contain{-o-object-fit:contain;object-fit:contain}.\!p-0{padding:0!important}.\!p-3{padding:12px!important}.p-0{padding:0}.p-1{padding:4px}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.p-5{padding:20px}.p-\[15px\]{padding:15px}.px-1{padding-left:4px;padding-right:4px}.px-1\.5{padding-left:6px;padding-right:6px}.px-10{padding-left:40px;padding-right:40px}.px-2{padding-left:8px;padding-right:8px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.px-5{padding-left:20px;padding-right:20px}.px-6{padding-left:24px;padding-right:24px}.px-\[10px\]{padding-left:10px;padding-right:10px}.px-\[12px\]{padding-left:12px;padding-right:12px}.px-\[15px\]{padding-left:15px;padding-right:15px}.px-\[20px\]{padding-left:20px;padding-right:20px}.px-\[25px\]{padding-left:25px;padding-right:25px}.py-0\.5{padding-top:2px;padding-bottom:2px}.py-1\.5{padding-top:6px;padding-bottom:6px}.py-10{padding-top:40px;padding-bottom:40px}.py-2{padding-top:8px;padding-bottom:8px}.py-3\.5{padding-top:14px;padding-bottom:14px}.py-4{padding-top:16px;padding-bottom:16px}.py-5{padding-top:20px;padding-bottom:20px}.py-6{padding-top:24px;padding-bottom:24px}.py-8{padding-top:32px;padding-bottom:32px}.py-\[10px\]{padding-top:10px;padding-bottom:10px}.py-\[16px\]{padding-top:16px;padding-bottom:16px}.py-\[18px\]{padding-top:18px;padding-bottom:18px}.py-\[5px\]{padding-top:5px;padding-bottom:5px}.pb-1{padding-bottom:4px}.pb-2{padding-bottom:8px}.pb-3{padding-bottom:12px}.pb-5{padding-bottom:20px}.pb-6{padding-bottom:24px}.pb-8{padding-bottom:32px}.pb-\[10px\]{padding-bottom:10px}.pb-\[50px\]{padding-bottom:50px}.pb-\[8px\]{padding-bottom:8px}.pl-0{padding-left:0}.pl-2{padding-left:8px}.pl-4{padding-left:16px}.pl-5{padding-left:20px}.pl-\[120px\]{padding-left:120px}.pl-\[84px\]{padding-left:84px}.pl-\[90px\]{padding-left:90px}.pl-\[96px\]{padding-left:96px}.pr-1{padding-right:4px}.pr-10{padding-right:40px}.pr-2{padding-right:8px}.pr-4{padding-right:16px}.pr-8{padding-right:32px}.pt-1{padding-top:4px}.pt-1\.5{padding-top:6px}.pt-2{padding-top:8px}.pt-4{padding-top:16px}.pt-\[15px\]{padding-top:15px}.pt-\[20px\]{padding-top:20px}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:var( --el-font-size-extra-large)}.text-3xl{font-size:20px}.text-4xl{font-size:24px}.text-6xl{font-size:30px}.text-\[1\.125rem\]{font-size:1.125rem}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[17px\]{font-size:17px}.text-\[18px\]{font-size:18px}.text-base{font-size:var( --el-font-size-base)}.text-lg{font-size:var( --el-font-size-medium)}.text-sm{font-size:var( --el-font-size-small)}.text-xl{font-size:var( --el-font-size-large)}.text-xs{font-size:var(--el-font-size-extra-small)}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-10{line-height:40px}.leading-3{line-height:12px}.leading-5{line-height:20px}.leading-6{line-height:24px}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[0\.06em\]{letter-spacing:.06em}.tracking-tight{letter-spacing:-.025em}.\!text-red-700{--tw-text-opacity: 1 !important;color:rgb(185 28 28 / var(--tw-text-opacity, 1))!important}.\!text-white{color:var(--color-white)!important}.text-\[\#101010\]{--tw-text-opacity: 1;color:rgb(16 16 16 / var(--tw-text-opacity, 1))}.text-\[\#136bdf\]{--tw-text-opacity: 1;color:rgb(19 107 223 / var(--tw-text-opacity, 1))}.text-\[\#333\]{--tw-text-opacity: 1;color:rgb(51 51 51 / var(--tw-text-opacity, 1))}.text-\[\#999\]{--tw-text-opacity: 1;color:rgb(153 153 153 / var(--tw-text-opacity, 1))}.text-\[var\(--el-color-danger\)\]{color:var(--el-color-danger)}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-danger{color:var(--el-color-danger)}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-error{color:var(--el-color-error)}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-info{color:var(--el-color-info)}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-primary{color:var(--el-color-primary)}.text-red-100{--tw-text-opacity: 1;color:rgb(254 226 226 / var(--tw-text-opacity, 1))}.text-red-100\/85{color:#fee2e2d9}.text-red-100\/90{color:#fee2e2e6}.text-red-50{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-sky-600{--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.text-sky-700{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-success{color:var(--el-color-success)}.text-tx-regular{color:var(--el-text-color-regular)}.text-tx-secondary{color:var(--el-text-color-secondary)}.text-warning{color:var(--el-color-warning)}.text-white{color:var(--color-white)}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-40{opacity:.4}.shadow{--tw-shadow: var(--el-box-shadow);--tw-shadow-colored: var(--el-box-shadow);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-red-500\/10{--tw-shadow-color: rgb(239 68 68 / .1);--tw-shadow: var(--tw-shadow-colored)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-red-600\/70{--tw-ring-color: rgb(220 38 38 / .7)}.ring-red-600\/90{--tw-ring-color: rgb(220 38 38 / .9)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}:root .el-message{z-index:9999!important}:root .el-notification{z-index:9999!important}:root .el-overlay-dialog{display:flex;justify-content:center;align-items:center;min-height:100%;position:static}:root .el-overlay-dialog .el-dialog{--el-dialog-content-font-size: var(--el-font-size-base);--el-dialog-margin-top: 50px;max-width:calc(100vw - 30px);flex:none;display:flex;flex-direction:column;border-radius:5px}:root .el-overlay-dialog .el-dialog.body-padding .el-dialog__body{padding:0}:root .el-overlay-dialog .el-dialog .el-dialog__body{flex:1;padding:15px 20px}:root .el-overlay-dialog .el-dialog .el-dialog__header{font-size:var(--el-font-size-large)}:root .el-menu{-webkit-user-select:none;-moz-user-select:none;user-select:none}:root .el-drawer{--el-drawer-padding-primary: 16px}:root .el-drawer__header{margin-bottom:0;padding:13px 16px;border-bottom:1px solid var(--el-border-color-lighter)}:root .el-drawer__title{color:var(--el-text-color-primary)}:root .el-table{--el-table-header-text-color: var(--el-text-color-primary);--el-table-header-bg-color: var(--table-header-bg-color);font-size:var(--el-font-size-base)}:root .el-table thead th{font-weight:400}:root .el-input-group__prepend{background-color:var(--el-fill-color-blank)}:root .el-checkbox{--el-checkbox-font-size: var(--el-font-size-base)}:root .el-menu--popup-container.theme-light .el-menu .el-menu-item.is-active{border-right-width:2px;border-color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)}:root .el-menu--popup-container.theme-light .el-menu .el-menu-item:hover,:root .el-menu--popup-container.theme-light .el-menu .el-sub-menu__title:hover{color:var(--el-color-primary)}:root .el-menu--popup-container.theme-dark .el-menu .el-menu-item.is-active{background-color:var(--el-color-primary)}:root .el-message-box{--el-messagebox-width: 350px}:root .el-date-editor{--el-date-editor-datetimerange-width: 380px}:root .el-date-editor .el-range-input{font-size:var(--el-font-size-small)}:root .el-button--primary{--el-button-hover-link-text-color: var(--el-color-primary-light-3)}:root .el-button--success{--el-button-hover-link-text-color: var(--el-color-success-light-3)}:root .el-button--info{--el-button-hover-link-text-color: var(--el-color-info-light-3)}:root .el-button--warning{--el-button-hover-link-text-color: var(--el-color-warning-light-3)}:root .el-button--danger{--el-button-hover-link-text-color: var(--el-color-danger-light-3)}:root .el-image__error{font-size:12px}:root .el-tabs__nav-wrap:after{height:1px}:root .el-page-header__breadcrumb{margin-bottom:0}:root .el-input,:root .el-select,:root .el-textarea{--tw-shadow-color: var(--el-color-primary-light-8);--tw-shadow: var(--tw-shadow-colored);box-shadow:0 0 0 0 var(--tw-shadow-color)}:root .el-input:focus-within,:root .el-select:focus-within,:root .el-textarea:focus-within{box-shadow:0 0 0 2px var(--tw-shadow-color);border-radius:var(--el-input-border-radius, var(--el-border-radius-base));transition:box-shadow ease .1s}:root .el-checkbox__input,:root .el-radio__input{--tw-shadow-color: var(--el-color-primary-light-8);--tw-shadow: var(--tw-shadow-colored);border-radius:var(--el-checkbox-border-radius);box-shadow:0 0 0 0 var(--tw-shadow-color)}:root .el-checkbox__input:active,:root .el-radio__input:active{box-shadow:0 0 0 2px var(--tw-shadow-color);transition:box-shadow ease 0s}:root .el-radio__input{border-radius:var(--el-radio-input-border-radius)}:root .el-form-item.is-error .el-input,:root .el-form-item.is-error .el-select,:root .el-form-item.is-error .el-textarea,:root .el-form-item.is-error .el-radio__input,:root .el-form-item.is-error .el-checkbox{--tw-shadow-color: var(--el-color-danger-light-8);--tw-shadow: var(--tw-shadow-colored)}@media (max-width: 768px){.el-pagination>.el-pagination__jump{display:none!important}.el-pagination>.el-pagination__sizes{display:none!important}}.el-button{background-color:var(--el-button-bg-color, var(--el-color-white))}.el-button:focus{color:var(--el-button-text-color);border-color:var(--el-button-border-color);background-color:var(--el-button-bg-color)}.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color)}body{min-width:375px;overflow:hidden;font-size:var( --el-font-size-base);color:var(--el-text-color-primary)}.form-tips{margin-top:4px;font-size:var(--el-font-size-extra-small);line-height:24px;color:var(--el-text-color-secondary)}.clearfix:after{content:"";display:block;clear:both;visibility:hidden}#nprogress .bar{background-color:var(--el-color-primary)!important}.before\:mr-2:before{content:var(--tw-content);margin-right:8px}.before\:block:before{content:var(--tw-content);display:block}.before\:h-\[14px\]:before{content:var(--tw-content);height:14px}.before\:w-\[3px\]:before{content:var(--tw-content);width:3px}.before\:bg-primary:before{content:var(--tw-content);background-color:var(--el-color-primary)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:text-primary:hover{color:var(--el-color-primary)}.hover\:underline:hover{text-decoration-line:underline}.dark\:text-\[\#ffffff\]:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:flex{display:flex}.sm\:h-\[600px\]{height:600px}.sm\:w-80{width:320px}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:text-\[28px\]{font-size:28px}.sm\:text-sm{font-size:var( --el-font-size-small)}}@media (min-width: 768px){.md\:inline-block{display:inline-block}.md\:w-1\/3{width:33.333333%}.md\:w-1\/4{width:25%}.md\:w-\[420px\]{width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:ml-4{margin-left:16px}.lg\:mt-0{margin-top:0}.lg\:flex{display:flex}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (min-width: 1280px){.xl\:ml-20{margin-left:80px}.xl\:mr-4{margin-right:16px}.xl\:flex{display:flex}}.chat-notify-container[data-v-9276baf6]{position:fixed;top:72px;right:24px;z-index:3000;display:flex;flex-direction:column;gap:12px;max-width:360px;pointer-events:none}.chat-notify-container[data-v-9276baf6]>*{pointer-events:auto}.chat-notify-card[data-v-9276baf6]{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid rgba(34,197,94,.2);border-radius:12px;box-shadow:0 4px 20px #00000014,0 0 0 1px #22c55e0f;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}html.dark .chat-notify-card[data-v-9276baf6]{background:linear-gradient(135deg,#1e293b,#0f172a);border-color:#22c55e4d;box-shadow:0 4px 20px #0000004d}.chat-notify-card[data-v-9276baf6]:hover{transform:translate(-2px);box-shadow:0 6px 24px #0000001a,0 0 0 1px #22c55e1f}html.dark .chat-notify-card[data-v-9276baf6]:hover{box-shadow:0 6px 24px #0006}.chat-notify-icon[data-v-9276baf6]{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border-radius:10px}.chat-notify-icon-complete[data-v-9276baf6]{background:linear-gradient(135deg,#3b82f6,#2563eb)}.chat-notify-card-left[data-v-9276baf6]{border-color:#94a3b859;box-shadow:0 4px 20px #0000000f,0 0 0 1px #94a3b814}.chat-notify-icon-left[data-v-9276baf6]{background:linear-gradient(135deg,#94a3b8,#64748b)}.chat-notify-body[data-v-9276baf6]{flex:1;min-width:0}.chat-notify-title[data-v-9276baf6]{font-size:14px;font-weight:600;color:#0f172a;margin-bottom:4px}html.dark .chat-notify-title[data-v-9276baf6]{color:#f1f5f9}.chat-notify-desc[data-v-9276baf6]{font-size:13px;color:#475569;line-height:1.45}html.dark .chat-notify-desc[data-v-9276baf6]{color:#94a3b8}.patient-name[data-v-9276baf6]{font-weight:600;color:#16a34a}.doctor-name[data-v-9276baf6]{font-weight:600;color:#2563eb}.chat-notify-time[data-v-9276baf6]{font-size:12px;color:#94a3b8;margin-top:6px}html.dark .chat-notify-time[data-v-9276baf6]{color:#64748b}.chat-notify-close[data-v-9276baf6]{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;transition:color .2s,background .2s}.chat-notify-close[data-v-9276baf6]:hover{color:#64748b;background:#0000000d}html.dark .chat-notify-close[data-v-9276baf6]:hover{color:#94a3b8;background:#ffffff14}.chat-notify-slide-enter-active[data-v-9276baf6],.chat-notify-slide-leave-active[data-v-9276baf6]{transition:all .3s ease}.chat-notify-slide-enter-from[data-v-9276baf6],.chat-notify-slide-leave-to[data-v-9276baf6]{opacity:0;transform:translate(24px)}.chat-notify-slide-move[data-v-9276baf6]{transition:transform .3s ease}.rd-toast[data-v-7c5efeca]{position:fixed;right:24px;bottom:24px;z-index:3000;width:400px;max-width:calc(100vw - 48px);max-height:calc(100vh - 120px);display:flex;flex-direction:column;background:#fff;border:1px solid rgba(239,68,68,.25);border-left:4px solid #ef4444;border-radius:12px;box-shadow:0 8px 28px #0f172a24;overflow:hidden;font-size:13px;color:#0f172a}html.dark .rd-toast[data-v-7c5efeca]{background:#0f172a;border-color:#f8717159;color:#f1f5f9;box-shadow:0 8px 28px #00000073}.rd-toast--level-1[data-v-7c5efeca]{border-left-color:#f97316}.rd-toast--level-1 .rd-toast__header[data-v-7c5efeca]{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff}.rd-toast--level-2[data-v-7c5efeca]{border-left-color:#dc2626;border-color:#dc262673}.rd-toast--level-2 .rd-toast__header[data-v-7c5efeca]{background:linear-gradient(135deg,#ef4444,#b91c1c);color:#fff}.rd-toast--level-1 .rd-toast__snoozed[data-v-7c5efeca],.rd-toast--level-2 .rd-toast__snoozed[data-v-7c5efeca]{background:#ffffff38;color:#fff}.rd-toast--level-1 .rd-toast__min[data-v-7c5efeca],.rd-toast--level-2 .rd-toast__min[data-v-7c5efeca]{color:#ffffffe6}.rd-toast--level-1 .rd-toast__min[data-v-7c5efeca]:hover{background:#ffffff2e}.rd-toast--shake[data-v-7c5efeca]{animation:rd-shake-7c5efeca .6s ease-in-out}@keyframes rd-shake-7c5efeca{0%,to{transform:translate(0)}15%{transform:translate(-6px)}30%{transform:translate(6px)}45%{transform:translate(-4px)}60%{transform:translate(4px)}75%{transform:translate(-2px)}}.rd-toast__header[data-v-7c5efeca]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px 10px 14px;background:#fef2f2;color:#991b1b}html.dark .rd-toast__header[data-v-7c5efeca]{background:#ef44441f;color:#fca5a5}.rd-toast__title[data-v-7c5efeca]{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;min-width:0}.rd-toast__warn[data-v-7c5efeca]{font-size:15px;line-height:1}.rd-toast__snoozed[data-v-7c5efeca]{margin-left:4px;padding:1px 8px;border-radius:999px;background:#ef44441f;font-size:12px;font-weight:500}.rd-toast__min[data-v-7c5efeca]{flex-shrink:0;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:transparent;color:inherit;cursor:pointer;opacity:.85}.rd-toast__min[data-v-7c5efeca]:hover{background:#0000000f;opacity:1}.rd-toast--minimized[data-v-7c5efeca]{width:auto;border-left-width:1px}.rd-toast__bubble[data-v-7c5efeca]{display:flex;align-items:center;gap:6px;padding:10px 14px;border:none;background:transparent;color:#b91c1c;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}html.dark .rd-toast__bubble[data-v-7c5efeca]{color:#fca5a5}.rd-toast__list[data-v-7c5efeca]{flex:1;min-height:0;overflow-y:auto}.rd-item[data-v-7c5efeca]{padding:10px 14px;border-top:1px solid rgba(15,23,42,.06)}html.dark .rd-item[data-v-7c5efeca]{border-top-color:#ffffff14}.rd-item--severe[data-v-7c5efeca]{background:#ef44440a}html.dark .rd-item--severe[data-v-7c5efeca]{background:#ef444414}.rd-item__line[data-v-7c5efeca]{display:flex;align-items:center;flex-wrap:wrap;gap:6px;line-height:1.5}.rd-item__line--status[data-v-7c5efeca]{margin-top:4px}.rd-item__name[data-v-7c5efeca]{font-size:14px;font-weight:600}.rd-item__meta[data-v-7c5efeca]{color:#475569}html.dark .rd-item__meta[data-v-7c5efeca]{color:#94a3b8}.rd-item__tag[data-v-7c5efeca]{font-size:12px;color:#64748b}html.dark .rd-item__tag[data-v-7c5efeca]{color:#94a3b8}.rd-chip[data-v-7c5efeca]{display:inline-flex;align-items:center;padding:0 8px;height:20px;border-radius:999px;font-size:12px;font-weight:600;color:#fff;background:#ef4444}.rd-chip--missed[data-v-7c5efeca]{background:#dc2626}.rd-chip--severe[data-v-7c5efeca]{background:#991b1b;font-weight:700}.rd-item__actions[data-v-7c5efeca]{display:flex;gap:6px;margin-top:8px}.rd-item__actions[data-v-7c5efeca] .el-button+.el-button{margin-left:0}.rd-contact[data-v-7c5efeca]{display:grid;grid-template-columns:1fr;gap:6px;margin-top:8px;padding:8px;border-radius:8px;background:#3b82f60f}html.dark .rd-contact[data-v-7c5efeca]{background:#3b82f624}.rd-contact__date[data-v-7c5efeca] .el-input{width:100%}.rd-contact__btns[data-v-7c5efeca]{display:flex;gap:6px;justify-content:flex-end}.rd-contact__btns[data-v-7c5efeca] .el-button+.el-button{margin-left:0}.rd-toast__more[data-v-7c5efeca]{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-top:1px solid rgba(15,23,42,.06);color:#64748b;font-size:12px}html.dark .rd-toast__more[data-v-7c5efeca]{border-top-color:#ffffff14;color:#94a3b8}.rd-toast__footer[data-v-7c5efeca]{padding:8px 14px 12px;border-top:1px solid rgba(15,23,42,.06);display:flex;justify-content:flex-end}html.dark .rd-toast__footer[data-v-7c5efeca]{border-top-color:#ffffff14}body.h5-mode .rd-toast[data-v-7c5efeca]{left:0;right:0;bottom:0;width:auto;max-width:none;border-radius:12px 12px 0 0;border-left-width:1px;max-height:70vh}body.h5-mode .rd-item__actions[data-v-7c5efeca]{flex-wrap:wrap}.rd-toast-fade-enter-active[data-v-7c5efeca],.rd-toast-fade-leave-active[data-v-7c5efeca]{transition:opacity .25s ease,transform .25s ease}.rd-toast-fade-enter-from[data-v-7c5efeca],.rd-toast-fade-leave-to[data-v-7c5efeca]{opacity:0;transform:translateY(12px)}.rd-modal__title[data-v-7c5efeca]{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:600;color:#b91c1c}html.dark .rd-modal__title[data-v-7c5efeca]{color:#fca5a5}.rd-modal__body[data-v-7c5efeca]{display:flex;flex-direction:column;gap:6px}.rd-modal__name[data-v-7c5efeca]{font-size:18px;font-weight:700}.rd-modal__meta[data-v-7c5efeca]{color:#475569}html.dark .rd-modal__meta[data-v-7c5efeca]{color:#94a3b8}.rd-contact--modal[data-v-7c5efeca]{margin-top:10px}.rd-modal__footer[data-v-7c5efeca]{display:flex;justify-content:flex-end;gap:8px}.rd-modal__footer[data-v-7c5efeca] .el-button+.el-button{margin-left:0}.rd-toast-popper{z-index:3200!important} diff --git a/server/public/admin/assets/index-BMxpoMf4.js b/server/public/admin/assets/index-B9F7ZtBx.js similarity index 99% rename from server/public/admin/assets/index-BMxpoMf4.js rename to server/public/admin/assets/index-B9F7ZtBx.js index 807c7c0fc..8fe89bde2 100644 --- a/server/public/admin/assets/index-BMxpoMf4.js +++ b/server/public/admin/assets/index-B9F7ZtBx.js @@ -1 +1 @@ -import{o as O,aC as T,ap as nt,ac as lt,bn as st,q as r,r as m,s as t,v as i,D as o,u as _,cV as it,w as ot,cQ as rt,L as c,T as s,P as D,bz as dt,K as mt,bL as ut,cR as ct,F as S,G as C,O as w,bi as pt,bh as _t,ch as F,ae as p,cg as gt,cW as bt,bl as ht,a0 as ft,bC as yt,bk as vt,bY as kt,cL as wt,t as M,ci as xt,M as Nt,p as V,E as St}from"./.pnpm-CyuAWpdG.js";import{x as Ct}from"./first_visit-BxZL4Ke4.js";import{_ as Vt}from"./index-Dxvz9lb1.js";const $t={class:"registration-stats","element-loading-text":"正在汇总权限范围内的挂号与预约数据"},Mt={class:"page-heading"},Et={class:"heading-copy"},zt={class:"heading-mark"},Lt={class:"heading-actions"},Tt={class:"scope-chip"},Dt={key:0,class:"update-time"},Ft={class:"filter-strip"},Ot={class:"filter-item"},Pt={class:"filter-item filter-item--time"},At={class:"filter-item"},Bt={class:"filter-summary"},Rt={class:"metric-grid","aria-label":"挂号统计核心指标"},Ut={class:"metric-card metric-card--teal"},Wt={class:"metric-icon"},qt={class:"metric-card metric-card--blue"},Gt={class:"metric-icon"},It={class:"metric-card metric-card--violet"},Yt={class:"metric-icon"},jt={class:"metric-card metric-card--amber"},Ht={class:"metric-icon"},Kt={class:"panel employee-panel"},Qt={class:"panel-heading"},Jt={class:"panel-badge"},Xt={key:0,class:"dept-dot"},Zt={key:2},te={class:"panel target-panel"},ee={class:"panel-heading"},ae={class:"panel-badge"},ne={class:"target-layout"},le={class:"target-summary"},se={class:"target-numbers"},ie={class:"is-teal"},oe={key:0},re={key:1,class:"target-empty"},de={class:"target-chart-wrap"},me={class:"ranking-grid"},ue={class:"panel ranking-panel"},ce={class:"panel-heading"},pe={key:0,class:"ranking-list"},_e={class:"rank-track"},ge={class:"panel ranking-panel"},be={class:"panel-heading"},he={key:0,class:"ranking-list ranking-list--blue"},fe={class:"rank-track"},ye={class:"panel ranking-panel"},ve={class:"panel-heading"},ke={key:0,class:"ranking-list ranking-list--blue"},we={class:"rank-track"},xe={class:"panel department-panel"},Ne={class:"panel-heading"},Se={class:"panel-badge"},Ce={class:"data-note"},Ve=O({name:"firstVisitRegistrationStatsPage"}),$e=O({...Ve,setup(Me){const E=()=>({meta:{time_type:"today",time_label:"今日",start_date:"",end_date:"",generated_at:"",scope_value:4,scope_label:"",selected_dept_name:"",selected_assistant_name:"",member_count:0,registration_rule:"",appointment_rule:"",performance_rule:""},filters:{departments:[],assistants:[]},summary:{registration_count:0,registration_compare_count:0,registration_compare_rate:null,appointment_count:0,appointment_compare_count:0,appointment_compare_rate:null,order_count:0,order_amount:0,range_label:"今日"},employee_rows:[],rankings:{performance:[],registrations:[],appointments:[]},departments:[],target:{year:new Date().getFullYear(),target_amount:0,actual_amount:0,completion_rate:null,department_count:0,scope_note:"",months:[],target_cumulative:[],actual_cumulative:[]}}),x=Nt(!1),a=T(E()),u=T({time_type:"today"}),P=[{label:"今日",value:"today"},{label:"昨天",value:"yesterday"},{label:"本周",value:"week"},{label:"本月",value:"month"}],A={label:"name",value:"id",children:"children"},B=V(()=>Math.max(0,...a.rankings.performance.map(n=>Number(n.value)||0))),R=V(()=>Math.max(0,...a.rankings.registrations.map(n=>Number(n.value)||0))),U=V(()=>Math.max(0,...a.rankings.appointments.map(n=>Number(n.value)||0))),W=V(()=>({animationDuration:450,grid:{left:18,right:18,top:18,bottom:12,containLabel:!0},tooltip:{trigger:"axis",valueFormatter:n=>g(n)},xAxis:{type:"category",boundaryGap:!1,data:a.target.months,axisLine:{lineStyle:{color:"#d9e1e8"}},axisTick:{show:!1},axisLabel:{color:"#7d8b9c",fontSize:11}},yAxis:{type:"value",splitNumber:3,axisLabel:{color:"#8b98a8",formatter:n=>G(n)},splitLine:{lineStyle:{color:"#eef2f5"}}},series:[{name:"累计完成",type:"line",smooth:!0,symbol:"circle",symbolSize:5,data:a.target.actual_cumulative,lineStyle:{color:"#139a8c",width:3},itemStyle:{color:"#ffffff",borderColor:"#139a8c",borderWidth:2},areaStyle:{color:"rgba(19,154,140,.08)"}},{name:"累计目标",type:"line",smooth:!0,showSymbol:!1,data:a.target.target_cumulative,lineStyle:{color:"#5f86e8",width:2,type:"dashed"}}]}));async function y(){x.value=!0;try{const n={time_type:u.time_type};u.dept_id&&(n.dept_id=Number(u.dept_id)),u.assistant_id&&(n.assistant_id=Number(u.assistant_id));const e=await Ct(n);Object.assign(a,E(),e||{})}catch(n){St.error((n==null?void 0:n.message)||"挂号统计加载失败,请稍后重试")}finally{x.value=!1}}function q(){delete u.assistant_id,y()}function v(n){return Number(n||0).toLocaleString("zh-CN",{maximumFractionDigits:0})}function g(n){return`¥${Number(n||0).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}`}function G(n){return Math.abs(n)>=1e4?`${(n/1e4).toFixed(n>=1e5?0:1)}万`:`${Math.round(n)}`}function I(n){return n==null?"未设置":`${Number(n).toFixed(1)}%`}function Y(n){return Math.min(100,Math.max(0,Number(n)||0))}function z(n){if(n==null)return"上期无数据,暂不计算环比";const e=Number(n);return e===0?"与上期持平":`${e>0?"较上期增长":"较上期下降"} ${Math.abs(e).toFixed(1)}%`}function N(n){if(n==null)return"—";const e=Number(n);return`${e>0?"+":""}${e.toFixed(1)}%`}function f(n){return n==null||Number(n)===0?"is-neutral":Number(n)>0?"is-up":"is-down"}function $(n,e){return e<=0?"0%":`${Math.max(4,Math.min(100,Number(n||0)/e*100))}%`}function j(n){return String(n||"员").trim().slice(-1)}function H(n,e){return Number((n==null?void 0:n.order_amount)||0)-Number((e==null?void 0:e.order_amount)||0)}return nt(y),(n,e)=>{const h=ot,K=mt,Q=ut,J=ct,X=pt,Z=_t,tt=ft,d=ht,k=yt,L=vt,et=kt,at=st;return lt((r(),m("div",$t,[t("header",Mt,[t("div",Et,[t("span",zt,[i(h,null,{default:o(()=>[i(_(it))]),_:1})]),e[3]||(e[3]=t("div",null,[t("h1",null,"挂号统计"),t("p",null,"挂号、预约、诊单与目标数据按当前角色和部门权限实时汇总")],-1))]),t("div",Lt,[t("span",Tt,[i(h,null,{default:o(()=>[i(_(rt))]),_:1}),c(s(a.meta.scope_label||"数据范围"),1)]),a.meta.generated_at?(r(),m("span",Dt,"更新于 "+s(a.meta.generated_at),1)):D("",!0),i(K,{icon:_(dt),loading:x.value,onClick:y},{default:o(()=>[...e[4]||(e[4]=[c("刷新",-1)])]),_:1},8,["icon","loading"])])]),t("section",Ft,[t("div",Ot,[e[5]||(e[5]=t("span",null,"部门",-1)),i(Q,{modelValue:u.dept_id,"onUpdate:modelValue":e[0]||(e[0]=l=>u.dept_id=l),data:a.filters.departments,props:A,"node-key":"id",clearable:"",filterable:"","check-strictly":"","default-expand-all":"",placeholder:"全部可见部门",class:"dept-select",onChange:q},null,8,["modelValue","data"])]),t("div",Pt,[e[6]||(e[6]=t("span",null,"时间",-1)),i(J,{modelValue:u.time_type,"onUpdate:modelValue":e[1]||(e[1]=l=>u.time_type=l),options:P,onChange:y},null,8,["modelValue"])]),t("div",At,[e[7]||(e[7]=t("span",null,"员工",-1)),i(Z,{modelValue:u.assistant_id,"onUpdate:modelValue":e[2]||(e[2]=l=>u.assistant_id=l),clearable:"",filterable:"",placeholder:"全部可见员工",class:"employee-select",onChange:y},{default:o(()=>[(r(!0),m(S,null,C(a.filters.assistants,l=>(r(),w(X,{key:l.id,label:l.name,value:Number(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),t("div",Bt,[t("strong",null,s(a.meta.start_date||"—"),1),t("span",null,"至 "+s(a.meta.end_date||"—")+" · "+s(a.meta.member_count||0)+" 位员工",1)])]),t("section",Rt,[t("article",Ut,[t("div",Wt,[i(h,null,{default:o(()=>[i(_(F))]),_:1})]),t("div",null,[t("span",null,s(a.meta.time_label||"今日")+"总挂号",1),t("strong",null,s(v(a.summary.registration_count)),1),t("small",{class:p(f(a.summary.registration_compare_rate))},s(z(a.summary.registration_compare_rate)),3)])]),t("article",qt,[t("div",Gt,[i(h,null,{default:o(()=>[i(_(gt))]),_:1})]),t("div",null,[t("span",null,s(a.meta.time_label||"今日")+"总预约",1),t("strong",null,s(v(a.summary.appointment_count)),1),t("small",{class:p(f(a.summary.appointment_compare_rate))},s(z(a.summary.appointment_compare_rate)),3)])]),t("article",It,[t("div",Yt,[i(h,null,{default:o(()=>[i(_(bt))]),_:1})]),t("div",null,[t("span",null,s(a.meta.time_label||"今日")+"总诊单",1),t("strong",null,s(v(a.summary.order_count)),1),e[8]||(e[8]=t("small",null,"排除取消、拒收和退款订单",-1))])]),t("article",jt,[t("div",Ht,[i(h,null,{default:o(()=>[i(_(F))]),_:1})]),t("div",null,[t("span",null,s(a.meta.time_label||"今日")+"总业绩",1),t("strong",null,s(g(a.summary.order_amount)),1),e[9]||(e[9]=t("small",null,"按业务订单创建人归属",-1))])])]),t("section",Kt,[t("div",Qt,[e[10]||(e[10]=t("div",null,[t("h2",null,"本组员工挂号与预约统计"),t("p",null,"挂号按已支付且实收低于 10 元的支付订单统计;预约按预约记录统计")],-1)),t("span",Jt,s(a.meta.time_label||"当前范围"),1)]),i(L,{data:a.employee_rows,"row-key":"id","tree-props":{children:"children"},"default-expand-all":"",class:"stats-table"},{empty:o(()=>[i(k,{description:"当前权限与筛选范围内暂无医助数据"})]),default:o(()=>[i(d,{prop:"name",label:"部门 / 员工","min-width":"250",fixed:"left"},{default:o(({row:l})=>[t("div",{class:p(["name-cell",`is-${l.row_type}`])},[l.row_type==="department"?(r(),m("span",Xt)):(r(),w(tt,{key:1,size:26},{default:o(()=>[c(s(j(l.name)),1)]),_:2},1024)),t("strong",null,s(l.name),1),l.row_type==="department"?(r(),m("em",Zt,s(l.member_count)+" 人",1)):D("",!0)],2)]),_:1}),i(d,{prop:"registration_count",label:`${a.meta.time_label||"当前"}挂号`,"min-width":"118",align:"right",sortable:""},null,8,["label"]),i(d,{prop:"appointment_count",label:`${a.meta.time_label||"当前"}预约`,"min-width":"118",align:"right",sortable:""},null,8,["label"]),i(d,{prop:"tomorrow_count",label:"明日预约","min-width":"105",align:"right",sortable:""}),i(d,{prop:"day_after_count",label:"后日预约","min-width":"105",align:"right",sortable:""}),i(d,{prop:"order_count",label:"诊单","min-width":"86",align:"right",sortable:""}),i(d,{label:"业绩","min-width":"128",align:"right",sortable:"","sort-method":H},{default:o(({row:l})=>[c(s(g(l.order_amount)),1)]),_:1}),i(d,{label:"挂号较上期","min-width":"112",align:"right"},{default:o(({row:l})=>[t("span",{class:p(["rate-text",f(l.registration_compare_rate)])},s(N(l.registration_compare_rate)),3)]),_:1}),i(d,{label:"预约较上期","min-width":"112",align:"right"},{default:o(({row:l})=>[t("span",{class:p(["rate-text",f(l.appointment_compare_rate)])},s(N(l.appointment_compare_rate)),3)]),_:1}),i(d,{label:"状态","min-width":"92",align:"center"},{default:o(()=>[...e[11]||(e[11]=[t("span",{class:"status-pill"},[t("i"),c("正常")],-1)])]),_:1})]),_:1},8,["data"])]),t("section",te,[t("div",ee,[t("div",null,[e[12]||(e[12]=t("h2",null,"一诊诊金目标追踪",-1)),t("p",null,s(a.target.year)+" 年 · "+s(a.target.scope_note),1)]),t("span",ae,s(a.target.department_count||0)+" 个目标部门",1)]),t("div",ne,[t("div",le,[t("div",se,[t("div",null,[e[13]||(e[13]=t("span",null,"年度目标",-1)),t("strong",null,s(g(a.target.target_amount)),1)]),t("div",null,[e[14]||(e[14]=t("span",null,"已完成",-1)),t("strong",null,s(g(a.target.actual_amount)),1)]),t("div",null,[e[15]||(e[15]=t("span",null,"完成率",-1)),t("strong",ie,s(I(a.target.completion_rate)),1)])]),i(et,{percentage:Y(a.target.completion_rate),"show-text":!1,"stroke-width":13,color:"#139a8c"},null,8,["percentage"]),Number(a.target.target_amount)>0?(r(),m("p",oe," 尚差 "+s(g(Math.max(0,Number(a.target.target_amount)-Number(a.target.actual_amount))))+" 达成年度目标 ",1)):(r(),m("p",re,"当前范围未维护可用目标,实际业绩仍按统一口径正常统计。"))]),t("div",de,[e[16]||(e[16]=t("div",{class:"chart-legend"},[t("i",{class:"actual"}),c("累计完成 "),t("i",{class:"target"}),c("累计目标")],-1)),i(_(wt),{class:"target-chart",option:W.value,autoresize:""},null,8,["option"])])])]),t("section",me,[t("article",ue,[t("div",ce,[t("div",null,[t("h2",null,s(a.meta.time_label||"今日")+"业绩 TOP",1),e[17]||(e[17]=t("p",null,"按业务订单创建人排序",-1))]),e[18]||(e[18]=t("span",{class:"panel-badge"},"金额",-1))]),a.rankings.performance.length?(r(),m("div",pe,[(r(!0),m(S,null,C(a.rankings.performance,(l,b)=>(r(),m("div",{key:`performance-${l.admin_id}`,class:"ranking-row"},[t("b",{class:p({"is-top":b<3})},s(b+1),3),t("span",null,[c(s(l.name),1),t("small",null,s(l.count)+" 单",1)]),t("div",_e,[t("i",{style:M({width:$(l.value,B.value)})},null,4)]),t("strong",null,s(g(l.value)),1)]))),128))])):(r(),w(k,{key:1,"image-size":52,description:"暂无业绩数据"}))]),t("article",ge,[t("div",be,[t("div",null,[t("h2",null,s(a.meta.time_label||"今日")+"挂号 TOP",1),e[19]||(e[19]=t("p",null,"按低于 10 元的已支付订单笔数排序",-1))]),e[20]||(e[20]=t("span",{class:"panel-badge"},"挂号",-1))]),a.rankings.registrations.length?(r(),m("div",he,[(r(!0),m(S,null,C(a.rankings.registrations,(l,b)=>(r(),m("div",{key:`registration-${l.admin_id}`,class:"ranking-row"},[t("b",{class:p({"is-top":b<3})},s(b+1),3),t("span",null,[c(s(l.name),1),e[21]||(e[21]=t("small",null,"已支付小额订单",-1))]),t("div",fe,[t("i",{style:M({width:$(l.value,R.value)})},null,4)]),t("strong",null,s(v(l.value))+" 笔",1)]))),128))])):(r(),w(k,{key:1,"image-size":52,description:"暂无挂号数据"}))]),t("article",ye,[t("div",ve,[t("div",null,[t("h2",null,s(a.meta.time_label||"今日")+"预约 TOP",1),e[22]||(e[22]=t("p",null,"按有效预约记录数量排序",-1))]),e[23]||(e[23]=t("span",{class:"panel-badge"},"预约",-1))]),a.rankings.appointments.length?(r(),m("div",ke,[(r(!0),m(S,null,C(a.rankings.appointments,(l,b)=>(r(),m("div",{key:`appointment-${l.admin_id}`,class:"ranking-row"},[t("b",{class:p({"is-top":b<3})},s(b+1),3),t("span",null,[c(s(l.name),1),e[24]||(e[24]=t("small",null,"有效预约",-1))]),t("div",we,[t("i",{style:M({width:$(l.value,U.value)})},null,4)]),t("strong",null,s(v(l.value))+" 个",1)]))),128))])):(r(),w(k,{key:1,"image-size":52,description:"暂无预约数据"}))])]),t("section",xe,[t("div",Ne,[e[25]||(e[25]=t("div",null,[t("h2",null,"按部门统计"),t("p",null,"员工按最深层有效归属部门唯一计入,避免多部门重复累计")],-1)),t("span",Se,s(a.departments.length)+" 个部门",1)]),i(L,{data:a.departments,class:"stats-table department-table"},{empty:o(()=>[i(k,{description:"当前范围暂无部门汇总"})]),default:o(()=>[i(d,{prop:"name",label:"部门","min-width":"220"},{default:o(({row:l})=>[t("strong",null,s(l.name),1)]),_:1}),i(d,{prop:"member_count",label:"人数","min-width":"90",align:"right",sortable:""}),i(d,{prop:"registration_count",label:`${a.meta.time_label||"当前"}挂号`,"min-width":"118",align:"right",sortable:""},null,8,["label"]),i(d,{prop:"appointment_count",label:`${a.meta.time_label||"当前"}预约`,"min-width":"118",align:"right",sortable:""},null,8,["label"]),i(d,{prop:"tomorrow_count",label:"明日预约","min-width":"105",align:"right",sortable:""}),i(d,{prop:"order_count",label:"诊单","min-width":"90",align:"right",sortable:""}),i(d,{label:"业绩","min-width":"130",align:"right"},{default:o(({row:l})=>[c(s(g(l.order_amount)),1)]),_:1}),i(d,{label:"挂号环比","min-width":"110",align:"right"},{default:o(({row:l})=>[t("span",{class:p(["rate-text",f(l.registration_compare_rate)])},s(N(l.registration_compare_rate)),3)]),_:1}),i(d,{label:"预约环比","min-width":"110",align:"right"},{default:o(({row:l})=>[t("span",{class:p(["rate-text",f(l.appointment_compare_rate)])},s(N(l.appointment_compare_rate)),3)]),_:1})]),_:1},8,["data"])]),t("footer",Ce,[i(h,null,{default:o(()=>[i(_(xt))]),_:1}),t("span",null,s(a.meta.registration_rule)+";"+s(a.meta.appointment_rule)+";"+s(a.meta.performance_rule)+"。",1)])])),[[at,x.value]])}}}),Te=Vt($e,[["__scopeId","data-v-31f07bda"]]);export{Te as default}; +import{o as O,aC as T,ap as nt,ac as lt,bn as st,q as r,r as m,s as t,v as i,D as o,u as _,cV as it,w as ot,cQ as rt,L as c,T as s,P as D,bz as dt,K as mt,bL as ut,cR as ct,F as S,G as C,O as w,bi as pt,bh as _t,ch as F,ae as p,cg as gt,cW as bt,bl as ht,a0 as ft,bC as yt,bk as vt,bY as kt,cL as wt,t as M,ci as xt,M as Nt,p as V,E as St}from"./.pnpm-CyuAWpdG.js";import{x as Ct}from"./first_visit-B5IgLifl.js";import{_ as Vt}from"./index-Bkarz3gO.js";const $t={class:"registration-stats","element-loading-text":"正在汇总权限范围内的挂号与预约数据"},Mt={class:"page-heading"},Et={class:"heading-copy"},zt={class:"heading-mark"},Lt={class:"heading-actions"},Tt={class:"scope-chip"},Dt={key:0,class:"update-time"},Ft={class:"filter-strip"},Ot={class:"filter-item"},Pt={class:"filter-item filter-item--time"},At={class:"filter-item"},Bt={class:"filter-summary"},Rt={class:"metric-grid","aria-label":"挂号统计核心指标"},Ut={class:"metric-card metric-card--teal"},Wt={class:"metric-icon"},qt={class:"metric-card metric-card--blue"},Gt={class:"metric-icon"},It={class:"metric-card metric-card--violet"},Yt={class:"metric-icon"},jt={class:"metric-card metric-card--amber"},Ht={class:"metric-icon"},Kt={class:"panel employee-panel"},Qt={class:"panel-heading"},Jt={class:"panel-badge"},Xt={key:0,class:"dept-dot"},Zt={key:2},te={class:"panel target-panel"},ee={class:"panel-heading"},ae={class:"panel-badge"},ne={class:"target-layout"},le={class:"target-summary"},se={class:"target-numbers"},ie={class:"is-teal"},oe={key:0},re={key:1,class:"target-empty"},de={class:"target-chart-wrap"},me={class:"ranking-grid"},ue={class:"panel ranking-panel"},ce={class:"panel-heading"},pe={key:0,class:"ranking-list"},_e={class:"rank-track"},ge={class:"panel ranking-panel"},be={class:"panel-heading"},he={key:0,class:"ranking-list ranking-list--blue"},fe={class:"rank-track"},ye={class:"panel ranking-panel"},ve={class:"panel-heading"},ke={key:0,class:"ranking-list ranking-list--blue"},we={class:"rank-track"},xe={class:"panel department-panel"},Ne={class:"panel-heading"},Se={class:"panel-badge"},Ce={class:"data-note"},Ve=O({name:"firstVisitRegistrationStatsPage"}),$e=O({...Ve,setup(Me){const E=()=>({meta:{time_type:"today",time_label:"今日",start_date:"",end_date:"",generated_at:"",scope_value:4,scope_label:"",selected_dept_name:"",selected_assistant_name:"",member_count:0,registration_rule:"",appointment_rule:"",performance_rule:""},filters:{departments:[],assistants:[]},summary:{registration_count:0,registration_compare_count:0,registration_compare_rate:null,appointment_count:0,appointment_compare_count:0,appointment_compare_rate:null,order_count:0,order_amount:0,range_label:"今日"},employee_rows:[],rankings:{performance:[],registrations:[],appointments:[]},departments:[],target:{year:new Date().getFullYear(),target_amount:0,actual_amount:0,completion_rate:null,department_count:0,scope_note:"",months:[],target_cumulative:[],actual_cumulative:[]}}),x=Nt(!1),a=T(E()),u=T({time_type:"today"}),P=[{label:"今日",value:"today"},{label:"昨天",value:"yesterday"},{label:"本周",value:"week"},{label:"本月",value:"month"}],A={label:"name",value:"id",children:"children"},B=V(()=>Math.max(0,...a.rankings.performance.map(n=>Number(n.value)||0))),R=V(()=>Math.max(0,...a.rankings.registrations.map(n=>Number(n.value)||0))),U=V(()=>Math.max(0,...a.rankings.appointments.map(n=>Number(n.value)||0))),W=V(()=>({animationDuration:450,grid:{left:18,right:18,top:18,bottom:12,containLabel:!0},tooltip:{trigger:"axis",valueFormatter:n=>g(n)},xAxis:{type:"category",boundaryGap:!1,data:a.target.months,axisLine:{lineStyle:{color:"#d9e1e8"}},axisTick:{show:!1},axisLabel:{color:"#7d8b9c",fontSize:11}},yAxis:{type:"value",splitNumber:3,axisLabel:{color:"#8b98a8",formatter:n=>G(n)},splitLine:{lineStyle:{color:"#eef2f5"}}},series:[{name:"累计完成",type:"line",smooth:!0,symbol:"circle",symbolSize:5,data:a.target.actual_cumulative,lineStyle:{color:"#139a8c",width:3},itemStyle:{color:"#ffffff",borderColor:"#139a8c",borderWidth:2},areaStyle:{color:"rgba(19,154,140,.08)"}},{name:"累计目标",type:"line",smooth:!0,showSymbol:!1,data:a.target.target_cumulative,lineStyle:{color:"#5f86e8",width:2,type:"dashed"}}]}));async function y(){x.value=!0;try{const n={time_type:u.time_type};u.dept_id&&(n.dept_id=Number(u.dept_id)),u.assistant_id&&(n.assistant_id=Number(u.assistant_id));const e=await Ct(n);Object.assign(a,E(),e||{})}catch(n){St.error((n==null?void 0:n.message)||"挂号统计加载失败,请稍后重试")}finally{x.value=!1}}function q(){delete u.assistant_id,y()}function v(n){return Number(n||0).toLocaleString("zh-CN",{maximumFractionDigits:0})}function g(n){return`¥${Number(n||0).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}`}function G(n){return Math.abs(n)>=1e4?`${(n/1e4).toFixed(n>=1e5?0:1)}万`:`${Math.round(n)}`}function I(n){return n==null?"未设置":`${Number(n).toFixed(1)}%`}function Y(n){return Math.min(100,Math.max(0,Number(n)||0))}function z(n){if(n==null)return"上期无数据,暂不计算环比";const e=Number(n);return e===0?"与上期持平":`${e>0?"较上期增长":"较上期下降"} ${Math.abs(e).toFixed(1)}%`}function N(n){if(n==null)return"—";const e=Number(n);return`${e>0?"+":""}${e.toFixed(1)}%`}function f(n){return n==null||Number(n)===0?"is-neutral":Number(n)>0?"is-up":"is-down"}function $(n,e){return e<=0?"0%":`${Math.max(4,Math.min(100,Number(n||0)/e*100))}%`}function j(n){return String(n||"员").trim().slice(-1)}function H(n,e){return Number((n==null?void 0:n.order_amount)||0)-Number((e==null?void 0:e.order_amount)||0)}return nt(y),(n,e)=>{const h=ot,K=mt,Q=ut,J=ct,X=pt,Z=_t,tt=ft,d=ht,k=yt,L=vt,et=kt,at=st;return lt((r(),m("div",$t,[t("header",Mt,[t("div",Et,[t("span",zt,[i(h,null,{default:o(()=>[i(_(it))]),_:1})]),e[3]||(e[3]=t("div",null,[t("h1",null,"挂号统计"),t("p",null,"挂号、预约、诊单与目标数据按当前角色和部门权限实时汇总")],-1))]),t("div",Lt,[t("span",Tt,[i(h,null,{default:o(()=>[i(_(rt))]),_:1}),c(s(a.meta.scope_label||"数据范围"),1)]),a.meta.generated_at?(r(),m("span",Dt,"更新于 "+s(a.meta.generated_at),1)):D("",!0),i(K,{icon:_(dt),loading:x.value,onClick:y},{default:o(()=>[...e[4]||(e[4]=[c("刷新",-1)])]),_:1},8,["icon","loading"])])]),t("section",Ft,[t("div",Ot,[e[5]||(e[5]=t("span",null,"部门",-1)),i(Q,{modelValue:u.dept_id,"onUpdate:modelValue":e[0]||(e[0]=l=>u.dept_id=l),data:a.filters.departments,props:A,"node-key":"id",clearable:"",filterable:"","check-strictly":"","default-expand-all":"",placeholder:"全部可见部门",class:"dept-select",onChange:q},null,8,["modelValue","data"])]),t("div",Pt,[e[6]||(e[6]=t("span",null,"时间",-1)),i(J,{modelValue:u.time_type,"onUpdate:modelValue":e[1]||(e[1]=l=>u.time_type=l),options:P,onChange:y},null,8,["modelValue"])]),t("div",At,[e[7]||(e[7]=t("span",null,"员工",-1)),i(Z,{modelValue:u.assistant_id,"onUpdate:modelValue":e[2]||(e[2]=l=>u.assistant_id=l),clearable:"",filterable:"",placeholder:"全部可见员工",class:"employee-select",onChange:y},{default:o(()=>[(r(!0),m(S,null,C(a.filters.assistants,l=>(r(),w(X,{key:l.id,label:l.name,value:Number(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),t("div",Bt,[t("strong",null,s(a.meta.start_date||"—"),1),t("span",null,"至 "+s(a.meta.end_date||"—")+" · "+s(a.meta.member_count||0)+" 位员工",1)])]),t("section",Rt,[t("article",Ut,[t("div",Wt,[i(h,null,{default:o(()=>[i(_(F))]),_:1})]),t("div",null,[t("span",null,s(a.meta.time_label||"今日")+"总挂号",1),t("strong",null,s(v(a.summary.registration_count)),1),t("small",{class:p(f(a.summary.registration_compare_rate))},s(z(a.summary.registration_compare_rate)),3)])]),t("article",qt,[t("div",Gt,[i(h,null,{default:o(()=>[i(_(gt))]),_:1})]),t("div",null,[t("span",null,s(a.meta.time_label||"今日")+"总预约",1),t("strong",null,s(v(a.summary.appointment_count)),1),t("small",{class:p(f(a.summary.appointment_compare_rate))},s(z(a.summary.appointment_compare_rate)),3)])]),t("article",It,[t("div",Yt,[i(h,null,{default:o(()=>[i(_(bt))]),_:1})]),t("div",null,[t("span",null,s(a.meta.time_label||"今日")+"总诊单",1),t("strong",null,s(v(a.summary.order_count)),1),e[8]||(e[8]=t("small",null,"排除取消、拒收和退款订单",-1))])]),t("article",jt,[t("div",Ht,[i(h,null,{default:o(()=>[i(_(F))]),_:1})]),t("div",null,[t("span",null,s(a.meta.time_label||"今日")+"总业绩",1),t("strong",null,s(g(a.summary.order_amount)),1),e[9]||(e[9]=t("small",null,"按业务订单创建人归属",-1))])])]),t("section",Kt,[t("div",Qt,[e[10]||(e[10]=t("div",null,[t("h2",null,"本组员工挂号与预约统计"),t("p",null,"挂号按已支付且实收低于 10 元的支付订单统计;预约按预约记录统计")],-1)),t("span",Jt,s(a.meta.time_label||"当前范围"),1)]),i(L,{data:a.employee_rows,"row-key":"id","tree-props":{children:"children"},"default-expand-all":"",class:"stats-table"},{empty:o(()=>[i(k,{description:"当前权限与筛选范围内暂无医助数据"})]),default:o(()=>[i(d,{prop:"name",label:"部门 / 员工","min-width":"250",fixed:"left"},{default:o(({row:l})=>[t("div",{class:p(["name-cell",`is-${l.row_type}`])},[l.row_type==="department"?(r(),m("span",Xt)):(r(),w(tt,{key:1,size:26},{default:o(()=>[c(s(j(l.name)),1)]),_:2},1024)),t("strong",null,s(l.name),1),l.row_type==="department"?(r(),m("em",Zt,s(l.member_count)+" 人",1)):D("",!0)],2)]),_:1}),i(d,{prop:"registration_count",label:`${a.meta.time_label||"当前"}挂号`,"min-width":"118",align:"right",sortable:""},null,8,["label"]),i(d,{prop:"appointment_count",label:`${a.meta.time_label||"当前"}预约`,"min-width":"118",align:"right",sortable:""},null,8,["label"]),i(d,{prop:"tomorrow_count",label:"明日预约","min-width":"105",align:"right",sortable:""}),i(d,{prop:"day_after_count",label:"后日预约","min-width":"105",align:"right",sortable:""}),i(d,{prop:"order_count",label:"诊单","min-width":"86",align:"right",sortable:""}),i(d,{label:"业绩","min-width":"128",align:"right",sortable:"","sort-method":H},{default:o(({row:l})=>[c(s(g(l.order_amount)),1)]),_:1}),i(d,{label:"挂号较上期","min-width":"112",align:"right"},{default:o(({row:l})=>[t("span",{class:p(["rate-text",f(l.registration_compare_rate)])},s(N(l.registration_compare_rate)),3)]),_:1}),i(d,{label:"预约较上期","min-width":"112",align:"right"},{default:o(({row:l})=>[t("span",{class:p(["rate-text",f(l.appointment_compare_rate)])},s(N(l.appointment_compare_rate)),3)]),_:1}),i(d,{label:"状态","min-width":"92",align:"center"},{default:o(()=>[...e[11]||(e[11]=[t("span",{class:"status-pill"},[t("i"),c("正常")],-1)])]),_:1})]),_:1},8,["data"])]),t("section",te,[t("div",ee,[t("div",null,[e[12]||(e[12]=t("h2",null,"一诊诊金目标追踪",-1)),t("p",null,s(a.target.year)+" 年 · "+s(a.target.scope_note),1)]),t("span",ae,s(a.target.department_count||0)+" 个目标部门",1)]),t("div",ne,[t("div",le,[t("div",se,[t("div",null,[e[13]||(e[13]=t("span",null,"年度目标",-1)),t("strong",null,s(g(a.target.target_amount)),1)]),t("div",null,[e[14]||(e[14]=t("span",null,"已完成",-1)),t("strong",null,s(g(a.target.actual_amount)),1)]),t("div",null,[e[15]||(e[15]=t("span",null,"完成率",-1)),t("strong",ie,s(I(a.target.completion_rate)),1)])]),i(et,{percentage:Y(a.target.completion_rate),"show-text":!1,"stroke-width":13,color:"#139a8c"},null,8,["percentage"]),Number(a.target.target_amount)>0?(r(),m("p",oe," 尚差 "+s(g(Math.max(0,Number(a.target.target_amount)-Number(a.target.actual_amount))))+" 达成年度目标 ",1)):(r(),m("p",re,"当前范围未维护可用目标,实际业绩仍按统一口径正常统计。"))]),t("div",de,[e[16]||(e[16]=t("div",{class:"chart-legend"},[t("i",{class:"actual"}),c("累计完成 "),t("i",{class:"target"}),c("累计目标")],-1)),i(_(wt),{class:"target-chart",option:W.value,autoresize:""},null,8,["option"])])])]),t("section",me,[t("article",ue,[t("div",ce,[t("div",null,[t("h2",null,s(a.meta.time_label||"今日")+"业绩 TOP",1),e[17]||(e[17]=t("p",null,"按业务订单创建人排序",-1))]),e[18]||(e[18]=t("span",{class:"panel-badge"},"金额",-1))]),a.rankings.performance.length?(r(),m("div",pe,[(r(!0),m(S,null,C(a.rankings.performance,(l,b)=>(r(),m("div",{key:`performance-${l.admin_id}`,class:"ranking-row"},[t("b",{class:p({"is-top":b<3})},s(b+1),3),t("span",null,[c(s(l.name),1),t("small",null,s(l.count)+" 单",1)]),t("div",_e,[t("i",{style:M({width:$(l.value,B.value)})},null,4)]),t("strong",null,s(g(l.value)),1)]))),128))])):(r(),w(k,{key:1,"image-size":52,description:"暂无业绩数据"}))]),t("article",ge,[t("div",be,[t("div",null,[t("h2",null,s(a.meta.time_label||"今日")+"挂号 TOP",1),e[19]||(e[19]=t("p",null,"按低于 10 元的已支付订单笔数排序",-1))]),e[20]||(e[20]=t("span",{class:"panel-badge"},"挂号",-1))]),a.rankings.registrations.length?(r(),m("div",he,[(r(!0),m(S,null,C(a.rankings.registrations,(l,b)=>(r(),m("div",{key:`registration-${l.admin_id}`,class:"ranking-row"},[t("b",{class:p({"is-top":b<3})},s(b+1),3),t("span",null,[c(s(l.name),1),e[21]||(e[21]=t("small",null,"已支付小额订单",-1))]),t("div",fe,[t("i",{style:M({width:$(l.value,R.value)})},null,4)]),t("strong",null,s(v(l.value))+" 笔",1)]))),128))])):(r(),w(k,{key:1,"image-size":52,description:"暂无挂号数据"}))]),t("article",ye,[t("div",ve,[t("div",null,[t("h2",null,s(a.meta.time_label||"今日")+"预约 TOP",1),e[22]||(e[22]=t("p",null,"按有效预约记录数量排序",-1))]),e[23]||(e[23]=t("span",{class:"panel-badge"},"预约",-1))]),a.rankings.appointments.length?(r(),m("div",ke,[(r(!0),m(S,null,C(a.rankings.appointments,(l,b)=>(r(),m("div",{key:`appointment-${l.admin_id}`,class:"ranking-row"},[t("b",{class:p({"is-top":b<3})},s(b+1),3),t("span",null,[c(s(l.name),1),e[24]||(e[24]=t("small",null,"有效预约",-1))]),t("div",we,[t("i",{style:M({width:$(l.value,U.value)})},null,4)]),t("strong",null,s(v(l.value))+" 个",1)]))),128))])):(r(),w(k,{key:1,"image-size":52,description:"暂无预约数据"}))])]),t("section",xe,[t("div",Ne,[e[25]||(e[25]=t("div",null,[t("h2",null,"按部门统计"),t("p",null,"员工按最深层有效归属部门唯一计入,避免多部门重复累计")],-1)),t("span",Se,s(a.departments.length)+" 个部门",1)]),i(L,{data:a.departments,class:"stats-table department-table"},{empty:o(()=>[i(k,{description:"当前范围暂无部门汇总"})]),default:o(()=>[i(d,{prop:"name",label:"部门","min-width":"220"},{default:o(({row:l})=>[t("strong",null,s(l.name),1)]),_:1}),i(d,{prop:"member_count",label:"人数","min-width":"90",align:"right",sortable:""}),i(d,{prop:"registration_count",label:`${a.meta.time_label||"当前"}挂号`,"min-width":"118",align:"right",sortable:""},null,8,["label"]),i(d,{prop:"appointment_count",label:`${a.meta.time_label||"当前"}预约`,"min-width":"118",align:"right",sortable:""},null,8,["label"]),i(d,{prop:"tomorrow_count",label:"明日预约","min-width":"105",align:"right",sortable:""}),i(d,{prop:"order_count",label:"诊单","min-width":"90",align:"right",sortable:""}),i(d,{label:"业绩","min-width":"130",align:"right"},{default:o(({row:l})=>[c(s(g(l.order_amount)),1)]),_:1}),i(d,{label:"挂号环比","min-width":"110",align:"right"},{default:o(({row:l})=>[t("span",{class:p(["rate-text",f(l.registration_compare_rate)])},s(N(l.registration_compare_rate)),3)]),_:1}),i(d,{label:"预约环比","min-width":"110",align:"right"},{default:o(({row:l})=>[t("span",{class:p(["rate-text",f(l.appointment_compare_rate)])},s(N(l.appointment_compare_rate)),3)]),_:1})]),_:1},8,["data"])]),t("footer",Ce,[i(h,null,{default:o(()=>[i(_(xt))]),_:1}),t("span",null,s(a.meta.registration_rule)+";"+s(a.meta.appointment_rule)+";"+s(a.meta.performance_rule)+"。",1)])])),[[at,x.value]])}}}),Te=Vt($e,[["__scopeId","data-v-31f07bda"]]);export{Te as default}; diff --git a/server/public/admin/assets/index-Do-D0Uai.js b/server/public/admin/assets/index-B9yixNS7.js similarity index 98% rename from server/public/admin/assets/index-Do-D0Uai.js rename to server/public/admin/assets/index-B9yixNS7.js index 0f8753952..62017b820 100644 --- a/server/public/admin/assets/index-Do-D0Uai.js +++ b/server/public/admin/assets/index-B9yixNS7.js @@ -1 +1 @@ -import{_ as H}from"./index-9qT8_5W1.js";import{o as E,bp as $,q as c,r as U,v as l,D as i,bj as j,bo as L,s as d,L as _,bb as T,I as Z,u as n,T as f,aA as G,F as R,G as q,bh as K,bi as X,O as v,P as J,ac as C,K as Q,bd as Y,a8 as ee,aC as ae}from"./.pnpm-CyuAWpdG.js";import{r as W,j as te}from"./index-Dxvz9lb1.js";import{U as se}from"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";function oe(){return W.get({url:"/setting.desktop_workstation/getConfig"})}function le(b){return W.post({url:"/setting.desktop_workstation/setConfig",params:b})}const ne={class:"desktop-workstation"},ie={class:"ml-2"},de={class:"w-80"},re={class:"ml-2"},pe={class:"w-80"},ue={class:"w-[480px]"},me={class:"w-[640px]"},ce={class:"text-xl font-medium mb-[20px]"},_e={class:"form-tips ml-3"},fe={class:"w-[640px]"},ge={class:"w-[640px]"},ke={class:"w-[480px]"},ve={class:"flex items-center gap-3"},be={class:"text-tx-secondary text-sm"},xe=E({name:"desktopWorkstation"}),Ue=E({...xe,setup(b){const g=(t="archive")=>({url:"",sha256:"",size:0,filename:"",type:t}),x=ee(),a=ae({enabled:1,latest_version:"",min_version:"",force_update:0,title:"",notes:"",packages:{windows_x64:g("inno_setup"),macos_arm64:g(),macos_x64:g()}}),z=[{key:"windows_x64",label:"Windows 64 位安装包"},{key:"macos_arm64",label:"macOS Apple 芯片安装包"},{key:"macos_x64",label:"macOS Intel 安装包"}],B={latest_version:[{validator:(t,e,s)=>{if(a.enabled===1&&!String(e||"").trim()){s(new Error("启用自动检测时请填写最新版本号"));return}if(e&&!/^\d+(?:\.\d+){0,3}$/.test(e.trim())){s(new Error("版本号须为 x.y.z 数字格式"));return}s()},trigger:["blur","change"]}],min_version:[{validator:(t,e,s)=>{if(e&&!/^\d+(?:\.\d+){0,3}$/.test(e.trim())){s(new Error("版本号须为 x.y.z 数字格式"));return}s()},trigger:["blur"]}]},D=t=>{const e=Number(t)||0;return e<=0?"未填写":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/1024/1024).toFixed(1)} MB`:`${(e/1024/1024/1024).toFixed(2)} GB`},k=(t,e)=>{const s=a.packages[t];s.url=String((e==null?void 0:e.url)||""),s.sha256=String((e==null?void 0:e.sha256)||""),s.size=Number((e==null?void 0:e.size)||0),s.filename=String((e==null?void 0:e.filename)||""),s.type=(e==null?void 0:e.type)==="inno_setup"||t==="windows_x64"&&!(e!=null&&e.url)&&!(e!=null&&e.filename)?"inno_setup":"archive"},y=async()=>{var e,s,u;const t=await oe();a.enabled=Number(t.enabled??0)?1:0,a.latest_version=t.latest_version||"",a.min_version=t.min_version||"",a.force_update=Number(t.force_update??0)?1:0,a.title=t.title||"",a.notes=t.notes||"",k("windows_x64",(e=t.packages)==null?void 0:e.windows_x64),k("macos_arm64",(s=t.packages)==null?void 0:s.macos_arm64),k("macos_x64",(u=t.packages)==null?void 0:u.macos_x64)},A=async t=>{const e=await t.arrayBuffer(),s=await crypto.subtle.digest("SHA-256",e);return Array.from(new Uint8Array(s)).map(u=>u.toString(16).padStart(2,"0")).join("")},M=async(t,e)=>{var u,r;const s=e==null?void 0:e.raw;if(s){a.packages[t].filename=s.name||a.packages[t].filename,a.packages[t].size=Number(s.size||0),t==="windows_x64"&&((u=s.name)!=null&&u.toLowerCase().endsWith(".exe"))?a.packages[t].type="inno_setup":(r=s.name)!=null&&r.toLowerCase().endsWith(".zip")&&(a.packages[t].type="archive");try{a.packages[t].sha256=await A(s)}catch(m){console.warn(m),te.msgWarning("浏览器计算 SHA-256 失败,请手动填写校验值")}}},N=(t,e)=>{const s=(e==null?void 0:e.data)||{};s.uri?a.packages[t].url=s.uri:s.url&&(a.packages[t].url=s.url),s.name&&!a.packages[t].filename&&(a.packages[t].filename=s.name)},F=async()=>{var t;await((t=x.value)==null?void 0:t.validate()),await le({enabled:a.enabled,latest_version:a.latest_version,min_version:a.min_version,force_update:a.force_update,title:a.title,notes:a.notes,packages:{windows_x64:{...a.packages.windows_x64},macos_arm64:{...a.packages.macos_arm64},macos_x64:{...a.packages.macos_x64}}}),await y()};return y(),(t,e)=>{const s=L,u=Z,r=T,m=G,V=j,h=X,I=K,w=Q,P=Y,O=H,S=$("perms");return c(),U("div",ne,[l(P,{ref_key:"formRef",ref:x,class:"ls-form",model:n(a),rules:B,"label-width":"140px","scroll-to-error":""},{default:i(()=>[l(V,{shadow:"never",class:"!border-none"},{default:i(()=>[l(s,{type:"info",closable:!1,"show-icon":"",class:"mb-5"},{title:i(()=>[...e[6]||(e[6]=[_("医生工作站升级包",-1)])]),default:i(()=>[e[7]||(e[7]=d("div",{class:"leading-6"},[_(" 桌面端启动后会检测本页发布的版本。请上传或填写与 "),d("code",null,"一键打包"),_(" 产物一致的安装包,并填入打包目录中的 SHA-256。Windows 推荐使用 Setup.exe,用户点击“立即更新”后会自动安装并重启;macOS 继续使用 ZIP。 安装包通常超过 200MB,本页上传按钮会直传到已配置的腾讯云 COS;也可以 自行上传到其他对象存储 / CDN 后粘贴地址。 ")],-1))]),_:1}),e[10]||(e[10]=d("div",{class:"text-xl font-medium mb-[20px]"},"升级策略",-1)),l(r,{label:"自动检测",prop:"enabled"},{default:i(()=>[d("div",null,[l(u,{modelValue:n(a).enabled,"onUpdate:modelValue":e[0]||(e[0]=o=>n(a).enabled=o),"active-value":1,"inactive-value":0},null,8,["modelValue"]),d("span",ie,f(n(a).enabled?"开启":"关闭"),1),e[8]||(e[8]=d("div",{class:"form-tips"},"关闭后,桌面端不会提示或强制升级。",-1))])]),_:1}),l(r,{label:"最新版本号",prop:"latest_version"},{default:i(()=>[d("div",de,[l(m,{modelValue:n(a).latest_version,"onUpdate:modelValue":e[1]||(e[1]=o=>n(a).latest_version=o),modelModifiers:{trim:!0},placeholder:"须与 pyproject.toml / 客户端版本一致,例如 0.2.0",maxlength:"20"},null,8,["modelValue"])])]),_:1}),l(r,{label:"强制升级",prop:"force_update"},{default:i(()=>[d("div",null,[l(u,{modelValue:n(a).force_update,"onUpdate:modelValue":e[2]||(e[2]=o=>n(a).force_update=o),"active-value":1,"inactive-value":0},null,8,["modelValue"]),d("span",re,f(n(a).force_update?"开启":"关闭"),1),e[9]||(e[9]=d("div",{class:"form-tips"}," 开启后,低于最新版本且已配置对应平台安装包的客户端必须升级后才能继续使用。 ",-1))])]),_:1}),l(r,{label:"最低可用版本",prop:"min_version"},{default:i(()=>[d("div",pe,[l(m,{modelValue:n(a).min_version,"onUpdate:modelValue":e[3]||(e[3]=o=>n(a).min_version=o),modelModifiers:{trim:!0},placeholder:"可选,例如 0.1.0;低于该版本也会强制升级",maxlength:"20"},null,8,["modelValue"])])]),_:1}),l(r,{label:"更新标题",prop:"title"},{default:i(()=>[d("div",ue,[l(m,{modelValue:n(a).title,"onUpdate:modelValue":e[4]||(e[4]=o=>n(a).title=o),modelModifiers:{trim:!0},placeholder:"例如:医生工作站 0.2.0",maxlength:"80","show-word-limit":""},null,8,["modelValue"])])]),_:1}),l(r,{label:"更新说明",prop:"notes"},{default:i(()=>[d("div",me,[l(m,{modelValue:n(a).notes,"onUpdate:modelValue":e[5]||(e[5]=o=>n(a).notes=o),type:"textarea",rows:6,maxlength:"4000","show-word-limit":"",placeholder:"医生端弹窗中展示的更新说明"},null,8,["modelValue"])])]),_:1})]),_:1}),(c(),U(R,null,q(z,o=>l(V,{key:o.key,shadow:"never",class:"!border-none mt-4"},{default:i(()=>[d("div",ce,f(o.label),1),l(r,{label:"安装包类型"},{default:i(()=>[l(I,{modelValue:n(a).packages[o.key].type,"onUpdate:modelValue":p=>n(a).packages[o.key].type=p,class:"w-80"},{default:i(()=>[l(h,{label:"便携压缩包(ZIP)",value:"archive"}),o.key==="windows_x64"?(c(),v(h,{key:0,label:"Windows 安装程序(Inno Setup EXE)",value:"inno_setup"})):J("",!0)]),_:2},1032,["modelValue","onUpdate:modelValue"]),d("div",_e,f(n(a).packages[o.key].type==="inno_setup"?"推荐:退出客户端后静默安装,必要时显示 Windows 权限确认。":"兼容旧版客户端的 ZIP 覆盖更新。"),1)]),_:2},1024),l(r,{label:"安装包地址"},{default:i(()=>[d("div",fe,[l(m,{modelValue:n(a).packages[o.key].url,"onUpdate:modelValue":p=>n(a).packages[o.key].url=p,modelModifiers:{trim:!0},placeholder:n(a).packages[o.key].type==="inno_setup"?"https://.../DoctorWorkstation-Setup-....exe":"https://...zip 或站内 uploads/file/... 路径"},null,8,["modelValue","onUpdate:modelValue","placeholder"])])]),_:2},1024),l(r,{label:"上传安装包"},{default:i(()=>[d("div",null,[C((c(),v(se,{type:"desktop_package",direct:"",limit:1,multiple:!1,"show-progress":!0,data:{cid:0},onSuccess:p=>N(o.key,p),onChange:p=>M(o.key,p)},{default:i(()=>[l(w,{type:"primary",plain:""},{default:i(()=>[...e[11]||(e[11]=[_("选择安装包并上传",-1)])]),_:1})]),_:1},8,["onSuccess","onChange"])),[[S,["setting.desktop_workstation/setConfig"]]]),e[12]||(e[12]=d("div",{class:"form-tips"}," 安装包将分片直传腾讯云 COS,不经过业务服务器(支持 EXE / ZIP,最大 2GB)。Windows 自动安装程序必须使用 HTTPS 地址并开启证书校验。 ",-1))])]),_:2},1024),l(r,{label:"SHA-256"},{default:i(()=>[d("div",ge,[l(m,{modelValue:n(a).packages[o.key].sha256,"onUpdate:modelValue":p=>n(a).packages[o.key].sha256=p,modelModifiers:{trim:!0},placeholder:"64 位十六进制,来自 SHA256SUMS.txt 或打包生成的 .sha256"},null,8,["modelValue","onUpdate:modelValue"])])]),_:2},1024),l(r,{label:"文件名"},{default:i(()=>[d("div",ke,[l(m,{modelValue:n(a).packages[o.key].filename,"onUpdate:modelValue":p=>n(a).packages[o.key].filename=p,modelModifiers:{trim:!0},placeholder:n(a).packages[o.key].type==="inno_setup"?"DoctorWorkstation-Setup-Windows-x64-0.2.0.exe":"DoctorWorkstation-Windows-x64-0.2.0.zip"},null,8,["modelValue","onUpdate:modelValue","placeholder"])])]),_:2},1024),l(r,{label:"文件大小"},{default:i(()=>[d("div",ve,[l(m,{modelValue:n(a).packages[o.key].size,"onUpdate:modelValue":p=>n(a).packages[o.key].size=p,modelModifiers:{number:!0},class:"w-48",placeholder:"字节"},null,8,["modelValue","onUpdate:modelValue"]),d("span",be,f(D(n(a).packages[o.key].size)),1)])]),_:2},1024)]),_:2},1024)),64))]),_:1},8,["model"]),C((c(),v(O,null,{default:i(()=>[l(w,{type:"primary",onClick:F},{default:i(()=>[...e[13]||(e[13]=[_("保存",-1)])]),_:1})]),_:1})),[[S,["setting.desktop_workstation/setConfig"]]])])}}});export{Ue as default}; +import{_ as H}from"./index-DIl3M8Wa.js";import{o as E,bp as $,q as c,r as U,v as l,D as i,bj as j,bo as L,s as d,L as _,bb as T,I as Z,u as n,T as f,aA as G,F as R,G as q,bh as K,bi as X,O as v,P as J,ac as C,K as Q,bd as Y,a8 as ee,aC as ae}from"./.pnpm-CyuAWpdG.js";import{r as W,j as te}from"./index-Bkarz3gO.js";import{U as se}from"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";function oe(){return W.get({url:"/setting.desktop_workstation/getConfig"})}function le(b){return W.post({url:"/setting.desktop_workstation/setConfig",params:b})}const ne={class:"desktop-workstation"},ie={class:"ml-2"},de={class:"w-80"},re={class:"ml-2"},pe={class:"w-80"},ue={class:"w-[480px]"},me={class:"w-[640px]"},ce={class:"text-xl font-medium mb-[20px]"},_e={class:"form-tips ml-3"},fe={class:"w-[640px]"},ge={class:"w-[640px]"},ke={class:"w-[480px]"},ve={class:"flex items-center gap-3"},be={class:"text-tx-secondary text-sm"},xe=E({name:"desktopWorkstation"}),Ue=E({...xe,setup(b){const g=(t="archive")=>({url:"",sha256:"",size:0,filename:"",type:t}),x=ee(),a=ae({enabled:1,latest_version:"",min_version:"",force_update:0,title:"",notes:"",packages:{windows_x64:g("inno_setup"),macos_arm64:g(),macos_x64:g()}}),z=[{key:"windows_x64",label:"Windows 64 位安装包"},{key:"macos_arm64",label:"macOS Apple 芯片安装包"},{key:"macos_x64",label:"macOS Intel 安装包"}],B={latest_version:[{validator:(t,e,s)=>{if(a.enabled===1&&!String(e||"").trim()){s(new Error("启用自动检测时请填写最新版本号"));return}if(e&&!/^\d+(?:\.\d+){0,3}$/.test(e.trim())){s(new Error("版本号须为 x.y.z 数字格式"));return}s()},trigger:["blur","change"]}],min_version:[{validator:(t,e,s)=>{if(e&&!/^\d+(?:\.\d+){0,3}$/.test(e.trim())){s(new Error("版本号须为 x.y.z 数字格式"));return}s()},trigger:["blur"]}]},D=t=>{const e=Number(t)||0;return e<=0?"未填写":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/1024/1024).toFixed(1)} MB`:`${(e/1024/1024/1024).toFixed(2)} GB`},k=(t,e)=>{const s=a.packages[t];s.url=String((e==null?void 0:e.url)||""),s.sha256=String((e==null?void 0:e.sha256)||""),s.size=Number((e==null?void 0:e.size)||0),s.filename=String((e==null?void 0:e.filename)||""),s.type=(e==null?void 0:e.type)==="inno_setup"||t==="windows_x64"&&!(e!=null&&e.url)&&!(e!=null&&e.filename)?"inno_setup":"archive"},y=async()=>{var e,s,u;const t=await oe();a.enabled=Number(t.enabled??0)?1:0,a.latest_version=t.latest_version||"",a.min_version=t.min_version||"",a.force_update=Number(t.force_update??0)?1:0,a.title=t.title||"",a.notes=t.notes||"",k("windows_x64",(e=t.packages)==null?void 0:e.windows_x64),k("macos_arm64",(s=t.packages)==null?void 0:s.macos_arm64),k("macos_x64",(u=t.packages)==null?void 0:u.macos_x64)},A=async t=>{const e=await t.arrayBuffer(),s=await crypto.subtle.digest("SHA-256",e);return Array.from(new Uint8Array(s)).map(u=>u.toString(16).padStart(2,"0")).join("")},M=async(t,e)=>{var u,r;const s=e==null?void 0:e.raw;if(s){a.packages[t].filename=s.name||a.packages[t].filename,a.packages[t].size=Number(s.size||0),t==="windows_x64"&&((u=s.name)!=null&&u.toLowerCase().endsWith(".exe"))?a.packages[t].type="inno_setup":(r=s.name)!=null&&r.toLowerCase().endsWith(".zip")&&(a.packages[t].type="archive");try{a.packages[t].sha256=await A(s)}catch(m){console.warn(m),te.msgWarning("浏览器计算 SHA-256 失败,请手动填写校验值")}}},N=(t,e)=>{const s=(e==null?void 0:e.data)||{};s.uri?a.packages[t].url=s.uri:s.url&&(a.packages[t].url=s.url),s.name&&!a.packages[t].filename&&(a.packages[t].filename=s.name)},F=async()=>{var t;await((t=x.value)==null?void 0:t.validate()),await le({enabled:a.enabled,latest_version:a.latest_version,min_version:a.min_version,force_update:a.force_update,title:a.title,notes:a.notes,packages:{windows_x64:{...a.packages.windows_x64},macos_arm64:{...a.packages.macos_arm64},macos_x64:{...a.packages.macos_x64}}}),await y()};return y(),(t,e)=>{const s=L,u=Z,r=T,m=G,V=j,h=X,I=K,w=Q,P=Y,O=H,S=$("perms");return c(),U("div",ne,[l(P,{ref_key:"formRef",ref:x,class:"ls-form",model:n(a),rules:B,"label-width":"140px","scroll-to-error":""},{default:i(()=>[l(V,{shadow:"never",class:"!border-none"},{default:i(()=>[l(s,{type:"info",closable:!1,"show-icon":"",class:"mb-5"},{title:i(()=>[...e[6]||(e[6]=[_("医生工作站升级包",-1)])]),default:i(()=>[e[7]||(e[7]=d("div",{class:"leading-6"},[_(" 桌面端启动后会检测本页发布的版本。请上传或填写与 "),d("code",null,"一键打包"),_(" 产物一致的安装包,并填入打包目录中的 SHA-256。Windows 推荐使用 Setup.exe,用户点击“立即更新”后会自动安装并重启;macOS 继续使用 ZIP。 安装包通常超过 200MB,本页上传按钮会直传到已配置的腾讯云 COS;也可以 自行上传到其他对象存储 / CDN 后粘贴地址。 ")],-1))]),_:1}),e[10]||(e[10]=d("div",{class:"text-xl font-medium mb-[20px]"},"升级策略",-1)),l(r,{label:"自动检测",prop:"enabled"},{default:i(()=>[d("div",null,[l(u,{modelValue:n(a).enabled,"onUpdate:modelValue":e[0]||(e[0]=o=>n(a).enabled=o),"active-value":1,"inactive-value":0},null,8,["modelValue"]),d("span",ie,f(n(a).enabled?"开启":"关闭"),1),e[8]||(e[8]=d("div",{class:"form-tips"},"关闭后,桌面端不会提示或强制升级。",-1))])]),_:1}),l(r,{label:"最新版本号",prop:"latest_version"},{default:i(()=>[d("div",de,[l(m,{modelValue:n(a).latest_version,"onUpdate:modelValue":e[1]||(e[1]=o=>n(a).latest_version=o),modelModifiers:{trim:!0},placeholder:"须与 pyproject.toml / 客户端版本一致,例如 0.2.0",maxlength:"20"},null,8,["modelValue"])])]),_:1}),l(r,{label:"强制升级",prop:"force_update"},{default:i(()=>[d("div",null,[l(u,{modelValue:n(a).force_update,"onUpdate:modelValue":e[2]||(e[2]=o=>n(a).force_update=o),"active-value":1,"inactive-value":0},null,8,["modelValue"]),d("span",re,f(n(a).force_update?"开启":"关闭"),1),e[9]||(e[9]=d("div",{class:"form-tips"}," 开启后,低于最新版本且已配置对应平台安装包的客户端必须升级后才能继续使用。 ",-1))])]),_:1}),l(r,{label:"最低可用版本",prop:"min_version"},{default:i(()=>[d("div",pe,[l(m,{modelValue:n(a).min_version,"onUpdate:modelValue":e[3]||(e[3]=o=>n(a).min_version=o),modelModifiers:{trim:!0},placeholder:"可选,例如 0.1.0;低于该版本也会强制升级",maxlength:"20"},null,8,["modelValue"])])]),_:1}),l(r,{label:"更新标题",prop:"title"},{default:i(()=>[d("div",ue,[l(m,{modelValue:n(a).title,"onUpdate:modelValue":e[4]||(e[4]=o=>n(a).title=o),modelModifiers:{trim:!0},placeholder:"例如:医生工作站 0.2.0",maxlength:"80","show-word-limit":""},null,8,["modelValue"])])]),_:1}),l(r,{label:"更新说明",prop:"notes"},{default:i(()=>[d("div",me,[l(m,{modelValue:n(a).notes,"onUpdate:modelValue":e[5]||(e[5]=o=>n(a).notes=o),type:"textarea",rows:6,maxlength:"4000","show-word-limit":"",placeholder:"医生端弹窗中展示的更新说明"},null,8,["modelValue"])])]),_:1})]),_:1}),(c(),U(R,null,q(z,o=>l(V,{key:o.key,shadow:"never",class:"!border-none mt-4"},{default:i(()=>[d("div",ce,f(o.label),1),l(r,{label:"安装包类型"},{default:i(()=>[l(I,{modelValue:n(a).packages[o.key].type,"onUpdate:modelValue":p=>n(a).packages[o.key].type=p,class:"w-80"},{default:i(()=>[l(h,{label:"便携压缩包(ZIP)",value:"archive"}),o.key==="windows_x64"?(c(),v(h,{key:0,label:"Windows 安装程序(Inno Setup EXE)",value:"inno_setup"})):J("",!0)]),_:2},1032,["modelValue","onUpdate:modelValue"]),d("div",_e,f(n(a).packages[o.key].type==="inno_setup"?"推荐:退出客户端后静默安装,必要时显示 Windows 权限确认。":"兼容旧版客户端的 ZIP 覆盖更新。"),1)]),_:2},1024),l(r,{label:"安装包地址"},{default:i(()=>[d("div",fe,[l(m,{modelValue:n(a).packages[o.key].url,"onUpdate:modelValue":p=>n(a).packages[o.key].url=p,modelModifiers:{trim:!0},placeholder:n(a).packages[o.key].type==="inno_setup"?"https://.../DoctorWorkstation-Setup-....exe":"https://...zip 或站内 uploads/file/... 路径"},null,8,["modelValue","onUpdate:modelValue","placeholder"])])]),_:2},1024),l(r,{label:"上传安装包"},{default:i(()=>[d("div",null,[C((c(),v(se,{type:"desktop_package",direct:"",limit:1,multiple:!1,"show-progress":!0,data:{cid:0},onSuccess:p=>N(o.key,p),onChange:p=>M(o.key,p)},{default:i(()=>[l(w,{type:"primary",plain:""},{default:i(()=>[...e[11]||(e[11]=[_("选择安装包并上传",-1)])]),_:1})]),_:1},8,["onSuccess","onChange"])),[[S,["setting.desktop_workstation/setConfig"]]]),e[12]||(e[12]=d("div",{class:"form-tips"}," 安装包将分片直传腾讯云 COS,不经过业务服务器(支持 EXE / ZIP,最大 2GB)。Windows 自动安装程序必须使用 HTTPS 地址并开启证书校验。 ",-1))])]),_:2},1024),l(r,{label:"SHA-256"},{default:i(()=>[d("div",ge,[l(m,{modelValue:n(a).packages[o.key].sha256,"onUpdate:modelValue":p=>n(a).packages[o.key].sha256=p,modelModifiers:{trim:!0},placeholder:"64 位十六进制,来自 SHA256SUMS.txt 或打包生成的 .sha256"},null,8,["modelValue","onUpdate:modelValue"])])]),_:2},1024),l(r,{label:"文件名"},{default:i(()=>[d("div",ke,[l(m,{modelValue:n(a).packages[o.key].filename,"onUpdate:modelValue":p=>n(a).packages[o.key].filename=p,modelModifiers:{trim:!0},placeholder:n(a).packages[o.key].type==="inno_setup"?"DoctorWorkstation-Setup-Windows-x64-0.2.0.exe":"DoctorWorkstation-Windows-x64-0.2.0.zip"},null,8,["modelValue","onUpdate:modelValue","placeholder"])])]),_:2},1024),l(r,{label:"文件大小"},{default:i(()=>[d("div",ve,[l(m,{modelValue:n(a).packages[o.key].size,"onUpdate:modelValue":p=>n(a).packages[o.key].size=p,modelModifiers:{number:!0},class:"w-48",placeholder:"字节"},null,8,["modelValue","onUpdate:modelValue"]),d("span",be,f(D(n(a).packages[o.key].size)),1)])]),_:2},1024)]),_:2},1024)),64))]),_:1},8,["model"]),C((c(),v(O,null,{default:i(()=>[l(w,{type:"primary",onClick:F},{default:i(()=>[...e[13]||(e[13]=[_("保存",-1)])]),_:1})]),_:1})),[[S,["setting.desktop_workstation/setConfig"]]])])}}});export{Ue as default}; diff --git a/server/public/admin/assets/index-Co_rrQhX.js b/server/public/admin/assets/index-BAqMTwOE.js similarity index 97% rename from server/public/admin/assets/index-Co_rrQhX.js rename to server/public/admin/assets/index-BAqMTwOE.js index bd2ce8133..4377de9c1 100644 --- a/server/public/admin/assets/index-Co_rrQhX.js +++ b/server/public/admin/assets/index-BAqMTwOE.js @@ -1 +1 @@ -import{o as C,ap as D,q as c,r as p,v as t,D as a,u as n,O as g,bo as K,P as x,bd as R,bb as j,bh as G,bi as M,aA as O,bc as U,K as $,L as u,s,bj as q,ac as z,bk as H,bl as J,T as o,bm as Q,F as W,bn as X,C as Y,aC as Z}from"./.pnpm-CyuAWpdG.js";import{_ as ee}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as te,d as ae}from"./ai_mcp-Dog5pgH2.js";import{u as le}from"./usePaging-CghUEVfD.js";import{j as y,_ as ne}from"./index-Dxvz9lb1.js";const se={class:"ai-grant-page"},oe={class:"cell-sub"},ie={key:0},de={class:"cell-sub"},_e={class:"cell-sub"},ce={class:"cell-sub"},re={key:1},ue={class:"flex justify-end mt-4"},me=C({name:"aiMcpGrant"}),pe=C({...me,setup(be){const r=Z({status:"",keyword:""}),{pager:d,getLists:b,resetPage:m,resetParams:E}=le({fetchFun:te,params:r}),w={client_revoke:"客户端解绑",admin_revoke:"后台撤销",rebind:"重新绑定",expired:"到期/闲置失效",password_changed:"账号改密",admin_disabled:"账号停用",admin_deleted:"账号删除"},V=_=>w[_]||_||"",A=async _=>{await y.confirm(`确认撤销 ${_.admin_name||_.admin_account} 的这条 AI 授权?撤销后该客户端需要重新绑定。`),await ae({id:_.id}),y.msgSuccess("已撤销"),b()};return D(()=>b()),(_,l)=>{const I=K,f=M,B=G,v=j,N=O,k=$,P=R,h=q,i=J,T=Q,F=H,L=ee,S=X;return c(),p("div",se,[t(h,{class:"!border-none",shadow:"never"},{default:a(()=>[n(d).extend&&n(d).extend.enabled===!1?(c(),g(I,{key:0,type:"warning",closable:!1,"show-icon":"",class:"mb-3",title:"AI 助手接口未启用:服务器 .env 的 [AI_MCP] ENABLED 为 false,客户端暂时无法绑定和查询。"})):x("",!0),t(P,{inline:!0},{default:a(()=>[t(v,{label:"状态"},{default:a(()=>[t(B,{modelValue:r.status,"onUpdate:modelValue":l[0]||(l[0]=e=>r.status=e),clearable:"",placeholder:"全部",class:"w-[120px]",onChange:n(m)},{default:a(()=>[t(f,{label:"有效",value:"1"}),t(f,{label:"已撤销",value:"2"}),t(f,{label:"已过期",value:"3"})]),_:1},8,["modelValue","onChange"])]),_:1}),t(v,{label:"关键词"},{default:a(()=>[t(N,{modelValue:r.keyword,"onUpdate:modelValue":l[1]||(l[1]=e=>r.keyword=e),placeholder:"姓名 / 账号 / 备注",clearable:"",class:"w-[220px]",onKeyup:U(n(m),["enter"]),onClear:n(m)},null,8,["modelValue","onKeyup","onClear"])]),_:1}),t(v,null,{default:a(()=>[t(k,{type:"primary",onClick:n(m)},{default:a(()=>[...l[3]||(l[3]=[u("查询",-1)])]),_:1},8,["onClick"]),t(k,{onClick:n(E)},{default:a(()=>[...l[4]||(l[4]=[u("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1}),l[5]||(l[5]=s("div",{class:"page-hint"}," 员工在行知等 AI 助手里用甄养堂账号密码绑定后,会在这里生成一条只读授权。AI 只能按该账号自己的权限和数据范围查询; 撤销后立即失效。账号改密、停用、失去“允许 AI 助手查询”权限时,授权也会自动失效。 ",-1))]),_:1}),t(h,{class:"!border-none mt-3",shadow:"never"},{default:a(()=>[z((c(),g(F,{data:n(d).lists,size:"default",stripe:""},{default:a(()=>[t(i,{label:"账号","min-width":"140"},{default:a(({row:e})=>[s("div",null,o(e.admin_name||"—"),1),s("div",oe,o(e.admin_account),1)]),_:1}),t(i,{label:"客户端","min-width":"150"},{default:a(({row:e})=>[s("div",null,[u(o(e.client),1),e.client_instance?(c(),p("span",ie," · "+o(e.client_instance),1)):x("",!0)]),s("div",de,o(e.label),1)]),_:1}),t(i,{label:"令牌",width:"130",prop:"token_prefix"}),t(i,{label:"状态",width:"90",align:"center"},{default:a(({row:e})=>[t(T,{type:e.status_text==="有效"?"success":"info",size:"small"},{default:a(()=>[u(o(e.status_text),1)]),_:2},1032,["type"])]),_:1}),t(i,{label:"最近使用","min-width":"150"},{default:a(({row:e})=>[s("div",null,o(e.last_used_time_text||"—"),1),s("div",_e,o(e.last_used_ip),1)]),_:1}),t(i,{label:"到期时间",width:"150",prop:"expire_time_text"}),t(i,{label:"签发时间",width:"150",prop:"create_time_text"}),t(i,{label:"撤销","min-width":"140"},{default:a(({row:e})=>[e.revoke_time_text?(c(),p(W,{key:0},[s("div",null,o(e.revoke_time_text),1),s("div",ce,o(V(e.revoke_reason)),1)],64)):(c(),p("span",re,"—"))]),_:1}),t(i,{label:"操作",width:"90",fixed:"right"},{default:a(({row:e})=>[e.can_revoke?(c(),g(k,{key:0,type:"danger",link:"",onClick:fe=>A(e)},{default:a(()=>[...l[6]||(l[6]=[u("撤销",-1)])]),_:1},8,["onClick"])):x("",!0)]),_:1})]),_:1},8,["data"])),[[S,n(d).loading]]),s("div",ue,[t(L,{modelValue:n(d),"onUpdate:modelValue":l[2]||(l[2]=e=>Y(d)?d.value=e:null),onChange:n(b)},null,8,["modelValue","onChange"])])]),_:1})])}}}),ye=ne(pe,[["__scopeId","data-v-305ae11f"]]);export{ye as default}; +import{o as C,ap as D,q as c,r as p,v as t,D as a,u as n,O as g,bo as K,P as x,bd as R,bb as j,bh as G,bi as M,aA as O,bc as U,K as $,L as u,s,bj as q,ac as z,bk as H,bl as J,T as o,bm as Q,F as W,bn as X,C as Y,aC as Z}from"./.pnpm-CyuAWpdG.js";import{_ as ee}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as te,d as ae}from"./ai_mcp-Bk1FasTW.js";import{u as le}from"./usePaging-CghUEVfD.js";import{j as y,_ as ne}from"./index-Bkarz3gO.js";const se={class:"ai-grant-page"},oe={class:"cell-sub"},ie={key:0},de={class:"cell-sub"},_e={class:"cell-sub"},ce={class:"cell-sub"},re={key:1},ue={class:"flex justify-end mt-4"},me=C({name:"aiMcpGrant"}),pe=C({...me,setup(be){const r=Z({status:"",keyword:""}),{pager:d,getLists:b,resetPage:m,resetParams:E}=le({fetchFun:te,params:r}),w={client_revoke:"客户端解绑",admin_revoke:"后台撤销",rebind:"重新绑定",expired:"到期/闲置失效",password_changed:"账号改密",admin_disabled:"账号停用",admin_deleted:"账号删除"},V=_=>w[_]||_||"",A=async _=>{await y.confirm(`确认撤销 ${_.admin_name||_.admin_account} 的这条 AI 授权?撤销后该客户端需要重新绑定。`),await ae({id:_.id}),y.msgSuccess("已撤销"),b()};return D(()=>b()),(_,l)=>{const I=K,f=M,B=G,v=j,N=O,k=$,P=R,h=q,i=J,T=Q,F=H,L=ee,S=X;return c(),p("div",se,[t(h,{class:"!border-none",shadow:"never"},{default:a(()=>[n(d).extend&&n(d).extend.enabled===!1?(c(),g(I,{key:0,type:"warning",closable:!1,"show-icon":"",class:"mb-3",title:"AI 助手接口未启用:服务器 .env 的 [AI_MCP] ENABLED 为 false,客户端暂时无法绑定和查询。"})):x("",!0),t(P,{inline:!0},{default:a(()=>[t(v,{label:"状态"},{default:a(()=>[t(B,{modelValue:r.status,"onUpdate:modelValue":l[0]||(l[0]=e=>r.status=e),clearable:"",placeholder:"全部",class:"w-[120px]",onChange:n(m)},{default:a(()=>[t(f,{label:"有效",value:"1"}),t(f,{label:"已撤销",value:"2"}),t(f,{label:"已过期",value:"3"})]),_:1},8,["modelValue","onChange"])]),_:1}),t(v,{label:"关键词"},{default:a(()=>[t(N,{modelValue:r.keyword,"onUpdate:modelValue":l[1]||(l[1]=e=>r.keyword=e),placeholder:"姓名 / 账号 / 备注",clearable:"",class:"w-[220px]",onKeyup:U(n(m),["enter"]),onClear:n(m)},null,8,["modelValue","onKeyup","onClear"])]),_:1}),t(v,null,{default:a(()=>[t(k,{type:"primary",onClick:n(m)},{default:a(()=>[...l[3]||(l[3]=[u("查询",-1)])]),_:1},8,["onClick"]),t(k,{onClick:n(E)},{default:a(()=>[...l[4]||(l[4]=[u("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1}),l[5]||(l[5]=s("div",{class:"page-hint"}," 员工在行知等 AI 助手里用甄养堂账号密码绑定后,会在这里生成一条只读授权。AI 只能按该账号自己的权限和数据范围查询; 撤销后立即失效。账号改密、停用、失去“允许 AI 助手查询”权限时,授权也会自动失效。 ",-1))]),_:1}),t(h,{class:"!border-none mt-3",shadow:"never"},{default:a(()=>[z((c(),g(F,{data:n(d).lists,size:"default",stripe:""},{default:a(()=>[t(i,{label:"账号","min-width":"140"},{default:a(({row:e})=>[s("div",null,o(e.admin_name||"—"),1),s("div",oe,o(e.admin_account),1)]),_:1}),t(i,{label:"客户端","min-width":"150"},{default:a(({row:e})=>[s("div",null,[u(o(e.client),1),e.client_instance?(c(),p("span",ie," · "+o(e.client_instance),1)):x("",!0)]),s("div",de,o(e.label),1)]),_:1}),t(i,{label:"令牌",width:"130",prop:"token_prefix"}),t(i,{label:"状态",width:"90",align:"center"},{default:a(({row:e})=>[t(T,{type:e.status_text==="有效"?"success":"info",size:"small"},{default:a(()=>[u(o(e.status_text),1)]),_:2},1032,["type"])]),_:1}),t(i,{label:"最近使用","min-width":"150"},{default:a(({row:e})=>[s("div",null,o(e.last_used_time_text||"—"),1),s("div",_e,o(e.last_used_ip),1)]),_:1}),t(i,{label:"到期时间",width:"150",prop:"expire_time_text"}),t(i,{label:"签发时间",width:"150",prop:"create_time_text"}),t(i,{label:"撤销","min-width":"140"},{default:a(({row:e})=>[e.revoke_time_text?(c(),p(W,{key:0},[s("div",null,o(e.revoke_time_text),1),s("div",ce,o(V(e.revoke_reason)),1)],64)):(c(),p("span",re,"—"))]),_:1}),t(i,{label:"操作",width:"90",fixed:"right"},{default:a(({row:e})=>[e.can_revoke?(c(),g(k,{key:0,type:"danger",link:"",onClick:fe=>A(e)},{default:a(()=>[...l[6]||(l[6]=[u("撤销",-1)])]),_:1},8,["onClick"])):x("",!0)]),_:1})]),_:1},8,["data"])),[[S,n(d).loading]]),s("div",ue,[t(L,{modelValue:n(d),"onUpdate:modelValue":l[2]||(l[2]=e=>Y(d)?d.value=e:null),onChange:n(b)},null,8,["modelValue","onChange"])])]),_:1})])}}}),ye=ne(pe,[["__scopeId","data-v-305ae11f"]]);export{ye as default}; diff --git a/server/public/admin/assets/index-CezM4GA9.js b/server/public/admin/assets/index-BDpBDA69.js similarity index 93% rename from server/public/admin/assets/index-CezM4GA9.js rename to server/public/admin/assets/index-BDpBDA69.js index 3558b0686..9b6991ba4 100644 --- a/server/public/admin/assets/index-CezM4GA9.js +++ b/server/public/admin/assets/index-BDpBDA69.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-DFFSwWxS.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-QAkeqQ9Q.js","assets/index-Dxvz9lb1.js","assets/index-B3vHLAW8.css","assets/perm-DOfZAzJJ.js","assets/DailyMatrix-BSZy3g0c.js","assets/picker-BDO86vcM.js","assets/index-BnfLT5cB.js","assets/index-B3imPWFk.css","assets/index-yD39j6dM.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-ClBYIwNX.js","assets/index-D0f1Mn00.css","assets/index-BU3OYnKm.js","assets/file-CefRfHD9.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-CE1isNg2.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-GXQTu6xF.js","assets/FollowupAudioReview-92Fgd7wW.js","assets/FollowupAudioField-BG0mRnT5.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-Bdp996ss.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-DFudUjln.js","assets/RecordingPlaybackBlock-GbWd6PMw.js","assets/RecordingVideoPlayer-grUPRDCj.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CafeXQX5.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-0TFZiCkF.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-C2wB-h-D.js","assets/doctor-8vo_5fa4.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-DDh0aI3_.js","assets/patient-Bz8-LT2R.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-BP2alDvZ.js","assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-B4rggqa1.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-Cis-_1uh.js","assets/index-Cf6ygfGC.js","assets/medicine-EUKQYFsM.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-DT7CSmCp.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/detail-BC-AUtN0.js","assets/appointment-FizcUjTK.js","assets/first_visit-BxZL4Ke4.js","assets/appointment-g8BrHfhi.css","assets/AssistantWatchCallDialog-Cmuadkz7.js","assets/AssistantWatchCallDialog-BIPZRgaH.css"])))=>i.map(i=>d[i]); -import{o as mt,R as Da,Q as wa,ap as Ea,aq as Aa,bp as Ra,q as i,r as u,v as l,D as s,s as r,F as D,G as I,ae as ie,u as n,L as c,T as p,P as h,aA as Ia,bc as Na,K as $a,w as Sa,cm as lt,ac as q,bh as Ta,O as v,bi as za,ad as La,bj as Fa,bk as Pa,bl as Wa,bm as Oa,a1 as Ua,$ as qa,Z as Ma,_ as Qa,cn as Ya,bF as st,db as Ba,bI as Ha,d9 as ja,bn as Ka,C as M,ba as Ga,aB as Xa,bd as Ja,bb as Za,bg as en,J as tn,c1 as an,c2 as nn,bE as ln,aa as sn,B as on,cd as he,al as be,aC as Le,M as m,p as J}from"./.pnpm-CyuAWpdG.js";import{_ as dn}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{ax as ke,o as rn,Y as un,az as it,aB as cn,X as ot,aC as dt,aD as mn,aE as pn,aF as _n,aG as fn}from"./tcm-QAkeqQ9Q.js";import{d as vn}from"./department-DToZNvdH.js";import{i as gn}from"./order-CIw46QQn.js";import{m as yn}from"./doctor-8vo_5fa4.js";import{u as hn}from"./usePaging-CghUEVfD.js";import{u as bn,n as rt,j as g,_ as kn}from"./index-Dxvz9lb1.js";import{g as ut}from"./weapp-COUVUBPI.js";import{h as B}from"./perm-DOfZAzJJ.js";import{d as ct}from"./dayjs-B2bPhvDy.js";const Cn={class:"tcm-diagnosis"},Vn={class:"filter-main"},xn={class:"date-chips"},Dn=["onClick"],wn={key:0},En={class:"search-row"},An={class:"filter-chips"},Rn=["onClick"],In=["onClick"],Nn={class:"filter-more"},$n={class:"list-header"},Sn={class:"list-actions"},Tn={key:0,class:"list-selected"},zn={class:"table-wrap px-4"},Ln={class:"patient-cell"},Fn={class:"patient-info"},Pn={class:"patient-name"},Wn={class:"patient-cell"},On={class:"patient-info"},Un={class:"patient-name"},qn={class:"apt-badge"},Mn={class:"apt-doctor"},Qn={class:"apt-time"},Yn={key:1,class:"apt-none"},Bn={key:0,class:"status-confirmed"},Hn={key:1,class:"status-unconfirmed"},jn={key:0,class:"followup-cell"},Kn={class:"followup-time"},Gn={class:"followup-doctor"},Xn={key:0,class:"followup-count"},Jn={key:1,class:"followup-none"},Zn={class:"assistant-cell"},el={class:"assistant-name"},tl={key:0,class:"assistant-dept"},al={key:0,class:"prescription-status-cell"},nl={class:"prescription-times"},ll={key:1,class:"status-unprescribed"},sl={class:"video-watch-col"},il={class:"video-watch-trigger"},ol={key:1,class:"video-watch-muted"},dl={key:1,class:"video-watch-muted"},rl={class:"action-cell"},ul={class:"pagination-wrap"},cl={class:"flex flex-col items-center justify-center py-4"},ml={key:0,class:"text-center"},pl={key:1,class:"text-center"},_l=["src"],fl={class:"mt-4 text-sm text-gray-600"},vl={class:"mt-2"},gl={key:2,class:"text-center text-gray-500"},yl={class:"text-gray-500"},hl={class:"text-gray-500"},bl={class:"font-medium"},kl={class:"font-medium"},Cl={key:0,class:"mb-4"},Vl={key:0},xl={key:0,class:"mt-2"},Dl={key:1,class:"mt-2"},wl={class:"mb-4"},El={class:"flex gap-2"},Al={key:0,class:"text-center text-gray-400 py-10"},Rl={key:1,class:"record-list"},Il={class:"record-header"},Nl={class:"flex items-center gap-2"},$l={class:"font-medium text-sm"},Sl={class:"flex items-center gap-2"},Tl={class:"text-xs text-gray-400"},zl={class:"record-content"},Ll={key:0,class:"mt-1"},Fl={key:2,class:"text-center mt-4"},Pl=mt({name:"tcmDiagnosis"}),Wl=mt({...Pl,setup(Ol){const pt=he(()=>be(()=>import("./edit-DFFSwWxS.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),_t=he(()=>be(()=>import("./detail-BC-AUtN0.js"),__vite__mapDeps([66,9,1,2,4,5,10,3]))),ft=he(()=>be(()=>import("./appointment-FizcUjTK.js"),__vite__mapDeps([67,1,2,40,3,4,5,46,68,69]))),vt=he(()=>be(()=>import("./AssistantWatchCallDialog-Cmuadkz7.js"),__vite__mapDeps([70,1,2,3,4,5,71]))),gt=t=>{if(!t)return"-";const e=String(t).length===10?Number(t)*1e3:Number(t);return ct(e).format("YYYY-MM-DD HH:mm:ss")},Fe={only_has_prescription:"1"},_=Le({patient_name:"",diagnosis_type:"",syndrome_type:"",assistant_dept_id:"",assistant_id:"",start_time:"",end_time:"",diagnosis_confirmed:"",appointment_date:"",has_appointment:"",...Fe}),yt=m("all"),Z=m(!1),ht=[{label:"全部",value:""},{label:"已挂号",value:"1"},{label:"未挂号",value:"0"}],bt=[{label:"全部",value:""},{label:"已确认",value:"1"},{label:"未确认",value:"0"}],kt=t=>{_.has_appointment=t,w.page=1,b(),S()},Ct=t=>{_.diagnosis_confirmed=t,w.page=1,b(),S()},ee=()=>{w.page=1,b(),S()},Vt=J(()=>[{label:"当天挂号",value:de.value},{label:"明天挂号",value:xe.value},{label:"后天挂号",value:De.value},{label:"全部",value:""}]),Ce=m({}),xt=async t=>{_.appointment_date=t,w.page=1,await b(),S()},Ve=t=>({...Fe,patient_name:_.patient_name,diagnosis_type:_.diagnosis_type,syndrome_type:_.syndrome_type,diagnosis_confirmed:_.diagnosis_confirmed,has_appointment:_.has_appointment,assistant_dept_id:_.assistant_dept_id,assistant_id:_.assistant_id,appointment_date:t,page_no:1,page_size:1}),S=async()=>{try{const[t,e,d]=await Promise.all([ke(Ve(de.value)),ke(Ve(xe.value)),ke(Ve(De.value))]);Ce.value={[de.value]:(t==null?void 0:t.count)??0,[xe.value]:(e==null?void 0:e.count)??0,[De.value]:(d==null?void 0:d.count)??0}}catch(t){console.error("获取日期数量失败",t)}};function Dt(){const t=()=>S();typeof requestIdleCallback=="function"?requestIdleCallback(t,{timeout:2500}):setTimeout(t,120)}const wt=1e4;let oe=null;function Et(){typeof document<"u"&&document.hidden||(b({silent:!0}).catch(()=>{}),S())}const H=t=>String(t).padStart(2,"0"),de=J(()=>{const t=new Date;return`${t.getFullYear()}-${H(t.getMonth()+1)}-${H(t.getDate())}`}),xe=J(()=>{const t=new Date;return t.setDate(t.getDate()+1),`${t.getFullYear()}-${H(t.getMonth()+1)}-${H(t.getDate())}`}),De=J(()=>{const t=new Date;return t.setDate(t.getDate()+2),`${t.getFullYear()}-${H(t.getMonth()+1)}-${H(t.getDate())}`}),Pe=m([]),We=m([]),L=m([]),Oe=m([]);function Ue(t,e="",d=[]){for(const o of t||[]){if(o==null)continue;const V=Number(o.id);if(!Number.isFinite(V))continue;const k=e?`${e} / ${o.name}`:String(o.name??"");d.push({id:V,label:k}),Array.isArray(o.children)&&o.children.length&&Ue(o.children,k,d)}return d}const qe=J(()=>{const t=_.assistant_dept_id;if(t===""||t==null)return L.value;const e=Number(t);return Number.isFinite(e)?L.value.filter(d=>{const o=d.dept_ids;return!Array.isArray(o)||o.length===0?!1:o.map(Number).includes(e)}):L.value}),At=()=>{const t=_.assistant_id;if(t!==""&&t!=null){const e=Number(t);qe.value.some(o=>Number(o.id)===e)||(_.assistant_id="")}w.page=1,b(),S()},Rt=async()=>{try{const[t,e,d,o]=await Promise.all([rt({type:"diagnosis_type"}),rt({type:"syndrome_type"}),rn(),vn()]);Pe.value=(t==null?void 0:t.diagnosis_type)||[],We.value=(e==null?void 0:e.syndrome_type)||[],L.value=d||[],Oe.value=Ue(Array.isArray(o)?o:[])}catch(t){console.error("获取字典数据失败:",t)}},Me=t=>{if(t!==0&&!t)return null;const e=typeof t=="string"?parseInt(t,10):t;return L.value.find(d=>(typeof d.id=="string"?parseInt(d.id,10):d.id)===e)??null},Qe=t=>{if(!t&&t!==0||L.value.length===0)return"-";const e=Me(t);return e?e.name:"-"},Ye=t=>{const e=t.assistant_id||t.assistant,d=Qe(e),o=we(e);return d==="-"&&!o?"":o?`${d} / ${o}`:d},we=t=>{if(!t&&t!==0||L.value.length===0)return"";const e=Me(t),d=e==null?void 0:e.dept_names;return typeof d=="string"?d.trim():""},{pager:w,getLists:b}=hn({fetchFun:ke,params:_}),Be=()=>b({silent:!0}),It=()=>{yt.value="all",_.patient_name="",_.diagnosis_type="",_.syndrome_type="",_.assistant_dept_id="",_.assistant_id="",_.diagnosis_confirmed="",_.appointment_date="",_.has_appointment="",w.page=1,b(),S()},He=t=>{const e=t.DiagnosisViewRecord||[];return e.length>0&&e.some(d=>d.is_confirmed==1)},Nt=({row:t})=>He(t)?t.has_appointment?"":"row-no-appointment":"row-unconfirmed",te=m(),$t=m(),je=m(),re=m(null),ue=bn();Da([te,re],()=>{const t=re.value,e=te.value;t==null||!(e!=null&&e.open)||(e.open("edit",t),re.value=null)},{flush:"post"});const ce=m(!1),Ke=m(0),St=t=>{var d;const e=t.assistant_id??t.assistant;return e==null||e===""?!1:Number(e)===Number((d=ue.userInfo)==null?void 0:d.id)},Tt=t=>{Ke.value=Number(t.id)||0,ce.value=!0},zt=t=>St(t)&&B(["tcm.diagnosis/watchCall"]),me=t=>{var e;return((e=t.video_call_hint)==null?void 0:e.state)||"none"},Lt=t=>{const e=t.video_call_hint,d="点击进入实时房间(仅观看,不推流、不上麦)";return e!=null&&e.start_time?`${d}。开始时间:${gt(e.start_time)}`:d},Ft=t=>{const e=me(t);return e==="live"||e==="pending_room"},Pt=t=>me(t)==="pending_room"?"医生尚未接通或未同步房间号,接通后再点此进入":Lt(t),Wt=t=>{if(me(t)!=="live"){g.msgWarning("医生尚未接通或未同步房间号,请稍后再试");return}Tt(t)},Ot=t=>{const e=t.video_call_hint;return e!=null&&e.label?e.label:"暂无可旁观通话"},Ut=t=>{const e=me(t);if(e==="none")return"—";if(e==="live")return"通话中";if(e==="pending_room")return"接通中";const d=t.video_call_hint;return(d==null?void 0:d.label)||"—"},j=m(!1),pe=m(),Ee=m(!1),f=Le({patient_id:"",patient_name:"",phone:"",order_type:"",amount:0,remark:"",has_appointment:!1,appointment_time_text:""}),qt={order_type:[{required:!0,message:"请选择订单类型",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"}]},Mt=t=>{var e;f.patient_id=t.patient_id||t.id,f.patient_name=t.patient_name,f.phone=t.phone||"",f.order_type="",f.amount=0,f.remark="",f.has_appointment=!!t.has_appointment,f.appointment_time_text=t.appointment_time_text||"",(e=pe.value)==null||e.clearValidate(),j.value=!0},Qt=()=>{var t;f.patient_id="",f.patient_name="",f.phone="",f.order_type="",f.amount=0,f.remark="",f.has_appointment=!1,f.appointment_time_text="",(t=pe.value)==null||t.clearValidate()},Yt=async()=>{var t;try{await((t=pe.value)==null?void 0:t.validate()),Ee.value=!0;const e=await gn({patient_id:f.patient_id,order_type:f.order_type,amount:f.amount,remark:f.remark});j.value=!1,b();const d=e==null?void 0:e.order_no;if(d){T.value=!0,F.value=!0,P.value="",W.value={patient_name:f.patient_name,has_appointment:f.has_appointment,appointment_time_text:f.appointment_time_text};try{const o=await un({order_no:d});o!=null&&o.qrcode_url?P.value=o.qrcode_url:g.msgError("二维码生成失败")}catch(o){g.msgError((o==null?void 0:o.msg)||"生成二维码失败")}finally{F.value=!1}}}catch(e){console.error("创建订单失败:",e)}finally{Ee.value=!1}},T=m(!1),F=m(!1),P=m(""),W=m(null),Bt=J(()=>{const t=W.value;return t?t.has_appointment?t.appointment_time_text||"—":"未挂号":"—"}),Ae=m("小程序二维码"),Re=m("confirm"),O=m([]),Q=m(!1),Ie=m(!1),ae=m("batch"),ne=m(null),C=m({assistant_id:null,is_inherit:!1}),Ht=t=>{O.value=t.map(e=>e.id)},jt=t=>{ae.value="single",ne.value=t,C.value.assistant_id=Number(t.assistant_id)>0?Number(t.assistant_id):null,C.value.is_inherit=!1,Q.value=!0},Kt=()=>{if(O.value.length===0){g.msgWarning("请先选择要指派的诊单");return}ae.value="batch",ne.value=null,C.value.assistant_id=null,C.value.is_inherit=!1,Q.value=!0},Gt=async()=>{if(!C.value.assistant_id){g.msgWarning("请选择医助");return}Ie.value=!0;try{if(ae.value==="single")await it({id:ne.value.id,assistant_id:C.value.assistant_id,is_inherit:C.value.is_inherit?1:0});else{const t=O.value.map(e=>it({id:e,assistant_id:C.value.assistant_id,is_inherit:C.value.is_inherit?1:0}));await Promise.all(t),O.value=[]}Q.value=!1,b()}catch(t){console.error("指派失败:",t)}finally{Ie.value=!1}},Xt=()=>{te.value.open("add")},Jt=t=>{te.value.open("edit",t)},Zt=async t=>{await g.confirm("确定要删除该诊单吗?"),await _n({id:t}),b()},ea=(t,e)=>{switch(t){case"assign":jt(e);break;case"videoQr":if(!le(e)){g.msgWarning("仅「已预约」状态可生成视频二维码");return}Je(e);break;case"confirmQr":Ze(e);break;case"cancelApt":na(e);break;case"order":Mt(e);break;case"delete":Zt(e.id);break}},ta=t=>{const e=Number(t.appointment_status);return e===3?"已完成":e===4?"已过号":"已挂号"},aa=t=>{const e=Number(t.appointment_status);return{"has-apt":t.has_appointment,"apt-row-done":t.has_appointment&&e===3,"apt-row-missed":t.has_appointment&&e===4}},le=t=>t.has_appointment&&Number(t.appointment_status)===1,Ge=t=>{const e=Number(t.appointment_status);return!!(t.has_appointment&&t.appointment_id&&(e===1||e===4))},na=async t=>{if(!Ge(t)){const e=Number(t.appointment_status);t.has_appointment&&e===3?g.msgWarning("已完成就诊,无法取消挂号"):g.msgWarning("该诊单未挂号或挂号信息异常");return}try{await g.confirm(`确定要取消患者「${t.patient_name}」的挂号吗?`),await yn({id:t.appointment_id}),g.msgSuccess("取消挂号成功"),b(),S()}catch(e){e!=="cancel"&&g.msgError((e==null?void 0:e.msg)||"取消挂号失败")}},la=t=>{var e;if(!t.patient_id){g.msgWarning("患者信息不完整");return}(e=je.value)==null||e.open(t)},K=m(!1),Ne=m(!1),Xe=m(),N=Le({id:0,patient_name:"",id_card:""}),sa={id_card:[{required:!0,validator:(t,e,d)=>{if(!e){d(new Error("请输入身份证号"));return}const o=/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e),V=/^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$/.test(e);o||V?d():d(new Error("请输入15或18位有效身份证号"))},trigger:"blur"}]},ia=t=>{N.id=t.id,N.patient_name=t.patient_name||"-",N.id_card=t.id_card||"",K.value=!0},oa=async()=>{var t;await((t=Xe.value)==null?void 0:t.validate()),Ne.value=!0;try{await cn({id:N.id,id_card:N.id_card}),g.msgSuccess("补全成功,年龄已自动更新"),K.value=!1,b()}catch(e){g.msgError((e==null?void 0:e.msg)||"补全失败")}finally{Ne.value=!1}},Je=async t=>{var e;if(!le(t)){g.msgWarning("仅「已预约」状态可生成视频二维码");return}if(!t.patient_id){g.msgWarning("患者信息不完整");return}Re.value="video",W.value=t,T.value=!0,F.value=!0,P.value="",Ae.value="视频二维码";try{const d=await ut();if(!(d!=null&&d.app_id)){g.msgError("小程序未配置,请先配置小程序信息"),T.value=!1;return}const o=await ot({doctor_id:t.appointment_doctor_id,diagnosis_id:t.appointment_doctor_id,patient_id:t.patient_id,share_user_id:((e=ue.userInfo)==null?void 0:e.id)||"",mini_program_path:"pages/login/login"});o!=null&&o.qrcode_url?P.value=o.qrcode_url:g.msgError("二维码生成失败")}catch(d){g.msgError((d==null?void 0:d.msg)||"生成二维码失败,请重试")}finally{F.value=!1}},Ze=async t=>{if(!le(t)){g.msgWarning("仅「已预约」状态可使用诊单二维码");return}if(!t.patient_id){g.msgWarning("患者信息不完整");return}Re.value="confirm",W.value=t,T.value=!0,F.value=!0,P.value="",Ae.value="诊单二维码";try{const e=await ut();if(!(e!=null&&e.app_id)){g.msgError("小程序未配置,请先配置小程序信息"),T.value=!1;return}const d=ue.userInfo,o=await ot({diagnosis_id:t.id,doctor_id:t.appointment_doctor_id,patient_id:t.patient_id,share_user_id:(d==null?void 0:d.id)||""});o!=null&&o.qrcode_url?P.value=o.qrcode_url:g.msgError("二维码生成失败")}catch(e){console.error("生成小程序二维码失败:",e),g.msgError((e==null?void 0:e.msg)||"生成二维码失败,请重试")}finally{F.value=!1}},da=()=>{W.value&&(Re.value==="video"?Je(W.value):Ze(W.value))},_e=m(!1),E=m(null),U=m([]),fe=m(0),$e=m(!1),A=m(null),Y=m(""),Se=m(!1),Te=m(1),ra=t=>{if(!t)return"-";const e=String(t).length===10?t*1e3:t;return ct(e).format("YYYY-MM-DD HH:mm")},ua=async t=>{E.value=t,_e.value=!0,U.value=[],fe.value=0,A.value=null,Y.value="",Te.value=1,$e.value=!0;try{const[e,d]=await Promise.all([dt({diagnosis_id:t.id,patient_id:t.patient_id,page_no:1,page_size:20}),fn({patient_id:t.patient_id||t.id}).catch(()=>null)]);U.value=(e==null?void 0:e.lists)||[],fe.value=(e==null?void 0:e.count)||0,A.value=d}catch(e){console.error("加载企业微信记录失败:",e)}finally{$e.value=!1}},ca=async()=>{if(E.value){Te.value++;try{const t=await dt({diagnosis_id:E.value.id,patient_id:E.value.patient_id,page_no:Te.value,page_size:20});U.value.push(...(t==null?void 0:t.lists)||[])}catch(t){console.error("加载更多记录失败:",t)}}},ma=async()=>{var t;if(!Y.value.trim()){g.msgWarning("请输入内容");return}Se.value=!0;try{await mn({diagnosis_id:E.value.id,patient_id:E.value.patient_id,content:Y.value.trim(),msg_type:"note",staff_name:((t=ue.userInfo)==null?void 0:t.name)||"",external_name:E.value.patient_name||""}),Y.value="",ua(E.value)}catch(e){g.msgError((e==null?void 0:e.msg)||"添加失败")}finally{Se.value=!1}},pa=async t=>{await g.confirm("确定删除该记录吗?");try{await pn({id:t}),U.value=U.value.filter(e=>e.id!==t),fe.value--}catch(e){g.msgError((e==null?void 0:e.msg)||"删除失败")}},_a=wa();return Ea(()=>{_.appointment_date=de.value,Rt(),b(),Dt(),oe=setInterval(Et,wt);const t=_a.query.id;if(t!=null&&t!==""){const e=Number(t);Number.isNaN(e)||(re.value=e)}}),Aa(()=>{oe!=null&&(clearInterval(oe),oe=null)}),(t,e)=>{var nt;const d=Ia,o=$a,V=Sa,k=za,G=Ta,et=Fa,R=Wa,z=Oa,tt=Ua,X=Qa,fa=Ma,va=qa,ga=Pa,ya=dn,ve=Xa,$=Za,ha=en,ze=Ja,ba=tn,ge=nn,ka=an,Ca=ln,Va=sn,xa=on,se=Ra("perms"),at=Ka;return i(),u("div",Cn,[l(et,{class:"filter-card !border-none",shadow:"never"},{default:s(()=>[r("div",Vn,[r("div",xn,[(i(!0),u(D,null,I(Vt.value,a=>(i(),u("span",{key:a.value,class:ie(["chip",{active:n(_).appointment_date===a.value}]),onClick:x=>xt(a.value)},[c(p(a.label)+" ",1),a.value&&n(Ce)[a.value]!==void 0?(i(),u("em",wn,p(n(Ce)[a.value]),1)):h("",!0)],10,Dn))),128))]),r("div",En,[l(d,{modelValue:n(_).patient_name,"onUpdate:modelValue":e[0]||(e[0]=a=>n(_).patient_name=a),placeholder:"患者姓名",clearable:"",class:"search-input",onKeyup:Na(ee,["enter"])},null,8,["modelValue"]),l(o,{type:"primary",onClick:ee},{default:s(()=>[...e[25]||(e[25]=[c("查询",-1)])]),_:1})])]),r("div",An,[e[26]||(e[26]=r("span",{class:"chip-label"},"挂号:",-1)),(i(),u(D,null,I(ht,a=>r("span",{key:a.value,class:ie(["chip","chip-sm",{active:n(_).has_appointment===a.value}]),onClick:x=>kt(a.value)},p(a.label),11,Rn)),64)),e[27]||(e[27]=r("span",{class:"chip-divider"},null,-1)),e[28]||(e[28]=r("span",{class:"chip-label"},"确认:",-1)),(i(),u(D,null,I(bt,a=>r("span",{key:a.value,class:ie(["chip","chip-sm",{active:n(_).diagnosis_confirmed===a.value}]),onClick:x=>Ct(a.value)},p(a.label),11,In)),64)),l(o,{link:"",type:"primary",size:"small",class:"more-btn",onClick:e[1]||(e[1]=a=>Z.value=!n(Z))},{default:s(()=>[c(p(n(Z)?"收起":"更多筛选")+" ",1),l(V,{class:ie({"rotate-180":n(Z)})},{default:s(()=>[l(n(lt))]),_:1},8,["class"])]),_:1})]),q(r("div",Nn,[l(G,{modelValue:n(_).assistant_dept_id,"onUpdate:modelValue":e[2]||(e[2]=a=>n(_).assistant_dept_id=a),placeholder:"医助部门",clearable:"",filterable:"",size:"small",class:"filter-dept-select",onChange:At},{default:s(()=>[(i(!0),u(D,null,I(n(Oe),a=>(i(),v(k,{key:a.id,label:a.label,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(G,{modelValue:n(_).diagnosis_type,"onUpdate:modelValue":e[3]||(e[3]=a=>n(_).diagnosis_type=a),placeholder:"诊断类型",clearable:"",size:"small",onChange:ee},{default:s(()=>[(i(!0),u(D,null,I(n(Pe),a=>(i(),v(k,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(G,{modelValue:n(_).syndrome_type,"onUpdate:modelValue":e[4]||(e[4]=a=>n(_).syndrome_type=a),placeholder:"证型",clearable:"",size:"small",onChange:ee},{default:s(()=>[(i(!0),u(D,null,I(n(We),a=>(i(),v(k,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(G,{modelValue:n(_).assistant_id,"onUpdate:modelValue":e[5]||(e[5]=a=>n(_).assistant_id=a),placeholder:"医助",clearable:"",filterable:"",size:"small",onChange:ee},{default:s(()=>[(i(!0),u(D,null,I(qe.value,a=>(i(),v(k,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(o,{size:"small",onClick:It},{default:s(()=>[...e[29]||(e[29]=[c("重置",-1)])]),_:1})],512),[[La,n(Z)]])]),_:1}),l(et,{class:"!border-none mt-3 list-card",shadow:"never"},{default:s(()=>[r("div",$n,[r("div",Sn,[q((i(),v(o,{type:"primary",onClick:Xt},{default:s(()=>[...e[30]||(e[30]=[c("新增诊单",-1)])]),_:1})),[[se,["tcm.diagnosis/add"]]]),q((i(),v(o,{type:"success",onClick:Kt,disabled:n(O).length===0},{default:s(()=>[...e[31]||(e[31]=[c(" 批量指派医助 ",-1)])]),_:1},8,["disabled"])),[[se,["tcm.diagnosis/assign"]]])]),n(O).length>0?(i(),u("div",Tn,"已选 "+p(n(O).length)+" 条",1)):h("",!0)]),r("div",zn,[q((i(),v(ga,{data:n(w).lists,size:"default",onSelectionChange:Ht,"row-class-name":Nt,class:"diagnosis-table",stripe:""},{default:s(()=>[l(R,{type:"selection",width:"48",align:"center"}),l(R,{label:"ID","min-width":"70"},{default:s(({row:a})=>[r("div",Ln,[r("div",Fn,[r("div",Pn,[c(p(a.id)+" ",1),a.assign_read_at===null&&a.assistant_id>0?(i(),v(z,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-1"},{default:s(()=>[...e[32]||(e[32]=[c("NEW",-1)])]),_:1})):h("",!0)])])])]),_:1}),l(R,{label:"患者","min-width":"60"},{default:s(({row:a})=>[r("div",Wn,[r("div",On,[r("div",Un,p(a.patient_name),1)])])]),_:1}),l(R,{label:" 性别 / 年龄",width:"100",align:"left"},{default:s(({row:a})=>[r("div",null,p(a.gender_desc||"-")+" · "+p(a.age??"-")+"岁",1)]),_:1}),l(R,{label:"挂号","min-width":"180"},{default:s(({row:a})=>[r("div",{class:ie(["appointment-cell",aa(a)])},[a.has_appointment?(i(),u(D,{key:0},[r("div",qn,p(ta(a)),1),r("div",Mn,p(a.appointment_doctor_name||"-"),1),r("div",Qn,p(a.appointment_time_text||"-"),1)],64)):(i(),u("span",Yn,"未挂号"))],2)]),_:1}),l(R,{label:"确认",width:"88",align:"center"},{default:s(({row:a})=>[He(a)?(i(),u("span",Bn,"已确认")):(i(),u("span",Hn,"未确认"))]),_:1}),l(R,{label:"复诊","min-width":"150"},{default:s(({row:a})=>[a.has_prescription?(i(),u("div",jn,[r("div",Kn,p(a.followup_time_text||"—"),1),r("div",Gn,p(a.followup_doctor_name||"—"),1),a.followup_prescription_count>0?(i(),u("div",Xn," 第"+p(a.followup_prescription_count)+"次复诊 ",1)):h("",!0),a.followup_rx_voided?(i(),v(z,{key:1,type:"info",size:"small",effect:"plain",class:"followup-void-tag"},{default:s(()=>[...e[33]||(e[33]=[c(" 处方已作废 ",-1)])]),_:1})):h("",!0)])):(i(),u("span",Jn,"无"))]),_:1}),l(R,{label:"助理","min-width":"120"},{default:s(({row:a})=>[l(tt,{disabled:!Ye(a),content:Ye(a),placement:"top"},{default:s(()=>[r("div",Zn,[r("div",el,p(Qe(a.assistant_id||a.assistant)),1),we(a.assistant_id||a.assistant)?(i(),u("div",tl,p(we(a.assistant_id||a.assistant)),1)):h("",!0)])]),_:2},1032,["disabled","content"])]),_:1}),l(R,{label:"开方","min-width":"96",align:"center"},{default:s(({row:a})=>[a.has_prescription?(i(),u("div",al,[e[34]||(e[34]=r("span",{class:"status-prescribed"},"已开方",-1)),r("span",nl,"("+p(a.followup_prescription_count||1)+"次)",1)])):(i(),u("span",ll,"未开方"))]),_:1}),l(R,{label:"视频旁观",width:"120",fixed:"right",align:"center"},{default:s(({row:a})=>[r("div",sl,[zt(a)?(i(),u(D,{key:0},[Ft(a)?(i(),v(tt,{key:0,content:Pt(a),placement:"top"},{default:s(()=>[r("span",il,[l(o,{type:"primary",link:"",size:"small",onClick:x=>Wt(a)},{default:s(()=>[...e[35]||(e[35]=[c(" 进入旁观 ",-1)])]),_:1},8,["onClick"])])]),_:2},1032,["content"])):(i(),u("span",ol,p(Ot(a)),1))],64)):(i(),u("span",dl,p(Ut(a)),1))])]),_:1}),l(R,{label:"操作",width:"260",fixed:"right",align:"left"},{default:s(({row:a})=>[r("div",rl,[q((i(),v(o,{type:"primary",link:"",size:"small",onClick:x=>Jt(a.id)},{default:s(()=>[...e[36]||(e[36]=[c("诊单",-1)])]),_:1},8,["onClick"])),[[se,["tcm.diagnosis/edit"]]]),q((i(),v(o,{type:"success",link:"",size:"small",onClick:x=>la(a)},{default:s(()=>[...e[37]||(e[37]=[c("预约",-1)])]),_:1},8,["onClick"])),[[se,["tcm.diagnosis/guahao"]]]),q((i(),v(o,{type:"warning",link:"",size:"small",onClick:x=>ia(a)},{default:s(()=>[...e[38]||(e[38]=[c("补全身份证",-1)])]),_:1},8,["onClick"])),[[se,["tcm.diagnosis/edit"]]]),l(va,{trigger:"click",onCommand:x=>ea(x,a),placement:"bottom-end"},{dropdown:s(()=>[l(fa,null,{default:s(()=>[n(B)(["tcm.diagnosis/assign"])?(i(),v(X,{key:0,command:"assign"},{default:s(()=>[l(V,null,{default:s(()=>[l(n(Ya))]),_:1}),e[40]||(e[40]=c("指派",-1))]),_:1})):h("",!0),le(a)&&n(B)(["tcm.diagnosis/videoQr"])?(i(),v(X,{key:1,command:"videoQr"},{default:s(()=>[l(V,null,{default:s(()=>[l(n(st))]),_:1}),e[41]||(e[41]=c("视频二维码",-1))]),_:1})):h("",!0),n(B)(["tcm.diagnosis/guahao"])&&le(a)?(i(),v(X,{key:2,command:"confirmQr"},{default:s(()=>[l(V,null,{default:s(()=>[l(n(st))]),_:1}),e[42]||(e[42]=c("二维码",-1))]),_:1})):h("",!0),Ge(a)&&n(B)(["tcm.diagnosis/guahao"])?(i(),v(X,{key:3,command:"cancelApt"},{default:s(()=>[l(V,null,{default:s(()=>[l(n(Ba))]),_:1}),e[43]||(e[43]=c("取消挂号",-1))]),_:1})):h("",!0),n(B)(["tcm.diagnosis/order"])?(i(),v(X,{key:4,command:"order"},{default:s(()=>[l(V,null,{default:s(()=>[l(n(Ha))]),_:1}),e[44]||(e[44]=c("创建订单",-1))]),_:1})):h("",!0),n(B)(["tcm.diagnosis/delete"])?(i(),v(X,{key:5,command:"delete",divided:""},{default:s(()=>[l(V,null,{default:s(()=>[l(n(ja))]),_:1}),e[45]||(e[45]=r("span",{class:"text-danger"},"删除",-1))]),_:1})):h("",!0)]),_:2},1024)]),default:s(()=>[l(o,{type:"info",link:"",size:"small"},{default:s(()=>[e[39]||(e[39]=c("更多",-1)),l(V,{class:"el-icon--right"},{default:s(()=>[l(n(lt))]),_:1})]),_:1})]),_:2},1032,["onCommand"])])]),_:1})]),_:1},8,["data"])),[[at,n(w).loading]]),r("div",ul,[l(ya,{modelValue:n(w),"onUpdate:modelValue":e[6]||(e[6]=a=>M(w)?w.value=a:null),onChange:n(b)},null,8,["modelValue","onChange"])])])]),_:1}),l(n(pt),{ref_key:"editRef",ref:te,onSuccess:Be},null,512),l(n(_t),{ref_key:"detailRef",ref:$t},null,512),l(n(ft),{ref_key:"appointmentRef",ref:je,onSuccess:Be},null,512),l(n(vt),{modelValue:n(ce),"onUpdate:modelValue":e[7]||(e[7]=a=>M(ce)?ce.value=a:null),"diagnosis-id":n(Ke),onClosed:n(b)},null,8,["modelValue","diagnosis-id","onClosed"]),l(ve,{modelValue:n(T),"onUpdate:modelValue":e[9]||(e[9]=a=>M(T)?T.value=a:null),title:n(Ae),width:"400px","close-on-click-modal":!1},{footer:s(()=>[l(o,{onClick:e[8]||(e[8]=a=>T.value=!1)},{default:s(()=>[...e[48]||(e[48]=[c("关闭",-1)])]),_:1}),n(F)?h("",!0):(i(),v(o,{key:0,type:"primary",onClick:da},{default:s(()=>[...e[49]||(e[49]=[c(" 重新生成 ",-1)])]),_:1}))]),default:s(()=>{var a;return[r("div",cl,[n(F)?(i(),u("div",ml,[l(V,{class:"is-loading",size:40},{default:s(()=>[l(n(Ga))]),_:1}),e[46]||(e[46]=r("div",{class:"mt-4 text-gray-500"},"生成中...",-1))])):n(P)?(i(),u("div",pl,[r("img",{src:n(P),alt:"小程序二维码",class:"w-64 h-64 border border-gray-200 rounded"},null,8,_l),r("div",fl,[r("div",null,"患者:"+p((a=n(W))==null?void 0:a.patient_name),1),r("div",vl,"挂号时间:"+p(Bt.value),1),e[47]||(e[47]=r("div",{class:"mt-2"},"请使用企业微信扫描二维码,然后转发给患者",-1))])])):(i(),u("div",gl," 生成失败,请重试 "))])]}),_:1},8,["modelValue","title"]),l(ve,{modelValue:n(Q),"onUpdate:modelValue":e[13]||(e[13]=a=>M(Q)?Q.value=a:null),title:n(ae)==="batch"?"批量指派医助":"指派医助",width:"500px"},{footer:s(()=>[l(o,{onClick:e[12]||(e[12]=a=>Q.value=!1)},{default:s(()=>[...e[52]||(e[52]=[c("取消",-1)])]),_:1}),l(o,{type:"primary",onClick:Gt,loading:n(Ie)},{default:s(()=>[...e[53]||(e[53]=[c(" 确定指派 ",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(ze,{model:n(C),"label-width":"100px"},{default:s(()=>[l($,{label:"选择医助",required:""},{default:s(()=>[l(G,{modelValue:n(C).assistant_id,"onUpdate:modelValue":e[10]||(e[10]=a=>n(C).assistant_id=a),placeholder:"请选择医助",class:"w-full",filterable:"",clearable:"","value-key":"id"},{default:s(()=>[(i(!0),u(D,null,I(n(L),a=>(i(),v(k,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l($,{label:"继承"},{default:s(()=>[l(ha,{modelValue:n(C).is_inherit,"onUpdate:modelValue":e[11]||(e[11]=a=>n(C).is_inherit=a)},{default:s(()=>[...e[50]||(e[50]=[c("继承",-1)])]),_:1},8,["modelValue"]),e[51]||(e[51]=r("span",{class:"text-gray-400 text-xs ml-2"},"勾选后写入指派记录",-1))]),_:1}),n(ae)==="batch"?(i(),v($,{key:0,label:"已选择"},{default:s(()=>[r("div",yl,p(n(O).length)+" 条诊单记录",1)]),_:1})):(i(),v($,{key:1,label:"诊单信息"},{default:s(()=>{var a,x;return[r("div",hl,[r("div",null,"患者:"+p((a=n(ne))==null?void 0:a.patient_name),1),r("div",null,"诊断日期:"+p((x=n(ne))==null?void 0:x.diagnosis_date_text),1)])]}),_:1}))]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(ve,{modelValue:n(j),"onUpdate:modelValue":e[18]||(e[18]=a=>M(j)?j.value=a:null),title:"创建订单",width:"600px",onClose:Qt},{footer:s(()=>[l(o,{onClick:e[17]||(e[17]=a=>j.value=!1)},{default:s(()=>[...e[54]||(e[54]=[c("取消",-1)])]),_:1}),l(o,{type:"primary",onClick:Yt,loading:n(Ee)},{default:s(()=>[...e[55]||(e[55]=[c("创建订单",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(ze,{ref_key:"orderFormRef",ref:pe,model:n(f),rules:qt,"label-width":"100px"},{default:s(()=>[l($,{label:"患者"},{default:s(()=>[r("span",bl,p(n(f).patient_name)+" ("+p(n(f).phone)+")",1)]),_:1}),l($,{label:"订单类型",prop:"order_type"},{default:s(()=>[l(G,{modelValue:n(f).order_type,"onUpdate:modelValue":e[14]||(e[14]=a=>n(f).order_type=a),placeholder:"请选择",class:"w-full"},{default:s(()=>[l(k,{label:"挂号费",value:1}),l(k,{label:"问诊费",value:2}),l(k,{label:"药品费用",value:3}),l(k,{label:"首付费用",value:4}),l(k,{label:"尾款费用",value:5}),l(k,{label:"其他费用",value:6}),l(k,{label:"全部费用",value:7}),l(k,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),l($,{label:"订单金额",prop:"amount"},{default:s(()=>[l(ba,{modelValue:n(f).amount,"onUpdate:modelValue":e[15]||(e[15]=a=>n(f).amount=a),min:0,step:.01,precision:2,placeholder:"请输入金额",class:"w-full"},null,8,["modelValue"])]),_:1}),l($,{label:"备注",prop:"remark"},{default:s(()=>[l(d,{modelValue:n(f).remark,"onUpdate:modelValue":e[16]||(e[16]=a=>n(f).remark=a),type:"textarea",rows:3,placeholder:"请输入备注(可选)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(ve,{modelValue:n(K),"onUpdate:modelValue":e[21]||(e[21]=a=>M(K)?K.value=a:null),title:"补全身份证号",width:"400px","close-on-click-modal":!1,onClose:e[22]||(e[22]=a=>n(N).id_card="")},{footer:s(()=>[l(o,{onClick:e[20]||(e[20]=a=>K.value=!1)},{default:s(()=>[...e[56]||(e[56]=[c("取消",-1)])]),_:1}),l(o,{type:"primary",onClick:oa,loading:n(Ne)},{default:s(()=>[...e[57]||(e[57]=[c("提交(自动更新年龄)",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(ze,{ref_key:"fillIdCardFormRef",ref:Xe,model:n(N),rules:sa,"label-width":"80px"},{default:s(()=>[l($,{label:"患者"},{default:s(()=>[r("span",kl,p(n(N).patient_name),1)]),_:1}),l($,{label:"身份证号",prop:"id_card"},{default:s(()=>[l(d,{modelValue:n(N).id_card,"onUpdate:modelValue":e[19]||(e[19]=a=>n(N).id_card=a),placeholder:"请输入15或18位身份证号",maxlength:"18","show-word-limit":"",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(xa,{modelValue:n(_e),"onUpdate:modelValue":e[24]||(e[24]=a=>M(_e)?_e.value=a:null),title:`企业微信记录 - ${((nt=n(E))==null?void 0:nt.patient_name)||""}`,size:"600px","destroy-on-close":!0},{default:s(()=>{var a,x;return[n(A)?(i(),u("div",Cl,[l(ka,{column:2,border:"",size:"small"},{default:s(()=>[l(ge,{label:"患者姓名"},{default:s(()=>{var y;return[c(p((y=n(E))==null?void 0:y.patient_name),1)]}),_:1}),l(ge,{label:"手机号"},{default:s(()=>[c(p(n(A).phone||"-"),1)]),_:1}),l(ge,{label:"企微联系人ID"},{default:s(()=>[n(A).external_userid?(i(),u("span",Vl,p(n(A).external_userid),1)):(i(),v(z,{key:1,type:"info",size:"small"},{default:s(()=>[...e[58]||(e[58]=[c("未关联",-1)])]),_:1}))]),_:1}),l(ge,{label:"会话存档"},{default:s(()=>[n(A).msgaudit_enabled?(i(),v(z,{key:0,type:"success",size:"small"},{default:s(()=>[...e[59]||(e[59]=[c("已开通",-1)])]),_:1})):(i(),v(z,{key:1,type:"info",size:"small"},{default:s(()=>[...e[60]||(e[60]=[c("未配置",-1)])]),_:1}))]),_:1})]),_:1}),(a=n(A).permit_users)!=null&&a.length?(i(),u("div",xl,[e[61]||(e[61]=r("span",{class:"text-sm text-gray-500 mr-2"},"存档成员:",-1)),(i(!0),u(D,null,I(n(A).permit_users,y=>(i(),v(z,{key:y,size:"small",class:"mr-1"},{default:s(()=>[c(p(y),1)]),_:2},1024))),128))])):h("",!0),(x=n(A).msgaudit_agree)!=null&&x.length?(i(),u("div",Dl,[e[62]||(e[62]=r("span",{class:"text-sm text-gray-500 mr-2"},"存档同意:",-1)),(i(!0),u(D,null,I(n(A).msgaudit_agree,(y,ye)=>(i(),v(z,{key:ye,type:y.agree_status==="Agree"?"success":"warning",size:"small",class:"mr-1"},{default:s(()=>[c(p(y.userid)+": "+p(y.agree_status==="Agree"?"已同意":y.agree_status),1)]),_:2},1032,["type"]))),128))])):h("",!0)])):h("",!0),l(Ca),r("div",wl,[r("div",El,[l(d,{modelValue:n(Y),"onUpdate:modelValue":e[23]||(e[23]=y=>M(Y)?Y.value=y:null),type:"textarea",rows:2,placeholder:"添加沟通记录...",class:"flex-1"},null,8,["modelValue"]),l(o,{type:"primary",onClick:ma,loading:n(Se),class:"self-end"},{default:s(()=>[...e[63]||(e[63]=[c(" 添加 ",-1)])]),_:1},8,["loading"])])]),q((i(),u("div",null,[n(U).length===0?(i(),u("div",Al," 暂无聊天记录 ")):(i(),u("div",Rl,[(i(!0),u(D,null,I(n(U),y=>{var ye;return i(),u("div",{key:y.id,class:"record-item"},[r("div",Il,[r("div",Nl,[l(z,{type:y.direction===0?"primary":"success",size:"small"},{default:s(()=>[c(p(y.direction===0?"员工":"客户"),1)]),_:2},1032,["type"]),r("span",$l,p(y.direction===0?y.staff_name:y.external_name||((ye=n(E))==null?void 0:ye.patient_name)),1),y.msg_type==="note"?(i(),v(z,{key:0,type:"warning",size:"small"},{default:s(()=>[...e[64]||(e[64]=[c("备注",-1)])]),_:1})):h("",!0)]),r("div",Sl,[r("span",Tl,p(ra(y.chat_time)),1),l(o,{type:"danger",link:"",size:"small",onClick:ql=>pa(y.id)},{default:s(()=>[...e[65]||(e[65]=[c(" 删除 ",-1)])]),_:1},8,["onClick"])])]),r("div",zl,p(y.content),1),y.media_url?(i(),u("div",Ll,[l(Va,{src:y.media_url,style:{"max-width":"200px"},fit:"contain","preview-src-list":[y.media_url]},null,8,["src","preview-src-list"])])):h("",!0)])}),128))])),n(fe)>n(U).length?(i(),u("div",Fl,[l(o,{link:"",type:"primary",onClick:ca},{default:s(()=>[...e[66]||(e[66]=[c("加载更多",-1)])]),_:1})])):h("",!0)])),[[at,n($e)]])]}),_:1},8,["modelValue","title"])])}}}),es=kn(Wl,[["__scopeId","data-v-5f089050"]]);export{es as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-BuMVMky1.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-BSADvQNg.js","assets/index-Bkarz3gO.js","assets/index-deCJ4ja-.css","assets/perm-CHCBwnFR.js","assets/DailyMatrix-BkYJBu_D.js","assets/picker-BTh9eW9u.js","assets/index-CS5Wg0xx.js","assets/index-B3imPWFk.css","assets/index-oRynN2pP.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-Cqk_cdo9.js","assets/index-D0f1Mn00.css","assets/index-BJZwRQXE.js","assets/file-BjbV-eNx.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-VonOdKxB.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-BQogJqk-.js","assets/FollowupAudioReview-BDRNtxGL.js","assets/FollowupAudioField-Dz9Csp0b.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-2_yvVfnZ.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-PGnYdg0x.js","assets/RecordingPlaybackBlock-DDHsYga7.js","assets/RecordingVideoPlayer-B0kkGDId.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CO99W60y.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-mqnmyStx.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-aR2VA9u1.js","assets/doctor-DBvYeWd3.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-D83GYvN5.js","assets/patient-B_ifBl-W.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-Dk7f29yf.js","assets/PrescriptionOrderDetailDrawer-CX7YbddA.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-C_PSjf1W.js","assets/index-DAIDDabA.js","assets/medicine-DPIOyHj8.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CTRSsggc.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/detail-C1EBtcAD.js","assets/appointment-C_cZtFED.js","assets/first_visit-B5IgLifl.js","assets/appointment-g8BrHfhi.css","assets/AssistantWatchCallDialog-CjRQdKqO.js","assets/AssistantWatchCallDialog-BIPZRgaH.css"])))=>i.map(i=>d[i]); +import{o as mt,R as Da,Q as wa,ap as Ea,aq as Aa,bp as Ra,q as i,r as u,v as l,D as s,s as r,F as D,G as I,ae as ie,u as n,L as c,T as p,P as h,aA as Ia,bc as Na,K as $a,w as Sa,cm as lt,ac as q,bh as Ta,O as v,bi as za,ad as La,bj as Fa,bk as Pa,bl as Wa,bm as Oa,a1 as Ua,$ as qa,Z as Ma,_ as Qa,cn as Ya,bF as st,db as Ba,bI as Ha,d9 as ja,bn as Ka,C as M,ba as Ga,aB as Xa,bd as Ja,bb as Za,bg as en,J as tn,c1 as an,c2 as nn,bE as ln,aa as sn,B as on,cd as he,al as be,aC as Le,M as m,p as J}from"./.pnpm-CyuAWpdG.js";import{_ as dn}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{ax as ke,o as rn,Y as un,az as it,aB as cn,X as ot,aC as dt,aD as mn,aE as pn,aF as _n,aG as fn}from"./tcm-BSADvQNg.js";import{d as vn}from"./department-BeBGhsmA.js";import{i as gn}from"./order-CKT7wPrv.js";import{m as yn}from"./doctor-DBvYeWd3.js";import{u as hn}from"./usePaging-CghUEVfD.js";import{u as bn,n as rt,j as g,_ as kn}from"./index-Bkarz3gO.js";import{g as ut}from"./weapp-COeXC0ZY.js";import{h as B}from"./perm-CHCBwnFR.js";import{d as ct}from"./dayjs-B2bPhvDy.js";const Cn={class:"tcm-diagnosis"},Vn={class:"filter-main"},xn={class:"date-chips"},Dn=["onClick"],wn={key:0},En={class:"search-row"},An={class:"filter-chips"},Rn=["onClick"],In=["onClick"],Nn={class:"filter-more"},$n={class:"list-header"},Sn={class:"list-actions"},Tn={key:0,class:"list-selected"},zn={class:"table-wrap px-4"},Ln={class:"patient-cell"},Fn={class:"patient-info"},Pn={class:"patient-name"},Wn={class:"patient-cell"},On={class:"patient-info"},Un={class:"patient-name"},qn={class:"apt-badge"},Mn={class:"apt-doctor"},Qn={class:"apt-time"},Yn={key:1,class:"apt-none"},Bn={key:0,class:"status-confirmed"},Hn={key:1,class:"status-unconfirmed"},jn={key:0,class:"followup-cell"},Kn={class:"followup-time"},Gn={class:"followup-doctor"},Xn={key:0,class:"followup-count"},Jn={key:1,class:"followup-none"},Zn={class:"assistant-cell"},el={class:"assistant-name"},tl={key:0,class:"assistant-dept"},al={key:0,class:"prescription-status-cell"},nl={class:"prescription-times"},ll={key:1,class:"status-unprescribed"},sl={class:"video-watch-col"},il={class:"video-watch-trigger"},ol={key:1,class:"video-watch-muted"},dl={key:1,class:"video-watch-muted"},rl={class:"action-cell"},ul={class:"pagination-wrap"},cl={class:"flex flex-col items-center justify-center py-4"},ml={key:0,class:"text-center"},pl={key:1,class:"text-center"},_l=["src"],fl={class:"mt-4 text-sm text-gray-600"},vl={class:"mt-2"},gl={key:2,class:"text-center text-gray-500"},yl={class:"text-gray-500"},hl={class:"text-gray-500"},bl={class:"font-medium"},kl={class:"font-medium"},Cl={key:0,class:"mb-4"},Vl={key:0},xl={key:0,class:"mt-2"},Dl={key:1,class:"mt-2"},wl={class:"mb-4"},El={class:"flex gap-2"},Al={key:0,class:"text-center text-gray-400 py-10"},Rl={key:1,class:"record-list"},Il={class:"record-header"},Nl={class:"flex items-center gap-2"},$l={class:"font-medium text-sm"},Sl={class:"flex items-center gap-2"},Tl={class:"text-xs text-gray-400"},zl={class:"record-content"},Ll={key:0,class:"mt-1"},Fl={key:2,class:"text-center mt-4"},Pl=mt({name:"tcmDiagnosis"}),Wl=mt({...Pl,setup(Ol){const pt=he(()=>be(()=>import("./edit-BuMVMky1.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),_t=he(()=>be(()=>import("./detail-C1EBtcAD.js"),__vite__mapDeps([66,9,1,2,4,5,10,3]))),ft=he(()=>be(()=>import("./appointment-C_cZtFED.js"),__vite__mapDeps([67,1,2,40,3,4,5,46,68,69]))),vt=he(()=>be(()=>import("./AssistantWatchCallDialog-CjRQdKqO.js"),__vite__mapDeps([70,1,2,3,4,5,71]))),gt=t=>{if(!t)return"-";const e=String(t).length===10?Number(t)*1e3:Number(t);return ct(e).format("YYYY-MM-DD HH:mm:ss")},Fe={only_has_prescription:"1"},_=Le({patient_name:"",diagnosis_type:"",syndrome_type:"",assistant_dept_id:"",assistant_id:"",start_time:"",end_time:"",diagnosis_confirmed:"",appointment_date:"",has_appointment:"",...Fe}),yt=m("all"),Z=m(!1),ht=[{label:"全部",value:""},{label:"已挂号",value:"1"},{label:"未挂号",value:"0"}],bt=[{label:"全部",value:""},{label:"已确认",value:"1"},{label:"未确认",value:"0"}],kt=t=>{_.has_appointment=t,w.page=1,b(),S()},Ct=t=>{_.diagnosis_confirmed=t,w.page=1,b(),S()},ee=()=>{w.page=1,b(),S()},Vt=J(()=>[{label:"当天挂号",value:de.value},{label:"明天挂号",value:xe.value},{label:"后天挂号",value:De.value},{label:"全部",value:""}]),Ce=m({}),xt=async t=>{_.appointment_date=t,w.page=1,await b(),S()},Ve=t=>({...Fe,patient_name:_.patient_name,diagnosis_type:_.diagnosis_type,syndrome_type:_.syndrome_type,diagnosis_confirmed:_.diagnosis_confirmed,has_appointment:_.has_appointment,assistant_dept_id:_.assistant_dept_id,assistant_id:_.assistant_id,appointment_date:t,page_no:1,page_size:1}),S=async()=>{try{const[t,e,d]=await Promise.all([ke(Ve(de.value)),ke(Ve(xe.value)),ke(Ve(De.value))]);Ce.value={[de.value]:(t==null?void 0:t.count)??0,[xe.value]:(e==null?void 0:e.count)??0,[De.value]:(d==null?void 0:d.count)??0}}catch(t){console.error("获取日期数量失败",t)}};function Dt(){const t=()=>S();typeof requestIdleCallback=="function"?requestIdleCallback(t,{timeout:2500}):setTimeout(t,120)}const wt=1e4;let oe=null;function Et(){typeof document<"u"&&document.hidden||(b({silent:!0}).catch(()=>{}),S())}const H=t=>String(t).padStart(2,"0"),de=J(()=>{const t=new Date;return`${t.getFullYear()}-${H(t.getMonth()+1)}-${H(t.getDate())}`}),xe=J(()=>{const t=new Date;return t.setDate(t.getDate()+1),`${t.getFullYear()}-${H(t.getMonth()+1)}-${H(t.getDate())}`}),De=J(()=>{const t=new Date;return t.setDate(t.getDate()+2),`${t.getFullYear()}-${H(t.getMonth()+1)}-${H(t.getDate())}`}),Pe=m([]),We=m([]),L=m([]),Oe=m([]);function Ue(t,e="",d=[]){for(const o of t||[]){if(o==null)continue;const V=Number(o.id);if(!Number.isFinite(V))continue;const k=e?`${e} / ${o.name}`:String(o.name??"");d.push({id:V,label:k}),Array.isArray(o.children)&&o.children.length&&Ue(o.children,k,d)}return d}const qe=J(()=>{const t=_.assistant_dept_id;if(t===""||t==null)return L.value;const e=Number(t);return Number.isFinite(e)?L.value.filter(d=>{const o=d.dept_ids;return!Array.isArray(o)||o.length===0?!1:o.map(Number).includes(e)}):L.value}),At=()=>{const t=_.assistant_id;if(t!==""&&t!=null){const e=Number(t);qe.value.some(o=>Number(o.id)===e)||(_.assistant_id="")}w.page=1,b(),S()},Rt=async()=>{try{const[t,e,d,o]=await Promise.all([rt({type:"diagnosis_type"}),rt({type:"syndrome_type"}),rn(),vn()]);Pe.value=(t==null?void 0:t.diagnosis_type)||[],We.value=(e==null?void 0:e.syndrome_type)||[],L.value=d||[],Oe.value=Ue(Array.isArray(o)?o:[])}catch(t){console.error("获取字典数据失败:",t)}},Me=t=>{if(t!==0&&!t)return null;const e=typeof t=="string"?parseInt(t,10):t;return L.value.find(d=>(typeof d.id=="string"?parseInt(d.id,10):d.id)===e)??null},Qe=t=>{if(!t&&t!==0||L.value.length===0)return"-";const e=Me(t);return e?e.name:"-"},Ye=t=>{const e=t.assistant_id||t.assistant,d=Qe(e),o=we(e);return d==="-"&&!o?"":o?`${d} / ${o}`:d},we=t=>{if(!t&&t!==0||L.value.length===0)return"";const e=Me(t),d=e==null?void 0:e.dept_names;return typeof d=="string"?d.trim():""},{pager:w,getLists:b}=hn({fetchFun:ke,params:_}),Be=()=>b({silent:!0}),It=()=>{yt.value="all",_.patient_name="",_.diagnosis_type="",_.syndrome_type="",_.assistant_dept_id="",_.assistant_id="",_.diagnosis_confirmed="",_.appointment_date="",_.has_appointment="",w.page=1,b(),S()},He=t=>{const e=t.DiagnosisViewRecord||[];return e.length>0&&e.some(d=>d.is_confirmed==1)},Nt=({row:t})=>He(t)?t.has_appointment?"":"row-no-appointment":"row-unconfirmed",te=m(),$t=m(),je=m(),re=m(null),ue=bn();Da([te,re],()=>{const t=re.value,e=te.value;t==null||!(e!=null&&e.open)||(e.open("edit",t),re.value=null)},{flush:"post"});const ce=m(!1),Ke=m(0),St=t=>{var d;const e=t.assistant_id??t.assistant;return e==null||e===""?!1:Number(e)===Number((d=ue.userInfo)==null?void 0:d.id)},Tt=t=>{Ke.value=Number(t.id)||0,ce.value=!0},zt=t=>St(t)&&B(["tcm.diagnosis/watchCall"]),me=t=>{var e;return((e=t.video_call_hint)==null?void 0:e.state)||"none"},Lt=t=>{const e=t.video_call_hint,d="点击进入实时房间(仅观看,不推流、不上麦)";return e!=null&&e.start_time?`${d}。开始时间:${gt(e.start_time)}`:d},Ft=t=>{const e=me(t);return e==="live"||e==="pending_room"},Pt=t=>me(t)==="pending_room"?"医生尚未接通或未同步房间号,接通后再点此进入":Lt(t),Wt=t=>{if(me(t)!=="live"){g.msgWarning("医生尚未接通或未同步房间号,请稍后再试");return}Tt(t)},Ot=t=>{const e=t.video_call_hint;return e!=null&&e.label?e.label:"暂无可旁观通话"},Ut=t=>{const e=me(t);if(e==="none")return"—";if(e==="live")return"通话中";if(e==="pending_room")return"接通中";const d=t.video_call_hint;return(d==null?void 0:d.label)||"—"},j=m(!1),pe=m(),Ee=m(!1),f=Le({patient_id:"",patient_name:"",phone:"",order_type:"",amount:0,remark:"",has_appointment:!1,appointment_time_text:""}),qt={order_type:[{required:!0,message:"请选择订单类型",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"}]},Mt=t=>{var e;f.patient_id=t.patient_id||t.id,f.patient_name=t.patient_name,f.phone=t.phone||"",f.order_type="",f.amount=0,f.remark="",f.has_appointment=!!t.has_appointment,f.appointment_time_text=t.appointment_time_text||"",(e=pe.value)==null||e.clearValidate(),j.value=!0},Qt=()=>{var t;f.patient_id="",f.patient_name="",f.phone="",f.order_type="",f.amount=0,f.remark="",f.has_appointment=!1,f.appointment_time_text="",(t=pe.value)==null||t.clearValidate()},Yt=async()=>{var t;try{await((t=pe.value)==null?void 0:t.validate()),Ee.value=!0;const e=await gn({patient_id:f.patient_id,order_type:f.order_type,amount:f.amount,remark:f.remark});j.value=!1,b();const d=e==null?void 0:e.order_no;if(d){T.value=!0,F.value=!0,P.value="",W.value={patient_name:f.patient_name,has_appointment:f.has_appointment,appointment_time_text:f.appointment_time_text};try{const o=await un({order_no:d});o!=null&&o.qrcode_url?P.value=o.qrcode_url:g.msgError("二维码生成失败")}catch(o){g.msgError((o==null?void 0:o.msg)||"生成二维码失败")}finally{F.value=!1}}}catch(e){console.error("创建订单失败:",e)}finally{Ee.value=!1}},T=m(!1),F=m(!1),P=m(""),W=m(null),Bt=J(()=>{const t=W.value;return t?t.has_appointment?t.appointment_time_text||"—":"未挂号":"—"}),Ae=m("小程序二维码"),Re=m("confirm"),O=m([]),Q=m(!1),Ie=m(!1),ae=m("batch"),ne=m(null),C=m({assistant_id:null,is_inherit:!1}),Ht=t=>{O.value=t.map(e=>e.id)},jt=t=>{ae.value="single",ne.value=t,C.value.assistant_id=Number(t.assistant_id)>0?Number(t.assistant_id):null,C.value.is_inherit=!1,Q.value=!0},Kt=()=>{if(O.value.length===0){g.msgWarning("请先选择要指派的诊单");return}ae.value="batch",ne.value=null,C.value.assistant_id=null,C.value.is_inherit=!1,Q.value=!0},Gt=async()=>{if(!C.value.assistant_id){g.msgWarning("请选择医助");return}Ie.value=!0;try{if(ae.value==="single")await it({id:ne.value.id,assistant_id:C.value.assistant_id,is_inherit:C.value.is_inherit?1:0});else{const t=O.value.map(e=>it({id:e,assistant_id:C.value.assistant_id,is_inherit:C.value.is_inherit?1:0}));await Promise.all(t),O.value=[]}Q.value=!1,b()}catch(t){console.error("指派失败:",t)}finally{Ie.value=!1}},Xt=()=>{te.value.open("add")},Jt=t=>{te.value.open("edit",t)},Zt=async t=>{await g.confirm("确定要删除该诊单吗?"),await _n({id:t}),b()},ea=(t,e)=>{switch(t){case"assign":jt(e);break;case"videoQr":if(!le(e)){g.msgWarning("仅「已预约」状态可生成视频二维码");return}Je(e);break;case"confirmQr":Ze(e);break;case"cancelApt":na(e);break;case"order":Mt(e);break;case"delete":Zt(e.id);break}},ta=t=>{const e=Number(t.appointment_status);return e===3?"已完成":e===4?"已过号":"已挂号"},aa=t=>{const e=Number(t.appointment_status);return{"has-apt":t.has_appointment,"apt-row-done":t.has_appointment&&e===3,"apt-row-missed":t.has_appointment&&e===4}},le=t=>t.has_appointment&&Number(t.appointment_status)===1,Ge=t=>{const e=Number(t.appointment_status);return!!(t.has_appointment&&t.appointment_id&&(e===1||e===4))},na=async t=>{if(!Ge(t)){const e=Number(t.appointment_status);t.has_appointment&&e===3?g.msgWarning("已完成就诊,无法取消挂号"):g.msgWarning("该诊单未挂号或挂号信息异常");return}try{await g.confirm(`确定要取消患者「${t.patient_name}」的挂号吗?`),await yn({id:t.appointment_id}),g.msgSuccess("取消挂号成功"),b(),S()}catch(e){e!=="cancel"&&g.msgError((e==null?void 0:e.msg)||"取消挂号失败")}},la=t=>{var e;if(!t.patient_id){g.msgWarning("患者信息不完整");return}(e=je.value)==null||e.open(t)},K=m(!1),Ne=m(!1),Xe=m(),N=Le({id:0,patient_name:"",id_card:""}),sa={id_card:[{required:!0,validator:(t,e,d)=>{if(!e){d(new Error("请输入身份证号"));return}const o=/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e),V=/^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$/.test(e);o||V?d():d(new Error("请输入15或18位有效身份证号"))},trigger:"blur"}]},ia=t=>{N.id=t.id,N.patient_name=t.patient_name||"-",N.id_card=t.id_card||"",K.value=!0},oa=async()=>{var t;await((t=Xe.value)==null?void 0:t.validate()),Ne.value=!0;try{await cn({id:N.id,id_card:N.id_card}),g.msgSuccess("补全成功,年龄已自动更新"),K.value=!1,b()}catch(e){g.msgError((e==null?void 0:e.msg)||"补全失败")}finally{Ne.value=!1}},Je=async t=>{var e;if(!le(t)){g.msgWarning("仅「已预约」状态可生成视频二维码");return}if(!t.patient_id){g.msgWarning("患者信息不完整");return}Re.value="video",W.value=t,T.value=!0,F.value=!0,P.value="",Ae.value="视频二维码";try{const d=await ut();if(!(d!=null&&d.app_id)){g.msgError("小程序未配置,请先配置小程序信息"),T.value=!1;return}const o=await ot({doctor_id:t.appointment_doctor_id,diagnosis_id:t.appointment_doctor_id,patient_id:t.patient_id,share_user_id:((e=ue.userInfo)==null?void 0:e.id)||"",mini_program_path:"pages/login/login"});o!=null&&o.qrcode_url?P.value=o.qrcode_url:g.msgError("二维码生成失败")}catch(d){g.msgError((d==null?void 0:d.msg)||"生成二维码失败,请重试")}finally{F.value=!1}},Ze=async t=>{if(!le(t)){g.msgWarning("仅「已预约」状态可使用诊单二维码");return}if(!t.patient_id){g.msgWarning("患者信息不完整");return}Re.value="confirm",W.value=t,T.value=!0,F.value=!0,P.value="",Ae.value="诊单二维码";try{const e=await ut();if(!(e!=null&&e.app_id)){g.msgError("小程序未配置,请先配置小程序信息"),T.value=!1;return}const d=ue.userInfo,o=await ot({diagnosis_id:t.id,doctor_id:t.appointment_doctor_id,patient_id:t.patient_id,share_user_id:(d==null?void 0:d.id)||""});o!=null&&o.qrcode_url?P.value=o.qrcode_url:g.msgError("二维码生成失败")}catch(e){console.error("生成小程序二维码失败:",e),g.msgError((e==null?void 0:e.msg)||"生成二维码失败,请重试")}finally{F.value=!1}},da=()=>{W.value&&(Re.value==="video"?Je(W.value):Ze(W.value))},_e=m(!1),E=m(null),U=m([]),fe=m(0),$e=m(!1),A=m(null),Y=m(""),Se=m(!1),Te=m(1),ra=t=>{if(!t)return"-";const e=String(t).length===10?t*1e3:t;return ct(e).format("YYYY-MM-DD HH:mm")},ua=async t=>{E.value=t,_e.value=!0,U.value=[],fe.value=0,A.value=null,Y.value="",Te.value=1,$e.value=!0;try{const[e,d]=await Promise.all([dt({diagnosis_id:t.id,patient_id:t.patient_id,page_no:1,page_size:20}),fn({patient_id:t.patient_id||t.id}).catch(()=>null)]);U.value=(e==null?void 0:e.lists)||[],fe.value=(e==null?void 0:e.count)||0,A.value=d}catch(e){console.error("加载企业微信记录失败:",e)}finally{$e.value=!1}},ca=async()=>{if(E.value){Te.value++;try{const t=await dt({diagnosis_id:E.value.id,patient_id:E.value.patient_id,page_no:Te.value,page_size:20});U.value.push(...(t==null?void 0:t.lists)||[])}catch(t){console.error("加载更多记录失败:",t)}}},ma=async()=>{var t;if(!Y.value.trim()){g.msgWarning("请输入内容");return}Se.value=!0;try{await mn({diagnosis_id:E.value.id,patient_id:E.value.patient_id,content:Y.value.trim(),msg_type:"note",staff_name:((t=ue.userInfo)==null?void 0:t.name)||"",external_name:E.value.patient_name||""}),Y.value="",ua(E.value)}catch(e){g.msgError((e==null?void 0:e.msg)||"添加失败")}finally{Se.value=!1}},pa=async t=>{await g.confirm("确定删除该记录吗?");try{await pn({id:t}),U.value=U.value.filter(e=>e.id!==t),fe.value--}catch(e){g.msgError((e==null?void 0:e.msg)||"删除失败")}},_a=wa();return Ea(()=>{_.appointment_date=de.value,Rt(),b(),Dt(),oe=setInterval(Et,wt);const t=_a.query.id;if(t!=null&&t!==""){const e=Number(t);Number.isNaN(e)||(re.value=e)}}),Aa(()=>{oe!=null&&(clearInterval(oe),oe=null)}),(t,e)=>{var nt;const d=Ia,o=$a,V=Sa,k=za,G=Ta,et=Fa,R=Wa,z=Oa,tt=Ua,X=Qa,fa=Ma,va=qa,ga=Pa,ya=dn,ve=Xa,$=Za,ha=en,ze=Ja,ba=tn,ge=nn,ka=an,Ca=ln,Va=sn,xa=on,se=Ra("perms"),at=Ka;return i(),u("div",Cn,[l(et,{class:"filter-card !border-none",shadow:"never"},{default:s(()=>[r("div",Vn,[r("div",xn,[(i(!0),u(D,null,I(Vt.value,a=>(i(),u("span",{key:a.value,class:ie(["chip",{active:n(_).appointment_date===a.value}]),onClick:x=>xt(a.value)},[c(p(a.label)+" ",1),a.value&&n(Ce)[a.value]!==void 0?(i(),u("em",wn,p(n(Ce)[a.value]),1)):h("",!0)],10,Dn))),128))]),r("div",En,[l(d,{modelValue:n(_).patient_name,"onUpdate:modelValue":e[0]||(e[0]=a=>n(_).patient_name=a),placeholder:"患者姓名",clearable:"",class:"search-input",onKeyup:Na(ee,["enter"])},null,8,["modelValue"]),l(o,{type:"primary",onClick:ee},{default:s(()=>[...e[25]||(e[25]=[c("查询",-1)])]),_:1})])]),r("div",An,[e[26]||(e[26]=r("span",{class:"chip-label"},"挂号:",-1)),(i(),u(D,null,I(ht,a=>r("span",{key:a.value,class:ie(["chip","chip-sm",{active:n(_).has_appointment===a.value}]),onClick:x=>kt(a.value)},p(a.label),11,Rn)),64)),e[27]||(e[27]=r("span",{class:"chip-divider"},null,-1)),e[28]||(e[28]=r("span",{class:"chip-label"},"确认:",-1)),(i(),u(D,null,I(bt,a=>r("span",{key:a.value,class:ie(["chip","chip-sm",{active:n(_).diagnosis_confirmed===a.value}]),onClick:x=>Ct(a.value)},p(a.label),11,In)),64)),l(o,{link:"",type:"primary",size:"small",class:"more-btn",onClick:e[1]||(e[1]=a=>Z.value=!n(Z))},{default:s(()=>[c(p(n(Z)?"收起":"更多筛选")+" ",1),l(V,{class:ie({"rotate-180":n(Z)})},{default:s(()=>[l(n(lt))]),_:1},8,["class"])]),_:1})]),q(r("div",Nn,[l(G,{modelValue:n(_).assistant_dept_id,"onUpdate:modelValue":e[2]||(e[2]=a=>n(_).assistant_dept_id=a),placeholder:"医助部门",clearable:"",filterable:"",size:"small",class:"filter-dept-select",onChange:At},{default:s(()=>[(i(!0),u(D,null,I(n(Oe),a=>(i(),v(k,{key:a.id,label:a.label,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(G,{modelValue:n(_).diagnosis_type,"onUpdate:modelValue":e[3]||(e[3]=a=>n(_).diagnosis_type=a),placeholder:"诊断类型",clearable:"",size:"small",onChange:ee},{default:s(()=>[(i(!0),u(D,null,I(n(Pe),a=>(i(),v(k,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(G,{modelValue:n(_).syndrome_type,"onUpdate:modelValue":e[4]||(e[4]=a=>n(_).syndrome_type=a),placeholder:"证型",clearable:"",size:"small",onChange:ee},{default:s(()=>[(i(!0),u(D,null,I(n(We),a=>(i(),v(k,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(G,{modelValue:n(_).assistant_id,"onUpdate:modelValue":e[5]||(e[5]=a=>n(_).assistant_id=a),placeholder:"医助",clearable:"",filterable:"",size:"small",onChange:ee},{default:s(()=>[(i(!0),u(D,null,I(qe.value,a=>(i(),v(k,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(o,{size:"small",onClick:It},{default:s(()=>[...e[29]||(e[29]=[c("重置",-1)])]),_:1})],512),[[La,n(Z)]])]),_:1}),l(et,{class:"!border-none mt-3 list-card",shadow:"never"},{default:s(()=>[r("div",$n,[r("div",Sn,[q((i(),v(o,{type:"primary",onClick:Xt},{default:s(()=>[...e[30]||(e[30]=[c("新增诊单",-1)])]),_:1})),[[se,["tcm.diagnosis/add"]]]),q((i(),v(o,{type:"success",onClick:Kt,disabled:n(O).length===0},{default:s(()=>[...e[31]||(e[31]=[c(" 批量指派医助 ",-1)])]),_:1},8,["disabled"])),[[se,["tcm.diagnosis/assign"]]])]),n(O).length>0?(i(),u("div",Tn,"已选 "+p(n(O).length)+" 条",1)):h("",!0)]),r("div",zn,[q((i(),v(ga,{data:n(w).lists,size:"default",onSelectionChange:Ht,"row-class-name":Nt,class:"diagnosis-table",stripe:""},{default:s(()=>[l(R,{type:"selection",width:"48",align:"center"}),l(R,{label:"ID","min-width":"70"},{default:s(({row:a})=>[r("div",Ln,[r("div",Fn,[r("div",Pn,[c(p(a.id)+" ",1),a.assign_read_at===null&&a.assistant_id>0?(i(),v(z,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-1"},{default:s(()=>[...e[32]||(e[32]=[c("NEW",-1)])]),_:1})):h("",!0)])])])]),_:1}),l(R,{label:"患者","min-width":"60"},{default:s(({row:a})=>[r("div",Wn,[r("div",On,[r("div",Un,p(a.patient_name),1)])])]),_:1}),l(R,{label:" 性别 / 年龄",width:"100",align:"left"},{default:s(({row:a})=>[r("div",null,p(a.gender_desc||"-")+" · "+p(a.age??"-")+"岁",1)]),_:1}),l(R,{label:"挂号","min-width":"180"},{default:s(({row:a})=>[r("div",{class:ie(["appointment-cell",aa(a)])},[a.has_appointment?(i(),u(D,{key:0},[r("div",qn,p(ta(a)),1),r("div",Mn,p(a.appointment_doctor_name||"-"),1),r("div",Qn,p(a.appointment_time_text||"-"),1)],64)):(i(),u("span",Yn,"未挂号"))],2)]),_:1}),l(R,{label:"确认",width:"88",align:"center"},{default:s(({row:a})=>[He(a)?(i(),u("span",Bn,"已确认")):(i(),u("span",Hn,"未确认"))]),_:1}),l(R,{label:"复诊","min-width":"150"},{default:s(({row:a})=>[a.has_prescription?(i(),u("div",jn,[r("div",Kn,p(a.followup_time_text||"—"),1),r("div",Gn,p(a.followup_doctor_name||"—"),1),a.followup_prescription_count>0?(i(),u("div",Xn," 第"+p(a.followup_prescription_count)+"次复诊 ",1)):h("",!0),a.followup_rx_voided?(i(),v(z,{key:1,type:"info",size:"small",effect:"plain",class:"followup-void-tag"},{default:s(()=>[...e[33]||(e[33]=[c(" 处方已作废 ",-1)])]),_:1})):h("",!0)])):(i(),u("span",Jn,"无"))]),_:1}),l(R,{label:"助理","min-width":"120"},{default:s(({row:a})=>[l(tt,{disabled:!Ye(a),content:Ye(a),placement:"top"},{default:s(()=>[r("div",Zn,[r("div",el,p(Qe(a.assistant_id||a.assistant)),1),we(a.assistant_id||a.assistant)?(i(),u("div",tl,p(we(a.assistant_id||a.assistant)),1)):h("",!0)])]),_:2},1032,["disabled","content"])]),_:1}),l(R,{label:"开方","min-width":"96",align:"center"},{default:s(({row:a})=>[a.has_prescription?(i(),u("div",al,[e[34]||(e[34]=r("span",{class:"status-prescribed"},"已开方",-1)),r("span",nl,"("+p(a.followup_prescription_count||1)+"次)",1)])):(i(),u("span",ll,"未开方"))]),_:1}),l(R,{label:"视频旁观",width:"120",fixed:"right",align:"center"},{default:s(({row:a})=>[r("div",sl,[zt(a)?(i(),u(D,{key:0},[Ft(a)?(i(),v(tt,{key:0,content:Pt(a),placement:"top"},{default:s(()=>[r("span",il,[l(o,{type:"primary",link:"",size:"small",onClick:x=>Wt(a)},{default:s(()=>[...e[35]||(e[35]=[c(" 进入旁观 ",-1)])]),_:1},8,["onClick"])])]),_:2},1032,["content"])):(i(),u("span",ol,p(Ot(a)),1))],64)):(i(),u("span",dl,p(Ut(a)),1))])]),_:1}),l(R,{label:"操作",width:"260",fixed:"right",align:"left"},{default:s(({row:a})=>[r("div",rl,[q((i(),v(o,{type:"primary",link:"",size:"small",onClick:x=>Jt(a.id)},{default:s(()=>[...e[36]||(e[36]=[c("诊单",-1)])]),_:1},8,["onClick"])),[[se,["tcm.diagnosis/edit"]]]),q((i(),v(o,{type:"success",link:"",size:"small",onClick:x=>la(a)},{default:s(()=>[...e[37]||(e[37]=[c("预约",-1)])]),_:1},8,["onClick"])),[[se,["tcm.diagnosis/guahao"]]]),q((i(),v(o,{type:"warning",link:"",size:"small",onClick:x=>ia(a)},{default:s(()=>[...e[38]||(e[38]=[c("补全身份证",-1)])]),_:1},8,["onClick"])),[[se,["tcm.diagnosis/edit"]]]),l(va,{trigger:"click",onCommand:x=>ea(x,a),placement:"bottom-end"},{dropdown:s(()=>[l(fa,null,{default:s(()=>[n(B)(["tcm.diagnosis/assign"])?(i(),v(X,{key:0,command:"assign"},{default:s(()=>[l(V,null,{default:s(()=>[l(n(Ya))]),_:1}),e[40]||(e[40]=c("指派",-1))]),_:1})):h("",!0),le(a)&&n(B)(["tcm.diagnosis/videoQr"])?(i(),v(X,{key:1,command:"videoQr"},{default:s(()=>[l(V,null,{default:s(()=>[l(n(st))]),_:1}),e[41]||(e[41]=c("视频二维码",-1))]),_:1})):h("",!0),n(B)(["tcm.diagnosis/guahao"])&&le(a)?(i(),v(X,{key:2,command:"confirmQr"},{default:s(()=>[l(V,null,{default:s(()=>[l(n(st))]),_:1}),e[42]||(e[42]=c("二维码",-1))]),_:1})):h("",!0),Ge(a)&&n(B)(["tcm.diagnosis/guahao"])?(i(),v(X,{key:3,command:"cancelApt"},{default:s(()=>[l(V,null,{default:s(()=>[l(n(Ba))]),_:1}),e[43]||(e[43]=c("取消挂号",-1))]),_:1})):h("",!0),n(B)(["tcm.diagnosis/order"])?(i(),v(X,{key:4,command:"order"},{default:s(()=>[l(V,null,{default:s(()=>[l(n(Ha))]),_:1}),e[44]||(e[44]=c("创建订单",-1))]),_:1})):h("",!0),n(B)(["tcm.diagnosis/delete"])?(i(),v(X,{key:5,command:"delete",divided:""},{default:s(()=>[l(V,null,{default:s(()=>[l(n(ja))]),_:1}),e[45]||(e[45]=r("span",{class:"text-danger"},"删除",-1))]),_:1})):h("",!0)]),_:2},1024)]),default:s(()=>[l(o,{type:"info",link:"",size:"small"},{default:s(()=>[e[39]||(e[39]=c("更多",-1)),l(V,{class:"el-icon--right"},{default:s(()=>[l(n(lt))]),_:1})]),_:1})]),_:2},1032,["onCommand"])])]),_:1})]),_:1},8,["data"])),[[at,n(w).loading]]),r("div",ul,[l(ya,{modelValue:n(w),"onUpdate:modelValue":e[6]||(e[6]=a=>M(w)?w.value=a:null),onChange:n(b)},null,8,["modelValue","onChange"])])])]),_:1}),l(n(pt),{ref_key:"editRef",ref:te,onSuccess:Be},null,512),l(n(_t),{ref_key:"detailRef",ref:$t},null,512),l(n(ft),{ref_key:"appointmentRef",ref:je,onSuccess:Be},null,512),l(n(vt),{modelValue:n(ce),"onUpdate:modelValue":e[7]||(e[7]=a=>M(ce)?ce.value=a:null),"diagnosis-id":n(Ke),onClosed:n(b)},null,8,["modelValue","diagnosis-id","onClosed"]),l(ve,{modelValue:n(T),"onUpdate:modelValue":e[9]||(e[9]=a=>M(T)?T.value=a:null),title:n(Ae),width:"400px","close-on-click-modal":!1},{footer:s(()=>[l(o,{onClick:e[8]||(e[8]=a=>T.value=!1)},{default:s(()=>[...e[48]||(e[48]=[c("关闭",-1)])]),_:1}),n(F)?h("",!0):(i(),v(o,{key:0,type:"primary",onClick:da},{default:s(()=>[...e[49]||(e[49]=[c(" 重新生成 ",-1)])]),_:1}))]),default:s(()=>{var a;return[r("div",cl,[n(F)?(i(),u("div",ml,[l(V,{class:"is-loading",size:40},{default:s(()=>[l(n(Ga))]),_:1}),e[46]||(e[46]=r("div",{class:"mt-4 text-gray-500"},"生成中...",-1))])):n(P)?(i(),u("div",pl,[r("img",{src:n(P),alt:"小程序二维码",class:"w-64 h-64 border border-gray-200 rounded"},null,8,_l),r("div",fl,[r("div",null,"患者:"+p((a=n(W))==null?void 0:a.patient_name),1),r("div",vl,"挂号时间:"+p(Bt.value),1),e[47]||(e[47]=r("div",{class:"mt-2"},"请使用企业微信扫描二维码,然后转发给患者",-1))])])):(i(),u("div",gl," 生成失败,请重试 "))])]}),_:1},8,["modelValue","title"]),l(ve,{modelValue:n(Q),"onUpdate:modelValue":e[13]||(e[13]=a=>M(Q)?Q.value=a:null),title:n(ae)==="batch"?"批量指派医助":"指派医助",width:"500px"},{footer:s(()=>[l(o,{onClick:e[12]||(e[12]=a=>Q.value=!1)},{default:s(()=>[...e[52]||(e[52]=[c("取消",-1)])]),_:1}),l(o,{type:"primary",onClick:Gt,loading:n(Ie)},{default:s(()=>[...e[53]||(e[53]=[c(" 确定指派 ",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(ze,{model:n(C),"label-width":"100px"},{default:s(()=>[l($,{label:"选择医助",required:""},{default:s(()=>[l(G,{modelValue:n(C).assistant_id,"onUpdate:modelValue":e[10]||(e[10]=a=>n(C).assistant_id=a),placeholder:"请选择医助",class:"w-full",filterable:"",clearable:"","value-key":"id"},{default:s(()=>[(i(!0),u(D,null,I(n(L),a=>(i(),v(k,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l($,{label:"继承"},{default:s(()=>[l(ha,{modelValue:n(C).is_inherit,"onUpdate:modelValue":e[11]||(e[11]=a=>n(C).is_inherit=a)},{default:s(()=>[...e[50]||(e[50]=[c("继承",-1)])]),_:1},8,["modelValue"]),e[51]||(e[51]=r("span",{class:"text-gray-400 text-xs ml-2"},"勾选后写入指派记录",-1))]),_:1}),n(ae)==="batch"?(i(),v($,{key:0,label:"已选择"},{default:s(()=>[r("div",yl,p(n(O).length)+" 条诊单记录",1)]),_:1})):(i(),v($,{key:1,label:"诊单信息"},{default:s(()=>{var a,x;return[r("div",hl,[r("div",null,"患者:"+p((a=n(ne))==null?void 0:a.patient_name),1),r("div",null,"诊断日期:"+p((x=n(ne))==null?void 0:x.diagnosis_date_text),1)])]}),_:1}))]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(ve,{modelValue:n(j),"onUpdate:modelValue":e[18]||(e[18]=a=>M(j)?j.value=a:null),title:"创建订单",width:"600px",onClose:Qt},{footer:s(()=>[l(o,{onClick:e[17]||(e[17]=a=>j.value=!1)},{default:s(()=>[...e[54]||(e[54]=[c("取消",-1)])]),_:1}),l(o,{type:"primary",onClick:Yt,loading:n(Ee)},{default:s(()=>[...e[55]||(e[55]=[c("创建订单",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(ze,{ref_key:"orderFormRef",ref:pe,model:n(f),rules:qt,"label-width":"100px"},{default:s(()=>[l($,{label:"患者"},{default:s(()=>[r("span",bl,p(n(f).patient_name)+" ("+p(n(f).phone)+")",1)]),_:1}),l($,{label:"订单类型",prop:"order_type"},{default:s(()=>[l(G,{modelValue:n(f).order_type,"onUpdate:modelValue":e[14]||(e[14]=a=>n(f).order_type=a),placeholder:"请选择",class:"w-full"},{default:s(()=>[l(k,{label:"挂号费",value:1}),l(k,{label:"问诊费",value:2}),l(k,{label:"药品费用",value:3}),l(k,{label:"首付费用",value:4}),l(k,{label:"尾款费用",value:5}),l(k,{label:"其他费用",value:6}),l(k,{label:"全部费用",value:7}),l(k,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),l($,{label:"订单金额",prop:"amount"},{default:s(()=>[l(ba,{modelValue:n(f).amount,"onUpdate:modelValue":e[15]||(e[15]=a=>n(f).amount=a),min:0,step:.01,precision:2,placeholder:"请输入金额",class:"w-full"},null,8,["modelValue"])]),_:1}),l($,{label:"备注",prop:"remark"},{default:s(()=>[l(d,{modelValue:n(f).remark,"onUpdate:modelValue":e[16]||(e[16]=a=>n(f).remark=a),type:"textarea",rows:3,placeholder:"请输入备注(可选)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(ve,{modelValue:n(K),"onUpdate:modelValue":e[21]||(e[21]=a=>M(K)?K.value=a:null),title:"补全身份证号",width:"400px","close-on-click-modal":!1,onClose:e[22]||(e[22]=a=>n(N).id_card="")},{footer:s(()=>[l(o,{onClick:e[20]||(e[20]=a=>K.value=!1)},{default:s(()=>[...e[56]||(e[56]=[c("取消",-1)])]),_:1}),l(o,{type:"primary",onClick:oa,loading:n(Ne)},{default:s(()=>[...e[57]||(e[57]=[c("提交(自动更新年龄)",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(ze,{ref_key:"fillIdCardFormRef",ref:Xe,model:n(N),rules:sa,"label-width":"80px"},{default:s(()=>[l($,{label:"患者"},{default:s(()=>[r("span",kl,p(n(N).patient_name),1)]),_:1}),l($,{label:"身份证号",prop:"id_card"},{default:s(()=>[l(d,{modelValue:n(N).id_card,"onUpdate:modelValue":e[19]||(e[19]=a=>n(N).id_card=a),placeholder:"请输入15或18位身份证号",maxlength:"18","show-word-limit":"",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(xa,{modelValue:n(_e),"onUpdate:modelValue":e[24]||(e[24]=a=>M(_e)?_e.value=a:null),title:`企业微信记录 - ${((nt=n(E))==null?void 0:nt.patient_name)||""}`,size:"600px","destroy-on-close":!0},{default:s(()=>{var a,x;return[n(A)?(i(),u("div",Cl,[l(ka,{column:2,border:"",size:"small"},{default:s(()=>[l(ge,{label:"患者姓名"},{default:s(()=>{var y;return[c(p((y=n(E))==null?void 0:y.patient_name),1)]}),_:1}),l(ge,{label:"手机号"},{default:s(()=>[c(p(n(A).phone||"-"),1)]),_:1}),l(ge,{label:"企微联系人ID"},{default:s(()=>[n(A).external_userid?(i(),u("span",Vl,p(n(A).external_userid),1)):(i(),v(z,{key:1,type:"info",size:"small"},{default:s(()=>[...e[58]||(e[58]=[c("未关联",-1)])]),_:1}))]),_:1}),l(ge,{label:"会话存档"},{default:s(()=>[n(A).msgaudit_enabled?(i(),v(z,{key:0,type:"success",size:"small"},{default:s(()=>[...e[59]||(e[59]=[c("已开通",-1)])]),_:1})):(i(),v(z,{key:1,type:"info",size:"small"},{default:s(()=>[...e[60]||(e[60]=[c("未配置",-1)])]),_:1}))]),_:1})]),_:1}),(a=n(A).permit_users)!=null&&a.length?(i(),u("div",xl,[e[61]||(e[61]=r("span",{class:"text-sm text-gray-500 mr-2"},"存档成员:",-1)),(i(!0),u(D,null,I(n(A).permit_users,y=>(i(),v(z,{key:y,size:"small",class:"mr-1"},{default:s(()=>[c(p(y),1)]),_:2},1024))),128))])):h("",!0),(x=n(A).msgaudit_agree)!=null&&x.length?(i(),u("div",Dl,[e[62]||(e[62]=r("span",{class:"text-sm text-gray-500 mr-2"},"存档同意:",-1)),(i(!0),u(D,null,I(n(A).msgaudit_agree,(y,ye)=>(i(),v(z,{key:ye,type:y.agree_status==="Agree"?"success":"warning",size:"small",class:"mr-1"},{default:s(()=>[c(p(y.userid)+": "+p(y.agree_status==="Agree"?"已同意":y.agree_status),1)]),_:2},1032,["type"]))),128))])):h("",!0)])):h("",!0),l(Ca),r("div",wl,[r("div",El,[l(d,{modelValue:n(Y),"onUpdate:modelValue":e[23]||(e[23]=y=>M(Y)?Y.value=y:null),type:"textarea",rows:2,placeholder:"添加沟通记录...",class:"flex-1"},null,8,["modelValue"]),l(o,{type:"primary",onClick:ma,loading:n(Se),class:"self-end"},{default:s(()=>[...e[63]||(e[63]=[c(" 添加 ",-1)])]),_:1},8,["loading"])])]),q((i(),u("div",null,[n(U).length===0?(i(),u("div",Al," 暂无聊天记录 ")):(i(),u("div",Rl,[(i(!0),u(D,null,I(n(U),y=>{var ye;return i(),u("div",{key:y.id,class:"record-item"},[r("div",Il,[r("div",Nl,[l(z,{type:y.direction===0?"primary":"success",size:"small"},{default:s(()=>[c(p(y.direction===0?"员工":"客户"),1)]),_:2},1032,["type"]),r("span",$l,p(y.direction===0?y.staff_name:y.external_name||((ye=n(E))==null?void 0:ye.patient_name)),1),y.msg_type==="note"?(i(),v(z,{key:0,type:"warning",size:"small"},{default:s(()=>[...e[64]||(e[64]=[c("备注",-1)])]),_:1})):h("",!0)]),r("div",Sl,[r("span",Tl,p(ra(y.chat_time)),1),l(o,{type:"danger",link:"",size:"small",onClick:ql=>pa(y.id)},{default:s(()=>[...e[65]||(e[65]=[c(" 删除 ",-1)])]),_:1},8,["onClick"])])]),r("div",zl,p(y.content),1),y.media_url?(i(),u("div",Ll,[l(Va,{src:y.media_url,style:{"max-width":"200px"},fit:"contain","preview-src-list":[y.media_url]},null,8,["src","preview-src-list"])])):h("",!0)])}),128))])),n(fe)>n(U).length?(i(),u("div",Fl,[l(o,{link:"",type:"primary",onClick:ca},{default:s(()=>[...e[66]||(e[66]=[c("加载更多",-1)])]),_:1})])):h("",!0)])),[[at,n($e)]])]}),_:1},8,["modelValue","title"])])}}}),es=kn(Wl,[["__scopeId","data-v-5f089050"]]);export{es as default}; diff --git a/server/public/admin/assets/index-BJNSEgMW.js b/server/public/admin/assets/index-BJNSEgMW.js deleted file mode 100644 index d4af087ac..000000000 --- a/server/public/admin/assets/index-BJNSEgMW.js +++ /dev/null @@ -1 +0,0 @@ -import o from"./CohortReport-ziQtuRzm.js";import{o as t,q as e,O as r}from"./.pnpm-CyuAWpdG.js";import"./stats-Bao68QGi.js";import"./index-Dxvz9lb1.js";import"./perm-DOfZAzJJ.js";const a=t({name:"revisitInheritRateStatsPage"}),h=t({...a,setup(p){return(i,n)=>(e(),r(o,{"cohort-type":"inherit"}))}});export{h as default}; diff --git a/server/public/admin/assets/index-BU3OYnKm.js b/server/public/admin/assets/index-BJZwRQXE.js similarity index 97% rename from server/public/admin/assets/index-BU3OYnKm.js rename to server/public/admin/assets/index-BJZwRQXE.js index 60bb9c103..6e177d997 100644 --- a/server/public/admin/assets/index-BU3OYnKm.js +++ b/server/public/admin/assets/index-BJZwRQXE.js @@ -1 +1 @@ -var N=Object.defineProperty;var V=(e,r,t)=>r in e?N(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var b=(e,r,t)=>V(e,typeof r!="symbol"?r+"":r,t);import{bW as x,o as K,M as C,a8 as X,p as P,q as w,r as D,v as L,D as z,ah as H,bX as W,O as Y,s as U,F as G,G as J,T as Z,bY as Q,aB as ee,P as re}from"./.pnpm-CyuAWpdG.js";import{u as ae,e as te,q as A,R as _,j as v,_ as se}from"./index-Dxvz9lb1.js";import{j as le,k as ce}from"./file-CefRfHD9.js";const ne=5*1024*1024,oe=3;async function B(e){try{return await e()}catch(r){throw new O(r)}}function de(e,r){const t=(r.name.split(".").pop()||"bin").toLowerCase(),S=Date.now(),p=Math.random().toString(36).slice(2,10);return`${e}${S}-${p}.${t}`}async function ie(e){var d,i;const r=await B(()=>le({type:e.type,name:e.file.name}));if(r.fallback)throw((d=e.onFallback)==null?void 0:d.call(e,r.provider))??!1?new $(r.provider):new $(r.provider);if(!r.credentials||!r.bucket||!r.region||!r.key_prefix)throw new Error("STS 凭证返回缺失字段");if(r.max_size&&e.file.size>r.max_size){const f=Math.round(r.max_size/1024/1024);throw new Error(`文件体积超出上限(${f}MB)`)}const t=r.credentials,S=r.expired_time??0,p=r.start_time??Math.floor(Date.now()/1e3),E=new x({getAuthorization(f,y){y({TmpSecretId:t.tmpSecretId,TmpSecretKey:t.tmpSecretKey,SecurityToken:t.sessionToken,StartTime:p,ExpiredTime:S})}}),h=r.object_key||de(r.key_prefix,e.file);await new Promise((f,y)=>{E.uploadFile({Bucket:r.bucket,Region:r.region,Key:h,Body:e.file,SliceSize:ne,AsyncLimit:oe,onProgress(c){if(!e.onProgress)return;const k=c.total||e.file.size;e.onProgress({percent:Math.min(99,Math.round((c.percent||0)*100)),loaded:c.loaded||0,total:k,speed:c.speed||0})}},c=>{if(c){y(c);return}f()})});const u=await B(()=>ce({type:e.type,key:h,name:e.file.name,size:e.file.size,content_type:e.file.type||"",cid:e.cid??0}));return(i=e.onProgress)==null||i.call(e,{percent:100,loaded:e.file.size,total:e.file.size,speed:0}),u}class $ extends Error{constructor(t){super(`COS 直传不可用,当前驱动: ${t}`);b(this,"provider");this.name="DirectUploadFallbackError",this.provider=t}}class O extends Error{constructor(t){super("");b(this,"originalError");this.name="DirectUploadApiError",this.originalError=t}}const ue=K({components:{},props:{type:{type:String,default:"image"},multiple:{type:Boolean,default:!0},limit:{type:Number,default:10},data:{type:Object,default:()=>({})},showProgress:{type:Boolean,default:!1},direct:{type:Boolean,default:!1}},emits:["change","error","success","allSuccess"],setup(e,{emit:r}){const t=ae(),S=te(),p=X(),E=C(`${A.baseUrl}${A.urlPrefix}/upload/${e.type}`),h=P(()=>({token:t.token,version:S.config.version})),u=C(!1),d=C([]),i=["video","voice","desktop_package"],f=P(()=>e.direct&&i.includes(e.type)),y=()=>{u.value=!0};let c=0;const k=(a,o)=>{c++,c==d.value.length&&(c=0,d.value=[],r("allSuccess")),r("change",o),a.code==_.SUCCESS&&r("success",a),a.code==_.FAIL&&a.msg&&v.msgError(a.msg)},F=(a,o)=>{var n;if(c++,c==d.value.length&&(c=0,d.value=[],r("allSuccess")),!(a instanceof O)){const g=a instanceof Error?a.message:"";v.msgError(g||`${o.name}文件上传失败`)}(n=p.value)==null||n.abort(o),u.value=!1,r("change",o),r("error",o)},R=()=>{v.msgError(`超出上传上限${e.limit},请重新上传`)},j=()=>{d.value=[],u.value=!1},q=P(()=>{switch(e.type){case"image":return".jpg,.png,.gif,.jpeg,.ico";case"video":return".wmv,.avi,.mpg,.mpeg,.3gp,.mov,.mp4,.flv,.rmvb,.mkv";case"voice":return".mp3,.wav,.wma,.m4a,.aac,.amr";case"desktop_package":return".exe,.zip";default:return"*"}}),M=async a=>{var o,n,g,s;u.value=!0;try{const l=await ie({file:a.file,type:e.type,cid:Number(((o=a.data)==null?void 0:o.cid)??0),onProgress(m){var T;(T=a.onProgress)==null||T.call(a,{percent:m.percent,loaded:m.loaded,total:m.total})}});(n=a.onSuccess)==null||n.call(a,{code:_.SUCCESS,msg:"ok",data:l})}catch(l){if(l instanceof $){if(e.type==="desktop_package"){(g=a.onError)==null||g.call(a,new Error("当前未启用腾讯云 COS,安装包无法直传,请配置 COS 后重试"));return}v.msgWarning("当前存储不支持直传,已切换为普通上传"),await I(a);return}(s=a.onError)==null||s.call(a,l instanceof Error?l:new Error(String((l==null?void 0:l.message)??l)))}},I=a=>new Promise(o=>{const n=new XMLHttpRequest;n.open("POST",E.value),Object.entries(h.value).forEach(([s,l])=>n.setRequestHeader(s,String(l??""))),n.upload.onprogress=s=>{var m;if(!s.lengthComputable)return;const l=s.loaded/s.total*100;(m=a.onProgress)==null||m.call(a,{percent:l,loaded:s.loaded,total:s.total})},n.onload=()=>{var s,l;try{const m=JSON.parse(n.responseText);(s=a.onSuccess)==null||s.call(a,m)}catch{(l=a.onError)==null||l.call(a,new Error("上传响应解析失败"))}o()},n.onerror=()=>{var s;(s=a.onError)==null||s.call(a,new Error("网络错误")),o()};const g=new FormData;g.append("file",a.file),Object.entries(a.data||{}).forEach(([s,l])=>g.append(s,String(l))),n.send(g)});return{uploadRefs:p,action:E,headers:h,visible:u,fileList:d,useDirect:f,httpRequest:M,getAccept:q,handleProgress:y,handleSuccess:k,handleError:F,handleExceed:R,handleClose:j}}}),fe={class:"upload"},me={class:"file-list p-4"},ge={class:"flex-1"};function pe(e,r,t,S,p,E){const h=W,u=Q,d=ee;return w(),D("div",fe,[L(h,{"file-list":e.fileList,"onUpdate:fileList":r[0]||(r[0]=i=>e.fileList=i),ref:"uploadRefs",action:e.action,multiple:e.multiple,limit:e.limit,"show-file-list":!1,headers:e.headers,data:e.data,"http-request":e.useDirect?e.httpRequest:void 0,"on-progress":e.handleProgress,"on-success":e.handleSuccess,"on-exceed":e.handleExceed,"on-error":e.handleError,accept:e.getAccept},{default:z(()=>[H(e.$slots,"default")]),_:3},8,["file-list","action","multiple","limit","headers","data","http-request","on-progress","on-success","on-exceed","on-error","accept"]),e.showProgress&&e.fileList.length?(w(),Y(d,{key:0,modelValue:e.visible,"onUpdate:modelValue":r[1]||(r[1]=i=>e.visible=i),title:"上传进度","close-on-click-modal":!1,width:"500px",modal:!1,onClose:e.handleClose},{default:z(()=>[U("div",me,[(w(!0),D(G,null,J(e.fileList,(i,f)=>(w(),D("div",{key:f,class:"mb-5"},[U("div",null,Z(i.name),1),U("div",ge,[L(u,{percentage:parseInt(i.percentage)},null,8,["percentage"])])]))),128))])]),_:1},8,["modelValue","onClose"])):re("",!0)])}const we=se(ue,[["render",pe]]);export{we as U}; +var N=Object.defineProperty;var V=(e,r,t)=>r in e?N(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var b=(e,r,t)=>V(e,typeof r!="symbol"?r+"":r,t);import{bW as x,o as K,M as C,a8 as X,p as P,q as w,r as D,v as L,D as z,ah as H,bX as W,O as Y,s as U,F as G,G as J,T as Z,bY as Q,aB as ee,P as re}from"./.pnpm-CyuAWpdG.js";import{u as ae,e as te,q as A,R as _,j as v,_ as se}from"./index-Bkarz3gO.js";import{j as le,k as ce}from"./file-BjbV-eNx.js";const ne=5*1024*1024,oe=3;async function B(e){try{return await e()}catch(r){throw new O(r)}}function de(e,r){const t=(r.name.split(".").pop()||"bin").toLowerCase(),S=Date.now(),p=Math.random().toString(36).slice(2,10);return`${e}${S}-${p}.${t}`}async function ie(e){var d,i;const r=await B(()=>le({type:e.type,name:e.file.name}));if(r.fallback)throw((d=e.onFallback)==null?void 0:d.call(e,r.provider))??!1?new $(r.provider):new $(r.provider);if(!r.credentials||!r.bucket||!r.region||!r.key_prefix)throw new Error("STS 凭证返回缺失字段");if(r.max_size&&e.file.size>r.max_size){const f=Math.round(r.max_size/1024/1024);throw new Error(`文件体积超出上限(${f}MB)`)}const t=r.credentials,S=r.expired_time??0,p=r.start_time??Math.floor(Date.now()/1e3),E=new x({getAuthorization(f,y){y({TmpSecretId:t.tmpSecretId,TmpSecretKey:t.tmpSecretKey,SecurityToken:t.sessionToken,StartTime:p,ExpiredTime:S})}}),h=r.object_key||de(r.key_prefix,e.file);await new Promise((f,y)=>{E.uploadFile({Bucket:r.bucket,Region:r.region,Key:h,Body:e.file,SliceSize:ne,AsyncLimit:oe,onProgress(c){if(!e.onProgress)return;const k=c.total||e.file.size;e.onProgress({percent:Math.min(99,Math.round((c.percent||0)*100)),loaded:c.loaded||0,total:k,speed:c.speed||0})}},c=>{if(c){y(c);return}f()})});const u=await B(()=>ce({type:e.type,key:h,name:e.file.name,size:e.file.size,content_type:e.file.type||"",cid:e.cid??0}));return(i=e.onProgress)==null||i.call(e,{percent:100,loaded:e.file.size,total:e.file.size,speed:0}),u}class $ extends Error{constructor(t){super(`COS 直传不可用,当前驱动: ${t}`);b(this,"provider");this.name="DirectUploadFallbackError",this.provider=t}}class O extends Error{constructor(t){super("");b(this,"originalError");this.name="DirectUploadApiError",this.originalError=t}}const ue=K({components:{},props:{type:{type:String,default:"image"},multiple:{type:Boolean,default:!0},limit:{type:Number,default:10},data:{type:Object,default:()=>({})},showProgress:{type:Boolean,default:!1},direct:{type:Boolean,default:!1}},emits:["change","error","success","allSuccess"],setup(e,{emit:r}){const t=ae(),S=te(),p=X(),E=C(`${A.baseUrl}${A.urlPrefix}/upload/${e.type}`),h=P(()=>({token:t.token,version:S.config.version})),u=C(!1),d=C([]),i=["video","voice","desktop_package"],f=P(()=>e.direct&&i.includes(e.type)),y=()=>{u.value=!0};let c=0;const k=(a,o)=>{c++,c==d.value.length&&(c=0,d.value=[],r("allSuccess")),r("change",o),a.code==_.SUCCESS&&r("success",a),a.code==_.FAIL&&a.msg&&v.msgError(a.msg)},F=(a,o)=>{var n;if(c++,c==d.value.length&&(c=0,d.value=[],r("allSuccess")),!(a instanceof O)){const g=a instanceof Error?a.message:"";v.msgError(g||`${o.name}文件上传失败`)}(n=p.value)==null||n.abort(o),u.value=!1,r("change",o),r("error",o)},R=()=>{v.msgError(`超出上传上限${e.limit},请重新上传`)},j=()=>{d.value=[],u.value=!1},q=P(()=>{switch(e.type){case"image":return".jpg,.png,.gif,.jpeg,.ico";case"video":return".wmv,.avi,.mpg,.mpeg,.3gp,.mov,.mp4,.flv,.rmvb,.mkv";case"voice":return".mp3,.wav,.wma,.m4a,.aac,.amr";case"desktop_package":return".exe,.zip";default:return"*"}}),M=async a=>{var o,n,g,s;u.value=!0;try{const l=await ie({file:a.file,type:e.type,cid:Number(((o=a.data)==null?void 0:o.cid)??0),onProgress(m){var T;(T=a.onProgress)==null||T.call(a,{percent:m.percent,loaded:m.loaded,total:m.total})}});(n=a.onSuccess)==null||n.call(a,{code:_.SUCCESS,msg:"ok",data:l})}catch(l){if(l instanceof $){if(e.type==="desktop_package"){(g=a.onError)==null||g.call(a,new Error("当前未启用腾讯云 COS,安装包无法直传,请配置 COS 后重试"));return}v.msgWarning("当前存储不支持直传,已切换为普通上传"),await I(a);return}(s=a.onError)==null||s.call(a,l instanceof Error?l:new Error(String((l==null?void 0:l.message)??l)))}},I=a=>new Promise(o=>{const n=new XMLHttpRequest;n.open("POST",E.value),Object.entries(h.value).forEach(([s,l])=>n.setRequestHeader(s,String(l??""))),n.upload.onprogress=s=>{var m;if(!s.lengthComputable)return;const l=s.loaded/s.total*100;(m=a.onProgress)==null||m.call(a,{percent:l,loaded:s.loaded,total:s.total})},n.onload=()=>{var s,l;try{const m=JSON.parse(n.responseText);(s=a.onSuccess)==null||s.call(a,m)}catch{(l=a.onError)==null||l.call(a,new Error("上传响应解析失败"))}o()},n.onerror=()=>{var s;(s=a.onError)==null||s.call(a,new Error("网络错误")),o()};const g=new FormData;g.append("file",a.file),Object.entries(a.data||{}).forEach(([s,l])=>g.append(s,String(l))),n.send(g)});return{uploadRefs:p,action:E,headers:h,visible:u,fileList:d,useDirect:f,httpRequest:M,getAccept:q,handleProgress:y,handleSuccess:k,handleError:F,handleExceed:R,handleClose:j}}}),fe={class:"upload"},me={class:"file-list p-4"},ge={class:"flex-1"};function pe(e,r,t,S,p,E){const h=W,u=Q,d=ee;return w(),D("div",fe,[L(h,{"file-list":e.fileList,"onUpdate:fileList":r[0]||(r[0]=i=>e.fileList=i),ref:"uploadRefs",action:e.action,multiple:e.multiple,limit:e.limit,"show-file-list":!1,headers:e.headers,data:e.data,"http-request":e.useDirect?e.httpRequest:void 0,"on-progress":e.handleProgress,"on-success":e.handleSuccess,"on-exceed":e.handleExceed,"on-error":e.handleError,accept:e.getAccept},{default:z(()=>[H(e.$slots,"default")]),_:3},8,["file-list","action","multiple","limit","headers","data","http-request","on-progress","on-success","on-exceed","on-error","accept"]),e.showProgress&&e.fileList.length?(w(),Y(d,{key:0,modelValue:e.visible,"onUpdate:modelValue":r[1]||(r[1]=i=>e.visible=i),title:"上传进度","close-on-click-modal":!1,width:"500px",modal:!1,onClose:e.handleClose},{default:z(()=>[U("div",me,[(w(!0),D(G,null,J(e.fileList,(i,f)=>(w(),D("div",{key:f,class:"mb-5"},[U("div",null,Z(i.name),1),U("div",ge,[L(u,{percentage:parseInt(i.percentage)},null,8,["percentage"])])]))),128))])]),_:1},8,["modelValue","onClose"])):re("",!0)])}const we=se(ue,[["render",pe]]);export{we as U}; diff --git a/server/public/admin/assets/index-DhcEF7gk.js b/server/public/admin/assets/index-BJkq9Cpt.js similarity index 92% rename from server/public/admin/assets/index-DhcEF7gk.js rename to server/public/admin/assets/index-BJkq9Cpt.js index 160c5e111..936879317 100644 --- a/server/public/admin/assets/index-DhcEF7gk.js +++ b/server/public/admin/assets/index-BJkq9Cpt.js @@ -1 +1 @@ -import{o as k,bs as K,x as q,bp as A,q as i,r as v,v as e,D as n,bd as D,u as t,bb as N,aA as R,bc as $,bh as j,F as I,G as O,O as p,bi as G,K as M,L as u,bj as S,ac as g,bk as H,bl as J,a0 as Q,bn as W,s as X,C as Y,aC as Z}from"./.pnpm-CyuAWpdG.js";import{_ as ee}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as te}from"./index.vue_vue_type_script_setup_true_lang-98A4_fZW.js";import{_ as ae}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{b as w}from"./consumer-BUIWfqzk.js";import{C as le,l as ne}from"./index-Dxvz9lb1.js";import{u as oe}from"./usePaging-CghUEVfD.js";import"./index-BnfLT5cB.js";const se={class:"flex justify-end mt-4"},re=k({name:"consumerLists"}),ge=k({...re,setup(ie){const o=Z({keyword:"",channel:"",create_time_start:"",create_time_end:""}),{pager:r,getLists:d,resetPage:c,resetParams:C}=oe({fetchFun:w,params:o});return K(()=>{d()}),d(),(me,a)=>{const h=R,m=N,y=ae,V=G,x=j,_=M,E=te,T=D,f=S,L=Q,s=J,U=q("router-link"),z=H,B=ee,F=A("perms"),P=W;return i(),v("div",null,[e(f,{class:"!border-none",shadow:"never"},{default:n(()=>[e(T,{ref:"formRef",class:"mb-[-16px]",model:t(o),inline:!0},{default:n(()=>[e(m,{class:"w-[280px]",label:"用户信息"},{default:n(()=>[e(h,{modelValue:t(o).keyword,"onUpdate:modelValue":a[0]||(a[0]=l=>t(o).keyword=l),placeholder:"账号/昵称/手机号码",clearable:"",onKeyup:$(t(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(m,{label:"注册时间"},{default:n(()=>[e(y,{startTime:t(o).create_time_start,"onUpdate:startTime":a[1]||(a[1]=l=>t(o).create_time_start=l),endTime:t(o).create_time_end,"onUpdate:endTime":a[2]||(a[2]=l=>t(o).create_time_end=l)},null,8,["startTime","endTime"])]),_:1}),e(m,{class:"w-[280px]",label:"注册来源"},{default:n(()=>[e(x,{modelValue:t(o).channel,"onUpdate:modelValue":a[3]||(a[3]=l=>t(o).channel=l)},{default:n(()=>[(i(!0),v(I,null,O(t(le),(l,b)=>(i(),p(V,{key:b,label:l,value:b},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(m,null,{default:n(()=>[e(_,{type:"primary",onClick:t(c)},{default:n(()=>[...a[5]||(a[5]=[u("查询",-1)])]),_:1},8,["onClick"]),e(_,{onClick:t(C)},{default:n(()=>[...a[6]||(a[6]=[u("重置",-1)])]),_:1},8,["onClick"]),e(E,{class:"ml-2.5","fetch-fun":t(w),params:t(o),"page-size":t(r).size},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1},8,["model"])]),_:1}),e(f,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[g((i(),p(z,{size:"large",data:t(r).lists},{default:n(()=>[e(s,{label:"头像","min-width":"100"},{default:n(({row:l})=>[e(L,{src:l.avatar,size:50},null,8,["src"])]),_:1}),e(s,{label:"昵称",prop:"nickname","min-width":"100"}),e(s,{label:"账号",prop:"account","min-width":"120"}),e(s,{label:"手机号码",prop:"mobile","min-width":"100"}),e(s,{label:"注册来源",prop:"channel","min-width":"100"}),e(s,{label:"注册时间",prop:"create_time","min-width":"120"}),e(s,{label:"操作",width:"120",fixed:"right"},{default:n(({row:l})=>[g((i(),p(_,{type:"primary",link:""},{default:n(()=>[e(U,{to:{path:t(ne)("user.user/detail"),query:{id:l.id}}},{default:n(()=>[...a[7]||(a[7]=[u(" 详情 ",-1)])]),_:1},8,["to"])]),_:2},1024)),[[F,["user.user/detail"]]])]),_:1})]),_:1},8,["data"])),[[P,t(r).loading]]),X("div",se,[e(B,{modelValue:t(r),"onUpdate:modelValue":a[4]||(a[4]=l=>Y(r)?r.value=l:null),onChange:t(d)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{ge as default}; +import{o as k,bs as K,x as q,bp as A,q as i,r as v,v as e,D as n,bd as D,u as t,bb as N,aA as R,bc as $,bh as j,F as I,G as O,O as p,bi as G,K as M,L as u,bj as S,ac as g,bk as H,bl as J,a0 as Q,bn as W,s as X,C as Y,aC as Z}from"./.pnpm-CyuAWpdG.js";import{_ as ee}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as te}from"./index.vue_vue_type_script_setup_true_lang-CQzUr1BT.js";import{_ as ae}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{b as w}from"./consumer-BSTqFJW9.js";import{C as le,l as ne}from"./index-Bkarz3gO.js";import{u as oe}from"./usePaging-CghUEVfD.js";import"./index-CS5Wg0xx.js";const se={class:"flex justify-end mt-4"},re=k({name:"consumerLists"}),ge=k({...re,setup(ie){const o=Z({keyword:"",channel:"",create_time_start:"",create_time_end:""}),{pager:r,getLists:d,resetPage:c,resetParams:C}=oe({fetchFun:w,params:o});return K(()=>{d()}),d(),(me,a)=>{const h=R,m=N,y=ae,V=G,x=j,_=M,E=te,T=D,f=S,L=Q,s=J,U=q("router-link"),z=H,B=ee,F=A("perms"),P=W;return i(),v("div",null,[e(f,{class:"!border-none",shadow:"never"},{default:n(()=>[e(T,{ref:"formRef",class:"mb-[-16px]",model:t(o),inline:!0},{default:n(()=>[e(m,{class:"w-[280px]",label:"用户信息"},{default:n(()=>[e(h,{modelValue:t(o).keyword,"onUpdate:modelValue":a[0]||(a[0]=l=>t(o).keyword=l),placeholder:"账号/昵称/手机号码",clearable:"",onKeyup:$(t(c),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(m,{label:"注册时间"},{default:n(()=>[e(y,{startTime:t(o).create_time_start,"onUpdate:startTime":a[1]||(a[1]=l=>t(o).create_time_start=l),endTime:t(o).create_time_end,"onUpdate:endTime":a[2]||(a[2]=l=>t(o).create_time_end=l)},null,8,["startTime","endTime"])]),_:1}),e(m,{class:"w-[280px]",label:"注册来源"},{default:n(()=>[e(x,{modelValue:t(o).channel,"onUpdate:modelValue":a[3]||(a[3]=l=>t(o).channel=l)},{default:n(()=>[(i(!0),v(I,null,O(t(le),(l,b)=>(i(),p(V,{key:b,label:l,value:b},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(m,null,{default:n(()=>[e(_,{type:"primary",onClick:t(c)},{default:n(()=>[...a[5]||(a[5]=[u("查询",-1)])]),_:1},8,["onClick"]),e(_,{onClick:t(C)},{default:n(()=>[...a[6]||(a[6]=[u("重置",-1)])]),_:1},8,["onClick"]),e(E,{class:"ml-2.5","fetch-fun":t(w),params:t(o),"page-size":t(r).size},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1},8,["model"])]),_:1}),e(f,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[g((i(),p(z,{size:"large",data:t(r).lists},{default:n(()=>[e(s,{label:"头像","min-width":"100"},{default:n(({row:l})=>[e(L,{src:l.avatar,size:50},null,8,["src"])]),_:1}),e(s,{label:"昵称",prop:"nickname","min-width":"100"}),e(s,{label:"账号",prop:"account","min-width":"120"}),e(s,{label:"手机号码",prop:"mobile","min-width":"100"}),e(s,{label:"注册来源",prop:"channel","min-width":"100"}),e(s,{label:"注册时间",prop:"create_time","min-width":"120"}),e(s,{label:"操作",width:"120",fixed:"right"},{default:n(({row:l})=>[g((i(),p(_,{type:"primary",link:""},{default:n(()=>[e(U,{to:{path:t(ne)("user.user/detail"),query:{id:l.id}}},{default:n(()=>[...a[7]||(a[7]=[u(" 详情 ",-1)])]),_:1},8,["to"])]),_:2},1024)),[[F,["user.user/detail"]]])]),_:1})]),_:1},8,["data"])),[[P,t(r).loading]]),X("div",se,[e(B,{modelValue:t(r),"onUpdate:modelValue":a[4]||(a[4]=l=>Y(r)?r.value=l:null),onChange:t(d)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{ge as default}; diff --git a/server/public/admin/assets/index-DP9-ej81.js b/server/public/admin/assets/index-BKmWHQ4y.js similarity index 90% rename from server/public/admin/assets/index-DP9-ej81.js rename to server/public/admin/assets/index-BKmWHQ4y.js index e89a232a5..6aefdc04d 100644 --- a/server/public/admin/assets/index-DP9-ej81.js +++ b/server/public/admin/assets/index-BKmWHQ4y.js @@ -1 +1 @@ -import{o as E,bp as F,q as s,r as g,v as t,D as n,s as w,ac as m,O as d,K as P,L as p,bk as q,u as i,bl as z,T as I,C as K,bn as M,bj as O,P as D,a8 as $,M as x,n as y}from"./.pnpm-CyuAWpdG.js";import{_ as U}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as G,j as H}from"./index-Dxvz9lb1.js";import{c as J,d as Q}from"./role-B1hWAn9n.js";import{u as W}from"./usePaging-CghUEVfD.js";import{_ as X}from"./auth.vue_vue_type_script_setup_true_lang-CtcRAVMj.js";import{_ as Y}from"./edit.vue_vue_type_script_setup_true_lang-onWuscvD.js";import"./menu-Y8cDrxAC.js";import"./index-BnfLT5cB.js";const Z={class:"role-lists"},ee={class:"mt-4"},te={class:"flex justify-end mt-4"},ae=E({name:"role"}),pe=E({...ae,setup(oe){const f=$(),h=$(),_=x(!1),k=x(!1),{pager:u,getLists:c}=W({fetchFun:J}),V=async()=>{var a;_.value=!0,await y(),(a=f.value)==null||a.open("add")},R=async a=>{var e,r;_.value=!0,await y(),(e=f.value)==null||e.open("edit"),(r=f.value)==null||r.setFormData(a)},S=async a=>{var e,r;k.value=!0,await y(),(e=h.value)==null||e.open(),(r=h.value)==null||r.setFormData(a)},B=a=>{const e=Number(a)||1;return{1:"全部数据(免隔离)",2:"本部门及下级部门",3:"仅本部门",4:"仅本人"}[e]||"全部数据(免隔离)"},L=async a=>{await H.confirm("确定要删除?"),await Q({id:a}),c()};return c(),(a,e)=>{const r=G,v=P,l=z,N=q,T=U,j=O,b=F("perms"),A=M;return s(),g("div",Z,[t(j,{class:"!border-none",shadow:"never"},{default:n(()=>[w("div",null,[m((s(),d(v,{type:"primary",onClick:V},{icon:n(()=>[t(r,{name:"el-icon-Plus"})]),default:n(()=>[e[3]||(e[3]=p(" 新增 ",-1))]),_:1})),[[b,["auth.role/add"]]])]),m((s(),g("div",ee,[w("div",null,[t(N,{data:i(u).lists,size:"large"},{default:n(()=>[t(l,{prop:"id",label:"ID","min-width":"100"}),t(l,{prop:"name",label:"名称","min-width":"150"}),t(l,{prop:"desc",label:"备注","min-width":"150","show-overflow-tooltip":""}),t(l,{prop:"sort",label:"排序","min-width":"100"}),t(l,{label:"数据范围","min-width":"140"},{default:n(({row:o})=>[p(I(B(o.data_scope)),1)]),_:1}),t(l,{prop:"num",label:"管理员人数","min-width":"100"}),t(l,{prop:"create_time",label:"创建时间","min-width":"180"}),t(l,{label:"操作",width:"200",fixed:"right"},{default:n(({row:o})=>[m((s(),d(v,{link:"",type:"primary",onClick:C=>R(o)},{default:n(()=>[...e[4]||(e[4]=[p(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[b,["auth.role/edit"]]]),m((s(),d(v,{link:"",type:"primary",onClick:C=>S(o)},{default:n(()=>[...e[5]||(e[5]=[p(" 分配权限 ",-1)])]),_:1},8,["onClick"])),[[b,["auth.role/edit"]]]),m((s(),d(v,{link:"",type:"danger",onClick:C=>L(o.id)},{default:n(()=>[...e[6]||(e[6]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])),[[b,["auth.role/delete"]]])]),_:1})]),_:1},8,["data"])]),w("div",te,[t(T,{modelValue:i(u),"onUpdate:modelValue":e[0]||(e[0]=o=>K(u)?u.value=o:null),onChange:i(c)},null,8,["modelValue","onChange"])])])),[[A,i(u).loading]])]),_:1}),i(_)?(s(),d(Y,{key:0,ref_key:"editRef",ref:f,onSuccess:i(c),onClose:e[1]||(e[1]=o=>_.value=!1)},null,8,["onSuccess"])):D("",!0),i(k)?(s(),d(X,{key:1,ref_key:"authRef",ref:h,onSuccess:i(c),onClose:e[2]||(e[2]=o=>k.value=!1)},null,8,["onSuccess"])):D("",!0)])}}});export{pe as default}; +import{o as E,bp as F,q as s,r as g,v as t,D as n,s as w,ac as m,O as d,K as P,L as p,bk as q,u as i,bl as z,T as I,C as K,bn as M,bj as O,P as D,a8 as $,M as x,n as y}from"./.pnpm-CyuAWpdG.js";import{_ as U}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as G,j as H}from"./index-Bkarz3gO.js";import{c as J,d as Q}from"./role-fMbnnhKr.js";import{u as W}from"./usePaging-CghUEVfD.js";import{_ as X}from"./auth.vue_vue_type_script_setup_true_lang-CrhdXTk1.js";import{_ as Y}from"./edit.vue_vue_type_script_setup_true_lang-jjgQMFv5.js";import"./menu-BmHYTFQt.js";import"./index-CS5Wg0xx.js";const Z={class:"role-lists"},ee={class:"mt-4"},te={class:"flex justify-end mt-4"},ae=E({name:"role"}),pe=E({...ae,setup(oe){const f=$(),h=$(),_=x(!1),k=x(!1),{pager:u,getLists:c}=W({fetchFun:J}),V=async()=>{var a;_.value=!0,await y(),(a=f.value)==null||a.open("add")},R=async a=>{var e,r;_.value=!0,await y(),(e=f.value)==null||e.open("edit"),(r=f.value)==null||r.setFormData(a)},S=async a=>{var e,r;k.value=!0,await y(),(e=h.value)==null||e.open(),(r=h.value)==null||r.setFormData(a)},B=a=>{const e=Number(a)||1;return{1:"全部数据(免隔离)",2:"本部门及下级部门",3:"仅本部门",4:"仅本人"}[e]||"全部数据(免隔离)"},L=async a=>{await H.confirm("确定要删除?"),await Q({id:a}),c()};return c(),(a,e)=>{const r=G,v=P,l=z,N=q,T=U,j=O,b=F("perms"),A=M;return s(),g("div",Z,[t(j,{class:"!border-none",shadow:"never"},{default:n(()=>[w("div",null,[m((s(),d(v,{type:"primary",onClick:V},{icon:n(()=>[t(r,{name:"el-icon-Plus"})]),default:n(()=>[e[3]||(e[3]=p(" 新增 ",-1))]),_:1})),[[b,["auth.role/add"]]])]),m((s(),g("div",ee,[w("div",null,[t(N,{data:i(u).lists,size:"large"},{default:n(()=>[t(l,{prop:"id",label:"ID","min-width":"100"}),t(l,{prop:"name",label:"名称","min-width":"150"}),t(l,{prop:"desc",label:"备注","min-width":"150","show-overflow-tooltip":""}),t(l,{prop:"sort",label:"排序","min-width":"100"}),t(l,{label:"数据范围","min-width":"140"},{default:n(({row:o})=>[p(I(B(o.data_scope)),1)]),_:1}),t(l,{prop:"num",label:"管理员人数","min-width":"100"}),t(l,{prop:"create_time",label:"创建时间","min-width":"180"}),t(l,{label:"操作",width:"200",fixed:"right"},{default:n(({row:o})=>[m((s(),d(v,{link:"",type:"primary",onClick:C=>R(o)},{default:n(()=>[...e[4]||(e[4]=[p(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[b,["auth.role/edit"]]]),m((s(),d(v,{link:"",type:"primary",onClick:C=>S(o)},{default:n(()=>[...e[5]||(e[5]=[p(" 分配权限 ",-1)])]),_:1},8,["onClick"])),[[b,["auth.role/edit"]]]),m((s(),d(v,{link:"",type:"danger",onClick:C=>L(o.id)},{default:n(()=>[...e[6]||(e[6]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])),[[b,["auth.role/delete"]]])]),_:1})]),_:1},8,["data"])]),w("div",te,[t(T,{modelValue:i(u),"onUpdate:modelValue":e[0]||(e[0]=o=>K(u)?u.value=o:null),onChange:i(c)},null,8,["modelValue","onChange"])])])),[[A,i(u).loading]])]),_:1}),i(_)?(s(),d(Y,{key:0,ref_key:"editRef",ref:f,onSuccess:i(c),onClose:e[1]||(e[1]=o=>_.value=!1)},null,8,["onSuccess"])):D("",!0),i(k)?(s(),d(X,{key:1,ref_key:"authRef",ref:h,onSuccess:i(c),onClose:e[2]||(e[2]=o=>k.value=!1)},null,8,["onSuccess"])):D("",!0)])}}});export{pe as default}; diff --git a/server/public/admin/assets/index-CWe9wKwn.js b/server/public/admin/assets/index-BLnzo123.js similarity index 97% rename from server/public/admin/assets/index-CWe9wKwn.js rename to server/public/admin/assets/index-BLnzo123.js index 219befff4..3606518a9 100644 --- a/server/public/admin/assets/index-CWe9wKwn.js +++ b/server/public/admin/assets/index-BLnzo123.js @@ -1 +1 @@ -import{o as w,R as M,ap as N,q as c,r as g,v as t,D as l,bd as R,bb as S,az as Y,u as s,bh as z,F as j,G as q,bi as H,aA as O,bc as h,K as G,L as b,s as r,bj as $,ac as J,O as C,bk as Q,bl as W,T as i,bm as X,a1 as Z,P as ee,bn as te,C as le,M as ae,aC as se}from"./.pnpm-CyuAWpdG.js";import{_ as ne}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{a as oe}from"./ai_mcp-Dog5pgH2.js";import{u as de}from"./usePaging-CghUEVfD.js";import{_ as ie}from"./index-Dxvz9lb1.js";const re={class:"ai-access-log-page"},ue={class:"cell-sub"},_e={class:"cell-sub"},ce={class:"ellipsis"},me={key:1,class:"cell-sub"},pe={class:"ellipsis"},be={class:"flex justify-end mt-4"},fe=w({name:"aiMcpAccessLog"}),ge=w({...fe,setup(he){const V={ok:"成功",denied:"拒绝",invalid:"参数错误",limited:"超限",error:"失败"},p=ae(null),n=se({start_time:"",end_time:"",status:"",resource:"",record_id:"",client_task_id:""});M(p,u=>{n.start_time=(u==null?void 0:u[0])??"",n.end_time=(u==null?void 0:u[1])??""});const{pager:m,getLists:k,resetPage:d,resetParams:D}=de({fetchFun:oe,params:n}),I=()=>{p.value=null,D()};return N(()=>k()),(u,a)=>{const K=Y,_=S,T=H,L=z,f=O,y=G,U=R,E=$,o=W,A=X,v=Z,P=Q,B=ne,F=te;return c(),g("div",re,[t(E,{class:"!border-none",shadow:"never"},{default:l(()=>[t(U,{inline:!0},{default:l(()=>[t(_,{label:"时间"},{default:l(()=>[t(K,{modelValue:p.value,"onUpdate:modelValue":a[0]||(a[0]=e=>p.value=e),type:"datetimerange","range-separator":"至","start-placeholder":"开始时间","end-placeholder":"结束时间","value-format":"YYYY-MM-DD HH:mm:ss",clearable:"",onChange:s(d)},null,8,["modelValue","onChange"])]),_:1}),t(_,{label:"结果"},{default:l(()=>[t(L,{modelValue:n.status,"onUpdate:modelValue":a[1]||(a[1]=e=>n.status=e),clearable:"",placeholder:"全部",class:"w-[120px]",onChange:s(d)},{default:l(()=>[(c(),g(j,null,q(V,(e,x)=>t(T,{key:x,label:e,value:x},null,8,["label","value"])),64))]),_:1},8,["modelValue","onChange"])]),_:1}),t(_,{label:"数据资源"},{default:l(()=>[t(f,{modelValue:n.resource,"onUpdate:modelValue":a[2]||(a[2]=e=>n.resource=e),placeholder:"如 tcm.diagnosis",clearable:"",class:"w-[180px]",onKeyup:h(s(d),["enter"]),onClear:s(d)},null,8,["modelValue","onKeyup","onClear"])]),_:1}),t(_,{label:"记录ID"},{default:l(()=>[t(f,{modelValue:n.record_id,"onUpdate:modelValue":a[3]||(a[3]=e=>n.record_id=e),placeholder:"如诊单ID",clearable:"",class:"w-[130px]",onKeyup:h(s(d),["enter"]),onClear:s(d)},null,8,["modelValue","onKeyup","onClear"])]),_:1}),t(_,{label:"任务号"},{default:l(()=>[t(f,{modelValue:n.client_task_id,"onUpdate:modelValue":a[4]||(a[4]=e=>n.client_task_id=e),placeholder:"行知任务号",clearable:"",class:"w-[200px]",onKeyup:h(s(d),["enter"]),onClear:s(d)},null,8,["modelValue","onKeyup","onClear"])]),_:1}),t(_,null,{default:l(()=>[t(y,{type:"primary",onClick:s(d)},{default:l(()=>[...a[6]||(a[6]=[b("查询",-1)])]),_:1},8,["onClick"]),t(y,{onClick:I},{default:l(()=>[...a[7]||(a[7]=[b("重置",-1)])]),_:1})]),_:1})]),_:1}),a[8]||(a[8]=r("div",{class:"page-hint"}," 记录每一次 AI 查询:谁、通过哪个客户端任务、查了哪个数据资源、返回了哪些记录。按“记录ID”可以查某个诊单被哪些账号通过 AI 看过。 ",-1))]),_:1}),t(E,{class:"!border-none mt-3",shadow:"never"},{default:l(()=>[J((c(),C(P,{data:s(m).lists,size:"default",stripe:""},{default:l(()=>[t(o,{label:"时间",width:"165",prop:"create_time_text"}),t(o,{label:"账号","min-width":"120"},{default:l(({row:e})=>[r("div",null,i(e.admin_name||(e.admin_id?"#"+e.admin_id:"—")),1),r("div",ue,i(e.ip),1)]),_:1}),t(o,{label:"工具",width:"170",prop:"tool"}),t(o,{label:"数据资源","min-width":"200"},{default:l(({row:e})=>[r("div",null,i(e.resource_name||e.resource||"—"),1),r("div",_e,i(e.resource),1)]),_:1}),t(o,{label:"结果",width:"90",align:"center"},{default:l(({row:e})=>[t(A,{type:e.status==="ok"?"success":"warning",size:"small"},{default:l(()=>[b(i(V[e.status]||e.status),1)]),_:2},1032,["type"])]),_:1}),t(o,{label:"条数",width:"70",align:"right",prop:"result_rows"}),t(o,{label:"记录ID / 原因","min-width":"200"},{default:l(({row:e})=>[e.record_ids?(c(),C(v,{key:0,content:e.record_ids,placement:"top"},{default:l(()=>[r("span",ce,i(e.record_ids),1)]),_:2},1032,["content"])):(c(),g("span",me,i(e.message),1))]),_:1}),t(o,{label:"参数","min-width":"220"},{default:l(({row:e})=>[e.arguments?(c(),C(v,{key:0,content:e.arguments,placement:"top"},{default:l(()=>[r("span",pe,i(e.arguments),1)]),_:2},1032,["content"])):ee("",!0)]),_:1}),t(o,{label:"耗时",width:"80",align:"right"},{default:l(({row:e})=>[b(i(e.duration_ms)+"ms",1)]),_:1}),t(o,{label:"任务号","min-width":"160",prop:"client_task_id"})]),_:1},8,["data"])),[[F,s(m).loading]]),r("div",be,[t(B,{modelValue:s(m),"onUpdate:modelValue":a[5]||(a[5]=e=>le(m)?m.value=e:null),onChange:s(k)},null,8,["modelValue","onChange"])])]),_:1})])}}}),ve=ie(ge,[["__scopeId","data-v-37994a6b"]]);export{ve as default}; +import{o as w,R as M,ap as N,q as c,r as g,v as t,D as l,bd as R,bb as S,az as Y,u as s,bh as z,F as j,G as q,bi as H,aA as O,bc as h,K as G,L as b,s as r,bj as $,ac as J,O as C,bk as Q,bl as W,T as i,bm as X,a1 as Z,P as ee,bn as te,C as le,M as ae,aC as se}from"./.pnpm-CyuAWpdG.js";import{_ as ne}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{a as oe}from"./ai_mcp-Bk1FasTW.js";import{u as de}from"./usePaging-CghUEVfD.js";import{_ as ie}from"./index-Bkarz3gO.js";const re={class:"ai-access-log-page"},ue={class:"cell-sub"},_e={class:"cell-sub"},ce={class:"ellipsis"},me={key:1,class:"cell-sub"},pe={class:"ellipsis"},be={class:"flex justify-end mt-4"},fe=w({name:"aiMcpAccessLog"}),ge=w({...fe,setup(he){const V={ok:"成功",denied:"拒绝",invalid:"参数错误",limited:"超限",error:"失败"},p=ae(null),n=se({start_time:"",end_time:"",status:"",resource:"",record_id:"",client_task_id:""});M(p,u=>{n.start_time=(u==null?void 0:u[0])??"",n.end_time=(u==null?void 0:u[1])??""});const{pager:m,getLists:k,resetPage:d,resetParams:D}=de({fetchFun:oe,params:n}),I=()=>{p.value=null,D()};return N(()=>k()),(u,a)=>{const K=Y,_=S,T=H,L=z,f=O,y=G,U=R,E=$,o=W,A=X,v=Z,P=Q,B=ne,F=te;return c(),g("div",re,[t(E,{class:"!border-none",shadow:"never"},{default:l(()=>[t(U,{inline:!0},{default:l(()=>[t(_,{label:"时间"},{default:l(()=>[t(K,{modelValue:p.value,"onUpdate:modelValue":a[0]||(a[0]=e=>p.value=e),type:"datetimerange","range-separator":"至","start-placeholder":"开始时间","end-placeholder":"结束时间","value-format":"YYYY-MM-DD HH:mm:ss",clearable:"",onChange:s(d)},null,8,["modelValue","onChange"])]),_:1}),t(_,{label:"结果"},{default:l(()=>[t(L,{modelValue:n.status,"onUpdate:modelValue":a[1]||(a[1]=e=>n.status=e),clearable:"",placeholder:"全部",class:"w-[120px]",onChange:s(d)},{default:l(()=>[(c(),g(j,null,q(V,(e,x)=>t(T,{key:x,label:e,value:x},null,8,["label","value"])),64))]),_:1},8,["modelValue","onChange"])]),_:1}),t(_,{label:"数据资源"},{default:l(()=>[t(f,{modelValue:n.resource,"onUpdate:modelValue":a[2]||(a[2]=e=>n.resource=e),placeholder:"如 tcm.diagnosis",clearable:"",class:"w-[180px]",onKeyup:h(s(d),["enter"]),onClear:s(d)},null,8,["modelValue","onKeyup","onClear"])]),_:1}),t(_,{label:"记录ID"},{default:l(()=>[t(f,{modelValue:n.record_id,"onUpdate:modelValue":a[3]||(a[3]=e=>n.record_id=e),placeholder:"如诊单ID",clearable:"",class:"w-[130px]",onKeyup:h(s(d),["enter"]),onClear:s(d)},null,8,["modelValue","onKeyup","onClear"])]),_:1}),t(_,{label:"任务号"},{default:l(()=>[t(f,{modelValue:n.client_task_id,"onUpdate:modelValue":a[4]||(a[4]=e=>n.client_task_id=e),placeholder:"行知任务号",clearable:"",class:"w-[200px]",onKeyup:h(s(d),["enter"]),onClear:s(d)},null,8,["modelValue","onKeyup","onClear"])]),_:1}),t(_,null,{default:l(()=>[t(y,{type:"primary",onClick:s(d)},{default:l(()=>[...a[6]||(a[6]=[b("查询",-1)])]),_:1},8,["onClick"]),t(y,{onClick:I},{default:l(()=>[...a[7]||(a[7]=[b("重置",-1)])]),_:1})]),_:1})]),_:1}),a[8]||(a[8]=r("div",{class:"page-hint"}," 记录每一次 AI 查询:谁、通过哪个客户端任务、查了哪个数据资源、返回了哪些记录。按“记录ID”可以查某个诊单被哪些账号通过 AI 看过。 ",-1))]),_:1}),t(E,{class:"!border-none mt-3",shadow:"never"},{default:l(()=>[J((c(),C(P,{data:s(m).lists,size:"default",stripe:""},{default:l(()=>[t(o,{label:"时间",width:"165",prop:"create_time_text"}),t(o,{label:"账号","min-width":"120"},{default:l(({row:e})=>[r("div",null,i(e.admin_name||(e.admin_id?"#"+e.admin_id:"—")),1),r("div",ue,i(e.ip),1)]),_:1}),t(o,{label:"工具",width:"170",prop:"tool"}),t(o,{label:"数据资源","min-width":"200"},{default:l(({row:e})=>[r("div",null,i(e.resource_name||e.resource||"—"),1),r("div",_e,i(e.resource),1)]),_:1}),t(o,{label:"结果",width:"90",align:"center"},{default:l(({row:e})=>[t(A,{type:e.status==="ok"?"success":"warning",size:"small"},{default:l(()=>[b(i(V[e.status]||e.status),1)]),_:2},1032,["type"])]),_:1}),t(o,{label:"条数",width:"70",align:"right",prop:"result_rows"}),t(o,{label:"记录ID / 原因","min-width":"200"},{default:l(({row:e})=>[e.record_ids?(c(),C(v,{key:0,content:e.record_ids,placement:"top"},{default:l(()=>[r("span",ce,i(e.record_ids),1)]),_:2},1032,["content"])):(c(),g("span",me,i(e.message),1))]),_:1}),t(o,{label:"参数","min-width":"220"},{default:l(({row:e})=>[e.arguments?(c(),C(v,{key:0,content:e.arguments,placement:"top"},{default:l(()=>[r("span",pe,i(e.arguments),1)]),_:2},1032,["content"])):ee("",!0)]),_:1}),t(o,{label:"耗时",width:"80",align:"right"},{default:l(({row:e})=>[b(i(e.duration_ms)+"ms",1)]),_:1}),t(o,{label:"任务号","min-width":"160",prop:"client_task_id"})]),_:1},8,["data"])),[[F,s(m).loading]]),r("div",be,[t(B,{modelValue:s(m),"onUpdate:modelValue":a[5]||(a[5]=e=>le(m)?m.value=e:null),onChange:s(k)},null,8,["modelValue","onChange"])])]),_:1})])}}}),ve=ie(ge,[["__scopeId","data-v-37994a6b"]]);export{ve as default}; diff --git a/server/public/admin/assets/index-DdPJHEsY.js b/server/public/admin/assets/index-BLw2qqEh.js similarity index 74% rename from server/public/admin/assets/index-DdPJHEsY.js rename to server/public/admin/assets/index-BLw2qqEh.js index 6e43bc64e..62aa0ee7d 100644 --- a/server/public/admin/assets/index-DdPJHEsY.js +++ b/server/public/admin/assets/index-BLw2qqEh.js @@ -1 +1 @@ -import i from"./attr-BKcZmDiX.js";import{_}from"./content.vue_vue_type_script_setup_true_lang-DVlBS5Y8.js";import{_ as s}from"./attr.vue_vue_type_script_setup_true_lang-DQUc65nD.js";import a from"./content-CkQUB7ti.js";import{_ as r}from"./attr.vue_vue_type_script_setup_true_lang-Co9N5gOC.js";import{_ as l}from"./content.vue_vue_type_script_setup_true_lang-D3yhrH9m.js";import{_ as c}from"./attr.vue_vue_type_script_setup_true_lang-BUrcLo0c.js";import m from"./content-BtlOdmdD.js";import{_ as d}from"./attr.vue_vue_type_script_setup_true_lang-kgBs74gd.js";import{_ as p}from"./content.vue_vue_type_script_setup_true_lang-CwwLmi2B.js";import{_ as f}from"./attr.vue_vue_type_script_setup_true_lang-Bkj1p-jl.js";import b from"./content-DqDTOak9.js";import{_ as g}from"./attr.vue_vue_type_script_setup_true_lang-BWENGozb.js";import u from"./content-0LXu-5MK.js";import{_ as y}from"./content.vue_vue_type_script_setup_true_lang-BlC3oWQE.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang-jrtitgMf.js";import v from"./content-C5W1CaMe.js";import{_ as x}from"./attr.vue_vue_type_script_setup_true_lang-CsV4MUsa.js";import{_ as j}from"./content.vue_vue_type_script_setup_true_lang-Unv1Zxh1.js";import{_ as O}from"./attr.vue_vue_type_script_setup_true_lang-ObQLkrtE.js";import S from"./content-DdjhpUgB.js";const z=()=>({title:"首页轮播图",name:"banner",content:{enabled:1,style:1,bg_style:0,data:[{is_show:"1",image:"",bg:"",name:"",link:{}}]},styles:{}}),M={attr:i,content:_,options:z},P=Object.freeze(Object.defineProperty({__proto__:null,default:M},Symbol.toStringTag,{value:"Module"})),T=()=>({title:"客服设置",name:"customer-service",content:{title:"添加客服二维码",time:"",mobile:"",qrcode:"",remark:""},styles:{}}),w={attr:s,content:a,options:T},h=Object.freeze(Object.defineProperty({__proto__:null,default:w},Symbol.toStringTag,{value:"Module"})),k=()=>({title:"首页中部轮播图",name:"middle-banner",content:{enabled:1,data:[{is_show:"1",image:"",name:"",link:{}}]},styles:{}}),q={attr:r,content:l,options:k},E=Object.freeze(Object.defineProperty({__proto__:null,default:q},Symbol.toStringTag,{value:"Module"})),N=()=>({title:"我的服务",name:"my-service",content:{style:1,title:"我的服务",data:[{image:"",name:"导航名称",link:{}}]},styles:{}}),W={attr:c,content:m,options:N},A=Object.freeze(Object.defineProperty({__proto__:null,default:W},Symbol.toStringTag,{value:"Module"})),B=()=>({title:"导航菜单",name:"nav",content:{enabled:1,style:1,per_line:5,show_line:2,data:[{image:"",name:"导航名称",link:{}}]},styles:{}}),C={attr:d,content:p,options:B},D=Object.freeze(Object.defineProperty({__proto__:null,default:C},Symbol.toStringTag,{value:"Module"})),F=()=>({title:"资讯",name:"news",disabled:1,content:{},styles:{}}),G={attr:f,content:b,options:F},H=Object.freeze(Object.defineProperty({__proto__:null,default:G},Symbol.toStringTag,{value:"Module"})),I=()=>({title:"页面设置",name:"page-meta",content:{title_type:1,title:"",title_img:"",bg_type:1,bg_color:"",bg_image:"",text_color:""},styles:{}}),J={attr:g,content:u,options:I},K=Object.freeze(Object.defineProperty({__proto__:null,default:J},Symbol.toStringTag,{value:"Module"})),L=()=>({title:"首页轮播图",name:"pc-banner",content:{enabled:1,data:[{image:"",name:"",link:{}}]},styles:{}}),Q={content:y,options:L},R=Object.freeze(Object.defineProperty({__proto__:null,default:Q},Symbol.toStringTag,{value:"Module"})),U=()=>({title:"搜索",name:"search",disabled:1,content:{},styles:{}}),V={attr:$,content:v,options:U},X=Object.freeze(Object.defineProperty({__proto__:null,default:V},Symbol.toStringTag,{value:"Module"})),Y=()=>({title:"个人中心广告图",name:"user-banner",content:{enabled:1,data:[{is_show:"1",image:"",name:"",link:{}}]},styles:{}}),Z={attr:x,content:j,options:Y},tt=Object.freeze(Object.defineProperty({__proto__:null,default:Z},Symbol.toStringTag,{value:"Module"})),et=()=>({title:"用户信息",name:"user-info",disabled:1,content:{},styles:{}}),ot={attr:O,content:S,options:et},nt=Object.freeze(Object.defineProperty({__proto__:null,default:ot},Symbol.toStringTag,{value:"Module"})),o=Object.assign({"./banner/index.ts":P,"./customer-service/index.ts":h,"./middle-banner/index.ts":E,"./my-service/index.ts":A,"./nav/index.ts":D,"./news/index.ts":H,"./page-meta/index.ts":K,"./pc-banner/index.ts":R,"./search/index.ts":X,"./user-banner/index.ts":tt,"./user-info/index.ts":nt}),it={};Object.keys(o).forEach(t=>{var e;const n=t.replace(/^\.\/([\w-]+).*/gi,"$1");it[n]=(e=o[t])==null?void 0:e.default});export{it as e}; +import i from"./attr-DWgf0zU2.js";import{_}from"./content.vue_vue_type_script_setup_true_lang-3GiNjvv7.js";import{_ as s}from"./attr.vue_vue_type_script_setup_true_lang-BoEBITiA.js";import a from"./content-BR-B7Y89.js";import{_ as r}from"./attr.vue_vue_type_script_setup_true_lang-VLQINM6l.js";import{_ as l}from"./content.vue_vue_type_script_setup_true_lang-DJb4aHFp.js";import{_ as c}from"./attr.vue_vue_type_script_setup_true_lang-BsVB4T8K.js";import m from"./content-CPrgdURU.js";import{_ as d}from"./attr.vue_vue_type_script_setup_true_lang-DyWBgKkz.js";import{_ as p}from"./content.vue_vue_type_script_setup_true_lang-DIToE7Db.js";import{_ as f}from"./attr.vue_vue_type_script_setup_true_lang-Bkj1p-jl.js";import b from"./content-B1kkCzVQ.js";import{_ as g}from"./attr.vue_vue_type_script_setup_true_lang-DEQz3dX_.js";import u from"./content-DLUkNAW_.js";import{_ as y}from"./content.vue_vue_type_script_setup_true_lang-D7k_-QjC.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang-jrtitgMf.js";import v from"./content-C1VdJnCo.js";import{_ as x}from"./attr.vue_vue_type_script_setup_true_lang-BPT_wucL.js";import{_ as j}from"./content.vue_vue_type_script_setup_true_lang-_A_7DW4P.js";import{_ as O}from"./attr.vue_vue_type_script_setup_true_lang-ObQLkrtE.js";import S from"./content-DraD2KOm.js";const z=()=>({title:"首页轮播图",name:"banner",content:{enabled:1,style:1,bg_style:0,data:[{is_show:"1",image:"",bg:"",name:"",link:{}}]},styles:{}}),M={attr:i,content:_,options:z},P=Object.freeze(Object.defineProperty({__proto__:null,default:M},Symbol.toStringTag,{value:"Module"})),T=()=>({title:"客服设置",name:"customer-service",content:{title:"添加客服二维码",time:"",mobile:"",qrcode:"",remark:""},styles:{}}),w={attr:s,content:a,options:T},h=Object.freeze(Object.defineProperty({__proto__:null,default:w},Symbol.toStringTag,{value:"Module"})),k=()=>({title:"首页中部轮播图",name:"middle-banner",content:{enabled:1,data:[{is_show:"1",image:"",name:"",link:{}}]},styles:{}}),q={attr:r,content:l,options:k},E=Object.freeze(Object.defineProperty({__proto__:null,default:q},Symbol.toStringTag,{value:"Module"})),N=()=>({title:"我的服务",name:"my-service",content:{style:1,title:"我的服务",data:[{image:"",name:"导航名称",link:{}}]},styles:{}}),W={attr:c,content:m,options:N},A=Object.freeze(Object.defineProperty({__proto__:null,default:W},Symbol.toStringTag,{value:"Module"})),B=()=>({title:"导航菜单",name:"nav",content:{enabled:1,style:1,per_line:5,show_line:2,data:[{image:"",name:"导航名称",link:{}}]},styles:{}}),C={attr:d,content:p,options:B},D=Object.freeze(Object.defineProperty({__proto__:null,default:C},Symbol.toStringTag,{value:"Module"})),F=()=>({title:"资讯",name:"news",disabled:1,content:{},styles:{}}),G={attr:f,content:b,options:F},H=Object.freeze(Object.defineProperty({__proto__:null,default:G},Symbol.toStringTag,{value:"Module"})),I=()=>({title:"页面设置",name:"page-meta",content:{title_type:1,title:"",title_img:"",bg_type:1,bg_color:"",bg_image:"",text_color:""},styles:{}}),J={attr:g,content:u,options:I},K=Object.freeze(Object.defineProperty({__proto__:null,default:J},Symbol.toStringTag,{value:"Module"})),L=()=>({title:"首页轮播图",name:"pc-banner",content:{enabled:1,data:[{image:"",name:"",link:{}}]},styles:{}}),Q={content:y,options:L},R=Object.freeze(Object.defineProperty({__proto__:null,default:Q},Symbol.toStringTag,{value:"Module"})),U=()=>({title:"搜索",name:"search",disabled:1,content:{},styles:{}}),V={attr:$,content:v,options:U},X=Object.freeze(Object.defineProperty({__proto__:null,default:V},Symbol.toStringTag,{value:"Module"})),Y=()=>({title:"个人中心广告图",name:"user-banner",content:{enabled:1,data:[{is_show:"1",image:"",name:"",link:{}}]},styles:{}}),Z={attr:x,content:j,options:Y},tt=Object.freeze(Object.defineProperty({__proto__:null,default:Z},Symbol.toStringTag,{value:"Module"})),et=()=>({title:"用户信息",name:"user-info",disabled:1,content:{},styles:{}}),ot={attr:O,content:S,options:et},nt=Object.freeze(Object.defineProperty({__proto__:null,default:ot},Symbol.toStringTag,{value:"Module"})),o=Object.assign({"./banner/index.ts":P,"./customer-service/index.ts":h,"./middle-banner/index.ts":E,"./my-service/index.ts":A,"./nav/index.ts":D,"./news/index.ts":H,"./page-meta/index.ts":K,"./pc-banner/index.ts":R,"./search/index.ts":X,"./user-banner/index.ts":tt,"./user-info/index.ts":nt}),it={};Object.keys(o).forEach(t=>{var e;const n=t.replace(/^\.\/([\w-]+).*/gi,"$1");it[n]=(e=o[t])==null?void 0:e.default});export{it as e}; diff --git a/server/public/admin/assets/index-D5Mqb28U.js b/server/public/admin/assets/index-BTmQt_1H.js similarity index 83% rename from server/public/admin/assets/index-D5Mqb28U.js rename to server/public/admin/assets/index-BTmQt_1H.js index 8d8789da7..5b28766cd 100644 --- a/server/public/admin/assets/index-D5Mqb28U.js +++ b/server/public/admin/assets/index-BTmQt_1H.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-b8RBNrGF.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/file-CefRfHD9.js","assets/index-Dxvz9lb1.js","assets/index-B3vHLAW8.css","assets/patient-Bz8-LT2R.js","assets/tcm-QAkeqQ9Q.js","assets/appointment-type-DJT6wPaT.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/dayjs-B2bPhvDy.js","assets/@tencentcloud/chat-Dqh0gV5b.js","assets/@tencentcloud/chat-uikit-engine-BOxL0feI.js","assets/tim-upload-plugin-CK05mjrC.js","assets/tim-profanity-filter-plugin-CIiDZ6v0.js","assets/@tencentcloud/call-engine-js-DCEY106C.js","assets/rtc-detect-TVc6uI0Q.js","assets/index-ma9pGSsz.css","assets/edit-DFFSwWxS.js","assets/perm-DOfZAzJJ.js","assets/DailyMatrix-BSZy3g0c.js","assets/picker-BDO86vcM.js","assets/index-BnfLT5cB.js","assets/index-B3imPWFk.css","assets/index-yD39j6dM.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-ClBYIwNX.js","assets/index-D0f1Mn00.css","assets/index-BU3OYnKm.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-CE1isNg2.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-GXQTu6xF.js","assets/FollowupAudioReview-92Fgd7wW.js","assets/FollowupAudioField-BG0mRnT5.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-Bdp996ss.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-DFudUjln.js","assets/RecordingPlaybackBlock-GbWd6PMw.js","assets/RecordingVideoPlayer-grUPRDCj.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CafeXQX5.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-0TFZiCkF.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-C2wB-h-D.js","assets/doctor-8vo_5fa4.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-DDh0aI3_.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-BP2alDvZ.js","assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-B4rggqa1.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-Cis-_1uh.js","assets/index-Cf6ygfGC.js","assets/medicine-EUKQYFsM.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-DT7CSmCp.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]); -import{o as He,R as Je,ap as Xe,n as et,aq as tt,bp as at,q as r,r as h,s as l,T as k,u as a,ae as Q,v as d,D as v,w as nt,bB as st,bc as lt,C as ue,aA as ot,ac as j,bn as it,F as qe,G as ut,L as D,O as C,bm as rt,P as q,aw as dt,ba as ct,as as vt,a1 as ft,dc as pt,bC as mt,K as gt,ab as _t,aB as ht,a4 as Ie,cd as Ne,al as xe,M as i,p as Y}from"./.pnpm-CyuAWpdG.js";import{r as Re,n as yt,a as St,b as kt}from"./patient-Bz8-LT2R.js";import bt from"./NoteTimeline-DDh0aI3_.js";import Ct from"./PatientInfoCard--7DLvgKR.js";import wt from"./PatientCaseCard-BLq-W0if.js";import Et from"./DailyMatrix-BSZy3g0c.js";import{l as Dt}from"./doctor-8vo_5fa4.js";import{Z as qt}from"./tcm-QAkeqQ9Q.js";import{j as g,_ as It}from"./index-Dxvz9lb1.js";import{f as Nt}from"./diag-display-DCz_VAqj.js";import"./picker-BDO86vcM.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";import"./perm-DOfZAzJJ.js";import"./blood-thresholds-QpDuElbH.js";import"./diabetes-discovery-display-B_wmGXQJ.js";import"./DiagnosisTodoList-CE1isNg2.js";const xt={class:"reception-page"},Rt={class:"reception-header"},Tt={class:"header-left"},$t={class:"header-meta"},Pt={class:"header-right"},Vt={class:"live-pill"},Lt={class:"filter-shell"},Mt={class:"filter-tabs"},zt={class:"main-area"},At={class:"queue-col"},Bt={class:"queue-panel"},jt={class:"queue-head"},Ft={class:"queue-title"},Ot={class:"queue-meta"},Ut=["onClick"],Gt={class:"row-name"},Wt={class:"name-line"},Kt={class:"name-meta"},Qt={class:"time-line"},Yt=["disabled","onClick"],Zt=["onClick"],Ht={key:0},Jt={key:1,class:"no-more"},Xt={class:"sidebar"},ea={key:0,class:"placeholder-card"},ta={class:"card note-card"},aa={class:"card metric-card"},na={key:0,class:"float-bar"},re=5e3,de=15,sa=He({__name:"index",setup(la){const Te=Ne(()=>xe(()=>import("./index-b8RBNrGF.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]))),$e=Ne(()=>xe(()=>import("./edit-DFFSwWxS.js"),__vite__mapDeps([18,1,2,7,4,5,19,20,21,22,23,24,25,26,27,28,3,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,10,9,52,53,54,55,56,57,58,6,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74]))),_=i(1),y=i([]),F=i(0),Z=i(0),H=i(0),J=i(1),O=i(!0),U=i(!1),G=i(!1),X=i(!1),c=i(null),p=i(null),ee=i(!1),b=i(""),P=i(!1),V=i(re/1e3),L=i(null);let I=null,N=null,te=!1,M=!1,w=null,W=0,x=0;const ae=i(null),K=i(null),ce=i(),ve=i(),R=i(!1),z=i(""),ne=i(!1),T=Y(()=>{var e;return((e=p.value)==null?void 0:e.appointment)||{}}),S=Y(()=>{var e;return((e=p.value)==null?void 0:e.diagnosis)||{}}),Pe=Y(()=>{var e;return((e=p.value)==null?void 0:e.doctor_notes)||[]}),Ve=Y(()=>{const e=new Date,t=["周日","周一","周二","周三","周四","周五","周六"][e.getDay()],n=o=>String(o).padStart(2,"0");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())} ${t}`}),Le=()=>{const e=new Date,t=n=>String(n).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`},Me=e=>[Nt(e.gender),e.age!=null?e.age+"岁":""].filter(n=>n&&n!=="—").join(" "),ze=e=>e?e.replace(/^(\d{2}:\d{2})(:\d{2})?$/,"$1"):"—",se=async(e,t,n)=>{const o=Le(),s=await kt({status:t??_.value,start_date:o,end_date:o,patient_name:(n??b.value)||void 0,page_no:e,page_size:de}),E=(s==null?void 0:s.lists)||(s==null?void 0:s.data)||[],f=Number((s==null?void 0:s.count)??(s==null?void 0:s.total)??0);return{list:E,count:f}},Ae=async(e,t,n)=>{const o=e===1?4:1;try{const{count:s}=await se(1,o,t||void 0);if(n!==W||_.value!==e||b.value!==t)return;o===1?Z.value=s:H.value=s}catch{}},A=async e=>{const t=(e==null?void 0:e.silent)===!0;if(t&&te)return;const n=++W,o=_.value,s=b.value,E=(e==null?void 0:e.autoSelect)??!t;te=!0,t||(G.value=!0);try{J.value=1;const{list:f,count:m}=await se(1,o,s||void 0);if(n!==W||_.value!==o||b.value!==s)return;y.value=f,F.value=m||f.length,o===1?Z.value=m:H.value=m,O.value=f.length>=de&&y.value.length<(m||0),Ae(o,s,n),c.value&&!f.some(oe=>oe.id===c.value)&&(c.value=null,p.value=null),!c.value&&E&&f.length>0&&await fe(f[0])}catch(f){t||console.error("加载队列失败:",f)}finally{n===W&&(G.value=!1,te=!1)}},Be=async()=>{if(U.value||!O.value)return;const e=_.value,t=b.value;U.value=!0;try{const n=J.value+1,{list:o,count:s}=await se(n,e,t||void 0);if(_.value!==e||b.value!==t)return;const E=new Set(y.value.map(m=>m.id)),f=o.filter(m=>!E.has(m.id));y.value=[...y.value,...f],J.value=n,F.value=s||F.value,O.value=o.length>=de&&y.value.length<(s||0)}catch(n){console.error("加载更多失败:",n)}finally{U.value=!1}},je=async()=>{if(!c.value||M)return;const e=c.value,t=++x;M=!0;try{const n=await Re({id:e});if(t!==x||c.value!==e)return;p.value=n||p.value}catch{}finally{t===x&&(M=!1)}},fe=async e=>{if(c.value===e.id)return;const t=e.id,n=++x;c.value=e.id,p.value=null,X.value=!0,M=!0,B();try{const o=await Re({id:t});if(n!==x||c.value!==t)return;p.value=o||null}catch(o){console.error("加载详情失败:",o),g.msgError("加载患者详情失败")}finally{n===x&&(X.value=!1,M=!1)}},pe=async e=>{_.value!==e&&(_.value=e,c.value=null,p.value=null,await A(),B())},me=async()=>{c.value=null,p.value=null,await A(),B()},Fe=async e=>{var o;const t=Number(e.source_patient_id||0),n=Number(e.diagnosis_id||0);if(!t){g.msgWarning("患者信息不完整");return}if(!n){g.msgWarning("预约信息不完整,无法发起聊天");return}try{const s=await qt({patient_id:t,appointment_id:Number(e.id),diagnosis_id:n});(o=ce.value)==null||o.open({patientId:t,patientName:e.patient_name,diagnosisId:n,appointmentId:Number(e.id),appointmentType:e.appointment_type,signatureData:s})}catch(s){console.error("获取通话签名失败:",s),g.msgError((s==null?void 0:s.message)||"获取通话签名失败")}},Oe=async e=>{if(!L.value){L.value=e.id;try{await yt({id:e.id}),g.msgSuccess(`已通知医助 ${e.assistant_name||""}`),await $()}catch(t){g.msgError((t==null?void 0:t.message)||"通知失败")}finally{L.value=null}}},Ue=()=>{var e,t;(e=S.value)!=null&&e.patient_id&&((t=ve.value)==null||t.open("edit",S.value.patient_id))},Ge=async()=>{await $()},$=async()=>{const e=c.value;await A({silent:!0,autoSelect:!1}),e&&c.value===e&&await je(),B()},We=async()=>{var e;if((e=T.value)!=null&&e.id){try{await g.confirm("确认将该患者标记为「已完成接诊」?此操作不可撤销。")}catch{return}ee.value=!0;try{await Dt({id:T.value.id}),g.msgSuccess("已完成接诊"),c.value=null,p.value=null,await A({autoSelect:!0}),B()}catch(t){g.msgError((t==null?void 0:t.message)||"操作失败")}finally{ee.value=!1}}},Ke=async()=>{var n;const e=(n=S.value)==null?void 0:n.id;if(!e){g.msgWarning("当前患者无诊单,无法添加备注");return}const t=z.value.trim();if(!t){g.msgWarning("请输入备注内容");return}ne.value=!0;try{await St({diagnosis_id:e,content:t}),g.msgSuccess("备注保存成功"),z.value="",R.value=!1,await $()}catch(o){g.msgError((o==null?void 0:o.message)||"保存失败")}finally{ne.value=!1}},Qe=()=>{V.value=re/1e3},Ye=()=>{N&&clearInterval(N),Qe(),N=setInterval(()=>{P.value||(V.value>1?V.value-=1:V.value=1)},1e3)},ge=()=>{I&&clearTimeout(I),!P.value&&(Ye(),I=setTimeout(async()=>{await $()},re))},B=()=>{ge()},Ze=()=>{le(),ge()},le=()=>{I&&(clearTimeout(I),I=null),N&&(clearInterval(N),N=null)},_e=()=>{P.value=document.hidden,document.hidden?le():$()},he=e=>{var n;const t=String(((n=e==null?void 0:e.reason)==null?void 0:n.message)||(e==null?void 0:e.reason)||"");/Receiving end does not exist|Could not establish connection/i.test(t)&&e.preventDefault()},ye=()=>{!K.value||!ae.value||(w==null||w.disconnect(),w=new IntersectionObserver(e=>{for(const t of e)t.isIntersecting&&Be()},{root:ae.value,rootMargin:"80px",threshold:0}),w.observe(K.value))};return Je(K,()=>ye()),Xe(()=>{A(),Ze(),document.addEventListener("visibilitychange",_e),window.addEventListener("unhandledrejection",he),et(()=>ye())}),tt(()=>{le(),w==null||w.disconnect(),document.removeEventListener("visibilitychange",_e),window.removeEventListener("unhandledrejection",he)}),(e,t)=>{var ke,be,Ce,we,Ee;const n=nt,o=ot,s=rt,E=ft,f=mt,m=gt,oe=ht,Se=it,ie=at("perms");return r(),h("div",xt,[l("div",Rt,[l("div",Tt,[t[8]||(t[8]=l("h1",{class:"header-title"},"接诊台",-1)),l("div",$t,k(a(Ve)),1)]),l("div",Pt,[l("div",Vt,[l("span",{class:Q(["live-dot",{paused:a(P)}])},null,2),l("span",null,k(a(P)?"已暂停":`${a(V)}s 后刷新`),1)])])]),l("div",Lt,[d(o,{modelValue:a(b),"onUpdate:modelValue":t[0]||(t[0]=u=>ue(b)?b.value=u:null),placeholder:"请输入患者姓名",clearable:"",size:"default",class:"search-input",onKeyup:lt(me,["enter"]),onClear:me},{prefix:v(()=>[d(n,null,{default:v(()=>[d(a(st))]),_:1})]),_:1},8,["modelValue"]),l("div",Mt,[l("span",{class:Q(["filter-tab",{active:a(_)===1}]),onClick:t[1]||(t[1]=u=>pe(1))},"待接诊 "+k(a(Z))+" 人",3),t[9]||(t[9]=l("span",{class:"filter-sep"},"·",-1)),l("span",{class:Q(["filter-tab",{active:a(_)===4}]),onClick:t[2]||(t[2]=u=>pe(4))},"已过号 "+k(a(H))+" 人",3)])]),l("div",zt,[l("aside",At,[l("div",Bt,[l("div",jt,[l("span",Ft,k(a(_)===1?"待接诊":"已过号"),1),l("span",Ot,k(a(F))+" 人",1)]),j((r(),h("div",{ref_key:"queueScrollRef",ref:ae,class:"queue-list"},[(r(!0),h(qe,null,ut(a(y),u=>(r(),h("div",{key:u.id,class:Q(["queue-row",{active:a(c)===u.id,passed:u.status===4}]),onClick:De=>fe(u)},[l("div",Gt,[l("div",Wt,[D(k(u.patient_name||"未命名")+" ",1),l("span",Kt,k(Me(u)),1),u.status===4?(r(),C(s,{key:0,size:"small",type:"warning",class:"ml-1"},{default:v(()=>[...t[10]||(t[10]=[D("已过号",-1)])]),_:1})):q("",!0)]),l("div",Qt,k(ze(u.appointment_time))+" · 医助 "+k(u.assistant_name||"—"),1)]),l("div",{class:"row-actions",onClick:t[3]||(t[3]=dt(()=>{},["stop"]))},[d(E,{content:"通知医助(企业微信)",placement:"top"},{default:v(()=>[l("button",{class:"row-icon-btn notify",disabled:a(L)===u.id,onClick:De=>Oe(u)},[a(L)===u.id?(r(),C(n,{key:0,class:"is-loading"},{default:v(()=>[d(a(ct))]),_:1})):(r(),C(n,{key:1},{default:v(()=>[d(a(vt))]),_:1}))],8,Yt)]),_:2},1024),d(E,{content:"发起通话",placement:"top"},{default:v(()=>[l("button",{class:"row-icon-btn call",onClick:De=>Fe(u)},[d(n,null,{default:v(()=>[d(a(pt))]),_:1})],8,Zt)]),_:2},1024)])],10,Ut))),128)),a(y).length>0?(r(),h("div",{key:0,ref_key:"sentinelRef",ref:K,class:"scroll-sentinel"},[a(U)?(r(),h("span",Ht,"加载中…")):a(O)?q("",!0):(r(),h("span",Jt,"— 已全部加载 —"))],512)):q("",!0),!a(G)&&a(y).length===0?(r(),C(f,{key:1,description:"暂无待接诊患者","image-size":64})):q("",!0)])),[[Se,a(G)&&a(y).length===0]])])]),j((r(),h("section",Xt,[a(c)?a(p)?(r(),h(qe,{key:1},[d(Ct,{apt:a(T),diag:a(S)},null,8,["apt","diag"]),d(wt,{apt:a(T),diag:a(S)},null,8,["apt","diag"]),l("div",ta,[t[11]||(t[11]=l("div",{class:"card-title"},"医生备注 & 舌苔照片 & 检查报告",-1)),d(bt,{notes:a(Pe),"diagnosis-id":(ke=a(S))==null?void 0:ke.id,onRefresh:$},null,8,["notes","diagnosis-id"])]),l("div",aa,[t[12]||(t[12]=l("div",{class:"card-title"},"日常记录",-1)),d(Et,{"diagnosis-id":Number(((be=a(S))==null?void 0:be.id)??0),"patient-id":Number(((Ce=a(S))==null?void 0:Ce.patient_id)??0),age:((we=a(S))==null?void 0:we.age)??null,"patient-name":((Ee=a(S))==null?void 0:Ee.patient_name)||"","read-only":!0},null,8,["diagnosis-id","patient-id","age","patient-name"])])],64)):q("",!0):(r(),h("div",ea,[d(f,{description:"请从左侧选择一位待接诊患者"})]))])),[[Se,a(X)&&!a(p)]])]),d(_t,{name:"fade"},{default:v(()=>[a(c)&&a(p)?(r(),h("div",na,[j((r(),C(m,{class:"float-action note",size:"large",onClick:t[4]||(t[4]=u=>R.value=!0)},{default:v(()=>[...t[13]||(t[13]=[D(" 备注 ",-1)])]),_:1})),[[ie,["doctor.appointment/addDoctorNote"]]]),j((r(),C(m,{class:"float-action edit",size:"large",onClick:Ue},{default:v(()=>[...t[14]||(t[14]=[D(" 编辑病历 ",-1)])]),_:1})),[[ie,["tcm.diagnosis/edit"]]]),a(T).status===1||a(T).status===4?j((r(),C(m,{key:0,class:"float-action finish",size:"large",loading:a(ee),onClick:We},{default:v(()=>[...t[15]||(t[15]=[D(" 完成接诊 ",-1)])]),_:1},8,["loading"])),[[ie,["doctor.appointment/complete"]]]):q("",!0)])):q("",!0)]),_:1}),d(oe,{modelValue:a(R),"onUpdate:modelValue":t[7]||(t[7]=u=>ue(R)?R.value=u:null),title:"添加备注",width:"480px","append-to-body":""},{footer:v(()=>[d(m,{onClick:t[6]||(t[6]=u=>R.value=!1)},{default:v(()=>[...t[16]||(t[16]=[D("取消",-1)])]),_:1}),d(m,{type:"primary",loading:a(ne),onClick:Ke},{default:v(()=>[...t[17]||(t[17]=[D("保存",-1)])]),_:1},8,["loading"])]),default:v(()=>[d(o,{modelValue:a(z),"onUpdate:modelValue":t[5]||(t[5]=u=>ue(z)?z.value=u:null),type:"textarea",rows:4,placeholder:"输入今日备注...",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1},8,["modelValue"]),(r(),C(Ie(a(Te)),{ref_key:"chatDialogRef",ref:ce},null,512)),(r(),C(Ie(a($e)),{ref_key:"diagnosisEditRef",ref:ve,onSuccess:Ge},null,544))])}}}),Na=It(sa,[["__scopeId","data-v-e16a5bdb"]]);export{Na as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CDvJ_gqb.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/file-BjbV-eNx.js","assets/index-Bkarz3gO.js","assets/index-deCJ4ja-.css","assets/patient-B_ifBl-W.js","assets/tcm-BSADvQNg.js","assets/appointment-type-DJT6wPaT.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/dayjs-B2bPhvDy.js","assets/@tencentcloud/chat-Dqh0gV5b.js","assets/@tencentcloud/chat-uikit-engine-BOxL0feI.js","assets/tim-upload-plugin-CK05mjrC.js","assets/tim-profanity-filter-plugin-CIiDZ6v0.js","assets/@tencentcloud/call-engine-js-DCEY106C.js","assets/rtc-detect-TVc6uI0Q.js","assets/index-ma9pGSsz.css","assets/edit-BuMVMky1.js","assets/perm-CHCBwnFR.js","assets/DailyMatrix-BkYJBu_D.js","assets/picker-BTh9eW9u.js","assets/index-CS5Wg0xx.js","assets/index-B3imPWFk.css","assets/index-oRynN2pP.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-Cqk_cdo9.js","assets/index-D0f1Mn00.css","assets/index-BJZwRQXE.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-VonOdKxB.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-BQogJqk-.js","assets/FollowupAudioReview-BDRNtxGL.js","assets/FollowupAudioField-Dz9Csp0b.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-2_yvVfnZ.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-PGnYdg0x.js","assets/RecordingPlaybackBlock-DDHsYga7.js","assets/RecordingVideoPlayer-B0kkGDId.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CO99W60y.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-mqnmyStx.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-aR2VA9u1.js","assets/doctor-DBvYeWd3.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-D83GYvN5.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-Dk7f29yf.js","assets/PrescriptionOrderDetailDrawer-CX7YbddA.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-C_PSjf1W.js","assets/index-DAIDDabA.js","assets/medicine-DPIOyHj8.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CTRSsggc.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]); +import{o as He,R as Je,ap as Xe,n as et,aq as tt,bp as at,q as r,r as h,s as l,T as k,u as a,ae as Q,v as d,D as v,w as nt,bB as st,bc as lt,C as ue,aA as ot,ac as j,bn as it,F as qe,G as ut,L as D,O as C,bm as rt,P as q,aw as dt,ba as ct,as as vt,a1 as ft,dc as pt,bC as mt,K as gt,ab as _t,aB as ht,a4 as Ie,cd as Ne,al as xe,M as i,p as Y}from"./.pnpm-CyuAWpdG.js";import{r as Re,n as yt,a as St,b as kt}from"./patient-B_ifBl-W.js";import bt from"./NoteTimeline-D83GYvN5.js";import Ct from"./PatientInfoCard-Bzk8NUOz.js";import wt from"./PatientCaseCard-NvDeQCIb.js";import Et from"./DailyMatrix-BkYJBu_D.js";import{l as Dt}from"./doctor-DBvYeWd3.js";import{Z as qt}from"./tcm-BSADvQNg.js";import{j as g,_ as It}from"./index-Bkarz3gO.js";import{f as Nt}from"./diag-display-DCz_VAqj.js";import"./picker-BTh9eW9u.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";import"./perm-CHCBwnFR.js";import"./blood-thresholds-QpDuElbH.js";import"./diabetes-discovery-display-B_wmGXQJ.js";import"./DiagnosisTodoList-VonOdKxB.js";const xt={class:"reception-page"},Rt={class:"reception-header"},Tt={class:"header-left"},$t={class:"header-meta"},Pt={class:"header-right"},Vt={class:"live-pill"},Lt={class:"filter-shell"},Mt={class:"filter-tabs"},zt={class:"main-area"},At={class:"queue-col"},Bt={class:"queue-panel"},jt={class:"queue-head"},Ft={class:"queue-title"},Ot={class:"queue-meta"},Ut=["onClick"],Gt={class:"row-name"},Wt={class:"name-line"},Kt={class:"name-meta"},Qt={class:"time-line"},Yt=["disabled","onClick"],Zt=["onClick"],Ht={key:0},Jt={key:1,class:"no-more"},Xt={class:"sidebar"},ea={key:0,class:"placeholder-card"},ta={class:"card note-card"},aa={class:"card metric-card"},na={key:0,class:"float-bar"},re=5e3,de=15,sa=He({__name:"index",setup(la){const Te=Ne(()=>xe(()=>import("./index-CDvJ_gqb.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]))),$e=Ne(()=>xe(()=>import("./edit-BuMVMky1.js"),__vite__mapDeps([18,1,2,7,4,5,19,20,21,22,23,24,25,26,27,28,3,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,10,9,52,53,54,55,56,57,58,6,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74]))),_=i(1),y=i([]),F=i(0),Z=i(0),H=i(0),J=i(1),O=i(!0),U=i(!1),G=i(!1),X=i(!1),c=i(null),p=i(null),ee=i(!1),b=i(""),P=i(!1),V=i(re/1e3),L=i(null);let I=null,N=null,te=!1,M=!1,w=null,W=0,x=0;const ae=i(null),K=i(null),ce=i(),ve=i(),R=i(!1),z=i(""),ne=i(!1),T=Y(()=>{var e;return((e=p.value)==null?void 0:e.appointment)||{}}),S=Y(()=>{var e;return((e=p.value)==null?void 0:e.diagnosis)||{}}),Pe=Y(()=>{var e;return((e=p.value)==null?void 0:e.doctor_notes)||[]}),Ve=Y(()=>{const e=new Date,t=["周日","周一","周二","周三","周四","周五","周六"][e.getDay()],n=o=>String(o).padStart(2,"0");return`${e.getFullYear()}-${n(e.getMonth()+1)}-${n(e.getDate())} ${t}`}),Le=()=>{const e=new Date,t=n=>String(n).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`},Me=e=>[Nt(e.gender),e.age!=null?e.age+"岁":""].filter(n=>n&&n!=="—").join(" "),ze=e=>e?e.replace(/^(\d{2}:\d{2})(:\d{2})?$/,"$1"):"—",se=async(e,t,n)=>{const o=Le(),s=await kt({status:t??_.value,start_date:o,end_date:o,patient_name:(n??b.value)||void 0,page_no:e,page_size:de}),E=(s==null?void 0:s.lists)||(s==null?void 0:s.data)||[],f=Number((s==null?void 0:s.count)??(s==null?void 0:s.total)??0);return{list:E,count:f}},Ae=async(e,t,n)=>{const o=e===1?4:1;try{const{count:s}=await se(1,o,t||void 0);if(n!==W||_.value!==e||b.value!==t)return;o===1?Z.value=s:H.value=s}catch{}},A=async e=>{const t=(e==null?void 0:e.silent)===!0;if(t&&te)return;const n=++W,o=_.value,s=b.value,E=(e==null?void 0:e.autoSelect)??!t;te=!0,t||(G.value=!0);try{J.value=1;const{list:f,count:m}=await se(1,o,s||void 0);if(n!==W||_.value!==o||b.value!==s)return;y.value=f,F.value=m||f.length,o===1?Z.value=m:H.value=m,O.value=f.length>=de&&y.value.length<(m||0),Ae(o,s,n),c.value&&!f.some(oe=>oe.id===c.value)&&(c.value=null,p.value=null),!c.value&&E&&f.length>0&&await fe(f[0])}catch(f){t||console.error("加载队列失败:",f)}finally{n===W&&(G.value=!1,te=!1)}},Be=async()=>{if(U.value||!O.value)return;const e=_.value,t=b.value;U.value=!0;try{const n=J.value+1,{list:o,count:s}=await se(n,e,t||void 0);if(_.value!==e||b.value!==t)return;const E=new Set(y.value.map(m=>m.id)),f=o.filter(m=>!E.has(m.id));y.value=[...y.value,...f],J.value=n,F.value=s||F.value,O.value=o.length>=de&&y.value.length<(s||0)}catch(n){console.error("加载更多失败:",n)}finally{U.value=!1}},je=async()=>{if(!c.value||M)return;const e=c.value,t=++x;M=!0;try{const n=await Re({id:e});if(t!==x||c.value!==e)return;p.value=n||p.value}catch{}finally{t===x&&(M=!1)}},fe=async e=>{if(c.value===e.id)return;const t=e.id,n=++x;c.value=e.id,p.value=null,X.value=!0,M=!0,B();try{const o=await Re({id:t});if(n!==x||c.value!==t)return;p.value=o||null}catch(o){console.error("加载详情失败:",o),g.msgError("加载患者详情失败")}finally{n===x&&(X.value=!1,M=!1)}},pe=async e=>{_.value!==e&&(_.value=e,c.value=null,p.value=null,await A(),B())},me=async()=>{c.value=null,p.value=null,await A(),B()},Fe=async e=>{var o;const t=Number(e.source_patient_id||0),n=Number(e.diagnosis_id||0);if(!t){g.msgWarning("患者信息不完整");return}if(!n){g.msgWarning("预约信息不完整,无法发起聊天");return}try{const s=await qt({patient_id:t,appointment_id:Number(e.id),diagnosis_id:n});(o=ce.value)==null||o.open({patientId:t,patientName:e.patient_name,diagnosisId:n,appointmentId:Number(e.id),appointmentType:e.appointment_type,signatureData:s})}catch(s){console.error("获取通话签名失败:",s),g.msgError((s==null?void 0:s.message)||"获取通话签名失败")}},Oe=async e=>{if(!L.value){L.value=e.id;try{await yt({id:e.id}),g.msgSuccess(`已通知医助 ${e.assistant_name||""}`),await $()}catch(t){g.msgError((t==null?void 0:t.message)||"通知失败")}finally{L.value=null}}},Ue=()=>{var e,t;(e=S.value)!=null&&e.patient_id&&((t=ve.value)==null||t.open("edit",S.value.patient_id))},Ge=async()=>{await $()},$=async()=>{const e=c.value;await A({silent:!0,autoSelect:!1}),e&&c.value===e&&await je(),B()},We=async()=>{var e;if((e=T.value)!=null&&e.id){try{await g.confirm("确认将该患者标记为「已完成接诊」?此操作不可撤销。")}catch{return}ee.value=!0;try{await Dt({id:T.value.id}),g.msgSuccess("已完成接诊"),c.value=null,p.value=null,await A({autoSelect:!0}),B()}catch(t){g.msgError((t==null?void 0:t.message)||"操作失败")}finally{ee.value=!1}}},Ke=async()=>{var n;const e=(n=S.value)==null?void 0:n.id;if(!e){g.msgWarning("当前患者无诊单,无法添加备注");return}const t=z.value.trim();if(!t){g.msgWarning("请输入备注内容");return}ne.value=!0;try{await St({diagnosis_id:e,content:t}),g.msgSuccess("备注保存成功"),z.value="",R.value=!1,await $()}catch(o){g.msgError((o==null?void 0:o.message)||"保存失败")}finally{ne.value=!1}},Qe=()=>{V.value=re/1e3},Ye=()=>{N&&clearInterval(N),Qe(),N=setInterval(()=>{P.value||(V.value>1?V.value-=1:V.value=1)},1e3)},ge=()=>{I&&clearTimeout(I),!P.value&&(Ye(),I=setTimeout(async()=>{await $()},re))},B=()=>{ge()},Ze=()=>{le(),ge()},le=()=>{I&&(clearTimeout(I),I=null),N&&(clearInterval(N),N=null)},_e=()=>{P.value=document.hidden,document.hidden?le():$()},he=e=>{var n;const t=String(((n=e==null?void 0:e.reason)==null?void 0:n.message)||(e==null?void 0:e.reason)||"");/Receiving end does not exist|Could not establish connection/i.test(t)&&e.preventDefault()},ye=()=>{!K.value||!ae.value||(w==null||w.disconnect(),w=new IntersectionObserver(e=>{for(const t of e)t.isIntersecting&&Be()},{root:ae.value,rootMargin:"80px",threshold:0}),w.observe(K.value))};return Je(K,()=>ye()),Xe(()=>{A(),Ze(),document.addEventListener("visibilitychange",_e),window.addEventListener("unhandledrejection",he),et(()=>ye())}),tt(()=>{le(),w==null||w.disconnect(),document.removeEventListener("visibilitychange",_e),window.removeEventListener("unhandledrejection",he)}),(e,t)=>{var ke,be,Ce,we,Ee;const n=nt,o=ot,s=rt,E=ft,f=mt,m=gt,oe=ht,Se=it,ie=at("perms");return r(),h("div",xt,[l("div",Rt,[l("div",Tt,[t[8]||(t[8]=l("h1",{class:"header-title"},"接诊台",-1)),l("div",$t,k(a(Ve)),1)]),l("div",Pt,[l("div",Vt,[l("span",{class:Q(["live-dot",{paused:a(P)}])},null,2),l("span",null,k(a(P)?"已暂停":`${a(V)}s 后刷新`),1)])])]),l("div",Lt,[d(o,{modelValue:a(b),"onUpdate:modelValue":t[0]||(t[0]=u=>ue(b)?b.value=u:null),placeholder:"请输入患者姓名",clearable:"",size:"default",class:"search-input",onKeyup:lt(me,["enter"]),onClear:me},{prefix:v(()=>[d(n,null,{default:v(()=>[d(a(st))]),_:1})]),_:1},8,["modelValue"]),l("div",Mt,[l("span",{class:Q(["filter-tab",{active:a(_)===1}]),onClick:t[1]||(t[1]=u=>pe(1))},"待接诊 "+k(a(Z))+" 人",3),t[9]||(t[9]=l("span",{class:"filter-sep"},"·",-1)),l("span",{class:Q(["filter-tab",{active:a(_)===4}]),onClick:t[2]||(t[2]=u=>pe(4))},"已过号 "+k(a(H))+" 人",3)])]),l("div",zt,[l("aside",At,[l("div",Bt,[l("div",jt,[l("span",Ft,k(a(_)===1?"待接诊":"已过号"),1),l("span",Ot,k(a(F))+" 人",1)]),j((r(),h("div",{ref_key:"queueScrollRef",ref:ae,class:"queue-list"},[(r(!0),h(qe,null,ut(a(y),u=>(r(),h("div",{key:u.id,class:Q(["queue-row",{active:a(c)===u.id,passed:u.status===4}]),onClick:De=>fe(u)},[l("div",Gt,[l("div",Wt,[D(k(u.patient_name||"未命名")+" ",1),l("span",Kt,k(Me(u)),1),u.status===4?(r(),C(s,{key:0,size:"small",type:"warning",class:"ml-1"},{default:v(()=>[...t[10]||(t[10]=[D("已过号",-1)])]),_:1})):q("",!0)]),l("div",Qt,k(ze(u.appointment_time))+" · 医助 "+k(u.assistant_name||"—"),1)]),l("div",{class:"row-actions",onClick:t[3]||(t[3]=dt(()=>{},["stop"]))},[d(E,{content:"通知医助(企业微信)",placement:"top"},{default:v(()=>[l("button",{class:"row-icon-btn notify",disabled:a(L)===u.id,onClick:De=>Oe(u)},[a(L)===u.id?(r(),C(n,{key:0,class:"is-loading"},{default:v(()=>[d(a(ct))]),_:1})):(r(),C(n,{key:1},{default:v(()=>[d(a(vt))]),_:1}))],8,Yt)]),_:2},1024),d(E,{content:"发起通话",placement:"top"},{default:v(()=>[l("button",{class:"row-icon-btn call",onClick:De=>Fe(u)},[d(n,null,{default:v(()=>[d(a(pt))]),_:1})],8,Zt)]),_:2},1024)])],10,Ut))),128)),a(y).length>0?(r(),h("div",{key:0,ref_key:"sentinelRef",ref:K,class:"scroll-sentinel"},[a(U)?(r(),h("span",Ht,"加载中…")):a(O)?q("",!0):(r(),h("span",Jt,"— 已全部加载 —"))],512)):q("",!0),!a(G)&&a(y).length===0?(r(),C(f,{key:1,description:"暂无待接诊患者","image-size":64})):q("",!0)])),[[Se,a(G)&&a(y).length===0]])])]),j((r(),h("section",Xt,[a(c)?a(p)?(r(),h(qe,{key:1},[d(Ct,{apt:a(T),diag:a(S)},null,8,["apt","diag"]),d(wt,{apt:a(T),diag:a(S)},null,8,["apt","diag"]),l("div",ta,[t[11]||(t[11]=l("div",{class:"card-title"},"医生备注 & 舌苔照片 & 检查报告",-1)),d(bt,{notes:a(Pe),"diagnosis-id":(ke=a(S))==null?void 0:ke.id,onRefresh:$},null,8,["notes","diagnosis-id"])]),l("div",aa,[t[12]||(t[12]=l("div",{class:"card-title"},"日常记录",-1)),d(Et,{"diagnosis-id":Number(((be=a(S))==null?void 0:be.id)??0),"patient-id":Number(((Ce=a(S))==null?void 0:Ce.patient_id)??0),age:((we=a(S))==null?void 0:we.age)??null,"patient-name":((Ee=a(S))==null?void 0:Ee.patient_name)||"","read-only":!0},null,8,["diagnosis-id","patient-id","age","patient-name"])])],64)):q("",!0):(r(),h("div",ea,[d(f,{description:"请从左侧选择一位待接诊患者"})]))])),[[Se,a(X)&&!a(p)]])]),d(_t,{name:"fade"},{default:v(()=>[a(c)&&a(p)?(r(),h("div",na,[j((r(),C(m,{class:"float-action note",size:"large",onClick:t[4]||(t[4]=u=>R.value=!0)},{default:v(()=>[...t[13]||(t[13]=[D(" 备注 ",-1)])]),_:1})),[[ie,["doctor.appointment/addDoctorNote"]]]),j((r(),C(m,{class:"float-action edit",size:"large",onClick:Ue},{default:v(()=>[...t[14]||(t[14]=[D(" 编辑病历 ",-1)])]),_:1})),[[ie,["tcm.diagnosis/edit"]]]),a(T).status===1||a(T).status===4?j((r(),C(m,{key:0,class:"float-action finish",size:"large",loading:a(ee),onClick:We},{default:v(()=>[...t[15]||(t[15]=[D(" 完成接诊 ",-1)])]),_:1},8,["loading"])),[[ie,["doctor.appointment/complete"]]]):q("",!0)])):q("",!0)]),_:1}),d(oe,{modelValue:a(R),"onUpdate:modelValue":t[7]||(t[7]=u=>ue(R)?R.value=u:null),title:"添加备注",width:"480px","append-to-body":""},{footer:v(()=>[d(m,{onClick:t[6]||(t[6]=u=>R.value=!1)},{default:v(()=>[...t[16]||(t[16]=[D("取消",-1)])]),_:1}),d(m,{type:"primary",loading:a(ne),onClick:Ke},{default:v(()=>[...t[17]||(t[17]=[D("保存",-1)])]),_:1},8,["loading"])]),default:v(()=>[d(o,{modelValue:a(z),"onUpdate:modelValue":t[5]||(t[5]=u=>ue(z)?z.value=u:null),type:"textarea",rows:4,placeholder:"输入今日备注...",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1},8,["modelValue"]),(r(),C(Ie(a(Te)),{ref_key:"chatDialogRef",ref:ce},null,512)),(r(),C(Ie(a($e)),{ref_key:"diagnosisEditRef",ref:ve,onSuccess:Ge},null,544))])}}}),Na=It(sa,[["__scopeId","data-v-e16a5bdb"]]);export{Na as default}; diff --git a/server/public/admin/assets/index-Dzey7TmE.js b/server/public/admin/assets/index-BWh1Fcx3.js similarity index 96% rename from server/public/admin/assets/index-Dzey7TmE.js rename to server/public/admin/assets/index-BWh1Fcx3.js index 817704122..6ab4f7ddd 100644 --- a/server/public/admin/assets/index-Dzey7TmE.js +++ b/server/public/admin/assets/index-BWh1Fcx3.js @@ -1 +1 @@ -import{_ as A}from"./index-9qT8_5W1.js";import{o as F,bp as I,q as e,r as l,s as n,ac as L,O as u,D as a,L as s,K as j,F as C,G,P as p,bk as K,v as m,bl as M,aa as O,u as f,bq as R,bm as $,I as z,T as J,bj as Q,M as P,l as V}from"./.pnpm-CyuAWpdG.js";import{b as X,c as Y}from"./pay-Ia2pwkX0.js";import"./index-Dxvz9lb1.js";const Z={key:0,class:"text-lg mb-[24px]"},tt={key:1,class:"text-lg mb-[24px]"},et={key:2,class:"text-lg mb-[24px]"},at={key:3,class:"text-lg mb-[24px]"},lt={key:4,class:"text-lg mb-[24px]"},st={key:1},ot={key:1},mt=F({__name:"index",setup(nt){const i=P({}),r=P(!1);let v={};const b=async()=>{i.value=await X(),v=V.cloneDeep(i.value)},w=()=>{r.value=!0},E=(x,t)=>{i.value[t].forEach(_=>{_.is_default=0}),i.value[t][x].is_default=1},h=()=>{i.value=V.cloneDeep(v),r.value=!1},D=async()=>{await Y(i.value),r.value=!1,b()};return b(),(x,t)=>{const _=j,W=O,y=M,B=R,T=$,N=z,S=K,U=Q,H=A,q=I("perms");return e(),l("div",null,[n("div",null,[L((e(),u(_,{type:"primary",onClick:w},{default:a(()=>[...t[0]||(t[0]=[s(" 设置支付方式 ",-1)])]),_:1})),[[q,["setting.pay.pay_way/setPayWay"]]])]),(e(!0),l(C,null,G(f(i),(g,d)=>(e(),u(U,{shadow:"never",class:"mt-4 !border-none",key:d},{default:a(()=>[n("div",null,[d==1?(e(),l("div",Z,[...t[1]||(t[1]=[s(" 微信小程序 ",-1),n("span",{class:"form-tips ml-[10px]"},"在微信小程序中付款的场景",-1)])])):p("",!0),d==2?(e(),l("div",tt,[...t[2]||(t[2]=[s(" 微信公众号 ",-1),n("span",{class:"form-tips ml-[10px]"}," 在微信公众号H5页面中付款的场景,公众号类型一般为服务号 ",-1)])])):p("",!0),d==3?(e(),l("div",et,[...t[3]||(t[3]=[s(" H5支付 ",-1),n("span",{class:"form-tips ml-[10px]"},"在浏览器H5页面中付款的场景",-1)])])):p("",!0),d==4?(e(),l("div",at,[...t[4]||(t[4]=[s(" PC支付 ",-1),n("span",{class:"form-tips ml-[10px]"},"在浏览器PC页面中付款的场景",-1)])])):p("",!0),d==5?(e(),l("div",lt,[...t[5]||(t[5]=[s(" APP支付 ",-1),n("span",{class:"form-tips ml-[10px]"},"在APP付款的场景",-1)])])):p("",!0),g.length?(e(),u(S,{key:5,data:g,style:{width:"100%"}},{default:a(()=>[m(y,{label:"图标","min-width":"150"},{default:a(({row:o})=>[m(W,{src:o.icon,alt:"图标",style:{width:"34px",height:"34px"}},null,8,["src"])]),_:1}),m(y,{prop:"pay_way_name",label:"支付方式","min-width":"150"}),m(y,{label:"默认支付","min-width":"150"},{default:a(({row:o,$index:c})=>[n("div",null,[f(r)?(e(),u(B,{key:0,modelValue:o.is_default,"onUpdate:modelValue":k=>o.is_default=k,label:1,onChange:k=>E(c,d)},{default:a(()=>[...t[6]||(t[6]=[s(" 设为默认 ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onChange"])):(e(),l(C,{key:1},[o.is_default==1?(e(),u(T,{key:0},{default:a(()=>[...t[7]||(t[7]=[s("默认",-1)])]),_:1})):(e(),l("span",st,"-"))],64))])]),_:2},1024),m(y,{label:"开启状态","min-width":"150"},{default:a(({row:o})=>[f(r)?(e(),u(N,{key:0,modelValue:o.status,"onUpdate:modelValue":c=>o.status=c,"active-value":1,"inactive-value":0},null,8,["modelValue","onUpdate:modelValue"])):(e(),l("span",ot,J(o.status==1?"开启":"关闭"),1))]),_:1})]),_:2},1032,["data"])):p("",!0)])]),_:2},1024))),128)),f(r)?(e(),u(H,{key:0},{default:a(()=>[m(_,{onClick:h},{default:a(()=>[...t[8]||(t[8]=[s("取消",-1)])]),_:1}),m(_,{type:"primary",onClick:D},{default:a(()=>[...t[9]||(t[9]=[s("保存",-1)])]),_:1})]),_:1})):p("",!0)])}}});export{mt as default}; +import{_ as A}from"./index-DIl3M8Wa.js";import{o as F,bp as I,q as e,r as l,s as n,ac as L,O as u,D as a,L as s,K as j,F as C,G,P as p,bk as K,v as m,bl as M,aa as O,u as f,bq as R,bm as $,I as z,T as J,bj as Q,M as P,l as V}from"./.pnpm-CyuAWpdG.js";import{b as X,c as Y}from"./pay-BmHqMA5y.js";import"./index-Bkarz3gO.js";const Z={key:0,class:"text-lg mb-[24px]"},tt={key:1,class:"text-lg mb-[24px]"},et={key:2,class:"text-lg mb-[24px]"},at={key:3,class:"text-lg mb-[24px]"},lt={key:4,class:"text-lg mb-[24px]"},st={key:1},ot={key:1},mt=F({__name:"index",setup(nt){const i=P({}),r=P(!1);let v={};const b=async()=>{i.value=await X(),v=V.cloneDeep(i.value)},w=()=>{r.value=!0},E=(x,t)=>{i.value[t].forEach(_=>{_.is_default=0}),i.value[t][x].is_default=1},h=()=>{i.value=V.cloneDeep(v),r.value=!1},D=async()=>{await Y(i.value),r.value=!1,b()};return b(),(x,t)=>{const _=j,W=O,y=M,B=R,T=$,N=z,S=K,U=Q,H=A,q=I("perms");return e(),l("div",null,[n("div",null,[L((e(),u(_,{type:"primary",onClick:w},{default:a(()=>[...t[0]||(t[0]=[s(" 设置支付方式 ",-1)])]),_:1})),[[q,["setting.pay.pay_way/setPayWay"]]])]),(e(!0),l(C,null,G(f(i),(g,d)=>(e(),u(U,{shadow:"never",class:"mt-4 !border-none",key:d},{default:a(()=>[n("div",null,[d==1?(e(),l("div",Z,[...t[1]||(t[1]=[s(" 微信小程序 ",-1),n("span",{class:"form-tips ml-[10px]"},"在微信小程序中付款的场景",-1)])])):p("",!0),d==2?(e(),l("div",tt,[...t[2]||(t[2]=[s(" 微信公众号 ",-1),n("span",{class:"form-tips ml-[10px]"}," 在微信公众号H5页面中付款的场景,公众号类型一般为服务号 ",-1)])])):p("",!0),d==3?(e(),l("div",et,[...t[3]||(t[3]=[s(" H5支付 ",-1),n("span",{class:"form-tips ml-[10px]"},"在浏览器H5页面中付款的场景",-1)])])):p("",!0),d==4?(e(),l("div",at,[...t[4]||(t[4]=[s(" PC支付 ",-1),n("span",{class:"form-tips ml-[10px]"},"在浏览器PC页面中付款的场景",-1)])])):p("",!0),d==5?(e(),l("div",lt,[...t[5]||(t[5]=[s(" APP支付 ",-1),n("span",{class:"form-tips ml-[10px]"},"在APP付款的场景",-1)])])):p("",!0),g.length?(e(),u(S,{key:5,data:g,style:{width:"100%"}},{default:a(()=>[m(y,{label:"图标","min-width":"150"},{default:a(({row:o})=>[m(W,{src:o.icon,alt:"图标",style:{width:"34px",height:"34px"}},null,8,["src"])]),_:1}),m(y,{prop:"pay_way_name",label:"支付方式","min-width":"150"}),m(y,{label:"默认支付","min-width":"150"},{default:a(({row:o,$index:c})=>[n("div",null,[f(r)?(e(),u(B,{key:0,modelValue:o.is_default,"onUpdate:modelValue":k=>o.is_default=k,label:1,onChange:k=>E(c,d)},{default:a(()=>[...t[6]||(t[6]=[s(" 设为默认 ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","onChange"])):(e(),l(C,{key:1},[o.is_default==1?(e(),u(T,{key:0},{default:a(()=>[...t[7]||(t[7]=[s("默认",-1)])]),_:1})):(e(),l("span",st,"-"))],64))])]),_:2},1024),m(y,{label:"开启状态","min-width":"150"},{default:a(({row:o})=>[f(r)?(e(),u(N,{key:0,modelValue:o.status,"onUpdate:modelValue":c=>o.status=c,"active-value":1,"inactive-value":0},null,8,["modelValue","onUpdate:modelValue"])):(e(),l("span",ot,J(o.status==1?"开启":"关闭"),1))]),_:1})]),_:2},1032,["data"])):p("",!0)])]),_:2},1024))),128)),f(r)?(e(),u(H,{key:0},{default:a(()=>[m(_,{onClick:h},{default:a(()=>[...t[8]||(t[8]=[s("取消",-1)])]),_:1}),m(_,{type:"primary",onClick:D},{default:a(()=>[...t[9]||(t[9]=[s("保存",-1)])]),_:1})]),_:1})):p("",!0)])}}});export{mt as default}; diff --git a/server/public/admin/assets/index-kIO3DJkN.js b/server/public/admin/assets/index-B_lQE_1q.js similarity index 93% rename from server/public/admin/assets/index-kIO3DJkN.js rename to server/public/admin/assets/index-B_lQE_1q.js index ff03309ce..d3abf1fd4 100644 --- a/server/public/admin/assets/index-kIO3DJkN.js +++ b/server/public/admin/assets/index-B_lQE_1q.js @@ -1 +1 @@ -import{_ as B}from"./index-9qT8_5W1.js";import{o as f,bp as k,q as p,r as y,v as o,D as t,bd as D,u as n,bb as R,s as l,bf as q,bq as N,L as r,aA as j,bj as F,ac as I,O,K as U,aC as h}from"./.pnpm-CyuAWpdG.js";import{r as c}from"./index-Dxvz9lb1.js";function A(){return c.get({url:"/recharge.recharge/getConfig"})}function G(u){return c.post({url:"/recharge.recharge/setConfig",params:u})}const K=f({name:"rechargeConfig"}),z=f({...K,setup(u){const a=h({status:1,min_amount:""}),i=async()=>{const m=await A();Object.assign(a,m)},g=async()=>{await G(a),i()};return i(),(m,e)=>{const d=N,b=q,_=R,v=j,C=D,V=F,E=U,x=B,w=k("perms");return p(),y("div",null,[o(V,{shadow:"never",class:"!border-none"},{header:t(()=>[...e[2]||(e[2]=[l("span",{class:"font-extrabold text-lg"},"充值设置",-1)])]),default:t(()=>[o(C,{model:n(a),"label-width":"120px"},{default:t(()=>[o(_,{label:"状态"},{default:t(()=>[l("div",null,[o(b,{modelValue:n(a).status,"onUpdate:modelValue":e[0]||(e[0]=s=>n(a).status=s),class:"ml-4"},{default:t(()=>[o(d,{value:1},{default:t(()=>[...e[3]||(e[3]=[r("开启",-1)])]),_:1}),o(d,{value:0},{default:t(()=>[...e[4]||(e[4]=[r("关闭",-1)])]),_:1})]),_:1},8,["modelValue"]),e[5]||(e[5]=l("div",{class:"form-tips"},"关闭或开启充值功能,关闭后将不显示充值入口",-1))])]),_:1}),o(_,{label:"最低充值金额"},{default:t(()=>[l("div",null,[o(v,{modelValue:n(a).min_amount,"onUpdate:modelValue":e[1]||(e[1]=s=>n(a).min_amount=s),placeholder:"请输入最低充值金额",clearable:""},null,8,["modelValue"]),e[6]||(e[6]=l("div",{class:"form-tips"}," 最低充值金额要求,不填或填0表示不限制最低充值金额 ",-1))])]),_:1})]),_:1},8,["model"])]),_:1}),I((p(),O(x,null,{default:t(()=>[o(E,{type:"primary",onClick:g},{default:t(()=>[...e[7]||(e[7]=[r("保存",-1)])]),_:1})]),_:1})),[[w,["recharge.recharge/setConfig"]]])])}}});export{z as default}; +import{_ as B}from"./index-DIl3M8Wa.js";import{o as f,bp as k,q as p,r as y,v as o,D as t,bd as D,u as n,bb as R,s as l,bf as q,bq as N,L as r,aA as j,bj as F,ac as I,O,K as U,aC as h}from"./.pnpm-CyuAWpdG.js";import{r as c}from"./index-Bkarz3gO.js";function A(){return c.get({url:"/recharge.recharge/getConfig"})}function G(u){return c.post({url:"/recharge.recharge/setConfig",params:u})}const K=f({name:"rechargeConfig"}),z=f({...K,setup(u){const a=h({status:1,min_amount:""}),i=async()=>{const m=await A();Object.assign(a,m)},g=async()=>{await G(a),i()};return i(),(m,e)=>{const d=N,b=q,_=R,v=j,C=D,V=F,E=U,x=B,w=k("perms");return p(),y("div",null,[o(V,{shadow:"never",class:"!border-none"},{header:t(()=>[...e[2]||(e[2]=[l("span",{class:"font-extrabold text-lg"},"充值设置",-1)])]),default:t(()=>[o(C,{model:n(a),"label-width":"120px"},{default:t(()=>[o(_,{label:"状态"},{default:t(()=>[l("div",null,[o(b,{modelValue:n(a).status,"onUpdate:modelValue":e[0]||(e[0]=s=>n(a).status=s),class:"ml-4"},{default:t(()=>[o(d,{value:1},{default:t(()=>[...e[3]||(e[3]=[r("开启",-1)])]),_:1}),o(d,{value:0},{default:t(()=>[...e[4]||(e[4]=[r("关闭",-1)])]),_:1})]),_:1},8,["modelValue"]),e[5]||(e[5]=l("div",{class:"form-tips"},"关闭或开启充值功能,关闭后将不显示充值入口",-1))])]),_:1}),o(_,{label:"最低充值金额"},{default:t(()=>[l("div",null,[o(v,{modelValue:n(a).min_amount,"onUpdate:modelValue":e[1]||(e[1]=s=>n(a).min_amount=s),placeholder:"请输入最低充值金额",clearable:""},null,8,["modelValue"]),e[6]||(e[6]=l("div",{class:"form-tips"}," 最低充值金额要求,不填或填0表示不限制最低充值金额 ",-1))])]),_:1})]),_:1},8,["model"])]),_:1}),I((p(),O(x,null,{default:t(()=>[o(E,{type:"primary",onClick:g},{default:t(()=>[...e[7]||(e[7]=[r("保存",-1)])]),_:1})]),_:1})),[[w,["recharge.recharge/setConfig"]]])])}}});export{z as default}; diff --git a/server/public/admin/assets/index-CeF71KwZ.js b/server/public/admin/assets/index-BeP7QZS-.js similarity index 86% rename from server/public/admin/assets/index-CeF71KwZ.js rename to server/public/admin/assets/index-BeP7QZS-.js index a5df958d1..a40d5b4a6 100644 --- a/server/public/admin/assets/index-CeF71KwZ.js +++ b/server/public/admin/assets/index-BeP7QZS-.js @@ -1 +1 @@ -import{o as u,bp as C,q as s,r as h,ac as f,bn as E,u as p,O as n,D as t,v as o,bk as x,bl as L,bm as B,L as d,K as T,bj as D,a8 as R,aC as N}from"./.pnpm-CyuAWpdG.js";import{d as S}from"./message-7QdBbth1.js";import{_ as V}from"./edit.vue_vue_type_script_setup_true_lang-DMpcHZPx.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";const $=u({name:"shortLetter"}),G=u({...$,setup(j){const c=R(),a=N({loading:!1,lists:[]}),_=async()=>{try{a.loading=!0,a.lists=await S(),a.loading=!1}catch{a.loading=!1}},b=l=>{var e;(e=c.value)==null||e.open(l)};return _(),(l,e)=>{const i=L,m=B,g=T,v=x,k=D,y=C("perms"),w=E;return s(),h("div",null,[f((s(),n(k,{class:"!border-none",shadow:"never"},{default:t(()=>[o(v,{size:"large",data:p(a).lists},{default:t(()=>[o(i,{label:"短信渠道",prop:"name","min-width":"120"}),o(i,{label:"状态","min-width":"120"},{default:t(({row:r})=>[r.status==1?(s(),n(m,{key:0},{default:t(()=>[...e[0]||(e[0]=[d("开启",-1)])]),_:1})):(s(),n(m,{key:1,type:"danger"},{default:t(()=>[...e[1]||(e[1]=[d("关闭",-1)])]),_:1}))]),_:1}),o(i,{label:"操作","min-width":"120",fixed:"right"},{default:t(({row:r})=>[f((s(),n(g,{type:"primary",link:"",onClick:q=>b(r.type)},{default:t(()=>[...e[2]||(e[2]=[d(" 设置 ",-1)])]),_:1},8,["onClick"])),[[y,["notice.sms_config/setConfig"]]])]),_:1})]),_:1},8,["data"])]),_:1})),[[w,p(a).loading]]),o(V,{ref_key:"editRef",ref:c,onSuccess:_},null,512)])}}});export{G as default}; +import{o as u,bp as C,q as s,r as h,ac as f,bn as E,u as p,O as n,D as t,v as o,bk as x,bl as L,bm as B,L as d,K as T,bj as D,a8 as R,aC as N}from"./.pnpm-CyuAWpdG.js";import{d as S}from"./message-CaYd28kO.js";import{_ as V}from"./edit.vue_vue_type_script_setup_true_lang-DQvX-3X6.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";const $=u({name:"shortLetter"}),G=u({...$,setup(j){const c=R(),a=N({loading:!1,lists:[]}),_=async()=>{try{a.loading=!0,a.lists=await S(),a.loading=!1}catch{a.loading=!1}},b=l=>{var e;(e=c.value)==null||e.open(l)};return _(),(l,e)=>{const i=L,m=B,g=T,v=x,k=D,y=C("perms"),w=E;return s(),h("div",null,[f((s(),n(k,{class:"!border-none",shadow:"never"},{default:t(()=>[o(v,{size:"large",data:p(a).lists},{default:t(()=>[o(i,{label:"短信渠道",prop:"name","min-width":"120"}),o(i,{label:"状态","min-width":"120"},{default:t(({row:r})=>[r.status==1?(s(),n(m,{key:0},{default:t(()=>[...e[0]||(e[0]=[d("开启",-1)])]),_:1})):(s(),n(m,{key:1,type:"danger"},{default:t(()=>[...e[1]||(e[1]=[d("关闭",-1)])]),_:1}))]),_:1}),o(i,{label:"操作","min-width":"120",fixed:"right"},{default:t(({row:r})=>[f((s(),n(g,{type:"primary",link:"",onClick:q=>b(r.type)},{default:t(()=>[...e[2]||(e[2]=[d(" 设置 ",-1)])]),_:1},8,["onClick"])),[[y,["notice.sms_config/setConfig"]]])]),_:1})]),_:1},8,["data"])]),_:1})),[[w,p(a).loading]]),o(V,{ref_key:"editRef",ref:c,onSuccess:_},null,512)])}}});export{G as default}; diff --git a/server/public/admin/assets/index-Bkarz3gO.js b/server/public/admin/assets/index-Bkarz3gO.js new file mode 100644 index 000000000..30f15b008 --- /dev/null +++ b/server/public/admin/assets/index-Bkarz3gO.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/404-BC77kA-h.js","assets/error-DD91xBpX.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/error-Cz3CexuM.css","assets/403-X08P3cWC.js","assets/login-BBpsAvZz.js","assets/useLockFn-d8ytjraO.js","assets/footer.vue_vue_type_script_setup_true_lang-CPBf3DXQ.js","assets/login-C0033_nd.css","assets/change-password-BOj_3PLz.js","assets/change-password-DRfsLJ26.css","assets/bind-work-wechat-QMt0FvIK.js","assets/wecomOauthPostMessage-C_e6VGrO.js","assets/bind-work-wechat-BX1gqwq1.css","assets/setting-CGBCFQc2.js","assets/index-DIl3M8Wa.js","assets/index-DoFDMZdP.css","assets/picker-BTh9eW9u.js","assets/index-CS5Wg0xx.js","assets/index-B3imPWFk.css","assets/index-oRynN2pP.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-Cqk_cdo9.js","assets/index-D0f1Mn00.css","assets/index-BJZwRQXE.js","assets/file-BjbV-eNx.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/setting-CxqqGetv.css","assets/progress-DdRZUsPm.js","assets/dayjs-B2bPhvDy.js","assets/doctor-DBvYeWd3.js","assets/progress-99NT9ysL.css","assets/pc_details-C9ov4w14.js","assets/decoration-BCfnNTDP.js","assets/preview-pc-C4HvW1pf.js","assets/index-BLw2qqEh.js","assets/attr-DWgf0zU2.js","assets/picker-CSWk6Vbk.js","assets/article-Cct6St-z.js","assets/picker-JBYDNsl5.css","assets/attr-lNortPsv.css","assets/content.vue_vue_type_script_setup_true_lang-3GiNjvv7.js","assets/decoration-img-SoINHtbg.js","assets/decoration-img-C5XvHl9_.css","assets/attr.vue_vue_type_script_setup_true_lang-BoEBITiA.js","assets/content-BR-B7Y89.js","assets/content-DXAsZ7EV.css","assets/attr.vue_vue_type_script_setup_true_lang-VLQINM6l.js","assets/content.vue_vue_type_script_setup_true_lang-DJb4aHFp.js","assets/attr.vue_vue_type_script_setup_true_lang-BsVB4T8K.js","assets/add-nav.vue_vue_type_script_setup_true_lang-ByQYZkB9.js","assets/content-CPrgdURU.js","assets/content-Dy_alH9u.css","assets/attr.vue_vue_type_script_setup_true_lang-DyWBgKkz.js","assets/content.vue_vue_type_script_setup_true_lang-DIToE7Db.js","assets/attr.vue_vue_type_script_setup_true_lang-Bkj1p-jl.js","assets/content-B1kkCzVQ.js","assets/content-Cl-9UIip.css","assets/attr.vue_vue_type_script_setup_true_lang-DEQz3dX_.js","assets/index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js","assets/content-DLUkNAW_.js","assets/content.vue_vue_type_script_setup_true_lang-D7k_-QjC.js","assets/attr.vue_vue_type_script_setup_true_lang-jrtitgMf.js","assets/content-C1VdJnCo.js","assets/content-Bd3rHJ5J.css","assets/attr.vue_vue_type_script_setup_true_lang-BPT_wucL.js","assets/content.vue_vue_type_script_setup_true_lang-_A_7DW4P.js","assets/attr.vue_vue_type_script_setup_true_lang-ObQLkrtE.js","assets/content-DraD2KOm.js","assets/content-DxNvUNZR.css","assets/preview-pc-BRQDo0AR.css","assets/pc_details-nlJo1_D0.css","assets/h5-CqbDVG-k.js","assets/fans-DYvCYhBT.js","assets/h5-BSFcFSny.css","assets/index_h5-C57gHVJz.js","assets/appointment-type-DJT6wPaT.js","assets/tcm-BSADvQNg.js","assets/order-CKT7wPrv.js","assets/weapp-COeXC0ZY.js","assets/perm-CHCBwnFR.js","assets/RevisitNodeCell-C_WC8gU-.js","assets/RevisitNodeCell-B01IyXwO.css","assets/index_h5-Dxw3PrMR.css","assets/readonly-BfVwzFxn.js","assets/patient-B_ifBl-W.js","assets/diag-display-DCz_VAqj.js","assets/PatientInfoCard-Bzk8NUOz.js","assets/PatientInfoCard-n6_UPo9e.css","assets/PatientCaseCard-NvDeQCIb.js","assets/blood-thresholds-QpDuElbH.js","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/PatientCaseCard-C3Mob6yG.css","assets/DailyMatrix-BkYJBu_D.js","assets/DiagnosisTodoList-VonOdKxB.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/DailyMatrix-UrdT3nb4.css","assets/CallRecordPanel-PGnYdg0x.js","assets/RecordingPlaybackBlock-DDHsYga7.js","assets/RecordingVideoPlayer-B0kkGDId.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CO99W60y.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-mqnmyStx.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-aR2VA9u1.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/PatientOrderList-Dk7f29yf.js","assets/PrescriptionOrderDetailDrawer-CX7YbddA.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css","assets/PatientOrderList-D8-uh2iu.css","assets/NoteTimeline-D83GYvN5.js","assets/NoteTimeline-I2FSxX4s.css","assets/readonly-CwfK8LKG.css","assets/index-BLnzo123.js","assets/ai_mcp-Bk1FasTW.js","assets/index-CE10PP7-.css","assets/index-CpcrdRr4.js","assets/index-DtoUZmC0.css","assets/index-BAqMTwOE.js","assets/index-C-i6mrdU.css","assets/index-B_lQE_1q.js","assets/edit-D8pSrFpm.js","assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-Cc4NW4mp.js","assets/index-DTmmBJza.js","assets/edit-BIjbB1xo.js","assets/index.vue_vue_type_style_index_0_lang-D6-pu4qU.js","assets/index-DX96drV3.css","assets/useDictOptions-dnxxXBSU.js","assets/index-DhzMB1j0.js","assets/index-nC9ifQFX.js","assets/asset-LsxWDUaP.js","assets/index-By89B2Fd.js","assets/h5-CpGZ84vN.js","assets/open_setting-CjV5CmT2.js","assets/weapp-DP9EtM5O.js","assets/config-pV4ZDwQ6.js","assets/wx_oa-C-EoclSf.js","assets/menu-EB2DGQxc.js","assets/oa-attr-DmdyjM6c.js","assets/oa-menu-form.vue_vue_type_script_setup_true_lang-BFU8gUm5.js","assets/useMenuOa-30Dq12UU.js","assets/oa-menu-form-edit.vue_vue_type_script_setup_true_lang-DIX04Rea.js","assets/oa-phone-Da6Js6fB.js","assets/oa-phone-CctIyraX.css","assets/oa-menu-form-edit-7MBFNNnP.js","assets/oa-menu-form-C5al5xBc.js","assets/default_reply-CNq3IauE.js","assets/edit.vue_vue_type_script_setup_true_lang-DjT3f1Sv.js","assets/edit-1rUTHce5.js","assets/follow_reply-DXfUAf5w.js","assets/keyword_reply-CnD27rGc.js","assets/MessageBubble-Ca2A_LG3.js","assets/MessageBubble-BwtdPM6K.css","assets/SendPanel-LUM3zkeh.js","assets/SendPanel-DaGPWlQG.css","assets/index-Bl1J7R8z.js","assets/index-CMsGEvq_.css","assets/edit-DN5qnF9I.js","assets/admin-DmTP1JeV.js","assets/department-BeBGhsmA.js","assets/post-DqkuJrmM.js","assets/edit-CObVTcPU.css","assets/index-DIuTK0zC.js","assets/index-CjSHFu-R.css","assets/account-adjust-rKw30abd.js","assets/account-adjust.vue_vue_type_script_setup_true_lang-CQST3icF.js","assets/edit-Bl3F_If2.js","assets/edit-D-D8bVPM.css","assets/index-7KDk7kVi.js","assets/index-Oppei429.css","assets/paiban-BvHPKhZ5.js","assets/paiban-BTUHWpUu.css","assets/detail-DcdzZoOu.js","assets/consumer-BSTqFJW9.js","assets/index-BJkq9Cpt.js","assets/index.vue_vue_type_script_setup_true_lang-CQzUr1BT.js","assets/index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js","assets/GancaoSubmissionReconcileButton-CnInHwau.js","assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-__KcsZHs.js","assets/PrescriptionAiBatchGenerateDialog-BuV-lxd1.js","assets/PrescriptionAiBatchGenerateDialog-CKkykmdr.css","assets/PrescriptionAiReportDialog-CbJLuZ8F.js","assets/PrescriptionAiReportDialog-CV6AuHV3.css","assets/PrescriptionOrderTimeDialog-xjyeSjh7.js","assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-CJXWubSx.js","assets/guahao-77jKS1zA.js","assets/index-CCH9wiNb.js","assets/medicine-DPIOyHj8.js","assets/role-fMbnnhKr.js","assets/index-DAIDDabA.js","assets/index-C_LxAEkS.css","assets/index-CTRSsggc.js","assets/index-AnyUcdTT.css","assets/index-B_6Taw4k.css","assets/list-rjCkupr-.js","assets/list-BluNBZln.css","assets/order_list-CJML0J2h.js","assets/useListTimeFilter-F3VNdKVb.js","assets/useListTimeFilter-DI6SIumd.css","assets/order_list-JA7OnSCw.css","assets/order_list_h5-BCVDZuh3.js","assets/order_list_h5-lx3Qci6J.css","assets/add-nav-BjltaeZg.js","assets/attr-setting-CWaq33SP.js","assets/attr-setting.vue_vue_type_script_setup_true_lang-D7NyugHW.js","assets/menu-CC2IkBNA.js","assets/menu-DYFusokT.css","assets/preview-D6ROnn0L.js","assets/preview-C7oaKmYo.css","assets/attr-B7D1YtoY.js","assets/attr.vue_vue_type_script_setup_true_lang-CYy_gUQo.js","assets/content-C0CugWwU.js","assets/content-DaxRy47P.css","assets/attr-DzQFlx_u.js","assets/menu-set.vue_vue_type_script_setup_true_lang-xu18r-v2.js","assets/content-D4rgmjq4.js","assets/content-sMbqkta2.css","assets/menu-set-DvvNpj_n.js","assets/content-ZhiYWbMw.js","assets/attr-CJFMtyHc.js","assets/attr-BN_LWX1D.js","assets/content-DodBlWvt.js","assets/attr-DUHfvQ2s.js","assets/attr-Dg64O8cG.js","assets/content-ODnAm3dm.js","assets/attr-fJstkaKx.js","assets/attr-BteOquiM.js","assets/content-CleXkNTz.js","assets/attr-DbCbv7ST.js","assets/attr-CaPGzd7K.js","assets/content-BQZ0Yf5N.js","assets/attr-D22y8__F.js","assets/index-SoGq86eC.js","assets/index-57RdOFNo.css","assets/pc-BYVrCORa.js","assets/mobile-style-CyMoXYJb.js","assets/mobile-style.vue_vue_type_script_setup_true_lang-n-0g3y0b.js","assets/theme-picker-BztxpFGq.js","assets/theme-picker-BsELUxM9.css","assets/style-CKMgQxrx.js","assets/tabbar-DWT0GTq1.js","assets/tabbar-DJsOahKR.css","assets/edit-CBYCRUdy.js","assets/menu-BmHYTFQt.js","assets/dict-B9ij5Vr6.js","assets/code-C__TNCcp.js","assets/relations-add.vue_vue_type_script_setup_true_lang-D1ua-rLJ.js","assets/edit-CAJZpU7c.css","assets/index-DtgRYEHe.js","assets/code-preview.vue_vue_type_script_setup_true_lang-D4QV-rVa.js","assets/data-table.vue_vue_type_script_setup_true_lang-D8E8ySzm.js","assets/code-preview-Y5vXP8uG.js","assets/data-table-DGWuJM8Y.js","assets/relations-add-DjjFBfbM.js","assets/dept-tongji-FUPtvTEd.js","assets/dept-tongji-ky7rOYoi.css","assets/medicine-B45eA9C1.js","assets/medicine-DO6x6zrS.css","assets/roster-BSnuvbfe.js","assets/roster-CqNlv_rj.css","assets/tongji-DslSaoYX.js","assets/tongji-C0VnzFxy.css","assets/commission-settlement-C4UrnS8s.js","assets/stats-B9TgZYZ_.js","assets/commission-settlement-Gy2UsUPr.css","assets/index-D1l4fR0M.js","assets/qywx-CBTKxu_l.js","assets/qywx-Dym8iFe0.css","assets/yeji-BIcfCxwq.js","assets/finance-C684dcZP.js","assets/yeji-7-gSVFmd.css","assets/edit-D1GgBUgu.js","assets/edit-D4atl_7z.css","assets/index-BuM5_HkJ.js","assets/index-Bk2rMrqw.css","assets/balance_details-BzMAkkJh.js","assets/refund-log-Bk_wWwru.js","assets/refund-log.vue_vue_type_script_setup_true_lang-D4IxYmay.js","assets/mubiao-dept-card-8VkmXPc1.js","assets/mubiao-dept-card-naMqyghz.css","assets/mubiao-dept-node-Dy4mHHPx.js","assets/mubiao-dept-node-ChUPkaxq.css","assets/mubiao-DjCWlJEf.js","assets/mubiao-B6IOi2bJ.css","assets/recharge_record-ByHIdiux.js","assets/refund_record-CpIyohog.js","assets/index-CFeQKIlb.js","assets/first_visit-B5IgLifl.js","assets/index-D2xY0L6n.css","assets/index-nanEoHJF.js","assets/index-CSIcxqFk.css","assets/OrderActionHost-1ZsxBlo_.js","assets/OrderActionHost-DiqybThz.css","assets/OrderPanel-Bkt8MtV-.js","assets/OrderPanel-BzElZPEq.css","assets/PaibanPanel-DaOXGMtb.js","assets/PaibanPanel-aqm8azGc.css","assets/ProgressPanel-BWL8PMwt.js","assets/ProgressPanel-C_aSqDJh.css","assets/index-BzBxz-zX.js","assets/index-Co57tWbg.css","assets/index-B9F7ZtBx.js","assets/index-Bw7BJ7QR.css","assets/PromotionAutomationForm-NjSjwmp0.js","assets/WelcomeMessageEditor-3rIW6eTh.js","assets/WelcomeMessageEditor-DD5mXWP2.css","assets/PromotionAutomationForm-BMhNCJa-.css","assets/WecomFloatingWidgetBuilder-DSuI6Hvw.js","assets/WecomFloatingWidgetBuilder-DRWt4rvh.css","assets/index-LJKjF0q-.js","assets/index-Dgjf9Hxv.css","assets/index-DzAK4Ks4.js","assets/index-DhR2yeiO.css","assets/edit-DEtg6iCP.js","assets/message-CaYd28kO.js","assets/index-DbhcuLQj.js","assets/edit-BCexivTr.js","assets/edit.vue_vue_type_script_setup_true_lang-DQvX-3X6.js","assets/index-BeP7QZS-.js","assets/index-CTkEoAmW.js","assets/index-CmFE2aZQ.css","assets/edit-CY-J0Vmu.js","assets/edit.vue_vue_type_script_setup_true_lang-DVUU54qM.js","assets/index-CZ0Lrj_J.js","assets/edit-x_JoTDRp.js","assets/edit.vue_vue_type_script_setup_true_lang-Co2sfVXO.js","assets/index-CfCnk281.js","assets/index-BTmQt_1H.js","assets/index-cz2HBbSE.css","assets/edit-CuB2aN2_.js","assets/edit.vue_vue_type_script_setup_true_lang-DLPKXcae.js","assets/index-DLVY0nue.js","assets/edit-xJcxxh2h.js","assets/edit.vue_vue_type_script_setup_true_lang-qmD3gOVD.js","assets/picker.vue_vue_type_script_setup_true_lang-CMq9B6V2.js","assets/index-DFsVLm8u.js","assets/auth-SMWheuQD.js","assets/auth.vue_vue_type_script_setup_true_lang-CrhdXTk1.js","assets/edit-Dpuh4hz7.js","assets/edit.vue_vue_type_script_setup_true_lang-jjgQMFv5.js","assets/index-BKmWHQ4y.js","assets/index-Ci6L7hPt.js","assets/index-Bk7b_sL2.css","assets/index-B9yixNS7.js","assets/edit-DtkVYJd_.js","assets/edit.vue_vue_type_script_setup_true_lang-Bz31OqAj.js","assets/index-CAEQo67E.js","assets/edit-DgZzjCGB.js","assets/edit.vue_vue_type_script_setup_true_lang-BHJ0itxS.js","assets/index-Bv5L5VBG.js","assets/edit-BLDNFAUG.js","assets/pay-BmHqMA5y.js","assets/getExposeType-BkPR_d5H.js","assets/edit-C1NtFi7N.css","assets/index-DaTbNDLc.js","assets/index-BWh1Fcx3.js","assets/index-B-4Yu01u.js","assets/index-DAbBKTBq.js","assets/index-BzrSkGWL.css","assets/edit-CXebpAtJ.js","assets/edit.vue_vue_type_script_setup_true_lang-BuYDp57-.js","assets/index-W9kKr3OI.js","assets/cache-DY5PbfVb.js","assets/environment--Se_RjaM.js","assets/journal-BMTdPoej.js","assets/edit-C9_x1u1_.js","assets/index-ChHJWGtd.js","assets/login_register-BvTo2laZ.js","assets/user-DrLRwVd-.js","assets/setup-CN5hIK9U.js","assets/filing-Cf_ZtO1K.js","assets/website-Uj_9T8tc.js","assets/information-B8Louq1-.js","assets/protocol-CY2h6GDn.js","assets/statistics-CjBqOHNC.js","assets/index-CRapUBJO.js","assets/index-CPXyam6B.css","assets/index-_VHyuJqs.js","assets/index-DRNnKTyK.css","assets/index-D6Ps2w4q.js","assets/index-BmDW9vcs.css","assets/index-Dh0SNz82.js","assets/index-D9Td5Y2a.css","assets/CohortReport-CBHGIK9p.js","assets/CohortReport-DhJXlpZE.css","assets/index-CdyfCy0x.js","assets/index-DReh5Eev.js","assets/index-DKHKZuC3.css","assets/index-D1p2R87k.js","assets/index-D6GWqnbb.js","assets/index-DybA0GjF.css","assets/MediaSourceSelect-nnTL1Ya1.js","assets/MediaSourceSelect.vue_vue_type_script_setup_true_lang-NXWg0oJL.js","assets/account_cost-CEn1CsUd.js","assets/self_input_stats-DXFvDfvT.js","assets/cost-edit.vue_vue_type_script_setup_true_lang-D_BAJfJE.js","assets/useMediaSourceOptions-DDX835sU.js","assets/account_cost-fbCWUO9k.css","assets/cost-edit-CxiOaeXj.js","assets/index-4vePLNn_.js","assets/yeji-edit.vue_vue_type_script_setup_true_lang-CJg4Mu-Y.js","assets/index-55HtuLpn.css","assets/yeji-edit-hxROz88q.js","assets/prescription-drawer-CS4uE7JJ.js","assets/prescription-drawer-BjwiqvPc.css","assets/list-tumMZTt6.js","assets/list-D5BdlpZJ.css","assets/list_h5-CX-9i8Qb.js","assets/list_h5-Cs3mUmOa.css","assets/add-Dcq0hbPf.js","assets/add-ByXRFm8M.css","assets/appointment-C_cZtFED.js","assets/appointment-g8BrHfhi.css","assets/AssistantWatchCallDialog-CjRQdKqO.js","assets/AssistantWatchCallDialog-BIPZRgaH.css","assets/BloodRecordList-Dp5nLiIK.js","assets/BloodRecordList-DhVK-Y_e.css","assets/CaseRecordList-2_yvVfnZ.js","assets/CaseRecordList-Cl-c3q7S.css","assets/DietRecordList-BzGv2mVr.js","assets/DietRecordList-Cc-xUr2B.css","assets/ExerciseRecordList-BcaGhJU3.js","assets/ExerciseRecordList-DGtgtzou.css","assets/FollowupAudioField-Dz9Csp0b.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioPanel-BQogJqk-.js","assets/FollowupAudioReview-BDRNtxGL.js","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/TrackingMatrix-Bz6noxFF.js","assets/TrackingMatrix-zyxtXYPb.css","assets/TrackingNoteTimeline-CFinhPqD.js","assets/TrackingNoteTimeline-B9T8pFso.css","assets/detail-C1EBtcAD.js","assets/edit-BuMVMky1.js","assets/index-C_PSjf1W.js","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/index-By_GY55-.js","assets/index-V-6wNRcg.css","assets/index-BDpBDA69.js","assets/index-Cmf8QBsF.css","assets/file-D_yAcnto.js","assets/icon-B_56fy5q.js","assets/link-13OKwoRw.js","assets/overflow-DAJqHFkX.js","assets/popover_input-CHl485Vl.js","assets/rich_text-bUxDz7Uf.js","assets/upload-Dz90sHG4.js","assets/patient-call-DSml2oNK.js","assets/patient-call-k8V9hV2G.css","assets/index-K0croxGm.js","assets/index-DtDaTXOB.css"])))=>i.map(i=>d[i]); +var P0=Object.defineProperty;var S0=(e,a,o)=>a in e?P0(e,a,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[a]=o;var r3=(e,a,o)=>S0(e,typeof a!="symbol"?a+"":a,o);import{d as F3,u as c,E as D3,e as h3,f as R3,h as C0,i as F1,l as K,A as k3,n as G1,j as B0,k as U1,m as Y1,o as S,p as y,q as h,r as A,s as m,t as M3,v as _,w as d1,x as T3,y as k0,z as Z1,B as X1,C as a3,D as z,F as U,G as _3,H as j0,I as N0,J as $0,K as K1,L as P,M as G,N as W0,O as R,P as C,Q as G3,R as w3,S as q0,T as H,U as F0,V as J1,W as p3,X as G0,Y as U0,Z as Q1,_ as e0,$ as a0,a0 as Y0,a1 as o0,a2 as t0,a3 as Z0,a4 as i0,a5 as X0,a6 as K0,a7 as m1,a8 as J0,a9 as Q0,aa as e2,ab as s0,ac as n0,ad as l0,ae as t3,af as a2,ag as o2,ah as t2,ai as i2,aj as s2,ak as n2,al as t,am as l2,an as c2,ao as o1,ap as _1,aq as c0,ar as r0,as as r2,at as u2,au as d2,av as m2,aw as _2,ax as v2,ay as h2,az as p2,aA as b2,aB as z2,aC as y2,aD as f2,aE as g2,aF as w2,aG as A2,aH as V2,aI as L2,aJ as E2,aK as x2,aL as M2,aM as T2,aN as O2,aO as H2,aP as I2,aQ as D2,aR as R2,aS as P2,aT as S2,aU as C2,aV as B2,aW as k2,aX as j2,aY as N2,aZ as $2,a_ as W2,a$ as q2,b0 as F2,b1 as G2,b2 as U2,b3 as Y2,b4 as Z2,b5 as X2,b6 as K2,b7 as J2,b8 as Q2,b9 as e6}from"./.pnpm-CyuAWpdG.js";(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))i(s);new MutationObserver(s=>{for(const n of s)if(n.type==="childList")for(const r of n.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&i(r)}).observe(document,{childList:!0,subtree:!0});function o(s){const n={};return s.integrity&&(n.integrity=s.integrity),s.referrerPolicy&&(n.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?n.credentials="include":s.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function i(s){if(s.ep)return;s.ep=!0;const n=o(s);fetch(s.href,n)}})();const J={terminal:1,title:"后台管理系统",version:"1.9.4",baseUrl:"https://admin.zhenyangtang.com.cn//",urlPrefix:"adminapi",timeout:6e4};var q=(e=>(e.LOGIN="/login",e.ERROR_403="/403",e.INDEX="/",e))(q||{}),u0=(e=>(e.LIGHT="light",e.DARK="dark",e))(u0||{}),N3=(e=>(e.CATALOGUE="M",e.MENU="C",e.BUTTON="A",e))(N3||{}),t1=(e=>(e[e.SM=640]="SM",e[e.MD=768]="MD",e[e.LG=1024]="LG",e[e.XL=1280]="XL",e[e["2XL"]=1536]="2XL",e))(t1||{});const V5={1:"微信小程序",2:"微信公众号",3:"手机H5",4:"电脑PC",5:"苹果APP",6:"安卓APP"};var d0=(e=>(e.JSON="application/json;charset=UTF-8",e.FORM_DATA="multipart/form-data;charset=UTF-8",e))(d0||{}),A3=(e=>(e.GET="GET",e.POST="POST",e))(A3||{}),u3=(e=>(e[e.NOT_INSTALL=-2]="NOT_INSTALL",e[e.LOGIN_FAILURE=-1]="LOGIN_FAILURE",e[e.FAIL=0]="FAIL",e[e.SUCCESS=1]="SUCCESS",e[e.OPEN_NEW_PAGE=2]="OPEN_NEW_PAGE",e[e.NEED_BIND_WORK_WECHAT=10]="NEED_BIND_WORK_WECHAT",e))(u3||{});const V3="token",L5="account",$3="setting";function b3(e){return/^(https?:|mailto:|tel:)/.test(e)}const a6=(e,a)=>a.findIndex(o=>o.fullPath==e),I1=e=>e.name==null||e.name===""?"":`${String(e.name)}::${e.path}`,o6=(e,a)=>{const{path:o,meta:i,name:s}=e;return!!(!o||b3(o)||i!=null&&i.hideTab||!a.hasRoute(s)||[q.LOGIN,q.ERROR_403].includes(o))},t6=(e,a)=>a.findIndex(o=>o.fullPath===e),K3=e=>{var a,o,i;return(i=(o=(a=e.matched.at(-1))==null?void 0:a.components)==null?void 0:o.default)==null?void 0:i.name},m0=e=>{const{params:a,path:o,query:i}=e;return{params:a||{},path:o,query:i||{}}},O3=F3({id:"tabs",state:()=>({cacheTabList:new Set,tabList:[],tasMap:{},indexRouteName:""}),getters:{getTabList(){return this.tabList},getCacheTabList(){return Array.from(this.cacheTabList)}},actions:{setRouteName(e){this.indexRouteName=e},addCache(e){e&&this.cacheTabList.add(e)},removeCache(e){e&&this.cacheTabList.has(e)&&this.cacheTabList.delete(e)},clearCache(){this.cacheTabList.clear()},resetState(){this.cacheTabList=new Set,this.tabList=[],this.tasMap={},this.indexRouteName=""},addTab(e){const a=c(e.currentRoute),{name:o,query:i,meta:s,params:n,fullPath:r,path:v}=a;if(o6(a,e))return;const d=a6(r,this.tabList),p=K3(a),f={name:o,path:v,fullPath:r,title:s==null?void 0:s.title,query:i,params:n};if(s!=null&&s.keepAlive&&this.addCache(p),d!==-1){this.tabList[d]=f,this.tasMap[r]=f;return}const b=I1(f);if(b){const E=[];if(this.tabList.forEach((N,I)=>{I1(N)===b&&E.push(I)}),E.length>0){const N=E[0];for(let O=E.length-1;O>=1;O--){const M=E[O];delete this.tasMap[this.tabList[M].fullPath],this.tabList.splice(M,1)}const I=this.tabList[N];I.fullPath!==r&&delete this.tasMap[I.fullPath],this.tabList[N]=f,this.tasMap[r]=f;return}}this.tasMap[r]=f,this.tabList.push(f)},removeTab(e,a){const{currentRoute:o,push:i}=a,s=t6(e,this.tabList);this.tabList.length>1&&s!==-1&&this.tabList.splice(s,1);const n=K3(o.value);if(this.removeCache(n),e!==o.value.fullPath)return;let r=null;s===0?r=this.tabList[s]:r=this.tabList[s-1];const v=m0(r);i(v)},removeOtherTab(e){this.tabList=this.tabList.filter(o=>o.fullPath==e.fullPath);const a=K3(e);this.cacheTabList.forEach(o=>{a!==o&&this.removeCache(o)})},removeAllTab(e){const{push:a,currentRoute:o}=e,{name:i}=c(o);if(i==this.indexRouteName){this.removeOtherTab(o.value);return}this.tabList=[],this.clearCache(),a(q.INDEX)}}}),Q={key:"like_admin_",set(e,a,o){e=this.getKey(e);let i={expire:o?this.time()+o:"",value:a};typeof i=="object"&&(i=JSON.stringify(i));try{window.localStorage.setItem(e,i)}catch{return null}},get(e){e=this.getKey(e);try{const a=window.localStorage.getItem(e);if(!a)return null;const{value:o,expire:i}=JSON.parse(a);return i&&i{f3.has(o)||f3.set(o,i)})}remove(a){if(f3.has(a)){const o=f3.get(a);o&&o(a),f3.delete(a)}}};r3(q3,"instance");let s1=q3;const D1=s1.createInstance();class s6{constructor(a){r3(this,"axiosInstance");r3(this,"config");r3(this,"options");this.config=a,this.options=a.requestOptions,this.axiosInstance=F1.create(a),this.setupInterceptors()}getAxiosInstance(){return this.axiosInstance}setupInterceptors(){if(!this.config.axiosHooks)return;const{requestInterceptorsHook:a,requestInterceptorsCatchHook:o,responseInterceptorsHook:i,responseInterceptorsCatchHook:s}=this.config.axiosHooks;this.axiosInstance.interceptors.request.use(n=>(this.addCancelToken(n),K.isFunction(a)&&(n=a(n)),n),n=>(K.isFunction(o)&&o(n),n)),this.axiosInstance.interceptors.response.use(n=>(this.removeCancelToken(n.config.url),K.isFunction(i)&&(n=i(n)),n),n=>{var r;return K.isFunction(s)&&s(n),n.code!=k3.ERR_CANCELED&&this.removeCancelToken((r=n.config)==null?void 0:r.url),n.code==k3.ECONNABORTED||n.code==k3.ERR_NETWORK?new Promise(v=>setTimeout(v,500)).then(()=>this.retryRequest(n)):Promise.reject(n)})}addCancelToken(a){const{ignoreCancelToken:o}=a.requestOptions;!o&&D1.add(a)}removeCancelToken(a){D1.remove(a)}retryRequest(a){var n;const o=a.config,{retryCount:i,isOpenRetry:s}=o.requestOptions;return!s||((n=o.method)==null?void 0:n.toUpperCase())==A3.POST||(o.retryCount=o.retryCount??0,o.retryCount>=i)?Promise.reject(a):(o.retryCount++,this.axiosInstance.request(o))}get(a,o){return this.request({...a,method:A3.GET},o)}post(a,o){return this.request({...a,method:A3.POST},o)}request(a,o){const i=K.merge({},this.options,o),s={...K.cloneDeep(a),requestOptions:i},{urlPrefix:n}=i;return n&&(s.url=`${n}${a.url}`),new Promise((r,v)=>{this.axiosInstance.request(s).then(d=>{r(d)}).catch(d=>{v(d)})})}}function n6(){if(typeof window>"u")return!1;const{pathname:e,search:a}=window.location;return e.includes("bind-work-wechat")?/(?:^|[?&])code=/.test(a):!1}const R1="/bind-work-wechat";let P1=0;const l6={requestInterceptorsHook(e){var n;const{withToken:a,isParamsToData:o}=e.requestOptions,i=e.params||{},s=e.headers||{};if(a){const r=_0();s.token=r}return o&&!Reflect.has(e,"data")&&((n=e.method)==null?void 0:n.toUpperCase())===A3.POST&&(e.data=i,e.params={}),e.headers=s,e},requestInterceptorsCatchHook(e){return e},async responseInterceptorsHook(e){const{isTransformResponse:a,isReturnDefaultResponse:o}=e.config.requestOptions;if(o)return e;if(!a)return e.data;const{code:i,data:s,show:n,msg:r}=e.data;switch(i){case u3.SUCCESS:return n&&r&&m3.msgSuccess(r),s;case u3.FAIL:return n&&r&&m3.msgError(r),Promise.reject(s);case u3.LOGIN_FAILURE:return L3(),W.push(q.LOGIN),Promise.reject();case u3.NEED_BIND_WORK_WECHAT:if(W.currentRoute.value.path===R1||n6())return Promise.reject(s);{const v=Date.now();v-P1>400&&(P1=v,W.replace(R1).catch(()=>{}))}return Promise.reject(s);case u3.OPEN_NEW_PAGE:return window.location.href=s.url,s;case u3.NOT_INSTALL:window.location.replace("/install/install.php");break;default:return s}},responseInterceptorsCatchHook(e){return e.code!==k3.ERR_CANCELED&&e.message&&m3.msgError(e.message),Promise.reject(e)}},c6={timeout:J.timeout,baseURL:J.baseUrl,headers:{"Content-Type":d0.JSON,version:J.version},axiosHooks:l6,requestOptions:{isParamsToData:!0,isReturnDefaultResponse:!1,isTransformResponse:!0,urlPrefix:J.urlPrefix,ignoreCancelToken:!1,withToken:!0,isOpenRetry:!0,retryCount:2}};function r6(e){return new s6(K.merge(c6,{}))}const T=r6();function u6(e){return T.post({url:"/login/account",params:{...e,terminal:J.terminal}})}function d6(){return T.post({url:"/login/logout"})}function m6(){return T.get({url:"/auth.admin/mySelf"})}function E5(e){return T.post({url:"/auth.admin/editSelf",params:e})}function x5(){return T.get({url:"/login/workWechatConfig"})}function _6(e){return T.post({url:"/login/workWechatLogin",params:{...e,terminal:J.terminal}})}function M5(e){return T.post({url:"/auth.admin/bindWorkWechat",params:e})}function T5(){return T.post({url:"/auth.admin/unbindWorkWechat"})}function O5(e){return T.post({url:"/login/changeFirstPassword",params:e})}function H5(){return T.get({url:"/iam/config"},{withToken:!1})}function v6(e){return T.post({url:"/iam/exchange",params:{ticket:e,terminal:J.terminal},withCredentials:!0},{withToken:!1,isOpenRetry:!1})}const i3=F3({id:"user",state:()=>({token:_0()||"",userInfo:{},routes:[],perms:[],isPaw:1}),getters:{},actions:{resetState(){this.token="",this.userInfo={},this.perms=[],this.isPaw=1},login(e){const{account:a,password:o}=e;return new Promise((i,s)=>{u6({account:a.trim(),password:o}).then(n=>{this.token=n.token,this.isPaw=n.is_paw??1,Q.set(V3,n.token),i(n)}).catch(n=>{s(n)})})},logout(){return new Promise((e,a)=>{d6().then(async o=>{this.token="",await W.push(q.LOGIN),L3(),e(o)}).catch(o=>{a(o)})})},workWechatLogin(e){return new Promise((a,o)=>{_6({code:e}).then(i=>{this.token=i.token,this.isPaw=i.is_paw??1,Q.set(V3,i.token),a(i)}).catch(i=>{o(i)})})},async iamLogin(e){const a=await v6(e);return this.token=a.token,this.isPaw=a.is_paw??1,Q.set(V3,a.token),a},getUserInfo(){return new Promise((e,a)=>{m6().then(o=>{this.userInfo=o.user,this.perms=o.permissions,this.routes=b0(o.menu),this.isPaw=o.user.is_paw??1,e(o)}).catch(o=>{a(o)})})}}});function v0(){return T.get({url:"/config/getConfig"})}function I5(){return T.get({url:"/workbench/index"})}function D5(e){return T.get({url:"/config/dict",params:e})}const e3=F3({id:"app",state:()=>({config:{},configFetchAttempted:!1,isMobile:!0,isCollapsed:!1,isRouteShow:!0}),actions:{getImageUrl(e){if(!e||typeof e!="string")return"";if(e.startsWith("http://")||e.startsWith("https://"))return e;const a=e.startsWith("/")?e:"/"+e,o=String(this.config.oss_domain||"").replace(/\/$/,"");if(o)return`${o}${a}`;const i=String(J.baseUrl||"/").replace(/\/+$/,"");if(i.startsWith("http://")||i.startsWith("https://"))try{return new URL(a,`${i}/`).href}catch{return`${i}${a}`}const s=typeof window<"u"?window.location.origin:"";return s?`${s}${a}`:a},getConfig(){return new Promise((e,a)=>{v0().then(o=>{this.config=o,e(o)}).catch(o=>{a(o)})})},setMobile(e){this.isMobile=e},toggleCollapsed(e){this.isCollapsed=e??!this.isCollapsed},refreshView(){this.isRouteShow=!1,G1(()=>{this.isRouteShow=!0})}}}),j3={showCrumb:!0,showLogo:!1,isUniqueOpened:!0,sideWidth:183,sideTheme:"dark",sideDarkColor:"#1d2124",openMultipleTabs:!0,theme:"#4A5DFF",successTheme:"#67c23a",warningTheme:"#e6a23c",dangerTheme:"#f56c6c",errorTheme:"#f56c6c",infoTheme:"#909399"},o3=1,h6={1:["sideTheme","sideDarkColor"]},p6={"dark-2":"shade(20%)","light-3":"tint(30%)","light-5":"tint(50%)","light-7":"tint(70%)","light-8":"tint(80%)","light-9":"tint(90%)"},b6={"light-3":"shade(20%)","light-5":"shade(30%)","light-7":"shade(50%)","light-8":"shade(60%)","light-9":"shade(70%)","dark-2":"tint(20%)"},S1="theme-vars",z6=(e,a="primary",o=!1)=>{const i={[`--el-color-${a}`]:e},s=o?b6:p6;for(const n in s)i[`--el-color-${a}-${n}`]=`color(${e} ${s[n]})`;return i},y6=(e,a=!1)=>{const o=Object.keys(e).reduce((n,r)=>Object.assign(n,z6(e[r],r,a)),{});let i=Object.keys(o).reduce((n,r)=>{const v=B0.convert(o[r]);return`${n}${r}:${v};`},"");i=`:root{${i}}`;let s=document.getElementById(S1);if(s){s.innerHTML=i;return}s=document.createElement("style"),s.setAttribute("type","text/css"),s.setAttribute("id",S1),s.innerHTML=i,document.head.append(s)},P3=Q.get($3);function f6(e,a){if(a>=o3)return;for(let s=a+1;s<=o3;s++){const n=h6[s];if(n)for(const r of n)e[r]=j3[r]}e._settingSchemaVersion=o3;const{showDrawer:o,...i}=e;Q.set($3,i)}const s3=F3({id:"setting",state:()=>{const e={showDrawer:!1,...j3};let a=o3;return U1(P3)&&(a=typeof P3._settingSchemaVersion=="number"?P3._settingSchemaVersion:0,Object.assign(e,P3),aObject.is(Number(e),NaN)?e:`${e}${a}`,C1=e=>e==null&&typeof e>"u",S5=(e,a={children:"children"})=>{e=K.cloneDeep(e);const{children:o}=a,i=[],s=[];for(e.forEach(n=>s.push(n));s.length;){const n=s.shift();n[o]&&(n[o].forEach(r=>s.push(r)),delete n[o]),i.push(n)}return i},C5=(e,a={id:"id",parentId:"pid",children:"children"})=>{e=K.cloneDeep(e);const{id:o,parentId:i,children:s}=a,n=[],r=new Map;return e.forEach(v=>{r.set(v[o],v);const d=r.get(v[i]);d?(d[s]=d[s]??[],d[s].push(v)):n.push(v)}),n};function A6(e){if(e.length===0||!e||e=="undefined")return e;const a=e.replace("//","/"),o=a.length;return a[o-1]==="/"?a.slice(0,o-1):a}function V6(e){let a="";for(const o of Object.keys(e)){const i=e[o],s=encodeURIComponent(o)+"=";if(!C1(i))if(U1(i)){for(const n of Object.keys(i))if(!C1(i[n])){const r=o+"["+n+"]",v=encodeURIComponent(r)+"=";a+=v+encodeURIComponent(i[n])+"&"}}else a+=s+encodeURIComponent(i)+"&"}return a.slice(0,-1)}const B5=(e,a="yyyy-mm-dd")=>{e||(e=Number(new Date)),e.toString().length==10&&(e*=1e3);const o=new Date(e);let i;const s={"y+":o.getFullYear().toString(),"m+":(o.getMonth()+1).toString(),"d+":o.getDate().toString(),"h+":o.getHours().toString(),"M+":o.getMinutes().toString(),"s+":o.getSeconds().toString()};for(const n in s)i=new RegExp("("+n+")").exec(a),i&&(a=a.replace(i[1],i[1].length==1?s[n]:s[n].padStart(i[1].length,"0")));return a},k5=(e=8)=>{let a=Date.now().toString(36);return a+=Math.random().toString(36).substring(3,e),a},j5=(e,a)=>{a=Math.min(1,Math.max(0,a));const o=/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,i=/^rgb\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*\)$/,s=/^rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*[0-9.]+\s*\)$/;let n=0,r=0,v=0;if(o.test(e)){const d=e.slice(1),p=d.length===3?d.split("").map(f=>f+f).join(""):d;n=parseInt(p.substring(0,2),16),r=parseInt(p.substring(2,4),16),v=parseInt(p.substring(4,6),16)}else if(i.test(e)){const d=e.match(/\d+/g);d&&(n=parseInt(d[0]),r=parseInt(d[1]),v=parseInt(d[2]))}else if(s.test(e)){const d=e.match(/\d+(\.\d+)?/g);d&&(n=parseInt(d[0]),r=parseInt(d[1]),v=parseInt(d[2]))}else throw new Error("Unsupported color format");return`rgba(${n}, ${r}, ${v}, ${a})`},L6=S({props:{name:{type:String,required:!0},size:{type:[Number,String],default:16},color:{type:String,default:"inherit"}},setup(e){const a=y(()=>`#${e.name}`),o=y(()=>({width:E3(e.size),height:E3(e.size),color:e.color}));return{symbolId:a,styles:o}}}),Y=(e,a)=>{const o=e.__vccOpts||e;for(const[i,s]of a)o[i]=s;return o},E6=["xlink:href"];function x6(e,a,o,i,s,n){return h(),A("svg",{"aria-hidden":"true",style:M3(e.styles)},[m("use",{"xlink:href":e.symbolId,fill:"currentColor"},null,8,E6)],4)}const M6=Y(L6,[["render",x6]]),n3=S({name:"Icon",props:{name:{type:String,required:!0},size:{type:[String,Number],default:"14px"},color:{type:String,default:"inherit"}},setup(e){return()=>e.name.indexOf(n1)===0?_(d1,{size:e.size,color:e.color},{default:()=>_(T3(e.name.replace(n1,"")))}):e.name.indexOf(w6)===0?k0("i",{class:["local-icon"]},_(M6,{...e})):null}}),T6="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALcAAACHCAYAAABUFMgyAAAABHNCSVQICAgIfAhkiAAACbtJREFUeF7tm39olVUYx++92wo0ZiL0V2v/SKMcVMzUtMTyjzL/KUpwWCpuzbZVxpikIWQLBIMUnLiMSWXYJhSYsiA1dNaQCSqkadGGOQdj/dpubM79uPf2nts9l7Oz8/66976/nvsdXO6v957zPM/53A/Pe967cAh/qADRCoSJ5oW0UIEQ4AYEZCsAuMkuLRJzC2635sGKBqcCCadDzRV0uRrH6XwxfnAqkDX8uYLSaJxczRGcZUGkVitgBLCncMvQGj0H4FaXO3+OE+GVQTZ7bqlKdqFTHc9fE9/Te2wpKByUNxXQA9wO+LrFyhZu9nkRbhXobHK78+TN6uZxonp2Zq/z9+R7Vi7L7Yod6GRwZaiToLe0fP5wJBJu/HsounhqcrLQjcV7fNFj/65YvmTYjbkwR+YVCIfDKjAnx8fHu3p6er6oqKi4lYKXA64HuSXArcCtajG4sdOA72s+dPK7k+eW37jRZ2XMzCuk+GR93YZQXe2GnI6JwdyvQDweH79z587h2bNnvyHZW4TcqGWZFrQVEFXGTsPd2npkSdf5S6e6uy/d5X45/p+xrnZ9qL5uo1fTY94cVyAWiw329vY+W1ZWdl0yOW9LVO3KjCjM4DYCO3LgwGdfHWk7tnpoKGo2To7Tnz4c4Ha0vJ4Mnkgk4iMjI7uLi4vfTwEeN7C5MkYzKJV9tTZSRLuFN25qiF64cNkzY/OMALcn/Dk+6dTU1F9FRUUlEtx6/XhW5magJ6Fm93v2Hvyh9VD7QscztDAB4LZQpIAeMjY2dnTWrFms5+Tm1jN4RnCLJ48c8Miq1a+O3rzZb2Z+V0oKuF0psyeTaO3JRCQSuTcFNwdbtLfuzokZnCLYaWvv39+6qOXgl2e1ic0+70pBALcrZfZqksTFixcXan/XFPY2PLE0glNpbNaStHx8+JPm/Z+u8ypbeV7A7ZeVcCaO4eHhprlz5+4W7C0bnE08w+B6cMsnkmlrM7ibPth7vf3o8QecScX+qIDbfs2C9Amt7/5R67ufk+AWAc8Y7mlgp+C+BriDhEewY9WBm/fdDPKs4GaAp2+auX8G3MEGJkjRp+B+Xos5pmhNbMEtX26fBrY2eIEG91XAHSQ8gh2rADcDWQSc2ZvDPcPeqp5bfE1uSQpSbQngDjYvgYr+9u3bXdrvTVYJ1uaAZww33y0RAWdwa+beo8F9gl058sUfTih9sQyOBZGCW2xLGNwcbNVPZJOxGJlbhFtsTQC3Y8uIgVUVUMDNWhG9K5bpITKBu3Db9l1dx0+cWuCXpYC5/bISzsSRgnt1qt9W9dzKizl24U62JW+9vePk6dNdi5xJxf6ogNt+zYL0CVfhrq3f1tHZ2b3MLwUC3H5ZCWfikOAWd0zEvptNPu0qZUbmBtzOLCJGVVcAcOM/cch+NwA34AbcaEvIMkA2MZgb5gbcFM29uWZdaHPNK2QXN98TGx0dbZ83b97rqX3u/Notqa5aG6quqsx3BsjmPzQ09GFpaekuwE12ifM3McANc5OlH3ADbsBN8YQSPTdZrpOJwdwwN1nCATfgBtxoS8gyQDYxmBvmBtwwN1kGyCYGc8PcgBvmJssA2cRgbpgbcMPcZBkgmxjMDXMDbpibLANkE4O5YW7ADXOTZYBsYjA3zA24YW6yDJBNDOaGuQE3zE2WAbKJwdwwN+CGuckyQDYxmBvmBtwwN1kGyCYGc8PcgBvmJssA2cRgbpgbcMPcZBkgmxjMDXMDbpibLANkE4O5YW7ADXOTZYBsYjA3zA24YW6yDJBNDOaGuQE3zE2WAbKJwdwwN+CGuckyQDYxmBvmBtwwN1kGyCYGc8PcgBvmJssA2cRgbpgbcMPcZBkgmxjMDXMDbpibLANkE4O5YW7ADXOTZYBsYjA3zA24YW6yDJBNDOaGuQE3zE2WAbKJwdwwN+CGuckyQDYxmBvmBtwwN1kGyCYGc8PcgBvmJssA2cRgbpgbcMPcZBkgmxjMDXMDbpibLANkE4O5YW7ADXOTZYBsYjA3zA24YW6yDJBNDOaGuQE3zE2WAbKJwdwwN+CGuckyQDYxmBvmzhe4Y1qi8dQtIdyz/Nnz9F9YURH+Grtnt4h0K6yt39bR2dm9zC/VrK5aG6oG3H5ZjpzHIZnbUbgLNLi/Bdw5X0MMqFOBaDS6u6SkZJf2tgg2s3dOzM0NXqANWLD1naatHR1ndvhlNWBuv6yEM3H09fW9XF5efkqAm0Eugs3bEcttCYuUtSRia5KEu66uofzsuctdzqRif1TAbb9mQfpEe3t7WU1NzYAWM++1ucEZzPzGUrIFt9xzM7iTPfjSJ1/4Z3g4yh57/ge4PV8CxwJIJBJ/zJkz50EF2GJbwuc3hZsdKJ5UivZOmpvBXf/mu1+fOXN+pWNZ2RgYcNsoVsAO1U4mm0pLS/ek4GbGlq3NIJ9hbRFiOWU9uPnOSUFxcXHhiqdfutnT+/s9XtcLcHu9As7MPz4+3jl//vwXtRNKEWpxG5D33RnDzVsTufeObNmy/anz3Ve+GRkZ9bQ9AdzOwOXlqPF4fLi1tfWJxsZGsdfmYMuAZwW3ar87afH1mzY/NDEWOfbTlV/u86oYgNuryjsz79jY2PctLS11O3fu/FNoQ/TAVu6UGLUlct+tsne6RWE9ekPDex9dvfZbZX//wN3OpKw/6mvVlaGqTWvdnhbz5bgCk5OTvw4MDOzTtv2OpnpsBrTYY1vaAuRhqa5QiiHzq5TivXzFctp24Zo1G+/XNtwrJyZji2OxWBEfLBFKmM2VcakefWRB/8pnlt7KeAB80NUKhMPh9K6G9nhicHDwSltb24Xm5uaoFgjvo2VTy62IvA04Iwcz4DjU3OTyvjd/LrYt4heBf85sHleLi8l8UQF5f1qEVf7tiNFvSaZt/8lmNspU/p2J+HsTsVWRH8tfCsDtC558FYQZ3Px9+TK74YWbTOAWDSwDrnouG1uEG6D7ijFXgxEtK54Iyo850LLNVa1IxuZWnViqQBfNDbBd5SVwk2UDOEtW93K7XAkrFpWtK7cqcj8ufiGMHgduVRBwTiqggptDy++5uVUw633e9gmlqoUR4VZZXAYagOeECRKDmIEtwqwytO6etqo6Vsyt16PrQW4GN4lVQhJZV8AIdBliy7bWg9VKtPKXQQYcYFupIo7hFZBPBlVm1jvGtIp2zc0H1INcBbfea6bB4QDSFVDtcui1Hbo7IkYVyhRueUyjcXI1B+mVzuPk9MDNCOhs2hK9NQDAeUynQ6n7Bm6z/AC/WYXy7/2s4TUrGaAzqxDeD2wFAHdglw6Bm1UAcJtVCO8HtgKAO7BLh8DNKvAfR+rWAIVxGVEAAAAASUVORK5CYII=",O6="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALcAAACHCAYAAABUFMgyAAAABHNCSVQICAgIfAhkiAAACbZJREFUeF7t201oXFUUB/DMRyJNpE0JuJqYTWtQs2pLqxSzcWGiK8FNceOqiLiMOxe1i0IFXdhFIXSli6agoJS6aBEM2o2QlbXFfkBNhRBNbRIyTTOTzHjv8O5wc3Pf55x578y7/0LI1+S8c8/95eTMfdNCH/6hAjmtQCGn68KyUIE+4AaC3FYAuHO7tVhYWrjTug52tHcq0Ox2qlToqOJ0e72I3zsV6Bg/FcqgOFTX6J1tQaZRKxAEOFPcJtqgzwE86na78zgdrwk57PNIVYqLzvZ49TX9e34fR0oKD3KmAn7A48D3LVanuOXP67ht0OXF417Hmd11eKF+3Vl+XX3PfC/LFXlciYPOhGuibkG/d+/eK5VKZWZgYOBEs9ksp7F5Ozs7641GYzWNa+EayStQKBRsMOtbW1s379+//83Ro0cfeXgVcD/kkYBHwW0bMVTHbgOv1WrXy+XypFhAlJjJK4SfzG0FRIPaevbs2ddDQ0MfG91bRx40suyqTRSIto7dxr24uPia6NQ3hOmB3FYdC0u1AuIv8fKDBw/eGh8fv2N0cjWW2MaVPTmG4Q6CXRR/Tr4V48c7mKlT3XsnLiZG2sbGxsb5/fv3f+YBbwR0c2tN4uDWR5GiBC3+jKyhYzthLZNFbm9vr/T3948auP3m8Y46t8TdQi3f1+v1X8SMfSyTVeOizlRgc3PzyuDg4Adiwapz+3XwRLj1jq2AF8WfjSrGEWeMZbZQ4axWLBaHPdwKtt69fU9OoowlCne7a9+9e/f44cOHfwbuzPbcpQs3FxYWjol/ty3dO/CJZRBua8eWI8nTp09n9+3b975LFcZas6vA6urq2YMHD57XurfZwWVyezq4H27zBk27a0vcYtC/UyqVXsxuubiySxUQc/evYu6eMnDrwBPj3gXbw30buF3ile1afXCruVsi7wi3BN5+E537D+DOdsNdurqH+22x5h3LaBILt3m7fRdsEbwkcN8Cbpd4ZbtWDbeErAOX3Vvh3tO9bTO3/jVzJCl5YwlwZ7vfTl1dHGDcFK83mda6tgKeGPeeI0DZteWbeJHULe/OkVNFxmKzqYCHWx9LJG4F2/YS2VaiQZ1bx62PJsCdzR47e1ULbjmK+N2xbNcpCe6yfP2teMHUq85WGwtPtQIebvkCPdmxbTO39WZOXNytsURc7Lq4iXM81RXiYs5WIFXc1Wr1mjhUP+lstbHwVCtg4NZPTPS5O9ZpiW3mbnVu4E51b52/GHA7TyC/BQDu/O6t8ysDbucJ5LcAwJ3fvXV+ZU7jFv9buk+83sV5BHktgDjAmBsZGflQO+M2b7/TnXNzOy0RLwfoEzeW8rq3zq/ryZMnn4+NjZ0Dbucp5K8AwI3OnT/V3oqAG7iB2/h/lIleW4KZO7eOWC4MnRudmyVMiqSAG7gpHLGMAdzAzRImRVLADdwUjljGAG7gZgmTIingBm4KRyxjADdws4RJkRRwAzeFI5YxgBu4WcKkSAq4gZvCEcsYwA3cLGFSJAXcwE3hiGUM4AZuljApkgJu4KZwxDIGcAM3S5gUSQE3cFM4YhkDuIGbJUyKpIAbuCkcsYwB3MDNEiZFUsAN3BSOWMYAbuBmCZMiKeAGbgpHLGMAN3CzhEmRFHADN4UjljGAG7hZwqRICriBm8IRyxjADdwsYVIkBdzATeGIZQzgBm6WMCmSAm7gpnDEMgZwAzdLmBRJATdwUzhiGQO4gZslTIqkgBu4KRyxjAHcwM0SJkVSwA3cFI5YxgBu4GYJkyIp4AZuCkcsYwA3cLOESZEUcAM3hSOWMYAbuFnCpEgKuIGbwhHLGMAN3CxhUiQF3MBN4YhlDOAGbpYwKZICbuCmcMQyBnADN0uYFEkBN3BTOGIZA7iBmyVMiqSAG7gpHLGMAdzAzRImRVLADdwUjljGAG7gZgmTIingBm4KRyxjADdws4RJkRRwAzeFI5YxgBu4WcKkSAq4gZvCEcsYwA3cLGFSJAXcwE3hiGUM4AZuljApkgJu4KZwxDIGcAM3S5gUSQE3cFM4YhkDuIGbJUyKpIAbuCkcsYwB3MDNEiZFUsAN3BSOWMYwcO+IJBveW1N7L3OXn7f/FSyrUV+T7+Vb0XgrV6vVa4ODgye5VKJWq/VtATeX7SDPI03cJYH7R+Am30ME9KnA2tra+dHR0XPi23rXlt2bpHOrDl4SAUsrKyufjIyMfMplN9C5uexEd/JYXFx8b2Ji4oaGWyLXYatxJPJYIjOVI4k+mrRwz8/PT0xOTt7szlLiRwXu+DXrpZ+Ym5sbP3369JLIWc3aqoNLzOpNLikWbnPmlrhbM3ij0fivUCjIjzP/B9yZb0HXEmg2m/8cOHDgJQtsfSxR1w/FLR+oP6nUu3erc0vcGxsb3w0NDb3ZtVXFCAzcMYrVYw8VTybPjo2Nfenhlh3b7NoS+Z6urSM2l+yHW52clCqVSvnhw4d/lUql57OuF3BnvQPdub44AZs/dOjQu+IJpY5aPwZUc3di3Go0MWfv4sLCwhtHjhz5wRtVurPCCFGBO0KReuwhYuxdvXTp0uszMzP6rK1gm8A7wm0772518atXr748NTX1fblcfiGr+gF3VpXvznU3Nzd/unjx4kdnzpz5VxtD/GBbT0qCxhJz7rZ17/aIImf0x48ffzE8PHyqWCw+150l+0cF7rQr3p3r1ev1P5eWlr4Sx35XvBlbgtZn7EhHgCo72x1KPXN1l1J/b96x3HVcODs7W5menj4loJ8QgfpVMPGsN+xaiSsmftP/Xl9ff5Q4AH4w1QqIU7b2qYb4uLa8vPz75cuXf7tw4cKaSETN0WanNkcR8xhwzxrCwCnUqpOb597qc31s0X8R1M+FXSfV4uJiLCpgnk/rWM3XjgS9lmTX8Z/ZmYNWar7ORH+9iT6qmB+bvxTAzcITqyTCcKvvm7fZA2/cJMGtd2ATuO1zs2PruAGdlbFUk9G7rP5E0PxYgTa7uW0USdy5bU8sbdD1zg3YqXrpuYt1Alwu1vd2u1mJKF3U7LrmqGLO4/ovRNDHPbcrSJikAjbcCq16rzq3DbPfz8d+QmkbYXTcti5uggZwEhO5CBIGW8ds69C+Z9q26kTp3H4zuh/yMNy52CUsouMKBEE3EUfu1n5Yo2Rr/jKYwAE7ShXxGFUB88mgrTP7PSa0inE7twroh9yG2+9rocnhAbmugO2Uw2/s8D0RCapQUtxmzKA4VNfI9U47vDg/uIlAdzKW+O0BADuss0tLZ4M7bH3AH1Yh977fMd6wkgFdWIXw/Z6tAHD37NYh8bAKAHdYhfD9nq0AcPfs1iHxsAr8D7xvfQ8bZ0PpAAAAAElFTkSuQmCC",H6={class:"setting-drawer"},I6={class:"h-full flex flex-col"},D6={class:"setting-item mb-5"},R6={class:"flex mt-4 cursor-pointer"},P6=["onClick"],S6=["src"],C6={class:"setting-item mb-5 flex justify-between items-center"},B6={class:"setting-item mb-5 flex justify-between items-center"},k6={class:"setting-item mb-5 flex justify-between items-center"},j6={class:"setting-item mb-5 flex justify-between items-center"},N6={class:"setting-item mb-5 flex justify-between items-center"},$6={class:"setting-item mb-5 flex justify-between items-center"},W6={class:"setting-item mb-5 flex justify-between items-center"},q6={class:"setting-item flex justify-between items-center mt-auto"},F6=S({__name:"drawer",setup(e){const a=s3(),o=G(["#409EFF","#28C76F","#EA5455","#FF9F43","#01CFE8","#4A5DFF"]),i=[{type:"dark",image:T6},{type:"light",image:O6}],s=y({get(){return a.sideTheme},set(M){a.setSetting({key:"sideTheme",value:M})}}),n=y({get(){return a.openMultipleTabs},set(M){a.setSetting({key:"openMultipleTabs",value:M})}}),r=y({get(){return a.isUniqueOpened},set(M){a.setSetting({key:"isUniqueOpened",value:M})}}),v=y({get(){return a.sideWidth},set(M){a.setSetting({key:"sideWidth",value:M})}}),d=y({get(){return a.showDrawer},set(M){a.setSetting({key:"showDrawer",value:M})}}),p=y({get(){return a.theme},set(M){a.setSetting({key:"theme",value:M}),N()}}),f=y({get(){return a.showLogo},set(M){a.setSetting({key:"showLogo",value:M})}}),b=y({get(){return a.showCrumb},set(M){a.setSetting({key:"showCrumb",value:M})}}),E=Z1(),N=()=>{a.setTheme(E.value)},I=()=>{W0(E)(),N()},O=()=>{E.value=!1,a.resetTheme(),N()};return(M,V)=>{const l3=n3,j=j0,c3=N0,B=$0,Y3=K1,H3=X1;return h(),A("div",H6,[_(H3,{modelValue:c(d),"onUpdate:modelValue":V[6]||(V[6]=k=>a3(d)?d.value=k:null),"append-to-body":"",direction:"rtl",size:"250px",title:"主题设置"},{default:z(()=>[m("div",I6,[m("div",D6,[V[7]||(V[7]=m("span",{class:"text-tx-secondary"},"风格设置",-1)),m("div",R6,[(h(),A(U,null,_3(i,k=>m("div",{class:"mr-4 flex relative text-primary",key:k.type,onClick:z3=>s.value=k.type},[m("img",{src:k.image,width:"52",height:"36"},null,8,S6),c(s)==k.type?(h(),R(l3,{key:0,class:"icon-select",name:"el-icon-Select"})):C("",!0)],8,P6)),64))])]),m("div",C6,[V[8]||(V[8]=m("span",{class:"text-tx-secondary"},"主题颜色",-1)),m("div",null,[_(j,{modelValue:c(p),"onUpdate:modelValue":V[0]||(V[0]=k=>a3(p)?p.value=k:null),predefine:c(o)},null,8,["modelValue","predefine"])])]),m("div",B6,[V[9]||(V[9]=m("span",{class:"text-tx-secondary"},"开启黑暗模式",-1)),m("div",null,[_(c3,{"model-value":c(E),onChange:I},null,8,["model-value"])])]),m("div",k6,[V[10]||(V[10]=m("span",{class:"text-tx-secondary"},"开启多页签栏",-1)),m("div",null,[_(c3,{modelValue:c(n),"onUpdate:modelValue":V[1]||(V[1]=k=>a3(n)?n.value=k:null),"active-value":!0,"inactive-value":!1},null,8,["modelValue"])])]),m("div",j6,[V[11]||(V[11]=m("span",{class:"text-tx-secondary"},"只展开一个一级菜单",-1)),m("div",null,[_(c3,{modelValue:c(r),"onUpdate:modelValue":V[2]||(V[2]=k=>a3(r)?r.value=k:null),"active-value":!0,"inactive-value":!1},null,8,["modelValue"])])]),m("div",N6,[V[12]||(V[12]=m("div",{class:"text-tx-secondary flex-none mr-3"},"菜单栏宽度",-1)),m("div",null,[_(B,{modelValue:c(v),"onUpdate:modelValue":V[3]||(V[3]=k=>a3(v)?v.value=k:null),min:180,max:250},null,8,["modelValue"])])]),m("div",$6,[V[13]||(V[13]=m("div",{class:"text-tx-secondary flex-none mr-3"},"显示LOGO",-1)),m("div",null,[_(c3,{modelValue:c(f),"onUpdate:modelValue":V[4]||(V[4]=k=>a3(f)?f.value=k:null),"active-value":!0,"inactive-value":!1},null,8,["modelValue"])])]),m("div",W6,[V[14]||(V[14]=m("div",{class:"text-tx-secondary flex-none mr-3"},"显示面包屑",-1)),m("div",null,[_(c3,{modelValue:c(b),"onUpdate:modelValue":V[5]||(V[5]=k=>a3(b)?b.value=k:null),"active-value":!0,"inactive-value":!1},null,8,["modelValue"])])]),m("div",q6,[_(Y3,{onClick:O,class:"w-full"},{default:z(()=>[...V[15]||(V[15]=[P("重置主题",-1)])]),_:1})])])]),_:1},8,["modelValue"])])}}}),G6=Y(F6,[["__scopeId","data-v-352f3746"]]),U6=S({__name:"index",setup(e){const a=s3(),o=()=>{a.setSetting({key:"showDrawer",value:!0})};return(i,s)=>{const n=n3;return h(),A("div",{class:"setting flex cursor-pointer h-full items-center px-2",onClick:o},[_(n,{size:16,name:"el-icon-Setting"}),_(G6)])}}});function p0(e){const a=G3();return w3(a,()=>{e(a)},{immediate:!0}),{route:a}}const Y6=S({__name:"breadcrumb",setup(e){const a=G([]),o=i=>{const s=i.matched.filter(n=>n.meta&&n.meta.title);a.value=s};return p0(i=>{o(i)}),(i,s)=>{const n=q0,r=F0;return h(),R(r,{class:"app-breadcrumb"},{default:z(()=>[(h(!0),A(U,null,_3(c(a),v=>(h(),R(n,{key:v.path},{default:z(()=>[P(H(v.meta.title),1)]),_:2},1024))),128))]),_:1})}}}),Z6=Y(Y6,[["__scopeId","data-v-94d84829"]]),X6=S({__name:"fold",setup(e){const a=e3(),o=y(()=>a.isCollapsed),i=()=>{a.toggleCollapsed()};return(s,n)=>{const r=n3;return h(),A("div",{class:"fold h-full cursor-pointer flex items-center px-2",onClick:i},[_(r,{name:`local-icon-${c(o)?"expand":"collapse"}`,size:18},null,8,["name"])])}}}),K6=S({__name:"full-screen",setup(e){const{toggle:a,isFullscreen:o}=J1();return(i,s)=>{const n=n3;return h(),A("div",{class:"full-screen h-full cursor-pointer flex items-center px-2",onClick:s[0]||(s[0]=(...r)=>c(a)&&c(a)(...r))},[_(n,{size:16,name:`local-icon-${c(o)?"fullscreen-exit":"fullscreen"}`},null,8,["name"])])}}});function J6(){const e=p3(),a=G3(),o=O3(),i=s3(),s=y(()=>o.getTabList),n=y(()=>a.fullPath);return{tabsLists:s,currentTab:n,addTab:()=>{i.openMultipleTabs&&o.addTab(e)},removeTab:f=>{i.openMultipleTabs&&(f=f??a.fullPath,o.removeTab(f,e))},removeOtherTab:()=>{i.openMultipleTabs&&o.removeOtherTab(a)},removeAllTab:()=>{i.openMultipleTabs&&o.removeAllTab(e)}}}const Q6={class:"app-tabs pl-4 flex bg-body"},e4={class:"flex-1 min-w-0"},a4={class:"flex items-center px-3"},o4=S({__name:"multiple-tabs",setup(e){const a=p3(),o=O3(),{removeOtherTab:i,addTab:s,removeAllTab:n,removeTab:r,tabsLists:v,currentTab:d}=J6();p0(()=>{s()});const p=b=>{const E=o.tasMap[b];a.push(m0(E))},f=b=>{switch(b){case"closeCurrent":r();break;case"closeOther":i();break;case"closeAll":n();break}};return(b,E)=>{const N=G0,I=U0,O=n3,M=e0,V=Q1,l3=a0;return h(),A("div",Q6,[m("div",e4,[_(I,{"model-value":c(d),closable:c(v).length>1,onTabChange:p,onTabRemove:E[0]||(E[0]=j=>c(r)(j))},{default:z(()=>[(h(!0),A(U,null,_3(c(v),j=>(h(),R(N,{key:j.fullPath,label:j.title,name:j.fullPath},null,8,["label","name"]))),128))]),_:1},8,["model-value","closable"])]),_(l3,{onCommand:f},{dropdown:z(()=>[_(V,null,{default:z(()=>[_(M,{command:"closeCurrent"},{default:z(()=>[...E[1]||(E[1]=[P(" 关闭当前 ",-1)])]),_:1}),_(M,{command:"closeOther"},{default:z(()=>[...E[2]||(E[2]=[P(" 关闭其他 ",-1)])]),_:1}),_(M,{command:"closeAll"},{default:z(()=>[...E[3]||(E[3]=[P(" 关闭全部 ",-1)])]),_:1})]),_:1})]),default:z(()=>[m("span",a4,[_(O,{size:16,name:"el-icon-arrow-down"})])]),_:1})])}}}),t4=Y(o4,[["__scopeId","data-v-414a904e"]]),i4=S({__name:"refresh",setup(e){const a=e3(),o=()=>{a.refreshView()};return(i,s)=>{const n=n3;return h(),A("div",{class:"refresh cursor-pointer h-full flex items-center px-2",onClick:o},[_(n,{name:"el-icon-RefreshRight",size:18})])}}});function N5(){return T.get({url:"/setting.system.system/info"})}function $5(e){return T.get({url:"/setting.system.log/lists",params:e},{ignoreCancelToken:!0})}function s4(){return T.post({url:"/setting.system.cache/clear"})}function W5(e){return T.get({url:"/crontab.crontab/lists",params:e})}function q5(e){return T.post({url:"/crontab.crontab/add",params:e})}function F5(e){return T.get({url:"/crontab.crontab/detail",params:e})}function G5(e){return T.post({url:"/crontab.crontab/edit",params:e})}function U5(e){return T.post({url:"/crontab.crontab/delete",params:e})}function Y5(e){return T.get({url:"/crontab.crontab/expression",params:e})}const n4={class:"flex items-center"},l4={class:"ml-3 mr-1"},c4=S({__name:"user-drop-down",setup(e){const a=i3(),o=y(()=>a.userInfo),i=async s=>{switch(s){case"logout":await m3.confirm("确定退出登录吗?"),a.logout();break;case"cache":await s4(),window.location.reload();break}};return(s,n)=>{const r=Y0,v=n3,d=e0,p=T3("router-link"),f=Q1,b=a0;return h(),R(b,{class:"px-2",onCommand:i},{dropdown:z(()=>[_(f,null,{default:z(()=>[_(p,{to:"/user/setting"},{default:z(()=>[_(d,null,{default:z(()=>[...n[0]||(n[0]=[P("个人设置",-1)])]),_:1})]),_:1}),_(d,{command:"cache"},{default:z(()=>[...n[1]||(n[1]=[P("清除缓存",-1)])]),_:1}),_(d,{command:"logout"},{default:z(()=>[...n[2]||(n[2]=[P("退出登录",-1)])]),_:1})]),_:1})]),default:z(()=>[m("div",n4,[_(r,{size:34,src:c(o).avatar},null,8,["src"]),m("div",l4,H(c(o).name),1),_(v,{name:"el-icon-ArrowDown"})])]),_:1})}}}),r4={class:"header"},u4={class:"navbar"},d4={class:"flex-1 flex"},m4={class:"navbar-item"},_4={class:"navbar-item"},v4={key:0,class:"flex items-center px-2"},h4={class:"flex"},p4={key:0,class:"navbar-item"},b4={class:"navbar-item"},z4={class:"navbar-item"},y4=S({__name:"index",setup(e){const a=e3(),o=y(()=>a.isMobile),i=y(()=>a.isCollapsed),s=s3(),{isFullscreen:n}=J1();return(r,v)=>{const d=o0;return h(),A("header",r4,[m("div",u4,[m("div",d4,[m("div",m4,[_(d,{class:"box-item",effect:"dark",content:c(i)?"展开菜单":"收起菜单",placement:"bottom"},{default:z(()=>[_(X6)]),_:1},8,["content"])]),m("div",_4,[_(d,{class:"box-item",effect:"dark",content:"刷新",placement:"bottom"},{default:z(()=>[_(i4)]),_:1})]),!c(o)&&c(s).showCrumb?(h(),A("div",v4,[_(Z6)])):C("",!0)]),m("div",h4,[c(o)?C("",!0):(h(),A("div",p4,[_(d,{class:"box-item",effect:"dark",content:c(n)?"退出全屏":"全屏模式",placement:"bottom"},{default:z(()=>[_(K6)]),_:1},8,["content"])])),m("div",b4,[_(c4)]),m("div",z4,[_(d,{class:"box-item",effect:"dark",content:"主题设置",placement:"bottom"},{default:z(()=>[_(U6)]),_:1})])])]),c(s).openMultipleTabs?(h(),R(t4,{key:0})):C("",!0)])}}}),f4={class:"main-wrap h-full bg-page"},g4={class:"px-2 py-4"},w4=S({__name:"main",setup(e){const a=e3(),o=O3(),i=s3(),s=y(()=>a.isRouteShow),n=y(()=>i.openMultipleTabs?o.getCacheTabList:[]);return(r,v)=>{const d=T3("router-view"),p=t0;return h(),A("main",f4,[_(p,null,{default:z(()=>[m("div",g4,[c(s)?(h(),R(d,{key:0},{default:z(({Component:f,route:b})=>[(h(),R(Z0,{include:c(n),max:20},[(h(),R(i0(f),{key:b.fullPath}))],1032,["include"]))]),_:1})):C("",!0)])]),_:1})])}}}),A4=S({__name:"index",props:{...X0,teleported:{type:Boolean,default:!1},placement:{type:String,default:"top"},overfloType:{type:String,default:"ellipsis"}},setup(e){const a=e,o=J0(),i=G(!1);return K0(o,"mouseenter",()=>{var s,n;((s=o.value)==null?void 0:s.scrollWidth)>((n=o.value)==null?void 0:n.offsetWidth)?i.value=!1:i.value=!0}),(s,n)=>{const r=o0;return h(),A("div",null,[_(r,m1(a,{disabled:c(i)}),{default:z(()=>[m("div",{ref_key:"textRef",ref:o,class:"overflow-text truncate",style:M3({textOverflow:e.overfloType})},H(s.content),5)]),_:1},16,["disabled"])])}}}),V4=S({__name:"index",props:{width:{type:[String,Number],default:"auto"},height:{type:[String,Number],default:"auto"},radius:{type:[String,Number],default:0},...Q0},setup(e){const a=e,o=y(()=>({width:E3(a.width),height:E3(a.height),borderRadius:E3(a.radius)}));return(i,s)=>{const n=e2;return h(),R(n,m1({style:o.value},a),null,16,["style"])}}}),L4=Y(V4,[["__scopeId","data-v-275301c7"]]),E4=S({__name:"logo",props:{szie:{type:Number,default:34},title:{type:String},theme:{type:String},showTitle:{type:Boolean,default:!0}},setup(e){const a=e3(),o=y(()=>a.config),i=p3(),s=()=>{i.push("/")};return(n,r)=>{const v=L4,d=A4;return h(),A("div",{class:"logo",onClick:s},[_(v,{width:e.szie,height:e.szie,src:c(o).web_logo},null,8,["width","height","src"]),_(s0,{name:"title-width"},{default:z(()=>[n0(m("div",{class:t3(["logo-title overflow-hidden whitespace-nowrap",{"text-white":e.theme==c(u0).DARK}]),style:M3({left:`${e.szie+16}px`})},[_(d,{content:e.title||c(o).web_name,teleported:!0,placement:"bottom","overflo-type":"unset"},null,8,["content"])],6),[[l0,e.showTitle]])]),_:1})])}}}),x4=Y(E4,[["__scopeId","data-v-590d56e3"]]),M4=S({__name:"index",props:{to:{},replace:{type:Boolean}},setup(e){const a=e,o=y(()=>typeof a.to!="object"&&b3(a.to)),i=y(()=>o.value?"a":"router-link"),s=y(()=>o.value?{href:a.to,target:"_blank"}:a);return(n,r)=>(h(),R(i0(c(i)),a2(o2(c(s))),{default:z(()=>[t2(n.$slots,"default")]),_:3},16))}}),T4=S({__name:"menu-item",props:{route:{},routePath:{},popperClass:{}},setup(e){const a=e,o=y(()=>!!(a.route.children??[]).filter(v=>{var d;return!((d=v.meta)!=null&&d.hidden)}).length),i=y(()=>a.route.meta),s=r=>b3(r)?r:A6(`${a.routePath}/${r}`),n=y(()=>{var v;const r=(v=a.route.meta)==null?void 0:v.query;try{const d=JSON.parse(r);return V6(d)}catch{return r}});return(r,v)=>{var N;const d=n3,p=i2,f=M4,b=T3("menu-item",!0),E=s2;return(N=e.route.meta)!=null&&N.hidden?C("",!0):(h(),A(U,{key:0},[c(o)?(h(),R(E,{key:1,index:e.routePath,"popper-class":e.popperClass},{title:z(()=>{var I,O,M;return[(I=c(i))!=null&&I.icon?(h(),R(d,{key:0,class:"menu-item-icon",size:16,name:(O=c(i))==null?void 0:O.icon},null,8,["name"])):C("",!0),m("span",null,H((M=c(i))==null?void 0:M.title),1)]}),default:z(()=>{var I;return[(h(!0),A(U,null,_3((I=e.route)==null?void 0:I.children,O=>(h(),R(b,{key:s(O.path),route:O,"route-path":s(O.path),"popper-class":e.popperClass},null,8,["route","route-path","popper-class"]))),128))]}),_:1},8,["index","popper-class"])):(h(),R(f,{key:0,to:`${e.routePath}?${c(n)}`},{default:z(()=>[_(p,{index:e.routePath},{title:z(()=>{var I;return[m("span",null,H((I=c(i))==null?void 0:I.title),1)]}),default:z(()=>{var I,O;return[(I=c(i))!=null&&I.icon?(h(),R(d,{key:0,class:"menu-item-icon",size:16,name:(O=c(i))==null?void 0:O.icon},null,8,["name"])):C("",!0)]}),_:1},8,["index"])]),_:1},8,["to"]))],64))}}}),O4=Y(T4,[["__scopeId","data-v-65172b69"]]),H4=S({__name:"menu",props:{routes:{type:Object},config:{type:Object},uniqueOpened:{type:Boolean,default:!1},isCollapsed:{type:Boolean,default:!1},theme:{type:String},width:{type:Number,default:200}},emits:["select"],setup(e){const a=e,o=G3(),i=y(()=>{var n;return((n=o.meta)==null?void 0:n.activeMenu)||o.path}),s=y(()=>`theme-${a.theme}`);return(n,r)=>{const v=n2,d=t0;return h(),A("div",{class:t3(["menu flex-1 min-h-0",c(s)]),style:M3(e.isCollapsed?"":`--aside-width: ${e.width}px`)},[_(d,null,{default:z(()=>[_(v,m1(e.config,{"default-active":c(i),collapse:e.isCollapsed,mode:"vertical","unique-opened":e.uniqueOpened,onSelect:r[0]||(r[0]=p=>n.$emit("select"))}),{default:z(()=>[(h(!0),A(U,null,_3(e.routes,p=>(h(),R(O4,{key:p.path,route:p,"route-path":p.path,"popper-class":c(s)},null,8,["route","route-path","popper-class"]))),128))]),_:1},16,["default-active","collapse","unique-opened"])]),_:1})],6)}}}),I4=Y(H4,[["__scopeId","data-v-6c529f19"]]),D4=S({__name:"side",setup(e){const a=e3(),o=y(()=>a.isMobile?!1:a.isCollapsed),i=s3(),s=y(()=>i.sideTheme),n=i3(),r=y(()=>n.routes),v=y(()=>s.value=="dark"?{"--side-dark-color":i.sideDarkColor}:""),d=y(()=>({backgroundColor:s.value=="dark"?i.sideDarkColor:"",textColor:s.value=="dark"?"var(--el-color-white)":"",activeTextColor:s.value=="dark"?"var(--el-color-white)":""})),p=()=>{a.isMobile&&a.toggleCollapsed(!0)};return(f,b)=>(h(),A("div",{class:"side",style:M3(c(v))},[c(i).showLogo?(h(),R(x4,{key:0,"show-title":!c(o),theme:c(s)},null,8,["show-title","theme"])):C("",!0),_(I4,{routes:c(r),"is-collapsed":c(o),width:c(i).sideWidth,"unique-opened":c(i).isUniqueOpened,config:c(d),theme:c(s),onSelect:p},null,8,["routes","is-collapsed","width","unique-opened","config","theme"])],4))}}),B1=Y(D4,[["__scopeId","data-v-ed43753e"]]),R4={class:"sidebar h-full"},P4=S({__name:"index",setup(e){const a=e3(),o=s3(),i=y(()=>a.isMobile),s=y({get(){return!a.isCollapsed&&i.value},set(r){a.toggleCollapsed(!r)}}),n=y(()=>`${o.sideWidth+1}px`);return(r,v)=>{const d=X1;return h(),A("aside",R4,[_(d,{modelValue:c(s),"onUpdate:modelValue":v[0]||(v[0]=p=>a3(s)?s.value=p:null),direction:"ltr",size:c(n),title:"主题设置","with-header":!1},{default:z(()=>[_(B1)]),_:1},8,["modelValue","size"]),n0(_(B1,null,null,512),[[l0,!c(i)]])])}}}),S4=Y(P4,[["__scopeId","data-v-7243bf96"]]),C4={class:"layout-default flex h-screen w-full"},B4={class:"app-aside shrink-0"},k4={class:"flex-1 flex flex-col min-w-0"},j4={class:"app-header"},N4={class:"app-main flex-1 min-h-0"},$4=S({__name:"index",setup(e){return(a,o)=>(h(),A("div",C4,[m("div",B4,[_(S4)]),m("div",k4,[m("div",j4,[_(y4)]),m("div",N4,[_(w4)])])]))}}),x3=()=>Promise.resolve($4),U3=Symbol(),W4=[{path:"/:pathMatch(.*)*",component:()=>t(()=>import("./404-BC77kA-h.js"),__vite__mapDeps([0,1,2,3,4]))},{path:q.ERROR_403,component:()=>t(()=>import("./403-X08P3cWC.js"),__vite__mapDeps([5,1,2,3,4]))},{path:q.LOGIN,component:()=>t(()=>import("./login-BBpsAvZz.js"),__vite__mapDeps([6,2,3,7,8,9]))},{path:"/change-password",component:()=>t(()=>import("./change-password-BOj_3PLz.js"),__vite__mapDeps([10,2,3,7,8,11]))},{path:"/bind-work-wechat",component:()=>t(()=>import("./bind-work-wechat-QMt0FvIK.js"),__vite__mapDeps([12,2,3,8,13,14]))},{path:"/user",component:x3,children:[{path:"setting",component:()=>t(()=>import("./setting-CGBCFQc2.js"),__vite__mapDeps([15,2,3,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,13,31])),name:Symbol(),meta:{title:"个人设置"}}]},{path:"/doctor",component:x3,children:[{path:"progress",component:()=>t(()=>import("./progress-DdRZUsPm.js"),__vite__mapDeps([32,2,3,33,34,35])),name:"doctorFaceProgress",meta:{title:"面诊进度"}}]},{path:"/decoration/pc_details",component:()=>t(()=>import("./pc_details-C9ov4w14.js"),__vite__mapDeps([36,2,3,37,38,39,40,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75]))},{path:"/fans/h5",component:()=>t(()=>import("./h5-CqbDVG-k.js"),__vite__mapDeps([76,2,3,77,33,78]))},{path:"/tcm/diagnosis/h5",component:()=>t(()=>import("./index_h5-C57gHVJz.js"),__vite__mapDeps([79,2,3,80,81,82,34,83,28,84,33,85,86,87]))},{path:"/tcm/diagnosis-readonly",component:x3,meta:{hidden:!0},children:[{path:"",component:()=>t(()=>import("./readonly-BfVwzFxn.js"),__vite__mapDeps([88,2,3,81,89,90,84,91,92,93,94,95,96,97,18,19,20,21,22,23,24,25,26,27,28,29,30,98,99,100,101,102,103,104,105,106,107,33,108,109,110,111,112,34,113,114,115,116,117,118,119,120,121])),name:"tcmDiagnosisReadonly",meta:{title:"患者信息详情",hidden:!0,activeMenu:"/tcm/diagnosis"}}]}],S3={path:q.INDEX,component:x3,name:U3},l1=Object.assign({"/src/views/account/bind-work-wechat.vue":()=>t(()=>import("./bind-work-wechat-QMt0FvIK.js"),__vite__mapDeps([12,2,3,8,13,14])),"/src/views/account/change-password.vue":()=>t(()=>import("./change-password-BOj_3PLz.js"),__vite__mapDeps([10,2,3,7,8,11])),"/src/views/account/login.vue":()=>t(()=>import("./login-BBpsAvZz.js"),__vite__mapDeps([6,2,3,7,8,9])),"/src/views/ai_mcp/access_log/index.vue":()=>t(()=>import("./index-BLnzo123.js"),__vite__mapDeps([122,2,3,22,123,28,124])),"/src/views/ai_mcp/catalog/index.vue":()=>t(()=>import("./index-CpcrdRr4.js"),__vite__mapDeps([125,2,3,22,123,28,126])),"/src/views/ai_mcp/grant/index.vue":()=>t(()=>import("./index-BAqMTwOE.js"),__vite__mapDeps([127,2,3,22,123,28,128])),"/src/views/app/recharge/index.vue":()=>t(()=>import("./index-B_lQE_1q.js"),__vite__mapDeps([129,16,2,3,17])),"/src/views/article/column/edit.vue":()=>t(()=>import("./edit-D8pSrFpm.js"),__vite__mapDeps([130,131,2,3,42,19,20])),"/src/views/article/column/index.vue":()=>t(()=>import("./index-DTmmBJza.js"),__vite__mapDeps([132,2,3,22,42,28,131,19,20])),"/src/views/article/lists/edit.vue":()=>t(()=>import("./edit-BIjbB1xo.js"),__vite__mapDeps([133,16,2,3,17,134,18,19,20,21,22,23,24,25,26,27,28,29,30,135,42,136])),"/src/views/article/lists/index.vue":()=>t(()=>import("./index-DhzMB1j0.js"),__vite__mapDeps([137,2,3,22,42,136,28])),"/src/views/asset/resource/index.vue":()=>t(()=>import("./index-nC9ifQFX.js"),__vite__mapDeps([138,2,3,139,18,19,20,21,22,23,24,25,26,27,28,29,30])),"/src/views/asset/user/index.vue":()=>t(()=>import("./index-By89B2Fd.js"),__vite__mapDeps([140,2,3,139])),"/src/views/channel/h5.vue":()=>t(()=>import("./h5-CpGZ84vN.js"),__vite__mapDeps([141,16,2,3,17])),"/src/views/channel/open_setting.vue":()=>t(()=>import("./open_setting-CjV5CmT2.js"),__vite__mapDeps([142,16,2,3,17])),"/src/views/channel/weapp.vue":()=>t(()=>import("./weapp-DP9EtM5O.js"),__vite__mapDeps([143,16,2,3,17,18,19,20,21,22,23,24,25,26,27,28,29,30,83])),"/src/views/channel/wx_oa/config.vue":()=>t(()=>import("./config-pV4ZDwQ6.js"),__vite__mapDeps([144,16,2,3,17,18,19,20,21,22,23,24,25,26,27,28,29,30,145])),"/src/views/channel/wx_oa/menu.vue":()=>t(()=>import("./menu-EB2DGQxc.js"),__vite__mapDeps([146,16,2,3,17,147,23,24,19,20,148,149,145,150,151,152])),"/src/views/channel/wx_oa/menu_com/oa-attr.vue":()=>t(()=>import("./oa-attr-DmdyjM6c.js"),__vite__mapDeps([147,23,2,3,24,19,20,148,149,145,150])),"/src/views/channel/wx_oa/menu_com/oa-menu-form-edit.vue":()=>t(()=>import("./oa-menu-form-edit-7MBFNNnP.js"),__vite__mapDeps([153,150,19,2,3,20,148,149,145])),"/src/views/channel/wx_oa/menu_com/oa-menu-form.vue":()=>t(()=>import("./oa-menu-form-C5al5xBc.js"),__vite__mapDeps([154,148,2,3,149,145])),"/src/views/channel/wx_oa/menu_com/oa-phone.vue":()=>t(()=>import("./oa-phone-Da6Js6fB.js"),__vite__mapDeps([151,2,3,149,145,152])),"/src/views/channel/wx_oa/reply/default_reply.vue":()=>t(()=>import("./default_reply-CNq3IauE.js"),__vite__mapDeps([155,2,3,22,145,28,156,19,20])),"/src/views/channel/wx_oa/reply/edit.vue":()=>t(()=>import("./edit-1rUTHce5.js"),__vite__mapDeps([157,156,2,3,145,19,20])),"/src/views/channel/wx_oa/reply/follow_reply.vue":()=>t(()=>import("./follow_reply-DXfUAf5w.js"),__vite__mapDeps([158,2,3,22,145,28,156,19,20])),"/src/views/channel/wx_oa/reply/keyword_reply.vue":()=>t(()=>import("./keyword_reply-CnD27rGc.js"),__vite__mapDeps([159,2,3,22,145,28,156,19,20])),"/src/views/chat/components/MessageBubble.vue":()=>t(()=>import("./MessageBubble-Ca2A_LG3.js"),__vite__mapDeps([160,2,3,161])),"/src/views/chat/components/SendPanel.vue":()=>t(()=>import("./SendPanel-LUM3zkeh.js").then(e=>e.i),__vite__mapDeps([162,2,3,26,163])),"/src/views/chat/index.vue":()=>t(()=>import("./index-Bl1J7R8z.js"),__vite__mapDeps([164,2,3,28,160,161,162,26,163,165])),"/src/views/consumer/assistant/edit.vue":()=>t(()=>import("./edit-DN5qnF9I.js"),__vite__mapDeps([166,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,167,168,169,136,170])),"/src/views/consumer/assistant/index.vue":()=>t(()=>import("./index-DIuTK0zC.js"),__vite__mapDeps([171,2,3,22,167,28,166,18,19,20,21,23,24,25,26,27,29,30,168,169,136,170,172])),"/src/views/consumer/components/account-adjust.vue":()=>t(()=>import("./account-adjust-rKw30abd.js"),__vite__mapDeps([173,174,2,3,19,20])),"/src/views/consumer/doctor/edit.vue":()=>t(()=>import("./edit-Bl3F_If2.js"),__vite__mapDeps([175,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,167,168,169,136,176])),"/src/views/consumer/doctor/index.vue":()=>t(()=>import("./index-7KDk7kVi.js"),__vite__mapDeps([177,2,3,22,167,28,175,18,19,20,21,23,24,25,26,27,29,30,168,169,136,176,178])),"/src/views/consumer/doctor/paiban.vue":()=>t(()=>import("./paiban-BvHPKhZ5.js"),__vite__mapDeps([179,2,3,33,81,34,180])),"/src/views/consumer/lists/detail.vue":()=>t(()=>import("./detail-DcdzZoOu.js"),__vite__mapDeps([181,2,3,27,182,174,19,20])),"/src/views/consumer/lists/index.vue":()=>t(()=>import("./index-BJkq9Cpt.js"),__vite__mapDeps([183,2,3,22,184,19,20,185,182,28])),"/src/views/consumer/prescription/components/GancaoSubmissionReconcileButton.vue":()=>t(()=>import("./GancaoSubmissionReconcileButton-CnInHwau.js"),__vite__mapDeps([186,187,2,3,81])),"/src/views/consumer/prescription/components/PrescriptionAiBatchGenerateDialog.vue":()=>t(()=>import("./PrescriptionAiBatchGenerateDialog-BuV-lxd1.js"),__vite__mapDeps([188,2,3,81,189])),"/src/views/consumer/prescription/components/PrescriptionAiReportDialog.vue":()=>t(()=>import("./PrescriptionAiReportDialog-CbJLuZ8F.js"),__vite__mapDeps([190,2,3,81,191])),"/src/views/consumer/prescription/components/PrescriptionOrderDetailDrawer.vue":()=>t(()=>import("./PrescriptionOrderDetailDrawer-CX7YbddA.js"),__vite__mapDeps([115,2,3,81,116,117])),"/src/views/consumer/prescription/components/PrescriptionOrderTimeDialog.vue":()=>t(()=>import("./PrescriptionOrderTimeDialog-xjyeSjh7.js"),__vite__mapDeps([192,193,2,3,81])),"/src/views/consumer/prescription/guahao.vue":()=>t(()=>import("./guahao-77jKS1zA.js"),__vite__mapDeps([194,2,3,22,185,34,80,81,28])),"/src/views/consumer/prescription/index.vue":()=>t(()=>import("./index-CCH9wiNb.js"),__vite__mapDeps([195,2,3,22,81,196,197,28,84,185,198,199,200,201,202])),"/src/views/consumer/prescription/list.vue":()=>t(()=>import("./list-rjCkupr-.js"),__vite__mapDeps([203,2,3,22,81,28,198,196,199,188,189,190,191,204])),"/src/views/consumer/prescription/order_list.vue":()=>t(()=>import("./order_list-CJML0J2h.js"),__vite__mapDeps([205,2,3,22,184,19,20,206,207,115,81,116,117,193,187,200,201,168,28,208])),"/src/views/consumer/prescription/order_list_h5.vue":()=>t(()=>import("./order_list_h5-BCVDZuh3.js"),__vite__mapDeps([209,2,3,22,206,207,193,81,187,116,200,201,168,28,210])),"/src/views/decoration/component/add-nav.vue":()=>t(()=>import("./add-nav-BjltaeZg.js"),__vite__mapDeps([211,54,2,3,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/decoration-img.vue":()=>t(()=>import("./decoration-img-SoINHtbg.js"),__vite__mapDeps([46,2,3,47])),"/src/views/decoration/component/pages/attr-setting.vue":()=>t(()=>import("./attr-setting-CWaq33SP.js"),__vite__mapDeps([212,213,2,3,39,40,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,37,61,62,63,64,65,66,67,68,69,70,71,72,73])),"/src/views/decoration/component/pages/menu.vue":()=>t(()=>import("./menu-CC2IkBNA.js"),__vite__mapDeps([214,2,3,215])),"/src/views/decoration/component/pages/preview-pc.vue":()=>t(()=>import("./preview-pc-C4HvW1pf.js"),__vite__mapDeps([38,2,3,39,40,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,37,61,62,63,64,65,66,67,68,69,70,71,72,73,74])),"/src/views/decoration/component/pages/preview.vue":()=>t(()=>import("./preview-D6ROnn0L.js"),__vite__mapDeps([216,2,3,39,40,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,37,61,62,63,64,65,66,67,68,69,70,71,72,73,217])),"/src/views/decoration/component/tabbar/mobile/attr.vue":()=>t(()=>import("./attr-B7D1YtoY.js"),__vite__mapDeps([218,219,2,3,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,63])),"/src/views/decoration/component/tabbar/mobile/content.vue":()=>t(()=>import("./content-C0CugWwU.js"),__vite__mapDeps([220,46,2,3,47,221])),"/src/views/decoration/component/tabbar/pc/attr.vue":()=>t(()=>import("./attr-DzQFlx_u.js"),__vite__mapDeps([222,2,3,223,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/tabbar/pc/content.vue":()=>t(()=>import("./content-D4rgmjq4.js"),__vite__mapDeps([224,2,3,46,47,225])),"/src/views/decoration/component/tabbar/pc/menu-set.vue":()=>t(()=>import("./menu-set-DvvNpj_n.js"),__vite__mapDeps([226,223,2,3,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/widgets/banner/attr.vue":()=>t(()=>import("./attr-DWgf0zU2.js"),__vite__mapDeps([40,2,3,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,44])),"/src/views/decoration/component/widgets/banner/content.vue":()=>t(()=>import("./content-ZhiYWbMw.js"),__vite__mapDeps([227,45,46,2,3,47])),"/src/views/decoration/component/widgets/customer-service/attr.vue":()=>t(()=>import("./attr-CJFMtyHc.js"),__vite__mapDeps([228,48,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30])),"/src/views/decoration/component/widgets/customer-service/content.vue":()=>t(()=>import("./content-BR-B7Y89.js"),__vite__mapDeps([49,46,2,3,47,50])),"/src/views/decoration/component/widgets/middle-banner/attr.vue":()=>t(()=>import("./attr-BN_LWX1D.js"),__vite__mapDeps([229,51,2,3,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/widgets/middle-banner/content.vue":()=>t(()=>import("./content-DodBlWvt.js"),__vite__mapDeps([230,52,46,2,3,47])),"/src/views/decoration/component/widgets/my-service/attr.vue":()=>t(()=>import("./attr-DUHfvQ2s.js"),__vite__mapDeps([231,53,2,3,54,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/widgets/my-service/content.vue":()=>t(()=>import("./content-CPrgdURU.js"),__vite__mapDeps([55,46,2,3,47,56])),"/src/views/decoration/component/widgets/nav/attr.vue":()=>t(()=>import("./attr-Dg64O8cG.js"),__vite__mapDeps([232,57,2,3,54,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/widgets/nav/content.vue":()=>t(()=>import("./content-ODnAm3dm.js"),__vite__mapDeps([233,58,46,2,3,47])),"/src/views/decoration/component/widgets/news/attr.vue":()=>t(()=>import("./attr-fJstkaKx.js"),__vite__mapDeps([234,59,2,3])),"/src/views/decoration/component/widgets/news/content.vue":()=>t(()=>import("./content-B1kkCzVQ.js"),__vite__mapDeps([60,37,2,3,61])),"/src/views/decoration/component/widgets/page-meta/attr.vue":()=>t(()=>import("./attr-BteOquiM.js"),__vite__mapDeps([235,62,2,3,63,18,19,20,21,22,23,24,25,26,27,28,29,30])),"/src/views/decoration/component/widgets/page-meta/content.vue":()=>t(()=>import("./content-DLUkNAW_.js"),__vite__mapDeps([64,2,3])),"/src/views/decoration/component/widgets/pc-banner/content.vue":()=>t(()=>import("./content-CleXkNTz.js"),__vite__mapDeps([236,65,2,3,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/widgets/search/attr.vue":()=>t(()=>import("./attr-DbCbv7ST.js"),__vite__mapDeps([237,66,2,3])),"/src/views/decoration/component/widgets/search/content.vue":()=>t(()=>import("./content-C1VdJnCo.js"),__vite__mapDeps([67,2,3,68])),"/src/views/decoration/component/widgets/user-banner/attr.vue":()=>t(()=>import("./attr-CaPGzd7K.js"),__vite__mapDeps([238,69,2,3,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/widgets/user-banner/content.vue":()=>t(()=>import("./content-BQZ0Yf5N.js"),__vite__mapDeps([239,70,46,2,3,47])),"/src/views/decoration/component/widgets/user-info/attr.vue":()=>t(()=>import("./attr-D22y8__F.js"),__vite__mapDeps([240,71,2,3])),"/src/views/decoration/component/widgets/user-info/content.vue":()=>t(()=>import("./content-DraD2KOm.js"),__vite__mapDeps([72,2,3,73])),"/src/views/decoration/pages/index.vue":()=>t(()=>import("./index-SoGq86eC.js"),__vite__mapDeps([241,16,2,3,17,37,213,39,40,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,214,215,216,217,242])),"/src/views/decoration/pc.vue":()=>t(()=>import("./pc-BYVrCORa.js"),__vite__mapDeps([243,2,3,37])),"/src/views/decoration/pc_details.vue":()=>t(()=>import("./pc_details-C9ov4w14.js"),__vite__mapDeps([36,2,3,37,38,39,40,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75])),"/src/views/decoration/style/components/mobile-style.vue":()=>t(()=>import("./mobile-style-CyMoXYJb.js"),__vite__mapDeps([244,245,2,3,63,246,247])),"/src/views/decoration/style/components/theme-picker.vue":()=>t(()=>import("./theme-picker-BztxpFGq.js"),__vite__mapDeps([246,2,3,247])),"/src/views/decoration/style/style.vue":()=>t(()=>import("./style-CKMgQxrx.js"),__vite__mapDeps([248,16,2,3,17,37,245,63,246,247])),"/src/views/decoration/tabbar.vue":()=>t(()=>import("./tabbar-DWT0GTq1.js"),__vite__mapDeps([249,16,2,3,17,37,214,215,219,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,63,220,46,47,221,250])),"/src/views/dev_tools/code/edit.vue":()=>t(()=>import("./edit-CBYCRUdy.js"),__vite__mapDeps([251,16,2,3,17,252,253,254,136,255,19,20,256])),"/src/views/dev_tools/code/index.vue":()=>t(()=>import("./index-DtgRYEHe.js"),__vite__mapDeps([257,2,3,22,254,28,258,259,19,20])),"/src/views/dev_tools/components/code-preview.vue":()=>t(()=>import("./code-preview-Y5vXP8uG.js"),__vite__mapDeps([260,258,2,3])),"/src/views/dev_tools/components/data-table.vue":()=>t(()=>import("./data-table-DGWuJM8Y.js"),__vite__mapDeps([261,259,2,3,254,22,19,20,28])),"/src/views/dev_tools/components/relations-add.vue":()=>t(()=>import("./relations-add-DjjFBfbM.js"),__vite__mapDeps([262,255,2,3,254,19,20,136])),"/src/views/doctor/dept-tongji.vue":()=>t(()=>import("./dept-tongji-FUPtvTEd.js"),__vite__mapDeps([263,2,3,34,264])),"/src/views/doctor/medicine.vue":()=>t(()=>import("./medicine-B45eA9C1.js"),__vite__mapDeps([265,2,3,196,266])),"/src/views/doctor/progress.vue":()=>t(()=>import("./progress-DdRZUsPm.js"),__vite__mapDeps([32,2,3,33,34,35])),"/src/views/doctor/roster.vue":()=>t(()=>import("./roster-BSnuvbfe.js"),__vite__mapDeps([267,2,3,33,34,268])),"/src/views/doctor/tongji.vue":()=>t(()=>import("./tongji-DslSaoYX.js"),__vite__mapDeps([269,2,3,34,270])),"/src/views/error/403.vue":()=>t(()=>import("./403-X08P3cWC.js"),__vite__mapDeps([5,1,2,3,4])),"/src/views/error/404.vue":()=>t(()=>import("./404-BC77kA-h.js"),__vite__mapDeps([0,1,2,3,4])),"/src/views/error/components/error.vue":()=>t(()=>import("./error-DD91xBpX.js"),__vite__mapDeps([1,2,3,4])),"/src/views/fans/commission-settlement.vue":()=>t(()=>import("./commission-settlement-C4UrnS8s.js"),__vite__mapDeps([271,2,3,272,273])),"/src/views/fans/h5.vue":()=>t(()=>import("./h5-CqbDVG-k.js"),__vite__mapDeps([76,2,3,77,33,78])),"/src/views/fans/index.vue":()=>t(()=>import("./index-D1l4fR0M.js"),__vite__mapDeps([274,2,3,22,77,28,33])),"/src/views/fans/qywx.vue":()=>t(()=>import("./qywx-CBTKxu_l.js"),__vite__mapDeps([275,2,3,22,28,276])),"/src/views/fans/yeji.vue":()=>t(()=>import("./yeji-BIcfCxwq.js"),__vite__mapDeps([277,2,3,272,278,81,84,279])),"/src/views/finance/account_cost/edit.vue":()=>t(()=>import("./edit-D1GgBUgu.js"),__vite__mapDeps([280,2,3,278,19,20,281])),"/src/views/finance/account_cost/index.vue":()=>t(()=>import("./index-BuM5_HkJ.js"),__vite__mapDeps([282,2,3,22,278,28,206,207,280,19,20,281,283])),"/src/views/finance/balance_details.vue":()=>t(()=>import("./balance_details-BzMAkkJh.js"),__vite__mapDeps([284,2,3,22,185,278,136,28])),"/src/views/finance/component/refund-log.vue":()=>t(()=>import("./refund-log-Bk_wWwru.js"),__vite__mapDeps([285,286,2,3,278])),"/src/views/finance/mubiao-dept-card.vue":()=>t(()=>import("./mubiao-dept-card-8VkmXPc1.js"),__vite__mapDeps([287,2,3,288])),"/src/views/finance/mubiao-dept-node.vue":()=>t(()=>import("./mubiao-dept-node-Dy4mHHPx.js"),__vite__mapDeps([289,2,3,290])),"/src/views/finance/mubiao.vue":()=>t(()=>import("./mubiao-DjCWlJEf.js"),__vite__mapDeps([291,2,3,287,288,278,292])),"/src/views/finance/recharge_record.vue":()=>t(()=>import("./recharge_record-ByHIdiux.js"),__vite__mapDeps([293,2,3,22,184,19,20,185,278,28])),"/src/views/finance/refund_record.vue":()=>t(()=>import("./refund_record-CpIyohog.js"),__vite__mapDeps([294,2,3,22,185,278,28,286])),"/src/views/first_visit/conversion/index.vue":()=>t(()=>import("./index-CFeQKIlb.js"),__vite__mapDeps([295,2,3,296,297])),"/src/views/first_visit/doctor_dashboard/index.vue":()=>t(()=>import("./index-nanEoHJF.js"),__vite__mapDeps([298,2,3,296,299])),"/src/views/first_visit/my_patients/components/OrderActionHost.vue":()=>t(()=>import("./OrderActionHost-1ZsxBlo_.js").then(e=>e.a),__vite__mapDeps([300,2,3,115,81,116,117,296,84,301])),"/src/views/first_visit/my_patients/components/OrderPanel.vue":()=>t(()=>import("./OrderPanel-Bkt8MtV-.js"),__vite__mapDeps([302,2,3,22,28,296,300,115,81,116,117,84,301,303])),"/src/views/first_visit/my_patients/components/PaibanPanel.vue":()=>t(()=>import("./PaibanPanel-DaOXGMtb.js"),__vite__mapDeps([304,2,3,33,81,34,305])),"/src/views/first_visit/my_patients/components/ProgressPanel.vue":()=>t(()=>import("./ProgressPanel-BWL8PMwt.js"),__vite__mapDeps([306,2,3,22,33,28,296,307])),"/src/views/first_visit/my_patients/index.vue":()=>t(()=>import("./index-BzBxz-zX.js"),__vite__mapDeps([308,2,3,22,80,33,28,84,296,81,83,309])),"/src/views/first_visit/registration_stats/index.vue":()=>t(()=>import("./index-B9F7ZtBx.js"),__vite__mapDeps([310,2,3,296,311])),"/src/views/first_visit/wecom_promotion/components/PromotionAutomationForm.vue":()=>t(()=>import("./PromotionAutomationForm-NjSjwmp0.js"),__vite__mapDeps([312,2,3,296,313,314,315])),"/src/views/first_visit/wecom_promotion/components/WecomFloatingWidgetBuilder.vue":()=>t(()=>import("./WecomFloatingWidgetBuilder-DSuI6Hvw.js"),__vite__mapDeps([316,2,3,296,317])),"/src/views/first_visit/wecom_promotion/components/WelcomeMessageEditor.vue":()=>t(()=>import("./WelcomeMessageEditor-3rIW6eTh.js").then(e=>e.b),__vite__mapDeps([313,2,3,296,314])),"/src/views/first_visit/wecom_promotion/index.vue":()=>t(()=>import("./index-LJKjF0q-.js"),__vite__mapDeps([318,2,3,296,316,317,312,313,314,315,319])),"/src/views/material/index.vue":()=>t(()=>import("./index-DzAK4Ks4.js"),__vite__mapDeps([320,2,3,21,22,23,24,19,20,25,26,27,28,29,321])),"/src/views/message/notice/edit.vue":()=>t(()=>import("./edit-DEtg6iCP.js"),__vite__mapDeps([322,2,3,16,17,323])),"/src/views/message/notice/index.vue":()=>t(()=>import("./index-DbhcuLQj.js"),__vite__mapDeps([324,2,3,323,28])),"/src/views/message/short_letter/edit.vue":()=>t(()=>import("./edit-BCexivTr.js"),__vite__mapDeps([325,326,2,3,323,19,20])),"/src/views/message/short_letter/index.vue":()=>t(()=>import("./index-BeP7QZS-.js"),__vite__mapDeps([327,2,3,323,326,19,20])),"/src/views/order/index.vue":()=>t(()=>import("./index-CTkEoAmW.js"),__vite__mapDeps([328,2,3,22,184,19,20,185,28,84,82,81,329])),"/src/views/organization/department/edit.vue":()=>t(()=>import("./edit-CY-J0Vmu.js"),__vite__mapDeps([330,331,2,3,168,19,20,136])),"/src/views/organization/department/index.vue":()=>t(()=>import("./index-CZ0Lrj_J.js"),__vite__mapDeps([332,2,3,168,331,19,20,136])),"/src/views/organization/post/edit.vue":()=>t(()=>import("./edit-x_JoTDRp.js"),__vite__mapDeps([333,334,2,3,169,19,20])),"/src/views/organization/post/index.vue":()=>t(()=>import("./index-CfCnk281.js"),__vite__mapDeps([335,2,3,22,184,19,20,169,28,334])),"/src/views/patient/reception/components/NoteTimeline.vue":()=>t(()=>import("./NoteTimeline-D83GYvN5.js"),__vite__mapDeps([119,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,89,84,120])),"/src/views/patient/reception/index.vue":()=>t(()=>import("./index-BTmQt_1H.js"),__vite__mapDeps([336,2,3,89,119,18,19,20,21,22,23,24,25,26,27,28,29,30,84,120,91,90,92,93,94,95,96,97,98,81,99,100,34,337])),"/src/views/permission/admin/edit.vue":()=>t(()=>import("./edit-CuB2aN2_.js"),__vite__mapDeps([338,339,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,168,169,167,197,136])),"/src/views/permission/admin/index.vue":()=>t(()=>import("./index-DLVY0nue.js"),__vite__mapDeps([340,2,3,22,184,19,20,167,197,136,28,339,18,21,23,24,25,26,27,29,30,168,169])),"/src/views/permission/menu/edit.vue":()=>t(()=>import("./edit-xJcxxh2h.js"),__vite__mapDeps([341,342,2,3,343,252,19,20])),"/src/views/permission/menu/index.vue":()=>t(()=>import("./index-DFsVLm8u.js"),__vite__mapDeps([344,2,3,252,28,342,343,19,20])),"/src/views/permission/role/auth.vue":()=>t(()=>import("./auth-SMWheuQD.js"),__vite__mapDeps([345,346,2,3,252,197,19,20])),"/src/views/permission/role/edit.vue":()=>t(()=>import("./edit-Dpuh4hz7.js"),__vite__mapDeps([347,348,2,3,197,19,20])),"/src/views/permission/role/index.vue":()=>t(()=>import("./index-BKmWHQ4y.js"),__vite__mapDeps([349,2,3,22,197,28,346,252,19,20,348])),"/src/views/pharmacy/medicine_mapping/index.vue":()=>t(()=>import("./index-Ci6L7hPt.js"),__vite__mapDeps([350,2,3,351])),"/src/views/setting/desktop_workstation/index.vue":()=>t(()=>import("./index-B9yixNS7.js"),__vite__mapDeps([352,16,2,3,17,25,26])),"/src/views/setting/dict/data/edit.vue":()=>t(()=>import("./edit-DtkVYJd_.js"),__vite__mapDeps([353,354,2,3,253,19,20])),"/src/views/setting/dict/data/index.vue":()=>t(()=>import("./index-CAEQo67E.js"),__vite__mapDeps([355,2,3,22,253,28,354,19,20])),"/src/views/setting/dict/type/edit.vue":()=>t(()=>import("./edit-DgZzjCGB.js"),__vite__mapDeps([356,357,2,3,253,19,20])),"/src/views/setting/dict/type/index.vue":()=>t(()=>import("./index-Bv5L5VBG.js"),__vite__mapDeps([358,2,3,22,253,28,357,19,20])),"/src/views/setting/pay/config/edit.vue":()=>t(()=>import("./edit-BLDNFAUG.js"),__vite__mapDeps([359,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,360,7,361,362])),"/src/views/setting/pay/config/index.vue":()=>t(()=>import("./index-DaTbNDLc.js"),__vite__mapDeps([363,2,3,360,361,359,18,19,20,21,22,23,24,25,26,27,28,29,30,7,362])),"/src/views/setting/pay/method/index.vue":()=>t(()=>import("./index-BWh1Fcx3.js"),__vite__mapDeps([364,16,2,3,17,360])),"/src/views/setting/prescription_ai_visibility/index.vue":()=>t(()=>import("./index-B-4Yu01u.js"),__vite__mapDeps([365,2,3,16,17])),"/src/views/setting/search/index.vue":()=>t(()=>import("./index-DAbBKTBq.js"),__vite__mapDeps([366,16,2,3,17,367])),"/src/views/setting/storage/edit.vue":()=>t(()=>import("./edit-CXebpAtJ.js"),__vite__mapDeps([368,369,2,3,19,20])),"/src/views/setting/storage/index.vue":()=>t(()=>import("./index-W9kKr3OI.js"),__vite__mapDeps([370,2,3,369,19,20])),"/src/views/setting/system/cache.vue":()=>t(()=>import("./cache-DY5PbfVb.js"),__vite__mapDeps([371,2,3])),"/src/views/setting/system/environment.vue":()=>t(()=>import("./environment--Se_RjaM.js"),__vite__mapDeps([372,2,3])),"/src/views/setting/system/journal.vue":()=>t(()=>import("./journal-BMTdPoej.js"),__vite__mapDeps([373,2,3,22,184,19,20,185,28])),"/src/views/setting/system/scheduled_task/edit.vue":()=>t(()=>import("./edit-C9_x1u1_.js"),__vite__mapDeps([374,16,2,3,17])),"/src/views/setting/system/scheduled_task/index.vue":()=>t(()=>import("./index-ChHJWGtd.js"),__vite__mapDeps([375,2,3,22,28])),"/src/views/setting/user/login_register.vue":()=>t(()=>import("./login_register-BvTo2laZ.js"),__vite__mapDeps([376,16,2,3,17,377])),"/src/views/setting/user/setup.vue":()=>t(()=>import("./setup-CN5hIK9U.js"),__vite__mapDeps([378,16,2,3,17,18,19,20,21,22,23,24,25,26,27,28,29,30,377])),"/src/views/setting/website/filing.vue":()=>t(()=>import("./filing-Cf_ZtO1K.js"),__vite__mapDeps([379,16,2,3,17,23,24,380])),"/src/views/setting/website/information.vue":()=>t(()=>import("./information-B8Louq1-.js"),__vite__mapDeps([381,16,2,3,17,18,19,20,21,22,23,24,25,26,27,28,29,30,380])),"/src/views/setting/website/protocol.vue":()=>t(()=>import("./protocol-CY2h6GDn.js"),__vite__mapDeps([382,16,2,3,17,134,18,19,20,21,22,23,24,25,26,27,28,29,30,135,380])),"/src/views/setting/website/statistics.vue":()=>t(()=>import("./statistics-CjBqOHNC.js"),__vite__mapDeps([383,16,2,3,17,380])),"/src/views/stats/assistant-performance/index.vue":()=>t(()=>import("./index-CRapUBJO.js"),__vite__mapDeps([384,2,3,272,84,385])),"/src/views/stats/auto_assign_log/index.vue":()=>t(()=>import("./index-_VHyuJqs.js"),__vite__mapDeps([386,2,3,22,272,28,387])),"/src/views/stats/conversion/index.vue":()=>t(()=>import("./index-D6Ps2w4q.js"),__vite__mapDeps([388,22,2,3,272,28,389])),"/src/views/stats/performance-dashboard/index.vue":()=>t(()=>import("./index-Dh0SNz82.js"),__vite__mapDeps([390,2,3,272,391])),"/src/views/stats/revisit_assign_rate/components/CohortReport.vue":()=>t(()=>import("./CohortReport-CBHGIK9p.js"),__vite__mapDeps([392,2,3,272,84,393])),"/src/views/stats/revisit_assign_rate/index.vue":()=>t(()=>import("./index-CdyfCy0x.js"),__vite__mapDeps([394,392,2,3,272,84,393])),"/src/views/stats/revisit_due/index.vue":()=>t(()=>import("./index-DReh5Eev.js"),__vite__mapDeps([395,2,3,22,184,19,20,272,81,28,396])),"/src/views/stats/revisit_inherit_rate/index.vue":()=>t(()=>import("./index-D1p2R87k.js"),__vite__mapDeps([397,392,2,3,272,84,393])),"/src/views/stats/revisit_rate/index.vue":()=>t(()=>import("./index-D6GWqnbb.js"),__vite__mapDeps([398,2,3,272,84,399])),"/src/views/stats/self_input/MediaSourceSelect.vue":()=>t(()=>import("./MediaSourceSelect-nnTL1Ya1.js"),__vite__mapDeps([400,401,2,3])),"/src/views/stats/self_input/account_cost.vue":()=>t(()=>import("./account_cost-CEn1CsUd.js"),__vite__mapDeps([402,2,3,22,403,168,28,404,19,20,401,405,206,207,406])),"/src/views/stats/self_input/cost-edit.vue":()=>t(()=>import("./cost-edit-CxiOaeXj.js"),__vite__mapDeps([407,404,2,3,403,19,20,401])),"/src/views/stats/self_input/index.vue":()=>t(()=>import("./index-4vePLNn_.js"),__vite__mapDeps([408,2,3,22,403,168,28,401,409,19,20,405,410])),"/src/views/stats/self_input/yeji-edit.vue":()=>t(()=>import("./yeji-edit-hxROz88q.js"),__vite__mapDeps([411,409,2,3,403,19,20,401])),"/src/views/tcm/appointment/components/prescription-drawer.vue":()=>t(()=>import("./prescription-drawer-CS4uE7JJ.js"),__vite__mapDeps([412,2,3,81,198,196,199,413])),"/src/views/tcm/appointment/list.vue":()=>t(()=>import("./list-tumMZTt6.js"),__vite__mapDeps([414,2,3,22,185,80,28,34,168,81,89,84,95,83,415])),"/src/views/tcm/appointment/list_h5.vue":()=>t(()=>import("./list_h5-CX-9i8Qb.js"),__vite__mapDeps([416,2,3,80,34,83,81,89,28,95,84,417])),"/src/views/tcm/diagnosis/add.vue":()=>t(()=>import("./add-Dcq0hbPf.js"),__vite__mapDeps([418,2,3,81,419])),"/src/views/tcm/diagnosis/appointment.vue":()=>t(()=>import("./appointment-C_cZtFED.js"),__vite__mapDeps([420,2,3,33,81,34,296,421])),"/src/views/tcm/diagnosis/components/AppointmentRecordPanel.vue":()=>t(()=>import("./AppointmentRecordPanel-aR2VA9u1.js"),__vite__mapDeps([112,2,3,34,113])),"/src/views/tcm/diagnosis/components/AssignLogPanel.vue":()=>t(()=>import("./AssignLogPanel-mqnmyStx.js"),__vite__mapDeps([110,2,3,81,111])),"/src/views/tcm/diagnosis/components/AssistantWatchCallDialog.vue":()=>t(()=>import("./AssistantWatchCallDialog-CjRQdKqO.js"),__vite__mapDeps([422,2,3,81,423])),"/src/views/tcm/diagnosis/components/BloodRecordList.vue":()=>t(()=>import("./BloodRecordList-Dp5nLiIK.js"),__vite__mapDeps([424,2,3,81,425])),"/src/views/tcm/diagnosis/components/CallRecordPanel.vue":()=>t(()=>import("./CallRecordPanel-PGnYdg0x.js"),__vite__mapDeps([101,2,3,102,103,104,105,25,26,81,106])),"/src/views/tcm/diagnosis/components/CaseRecordList.vue":()=>t(()=>import("./CaseRecordList-2_yvVfnZ.js"),__vite__mapDeps([426,2,3,81,427])),"/src/views/tcm/diagnosis/components/DailyMatrix.vue":()=>t(()=>import("./DailyMatrix-BkYJBu_D.js"),__vite__mapDeps([97,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,98,81,84,99,94,100])),"/src/views/tcm/diagnosis/components/DiagnosisTodoList.vue":()=>t(()=>import("./DiagnosisTodoList-VonOdKxB.js"),__vite__mapDeps([98,2,3,22,81,84,99])),"/src/views/tcm/diagnosis/components/DietRecordList.vue":()=>t(()=>import("./DietRecordList-BzGv2mVr.js"),__vite__mapDeps([428,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,81,429])),"/src/views/tcm/diagnosis/components/ExerciseRecordList.vue":()=>t(()=>import("./ExerciseRecordList-BcaGhJU3.js"),__vite__mapDeps([430,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,81,431])),"/src/views/tcm/diagnosis/components/FollowupAudioField.vue":()=>t(()=>import("./FollowupAudioField-Dz9Csp0b.js").then(e=>e.G),__vite__mapDeps([432,2,3,433])),"/src/views/tcm/diagnosis/components/FollowupAudioPanel.vue":()=>t(()=>import("./FollowupAudioPanel-BQogJqk-.js").then(e=>e.a),__vite__mapDeps([434,2,3,435,432,433,436,437])),"/src/views/tcm/diagnosis/components/FollowupAudioReview.vue":()=>t(()=>import("./FollowupAudioReview-BDRNtxGL.js"),__vite__mapDeps([435,2,3,432,433,436])),"/src/views/tcm/diagnosis/components/ImChatRecordPanel.vue":()=>t(()=>import("./ImChatRecordPanel-CO99W60y.js"),__vite__mapDeps([107,2,3,33,81,108,109])),"/src/views/tcm/diagnosis/components/PatientCaseCard.vue":()=>t(()=>import("./PatientCaseCard-NvDeQCIb.js"),__vite__mapDeps([93,94,90,95,2,3,96])),"/src/views/tcm/diagnosis/components/PatientInfoCard.vue":()=>t(()=>import("./PatientInfoCard-Bzk8NUOz.js"),__vite__mapDeps([91,90,2,3,92])),"/src/views/tcm/diagnosis/components/PatientOrderList.vue":()=>t(()=>import("./PatientOrderList-Dk7f29yf.js"),__vite__mapDeps([114,2,3,22,28,81,115,116,117,118])),"/src/views/tcm/diagnosis/components/RecordingPlaybackBlock.vue":()=>t(()=>import("./RecordingPlaybackBlock-DDHsYga7.js"),__vite__mapDeps([102,2,3,103,104,105])),"/src/views/tcm/diagnosis/components/RecordingVideoPlayer.vue":()=>t(()=>import("./RecordingVideoPlayer-B0kkGDId.js"),__vite__mapDeps([103,2,3,104])),"/src/views/tcm/diagnosis/components/RevisitNodeCell.vue":()=>t(()=>import("./RevisitNodeCell-C_WC8gU-.js"),__vite__mapDeps([85,2,3,86])),"/src/views/tcm/diagnosis/components/TrackingMatrix.vue":()=>t(()=>import("./TrackingMatrix-Bz6noxFF.js"),__vite__mapDeps([438,2,3,94,81,439])),"/src/views/tcm/diagnosis/components/TrackingNoteTimeline.vue":()=>t(()=>import("./TrackingNoteTimeline-CFinhPqD.js"),__vite__mapDeps([440,2,3,81,441])),"/src/views/tcm/diagnosis/detail.vue":()=>t(()=>import("./detail-C1EBtcAD.js"),__vite__mapDeps([442,19,2,3,20,81])),"/src/views/tcm/diagnosis/edit.vue":()=>t(()=>import("./edit-BuMVMky1.js"),__vite__mapDeps([443,2,3,81,84,97,18,19,20,21,22,23,24,25,26,27,28,29,30,98,99,94,100,434,435,432,433,436,437,426,427,101,102,103,104,105,106,107,33,108,109,110,111,112,34,113,119,89,120,114,115,116,117,118,444,198,196,199,95,200,201,445,446,441])),"/src/views/tcm/diagnosis/index.vue":()=>t(()=>import("./index-By_GY55-.js"),__vite__mapDeps([447,2,3,22,81,82,34,28,83,84,80,33,185,85,86,90,448])),"/src/views/tcm/diagnosis/index_h5.vue":()=>t(()=>import("./index_h5-C57gHVJz.js"),__vite__mapDeps([79,2,3,80,81,82,34,83,28,84,33,85,86,87])),"/src/views/tcm/diagnosis/readonly.vue":()=>t(()=>import("./readonly-BfVwzFxn.js"),__vite__mapDeps([88,2,3,81,89,90,84,91,92,93,94,95,96,97,18,19,20,21,22,23,24,25,26,27,28,29,30,98,99,100,101,102,103,104,105,106,107,33,108,109,110,111,112,34,113,114,115,116,117,118,119,120,121])),"/src/views/tcm/follow/index.vue":()=>t(()=>import("./index-BDpBDA69.js"),__vite__mapDeps([449,2,3,22,81,168,82,34,28,83,84,33,450])),"/src/views/template/component/file.vue":()=>t(()=>import("./file-D_yAcnto.js"),__vite__mapDeps([451,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30])),"/src/views/template/component/icon.vue":()=>t(()=>import("./icon-B_56fy5q.js"),__vite__mapDeps([452,2,3,343])),"/src/views/template/component/link.vue":()=>t(()=>import("./link-13OKwoRw.js"),__vite__mapDeps([453,2,3,41,19,20,22,42,28,43])),"/src/views/template/component/overflow.vue":()=>t(()=>import("./overflow-DAJqHFkX.js"),__vite__mapDeps([454,2,3])),"/src/views/template/component/popover_input.vue":()=>t(()=>import("./popover_input-CHl485Vl.js"),__vite__mapDeps([455,2,3,27])),"/src/views/template/component/rich_text.vue":()=>t(()=>import("./rich_text-bUxDz7Uf.js"),__vite__mapDeps([456,2,3,134,18,19,20,21,22,23,24,25,26,27,28,29,30,135])),"/src/views/template/component/upload.vue":()=>t(()=>import("./upload-Dz90sHG4.js"),__vite__mapDeps([457,2,3,25,26])),"/src/views/test/patient-call.vue":()=>t(()=>import("./patient-call-DSml2oNK.js"),__vite__mapDeps([458,2,3,459])),"/src/views/user/setting.vue":()=>t(()=>import("./setting-CGBCFQc2.js"),__vite__mapDeps([15,2,3,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,13,31])),"/src/views/workbench/index.vue":()=>t(()=>import("./index-K0croxGm.js"),__vite__mapDeps([460,2,3,81,82,361,461]))});function Z5(){return Object.keys(l1).map(e=>e.replace("/src/views/","").replace(".vue",""))}function b0(e,a=!0){return e.map(o=>{const i=q4(o,a);return o.children!=null&&o.children&&o.children.length&&(i.children=b0(o.children,!1)),i})}function q4(e,a){const o=z0(e.paths),i={path:b3(e.paths)?e.paths:a?`/${o}`:o,name:Symbol(e.paths),meta:{hidden:!e.is_show,keepAlive:!!e.is_cache,title:e.name,perms:e.perms,query:e.params,icon:e.icon,type:e.type,activeMenu:e.selected}};switch(e.type){case N3.CATALOGUE:i.component=a?x3:o1,e.children||(i.component=o1);break;case N3.MENU:i.component=F4(e.component);break}return i}function F4(e){try{const a=z0(e),o=Object.keys(l1).find(i=>i.includes(`/${a}.vue`));if(o)return l1[o];throw Error(`找不到组件${e},请确保组件路径正确`)}catch(a){return console.error(a),o1}}function z0(e){return String(e||"").replace(/^\/+/,"").replace(/\/+$/,"")}function c1(e){var a,o;for(const i of e){if(((a=i.meta)==null?void 0:a.type)==N3.MENU&&!((o=i.meta)!=null&&o.hidden)&&!b3(i.path))return i.name;if(i.children){const s=c1(i.children);if(s)return s}}}function X5(e){var o;return((o=(p3()||W).getRoutes().find(i=>{var s;return((s=i.meta)==null?void 0:s.perms)==e}))==null?void 0:o.path)||""}function G4(){W.removeRoute(U3);const{routes:e}=i3();e.forEach(a=>{const o=a.name;o&&W.hasRoute(o)&&W.removeRoute(o)})}const W=l2({history:c2("/admin/"),routes:W4});function J3(e){if(e==null)return"";if(Array.isArray(e)){const a=e[0];return a==null?"":String(a).trim()}return String(e).trim()}function k1(e){if(!J3(e.query.code))return!1;const o=J3(e.query.state);return o==="bind_wxwork"||o==="admin_bind_wx"?!0:J3(e.query.bind_wxwork)==="1"}const r1=(e,a="")=>{try{e.forEach(o=>{if(b3(o.path))return;const i=a+o.path,s={...o,path:i,name:o.name||i.replace(/\//g,"_").replace("_","")};o.children?W.addRoute(s):W.addRoute(U3,s),o.children&&o.children.length>0&&r1(o.children,i+"/")})}catch(o){console.error("Error adding routes:",o)}},g3=q.LOGIN,U4=q.INDEX,Q3="/change-password",C3="/bind-work-wechat",Y4=[q.LOGIN,q.ERROR_403];W.beforeEach(async(e,a,o)=>{var n,r,v,d;document.title=e.meta.title??J.title;const i=i3(),s=O3();if(e.path===C3){if(!i.token){o({path:g3});return}o();return}if(e.path===Q3){if(!i.token){o({path:g3});return}o();return}if(Y4.includes(e.path))o();else if(i.token)if(Object.keys(i.userInfo).length!==0){if(i.isPaw===0){o({path:Q3});return}if((n=i.userInfo)!=null&&n.need_bind_work_wechat&&e.path!==C3){if(k1(e)){o();return}o({path:C3});return}if(!((r=i.userInfo)!=null&&r.need_bind_work_wechat)&&((v=i.routes)==null?void 0:v.length)>0&&!W.hasRoute(U3)){const f=c1(i.routes);if(!f){L3(),o(q.ERROR_403);return}s.setRouteName(f),S3.redirect={name:f},W.addRoute(S3),r1(i.routes),o({...e,replace:!0});return}e.path===g3?o({path:U4}):o()}else try{if(await i.getUserInfo(),i.isPaw===0){o({path:Q3});return}if((d=i.userInfo)!=null&&d.need_bind_work_wechat){if(k1(e)){o({...e,replace:!0});return}o({path:C3});return}const f=i.routes,b=c1(f);if(!b){L3(),o(q.ERROR_403);return}s.setRouteName(b),S3.redirect={name:b},W.addRoute(S3),r1(f),o({...e,replace:!0})}catch{L3(),o({path:g3,query:{redirect:e.fullPath}})}else o({path:g3,query:{redirect:e.fullPath}})});if(typeof window<"u"){let e=function(){var a=document.body,o=document.getElementById("__svg__icons__dom__");o||(o=document.createElementNS("http://www.w3.org/2000/svg","svg"),o.style.position="absolute",o.style.width="0",o.style.height="0",o.id="__svg__icons__dom__",o.setAttribute("xmlns","http://www.w3.org/2000/svg"),o.setAttribute("xmlns:link","http://www.w3.org/1999/xlink")),o.innerHTML='',a.insertBefore(o,a.lastChild)};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e()}function Z4(){return T.get({url:"/chat/notifications"})}const X4=["onClick"],K4={class:"chat-notify-body"},J4={class:"chat-notify-title"},Q4={class:"chat-notify-desc"},e7={class:"patient-name"},a7={class:"doctor-name"},o7={class:"patient-name"},t7={class:"patient-name"},i7={class:"chat-notify-time"},s7=["onClick"],n7=5e3,l7=S({__name:"index",setup(e){const a=p3(),o=G([]),i=G(null);function s(d){if(!d)return"";const p=new Date(d*1e3),b=new Date().getTime()-p.getTime();return b<6e4?"刚刚":b<36e5?`${Math.floor(b/6e4)} 分钟前`:b<864e5?`${Math.floor(b/36e5)} 小时前`:p.toLocaleDateString("zh-CN",{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"})}function n(d){o.value=o.value.filter(p=>p.id!==d)}function r(d){n(d.id),d.type==="consultation_complete"&&d.diagnosis_id&&a.push({path:"/tcm/diagnosis",query:{id:d.diagnosis_id}})}async function v(){try{const d=await Z4();Array.isArray(d)&&d.length>0&&(o.value=[...d,...o.value].slice(0,10))}catch{}}return _1(()=>{v(),i.value=setInterval(v,n7)}),c0(()=>{i.value&&clearInterval(i.value)}),(d,p)=>{const f=d1;return h(),R(r0,{to:"body"},[_(v2,{name:"chat-notify-slide",tag:"div",class:"chat-notify-container"},{default:z(()=>[(h(!0),A(U,null,_3(o.value,b=>(h(),A("div",{key:b.id,class:t3(["chat-notify-card",{"chat-notify-card-complete":b.type==="consultation_complete","chat-notify-card-left":b.type==="patient_left_chat"}]),onClick:E=>r(b)},[m("div",{class:t3(["chat-notify-icon",{"chat-notify-icon-complete":b.type==="consultation_complete","chat-notify-icon-left":b.type==="patient_left_chat"}])},[_(f,{size:22},{default:z(()=>[b.type!=="consultation_complete"&&b.type!=="patient_left_chat"?(h(),R(c(r2),{key:0})):b.type==="consultation_complete"?(h(),R(c(u2),{key:1})):(h(),R(c(d2),{key:2}))]),_:2},1024)],2),m("div",K4,[m("div",J4,H(b.type==="consultation_complete"?"面诊结束":b.type==="patient_left_chat"?"患者离开会话":"患者打开会话"),1),m("div",Q4,[b.type==="consultation_complete"?(h(),A(U,{key:0},[m("span",e7,H(b.patient_name||"患者"),1),p[0]||(p[0]=P(" 的面诊已由 ",-1)),m("span",a7,H(b.doctor_name||"医生"),1),p[1]||(p[1]=P(" 完成,请及时跟进 ",-1))],64)):b.type==="patient_left_chat"?(h(),A(U,{key:1},[m("span",o7,H(b.patient_name||"患者"),1),p[2]||(p[2]=P(" 已离开问诊会话页面 ",-1))],64)):(h(),A(U,{key:2},[m("span",t7,H(b.patient_name||"患者"),1),p[3]||(p[3]=P(" 已打开与您的会话,请及时查看 ",-1))],64))]),m("div",i7,H(s(b.created_at)),1)]),m("button",{class:"chat-notify-close",onClick:_2(E=>n(b.id),["stop"]),"aria-label":"关闭"},[_(f,{size:14},{default:z(()=>[_(c(m2))]),_:1})],8,s7)],10,X4))),128))]),_:1})])}}}),c7=Y(l7,[["__scopeId","data-v-9276baf6"]]),r7={isTransformResponse:!1,ignoreCancelToken:!0,isOpenRetry:!1,retryCount:0};async function u7(){const e=await T.get({url:"/tcm.revisitDue/pending"},r7);return e&&typeof e=="object"&&Number(e.code)===1?e.data:Promise.reject((e==null?void 0:e.msg)??"revisit due pending failed")}function d7(e){return T.post({url:"/tcm.revisitDue/snooze",params:e})}function m7(e){return T.post({url:"/tcm.revisitDue/snoozeAll",params:e})}function _7(e){return T.post({url:"/tcm.revisitDue/contact",params:e})}function K5(e){return T.get({url:"/tcm.revisitDue/lists",params:e})}function J5(e){return T.get({url:"/tcm.revisitDue/logs",params:e})}const Q5=[{label:"到期未挂号 / 过号",value:"due"},{label:"即将到期",value:"warning"},{label:"已约待面诊",value:"booked"},{label:"已面诊",value:"visited"},{label:"已联系",value:"contacted"},{label:"缺开药天数",value:"no_days"},{label:"未到期",value:"pending"}],e8=[{label:"14 天",value:"14"},{label:"21 天",value:"21"},{label:"28 天",value:"28"},{label:"30 天",value:"30"},{label:"其它天数",value:"other"}],v7={visited:"已面诊",booked:"已约",missed:"过号",contacted:"已联系",overdue:"超期",warning:"即将到期",pending:"未到期",no_days:"缺开药天数",none:"—"},x=(e,a=0)=>{if(e==null||e==="")return a;const o=Number(e);return Number.isFinite(o)?Math.trunc(o):a},e1=e=>{if(e==null||e==="")return null;const a=Number(e);return Number.isFinite(a)?Math.trunc(a):null},d3=e=>{if(e==null)return"";const a=String(e).trim();return a===""||a==="0000-00-00"?"":a};function a8(e){if(!e||typeof e!="object"||Array.isArray(e))return null;const a=e,o=String(a.state??"none").trim()||"none",i=x(a.days_src),s=x(a.anchor_src);return{current_slot:x(a.current_slot),next_slot:x(a.next_slot),valid_order_count:x(a.valid_order_count),medication_days:x(a.medication_days),days_src:i===1||i===2?i:0,rule_days:x(a.rule_days),anchor_src:s>=1&&s<=3?s:0,anchor_date:d3(a.anchor_date),order_date:d3(a.order_date),due_date:d3(a.due_date),days_left:e1(a.days_left),overdue_days:e1(a.overdue_days),state:o,state_text:String(a.state_text??"").trim(),severe:x(a.severe)===1?1:0,appointment_state:x(a.appointment_state),appointment_date:d3(a.appointment_date),snooze_count:x(a.snooze_count),escalation_level:x(a.escalation_level),promised_date:d3(a.promised_date),missed_count:x(a.missed_count),first_touch_date:d3(a.first_touch_date),in_care_days:e1(a.in_care_days),total_medication_days:x(a.total_medication_days),closed_state:x(a.closed_state)}}function Z(e){return!!e&&e.state!=="none"&&e.state!==""}function y0(e){return Z(e)&&x(e.closed_state)===0&&(e.state==="overdue"||e.state==="missed")}function f0(e){return y0(e)&&Number(e==null?void 0:e.severe)===1}function o8(e){return y0(e)?f0(e)?"row-revisit-overdue row-revisit-overdue-deep":"row-revisit-overdue":""}function X(e){const a=d3(e);if(!a)return"";const o=/^(\d{4})-(\d{2})-(\d{2})/.exec(a);return o?`${o[2]}-${o[3]}`:a}function h7(e){const a=x(e);return a===1?"签收起":a===2?"发货起":a===3?"下单起":""}function p7(e){const a=x(e);return a===1?"订单":a===2?"处方":"缺失"}function g0(e){return Z(e)?x(e.days_src)===0||x(e.medication_days)<=0:!1}function b7(e){if(!Z(e))return"";const a=x(e.current_slot);return a>0?`第 ${a} 诊`:"未成交"}function t8(e){return Z(e)?g0(e)?"缺开药天数":`开药 ${x(e.medication_days)} 天`:""}function z7(e){if(!Z(e))return"";const a=X(e.due_date);return a?`药尽 ${a}`:""}function u1(e){const a=String(e??"").trim();return v7[a]??(a||"—")}function y7(e){if(!Z(e))return"";if(e.state_text)return e.state_text;const a=String(e.state);switch(a){case"overdue":{const o=x(e.overdue_days);return o<=0?"今日应挂号":`超期 ${o} 天`}case"missed":{const o=X(e.appointment_date);return o?`过号 ${o}`:"过号"}case"booked":{const o=X(e.appointment_date);return o?`已约 ${o}`:"已约"}case"visited":{const o=X(e.appointment_date);return o?`已面诊 ${o}`:"已面诊"}case"contacted":{const o=X(e.promised_date);return o?`已联系·约 ${o}`:"已联系"}case"warning":case"pending":{const o=e.days_left;return o===null?u1(a):`剩 ${o} 天`}default:return u1(a)}}function i8(e){switch(String(e??"")){case"overdue":case"missed":return"danger";case"warning":case"no_days":return"warning";case"booked":case"contacted":return"primary";case"visited":return"success";default:return"info"}}function s8(e){switch(String(e??"")){case"overdue":case"missed":return"dark";case"contacted":case"no_days":return"plain";default:return"light"}}function n8(e){switch(String(e??"")){case"overdue":case"missed":return"unserved-red";case"warning":case"no_days":return"unserved-orange";case"visited":return"unserved-green";case"booked":case"contacted":return"unserved-blue";default:return"unserved-muted"}}function l8(e){if(!Z(e))return"rv-chip";const a=["rv-chip",`rv-chip--${String(e.state)}`];return f0(e)&&a.push("rv-chip--severe"),a.join(" ")}function f7(e){if(!Z(e))return"";const a=x(e.snooze_count);return a>0?`已延迟 ${a} 次`:""}function g7(e){if(!Z(e))return"";const a=X(e.promised_date);return a?`已联系 约 ${a}`:""}function c8(e){return[f7(e),g7(e)].filter(o=>o!=="").join(" · ")}function r8(e){if(!Z(e))return[];const a=[],o=Math.max(0,x(e.current_slot)-x(e.valid_order_count));a.push(`有效订单 ${x(e.valid_order_count)} 笔 · 诊次偏移 +${o}`),x(e.next_slot)>0&&a.push(`待复诊:第 ${x(e.next_slot)} 诊`);const i=X(e.first_touch_date);if(i){const r=e.in_care_days;a.push(r===null?`首次触达 ${i}`:`首次触达 ${i} · 在管 ${r} 天`)}x(e.total_medication_days)>0&&a.push(`累计开药 ${x(e.total_medication_days)} 天`);const s=X(e.anchor_date),n=h7(e.anchor_src);return s&&n&&a.push(`用药起算 ${s}(${n.replace(/起$/,"")})`),g0(e)||a.push(`开药天数来源:${p7(e.days_src)}`),x(e.missed_count)>0&&a.push(`曾过号 ${x(e.missed_count)} 次`),a}function u8(e){return Z(e)?[b7(e),z7(e),y7(e)].filter(o=>o!=="").join(" · "):""}const w7={class:"rd-toast__header"},A7={class:"rd-toast__title"},V7={key:0,class:"rd-toast__snoozed"},L7={class:"rd-toast__list"},E7={class:"rd-item__main"},x7={class:"rd-item__line"},M7={class:"rd-item__name"},T7={class:"rd-item__meta"},O7={class:"rd-item__line rd-item__line--status"},H7={key:0,class:"rd-item__tag"},I7={key:1,class:"rd-item__tag"},D7={class:"rd-item__actions"},R7={key:0,class:"rd-contact"},P7={class:"rd-contact__btns"},S7={key:0,class:"rd-toast__more"},C7={key:1,class:"rd-toast__footer"},B7={class:"rd-modal__title"},k7={key:0,class:"rd-modal__body"},j7={class:"rd-modal__name"},N7={class:"rd-modal__meta"},$7={class:"rd-item__line rd-item__line--status"},W7={key:0,class:"rd-item__tag"},q7={key:0,class:"rd-contact rd-contact--modal"},F7={class:"rd-contact__btns"},G7={key:0,class:"rd-modal__footer"},U7=6e4,Y7=3e4,Z7=1e4,X7=5*6e4,B3=2*6e4,j1=5,N1="revisit_due_toast:last_fetch",K7="revisit-due-toast",J7=S({__name:"index",setup(e){const a=p3(),o=i3(),i=G([]),s=G(null),n=G(!1),r=G(!1),v=G(0),d=G(!1),p=G(0),f=G(!1),b=y2({promised_date:"",remark:""}),E=new Map;let N=null,I=null,O=null,M=!1;const V=()=>{var u;return Number(((u=o.userInfo)==null?void 0:u.id)??0)||0},l3=y(()=>{const u=Array.isArray(o.perms)?o.perms:[];return u.includes("*")||u.includes("tcm.revisitDue/pending")}),j=y(()=>i.value.filter(u=>u.escalation_level<3)),c3=y(()=>i.value.filter(u=>u.escalation_level>=3)),B=y(()=>c3.value[0]??null),Y3=y(()=>j.value.slice(0,j1)),H3=y(()=>Math.max(0,j.value.length-j1)),k=y(()=>j.value.length>0),z3=y(()=>j.value.reduce((u,l)=>Math.max(u,Math.min(2,l.escalation_level)),0)),v1=y(()=>j.value.reduce((u,l)=>Math.max(u,l.snooze_count),0)),h1=y(()=>z3.value<=1),p1=y(()=>j.value.filter(u=>u.escalation_level<=1)),A0=y(()=>j.value.length>1&&j.value.every(u=>u.escalation_level<=1)),V0=y(()=>{const u=new Set(p1.value.map(l=>l.next_snooze_seconds));return u.size===1?`全部延迟 ${z1([...u][0],!1)}`:"全部延迟"}),b1=y(()=>{var l;const u=Number(((l=s.value)==null?void 0:l.promise_max_days)??14);return Number.isFinite(u)&&u>=0?Math.trunc(u):14});function z1(u,l){const L=Math.max(0,Math.trunc(Number(u)||0));if(L<=0)return l?"30 分钟":"30min";if(L%3600===0){const D=L/3600;return l?`${D} 小时`:`${D}h`}const g=Math.max(1,Math.round(L/60));return l?`${g} 分钟`:`${g}min`}function y1(u,l=!1){return z1(u.next_snooze_seconds,l)}function f1(u){const l=[],L=[];u.current_slot>0&&L.push(`第 ${u.current_slot} 诊`),L.push(u.medication_days>0?`${u.medication_days} 天`:"缺开药天数"),l.push(L.join("·"));const g=X(u.due_date);return g&&l.push(`药尽 ${g}`),l.join(" · ")}function g1(u){if(u.state_text)return u.state_text;if(u.state==="overdue"){const l=Number(u.overdue_days??0);return l<=0?"今日应挂号":`超期 ${l} 天`}if(u.state==="missed"){const l=X(u.appointment_date);return l?`过号 ${l}`:"过号"}return u1(u.state)}function Z3(){const u=new Date;return u.setHours(0,0,0,0),u}function w1(u,l){const L=new Date(u.getTime());return L.setDate(L.getDate()+l),L}function L0(u){const l=u.getFullYear(),L=String(u.getMonth()+1).padStart(2,"0"),g=String(u.getDate()).padStart(2,"0");return`${l}-${L}-${g}`}function A1(u){const l=Z3().getTime(),L=w1(Z3(),b1.value).getTime()+86399999,g=u.getTime();return gL}function X3(){b.promised_date=L0(w1(Z3(),Math.min(3,b1.value))),b.remark=""}function E0(u){if(!u||typeof u!="object")return null;const l=u,L=Number(l.id);if(!Number.isFinite(L)||L<=0)return null;const g=(F,v3=0)=>{const w=Number(F);return Number.isFinite(w)?Math.trunc(w):v3},D=F=>F==null?"":String(F);return{id:L,diagnosis_id:g(l.diagnosis_id),assistant_id:g(l.assistant_id),patient_name:D(l.patient_name).trim()||"患者",current_slot:g(l.current_slot),next_slot:g(l.next_slot),medication_days:g(l.medication_days),due_date:D(l.due_date),overdue_days:l.overdue_days===null||l.overdue_days===void 0?null:g(l.overdue_days),state:D(l.state)||"overdue",state_text:D(l.state_text),severe:g(l.severe)===1?1:0,missed_count:g(l.missed_count),snooze_count:g(l.snooze_count),escalation_level:Math.max(0,Math.min(3,g(l.escalation_level))),contact_count:g(l.contact_count),promised_date:D(l.promised_date),next_remind_at:g(l.next_remind_at),next_remind_at_text:D(l.next_remind_at_text),next_snooze_seconds:g(l.next_snooze_seconds,1800),appointment_date:D(l.appointment_date),closed_state:g(l.closed_state)}}function V1(u,l){const L=Date.now();for(const[w,$]of E)$<=L&&E.delete(w);const g=new Set,D=[];for(const w of Array.isArray(u)?u:[]){const $=E0(w);!$||g.has($.id)||(E.get($.id)??0)>L||(g.add($.id),D.push($))}const F=new Set(i.value.map(w=>w.id)),v3=D.some(w=>!F.has(w.id));i.value=D,s.value=l&&typeof l=="object"?l:null,v3&&n.value&&(n.value=!1),p.value&&!D.some(w=>w.id===p.value)&&(p.value=0),v3&&z3.value>=2&&L1()}function y3(u,l,L){if(u.length===0)return;const g=Date.now()+L,D=new Set(u);for(const F of D)E.set(F,g);i.value=i.value.filter(F=>!D.has(F.id)),p.value&&D.has(p.value)&&(p.value=0),f.value&&B.value===null&&(f.value=!1),l&&x1({type:"removed",uid:V(),ids:[...D]})}function L1(){r.value=!1,I&&clearTimeout(I),G1(()=>{r.value=!0,I=setTimeout(()=>{r.value=!1},700)})}w3(z3,(u,l)=>{u>=2&&(n.value=!1,l<2&&L1())}),w3(B,u=>{u?X3():f.value=!1}),w3(l3,u=>{u?I3({force:!0}):i.value=[]});function E1(){try{return Number(localStorage.getItem(N1)||0)||0}catch{return 0}}function x0(u){try{localStorage.setItem(N1,String(u))}catch{}}function x1(u){try{O==null||O.postMessage(u)}catch{}}async function I3(u={}){if(!l3.value||typeof document<"u"&&document.hidden||M)return;const l=Date.now();if(!(!u.force&&l-E1()=Z7})}function T0(){}function O0(){h1.value&&(n.value=!0)}function H0(){n.value=!1}function T1(u){y3([u.id],!1,X7),a.push({path:"/tcm/diagnosis",query:{id:String(u.diagnosis_id),action:"appointment"}})}function I0(){a.push({path:"/tcm/diagnosis",query:{revisit_state:"due"}})}function D0(u){if(p.value===u.id){p.value=0;return}X3(),p.value=u.id}async function O1(u){if(!v.value){v.value=u.id;try{await d7({id:u.id}),y3([u.id],!0,B3)}catch{}finally{v.value=0}}}async function R0(){if(d.value)return;const u=p1.value.map(l=>l.id);if(u.length!==0){d.value=!0;try{await m7({ids:u}),y3(u,!0,B3)}catch{}finally{d.value=!1}}}async function H1(u){if(v.value)return;const l=String(b.promised_date||"").trim();if(!l){m3.msgWarning("请选择患者承诺复诊日");return}v.value=u.id;try{await _7({id:u.id,promised_date:l,remark:b.remark.trim()}),y3([u.id],!0,B3),p.value=0,f.value=!1}catch{}finally{v.value=0}}return _1(()=>{if(X3(),typeof BroadcastChannel<"u")try{O=new BroadcastChannel(K7),O.onmessage=M0}catch{O=null}document.addEventListener("visibilitychange",M1),I3(),N=setInterval(()=>void I3(),U7)}),c0(()=>{N&&clearInterval(N),I&&clearTimeout(I),document.removeEventListener("visibilitychange",M1),O&&(O.onmessage=null,O.close(),O=null)}),(u,l)=>{const L=d1,g=K1,D=p2,F=b2,v3=z2;return h(),A(U,null,[(h(),R(r0,{to:"body"},[_(s0,{name:"rd-toast-fade"},{default:z(()=>[c(k)?(h(),A("div",{key:0,class:t3(["rd-toast",[`rd-toast--level-${c(z3)}`,{"rd-toast--shake":c(r),"rd-toast--minimized":c(n)}]]),role:"alert"},[c(n)?(h(),A("button",{key:0,type:"button",class:"rd-toast__bubble",title:"展开到期提醒",onClick:H0},[l[10]||(l[10]=m("span",{class:"rd-toast__warn"},"⚠",-1)),m("span",null,H(c(j).length)+" 位患者到期未挂号",1)])):(h(),A(U,{key:1},[m("div",w7,[m("div",A7,[l[11]||(l[11]=m("span",{class:"rd-toast__warn"},"⚠",-1)),m("span",null,H(c(j).length)+" 位患者到期未挂号",1),c(v1)>0?(h(),A("span",V7," 已延迟 "+H(c(v1))+" 次 ",1)):C("",!0)]),c(h1)?(h(),A("button",{key:0,type:"button",class:"rd-toast__min","aria-label":"最小化",title:"最小化",onClick:O0},[_(L,{size:14},{default:z(()=>[_(c(h2))]),_:1})])):C("",!0)]),m("div",L7,[(h(!0),A(U,null,_3(c(Y3),w=>(h(),A("div",{key:w.id,class:t3(["rd-item",[`rd-item--${w.state}`,{"rd-item--severe":w.severe===1}]])},[m("div",E7,[m("div",x7,[m("span",M7,H(w.patient_name),1),m("span",T7,H(f1(w)),1)]),m("div",O7,[m("span",{class:t3(["rd-chip",[`rd-chip--${w.state}`,{"rd-chip--severe":w.severe===1}]])},H(g1(w)),3),w.missed_count>0?(h(),A("span",H7," 曾过号 "+H(w.missed_count)+" 次 ",1)):C("",!0),w.snooze_count>0?(h(),A("span",I7," 已延迟 "+H(w.snooze_count)+" 次 ",1)):C("",!0)])]),m("div",D7,[_(g,{size:"small",type:"danger",onClick:$=>T1(w)},{default:z(()=>[...l[12]||(l[12]=[P(" 去挂号 ",-1)])]),_:1},8,["onClick"]),_(g,{size:"small",type:c(p)===w.id?"primary":"default",plain:"",onClick:$=>D0(w)},{default:z(()=>[...l[13]||(l[13]=[P(" 已联系 ",-1)])]),_:1},8,["type","onClick"]),_(g,{size:"small",plain:"",loading:c(v)===w.id,onClick:$=>O1(w)},{default:z(()=>[P(" 延迟 "+H(y1(w)),1)]),_:2},1032,["loading","onClick"])]),c(p)===w.id?(h(),A("div",R7,[_(D,{modelValue:c(b).promised_date,"onUpdate:modelValue":l[0]||(l[0]=$=>c(b).promised_date=$),type:"date",size:"small","value-format":"YYYY-MM-DD",clearable:!1,"disabled-date":A1,"popper-class":"rd-toast-popper",placeholder:"患者承诺复诊日",class:"rd-contact__date"},null,8,["modelValue"]),_(F,{modelValue:c(b).remark,"onUpdate:modelValue":l[1]||(l[1]=$=>c(b).remark=$),size:"small",maxlength:"200",placeholder:"备注(选填)",class:"rd-contact__remark"},null,8,["modelValue"]),m("div",P7,[_(g,{size:"small",type:"primary",loading:c(v)===w.id,onClick:$=>H1(w)},{default:z(()=>[...l[14]||(l[14]=[P(" 确定 ",-1)])]),_:1},8,["loading","onClick"]),_(g,{size:"small",onClick:l[2]||(l[2]=$=>p.value=0)},{default:z(()=>[...l[15]||(l[15]=[P(" 取消 ",-1)])]),_:1})])])):C("",!0)],2))),128))]),c(H3)>0?(h(),A("div",S7,[m("span",null,"还有 "+H(c(H3))+" 位",1),_(g,{link:"",type:"primary",size:"small",onClick:I0},{default:z(()=>[...l[16]||(l[16]=[P(" 查看全部 ",-1)])]),_:1})])):C("",!0),c(A0)?(h(),A("div",C7,[_(g,{size:"small",plain:"",loading:c(d),onClick:R0},{default:z(()=>[P(H(c(V0)),1)]),_:1},8,["loading"])])):C("",!0)],64))],2)):C("",!0)]),_:1})])),_(v3,{"model-value":c(B)!==null,"close-on-click-modal":!1,"close-on-press-escape":!1,"show-close":!1,"z-index":3100,"append-to-body":"","align-center":"","destroy-on-close":"",width:"440px",class:"rd-modal","onUpdate:modelValue":T0},{header:z(()=>{var w;return[m("div",B7,[l[17]||(l[17]=m("span",{class:"rd-toast__warn"},"⚠",-1)),m("span",null," 该患者已延迟 "+H(((w=c(B))==null?void 0:w.snooze_count)??0)+" 次,请立即处理 ",1)])]}),footer:z(()=>[c(B)?(h(),A("div",G7,[_(g,{type:"danger",onClick:l[7]||(l[7]=w=>T1(c(B)))},{default:z(()=>[...l[20]||(l[20]=[P("去挂号",-1)])]),_:1}),_(g,{plain:"",onClick:l[8]||(l[8]=w=>f.value=!c(f))},{default:z(()=>[...l[21]||(l[21]=[P("已联系",-1)])]),_:1}),_(g,{plain:"",loading:c(v)===c(B).id,onClick:l[9]||(l[9]=w=>O1(c(B)))},{default:z(()=>[P(" 再延迟 "+H(y1(c(B),!0)),1)]),_:1},8,["loading"])])):C("",!0)]),default:z(()=>[c(B)?(h(),A("div",k7,[m("div",j7,H(c(B).patient_name),1),m("div",N7,H(f1(c(B))),1),m("div",$7,[m("span",{class:t3(["rd-chip",[`rd-chip--${c(B).state}`,{"rd-chip--severe":c(B).severe===1}]])},H(g1(c(B))),3),c(B).missed_count>0?(h(),A("span",W7," 曾过号 "+H(c(B).missed_count)+" 次 ",1)):C("",!0)]),c(f)?(h(),A("div",q7,[_(D,{modelValue:c(b).promised_date,"onUpdate:modelValue":l[3]||(l[3]=w=>c(b).promised_date=w),type:"date",size:"small","value-format":"YYYY-MM-DD",clearable:!1,"disabled-date":A1,"popper-class":"rd-toast-popper",placeholder:"患者承诺复诊日",class:"rd-contact__date"},null,8,["modelValue"]),_(F,{modelValue:c(b).remark,"onUpdate:modelValue":l[4]||(l[4]=w=>c(b).remark=w),size:"small",maxlength:"200",placeholder:"备注(选填)",class:"rd-contact__remark"},null,8,["modelValue"]),m("div",F7,[_(g,{size:"small",type:"primary",loading:c(v)===c(B).id,onClick:l[5]||(l[5]=w=>H1(c(B)))},{default:z(()=>[...l[18]||(l[18]=[P(" 确定 ",-1)])]),_:1},8,["loading"]),_(g,{size:"small",onClick:l[6]||(l[6]=w=>f.value=!1)},{default:z(()=>[...l[19]||(l[19]=[P("取消",-1)])]),_:1})])])):C("",!0)])):C("",!0)]),_:1},8,["model-value"])],64)}}}),Q7=Y(J7,[["__scopeId","data-v-7c5efeca"]]),e5=S({__name:"App",setup(e){const a=e3(),o=s3(),i=i3(),s=G3(),n=y(()=>{var p;return!!i.token&&s.path!=="/bind-work-wechat"&&!((p=i.userInfo)!=null&&p.need_bind_work_wechat)}),r={zIndex:2e3,locale:A2},v=Z1();_1(async()=>{console.log("主题颜色",v.value),o.setTheme(v.value)});const{width:d}=f2();return w3(d,g2(p=>{p>t1.SM?(a.setMobile(!1),a.toggleCollapsed(!1)):(a.setMobile(!0),a.toggleCollapsed(!0)),p{const b=T3("router-view"),E=w2;return h(),R(E,{locale:r.locale,"z-index":r.zIndex},{default:z(()=>[_(b),n.value?(h(),R(c7,{key:0})):C("",!0),n.value?(h(),R(Q7,{key:1})):C("",!0)]),_:1},8,["locale","z-index"])}}}),a1="data-clipboard-text",a5={mounted:(e,a)=>{e.setAttribute(a1,a.value);const{toClipboard:o}=V2();e.onclick=()=>{o(e.getAttribute(a1)).then(()=>{m3.msgSuccess("复制成功")}).catch(()=>{m3.msgError("复制失败")})}},updated:(e,a)=>{e.setAttribute(a1,a.value)}},o5=Object.freeze(Object.defineProperty({__proto__:null,default:a5},Symbol.toStringTag,{value:"Module"}));function $1(e,a){const{value:o}=a,s=i3().perms||[],n="*";if(!Array.isArray(o))throw new Error(`like v-perms="['auth.menu/edit']"`);if(o.length===0){e.style.removeProperty("display");return}s.some(v=>n==v||o.includes(v))?e.style.removeProperty("display"):e.style.display="none"}const t5={mounted:(e,a)=>{$1(e,a)},updated:(e,a)=>{$1(e,a)}},i5=Object.freeze(Object.defineProperty({__proto__:null,default:t5},Symbol.toStringTag,{value:"Module"}));L2([E2,x2,M2,T2,O2,H2,I2,D2,R2,P2,S2,C2,B2,k2,j2,N2,$2,W2,q2,F2,G2,U2,Y2,Z2,X2]);const s5=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),n5=e=>{for(const[a,o]of Object.entries(Y1))e.component(a,o)},l5=Object.freeze(Object.defineProperty({__proto__:null,default:n5},Symbol.toStringTag,{value:"Module"}));console.log(K2);const c5=e=>{e.use(J2)},r5=Object.freeze(Object.defineProperty({__proto__:null,default:c5},Symbol.toStringTag,{value:"Module"})),u5=Q2(),d5=e=>{e.use(u5)},m5=Object.freeze(Object.defineProperty({__proto__:null,default:d5},Symbol.toStringTag,{value:"Module"}));function _5(e){e.beforeEach(async()=>{const a=e3();if(!a.configFetchAttempted){a.$patch({configFetchAttempted:!0});try{const o=await a.getConfig();let i=document.querySelector('link[rel="icon"]');i&&(o!=null&&o.web_favicon)&&(i.href=o.web_favicon),o!=null&&o.web_favicon&&(i=document.createElement("link"),i.rel="icon",i.href=o.web_favicon,document.head.appendChild(i))}catch{}}})}const v5=Object.freeze(Object.defineProperty({__proto__:null,default:_5},Symbol.toStringTag,{value:"Module"})),W1=Object.assign({"./init.ts":v5});function h5(e){Object.keys(W1).forEach(a=>{const o=W1[a].default;typeof o=="function"&&o(e)})}const p5=e=>{h5(W),e.use(W)},b5=Object.freeze(Object.defineProperty({__proto__:null,default:p5},Symbol.toStringTag,{value:"Module"}));function z5(e){typeof window<"u"&&(window.__TUIKIT_INITIALIZED__=!0)}const y5=Object.freeze(Object.defineProperty({__proto__:null,default:z5},Symbol.toStringTag,{value:"Module"})),q1=Object.assign({"./directives/copy.ts":o5,"./directives/perms.ts":i5,"./plugins/echart.ts":s5,"./plugins/element.ts":l5,"./plugins/hljs.ts":r5,"./plugins/pinia.ts":m5,"./plugins/router.ts":b5,"./plugins/tuikit.ts":y5});function f5(e){Object.keys(q1).forEach(a=>{const o=a.replace(/(.*\/)*([^.]+).*/gi,"$2"),i=a.replace(/^\.\/([\w-]+).*/gi,"$1"),s=q1[a];if(s.default)switch(i){case"directives":e.directive(o,s.default);break;case"plugins":typeof s.default=="function"&&s.default(e);break}})}const g5={install:f5},w0=e6(e5);w0.use(g5);w0.mount("#app");v0().then(e=>{console.log(`%c likeadmin %c v${e.version} `,"padding: 4px 1px; border-radius: 3px 0 0 3px; color: #fff; background: #bbb; font-weight: bold;","padding: 4px 1px; border-radius: 0 3px 3px 0; color: #fff; background: #4A5DFF; font-weight: bold;")});export{Z as $,L5 as A,P5 as B,V5 as C,s4 as D,N5 as E,$5 as F,F5 as G,Y5 as H,G5 as I,q5 as J,W5 as K,U5 as L,N3 as M,Q5 as N,K5 as O,q as P,e8 as Q,u3 as R,X as S,l8 as T,s8 as U,i8 as V,a8 as W,o8 as X,y7 as Y,J5 as Z,Y as _,x5 as a,b7 as a0,r8 as a1,g0 as a2,t8 as a3,h7 as a4,z7 as a5,c8 as a6,y0 as a7,u8 as a8,n8 as a9,T5 as aa,E5 as ab,j5 as ac,I5 as ad,M5 as b,n3 as c,O5 as d,e3 as e,Q as f,_0 as g,L4 as h,H5 as i,m3 as j,J6 as k,X5 as l,s3 as m,D5 as n,E3 as o,A4 as p,J as q,T as r,C1 as s,B5 as t,i3 as u,k5 as v,Z5 as w,C5 as x,S5 as y,R5 as z}; diff --git a/server/public/admin/assets/index-DwDe6YfY.js b/server/public/admin/assets/index-Bl1J7R8z.js similarity index 98% rename from server/public/admin/assets/index-DwDe6YfY.js rename to server/public/admin/assets/index-Bl1J7R8z.js index 5fc351de4..512addace 100644 --- a/server/public/admin/assets/index-DwDe6YfY.js +++ b/server/public/admin/assets/index-Bl1J7R8z.js @@ -1 +1 @@ -import{o as je,R as Ge,ap as Qe,by as We,q as o,r,O as x,bo as Xe,P as f,s as a,v as l,D as i,K as Ye,u as y,w as Je,bz as ve,a1 as Ze,bA as es,F as M,G as I,bi as ss,a0 as ts,L as v,T as d,bh as as,bB as ls,bc as ns,aA as is,bg as os,ac as ae,bn as us,bC as rs,ae as ds,bD as cs,bm as _s,as as fs,X as vs,Y as ms,bE as ps,bk as gs,bl as ys,aB as hs,M as _,p as me,n as le}from"./.pnpm-CyuAWpdG.js";import{j as C,t as ks,_ as ws}from"./index-Dxvz9lb1.js";import{u as bs}from"./usePaging-CghUEVfD.js";import xs from"./MessageBubble-CRT5BPUN.js";import{q as Ss,S as Ts,a as Ms,b as zs,c as Es,d as Cs,e as ne,f as Ds,g as Vs,h as pe}from"./SendPanel-Da0QIw47.js";import"./file-CefRfHD9.js";const $s={class:"qywx-im"},Ls={class:"im-layout"},As={class:"col-session"},Bs={class:"col-header"},qs={class:"col-actions"},Is={class:"col-filters"},Ps={class:"staff-option"},Hs={class:"staff-userid"},Ns={class:"session-list"},Us={key:0,class:"empty-tip"},Rs=["onClick"],Ks={class:"session-meta"},Fs={class:"session-top"},Os={class:"session-name"},js={class:"session-time"},Gs={class:"session-bottom"},Qs={class:"session-preview"},Ws={key:0,class:"session-staff"},Xs={key:1,class:"session-load-more"},Ys={class:"col-message"},Js={key:0,class:"no-session"},Zs={class:"col-header"},et={class:"msg-header-title"},st={class:"msg-customer-name"},tt={class:"msg-customer-sub"},at={class:"col-actions"},lt={key:0,class:"load-history"},nt={key:1,class:"load-history end-tip"},it={key:2,class:"empty-tip"},ot={class:"col-profile"},ut={class:"profile-panel"},rt={class:"profile-name"},dt={class:"profile-fields"},ct={class:"field"},_t={class:"value"},ft={class:"field"},vt=["title"],mt={key:0,class:"field"},pt={class:"value"},gt={key:1,class:"field"},yt={class:"value"},ht={class:"field"},kt={class:"value"},wt={class:"field"},bt={class:"value"},xt={class:"tasks-panel"},St={key:0,class:"empty-tip"},Tt={class:"task-top"},Mt={class:"task-time"},zt={class:"task-body"},Et={key:0,class:"task-text"},Ct={key:1,class:"task-attachments"},Dt={key:2,class:"task-error"},Vt={class:"task-actions"},$t={key:1,class:"no-session"},Lt={class:"tips"},At={key:1,class:"mt-2 text-center"},Bt=je({__name:"index",setup(qt){const z=_(null),j=_(!1),ge=me(()=>{if(!z.value)return"";const s=z.value;return s.enabled?`会话存档 SDK 不可用:${s.error||"未知错误"}`:"「会话内容存档」未启用,实时消息不可用。请在后端 pay.php 中开启 msgaudit_enabled 并配置 SDK 动态库与 RSA 私钥。"});async function ye(){try{z.value=await Ms()}catch{}}async function he(){j.value=!0;try{await zs(5,!0),C.msgSuccess("已触发一次拉取,稍后刷新可见"),await S(!0),n.value&&await X()}catch(s){C.msgError((s==null?void 0:s.msg)||(s==null?void 0:s.message)||"拉取失败")}finally{j.value=!1}}const G=_([]);async function ke(){try{const s=await Es();G.value=Array.isArray(s)?s:(s==null?void 0:s.lists)||[]}catch{G.value=[]}}const E=_({staff_userid:"",keyword:"",only_unread:0}),Q=_(!1);Ge(Q,s=>{E.value.only_unread=s?1:0});const{pager:g,getLists:W}=bs({fetchFun:Ss,params:E.value,size:30});function S(s=!1){return s||(g.page=1),W()}async function we(){const s=[...g.lists||[]];g.page+=1;try{await W();const e=g.lists||[],u=new Set(s.map(m=>m.id)),c=[...s,...e.filter(m=>!u.has(m.id))];g.lists=c}catch{}}const n=_(null),h=_([]),P=_(!1),D=_(!1),V=_(!1),H=_(0),N=_(0),k=_(null),be=me(()=>!!n.value&&n.value.session_type!==2);async function xe(s){var e;if(((e=n.value)==null?void 0:e.id)!==s.id){if(n.value=s,h.value=[],H.value=0,N.value=0,V.value=!1,await X(),await ue(),s.unread_staff>0)try{await Cs(s.id),s.unread_staff=0}catch{}U.value="profile"}}async function X(){if(n.value){P.value=!0;try{const s=await ne({session_id:n.value.id,page_no:1,page_size:30}),e=(s==null?void 0:s.lists)||[];h.value=e,e.length&&(H.value=e[0].send_time,N.value=e[e.length-1].send_time),V.value=e.length>=30,await le(),oe()}catch(s){C.msgError((s==null?void 0:s.msg)||(s==null?void 0:s.message)||"加载消息失败")}finally{P.value=!1}}}async function ie(){var e;if(!n.value||D.value)return;D.value=!0;const s=((e=k.value)==null?void 0:e.scrollHeight)||0;try{const u=await ne({session_id:n.value.id,page_no:1,page_size:30,before_time:H.value}),c=(u==null?void 0:u.lists)||[];c.length&&(H.value=c[0].send_time,h.value=[...c,...h.value]),V.value=c.length>=30,await le(),k.value&&(k.value.scrollTop=k.value.scrollHeight-s)}finally{D.value=!1}}async function Se(){if(n.value)try{const s=await ne({session_id:n.value.id,page_no:1,page_size:50,after_time:N.value}),e=(s==null?void 0:s.lists)||[];if(!e.length)return;const u=new Set(h.value.map(T=>T.id)),c=e.filter(T=>!u.has(T.id));if(!c.length)return;h.value=[...h.value,...c],N.value=c[c.length-1].send_time;const m=k.value;(m?m.scrollHeight-m.scrollTop-m.clientHeight<120:!0)&&(await le(),oe())}catch{}}function Te(){const s=k.value;s&&s.scrollTop<40&&V.value&&!D.value&&ie()}function oe(){k.value&&(k.value.scrollTop=k.value.scrollHeight)}async function Me(s){if(n.value)try{await Ds({sender_userid:n.value.staff_userid,external_userids:[n.value.external_userid],msg_payload:s,chat_type:"single"}),C.msgSuccess("已创建群发任务,员工手机确认后送达客户"),await ue(),U.value="tasks"}catch(e){C.msgError((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"发送失败")}}const U=_("profile"),R=_([]),Y=_(!1);async function ue(){if(n.value){Y.value=!0;try{const s=await Vs({sender_userid:n.value.staff_userid,page_no:1,page_size:50}),e=(s==null?void 0:s.lists)||[];R.value=e.filter(u=>(u.external_userids||[]).includes(n.value.external_userid))}finally{Y.value=!1}}}function ze(s){return{0:"待提交",1:"已提交",2:"已送达",3:"失败"}[s]??`状态${s}`}function Ee(s){return{0:"info",1:"primary",2:"success",3:"danger"}[s]??"info"}function Ce(s){return{image:"图片",video:"视频",file:"文件",link:"链接",miniprogram:"小程序"}[s]||s}const J=_(!1),$=_(!1),re=_(0),w=_(null);async function De(s){re.value=s.id,w.value={detail_list:[],next_cursor:""},J.value=!0,$.value=!0;try{const e=await pe(s.id,"");w.value={detail_list:(e==null?void 0:e.detail_list)||[],next_cursor:(e==null?void 0:e.next_cursor)||"",task:e==null?void 0:e.task}}catch(e){C.msgError((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"加载失败")}finally{$.value=!1}}async function Ve(){var s;if((s=w.value)!=null&&s.next_cursor){$.value=!0;try{const e=await pe(re.value,w.value.next_cursor);w.value={detail_list:[...w.value.detail_list,...(e==null?void 0:e.detail_list)||[]],next_cursor:(e==null?void 0:e.next_cursor)||"",task:e==null?void 0:e.task}}finally{$.value=!1}}}function $e(s){switch(s){case 0:return"未发送";case 1:return"已送达";case 2:return"被拒收";case 3:return"已送达(未读)";default:return`状态${s}`}}function Le(s){return s===1?"success":s===2?"warning":s===3?"primary":"info"}function L(s){var e;return(e=s.customer)!=null&&e.name?s.customer.name:s.session_type===2?`群聊 ${s.roomid.slice(-6)}`:s.external_userid||"未命名客户"}function Ae(s){const e=s.last_msg_summary||"",u=s.last_msg_type;return e||(u==="image"?"[图片]":u==="video"?"[视频]":u==="voice"?"[语音]":u==="file"?"[文件]":u==="link"?"[链接]":u==="weapp"?"[小程序]":u==="chatrecord"?"[聊天记录]":u?`[${u}]`:"暂无消息")}function Z(s){return s?ks(s*1e3,"yyyy-mm-dd hh:MM"):"-"}function Be(s){if(!s)return"";const u=Math.floor(Date.now()/1e3)-s;if(u<60)return`${u}秒前`;if(u<3600)return`${Math.floor(u/60)}分前`;if(u<86400)return`${Math.floor(u/3600)}小时前`;const c=new Date(s*1e3);return`${c.getMonth()+1}-${c.getDate()}`}let ee=null,se=null;return Qe(async()=>{await Promise.all([ye(),ke()]),await S(),ee=window.setInterval(()=>{W({silent:!0}).catch(()=>{})},15e3),se=window.setInterval(()=>{Se()},8e3)}),We(()=>{ee&&window.clearInterval(ee),se&&window.clearInterval(se)}),(s,e)=>{var ce,_e;const u=Xe,c=Je,m=Ye,K=Ze,T=ts,qe=ss,Ie=as,Pe=is,He=os,F=rs,Ne=cs,A=_s,de=vs,Ue=ms,Re=ps,O=ys,Ke=gs,Fe=hs,te=us;return o(),r("div",$s,[z.value&&!z.value.available?(o(),x(u,{key:0,title:ge.value,type:"warning",closable:!1,"show-icon":"",class:"archive-warning"},null,8,["title"])):f("",!0),a("div",Ls,[a("section",As,[a("header",Bs,[e[11]||(e[11]=a("div",{class:"col-title"},"会话",-1)),a("div",qs,[l(K,{content:"刷新"},{default:i(()=>[l(m,{size:"small",link:"",loading:y(g).loading,onClick:e[0]||(e[0]=t=>S(!0))},{default:i(()=>[l(c,null,{default:i(()=>[l(y(ve))]),_:1})]),_:1},8,["loading"])]),_:1}),l(K,{content:"手动拉一次存档"},{default:i(()=>{var t;return[l(m,{size:"small",link:"",disabled:!((t=z.value)!=null&&t.available),loading:j.value,onClick:he},{default:i(()=>[l(c,null,{default:i(()=>[l(y(es))]),_:1})]),_:1},8,["disabled","loading"])]}),_:1})])]),a("div",Is,[l(Ie,{modelValue:E.value.staff_userid,"onUpdate:modelValue":e[1]||(e[1]=t=>E.value.staff_userid=t),placeholder:"全部员工",clearable:"",filterable:"",size:"default",style:{width:"100%"},onChange:e[2]||(e[2]=t=>S())},{default:i(()=>[(o(!0),r(M,null,I(G.value,t=>(o(),x(qe,{key:t.userid,label:(t.name||t.userid)+"("+t.userid+")",value:t.userid},{default:i(()=>[a("div",Ps,[l(T,{size:20,src:t.avatar},{default:i(()=>[v(d((t.name||"").slice(-2)),1)]),_:2},1032,["src"]),a("span",null,d(t.name),1),a("span",Hs,d(t.userid),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue"]),l(Pe,{modelValue:E.value.keyword,"onUpdate:modelValue":e[3]||(e[3]=t=>E.value.keyword=t),placeholder:"搜索客户或消息",clearable:"",size:"default",onKeyup:e[4]||(e[4]=ns(t=>S(),["enter"])),onClear:e[5]||(e[5]=t=>S())},{prefix:i(()=>[l(c,null,{default:i(()=>[l(y(ls))]),_:1})]),_:1},8,["modelValue"]),l(He,{modelValue:Q.value,"onUpdate:modelValue":e[6]||(e[6]=t=>Q.value=t),onChange:e[7]||(e[7]=t=>S())},{default:i(()=>[...e[12]||(e[12]=[v(" 仅未读 ",-1)])]),_:1},8,["modelValue"])]),ae((o(),r("div",Ns,[!y(g).lists.length&&!y(g).loading?(o(),r("div",Us,[l(F,{description:"暂无会话","image-size":80})])):f("",!0),(o(!0),r(M,null,I(y(g).lists,t=>{var p;return o(),r("div",{key:t.id,class:ds(["session-item",{active:((p=n.value)==null?void 0:p.id)===t.id}]),onClick:b=>xe(t)},[l(Ne,{value:t.unread_staff,hidden:!t.unread_staff,max:99},{default:i(()=>{var b;return[l(T,{size:42,src:((b=t.customer)==null?void 0:b.avatar)||""},{default:i(()=>[v(d(L(t).slice(-2)),1)]),_:2},1032,["src"])]}),_:2},1032,["value","hidden"]),a("div",Ks,[a("div",Fs,[a("span",Os,d(L(t)),1),a("span",js,d(Be(t.last_msg_time)),1)]),a("div",Gs,[a("span",Qs,d(Ae(t)),1),t.session_type===2?(o(),x(A,{key:0,size:"small",type:"info",class:"session-tag"},{default:i(()=>[...e[13]||(e[13]=[v(" 群 ",-1)])]),_:1})):f("",!0)]),t.staff?(o(),r("div",Ws," 员工: "+d(t.staff.name||t.staff_userid),1)):f("",!0)])],10,Rs)}),128)),y(g).lists.length[...e[14]||(e[14]=[v(" 加载更多 ",-1)])]),_:1})])):f("",!0)])),[[te,y(g).loading]])]),a("section",Ys,[n.value?(o(),r(M,{key:1},[a("header",Zs,[a("div",et,[a("div",st,d(L(n.value)),1),a("div",tt,[(ce=n.value.customer)!=null&&ce.corp_name?(o(),r(M,{key:0},[v(d(n.value.customer.corp_name)+" · ",1)],64)):f("",!0),v(" 代发员工: "+d(((_e=n.value.staff)==null?void 0:_e.name)||n.value.staff_userid)+" ",1),n.value.session_type===2?(o(),x(A,{key:1,size:"small",type:"info",class:"ml-1"},{default:i(()=>[...e[15]||(e[15]=[v(" 群聊 ",-1)])]),_:1})):f("",!0)])]),a("div",at,[l(K,{content:"刷新消息"},{default:i(()=>[l(m,{link:"",size:"small",loading:P.value,onClick:e[8]||(e[8]=t=>X())},{default:i(()=>[l(c,null,{default:i(()=>[l(y(ve))]),_:1})]),_:1},8,["loading"])]),_:1})])]),a("div",{ref_key:"messageListRef",ref:k,class:"message-list",onScroll:Te},[V.value?(o(),r("div",lt,[l(m,{link:"",type:"primary",loading:D.value,onClick:ie},{default:i(()=>[...e[16]||(e[16]=[v(" 加载更早的消息 ",-1)])]),_:1},8,["loading"])])):h.value.length?(o(),r("div",nt," —— 没有更早的消息了 —— ")):f("",!0),!h.value.length&&!P.value?(o(),r("div",it,[l(F,{description:"暂无消息","image-size":80})])):f("",!0),(o(!0),r(M,null,I(h.value,t=>(o(),x(xs,{key:t.id,message:t},null,8,["message"]))),128))],544),l(Ts,{"can-send-message":be.value,onSend:Me},null,8,["can-send-message"])],64)):(o(),r("div",Js,[l(F,{description:"选择左侧会话查看消息"},{image:i(()=>[l(c,{size:60,color:"#ccc"},{default:i(()=>[l(y(fs))]),_:1})]),_:1})]))]),a("section",ot,[n.value?(o(),x(Ue,{key:0,modelValue:U.value,"onUpdate:modelValue":e[9]||(e[9]=t=>U.value=t),class:"profile-tabs"},{default:i(()=>[l(de,{label:"客户资料",name:"profile"},{default:i(()=>{var t,p,b,B,q;return[a("div",ut,[l(T,{size:72,src:((t=n.value.customer)==null?void 0:t.avatar)||""},{default:i(()=>[v(d(L(n.value).slice(-2)),1)]),_:1},8,["src"]),a("div",rt,d(L(n.value)),1),a("div",dt,[a("div",ct,[e[17]||(e[17]=a("span",{class:"label"},"客户类型",-1)),a("span",_t,d(((p=n.value.customer)==null?void 0:p.type)===2?"@微信":"@企业微信"),1)]),a("div",ft,[e[18]||(e[18]=a("span",{class:"label"},"外部 ID",-1)),a("span",{class:"value ellipsis",title:n.value.external_userid},d(n.value.external_userid||"-"),9,vt)]),(b=n.value.customer)!=null&&b.corp_name?(o(),r("div",mt,[e[19]||(e[19]=a("span",{class:"label"},"所属企业",-1)),a("span",pt,d(n.value.customer.corp_name),1)])):f("",!0),(B=n.value.customer)!=null&&B.gender?(o(),r("div",gt,[e[20]||(e[20]=a("span",{class:"label"},"性别",-1)),a("span",yt,d(n.value.customer.gender===1?"男":n.value.customer.gender===2?"女":"未知"),1)])):f("",!0),a("div",ht,[e[21]||(e[21]=a("span",{class:"label"},"代发员工",-1)),a("span",kt,d(((q=n.value.staff)==null?void 0:q.name)||n.value.staff_userid),1)]),a("div",wt,[e[22]||(e[22]=a("span",{class:"label"},"最近消息",-1)),a("span",bt,d(Z(n.value.last_msg_time)),1)])])])]}),_:1}),l(de,{label:`发送任务(${R.value.length})`,name:"tasks"},{default:i(()=>[ae((o(),r("div",xt,[R.value.length?f("",!0):(o(),r("div",St,[l(F,{description:"暂无任务","image-size":80})])),(o(!0),r(M,null,I(R.value,t=>{var p,b,B,q;return o(),r("div",{key:t.id,class:"task-item"},[a("div",Tt,[l(A,{type:Ee(t.status),size:"small"},{default:i(()=>[v(d(ze(t.status)),1)]),_:2},1032,["type"]),a("span",Mt,d(Z(t.create_time)),1)]),a("div",zt,[(b=(p=t.msg_payload)==null?void 0:p.text)!=null&&b.content?(o(),r("div",Et,d(t.msg_payload.text.content),1)):f("",!0),(q=(B=t.msg_payload)==null?void 0:B.attachments)!=null&&q.length?(o(),r("div",Ct,[e[23]||(e[23]=v(" 附件: ",-1)),(o(!0),r(M,null,I(t.msg_payload.attachments,(fe,Oe)=>(o(),x(A,{key:Oe,size:"small",type:"info",class:"mr-1"},{default:i(()=>[v(d(Ce(fe.msgtype)),1)]),_:2},1024))),128))])):f("",!0),t.error?(o(),r("div",Dt,d(t.error),1)):f("",!0)]),a("div",Vt,[l(m,{size:"small",link:"",type:"primary",onClick:fe=>De(t)},{default:i(()=>[...e[24]||(e[24]=[v(" 送达详情 ",-1)])]),_:1},8,["onClick"])])])}),128))])),[[te,Y.value]])]),_:1},8,["label"])]),_:1},8,["modelValue"])):(o(),r("div",$t,[a("div",Lt,[e[25]||(e[25]=a("h4",null,"企业微信 IM",-1)),e[26]||(e[26]=a("p",null,"选择一个会话查看客户资料与群发任务",-1)),l(Re),e[27]||(e[27]=a("p",{class:"text-sm"}," · 实时消息依赖「会话内容存档」,由后台计划任务每 30 秒拉取一次。 ",-1)),e[28]||(e[28]=a("p",{class:"text-sm"}," · 发送使用「企业群发」能力,员工手机端确认后送达客户。 ",-1))])]))])]),l(Fe,{modelValue:J.value,"onUpdate:modelValue":e[10]||(e[10]=t=>J.value=t),title:"群发送达详情",width:"640px",top:"8vh"},{default:i(()=>{var t;return[w.value?ae((o(),x(Ke,{key:0,data:w.value.detail_list,border:"",size:"small","max-height":"420"},{default:i(()=>[l(O,{label:"外部客户",prop:"external_userid","min-width":"200"}),l(O,{label:"员工",prop:"userid","min-width":"120"}),l(O,{label:"状态",width:"120"},{default:i(({row:p})=>[l(A,{type:Le(p.status),size:"small"},{default:i(()=>[v(d($e(p.status)),1)]),_:2},1032,["type"])]),_:1}),l(O,{label:"送达时间",width:"160"},{default:i(({row:p})=>[v(d(p.send_time?Z(p.send_time):"-"),1)]),_:1})]),_:1},8,["data"])),[[te,$.value]]):f("",!0),(t=w.value)!=null&&t.next_cursor?(o(),r("div",At,[l(m,{link:"",type:"primary",onClick:Ve},{default:i(()=>[...e[29]||(e[29]=[v(" 加载更多 ",-1)])]),_:1})])):f("",!0)]}),_:1},8,["modelValue"])])}}}),Kt=ws(Bt,[["__scopeId","data-v-6e4c9382"]]);export{Kt as default}; +import{o as je,R as Ge,ap as Qe,by as We,q as o,r,O as x,bo as Xe,P as f,s as a,v as l,D as i,K as Ye,u as y,w as Je,bz as ve,a1 as Ze,bA as es,F as M,G as I,bi as ss,a0 as ts,L as v,T as d,bh as as,bB as ls,bc as ns,aA as is,bg as os,ac as ae,bn as us,bC as rs,ae as ds,bD as cs,bm as _s,as as fs,X as vs,Y as ms,bE as ps,bk as gs,bl as ys,aB as hs,M as _,p as me,n as le}from"./.pnpm-CyuAWpdG.js";import{j as C,t as ks,_ as ws}from"./index-Bkarz3gO.js";import{u as bs}from"./usePaging-CghUEVfD.js";import xs from"./MessageBubble-Ca2A_LG3.js";import{q as Ss,S as Ts,a as Ms,b as zs,c as Es,d as Cs,e as ne,f as Ds,g as Vs,h as pe}from"./SendPanel-LUM3zkeh.js";import"./file-BjbV-eNx.js";const $s={class:"qywx-im"},Ls={class:"im-layout"},As={class:"col-session"},Bs={class:"col-header"},qs={class:"col-actions"},Is={class:"col-filters"},Ps={class:"staff-option"},Hs={class:"staff-userid"},Ns={class:"session-list"},Us={key:0,class:"empty-tip"},Rs=["onClick"],Ks={class:"session-meta"},Fs={class:"session-top"},Os={class:"session-name"},js={class:"session-time"},Gs={class:"session-bottom"},Qs={class:"session-preview"},Ws={key:0,class:"session-staff"},Xs={key:1,class:"session-load-more"},Ys={class:"col-message"},Js={key:0,class:"no-session"},Zs={class:"col-header"},et={class:"msg-header-title"},st={class:"msg-customer-name"},tt={class:"msg-customer-sub"},at={class:"col-actions"},lt={key:0,class:"load-history"},nt={key:1,class:"load-history end-tip"},it={key:2,class:"empty-tip"},ot={class:"col-profile"},ut={class:"profile-panel"},rt={class:"profile-name"},dt={class:"profile-fields"},ct={class:"field"},_t={class:"value"},ft={class:"field"},vt=["title"],mt={key:0,class:"field"},pt={class:"value"},gt={key:1,class:"field"},yt={class:"value"},ht={class:"field"},kt={class:"value"},wt={class:"field"},bt={class:"value"},xt={class:"tasks-panel"},St={key:0,class:"empty-tip"},Tt={class:"task-top"},Mt={class:"task-time"},zt={class:"task-body"},Et={key:0,class:"task-text"},Ct={key:1,class:"task-attachments"},Dt={key:2,class:"task-error"},Vt={class:"task-actions"},$t={key:1,class:"no-session"},Lt={class:"tips"},At={key:1,class:"mt-2 text-center"},Bt=je({__name:"index",setup(qt){const z=_(null),j=_(!1),ge=me(()=>{if(!z.value)return"";const s=z.value;return s.enabled?`会话存档 SDK 不可用:${s.error||"未知错误"}`:"「会话内容存档」未启用,实时消息不可用。请在后端 pay.php 中开启 msgaudit_enabled 并配置 SDK 动态库与 RSA 私钥。"});async function ye(){try{z.value=await Ms()}catch{}}async function he(){j.value=!0;try{await zs(5,!0),C.msgSuccess("已触发一次拉取,稍后刷新可见"),await S(!0),n.value&&await X()}catch(s){C.msgError((s==null?void 0:s.msg)||(s==null?void 0:s.message)||"拉取失败")}finally{j.value=!1}}const G=_([]);async function ke(){try{const s=await Es();G.value=Array.isArray(s)?s:(s==null?void 0:s.lists)||[]}catch{G.value=[]}}const E=_({staff_userid:"",keyword:"",only_unread:0}),Q=_(!1);Ge(Q,s=>{E.value.only_unread=s?1:0});const{pager:g,getLists:W}=bs({fetchFun:Ss,params:E.value,size:30});function S(s=!1){return s||(g.page=1),W()}async function we(){const s=[...g.lists||[]];g.page+=1;try{await W();const e=g.lists||[],u=new Set(s.map(m=>m.id)),c=[...s,...e.filter(m=>!u.has(m.id))];g.lists=c}catch{}}const n=_(null),h=_([]),P=_(!1),D=_(!1),V=_(!1),H=_(0),N=_(0),k=_(null),be=me(()=>!!n.value&&n.value.session_type!==2);async function xe(s){var e;if(((e=n.value)==null?void 0:e.id)!==s.id){if(n.value=s,h.value=[],H.value=0,N.value=0,V.value=!1,await X(),await ue(),s.unread_staff>0)try{await Cs(s.id),s.unread_staff=0}catch{}U.value="profile"}}async function X(){if(n.value){P.value=!0;try{const s=await ne({session_id:n.value.id,page_no:1,page_size:30}),e=(s==null?void 0:s.lists)||[];h.value=e,e.length&&(H.value=e[0].send_time,N.value=e[e.length-1].send_time),V.value=e.length>=30,await le(),oe()}catch(s){C.msgError((s==null?void 0:s.msg)||(s==null?void 0:s.message)||"加载消息失败")}finally{P.value=!1}}}async function ie(){var e;if(!n.value||D.value)return;D.value=!0;const s=((e=k.value)==null?void 0:e.scrollHeight)||0;try{const u=await ne({session_id:n.value.id,page_no:1,page_size:30,before_time:H.value}),c=(u==null?void 0:u.lists)||[];c.length&&(H.value=c[0].send_time,h.value=[...c,...h.value]),V.value=c.length>=30,await le(),k.value&&(k.value.scrollTop=k.value.scrollHeight-s)}finally{D.value=!1}}async function Se(){if(n.value)try{const s=await ne({session_id:n.value.id,page_no:1,page_size:50,after_time:N.value}),e=(s==null?void 0:s.lists)||[];if(!e.length)return;const u=new Set(h.value.map(T=>T.id)),c=e.filter(T=>!u.has(T.id));if(!c.length)return;h.value=[...h.value,...c],N.value=c[c.length-1].send_time;const m=k.value;(m?m.scrollHeight-m.scrollTop-m.clientHeight<120:!0)&&(await le(),oe())}catch{}}function Te(){const s=k.value;s&&s.scrollTop<40&&V.value&&!D.value&&ie()}function oe(){k.value&&(k.value.scrollTop=k.value.scrollHeight)}async function Me(s){if(n.value)try{await Ds({sender_userid:n.value.staff_userid,external_userids:[n.value.external_userid],msg_payload:s,chat_type:"single"}),C.msgSuccess("已创建群发任务,员工手机确认后送达客户"),await ue(),U.value="tasks"}catch(e){C.msgError((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"发送失败")}}const U=_("profile"),R=_([]),Y=_(!1);async function ue(){if(n.value){Y.value=!0;try{const s=await Vs({sender_userid:n.value.staff_userid,page_no:1,page_size:50}),e=(s==null?void 0:s.lists)||[];R.value=e.filter(u=>(u.external_userids||[]).includes(n.value.external_userid))}finally{Y.value=!1}}}function ze(s){return{0:"待提交",1:"已提交",2:"已送达",3:"失败"}[s]??`状态${s}`}function Ee(s){return{0:"info",1:"primary",2:"success",3:"danger"}[s]??"info"}function Ce(s){return{image:"图片",video:"视频",file:"文件",link:"链接",miniprogram:"小程序"}[s]||s}const J=_(!1),$=_(!1),re=_(0),w=_(null);async function De(s){re.value=s.id,w.value={detail_list:[],next_cursor:""},J.value=!0,$.value=!0;try{const e=await pe(s.id,"");w.value={detail_list:(e==null?void 0:e.detail_list)||[],next_cursor:(e==null?void 0:e.next_cursor)||"",task:e==null?void 0:e.task}}catch(e){C.msgError((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"加载失败")}finally{$.value=!1}}async function Ve(){var s;if((s=w.value)!=null&&s.next_cursor){$.value=!0;try{const e=await pe(re.value,w.value.next_cursor);w.value={detail_list:[...w.value.detail_list,...(e==null?void 0:e.detail_list)||[]],next_cursor:(e==null?void 0:e.next_cursor)||"",task:e==null?void 0:e.task}}finally{$.value=!1}}}function $e(s){switch(s){case 0:return"未发送";case 1:return"已送达";case 2:return"被拒收";case 3:return"已送达(未读)";default:return`状态${s}`}}function Le(s){return s===1?"success":s===2?"warning":s===3?"primary":"info"}function L(s){var e;return(e=s.customer)!=null&&e.name?s.customer.name:s.session_type===2?`群聊 ${s.roomid.slice(-6)}`:s.external_userid||"未命名客户"}function Ae(s){const e=s.last_msg_summary||"",u=s.last_msg_type;return e||(u==="image"?"[图片]":u==="video"?"[视频]":u==="voice"?"[语音]":u==="file"?"[文件]":u==="link"?"[链接]":u==="weapp"?"[小程序]":u==="chatrecord"?"[聊天记录]":u?`[${u}]`:"暂无消息")}function Z(s){return s?ks(s*1e3,"yyyy-mm-dd hh:MM"):"-"}function Be(s){if(!s)return"";const u=Math.floor(Date.now()/1e3)-s;if(u<60)return`${u}秒前`;if(u<3600)return`${Math.floor(u/60)}分前`;if(u<86400)return`${Math.floor(u/3600)}小时前`;const c=new Date(s*1e3);return`${c.getMonth()+1}-${c.getDate()}`}let ee=null,se=null;return Qe(async()=>{await Promise.all([ye(),ke()]),await S(),ee=window.setInterval(()=>{W({silent:!0}).catch(()=>{})},15e3),se=window.setInterval(()=>{Se()},8e3)}),We(()=>{ee&&window.clearInterval(ee),se&&window.clearInterval(se)}),(s,e)=>{var ce,_e;const u=Xe,c=Je,m=Ye,K=Ze,T=ts,qe=ss,Ie=as,Pe=is,He=os,F=rs,Ne=cs,A=_s,de=vs,Ue=ms,Re=ps,O=ys,Ke=gs,Fe=hs,te=us;return o(),r("div",$s,[z.value&&!z.value.available?(o(),x(u,{key:0,title:ge.value,type:"warning",closable:!1,"show-icon":"",class:"archive-warning"},null,8,["title"])):f("",!0),a("div",Ls,[a("section",As,[a("header",Bs,[e[11]||(e[11]=a("div",{class:"col-title"},"会话",-1)),a("div",qs,[l(K,{content:"刷新"},{default:i(()=>[l(m,{size:"small",link:"",loading:y(g).loading,onClick:e[0]||(e[0]=t=>S(!0))},{default:i(()=>[l(c,null,{default:i(()=>[l(y(ve))]),_:1})]),_:1},8,["loading"])]),_:1}),l(K,{content:"手动拉一次存档"},{default:i(()=>{var t;return[l(m,{size:"small",link:"",disabled:!((t=z.value)!=null&&t.available),loading:j.value,onClick:he},{default:i(()=>[l(c,null,{default:i(()=>[l(y(es))]),_:1})]),_:1},8,["disabled","loading"])]}),_:1})])]),a("div",Is,[l(Ie,{modelValue:E.value.staff_userid,"onUpdate:modelValue":e[1]||(e[1]=t=>E.value.staff_userid=t),placeholder:"全部员工",clearable:"",filterable:"",size:"default",style:{width:"100%"},onChange:e[2]||(e[2]=t=>S())},{default:i(()=>[(o(!0),r(M,null,I(G.value,t=>(o(),x(qe,{key:t.userid,label:(t.name||t.userid)+"("+t.userid+")",value:t.userid},{default:i(()=>[a("div",Ps,[l(T,{size:20,src:t.avatar},{default:i(()=>[v(d((t.name||"").slice(-2)),1)]),_:2},1032,["src"]),a("span",null,d(t.name),1),a("span",Hs,d(t.userid),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue"]),l(Pe,{modelValue:E.value.keyword,"onUpdate:modelValue":e[3]||(e[3]=t=>E.value.keyword=t),placeholder:"搜索客户或消息",clearable:"",size:"default",onKeyup:e[4]||(e[4]=ns(t=>S(),["enter"])),onClear:e[5]||(e[5]=t=>S())},{prefix:i(()=>[l(c,null,{default:i(()=>[l(y(ls))]),_:1})]),_:1},8,["modelValue"]),l(He,{modelValue:Q.value,"onUpdate:modelValue":e[6]||(e[6]=t=>Q.value=t),onChange:e[7]||(e[7]=t=>S())},{default:i(()=>[...e[12]||(e[12]=[v(" 仅未读 ",-1)])]),_:1},8,["modelValue"])]),ae((o(),r("div",Ns,[!y(g).lists.length&&!y(g).loading?(o(),r("div",Us,[l(F,{description:"暂无会话","image-size":80})])):f("",!0),(o(!0),r(M,null,I(y(g).lists,t=>{var p;return o(),r("div",{key:t.id,class:ds(["session-item",{active:((p=n.value)==null?void 0:p.id)===t.id}]),onClick:b=>xe(t)},[l(Ne,{value:t.unread_staff,hidden:!t.unread_staff,max:99},{default:i(()=>{var b;return[l(T,{size:42,src:((b=t.customer)==null?void 0:b.avatar)||""},{default:i(()=>[v(d(L(t).slice(-2)),1)]),_:2},1032,["src"])]}),_:2},1032,["value","hidden"]),a("div",Ks,[a("div",Fs,[a("span",Os,d(L(t)),1),a("span",js,d(Be(t.last_msg_time)),1)]),a("div",Gs,[a("span",Qs,d(Ae(t)),1),t.session_type===2?(o(),x(A,{key:0,size:"small",type:"info",class:"session-tag"},{default:i(()=>[...e[13]||(e[13]=[v(" 群 ",-1)])]),_:1})):f("",!0)]),t.staff?(o(),r("div",Ws," 员工: "+d(t.staff.name||t.staff_userid),1)):f("",!0)])],10,Rs)}),128)),y(g).lists.length[...e[14]||(e[14]=[v(" 加载更多 ",-1)])]),_:1})])):f("",!0)])),[[te,y(g).loading]])]),a("section",Ys,[n.value?(o(),r(M,{key:1},[a("header",Zs,[a("div",et,[a("div",st,d(L(n.value)),1),a("div",tt,[(ce=n.value.customer)!=null&&ce.corp_name?(o(),r(M,{key:0},[v(d(n.value.customer.corp_name)+" · ",1)],64)):f("",!0),v(" 代发员工: "+d(((_e=n.value.staff)==null?void 0:_e.name)||n.value.staff_userid)+" ",1),n.value.session_type===2?(o(),x(A,{key:1,size:"small",type:"info",class:"ml-1"},{default:i(()=>[...e[15]||(e[15]=[v(" 群聊 ",-1)])]),_:1})):f("",!0)])]),a("div",at,[l(K,{content:"刷新消息"},{default:i(()=>[l(m,{link:"",size:"small",loading:P.value,onClick:e[8]||(e[8]=t=>X())},{default:i(()=>[l(c,null,{default:i(()=>[l(y(ve))]),_:1})]),_:1},8,["loading"])]),_:1})])]),a("div",{ref_key:"messageListRef",ref:k,class:"message-list",onScroll:Te},[V.value?(o(),r("div",lt,[l(m,{link:"",type:"primary",loading:D.value,onClick:ie},{default:i(()=>[...e[16]||(e[16]=[v(" 加载更早的消息 ",-1)])]),_:1},8,["loading"])])):h.value.length?(o(),r("div",nt," —— 没有更早的消息了 —— ")):f("",!0),!h.value.length&&!P.value?(o(),r("div",it,[l(F,{description:"暂无消息","image-size":80})])):f("",!0),(o(!0),r(M,null,I(h.value,t=>(o(),x(xs,{key:t.id,message:t},null,8,["message"]))),128))],544),l(Ts,{"can-send-message":be.value,onSend:Me},null,8,["can-send-message"])],64)):(o(),r("div",Js,[l(F,{description:"选择左侧会话查看消息"},{image:i(()=>[l(c,{size:60,color:"#ccc"},{default:i(()=>[l(y(fs))]),_:1})]),_:1})]))]),a("section",ot,[n.value?(o(),x(Ue,{key:0,modelValue:U.value,"onUpdate:modelValue":e[9]||(e[9]=t=>U.value=t),class:"profile-tabs"},{default:i(()=>[l(de,{label:"客户资料",name:"profile"},{default:i(()=>{var t,p,b,B,q;return[a("div",ut,[l(T,{size:72,src:((t=n.value.customer)==null?void 0:t.avatar)||""},{default:i(()=>[v(d(L(n.value).slice(-2)),1)]),_:1},8,["src"]),a("div",rt,d(L(n.value)),1),a("div",dt,[a("div",ct,[e[17]||(e[17]=a("span",{class:"label"},"客户类型",-1)),a("span",_t,d(((p=n.value.customer)==null?void 0:p.type)===2?"@微信":"@企业微信"),1)]),a("div",ft,[e[18]||(e[18]=a("span",{class:"label"},"外部 ID",-1)),a("span",{class:"value ellipsis",title:n.value.external_userid},d(n.value.external_userid||"-"),9,vt)]),(b=n.value.customer)!=null&&b.corp_name?(o(),r("div",mt,[e[19]||(e[19]=a("span",{class:"label"},"所属企业",-1)),a("span",pt,d(n.value.customer.corp_name),1)])):f("",!0),(B=n.value.customer)!=null&&B.gender?(o(),r("div",gt,[e[20]||(e[20]=a("span",{class:"label"},"性别",-1)),a("span",yt,d(n.value.customer.gender===1?"男":n.value.customer.gender===2?"女":"未知"),1)])):f("",!0),a("div",ht,[e[21]||(e[21]=a("span",{class:"label"},"代发员工",-1)),a("span",kt,d(((q=n.value.staff)==null?void 0:q.name)||n.value.staff_userid),1)]),a("div",wt,[e[22]||(e[22]=a("span",{class:"label"},"最近消息",-1)),a("span",bt,d(Z(n.value.last_msg_time)),1)])])])]}),_:1}),l(de,{label:`发送任务(${R.value.length})`,name:"tasks"},{default:i(()=>[ae((o(),r("div",xt,[R.value.length?f("",!0):(o(),r("div",St,[l(F,{description:"暂无任务","image-size":80})])),(o(!0),r(M,null,I(R.value,t=>{var p,b,B,q;return o(),r("div",{key:t.id,class:"task-item"},[a("div",Tt,[l(A,{type:Ee(t.status),size:"small"},{default:i(()=>[v(d(ze(t.status)),1)]),_:2},1032,["type"]),a("span",Mt,d(Z(t.create_time)),1)]),a("div",zt,[(b=(p=t.msg_payload)==null?void 0:p.text)!=null&&b.content?(o(),r("div",Et,d(t.msg_payload.text.content),1)):f("",!0),(q=(B=t.msg_payload)==null?void 0:B.attachments)!=null&&q.length?(o(),r("div",Ct,[e[23]||(e[23]=v(" 附件: ",-1)),(o(!0),r(M,null,I(t.msg_payload.attachments,(fe,Oe)=>(o(),x(A,{key:Oe,size:"small",type:"info",class:"mr-1"},{default:i(()=>[v(d(Ce(fe.msgtype)),1)]),_:2},1024))),128))])):f("",!0),t.error?(o(),r("div",Dt,d(t.error),1)):f("",!0)]),a("div",Vt,[l(m,{size:"small",link:"",type:"primary",onClick:fe=>De(t)},{default:i(()=>[...e[24]||(e[24]=[v(" 送达详情 ",-1)])]),_:1},8,["onClick"])])])}),128))])),[[te,Y.value]])]),_:1},8,["label"])]),_:1},8,["modelValue"])):(o(),r("div",$t,[a("div",Lt,[e[25]||(e[25]=a("h4",null,"企业微信 IM",-1)),e[26]||(e[26]=a("p",null,"选择一个会话查看客户资料与群发任务",-1)),l(Re),e[27]||(e[27]=a("p",{class:"text-sm"}," · 实时消息依赖「会话内容存档」,由后台计划任务每 30 秒拉取一次。 ",-1)),e[28]||(e[28]=a("p",{class:"text-sm"}," · 发送使用「企业群发」能力,员工手机端确认后送达客户。 ",-1))])]))])]),l(Fe,{modelValue:J.value,"onUpdate:modelValue":e[10]||(e[10]=t=>J.value=t),title:"群发送达详情",width:"640px",top:"8vh"},{default:i(()=>{var t;return[w.value?ae((o(),x(Ke,{key:0,data:w.value.detail_list,border:"",size:"small","max-height":"420"},{default:i(()=>[l(O,{label:"外部客户",prop:"external_userid","min-width":"200"}),l(O,{label:"员工",prop:"userid","min-width":"120"}),l(O,{label:"状态",width:"120"},{default:i(({row:p})=>[l(A,{type:Le(p.status),size:"small"},{default:i(()=>[v(d($e(p.status)),1)]),_:2},1032,["type"])]),_:1}),l(O,{label:"送达时间",width:"160"},{default:i(({row:p})=>[v(d(p.send_time?Z(p.send_time):"-"),1)]),_:1})]),_:1},8,["data"])),[[te,$.value]]):f("",!0),(t=w.value)!=null&&t.next_cursor?(o(),r("div",At,[l(m,{link:"",type:"primary",onClick:Ve},{default:i(()=>[...e[29]||(e[29]=[v(" 加载更多 ",-1)])]),_:1})])):f("",!0)]}),_:1},8,["modelValue"])])}}}),Kt=ws(Bt,[["__scopeId","data-v-6e4c9382"]]);export{Kt as default}; diff --git a/server/public/admin/assets/index-Cv-aPQVb.js b/server/public/admin/assets/index-BuM5_HkJ.js similarity index 96% rename from server/public/admin/assets/index-Cv-aPQVb.js rename to server/public/admin/assets/index-BuM5_HkJ.js index 76dbb7257..d1d67f6e5 100644 --- a/server/public/admin/assets/index-Cv-aPQVb.js +++ b/server/public/admin/assets/index-BuM5_HkJ.js @@ -1 +1 @@ -import{o as B,ap as se,bp as de,q as i,r as b,v as n,D as o,s as c,T as _,u as t,bj as ie,bd as re,C as F,bb as ce,bh as me,bi as ue,F as R,G as P,O as p,cD as _e,bL as pe,aA as fe,bc as he,K as ge,L as u,ac as x,bk as be,bl as ve,bm as ye,bn as Ce,P as ke,a8 as we,M as xe,aC as Ee,p as E,n as U}from"./.pnpm-CyuAWpdG.js";import{_ as Ve}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as Te,j as Le,_ as De}from"./index-Dxvz9lb1.js";import{e as Fe,f as Ae}from"./finance-D9pJwZQS.js";import{u as Se}from"./usePaging-CghUEVfD.js";import{L as Re,u as Pe}from"./useListTimeFilter-7kq30CnT.js";import Ue from"./edit-BiF8KYEx.js";import"./index-BnfLT5cB.js";const Be={class:"account-cost-list"},Oe={class:"flex flex-wrap"},$e={class:"w-1/2 md:w-1/3"},Ge={class:"text-4xl"},Ne={class:"w-1/2 md:w-1/3"},je={class:"text-4xl"},ze={class:"channel-opt-row"},Ie={class:"opt-name"},Ke={key:0},Me={key:1},qe={class:"flex justify-end mt-4"},Qe=B({name:"accountCostList"}),He=B({...Qe,setup(Je){const v=we(),y=xe(!1),r=Ee({media_channel_code:"",dept_id:"",remark:""}),{time_type:V,dateRange:T,resolve:O,handleTimeTypeChange:$,handleCustomDateChange:G,resetTimeFilter:N}=Pe("today"),{pager:s,getLists:f}=Se({fetchFun:async l=>{const[e,d]=O();return Fe({...l,start_date:e,end_date:d})},params:r}),C=()=>{s.page=1,f()},j=()=>$(C),z=()=>G(C),I=E(()=>{const l=s.extend.media_channel_options;return Array.isArray(l)?l.map(e=>({code:String(e.code||""),name:String(e.name||"")})):[]}),L=E(()=>{const l=s.extend.media_channel_groups;if(Array.isArray(l)&&l.length>0)return l;const e=I.value;return e.length?[{group_name:"渠道",channels:e.map(d=>({channel_code:d.code,channel_name:d.name}))}]:[]}),A=E(()=>{const l=s.extend.dept_options;return Array.isArray(l)?l:[]}),K=E(()=>String(s.extend.default_media_channel_code||"")),S=l=>{if(!l)return"";for(const e of L.value)if(e.channels.find(k=>k.channel_code===l))return e.group_name;return""},M={value:"id",label:"name",children:"children"},q=async()=>{var l;y.value=!0,await U(),(l=v.value)==null||l.open("add")},Q=async l=>{var e,d;y.value=!0,await U(),(e=v.value)==null||e.open("edit"),(d=v.value)==null||d.getDetail(l)},H=async l=>{await Le.confirm("确定要删除这条账户消耗记录吗?"),await Ae({id:l}),f()},J=()=>{N(),r.media_channel_code="",r.dept_id="",r.remark="",s.page=1,s.size=15,f()};return se(()=>{f()}),(l,e)=>{const d=ie,k=ue,W=_e,X=me,w=ce,Y=pe,Z=fe,g=ge,ee=re,ne=Te,m=ve,ae=ye,te=be,le=Ve,D=de("perms"),oe=Ce;return i(),b("div",Be,[n(d,{class:"!border-none mb-4",shadow:"never"},{default:o(()=>[c("div",Oe,[c("div",$e,[e[7]||(e[7]=c("div",{class:"leading-10"},"当前筛选天数",-1)),c("div",Ge,_(t(s).extend.days_count??0),1)]),c("div",Ne,[e[8]||(e[8]=c("div",{class:"leading-10"},"累计账户消耗 (元)",-1)),c("div",je,"¥"+_(t(s).extend.total_amount??"0.00"),1)])])]),_:1}),n(d,{class:"!border-none",shadow:"never"},{default:o(()=>[n(ee,{inline:!0,model:t(r),class:"stats-filter-form"},{default:o(()=>[n(Re,{"time-type":t(V),"onUpdate:timeType":e[0]||(e[0]=a=>F(V)?V.value=a:null),"date-range":t(T),"onUpdate:dateRange":e[1]||(e[1]=a=>F(T)?T.value=a:null),onTimeTypeChange:j,onCustomChange:z},null,8,["time-type","date-range"]),n(w,{label:"自媒体渠道"},{default:o(()=>[n(X,{modelValue:t(r).media_channel_code,"onUpdate:modelValue":e[2]||(e[2]=a=>t(r).media_channel_code=a),placeholder:"筛选全部渠道",clearable:"",filterable:"",class:"account-cost-channel-select w-[220px]"},{default:o(()=>[n(k,{label:"全部",value:""}),(i(!0),b(R,null,P(t(L),a=>(i(),p(W,{key:a.group_name,label:a.group_name},{default:o(()=>[(i(!0),b(R,null,P(a.channels,h=>(i(),p(k,{key:h.channel_code,label:h.channel_name,value:h.channel_code},{default:o(()=>[c("div",ze,[c("span",Ie,_(h.channel_name),1)])]),_:2},1032,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),n(w,{label:"部门"},{default:o(()=>[n(Y,{modelValue:t(r).dept_id,"onUpdate:modelValue":e[3]||(e[3]=a=>t(r).dept_id=a),data:t(A),"node-key":"id",props:M,"default-expand-all":!0,"check-strictly":"",placeholder:"筛选全部部门",clearable:"",filterable:"",class:"w-[220px]"},null,8,["modelValue","data"])]),_:1}),n(w,{class:"w-[280px]",label:"备注/维护人"},{default:o(()=>[n(Z,{modelValue:t(r).remark,"onUpdate:modelValue":e[4]||(e[4]=a=>t(r).remark=a),placeholder:"备注 / 创建人 / 修改人",clearable:"",onKeyup:he(C,["enter"])},null,8,["modelValue"])]),_:1}),n(w,null,{default:o(()=>[n(g,{type:"primary",loading:t(s).loading,onClick:C},{default:o(()=>[...e[9]||(e[9]=[u("查询",-1)])]),_:1},8,["loading"]),n(g,{onClick:J},{default:o(()=>[...e[10]||(e[10]=[u("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),n(d,{class:"!border-none mt-4",shadow:"never"},{default:o(()=>[c("div",null,[x((i(),p(g,{type:"primary",onClick:q},{icon:o(()=>[n(ne,{name:"el-icon-Plus"})]),default:o(()=>[e[11]||(e[11]=u(" 新增 ",-1))]),_:1})),[[D,["finance.account_cost/add"]]])]),x((i(),p(te,{class:"mt-4",size:"large",data:t(s).lists},{default:o(()=>[n(m,{label:"日期",prop:"cost_date","min-width":"120"}),n(m,{label:"自媒体渠道","min-width":"160"},{default:o(({row:a})=>[S(a.media_channel_code)?(i(),b("span",Ke,[n(ae,{size:"small",class:"mr-1"},{default:o(()=>[u(_(S(a.media_channel_code)),1)]),_:2},1024),u(" "+_(a.media_channel_name),1)])):(i(),b("span",Me,_(a.media_channel_name),1))]),_:1}),n(m,{label:"部门",prop:"dept_name","min-width":"140"}),n(m,{label:"账户消耗","min-width":"120"},{default:o(({row:a})=>[u("¥"+_(a.amount),1)]),_:1}),n(m,{label:"备注",prop:"remark","min-width":"260","show-overflow-tooltip":""}),n(m,{label:"创建人",prop:"creator_name","min-width":"100"}),n(m,{label:"最后修改人",prop:"updater_name","min-width":"100"}),n(m,{label:"更新时间",prop:"update_time","min-width":"180"}),n(m,{label:"操作",width:"160",fixed:"right"},{default:o(({row:a})=>[x((i(),p(g,{type:"primary",link:"",onClick:h=>Q(a)},{default:o(()=>[...e[12]||(e[12]=[u(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[D,["finance.account_cost/edit"]]]),x((i(),p(g,{type:"danger",link:"",onClick:h=>H(a.id)},{default:o(()=>[...e[13]||(e[13]=[u(" 删除 ",-1)])]),_:1},8,["onClick"])),[[D,["finance.account_cost/delete"]]])]),_:1})]),_:1},8,["data"])),[[oe,t(s).loading]]),c("div",qe,[n(le,{modelValue:t(s),"onUpdate:modelValue":e[5]||(e[5]=a=>F(s)?s.value=a:null),onChange:t(f)},null,8,["modelValue","onChange"])])]),_:1}),t(y)?(i(),p(Ue,{key:0,ref_key:"editRef",ref:v,"media-channel-groups":t(L),"dept-options":t(A),"default-media-channel-code":t(K),onSuccess:t(f),onClose:e[6]||(e[6]=a=>y.value=!1)},null,8,["media-channel-groups","dept-options","default-media-channel-code","onSuccess"])):ke("",!0)])}}}),ln=De(He,[["__scopeId","data-v-c0f83fa0"]]);export{ln as default}; +import{o as B,ap as se,bp as de,q as i,r as b,v as n,D as o,s as c,T as _,u as t,bj as ie,bd as re,C as F,bb as ce,bh as me,bi as ue,F as R,G as P,O as p,cD as _e,bL as pe,aA as fe,bc as he,K as ge,L as u,ac as x,bk as be,bl as ve,bm as ye,bn as Ce,P as ke,a8 as we,M as xe,aC as Ee,p as E,n as U}from"./.pnpm-CyuAWpdG.js";import{_ as Ve}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as Te,j as Le,_ as De}from"./index-Bkarz3gO.js";import{e as Fe,f as Ae}from"./finance-C684dcZP.js";import{u as Se}from"./usePaging-CghUEVfD.js";import{L as Re,u as Pe}from"./useListTimeFilter-F3VNdKVb.js";import Ue from"./edit-D1GgBUgu.js";import"./index-CS5Wg0xx.js";const Be={class:"account-cost-list"},Oe={class:"flex flex-wrap"},$e={class:"w-1/2 md:w-1/3"},Ge={class:"text-4xl"},Ne={class:"w-1/2 md:w-1/3"},je={class:"text-4xl"},ze={class:"channel-opt-row"},Ie={class:"opt-name"},Ke={key:0},Me={key:1},qe={class:"flex justify-end mt-4"},Qe=B({name:"accountCostList"}),He=B({...Qe,setup(Je){const v=we(),y=xe(!1),r=Ee({media_channel_code:"",dept_id:"",remark:""}),{time_type:V,dateRange:T,resolve:O,handleTimeTypeChange:$,handleCustomDateChange:G,resetTimeFilter:N}=Pe("today"),{pager:s,getLists:f}=Se({fetchFun:async l=>{const[e,d]=O();return Fe({...l,start_date:e,end_date:d})},params:r}),C=()=>{s.page=1,f()},j=()=>$(C),z=()=>G(C),I=E(()=>{const l=s.extend.media_channel_options;return Array.isArray(l)?l.map(e=>({code:String(e.code||""),name:String(e.name||"")})):[]}),L=E(()=>{const l=s.extend.media_channel_groups;if(Array.isArray(l)&&l.length>0)return l;const e=I.value;return e.length?[{group_name:"渠道",channels:e.map(d=>({channel_code:d.code,channel_name:d.name}))}]:[]}),A=E(()=>{const l=s.extend.dept_options;return Array.isArray(l)?l:[]}),K=E(()=>String(s.extend.default_media_channel_code||"")),S=l=>{if(!l)return"";for(const e of L.value)if(e.channels.find(k=>k.channel_code===l))return e.group_name;return""},M={value:"id",label:"name",children:"children"},q=async()=>{var l;y.value=!0,await U(),(l=v.value)==null||l.open("add")},Q=async l=>{var e,d;y.value=!0,await U(),(e=v.value)==null||e.open("edit"),(d=v.value)==null||d.getDetail(l)},H=async l=>{await Le.confirm("确定要删除这条账户消耗记录吗?"),await Ae({id:l}),f()},J=()=>{N(),r.media_channel_code="",r.dept_id="",r.remark="",s.page=1,s.size=15,f()};return se(()=>{f()}),(l,e)=>{const d=ie,k=ue,W=_e,X=me,w=ce,Y=pe,Z=fe,g=ge,ee=re,ne=Te,m=ve,ae=ye,te=be,le=Ve,D=de("perms"),oe=Ce;return i(),b("div",Be,[n(d,{class:"!border-none mb-4",shadow:"never"},{default:o(()=>[c("div",Oe,[c("div",$e,[e[7]||(e[7]=c("div",{class:"leading-10"},"当前筛选天数",-1)),c("div",Ge,_(t(s).extend.days_count??0),1)]),c("div",Ne,[e[8]||(e[8]=c("div",{class:"leading-10"},"累计账户消耗 (元)",-1)),c("div",je,"¥"+_(t(s).extend.total_amount??"0.00"),1)])])]),_:1}),n(d,{class:"!border-none",shadow:"never"},{default:o(()=>[n(ee,{inline:!0,model:t(r),class:"stats-filter-form"},{default:o(()=>[n(Re,{"time-type":t(V),"onUpdate:timeType":e[0]||(e[0]=a=>F(V)?V.value=a:null),"date-range":t(T),"onUpdate:dateRange":e[1]||(e[1]=a=>F(T)?T.value=a:null),onTimeTypeChange:j,onCustomChange:z},null,8,["time-type","date-range"]),n(w,{label:"自媒体渠道"},{default:o(()=>[n(X,{modelValue:t(r).media_channel_code,"onUpdate:modelValue":e[2]||(e[2]=a=>t(r).media_channel_code=a),placeholder:"筛选全部渠道",clearable:"",filterable:"",class:"account-cost-channel-select w-[220px]"},{default:o(()=>[n(k,{label:"全部",value:""}),(i(!0),b(R,null,P(t(L),a=>(i(),p(W,{key:a.group_name,label:a.group_name},{default:o(()=>[(i(!0),b(R,null,P(a.channels,h=>(i(),p(k,{key:h.channel_code,label:h.channel_name,value:h.channel_code},{default:o(()=>[c("div",ze,[c("span",Ie,_(h.channel_name),1)])]),_:2},1032,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),n(w,{label:"部门"},{default:o(()=>[n(Y,{modelValue:t(r).dept_id,"onUpdate:modelValue":e[3]||(e[3]=a=>t(r).dept_id=a),data:t(A),"node-key":"id",props:M,"default-expand-all":!0,"check-strictly":"",placeholder:"筛选全部部门",clearable:"",filterable:"",class:"w-[220px]"},null,8,["modelValue","data"])]),_:1}),n(w,{class:"w-[280px]",label:"备注/维护人"},{default:o(()=>[n(Z,{modelValue:t(r).remark,"onUpdate:modelValue":e[4]||(e[4]=a=>t(r).remark=a),placeholder:"备注 / 创建人 / 修改人",clearable:"",onKeyup:he(C,["enter"])},null,8,["modelValue"])]),_:1}),n(w,null,{default:o(()=>[n(g,{type:"primary",loading:t(s).loading,onClick:C},{default:o(()=>[...e[9]||(e[9]=[u("查询",-1)])]),_:1},8,["loading"]),n(g,{onClick:J},{default:o(()=>[...e[10]||(e[10]=[u("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),n(d,{class:"!border-none mt-4",shadow:"never"},{default:o(()=>[c("div",null,[x((i(),p(g,{type:"primary",onClick:q},{icon:o(()=>[n(ne,{name:"el-icon-Plus"})]),default:o(()=>[e[11]||(e[11]=u(" 新增 ",-1))]),_:1})),[[D,["finance.account_cost/add"]]])]),x((i(),p(te,{class:"mt-4",size:"large",data:t(s).lists},{default:o(()=>[n(m,{label:"日期",prop:"cost_date","min-width":"120"}),n(m,{label:"自媒体渠道","min-width":"160"},{default:o(({row:a})=>[S(a.media_channel_code)?(i(),b("span",Ke,[n(ae,{size:"small",class:"mr-1"},{default:o(()=>[u(_(S(a.media_channel_code)),1)]),_:2},1024),u(" "+_(a.media_channel_name),1)])):(i(),b("span",Me,_(a.media_channel_name),1))]),_:1}),n(m,{label:"部门",prop:"dept_name","min-width":"140"}),n(m,{label:"账户消耗","min-width":"120"},{default:o(({row:a})=>[u("¥"+_(a.amount),1)]),_:1}),n(m,{label:"备注",prop:"remark","min-width":"260","show-overflow-tooltip":""}),n(m,{label:"创建人",prop:"creator_name","min-width":"100"}),n(m,{label:"最后修改人",prop:"updater_name","min-width":"100"}),n(m,{label:"更新时间",prop:"update_time","min-width":"180"}),n(m,{label:"操作",width:"160",fixed:"right"},{default:o(({row:a})=>[x((i(),p(g,{type:"primary",link:"",onClick:h=>Q(a)},{default:o(()=>[...e[12]||(e[12]=[u(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[D,["finance.account_cost/edit"]]]),x((i(),p(g,{type:"danger",link:"",onClick:h=>H(a.id)},{default:o(()=>[...e[13]||(e[13]=[u(" 删除 ",-1)])]),_:1},8,["onClick"])),[[D,["finance.account_cost/delete"]]])]),_:1})]),_:1},8,["data"])),[[oe,t(s).loading]]),c("div",qe,[n(le,{modelValue:t(s),"onUpdate:modelValue":e[5]||(e[5]=a=>F(s)?s.value=a:null),onChange:t(f)},null,8,["modelValue","onChange"])])]),_:1}),t(y)?(i(),p(Ue,{key:0,ref_key:"editRef",ref:v,"media-channel-groups":t(L),"dept-options":t(A),"default-media-channel-code":t(K),onSuccess:t(f),onClose:e[6]||(e[6]=a=>y.value=!1)},null,8,["media-channel-groups","dept-options","default-media-channel-code","onSuccess"])):ke("",!0)])}}}),ln=De(He,[["__scopeId","data-v-c0f83fa0"]]);export{ln as default}; diff --git a/server/public/admin/assets/index-DnDmUgzz.js b/server/public/admin/assets/index-Bv5L5VBG.js similarity index 95% rename from server/public/admin/assets/index-DnDmUgzz.js rename to server/public/admin/assets/index-Bv5L5VBG.js index d46baf981..4dfe726c1 100644 --- a/server/public/admin/assets/index-DnDmUgzz.js +++ b/server/public/admin/assets/index-Bv5L5VBG.js @@ -1 +1 @@ -import{o as B,x as z,bp as M,q as o,r as P,v as t,D as l,bd as G,u as a,bb as H,aA as J,bc as $,bh as Q,bi as W,K as X,L as i,bj as Y,s as V,ac as m,O as p,bk as Z,bl as ee,bm as te,C as le,bn as ae,P as ne,a8 as oe,M as K,aC as se,n as R}from"./.pnpm-CyuAWpdG.js";import{_ as ie}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as de,l as re,j as pe}from"./index-Dxvz9lb1.js";import{f as ue,i as me}from"./dict-C0-nzPZh.js";import{u as ce}from"./usePaging-CghUEVfD.js";import{_ as _e}from"./edit.vue_vue_type_script_setup_true_lang-CxUw8LRg.js";import"./index-BnfLT5cB.js";const fe={class:"dict-type"},ye={class:"mt-4"},be={class:"flex justify-end mt-4"},ve=B({name:"dictType"}),Te=B({...ve,setup(ge){const y=oe(),b=K(!1),d=se({name:"",type:"",status:""}),{pager:c,getLists:v,resetPage:k,resetParams:S}=ce({fetchFun:ue,params:d}),C=K([]),F=s=>{C.value=s.map(({id:e})=>e)},L=async()=>{var s;b.value=!0,await R(),(s=y.value)==null||s.open("add")},N=async s=>{var e,_;b.value=!0,await R(),(e=y.value)==null||e.open("edit"),(_=y.value)==null||_.setFormData(s)},E=async s=>{await pe.confirm("确定要删除?"),await me({id:s}),v()};return v(),(s,e)=>{const _=J,g=H,w=W,U=Q,u=X,j=G,x=Y,D=de,r=ee,T=te,q=z("router-link"),I=Z,h=ie,f=M("perms"),A=ae;return o(),P("div",fe,[t(x,{class:"!border-none",shadow:"never"},{default:l(()=>[t(j,{ref:"formRef",class:"mb-[-16px]",model:a(d),inline:""},{default:l(()=>[t(g,{class:"w-[280px]",label:"字典名称"},{default:l(()=>[t(_,{modelValue:a(d).name,"onUpdate:modelValue":e[0]||(e[0]=n=>a(d).name=n),clearable:"",onKeyup:$(a(k),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(g,{class:"w-[280px]",label:"字典类型"},{default:l(()=>[t(_,{modelValue:a(d).type,"onUpdate:modelValue":e[1]||(e[1]=n=>a(d).type=n),clearable:"",onKeyup:$(a(k),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(g,{class:"w-[280px]",label:"状态"},{default:l(()=>[t(U,{modelValue:a(d).status,"onUpdate:modelValue":e[2]||(e[2]=n=>a(d).status=n)},{default:l(()=>[t(w,{label:"全部",value:""}),t(w,{label:"正常",value:1}),t(w,{label:"停用",value:0})]),_:1},8,["modelValue"])]),_:1}),t(g,null,{default:l(()=>[t(u,{type:"primary",onClick:a(k)},{default:l(()=>[...e[6]||(e[6]=[i("查询",-1)])]),_:1},8,["onClick"]),t(u,{onClick:a(S)},{default:l(()=>[...e[7]||(e[7]=[i("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),t(x,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[V("div",null,[m((o(),p(u,{type:"primary",onClick:L},{icon:l(()=>[t(D,{name:"el-icon-Plus"})]),default:l(()=>[e[8]||(e[8]=i(" 新增 ",-1))]),_:1})),[[f,["setting.dict.dict_type/add"]]]),m((o(),p(u,{disabled:!a(C).length,type:"danger",onClick:e[3]||(e[3]=n=>E(a(C)))},{icon:l(()=>[t(D,{name:"el-icon-Delete"})]),default:l(()=>[e[9]||(e[9]=i(" 删除 ",-1))]),_:1},8,["disabled"])),[[f,["setting.dict.dict_type/delete"]]])]),m((o(),P("div",ye,[V("div",null,[t(I,{data:a(c).lists,size:"large",onSelectionChange:F},{default:l(()=>[t(r,{type:"selection",width:"55"}),t(r,{label:"ID",prop:"id"}),t(r,{label:"字典名称",prop:"name","min-width":"120"}),t(r,{label:"字典类型",prop:"type","min-width":"120"}),t(r,{label:"状态"},{default:l(({row:n})=>[n.status==1?(o(),p(T,{key:0},{default:l(()=>[...e[10]||(e[10]=[i("正常",-1)])]),_:1})):(o(),p(T,{key:1,type:"danger"},{default:l(()=>[...e[11]||(e[11]=[i("停用",-1)])]),_:1}))]),_:1}),t(r,{label:"备注",prop:"remark","show-tooltip-when-overflow":""}),t(r,{label:"创建时间",prop:"create_time","min-width":"180"}),t(r,{label:"操作",width:"190",fixed:"right"},{default:l(({row:n})=>[m((o(),p(u,{link:"",type:"primary",onClick:O=>N(n)},{default:l(()=>[...e[12]||(e[12]=[i(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[f,["setting.dict.dict_type/edit"]]]),m((o(),p(u,{type:"primary",link:""},{default:l(()=>[t(q,{to:{path:a(re)("setting.dict.dict_data/lists"),query:{id:n.id}}},{default:l(()=>[...e[13]||(e[13]=[i(" 数据管理 ",-1)])]),_:1},8,["to"])]),_:2},1024)),[[f,["setting.dict.dict_data/lists"]]]),m((o(),p(u,{link:"",type:"danger",onClick:O=>E(n.id)},{default:l(()=>[...e[14]||(e[14]=[i(" 删除 ",-1)])]),_:1},8,["onClick"])),[[f,["setting.dict.dict_type/delete"]]])]),_:1})]),_:1},8,["data"])]),V("div",be,[t(h,{modelValue:a(c),"onUpdate:modelValue":e[4]||(e[4]=n=>le(c)?c.value=n:null),onChange:a(v)},null,8,["modelValue","onChange"])])])),[[A,a(c).loading]])]),_:1}),a(b)?(o(),p(_e,{key:0,ref_key:"editRef",ref:y,onSuccess:a(v),onClose:e[5]||(e[5]=n=>b.value=!1)},null,8,["onSuccess"])):ne("",!0)])}}});export{Te as default}; +import{o as B,x as z,bp as M,q as o,r as P,v as t,D as l,bd as G,u as a,bb as H,aA as J,bc as $,bh as Q,bi as W,K as X,L as i,bj as Y,s as V,ac as m,O as p,bk as Z,bl as ee,bm as te,C as le,bn as ae,P as ne,a8 as oe,M as K,aC as se,n as R}from"./.pnpm-CyuAWpdG.js";import{_ as ie}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as de,l as re,j as pe}from"./index-Bkarz3gO.js";import{f as ue,i as me}from"./dict-B9ij5Vr6.js";import{u as ce}from"./usePaging-CghUEVfD.js";import{_ as _e}from"./edit.vue_vue_type_script_setup_true_lang-BHJ0itxS.js";import"./index-CS5Wg0xx.js";const fe={class:"dict-type"},ye={class:"mt-4"},be={class:"flex justify-end mt-4"},ve=B({name:"dictType"}),Te=B({...ve,setup(ge){const y=oe(),b=K(!1),d=se({name:"",type:"",status:""}),{pager:c,getLists:v,resetPage:k,resetParams:S}=ce({fetchFun:ue,params:d}),C=K([]),F=s=>{C.value=s.map(({id:e})=>e)},L=async()=>{var s;b.value=!0,await R(),(s=y.value)==null||s.open("add")},N=async s=>{var e,_;b.value=!0,await R(),(e=y.value)==null||e.open("edit"),(_=y.value)==null||_.setFormData(s)},E=async s=>{await pe.confirm("确定要删除?"),await me({id:s}),v()};return v(),(s,e)=>{const _=J,g=H,w=W,U=Q,u=X,j=G,x=Y,D=de,r=ee,T=te,q=z("router-link"),I=Z,h=ie,f=M("perms"),A=ae;return o(),P("div",fe,[t(x,{class:"!border-none",shadow:"never"},{default:l(()=>[t(j,{ref:"formRef",class:"mb-[-16px]",model:a(d),inline:""},{default:l(()=>[t(g,{class:"w-[280px]",label:"字典名称"},{default:l(()=>[t(_,{modelValue:a(d).name,"onUpdate:modelValue":e[0]||(e[0]=n=>a(d).name=n),clearable:"",onKeyup:$(a(k),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(g,{class:"w-[280px]",label:"字典类型"},{default:l(()=>[t(_,{modelValue:a(d).type,"onUpdate:modelValue":e[1]||(e[1]=n=>a(d).type=n),clearable:"",onKeyup:$(a(k),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(g,{class:"w-[280px]",label:"状态"},{default:l(()=>[t(U,{modelValue:a(d).status,"onUpdate:modelValue":e[2]||(e[2]=n=>a(d).status=n)},{default:l(()=>[t(w,{label:"全部",value:""}),t(w,{label:"正常",value:1}),t(w,{label:"停用",value:0})]),_:1},8,["modelValue"])]),_:1}),t(g,null,{default:l(()=>[t(u,{type:"primary",onClick:a(k)},{default:l(()=>[...e[6]||(e[6]=[i("查询",-1)])]),_:1},8,["onClick"]),t(u,{onClick:a(S)},{default:l(()=>[...e[7]||(e[7]=[i("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),t(x,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[V("div",null,[m((o(),p(u,{type:"primary",onClick:L},{icon:l(()=>[t(D,{name:"el-icon-Plus"})]),default:l(()=>[e[8]||(e[8]=i(" 新增 ",-1))]),_:1})),[[f,["setting.dict.dict_type/add"]]]),m((o(),p(u,{disabled:!a(C).length,type:"danger",onClick:e[3]||(e[3]=n=>E(a(C)))},{icon:l(()=>[t(D,{name:"el-icon-Delete"})]),default:l(()=>[e[9]||(e[9]=i(" 删除 ",-1))]),_:1},8,["disabled"])),[[f,["setting.dict.dict_type/delete"]]])]),m((o(),P("div",ye,[V("div",null,[t(I,{data:a(c).lists,size:"large",onSelectionChange:F},{default:l(()=>[t(r,{type:"selection",width:"55"}),t(r,{label:"ID",prop:"id"}),t(r,{label:"字典名称",prop:"name","min-width":"120"}),t(r,{label:"字典类型",prop:"type","min-width":"120"}),t(r,{label:"状态"},{default:l(({row:n})=>[n.status==1?(o(),p(T,{key:0},{default:l(()=>[...e[10]||(e[10]=[i("正常",-1)])]),_:1})):(o(),p(T,{key:1,type:"danger"},{default:l(()=>[...e[11]||(e[11]=[i("停用",-1)])]),_:1}))]),_:1}),t(r,{label:"备注",prop:"remark","show-tooltip-when-overflow":""}),t(r,{label:"创建时间",prop:"create_time","min-width":"180"}),t(r,{label:"操作",width:"190",fixed:"right"},{default:l(({row:n})=>[m((o(),p(u,{link:"",type:"primary",onClick:O=>N(n)},{default:l(()=>[...e[12]||(e[12]=[i(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[f,["setting.dict.dict_type/edit"]]]),m((o(),p(u,{type:"primary",link:""},{default:l(()=>[t(q,{to:{path:a(re)("setting.dict.dict_data/lists"),query:{id:n.id}}},{default:l(()=>[...e[13]||(e[13]=[i(" 数据管理 ",-1)])]),_:1},8,["to"])]),_:2},1024)),[[f,["setting.dict.dict_data/lists"]]]),m((o(),p(u,{link:"",type:"danger",onClick:O=>E(n.id)},{default:l(()=>[...e[14]||(e[14]=[i(" 删除 ",-1)])]),_:1},8,["onClick"])),[[f,["setting.dict.dict_type/delete"]]])]),_:1})]),_:1},8,["data"])]),V("div",be,[t(h,{modelValue:a(c),"onUpdate:modelValue":e[4]||(e[4]=n=>le(c)?c.value=n:null),onChange:a(v)},null,8,["modelValue","onChange"])])])),[[A,a(c).loading]])]),_:1}),a(b)?(o(),p(_e,{key:0,ref_key:"editRef",ref:y,onSuccess:a(v),onClose:e[5]||(e[5]=n=>b.value=!1)},null,8,["onSuccess"])):ne("",!0)])}}});export{Te as default}; diff --git a/server/public/admin/assets/index-CmzQ0RHU.js b/server/public/admin/assets/index-By89B2Fd.js similarity index 99% rename from server/public/admin/assets/index-CmzQ0RHU.js rename to server/public/admin/assets/index-By89B2Fd.js index 8623b3b40..a12803411 100644 --- a/server/public/admin/assets/index-CmzQ0RHU.js +++ b/server/public/admin/assets/index-By89B2Fd.js @@ -1 +1 @@ -import{o as Z,ap as ee,q as L,r as ae,v as a,D as l,bd as te,bb as le,aA as oe,bc as se,K as ne,L as i,bj as re,s as y,ac as ie,O as ue,bk as de,bl as pe,T as R,a1 as me,w as ce,u as fe,bv as ve,I as ge,bn as _e,bu as ke,aB as ye,M as n,aC as D,E as V,e as be}from"./.pnpm-CyuAWpdG.js";import{e as Ve,f as z,g as he,h as we}from"./asset-CMies7fs.js";import"./index-Dxvz9lb1.js";const xe={class:"asset-user-container"},Ce={class:"mb-4"},Ee={class:"flex items-center gap-1 min-w-0"},Ue=["title"],De={class:"mt-4 flex justify-end"},ze={class:"text-sm text-gray-500 mb-3"},$e=Z({__name:"index",setup(Te){const h=n(!1),w=n([]),T=n(0),c=D({phone:""}),u=D({page_no:1,page_size:15}),p=n(!1),x=n(""),C=n(!1),E=n(),f=n(!1),U=n(!1),v=n(""),b=n(""),A=n(""),s=D({id:"",phone:"",password:"",remark:"",status:1}),M={phone:[{required:!0,message:"请输入手机号",trigger:"blur"}]},d=async()=>{h.value=!0;try{const o={...u,...c},e=await Ve(o);w.value=e.lists,T.value=e.count}catch(o){console.error(o)}finally{h.value=!1}},B=()=>{u.page_no=1,d()},P=()=>{c.phone="",u.page_no=1,d()},q=async o=>{try{await z({id:o.id,status:o.status}),V.success(o.status===1?"已启用":"已禁用")}catch(e){o.status=o.status===1?0:1,console.error(e)}},F=()=>{x.value="新增账号",Object.assign(s,{id:"",phone:"",password:"",remark:"",status:1}),p.value=!0},K=o=>{x.value="编辑账号",Object.assign(s,{id:o.id,phone:o.phone,password:"",remark:o.remark||"",status:o.status}),p.value=!0},N=o=>{b.value=o.id,A.value=o.phone||"",v.value=o.remark||"",f.value=!0},O=async()=>{if(b.value){U.value=!0;try{await z({id:b.value,remark:v.value});const o=w.value.find(e=>e.id===b.value);o&&(o.remark=v.value),V.success("备注已保存"),f.value=!1}catch(o){console.error(o)}finally{U.value=!1}}},Q=async o=>{try{await be.confirm("确定要删除该账号及其关联资源吗?","提示",{type:"warning"}),await he({id:o.id}),V.success("删除成功"),d()}catch{}},G=async()=>{E.value&&await E.value.validate(async o=>{if(o){C.value=!0;try{s.id?await z(s):await we(s),V.success("操作成功"),p.value=!1,d()}catch(e){console.error(e)}finally{C.value=!1}}})};return ee(()=>{d()}),(o,e)=>{const g=oe,m=le,r=ne,S=te,$=re,_=pe,H=ce,J=me,j=ge,W=de,X=ke,I=ye,Y=_e;return L(),ae("div",xe,[a($,{class:"!border-none",shadow:"never"},{default:l(()=>[a(S,{class:"ls-form",model:c,inline:""},{default:l(()=>[a(m,{class:"w-[280px]",label:"手机号"},{default:l(()=>[a(g,{placeholder:"请输入手机号",modelValue:c.phone,"onUpdate:modelValue":e[0]||(e[0]=t=>c.phone=t),clearable:"",onKeyup:se(B,["enter"])},null,8,["modelValue"])]),_:1}),a(m,null,{default:l(()=>[a(r,{type:"primary",onClick:B},{default:l(()=>[...e[12]||(e[12]=[i("查询",-1)])]),_:1}),a(r,{onClick:P},{default:l(()=>[...e[13]||(e[13]=[i("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),a($,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[y("div",Ce,[a(r,{type:"primary",onClick:F},{default:l(()=>[...e[14]||(e[14]=[i("新增账号",-1)])]),_:1})]),ie((L(),ue(W,{data:w.value},{default:l(()=>[a(_,{prop:"phone",label:"手机号"}),a(_,{label:"备注","min-width":"200"},{default:l(({row:t})=>[y("div",Ee,[y("span",{class:"truncate text-gray-600",title:t.remark||""},R(t.remark||"—"),9,Ue),a(J,{content:"编辑备注",placement:"top"},{default:l(()=>[a(H,{class:"shrink-0 cursor-pointer text-gray-400 hover:text-primary",onClick:k=>N(t)},{default:l(()=>[a(fe(ve))]),_:1},8,["onClick"])]),_:2},1024)])]),_:1}),a(_,{prop:"create_time",label:"创建时间",width:"180"}),a(_,{prop:"status",label:"状态",width:"100"},{default:l(({row:t})=>[a(j,{modelValue:t.status,"onUpdate:modelValue":k=>t.status=k,"active-value":1,"inactive-value":0,"active-text":"正常","inactive-text":"禁用","inline-prompt":"",onChange:k=>q(t)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),a(_,{label:"操作",width:"200",fixed:"right"},{default:l(({row:t})=>[a(r,{type:"primary",link:"",onClick:k=>K(t)},{default:l(()=>[...e[15]||(e[15]=[i("编辑",-1)])]),_:1},8,["onClick"]),a(r,{type:"danger",link:"",onClick:k=>Q(t)},{default:l(()=>[...e[16]||(e[16]=[i("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[Y,h.value]]),y("div",De,[a(X,{"current-page":u.page_no,"onUpdate:currentPage":e[1]||(e[1]=t=>u.page_no=t),"page-size":u.page_size,"onUpdate:pageSize":e[2]||(e[2]=t=>u.page_size=t),total:T.value,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:d,onCurrentChange:d},null,8,["current-page","page-size","total"])])]),_:1}),a(I,{modelValue:p.value,"onUpdate:modelValue":e[8]||(e[8]=t=>p.value=t),title:x.value,width:"500px","destroy-on-close":""},{footer:l(()=>[a(r,{onClick:e[7]||(e[7]=t=>p.value=!1)},{default:l(()=>[...e[17]||(e[17]=[i("取消",-1)])]),_:1}),a(r,{type:"primary",onClick:G,loading:C.value},{default:l(()=>[...e[18]||(e[18]=[i("确定",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(S,{ref_key:"formRef",ref:E,model:s,rules:M,"label-width":"80px"},{default:l(()=>[a(m,{label:"手机号",prop:"phone"},{default:l(()=>[a(g,{modelValue:s.phone,"onUpdate:modelValue":e[3]||(e[3]=t=>s.phone=t),placeholder:"请输入手机号(作为登录账号)"},null,8,["modelValue"])]),_:1}),a(m,{label:"密码",prop:"password"},{default:l(()=>[a(g,{modelValue:s.password,"onUpdate:modelValue":e[4]||(e[4]=t=>s.password=t),placeholder:"为空则默认为 123456","show-password":""},null,8,["modelValue"])]),_:1}),a(m,{label:"备注",prop:"remark"},{default:l(()=>[a(g,{modelValue:s.remark,"onUpdate:modelValue":e[5]||(e[5]=t=>s.remark=t),type:"textarea",rows:3,maxlength:"500","show-word-limit":"",placeholder:"可填写用户相关信息,仅管理员可见"},null,8,["modelValue"])]),_:1}),a(m,{label:"状态",prop:"status"},{default:l(()=>[a(j,{modelValue:s.status,"onUpdate:modelValue":e[6]||(e[6]=t=>s.status=t),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),a(I,{modelValue:f.value,"onUpdate:modelValue":e[11]||(e[11]=t=>f.value=t),title:"快捷备注",width:"420px","destroy-on-close":""},{footer:l(()=>[a(r,{onClick:e[10]||(e[10]=t=>f.value=!1)},{default:l(()=>[...e[19]||(e[19]=[i("取消",-1)])]),_:1}),a(r,{type:"primary",loading:U.value,onClick:O},{default:l(()=>[...e[20]||(e[20]=[i("保存",-1)])]),_:1},8,["loading"])]),default:l(()=>[y("div",ze,"账号:"+R(A.value),1),a(g,{modelValue:v.value,"onUpdate:modelValue":e[9]||(e[9]=t=>v.value=t),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"可填写用户相关信息,仅管理员可见"},null,8,["modelValue"])]),_:1},8,["modelValue"])])}}});export{$e as default}; +import{o as Z,ap as ee,q as L,r as ae,v as a,D as l,bd as te,bb as le,aA as oe,bc as se,K as ne,L as i,bj as re,s as y,ac as ie,O as ue,bk as de,bl as pe,T as R,a1 as me,w as ce,u as fe,bv as ve,I as ge,bn as _e,bu as ke,aB as ye,M as n,aC as D,E as V,e as be}from"./.pnpm-CyuAWpdG.js";import{e as Ve,f as z,g as he,h as we}from"./asset-LsxWDUaP.js";import"./index-Bkarz3gO.js";const xe={class:"asset-user-container"},Ce={class:"mb-4"},Ee={class:"flex items-center gap-1 min-w-0"},Ue=["title"],De={class:"mt-4 flex justify-end"},ze={class:"text-sm text-gray-500 mb-3"},$e=Z({__name:"index",setup(Te){const h=n(!1),w=n([]),T=n(0),c=D({phone:""}),u=D({page_no:1,page_size:15}),p=n(!1),x=n(""),C=n(!1),E=n(),f=n(!1),U=n(!1),v=n(""),b=n(""),A=n(""),s=D({id:"",phone:"",password:"",remark:"",status:1}),M={phone:[{required:!0,message:"请输入手机号",trigger:"blur"}]},d=async()=>{h.value=!0;try{const o={...u,...c},e=await Ve(o);w.value=e.lists,T.value=e.count}catch(o){console.error(o)}finally{h.value=!1}},B=()=>{u.page_no=1,d()},P=()=>{c.phone="",u.page_no=1,d()},q=async o=>{try{await z({id:o.id,status:o.status}),V.success(o.status===1?"已启用":"已禁用")}catch(e){o.status=o.status===1?0:1,console.error(e)}},F=()=>{x.value="新增账号",Object.assign(s,{id:"",phone:"",password:"",remark:"",status:1}),p.value=!0},K=o=>{x.value="编辑账号",Object.assign(s,{id:o.id,phone:o.phone,password:"",remark:o.remark||"",status:o.status}),p.value=!0},N=o=>{b.value=o.id,A.value=o.phone||"",v.value=o.remark||"",f.value=!0},O=async()=>{if(b.value){U.value=!0;try{await z({id:b.value,remark:v.value});const o=w.value.find(e=>e.id===b.value);o&&(o.remark=v.value),V.success("备注已保存"),f.value=!1}catch(o){console.error(o)}finally{U.value=!1}}},Q=async o=>{try{await be.confirm("确定要删除该账号及其关联资源吗?","提示",{type:"warning"}),await he({id:o.id}),V.success("删除成功"),d()}catch{}},G=async()=>{E.value&&await E.value.validate(async o=>{if(o){C.value=!0;try{s.id?await z(s):await we(s),V.success("操作成功"),p.value=!1,d()}catch(e){console.error(e)}finally{C.value=!1}}})};return ee(()=>{d()}),(o,e)=>{const g=oe,m=le,r=ne,S=te,$=re,_=pe,H=ce,J=me,j=ge,W=de,X=ke,I=ye,Y=_e;return L(),ae("div",xe,[a($,{class:"!border-none",shadow:"never"},{default:l(()=>[a(S,{class:"ls-form",model:c,inline:""},{default:l(()=>[a(m,{class:"w-[280px]",label:"手机号"},{default:l(()=>[a(g,{placeholder:"请输入手机号",modelValue:c.phone,"onUpdate:modelValue":e[0]||(e[0]=t=>c.phone=t),clearable:"",onKeyup:se(B,["enter"])},null,8,["modelValue"])]),_:1}),a(m,null,{default:l(()=>[a(r,{type:"primary",onClick:B},{default:l(()=>[...e[12]||(e[12]=[i("查询",-1)])]),_:1}),a(r,{onClick:P},{default:l(()=>[...e[13]||(e[13]=[i("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),a($,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[y("div",Ce,[a(r,{type:"primary",onClick:F},{default:l(()=>[...e[14]||(e[14]=[i("新增账号",-1)])]),_:1})]),ie((L(),ue(W,{data:w.value},{default:l(()=>[a(_,{prop:"phone",label:"手机号"}),a(_,{label:"备注","min-width":"200"},{default:l(({row:t})=>[y("div",Ee,[y("span",{class:"truncate text-gray-600",title:t.remark||""},R(t.remark||"—"),9,Ue),a(J,{content:"编辑备注",placement:"top"},{default:l(()=>[a(H,{class:"shrink-0 cursor-pointer text-gray-400 hover:text-primary",onClick:k=>N(t)},{default:l(()=>[a(fe(ve))]),_:1},8,["onClick"])]),_:2},1024)])]),_:1}),a(_,{prop:"create_time",label:"创建时间",width:"180"}),a(_,{prop:"status",label:"状态",width:"100"},{default:l(({row:t})=>[a(j,{modelValue:t.status,"onUpdate:modelValue":k=>t.status=k,"active-value":1,"inactive-value":0,"active-text":"正常","inactive-text":"禁用","inline-prompt":"",onChange:k=>q(t)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),a(_,{label:"操作",width:"200",fixed:"right"},{default:l(({row:t})=>[a(r,{type:"primary",link:"",onClick:k=>K(t)},{default:l(()=>[...e[15]||(e[15]=[i("编辑",-1)])]),_:1},8,["onClick"]),a(r,{type:"danger",link:"",onClick:k=>Q(t)},{default:l(()=>[...e[16]||(e[16]=[i("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[Y,h.value]]),y("div",De,[a(X,{"current-page":u.page_no,"onUpdate:currentPage":e[1]||(e[1]=t=>u.page_no=t),"page-size":u.page_size,"onUpdate:pageSize":e[2]||(e[2]=t=>u.page_size=t),total:T.value,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:d,onCurrentChange:d},null,8,["current-page","page-size","total"])])]),_:1}),a(I,{modelValue:p.value,"onUpdate:modelValue":e[8]||(e[8]=t=>p.value=t),title:x.value,width:"500px","destroy-on-close":""},{footer:l(()=>[a(r,{onClick:e[7]||(e[7]=t=>p.value=!1)},{default:l(()=>[...e[17]||(e[17]=[i("取消",-1)])]),_:1}),a(r,{type:"primary",onClick:G,loading:C.value},{default:l(()=>[...e[18]||(e[18]=[i("确定",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(S,{ref_key:"formRef",ref:E,model:s,rules:M,"label-width":"80px"},{default:l(()=>[a(m,{label:"手机号",prop:"phone"},{default:l(()=>[a(g,{modelValue:s.phone,"onUpdate:modelValue":e[3]||(e[3]=t=>s.phone=t),placeholder:"请输入手机号(作为登录账号)"},null,8,["modelValue"])]),_:1}),a(m,{label:"密码",prop:"password"},{default:l(()=>[a(g,{modelValue:s.password,"onUpdate:modelValue":e[4]||(e[4]=t=>s.password=t),placeholder:"为空则默认为 123456","show-password":""},null,8,["modelValue"])]),_:1}),a(m,{label:"备注",prop:"remark"},{default:l(()=>[a(g,{modelValue:s.remark,"onUpdate:modelValue":e[5]||(e[5]=t=>s.remark=t),type:"textarea",rows:3,maxlength:"500","show-word-limit":"",placeholder:"可填写用户相关信息,仅管理员可见"},null,8,["modelValue"])]),_:1}),a(m,{label:"状态",prop:"status"},{default:l(()=>[a(j,{modelValue:s.status,"onUpdate:modelValue":e[6]||(e[6]=t=>s.status=t),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),a(I,{modelValue:f.value,"onUpdate:modelValue":e[11]||(e[11]=t=>f.value=t),title:"快捷备注",width:"420px","destroy-on-close":""},{footer:l(()=>[a(r,{onClick:e[10]||(e[10]=t=>f.value=!1)},{default:l(()=>[...e[19]||(e[19]=[i("取消",-1)])]),_:1}),a(r,{type:"primary",loading:U.value,onClick:O},{default:l(()=>[...e[20]||(e[20]=[i("保存",-1)])]),_:1},8,["loading"])]),default:l(()=>[y("div",ze,"账号:"+R(A.value),1),a(g,{modelValue:v.value,"onUpdate:modelValue":e[9]||(e[9]=t=>v.value=t),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"可填写用户相关信息,仅管理员可见"},null,8,["modelValue"])]),_:1},8,["modelValue"])])}}});export{$e as default}; diff --git a/server/public/admin/assets/index-B3r-iEKl.js b/server/public/admin/assets/index-By_GY55-.js similarity index 95% rename from server/public/admin/assets/index-B3r-iEKl.js rename to server/public/admin/assets/index-By_GY55-.js index 005cc8531..4efc8b61c 100644 --- a/server/public/admin/assets/index-B3r-iEKl.js +++ b/server/public/admin/assets/index-By_GY55-.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-DFFSwWxS.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-QAkeqQ9Q.js","assets/index-Dxvz9lb1.js","assets/index-B3vHLAW8.css","assets/perm-DOfZAzJJ.js","assets/DailyMatrix-BSZy3g0c.js","assets/picker-BDO86vcM.js","assets/index-BnfLT5cB.js","assets/index-B3imPWFk.css","assets/index-yD39j6dM.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-ClBYIwNX.js","assets/index-D0f1Mn00.css","assets/index-BU3OYnKm.js","assets/file-CefRfHD9.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-CE1isNg2.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-GXQTu6xF.js","assets/FollowupAudioReview-92Fgd7wW.js","assets/FollowupAudioField-BG0mRnT5.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-Bdp996ss.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-DFudUjln.js","assets/RecordingPlaybackBlock-GbWd6PMw.js","assets/RecordingVideoPlayer-grUPRDCj.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CafeXQX5.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-0TFZiCkF.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-C2wB-h-D.js","assets/doctor-8vo_5fa4.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-DDh0aI3_.js","assets/patient-Bz8-LT2R.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-BP2alDvZ.js","assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-B4rggqa1.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-Cis-_1uh.js","assets/index-Cf6ygfGC.js","assets/medicine-EUKQYFsM.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-DT7CSmCp.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/detail-BC-AUtN0.js","assets/appointment-FizcUjTK.js","assets/first_visit-BxZL4Ke4.js","assets/appointment-g8BrHfhi.css","assets/AssistantWatchCallDialog-Cmuadkz7.js","assets/AssistantWatchCallDialog-BIPZRgaH.css"])))=>i.map(i=>d[i]); -import{o as qt,R as ot,Q as wa,W as Ma,ap as Oa,aq as Ua,bp as qa,q as d,r as p,v as l,D as i,s as u,F as A,G as S,ae as F,u as s,L as g,T as m,P as k,ac as $,O as f,az as Ba,aA as Qa,bc as zt,K as Ga,w as Ka,cm as Ft,bh as Ha,bi as ja,ad as Xa,bj as Ja,bk as Za,bl as es,bm as ts,aw as dt,a1 as ns,$ as as,Z as ss,_ as is,cn as ls,dn as os,bF as Wt,db as ds,dh as rs,bI as us,d9 as _s,bn as ps,C as K,bC as ms,c4 as cs,c5 as gs,B as vs,ba as fs,aB as ys,bd as hs,bb as bs,bg as ks,J as Cs,c1 as xs,c2 as Ds,bE as Vs,aa as As,cd as fe,al as ye,aC as rt,M as c,p as te}from"./.pnpm-CyuAWpdG.js";import{_ as Es}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{ax as W,o as Rs,ay as Ss,Y as Ts,az as Fe,aA as $s,aB as Is,X as Yt,aC as wt,aD as Ns,aE as Ls,aF as Ps,aG as zs}from"./tcm-QAkeqQ9Q.js";import{i as Fs}from"./order-CIw46QQn.js";import{m as Mt}from"./doctor-8vo_5fa4.js";import{u as Ws}from"./usePaging-CghUEVfD.js";import{u as Ys,j as v,N as ws,Q as Ms,W as Os,n as ut,X as Us,_ as qs}from"./index-Dxvz9lb1.js";import{g as Ot}from"./weapp-COUVUBPI.js";import{h as Y}from"./perm-DOfZAzJJ.js";import{a as Bs,c as Qs}from"./appointment-type-DJT6wPaT.js";import{d as We}from"./dayjs-B2bPhvDy.js";import{_ as Ut}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import Gs from"./RevisitNodeCell-DGzlUBxp.js";import{f as Ks}from"./diag-display-DCz_VAqj.js";const Hs={class:"tcm-diagnosis"},js={class:"filter-main"},Xs={class:"date-chips"},Js=["onClick"],Zs={key:0},ei={key:0},ti={key:0},ni={key:0},ai={class:"pending-assign-wrap"},si={key:0},ii={class:"search-row"},li={class:"filter-chips"},oi=["onClick"],di=["onClick"],ri={class:"filter-more"},ui={class:"list-header"},_i={class:"list-actions"},pi={key:0,class:"list-selected"},mi={class:"table-wrap px-4"},ci={class:"patient-cell"},gi={class:"patient-info"},vi={class:"patient-name"},fi={class:"patient-cell"},yi={class:"patient-info"},hi={class:"patient-name"},bi={class:"apt-badge"},ki={class:"apt-doctor"},Ci={class:"apt-time"},xi={key:0,class:"apt-actions"},Di={class:"apt-badge"},Vi={class:"apt-doctor"},Ai={class:"apt-time"},Ei={key:2,class:"apt-latest-channel"},Ri={key:1,class:"apt-none"},Si={key:0,class:"text-xs text-gray-500"},Ti={key:1,class:"apt-none"},$i={key:0,class:"status-confirmed"},Ii={key:1,class:"status-unconfirmed"},Ni={class:"assistant-cell"},Li={key:1,class:"unserved-days unserved-muted"},Pi={class:"video-watch-col"},zi={class:"video-watch-trigger"},Fi={key:1,class:"video-watch-muted"},Wi={key:1,class:"video-watch-muted"},Yi={class:"pagination-wrap"},wi={class:"min-h-[100px]"},Mi={key:0,class:"text-sm text-gray-600 mb-4 pb-3 border-b border-gray-100"},Oi={class:"font-medium text-gray-800"},Ui={class:"flex flex-wrap items-center gap-2"},qi={class:"text-sm font-medium text-gray-800"},Bi={class:"text-xs text-gray-600 mt-1.5 leading-relaxed"},Qi={class:"flex flex-col items-center justify-center py-4"},Gi={key:0,class:"text-center"},Ki={key:1,class:"text-center"},Hi=["src"],ji={class:"mt-4 text-sm text-gray-600"},Xi={class:"mt-2"},Ji={key:2,class:"text-center text-gray-500"},Zi={class:"text-gray-500"},el={class:"text-gray-500"},tl={class:"font-medium"},nl={class:"font-medium"},al={key:0,class:"mb-4"},sl={key:0},il={key:0,class:"mt-2"},ll={key:1,class:"mt-2"},ol={class:"mb-4"},dl={class:"flex gap-2"},rl={key:0,class:"text-center text-gray-400 py-10"},ul={key:1,class:"record-list"},_l={class:"record-header"},pl={class:"flex items-center gap-2"},ml={class:"font-medium text-sm"},cl={class:"flex items-center gap-2"},gl={class:"text-xs text-gray-400"},vl={class:"record-content"},fl={key:0,class:"mt-1"},yl={key:2,class:"text-center mt-4"},hl=qt({name:"tcmDiagnosis"}),bl=qt({...hl,setup(kl){const Bt=fe(()=>ye(()=>import("./edit-DFFSwWxS.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),Qt=fe(()=>ye(()=>import("./detail-BC-AUtN0.js"),__vite__mapDeps([66,9,1,2,4,5,10,3]))),Gt=fe(()=>ye(()=>import("./index-Cis-_1uh.js"),__vite__mapDeps([56,1,2,57,58,4,5,59,60,3,61,62,63]))),Kt=fe(()=>ye(()=>import("./appointment-FizcUjTK.js"),__vite__mapDeps([67,1,2,40,3,4,5,46,68,69]))),Ht=fe(()=>ye(()=>import("./AssistantWatchCallDialog-Cmuadkz7.js"),__vite__mapDeps([70,1,2,3,4,5,71]))),jt=t=>{if(!t)return"-";const e=String(t).length===10?Number(t)*1e3:Number(t);return We(e).format("YYYY-MM-DD HH:mm:ss")},_t=t=>!t||t.length<11?t:t.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),a=rt({keyword:"",diagnosis_type:"",syndrome_type:"",assistant_id:"",start_time:"",end_time:"",latest_appointment_start_date:"",latest_appointment_end_date:"",latest_appointment_channel_source:"",latest_assign_start_date:"",latest_assign_end_date:"",sort_unserved_days:"",revisit_state:"",revisit_days_bucket:"",sort_revisit_due:"",diagnosis_confirmed:"",appointment_date:"",has_appointment:"",pending_assign:"",pending_booking:"",completed_appointment:"",pending_assign_order_month:"",pending_assign_keyword:""}),pt=c("all"),pe=c(!1),Xt=[{label:"全部",value:""},{label:"已挂号",value:"1"},{label:"未挂号",value:"0"}],Jt=[{label:"全部",value:""},{label:"已确认",value:"1"},{label:"未确认",value:"0"}],Zt=t=>{a.has_appointment=t,a.pending_booking="",a.completed_appointment="",t==="0"&&ie(),V.page=1,x(),T()},en=t=>{a.diagnosis_confirmed=t,a.pending_booking="",a.completed_appointment="",V.page=1,x(),T()};function tn(t){if(!(t.pending_assign==="1"||t.pending_assign===1))return!1;const o=String(t.pending_assign_keyword??"").trim(),_=String(t.keyword??"").trim();return o!==""||_!==""}function mt(t){if(!tn(t))return t;const e=String(t.pending_assign_keyword??"").trim(),o=String(t.keyword??"").trim(),_=e!==""?e:o;return{page_no:t.page_no,page_size:t.page_size,pending_assign:1,pending_assign_keyword:_}}function nn(){const t=String(a.pending_assign_order_month??"").trim();return t!==""?t:a.pending_assign==="1"?"":We().format("YYYY-MM")}function an(){return{keyword:a.keyword,diagnosis_type:a.diagnosis_type,syndrome_type:a.syndrome_type,assistant_id:a.assistant_id,diagnosis_confirmed:a.diagnosis_confirmed,has_appointment:a.has_appointment,latest_appointment_start_date:a.latest_appointment_start_date,latest_appointment_end_date:a.latest_appointment_end_date,latest_appointment_channel_source:a.latest_appointment_channel_source,latest_assign_start_date:a.latest_assign_start_date,latest_assign_end_date:a.latest_assign_end_date,revisit_state:a.revisit_state,revisit_days_bucket:a.revisit_days_bucket}}function w(t={}){return{page_no:1,page_size:1,...an(),appointment_date:"",pending_booking:"",completed_appointment:"",pending_assign:"",pending_assign_order_month:"",pending_assign_keyword:"",sort_unserved_days:"",revisit_state:"",sort_revisit_due:"",...t}}function sn(){return mt(w({pending_assign:1,has_appointment:"",pending_assign_order_month:nn(),pending_assign_keyword:a.pending_assign_keyword}))}const ln=t=>W(mt(t));function on(){if(a.pending_assign!=="1")return;const t=(a.pending_assign_keyword??"").trim(),e=(a.keyword??"").trim();t===""&&e===""||(a.appointment_date="",a.pending_booking="",a.completed_appointment="",a.diagnosis_confirmed="",a.has_appointment="",a.diagnosis_type="",a.syndrome_type="",a.assistant_id="",a.start_time="",a.end_time="",a.latest_appointment_start_date="",a.latest_appointment_end_date="",a.latest_appointment_channel_source="",a.latest_assign_start_date="",a.latest_assign_end_date="",a.sort_unserved_days="",a.revisit_state="",a.revisit_days_bucket="",a.sort_revisit_due="",a.pending_assign_order_month="",pt.value="all",t!==""&&(a.keyword=""))}const L=()=>{on(),V.page=1,x(),T()},dn=te(()=>[{label:"昨天挂号",value:Qe.value},{label:"前天挂号",value:Ge.value},{label:"当天挂号",value:ke.value},{label:"明天挂号",value:qe.value},{label:"后天挂号",value:Be.value},{label:"全部",value:""}]),Ye=c({}),we=c(void 0),Me=c(void 0),Oe=c(void 0),rn=async t=>{a.pending_assign="",a.pending_assign_order_month="",a.pending_assign_keyword="",a.pending_booking="",a.completed_appointment="",a.has_appointment="",he(),ie(),a.appointment_date=t,V.page=1,await x(),T()},un=async()=>{a.pending_assign="",a.pending_assign_order_month="",a.pending_assign_keyword="",a.pending_booking="1",a.completed_appointment="",a.appointment_date="",a.has_appointment="0",he(),ie(),V.page=1,await x(),T()},_n=async()=>{a.pending_assign="",a.pending_assign_order_month="",a.pending_assign_keyword="",a.pending_booking="",a.completed_appointment="1",a.has_appointment="",a.appointment_date="",he(),ie(),V.page=1,await x(),T()},pn=async()=>{a.pending_assign="1",a.pending_booking="",a.completed_appointment="",a.has_appointment="",a.appointment_date="",he(),ie(),a.pending_assign_order_month||(a.pending_assign_order_month=We().format("YYYY-MM")),V.page=1,await x(),T()},mn=async t=>{a.pending_assign_order_month=t||"",a.pending_assign==="1"&&(V.page=1,await x(),T())},cn=ws,gn=Ms,Ue=c(void 0),he=()=>{a.revisit_state="",a.sort_revisit_due=""},ct=async()=>{a.pending_assign="",a.pending_assign_order_month="",a.pending_assign_keyword="",a.pending_booking="",a.completed_appointment="",a.appointment_date="",a.has_appointment="",ie(),a.revisit_state="due",a.sort_revisit_due="asc",a.sort_unserved_days="",V.page=1,await x(),T()},vn=()=>{if(a.revisit_state!==""){a.appointment_date="",a.pending_booking="",a.completed_appointment="";const t=a.sort_revisit_due===""&&a.sort_unserved_days==="";a.revisit_state==="due"&&t&&(a.sort_revisit_due="asc")}else a.sort_revisit_due="";L()},gt=t=>Os(t==null?void 0:t.revisit_due),fn=t=>t!=null&&t.has_prescription?t.followup_rx_voided?"已开方(处方已作废)":"已开方":"未开方",T=async()=>{try{const[t,e,o,_,r,y,D,N,_e,R]=await Promise.all([W(w({appointment_date:Qe.value,has_appointment:""})),W(w({appointment_date:Ge.value,has_appointment:""})),W(w({appointment_date:ke.value,has_appointment:""})),W(w({appointment_date:qe.value,has_appointment:""})),W(w({appointment_date:Be.value,has_appointment:""})),W(w()),W(w({has_appointment:0})),W(w({completed_appointment:1,has_appointment:""})),W(sn()),W(w({revisit_state:"due",has_appointment:""}))]);Ye.value={[Qe.value]:(t==null?void 0:t.count)??0,[Ge.value]:(e==null?void 0:e.count)??0,[ke.value]:(o==null?void 0:o.count)??0,[qe.value]:(_==null?void 0:_.count)??0,[Be.value]:(r==null?void 0:r.count)??0,"":(y==null?void 0:y.count)??0},we.value=(D==null?void 0:D.count)??0,Me.value=(N==null?void 0:N.count)??0,Oe.value=(_e==null?void 0:_e.count)??0,Ue.value=(R==null?void 0:R.count)??0}catch(t){console.error("获取日期数量失败",t)}};function yn(){const t=()=>T();typeof requestIdleCallback=="function"?requestIdleCallback(t,{timeout:2500}):setTimeout(t,120)}const hn=2e4;let be=null;function bn(){typeof document<"u"&&document.hidden||(x({silent:!0}).catch(()=>{}),T())}const M=t=>String(t).padStart(2,"0"),ke=te(()=>{const t=new Date;return`${t.getFullYear()}-${M(t.getMonth()+1)}-${M(t.getDate())}`}),qe=te(()=>{const t=new Date;return t.setDate(t.getDate()+1),`${t.getFullYear()}-${M(t.getMonth()+1)}-${M(t.getDate())}`}),Be=te(()=>{const t=new Date;return t.setDate(t.getDate()+2),`${t.getFullYear()}-${M(t.getMonth()+1)}-${M(t.getDate())}`}),Qe=te(()=>{const t=new Date;return t.setDate(t.getDate()-1),`${t.getFullYear()}-${M(t.getMonth()+1)}-${M(t.getDate())}`}),Ge=te(()=>{const t=new Date;return t.setDate(t.getDate()-2),`${t.getFullYear()}-${M(t.getMonth()+1)}-${M(t.getDate())}`}),vt=c([]),ft=c([]),me=c([]),yt=c([]),kn=async()=>{try{const[t,e,o,_]=await Promise.all([ut({type:"diagnosis_type"}),ut({type:"syndrome_type"}),ut({type:"channels"}),Rs()]);vt.value=(t==null?void 0:t.diagnosis_type)||[],ft.value=(e==null?void 0:e.syndrome_type)||[],yt.value=((o==null?void 0:o.channels)||[]).filter(r=>r.status!==0).sort((r,y)=>{const D=Number((y==null?void 0:y.sort)??0)-Number((r==null?void 0:r.sort)??0);return D!==0?D:Number((y==null?void 0:y.id)??0)-Number((r==null?void 0:r.id)??0)}).map(r=>({name:String((r==null?void 0:r.name)??(r==null?void 0:r.value)??""),value:(r==null?void 0:r.value)!=null&&r.value!==""?String(r.value):""})),me.value=_||[]}catch(t){console.error("获取字典数据失败:",t)}},ie=()=>{a.latest_appointment_start_date="",a.latest_appointment_end_date="",a.latest_appointment_channel_source=""},ht=()=>!!(a.latest_appointment_start_date||a.latest_appointment_end_date||a.latest_appointment_channel_source),bt=()=>{ht()&&(a.appointment_date="",a.pending_booking="",a.completed_appointment="",a.has_appointment==="0"&&(a.has_appointment="")),L()},Cn=()=>{L()},xn=({prop:t,order:e})=>{const o=e==="ascending"?"asc":e==="descending"?"desc":"";a.sort_unserved_days=t==="unserved_days"?o:"",a.sort_revisit_due=t==="revisit_due_date"?o:"",V.page=1,x()},kt=t=>{const e=String((t==null?void 0:t.latest_appointment_channel_source_desc)||"").trim(),o=String((t==null?void 0:t.latest_appointment_channel_source)||"").trim(),_=String((t==null?void 0:t.latest_appointment_channel_source_detail)||"").trim(),r=e||o;return r?_?`${r}(${_})`:r:""},Dn=t=>{if(!t&&t!==0)return"-";const e=typeof t=="string"?parseInt(t):t;if(me.value.length===0)return"...";const o=me.value.find(_=>(typeof _.id=="string"?parseInt(_.id):_.id)===e);return o?o.name:"-"},{pager:V,getLists:x}=Ws({fetchFun:ln,params:a}),Vn=()=>x({silent:!0}),An=()=>{pt.value="all",a.keyword="",a.diagnosis_type="",a.syndrome_type="",a.assistant_id="",a.latest_appointment_start_date="",a.latest_appointment_end_date="",a.latest_appointment_channel_source="",a.latest_assign_start_date="",a.latest_assign_end_date="",a.sort_unserved_days="",a.revisit_state="",a.revisit_days_bucket="",a.sort_revisit_due="",a.diagnosis_confirmed="",a.appointment_date="",a.has_appointment="",a.pending_assign="",a.pending_assign_order_month="",a.pending_assign_keyword="",a.pending_booking="",a.completed_appointment="",V.page=1,x(),T()},Ct=t=>{const e=t.DiagnosisViewRecord||[];return e.length>0&&e.some(o=>o.is_confirmed==1)},En=t=>{if(t==null)return"unserved-muted";const e=Number(t);return Number.isFinite(e)?e>=7?"unserved-red":e>=3?"unserved-orange":"unserved-green":"unserved-muted"},Rn=({row:t})=>{const e=Us(gt(t));return e||(Ct(t)?t.has_appointment?"":"row-no-appointment":"row-unconfirmed")},le=c(),Sn=c(),xt=c(),Ce=c(),xe=c(null),ce=c(null),De=Ys();ot([le,xe],()=>{const t=xe.value,e=le.value;t==null||!(e!=null&&e.open)||(e.open("edit",t),xe.value=null)},{flush:"post"}),ot([Ce,ce],()=>{const t=ce.value,e=Ce.value;!t||!(e!=null&&e.open)||(ce.value=null,Rt(t))},{flush:"post"});const Tn=async t=>{if(!Y(["tcm.diagnosis/guahao"])){v.msgWarning("无挂号权限");return}const e=V.lists.find(o=>Number(o==null?void 0:o.id)===t);if(e){ce.value=e;return}try{const o=await Ss({id:t}),_=o==null?void 0:o.diagnosis;if(!_||!_.patient_id){v.msgWarning("未找到该诊单或患者信息不完整,无法打开挂号");return}ce.value={..._,id:t,patient_id:_.patient_id,patient_name:_.patient_name||"",gender_desc:Ks(_.gender),age:_.age??0}}catch(o){v.msgWarning((o==null?void 0:o.msg)||(o==null?void 0:o.message)||"加载诊单失败,无法打开挂号")}},Ve=c(!1),Dt=c(0),$n=t=>{var o;const e=t.assistant_id??t.assistant;return e==null||e===""?!1:Number(e)===Number((o=De.userInfo)==null?void 0:o.id)},In=t=>{Dt.value=Number(t.id)||0,Ve.value=!0},Vt=t=>Se(t)&&$n(t)&&Y(["tcm.diagnosis/watchCall"]),Ae=t=>{var e;return Se(t)&&((e=t.video_call_hint)==null?void 0:e.state)||"none"},Nn=t=>{const e=t.video_call_hint,o="点击进入实时房间(仅观看,不推流、不上麦)";return e!=null&&e.start_time?`${o}。开始时间:${jt(e.start_time)}`:o},Ln=t=>{const e=Ae(t);return e==="live"||e==="pending_room"},Pn=t=>Ae(t)==="pending_room"?"医生尚未接通或未同步房间号,接通后再点此进入":Nn(t),zn=t=>{if(!Vt(t)){v.msgWarning("仅已预约的视频问诊可进入视频旁观");return}if(Ae(t)!=="live"){v.msgWarning("医生尚未接通或未同步房间号,请稍后再试");return}In(t)},Fn=t=>{const e=t.video_call_hint;return e!=null&&e.label?e.label:"暂无可旁观通话"},Wn=t=>{const e=Ae(t);if(e==="none")return"—";if(e==="live")return"通话中";if(e==="pending_room")return"接通中";const o=t.video_call_hint;return(o==null?void 0:o.label)||"—"},oe=c(!1),Ee=c(),Ke=c(!1),b=rt({patient_id:"",patient_name:"",phone:"",order_type:"",amount:0,remark:"",has_appointment:!1,appointment_time_text:""}),Yn={order_type:[{required:!0,message:"请选择订单类型",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"}]},wn=t=>{var e;b.patient_id=t.patient_id||t.id,b.patient_name=t.patient_name,b.phone=t.phone||"",b.order_type="",b.amount=0,b.remark="",b.has_appointment=!!t.has_appointment,b.appointment_time_text=t.appointment_time_text||"",(e=Ee.value)==null||e.clearValidate(),oe.value=!0},Mn=()=>{var t;b.patient_id="",b.patient_name="",b.phone="",b.order_type="",b.amount=0,b.remark="",b.has_appointment=!1,b.appointment_time_text="",(t=Ee.value)==null||t.clearValidate()},On=async()=>{var t;try{await((t=Ee.value)==null?void 0:t.validate()),Ke.value=!0;const e=await Fs({patient_id:b.patient_id,order_type:b.order_type,amount:b.amount,remark:b.remark});oe.value=!1,x();const o=e==null?void 0:e.order_no;if(o){B.value=!0,H.value=!0,j.value="",X.value={patient_name:b.patient_name,has_appointment:b.has_appointment,appointment_time_text:b.appointment_time_text};try{const _=await Ts({order_no:o});_!=null&&_.qrcode_url?j.value=_.qrcode_url:v.msgError("二维码生成失败")}catch(_){v.msgError((_==null?void 0:_.msg)||"生成二维码失败")}finally{H.value=!1}}}catch(e){console.error("创建订单失败:",e)}finally{Ke.value=!1}},B=c(!1),H=c(!1),j=c(""),X=c(null),Un=te(()=>{const t=X.value;return t?t.has_appointment?t.appointment_time_text||"—":"未挂号":"—"}),He=c("小程序二维码"),je=c("confirm"),I=c([]),de=c([]),ne=c(!1),Xe=c(!1),ge=c("batch"),ve=c(null),E=c({assistant_id:null,is_inherit:!1});function qn(){de.value=[],E.value.assistant_id=null,E.value.is_inherit=!1}const Bn=t=>{I.value=t.map(e=>e.id)},Re=t=>Number((t==null?void 0:t.assistant_id)??(t==null?void 0:t.assistant)??0)>0,Qn=te(()=>{if(!I.value.length)return!1;const t=new Set(I.value);return V.lists.some(e=>t.has(e.id)&&Re(e))}),Gn=t=>{ge.value="single",ve.value=t,de.value=[],E.value.assistant_id=Number(t.assistant_id)>0?Number(t.assistant_id):null,E.value.is_inherit=!1,ne.value=!0},Kn=()=>{if(I.value.length===0){v.msgWarning("请先选择要指派的诊单");return}ge.value="batch",ve.value=null,E.value.assistant_id=null,E.value.is_inherit=!1,de.value=[...I.value],ne.value=!0},Hn=async()=>{if(!E.value.assistant_id){v.msgWarning("请选择医助");return}Xe.value=!0;try{if(ge.value==="single")await Fe({id:ve.value.id,assistant_id:E.value.assistant_id,is_inherit:E.value.is_inherit?1:0});else{const t=de.value;if(!t.length){v.msgWarning("没有可指派的诊单,请关闭后重新勾选");return}for(const e of t)await Fe({id:e,assistant_id:E.value.assistant_id,is_inherit:E.value.is_inherit?1:0});I.value=[],de.value=[]}ne.value=!1,x()}catch(t){console.error("指派失败:",t)}finally{Xe.value=!1}},jn=async t=>{if(!(t!=null&&t.id)||!Re(t)){v.msgWarning("该诊单未指派医助");return}await v.confirm("确定取消该诊单的医助指派吗?"),await Fe({id:t.id,assistant_id:0}),x()},Xn=async()=>{if(!I.value.length){v.msgWarning("请先选择诊单");return}const t=new Set(I.value),e=V.lists.filter(o=>t.has(o.id)&&Re(o));if(!e.length){v.msgWarning("所选诊单中没有已指派医助的记录");return}await v.confirm(`确定取消 ${e.length} 条诊单的医助指派吗?`),await Promise.all(e.map(o=>Fe({id:o.id,assistant_id:0}))),I.value=[],x()},Jn=()=>{le.value.open("add")},Zn=t=>{le.value.open("edit",t)};function ea(t){return a.pending_assign==="1"?"开方":Number(t==null?void 0:t.prescription_audit_status)===1&&Number(t==null?void 0:t.prescription_void_status)!==1?"查看":"开方"}const ta=t=>{var e;if(!(t!=null&&t.id)){v.msgWarning("诊单信息不完整");return}(e=xt.value)==null||e.open({...t,diagnosis_id:t.id,id:t.appointment_id||0})},na=()=>{var t,e;x(),(e=(t=le.value)==null?void 0:t.refreshCaseList)==null||e.call(t)},aa=async t=>{await v.confirm("确定要删除该诊单吗?"),await Ps({id:t}),x()},sa=(t,e)=>{switch(t){case"assign":Gn(e);break;case"cancelAssign":jn(e);break;case"videoQr":if(!Se(e)){v.msgWarning("仅已预约的视频问诊可生成视频二维码");return}Tt(e);break;case"confirmQr":$t(e);break;case"cancelApt":_a(e);break;case"guahaoLogs":ga(e);break;case"order":wn(e);break;case"delete":aa(e.id);break}},ia=t=>{const e=Number(t.appointment_status);return e===3?"已完成":e===4?"已过号":"已挂号"},la=t=>{const e=Number(t);return e===3?"已完成":e===4?"已过号":"已挂号"},J=t=>{const e=Array.isArray(t.appointments)?t.appointments:[];return e.length>0?e:t.has_appointment?[{id:t.appointment_id,status:t.appointment_status,doctor_id:t.appointment_doctor_id,doctor_name:t.appointment_doctor_name,time_text:t.appointment_time_text,appointment_type:t.appointment_type}]:[]},oa=t=>{const e=Number(t==null?void 0:t.status);return{"apt-item-done":e===3,"apt-item-missed":e===4,"apt-item-active":e===1}},da=t=>{const e=Number(t.appointment_status);return{"has-apt":t.has_appointment,"apt-row-done":t.has_appointment&&e===3,"apt-row-missed":t.has_appointment&&e===4}},Je=(t,e=!1)=>J(t).find(o=>Number(o==null?void 0:o.status)===1&&(!e||Qs(o.appointment_type)))??null,At=(t,e=!1)=>{const o=Je(t,e);return o?{...t,has_appointment:1,appointment_id:o.id,appointment_status:o.status,appointment_doctor_id:o.doctor_id,appointment_doctor_name:o.doctor_name,appointment_time_text:o.time_text,appointment_type:o.appointment_type}:null},ra=t=>!!Je(t),Se=t=>!!Je(t,!0),Et=t=>{const e=Number(t.appointment_status);return!!(t.has_appointment&&t.appointment_id&&(e===1||e===4))},Ze=t=>{const e=Number(t==null?void 0:t.status);return!!(t!=null&&t.id&&(e===1||e===4))},ua=t=>Et(t)?J(t).length<=1:!1,_a=async t=>{var r;if(!Et(t)){const y=Number(t.appointment_status);t.has_appointment&&y===3?v.msgWarning("已完成就诊,无法取消挂号"):v.msgWarning("该诊单未挂号或挂号信息异常");return}const e=J(t),o=e.length===1?e[0]:null,_=o!=null&&o.id&&Ze(o)?o.id:t.appointment_id;try{await v.confirm(`确定要取消患者「${t.patient_name}」的挂号吗?`),await Mt({id:_}),v.msgSuccess("取消挂号成功"),x(),T(),ae.value&&((r=Q.value)==null?void 0:r.id)===t.id&&await $e(t.id)}catch(y){y!=="cancel"&&v.msgError((y==null?void 0:y.msg)||"取消挂号失败")}},pa=async(t,e)=>{var r;if(!Ze(e)){Number(e==null?void 0:e.status)===3?v.msgWarning("已完成就诊,无法取消挂号"):v.msgWarning("该挂号无法取消");return}const o=e.doctor_name||"—",_=e.time_text||"—";try{await v.confirm(`确定取消「${o}」${_} 的挂号吗?(患者:${t.patient_name||"—"})`),await Mt({id:e.id}),v.msgSuccess("取消挂号成功"),x(),T(),ae.value&&((r=Q.value)==null?void 0:r.id)===t.id&&await $e(t.id)}catch(y){y!=="cancel"&&v.msgError((y==null?void 0:y.msg)||"取消挂号失败")}},ae=c(!1),Te=c(!1),re=c([]),Q=c(null);function ma(){re.value=[],Q.value=null}function ca(t){const e=String((t==null?void 0:t.admin_name)||"").trim(),o=Number(t==null?void 0:t.admin_id);return e||(o>0?`管理员 #${o}`:"—")}async function $e(t){Te.value=!0;try{const e=await $s({id:t});re.value=Array.isArray(e==null?void 0:e.data)?e.data:Array.isArray(e)?e:[]}catch{re.value=[]}finally{Te.value=!1}}async function ga(t){if(!(t!=null&&t.id)){v.msgWarning("诊单信息不完整");return}Q.value=t,ae.value=!0,await $e(Number(t.id))}async function va(){var t;await x({silent:!0}),T(),ae.value&&((t=Q.value)!=null&&t.id)&&await $e(Number(Q.value.id))}const Rt=t=>{var e;if(!t.patient_id){v.msgWarning("患者信息不完整");return}(e=Ce.value)==null||e.open(t)},ue=c(!1),et=c(!1),St=c(),O=rt({id:0,patient_name:"",id_card:""}),fa={id_card:[{required:!0,validator:(t,e,o)=>{if(!e){o(new Error("请输入身份证号"));return}const _=/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e),r=/^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$/.test(e);_||r?o():o(new Error("请输入15或18位有效身份证号"))},trigger:"blur"}]},ya=t=>{O.id=t.id,O.patient_name=t.patient_name||"-",O.id_card=t.id_card||"",ue.value=!0},ha=async()=>{var t;await((t=St.value)==null?void 0:t.validate()),et.value=!0;try{await Is({id:O.id,id_card:O.id_card}),v.msgSuccess("补全成功,年龄已自动更新"),ue.value=!1,x()}catch(e){v.msgError((e==null?void 0:e.msg)||"补全失败")}finally{et.value=!1}},Tt=async t=>{var o;const e=At(t,!0);if(!e){v.msgWarning("仅已预约的视频问诊可生成视频二维码");return}if(!e.patient_id){v.msgWarning("患者信息不完整");return}je.value="video",X.value=e,B.value=!0,H.value=!0,j.value="",He.value="视频二维码";try{const _=await Ot();if(!(_!=null&&_.app_id)){v.msgError("小程序未配置,请先配置小程序信息"),B.value=!1;return}const r=await Yt({doctor_id:e.appointment_doctor_id,diagnosis_id:e.appointment_doctor_id,patient_id:e.patient_id,share_user_id:((o=De.userInfo)==null?void 0:o.id)||"",mini_program_path:"pages/login/login"});r!=null&&r.qrcode_url?j.value=r.qrcode_url:v.msgError("二维码生成失败")}catch(_){v.msgError((_==null?void 0:_.msg)||"生成二维码失败,请重试")}finally{H.value=!1}},$t=async t=>{const e=At(t);if(!e){v.msgWarning("仅「已预约」状态可使用诊单二维码");return}if(!e.patient_id){v.msgWarning("患者信息不完整");return}je.value="confirm",X.value=e,B.value=!0,H.value=!0,j.value="",He.value="诊单二维码";try{const o=await Ot();if(!(o!=null&&o.app_id)){v.msgError("小程序未配置,请先配置小程序信息"),B.value=!1;return}const _=De.userInfo,r=await Yt({diagnosis_id:e.id,doctor_id:e.appointment_doctor_id,patient_id:e.patient_id,share_user_id:(_==null?void 0:_.id)||""});r!=null&&r.qrcode_url?j.value=r.qrcode_url:v.msgError("二维码生成失败")}catch(o){console.error("生成小程序二维码失败:",o),v.msgError((o==null?void 0:o.msg)||"生成二维码失败,请重试")}finally{H.value=!1}},ba=()=>{X.value&&(je.value==="video"?Tt(X.value):$t(X.value))},Ie=c(!1),P=c(null),Z=c([]),Ne=c(0),tt=c(!1),z=c(null),se=c(""),nt=c(!1),at=c(1),ka=t=>{if(!t)return"-";const e=String(t).length===10?t*1e3:t;return We(e).format("YYYY-MM-DD HH:mm")},Ca=async t=>{P.value=t,Ie.value=!0,Z.value=[],Ne.value=0,z.value=null,se.value="",at.value=1,tt.value=!0;try{const[e,o]=await Promise.all([wt({diagnosis_id:t.id,patient_id:t.patient_id,page_no:1,page_size:20}),zs({patient_id:t.patient_id||t.id}).catch(()=>null)]);Z.value=(e==null?void 0:e.lists)||[],Ne.value=(e==null?void 0:e.count)||0,z.value=o}catch(e){console.error("加载企业微信记录失败:",e)}finally{tt.value=!1}},xa=async()=>{if(P.value){at.value++;try{const t=await wt({diagnosis_id:P.value.id,patient_id:P.value.patient_id,page_no:at.value,page_size:20});Z.value.push(...(t==null?void 0:t.lists)||[])}catch(t){console.error("加载更多记录失败:",t)}}},Da=async()=>{var t;if(!se.value.trim()){v.msgWarning("请输入内容");return}nt.value=!0;try{await Ns({diagnosis_id:P.value.id,patient_id:P.value.patient_id,content:se.value.trim(),msg_type:"note",staff_name:((t=De.userInfo)==null?void 0:t.name)||"",external_name:P.value.patient_name||""}),se.value="",Ca(P.value)}catch(e){v.msgError((e==null?void 0:e.msg)||"添加失败")}finally{nt.value=!1}},Va=async t=>{await v.confirm("确定删除该记录吗?");try{await Ls({id:t}),Z.value=Z.value.filter(e=>e.id!==t),Ne.value--}catch(e){v.msgError((e==null?void 0:e.msg)||"删除失败")}},st=wa(),Aa=Ma(),It=t=>{if(!Y(["tcm.diagnosis/readonlyDetail"]))return;const e=Number(t==null?void 0:t.id);!e||e<=0||Aa.push({path:"/tcm/diagnosis-readonly",query:{id:String(e)}})};Oa(()=>{kn(),String(st.query.revisit_state??"")==="due"?ct():(a.appointment_date=ke.value,x(),yn()),be=setInterval(bn,hn);const t=st.query.id;if(t!=null&&t!==""){const e=Number(t);!Number.isNaN(e)&&e>0&&(String(st.query.action??"")==="appointment"?Ea().then(()=>Tn(e)):xe.value=e)}});const Ea=()=>new Promise(t=>{if(!V.loading){t();return}let e=!1;const o=()=>{e||(e=!0,_(),t())},_=ot(()=>V.loading,r=>{r||o()});setTimeout(o,8e3)});return Ua(()=>{be!=null&&(clearInterval(be),be=null)}),(t,e)=>{var Pt;const o=Ba,_=Qa,r=Ga,y=Ka,D=ja,N=Ha,_e=Ja,R=es,G=ts,Nt=ns,ee=is,Ra=ss,Sa=as,Ta=Za,$a=Es,Ia=ms,Na=gs,La=cs,Lt=vs,Le=ys,U=bs,Pa=ks,it=hs,za=Cs,Pe=Ds,Fa=xs,Wa=Vs,Ya=As,q=qa("perms"),lt=ps;return d(),p("div",Hs,[l(_e,{class:"filter-card !border-none",shadow:"never"},{default:i(()=>[u("div",js,[u("div",Xs,[(d(!0),p(A,null,S(dn.value,n=>(d(),p("span",{key:n.value,class:F(["chip",{active:s(a).pending_assign!=="1"&&s(a).pending_booking!=="1"&&s(a).completed_appointment!=="1"&&s(a).revisit_state===""&&!ht()&&s(a).appointment_date===n.value}]),onClick:h=>rn(n.value)},[g(m(n.label)+" ",1),s(Ye)[n.value]!==void 0?(d(),p("em",Zs,m(s(Ye)[n.value]),1)):k("",!0)],10,Js))),128)),u("span",{class:F(["chip","chip-pending-booking",{active:s(a).pending_booking==="1"}]),onClick:un},[e[36]||(e[36]=g(" 待预约 ",-1)),s(we)!==void 0?(d(),p("em",ei,m(s(we)),1)):k("",!0)],2),u("span",{class:F(["chip","chip-revisit-due",{active:s(a).revisit_state==="due"}]),onClick:ct},[e[37]||(e[37]=g(" 复诊到期 ",-1)),s(Ue)!==void 0?(d(),p("em",ti,m(s(Ue)),1)):k("",!0)],2),u("span",{class:F(["chip","chip-completed-visit",{active:s(a).completed_appointment==="1"}]),onClick:_n},[e[38]||(e[38]=g(" 已完成 ",-1)),s(Me)!==void 0?(d(),p("em",ni,m(s(Me)),1)):k("",!0)],2),$((d(),p("span",ai,[u("span",{class:F(["chip","chip-pending",{active:s(a).pending_assign==="1"}]),onClick:pn},[e[39]||(e[39]=g(" 待分配医助 ",-1)),s(Oe)!==void 0?(d(),p("em",si,m(s(Oe)),1)):k("",!0)],2),s(a).pending_assign==="1"?(d(),f(o,{key:0,modelValue:s(a).pending_assign_order_month,"onUpdate:modelValue":e[0]||(e[0]=n=>s(a).pending_assign_order_month=n),type:"month",placeholder:"订单月份","value-format":"YYYY-MM",clearable:"",class:"pending-assign-month",onChange:mn},null,8,["modelValue"])):k("",!0),s(a).pending_assign==="1"?(d(),f(_,{key:1,modelValue:s(a).pending_assign_keyword,"onUpdate:modelValue":e[1]||(e[1]=n=>s(a).pending_assign_keyword=n),placeholder:"搜身份证/诊单ID/患者号/备注…",clearable:"",class:"pending-assign-search",onKeyup:zt(L,["enter"]),onClear:L},null,8,["modelValue"])):k("",!0)])),[[q,["tcm.diagnosis/assign"]]])]),u("div",ii,[l(_,{modelValue:s(a).keyword,"onUpdate:modelValue":e[2]||(e[2]=n=>s(a).keyword=n),placeholder:"患者姓名 / 手机号",clearable:"",class:"search-input",onKeyup:zt(L,["enter"])},null,8,["modelValue"]),l(r,{type:"primary",onClick:L},{default:i(()=>[...e[40]||(e[40]=[g("查询",-1)])]),_:1})])]),u("div",li,[e[41]||(e[41]=u("span",{class:"chip-label"},"挂号:",-1)),(d(),p(A,null,S(Xt,n=>u("span",{key:n.value,class:F(["chip","chip-sm",{active:s(a).has_appointment===n.value}]),onClick:h=>Zt(n.value)},m(n.label),11,oi)),64)),e[42]||(e[42]=u("span",{class:"chip-divider"},null,-1)),e[43]||(e[43]=u("span",{class:"chip-label"},"确认:",-1)),(d(),p(A,null,S(Jt,n=>u("span",{key:n.value,class:F(["chip","chip-sm",{active:s(a).diagnosis_confirmed===n.value}]),onClick:h=>en(n.value)},m(n.label),11,di)),64)),l(r,{link:"",type:"primary",size:"small",class:"more-btn",onClick:e[3]||(e[3]=n=>pe.value=!s(pe))},{default:i(()=>[g(m(s(pe)?"收起":"更多筛选")+" ",1),l(y,{class:F({"rotate-180":s(pe)})},{default:i(()=>[l(s(Ft))]),_:1},8,["class"])]),_:1})]),$(u("div",ri,[l(N,{modelValue:s(a).diagnosis_type,"onUpdate:modelValue":e[4]||(e[4]=n=>s(a).diagnosis_type=n),placeholder:"诊断类型",clearable:"",size:"small",onChange:L},{default:i(()=>[(d(!0),p(A,null,S(s(vt),n=>(d(),f(D,{key:n.value,label:n.name,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(N,{modelValue:s(a).syndrome_type,"onUpdate:modelValue":e[5]||(e[5]=n=>s(a).syndrome_type=n),placeholder:"证型",clearable:"",size:"small",onChange:L},{default:i(()=>[(d(!0),p(A,null,S(s(ft),n=>(d(),f(D,{key:n.value,label:n.name,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(N,{modelValue:s(a).assistant_id,"onUpdate:modelValue":e[6]||(e[6]=n=>s(a).assistant_id=n),placeholder:"医助",clearable:"",filterable:"",size:"small",onChange:L},{default:i(()=>[(d(!0),p(A,null,S(s(me),n=>(d(),f(D,{key:n.id,label:n.name,value:Number(n.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(Ut,{class:"latest-appointment-range",startTime:s(a).latest_appointment_start_date,"onUpdate:startTime":e[7]||(e[7]=n=>s(a).latest_appointment_start_date=n),endTime:s(a).latest_appointment_end_date,"onUpdate:endTime":e[8]||(e[8]=n=>s(a).latest_appointment_end_date=n),"picker-type":"daterange","value-format":"YYYY-MM-DD","start-placeholder":"最近挂号开始","end-placeholder":"最近挂号结束",onChange:bt},null,8,["startTime","endTime"]),l(Ut,{class:"latest-assign-range",startTime:s(a).latest_assign_start_date,"onUpdate:startTime":e[9]||(e[9]=n=>s(a).latest_assign_start_date=n),endTime:s(a).latest_assign_end_date,"onUpdate:endTime":e[10]||(e[10]=n=>s(a).latest_assign_end_date=n),"picker-type":"daterange","value-format":"YYYY-MM-DD","start-placeholder":"最近指派开始","end-placeholder":"最近指派结束",onChange:Cn},null,8,["startTime","endTime"]),l(N,{modelValue:s(a).latest_appointment_channel_source,"onUpdate:modelValue":e[11]||(e[11]=n=>s(a).latest_appointment_channel_source=n),placeholder:"最近挂号渠道",clearable:"",filterable:"",size:"small",class:"latest-appointment-channel",onChange:bt},{default:i(()=>[(d(!0),p(A,null,S(s(yt),n=>(d(),f(D,{key:String(n.value),label:n.name,value:String(n.value)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(N,{modelValue:s(a).revisit_state,"onUpdate:modelValue":e[12]||(e[12]=n=>s(a).revisit_state=n),placeholder:"复诊状态",clearable:"",size:"small",class:"revisit-state-select",onChange:vn},{default:i(()=>[(d(!0),p(A,null,S(s(cn),n=>(d(),f(D,{key:n.value,label:n.label,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(N,{modelValue:s(a).revisit_days_bucket,"onUpdate:modelValue":e[13]||(e[13]=n=>s(a).revisit_days_bucket=n),placeholder:"开药天数档",clearable:"",size:"small",class:"revisit-days-bucket-select",onChange:L},{default:i(()=>[(d(!0),p(A,null,S(s(gn),n=>(d(),f(D,{key:n.value,label:n.label,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(r,{size:"small",onClick:An},{default:i(()=>[...e[44]||(e[44]=[g("重置",-1)])]),_:1})],512),[[Xa,s(pe)]])]),_:1}),l(_e,{class:"!border-none mt-3 list-card",shadow:"never"},{default:i(()=>[u("div",ui,[u("div",_i,[$((d(),f(r,{type:"primary",onClick:Jn},{default:i(()=>[...e[45]||(e[45]=[g("新增诊单",-1)])]),_:1})),[[q,["tcm.diagnosis/add"]]]),$((d(),f(r,{type:"success",onClick:Kn,disabled:s(I).length===0},{default:i(()=>[...e[46]||(e[46]=[g(" 批量指派医助 ",-1)])]),_:1},8,["disabled"])),[[q,["tcm.diagnosis/assign"]]]),$((d(),f(r,{type:"warning",plain:"",onClick:Xn,disabled:!Qn.value},{default:i(()=>[...e[47]||(e[47]=[g(" 批量取消指派 ",-1)])]),_:1},8,["disabled"])),[[q,["tcm.diagnosis/assign"]]])]),s(I).length>0?(d(),p("div",pi,"已选 "+m(s(I).length)+" 条",1)):k("",!0)]),u("div",mi,[$((d(),f(Ta,{data:s(V).lists,"row-key":"id",size:"default",onSelectionChange:Bn,onRowDblclick:It,onSortChange:xn,"row-class-name":Rn,class:"diagnosis-table",stripe:""},{default:i(()=>[l(R,{type:"selection",width:"48",align:"center"}),l(R,{label:"ID","min-width":"70"},{default:i(({row:n})=>[u("div",ci,[u("div",gi,[u("div",vi,[g(m(n.id)+" ",1),n.assign_read_at===null&&n.assistant_id>0?(d(),f(G,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-1"},{default:i(()=>[...e[48]||(e[48]=[g("NEW",-1)])]),_:1})):k("",!0)])])])]),_:1}),l(R,{label:"患者","min-width":"60"},{default:i(({row:n})=>[u("div",fi,[u("div",yi,[u("div",hi,m(n.patient_name),1)])])]),_:1}),l(R,{label:" 性别 / 年龄",width:"100",align:"left"},{default:i(({row:n})=>[u("div",null,m(n.gender_desc||"-")+" · "+m(n.age??"-")+"岁",1)]),_:1}),l(R,{label:"挂号","min-width":"175"},{default:i(({row:n})=>[u("div",{class:F(["appointment-cell",da(n)])},[n.has_appointment?(d(),p(A,{key:0},[J(n).length?(d(!0),p(A,{key:0},S(J(n),h=>(d(),p("div",{key:h.id||`${h.doctor_id}-${h.time_text}`,class:F(["apt-item",oa(h)])},[u("div",bi,m(la(h.status)),1),u("div",ki,m(h.doctor_name||"-"),1),u("div",Ci,m(h.time_text||"-"),1),Ze(h)?(d(),p("div",xi,[$((d(),f(r,{type:"danger",link:"",size:"small",onClick:dt(C=>pa(n,h),["stop"])},{default:i(()=>[...e[49]||(e[49]=[g(" 取消挂号 ",-1)])]),_:1},8,["onClick"])),[[q,["tcm.diagnosis/guahao"]]])])):k("",!0)],2))),128)):(d(),p(A,{key:1},[u("div",Di,m(ia(n)),1),u("div",Vi,m(n.appointment_doctor_name||"-"),1),u("div",Ai,m(n.appointment_time_text||"-"),1)],64)),kt(n)?(d(),p("div",Ei," 最近渠道:"+m(kt(n)),1)):k("",!0)],64)):(d(),p("span",Ri,"未挂号"))],2)]),_:1}),l(R,{label:"挂号类型","min-width":"120"},{default:i(({row:n})=>[J(n).length?(d(!0),p(A,{key:0},S(J(n),h=>(d(),p("div",{key:h.id||`${h.doctor_id}-${h.time_text}`,class:"mb-2"},[u("div",null,m(s(Bs)(h.appointment_type)),1),J(n).length>1?(d(),p("div",Si,m(h.doctor_name||"—")+" · "+m(h.time_text||"—"),1)):k("",!0)]))),128)):(d(),p("span",Ti,"—"))]),_:1}),l(R,{label:"确认",width:"88",align:"center"},{default:i(({row:n})=>[Ct(n)?(d(),p("span",$i,"已确认")):(d(),p("span",Ii,"未确认"))]),_:1}),l(R,{label:"复诊节点",prop:"revisit_due_date","min-width":"180",sortable:"custom"},{default:i(({row:n})=>[l(Gs,{due:gt(n),"has-prescription":!!n.has_prescription,"followup-doctor-name":n.followup_doctor_name||"","prescribed-text":fn(n)},null,8,["due","has-prescription","followup-doctor-name","prescribed-text"])]),_:1}),l(R,{label:"助理",width:"100","show-overflow-tooltip":""},{default:i(({row:n})=>[u("span",Ni,m(Dn(n.assistant_id||n.assistant)),1)]),_:1}),l(R,{label:"未服务天数",prop:"unserved_days",width:"110",align:"center",sortable:"custom","sort-orders":["descending","ascending"]},{default:i(({row:n})=>[n.last_blood_record_at?(d(),f(Nt,{key:0,content:`最近一次健康打卡:${n.last_blood_record_at}`,placement:"top"},{default:i(()=>[u("span",{class:F(["unserved-days",En(n.unserved_days)])},m(n.unserved_days??"—"),3)]),_:2},1032,["content"])):(d(),p("span",Li,"—"))]),_:1}),l(R,{label:"视频旁观",width:"120",fixed:"right",align:"center"},{default:i(({row:n})=>[u("div",Pi,[Vt(n)?(d(),p(A,{key:0},[Ln(n)?(d(),f(Nt,{key:0,content:Pn(n),placement:"top"},{default:i(()=>[u("span",zi,[l(r,{type:"primary",link:"",size:"small",onClick:h=>zn(n)},{default:i(()=>[...e[50]||(e[50]=[g(" 进入旁观 ",-1)])]),_:1},8,["onClick"])])]),_:2},1032,["content"])):(d(),p("span",Fi,m(Fn(n)),1))],64)):(d(),p("span",Wi,m(Wn(n)),1))])]),_:1}),l(R,{label:"操作",width:"340",fixed:"right",align:"left"},{default:i(({row:n})=>[u("div",{class:"action-cell",onClick:e[14]||(e[14]=dt(()=>{},["stop"])),onDblclick:e[15]||(e[15]=dt(()=>{},["stop"]))},[$((d(),f(r,{type:"primary",link:"",size:"small",onClick:h=>It(n)},{default:i(()=>[...e[51]||(e[51]=[g(" 查看 ",-1)])]),_:1},8,["onClick"])),[[q,["tcm.diagnosis/readonlyDetail"]]]),$((d(),f(r,{type:"primary",link:"",size:"small",onClick:h=>Zn(n.id)},{default:i(()=>[...e[52]||(e[52]=[g("诊单",-1)])]),_:1},8,["onClick"])),[[q,["tcm.diagnosis/edit"]]]),$((d(),f(r,{type:"primary",link:"",size:"small",onClick:h=>ta(n)},{default:i(()=>[g(m(ea(n)),1)]),_:2},1032,["onClick"])),[[q,["tcm.diagnosis/kaifang"]]]),$((d(),f(r,{type:"success",link:"",size:"small",onClick:h=>Rt(n)},{default:i(()=>[...e[53]||(e[53]=[g("预约",-1)])]),_:1},8,["onClick"])),[[q,["tcm.diagnosis/guahao"]]]),$((d(),f(r,{type:"warning",link:"",size:"small",onClick:h=>ya(n)},{default:i(()=>[...e[54]||(e[54]=[g("补全身份证",-1)])]),_:1},8,["onClick"])),[[q,["tcm.diagnosis/edit"]]]),l(Sa,{trigger:"click",onCommand:h=>sa(h,n),placement:"bottom-end"},{dropdown:i(()=>[l(Ra,null,{default:i(()=>[s(Y)(["tcm.diagnosis/assign"])?(d(),f(ee,{key:0,command:"assign"},{default:i(()=>[l(y,null,{default:i(()=>[l(s(ls))]),_:1}),e[56]||(e[56]=g("指派",-1))]),_:1})):k("",!0),s(Y)(["tcm.diagnosis/assign"])&&Re(n)?(d(),f(ee,{key:1,command:"cancelAssign"},{default:i(()=>[l(y,null,{default:i(()=>[l(s(os))]),_:1}),e[57]||(e[57]=g("取消指派 ",-1))]),_:1})):k("",!0),Se(n)&&s(Y)(["tcm.diagnosis/videoQr"])?(d(),f(ee,{key:2,command:"videoQr"},{default:i(()=>[l(y,null,{default:i(()=>[l(s(Wt))]),_:1}),e[58]||(e[58]=g("视频二维码",-1))]),_:1})):k("",!0),s(Y)(["tcm.diagnosis/guahao"])&&ra(n)?(d(),f(ee,{key:3,command:"confirmQr"},{default:i(()=>[l(y,null,{default:i(()=>[l(s(Wt))]),_:1}),e[59]||(e[59]=g("二维码",-1))]),_:1})):k("",!0),ua(n)&&s(Y)(["tcm.diagnosis/guahao"])?(d(),f(ee,{key:4,command:"cancelApt"},{default:i(()=>[l(y,null,{default:i(()=>[l(s(ds))]),_:1}),e[60]||(e[60]=g("取消挂号 ",-1))]),_:1})):k("",!0),s(Y)(["tcm.diagnosis/guahaoLogList"])?(d(),f(ee,{key:5,command:"guahaoLogs"},{default:i(()=>[l(y,null,{default:i(()=>[l(s(rs))]),_:1}),e[61]||(e[61]=g("挂号日志",-1))]),_:1})):k("",!0),s(Y)(["tcm.diagnosis/order"])?(d(),f(ee,{key:6,command:"order"},{default:i(()=>[l(y,null,{default:i(()=>[l(s(us))]),_:1}),e[62]||(e[62]=g("创建订单",-1))]),_:1})):k("",!0),s(Y)(["tcm.diagnosis/delete"])?(d(),f(ee,{key:7,command:"delete",divided:""},{default:i(()=>[l(y,null,{default:i(()=>[l(s(_s))]),_:1}),e[63]||(e[63]=u("span",{class:"text-danger"},"删除",-1))]),_:1})):k("",!0)]),_:2},1024)]),default:i(()=>[l(r,{type:"info",link:"",size:"small"},{default:i(()=>[e[55]||(e[55]=g("更多",-1)),l(y,{class:"el-icon--right"},{default:i(()=>[l(s(Ft))]),_:1})]),_:1})]),_:2},1032,["onCommand"])],32)]),_:1})]),_:1},8,["data"])),[[lt,s(V).loading]]),u("div",Yi,[l($a,{modelValue:s(V),"onUpdate:modelValue":e[16]||(e[16]=n=>K(V)?V.value=n:null),onChange:s(x)},null,8,["modelValue","onChange"])])])]),_:1}),l(s(Bt),{ref_key:"editRef",ref:le,onSuccess:Vn},null,512),l(s(Qt),{ref_key:"detailRef",ref:Sn},null,512),l(s(Gt),{ref_key:"prescriptionRef",ref:xt,onSuccess:na},null,512),l(s(Kt),{ref_key:"appointmentRef",ref:Ce,onSuccess:va},null,512),l(s(Ht),{modelValue:s(Ve),"onUpdate:modelValue":e[17]||(e[17]=n=>K(Ve)?Ve.value=n:null),"diagnosis-id":s(Dt),onClosed:s(x)},null,8,["modelValue","diagnosis-id","onClosed"]),l(Lt,{modelValue:s(ae),"onUpdate:modelValue":e[18]||(e[18]=n=>K(ae)?ae.value=n:null),title:"挂号操作日志",size:"460px","destroy-on-close":"",onClosed:ma},{default:i(()=>[$((d(),p("div",wi,[s(Q)?(d(),p("div",Mi,[u("span",Oi,m(s(Q).patient_name),1),e[64]||(e[64]=u("span",{class:"mx-2 text-gray-300"},"|",-1)),u("span",null,"诊单 #"+m(s(Q).id),1)])):k("",!0),!s(Te)&&s(re).length===0?(d(),f(Ia,{key:1,description:"暂无挂号/取消挂号操作记录"})):s(re).length>0?(d(),f(La,{key:2},{default:i(()=>[(d(!0),p(A,null,S(s(re),(n,h)=>(d(),f(Na,{key:n.id??h,timestamp:n.create_time_text||"—",placement:"top"},{default:i(()=>[u("div",Ui,[l(G,{size:"small",type:"info"},{default:i(()=>[g(m(n.action_desc),1)]),_:2},1024),u("span",qi,m(ca(n)),1)]),u("div",Bi,m(n.summary),1)]),_:2},1032,["timestamp"]))),128))]),_:1})):k("",!0)])),[[lt,s(Te)]])]),_:1},8,["modelValue"]),l(Le,{modelValue:s(B),"onUpdate:modelValue":e[20]||(e[20]=n=>K(B)?B.value=n:null),title:s(He),width:"400px","close-on-click-modal":!1},{footer:i(()=>[l(r,{onClick:e[19]||(e[19]=n=>B.value=!1)},{default:i(()=>[...e[67]||(e[67]=[g("关闭",-1)])]),_:1}),s(H)?k("",!0):(d(),f(r,{key:0,type:"primary",onClick:ba},{default:i(()=>[...e[68]||(e[68]=[g(" 重新生成 ",-1)])]),_:1}))]),default:i(()=>{var n;return[u("div",Qi,[s(H)?(d(),p("div",Gi,[l(y,{class:"is-loading",size:40},{default:i(()=>[l(s(fs))]),_:1}),e[65]||(e[65]=u("div",{class:"mt-4 text-gray-500"},"生成中...",-1))])):s(j)?(d(),p("div",Ki,[u("img",{src:s(j),alt:"小程序二维码",class:"w-64 h-64 border border-gray-200 rounded"},null,8,Hi),u("div",ji,[u("div",null,"患者:"+m((n=s(X))==null?void 0:n.patient_name),1),u("div",Xi,"挂号时间:"+m(Un.value),1),e[66]||(e[66]=u("div",{class:"mt-2"},"请使用企业微信扫描二维码,然后转发给患者",-1))])])):(d(),p("div",Ji," 生成失败,请重试 "))])]}),_:1},8,["modelValue","title"]),l(Le,{modelValue:s(ne),"onUpdate:modelValue":e[24]||(e[24]=n=>K(ne)?ne.value=n:null),title:s(ge)==="batch"?"批量指派医助":"指派医助",width:"500px",onClosed:qn},{footer:i(()=>[l(r,{onClick:e[23]||(e[23]=n=>ne.value=!1)},{default:i(()=>[...e[70]||(e[70]=[g("取消",-1)])]),_:1}),l(r,{type:"primary",onClick:Hn,loading:s(Xe)},{default:i(()=>[...e[71]||(e[71]=[g(" 确定指派 ",-1)])]),_:1},8,["loading"])]),default:i(()=>[l(it,{model:s(E),"label-width":"100px"},{default:i(()=>[l(U,{label:"选择医助",required:""},{default:i(()=>[l(N,{modelValue:s(E).assistant_id,"onUpdate:modelValue":e[21]||(e[21]=n=>s(E).assistant_id=n),placeholder:"请选择医助",class:"w-full",filterable:"",clearable:""},{default:i(()=>[(d(!0),p(A,null,S(s(me),n=>(d(),f(D,{key:n.id,label:n.name,value:Number(n.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(U,{label:"继承"},{default:i(()=>[l(Pa,{modelValue:s(E).is_inherit,"onUpdate:modelValue":e[22]||(e[22]=n=>s(E).is_inherit=n)},{default:i(()=>[...e[69]||(e[69]=[g("继承",-1)])]),_:1},8,["modelValue"])]),_:1}),s(ge)==="batch"?(d(),f(U,{key:0,label:"已选择"},{default:i(()=>[u("div",Zi,m(s(de).length)+" 条诊单记录",1)]),_:1})):(d(),f(U,{key:1,label:"诊单信息"},{default:i(()=>{var n,h;return[u("div",el,[u("div",null,"患者:"+m((n=s(ve))==null?void 0:n.patient_name),1),u("div",null,"诊断日期:"+m((h=s(ve))==null?void 0:h.diagnosis_date_text),1)])]}),_:1}))]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(Le,{modelValue:s(oe),"onUpdate:modelValue":e[29]||(e[29]=n=>K(oe)?oe.value=n:null),title:"创建订单",width:"600px",onClose:Mn},{footer:i(()=>[l(r,{onClick:e[28]||(e[28]=n=>oe.value=!1)},{default:i(()=>[...e[72]||(e[72]=[g("取消",-1)])]),_:1}),l(r,{type:"primary",onClick:On,loading:s(Ke)},{default:i(()=>[...e[73]||(e[73]=[g("创建订单",-1)])]),_:1},8,["loading"])]),default:i(()=>[l(it,{ref_key:"orderFormRef",ref:Ee,model:s(b),rules:Yn,"label-width":"100px"},{default:i(()=>[l(U,{label:"患者"},{default:i(()=>[u("span",tl,m(s(b).patient_name)+" ("+m(_t(s(b).phone))+")",1)]),_:1}),l(U,{label:"订单类型",prop:"order_type"},{default:i(()=>[l(N,{modelValue:s(b).order_type,"onUpdate:modelValue":e[25]||(e[25]=n=>s(b).order_type=n),placeholder:"请选择",class:"w-full"},{default:i(()=>[l(D,{label:"挂号费",value:1}),l(D,{label:"问诊费",value:2}),l(D,{label:"药品费用",value:3}),l(D,{label:"首付费用",value:4}),l(D,{label:"尾款费用",value:5}),l(D,{label:"其他费用",value:6}),l(D,{label:"全部费用",value:7}),l(D,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),l(U,{label:"订单金额",prop:"amount"},{default:i(()=>[l(za,{modelValue:s(b).amount,"onUpdate:modelValue":e[26]||(e[26]=n=>s(b).amount=n),min:0,step:.01,precision:2,placeholder:"请输入金额",class:"w-full"},null,8,["modelValue"])]),_:1}),l(U,{label:"备注",prop:"remark"},{default:i(()=>[l(_,{modelValue:s(b).remark,"onUpdate:modelValue":e[27]||(e[27]=n=>s(b).remark=n),type:"textarea",rows:3,placeholder:"请输入备注(可选)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(Le,{modelValue:s(ue),"onUpdate:modelValue":e[32]||(e[32]=n=>K(ue)?ue.value=n:null),title:"补全身份证号",width:"400px","close-on-click-modal":!1,onClose:e[33]||(e[33]=n=>s(O).id_card="")},{footer:i(()=>[l(r,{onClick:e[31]||(e[31]=n=>ue.value=!1)},{default:i(()=>[...e[74]||(e[74]=[g("取消",-1)])]),_:1}),l(r,{type:"primary",onClick:ha,loading:s(et)},{default:i(()=>[...e[75]||(e[75]=[g("提交(自动更新年龄)",-1)])]),_:1},8,["loading"])]),default:i(()=>[l(it,{ref_key:"fillIdCardFormRef",ref:St,model:s(O),rules:fa,"label-width":"80px"},{default:i(()=>[l(U,{label:"患者"},{default:i(()=>[u("span",nl,m(s(O).patient_name),1)]),_:1}),l(U,{label:"身份证号",prop:"id_card"},{default:i(()=>[l(_,{modelValue:s(O).id_card,"onUpdate:modelValue":e[30]||(e[30]=n=>s(O).id_card=n),placeholder:"请输入15或18位身份证号",maxlength:"18","show-word-limit":"",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(Lt,{modelValue:s(Ie),"onUpdate:modelValue":e[35]||(e[35]=n=>K(Ie)?Ie.value=n:null),title:`企业微信记录 - ${((Pt=s(P))==null?void 0:Pt.patient_name)||""}`,size:"600px","destroy-on-close":!0},{default:i(()=>{var n,h;return[s(z)?(d(),p("div",al,[l(Fa,{column:2,border:"",size:"small"},{default:i(()=>[l(Pe,{label:"患者姓名"},{default:i(()=>{var C;return[g(m((C=s(P))==null?void 0:C.patient_name),1)]}),_:1}),l(Pe,{label:"手机号"},{default:i(()=>[g(m(_t(s(z).phone)||"-"),1)]),_:1}),l(Pe,{label:"企微联系人ID"},{default:i(()=>[s(z).external_userid?(d(),p("span",sl,m(s(z).external_userid),1)):(d(),f(G,{key:1,type:"info",size:"small"},{default:i(()=>[...e[76]||(e[76]=[g("未关联",-1)])]),_:1}))]),_:1}),l(Pe,{label:"会话存档"},{default:i(()=>[s(z).msgaudit_enabled?(d(),f(G,{key:0,type:"success",size:"small"},{default:i(()=>[...e[77]||(e[77]=[g("已开通",-1)])]),_:1})):(d(),f(G,{key:1,type:"info",size:"small"},{default:i(()=>[...e[78]||(e[78]=[g("未配置",-1)])]),_:1}))]),_:1})]),_:1}),(n=s(z).permit_users)!=null&&n.length?(d(),p("div",il,[e[79]||(e[79]=u("span",{class:"text-sm text-gray-500 mr-2"},"存档成员:",-1)),(d(!0),p(A,null,S(s(z).permit_users,C=>(d(),f(G,{key:C,size:"small",class:"mr-1"},{default:i(()=>[g(m(C),1)]),_:2},1024))),128))])):k("",!0),(h=s(z).msgaudit_agree)!=null&&h.length?(d(),p("div",ll,[e[80]||(e[80]=u("span",{class:"text-sm text-gray-500 mr-2"},"存档同意:",-1)),(d(!0),p(A,null,S(s(z).msgaudit_agree,(C,ze)=>(d(),f(G,{key:ze,type:C.agree_status==="Agree"?"success":"warning",size:"small",class:"mr-1"},{default:i(()=>[g(m(C.userid)+": "+m(C.agree_status==="Agree"?"已同意":C.agree_status),1)]),_:2},1032,["type"]))),128))])):k("",!0)])):k("",!0),l(Wa),u("div",ol,[u("div",dl,[l(_,{modelValue:s(se),"onUpdate:modelValue":e[34]||(e[34]=C=>K(se)?se.value=C:null),type:"textarea",rows:2,placeholder:"添加沟通记录...",class:"flex-1"},null,8,["modelValue"]),l(r,{type:"primary",onClick:Da,loading:s(nt),class:"self-end"},{default:i(()=>[...e[81]||(e[81]=[g(" 添加 ",-1)])]),_:1},8,["loading"])])]),$((d(),p("div",null,[s(Z).length===0?(d(),p("div",rl," 暂无聊天记录 ")):(d(),p("div",ul,[(d(!0),p(A,null,S(s(Z),C=>{var ze;return d(),p("div",{key:C.id,class:"record-item"},[u("div",_l,[u("div",pl,[l(G,{type:C.direction===0?"primary":"success",size:"small"},{default:i(()=>[g(m(C.direction===0?"员工":"客户"),1)]),_:2},1032,["type"]),u("span",ml,m(C.direction===0?C.staff_name:C.external_name||((ze=s(P))==null?void 0:ze.patient_name)),1),C.msg_type==="note"?(d(),f(G,{key:0,type:"warning",size:"small"},{default:i(()=>[...e[82]||(e[82]=[g("备注",-1)])]),_:1})):k("",!0)]),u("div",cl,[u("span",gl,m(ka(C.chat_time)),1),l(r,{type:"danger",link:"",size:"small",onClick:xl=>Va(C.id)},{default:i(()=>[...e[83]||(e[83]=[g(" 删除 ",-1)])]),_:1},8,["onClick"])])]),u("div",vl,m(C.content),1),C.media_url?(d(),p("div",fl,[l(Ya,{src:C.media_url,style:{"max-width":"200px"},fit:"contain","preview-src-list":[C.media_url]},null,8,["src","preview-src-list"])])):k("",!0)])}),128))])),s(Ne)>s(Z).length?(d(),p("div",yl,[l(r,{link:"",type:"primary",onClick:xa},{default:i(()=>[...e[84]||(e[84]=[g("加载更多",-1)])]),_:1})])):k("",!0)])),[[lt,s(tt)]])]}),_:1},8,["modelValue","title"])])}}}),Wl=qs(bl,[["__scopeId","data-v-2e2ba249"]]);export{Wl as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-BuMVMky1.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-BSADvQNg.js","assets/index-Bkarz3gO.js","assets/index-deCJ4ja-.css","assets/perm-CHCBwnFR.js","assets/DailyMatrix-BkYJBu_D.js","assets/picker-BTh9eW9u.js","assets/index-CS5Wg0xx.js","assets/index-B3imPWFk.css","assets/index-oRynN2pP.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-Cqk_cdo9.js","assets/index-D0f1Mn00.css","assets/index-BJZwRQXE.js","assets/file-BjbV-eNx.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-VonOdKxB.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-BQogJqk-.js","assets/FollowupAudioReview-BDRNtxGL.js","assets/FollowupAudioField-Dz9Csp0b.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-2_yvVfnZ.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-PGnYdg0x.js","assets/RecordingPlaybackBlock-DDHsYga7.js","assets/RecordingVideoPlayer-B0kkGDId.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CO99W60y.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-mqnmyStx.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-aR2VA9u1.js","assets/doctor-DBvYeWd3.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-D83GYvN5.js","assets/patient-B_ifBl-W.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-Dk7f29yf.js","assets/PrescriptionOrderDetailDrawer-CX7YbddA.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-C_PSjf1W.js","assets/index-DAIDDabA.js","assets/medicine-DPIOyHj8.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CTRSsggc.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/detail-C1EBtcAD.js","assets/appointment-C_cZtFED.js","assets/first_visit-B5IgLifl.js","assets/appointment-g8BrHfhi.css","assets/AssistantWatchCallDialog-CjRQdKqO.js","assets/AssistantWatchCallDialog-BIPZRgaH.css"])))=>i.map(i=>d[i]); +import{o as qt,R as ot,Q as wa,W as Ma,ap as Oa,aq as Ua,bp as qa,q as d,r as p,v as l,D as i,s as u,F as A,G as S,ae as F,u as s,L as g,T as m,P as k,ac as $,O as f,az as Ba,aA as Qa,bc as zt,K as Ga,w as Ka,cm as Ft,bh as Ha,bi as ja,ad as Xa,bj as Ja,bk as Za,bl as es,bm as ts,aw as dt,a1 as ns,$ as as,Z as ss,_ as is,cn as ls,dn as os,bF as Wt,db as ds,dh as rs,bI as us,d9 as _s,bn as ps,C as K,bC as ms,c4 as cs,c5 as gs,B as vs,ba as fs,aB as ys,bd as hs,bb as bs,bg as ks,J as Cs,c1 as xs,c2 as Ds,bE as Vs,aa as As,cd as fe,al as ye,aC as rt,M as c,p as te}from"./.pnpm-CyuAWpdG.js";import{_ as Es}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{ax as W,o as Rs,ay as Ss,Y as Ts,az as Fe,aA as $s,aB as Is,X as Yt,aC as wt,aD as Ns,aE as Ls,aF as Ps,aG as zs}from"./tcm-BSADvQNg.js";import{i as Fs}from"./order-CKT7wPrv.js";import{m as Mt}from"./doctor-DBvYeWd3.js";import{u as Ws}from"./usePaging-CghUEVfD.js";import{u as Ys,j as v,N as ws,Q as Ms,W as Os,n as ut,X as Us,_ as qs}from"./index-Bkarz3gO.js";import{g as Ot}from"./weapp-COeXC0ZY.js";import{h as Y}from"./perm-CHCBwnFR.js";import{a as Bs,c as Qs}from"./appointment-type-DJT6wPaT.js";import{d as We}from"./dayjs-B2bPhvDy.js";import{_ as Ut}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import Gs from"./RevisitNodeCell-C_WC8gU-.js";import{f as Ks}from"./diag-display-DCz_VAqj.js";const Hs={class:"tcm-diagnosis"},js={class:"filter-main"},Xs={class:"date-chips"},Js=["onClick"],Zs={key:0},ei={key:0},ti={key:0},ni={key:0},ai={class:"pending-assign-wrap"},si={key:0},ii={class:"search-row"},li={class:"filter-chips"},oi=["onClick"],di=["onClick"],ri={class:"filter-more"},ui={class:"list-header"},_i={class:"list-actions"},pi={key:0,class:"list-selected"},mi={class:"table-wrap px-4"},ci={class:"patient-cell"},gi={class:"patient-info"},vi={class:"patient-name"},fi={class:"patient-cell"},yi={class:"patient-info"},hi={class:"patient-name"},bi={class:"apt-badge"},ki={class:"apt-doctor"},Ci={class:"apt-time"},xi={key:0,class:"apt-actions"},Di={class:"apt-badge"},Vi={class:"apt-doctor"},Ai={class:"apt-time"},Ei={key:2,class:"apt-latest-channel"},Ri={key:1,class:"apt-none"},Si={key:0,class:"text-xs text-gray-500"},Ti={key:1,class:"apt-none"},$i={key:0,class:"status-confirmed"},Ii={key:1,class:"status-unconfirmed"},Ni={class:"assistant-cell"},Li={key:1,class:"unserved-days unserved-muted"},Pi={class:"video-watch-col"},zi={class:"video-watch-trigger"},Fi={key:1,class:"video-watch-muted"},Wi={key:1,class:"video-watch-muted"},Yi={class:"pagination-wrap"},wi={class:"min-h-[100px]"},Mi={key:0,class:"text-sm text-gray-600 mb-4 pb-3 border-b border-gray-100"},Oi={class:"font-medium text-gray-800"},Ui={class:"flex flex-wrap items-center gap-2"},qi={class:"text-sm font-medium text-gray-800"},Bi={class:"text-xs text-gray-600 mt-1.5 leading-relaxed"},Qi={class:"flex flex-col items-center justify-center py-4"},Gi={key:0,class:"text-center"},Ki={key:1,class:"text-center"},Hi=["src"],ji={class:"mt-4 text-sm text-gray-600"},Xi={class:"mt-2"},Ji={key:2,class:"text-center text-gray-500"},Zi={class:"text-gray-500"},el={class:"text-gray-500"},tl={class:"font-medium"},nl={class:"font-medium"},al={key:0,class:"mb-4"},sl={key:0},il={key:0,class:"mt-2"},ll={key:1,class:"mt-2"},ol={class:"mb-4"},dl={class:"flex gap-2"},rl={key:0,class:"text-center text-gray-400 py-10"},ul={key:1,class:"record-list"},_l={class:"record-header"},pl={class:"flex items-center gap-2"},ml={class:"font-medium text-sm"},cl={class:"flex items-center gap-2"},gl={class:"text-xs text-gray-400"},vl={class:"record-content"},fl={key:0,class:"mt-1"},yl={key:2,class:"text-center mt-4"},hl=qt({name:"tcmDiagnosis"}),bl=qt({...hl,setup(kl){const Bt=fe(()=>ye(()=>import("./edit-BuMVMky1.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),Qt=fe(()=>ye(()=>import("./detail-C1EBtcAD.js"),__vite__mapDeps([66,9,1,2,4,5,10,3]))),Gt=fe(()=>ye(()=>import("./index-C_PSjf1W.js"),__vite__mapDeps([56,1,2,57,58,4,5,59,60,3,61,62,63]))),Kt=fe(()=>ye(()=>import("./appointment-C_cZtFED.js"),__vite__mapDeps([67,1,2,40,3,4,5,46,68,69]))),Ht=fe(()=>ye(()=>import("./AssistantWatchCallDialog-CjRQdKqO.js"),__vite__mapDeps([70,1,2,3,4,5,71]))),jt=t=>{if(!t)return"-";const e=String(t).length===10?Number(t)*1e3:Number(t);return We(e).format("YYYY-MM-DD HH:mm:ss")},_t=t=>!t||t.length<11?t:t.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),a=rt({keyword:"",diagnosis_type:"",syndrome_type:"",assistant_id:"",start_time:"",end_time:"",latest_appointment_start_date:"",latest_appointment_end_date:"",latest_appointment_channel_source:"",latest_assign_start_date:"",latest_assign_end_date:"",sort_unserved_days:"",revisit_state:"",revisit_days_bucket:"",sort_revisit_due:"",diagnosis_confirmed:"",appointment_date:"",has_appointment:"",pending_assign:"",pending_booking:"",completed_appointment:"",pending_assign_order_month:"",pending_assign_keyword:""}),pt=c("all"),pe=c(!1),Xt=[{label:"全部",value:""},{label:"已挂号",value:"1"},{label:"未挂号",value:"0"}],Jt=[{label:"全部",value:""},{label:"已确认",value:"1"},{label:"未确认",value:"0"}],Zt=t=>{a.has_appointment=t,a.pending_booking="",a.completed_appointment="",t==="0"&&ie(),V.page=1,x(),T()},en=t=>{a.diagnosis_confirmed=t,a.pending_booking="",a.completed_appointment="",V.page=1,x(),T()};function tn(t){if(!(t.pending_assign==="1"||t.pending_assign===1))return!1;const o=String(t.pending_assign_keyword??"").trim(),_=String(t.keyword??"").trim();return o!==""||_!==""}function mt(t){if(!tn(t))return t;const e=String(t.pending_assign_keyword??"").trim(),o=String(t.keyword??"").trim(),_=e!==""?e:o;return{page_no:t.page_no,page_size:t.page_size,pending_assign:1,pending_assign_keyword:_}}function nn(){const t=String(a.pending_assign_order_month??"").trim();return t!==""?t:a.pending_assign==="1"?"":We().format("YYYY-MM")}function an(){return{keyword:a.keyword,diagnosis_type:a.diagnosis_type,syndrome_type:a.syndrome_type,assistant_id:a.assistant_id,diagnosis_confirmed:a.diagnosis_confirmed,has_appointment:a.has_appointment,latest_appointment_start_date:a.latest_appointment_start_date,latest_appointment_end_date:a.latest_appointment_end_date,latest_appointment_channel_source:a.latest_appointment_channel_source,latest_assign_start_date:a.latest_assign_start_date,latest_assign_end_date:a.latest_assign_end_date,revisit_state:a.revisit_state,revisit_days_bucket:a.revisit_days_bucket}}function w(t={}){return{page_no:1,page_size:1,...an(),appointment_date:"",pending_booking:"",completed_appointment:"",pending_assign:"",pending_assign_order_month:"",pending_assign_keyword:"",sort_unserved_days:"",revisit_state:"",sort_revisit_due:"",...t}}function sn(){return mt(w({pending_assign:1,has_appointment:"",pending_assign_order_month:nn(),pending_assign_keyword:a.pending_assign_keyword}))}const ln=t=>W(mt(t));function on(){if(a.pending_assign!=="1")return;const t=(a.pending_assign_keyword??"").trim(),e=(a.keyword??"").trim();t===""&&e===""||(a.appointment_date="",a.pending_booking="",a.completed_appointment="",a.diagnosis_confirmed="",a.has_appointment="",a.diagnosis_type="",a.syndrome_type="",a.assistant_id="",a.start_time="",a.end_time="",a.latest_appointment_start_date="",a.latest_appointment_end_date="",a.latest_appointment_channel_source="",a.latest_assign_start_date="",a.latest_assign_end_date="",a.sort_unserved_days="",a.revisit_state="",a.revisit_days_bucket="",a.sort_revisit_due="",a.pending_assign_order_month="",pt.value="all",t!==""&&(a.keyword=""))}const L=()=>{on(),V.page=1,x(),T()},dn=te(()=>[{label:"昨天挂号",value:Qe.value},{label:"前天挂号",value:Ge.value},{label:"当天挂号",value:ke.value},{label:"明天挂号",value:qe.value},{label:"后天挂号",value:Be.value},{label:"全部",value:""}]),Ye=c({}),we=c(void 0),Me=c(void 0),Oe=c(void 0),rn=async t=>{a.pending_assign="",a.pending_assign_order_month="",a.pending_assign_keyword="",a.pending_booking="",a.completed_appointment="",a.has_appointment="",he(),ie(),a.appointment_date=t,V.page=1,await x(),T()},un=async()=>{a.pending_assign="",a.pending_assign_order_month="",a.pending_assign_keyword="",a.pending_booking="1",a.completed_appointment="",a.appointment_date="",a.has_appointment="0",he(),ie(),V.page=1,await x(),T()},_n=async()=>{a.pending_assign="",a.pending_assign_order_month="",a.pending_assign_keyword="",a.pending_booking="",a.completed_appointment="1",a.has_appointment="",a.appointment_date="",he(),ie(),V.page=1,await x(),T()},pn=async()=>{a.pending_assign="1",a.pending_booking="",a.completed_appointment="",a.has_appointment="",a.appointment_date="",he(),ie(),a.pending_assign_order_month||(a.pending_assign_order_month=We().format("YYYY-MM")),V.page=1,await x(),T()},mn=async t=>{a.pending_assign_order_month=t||"",a.pending_assign==="1"&&(V.page=1,await x(),T())},cn=ws,gn=Ms,Ue=c(void 0),he=()=>{a.revisit_state="",a.sort_revisit_due=""},ct=async()=>{a.pending_assign="",a.pending_assign_order_month="",a.pending_assign_keyword="",a.pending_booking="",a.completed_appointment="",a.appointment_date="",a.has_appointment="",ie(),a.revisit_state="due",a.sort_revisit_due="asc",a.sort_unserved_days="",V.page=1,await x(),T()},vn=()=>{if(a.revisit_state!==""){a.appointment_date="",a.pending_booking="",a.completed_appointment="";const t=a.sort_revisit_due===""&&a.sort_unserved_days==="";a.revisit_state==="due"&&t&&(a.sort_revisit_due="asc")}else a.sort_revisit_due="";L()},gt=t=>Os(t==null?void 0:t.revisit_due),fn=t=>t!=null&&t.has_prescription?t.followup_rx_voided?"已开方(处方已作废)":"已开方":"未开方",T=async()=>{try{const[t,e,o,_,r,y,D,N,_e,R]=await Promise.all([W(w({appointment_date:Qe.value,has_appointment:""})),W(w({appointment_date:Ge.value,has_appointment:""})),W(w({appointment_date:ke.value,has_appointment:""})),W(w({appointment_date:qe.value,has_appointment:""})),W(w({appointment_date:Be.value,has_appointment:""})),W(w()),W(w({has_appointment:0})),W(w({completed_appointment:1,has_appointment:""})),W(sn()),W(w({revisit_state:"due",has_appointment:""}))]);Ye.value={[Qe.value]:(t==null?void 0:t.count)??0,[Ge.value]:(e==null?void 0:e.count)??0,[ke.value]:(o==null?void 0:o.count)??0,[qe.value]:(_==null?void 0:_.count)??0,[Be.value]:(r==null?void 0:r.count)??0,"":(y==null?void 0:y.count)??0},we.value=(D==null?void 0:D.count)??0,Me.value=(N==null?void 0:N.count)??0,Oe.value=(_e==null?void 0:_e.count)??0,Ue.value=(R==null?void 0:R.count)??0}catch(t){console.error("获取日期数量失败",t)}};function yn(){const t=()=>T();typeof requestIdleCallback=="function"?requestIdleCallback(t,{timeout:2500}):setTimeout(t,120)}const hn=2e4;let be=null;function bn(){typeof document<"u"&&document.hidden||(x({silent:!0}).catch(()=>{}),T())}const M=t=>String(t).padStart(2,"0"),ke=te(()=>{const t=new Date;return`${t.getFullYear()}-${M(t.getMonth()+1)}-${M(t.getDate())}`}),qe=te(()=>{const t=new Date;return t.setDate(t.getDate()+1),`${t.getFullYear()}-${M(t.getMonth()+1)}-${M(t.getDate())}`}),Be=te(()=>{const t=new Date;return t.setDate(t.getDate()+2),`${t.getFullYear()}-${M(t.getMonth()+1)}-${M(t.getDate())}`}),Qe=te(()=>{const t=new Date;return t.setDate(t.getDate()-1),`${t.getFullYear()}-${M(t.getMonth()+1)}-${M(t.getDate())}`}),Ge=te(()=>{const t=new Date;return t.setDate(t.getDate()-2),`${t.getFullYear()}-${M(t.getMonth()+1)}-${M(t.getDate())}`}),vt=c([]),ft=c([]),me=c([]),yt=c([]),kn=async()=>{try{const[t,e,o,_]=await Promise.all([ut({type:"diagnosis_type"}),ut({type:"syndrome_type"}),ut({type:"channels"}),Rs()]);vt.value=(t==null?void 0:t.diagnosis_type)||[],ft.value=(e==null?void 0:e.syndrome_type)||[],yt.value=((o==null?void 0:o.channels)||[]).filter(r=>r.status!==0).sort((r,y)=>{const D=Number((y==null?void 0:y.sort)??0)-Number((r==null?void 0:r.sort)??0);return D!==0?D:Number((y==null?void 0:y.id)??0)-Number((r==null?void 0:r.id)??0)}).map(r=>({name:String((r==null?void 0:r.name)??(r==null?void 0:r.value)??""),value:(r==null?void 0:r.value)!=null&&r.value!==""?String(r.value):""})),me.value=_||[]}catch(t){console.error("获取字典数据失败:",t)}},ie=()=>{a.latest_appointment_start_date="",a.latest_appointment_end_date="",a.latest_appointment_channel_source=""},ht=()=>!!(a.latest_appointment_start_date||a.latest_appointment_end_date||a.latest_appointment_channel_source),bt=()=>{ht()&&(a.appointment_date="",a.pending_booking="",a.completed_appointment="",a.has_appointment==="0"&&(a.has_appointment="")),L()},Cn=()=>{L()},xn=({prop:t,order:e})=>{const o=e==="ascending"?"asc":e==="descending"?"desc":"";a.sort_unserved_days=t==="unserved_days"?o:"",a.sort_revisit_due=t==="revisit_due_date"?o:"",V.page=1,x()},kt=t=>{const e=String((t==null?void 0:t.latest_appointment_channel_source_desc)||"").trim(),o=String((t==null?void 0:t.latest_appointment_channel_source)||"").trim(),_=String((t==null?void 0:t.latest_appointment_channel_source_detail)||"").trim(),r=e||o;return r?_?`${r}(${_})`:r:""},Dn=t=>{if(!t&&t!==0)return"-";const e=typeof t=="string"?parseInt(t):t;if(me.value.length===0)return"...";const o=me.value.find(_=>(typeof _.id=="string"?parseInt(_.id):_.id)===e);return o?o.name:"-"},{pager:V,getLists:x}=Ws({fetchFun:ln,params:a}),Vn=()=>x({silent:!0}),An=()=>{pt.value="all",a.keyword="",a.diagnosis_type="",a.syndrome_type="",a.assistant_id="",a.latest_appointment_start_date="",a.latest_appointment_end_date="",a.latest_appointment_channel_source="",a.latest_assign_start_date="",a.latest_assign_end_date="",a.sort_unserved_days="",a.revisit_state="",a.revisit_days_bucket="",a.sort_revisit_due="",a.diagnosis_confirmed="",a.appointment_date="",a.has_appointment="",a.pending_assign="",a.pending_assign_order_month="",a.pending_assign_keyword="",a.pending_booking="",a.completed_appointment="",V.page=1,x(),T()},Ct=t=>{const e=t.DiagnosisViewRecord||[];return e.length>0&&e.some(o=>o.is_confirmed==1)},En=t=>{if(t==null)return"unserved-muted";const e=Number(t);return Number.isFinite(e)?e>=7?"unserved-red":e>=3?"unserved-orange":"unserved-green":"unserved-muted"},Rn=({row:t})=>{const e=Us(gt(t));return e||(Ct(t)?t.has_appointment?"":"row-no-appointment":"row-unconfirmed")},le=c(),Sn=c(),xt=c(),Ce=c(),xe=c(null),ce=c(null),De=Ys();ot([le,xe],()=>{const t=xe.value,e=le.value;t==null||!(e!=null&&e.open)||(e.open("edit",t),xe.value=null)},{flush:"post"}),ot([Ce,ce],()=>{const t=ce.value,e=Ce.value;!t||!(e!=null&&e.open)||(ce.value=null,Rt(t))},{flush:"post"});const Tn=async t=>{if(!Y(["tcm.diagnosis/guahao"])){v.msgWarning("无挂号权限");return}const e=V.lists.find(o=>Number(o==null?void 0:o.id)===t);if(e){ce.value=e;return}try{const o=await Ss({id:t}),_=o==null?void 0:o.diagnosis;if(!_||!_.patient_id){v.msgWarning("未找到该诊单或患者信息不完整,无法打开挂号");return}ce.value={..._,id:t,patient_id:_.patient_id,patient_name:_.patient_name||"",gender_desc:Ks(_.gender),age:_.age??0}}catch(o){v.msgWarning((o==null?void 0:o.msg)||(o==null?void 0:o.message)||"加载诊单失败,无法打开挂号")}},Ve=c(!1),Dt=c(0),$n=t=>{var o;const e=t.assistant_id??t.assistant;return e==null||e===""?!1:Number(e)===Number((o=De.userInfo)==null?void 0:o.id)},In=t=>{Dt.value=Number(t.id)||0,Ve.value=!0},Vt=t=>Se(t)&&$n(t)&&Y(["tcm.diagnosis/watchCall"]),Ae=t=>{var e;return Se(t)&&((e=t.video_call_hint)==null?void 0:e.state)||"none"},Nn=t=>{const e=t.video_call_hint,o="点击进入实时房间(仅观看,不推流、不上麦)";return e!=null&&e.start_time?`${o}。开始时间:${jt(e.start_time)}`:o},Ln=t=>{const e=Ae(t);return e==="live"||e==="pending_room"},Pn=t=>Ae(t)==="pending_room"?"医生尚未接通或未同步房间号,接通后再点此进入":Nn(t),zn=t=>{if(!Vt(t)){v.msgWarning("仅已预约的视频问诊可进入视频旁观");return}if(Ae(t)!=="live"){v.msgWarning("医生尚未接通或未同步房间号,请稍后再试");return}In(t)},Fn=t=>{const e=t.video_call_hint;return e!=null&&e.label?e.label:"暂无可旁观通话"},Wn=t=>{const e=Ae(t);if(e==="none")return"—";if(e==="live")return"通话中";if(e==="pending_room")return"接通中";const o=t.video_call_hint;return(o==null?void 0:o.label)||"—"},oe=c(!1),Ee=c(),Ke=c(!1),b=rt({patient_id:"",patient_name:"",phone:"",order_type:"",amount:0,remark:"",has_appointment:!1,appointment_time_text:""}),Yn={order_type:[{required:!0,message:"请选择订单类型",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"}]},wn=t=>{var e;b.patient_id=t.patient_id||t.id,b.patient_name=t.patient_name,b.phone=t.phone||"",b.order_type="",b.amount=0,b.remark="",b.has_appointment=!!t.has_appointment,b.appointment_time_text=t.appointment_time_text||"",(e=Ee.value)==null||e.clearValidate(),oe.value=!0},Mn=()=>{var t;b.patient_id="",b.patient_name="",b.phone="",b.order_type="",b.amount=0,b.remark="",b.has_appointment=!1,b.appointment_time_text="",(t=Ee.value)==null||t.clearValidate()},On=async()=>{var t;try{await((t=Ee.value)==null?void 0:t.validate()),Ke.value=!0;const e=await Fs({patient_id:b.patient_id,order_type:b.order_type,amount:b.amount,remark:b.remark});oe.value=!1,x();const o=e==null?void 0:e.order_no;if(o){B.value=!0,H.value=!0,j.value="",X.value={patient_name:b.patient_name,has_appointment:b.has_appointment,appointment_time_text:b.appointment_time_text};try{const _=await Ts({order_no:o});_!=null&&_.qrcode_url?j.value=_.qrcode_url:v.msgError("二维码生成失败")}catch(_){v.msgError((_==null?void 0:_.msg)||"生成二维码失败")}finally{H.value=!1}}}catch(e){console.error("创建订单失败:",e)}finally{Ke.value=!1}},B=c(!1),H=c(!1),j=c(""),X=c(null),Un=te(()=>{const t=X.value;return t?t.has_appointment?t.appointment_time_text||"—":"未挂号":"—"}),He=c("小程序二维码"),je=c("confirm"),I=c([]),de=c([]),ne=c(!1),Xe=c(!1),ge=c("batch"),ve=c(null),E=c({assistant_id:null,is_inherit:!1});function qn(){de.value=[],E.value.assistant_id=null,E.value.is_inherit=!1}const Bn=t=>{I.value=t.map(e=>e.id)},Re=t=>Number((t==null?void 0:t.assistant_id)??(t==null?void 0:t.assistant)??0)>0,Qn=te(()=>{if(!I.value.length)return!1;const t=new Set(I.value);return V.lists.some(e=>t.has(e.id)&&Re(e))}),Gn=t=>{ge.value="single",ve.value=t,de.value=[],E.value.assistant_id=Number(t.assistant_id)>0?Number(t.assistant_id):null,E.value.is_inherit=!1,ne.value=!0},Kn=()=>{if(I.value.length===0){v.msgWarning("请先选择要指派的诊单");return}ge.value="batch",ve.value=null,E.value.assistant_id=null,E.value.is_inherit=!1,de.value=[...I.value],ne.value=!0},Hn=async()=>{if(!E.value.assistant_id){v.msgWarning("请选择医助");return}Xe.value=!0;try{if(ge.value==="single")await Fe({id:ve.value.id,assistant_id:E.value.assistant_id,is_inherit:E.value.is_inherit?1:0});else{const t=de.value;if(!t.length){v.msgWarning("没有可指派的诊单,请关闭后重新勾选");return}for(const e of t)await Fe({id:e,assistant_id:E.value.assistant_id,is_inherit:E.value.is_inherit?1:0});I.value=[],de.value=[]}ne.value=!1,x()}catch(t){console.error("指派失败:",t)}finally{Xe.value=!1}},jn=async t=>{if(!(t!=null&&t.id)||!Re(t)){v.msgWarning("该诊单未指派医助");return}await v.confirm("确定取消该诊单的医助指派吗?"),await Fe({id:t.id,assistant_id:0}),x()},Xn=async()=>{if(!I.value.length){v.msgWarning("请先选择诊单");return}const t=new Set(I.value),e=V.lists.filter(o=>t.has(o.id)&&Re(o));if(!e.length){v.msgWarning("所选诊单中没有已指派医助的记录");return}await v.confirm(`确定取消 ${e.length} 条诊单的医助指派吗?`),await Promise.all(e.map(o=>Fe({id:o.id,assistant_id:0}))),I.value=[],x()},Jn=()=>{le.value.open("add")},Zn=t=>{le.value.open("edit",t)};function ea(t){return a.pending_assign==="1"?"开方":Number(t==null?void 0:t.prescription_audit_status)===1&&Number(t==null?void 0:t.prescription_void_status)!==1?"查看":"开方"}const ta=t=>{var e;if(!(t!=null&&t.id)){v.msgWarning("诊单信息不完整");return}(e=xt.value)==null||e.open({...t,diagnosis_id:t.id,id:t.appointment_id||0})},na=()=>{var t,e;x(),(e=(t=le.value)==null?void 0:t.refreshCaseList)==null||e.call(t)},aa=async t=>{await v.confirm("确定要删除该诊单吗?"),await Ps({id:t}),x()},sa=(t,e)=>{switch(t){case"assign":Gn(e);break;case"cancelAssign":jn(e);break;case"videoQr":if(!Se(e)){v.msgWarning("仅已预约的视频问诊可生成视频二维码");return}Tt(e);break;case"confirmQr":$t(e);break;case"cancelApt":_a(e);break;case"guahaoLogs":ga(e);break;case"order":wn(e);break;case"delete":aa(e.id);break}},ia=t=>{const e=Number(t.appointment_status);return e===3?"已完成":e===4?"已过号":"已挂号"},la=t=>{const e=Number(t);return e===3?"已完成":e===4?"已过号":"已挂号"},J=t=>{const e=Array.isArray(t.appointments)?t.appointments:[];return e.length>0?e:t.has_appointment?[{id:t.appointment_id,status:t.appointment_status,doctor_id:t.appointment_doctor_id,doctor_name:t.appointment_doctor_name,time_text:t.appointment_time_text,appointment_type:t.appointment_type}]:[]},oa=t=>{const e=Number(t==null?void 0:t.status);return{"apt-item-done":e===3,"apt-item-missed":e===4,"apt-item-active":e===1}},da=t=>{const e=Number(t.appointment_status);return{"has-apt":t.has_appointment,"apt-row-done":t.has_appointment&&e===3,"apt-row-missed":t.has_appointment&&e===4}},Je=(t,e=!1)=>J(t).find(o=>Number(o==null?void 0:o.status)===1&&(!e||Qs(o.appointment_type)))??null,At=(t,e=!1)=>{const o=Je(t,e);return o?{...t,has_appointment:1,appointment_id:o.id,appointment_status:o.status,appointment_doctor_id:o.doctor_id,appointment_doctor_name:o.doctor_name,appointment_time_text:o.time_text,appointment_type:o.appointment_type}:null},ra=t=>!!Je(t),Se=t=>!!Je(t,!0),Et=t=>{const e=Number(t.appointment_status);return!!(t.has_appointment&&t.appointment_id&&(e===1||e===4))},Ze=t=>{const e=Number(t==null?void 0:t.status);return!!(t!=null&&t.id&&(e===1||e===4))},ua=t=>Et(t)?J(t).length<=1:!1,_a=async t=>{var r;if(!Et(t)){const y=Number(t.appointment_status);t.has_appointment&&y===3?v.msgWarning("已完成就诊,无法取消挂号"):v.msgWarning("该诊单未挂号或挂号信息异常");return}const e=J(t),o=e.length===1?e[0]:null,_=o!=null&&o.id&&Ze(o)?o.id:t.appointment_id;try{await v.confirm(`确定要取消患者「${t.patient_name}」的挂号吗?`),await Mt({id:_}),v.msgSuccess("取消挂号成功"),x(),T(),ae.value&&((r=Q.value)==null?void 0:r.id)===t.id&&await $e(t.id)}catch(y){y!=="cancel"&&v.msgError((y==null?void 0:y.msg)||"取消挂号失败")}},pa=async(t,e)=>{var r;if(!Ze(e)){Number(e==null?void 0:e.status)===3?v.msgWarning("已完成就诊,无法取消挂号"):v.msgWarning("该挂号无法取消");return}const o=e.doctor_name||"—",_=e.time_text||"—";try{await v.confirm(`确定取消「${o}」${_} 的挂号吗?(患者:${t.patient_name||"—"})`),await Mt({id:e.id}),v.msgSuccess("取消挂号成功"),x(),T(),ae.value&&((r=Q.value)==null?void 0:r.id)===t.id&&await $e(t.id)}catch(y){y!=="cancel"&&v.msgError((y==null?void 0:y.msg)||"取消挂号失败")}},ae=c(!1),Te=c(!1),re=c([]),Q=c(null);function ma(){re.value=[],Q.value=null}function ca(t){const e=String((t==null?void 0:t.admin_name)||"").trim(),o=Number(t==null?void 0:t.admin_id);return e||(o>0?`管理员 #${o}`:"—")}async function $e(t){Te.value=!0;try{const e=await $s({id:t});re.value=Array.isArray(e==null?void 0:e.data)?e.data:Array.isArray(e)?e:[]}catch{re.value=[]}finally{Te.value=!1}}async function ga(t){if(!(t!=null&&t.id)){v.msgWarning("诊单信息不完整");return}Q.value=t,ae.value=!0,await $e(Number(t.id))}async function va(){var t;await x({silent:!0}),T(),ae.value&&((t=Q.value)!=null&&t.id)&&await $e(Number(Q.value.id))}const Rt=t=>{var e;if(!t.patient_id){v.msgWarning("患者信息不完整");return}(e=Ce.value)==null||e.open(t)},ue=c(!1),et=c(!1),St=c(),O=rt({id:0,patient_name:"",id_card:""}),fa={id_card:[{required:!0,validator:(t,e,o)=>{if(!e){o(new Error("请输入身份证号"));return}const _=/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e),r=/^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$/.test(e);_||r?o():o(new Error("请输入15或18位有效身份证号"))},trigger:"blur"}]},ya=t=>{O.id=t.id,O.patient_name=t.patient_name||"-",O.id_card=t.id_card||"",ue.value=!0},ha=async()=>{var t;await((t=St.value)==null?void 0:t.validate()),et.value=!0;try{await Is({id:O.id,id_card:O.id_card}),v.msgSuccess("补全成功,年龄已自动更新"),ue.value=!1,x()}catch(e){v.msgError((e==null?void 0:e.msg)||"补全失败")}finally{et.value=!1}},Tt=async t=>{var o;const e=At(t,!0);if(!e){v.msgWarning("仅已预约的视频问诊可生成视频二维码");return}if(!e.patient_id){v.msgWarning("患者信息不完整");return}je.value="video",X.value=e,B.value=!0,H.value=!0,j.value="",He.value="视频二维码";try{const _=await Ot();if(!(_!=null&&_.app_id)){v.msgError("小程序未配置,请先配置小程序信息"),B.value=!1;return}const r=await Yt({doctor_id:e.appointment_doctor_id,diagnosis_id:e.appointment_doctor_id,patient_id:e.patient_id,share_user_id:((o=De.userInfo)==null?void 0:o.id)||"",mini_program_path:"pages/login/login"});r!=null&&r.qrcode_url?j.value=r.qrcode_url:v.msgError("二维码生成失败")}catch(_){v.msgError((_==null?void 0:_.msg)||"生成二维码失败,请重试")}finally{H.value=!1}},$t=async t=>{const e=At(t);if(!e){v.msgWarning("仅「已预约」状态可使用诊单二维码");return}if(!e.patient_id){v.msgWarning("患者信息不完整");return}je.value="confirm",X.value=e,B.value=!0,H.value=!0,j.value="",He.value="诊单二维码";try{const o=await Ot();if(!(o!=null&&o.app_id)){v.msgError("小程序未配置,请先配置小程序信息"),B.value=!1;return}const _=De.userInfo,r=await Yt({diagnosis_id:e.id,doctor_id:e.appointment_doctor_id,patient_id:e.patient_id,share_user_id:(_==null?void 0:_.id)||""});r!=null&&r.qrcode_url?j.value=r.qrcode_url:v.msgError("二维码生成失败")}catch(o){console.error("生成小程序二维码失败:",o),v.msgError((o==null?void 0:o.msg)||"生成二维码失败,请重试")}finally{H.value=!1}},ba=()=>{X.value&&(je.value==="video"?Tt(X.value):$t(X.value))},Ie=c(!1),P=c(null),Z=c([]),Ne=c(0),tt=c(!1),z=c(null),se=c(""),nt=c(!1),at=c(1),ka=t=>{if(!t)return"-";const e=String(t).length===10?t*1e3:t;return We(e).format("YYYY-MM-DD HH:mm")},Ca=async t=>{P.value=t,Ie.value=!0,Z.value=[],Ne.value=0,z.value=null,se.value="",at.value=1,tt.value=!0;try{const[e,o]=await Promise.all([wt({diagnosis_id:t.id,patient_id:t.patient_id,page_no:1,page_size:20}),zs({patient_id:t.patient_id||t.id}).catch(()=>null)]);Z.value=(e==null?void 0:e.lists)||[],Ne.value=(e==null?void 0:e.count)||0,z.value=o}catch(e){console.error("加载企业微信记录失败:",e)}finally{tt.value=!1}},xa=async()=>{if(P.value){at.value++;try{const t=await wt({diagnosis_id:P.value.id,patient_id:P.value.patient_id,page_no:at.value,page_size:20});Z.value.push(...(t==null?void 0:t.lists)||[])}catch(t){console.error("加载更多记录失败:",t)}}},Da=async()=>{var t;if(!se.value.trim()){v.msgWarning("请输入内容");return}nt.value=!0;try{await Ns({diagnosis_id:P.value.id,patient_id:P.value.patient_id,content:se.value.trim(),msg_type:"note",staff_name:((t=De.userInfo)==null?void 0:t.name)||"",external_name:P.value.patient_name||""}),se.value="",Ca(P.value)}catch(e){v.msgError((e==null?void 0:e.msg)||"添加失败")}finally{nt.value=!1}},Va=async t=>{await v.confirm("确定删除该记录吗?");try{await Ls({id:t}),Z.value=Z.value.filter(e=>e.id!==t),Ne.value--}catch(e){v.msgError((e==null?void 0:e.msg)||"删除失败")}},st=wa(),Aa=Ma(),It=t=>{if(!Y(["tcm.diagnosis/readonlyDetail"]))return;const e=Number(t==null?void 0:t.id);!e||e<=0||Aa.push({path:"/tcm/diagnosis-readonly",query:{id:String(e)}})};Oa(()=>{kn(),String(st.query.revisit_state??"")==="due"?ct():(a.appointment_date=ke.value,x(),yn()),be=setInterval(bn,hn);const t=st.query.id;if(t!=null&&t!==""){const e=Number(t);!Number.isNaN(e)&&e>0&&(String(st.query.action??"")==="appointment"?Ea().then(()=>Tn(e)):xe.value=e)}});const Ea=()=>new Promise(t=>{if(!V.loading){t();return}let e=!1;const o=()=>{e||(e=!0,_(),t())},_=ot(()=>V.loading,r=>{r||o()});setTimeout(o,8e3)});return Ua(()=>{be!=null&&(clearInterval(be),be=null)}),(t,e)=>{var Pt;const o=Ba,_=Qa,r=Ga,y=Ka,D=ja,N=Ha,_e=Ja,R=es,G=ts,Nt=ns,ee=is,Ra=ss,Sa=as,Ta=Za,$a=Es,Ia=ms,Na=gs,La=cs,Lt=vs,Le=ys,U=bs,Pa=ks,it=hs,za=Cs,Pe=Ds,Fa=xs,Wa=Vs,Ya=As,q=qa("perms"),lt=ps;return d(),p("div",Hs,[l(_e,{class:"filter-card !border-none",shadow:"never"},{default:i(()=>[u("div",js,[u("div",Xs,[(d(!0),p(A,null,S(dn.value,n=>(d(),p("span",{key:n.value,class:F(["chip",{active:s(a).pending_assign!=="1"&&s(a).pending_booking!=="1"&&s(a).completed_appointment!=="1"&&s(a).revisit_state===""&&!ht()&&s(a).appointment_date===n.value}]),onClick:h=>rn(n.value)},[g(m(n.label)+" ",1),s(Ye)[n.value]!==void 0?(d(),p("em",Zs,m(s(Ye)[n.value]),1)):k("",!0)],10,Js))),128)),u("span",{class:F(["chip","chip-pending-booking",{active:s(a).pending_booking==="1"}]),onClick:un},[e[36]||(e[36]=g(" 待预约 ",-1)),s(we)!==void 0?(d(),p("em",ei,m(s(we)),1)):k("",!0)],2),u("span",{class:F(["chip","chip-revisit-due",{active:s(a).revisit_state==="due"}]),onClick:ct},[e[37]||(e[37]=g(" 复诊到期 ",-1)),s(Ue)!==void 0?(d(),p("em",ti,m(s(Ue)),1)):k("",!0)],2),u("span",{class:F(["chip","chip-completed-visit",{active:s(a).completed_appointment==="1"}]),onClick:_n},[e[38]||(e[38]=g(" 已完成 ",-1)),s(Me)!==void 0?(d(),p("em",ni,m(s(Me)),1)):k("",!0)],2),$((d(),p("span",ai,[u("span",{class:F(["chip","chip-pending",{active:s(a).pending_assign==="1"}]),onClick:pn},[e[39]||(e[39]=g(" 待分配医助 ",-1)),s(Oe)!==void 0?(d(),p("em",si,m(s(Oe)),1)):k("",!0)],2),s(a).pending_assign==="1"?(d(),f(o,{key:0,modelValue:s(a).pending_assign_order_month,"onUpdate:modelValue":e[0]||(e[0]=n=>s(a).pending_assign_order_month=n),type:"month",placeholder:"订单月份","value-format":"YYYY-MM",clearable:"",class:"pending-assign-month",onChange:mn},null,8,["modelValue"])):k("",!0),s(a).pending_assign==="1"?(d(),f(_,{key:1,modelValue:s(a).pending_assign_keyword,"onUpdate:modelValue":e[1]||(e[1]=n=>s(a).pending_assign_keyword=n),placeholder:"搜身份证/诊单ID/患者号/备注…",clearable:"",class:"pending-assign-search",onKeyup:zt(L,["enter"]),onClear:L},null,8,["modelValue"])):k("",!0)])),[[q,["tcm.diagnosis/assign"]]])]),u("div",ii,[l(_,{modelValue:s(a).keyword,"onUpdate:modelValue":e[2]||(e[2]=n=>s(a).keyword=n),placeholder:"患者姓名 / 手机号",clearable:"",class:"search-input",onKeyup:zt(L,["enter"])},null,8,["modelValue"]),l(r,{type:"primary",onClick:L},{default:i(()=>[...e[40]||(e[40]=[g("查询",-1)])]),_:1})])]),u("div",li,[e[41]||(e[41]=u("span",{class:"chip-label"},"挂号:",-1)),(d(),p(A,null,S(Xt,n=>u("span",{key:n.value,class:F(["chip","chip-sm",{active:s(a).has_appointment===n.value}]),onClick:h=>Zt(n.value)},m(n.label),11,oi)),64)),e[42]||(e[42]=u("span",{class:"chip-divider"},null,-1)),e[43]||(e[43]=u("span",{class:"chip-label"},"确认:",-1)),(d(),p(A,null,S(Jt,n=>u("span",{key:n.value,class:F(["chip","chip-sm",{active:s(a).diagnosis_confirmed===n.value}]),onClick:h=>en(n.value)},m(n.label),11,di)),64)),l(r,{link:"",type:"primary",size:"small",class:"more-btn",onClick:e[3]||(e[3]=n=>pe.value=!s(pe))},{default:i(()=>[g(m(s(pe)?"收起":"更多筛选")+" ",1),l(y,{class:F({"rotate-180":s(pe)})},{default:i(()=>[l(s(Ft))]),_:1},8,["class"])]),_:1})]),$(u("div",ri,[l(N,{modelValue:s(a).diagnosis_type,"onUpdate:modelValue":e[4]||(e[4]=n=>s(a).diagnosis_type=n),placeholder:"诊断类型",clearable:"",size:"small",onChange:L},{default:i(()=>[(d(!0),p(A,null,S(s(vt),n=>(d(),f(D,{key:n.value,label:n.name,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(N,{modelValue:s(a).syndrome_type,"onUpdate:modelValue":e[5]||(e[5]=n=>s(a).syndrome_type=n),placeholder:"证型",clearable:"",size:"small",onChange:L},{default:i(()=>[(d(!0),p(A,null,S(s(ft),n=>(d(),f(D,{key:n.value,label:n.name,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(N,{modelValue:s(a).assistant_id,"onUpdate:modelValue":e[6]||(e[6]=n=>s(a).assistant_id=n),placeholder:"医助",clearable:"",filterable:"",size:"small",onChange:L},{default:i(()=>[(d(!0),p(A,null,S(s(me),n=>(d(),f(D,{key:n.id,label:n.name,value:Number(n.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(Ut,{class:"latest-appointment-range",startTime:s(a).latest_appointment_start_date,"onUpdate:startTime":e[7]||(e[7]=n=>s(a).latest_appointment_start_date=n),endTime:s(a).latest_appointment_end_date,"onUpdate:endTime":e[8]||(e[8]=n=>s(a).latest_appointment_end_date=n),"picker-type":"daterange","value-format":"YYYY-MM-DD","start-placeholder":"最近挂号开始","end-placeholder":"最近挂号结束",onChange:bt},null,8,["startTime","endTime"]),l(Ut,{class:"latest-assign-range",startTime:s(a).latest_assign_start_date,"onUpdate:startTime":e[9]||(e[9]=n=>s(a).latest_assign_start_date=n),endTime:s(a).latest_assign_end_date,"onUpdate:endTime":e[10]||(e[10]=n=>s(a).latest_assign_end_date=n),"picker-type":"daterange","value-format":"YYYY-MM-DD","start-placeholder":"最近指派开始","end-placeholder":"最近指派结束",onChange:Cn},null,8,["startTime","endTime"]),l(N,{modelValue:s(a).latest_appointment_channel_source,"onUpdate:modelValue":e[11]||(e[11]=n=>s(a).latest_appointment_channel_source=n),placeholder:"最近挂号渠道",clearable:"",filterable:"",size:"small",class:"latest-appointment-channel",onChange:bt},{default:i(()=>[(d(!0),p(A,null,S(s(yt),n=>(d(),f(D,{key:String(n.value),label:n.name,value:String(n.value)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(N,{modelValue:s(a).revisit_state,"onUpdate:modelValue":e[12]||(e[12]=n=>s(a).revisit_state=n),placeholder:"复诊状态",clearable:"",size:"small",class:"revisit-state-select",onChange:vn},{default:i(()=>[(d(!0),p(A,null,S(s(cn),n=>(d(),f(D,{key:n.value,label:n.label,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(N,{modelValue:s(a).revisit_days_bucket,"onUpdate:modelValue":e[13]||(e[13]=n=>s(a).revisit_days_bucket=n),placeholder:"开药天数档",clearable:"",size:"small",class:"revisit-days-bucket-select",onChange:L},{default:i(()=>[(d(!0),p(A,null,S(s(gn),n=>(d(),f(D,{key:n.value,label:n.label,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(r,{size:"small",onClick:An},{default:i(()=>[...e[44]||(e[44]=[g("重置",-1)])]),_:1})],512),[[Xa,s(pe)]])]),_:1}),l(_e,{class:"!border-none mt-3 list-card",shadow:"never"},{default:i(()=>[u("div",ui,[u("div",_i,[$((d(),f(r,{type:"primary",onClick:Jn},{default:i(()=>[...e[45]||(e[45]=[g("新增诊单",-1)])]),_:1})),[[q,["tcm.diagnosis/add"]]]),$((d(),f(r,{type:"success",onClick:Kn,disabled:s(I).length===0},{default:i(()=>[...e[46]||(e[46]=[g(" 批量指派医助 ",-1)])]),_:1},8,["disabled"])),[[q,["tcm.diagnosis/assign"]]]),$((d(),f(r,{type:"warning",plain:"",onClick:Xn,disabled:!Qn.value},{default:i(()=>[...e[47]||(e[47]=[g(" 批量取消指派 ",-1)])]),_:1},8,["disabled"])),[[q,["tcm.diagnosis/assign"]]])]),s(I).length>0?(d(),p("div",pi,"已选 "+m(s(I).length)+" 条",1)):k("",!0)]),u("div",mi,[$((d(),f(Ta,{data:s(V).lists,"row-key":"id",size:"default",onSelectionChange:Bn,onRowDblclick:It,onSortChange:xn,"row-class-name":Rn,class:"diagnosis-table",stripe:""},{default:i(()=>[l(R,{type:"selection",width:"48",align:"center"}),l(R,{label:"ID","min-width":"70"},{default:i(({row:n})=>[u("div",ci,[u("div",gi,[u("div",vi,[g(m(n.id)+" ",1),n.assign_read_at===null&&n.assistant_id>0?(d(),f(G,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-1"},{default:i(()=>[...e[48]||(e[48]=[g("NEW",-1)])]),_:1})):k("",!0)])])])]),_:1}),l(R,{label:"患者","min-width":"60"},{default:i(({row:n})=>[u("div",fi,[u("div",yi,[u("div",hi,m(n.patient_name),1)])])]),_:1}),l(R,{label:" 性别 / 年龄",width:"100",align:"left"},{default:i(({row:n})=>[u("div",null,m(n.gender_desc||"-")+" · "+m(n.age??"-")+"岁",1)]),_:1}),l(R,{label:"挂号","min-width":"175"},{default:i(({row:n})=>[u("div",{class:F(["appointment-cell",da(n)])},[n.has_appointment?(d(),p(A,{key:0},[J(n).length?(d(!0),p(A,{key:0},S(J(n),h=>(d(),p("div",{key:h.id||`${h.doctor_id}-${h.time_text}`,class:F(["apt-item",oa(h)])},[u("div",bi,m(la(h.status)),1),u("div",ki,m(h.doctor_name||"-"),1),u("div",Ci,m(h.time_text||"-"),1),Ze(h)?(d(),p("div",xi,[$((d(),f(r,{type:"danger",link:"",size:"small",onClick:dt(C=>pa(n,h),["stop"])},{default:i(()=>[...e[49]||(e[49]=[g(" 取消挂号 ",-1)])]),_:1},8,["onClick"])),[[q,["tcm.diagnosis/guahao"]]])])):k("",!0)],2))),128)):(d(),p(A,{key:1},[u("div",Di,m(ia(n)),1),u("div",Vi,m(n.appointment_doctor_name||"-"),1),u("div",Ai,m(n.appointment_time_text||"-"),1)],64)),kt(n)?(d(),p("div",Ei," 最近渠道:"+m(kt(n)),1)):k("",!0)],64)):(d(),p("span",Ri,"未挂号"))],2)]),_:1}),l(R,{label:"挂号类型","min-width":"120"},{default:i(({row:n})=>[J(n).length?(d(!0),p(A,{key:0},S(J(n),h=>(d(),p("div",{key:h.id||`${h.doctor_id}-${h.time_text}`,class:"mb-2"},[u("div",null,m(s(Bs)(h.appointment_type)),1),J(n).length>1?(d(),p("div",Si,m(h.doctor_name||"—")+" · "+m(h.time_text||"—"),1)):k("",!0)]))),128)):(d(),p("span",Ti,"—"))]),_:1}),l(R,{label:"确认",width:"88",align:"center"},{default:i(({row:n})=>[Ct(n)?(d(),p("span",$i,"已确认")):(d(),p("span",Ii,"未确认"))]),_:1}),l(R,{label:"复诊节点",prop:"revisit_due_date","min-width":"180",sortable:"custom"},{default:i(({row:n})=>[l(Gs,{due:gt(n),"has-prescription":!!n.has_prescription,"followup-doctor-name":n.followup_doctor_name||"","prescribed-text":fn(n)},null,8,["due","has-prescription","followup-doctor-name","prescribed-text"])]),_:1}),l(R,{label:"助理",width:"100","show-overflow-tooltip":""},{default:i(({row:n})=>[u("span",Ni,m(Dn(n.assistant_id||n.assistant)),1)]),_:1}),l(R,{label:"未服务天数",prop:"unserved_days",width:"110",align:"center",sortable:"custom","sort-orders":["descending","ascending"]},{default:i(({row:n})=>[n.last_blood_record_at?(d(),f(Nt,{key:0,content:`最近一次健康打卡:${n.last_blood_record_at}`,placement:"top"},{default:i(()=>[u("span",{class:F(["unserved-days",En(n.unserved_days)])},m(n.unserved_days??"—"),3)]),_:2},1032,["content"])):(d(),p("span",Li,"—"))]),_:1}),l(R,{label:"视频旁观",width:"120",fixed:"right",align:"center"},{default:i(({row:n})=>[u("div",Pi,[Vt(n)?(d(),p(A,{key:0},[Ln(n)?(d(),f(Nt,{key:0,content:Pn(n),placement:"top"},{default:i(()=>[u("span",zi,[l(r,{type:"primary",link:"",size:"small",onClick:h=>zn(n)},{default:i(()=>[...e[50]||(e[50]=[g(" 进入旁观 ",-1)])]),_:1},8,["onClick"])])]),_:2},1032,["content"])):(d(),p("span",Fi,m(Fn(n)),1))],64)):(d(),p("span",Wi,m(Wn(n)),1))])]),_:1}),l(R,{label:"操作",width:"340",fixed:"right",align:"left"},{default:i(({row:n})=>[u("div",{class:"action-cell",onClick:e[14]||(e[14]=dt(()=>{},["stop"])),onDblclick:e[15]||(e[15]=dt(()=>{},["stop"]))},[$((d(),f(r,{type:"primary",link:"",size:"small",onClick:h=>It(n)},{default:i(()=>[...e[51]||(e[51]=[g(" 查看 ",-1)])]),_:1},8,["onClick"])),[[q,["tcm.diagnosis/readonlyDetail"]]]),$((d(),f(r,{type:"primary",link:"",size:"small",onClick:h=>Zn(n.id)},{default:i(()=>[...e[52]||(e[52]=[g("诊单",-1)])]),_:1},8,["onClick"])),[[q,["tcm.diagnosis/edit"]]]),$((d(),f(r,{type:"primary",link:"",size:"small",onClick:h=>ta(n)},{default:i(()=>[g(m(ea(n)),1)]),_:2},1032,["onClick"])),[[q,["tcm.diagnosis/kaifang"]]]),$((d(),f(r,{type:"success",link:"",size:"small",onClick:h=>Rt(n)},{default:i(()=>[...e[53]||(e[53]=[g("预约",-1)])]),_:1},8,["onClick"])),[[q,["tcm.diagnosis/guahao"]]]),$((d(),f(r,{type:"warning",link:"",size:"small",onClick:h=>ya(n)},{default:i(()=>[...e[54]||(e[54]=[g("补全身份证",-1)])]),_:1},8,["onClick"])),[[q,["tcm.diagnosis/edit"]]]),l(Sa,{trigger:"click",onCommand:h=>sa(h,n),placement:"bottom-end"},{dropdown:i(()=>[l(Ra,null,{default:i(()=>[s(Y)(["tcm.diagnosis/assign"])?(d(),f(ee,{key:0,command:"assign"},{default:i(()=>[l(y,null,{default:i(()=>[l(s(ls))]),_:1}),e[56]||(e[56]=g("指派",-1))]),_:1})):k("",!0),s(Y)(["tcm.diagnosis/assign"])&&Re(n)?(d(),f(ee,{key:1,command:"cancelAssign"},{default:i(()=>[l(y,null,{default:i(()=>[l(s(os))]),_:1}),e[57]||(e[57]=g("取消指派 ",-1))]),_:1})):k("",!0),Se(n)&&s(Y)(["tcm.diagnosis/videoQr"])?(d(),f(ee,{key:2,command:"videoQr"},{default:i(()=>[l(y,null,{default:i(()=>[l(s(Wt))]),_:1}),e[58]||(e[58]=g("视频二维码",-1))]),_:1})):k("",!0),s(Y)(["tcm.diagnosis/guahao"])&&ra(n)?(d(),f(ee,{key:3,command:"confirmQr"},{default:i(()=>[l(y,null,{default:i(()=>[l(s(Wt))]),_:1}),e[59]||(e[59]=g("二维码",-1))]),_:1})):k("",!0),ua(n)&&s(Y)(["tcm.diagnosis/guahao"])?(d(),f(ee,{key:4,command:"cancelApt"},{default:i(()=>[l(y,null,{default:i(()=>[l(s(ds))]),_:1}),e[60]||(e[60]=g("取消挂号 ",-1))]),_:1})):k("",!0),s(Y)(["tcm.diagnosis/guahaoLogList"])?(d(),f(ee,{key:5,command:"guahaoLogs"},{default:i(()=>[l(y,null,{default:i(()=>[l(s(rs))]),_:1}),e[61]||(e[61]=g("挂号日志",-1))]),_:1})):k("",!0),s(Y)(["tcm.diagnosis/order"])?(d(),f(ee,{key:6,command:"order"},{default:i(()=>[l(y,null,{default:i(()=>[l(s(us))]),_:1}),e[62]||(e[62]=g("创建订单",-1))]),_:1})):k("",!0),s(Y)(["tcm.diagnosis/delete"])?(d(),f(ee,{key:7,command:"delete",divided:""},{default:i(()=>[l(y,null,{default:i(()=>[l(s(_s))]),_:1}),e[63]||(e[63]=u("span",{class:"text-danger"},"删除",-1))]),_:1})):k("",!0)]),_:2},1024)]),default:i(()=>[l(r,{type:"info",link:"",size:"small"},{default:i(()=>[e[55]||(e[55]=g("更多",-1)),l(y,{class:"el-icon--right"},{default:i(()=>[l(s(Ft))]),_:1})]),_:1})]),_:2},1032,["onCommand"])],32)]),_:1})]),_:1},8,["data"])),[[lt,s(V).loading]]),u("div",Yi,[l($a,{modelValue:s(V),"onUpdate:modelValue":e[16]||(e[16]=n=>K(V)?V.value=n:null),onChange:s(x)},null,8,["modelValue","onChange"])])])]),_:1}),l(s(Bt),{ref_key:"editRef",ref:le,onSuccess:Vn},null,512),l(s(Qt),{ref_key:"detailRef",ref:Sn},null,512),l(s(Gt),{ref_key:"prescriptionRef",ref:xt,onSuccess:na},null,512),l(s(Kt),{ref_key:"appointmentRef",ref:Ce,onSuccess:va},null,512),l(s(Ht),{modelValue:s(Ve),"onUpdate:modelValue":e[17]||(e[17]=n=>K(Ve)?Ve.value=n:null),"diagnosis-id":s(Dt),onClosed:s(x)},null,8,["modelValue","diagnosis-id","onClosed"]),l(Lt,{modelValue:s(ae),"onUpdate:modelValue":e[18]||(e[18]=n=>K(ae)?ae.value=n:null),title:"挂号操作日志",size:"460px","destroy-on-close":"",onClosed:ma},{default:i(()=>[$((d(),p("div",wi,[s(Q)?(d(),p("div",Mi,[u("span",Oi,m(s(Q).patient_name),1),e[64]||(e[64]=u("span",{class:"mx-2 text-gray-300"},"|",-1)),u("span",null,"诊单 #"+m(s(Q).id),1)])):k("",!0),!s(Te)&&s(re).length===0?(d(),f(Ia,{key:1,description:"暂无挂号/取消挂号操作记录"})):s(re).length>0?(d(),f(La,{key:2},{default:i(()=>[(d(!0),p(A,null,S(s(re),(n,h)=>(d(),f(Na,{key:n.id??h,timestamp:n.create_time_text||"—",placement:"top"},{default:i(()=>[u("div",Ui,[l(G,{size:"small",type:"info"},{default:i(()=>[g(m(n.action_desc),1)]),_:2},1024),u("span",qi,m(ca(n)),1)]),u("div",Bi,m(n.summary),1)]),_:2},1032,["timestamp"]))),128))]),_:1})):k("",!0)])),[[lt,s(Te)]])]),_:1},8,["modelValue"]),l(Le,{modelValue:s(B),"onUpdate:modelValue":e[20]||(e[20]=n=>K(B)?B.value=n:null),title:s(He),width:"400px","close-on-click-modal":!1},{footer:i(()=>[l(r,{onClick:e[19]||(e[19]=n=>B.value=!1)},{default:i(()=>[...e[67]||(e[67]=[g("关闭",-1)])]),_:1}),s(H)?k("",!0):(d(),f(r,{key:0,type:"primary",onClick:ba},{default:i(()=>[...e[68]||(e[68]=[g(" 重新生成 ",-1)])]),_:1}))]),default:i(()=>{var n;return[u("div",Qi,[s(H)?(d(),p("div",Gi,[l(y,{class:"is-loading",size:40},{default:i(()=>[l(s(fs))]),_:1}),e[65]||(e[65]=u("div",{class:"mt-4 text-gray-500"},"生成中...",-1))])):s(j)?(d(),p("div",Ki,[u("img",{src:s(j),alt:"小程序二维码",class:"w-64 h-64 border border-gray-200 rounded"},null,8,Hi),u("div",ji,[u("div",null,"患者:"+m((n=s(X))==null?void 0:n.patient_name),1),u("div",Xi,"挂号时间:"+m(Un.value),1),e[66]||(e[66]=u("div",{class:"mt-2"},"请使用企业微信扫描二维码,然后转发给患者",-1))])])):(d(),p("div",Ji," 生成失败,请重试 "))])]}),_:1},8,["modelValue","title"]),l(Le,{modelValue:s(ne),"onUpdate:modelValue":e[24]||(e[24]=n=>K(ne)?ne.value=n:null),title:s(ge)==="batch"?"批量指派医助":"指派医助",width:"500px",onClosed:qn},{footer:i(()=>[l(r,{onClick:e[23]||(e[23]=n=>ne.value=!1)},{default:i(()=>[...e[70]||(e[70]=[g("取消",-1)])]),_:1}),l(r,{type:"primary",onClick:Hn,loading:s(Xe)},{default:i(()=>[...e[71]||(e[71]=[g(" 确定指派 ",-1)])]),_:1},8,["loading"])]),default:i(()=>[l(it,{model:s(E),"label-width":"100px"},{default:i(()=>[l(U,{label:"选择医助",required:""},{default:i(()=>[l(N,{modelValue:s(E).assistant_id,"onUpdate:modelValue":e[21]||(e[21]=n=>s(E).assistant_id=n),placeholder:"请选择医助",class:"w-full",filterable:"",clearable:""},{default:i(()=>[(d(!0),p(A,null,S(s(me),n=>(d(),f(D,{key:n.id,label:n.name,value:Number(n.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(U,{label:"继承"},{default:i(()=>[l(Pa,{modelValue:s(E).is_inherit,"onUpdate:modelValue":e[22]||(e[22]=n=>s(E).is_inherit=n)},{default:i(()=>[...e[69]||(e[69]=[g("继承",-1)])]),_:1},8,["modelValue"])]),_:1}),s(ge)==="batch"?(d(),f(U,{key:0,label:"已选择"},{default:i(()=>[u("div",Zi,m(s(de).length)+" 条诊单记录",1)]),_:1})):(d(),f(U,{key:1,label:"诊单信息"},{default:i(()=>{var n,h;return[u("div",el,[u("div",null,"患者:"+m((n=s(ve))==null?void 0:n.patient_name),1),u("div",null,"诊断日期:"+m((h=s(ve))==null?void 0:h.diagnosis_date_text),1)])]}),_:1}))]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(Le,{modelValue:s(oe),"onUpdate:modelValue":e[29]||(e[29]=n=>K(oe)?oe.value=n:null),title:"创建订单",width:"600px",onClose:Mn},{footer:i(()=>[l(r,{onClick:e[28]||(e[28]=n=>oe.value=!1)},{default:i(()=>[...e[72]||(e[72]=[g("取消",-1)])]),_:1}),l(r,{type:"primary",onClick:On,loading:s(Ke)},{default:i(()=>[...e[73]||(e[73]=[g("创建订单",-1)])]),_:1},8,["loading"])]),default:i(()=>[l(it,{ref_key:"orderFormRef",ref:Ee,model:s(b),rules:Yn,"label-width":"100px"},{default:i(()=>[l(U,{label:"患者"},{default:i(()=>[u("span",tl,m(s(b).patient_name)+" ("+m(_t(s(b).phone))+")",1)]),_:1}),l(U,{label:"订单类型",prop:"order_type"},{default:i(()=>[l(N,{modelValue:s(b).order_type,"onUpdate:modelValue":e[25]||(e[25]=n=>s(b).order_type=n),placeholder:"请选择",class:"w-full"},{default:i(()=>[l(D,{label:"挂号费",value:1}),l(D,{label:"问诊费",value:2}),l(D,{label:"药品费用",value:3}),l(D,{label:"首付费用",value:4}),l(D,{label:"尾款费用",value:5}),l(D,{label:"其他费用",value:6}),l(D,{label:"全部费用",value:7}),l(D,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),l(U,{label:"订单金额",prop:"amount"},{default:i(()=>[l(za,{modelValue:s(b).amount,"onUpdate:modelValue":e[26]||(e[26]=n=>s(b).amount=n),min:0,step:.01,precision:2,placeholder:"请输入金额",class:"w-full"},null,8,["modelValue"])]),_:1}),l(U,{label:"备注",prop:"remark"},{default:i(()=>[l(_,{modelValue:s(b).remark,"onUpdate:modelValue":e[27]||(e[27]=n=>s(b).remark=n),type:"textarea",rows:3,placeholder:"请输入备注(可选)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(Le,{modelValue:s(ue),"onUpdate:modelValue":e[32]||(e[32]=n=>K(ue)?ue.value=n:null),title:"补全身份证号",width:"400px","close-on-click-modal":!1,onClose:e[33]||(e[33]=n=>s(O).id_card="")},{footer:i(()=>[l(r,{onClick:e[31]||(e[31]=n=>ue.value=!1)},{default:i(()=>[...e[74]||(e[74]=[g("取消",-1)])]),_:1}),l(r,{type:"primary",onClick:ha,loading:s(et)},{default:i(()=>[...e[75]||(e[75]=[g("提交(自动更新年龄)",-1)])]),_:1},8,["loading"])]),default:i(()=>[l(it,{ref_key:"fillIdCardFormRef",ref:St,model:s(O),rules:fa,"label-width":"80px"},{default:i(()=>[l(U,{label:"患者"},{default:i(()=>[u("span",nl,m(s(O).patient_name),1)]),_:1}),l(U,{label:"身份证号",prop:"id_card"},{default:i(()=>[l(_,{modelValue:s(O).id_card,"onUpdate:modelValue":e[30]||(e[30]=n=>s(O).id_card=n),placeholder:"请输入15或18位身份证号",maxlength:"18","show-word-limit":"",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(Lt,{modelValue:s(Ie),"onUpdate:modelValue":e[35]||(e[35]=n=>K(Ie)?Ie.value=n:null),title:`企业微信记录 - ${((Pt=s(P))==null?void 0:Pt.patient_name)||""}`,size:"600px","destroy-on-close":!0},{default:i(()=>{var n,h;return[s(z)?(d(),p("div",al,[l(Fa,{column:2,border:"",size:"small"},{default:i(()=>[l(Pe,{label:"患者姓名"},{default:i(()=>{var C;return[g(m((C=s(P))==null?void 0:C.patient_name),1)]}),_:1}),l(Pe,{label:"手机号"},{default:i(()=>[g(m(_t(s(z).phone)||"-"),1)]),_:1}),l(Pe,{label:"企微联系人ID"},{default:i(()=>[s(z).external_userid?(d(),p("span",sl,m(s(z).external_userid),1)):(d(),f(G,{key:1,type:"info",size:"small"},{default:i(()=>[...e[76]||(e[76]=[g("未关联",-1)])]),_:1}))]),_:1}),l(Pe,{label:"会话存档"},{default:i(()=>[s(z).msgaudit_enabled?(d(),f(G,{key:0,type:"success",size:"small"},{default:i(()=>[...e[77]||(e[77]=[g("已开通",-1)])]),_:1})):(d(),f(G,{key:1,type:"info",size:"small"},{default:i(()=>[...e[78]||(e[78]=[g("未配置",-1)])]),_:1}))]),_:1})]),_:1}),(n=s(z).permit_users)!=null&&n.length?(d(),p("div",il,[e[79]||(e[79]=u("span",{class:"text-sm text-gray-500 mr-2"},"存档成员:",-1)),(d(!0),p(A,null,S(s(z).permit_users,C=>(d(),f(G,{key:C,size:"small",class:"mr-1"},{default:i(()=>[g(m(C),1)]),_:2},1024))),128))])):k("",!0),(h=s(z).msgaudit_agree)!=null&&h.length?(d(),p("div",ll,[e[80]||(e[80]=u("span",{class:"text-sm text-gray-500 mr-2"},"存档同意:",-1)),(d(!0),p(A,null,S(s(z).msgaudit_agree,(C,ze)=>(d(),f(G,{key:ze,type:C.agree_status==="Agree"?"success":"warning",size:"small",class:"mr-1"},{default:i(()=>[g(m(C.userid)+": "+m(C.agree_status==="Agree"?"已同意":C.agree_status),1)]),_:2},1032,["type"]))),128))])):k("",!0)])):k("",!0),l(Wa),u("div",ol,[u("div",dl,[l(_,{modelValue:s(se),"onUpdate:modelValue":e[34]||(e[34]=C=>K(se)?se.value=C:null),type:"textarea",rows:2,placeholder:"添加沟通记录...",class:"flex-1"},null,8,["modelValue"]),l(r,{type:"primary",onClick:Da,loading:s(nt),class:"self-end"},{default:i(()=>[...e[81]||(e[81]=[g(" 添加 ",-1)])]),_:1},8,["loading"])])]),$((d(),p("div",null,[s(Z).length===0?(d(),p("div",rl," 暂无聊天记录 ")):(d(),p("div",ul,[(d(!0),p(A,null,S(s(Z),C=>{var ze;return d(),p("div",{key:C.id,class:"record-item"},[u("div",_l,[u("div",pl,[l(G,{type:C.direction===0?"primary":"success",size:"small"},{default:i(()=>[g(m(C.direction===0?"员工":"客户"),1)]),_:2},1032,["type"]),u("span",ml,m(C.direction===0?C.staff_name:C.external_name||((ze=s(P))==null?void 0:ze.patient_name)),1),C.msg_type==="note"?(d(),f(G,{key:0,type:"warning",size:"small"},{default:i(()=>[...e[82]||(e[82]=[g("备注",-1)])]),_:1})):k("",!0)]),u("div",cl,[u("span",gl,m(ka(C.chat_time)),1),l(r,{type:"danger",link:"",size:"small",onClick:xl=>Va(C.id)},{default:i(()=>[...e[83]||(e[83]=[g(" 删除 ",-1)])]),_:1},8,["onClick"])])]),u("div",vl,m(C.content),1),C.media_url?(d(),p("div",fl,[l(Ya,{src:C.media_url,style:{"max-width":"200px"},fit:"contain","preview-src-list":[C.media_url]},null,8,["src","preview-src-list"])])):k("",!0)])}),128))])),s(Ne)>s(Z).length?(d(),p("div",yl,[l(r,{link:"",type:"primary",onClick:xa},{default:i(()=>[...e[84]||(e[84]=[g("加载更多",-1)])]),_:1})])):k("",!0)])),[[lt,s(tt)]])]}),_:1},8,["modelValue","title"])])}}}),Wl=qs(bl,[["__scopeId","data-v-2e2ba249"]]);export{Wl as default}; diff --git a/server/public/admin/assets/index-B_mkjbfl.js b/server/public/admin/assets/index-BzBxz-zX.js similarity index 88% rename from server/public/admin/assets/index-B_mkjbfl.js rename to server/public/admin/assets/index-BzBxz-zX.js index e4c12ca84..af1216cd3 100644 --- a/server/public/admin/assets/index-B_mkjbfl.js +++ b/server/public/admin/assets/index-BzBxz-zX.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-DFFSwWxS.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-QAkeqQ9Q.js","assets/index-Dxvz9lb1.js","assets/index-B3vHLAW8.css","assets/perm-DOfZAzJJ.js","assets/DailyMatrix-BSZy3g0c.js","assets/picker-BDO86vcM.js","assets/index-BnfLT5cB.js","assets/index-B3imPWFk.css","assets/index-yD39j6dM.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-ClBYIwNX.js","assets/index-D0f1Mn00.css","assets/index-BU3OYnKm.js","assets/file-CefRfHD9.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-CE1isNg2.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-GXQTu6xF.js","assets/FollowupAudioReview-92Fgd7wW.js","assets/FollowupAudioField-BG0mRnT5.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-Bdp996ss.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-DFudUjln.js","assets/RecordingPlaybackBlock-GbWd6PMw.js","assets/RecordingVideoPlayer-grUPRDCj.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CafeXQX5.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-0TFZiCkF.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-C2wB-h-D.js","assets/doctor-8vo_5fa4.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-DDh0aI3_.js","assets/patient-Bz8-LT2R.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-BP2alDvZ.js","assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-B4rggqa1.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-Cis-_1uh.js","assets/index-Cf6ygfGC.js","assets/medicine-EUKQYFsM.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-DT7CSmCp.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/appointment-FizcUjTK.js","assets/first_visit-BxZL4Ke4.js","assets/appointment-g8BrHfhi.css","assets/OrderPanel-BoY6f2Ur.js","assets/OrderActionHost-KWccaYJI.js","assets/OrderActionHost-DiqybThz.css","assets/OrderPanel-BzElZPEq.css","assets/ProgressPanel-Cmnqit8V.js","assets/ProgressPanel-C_aSqDJh.css","assets/PaibanPanel-Ce3FolrR.js","assets/PaibanPanel-aqm8azGc.css"])))=>i.map(i=>d[i]); -import{o as ra,W as ua,ap as ma,q as p,r as P,s as n,v as l,D as s,L as m,T as r,bm as pa,u as c,bz as _a,K as ca,Y as fa,X as va,ac as Ce,aA as ga,bc as De,bB as Ve,bf as ya,F as S,G as oe,be as ba,az as ka,w as Ca,cg as Ee,cU as Da,cQ as Va,O as v,bk as Ea,bl as Ya,P as C,ae as Pa,bC as xa,bn as Ra,C as wa,ad as Na,bj as ha,bd as Ia,bb as Aa,bh as Ma,bi as $a,bg as Sa,aB as Fa,ba as La,cd as F,al as L,M as _,aC as de,p as Y}from"./.pnpm-CyuAWpdG.js";import{_ as Ta}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{a as Oa}from"./appointment-type-DJT6wPaT.js";import{d as qa}from"./dayjs-B2bPhvDy.js";import{u as Ua}from"./usePaging-CghUEVfD.js";import{h as T}from"./perm-DOfZAzJJ.js";import{u as Ba,j as g,_ as Wa}from"./index-Dxvz9lb1.js";import{s as za,t as Qa,u as Ka,v as ja,w as Xa}from"./first_visit-BxZL4Ke4.js";import{X as Ga}from"./tcm-QAkeqQ9Q.js";import{g as Ha}from"./weapp-COUVUBPI.js";const Ja={class:"my-patients-page"},Za={class:"page-heading"},et={class:"heading-actions"},at={class:"filter-panel"},tt={class:"filter-row filter-row-main"},nt={class:"filter-group status-group"},lt={class:"filter-row date-filter-row"},st={class:"quick-dates"},it={class:"summary-grid"},ot={class:"summary-icon"},dt={class:"summary-copy"},rt={class:"summary-date"},ut={class:"summary-icon"},mt={class:"summary-copy"},pt={class:"summary-date"},_t={class:"summary-icon"},ct={class:"summary-copy"},ft={class:"summary-date"},vt={class:"table-heading"},gt={class:"table-scope"},yt={class:"patient-cell"},bt={class:"patient-avatar"},kt={class:"doctor-cell"},Ct={class:"revisit-count"},Dt={class:"row-actions"},Vt={class:"pagination-wrap"},Et={class:"dialog-patient-name"},Yt={class:"inherit-field"},Pt={class:"dialog-patient-name"},xt={class:"qrcode-body"},Rt=["src"],wt={class:"qrcode-meta"},Nt={key:2,class:"qrcode-error"},ht=ra({__name:"index",setup(It){const Ye=F(()=>L(()=>import("./edit-DFFSwWxS.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),Pe=F(()=>L(()=>import("./appointment-FizcUjTK.js"),__vite__mapDeps([66,1,2,40,3,4,5,46,67,68]))),xe=F(()=>L(()=>import("./OrderPanel-BoY6f2Ur.js"),__vite__mapDeps([69,1,2,12,18,67,4,5,70,52,3,53,54,6,71,72]))),Re=F(()=>L(()=>import("./ProgressPanel-Cmnqit8V.js"),__vite__mapDeps([73,1,2,12,40,18,67,4,5,74]))),we=F(()=>L(()=>import("./PaibanPanel-Ce3FolrR.js"),__vite__mapDeps([75,1,2,40,3,4,5,46,76]))),X=ua(),Ne=Ba(),y=_("patients"),R=_("all"),O=_([]),re=_(),ue=_(),G=_(),H=_(),J=_(),q=_(!1),U=_(!1),B=_(""),w=_(null),N=_(!1),Z=_(!1),ee=_(!1),W=_([]),h=_(null),D=de({assistant_id:null,is_inherit:!1}),I=_(!1),z=_(!1),ae=_(),b=de({id:0,patient_name:"",id_card:""}),d=de({keyword:"",status_filter:"",start_date:"",end_date:""}),he=[{label:"全部",value:""},{label:"未预约",value:"unbooked"},{label:"待面诊",value:"pending_interview"},{label:"已完成",value:"completed"},{label:"已过号",value:"missed"}],Ie=[{label:"全部时间",value:"all"},{label:"昨天",value:"yesterday"},{label:"今日预约",value:"today"},{label:"明日",value:"tomorrow"},{label:"后天",value:"day_after"},{label:"近7天",value:"last7"},{label:"近30天",value:"last30"}],{pager:k,getLists:A,resetPage:M}=Ua({fetchFun:za,params:d,size:15,firstLoading:!0}),te=Y(()=>{var a,e,i,o,u,f;return{today:Number(((e=(a=k.extend)==null?void 0:a.summary)==null?void 0:e.today)||0),tomorrow:Number(((o=(i=k.extend)==null?void 0:i.summary)==null?void 0:o.tomorrow)||0),day_after:Number(((f=(u=k.extend)==null?void 0:u.summary)==null?void 0:f.day_after)||0)}}),ne=Y(()=>{var a;return((a=k.extend)==null?void 0:a.dates)||{}}),me=Y(()=>{var a,e;return((e=(a=k.extend)==null?void 0:a.scope)==null?void 0:e.label)||"按权限加载"}),pe=Y(()=>T(["tcm.diagnosis/edit"])),_e=Y(()=>T(["tcm.diagnosis/readonlyDetail"])),le=Y(()=>T(["tcm.diagnosis/guahao"])),Ae=Y(()=>T(["tcm.diagnosis/assign"])),Me=Y(()=>T(["tcm.diagnosis/edit"])),$e=Y(()=>{var a,e,i;return y.value==="orders"?!!((a=G.value)!=null&&a.loading):y.value==="progress"?!!((e=H.value)!=null&&e.loading):y.value==="paiban"?!!((i=J.value)!=null&&i.loading):k.loading});function se(){M()}function Se(){M()}function Q(){var a,e,i,o,u,f;return y.value==="orders"?(e=(a=G.value)==null?void 0:a.refresh)==null?void 0:e.call(a):y.value==="progress"?(o=(i=H.value)==null?void 0:i.refresh)==null?void 0:o.call(i):y.value==="paiban"?(f=(u=J.value)==null?void 0:u.refresh)==null?void 0:f.call(u):A()}function Fe(){d.keyword="",d.status_filter="",d.start_date="",d.end_date="",R.value="all",O.value=[],M()}function K(a){R.value=a,O.value=[];const e=qa();a==="all"?(d.start_date="",d.end_date=""):a==="yesterday"?(d.start_date=e.subtract(1,"day").format("YYYY-MM-DD"),d.end_date=d.start_date):a==="today"?(d.start_date=e.format("YYYY-MM-DD"),d.end_date=d.start_date):a==="tomorrow"?(d.start_date=e.add(1,"day").format("YYYY-MM-DD"),d.end_date=d.start_date):a==="day_after"?(d.start_date=e.add(2,"day").format("YYYY-MM-DD"),d.end_date=d.start_date):a==="last7"?(d.start_date=e.subtract(6,"day").format("YYYY-MM-DD"),d.end_date=e.format("YYYY-MM-DD")):a==="last30"&&(d.start_date=e.subtract(29,"day").format("YYYY-MM-DD"),d.end_date=e.format("YYYY-MM-DD")),M()}function Le(a){a!=null&&a.length?(R.value="custom",d.start_date=a[0]||"",d.end_date=a[1]||a[0]||""):(R.value="all",d.start_date="",d.end_date=""),M()}function j(a){var e,i;if(!pe.value){ce(a);return}(i=(e=re.value)==null?void 0:e.open)==null||i.call(e,"edit",Number(a.diagnosis_id||a.id))}function ce(a){if(!_e.value){g.msgWarning("当前角色没有诊单查看权限");return}const e=X.getRoutes().find(i=>{var o;return((o=i.meta)==null?void 0:o.perms)==="tcm.diagnosis/readonlyDetail"});e!=null&&e.path?X.push({path:e.path,query:{id:String(a.diagnosis_id||a.id)}}):X.push({path:"/tcm/diagnosis-readonly",query:{id:String(a.diagnosis_id||a.id)}})}function Te(a){var e,i;(i=(e=ue.value)==null?void 0:e.open)==null||i.call(e,{...a,id:Number(a.diagnosis_id||a.id),patient_id:Number(a.diagnosis_id||a.id)})}function Oe(a){const e=String((a==null?void 0:a.name)||(a==null?void 0:a.account)||`医助${(a==null?void 0:a.id)||""}`),i=String((a==null?void 0:a.dept_names)||"").trim();return i?`${e} · ${i}`:e}async function qe(){ee.value=!0;try{const a=await Xa();W.value=Array.isArray(a)?a:[]}catch(a){W.value=[],g.msgError((a==null?void 0:a.msg)||"医助列表加载失败")}finally{ee.value=!1}}async function Ue(a){h.value=a,D.assistant_id=Number(a.assistant_id)>0?Number(a.assistant_id):null,D.is_inherit=!1,N.value=!0,W.value.length===0&&await qe()}async function Be(){var e,i;const a=Number(((e=h.value)==null?void 0:e.diagnosis_id)||((i=h.value)==null?void 0:i.id));if(a<=0){g.msgWarning("患者诊单信息不完整");return}if(!D.assistant_id){g.msgWarning("请选择医助");return}Z.value=!0;try{await Qa({id:a,assistant_id:Number(D.assistant_id),is_inherit:D.is_inherit?1:0}),g.msgSuccess("指派成功"),N.value=!1,await A()}catch(o){g.msgError((o==null?void 0:o.msg)||"指派失败")}finally{Z.value=!1}}const We={id_card:[{required:!0,validator:(a,e,i)=>{const o=String(e||"").trim();if(!o){i(new Error("请输入身份证号"));return}const u=/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(o),f=/^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$/.test(o);i(u||f?void 0:new Error("请输入15或18位有效身份证号"))},trigger:"blur"}]};function ze(a){b.id=Number(a.diagnosis_id||a.id),b.patient_name=String(a.patient_name||""),b.id_card="",I.value=!0}function Qe(){var a,e;b.id=0,b.patient_name="",b.id_card="",(e=(a=ae.value)==null?void 0:a.clearValidate)==null||e.call(a)}async function fe(){var a,e;if(!z.value){try{await((e=(a=ae.value)==null?void 0:a.validate)==null?void 0:e.call(a))}catch{return}z.value=!0;try{await Ka({id:b.id,id_card:b.id_card.trim()}),g.msgSuccess("补全成功,年龄已自动更新"),I.value=!1,await A()}catch(i){g.msgError((i==null?void 0:i.msg)||"补全身份证失败")}finally{z.value=!1}}}function ve(a){return le.value&&Number(a.appointment_id)>0&&Number(a.appointment_status)===1&&Number(a.appointment_doctor_id)>0}async function ge(a){var o;if(!ve(a)){g.msgWarning("仅已挂号患者可以生成诊单二维码");return}const e=Number(a.diagnosis_id||a.id),i=Number(a.source_patient_id||a.diagnosis_id||a.id);if(e<=0||i<=0){g.msgWarning("患者诊单信息不完整");return}w.value=a,q.value=!0,U.value=!0,B.value="";try{const u=await Ha();if(!(u!=null&&u.app_id))throw new Error("小程序未配置,请先配置小程序信息");const f=await Ga({diagnosis_id:e,doctor_id:Number(a.appointment_doctor_id),patient_id:i,share_user_id:((o=Ne.userInfo)==null?void 0:o.id)||""});if(!(f!=null&&f.qrcode_url))throw new Error("二维码生成失败");B.value=f.qrcode_url}catch(u){g.msgError((u==null?void 0:u.msg)||(u==null?void 0:u.message)||"生成二维码失败,请重试")}finally{U.value=!1}}function Ke(){w.value&&ge(w.value)}function ye(a){return Number(a.appointment_id)>0&&[1,4].includes(Number(a.appointment_status))}async function je(a){if(ye(a))try{await g.confirm(`确定取消“${a.patient_name||"该患者"}”的挂号吗?`),await ja({id:Number(a.appointment_id)}),g.msgSuccess("取消挂号成功"),await Q()}catch(e){e!=="cancel"&&g.msgError((e==null?void 0:e.msg)||"取消挂号失败")}}function Xe(a){return String(a||"患").trim().slice(0,1)}function Ge(a){return{1:"primary",3:"success",4:"warning"}[Number(a)]||"info"}function He({row:a}){return a.confirmed?Number(a.appointment_status)===4?"patient-row-missed":"":"patient-row-unconfirmed"}return ma(()=>{A()}),(a,e)=>{const i=pa,o=ca,u=va,f=fa,be=ga,Je=ba,Ze=ya,ea=ka,$=Ca,E=Ya,aa=xa,ta=Ea,na=Ta,la=ha,x=Aa,sa=$a,ia=Ma,oa=Sa,ke=Ia,ie=Fa,da=Ra;return p(),P("div",Ja,[n("div",Za,[e[18]||(e[18]=n("div",null,[n("div",{class:"eyebrow"},"一诊"),n("h1",null,"我的患者"),n("p",null,"患者、挂号与诊单信息按当前角色和部门数据范围展示")],-1)),n("div",et,[l(i,{effect:"plain",round:""},{default:s(()=>[m(r(me.value),1)]),_:1}),l(o,{icon:c(_a),loading:$e.value,onClick:Q},{default:s(()=>[...e[17]||(e[17]=[m("刷新",-1)])]),_:1},8,["icon","loading"])])]),l(la,{class:"workspace-card",shadow:"never"},{default:s(()=>[l(f,{modelValue:y.value,"onUpdate:modelValue":e[0]||(e[0]=t=>y.value=t),class:"workspace-tabs"},{default:s(()=>[l(u,{label:"患者列表",name:"patients"}),l(u,{label:"订单管理",name:"orders"}),l(u,{label:"面诊进度",name:"progress"}),l(u,{label:"医生排班",name:"paiban"})]),_:1},8,["modelValue"]),Ce(n("div",null,[n("div",at,[n("div",tt,[l(be,{modelValue:d.keyword,"onUpdate:modelValue":e[1]||(e[1]=t=>d.keyword=t),class:"keyword-input",clearable:"","prefix-icon":c(Ve),placeholder:"患者姓名 / 手机号 / 助理 / 医生",onKeyup:De(se,["enter"]),onClear:se},null,8,["modelValue","prefix-icon"]),n("div",nt,[e[19]||(e[19]=n("span",{class:"filter-label"},"状态",-1)),l(Ze,{modelValue:d.status_filter,"onUpdate:modelValue":e[2]||(e[2]=t=>d.status_filter=t),onChange:Se},{default:s(()=>[(p(),P(S,null,oe(he,t=>l(Je,{key:t.value,value:t.value},{default:s(()=>[m(r(t.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),l(o,{type:"primary",icon:c(Ve),onClick:se},{default:s(()=>[...e[20]||(e[20]=[m("查询",-1)])]),_:1},8,["icon"]),l(o,{onClick:Fe},{default:s(()=>[...e[21]||(e[21]=[m("重置",-1)])]),_:1})]),n("div",lt,[e[22]||(e[22]=n("span",{class:"filter-label"},"挂号时间",-1)),n("div",st,[(p(),P(S,null,oe(Ie,t=>l(o,{key:t.value,type:R.value===t.value?"primary":"default",onClick:V=>K(t.value)},{default:s(()=>[m(r(t.label),1)]),_:2},1032,["type","onClick"])),64))]),l(ea,{modelValue:O.value,"onUpdate:modelValue":e[3]||(e[3]=t=>O.value=t),class:"date-range",type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",clearable:!0,onChange:Le},null,8,["modelValue"])])]),n("div",it,[n("button",{class:"summary-card summary-today",type:"button",onClick:e[4]||(e[4]=t=>K("today"))},[n("span",ot,[l($,null,{default:s(()=>[l(c(Ee))]),_:1})]),n("span",dt,[e[23]||(e[23]=n("small",null,"今日预约",-1)),n("strong",null,r(te.value.today),1),e[24]||(e[24]=n("em",null,"人",-1))]),n("span",rt,r(ne.value.today||"—"),1)]),n("button",{class:"summary-card summary-tomorrow",type:"button",onClick:e[5]||(e[5]=t=>K("tomorrow"))},[n("span",ut,[l($,null,{default:s(()=>[l(c(Da))]),_:1})]),n("span",mt,[e[25]||(e[25]=n("small",null,"明日预约",-1)),n("strong",null,r(te.value.tomorrow),1),e[26]||(e[26]=n("em",null,"人",-1))]),n("span",pt,r(ne.value.tomorrow||"—"),1)]),n("button",{class:"summary-card summary-after",type:"button",onClick:e[6]||(e[6]=t=>K("day_after"))},[n("span",_t,[l($,null,{default:s(()=>[l(c(Ee))]),_:1})]),n("span",ct,[e[27]||(e[27]=n("small",null,"后天预约",-1)),n("strong",null,r(te.value.day_after),1),e[28]||(e[28]=n("em",null,"人",-1))]),n("span",ft,r(ne.value.day_after||"—"),1)])]),n("div",vt,[n("div",null,[e[29]||(e[29]=n("h2",null,"患者列表",-1)),n("span",null,"共 "+r(c(k).count)+" 位患者",1)]),n("span",gt,[l($,null,{default:s(()=>[l(c(Va))]),_:1}),m(r(me.value),1)])]),Ce((p(),v(ta,{data:c(k).lists,class:"patient-table","row-class-name":He,onRowDblclick:j},{empty:s(()=>[l(aa,{description:"当前范围内暂无患者"})]),default:s(()=>[l(E,{label:"患者","min-width":"190",fixed:"left"},{default:s(({row:t})=>[n("div",yt,[n("span",bt,r(Xe(t.patient_name)),1),n("div",null,[n("strong",null,r(t.patient_name||"未命名患者"),1),n("p",null,r(t.gender_desc)+" · "+r(t.age||"—")+"岁 · "+r(t.phone_masked||"无手机号"),1)])])]),_:1}),l(E,{prop:"assistant_name",label:"归属助理","min-width":"120"}),l(E,{label:"预约医生","min-width":"150"},{default:s(({row:t})=>[n("div",kt,[n("span",null,r(t.appointment_doctor_name||"未预约"),1),t.appointment_status?(p(),v(i,{key:0,size:"small",type:Ge(t.appointment_status),effect:"light"},{default:s(()=>[m(r(t.appointment_status_text),1)]),_:2},1032,["type"])):C("",!0)])]),_:1}),l(E,{label:"挂号类型","min-width":"110"},{default:s(({row:t})=>[m(r(Number(t.appointment_id)>0?c(Oa)(t.appointment_type):"—"),1)]),_:1}),l(E,{label:"预约时间","min-width":"165"},{default:s(({row:t})=>[n("span",{class:Pa(["appointment-time",{empty:!t.appointment_time_text}])},r(t.appointment_time_text||"暂无预约"),3)]),_:1}),l(E,{label:"复诊次数",width:"105",align:"center"},{default:s(({row:t})=>[n("span",Ct,r(t.revisit_count||0)+" 次",1)]),_:1}),l(E,{label:"确认信息",width:"110",align:"center"},{default:s(({row:t})=>[l(i,{size:"small",type:t.confirmed?"success":"warning",effect:"light"},{default:s(()=>[m(r(t.confirmation_text),1)]),_:2},1032,["type"])]),_:1}),l(E,{label:"诊单日期",width:"118"},{default:s(({row:t})=>[m(r(t.diagnosis_date_text||"—"),1)]),_:1}),l(E,{label:"操作","min-width":"430",fixed:"right"},{default:s(({row:t})=>[n("div",Dt,[pe.value?(p(),v(o,{key:0,type:"primary",link:"",onClick:V=>j(t)},{default:s(()=>[...e[30]||(e[30]=[m("诊单",-1)])]),_:1},8,["onClick"])):_e.value?(p(),v(o,{key:1,type:"primary",link:"",onClick:V=>ce(t)},{default:s(()=>[...e[31]||(e[31]=[m("查看",-1)])]),_:1},8,["onClick"])):C("",!0),le.value?(p(),v(o,{key:2,type:"primary",link:"",onClick:V=>Te(t)},{default:s(()=>[...e[32]||(e[32]=[m("预约",-1)])]),_:1},8,["onClick"])):C("",!0),Ae.value?(p(),v(o,{key:3,type:"warning",link:"",onClick:V=>Ue(t)},{default:s(()=>[m(r(Number(t.assistant_id)>0?"重新指派":"指派"),1)]),_:2},1032,["onClick"])):C("",!0),Me.value&&!Number(t.has_id_card)?(p(),v(o,{key:4,type:"warning",link:"",onClick:V=>ze(t)},{default:s(()=>[...e[33]||(e[33]=[m(" 补全身份证 ",-1)])]),_:1},8,["onClick"])):C("",!0),ve(t)?(p(),v(o,{key:5,type:"primary",link:"",onClick:V=>ge(t)},{default:s(()=>[...e[34]||(e[34]=[m(" 诊单二维码 ",-1)])]),_:1},8,["onClick"])):C("",!0),le.value&&ye(t)?(p(),v(o,{key:6,type:"danger",link:"",onClick:V=>je(t)},{default:s(()=>[...e[35]||(e[35]=[m(" 取消挂号 ",-1)])]),_:1},8,["onClick"])):C("",!0)])]),_:1})]),_:1},8,["data"])),[[da,c(k).loading]]),n("div",Vt,[l(na,{modelValue:c(k),"onUpdate:modelValue":e[7]||(e[7]=t=>wa(k)?k.value=t:null),onChange:c(A)},null,8,["modelValue","onChange"])])],512),[[Na,y.value==="patients"]]),y.value==="orders"?(p(),v(c(xe),{key:0,ref_key:"orderPanelRef",ref:G,onOpenDiagnosis:j},null,512)):C("",!0),y.value==="progress"?(p(),v(c(Re),{key:1,ref_key:"progressPanelRef",ref:H,onOpenDiagnosis:j},null,512)):C("",!0),y.value==="paiban"?(p(),v(c(we),{key:2,ref_key:"paibanPanelRef",ref:J},null,512)):C("",!0)]),_:1}),l(c(Ye),{ref_key:"editRef",ref:re,onSuccess:Q},null,512),l(c(Pe),{ref_key:"appointmentRef",ref:ue,"api-scene":"my_patient",onSuccess:Q},null,512),l(ie,{modelValue:N.value,"onUpdate:modelValue":e[11]||(e[11]=t=>N.value=t),title:"指派医助",width:"500px","close-on-click-modal":!1},{footer:s(()=>[l(o,{onClick:e[10]||(e[10]=t=>N.value=!1)},{default:s(()=>[...e[38]||(e[38]=[m("取消",-1)])]),_:1}),l(o,{type:"primary",loading:Z.value,onClick:Be},{default:s(()=>[...e[39]||(e[39]=[m("确定指派",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(ke,{model:D,"label-width":"88px"},{default:s(()=>[l(x,{label:"患者"},{default:s(()=>{var t;return[n("span",Et,r(((t=h.value)==null?void 0:t.patient_name)||"—"),1)]}),_:1}),l(x,{label:"当前助理"},{default:s(()=>{var t;return[n("span",null,r(((t=h.value)==null?void 0:t.assistant_name)||"未分配"),1)]}),_:1}),l(x,{label:"选择医助",required:""},{default:s(()=>[l(ia,{modelValue:D.assistant_id,"onUpdate:modelValue":e[8]||(e[8]=t=>D.assistant_id=t),class:"dialog-full-width",filterable:"",clearable:"",loading:ee.value,placeholder:"请选择当前范围内的医助"},{default:s(()=>[(p(!0),P(S,null,oe(W.value,t=>(p(),v(sa,{key:t.id,label:Oe(t),value:Number(t.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),l(x,{label:"继承"},{default:s(()=>[n("div",Yt,[l(oa,{modelValue:D.is_inherit,"onUpdate:modelValue":e[9]||(e[9]=t=>D.is_inherit=t)},{default:s(()=>[...e[36]||(e[36]=[m("作为继承指派",-1)])]),_:1},8,["modelValue"]),e[37]||(e[37]=n("small",null,"用于区分继承关系,指派操作仍会完整记录。",-1))])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(ie,{modelValue:I.value,"onUpdate:modelValue":e[14]||(e[14]=t=>I.value=t),title:"补全身份证号",width:"430px","close-on-click-modal":!1,onClosed:Qe},{footer:s(()=>[l(o,{onClick:e[13]||(e[13]=t=>I.value=!1)},{default:s(()=>[...e[40]||(e[40]=[m("取消",-1)])]),_:1}),l(o,{type:"primary",loading:z.value,onClick:fe},{default:s(()=>[...e[41]||(e[41]=[m(" 提交并更新年龄 ",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(ke,{ref_key:"fillIdCardFormRef",ref:ae,model:b,rules:We,"label-width":"88px"},{default:s(()=>[l(x,{label:"患者"},{default:s(()=>[n("span",Pt,r(b.patient_name||"—"),1)]),_:1}),l(x,{label:"身份证号",prop:"id_card"},{default:s(()=>[l(be,{modelValue:b.id_card,"onUpdate:modelValue":e[12]||(e[12]=t=>b.id_card=t),maxlength:"18",clearable:"","show-word-limit":"",placeholder:"请输入15或18位身份证号",onKeyup:De(fe,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(ie,{modelValue:q.value,"onUpdate:modelValue":e[16]||(e[16]=t=>q.value=t),title:"诊单二维码",width:"400px","close-on-click-modal":!1},{footer:s(()=>[l(o,{onClick:e[15]||(e[15]=t=>q.value=!1)},{default:s(()=>[...e[44]||(e[44]=[m("关闭",-1)])]),_:1}),U.value?C("",!0):(p(),v(o,{key:0,type:"primary",onClick:Ke},{default:s(()=>[...e[45]||(e[45]=[m("重新生成",-1)])]),_:1}))]),default:s(()=>{var t,V;return[n("div",xt,[U.value?(p(),P(S,{key:0},[l($,{class:"is-loading",size:40},{default:s(()=>[l(c(La))]),_:1}),e[42]||(e[42]=n("span",null,"二维码生成中...",-1))],64)):B.value?(p(),P(S,{key:1},[n("img",{src:B.value,alt:"诊单二维码",class:"qrcode-image"},null,8,Rt),n("div",wt,[n("div",null,"患者:"+r(((t=w.value)==null?void 0:t.patient_name)||"—"),1),n("div",null,"挂号时间:"+r(((V=w.value)==null?void 0:V.appointment_time_text)||"—"),1),e[43]||(e[43]=n("div",null,"请使用企业微信扫描二维码,然后转发给患者",-1))])],64)):(p(),P("span",Nt,"生成失败,请重试"))])]}),_:1},8,["modelValue"])])}}}),Wt=Wa(ht,[["__scopeId","data-v-c6ebce6c"]]);export{Wt as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-BuMVMky1.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-BSADvQNg.js","assets/index-Bkarz3gO.js","assets/index-deCJ4ja-.css","assets/perm-CHCBwnFR.js","assets/DailyMatrix-BkYJBu_D.js","assets/picker-BTh9eW9u.js","assets/index-CS5Wg0xx.js","assets/index-B3imPWFk.css","assets/index-oRynN2pP.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-Cqk_cdo9.js","assets/index-D0f1Mn00.css","assets/index-BJZwRQXE.js","assets/file-BjbV-eNx.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-VonOdKxB.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-BQogJqk-.js","assets/FollowupAudioReview-BDRNtxGL.js","assets/FollowupAudioField-Dz9Csp0b.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-2_yvVfnZ.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-PGnYdg0x.js","assets/RecordingPlaybackBlock-DDHsYga7.js","assets/RecordingVideoPlayer-B0kkGDId.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CO99W60y.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-mqnmyStx.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-aR2VA9u1.js","assets/doctor-DBvYeWd3.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-D83GYvN5.js","assets/patient-B_ifBl-W.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-Dk7f29yf.js","assets/PrescriptionOrderDetailDrawer-CX7YbddA.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-C_PSjf1W.js","assets/index-DAIDDabA.js","assets/medicine-DPIOyHj8.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CTRSsggc.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/appointment-C_cZtFED.js","assets/first_visit-B5IgLifl.js","assets/appointment-g8BrHfhi.css","assets/OrderPanel-Bkt8MtV-.js","assets/OrderActionHost-1ZsxBlo_.js","assets/OrderActionHost-DiqybThz.css","assets/OrderPanel-BzElZPEq.css","assets/ProgressPanel-BWL8PMwt.js","assets/ProgressPanel-C_aSqDJh.css","assets/PaibanPanel-DaOXGMtb.js","assets/PaibanPanel-aqm8azGc.css"])))=>i.map(i=>d[i]); +import{o as ra,W as ua,ap as ma,q as p,r as P,s as n,v as l,D as s,L as m,T as r,bm as pa,u as c,bz as _a,K as ca,Y as fa,X as va,ac as Ce,aA as ga,bc as De,bB as Ve,bf as ya,F as S,G as oe,be as ba,az as ka,w as Ca,cg as Ee,cU as Da,cQ as Va,O as v,bk as Ea,bl as Ya,P as C,ae as Pa,bC as xa,bn as Ra,C as wa,ad as Na,bj as ha,bd as Ia,bb as Aa,bh as Ma,bi as $a,bg as Sa,aB as Fa,ba as La,cd as F,al as L,M as _,aC as de,p as Y}from"./.pnpm-CyuAWpdG.js";import{_ as Ta}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{a as Oa}from"./appointment-type-DJT6wPaT.js";import{d as qa}from"./dayjs-B2bPhvDy.js";import{u as Ua}from"./usePaging-CghUEVfD.js";import{h as T}from"./perm-CHCBwnFR.js";import{u as Ba,j as g,_ as Wa}from"./index-Bkarz3gO.js";import{s as za,t as Qa,u as Ka,v as ja,w as Xa}from"./first_visit-B5IgLifl.js";import{X as Ga}from"./tcm-BSADvQNg.js";import{g as Ha}from"./weapp-COeXC0ZY.js";const Ja={class:"my-patients-page"},Za={class:"page-heading"},et={class:"heading-actions"},at={class:"filter-panel"},tt={class:"filter-row filter-row-main"},nt={class:"filter-group status-group"},lt={class:"filter-row date-filter-row"},st={class:"quick-dates"},it={class:"summary-grid"},ot={class:"summary-icon"},dt={class:"summary-copy"},rt={class:"summary-date"},ut={class:"summary-icon"},mt={class:"summary-copy"},pt={class:"summary-date"},_t={class:"summary-icon"},ct={class:"summary-copy"},ft={class:"summary-date"},vt={class:"table-heading"},gt={class:"table-scope"},yt={class:"patient-cell"},bt={class:"patient-avatar"},kt={class:"doctor-cell"},Ct={class:"revisit-count"},Dt={class:"row-actions"},Vt={class:"pagination-wrap"},Et={class:"dialog-patient-name"},Yt={class:"inherit-field"},Pt={class:"dialog-patient-name"},xt={class:"qrcode-body"},Rt=["src"],wt={class:"qrcode-meta"},Nt={key:2,class:"qrcode-error"},ht=ra({__name:"index",setup(It){const Ye=F(()=>L(()=>import("./edit-BuMVMky1.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),Pe=F(()=>L(()=>import("./appointment-C_cZtFED.js"),__vite__mapDeps([66,1,2,40,3,4,5,46,67,68]))),xe=F(()=>L(()=>import("./OrderPanel-Bkt8MtV-.js"),__vite__mapDeps([69,1,2,12,18,67,4,5,70,52,3,53,54,6,71,72]))),Re=F(()=>L(()=>import("./ProgressPanel-BWL8PMwt.js"),__vite__mapDeps([73,1,2,12,40,18,67,4,5,74]))),we=F(()=>L(()=>import("./PaibanPanel-DaOXGMtb.js"),__vite__mapDeps([75,1,2,40,3,4,5,46,76]))),X=ua(),Ne=Ba(),y=_("patients"),R=_("all"),O=_([]),re=_(),ue=_(),G=_(),H=_(),J=_(),q=_(!1),U=_(!1),B=_(""),w=_(null),N=_(!1),Z=_(!1),ee=_(!1),W=_([]),h=_(null),D=de({assistant_id:null,is_inherit:!1}),I=_(!1),z=_(!1),ae=_(),b=de({id:0,patient_name:"",id_card:""}),d=de({keyword:"",status_filter:"",start_date:"",end_date:""}),he=[{label:"全部",value:""},{label:"未预约",value:"unbooked"},{label:"待面诊",value:"pending_interview"},{label:"已完成",value:"completed"},{label:"已过号",value:"missed"}],Ie=[{label:"全部时间",value:"all"},{label:"昨天",value:"yesterday"},{label:"今日预约",value:"today"},{label:"明日",value:"tomorrow"},{label:"后天",value:"day_after"},{label:"近7天",value:"last7"},{label:"近30天",value:"last30"}],{pager:k,getLists:A,resetPage:M}=Ua({fetchFun:za,params:d,size:15,firstLoading:!0}),te=Y(()=>{var a,e,i,o,u,f;return{today:Number(((e=(a=k.extend)==null?void 0:a.summary)==null?void 0:e.today)||0),tomorrow:Number(((o=(i=k.extend)==null?void 0:i.summary)==null?void 0:o.tomorrow)||0),day_after:Number(((f=(u=k.extend)==null?void 0:u.summary)==null?void 0:f.day_after)||0)}}),ne=Y(()=>{var a;return((a=k.extend)==null?void 0:a.dates)||{}}),me=Y(()=>{var a,e;return((e=(a=k.extend)==null?void 0:a.scope)==null?void 0:e.label)||"按权限加载"}),pe=Y(()=>T(["tcm.diagnosis/edit"])),_e=Y(()=>T(["tcm.diagnosis/readonlyDetail"])),le=Y(()=>T(["tcm.diagnosis/guahao"])),Ae=Y(()=>T(["tcm.diagnosis/assign"])),Me=Y(()=>T(["tcm.diagnosis/edit"])),$e=Y(()=>{var a,e,i;return y.value==="orders"?!!((a=G.value)!=null&&a.loading):y.value==="progress"?!!((e=H.value)!=null&&e.loading):y.value==="paiban"?!!((i=J.value)!=null&&i.loading):k.loading});function se(){M()}function Se(){M()}function Q(){var a,e,i,o,u,f;return y.value==="orders"?(e=(a=G.value)==null?void 0:a.refresh)==null?void 0:e.call(a):y.value==="progress"?(o=(i=H.value)==null?void 0:i.refresh)==null?void 0:o.call(i):y.value==="paiban"?(f=(u=J.value)==null?void 0:u.refresh)==null?void 0:f.call(u):A()}function Fe(){d.keyword="",d.status_filter="",d.start_date="",d.end_date="",R.value="all",O.value=[],M()}function K(a){R.value=a,O.value=[];const e=qa();a==="all"?(d.start_date="",d.end_date=""):a==="yesterday"?(d.start_date=e.subtract(1,"day").format("YYYY-MM-DD"),d.end_date=d.start_date):a==="today"?(d.start_date=e.format("YYYY-MM-DD"),d.end_date=d.start_date):a==="tomorrow"?(d.start_date=e.add(1,"day").format("YYYY-MM-DD"),d.end_date=d.start_date):a==="day_after"?(d.start_date=e.add(2,"day").format("YYYY-MM-DD"),d.end_date=d.start_date):a==="last7"?(d.start_date=e.subtract(6,"day").format("YYYY-MM-DD"),d.end_date=e.format("YYYY-MM-DD")):a==="last30"&&(d.start_date=e.subtract(29,"day").format("YYYY-MM-DD"),d.end_date=e.format("YYYY-MM-DD")),M()}function Le(a){a!=null&&a.length?(R.value="custom",d.start_date=a[0]||"",d.end_date=a[1]||a[0]||""):(R.value="all",d.start_date="",d.end_date=""),M()}function j(a){var e,i;if(!pe.value){ce(a);return}(i=(e=re.value)==null?void 0:e.open)==null||i.call(e,"edit",Number(a.diagnosis_id||a.id))}function ce(a){if(!_e.value){g.msgWarning("当前角色没有诊单查看权限");return}const e=X.getRoutes().find(i=>{var o;return((o=i.meta)==null?void 0:o.perms)==="tcm.diagnosis/readonlyDetail"});e!=null&&e.path?X.push({path:e.path,query:{id:String(a.diagnosis_id||a.id)}}):X.push({path:"/tcm/diagnosis-readonly",query:{id:String(a.diagnosis_id||a.id)}})}function Te(a){var e,i;(i=(e=ue.value)==null?void 0:e.open)==null||i.call(e,{...a,id:Number(a.diagnosis_id||a.id),patient_id:Number(a.diagnosis_id||a.id)})}function Oe(a){const e=String((a==null?void 0:a.name)||(a==null?void 0:a.account)||`医助${(a==null?void 0:a.id)||""}`),i=String((a==null?void 0:a.dept_names)||"").trim();return i?`${e} · ${i}`:e}async function qe(){ee.value=!0;try{const a=await Xa();W.value=Array.isArray(a)?a:[]}catch(a){W.value=[],g.msgError((a==null?void 0:a.msg)||"医助列表加载失败")}finally{ee.value=!1}}async function Ue(a){h.value=a,D.assistant_id=Number(a.assistant_id)>0?Number(a.assistant_id):null,D.is_inherit=!1,N.value=!0,W.value.length===0&&await qe()}async function Be(){var e,i;const a=Number(((e=h.value)==null?void 0:e.diagnosis_id)||((i=h.value)==null?void 0:i.id));if(a<=0){g.msgWarning("患者诊单信息不完整");return}if(!D.assistant_id){g.msgWarning("请选择医助");return}Z.value=!0;try{await Qa({id:a,assistant_id:Number(D.assistant_id),is_inherit:D.is_inherit?1:0}),g.msgSuccess("指派成功"),N.value=!1,await A()}catch(o){g.msgError((o==null?void 0:o.msg)||"指派失败")}finally{Z.value=!1}}const We={id_card:[{required:!0,validator:(a,e,i)=>{const o=String(e||"").trim();if(!o){i(new Error("请输入身份证号"));return}const u=/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(o),f=/^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$/.test(o);i(u||f?void 0:new Error("请输入15或18位有效身份证号"))},trigger:"blur"}]};function ze(a){b.id=Number(a.diagnosis_id||a.id),b.patient_name=String(a.patient_name||""),b.id_card="",I.value=!0}function Qe(){var a,e;b.id=0,b.patient_name="",b.id_card="",(e=(a=ae.value)==null?void 0:a.clearValidate)==null||e.call(a)}async function fe(){var a,e;if(!z.value){try{await((e=(a=ae.value)==null?void 0:a.validate)==null?void 0:e.call(a))}catch{return}z.value=!0;try{await Ka({id:b.id,id_card:b.id_card.trim()}),g.msgSuccess("补全成功,年龄已自动更新"),I.value=!1,await A()}catch(i){g.msgError((i==null?void 0:i.msg)||"补全身份证失败")}finally{z.value=!1}}}function ve(a){return le.value&&Number(a.appointment_id)>0&&Number(a.appointment_status)===1&&Number(a.appointment_doctor_id)>0}async function ge(a){var o;if(!ve(a)){g.msgWarning("仅已挂号患者可以生成诊单二维码");return}const e=Number(a.diagnosis_id||a.id),i=Number(a.source_patient_id||a.diagnosis_id||a.id);if(e<=0||i<=0){g.msgWarning("患者诊单信息不完整");return}w.value=a,q.value=!0,U.value=!0,B.value="";try{const u=await Ha();if(!(u!=null&&u.app_id))throw new Error("小程序未配置,请先配置小程序信息");const f=await Ga({diagnosis_id:e,doctor_id:Number(a.appointment_doctor_id),patient_id:i,share_user_id:((o=Ne.userInfo)==null?void 0:o.id)||""});if(!(f!=null&&f.qrcode_url))throw new Error("二维码生成失败");B.value=f.qrcode_url}catch(u){g.msgError((u==null?void 0:u.msg)||(u==null?void 0:u.message)||"生成二维码失败,请重试")}finally{U.value=!1}}function Ke(){w.value&&ge(w.value)}function ye(a){return Number(a.appointment_id)>0&&[1,4].includes(Number(a.appointment_status))}async function je(a){if(ye(a))try{await g.confirm(`确定取消“${a.patient_name||"该患者"}”的挂号吗?`),await ja({id:Number(a.appointment_id)}),g.msgSuccess("取消挂号成功"),await Q()}catch(e){e!=="cancel"&&g.msgError((e==null?void 0:e.msg)||"取消挂号失败")}}function Xe(a){return String(a||"患").trim().slice(0,1)}function Ge(a){return{1:"primary",3:"success",4:"warning"}[Number(a)]||"info"}function He({row:a}){return a.confirmed?Number(a.appointment_status)===4?"patient-row-missed":"":"patient-row-unconfirmed"}return ma(()=>{A()}),(a,e)=>{const i=pa,o=ca,u=va,f=fa,be=ga,Je=ba,Ze=ya,ea=ka,$=Ca,E=Ya,aa=xa,ta=Ea,na=Ta,la=ha,x=Aa,sa=$a,ia=Ma,oa=Sa,ke=Ia,ie=Fa,da=Ra;return p(),P("div",Ja,[n("div",Za,[e[18]||(e[18]=n("div",null,[n("div",{class:"eyebrow"},"一诊"),n("h1",null,"我的患者"),n("p",null,"患者、挂号与诊单信息按当前角色和部门数据范围展示")],-1)),n("div",et,[l(i,{effect:"plain",round:""},{default:s(()=>[m(r(me.value),1)]),_:1}),l(o,{icon:c(_a),loading:$e.value,onClick:Q},{default:s(()=>[...e[17]||(e[17]=[m("刷新",-1)])]),_:1},8,["icon","loading"])])]),l(la,{class:"workspace-card",shadow:"never"},{default:s(()=>[l(f,{modelValue:y.value,"onUpdate:modelValue":e[0]||(e[0]=t=>y.value=t),class:"workspace-tabs"},{default:s(()=>[l(u,{label:"患者列表",name:"patients"}),l(u,{label:"订单管理",name:"orders"}),l(u,{label:"面诊进度",name:"progress"}),l(u,{label:"医生排班",name:"paiban"})]),_:1},8,["modelValue"]),Ce(n("div",null,[n("div",at,[n("div",tt,[l(be,{modelValue:d.keyword,"onUpdate:modelValue":e[1]||(e[1]=t=>d.keyword=t),class:"keyword-input",clearable:"","prefix-icon":c(Ve),placeholder:"患者姓名 / 手机号 / 助理 / 医生",onKeyup:De(se,["enter"]),onClear:se},null,8,["modelValue","prefix-icon"]),n("div",nt,[e[19]||(e[19]=n("span",{class:"filter-label"},"状态",-1)),l(Ze,{modelValue:d.status_filter,"onUpdate:modelValue":e[2]||(e[2]=t=>d.status_filter=t),onChange:Se},{default:s(()=>[(p(),P(S,null,oe(he,t=>l(Je,{key:t.value,value:t.value},{default:s(()=>[m(r(t.label),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),l(o,{type:"primary",icon:c(Ve),onClick:se},{default:s(()=>[...e[20]||(e[20]=[m("查询",-1)])]),_:1},8,["icon"]),l(o,{onClick:Fe},{default:s(()=>[...e[21]||(e[21]=[m("重置",-1)])]),_:1})]),n("div",lt,[e[22]||(e[22]=n("span",{class:"filter-label"},"挂号时间",-1)),n("div",st,[(p(),P(S,null,oe(Ie,t=>l(o,{key:t.value,type:R.value===t.value?"primary":"default",onClick:V=>K(t.value)},{default:s(()=>[m(r(t.label),1)]),_:2},1032,["type","onClick"])),64))]),l(ea,{modelValue:O.value,"onUpdate:modelValue":e[3]||(e[3]=t=>O.value=t),class:"date-range",type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",clearable:!0,onChange:Le},null,8,["modelValue"])])]),n("div",it,[n("button",{class:"summary-card summary-today",type:"button",onClick:e[4]||(e[4]=t=>K("today"))},[n("span",ot,[l($,null,{default:s(()=>[l(c(Ee))]),_:1})]),n("span",dt,[e[23]||(e[23]=n("small",null,"今日预约",-1)),n("strong",null,r(te.value.today),1),e[24]||(e[24]=n("em",null,"人",-1))]),n("span",rt,r(ne.value.today||"—"),1)]),n("button",{class:"summary-card summary-tomorrow",type:"button",onClick:e[5]||(e[5]=t=>K("tomorrow"))},[n("span",ut,[l($,null,{default:s(()=>[l(c(Da))]),_:1})]),n("span",mt,[e[25]||(e[25]=n("small",null,"明日预约",-1)),n("strong",null,r(te.value.tomorrow),1),e[26]||(e[26]=n("em",null,"人",-1))]),n("span",pt,r(ne.value.tomorrow||"—"),1)]),n("button",{class:"summary-card summary-after",type:"button",onClick:e[6]||(e[6]=t=>K("day_after"))},[n("span",_t,[l($,null,{default:s(()=>[l(c(Ee))]),_:1})]),n("span",ct,[e[27]||(e[27]=n("small",null,"后天预约",-1)),n("strong",null,r(te.value.day_after),1),e[28]||(e[28]=n("em",null,"人",-1))]),n("span",ft,r(ne.value.day_after||"—"),1)])]),n("div",vt,[n("div",null,[e[29]||(e[29]=n("h2",null,"患者列表",-1)),n("span",null,"共 "+r(c(k).count)+" 位患者",1)]),n("span",gt,[l($,null,{default:s(()=>[l(c(Va))]),_:1}),m(r(me.value),1)])]),Ce((p(),v(ta,{data:c(k).lists,class:"patient-table","row-class-name":He,onRowDblclick:j},{empty:s(()=>[l(aa,{description:"当前范围内暂无患者"})]),default:s(()=>[l(E,{label:"患者","min-width":"190",fixed:"left"},{default:s(({row:t})=>[n("div",yt,[n("span",bt,r(Xe(t.patient_name)),1),n("div",null,[n("strong",null,r(t.patient_name||"未命名患者"),1),n("p",null,r(t.gender_desc)+" · "+r(t.age||"—")+"岁 · "+r(t.phone_masked||"无手机号"),1)])])]),_:1}),l(E,{prop:"assistant_name",label:"归属助理","min-width":"120"}),l(E,{label:"预约医生","min-width":"150"},{default:s(({row:t})=>[n("div",kt,[n("span",null,r(t.appointment_doctor_name||"未预约"),1),t.appointment_status?(p(),v(i,{key:0,size:"small",type:Ge(t.appointment_status),effect:"light"},{default:s(()=>[m(r(t.appointment_status_text),1)]),_:2},1032,["type"])):C("",!0)])]),_:1}),l(E,{label:"挂号类型","min-width":"110"},{default:s(({row:t})=>[m(r(Number(t.appointment_id)>0?c(Oa)(t.appointment_type):"—"),1)]),_:1}),l(E,{label:"预约时间","min-width":"165"},{default:s(({row:t})=>[n("span",{class:Pa(["appointment-time",{empty:!t.appointment_time_text}])},r(t.appointment_time_text||"暂无预约"),3)]),_:1}),l(E,{label:"复诊次数",width:"105",align:"center"},{default:s(({row:t})=>[n("span",Ct,r(t.revisit_count||0)+" 次",1)]),_:1}),l(E,{label:"确认信息",width:"110",align:"center"},{default:s(({row:t})=>[l(i,{size:"small",type:t.confirmed?"success":"warning",effect:"light"},{default:s(()=>[m(r(t.confirmation_text),1)]),_:2},1032,["type"])]),_:1}),l(E,{label:"诊单日期",width:"118"},{default:s(({row:t})=>[m(r(t.diagnosis_date_text||"—"),1)]),_:1}),l(E,{label:"操作","min-width":"430",fixed:"right"},{default:s(({row:t})=>[n("div",Dt,[pe.value?(p(),v(o,{key:0,type:"primary",link:"",onClick:V=>j(t)},{default:s(()=>[...e[30]||(e[30]=[m("诊单",-1)])]),_:1},8,["onClick"])):_e.value?(p(),v(o,{key:1,type:"primary",link:"",onClick:V=>ce(t)},{default:s(()=>[...e[31]||(e[31]=[m("查看",-1)])]),_:1},8,["onClick"])):C("",!0),le.value?(p(),v(o,{key:2,type:"primary",link:"",onClick:V=>Te(t)},{default:s(()=>[...e[32]||(e[32]=[m("预约",-1)])]),_:1},8,["onClick"])):C("",!0),Ae.value?(p(),v(o,{key:3,type:"warning",link:"",onClick:V=>Ue(t)},{default:s(()=>[m(r(Number(t.assistant_id)>0?"重新指派":"指派"),1)]),_:2},1032,["onClick"])):C("",!0),Me.value&&!Number(t.has_id_card)?(p(),v(o,{key:4,type:"warning",link:"",onClick:V=>ze(t)},{default:s(()=>[...e[33]||(e[33]=[m(" 补全身份证 ",-1)])]),_:1},8,["onClick"])):C("",!0),ve(t)?(p(),v(o,{key:5,type:"primary",link:"",onClick:V=>ge(t)},{default:s(()=>[...e[34]||(e[34]=[m(" 诊单二维码 ",-1)])]),_:1},8,["onClick"])):C("",!0),le.value&&ye(t)?(p(),v(o,{key:6,type:"danger",link:"",onClick:V=>je(t)},{default:s(()=>[...e[35]||(e[35]=[m(" 取消挂号 ",-1)])]),_:1},8,["onClick"])):C("",!0)])]),_:1})]),_:1},8,["data"])),[[da,c(k).loading]]),n("div",Vt,[l(na,{modelValue:c(k),"onUpdate:modelValue":e[7]||(e[7]=t=>wa(k)?k.value=t:null),onChange:c(A)},null,8,["modelValue","onChange"])])],512),[[Na,y.value==="patients"]]),y.value==="orders"?(p(),v(c(xe),{key:0,ref_key:"orderPanelRef",ref:G,onOpenDiagnosis:j},null,512)):C("",!0),y.value==="progress"?(p(),v(c(Re),{key:1,ref_key:"progressPanelRef",ref:H,onOpenDiagnosis:j},null,512)):C("",!0),y.value==="paiban"?(p(),v(c(we),{key:2,ref_key:"paibanPanelRef",ref:J},null,512)):C("",!0)]),_:1}),l(c(Ye),{ref_key:"editRef",ref:re,onSuccess:Q},null,512),l(c(Pe),{ref_key:"appointmentRef",ref:ue,"api-scene":"my_patient",onSuccess:Q},null,512),l(ie,{modelValue:N.value,"onUpdate:modelValue":e[11]||(e[11]=t=>N.value=t),title:"指派医助",width:"500px","close-on-click-modal":!1},{footer:s(()=>[l(o,{onClick:e[10]||(e[10]=t=>N.value=!1)},{default:s(()=>[...e[38]||(e[38]=[m("取消",-1)])]),_:1}),l(o,{type:"primary",loading:Z.value,onClick:Be},{default:s(()=>[...e[39]||(e[39]=[m("确定指派",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(ke,{model:D,"label-width":"88px"},{default:s(()=>[l(x,{label:"患者"},{default:s(()=>{var t;return[n("span",Et,r(((t=h.value)==null?void 0:t.patient_name)||"—"),1)]}),_:1}),l(x,{label:"当前助理"},{default:s(()=>{var t;return[n("span",null,r(((t=h.value)==null?void 0:t.assistant_name)||"未分配"),1)]}),_:1}),l(x,{label:"选择医助",required:""},{default:s(()=>[l(ia,{modelValue:D.assistant_id,"onUpdate:modelValue":e[8]||(e[8]=t=>D.assistant_id=t),class:"dialog-full-width",filterable:"",clearable:"",loading:ee.value,placeholder:"请选择当前范围内的医助"},{default:s(()=>[(p(!0),P(S,null,oe(W.value,t=>(p(),v(sa,{key:t.id,label:Oe(t),value:Number(t.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),l(x,{label:"继承"},{default:s(()=>[n("div",Yt,[l(oa,{modelValue:D.is_inherit,"onUpdate:modelValue":e[9]||(e[9]=t=>D.is_inherit=t)},{default:s(()=>[...e[36]||(e[36]=[m("作为继承指派",-1)])]),_:1},8,["modelValue"]),e[37]||(e[37]=n("small",null,"用于区分继承关系,指派操作仍会完整记录。",-1))])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(ie,{modelValue:I.value,"onUpdate:modelValue":e[14]||(e[14]=t=>I.value=t),title:"补全身份证号",width:"430px","close-on-click-modal":!1,onClosed:Qe},{footer:s(()=>[l(o,{onClick:e[13]||(e[13]=t=>I.value=!1)},{default:s(()=>[...e[40]||(e[40]=[m("取消",-1)])]),_:1}),l(o,{type:"primary",loading:z.value,onClick:fe},{default:s(()=>[...e[41]||(e[41]=[m(" 提交并更新年龄 ",-1)])]),_:1},8,["loading"])]),default:s(()=>[l(ke,{ref_key:"fillIdCardFormRef",ref:ae,model:b,rules:We,"label-width":"88px"},{default:s(()=>[l(x,{label:"患者"},{default:s(()=>[n("span",Pt,r(b.patient_name||"—"),1)]),_:1}),l(x,{label:"身份证号",prop:"id_card"},{default:s(()=>[l(be,{modelValue:b.id_card,"onUpdate:modelValue":e[12]||(e[12]=t=>b.id_card=t),maxlength:"18",clearable:"","show-word-limit":"",placeholder:"请输入15或18位身份证号",onKeyup:De(fe,["enter"])},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(ie,{modelValue:q.value,"onUpdate:modelValue":e[16]||(e[16]=t=>q.value=t),title:"诊单二维码",width:"400px","close-on-click-modal":!1},{footer:s(()=>[l(o,{onClick:e[15]||(e[15]=t=>q.value=!1)},{default:s(()=>[...e[44]||(e[44]=[m("关闭",-1)])]),_:1}),U.value?C("",!0):(p(),v(o,{key:0,type:"primary",onClick:Ke},{default:s(()=>[...e[45]||(e[45]=[m("重新生成",-1)])]),_:1}))]),default:s(()=>{var t,V;return[n("div",xt,[U.value?(p(),P(S,{key:0},[l($,{class:"is-loading",size:40},{default:s(()=>[l(c(La))]),_:1}),e[42]||(e[42]=n("span",null,"二维码生成中...",-1))],64)):B.value?(p(),P(S,{key:1},[n("img",{src:B.value,alt:"诊单二维码",class:"qrcode-image"},null,8,Rt),n("div",wt,[n("div",null,"患者:"+r(((t=w.value)==null?void 0:t.patient_name)||"—"),1),n("div",null,"挂号时间:"+r(((V=w.value)==null?void 0:V.appointment_time_text)||"—"),1),e[43]||(e[43]=n("div",null,"请使用企业微信扫描二维码,然后转发给患者",-1))])],64)):(p(),P("span",Nt,"生成失败,请重试"))])]}),_:1},8,["modelValue"])])}}}),Wt=Wa(ht,[["__scopeId","data-v-c6ebce6c"]]);export{Wt as default}; diff --git a/server/public/admin/assets/index-DWJNdttC.js b/server/public/admin/assets/index-CAEQo67E.js similarity index 95% rename from server/public/admin/assets/index-DWJNdttC.js rename to server/public/admin/assets/index-CAEQo67E.js index 8c098fdac..cf651b744 100644 --- a/server/public/admin/assets/index-DWJNdttC.js +++ b/server/public/admin/assets/index-CAEQo67E.js @@ -1 +1 @@ -import{o as N,Q as M,aC as B,bp as Q,q as s,r as V,v as t,D as a,br as J,bd as W,u as l,bb as X,bh as Y,F as Z,G as ee,O as r,bi as te,aA as ae,bc as le,K as ne,L as u,bj as oe,s as D,ac as y,bk as se,bl as de,bm as ie,C as re,bn as ue,P as pe,M as L,a8 as me,n as R}from"./.pnpm-CyuAWpdG.js";import{_ as ce}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as _e,j as fe}from"./index-Dxvz9lb1.js";import{c as be,e as ye,f as ve}from"./dict-C0-nzPZh.js";import{u as ge}from"./usePaging-CghUEVfD.js";import{_ as ke}from"./edit.vue_vue_type_script_setup_true_lang-B1vNi0Rd.js";import"./index-BnfLT5cB.js";const Ce={class:"dict-type"},we={class:"mt-4"},Ve={class:"flex justify-end mt-4"},De=N({name:"dictData"}),Re=N({...De,setup(Ee){const{query:S}=M(),v=L(!1),_=me(),d=B({type:"",type_id:Number(S.id),name:"",status:""}),C=B({dict_type:[]}),{pager:f,getLists:b,resetPage:E,resetParams:K}=ge({fetchFun:be,params:d}),w=L([]),U=o=>{w.value=o.map(({id:e})=>e)},h=async()=>{var e,p;v.value=!0,await R();const o=C.dict_type.find(m=>m.id==d.type_id);(e=_.value)==null||e.setFormData({type_value:o==null?void 0:o.type,type_id:o.id}),(p=_.value)==null||p.open("add")},j=async o=>{var e,p;v.value=!0,await R(),(e=_.value)==null||e.open("edit"),(p=_.value)==null||p.setFormData(o)},x=async o=>{await fe.confirm("确定要删除?"),await ye({id:o}),b()},q=async()=>{const o=await ve({page_type:0});C.dict_type=o.lists};return b(),q(),(o,e)=>{const p=J,m=te,$=Y,g=X,I=ae,c=ne,A=W,F=oe,P=_e,i=de,T=ie,O=se,z=ce,k=Q("perms"),G=ue;return s(),V("div",Ce,[t(F,{class:"!border-none",shadow:"never"},{default:a(()=>[t(p,{class:"mb-4",content:"数据管理",onBack:e[0]||(e[0]=n=>o.$router.back())}),t(A,{ref:"formRef",class:"mb-[-16px]",model:l(d),inline:""},{default:a(()=>[t(g,{class:"w-[280px]",label:"字典名称"},{default:a(()=>[t($,{modelValue:l(d).type_id,"onUpdate:modelValue":e[1]||(e[1]=n=>l(d).type_id=n),onChange:l(b)},{default:a(()=>[(s(!0),V(Z,null,ee(l(C).dict_type,n=>(s(),r(m,{label:n.name,value:n.id,key:n.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","onChange"])]),_:1}),t(g,{class:"w-[280px]",label:"数据名称"},{default:a(()=>[t(I,{modelValue:l(d).name,"onUpdate:modelValue":e[2]||(e[2]=n=>l(d).name=n),clearable:"",onKeyup:le(l(E),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(g,{class:"w-[280px]",label:"数据状态"},{default:a(()=>[t($,{modelValue:l(d).status,"onUpdate:modelValue":e[3]||(e[3]=n=>l(d).status=n)},{default:a(()=>[t(m,{label:"全部",value:""}),t(m,{label:"正常",value:1}),t(m,{label:"停用",value:0})]),_:1},8,["modelValue"])]),_:1}),t(g,null,{default:a(()=>[t(c,{type:"primary",onClick:l(E)},{default:a(()=>[...e[7]||(e[7]=[u("查询",-1)])]),_:1},8,["onClick"]),t(c,{onClick:l(K)},{default:a(()=>[...e[8]||(e[8]=[u("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),t(F,{class:"!border-none mt-4",shadow:"never"},{default:a(()=>[D("div",null,[y((s(),r(c,{type:"primary",onClick:h},{icon:a(()=>[t(P,{name:"el-icon-Plus"})]),default:a(()=>[e[9]||(e[9]=u(" 添加数据 ",-1))]),_:1})),[[k,["setting.dict.dict_data/add"]]]),y((s(),r(c,{disabled:!l(w).length,type:"danger",onClick:e[4]||(e[4]=n=>x(l(w)))},{icon:a(()=>[t(P,{name:"el-icon-Delete"})]),default:a(()=>[e[10]||(e[10]=u(" 删除 ",-1))]),_:1},8,["disabled"])),[[k,["setting.dict.dict_data/delete"]]])]),y((s(),V("div",we,[D("div",null,[t(O,{data:l(f).lists,size:"large",onSelectionChange:U},{default:a(()=>[t(i,{type:"selection",width:"55"}),t(i,{label:"ID",prop:"id"}),t(i,{label:"数据名称",prop:"name","min-width":"120"}),t(i,{label:"数据值",prop:"value","min-width":"120"}),t(i,{label:"状态"},{default:a(({row:n})=>[n.status==1?(s(),r(T,{key:0},{default:a(()=>[...e[11]||(e[11]=[u("正常",-1)])]),_:1})):(s(),r(T,{key:1,type:"danger"},{default:a(()=>[...e[12]||(e[12]=[u("停用",-1)])]),_:1}))]),_:1}),t(i,{label:"备注",prop:"remark","min-width":"120","show-tooltip-when-overflow":""}),t(i,{label:"排序",prop:"sort"}),t(i,{label:"操作",width:"120",fixed:"right"},{default:a(({row:n})=>[y((s(),r(c,{link:"",type:"primary",onClick:H=>j(n)},{default:a(()=>[...e[13]||(e[13]=[u(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[k,["setting.dict.dict_data/edit"]]]),y((s(),r(c,{link:"",type:"danger",onClick:H=>x(n.id)},{default:a(()=>[...e[14]||(e[14]=[u(" 删除 ",-1)])]),_:1},8,["onClick"])),[[k,["setting.dict.dict_data/delete"]]])]),_:1})]),_:1},8,["data"])]),D("div",Ve,[t(z,{modelValue:l(f),"onUpdate:modelValue":e[5]||(e[5]=n=>re(f)?f.value=n:null),onChange:l(b)},null,8,["modelValue","onChange"])])])),[[G,l(f).loading]])]),_:1}),l(v)?(s(),r(ke,{key:0,ref_key:"editRef",ref:_,onSuccess:l(b),onClose:e[6]||(e[6]=n=>v.value=!1)},null,8,["onSuccess"])):pe("",!0)])}}});export{Re as default}; +import{o as N,Q as M,aC as B,bp as Q,q as s,r as V,v as t,D as a,br as J,bd as W,u as l,bb as X,bh as Y,F as Z,G as ee,O as r,bi as te,aA as ae,bc as le,K as ne,L as u,bj as oe,s as D,ac as y,bk as se,bl as de,bm as ie,C as re,bn as ue,P as pe,M as L,a8 as me,n as R}from"./.pnpm-CyuAWpdG.js";import{_ as ce}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as _e,j as fe}from"./index-Bkarz3gO.js";import{c as be,e as ye,f as ve}from"./dict-B9ij5Vr6.js";import{u as ge}from"./usePaging-CghUEVfD.js";import{_ as ke}from"./edit.vue_vue_type_script_setup_true_lang-Bz31OqAj.js";import"./index-CS5Wg0xx.js";const Ce={class:"dict-type"},we={class:"mt-4"},Ve={class:"flex justify-end mt-4"},De=N({name:"dictData"}),Re=N({...De,setup(Ee){const{query:S}=M(),v=L(!1),_=me(),d=B({type:"",type_id:Number(S.id),name:"",status:""}),C=B({dict_type:[]}),{pager:f,getLists:b,resetPage:E,resetParams:K}=ge({fetchFun:be,params:d}),w=L([]),U=o=>{w.value=o.map(({id:e})=>e)},h=async()=>{var e,p;v.value=!0,await R();const o=C.dict_type.find(m=>m.id==d.type_id);(e=_.value)==null||e.setFormData({type_value:o==null?void 0:o.type,type_id:o.id}),(p=_.value)==null||p.open("add")},j=async o=>{var e,p;v.value=!0,await R(),(e=_.value)==null||e.open("edit"),(p=_.value)==null||p.setFormData(o)},x=async o=>{await fe.confirm("确定要删除?"),await ye({id:o}),b()},q=async()=>{const o=await ve({page_type:0});C.dict_type=o.lists};return b(),q(),(o,e)=>{const p=J,m=te,$=Y,g=X,I=ae,c=ne,A=W,F=oe,P=_e,i=de,T=ie,O=se,z=ce,k=Q("perms"),G=ue;return s(),V("div",Ce,[t(F,{class:"!border-none",shadow:"never"},{default:a(()=>[t(p,{class:"mb-4",content:"数据管理",onBack:e[0]||(e[0]=n=>o.$router.back())}),t(A,{ref:"formRef",class:"mb-[-16px]",model:l(d),inline:""},{default:a(()=>[t(g,{class:"w-[280px]",label:"字典名称"},{default:a(()=>[t($,{modelValue:l(d).type_id,"onUpdate:modelValue":e[1]||(e[1]=n=>l(d).type_id=n),onChange:l(b)},{default:a(()=>[(s(!0),V(Z,null,ee(l(C).dict_type,n=>(s(),r(m,{label:n.name,value:n.id,key:n.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","onChange"])]),_:1}),t(g,{class:"w-[280px]",label:"数据名称"},{default:a(()=>[t(I,{modelValue:l(d).name,"onUpdate:modelValue":e[2]||(e[2]=n=>l(d).name=n),clearable:"",onKeyup:le(l(E),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(g,{class:"w-[280px]",label:"数据状态"},{default:a(()=>[t($,{modelValue:l(d).status,"onUpdate:modelValue":e[3]||(e[3]=n=>l(d).status=n)},{default:a(()=>[t(m,{label:"全部",value:""}),t(m,{label:"正常",value:1}),t(m,{label:"停用",value:0})]),_:1},8,["modelValue"])]),_:1}),t(g,null,{default:a(()=>[t(c,{type:"primary",onClick:l(E)},{default:a(()=>[...e[7]||(e[7]=[u("查询",-1)])]),_:1},8,["onClick"]),t(c,{onClick:l(K)},{default:a(()=>[...e[8]||(e[8]=[u("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),t(F,{class:"!border-none mt-4",shadow:"never"},{default:a(()=>[D("div",null,[y((s(),r(c,{type:"primary",onClick:h},{icon:a(()=>[t(P,{name:"el-icon-Plus"})]),default:a(()=>[e[9]||(e[9]=u(" 添加数据 ",-1))]),_:1})),[[k,["setting.dict.dict_data/add"]]]),y((s(),r(c,{disabled:!l(w).length,type:"danger",onClick:e[4]||(e[4]=n=>x(l(w)))},{icon:a(()=>[t(P,{name:"el-icon-Delete"})]),default:a(()=>[e[10]||(e[10]=u(" 删除 ",-1))]),_:1},8,["disabled"])),[[k,["setting.dict.dict_data/delete"]]])]),y((s(),V("div",we,[D("div",null,[t(O,{data:l(f).lists,size:"large",onSelectionChange:U},{default:a(()=>[t(i,{type:"selection",width:"55"}),t(i,{label:"ID",prop:"id"}),t(i,{label:"数据名称",prop:"name","min-width":"120"}),t(i,{label:"数据值",prop:"value","min-width":"120"}),t(i,{label:"状态"},{default:a(({row:n})=>[n.status==1?(s(),r(T,{key:0},{default:a(()=>[...e[11]||(e[11]=[u("正常",-1)])]),_:1})):(s(),r(T,{key:1,type:"danger"},{default:a(()=>[...e[12]||(e[12]=[u("停用",-1)])]),_:1}))]),_:1}),t(i,{label:"备注",prop:"remark","min-width":"120","show-tooltip-when-overflow":""}),t(i,{label:"排序",prop:"sort"}),t(i,{label:"操作",width:"120",fixed:"right"},{default:a(({row:n})=>[y((s(),r(c,{link:"",type:"primary",onClick:H=>j(n)},{default:a(()=>[...e[13]||(e[13]=[u(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[k,["setting.dict.dict_data/edit"]]]),y((s(),r(c,{link:"",type:"danger",onClick:H=>x(n.id)},{default:a(()=>[...e[14]||(e[14]=[u(" 删除 ",-1)])]),_:1},8,["onClick"])),[[k,["setting.dict.dict_data/delete"]]])]),_:1})]),_:1},8,["data"])]),D("div",Ve,[t(z,{modelValue:l(f),"onUpdate:modelValue":e[5]||(e[5]=n=>re(f)?f.value=n:null),onChange:l(b)},null,8,["modelValue","onChange"])])])),[[G,l(f).loading]])]),_:1}),l(v)?(s(),r(ke,{key:0,ref_key:"editRef",ref:_,onSuccess:l(b),onClose:e[6]||(e[6]=n=>v.value=!1)},null,8,["onSuccess"])):pe("",!0)])}}});export{Re as default}; diff --git a/server/public/admin/assets/index-MpOBPDwT.js b/server/public/admin/assets/index-CCH9wiNb.js similarity index 97% rename from server/public/admin/assets/index-MpOBPDwT.js rename to server/public/admin/assets/index-CCH9wiNb.js index 472376546..c3175ec01 100644 --- a/server/public/admin/assets/index-MpOBPDwT.js +++ b/server/public/admin/assets/index-CCH9wiNb.js @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-DFFSwWxS.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-QAkeqQ9Q.js","assets/index-Dxvz9lb1.js","assets/index-B3vHLAW8.css","assets/perm-DOfZAzJJ.js","assets/DailyMatrix-BSZy3g0c.js","assets/picker-BDO86vcM.js","assets/index-BnfLT5cB.js","assets/index-B3imPWFk.css","assets/index-yD39j6dM.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-ClBYIwNX.js","assets/index-D0f1Mn00.css","assets/index-BU3OYnKm.js","assets/file-CefRfHD9.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-CE1isNg2.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-GXQTu6xF.js","assets/FollowupAudioReview-92Fgd7wW.js","assets/FollowupAudioField-BG0mRnT5.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-Bdp996ss.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-DFudUjln.js","assets/RecordingPlaybackBlock-GbWd6PMw.js","assets/RecordingVideoPlayer-grUPRDCj.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CafeXQX5.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-0TFZiCkF.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-C2wB-h-D.js","assets/doctor-8vo_5fa4.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-DDh0aI3_.js","assets/patient-Bz8-LT2R.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-BP2alDvZ.js","assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-B4rggqa1.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-Cis-_1uh.js","assets/index-Cf6ygfGC.js","assets/medicine-EUKQYFsM.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-DT7CSmCp.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]); -import{o as It,W as rl,R as ze,c7 as ul,bs as dl,ap as pl,bp as ml,q as _,r as h,v as t,D as s,s as d,bf as _l,be as fl,L as f,bd as cl,bb as gl,aA as bl,bc as dt,u as j,bh as vl,F as I,G as ee,O as c,bi as yl,K as xl,bj as Vl,ac as O,bn as kl,bk as hl,bl as wl,T as b,bm as Sl,P as v,C as Cl,c8 as Nl,bA as Ul,bo as Pl,c9 as $l,ca as El,bq as Dl,J as Rl,az as Al,cb as Ol,aw as we,B as Ll,aB as zl,b$ as Tl,c0 as Il,cc as Fl,ad as pt,I as jl,a1 as Ml,ae as ql,bB as Hl,bu as Wl,cd as Bl,al as Yl,aC as Se,M as g,p as Y,n as se,ce as Gl,cf as Kl}from"./.pnpm-CyuAWpdG.js";import{_ as Jl}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{u as Ql,c as Xl,j as w,n as Zl,_ as es}from"./index-Dxvz9lb1.js";import{g as ts,q as as,l as ls,r as mt,s as ss,t as ns,u as os,v as is,w as rs,x as us,y as ds,z as ps}from"./tcm-QAkeqQ9Q.js";import{m as ms}from"./medicine-EUKQYFsM.js";import{r as _s}from"./role-B1hWAn9n.js";import{u as fs}from"./usePaging-CghUEVfD.js";import{h as cs}from"./perm-DOfZAzJJ.js";import{_ as gs}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{M as Tt}from"./index-Cf6ygfGC.js";import{P as bs}from"./index-DT7CSmCp.js";const vs={class:"prescription-list"},ys={class:"pl-toolbar"},xs={class:"pl-toolbar__line"},Vs={class:"pl-toolbar__line pl-toolbar__line--second"},ks={class:"pl-toolbar__actions"},hs={class:"pl-table-head"},ws={class:"flex items-center gap-2"},Ss={class:"mt-3"},Cs={class:"font-medium"},Ns={class:"text-xs text-gray-400 mt-0.5"},Us={key:1,class:"text-gray-400 text-sm"},Ps={class:"font-medium"},$s={class:"text-xs text-gray-500 mt-0.5"},Es={class:"flex flex-col gap-1"},Ds={class:"flex flex-wrap items-center gap-1"},Rs={key:0,class:"text-xs text-gray-500"},As=["title"],Os={key:1,class:"text-gray-400"},Ls={class:"font-medium"},zs={class:"text-xs text-gray-500 mt-0.5"},Ts={class:"text-sm"},Is={class:"flex mt-2 justify-end"},Fs={key:0,class:"rx-wrap"},js={class:"rx-toolbar"},Ms={key:0,class:"rx-status rx-status-danger"},qs={key:1,class:"rx-status rx-status-danger"},Hs={key:0,class:"mt-1"},Ws={key:2,class:"rx-status rx-status-danger"},Bs={key:0,class:"mt-1"},Ys={key:4,class:"rx-audit"},Gs={key:0},Ks={key:0,class:"ml-2 text-gray-400"},Js={key:1,class:"mt-1"},Qs={class:"text-sm mt-1"},Xs={key:0,class:"text-sm mt-2 text-gray-800 font-medium"},Zs={key:5,class:"mb-3 flex flex-wrap items-center gap-2 pl-[120px]"},en={class:"text-xs text-gray-400"},tn={class:"w-full"},an={class:"flex flex-wrap items-center gap-2"},ln={key:0,class:"flex items-center gap-2 flex-wrap mt-2 text-xs text-[var(--el-color-danger)]"},sn={class:"herb-formula-block mt-3"},nn={class:"herb-formula-block__head"},on={key:1,class:"text-gray-400 text-xs"},rn={class:"herb-formula-block mt-4"},un={class:"herb-formula-block__head"},dn={key:1,class:"text-gray-400 text-xs"},pn={class:"text-sm mt-1 leading-relaxed"},mn={key:0,class:"mb-1.5"},_n={class:"font-mono text-primary"},fn={class:"mb-1.5"},cn={class:"whitespace-pre-wrap"},gn={key:1,class:"text-gray-600"},bn={class:"signature-pad-wrap"},vn={class:"signature-actions"},yn={class:"text-gray-700"},xn={class:"create-order-dialog__inner"},Vn={key:0,class:"create-order-rx-card"},kn={class:"create-order-rx-card__head"},hn={class:"create-order-rx-card__meta"},wn={class:"create-order-rx-card__id"},Sn={key:0,class:"create-order-rx-card__sn"},Cn={class:"create-order-rx-card__patient"},Nn={class:"create-order-step-lead"},Un={class:"create-order-step-panel"},Pn={class:"create-order-step-panel"},$n={class:"flex items-center gap-1 w-full"},En={class:"flex flex-col gap-0.5",style:{"line-height":"normal"}},Dn={class:"flex items-center justify-between"},Rn={class:"font-medium text-[13px] text-gray-800"},An={class:"text-orange-500 font-medium ml-4"},On={class:"flex items-center justify-between text-xs text-gray-400 mt-1"},Ln={class:"truncate pr-2"},zn={class:"shrink-0"},Tn={class:"create-order-pay-hint text-gray-500"},In={class:"text-amber-600 font-medium"},Fn={class:"create-order-step-panel"},jn={class:"create-order-deposit-bar__cell"},Mn={class:"create-order-deposit-bar__sub"},qn={class:"create-order-deposit-bar__cell"},Hn={class:"create-order-deposit-bar__sub"},Wn={class:"create-order-footer"},Bn={class:"create-order-footer__hint"},Yn={class:"create-order-footer__step"},Gn={key:0,class:"create-order-footer__warn"},Kn={class:"create-order-footer__actions"},Jn={class:"mb-4 flex gap-3"},Qn={class:"mb-3 flex flex-wrap items-center gap-x-4 gap-y-2"},Xn={key:0},Zn={key:1,class:"text-gray-400"},eo={class:"flex justify-end mt-4"},to={class:"mt-3 flex flex-wrap items-center gap-x-4 gap-y-2"},ao=It({name:"prescriptionList"}),lo=It({...ao,setup(so){const Ft=Bl(()=>Yl(()=>import("./edit-DFFSwWxS.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65])));function Ce(a="浓缩水丸"){return a==="饮片"?{dosage_amount:50,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:a==="浓缩水丸"?{dosage_amount:5,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:{dosage_amount:1,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}}function jt(a,e){const o=Ce(e);if(!a||typeof a!="object")return{...o};const r=a;return{dosage_amount:r.dosage_amount!==null&&r.dosage_amount!==void 0&&r.dosage_amount!==""?Number(r.dosage_amount):o.dosage_amount,dosage_bag_count:r.dosage_bag_count!=null?Number(r.dosage_bag_count)||1:o.dosage_bag_count,need_decoction:r.need_decoction===1||r.need_decoction===!0,bags_per_dose:r.bags_per_dose!=null?Number(r.bags_per_dose)||1:o.bags_per_dose,times_per_day:r.times_per_day!=null?Number(r.times_per_day)||3:o.times_per_day,usage_days:r.usage_days!=null?Number(r.usage_days)||7:o.usage_days,prescription_name:String(r.prescription_name??"").trim()}}function J(a){return a==="辅方"?"辅方":"主方"}function Te(a){const e={name:String((a==null?void 0:a.name)??"").trim(),dosage:Number(a==null?void 0:a.dosage)||0,formula_type:J(a==null?void 0:a.formula_type)},o=Number((a==null?void 0:a.medicine_id)??(a==null?void 0:a.id)??0);return Number.isInteger(o)&&o>0&&(e.medicine_id=o),((a==null?void 0:a.locked)===!0||(a==null?void 0:a.locked)===1)&&(e.locked=!0),e}function Ie(a){return a?Array.isArray(a)?a.map(e=>Te(e)):[]:[]}const de=Ql(),_t=rl();function Mt(){const a=_t.getRoutes().find(e=>{var o;return((o=e.meta)==null?void 0:o.perms)==="tcm.prescriptionOrder/lists"});a!=null&&a.path?_t.push(a.path):w.msgWarning("未配置「处方业务订单」菜单,请在权限管理中执行菜单 SQL 或手动添加路由")}const S=Se({sn:"",patient_name:"",creator_ids:[],audit_filter:"all",source_filter:"all",start_time:"",end_time:""}),Fe=g([]),G=g("all"),Q=g(!1),D=g("add"),je=g(!1),te=g(),K=g(),pe=g(null),ne=560,oe=168,k=g(null),Me=g(!1),ft=g([]),me=g(!1),ct=g(0),ie=g(""),Ne=g(!1),_e=g(!1),qe=g(!1),He=g(),$=Se({id:0,patient_name:"",gender:1,phone:""}),qt={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],phone:[{required:!0,message:"请输入手机号",trigger:"blur"}]};function Ht(a){$.id=Number(a.id)||0,$.patient_name=String(a.patient_name??"").trim();const e=Number(a.gender);$.gender=e===0||e===1?e:1,$.phone=String(a.phone??"").trim(),_e.value=!0}function Wt(){var a;$.id=0,$.patient_name="",$.gender=1,$.phone="",(a=He.value)==null||a.clearValidate()}async function Bt(){const a=He.value;if(a){try{await a.validate()}catch{return}qe.value=!0;try{await as({id:$.id,patient_name:$.patient_name.trim(),phone:$.phone.trim(),gender:$.gender}),w.msgSuccess("已保存"),_e.value=!1,Z()}catch(e){const o=e&&typeof e=="object"&&"msg"in e?String(e.msg):"";w.msgError(o||"保存失败")}finally{qe.value=!1}}}const fe=g(!1),R=g(0),Yt=Y(()=>["请核对诊单患者并填写完整收货信息,便于发货与物流联系。","按需填写服务相关信息,并选择本诊单下需要关联的支付单。","确认费用类别与订单金额;提交前请对照定金门槛是否已满足。"][R.value]??""),Gt=["patient_id","recipient_name","recipient_phone","region","shipping_address"],B=g(null),ce=g(),We=g(!1),Be=g(!1),X=g([]),re=g([]),Ye=g(!1),E=g(0);function ue(a){const e=Number(a);return Number.isNaN(e)?"—":e.toFixed(2)}function gt(a){return{1:"挂号费",2:"问诊费",3:"药品费用",4:"首付",5:"尾款",6:"其他"}[Number(a)]||"未知"}const p=Se({patient_id:"",recipient_name:"",recipient_phone:"",region:[],shipping_address:"",is_follow_up:0,medication_days:void 0,prev_staff:"",service_channel:"",service_package:[],express_company:"auto",tracking_number:"",ship_mode:"gancao",fee_type:3,amount:0,internal_cost:void 0,remark_extra:"",remark_assistant:"",pay_order_ids:[]}),Kt=Y(()=>cs(["tcm.prescriptionOrder/setShipMode"])),ge=g([]),Ge=g([]),Jt=a=>a.map(e=>{var o;return{name:e.province,code:e.code,children:((o=e.citys)==null?void 0:o.map(r=>{var m;return{name:r.city,code:r.code,children:((m=r.areas)==null?void 0:m.map(u=>({name:u.area,code:u.code})))||[]}}))||[]}}),Qt=async()=>{try{console.log("开始加载省市区数据...");const e=await fetch("https://cos.zhenyangtang.com.cn/area/ChinaCitys.json");if(console.log("响应状态:",e.status),!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const o=await e.json();console.log("加载的数据条数:",o==null?void 0:o.length),ge.value=Jt(o),console.log("regionOptions 已设置,条数:",ge.value.length)}catch(a){console.error("加载省市区数据失败:",a),ge.value=[{name:"四川省",children:[{name:"成都市",children:[{name:"锦江区"},{name:"青羊区"},{name:"金牛区"},{name:"武侯区"},{name:"成华区"},{name:"龙泉驿区"},{name:"青白江区"},{name:"新都区"},{name:"温江区"},{name:"双流区"}]},{name:"绵阳市",children:[{name:"涪城区"},{name:"游仙区"},{name:"安州区"}]}]},{name:"北京市",children:[{name:"北京市",children:[{name:"东城区"},{name:"西城区"},{name:"朝阳区"},{name:"丰台区"},{name:"海淀区"}]}]},{name:"上海市",children:[{name:"上海市",children:[{name:"黄浦区"},{name:"徐汇区"},{name:"长宁区"},{name:"静安区"},{name:"普陀区"}]}]},{name:"广东省",children:[{name:"广州市",children:[{name:"荔湾区"},{name:"越秀区"},{name:"海珠区"},{name:"天河区"},{name:"白云区"}]},{name:"深圳市",children:[{name:"罗湖区"},{name:"福田区"},{name:"南山区"},{name:"宝安区"}]}]}],console.log("使用后备数据,条数:",ge.value.length)}},Xt=async()=>{try{const a=await Zl({type:"server_order"});Ge.value=((a==null?void 0:a.server_order)||[]).filter(e=>e.status!==0)}catch{Ge.value=[]}},Zt=a=>{console.log("选择的省市区:",a)},Ke=Y(()=>{const a=new Set(p.pay_order_ids.map(o=>Number(o)));let e=0;for(const o of re.value)a.has(Number(o.id))&&(e+=Number(o.amount)||0);return Math.round(e*100)/100}),ea=Y(()=>{const a=E.value;return a>0?Math.round(a*100)/100:0}),ta=Y(()=>{const a={patient_id:[{required:!0,message:"请选择诊单患者",trigger:"change"}],recipient_name:[{required:!0,message:"请输入收货人",trigger:"blur"}],recipient_phone:[{required:!0,message:"请输入收货手机",trigger:"blur"}],region:[{required:!0,message:"请选择省/市/区",trigger:"change",type:"array"}],shipping_address:[{required:!0,message:"请输入收货地址",trigger:"blur"}],fee_type:[{required:!0,message:"请选择费用类别",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"},{validator:(e,o,r)=>{const m=E.value,u=Number(o);if(m>0&&(!Number.isFinite(u)||u0){const e=`已开启关联支付门槛(¥${ue(E.value)}),请至少选择一笔支付单`;a.pay_order_ids=[{type:"array",required:!0,min:1,message:e,trigger:"change"}]}return a});function bt(){var a;R.value=0,p.patient_id="",p.recipient_name="",p.recipient_phone="",p.shipping_address="",p.is_follow_up=0,p.medication_days=void 0,p.prev_staff="",p.service_channel="",p.service_package=[],p.express_company="auto",p.tracking_number="",p.ship_mode="gancao",p.fee_type=3,p.amount=0,p.internal_cost=void 0,p.remark_extra="",p.remark_assistant="",p.pay_order_ids=[],X.value=[],re.value=[],E.value=0,B.value=null,(a=ce.value)==null||a.clearValidate()}function aa(){const a=E.value;if(a<=0)return;const e=Math.round(a*100)/100;Number(p.amount)p.patient_id,()=>{p.pay_order_ids=[],vt()});async function la(a){var m;if(Number(a==null?void 0:a.void_status)===1){w.msgWarning("已作废处方不可创建业务订单");return}bt(),B.value=a;const e=Number(a.diagnosis_id)||0;e>0&&(p.patient_id=e,p.recipient_name=a.patient_name||"",p.recipient_phone=String(a.phone||"").trim(),X.value=[{id:e,patient_name:a.patient_name||"",phone:String(a.phone||"").trim()}]);const o=Number(a.usage_days);o>0&&(p.medication_days=o),fe.value=!0,vt();const r=a.id;if(r&&!p.recipient_phone)try{const u=await mt({id:r}),i=u&&typeof u.phone=="string"?u.phone.trim():"";if(i&&((m=B.value)==null?void 0:m.id)===r){p.recipient_phone=i;const x=X.value[0];x&&Number(x.id)===e&&(x.phone=i)}}catch{}}async function sa(a){if(!a){X.value=[];return}try{Be.value=!0;const e=await searchPatientsAPI({keyword:a,page_no:1,page_size:10});X.value=(e==null?void 0:e.lists)||[]}catch{X.value=[]}finally{Be.value=!1}}function na(a){const e=X.value.find(o=>Number(o.id)===Number(a));e&&(p.recipient_name=e.patient_name||"",p.recipient_phone=e.phone||"")}function oa(){R.value>0&&(R.value-=1)}async function ia(){const a=ce.value;if(a)try{R.value===0?await a.validateField([...Gt]):R.value===1&&E.value>0&&await a.validateField(["pay_order_ids"]),R.value<2&&(R.value+=1)}catch{}}async function ra(){if(!(!ce.value||!B.value)&&R.value===2)try{await ce.value.validate(),We.value=!0;const a=Number(p.patient_id),e={prescription_id:B.value.id,diagnosis_id:a,recipient_name:p.recipient_name,recipient_phone:p.recipient_phone,shipping_address:p.shipping_address,is_follow_up:p.is_follow_up,prev_staff:p.prev_staff||"",service_channel:p.service_channel||"",service_package:Array.isArray(p.service_package)&&p.service_package.length>0?p.service_package.join(","):"",express_company:p.express_company||"auto",tracking_number:p.tracking_number||"",ship_mode:p.ship_mode,fee_type:p.fee_type,amount:p.amount,remark_extra:p.remark_extra||"",remark_assistant:p.remark_assistant||""};p.region&&p.region.length>=3&&(e.shipping_province=p.region[0],e.shipping_city=p.region[1],e.shipping_district=p.region[2]),p.medication_days!=null&&p.medication_days>0&&(e.medication_days=p.medication_days),p.internal_cost!=null&&p.internal_cost>0&&(e.internal_cost=p.internal_cost),p.pay_order_ids.length&&(e.pay_order_ids=[...p.pay_order_ids]);const o=await ss(e),r=(o==null?void 0:o.data)??o,m=r==null?void 0:r.order_no;w.msgSuccess(m?`业务订单已创建,单号:${m}`:"业务订单已创建"),fe.value=!1,Z()}catch(a){console.error(a)}finally{We.value=!1}}const Ue=g(!1),Pe=g(!1),yt=Y(()=>{const a=Ue.value,e=Pe.value;return!a&&!e?"":a&&e?"当前处方已作废且已驳回。保存后将取消作废、清除驳回,并重新进入待审核。":a?"当前为已作废处方。保存后将取消作废,并重新进入待审核。":"当前为已驳回处方。保存后将清除驳回,并重新进入待审核。"}),ua=Y(()=>n.herbs.map((a,e)=>({herb:a,index:e})).filter(({herb:a})=>J(a.formula_type)==="主方")),xt=Y(()=>n.herbs.map((a,e)=>({herb:a,index:e})).filter(({herb:a})=>J(a.formula_type)==="辅方")),M=Y(()=>n.herbs.some(a=>a.locked===!0)),Vt=g(null),Je=g(!1);function da(){const a=Vt.value;return(a==null?void 0:a.paperEl)??null}function pa(){k.value&&se(()=>{try{window.print()}catch(a){console.error(a)}})}async function ma(){var e,o,r;const a=da();if(!a){w.msgWarning("处方笺尚未渲染完成");return}Je.value=!0;try{await se(),await new Promise(z=>requestAnimationFrame(()=>z(null))),await new Promise(z=>setTimeout(z,250));const m=await Gl(a,{scale:2,backgroundColor:"#ffffff",useCORS:!0,allowTaint:!1,logging:!1,windowWidth:a.scrollWidth,windowHeight:a.scrollHeight,width:a.scrollWidth,height:a.scrollHeight,onclone:(z,L)=>{L instanceof HTMLElement&&(L.querySelectorAll(".rx-notice, .rx-notice-text, .rx-notice-meta").forEach(U=>{U.style.lineHeight="1.95",U.style.overflow="visible"}),L.querySelectorAll(".rx-notice").forEach(U=>{U.style.padding="10px 12px"}),L.querySelectorAll(".rx-info-cell, .rx-info-cell .rx-key, .rx-info-cell .rx-val").forEach(U=>{U.style.lineHeight="1.95",U.style.overflow="visible"}),L.querySelectorAll(".rx-info-cell").forEach(U=>{U.style.padding="10px 12px"}),L.querySelectorAll(".rx-herb-cell").forEach(U=>{U.style.lineHeight="2.5"}),L.querySelectorAll(".rx-herbs").forEach(U=>{U.style.rowGap="12px"}),L.querySelectorAll(".rx-text").forEach(U=>{U.style.lineHeight="2.1"}),L.querySelectorAll(".rx-bot-meta-val, .rx-hospital-line, .rx-bot-cell").forEach(U=>{U.style.overflow="visible",U.style.lineHeight="1.85"}),L.querySelectorAll(".rx-hospital-row").forEach(U=>{U.style.paddingTop="12px",U.style.paddingBottom="14px"}))}}),u=m.toDataURL("image/jpeg",.95),i=new Kl({unit:"mm",format:"a4",orientation:"portrait"}),x=210,q=297,y=x,le=m.height*y/m.width;if(le<=q)i.addImage(u,"JPEG",0,0,y,le);else{let z=le,L=0;for(;z>0;)i.addImage(u,"JPEG",0,L,y,le),z-=q,L-=q,z>0&&i.addPage()}const it=((e=k.value)==null?void 0:e.patient_name)||"处方",N=((o=k.value)==null?void 0:o.id)||"",A=((r=k.value)==null?void 0:r.prescription_date)||"";i.save(`处方-${it}${A?"-"+A:""}${N?"-"+N:""}.pdf`)}catch(m){console.error("下载处方 PDF 失败:",m),w.msgError((m==null?void 0:m.message)||"下载失败,请重试")}finally{Je.value=!1}}const n=Se({id:0,prescription_type:"浓缩水丸",dosage_amount:1,dosage_unit:"g",dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,patient_name:"",gender:1,age:0,visit_no:"",prescription_date:"",tongue:"",tongue_image:"",pulse:"",pulse_condition:"",clinical_diagnosis:"",herbs:[],dose_count:7,dose_unit:"剂",usage_days:7,usage_instruction:"",usage_time:"饭后",usage_way:"温水送服",dietary_taboo:[],usage_notes:"",doctor_name:"",doctor_signature:"",is_shared:0,visible_role_ids:[],audit_status:1,audit_time:null,audit_by_name:"",audit_remark:"",diagnosis_id:0,creator_id:0,is_system_auto:0,business_prescription_audit_rejected:0,business_prescription_audit_remark:"",times_per_day:2,aux_usage:Ce("浓缩水丸")}),P=Se({loading:!1,orderNo:"",medicationDays:null,remarkAssistant:""});function _a(){P.loading=!1,P.orderNo="",P.medicationDays=null,P.remarkAssistant=""}async function fa(a){if(P.orderNo="",P.medicationDays=null,P.remarkAssistant="",!a){P.loading=!1;return}P.loading=!0;try{const e=await ps({page_no:1,page_size:5,prescription_id:a}),o=e==null?void 0:e.lists,r=Array.isArray(o)&&o.length?o[0]:null;if(r){P.orderNo=String(r.order_no||"").trim();const m=r.medication_days,u=m!=null&&String(m).trim()!==""?Number(m):NaN;P.medicationDays=Number.isFinite(u)&&u>0?u:null,P.remarkAssistant=String(r.remark_assistant||"").trim()}}catch{}finally{P.loading=!1}}const kt=g(null);function ca(){var e;const a=Number(n.diagnosis_id);if(!a){w.msgWarning("本处方未关联诊单,无法查看诊单患者信息");return}(e=kt.value)==null||e.openViewOnly(a)}const $e=g(!1);ze(()=>n.prescription_type,a=>{$e.value||(a==="浓缩水丸"?(n.dosage_unit="g",n.dosage_amount=1,n.dosage_bag_count=1,n.need_decoction=!1,n.bags_per_dose=1):a==="饮片"?(n.dosage_unit="ml",n.dosage_amount=50,n.dosage_bag_count=1,n.bags_per_dose=1):(n.dosage_unit="g",n.dosage_amount=void 0,n.dosage_bag_count=1,n.need_decoction=!1,n.bags_per_dose=1),Object.assign(n.aux_usage,Ce(a)))});const ga={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],prescription_date:[{required:!0,message:"请选择处方日期",trigger:"change"}],clinical_diagnosis:[{required:!0,message:"请输入临床诊断",trigger:"blur"}],dose_count:[{required:!0,message:"请输入剂数",trigger:"blur"}],doctor_name:[{required:!0,message:"请输入医师姓名",trigger:"blur"}],doctor_signature:[{required:!0,validator:(a,e,o)=>{!e||!String(e).trim()?o(new Error("请使用电子签名板手写医师签名")):o()},trigger:"change"}]};async function ba(a){const{audit_filter:e,source_filter:o,creator_ids:r,...m}=a,u={...m,audit_filter:e==="all"||e===""?"":e,source_filter:o==="all"||o===""||o===void 0?"":o};return Array.isArray(r)&&r.length>0&&(u.creator_ids=r),ns(u)}const{pager:be,getLists:Z,resetPage:ae}=fs({fetchFun:ba,params:S});function ht(a){return String(a).padStart(2,"0")}function wt(a){const e=a.getFullYear(),o=ht(a.getMonth()+1),r=ht(a.getDate()),m=`${e}-${o}-${r}`;return{start:`${m} 00:00:00`,end:`${m} 23:59:59`}}function va(a){const e=String(a??"all");if(e==="all")S.start_time="",S.end_time="";else{const o=new Date,r=new Date(o.getFullYear(),o.getMonth(),o.getDate());e==="yesterday"?r.setDate(r.getDate()-1):e==="before_yesterday"&&r.setDate(r.getDate()-2);const{start:m,end:u}=wt(r);S.start_time=m,S.end_time=u}ae()}function ya(){ae()}function xa(){ae()}let Qe=!1;ze(()=>[S.start_time,S.end_time],()=>{if(Qe)return;const a=S.start_time,e=S.end_time;if(!a&&!e){G.value="all";return}if(!a||!e){G.value="";return}const o=new Date,r=m=>{const u=new Date(o.getFullYear(),o.getMonth(),o.getDate()-m),{start:i,end:x}=wt(u);return a===i&&e===x};r(0)?G.value="today":r(1)?G.value="yesterday":r(2)?G.value="before_yesterday":G.value=""});function Va(a){if(a==null||a==="")return"—";if(typeof a=="number"&&a>=1e9&&a<1e11)return Ee(a);const e=String(a).trim();return/^\d{10}$/.test(e)?Ee(parseInt(e,10)):e}function ka(){Qe=!0,G.value="all",S.sn="",S.patient_name="",S.creator_ids=[],S.audit_filter="all",S.source_filter="all",S.start_time="",S.end_time="",Qe=!1,ae()}function ha(a){return a===0?"待审核":a===2?"已驳回":"已通过"}function wa(a){return a===0?"warning":a===2?"danger":"success"}function Sa(a){return Number(a.business_prescription_audit_rejected)===1?"已驳回":ha(a.audit_status)}function Ca(a){return Number(a.business_prescription_audit_rejected)===1?"danger":wa(a.audit_status)}function St(a){const e=[];if(Number(a.business_prescription_audit_rejected)===1){const o=String(a.business_prescription_audit_remark||"").trim();e.push(o?`业务订单审核驳回意见:${o}`:"业务订单审核驳回意见:—")}if(Number(a.audit_status)===2){const o=String(a.audit_remark||"").trim();e.push(o?`消费者处方审核驳回意见:${o}`:"消费者处方审核驳回意见:—")}return e}function Ct(a){return Number(a.audit_status)===1&&Number(a.void_status)!==1}function Ee(a){if(!a)return"";const e=new Date(a*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}function Na(a){return a?Ee(a):"—"}function Ua(a){var m;const e=n.herbs[a];if(!e)return`第${a+1}味`;const o=J(e.formula_type);let r=0;for(let u=0;u<=a;u++)J((m=n.herbs[u])==null?void 0:m.formula_type)===o&&r++;return`${o}第${r}味`}function Pa(a){if(Number(a==null?void 0:a.has_prescription_order)!==1)return[];const o=Ie(a==null?void 0:a.herbs).map(i=>String((i==null?void 0:i.name)||"").trim()).filter(Boolean),r=[];if(!o.length)return r.push("请开方,当前处方药材为空白"),r;const m=new Set,u=new Set;for(const i of o){const x=i.replace(/\s+/g,"").toLowerCase();x&&(m.has(x)?u.add(i):m.add(x))}return u.size>0&&r.push(`已有关联业务订单,当前处方存在重复药材:${Array.from(u).join("、")}`),r}function $a(a){return{...a,herbs:Ie(a==null?void 0:a.herbs)}}function Ea(){k.value=null,pe.value=null}function Nt(a){const e=K.value;if(!e)return{x:0,y:0};const o=e.getBoundingClientRect();if(o.width<=0||o.height<=0)return{x:0,y:0};const r=(a.clientX-o.left)/o.width*ne,m=(a.clientY-o.top)/o.height*oe;return{x:Math.max(0,Math.min(ne,r)),y:Math.max(0,Math.min(oe,m))}}function Xe(){const a=K.value;a&&(n.doctor_signature=a.toDataURL("image/png")),se(()=>{var e;(e=te.value)==null||e.validateField("doctor_signature").catch(()=>{})})}function Da(a){if(a.pointerType==="mouse"&&a.button!==0)return;const e=K.value,o=e==null?void 0:e.getContext("2d");if(!e||!o)return;e.setPointerCapture(a.pointerId),pe.value=a.pointerId;const{x:r,y:m}=Nt(a);o.beginPath(),o.moveTo(r,m)}function Ra(a){var m;if(pe.value!==a.pointerId)return;const e=(m=K.value)==null?void 0:m.getContext("2d");if(!e)return;const{x:o,y:r}=Nt(a);e.lineTo(o,r),e.stroke(),e.beginPath(),e.moveTo(o,r)}function Ut(a){if(pe.value!==a.pointerId)return;pe.value=null;const e=K.value;if(e)try{e.releasePointerCapture(a.pointerId)}catch{}Xe()}function Aa(){Pt(),n.doctor_signature="",se(()=>{var a;(a=te.value)==null||a.validateField("doctor_signature").catch(()=>{})})}function Pt(){const a=K.value;if(!a)return;const e=Math.min(typeof window<"u"&&window.devicePixelRatio||1,2.5);a.style.width=`${ne}px`,a.style.height=`${oe}px`,a.width=Math.round(ne*e),a.height=Math.round(oe*e);const o=a.getContext("2d");o&&(o.setTransform(1,0,0,1,0,0),o.scale(e,e),o.fillStyle="#fff",o.fillRect(0,0,ne,oe),o.strokeStyle="#333",o.lineWidth=2.5,o.lineCap="round",o.lineJoin="round")}function $t(){D.value!=="view"&&se(()=>{setTimeout(()=>{Pt();const a=n.doctor_signature;if(a&&String(a).trim().startsWith("data:image")&&K.value){const e=new Image;e.onload=()=>{const o=K.value,r=o==null?void 0:o.getContext("2d");!o||!r||(r.drawImage(e,0,0,ne,oe),Xe())},e.onerror=()=>{Xe()},e.src=a}},100)})}function Oa(a){const e=a==null?void 0:a.visible_role_ids;return Array.isArray(e)?e.map(o=>Number(o)).filter(o=>!Number.isNaN(o)):typeof e=="string"&&e?e.split(",").map(o=>parseInt(o.trim(),10)).filter(o=>!Number.isNaN(o)):[]}function La(a){ct.value=a.id,ie.value="",me.value=!0}async function Et(a){if(a==="reject"&&!ie.value.trim()){w.msgError("驳回时请填写审核意见");return}Ne.value=!0;try{const e=await os({id:ct.value,action:a,remark:ie.value.trim()});w.msgSuccess(a==="reject"?"已驳回并作废处方":"审核通过"),e&&e.wecom_notify_ok===!1&&e.wecom_notify_hint&&w.msgWarning(e.wecom_notify_hint),me.value=!1,Z()}catch{}finally{Ne.value=!1}}async function za(){try{const a=await _s({});ft.value=Array.isArray(a)?a:[]}catch{ft.value=[]}}const ve=g(!1),Ze=g(!1),et=g([]),De=g(""),Re=g(""),ye=g("replace"),xe=g(1),tt=g(15),at=g(0),Dt=Y(()=>{var o;const a=Number(n.creator_id);if(a>0)return a;const e=Number((o=de.userInfo)==null?void 0:o.id);return e>0?e:0});function Ta(a){return String(a||"").trim().toLowerCase()}function Rt(){const a=new Map;for(const e of n.herbs){const o=Ta(e==null?void 0:e.name);o&&a.set(o,(a.get(o)??0)+1)}return[...a.entries()].filter(([,e])=>e>1).map(([e])=>e)}const Ae=async()=>{const a=Dt.value;if(!a){w.msgWarning("无法确定开方医师,无法加载处方库"),et.value=[],at.value=0;return}Ze.value=!0;try{const e=await is({page_no:xe.value,page_size:tt.value,prescription_name:De.value,formula_type:Re.value,prescribing_creator_id:a});et.value=(e==null?void 0:e.lists)||[],at.value=(e==null?void 0:e.count)||0}catch(e){console.error(e),w.msgError("加载处方库失败")}finally{Ze.value=!1}},Oe=()=>{xe.value=1,Ae()},Ia=()=>{if(!Dt.value){w.msgWarning("无法确定开方医师,无法从处方库导入");return}ve.value=!0},Fa=a=>{At(a)},At=a=>{if(!a.herbs||a.herbs.length===0){w.msgWarning("该处方没有药材信息");return}const e=J(a.formula_type),o=Number(a==null?void 0:a.disable_edit)===1,r=JSON.parse(JSON.stringify(a.herbs)).map(u=>{const i=Te(u);return i.formula_type=e,o?i.locked=!0:delete i.locked,i});if(ye.value==="replace"){const u=n.herbs.filter(i=>J(i.formula_type)!==e);n.herbs=[...u,...r]}else n.herbs.push(...r);e==="辅方"&&(n.aux_usage.prescription_name=String(a.prescription_name??"").trim());const m=ye.value==="append"?"(已追加)":"";Rt().length?w.msgWarning(`已导入处方「${a.prescription_name}」${m},共${r.length}味药材。存在重复药名,请合并剂量或删除多余行`):w.msgSuccess(`已导入处方「${a.prescription_name}」${m},共${r.length}味药材`),ve.value=!1};ze(ve,a=>{a&&(De.value="",Re.value="",ye.value="replace",xe.value=1,Ae())});const Ve=g(!1),ke=g(""),lt=g("replace"),st=g(!1),ja=/^(用法|用量|医嘱|忌口|水煎服|空腹|饭后|温水|内服|外用|备注|顿服|分服|ml|毫升|[×xX]\s*\d)/;function Ma(a){let e=a.replace(/\r\n/g,` +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-BuMVMky1.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-BSADvQNg.js","assets/index-Bkarz3gO.js","assets/index-deCJ4ja-.css","assets/perm-CHCBwnFR.js","assets/DailyMatrix-BkYJBu_D.js","assets/picker-BTh9eW9u.js","assets/index-CS5Wg0xx.js","assets/index-B3imPWFk.css","assets/index-oRynN2pP.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-Cqk_cdo9.js","assets/index-D0f1Mn00.css","assets/index-BJZwRQXE.js","assets/file-BjbV-eNx.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-VonOdKxB.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-BQogJqk-.js","assets/FollowupAudioReview-BDRNtxGL.js","assets/FollowupAudioField-Dz9Csp0b.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-2_yvVfnZ.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-PGnYdg0x.js","assets/RecordingPlaybackBlock-DDHsYga7.js","assets/RecordingVideoPlayer-B0kkGDId.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CO99W60y.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-mqnmyStx.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-aR2VA9u1.js","assets/doctor-DBvYeWd3.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-D83GYvN5.js","assets/patient-B_ifBl-W.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-Dk7f29yf.js","assets/PrescriptionOrderDetailDrawer-CX7YbddA.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-C_PSjf1W.js","assets/index-DAIDDabA.js","assets/medicine-DPIOyHj8.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CTRSsggc.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]); +import{o as It,W as rl,R as ze,c7 as ul,bs as dl,ap as pl,bp as ml,q as _,r as h,v as t,D as s,s as d,bf as _l,be as fl,L as f,bd as cl,bb as gl,aA as bl,bc as dt,u as j,bh as vl,F as I,G as ee,O as c,bi as yl,K as xl,bj as Vl,ac as O,bn as kl,bk as hl,bl as wl,T as b,bm as Sl,P as v,C as Cl,c8 as Nl,bA as Ul,bo as Pl,c9 as $l,ca as El,bq as Dl,J as Rl,az as Al,cb as Ol,aw as we,B as Ll,aB as zl,b$ as Tl,c0 as Il,cc as Fl,ad as pt,I as jl,a1 as Ml,ae as ql,bB as Hl,bu as Wl,cd as Bl,al as Yl,aC as Se,M as g,p as Y,n as se,ce as Gl,cf as Kl}from"./.pnpm-CyuAWpdG.js";import{_ as Jl}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{u as Ql,c as Xl,j as w,n as Zl,_ as es}from"./index-Bkarz3gO.js";import{g as ts,q as as,l as ls,r as mt,s as ss,t as ns,u as os,v as is,w as rs,x as us,y as ds,z as ps}from"./tcm-BSADvQNg.js";import{m as ms}from"./medicine-DPIOyHj8.js";import{r as _s}from"./role-fMbnnhKr.js";import{u as fs}from"./usePaging-CghUEVfD.js";import{h as cs}from"./perm-CHCBwnFR.js";import{_ as gs}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{M as Tt}from"./index-DAIDDabA.js";import{P as bs}from"./index-CTRSsggc.js";const vs={class:"prescription-list"},ys={class:"pl-toolbar"},xs={class:"pl-toolbar__line"},Vs={class:"pl-toolbar__line pl-toolbar__line--second"},ks={class:"pl-toolbar__actions"},hs={class:"pl-table-head"},ws={class:"flex items-center gap-2"},Ss={class:"mt-3"},Cs={class:"font-medium"},Ns={class:"text-xs text-gray-400 mt-0.5"},Us={key:1,class:"text-gray-400 text-sm"},Ps={class:"font-medium"},$s={class:"text-xs text-gray-500 mt-0.5"},Es={class:"flex flex-col gap-1"},Ds={class:"flex flex-wrap items-center gap-1"},Rs={key:0,class:"text-xs text-gray-500"},As=["title"],Os={key:1,class:"text-gray-400"},Ls={class:"font-medium"},zs={class:"text-xs text-gray-500 mt-0.5"},Ts={class:"text-sm"},Is={class:"flex mt-2 justify-end"},Fs={key:0,class:"rx-wrap"},js={class:"rx-toolbar"},Ms={key:0,class:"rx-status rx-status-danger"},qs={key:1,class:"rx-status rx-status-danger"},Hs={key:0,class:"mt-1"},Ws={key:2,class:"rx-status rx-status-danger"},Bs={key:0,class:"mt-1"},Ys={key:4,class:"rx-audit"},Gs={key:0},Ks={key:0,class:"ml-2 text-gray-400"},Js={key:1,class:"mt-1"},Qs={class:"text-sm mt-1"},Xs={key:0,class:"text-sm mt-2 text-gray-800 font-medium"},Zs={key:5,class:"mb-3 flex flex-wrap items-center gap-2 pl-[120px]"},en={class:"text-xs text-gray-400"},tn={class:"w-full"},an={class:"flex flex-wrap items-center gap-2"},ln={key:0,class:"flex items-center gap-2 flex-wrap mt-2 text-xs text-[var(--el-color-danger)]"},sn={class:"herb-formula-block mt-3"},nn={class:"herb-formula-block__head"},on={key:1,class:"text-gray-400 text-xs"},rn={class:"herb-formula-block mt-4"},un={class:"herb-formula-block__head"},dn={key:1,class:"text-gray-400 text-xs"},pn={class:"text-sm mt-1 leading-relaxed"},mn={key:0,class:"mb-1.5"},_n={class:"font-mono text-primary"},fn={class:"mb-1.5"},cn={class:"whitespace-pre-wrap"},gn={key:1,class:"text-gray-600"},bn={class:"signature-pad-wrap"},vn={class:"signature-actions"},yn={class:"text-gray-700"},xn={class:"create-order-dialog__inner"},Vn={key:0,class:"create-order-rx-card"},kn={class:"create-order-rx-card__head"},hn={class:"create-order-rx-card__meta"},wn={class:"create-order-rx-card__id"},Sn={key:0,class:"create-order-rx-card__sn"},Cn={class:"create-order-rx-card__patient"},Nn={class:"create-order-step-lead"},Un={class:"create-order-step-panel"},Pn={class:"create-order-step-panel"},$n={class:"flex items-center gap-1 w-full"},En={class:"flex flex-col gap-0.5",style:{"line-height":"normal"}},Dn={class:"flex items-center justify-between"},Rn={class:"font-medium text-[13px] text-gray-800"},An={class:"text-orange-500 font-medium ml-4"},On={class:"flex items-center justify-between text-xs text-gray-400 mt-1"},Ln={class:"truncate pr-2"},zn={class:"shrink-0"},Tn={class:"create-order-pay-hint text-gray-500"},In={class:"text-amber-600 font-medium"},Fn={class:"create-order-step-panel"},jn={class:"create-order-deposit-bar__cell"},Mn={class:"create-order-deposit-bar__sub"},qn={class:"create-order-deposit-bar__cell"},Hn={class:"create-order-deposit-bar__sub"},Wn={class:"create-order-footer"},Bn={class:"create-order-footer__hint"},Yn={class:"create-order-footer__step"},Gn={key:0,class:"create-order-footer__warn"},Kn={class:"create-order-footer__actions"},Jn={class:"mb-4 flex gap-3"},Qn={class:"mb-3 flex flex-wrap items-center gap-x-4 gap-y-2"},Xn={key:0},Zn={key:1,class:"text-gray-400"},eo={class:"flex justify-end mt-4"},to={class:"mt-3 flex flex-wrap items-center gap-x-4 gap-y-2"},ao=It({name:"prescriptionList"}),lo=It({...ao,setup(so){const Ft=Bl(()=>Yl(()=>import("./edit-BuMVMky1.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65])));function Ce(a="浓缩水丸"){return a==="饮片"?{dosage_amount:50,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:a==="浓缩水丸"?{dosage_amount:5,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:{dosage_amount:1,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}}function jt(a,e){const o=Ce(e);if(!a||typeof a!="object")return{...o};const r=a;return{dosage_amount:r.dosage_amount!==null&&r.dosage_amount!==void 0&&r.dosage_amount!==""?Number(r.dosage_amount):o.dosage_amount,dosage_bag_count:r.dosage_bag_count!=null?Number(r.dosage_bag_count)||1:o.dosage_bag_count,need_decoction:r.need_decoction===1||r.need_decoction===!0,bags_per_dose:r.bags_per_dose!=null?Number(r.bags_per_dose)||1:o.bags_per_dose,times_per_day:r.times_per_day!=null?Number(r.times_per_day)||3:o.times_per_day,usage_days:r.usage_days!=null?Number(r.usage_days)||7:o.usage_days,prescription_name:String(r.prescription_name??"").trim()}}function J(a){return a==="辅方"?"辅方":"主方"}function Te(a){const e={name:String((a==null?void 0:a.name)??"").trim(),dosage:Number(a==null?void 0:a.dosage)||0,formula_type:J(a==null?void 0:a.formula_type)},o=Number((a==null?void 0:a.medicine_id)??(a==null?void 0:a.id)??0);return Number.isInteger(o)&&o>0&&(e.medicine_id=o),((a==null?void 0:a.locked)===!0||(a==null?void 0:a.locked)===1)&&(e.locked=!0),e}function Ie(a){return a?Array.isArray(a)?a.map(e=>Te(e)):[]:[]}const de=Ql(),_t=rl();function Mt(){const a=_t.getRoutes().find(e=>{var o;return((o=e.meta)==null?void 0:o.perms)==="tcm.prescriptionOrder/lists"});a!=null&&a.path?_t.push(a.path):w.msgWarning("未配置「处方业务订单」菜单,请在权限管理中执行菜单 SQL 或手动添加路由")}const S=Se({sn:"",patient_name:"",creator_ids:[],audit_filter:"all",source_filter:"all",start_time:"",end_time:""}),Fe=g([]),G=g("all"),Q=g(!1),D=g("add"),je=g(!1),te=g(),K=g(),pe=g(null),ne=560,oe=168,k=g(null),Me=g(!1),ft=g([]),me=g(!1),ct=g(0),ie=g(""),Ne=g(!1),_e=g(!1),qe=g(!1),He=g(),$=Se({id:0,patient_name:"",gender:1,phone:""}),qt={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],phone:[{required:!0,message:"请输入手机号",trigger:"blur"}]};function Ht(a){$.id=Number(a.id)||0,$.patient_name=String(a.patient_name??"").trim();const e=Number(a.gender);$.gender=e===0||e===1?e:1,$.phone=String(a.phone??"").trim(),_e.value=!0}function Wt(){var a;$.id=0,$.patient_name="",$.gender=1,$.phone="",(a=He.value)==null||a.clearValidate()}async function Bt(){const a=He.value;if(a){try{await a.validate()}catch{return}qe.value=!0;try{await as({id:$.id,patient_name:$.patient_name.trim(),phone:$.phone.trim(),gender:$.gender}),w.msgSuccess("已保存"),_e.value=!1,Z()}catch(e){const o=e&&typeof e=="object"&&"msg"in e?String(e.msg):"";w.msgError(o||"保存失败")}finally{qe.value=!1}}}const fe=g(!1),R=g(0),Yt=Y(()=>["请核对诊单患者并填写完整收货信息,便于发货与物流联系。","按需填写服务相关信息,并选择本诊单下需要关联的支付单。","确认费用类别与订单金额;提交前请对照定金门槛是否已满足。"][R.value]??""),Gt=["patient_id","recipient_name","recipient_phone","region","shipping_address"],B=g(null),ce=g(),We=g(!1),Be=g(!1),X=g([]),re=g([]),Ye=g(!1),E=g(0);function ue(a){const e=Number(a);return Number.isNaN(e)?"—":e.toFixed(2)}function gt(a){return{1:"挂号费",2:"问诊费",3:"药品费用",4:"首付",5:"尾款",6:"其他"}[Number(a)]||"未知"}const p=Se({patient_id:"",recipient_name:"",recipient_phone:"",region:[],shipping_address:"",is_follow_up:0,medication_days:void 0,prev_staff:"",service_channel:"",service_package:[],express_company:"auto",tracking_number:"",ship_mode:"gancao",fee_type:3,amount:0,internal_cost:void 0,remark_extra:"",remark_assistant:"",pay_order_ids:[]}),Kt=Y(()=>cs(["tcm.prescriptionOrder/setShipMode"])),ge=g([]),Ge=g([]),Jt=a=>a.map(e=>{var o;return{name:e.province,code:e.code,children:((o=e.citys)==null?void 0:o.map(r=>{var m;return{name:r.city,code:r.code,children:((m=r.areas)==null?void 0:m.map(u=>({name:u.area,code:u.code})))||[]}}))||[]}}),Qt=async()=>{try{console.log("开始加载省市区数据...");const e=await fetch("https://cos.zhenyangtang.com.cn/area/ChinaCitys.json");if(console.log("响应状态:",e.status),!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const o=await e.json();console.log("加载的数据条数:",o==null?void 0:o.length),ge.value=Jt(o),console.log("regionOptions 已设置,条数:",ge.value.length)}catch(a){console.error("加载省市区数据失败:",a),ge.value=[{name:"四川省",children:[{name:"成都市",children:[{name:"锦江区"},{name:"青羊区"},{name:"金牛区"},{name:"武侯区"},{name:"成华区"},{name:"龙泉驿区"},{name:"青白江区"},{name:"新都区"},{name:"温江区"},{name:"双流区"}]},{name:"绵阳市",children:[{name:"涪城区"},{name:"游仙区"},{name:"安州区"}]}]},{name:"北京市",children:[{name:"北京市",children:[{name:"东城区"},{name:"西城区"},{name:"朝阳区"},{name:"丰台区"},{name:"海淀区"}]}]},{name:"上海市",children:[{name:"上海市",children:[{name:"黄浦区"},{name:"徐汇区"},{name:"长宁区"},{name:"静安区"},{name:"普陀区"}]}]},{name:"广东省",children:[{name:"广州市",children:[{name:"荔湾区"},{name:"越秀区"},{name:"海珠区"},{name:"天河区"},{name:"白云区"}]},{name:"深圳市",children:[{name:"罗湖区"},{name:"福田区"},{name:"南山区"},{name:"宝安区"}]}]}],console.log("使用后备数据,条数:",ge.value.length)}},Xt=async()=>{try{const a=await Zl({type:"server_order"});Ge.value=((a==null?void 0:a.server_order)||[]).filter(e=>e.status!==0)}catch{Ge.value=[]}},Zt=a=>{console.log("选择的省市区:",a)},Ke=Y(()=>{const a=new Set(p.pay_order_ids.map(o=>Number(o)));let e=0;for(const o of re.value)a.has(Number(o.id))&&(e+=Number(o.amount)||0);return Math.round(e*100)/100}),ea=Y(()=>{const a=E.value;return a>0?Math.round(a*100)/100:0}),ta=Y(()=>{const a={patient_id:[{required:!0,message:"请选择诊单患者",trigger:"change"}],recipient_name:[{required:!0,message:"请输入收货人",trigger:"blur"}],recipient_phone:[{required:!0,message:"请输入收货手机",trigger:"blur"}],region:[{required:!0,message:"请选择省/市/区",trigger:"change",type:"array"}],shipping_address:[{required:!0,message:"请输入收货地址",trigger:"blur"}],fee_type:[{required:!0,message:"请选择费用类别",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"},{validator:(e,o,r)=>{const m=E.value,u=Number(o);if(m>0&&(!Number.isFinite(u)||u0){const e=`已开启关联支付门槛(¥${ue(E.value)}),请至少选择一笔支付单`;a.pay_order_ids=[{type:"array",required:!0,min:1,message:e,trigger:"change"}]}return a});function bt(){var a;R.value=0,p.patient_id="",p.recipient_name="",p.recipient_phone="",p.shipping_address="",p.is_follow_up=0,p.medication_days=void 0,p.prev_staff="",p.service_channel="",p.service_package=[],p.express_company="auto",p.tracking_number="",p.ship_mode="gancao",p.fee_type=3,p.amount=0,p.internal_cost=void 0,p.remark_extra="",p.remark_assistant="",p.pay_order_ids=[],X.value=[],re.value=[],E.value=0,B.value=null,(a=ce.value)==null||a.clearValidate()}function aa(){const a=E.value;if(a<=0)return;const e=Math.round(a*100)/100;Number(p.amount)p.patient_id,()=>{p.pay_order_ids=[],vt()});async function la(a){var m;if(Number(a==null?void 0:a.void_status)===1){w.msgWarning("已作废处方不可创建业务订单");return}bt(),B.value=a;const e=Number(a.diagnosis_id)||0;e>0&&(p.patient_id=e,p.recipient_name=a.patient_name||"",p.recipient_phone=String(a.phone||"").trim(),X.value=[{id:e,patient_name:a.patient_name||"",phone:String(a.phone||"").trim()}]);const o=Number(a.usage_days);o>0&&(p.medication_days=o),fe.value=!0,vt();const r=a.id;if(r&&!p.recipient_phone)try{const u=await mt({id:r}),i=u&&typeof u.phone=="string"?u.phone.trim():"";if(i&&((m=B.value)==null?void 0:m.id)===r){p.recipient_phone=i;const x=X.value[0];x&&Number(x.id)===e&&(x.phone=i)}}catch{}}async function sa(a){if(!a){X.value=[];return}try{Be.value=!0;const e=await searchPatientsAPI({keyword:a,page_no:1,page_size:10});X.value=(e==null?void 0:e.lists)||[]}catch{X.value=[]}finally{Be.value=!1}}function na(a){const e=X.value.find(o=>Number(o.id)===Number(a));e&&(p.recipient_name=e.patient_name||"",p.recipient_phone=e.phone||"")}function oa(){R.value>0&&(R.value-=1)}async function ia(){const a=ce.value;if(a)try{R.value===0?await a.validateField([...Gt]):R.value===1&&E.value>0&&await a.validateField(["pay_order_ids"]),R.value<2&&(R.value+=1)}catch{}}async function ra(){if(!(!ce.value||!B.value)&&R.value===2)try{await ce.value.validate(),We.value=!0;const a=Number(p.patient_id),e={prescription_id:B.value.id,diagnosis_id:a,recipient_name:p.recipient_name,recipient_phone:p.recipient_phone,shipping_address:p.shipping_address,is_follow_up:p.is_follow_up,prev_staff:p.prev_staff||"",service_channel:p.service_channel||"",service_package:Array.isArray(p.service_package)&&p.service_package.length>0?p.service_package.join(","):"",express_company:p.express_company||"auto",tracking_number:p.tracking_number||"",ship_mode:p.ship_mode,fee_type:p.fee_type,amount:p.amount,remark_extra:p.remark_extra||"",remark_assistant:p.remark_assistant||""};p.region&&p.region.length>=3&&(e.shipping_province=p.region[0],e.shipping_city=p.region[1],e.shipping_district=p.region[2]),p.medication_days!=null&&p.medication_days>0&&(e.medication_days=p.medication_days),p.internal_cost!=null&&p.internal_cost>0&&(e.internal_cost=p.internal_cost),p.pay_order_ids.length&&(e.pay_order_ids=[...p.pay_order_ids]);const o=await ss(e),r=(o==null?void 0:o.data)??o,m=r==null?void 0:r.order_no;w.msgSuccess(m?`业务订单已创建,单号:${m}`:"业务订单已创建"),fe.value=!1,Z()}catch(a){console.error(a)}finally{We.value=!1}}const Ue=g(!1),Pe=g(!1),yt=Y(()=>{const a=Ue.value,e=Pe.value;return!a&&!e?"":a&&e?"当前处方已作废且已驳回。保存后将取消作废、清除驳回,并重新进入待审核。":a?"当前为已作废处方。保存后将取消作废,并重新进入待审核。":"当前为已驳回处方。保存后将清除驳回,并重新进入待审核。"}),ua=Y(()=>n.herbs.map((a,e)=>({herb:a,index:e})).filter(({herb:a})=>J(a.formula_type)==="主方")),xt=Y(()=>n.herbs.map((a,e)=>({herb:a,index:e})).filter(({herb:a})=>J(a.formula_type)==="辅方")),M=Y(()=>n.herbs.some(a=>a.locked===!0)),Vt=g(null),Je=g(!1);function da(){const a=Vt.value;return(a==null?void 0:a.paperEl)??null}function pa(){k.value&&se(()=>{try{window.print()}catch(a){console.error(a)}})}async function ma(){var e,o,r;const a=da();if(!a){w.msgWarning("处方笺尚未渲染完成");return}Je.value=!0;try{await se(),await new Promise(z=>requestAnimationFrame(()=>z(null))),await new Promise(z=>setTimeout(z,250));const m=await Gl(a,{scale:2,backgroundColor:"#ffffff",useCORS:!0,allowTaint:!1,logging:!1,windowWidth:a.scrollWidth,windowHeight:a.scrollHeight,width:a.scrollWidth,height:a.scrollHeight,onclone:(z,L)=>{L instanceof HTMLElement&&(L.querySelectorAll(".rx-notice, .rx-notice-text, .rx-notice-meta").forEach(U=>{U.style.lineHeight="1.95",U.style.overflow="visible"}),L.querySelectorAll(".rx-notice").forEach(U=>{U.style.padding="10px 12px"}),L.querySelectorAll(".rx-info-cell, .rx-info-cell .rx-key, .rx-info-cell .rx-val").forEach(U=>{U.style.lineHeight="1.95",U.style.overflow="visible"}),L.querySelectorAll(".rx-info-cell").forEach(U=>{U.style.padding="10px 12px"}),L.querySelectorAll(".rx-herb-cell").forEach(U=>{U.style.lineHeight="2.5"}),L.querySelectorAll(".rx-herbs").forEach(U=>{U.style.rowGap="12px"}),L.querySelectorAll(".rx-text").forEach(U=>{U.style.lineHeight="2.1"}),L.querySelectorAll(".rx-bot-meta-val, .rx-hospital-line, .rx-bot-cell").forEach(U=>{U.style.overflow="visible",U.style.lineHeight="1.85"}),L.querySelectorAll(".rx-hospital-row").forEach(U=>{U.style.paddingTop="12px",U.style.paddingBottom="14px"}))}}),u=m.toDataURL("image/jpeg",.95),i=new Kl({unit:"mm",format:"a4",orientation:"portrait"}),x=210,q=297,y=x,le=m.height*y/m.width;if(le<=q)i.addImage(u,"JPEG",0,0,y,le);else{let z=le,L=0;for(;z>0;)i.addImage(u,"JPEG",0,L,y,le),z-=q,L-=q,z>0&&i.addPage()}const it=((e=k.value)==null?void 0:e.patient_name)||"处方",N=((o=k.value)==null?void 0:o.id)||"",A=((r=k.value)==null?void 0:r.prescription_date)||"";i.save(`处方-${it}${A?"-"+A:""}${N?"-"+N:""}.pdf`)}catch(m){console.error("下载处方 PDF 失败:",m),w.msgError((m==null?void 0:m.message)||"下载失败,请重试")}finally{Je.value=!1}}const n=Se({id:0,prescription_type:"浓缩水丸",dosage_amount:1,dosage_unit:"g",dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,patient_name:"",gender:1,age:0,visit_no:"",prescription_date:"",tongue:"",tongue_image:"",pulse:"",pulse_condition:"",clinical_diagnosis:"",herbs:[],dose_count:7,dose_unit:"剂",usage_days:7,usage_instruction:"",usage_time:"饭后",usage_way:"温水送服",dietary_taboo:[],usage_notes:"",doctor_name:"",doctor_signature:"",is_shared:0,visible_role_ids:[],audit_status:1,audit_time:null,audit_by_name:"",audit_remark:"",diagnosis_id:0,creator_id:0,is_system_auto:0,business_prescription_audit_rejected:0,business_prescription_audit_remark:"",times_per_day:2,aux_usage:Ce("浓缩水丸")}),P=Se({loading:!1,orderNo:"",medicationDays:null,remarkAssistant:""});function _a(){P.loading=!1,P.orderNo="",P.medicationDays=null,P.remarkAssistant=""}async function fa(a){if(P.orderNo="",P.medicationDays=null,P.remarkAssistant="",!a){P.loading=!1;return}P.loading=!0;try{const e=await ps({page_no:1,page_size:5,prescription_id:a}),o=e==null?void 0:e.lists,r=Array.isArray(o)&&o.length?o[0]:null;if(r){P.orderNo=String(r.order_no||"").trim();const m=r.medication_days,u=m!=null&&String(m).trim()!==""?Number(m):NaN;P.medicationDays=Number.isFinite(u)&&u>0?u:null,P.remarkAssistant=String(r.remark_assistant||"").trim()}}catch{}finally{P.loading=!1}}const kt=g(null);function ca(){var e;const a=Number(n.diagnosis_id);if(!a){w.msgWarning("本处方未关联诊单,无法查看诊单患者信息");return}(e=kt.value)==null||e.openViewOnly(a)}const $e=g(!1);ze(()=>n.prescription_type,a=>{$e.value||(a==="浓缩水丸"?(n.dosage_unit="g",n.dosage_amount=1,n.dosage_bag_count=1,n.need_decoction=!1,n.bags_per_dose=1):a==="饮片"?(n.dosage_unit="ml",n.dosage_amount=50,n.dosage_bag_count=1,n.bags_per_dose=1):(n.dosage_unit="g",n.dosage_amount=void 0,n.dosage_bag_count=1,n.need_decoction=!1,n.bags_per_dose=1),Object.assign(n.aux_usage,Ce(a)))});const ga={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],prescription_date:[{required:!0,message:"请选择处方日期",trigger:"change"}],clinical_diagnosis:[{required:!0,message:"请输入临床诊断",trigger:"blur"}],dose_count:[{required:!0,message:"请输入剂数",trigger:"blur"}],doctor_name:[{required:!0,message:"请输入医师姓名",trigger:"blur"}],doctor_signature:[{required:!0,validator:(a,e,o)=>{!e||!String(e).trim()?o(new Error("请使用电子签名板手写医师签名")):o()},trigger:"change"}]};async function ba(a){const{audit_filter:e,source_filter:o,creator_ids:r,...m}=a,u={...m,audit_filter:e==="all"||e===""?"":e,source_filter:o==="all"||o===""||o===void 0?"":o};return Array.isArray(r)&&r.length>0&&(u.creator_ids=r),ns(u)}const{pager:be,getLists:Z,resetPage:ae}=fs({fetchFun:ba,params:S});function ht(a){return String(a).padStart(2,"0")}function wt(a){const e=a.getFullYear(),o=ht(a.getMonth()+1),r=ht(a.getDate()),m=`${e}-${o}-${r}`;return{start:`${m} 00:00:00`,end:`${m} 23:59:59`}}function va(a){const e=String(a??"all");if(e==="all")S.start_time="",S.end_time="";else{const o=new Date,r=new Date(o.getFullYear(),o.getMonth(),o.getDate());e==="yesterday"?r.setDate(r.getDate()-1):e==="before_yesterday"&&r.setDate(r.getDate()-2);const{start:m,end:u}=wt(r);S.start_time=m,S.end_time=u}ae()}function ya(){ae()}function xa(){ae()}let Qe=!1;ze(()=>[S.start_time,S.end_time],()=>{if(Qe)return;const a=S.start_time,e=S.end_time;if(!a&&!e){G.value="all";return}if(!a||!e){G.value="";return}const o=new Date,r=m=>{const u=new Date(o.getFullYear(),o.getMonth(),o.getDate()-m),{start:i,end:x}=wt(u);return a===i&&e===x};r(0)?G.value="today":r(1)?G.value="yesterday":r(2)?G.value="before_yesterday":G.value=""});function Va(a){if(a==null||a==="")return"—";if(typeof a=="number"&&a>=1e9&&a<1e11)return Ee(a);const e=String(a).trim();return/^\d{10}$/.test(e)?Ee(parseInt(e,10)):e}function ka(){Qe=!0,G.value="all",S.sn="",S.patient_name="",S.creator_ids=[],S.audit_filter="all",S.source_filter="all",S.start_time="",S.end_time="",Qe=!1,ae()}function ha(a){return a===0?"待审核":a===2?"已驳回":"已通过"}function wa(a){return a===0?"warning":a===2?"danger":"success"}function Sa(a){return Number(a.business_prescription_audit_rejected)===1?"已驳回":ha(a.audit_status)}function Ca(a){return Number(a.business_prescription_audit_rejected)===1?"danger":wa(a.audit_status)}function St(a){const e=[];if(Number(a.business_prescription_audit_rejected)===1){const o=String(a.business_prescription_audit_remark||"").trim();e.push(o?`业务订单审核驳回意见:${o}`:"业务订单审核驳回意见:—")}if(Number(a.audit_status)===2){const o=String(a.audit_remark||"").trim();e.push(o?`消费者处方审核驳回意见:${o}`:"消费者处方审核驳回意见:—")}return e}function Ct(a){return Number(a.audit_status)===1&&Number(a.void_status)!==1}function Ee(a){if(!a)return"";const e=new Date(a*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}function Na(a){return a?Ee(a):"—"}function Ua(a){var m;const e=n.herbs[a];if(!e)return`第${a+1}味`;const o=J(e.formula_type);let r=0;for(let u=0;u<=a;u++)J((m=n.herbs[u])==null?void 0:m.formula_type)===o&&r++;return`${o}第${r}味`}function Pa(a){if(Number(a==null?void 0:a.has_prescription_order)!==1)return[];const o=Ie(a==null?void 0:a.herbs).map(i=>String((i==null?void 0:i.name)||"").trim()).filter(Boolean),r=[];if(!o.length)return r.push("请开方,当前处方药材为空白"),r;const m=new Set,u=new Set;for(const i of o){const x=i.replace(/\s+/g,"").toLowerCase();x&&(m.has(x)?u.add(i):m.add(x))}return u.size>0&&r.push(`已有关联业务订单,当前处方存在重复药材:${Array.from(u).join("、")}`),r}function $a(a){return{...a,herbs:Ie(a==null?void 0:a.herbs)}}function Ea(){k.value=null,pe.value=null}function Nt(a){const e=K.value;if(!e)return{x:0,y:0};const o=e.getBoundingClientRect();if(o.width<=0||o.height<=0)return{x:0,y:0};const r=(a.clientX-o.left)/o.width*ne,m=(a.clientY-o.top)/o.height*oe;return{x:Math.max(0,Math.min(ne,r)),y:Math.max(0,Math.min(oe,m))}}function Xe(){const a=K.value;a&&(n.doctor_signature=a.toDataURL("image/png")),se(()=>{var e;(e=te.value)==null||e.validateField("doctor_signature").catch(()=>{})})}function Da(a){if(a.pointerType==="mouse"&&a.button!==0)return;const e=K.value,o=e==null?void 0:e.getContext("2d");if(!e||!o)return;e.setPointerCapture(a.pointerId),pe.value=a.pointerId;const{x:r,y:m}=Nt(a);o.beginPath(),o.moveTo(r,m)}function Ra(a){var m;if(pe.value!==a.pointerId)return;const e=(m=K.value)==null?void 0:m.getContext("2d");if(!e)return;const{x:o,y:r}=Nt(a);e.lineTo(o,r),e.stroke(),e.beginPath(),e.moveTo(o,r)}function Ut(a){if(pe.value!==a.pointerId)return;pe.value=null;const e=K.value;if(e)try{e.releasePointerCapture(a.pointerId)}catch{}Xe()}function Aa(){Pt(),n.doctor_signature="",se(()=>{var a;(a=te.value)==null||a.validateField("doctor_signature").catch(()=>{})})}function Pt(){const a=K.value;if(!a)return;const e=Math.min(typeof window<"u"&&window.devicePixelRatio||1,2.5);a.style.width=`${ne}px`,a.style.height=`${oe}px`,a.width=Math.round(ne*e),a.height=Math.round(oe*e);const o=a.getContext("2d");o&&(o.setTransform(1,0,0,1,0,0),o.scale(e,e),o.fillStyle="#fff",o.fillRect(0,0,ne,oe),o.strokeStyle="#333",o.lineWidth=2.5,o.lineCap="round",o.lineJoin="round")}function $t(){D.value!=="view"&&se(()=>{setTimeout(()=>{Pt();const a=n.doctor_signature;if(a&&String(a).trim().startsWith("data:image")&&K.value){const e=new Image;e.onload=()=>{const o=K.value,r=o==null?void 0:o.getContext("2d");!o||!r||(r.drawImage(e,0,0,ne,oe),Xe())},e.onerror=()=>{Xe()},e.src=a}},100)})}function Oa(a){const e=a==null?void 0:a.visible_role_ids;return Array.isArray(e)?e.map(o=>Number(o)).filter(o=>!Number.isNaN(o)):typeof e=="string"&&e?e.split(",").map(o=>parseInt(o.trim(),10)).filter(o=>!Number.isNaN(o)):[]}function La(a){ct.value=a.id,ie.value="",me.value=!0}async function Et(a){if(a==="reject"&&!ie.value.trim()){w.msgError("驳回时请填写审核意见");return}Ne.value=!0;try{const e=await os({id:ct.value,action:a,remark:ie.value.trim()});w.msgSuccess(a==="reject"?"已驳回并作废处方":"审核通过"),e&&e.wecom_notify_ok===!1&&e.wecom_notify_hint&&w.msgWarning(e.wecom_notify_hint),me.value=!1,Z()}catch{}finally{Ne.value=!1}}async function za(){try{const a=await _s({});ft.value=Array.isArray(a)?a:[]}catch{ft.value=[]}}const ve=g(!1),Ze=g(!1),et=g([]),De=g(""),Re=g(""),ye=g("replace"),xe=g(1),tt=g(15),at=g(0),Dt=Y(()=>{var o;const a=Number(n.creator_id);if(a>0)return a;const e=Number((o=de.userInfo)==null?void 0:o.id);return e>0?e:0});function Ta(a){return String(a||"").trim().toLowerCase()}function Rt(){const a=new Map;for(const e of n.herbs){const o=Ta(e==null?void 0:e.name);o&&a.set(o,(a.get(o)??0)+1)}return[...a.entries()].filter(([,e])=>e>1).map(([e])=>e)}const Ae=async()=>{const a=Dt.value;if(!a){w.msgWarning("无法确定开方医师,无法加载处方库"),et.value=[],at.value=0;return}Ze.value=!0;try{const e=await is({page_no:xe.value,page_size:tt.value,prescription_name:De.value,formula_type:Re.value,prescribing_creator_id:a});et.value=(e==null?void 0:e.lists)||[],at.value=(e==null?void 0:e.count)||0}catch(e){console.error(e),w.msgError("加载处方库失败")}finally{Ze.value=!1}},Oe=()=>{xe.value=1,Ae()},Ia=()=>{if(!Dt.value){w.msgWarning("无法确定开方医师,无法从处方库导入");return}ve.value=!0},Fa=a=>{At(a)},At=a=>{if(!a.herbs||a.herbs.length===0){w.msgWarning("该处方没有药材信息");return}const e=J(a.formula_type),o=Number(a==null?void 0:a.disable_edit)===1,r=JSON.parse(JSON.stringify(a.herbs)).map(u=>{const i=Te(u);return i.formula_type=e,o?i.locked=!0:delete i.locked,i});if(ye.value==="replace"){const u=n.herbs.filter(i=>J(i.formula_type)!==e);n.herbs=[...u,...r]}else n.herbs.push(...r);e==="辅方"&&(n.aux_usage.prescription_name=String(a.prescription_name??"").trim());const m=ye.value==="append"?"(已追加)":"";Rt().length?w.msgWarning(`已导入处方「${a.prescription_name}」${m},共${r.length}味药材。存在重复药名,请合并剂量或删除多余行`):w.msgSuccess(`已导入处方「${a.prescription_name}」${m},共${r.length}味药材`),ve.value=!1};ze(ve,a=>{a&&(De.value="",Re.value="",ye.value="replace",xe.value=1,Ae())});const Ve=g(!1),ke=g(""),lt=g("replace"),st=g(!1),ja=/^(用法|用量|医嘱|忌口|水煎服|空腹|饭后|温水|内服|外用|备注|顿服|分服|ml|毫升|[×xX]\s*\d)/;function Ma(a){let e=a.replace(/\r\n/g,` `).replace(/\r/g,` `);return e=e.replace(/[0-9]/g,o=>String.fromCharCode(o.charCodeAt(0)-65296+48)),e.trim()}function qa(a){return a.replace(/^\s*Rp[::**\s]*/i,"").replace(/^\s*处方[::\s]*/,"").replace(/^\s*中药处方[::\s]*/,"").trimStart()}function nt(a){return a.replace(/([^)]*)$/u,"").replace(/\([^)]*\)$/u,"").trim()}function Ot(a){const e=a.trim();if(!e||ja.test(e)||/^\d/.test(e)||/^\d+\s*剂$/.test(e))return null;const o=e.match(/^(.+)\s*各\s*(\d+(?:\.\d+)?)\s*(?:克|g|G)?$/i);if(o){const u=parseFloat(o[2]);if(!Number.isFinite(u)||u<=0)return null;const i=o[1].split(/[、,,\s]+/).map(x=>x.trim()).filter(Boolean);return i.length?i.map(x=>({name:nt(x),dosage:u})):null}const r=e.match(/^(.+?)\s*(\d+(?:\.\d+)?)\s*(?:克|g|G|钱)?$/i);if(r){const u=nt(r[1].trim()),i=parseFloat(r[2]);return!u||!Number.isFinite(i)||i<=0?null:[{name:u,dosage:i}]}const m=nt(e);return m.length>=2&&m.length<=16?[{name:m,dosage:6}]:null}function Ha(a){const e=qa(Ma(a)),o=[];for(const r of e.split(/\n+/)){const m=r.trim();if(m)for(const u of m.split(/[、,,;;]/)){const i=u.trim();if(i)if(/\s/.test(i)&&!Ot(i)){const x=i.split(/\s+(?=[\u4e00-\u9fff]{2,})/);for(const q of x){const y=q.trim();y&&o.push(y)}}else o.push(i)}}return o}function Wa(a){const e=[];for(const o of Ha(a)){const r=Ot(o);r&&e.push(...r)}return e}async function Ba(a){const e=a.trim();if(!e)return null;try{const m=((await ms({name:e,page_no:1,page_size:200,status:1})).lists||[]).filter(u=>(u.name??"").trim()===e);return m.length===1?{medicine_id:Number(m[0].id),name:m[0].name.trim()}:null}catch{return null}}function Ya(){Ve.value=!0}async function Ga(){const a=Wa(ke.value);if(!a.length){w.msgWarning("未能从文本中解析出药材,请检查格式(药名 + 剂量,或用顿号/换行分隔)");return}st.value=!0;try{const e=[],o=[];for(const i of a){const x=await Ba(i.name);if(!x){o.push(i.name.trim());continue}e.push({...x,dosage:i.dosage,formula_type:"主方"})}const r=[...new Set(o.filter(Boolean))];if(e.length===0){w.msgWarning(r.length?`药品库中无以下完全同名药材,未录入:${r.join("、")}`:"未能匹配到药品库中的药材");return}if(lt.value==="replace"){const i=n.herbs.filter(x=>J(x.formula_type)==="辅方");n.herbs=[...i,...e]}else n.herbs.push(...e);const m=Rt(),u=r.length>0?`;药品库未收录已跳过:${r.join("、")}`:"";m.length?w.msgWarning(`已导入 ${e.length} 味药材${u}。存在重复药名:${m.join("、")},请合并剂量或删除多余行`):r.length?w.msgSuccess(`已导入 ${e.length} 味药材${u},请核对剂量`):w.msgSuccess(`已导入 ${e.length} 味药材,请核对药名与剂量`),Ve.value=!1,ke.value=""}finally{st.value=!1}}const Lt=(a="主方")=>{if(M.value){w.msgWarning("该处方含「禁用修改」模板,药材已锁定,请重新从处方库导入覆盖");return}n.herbs.push({name:"",dosage:0,formula_type:a})},zt=a=>{if(M.value){w.msgWarning("该处方含「禁用修改」模板,药材已锁定,不可删除");return}n.herbs.splice(a,1)},Ka=()=>{var a;n.id=0,n.prescription_type="浓缩水丸",n.dosage_amount=1,n.dosage_unit="g",n.dosage_bag_count=1,n.need_decoction=!1,n.bags_per_dose=1,n.patient_name="",n.gender=1,n.age=0,n.visit_no="",n.prescription_date=new Date().toISOString().split("T")[0],n.tongue="",n.tongue_image="",n.pulse="",n.pulse_condition="",n.clinical_diagnosis="",n.herbs=[],n.dose_count=7,n.dose_unit="剂",n.usage_days=7,n.usage_instruction="",n.usage_time="饭后",n.usage_way="温水送服",n.dietary_taboo=[],n.usage_notes="",n.doctor_name="",n.doctor_signature="",n.is_shared=0,n.visible_role_ids=[],n.audit_status=1,n.audit_time=null,n.audit_by_name="",n.audit_remark="",n.diagnosis_id=0,n.creator_id=Number((a=de.userInfo)==null?void 0:a.id)||0,n.is_system_auto=0,n.business_prescription_audit_rejected=0,n.business_prescription_audit_remark="",n.times_per_day=2,Object.assign(n.aux_usage,Ce("浓缩水丸")),_a()},Ja=()=>{var a;Ka(),n.doctor_name=String(((a=de.userInfo)==null?void 0:a.name)||""),Ue.value=!1,Pe.value=!1,D.value="add",$e.value=!1,Q.value=!0,se(()=>{var e;(e=te.value)==null||e.clearValidate(),$t()})},Qa=async a=>{Ue.value=!1,Pe.value=!1,D.value="view",k.value=$a(a),Q.value=!0,Me.value=!0;try{const e=await mt({id:a.id});e&&typeof e=="object"&&(k.value={...e,herbs:Ie(e.herbs)})}catch(e){w.msgError((e==null?void 0:e.msg)||"加载处方详情失败")}finally{Me.value=!1}},Xa=async a=>{Ue.value=Number(a.void_status)===1,Pe.value=Number(a.audit_status)===2,D.value="edit",$e.value=!0;let e=a;if(a!=null&&a.id&&!a.doctor_signature)try{const o=await mt({id:a.id});o&&typeof o=="object"&&(e={...a,...o})}catch{}n.id=e.id,n.prescription_type=e.prescription_type||"浓缩水丸",e.dosage_amount!==null&&e.dosage_amount!==void 0&&e.dosage_amount!==""?n.dosage_amount=Number(e.dosage_amount):n.dosage_amount=void 0,e.dosage_unit?n.dosage_unit=e.dosage_unit:n.prescription_type==="饮片"?n.dosage_unit="ml":n.dosage_unit="g",n.dosage_bag_count=e.dosage_bag_count?Number(e.dosage_bag_count):1,n.need_decoction=e.need_decoction===1||e.need_decoction===!0,n.bags_per_dose=e.bags_per_dose?Number(e.bags_per_dose):1,n.patient_name=e.patient_name||"",n.gender=e.gender??1,n.age=e.age??0,n.visit_no=e.visit_no||"",n.prescription_date=e.prescription_date||"",n.tongue=e.tongue||"",n.tongue_image=e.tongue_image||"",n.pulse=e.pulse||"",n.pulse_condition=e.pulse_condition||"",n.clinical_diagnosis=e.clinical_diagnosis||"",n.herbs=e.herbs?e.herbs.map(o=>Te(o)):[],n.dose_count=e.dose_count??7,n.dose_unit=e.dose_unit||"剂",n.usage_days=e.usage_days??7,n.times_per_day=e.times_per_day??2,n.usage_instruction=e.usage_instruction||"",n.usage_time=e.usage_time||"饭后",n.usage_way=e.usage_way||"温水送服",n.dietary_taboo=e.dietary_taboo?Array.isArray(e.dietary_taboo)?e.dietary_taboo:String(e.dietary_taboo).split(",").filter(o=>o):[],n.usage_notes=e.usage_notes||"",n.doctor_name=e.doctor_name||"",n.doctor_signature=String(e.doctor_signature||""),n.is_shared=e.is_shared??0,n.visible_role_ids=Oa(e),n.audit_status=e.audit_status??1,n.audit_time=e.audit_time??null,n.audit_by_name=e.audit_by_name||"",n.audit_remark=e.audit_remark||"",n.diagnosis_id=e.diagnosis_id??0,n.creator_id=Number(e.creator_id)>0?Number(e.creator_id):0,n.is_system_auto=Number(e.is_system_auto)===1?1:0,n.business_prescription_audit_rejected=Number(e.business_prescription_audit_rejected)===1?1:0,n.business_prescription_audit_remark=String(e.business_prescription_audit_remark||""),Object.assign(n.aux_usage,jt(e.aux_usage,n.prescription_type)),setTimeout(()=>{$e.value=!1},0),Q.value=!0,fa(Number(n.id)),se(()=>{var o;(o=te.value)==null||o.clearValidate(),$t()})},Za=async()=>{if(te.value){try{await te.value.validate()}catch{return}if(!n.herbs||n.herbs.length===0){w.msgError("请至少添加一味药材");return}for(let a=0;a{await w.confirm("确定要删除该处方吗?"),await ds({id:a}),w.msgSuccess("删除成功"),Z()};let ot=!1;return ul(()=>{ot=!0}),dl(()=>{ot&&(ot=!1,Z())}),pl(async()=>{var a;await za(),await Qt(),await Xt();try{const e=await ts();Fe.value=Array.isArray(e)?e:[]}catch{Fe.value=[]}try{(a=de.userInfo)!=null&&a.id||await de.getUserInfo()}catch{}Z()}),(a,e)=>{const o=fl,r=_l,m=bl,u=gl,i=yl,x=vl,q=cl,y=xl,le=Vl,it=Xl,N=wl,A=Sl,z=hl,L=Jl,U=Pl,V=El,H=$l,F=Dl,T=Rl,tl=Al,al=Ll,he=zl,rt=Il,ll=Tl,sl=Fl,nl=jl,ol=Ml,il=Wl,W=ml("perms"),Le=kl;return _(),h("div",vs,[t(le,{class:"filter-toolbar",shadow:"never","body-style":{padding:"10px 14px"}},{default:s(()=>[d("div",ys,[d("div",xs,[e[102]||(e[102]=d("span",{class:"pl-toolbar__k",title:"按处方创建时间"},"创建时间",-1)),t(r,{modelValue:G.value,"onUpdate:modelValue":e[0]||(e[0]=l=>G.value=l),size:"small",class:"pl-toolbar__rg",onChange:va},{default:s(()=>[t(o,{label:"all"},{default:s(()=>[...e[90]||(e[90]=[f("全部",-1)])]),_:1}),t(o,{label:"today"},{default:s(()=>[...e[91]||(e[91]=[f("今日",-1)])]),_:1}),t(o,{label:"yesterday"},{default:s(()=>[...e[92]||(e[92]=[f("昨日",-1)])]),_:1}),t(o,{label:"before_yesterday"},{default:s(()=>[...e[93]||(e[93]=[f("前天",-1)])]),_:1})]),_:1},8,["modelValue"]),t(gs,{class:"pl-toolbar__range",startTime:S.start_time,"onUpdate:startTime":e[1]||(e[1]=l=>S.start_time=l),endTime:S.end_time,"onUpdate:endTime":e[2]||(e[2]=l=>S.end_time=l)},null,8,["startTime","endTime"]),e[103]||(e[103]=d("span",{class:"pl-toolbar__sep","aria-hidden":"true"},null,-1)),e[104]||(e[104]=d("span",{class:"pl-toolbar__k",title:"「未通过」含待审核与已驳回"},"审核",-1)),t(r,{modelValue:S.audit_filter,"onUpdate:modelValue":e[3]||(e[3]=l=>S.audit_filter=l),size:"small",class:"pl-toolbar__rg pl-toolbar__rg--audit",onChange:ya},{default:s(()=>[t(o,{label:"pending",class:"pl-audit-pending-btn"},{default:s(()=>[...e[94]||(e[94]=[f("待审核",-1)])]),_:1}),t(o,{label:"all"},{default:s(()=>[...e[95]||(e[95]=[f("全部",-1)])]),_:1}),t(o,{label:"passed"},{default:s(()=>[...e[96]||(e[96]=[f("已通过",-1)])]),_:1}),t(o,{label:"not_passed"},{default:s(()=>[...e[97]||(e[97]=[f("未通过",-1)])]),_:1}),t(o,{label:"rejected"},{default:s(()=>[...e[98]||(e[98]=[f("驳回",-1)])]),_:1})]),_:1},8,["modelValue"]),e[105]||(e[105]=d("span",{class:"pl-toolbar__sep","aria-hidden":"true"},null,-1)),e[106]||(e[106]=d("span",{class:"pl-toolbar__k",title:"与列表「来源」列一致:空白处方 / 手工"},"来源",-1)),t(r,{modelValue:S.source_filter,"onUpdate:modelValue":e[4]||(e[4]=l=>S.source_filter=l),size:"small",class:"pl-toolbar__rg pl-toolbar__rg--source",onChange:xa},{default:s(()=>[t(o,{label:"all"},{default:s(()=>[...e[99]||(e[99]=[f("全部",-1)])]),_:1}),t(o,{label:"manual"},{default:s(()=>[...e[100]||(e[100]=[f("手工",-1)])]),_:1}),t(o,{label:"system"},{default:s(()=>[...e[101]||(e[101]=[f("空白处方",-1)])]),_:1})]),_:1},8,["modelValue"])]),d("div",Vs,[t(q,{model:S,inline:"",class:"pl-toolbar__form"},{default:s(()=>[t(u,{label:"处方编号",class:"!mb-0"},{default:s(()=>[t(m,{modelValue:S.sn,"onUpdate:modelValue":e[5]||(e[5]=l=>S.sn=l),placeholder:"编号",clearable:"",class:"pl-toolbar__input",onKeyup:dt(j(ae),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(u,{label:"患者",class:"!mb-0"},{default:s(()=>[t(m,{modelValue:S.patient_name,"onUpdate:modelValue":e[6]||(e[6]=l=>S.patient_name=l),placeholder:"姓名",clearable:"",class:"pl-toolbar__input",onKeyup:dt(j(ae),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(u,{label:"医师",class:"!mb-0"},{default:s(()=>[t(x,{modelValue:S.creator_ids,"onUpdate:modelValue":e[7]||(e[7]=l=>S.creator_ids=l),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",filterable:"",clearable:"",placeholder:"全部医师",class:"pl-toolbar__select pl-toolbar__select--doctors"},{default:s(()=>[(_(!0),h(I,null,ee(Fe.value,l=>(_(),c(i,{key:l.id,label:l.name,value:Number(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"]),d("div",ks,[t(y,{type:"primary",onClick:j(ae)},{default:s(()=>[...e[107]||(e[107]=[f("查询",-1)])]),_:1},8,["onClick"]),t(y,{onClick:ka},{default:s(()=>[...e[108]||(e[108]=[f("重置",-1)])]),_:1})])])])]),_:1}),O((_(),c(le,{class:"mt-3 table-card",shadow:"never"},{default:s(()=>[d("div",hs,[e[111]||(e[111]=d("span",{class:"pl-table-head__title"},"处方列表",-1)),d("div",ws,[O((_(),c(y,{onClick:Mt},{default:s(()=>[...e[109]||(e[109]=[f(" 业务订单 ",-1)])]),_:1})),[[W,["tcm.prescriptionOrder/lists"]]]),O((_(),c(y,{type:"primary",onClick:Ja},{icon:s(()=>[t(it,{name:"el-icon-Plus"})]),default:s(()=>[e[110]||(e[110]=f(" 新增处方 ",-1))]),_:1})),[[W,["cf.prescription/add"]]])])]),d("div",Ss,[t(z,{data:j(be).lists,size:"default",stripe:""},{default:s(()=>[t(N,{label:"处方编号","min-width":"160"},{default:s(({row:l})=>[d("span",Cs,b(l.sn||"—"),1),d("div",Ns,"ID: "+b(l.id),1),(_(!0),h(I,null,ee(Pa(l),(C,ut)=>(_(),h("div",{key:`rx-order-warn-${l.id}-${ut}`,class:"text-xs text-red-600 mt-0.5 leading-snug"},b(C),1))),128))]),_:1}),t(N,{label:"处方类型","min-width":"100"},{default:s(({row:l})=>[t(A,{type:"info",size:"small"},{default:s(()=>[f(b(l.prescription_type||"—"),1)]),_:2},1024)]),_:1}),t(N,{label:"来源","min-width":"92",align:"center"},{default:s(({row:l})=>[Number(l.is_system_auto)===1?(_(),c(A,{key:0,type:"warning",size:"small",effect:"plain"},{default:s(()=>[...e[112]||(e[112]=[f(" 空白处方 ",-1)])]),_:1})):(_(),h("span",Us,"手工"))]),_:1}),t(N,{label:"患者信息","min-width":"110"},{default:s(({row:l})=>[d("div",Ps,b(l.patient_name||"—"),1),d("div",$s,b(l.gender===1?"男":l.gender===0?"女":"未知")+" · "+b(l.age?l.age+"岁":"—"),1)]),_:1}),t(N,{label:"审核状态","min-width":"200"},{default:s(({row:l})=>[d("div",Es,[d("div",Ds,[t(A,{type:Ca(l)},{default:s(()=>[f(b(Sa(l)),1)]),_:2},1032,["type"]),Number(l.business_prescription_audit_rejected)===1?(_(),h("span",Rs," (业务订单审核) ")):v("",!0)]),St(l).length?(_(!0),h(I,{key:0},ee(St(l),(C,ut)=>(_(),h("div",{key:ut,class:"text-xs text-red-600 leading-snug line-clamp-3",title:C},b(C),9,As))),128)):v("",!0)])]),_:1}),t(N,{label:"作废","min-width":"80",align:"center"},{default:s(({row:l})=>[l.void_status===1?(_(),c(A,{key:0,type:"danger",size:"small"},{default:s(()=>[...e[113]||(e[113]=[f("作废",-1)])]),_:1})):(_(),h("span",Os,"—"))]),_:1}),t(N,{label:"医师信息","min-width":"120"},{default:s(({row:l})=>[d("div",Ls,b(l.doctor_name||"—"),1),d("div",zs,b(l.prescription_date||"—"),1)]),_:1}),t(N,{label:"医助","min-width":"90"},{default:s(({row:l})=>[d("div",Ts,b(l.assistant_name||"—"),1)]),_:1}),t(N,{label:"创建时间","min-width":"160"},{default:s(({row:l})=>[f(b(Va(l.create_time)),1)]),_:1}),t(N,{label:"操作",width:"300",fixed:"right"},{default:s(({row:l})=>[O((_(),c(y,{type:"primary",link:"",onClick:C=>Qa(l)},{default:s(()=>[...e[114]||(e[114]=[f(" 查看 ",-1)])]),_:1},8,["onClick"])),[[W,["cf.prescription/read"]]]),Number(l.void_status)!==1?O((_(),c(y,{key:0,type:"primary",link:"",onClick:C=>Ht(l)},{default:s(()=>[...e[115]||(e[115]=[f(" 改姓名手机 ",-1)])]),_:1},8,["onClick"])),[[W,["tcm.prescription/patchPatient"]]]):v("",!0),!Number(l.has_prescription_order)&&Number(l.void_status)!==1?O((_(),c(y,{key:1,type:"success",link:"",onClick:C=>la(l)},{default:s(()=>[...e[116]||(e[116]=[f(" 创建订单 ",-1)])]),_:1},8,["onClick"])),[[W,["tcm.prescriptionOrder/create"]]]):v("",!0),Ct(l)?v("",!0):O((_(),c(y,{key:2,type:"primary",link:"",onClick:C=>Xa(l)},{default:s(()=>[...e[117]||(e[117]=[f(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[W,["cf.prescription/edit"]]]),l.audit_status===0&&l.void_status!==1?O((_(),c(y,{key:3,type:"warning",link:"",onClick:C=>La(l)},{default:s(()=>[...e[118]||(e[118]=[f(" 审核 ",-1)])]),_:1},8,["onClick"])),[[W,["cf.prescription/audit"]]]):v("",!0),Ct(l)?v("",!0):O((_(),c(y,{key:4,type:"danger",link:"",onClick:C=>el(l.id)},{default:s(()=>[...e[119]||(e[119]=[f(" 删除 ",-1)])]),_:1},8,["onClick"])),[[W,["cf.prescription/del"]]])]),_:1})]),_:1},8,["data"])]),d("div",Is,[t(L,{modelValue:j(be),"onUpdate:modelValue":e[8]||(e[8]=l=>Cl(be)?be.value=l:null),onChange:j(Z)},null,8,["modelValue","onChange"])])]),_:1})),[[Le,j(be).loading]]),t(al,{modelValue:Q.value,"onUpdate:modelValue":e[48]||(e[48]=l=>Q.value=l),title:D.value==="add"?"新增处方":D.value==="edit"?"编辑处方":"查看处方",size:D.value==="view"?"920px":"860px",class:"cf-prescription-drawer","close-on-click-modal":!1,"destroy-on-close":"",onClosed:Ea},{footer:s(()=>[D.value==="view"?(_(),c(y,{key:0,onClick:e[46]||(e[46]=l=>Q.value=!1)},{default:s(()=>[...e[162]||(e[162]=[f("关闭",-1)])]),_:1})):(_(),h(I,{key:1},[t(y,{onClick:e[47]||(e[47]=l=>Q.value=!1)},{default:s(()=>[...e[163]||(e[163]=[f("取消",-1)])]),_:1}),t(y,{type:"primary",onClick:Za,loading:je.value},{default:s(()=>[...e[164]||(e[164]=[f(" 确定 ",-1)])]),_:1},8,["loading"])],64))]),default:s(()=>[D.value==="view"?O((_(),h("div",Fs,[d("div",js,[k.value&&Number(k.value.is_system_auto)===1?(_(),c(A,{key:0,type:"warning",size:"small",effect:"plain"},{default:s(()=>[...e[120]||(e[120]=[f("空白处方",-1)])]),_:1})):v("",!0),k.value&&Number(k.value.void_status)===1?(_(),c(A,{key:1,type:"danger",size:"small"},{default:s(()=>[...e[121]||(e[121]=[f("已作废",-1)])]),_:1})):k.value&&Number(k.value.business_prescription_audit_rejected)===1?(_(),c(A,{key:2,type:"danger",size:"small"},{default:s(()=>[...e[122]||(e[122]=[f("业务订单已驳回",-1)])]),_:1})):k.value&&Number(k.value.audit_status)===1?(_(),c(A,{key:3,type:"success",size:"small"},{default:s(()=>[...e[123]||(e[123]=[f("已通过",-1)])]),_:1})):k.value&&Number(k.value.audit_status)===0?(_(),c(A,{key:4,type:"warning",size:"small"},{default:s(()=>[...e[124]||(e[124]=[f("待审核",-1)])]),_:1})):k.value?(_(),c(A,{key:5,type:"danger",size:"small"},{default:s(()=>[...e[125]||(e[125]=[f("已驳回",-1)])]),_:1})):v("",!0),e[128]||(e[128]=d("div",{class:"flex-1"},null,-1)),t(y,{icon:j(Nl),size:"small",onClick:pa},{default:s(()=>[...e[126]||(e[126]=[f("打印",-1)])]),_:1},8,["icon"]),t(y,{type:"primary",icon:j(Ul),size:"small",loading:Je.value,onClick:ma},{default:s(()=>[...e[127]||(e[127]=[f(" 下载 PDF (A4) ",-1)])]),_:1},8,["icon","loading"])]),k.value&&Number(k.value.void_status)===1?(_(),h("div",Ms," 作废人:"+b(k.value.void_by_name||"—")+",作废时间:"+b(Na(k.value.void_time)),1)):k.value&&Number(k.value.business_prescription_audit_rejected)===1?(_(),h("div",qs,[e[129]||(e[129]=d("div",{class:"font-medium"},"审核状态:已驳回(业务订单·处方审核)",-1)),k.value.business_prescription_audit_remark?(_(),h("div",Hs," 驳回意见:"+b(k.value.business_prescription_audit_remark),1)):v("",!0)])):k.value&&Number(k.value.audit_status)===2?(_(),h("div",Ws,[e[130]||(e[130]=d("div",{class:"font-medium"},"消费者处方审核:已驳回",-1)),k.value.audit_remark?(_(),h("div",Bs,"驳回意见:"+b(k.value.audit_remark),1)):v("",!0)])):v("",!0),k.value?(_(),c(bs,{key:3,ref_key:"rxSlipRef",ref:Vt,data:k.value},null,8,["data"])):v("",!0),k.value&&(k.value.audit_by_name||k.value.audit_remark)?(_(),h("div",Ys,[k.value.audit_by_name?(_(),h("div",Gs,[f(" 审核人:"+b(k.value.audit_by_name)+" ",1),k.value.audit_time?(_(),h("span",Ks,b(Ee(k.value.audit_time)),1)):v("",!0)])):v("",!0),k.value.audit_remark?(_(),h("div",Js,"审核意见:"+b(k.value.audit_remark),1)):v("",!0)])):v("",!0)])),[[Le,Me.value]]):(_(),c(q,{key:1,ref_key:"formRef",ref:te,model:n,rules:ga,"label-width":"120px"},{default:s(()=>[D.value==="edit"&&Number(n.is_system_auto)===1?(_(),c(U,{key:0,type:"warning",closable:!1,"show-icon":"",class:"mb-4",title:"本处方为系统自动生成(如挂号完成),默认无药材配方,请补充药材与诊断等信息后再保存。"})):v("",!0),D.value==="edit"?(_(),c(U,{key:1,type:"info",closable:!1,"show-icon":"",class:"mb-4",title:"保存修改后,该处方将重新进入「待审核」,需审核人员再次通过后方可生效。"})):v("",!0),D.value==="edit"&&Number(n.audit_status)===2?(_(),c(U,{key:2,type:"error",closable:!1,"show-icon":"",class:"mb-4"},{title:s(()=>[...e[131]||(e[131]=[f("当前消费者处方为「已驳回」",-1)])]),default:s(()=>[d("div",Qs," 保存修改后将清除驳回并变为「待审核」。"+b(n.audit_remark?`上次意见:${n.audit_remark}`:""),1)]),_:1})):v("",!0),D.value==="edit"&&Number(n.business_prescription_audit_rejected)===1&&Number(n.audit_status)===1?(_(),c(U,{key:3,type:"warning",closable:!1,"show-icon":"",class:"mb-4"},{title:s(()=>[...e[132]||(e[132]=[f("业务订单侧「处方审核」已驳回",-1)])]),default:s(()=>[e[133]||(e[133]=d("div",{class:"text-sm mt-1"}," 消费者处方仍为「已通过」;您修改并保存后,将重置关联业务订单的处方/支付单审核为「待审」,请在「处方业务订单」中继续处理。 ",-1)),String(n.business_prescription_audit_remark||"").trim()?(_(),h("div",Xs," 驳回意见:"+b(n.business_prescription_audit_remark),1)):v("",!0)]),_:1})):v("",!0),D.value==="edit"&&yt.value?(_(),c(U,{key:4,type:"warning",closable:!1,"show-icon":"",class:"mb-4",title:yt.value},null,8,["title"])):v("",!0),Number(n.diagnosis_id)>0?(_(),h("div",Zs,[t(y,{type:"primary",size:"small",onClick:ca},{default:s(()=>[...e[134]||(e[134]=[f(" 查看患者诊单详情 ",-1)])]),_:1}),d("span",en,"关联诊单 #"+b(n.diagnosis_id),1)])):v("",!0),t(H,{gutter:20},{default:s(()=>[t(V,{span:12},{default:s(()=>[t(u,{label:"患者姓名",prop:"patient_name"},{default:s(()=>[t(m,{modelValue:n.patient_name,"onUpdate:modelValue":e[9]||(e[9]=l=>n.patient_name=l),placeholder:"请输入患者姓名",disabled:D.value==="edit"},null,8,["modelValue","disabled"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"门诊号",prop:"visit_no"},{default:s(()=>[t(m,{modelValue:n.visit_no,"onUpdate:modelValue":e[10]||(e[10]=l=>n.visit_no=l),placeholder:"自动生成或手动输入",disabled:D.value==="edit"},null,8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1}),t(H,{gutter:20},{default:s(()=>[t(V,{span:8},{default:s(()=>[t(u,{label:"性别",prop:"gender"},{default:s(()=>[t(r,{modelValue:n.gender,"onUpdate:modelValue":e[11]||(e[11]=l=>n.gender=l)},{default:s(()=>[t(F,{label:1},{default:s(()=>[...e[135]||(e[135]=[f("男",-1)])]),_:1}),t(F,{label:0},{default:s(()=>[...e[136]||(e[136]=[f("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(V,{span:8},{default:s(()=>[t(u,{label:"年龄",prop:"age"},{default:s(()=>[t(T,{modelValue:n.age,"onUpdate:modelValue":e[12]||(e[12]=l=>n.age=l),min:0,max:150,placeholder:"请输入年龄",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:8},{default:s(()=>[t(u,{label:"处方日期",prop:"prescription_date"},{default:s(()=>[t(tl,{modelValue:n.prescription_date,"onUpdate:modelValue":e[13]||(e[13]=l=>n.prescription_date=l),type:"date",placeholder:"选择日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(H,{gutter:20},{default:s(()=>[t(V,{span:12},{default:s(()=>[t(u,{label:"面象",prop:"tongue"},{default:s(()=>[t(m,{modelValue:n.tongue,"onUpdate:modelValue":e[14]||(e[14]=l=>n.tongue=l),placeholder:"请输入面象"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"舌象",prop:"tongue_image"},{default:s(()=>[t(m,{modelValue:n.tongue_image,"onUpdate:modelValue":e[15]||(e[15]=l=>n.tongue_image=l),placeholder:"请输入舌象"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(H,{gutter:20},{default:s(()=>[t(V,{span:12},{default:s(()=>[t(u,{label:"脉象",prop:"pulse"},{default:s(()=>[t(m,{modelValue:n.pulse,"onUpdate:modelValue":e[16]||(e[16]=l=>n.pulse=l),placeholder:"请输入脉象"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"脉象详情",prop:"pulse_condition"},{default:s(()=>[t(m,{modelValue:n.pulse_condition,"onUpdate:modelValue":e[17]||(e[17]=l=>n.pulse_condition=l),placeholder:"请输入脉象详情"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(u,{label:"临床诊断",prop:"clinical_diagnosis"},{default:s(()=>[t(m,{modelValue:n.clinical_diagnosis,"onUpdate:modelValue":e[18]||(e[18]=l=>n.clinical_diagnosis=l),type:"textarea",rows:3,placeholder:"请输入临床诊断",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(u,{label:"药材配方",prop:"herbs",required:""},{default:s(()=>[d("div",tn,[d("div",an,[O((_(),c(y,{type:"success",size:"small",onClick:Ia},{default:s(()=>[...e[137]||(e[137]=[f(" 从处方库导入 ",-1)])]),_:1})),[[W,["cf.prescription/add","cf.prescription/edit","tcm.prescriptionLibrary/lists"]]]),t(y,{type:"warning",size:"small",plain:"",icon:j(Ol),onClick:Ya},{default:s(()=>[...e[138]||(e[138]=[f(" 导入药方 ",-1)])]),_:1},8,["icon"]),e[139]||(e[139]=d("span",{class:"text-xs text-gray-500"}," 粘贴文本解析药名与剂量;须与药品库名称完全一致才录入(导入至主方) ",-1))]),M.value?(_(),h("div",ln,[t(A,{type:"danger",size:"small",effect:"plain"},{default:s(()=>[...e[140]||(e[140]=[f("禁用修改",-1)])]),_:1}),e[141]||(e[141]=f(" 含「禁用修改」处方库模板,药材已锁定,不可增删改,如需调整请重新「从处方库导入」覆盖 ",-1))])):v("",!0),d("div",sn,[d("div",nn,[t(A,{type:"primary",size:"small"},{default:s(()=>[...e[142]||(e[142]=[f("主方",-1)])]),_:1}),t(y,{type:"primary",size:"small",disabled:M.value,onClick:e[19]||(e[19]=l=>Lt("主方"))},{default:s(()=>[...e[143]||(e[143]=[f("添加主方药材",-1)])]),_:1},8,["disabled"])]),t(z,{data:ua.value,class:"mt-2",border:"","empty-text":"暂无主方药材"},{default:s(()=>[t(N,{label:"序号",type:"index",width:"60"}),t(N,{label:"药材名称","min-width":"220"},{default:s(({row:l})=>[t(Tt,{modelValue:n.herbs[l.index].name,"onUpdate:modelValue":C=>n.herbs[l.index].name=C,"medicine-id":n.herbs[l.index].medicine_id,"onUpdate:medicineId":C=>n.herbs[l.index].medicine_id=C,disabled:M.value,class:"w-full"},null,8,["modelValue","onUpdate:modelValue","medicine-id","onUpdate:medicineId","disabled"])]),_:1}),t(N,{label:"剂量(克)","min-width":"120"},{default:s(({row:l})=>[t(T,{modelValue:n.herbs[l.index].dosage,"onUpdate:modelValue":C=>n.herbs[l.index].dosage=C,min:0,precision:1,step:.5,disabled:M.value,placeholder:"剂量",class:"w-full"},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:1}),t(N,{label:"操作",width:"80"},{default:s(({row:l})=>[M.value?(_(),h("span",on,"已锁定")):(_(),c(y,{key:0,type:"danger",link:"",onClick:C=>zt(l.index)},{default:s(()=>[...e[144]||(e[144]=[f("删除",-1)])]),_:1},8,["onClick"]))]),_:1})]),_:1},8,["data"])]),d("div",rn,[d("div",un,[t(A,{type:"warning",size:"small"},{default:s(()=>[...e[145]||(e[145]=[f("辅方",-1)])]),_:1}),t(y,{type:"primary",size:"small",plain:"",disabled:M.value,onClick:e[20]||(e[20]=l=>Lt("辅方"))},{default:s(()=>[...e[146]||(e[146]=[f(" 添加辅方药材 ",-1)])]),_:1},8,["disabled"])]),t(z,{data:xt.value,class:"mt-2",border:"","empty-text":"暂无辅方药材"},{default:s(()=>[t(N,{label:"序号",type:"index",width:"60"}),t(N,{label:"药材名称","min-width":"220"},{default:s(({row:l})=>[t(Tt,{modelValue:n.herbs[l.index].name,"onUpdate:modelValue":C=>n.herbs[l.index].name=C,"medicine-id":n.herbs[l.index].medicine_id,"onUpdate:medicineId":C=>n.herbs[l.index].medicine_id=C,disabled:M.value,class:"w-full"},null,8,["modelValue","onUpdate:modelValue","medicine-id","onUpdate:medicineId","disabled"])]),_:1}),t(N,{label:"剂量(克)","min-width":"120"},{default:s(({row:l})=>[t(T,{modelValue:n.herbs[l.index].dosage,"onUpdate:modelValue":C=>n.herbs[l.index].dosage=C,min:0,precision:1,step:.5,disabled:M.value,placeholder:"剂量",class:"w-full"},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:1}),t(N,{label:"操作",width:"80"},{default:s(({row:l})=>[M.value?(_(),h("span",dn,"已锁定")):(_(),c(y,{key:0,type:"danger",link:"",onClick:C=>zt(l.index)},{default:s(()=>[...e[147]||(e[147]=[f("删除",-1)])]),_:1},8,["onClick"]))]),_:1})]),_:1},8,["data"])]),D.value==="edit"?O((_(),c(U,{key:1,type:"warning",closable:!1,"show-icon":"",class:"mt-3"},{title:s(()=>[...e[148]||(e[148]=[f("业务订单要求(请与本处方保持一致)",-1)])]),default:s(()=>[d("div",pn,[P.orderNo||P.medicationDays!=null||P.remarkAssistant?(_(),h(I,{key:0},[P.orderNo?(_(),h("p",mn,[e[149]||(e[149]=f(" 最近关联订单(按创建倒序): ",-1)),d("span",_n,b(P.orderNo),1)])):v("",!0),d("p",fn,[e[150]||(e[150]=d("span",{class:"font-semibold"},"服用天数(订单)",-1)),f(": "+b(P.medicationDays!=null?`${P.medicationDays} 天`:"— 订单未填写"),1)]),d("p",null,[e[151]||(e[151]=d("span",{class:"font-semibold"},"医助备注(订单)",-1)),e[152]||(e[152]=f(": ",-1)),d("span",cn,b(P.remarkAssistant||"— 无"),1)])],64)):P.loading?v("",!0):(_(),h("p",gn,[...e[153]||(e[153]=[f(" 当前处方暂无关联业务订单,或您无订单列表权限;若有订单,将在此处显示订单内 ",-1),d("span",{class:"font-semibold"},"服用天数",-1),f("与 ",-1),d("span",{class:"font-semibold"},"医助备注",-1),f("。 ",-1)])]))])]),_:1})),[[Le,P.loading]]):v("",!0)])]),_:1}),t(H,{gutter:20},{default:s(()=>[t(V,{span:8},{default:s(()=>[t(u,{label:"剂数",prop:"dose_count"},{default:s(()=>[t(T,{modelValue:n.dose_count,"onUpdate:modelValue":e[21]||(e[21]=l=>n.dose_count=l),min:1,placeholder:"剂数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:8},{default:s(()=>[t(u,{label:"剂量单位",prop:"dose_unit"},{default:s(()=>[t(x,{modelValue:n.dose_unit,"onUpdate:modelValue":e[22]||(e[22]=l=>n.dose_unit=l),placeholder:"请选择",class:"w-full"},{default:s(()=>[t(i,{label:"剂",value:"剂"}),t(i,{label:"丸",value:"丸"}),t(i,{label:"袋",value:"袋"}),t(i,{label:"盒",value:"盒"}),t(i,{label:"瓶",value:"瓶"}),t(i,{label:"膏",value:"膏"}),t(i,{label:"贴",value:"贴"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(V,{span:8},{default:s(()=>[t(u,{label:"处方类型",prop:"prescription_type"},{default:s(()=>[t(x,{modelValue:n.prescription_type,"onUpdate:modelValue":e[23]||(e[23]=l=>n.prescription_type=l),placeholder:"请选择处方类型",class:"w-full"},{default:s(()=>[t(i,{label:"浓缩水丸",value:"浓缩水丸"}),t(i,{label:"饮片",value:"饮片"}),t(i,{label:"颗粒",value:"颗粒"}),t(i,{label:"丸剂",value:"丸剂"}),t(i,{label:"散剂",value:"散剂"}),t(i,{label:"膏方",value:"膏方"}),t(i,{label:"汤剂",value:"汤剂"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),e[161]||(e[161]=d("div",{class:"usage-formula-title usage-formula-title--main"},"主方用法",-1)),t(H,{gutter:20},{default:s(()=>[t(V,{span:8},{default:s(()=>[t(u,{label:"用量",prop:"dosage_amount"},{default:s(()=>[n.prescription_type==="浓缩水丸"?(_(),c(x,{key:0,modelValue:n.dosage_amount,"onUpdate:modelValue":e[24]||(e[24]=l=>n.dosage_amount=l),placeholder:"请选择用量",class:"w-full"},{default:s(()=>[t(i,{label:"1g",value:1}),t(i,{label:"2g",value:2}),t(i,{label:"3g",value:3}),t(i,{label:"4g",value:4}),t(i,{label:"5g",value:5}),t(i,{label:"6g",value:6}),t(i,{label:"7g",value:7}),t(i,{label:"8g",value:8}),t(i,{label:"9g",value:9}),t(i,{label:"10g",value:10})]),_:1},8,["modelValue"])):n.prescription_type==="饮片"?(_(),c(x,{key:1,modelValue:n.dosage_amount,"onUpdate:modelValue":e[25]||(e[25]=l=>n.dosage_amount=l),placeholder:"请选择用量",class:"w-full"},{default:s(()=>[t(i,{label:"50ml",value:50}),t(i,{label:"100ml",value:100}),t(i,{label:"120ml",value:120}),t(i,{label:"150ml",value:150}),t(i,{label:"180ml",value:180}),t(i,{label:"200ml",value:200}),t(i,{label:"250ml",value:250})]),_:1},8,["modelValue"])):(_(),c(T,{key:2,modelValue:n.dosage_amount,"onUpdate:modelValue":e[26]||(e[26]=l=>n.dosage_amount=l),min:0,precision:2,class:"w-full"},null,8,["modelValue"]))]),_:1})]),_:1}),n.prescription_type==="浓缩水丸"?(_(),c(V,{key:0,span:8},{default:s(()=>[t(u,{label:" ",prop:"dosage_bag_count","label-width":"12px"},{default:s(()=>[t(x,{modelValue:n.dosage_bag_count,"onUpdate:modelValue":e[27]||(e[27]=l=>n.dosage_bag_count=l),placeholder:"请选择袋数",class:"w-[120px]"},{default:s(()=>[t(i,{label:"1袋",value:1}),t(i,{label:"2袋",value:2}),t(i,{label:"3袋",value:3}),t(i,{label:"4袋",value:4}),t(i,{label:"5袋",value:5})]),_:1},8,["modelValue"])]),_:1})]),_:1})):v("",!0),n.prescription_type==="饮片"?(_(),c(V,{key:1,span:8},{default:s(()=>[t(u,{label:"是否代煎",prop:"need_decoction"},{default:s(()=>[t(r,{modelValue:n.need_decoction,"onUpdate:modelValue":e[28]||(e[28]=l=>n.need_decoction=l)},{default:s(()=>[t(F,{label:!0},{default:s(()=>[...e[154]||(e[154]=[f("代煎",-1)])]),_:1}),t(F,{label:!1},{default:s(()=>[...e[155]||(e[155]=[f("不代煎",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})):v("",!0),n.prescription_type==="饮片"?(_(),c(V,{key:2,span:8},{default:s(()=>[t(u,{label:"每贴出包数",prop:"bags_per_dose"},{default:s(()=>[t(x,{modelValue:n.bags_per_dose,"onUpdate:modelValue":e[29]||(e[29]=l=>n.bags_per_dose=l),placeholder:"请选择",class:"w-full"},{default:s(()=>[t(i,{label:"1包",value:1}),t(i,{label:"2包",value:2}),t(i,{label:"3包",value:3}),t(i,{label:"4包",value:4}),t(i,{label:"5包",value:5}),t(i,{label:"6包",value:6}),t(i,{label:"7包",value:7}),t(i,{label:"8包",value:8}),t(i,{label:"9包",value:9})]),_:1},8,["modelValue"])]),_:1})]),_:1})):v("",!0),t(V,{span:8},{default:s(()=>[t(u,{label:"每天几次",prop:"times_per_day"},{default:s(()=>[t(T,{modelValue:n.times_per_day,"onUpdate:modelValue":e[30]||(e[30]=l=>n.times_per_day=l),min:1,max:6,class:"!w-full",placeholder:"每天服用次数"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:8},{default:s(()=>[t(u,{label:"服用天数",prop:"usage_days"},{default:s(()=>[t(T,{modelValue:n.usage_days,"onUpdate:modelValue":e[31]||(e[31]=l=>n.usage_days=l),min:1,max:365,placeholder:"服用天数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),xt.value.length>0?(_(),h(I,{key:6},[e[158]||(e[158]=d("div",{class:"usage-formula-title usage-formula-title--aux"},"辅方用法",-1)),t(H,{gutter:20},{default:s(()=>[t(V,{span:8},{default:s(()=>[t(u,{label:"用量"},{default:s(()=>[n.prescription_type==="浓缩水丸"?(_(),c(x,{key:0,modelValue:n.aux_usage.dosage_amount,"onUpdate:modelValue":e[32]||(e[32]=l=>n.aux_usage.dosage_amount=l),placeholder:"请选择用量",class:"w-full"},{default:s(()=>[(_(),h(I,null,ee(10,l=>t(i,{key:l,label:l+"g",value:l},null,8,["label","value"])),64))]),_:1},8,["modelValue"])):n.prescription_type==="饮片"?(_(),c(x,{key:1,modelValue:n.aux_usage.dosage_amount,"onUpdate:modelValue":e[33]||(e[33]=l=>n.aux_usage.dosage_amount=l),placeholder:"请选择用量",class:"w-full"},{default:s(()=>[t(i,{label:"50ml",value:50}),t(i,{label:"100ml",value:100}),t(i,{label:"120ml",value:120}),t(i,{label:"150ml",value:150}),t(i,{label:"180ml",value:180}),t(i,{label:"200ml",value:200}),t(i,{label:"250ml",value:250})]),_:1},8,["modelValue"])):(_(),c(T,{key:2,modelValue:n.aux_usage.dosage_amount,"onUpdate:modelValue":e[34]||(e[34]=l=>n.aux_usage.dosage_amount=l),min:0,precision:2,class:"w-full"},null,8,["modelValue"]))]),_:1})]),_:1}),n.prescription_type==="浓缩水丸"?(_(),c(V,{key:0,span:8},{default:s(()=>[t(u,{label:" ","label-width":"12px"},{default:s(()=>[t(x,{modelValue:n.aux_usage.dosage_bag_count,"onUpdate:modelValue":e[35]||(e[35]=l=>n.aux_usage.dosage_bag_count=l),placeholder:"请选择袋数",class:"w-[120px]"},{default:s(()=>[t(i,{label:"1袋",value:1}),t(i,{label:"2袋",value:2}),t(i,{label:"3袋",value:3}),t(i,{label:"4袋",value:4}),t(i,{label:"5袋",value:5})]),_:1},8,["modelValue"])]),_:1})]),_:1})):v("",!0),n.prescription_type==="饮片"?(_(),c(V,{key:1,span:8},{default:s(()=>[t(u,{label:"是否代煎"},{default:s(()=>[t(r,{modelValue:n.aux_usage.need_decoction,"onUpdate:modelValue":e[36]||(e[36]=l=>n.aux_usage.need_decoction=l)},{default:s(()=>[t(F,{label:!0},{default:s(()=>[...e[156]||(e[156]=[f("代煎",-1)])]),_:1}),t(F,{label:!1},{default:s(()=>[...e[157]||(e[157]=[f("不代煎",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})):v("",!0),n.prescription_type==="饮片"?(_(),c(V,{key:2,span:8},{default:s(()=>[t(u,{label:"每贴出包数"},{default:s(()=>[t(x,{modelValue:n.aux_usage.bags_per_dose,"onUpdate:modelValue":e[37]||(e[37]=l=>n.aux_usage.bags_per_dose=l),placeholder:"请选择",class:"w-full"},{default:s(()=>[(_(),h(I,null,ee(9,l=>t(i,{key:l,label:l+"包",value:l},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1})):v("",!0),t(V,{span:8},{default:s(()=>[t(u,{label:"每天几次"},{default:s(()=>[t(T,{modelValue:n.aux_usage.times_per_day,"onUpdate:modelValue":e[38]||(e[38]=l=>n.aux_usage.times_per_day=l),min:1,max:6,class:"!w-full",placeholder:"每天服用次数"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:8},{default:s(()=>[t(u,{label:"服用天数"},{default:s(()=>[t(T,{modelValue:n.aux_usage.usage_days,"onUpdate:modelValue":e[39]||(e[39]=l=>n.aux_usage.usage_days=l),min:1,max:365,placeholder:"服用天数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],64)):v("",!0),t(u,{label:"用法",prop:"usage_instruction"},{default:s(()=>[t(m,{modelValue:n.usage_instruction,"onUpdate:modelValue":e[40]||(e[40]=l=>n.usage_instruction=l),placeholder:"例如:水煎服,一日二次",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(H,{gutter:20},{default:s(()=>[t(V,{span:12},{default:s(()=>[t(u,{label:"服用时间",prop:"usage_time"},{default:s(()=>[t(x,{modelValue:n.usage_time,"onUpdate:modelValue":e[41]||(e[41]=l=>n.usage_time=l),placeholder:"请选择服用时间",class:"w-full"},{default:s(()=>[t(i,{label:"饭前",value:"饭前"}),t(i,{label:"饭后",value:"饭后"}),t(i,{label:"饭中",value:"饭中"}),t(i,{label:"空腹",value:"空腹"}),t(i,{label:"睡前",value:"睡前"}),t(i,{label:"晨起",value:"晨起"}),t(i,{label:"随时",value:"随时"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"服用方式",prop:"usage_way"},{default:s(()=>[t(x,{modelValue:n.usage_way,"onUpdate:modelValue":e[42]||(e[42]=l=>n.usage_way=l),placeholder:"请选择服用方式",class:"w-full"},{default:s(()=>[t(i,{label:"温水送服",value:"温水送服"}),t(i,{label:"开水冲服",value:"开水冲服"}),t(i,{label:"黄酒送服",value:"黄酒送服"}),t(i,{label:"淡盐水送服",value:"淡盐水送服"}),t(i,{label:"米汤送服",value:"米汤送服"}),t(i,{label:"嚼服",value:"嚼服"}),t(i,{label:"含化",value:"含化"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(u,{label:"忌口",prop:"dietary_taboo"},{default:s(()=>[t(x,{modelValue:n.dietary_taboo,"onUpdate:modelValue":e[43]||(e[43]=l=>n.dietary_taboo=l),multiple:"",placeholder:"请选择忌口内容(可多选)",class:"w-full"},{default:s(()=>[t(i,{label:"辛辣食物",value:"辛辣食物"}),t(i,{label:"生冷食物",value:"生冷食物"}),t(i,{label:"油腻食物",value:"油腻食物"}),t(i,{label:"海鲜",value:"海鲜"}),t(i,{label:"牛羊肉",value:"牛羊肉"}),t(i,{label:"鸡蛋",value:"鸡蛋"}),t(i,{label:"豆制品",value:"豆制品"}),t(i,{label:"酒类",value:"酒类"}),t(i,{label:"浓茶",value:"浓茶"}),t(i,{label:"咖啡",value:"咖啡"}),t(i,{label:"烟草",value:"烟草"}),t(i,{label:"萝卜",value:"萝卜"})]),_:1},8,["modelValue"])]),_:1}),t(u,{label:"其他说明",prop:"usage_notes"},{default:s(()=>[t(m,{modelValue:n.usage_notes,"onUpdate:modelValue":e[44]||(e[44]=l=>n.usage_notes=l),type:"textarea",rows:2,placeholder:"其他服用注意事项",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(u,{label:"医师姓名",prop:"doctor_name"},{default:s(()=>[t(m,{modelValue:n.doctor_name,"onUpdate:modelValue":e[45]||(e[45]=l=>n.doctor_name=l),placeholder:"请输入医师姓名"},null,8,["modelValue"])]),_:1}),t(u,{label:"医师签名",prop:"doctor_signature",required:""},{default:s(()=>[d("div",bn,[d("canvas",{ref_key:"signatureCanvasRef",ref:K,class:"signature-canvas",onPointerdown:we(Da,["prevent"]),onPointermove:we(Ra,["prevent"]),onPointerup:we(Ut,["prevent"]),onPointercancel:we(Ut,["prevent"])},null,544),d("div",vn,[t(y,{size:"small",onClick:Aa},{default:s(()=>[...e[159]||(e[159]=[f("清空签名",-1)])]),_:1})])]),e[160]||(e[160]=d("div",{class:"text-xs text-amber-600 mt-1"},"* 必填,请在框内手写医师签名",-1))]),_:1})]),_:1},8,["model"]))]),_:1},8,["modelValue","title","size"]),t(he,{modelValue:_e.value,"onUpdate:modelValue":e[53]||(e[53]=l=>_e.value=l),title:"修正姓名、性别与手机号",width:"440px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:Wt},{footer:s(()=>[t(y,{onClick:e[52]||(e[52]=l=>_e.value=!1)},{default:s(()=>[...e[167]||(e[167]=[f("取消",-1)])]),_:1}),t(y,{type:"primary",loading:qe.value,onClick:Bt},{default:s(()=>[...e[168]||(e[168]=[f(" 保存 ",-1)])]),_:1},8,["loading"])]),default:s(()=>[t(q,{ref_key:"patchPatientFormRef",ref:He,model:$,rules:qt,"label-width":"88px"},{default:s(()=>[t(u,{label:"处方编号"},{default:s(()=>[d("span",yn,"#"+b($.id||"—"),1)]),_:1}),t(u,{label:"患者姓名",prop:"patient_name"},{default:s(()=>[t(m,{modelValue:$.patient_name,"onUpdate:modelValue":e[49]||(e[49]=l=>$.patient_name=l),maxlength:"50","show-word-limit":"",placeholder:"处方笺展示姓名"},null,8,["modelValue"])]),_:1}),t(u,{label:"性别",prop:"gender"},{default:s(()=>[t(r,{modelValue:$.gender,"onUpdate:modelValue":e[50]||(e[50]=l=>$.gender=l)},{default:s(()=>[t(F,{label:1},{default:s(()=>[...e[165]||(e[165]=[f("男",-1)])]),_:1}),t(F,{label:0},{default:s(()=>[...e[166]||(e[166]=[f("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(u,{label:"手机号",prop:"phone"},{default:s(()=>[t(m,{modelValue:$.phone,"onUpdate:modelValue":e[51]||(e[51]=l=>$.phone=l),maxlength:"20",placeholder:"处方笺展示手机号"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),e[169]||(e[169]=d("p",{class:"text-xs text-gray-500 -mt-2 mb-2"}," 仅更新处方表 patient_name、gender、phone,不改变审核状态;记录写入业务订单操作日志(有关联订单时可在此订单日志中查看)。 ",-1))]),_:1},8,["modelValue"]),t(he,{modelValue:fe.value,"onUpdate:modelValue":e[72]||(e[72]=l=>fe.value=l),title:"创建业务订单",width:"940px",top:"4vh","close-on-click-modal":!1,onClosed:bt,class:"create-order-dialog"},{footer:s(()=>[d("div",Wn,[d("div",Bn,[d("span",Yn,"第 "+b(R.value+1)+" / 3 步",1),R.value===2&&E.value>0?(_(),h("span",Gn," 订单金额与关联支付单合计须 ≥ ¥"+b(ue(E.value)),1)):v("",!0)]),d("div",Kn,[t(y,{size:"large",onClick:e[71]||(e[71]=l=>fe.value=!1)},{default:s(()=>[...e[180]||(e[180]=[f("取消",-1)])]),_:1}),R.value>0?(_(),c(y,{key:0,size:"large",onClick:oa},{default:s(()=>[...e[181]||(e[181]=[f("上一步",-1)])]),_:1})):v("",!0),R.value<2?(_(),c(y,{key:1,type:"primary",size:"large",onClick:ia},{default:s(()=>[...e[182]||(e[182]=[f(" 下一步 ",-1)])]),_:1})):v("",!0),R.value===2?(_(),c(y,{key:2,type:"primary",size:"large",loading:We.value,onClick:ra},{default:s(()=>[...e[183]||(e[183]=[f(" 创建业务订单 ",-1)])]),_:1},8,["loading"])):v("",!0)])])]),default:s(()=>[d("div",xn,[B.value?(_(),h("div",Vn,[d("div",kn,[e[170]||(e[170]=d("span",{class:"create-order-rx-card__badge"},"关联处方",-1)),d("div",hn,[d("span",wn,"#"+b(B.value.id),1),B.value.sn?(_(),h("span",Sn,b(B.value.sn),1)):v("",!0),d("span",Cn,b(B.value.patient_name||"—"),1)])])])):v("",!0),t(ll,{active:R.value,"finish-status":"success","align-center":"",class:"create-order-steps"},{default:s(()=>[t(rt,{title:"患者与收货",description:"诊单与物流地址"}),t(rt,{title:"服务与支付单",description:"套餐与关联收款"}),t(rt,{title:"金额与确认",description:"费用与备注"})]),_:1},8,["active"]),d("p",Nn,b(Yt.value),1),t(q,{ref_key:"createOrderFormRef",ref:ce,model:p,rules:ta.value,"label-width":"108px",class:"create-order-form"},{default:s(()=>[O(d("div",Un,[t(H,{gutter:20},{default:s(()=>[t(V,{span:24},{default:s(()=>[t(u,{label:"诊单患者",prop:"patient_id"},{default:s(()=>[t(x,{modelValue:p.patient_id,"onUpdate:modelValue":e[54]||(e[54]=l=>p.patient_id=l),class:"w-full",placeholder:"搜索姓名/手机/身份证",filterable:"",remote:"","remote-method":sa,loading:Be.value,onChange:na},{default:s(()=>[(_(!0),h(I,null,ee(X.value,l=>(_(),c(i,{key:l.id,label:`${l.patient_name} (${l.phone||"无手机"})`,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"收货人",prop:"recipient_name"},{default:s(()=>[t(m,{modelValue:p.recipient_name,"onUpdate:modelValue":e[55]||(e[55]=l=>p.recipient_name=l),placeholder:"姓名",maxlength:"50"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"收货手机",prop:"recipient_phone"},{default:s(()=>[t(m,{modelValue:p.recipient_phone,"onUpdate:modelValue":e[56]||(e[56]=l=>p.recipient_phone=l),placeholder:"物流联系",maxlength:"20"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:24},{default:s(()=>[t(u,{label:"省市区",prop:"region"},{default:s(()=>[t(sl,{modelValue:p.region,"onUpdate:modelValue":e[57]||(e[57]=l=>p.region=l),options:ge.value,props:{value:"name",label:"name",children:"children",emitPath:!0,checkStrictly:!1},placeholder:"省 / 市 / 区",clearable:"",filterable:"",class:"w-full",onChange:Zt},null,8,["modelValue","options"])]),_:1})]),_:1}),t(V,{span:24},{default:s(()=>[t(u,{label:"详细地址",prop:"shipping_address"},{default:s(()=>[t(m,{modelValue:p.shipping_address,"onUpdate:modelValue":e[58]||(e[58]=l=>p.shipping_address=l),type:"textarea",rows:3,placeholder:"街道、小区、门牌号等详细地址",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[pt,R.value===0]]),O(d("div",Pn,[t(H,{gutter:20},{default:s(()=>[Kt.value?(_(),c(V,{key:0,span:24},{default:s(()=>[t(u,{label:"发货药房",prop:"ship_mode"},{default:s(()=>[t(r,{modelValue:p.ship_mode,"onUpdate:modelValue":e[59]||(e[59]=l=>p.ship_mode=l)},{default:s(()=>[t(o,{label:"gancao"},{default:s(()=>[...e[171]||(e[171]=[f("甘草药房",-1)])]),_:1}),t(o,{label:"direct"},{default:s(()=>[...e[172]||(e[172]=[f("洛阳药房",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})):v("",!0),t(V,{xs:24,sm:8},{default:s(()=>[t(u,{label:"复诊"},{default:s(()=>[t(nl,{modelValue:p.is_follow_up,"onUpdate:modelValue":e[60]||(e[60]=l=>p.is_follow_up=l),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{xs:24,sm:8},{default:s(()=>[t(u,{label:"服用天数",class:"create-order-form-item--inline-num"},{default:s(()=>[d("div",$n,[t(T,{modelValue:p.medication_days,"onUpdate:modelValue":e[61]||(e[61]=l=>p.medication_days=l),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[173]||(e[173]=d("span",{class:"create-order-unit-suffix"},"天",-1))])]),_:1})]),_:1}),t(V,{xs:24,sm:8},{default:s(()=>[t(u,{label:"上次医生"},{default:s(()=>[t(m,{modelValue:p.prev_staff,"onUpdate:modelValue":e[62]||(e[62]=l=>p.prev_staff=l),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"服务渠道"},{default:s(()=>[t(m,{modelValue:p.service_channel,"onUpdate:modelValue":e[63]||(e[63]=l=>p.service_channel=l),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"服务套餐"},{default:s(()=>[t(x,{modelValue:p.service_package,"onUpdate:modelValue":e[64]||(e[64]=l=>p.service_package=l),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"请选择服务套餐",clearable:"",class:"w-full"},{default:s(()=>[(_(!0),h(I,null,ee(Ge.value,l=>(_(),c(i,{key:l.value,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(V,{span:24},{default:s(()=>[t(u,{label:"关联支付单",prop:"pay_order_ids"},{default:s(()=>[t(x,{modelValue:p.pay_order_ids,"onUpdate:modelValue":e[65]||(e[65]=l=>p.pay_order_ids=l),class:"w-full",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:E.value>0?"请至少选择一笔本诊单支付单(已开启门槛)":"多选本诊单支付单(可选)",loading:Ye.value},{default:s(()=>[(_(!0),h(I,null,ee(re.value,l=>(_(),c(i,{key:l.id,label:`${l.order_no} · ¥${l.amount} · ${gt(l.order_type)}`,value:l.id,class:"!h-auto py-1.5"},{default:s(()=>[d("div",En,[d("div",Dn,[d("span",Rn,b(l.order_no),1),d("span",An,"¥"+b(l.amount),1)]),d("div",On,[d("span",Ln,[f(b(gt(l.order_type)),1),l.remark?(_(),h(I,{key:0},[f(" · "+b(l.remark),1)],64)):v("",!0)]),d("span",zn,b(String(l.create_time||"").substring(0,16)),1)])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","loading"]),d("div",Tn,[E.value>0?(_(),h(I,{key:0},[d("span",In,"当前已开启关联支付门槛(¥"+b(ue(E.value))+"),须至少选择一笔支付单。",1),e[174]||(e[174]=d("span",{class:"mx-1"},null,-1))],64)):v("",!0),e[176]||(e[176]=f(" 主管/本诊单医助可见全部支付单;否则仅本人收款单。已被占用的支付单不列出。 ",-1)),t(ol,{content:"主管或本诊单医助可见该诊单全部支付单(待支付/已支付),否则仅本人创建的收款单。已被其他有效业务订单占用的支付单不会出现在此列表。",placement:"top"},{default:s(()=>[...e[175]||(e[175]=[d("span",{class:"text-primary cursor-help ml-0.5"},"详情",-1)])]),_:1})])]),_:1})]),_:1})]),_:1})],512),[[pt,R.value===1]]),O(d("div",Fn,[d("div",{class:ql(["create-order-deposit-bar",Ke.value>=E.value?"is-ok":"is-warn"])},[d("div",jn,[e[177]||(e[177]=d("span",{class:"create-order-deposit-bar__label"},"定金门槛",-1)),d("strong",null,"¥"+b(ue(E.value)),1),d("span",Mn,b(E.value>0?"须 ≥ 此值":"未设置"),1)]),e[179]||(e[179]=d("div",{class:"create-order-deposit-bar__sep"},null,-1)),d("div",qn,[e[178]||(e[178]=d("span",{class:"create-order-deposit-bar__label"},"已选收款",-1)),d("strong",null,"¥"+b(ue(Ke.value)),1),d("span",Hn,b(Ke.value>=E.value?"已达标":"未达标"),1)])],2),t(H,{gutter:20,class:"create-order-step-panel__row-after-bar"},{default:s(()=>[t(V,{span:12},{default:s(()=>[t(u,{label:"费用类别",prop:"fee_type"},{default:s(()=>[t(x,{modelValue:p.fee_type,"onUpdate:modelValue":e[66]||(e[66]=l=>p.fee_type=l),placeholder:"请选择",class:"w-full"},{default:s(()=>[t(i,{label:"挂号费",value:1}),t(i,{label:"问诊费",value:2}),t(i,{label:"药品费用",value:3}),t(i,{label:"首付费用",value:4}),t(i,{label:"尾款费用",value:5}),t(i,{label:"其他费用",value:6}),t(i,{label:"全部费用",value:7}),t(i,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"总金额",prop:"amount"},{default:s(()=>[t(T,{modelValue:p.amount,"onUpdate:modelValue":e[67]||(e[67]=l=>p.amount=l),min:ea.value,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"元"},null,8,["modelValue","min"])]),_:1})]),_:1}),O((_(),c(V,{span:12},{default:s(()=>[t(u,{label:"内部成本"},{default:s(()=>[t(T,{modelValue:p.internal_cost,"onUpdate:modelValue":e[68]||(e[68]=l=>p.internal_cost=l),min:0,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"财务可见"},null,8,["modelValue"])]),_:1})]),_:1})),[[W,["finance.account_log/lists"]]]),t(V,{span:24},{default:s(()=>[O((_(),c(u,{label:"药房备注"},{default:s(()=>[t(m,{modelValue:p.remark_extra,"onUpdate:modelValue":e[69]||(e[69]=l=>p.remark_extra=l),type:"textarea",rows:3,placeholder:"选填,对内说明",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})),[[W,["tcm.prescriptionOrder/editRemarkExtra"]]]),t(u,{label:"医助备注"},{default:s(()=>[t(m,{modelValue:p.remark_assistant,"onUpdate:modelValue":e[70]||(e[70]=l=>p.remark_assistant=l),type:"textarea",rows:3,placeholder:"选填,医助对内说明",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[pt,R.value===2]])]),_:1},8,["model","rules"])])]),_:1},8,["modelValue"]),t(he,{modelValue:ve.value,"onUpdate:modelValue":e[78]||(e[78]=l=>ve.value=l),title:"从处方库导入",width:"800px","close-on-click-modal":!1},{default:s(()=>[d("div",Jn,[t(m,{modelValue:De.value,"onUpdate:modelValue":e[73]||(e[73]=l=>De.value=l),class:"flex-1",placeholder:"请输入处方名称搜索",clearable:"",onKeyup:dt(Oe,["enter"]),onClear:Oe},{append:s(()=>[t(y,{icon:j(Hl),onClick:Oe},null,8,["icon"])]),_:1},8,["modelValue"]),t(x,{modelValue:Re.value,"onUpdate:modelValue":e[74]||(e[74]=l=>Re.value=l),placeholder:"处方类型",clearable:"",class:"w-[140px]",onChange:Oe},{default:s(()=>[t(i,{label:"全部",value:""}),t(i,{label:"主方",value:"主方"}),t(i,{label:"辅方",value:"辅方"})]),_:1},8,["modelValue"])]),d("div",Qn,[e[186]||(e[186]=d("span",{class:"text-sm text-gray-600 shrink-0"},"导入方式",-1)),t(r,{modelValue:ye.value,"onUpdate:modelValue":e[75]||(e[75]=l=>ye.value=l)},{default:s(()=>[t(F,{label:"replace"},{default:s(()=>[...e[184]||(e[184]=[f("覆盖现有药材",-1)])]),_:1}),t(F,{label:"append"},{default:s(()=>[...e[185]||(e[185]=[f("追加到末尾",-1)])]),_:1})]),_:1},8,["modelValue"])]),O((_(),c(z,{data:et.value,height:"400",style:{cursor:"pointer"},onRowClick:Fa},{default:s(()=>[t(N,{label:"处方名称",prop:"prescription_name","min-width":"150","show-overflow-tooltip":""}),t(N,{label:"处方类型",width:"90"},{default:s(({row:l})=>[t(A,{type:l.formula_type==="辅方"?"warning":"primary",size:"small"},{default:s(()=>[f(b(l.formula_type||"主方"),1)]),_:2},1032,["type"])]),_:1}),t(N,{label:"药材数量",width:"100"},{default:s(({row:l})=>{var C;return[f(b(((C=l.herbs)==null?void 0:C.length)||0)+"味 ",1)]}),_:1}),t(N,{label:"药材明细","min-width":"300","show-overflow-tooltip":""},{default:s(({row:l})=>[l.herbs&&l.herbs.length>0?(_(),h("span",Xn,b(l.herbs.map(C=>`${C.name} ${C.dosage}g`).join("、")),1)):(_(),h("span",Zn,"暂无药材"))]),_:1}),t(N,{label:"是否公开",width:"110"},{default:s(({row:l})=>[t(A,{type:l.is_public?"success":"info",size:"small"},{default:s(()=>[f(b(l.is_public?"所有人可见":"仅自己可见"),1)]),_:2},1032,["type"])]),_:1}),t(N,{label:"创建人",prop:"creator_name",width:"100"}),t(N,{label:"操作",width:"100",fixed:"right"},{default:s(({row:l})=>[t(y,{type:"primary",link:"",onClick:we(C=>At(l),["stop"])},{default:s(()=>[...e[187]||(e[187]=[f("导入",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[Le,Ze.value]]),d("div",eo,[t(il,{"current-page":xe.value,"onUpdate:currentPage":e[76]||(e[76]=l=>xe.value=l),"page-size":tt.value,"onUpdate:pageSize":e[77]||(e[77]=l=>tt.value=l),total:at.value,"page-sizes":[10,15,20,50],layout:"total, sizes, prev, pager, next",onCurrentChange:Ae,onSizeChange:Ae},null,8,["current-page","page-size","total"])])]),_:1},8,["modelValue"]),t(he,{modelValue:Ve.value,"onUpdate:modelValue":e[82]||(e[82]=l=>Ve.value=l),title:"导入药方(识别药材)",width:"560px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:e[83]||(e[83]=l=>ke.value="")},{footer:s(()=>[t(y,{onClick:e[81]||(e[81]=l=>Ve.value=!1)},{default:s(()=>[...e[191]||(e[191]=[f("取消",-1)])]),_:1}),t(y,{type:"primary",loading:st.value,onClick:Ga},{default:s(()=>[...e[192]||(e[192]=[f(" 识别并导入 ",-1)])]),_:1},8,["loading"])]),default:s(()=>[e[193]||(e[193]=d("p",{class:"text-gray-500 text-sm mb-2 leading-relaxed"}," 粘贴整张药方文本,系统按「药名 + 剂量」解析;药名须与药品库中名称完全一致才会录入,否则跳过。支持顿号/逗号/换行分隔;单行可用空格分味(如「黄芪15g 白术10g」);「黄芪、党参各10克」等同剂量写法亦可识别。 ",-1)),t(m,{modelValue:ke.value,"onUpdate:modelValue":e[79]||(e[79]=l=>ke.value=l),type:"textarea",rows:10,placeholder:`示例: 黄芪15 党参12 茯苓10 diff --git a/server/public/admin/assets/index-b8RBNrGF.js b/server/public/admin/assets/index-CDvJ_gqb.js similarity index 99% rename from server/public/admin/assets/index-b8RBNrGF.js rename to server/public/admin/assets/index-CDvJ_gqb.js index bfb2f292e..9a9f72883 100644 --- a/server/public/admin/assets/index-b8RBNrGF.js +++ b/server/public/admin/assets/index-CDvJ_gqb.js @@ -1 +1 @@ -var An=Object.defineProperty;var In=(i,o,a)=>o in i?An(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var D=(i,o,a)=>In(i,typeof o!="symbol"?o+"":o,a);import{o as He,dx as bn,q as M,r as H,T as Z,P as B,s as b,O as ot,u as R,dy as kn,a7 as Rn,p as j,dz as Mn,ap as Ln,aq as Dn,R as xn,ac as Jt,ad as Zt,v as C,D as k,L as ke,bm as Un,aw as wt,w as Vn,av as Re,K as Nn,a1 as Pn,dA as On,dB as Hn,ba as Kn,bo as $n,dC as zn,dD as jn,dE as Wn,dF as Bn,dG as qn,dH as Fn,dI as Gn,dJ as Xn,dK as Yn,dL as Jn,dM as Zn,dr as Qn,t as Me,ae as to,ar as eo,M as p,dN as no,dq as x,n as Qt,dO as oo,ds as X,dt as Y,du as z,dP as ao}from"./.pnpm-CyuAWpdG.js";import{u as io,l as so}from"./file-CefRfHD9.js";import{a as ro}from"./patient-Bz8-LT2R.js";import{Z as Ot,am as lo,aI as co,aJ as uo,aK as fo,at as mo}from"./tcm-QAkeqQ9Q.js";import{_ as Ke,u as ho,j as I}from"./index-Dxvz9lb1.js";import{a as vo,c as Le}from"./appointment-type-DJT6wPaT.js";import{p as po}from"./im-business-message-parse-DdA9BRrQ.js";import{T as J}from"./@tencentcloud/chat-Dqh0gV5b.js";import{X as Ht}from"./@tencentcloud/chat-uikit-engine-BOxL0feI.js";import{c as Ct}from"./@tencentcloud/call-engine-js-DCEY106C.js";import"./dayjs-B2bPhvDy.js";import"./tim-upload-plugin-CK05mjrC.js";import"./tim-profanity-filter-plugin-CIiDZ6v0.js";import"./rtc-detect-TVc6uI0Q.js";function go(){const i=["video/webm;codecs=vp9,opus","video/webm;codecs=vp8,opus","video/webm;codecs=vp9","video/webm;codecs=vp8","video/webm"];for(const o of i)if(MediaRecorder.isTypeSupported(o))return o;return""}function _o(){const i=window;return i.AudioContext||i.webkitAudioContext||null}function De(i,o,a,r,s,c){const m=o.videoWidth||o.clientWidth||1,u=o.videoHeight||o.clientHeight||1,h=Math.max(s/m,c/u),d=m*h,v=u*h,T=a+(s-d)/2,U=r+(c-v)/2;try{i.drawImage(o,T,U,d,v)}catch{}}function yo(i,o,a,r){i.fillStyle="#0b0b0b",i.fillRect(0,0,a,r);const s=o.filter(d=>d.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA);if(s.length===0)return;if(s.length===1){De(i,s[0],0,0,a,r);return}const c=Math.ceil(Math.sqrt(s.length)),m=Math.ceil(s.length/c),u=a/c,h=r/m;s.forEach((d,v)=>{const T=v%c,U=Math.floor(v/c);De(i,d,T*u,U*h,u,h)})}function wo(i){const o=new Set,a=[];for(const r of i){const s=r.srcObject;if(s instanceof MediaStream)for(const c of s.getAudioTracks())c.kind!=="audio"||c.readyState==="ended"||!c.enabled||o.has(c.id)||(o.add(c.id),a.push(c))}return a}function Co(i){var r;const o=new Set,a=[];for(const s of i){if(s.readyState{const h=[];for(const d of u)o.has(d)||(o.add(d),h.push(d));return h},r=[...i.querySelectorAll("video")];if(r.length>0)return a(r);const s=document.getElementById("tuicallkit-id");if(s){const u=[...s.querySelectorAll("video")];if(u.length>0)return a(u)}const m=[...document.body.querySelectorAll("video")].filter(u=>{const h=u.srcObject;return h instanceof MediaStream?h.getVideoTracks().some(d=>d.readyState==="live"):!1});return a(m)}class To{constructor(){D(this,"canvas",null);D(this,"ctx",null);D(this,"rafId",0);D(this,"container",null);D(this,"mediaRecorder",null);D(this,"chunks",[]);D(this,"mimeType","");D(this,"audioCtx",null);D(this,"audioDestination",null);D(this,"wiredTrackIds",new Set);D(this,"canvasVideoTrack",null);D(this,"silentOsc",null);D(this,"silentGain",null);D(this,"micStream",null);D(this,"stopResultPromise",null)}isRecording(){return this.mediaRecorder!==null&&this.mediaRecorder.state==="recording"}beginStopNow(){if(this.stopResultPromise)return;cancelAnimationFrame(this.rafId),this.rafId=0;const o=this.mediaRecorder,a=this.mimeType;!o||o.state==="inactive"||(this.stopResultPromise=new Promise(r=>{var s;o.onstop=()=>{this.teardownAudioGraph();const c=o.mimeType||a||"video/webm",m=this.chunks.length>0?new Blob(this.chunks,{type:c}):null;this.chunks=[],this.mediaRecorder=null,this.container=null,this.canvas=null,this.ctx=null,this.canvasVideoTrack=null,r(m&&m.size>0?m:null)};try{const c=o;(s=c.requestData)==null||s.call(c),o.stop()}catch{this.teardownAudioGraph(),this.chunks=[],this.mediaRecorder=null,this.container=null,this.canvas=null,this.ctx=null,this.canvasVideoTrack=null,r(null)}}))}teardownAudioGraph(){var o;try{(o=this.silentOsc)==null||o.stop()}catch{}if(this.silentOsc=null,this.silentGain=null,this.micStream){for(const a of this.micStream.getTracks())try{a.stop()}catch{}this.micStream=null}this.wiredTrackIds.clear(),this.audioDestination=null,this.audioCtx&&(this.audioCtx.close().catch(()=>{}),this.audioCtx=null)}connectTrackToMixer(o){if(!(o.kind!=="audio"||o.readyState==="ended"||!o.enabled)&&!(!this.audioCtx||!this.audioDestination)&&!this.wiredTrackIds.has(o.id))try{const a=this.audioCtx.createMediaStreamSource(new MediaStream([o])),r=this.audioCtx.createGain();r.gain.value=1.25,a.connect(r),r.connect(this.audioDestination),this.wiredTrackIds.add(o.id)}catch{}}attachMicForMixer(){if(!this.audioCtx||!this.audioDestination)return;const o=navigator.mediaDevices;o!=null&&o.getUserMedia&&o.getUserMedia({audio:!0,video:!1}).then(a=>{if(!this.audioDestination||!this.audioCtx){a.getTracks().forEach(r=>r.stop());return}if(this.micStream){a.getTracks().forEach(r=>r.stop());return}this.micStream=a;for(const r of a.getAudioTracks())this.connectTrackToMixer(r)}).catch(()=>{})}wireIncomingAudio(){var m;if(!this.audioCtx||!this.audioDestination||!this.container)return;this.audioCtx.state==="suspended"&&this.audioCtx.resume().catch(()=>{});const o=te(this.container),a=document.getElementById("tuicallkit-id"),r=[...document.body.querySelectorAll("audio"),...this.container.querySelectorAll("audio"),...a?a.querySelectorAll("audio"):[]],s=new Set,c=[];for(const u of o)s.has(u)||(s.add(u),c.push(u));for(const u of r)s.has(u)||(s.add(u),c.push(u));for(const u of c){const h=u.srcObject;if(h instanceof MediaStream)for(const d of h.getAudioTracks())this.connectTrackToMixer(d);if(u instanceof HTMLVideoElement&&u.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA){const d=(m=u.captureStream)==null?void 0:m.call(u);if(d)for(const v of d.getAudioTracks())this.connectTrackToMixer(v)}}}reset(){if(cancelAnimationFrame(this.rafId),this.rafId=0,this.stopResultPromise=null,this.canvasVideoTrack=null,this.mediaRecorder&&this.mediaRecorder.state!=="inactive")try{this.mediaRecorder.stop()}catch{}this.mediaRecorder=null,this.chunks=[],this.canvas=null,this.ctx=null,this.container=null,this.mimeType="",this.teardownAudioGraph()}start(o){if(typeof MediaRecorder>"u")return!1;this.reset(),this.container=o;const a=go();if(this.mimeType=a||"video/webm",this.canvas=document.createElement("canvas"),this.canvas.width=1280,this.canvas.height=720,this.ctx=this.canvas.getContext("2d",{alpha:!1}),!this.ctx)return!1;const s=this.canvas.captureStream(30).getVideoTracks();this.canvasVideoTrack=s[0]??null;const c=te(o),m=_o();let u;if(m)try{this.audioCtx=new m,this.audioDestination=this.audioCtx.createMediaStreamDestination(),this.audioCtx.resume().catch(()=>{}),this.wireIncomingAudio(),this.attachMicForMixer();const d=this.audioDestination.stream.getAudioTracks(),v=this.audioCtx.createOscillator(),T=this.audioCtx.createGain();T.gain.value=1e-5,v.frequency.value=20,v.connect(T),T.connect(this.audioDestination),v.start(),this.silentOsc=v,this.silentGain=T,u=new MediaStream([...s,...d])}catch{this.teardownAudioGraph(),u=this.buildStreamWithoutMixer(s,c)}else u=this.buildStreamWithoutMixer(s,c);try{this.mediaRecorder=a?new MediaRecorder(u,{mimeType:a}):new MediaRecorder(u)}catch{try{this.mediaRecorder=new MediaRecorder(u)}catch{return this.reset(),!1}}this.chunks=[],this.mediaRecorder.ondataavailable=d=>{d.data&&d.data.size>0&&this.chunks.push(d.data)},this.mediaRecorder.onerror=d=>{console.error("[call-local-recorder] MediaRecorder 错误",d)};const h=()=>{var v,T;if(!this.ctx||!this.canvas||!this.container)return;this.wireIncomingAudio();const d=te(this.container);yo(this.ctx,d,this.canvas.width,this.canvas.height),(T=(v=this.canvasVideoTrack)==null?void 0:v.requestFrame)==null||T.call(v),this.rafId=requestAnimationFrame(h)};this.rafId=requestAnimationFrame(h);try{this.mediaRecorder.start(250)}catch{return this.reset(),!1}return!0}buildStreamWithoutMixer(o,a){const r=new Set,s=[],c=m=>{for(const u of m)r.has(u.id)||(r.add(u.id),s.push(u))};return c(wo(a)),c(Co(a)),c(So(this.container)),new MediaStream([...o,...s])}async stop(){this.beginStopNow();const o=this.stopResultPromise;return o||null}}function Eo(i,o=()=>{}){const a=new Map;return r=>{if(!Number.isInteger(r)||r<=0)return Promise.resolve();const s=a.get(r);if(s)return s.again=!0,s.promise;const c={again:!1,promise:Promise.resolve()};return a.set(r,c),c.promise=(async()=>{var m;try{do{c.again=!1;let u;for(;;){const h=await i({diagnosis_id:r,scope:"current",sync_token:u});if(h.completed){if((m=h.errors)!=null&&m.length)throw new Error(h.errors.join(";"));break}if(!h.sync_token)throw new Error("聊天记录同步未返回进度");u=h.sync_token}}while(c.again)}catch(u){o(u)}finally{a.delete(r)}})(),c.promise}}function xe(i){const o=i.srcObject;return o instanceof MediaStream?o.getVideoTracks().some(a=>a.readyState==="live"):!1}function ct(i){const o=i.getBoundingClientRect();return Math.max(0,o.width)*Math.max(0,o.height)}function Ue(i){const o=i.videoWidth||i.clientWidth,a=i.videoHeight||i.clientHeight;return o*a}function Ao(i){const o=new Map,a=new Map;for(const r of i){const s=r.srcObject;if(!(s instanceof MediaStream))continue;const c=s.getVideoTracks(),m=s.id&&String(s.id)||c.map(d=>d.id).filter(Boolean).join("|")||`${c.length}`,u=ct(r),h=a.get(m)??0;u>=h&&(o.set(m,r),a.set(m,u))}return o.size===0?i:Array.from(o.values())}function Io(i){if(i.length<2)return i;let o=0;for(const r of i)o=Math.max(o,ct(r));return o<=1||Math.min(...i.map(r=>ct(r)))/o>=.25?i:i.filter(r=>ct(r)>=o*.25)}function bo(i){let o=i;for(let a=0;a<12&&o;a++){const r=getComputedStyle(o).transform;if(r&&r!=="none"&&(/matrix\(\s*-1\s*,/.test(r)||/scaleX\(\s*-1/.test(r)))return!0;o=o.parentElement}return!1}function ko(i){const o=/local|self|pusher|mini[_-]?stream|preview[_-]?self|own[_-]?camera|tui-local|tencent-local|stream-local|publisher|send|pip|picture[_-]?in[_-]?picture/i,a=/remote|subscriber|peer|other|tui-remote|stream-remote|big-stream|play[_-]?stream|receiver|pull|substream/i;let r=i;for(let s=0;s<20&&r;s++){const c=`${r.className||""} ${r.id||""} ${r.getAttribute("data-type")||""}`;if(a.test(c))return!1;if(o.test(c))return!0;r=r.parentElement}return!1}async function Ro(i,o){const a=(o==null?void 0:o.preferRemote)!==!1,r=[i,...(o==null?void 0:o.extraRoots)||[]].filter(_=>!!_),s=new Set;for(const _ of r)for(const w of _.querySelectorAll("video"))w instanceof HTMLVideoElement&&s.add(w);if(s.size===0){const _=document.querySelector(".chat-dialog-call-kit-wrapper");if(_)for(const w of _.querySelectorAll("video"))w instanceof HTMLVideoElement&&s.add(w)}s.size===0&&document.body.querySelectorAll("video").forEach(_=>{_ instanceof HTMLVideoElement&&xe(_)&&s.add(_)});let c=Array.from(s).filter(_=>_.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&xe(_));if(c.length===0&&(c=Array.from(s).filter(_=>_.readyState>=2)),c.length===0)return null;c=Ao(c);let m=null,u=0,h=0;if(a){const _=c.map(S=>({v:S,layout:ct(S),pixel:Ue(S),localClass:ko(S),mirror:bo(S)}));let w=_.filter(S=>!S.localClass&&!S.mirror);w.length===0&&(w=_.filter(S=>!S.localClass)),w.length===0&&(w=_.filter(S=>!S.mirror)),w.length===0&&(w=_);let K=w.map(S=>S.v);K=Io(K),w=w.filter(S=>K.includes(S.v));for(const S of w)(S.layout>u||S.layout===u&&S.pixel>h)&&(u=S.layout,h=S.pixel,m=S.v)}else for(const _ of c){const w=ct(_),K=Ue(_);(w>u||w===u&&K>h)&&(u=w,h=K,m=_)}if(!m)return null;const d=m.videoWidth||m.clientWidth,v=m.videoHeight||m.clientHeight;if(!d||!v)return null;const T=document.createElement("canvas");T.width=d,T.height=v;const U=T.getContext("2d");if(!U)return null;try{U.drawImage(m,0,0,d,v)}catch{return null}return new Promise(_=>{T.toBlob(w=>_(w),"image/jpeg",.92)})}let Et;function Mo(i){return Et=i,()=>{Et===i&&(Et=void 0)}}async function Lo(i){const o=Et;if(!o)throw new Error("请先打开本次挂号的聊天窗口");const a=i&&typeof i=="object"&&"type"in i?Number(i.type):2;if(await o(a===1?1:2),Et!==o)throw new Error("当前问诊已切换,请重新发起通话")}function Do(i){const o=[];let a=i,r=0;for(;a!=null&&r<6;){if(typeof a=="string"){o.push(a);break}if(typeof a=="object"){const s=a;typeof s.message=="string"&&o.push(s.message),typeof s.name=="string"&&o.push(s.name),typeof s.code<"u"&&o.push(String(s.code)),a=s.cause}else{o.push(String(a));break}r++}return o.join(" ").toLowerCase()}const Ve=-1001;function lt(i){if(i&&typeof i=="object"){const a=i,r=a.code??a.error_code;if(r===Ve||r===String(Ve))return!0}const o=Do(i);return o.includes("does not support this ability")||o.includes("package you purchased")||o.includes("-1001")&&o.includes("does not support")}function $e(){return"套餐欠费或未开通该能力,请联系管理员在腾讯云续费或升级套餐。"}function xo(i,o="通话操作失败"){return lt(i)?$e():i instanceof Error?i.message||o:typeof i=="string"&&i||o}const Uo={key:0,class:"chat-uikit-custom-msg"},Vo={key:0,class:"chat-uikit-custom-msg__tag"},No={class:"chat-uikit-custom-msg__main"},Po={key:1,class:"chat-uikit-custom-msg__sub"},Oo={key:1,class:"chat-uikit-custom-msg chat-uikit-custom-msg--plain"},Ho={class:"chat-uikit-custom-msg__main"},Ko={key:2,class:"chat-uikit-custom-msg chat-uikit-custom-msg--plain"},$o={key:0,class:"chat-uikit-custom-msg__sub"},zo=He({inheritAttrs:!1,__name:"ChatMessageItem",props:{message:{}},setup(i){const o=i,a=bn();function r(d){if(!d||typeof d!="object")return null;const v=d,T=v.data;if(typeof T=="string")return T;if(T&&typeof T=="object")return JSON.stringify(T);const U=v.extension;return typeof U=="string"&&U.trim().startsWith("{")?U:null}const s=j(()=>{var v;const d=(v=o.message)==null?void 0:v.type;return!!(d===Mn.CUSTOM||typeof d=="string"&&/custom/i.test(d))}),c=j(()=>{var v;if(!s.value)return null;const d=(v=r(o.message.payload))==null?void 0:v.trim();return d?po(d):null}),m=j(()=>s.value&&!!c.value),u=j(()=>{const d=o.message.payload,v=d==null?void 0:d.description;return typeof v=="string"&&v.trim()?v.trim():""}),h=j(()=>{var v;const d=(v=r(o.message.payload))==null?void 0:v.trim();return!d||d.length<2?"":d.length<=120?d:`${d.slice(0,117)}…`});return(d,v)=>m.value?(M(),H("div",Uo,[c.value.tag?(M(),H("span",Vo,Z(c.value.tag),1)):B("",!0),b("div",No,Z(c.value.main),1),c.value.sub?(M(),H("div",Po,Z(c.value.sub),1)):B("",!0)])):s.value&&u.value?(M(),H("div",Oo,[b("div",Ho,Z(u.value),1)])):s.value?(M(),H("div",Ko,[v[0]||(v[0]=b("div",{class:"chat-uikit-custom-msg__main"},"系统消息",-1)),h.value?(M(),H("div",$o,Z(h.value),1)):B("",!0)])):(M(),ot(R(kn),Rn({key:3},R(a),{message:i.message}),null,16,["message"]))}}),jo=Ke(zo,[["__scopeId","data-v-1c506f55"]]);function Wo(i){if(i==null)return null;if(typeof i=="object"&&!Array.isArray(i))return i;if(typeof i!="string")return null;const o=i.trim();if(!o.startsWith("{"))return null;try{return JSON.parse(o)}catch{return null}}function Ne(i){const o=i.toLowerCase();return["hangup","cancel","reject","timeout","linebusy","end"].includes(o)}function Bo(i){const o=i.trim();if(!o)return!1;if(/\bcall_end\b/i.test(o)&&(/call_engine|call_record|rtc/i.test(o)||/"reason"\s*:\s*\d/.test(o))||/call_engine_srv\.[a-z_]*call[a-z_]*/i.test(o)&&/hangup|end|leave|reject|cancel/i.test(o))return!0;if(!o.startsWith("{"))return!1;let a;try{a=JSON.parse(o)}catch{return!1}if(a.businessID===1||a.businessID==="1"){const s=Wo(a.data);if(s){const c=String(s.cmd??"");if(Ne(c))return!0}}if((a.businessID==="rtc_call"||typeof a.cmd=="string")&&Ne(String(a.cmd??"")))return!0;const r=JSON.stringify(a);return!!(r.includes("call_engine_srv")&&/hangup|call_end|CALL_END|reject|cancel/i.test(r))}const qo={class:"chat-window-heading"},Fo=["title"],Go={class:"chat-container"},Xo={key:0,class:"loading-container"},Yo={key:1,class:"error-container"},Jo={key:2,class:"chat-content"},Zo={class:"chat-layout"},Qo={class:"message-toolbar"},ta={key:3,class:"text-consultation-hint"},ea={class:"call-kit-drag-handle-left"},na={key:0,class:"call-local-recording-hint"},oa={class:"call-kit-drag-handle-actions"},St="idle",Tt="calling",nt="connected",Pe=40,aa=100,ia=1500,sa=2600,ra=667,Oe=16,la=He({__name:"index",setup(i,{expose:o}){const a=p(""),r=p(!1),s=p(!1),c=p(!1),m=p(""),u=p(""),h=p("video"),d=p(0),v=p(""),T=j(()=>v.value||vo(h.value)),U=p(!1),_=p(!1),w=p("正在确认挂号类型"),K=j(()=>U.value&&Le(h.value)),S=j(()=>_.value&&(Le(h.value)||h.value==="phone"));let $,Q=0,ee=2;const W=p(null),E=p(null),ut=p("正在初始化..."),q=p(""),At=p(""),N=p(!1),F=p(!1),{login:ze}=ao(),{setActiveConversation:je,createC2CConversation:We,activeConversation:Be}=no(),qe=ho(),ne=Eo(mo,()=>{console.warn("[chat-dialog] 聊天记录归档未完成,可在诊单聊天记录中重试同步")});let It,tt;function bt(){const t=E.value;!s.value||!c.value||!t||(tt&&clearTimeout(tt),tt=setTimeout(()=>{tt=void 0,ne(t)},500))}function kt(t=!1){var e,n,l;It&&clearInterval(It),tt&&clearTimeout(tt),It=void 0,tt=void 0,t&&E.value&&c.value&&ne(E.value),(l=(n=(e=Ht)==null?void 0:e.chat)==null?void 0:n.off)==null||l.call(n,J.EVENT.CONVERSATION_LIST_UPDATED,bt)}function Fe(){var t,e,n;kt(),(n=(e=(t=Ht)==null?void 0:t.chat)==null?void 0:e.on)==null||n.call(e,J.EVENT.CONVERSATION_LIST_UPDATED,bt),It=setInterval(bt,15e3),bt()}function oe(t){"appointment_type"in t&&(h.value=t.appointment_type),v.value=t.appointment_type_desc||"",U.value=t.can_video_call===!0,_.value=t.can_audio_call===!0,w.value=t.call_disabled_reason||"当前挂号不支持该通话方式",Number(t.appointment_id)>0&&(d.value=Number(t.appointment_id))}async function Ge(t){const e=Q,n=()=>t===1?S.value:K.value;if(!s.value||!n()){const f=h.value==="text"?"图文问诊不支持音视频通话":w.value;throw I.msgWarning(f),new Error(f)}const l=await Ot({patient_id:W.value,diagnosis_id:E.value,appointment_id:d.value});if(!s.value||Q!==e)throw new Error("当前问诊已切换,请重新发起通话");if(oe(l),!n())throw I.msgWarning(w.value),new Error(w.value);ee=t}const dt=p("");let G=null,at=null,Kt=0;const P=new To,$t=p(!1),ft=p(!1);let zt=0,it=null,mt=null,Rt=Promise.resolve(),jt=null;function st(){it&&(clearTimeout(it),it=null)}function Wt(t){$t.value=!!(t!=null&&t.isLochostVod)}function Mt(){return mt||(mt=(async()=>{if(st(),ft.value=!1,!$t.value)return;P.beginStopNow();const t=jt??E.value;try{await Rt}catch{}const e=await P.stop();if(!e){console.warn("[chat-dialog] 本地录制无有效文件(若通话较长仍出现,请换 Chrome 并看控制台是否有 MediaRecorder 报错)");return}if(t==null){I.msgWarning("缺少诊单信息,本地录制无法保存到通话记录");return}try{const n=await so(e,`call-rec-${t}-${Date.now()}.webm`),l=n.uri||n.url;if(!l){I.msgError("上传成功但未返回文件地址");return}await lo({diagnosis_id:t,file_url:l}),I.msgSuccess("本地录制已上传并关联到通话记录")}catch(n){const l=n instanceof Error?n.message:String(n);console.warn("[chat-dialog] 本地录制上传/关联失败",n),I.msgError(l||"本地录制上传失败")}})().finally(()=>{mt=null}),mt)}function Xe(){const t=X.getData(Y.CALL,z.ROOM_ID);if(t==null)return"";if(typeof t=="number")return t===0?"":String(t);const e=String(t).trim();return!e||e==="0"?"":e}function Ye(){var t,e;try{const n=(e=(t=x).getTUICallEngineInstance)==null?void 0:e.call(t);if(!n)return"";const l=[n.roomId,n.roomID,n._roomId,n._roomID,n.strRoomID];for(const f of l){if(f==null||f==="")continue;const g=String(f).trim();if(g&&g!=="0")return g}}catch{}return""}function Bt(){return Xe()||Ye()}function Lt(t,e){if(e!=null&&String(e).trim()!==""&&String(e)!=="0")return String(e).trim();if(typeof t=="number"&&t>0)return String(t);if(typeof t=="string"){const n=t.trim();if(n&&n!=="0")return n}return""}function ae(t){if(t==null||typeof t!="object")return"";const e=t,n=Lt(e.roomID,e.strRoomID)||Lt(e.roomId,e.strRoomId);if(n)return n;const l=e.data;if(l&&typeof l=="object"){const f=l,g=Lt(f.roomID,f.strRoomID)||Lt(f.roomId,f.strRoomId);if(g)return g}return""}function rt(){at&&(clearTimeout(at),at=null),Kt=0}function Je(){rt();const t=()=>{at=null;const e=X.getData(Y.CALL,z.CALL_STATUS);if(e===St||e!==Tt&&e!==nt)return;const n=Bt();if(n){pt(n);return}if(Kt++,Kt>=Pe){console.warn("[chat-dialog] 仍未解析到有效房间号(已重试",Pe,"次)");return}at=setTimeout(t,aa)};at=setTimeout(t,0)}async function ie(t){if(!(W.value==null||E.value==null)){await Qt();for(let e=0;e<40;e++){const n=Bt();if(n){await pt(n);return}await new Promise(l=>setTimeout(l,50))}console.warn("[chat-dialog] 发起通话后仍未解析到房间号(API:",t,")")}}function Ze(){var l,f;const t=window;if(t.__zytEngineRoomCapture__)return;const e=(f=(l=x).getTUICallEngineInstance)==null?void 0:f.call(l);if(!e||typeof e.calls!="function")return;t.__zytEngineRoomCapture__=!0,e.__zytEngineRoomCapture__=!0;const n=g=>{const y=e[g];typeof y=="function"&&(e[g]=async function(...L){const V=await y.apply(e,L),O=ae(V);return O&&pt(O),await ie("engine."+g),V})};n("calls"),n("call"),n("groupCall")}function Qe(){const t=window;if(t.__zytHangupPreStop__)return;const e=x,n=e.hangup;typeof n=="function"&&(t.__zytHangupPreStop__=!0,e.hangup=function(...f){return P.beginStopNow(),n.apply(x,f)})}function se(){var g,y;const t=window;if(t.__zytTrtcPreStop__)return;const e=(y=(g=x).getTUICallEngineInstance)==null?void 0:y.call(g),n=e==null?void 0:e.trtcCloud;if(!n||typeof n!="object")return;let l=0;const f=["stopLocalVideo","stopLocalAudio"];for(const A of f){const L=n[A];typeof L=="function"&&(n[A]=function(...O){return P.beginStopNow(),L.apply(n,O)},l++)}l>0&&(t.__zytTrtcPreStop__=!0)}let ht=[],vt=null,re=0;async function Dt(){const t=jt??E.value;if(t==null){console.warn("[chat-dialog] endCall 跳过:无诊单 ID(快照与当前均为空)");return}try{await co({diagnosis_id:t}),console.log("[chat-dialog] endCall 已同步",{diagnosis_id:t})}catch(e){console.warn("[chat-dialog] endCall 失败",e)}}function le(t){const e=Date.now();e-re{if(!s.value)return;const l=q.value;if(!l)return;const f=l.startsWith("C2C")?l:`C2C${l}`,g=Array.isArray(n.data)?n.data:[];for(const y of g){if(!y||y.conversationID!==f)continue;const A=y.type;if(!(A===J.TYPES.MSG_CUSTOM||A==="TIMCustomElem"||typeof A=="string"&&/custom/i.test(A)))continue;const V=y.payload,O=typeof(V==null?void 0:V.data)=="string"?V.data:"";if(!(!O||!Bo(O))){le("IM");break}}},e.on(J.EVENT.MESSAGE_RECEIVED,vt)}catch(e){console.warn("[chat-dialog] 绑定 IM 挂断监听失败",e)}}function qt(){var t,e;if(vt){try{const n=(t=Ht)==null?void 0:t.chat;(e=n==null?void 0:n.off)==null||e.call(n,J.EVENT.MESSAGE_RECEIVED,vt)}catch{}vt=null}}function en(){var t,e;try{const n=(e=(t=x).getTUICallEngineInstance)==null?void 0:e.call(t),l=n==null?void 0:n.on;if(!n||typeof l!="function"||n.__zytRoomEvents)return;n.__zytRoomEvents=!0;const f=L=>{const V=ae(L);if(V){pt(V);return}Ft()},g=()=>{le("TUICallEngine")},y=[Ct.TUICallEvent.CALL_END,Ct.TUICallEvent.USER_LEAVE,Ct.TUICallEvent.ON_CALL_NOT_CONNECTED];for(const L of y)l.call(n,L,g),ht.push({event:L,fn:g});const A=[Ct.TUICallEvent.USER_ENTER,Ct.TUICallEvent.ON_CALL_BEGIN];for(const L of A)l.call(n,L,f),ht.push({event:L,fn:f})}catch(n){console.warn("[chat-dialog] 绑定引擎房间事件失败",n)}}function nn(){var t,e;try{const n=(e=(t=x).getTUICallEngineInstance)==null?void 0:e.call(t);if(!(n!=null&&n.off)){ht=[];return}for(const{event:l,fn:f}of ht)n.off(l,f);n.__zytRoomEvents=!1}catch{}ht=[]}function on(){const t=window;if(t.__zytTUICallRoomHooks__)return;t.__zytTUICallRoomHooks__=!0;const e=x,n=l=>{const f=e[l];typeof f=="function"&&(e[l]=async function(...y){await Lo(y[0]);const A=await f.apply(e,y);return await ie(l),A})};n("calls"),n("call"),n("groupCall")}async function pt(t){try{await Rt}catch{}if(W.value==null||E.value==null)return;const e=`${E.value}:${t}`;if(e===dt.value){rt();return}dt.value=e;try{const n=await uo({diagnosis_id:E.value,room_id:t});rt(),console.log("[chat-dialog] bindCallRoom 成功",{room_id:t,bindRes:n});const l=n==null?void 0:n.cloud_recording;l&&l.started===!1&&l.message&&I.msgWarning(`云端合流录制未启动(关闭控制台全局录制后仅依赖 API):${l.message}`)}catch(n){console.warn("[chat-dialog] bindCallRoom 失败",n),dt.value=""}}async function Ft(){if(W.value==null||E.value==null)return;const t=X.getData(Y.CALL,z.CALL_STATUS);if(t===St){rt(),dt.value="";return}if(t!==Tt&&t!==nt)return;await Qt();const e=Bt();if(e){await pt(e);return}Je()}async function an(){if(!(W.value==null||E.value==null))try{await fo({diagnosis_id:E.value,patient_id:W.value,appointment_id:d.value,call_type:ee})}catch(t){console.warn("[chat-dialog] startCall 记录失败",t)}}function sn(){G==null||G();let t=X.getData(Y.CALL,z.CALL_STATUS)??St;const e=l=>{const f=l??St;if(f===St){(t===Tt||t===nt)&&P.beginStopNow(),st(),ft.value=!1,(t===Tt||t===nt)&&(async()=>(await Dt(),F.value=!1,await Mt()))(),rt(),dt.value="",t=f;return}if(f===nt){if(Ft(),st(),!$t.value){t=f;return}const g=zt,y=(A=0)=>{if(g!==zt){console.log("[chat-dialog] 录制轮次已变化,取消启动");return}const L=Xt.value,V=X.getData(Y.CALL,z.CALL_STATUS);if(!L||V!==nt){console.warn("[chat-dialog] 录制启动条件不满足",{root:!!L,status:V});return}console.log(`[chat-dialog] 尝试启动本地录制(第 ${A+1} 次)`);let O=Array.from(L.querySelectorAll("video"));if(O.length===0&&(O=Array.from(document.body.querySelectorAll("video")).filter(Tn=>{const be=Tn.srcObject;return be instanceof MediaStream?be.getVideoTracks().some(En=>En.readyState==="live"):!1}),console.log("[chat-dialog] 在 body 中找到活跃视频:",O.length)),O.length===0){A<10?(console.warn("[chat-dialog] 未找到视频元素,300ms 后重试"),it=setTimeout(()=>y(A+1),300)):console.error("[chat-dialog] 重试 10 次后仍未找到视频元素,放弃录制");return}if(!O.some(Ie=>Ie.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA)){A<10?(console.warn("[chat-dialog] 视频元素未就绪,300ms 后重试"),it=setTimeout(()=>y(A+1),300)):console.error("[chat-dialog] 重试 10 次后视频仍未就绪,放弃录制");return}console.log("[chat-dialog] 视频元素已就绪,立即启动录制");const Ae=P.start(L);ft.value=Ae,Ae?console.log("[chat-dialog] ✅ 本地录制已成功启动"):console.error("[chat-dialog] 本地录制启动失败(MediaRecorder 或画布初始化失败)")};it=setTimeout(()=>y(0),500)}else st();t=f},n=()=>{Ft()};X.watch(Y.CALL,{[z.CALL_STATUS]:e,[z.ROOM_ID]:n}),G=()=>{try{X.unwatch(Y.CALL,{[z.CALL_STATUS]:e,[z.ROOM_ID]:n})}catch{}rt(),G=null}}let ce=0;function gt(){const t=Date.now();t-ce{if(_t(...t),!s.value||!N.value)return;const e=t.map(n=>{if(typeof n=="string")return n;if(n instanceof Error)return n.message;try{return JSON.stringify(n)}catch{return String(n)}}).join(" ");lt(e)&>()})}function ln(){xt&&_t&&(console.error=_t),xt=!1,_t=null}function cn(){var t,e,n;try{const l=(e=(t=x).getTUICallEngineInstance)==null?void 0:e.call(t);if(!(l!=null&&l.on))return;et&&((n=l.off)==null||n.call(l,"error",et)),et=f=>{!s.value||!N.value||lt(f)&>()},l.on("error",et)}catch(l){console.warn("绑定 TUICallEngine error 监听失败:",l)}}function un(){var t,e;try{const n=(e=(t=x).getTUICallEngineInstance)==null?void 0:e.call(t);n!=null&&n.off&&et&&n.off("error",et)}catch{}et=null}async function dn(t,e){try{const n=J.create({SDKAppID:t}),l={businessID:"doctor_entered_consult_room",time:Date.now()},f=n.createCustomMessage({to:e,conversationType:J.TYPES.CONV_C2C,payload:{data:JSON.stringify(l)}});await n.sendMessage(f),console.log("已发送医生进入诊室信令(患者端聊天列表不展示)")}catch(n){console.warn("发送医生进入诊室信令失败:",n)}}const ue=t=>{!s.value||!N.value||lt(t.reason)&>()};Ln(()=>{rn(),window.addEventListener("unhandledrejection",ue)}),Dn(()=>{kt(!0),Q++,$==null||$(),st(),P.reset(),G==null||G(),nn(),qt(),ln(),un(),window.removeEventListener("unhandledrejection",ue)});const fn=async(t,e)=>{try{if(!t){console.warn("头像 URL 为空,跳过更新");return}console.log("开始更新头像到 IM:",t);const n=await new Promise((l,f)=>{setTimeout(async()=>{try{const y=await J.create({SDKAppID:e}).updateMyProfile({avatar:t});console.log("IM 头像更新成功:",y),l(y)}catch(g){console.error("更新头像异常:",g),l(null)}},500)})}catch(n){console.error("IM 头像更新失败:",n.message||n)}};xn(()=>Be.value,async t=>{if(t){if(u.value=t.getShowName()||u.value,console.log("会话切换:",t.conversationID,"名称:",u.value,t),t.userProfile.userID.includes("doctor"))console.log("当前会话是医生,跳过获取 assistant_id");else try{const e=await Ot({patient_id:t.userProfile.userID.replace("patient_",""),diagnosis_id:E.value,appointment_id:d.value});Wt(e),q.value=e.patientUserId,a.value=e.assistant_id,console.log("会话切换后获取到 assistant_id:",a.value,"完整响应:",e)}catch(e){console.error("获取 assistant_id 失败:",e)}console.log("会话切换完成,userID:",t.userProfile.userID)}});const mn=async t=>{kt(!0);const e=++Q;$==null||$(),$=Mo(Ge),s.value=!0,r.value=!1,Ut.value=100,Vt.value=80,pe(),u.value=t.patientName,h.value=t.appointmentType,d.value=Number(t.appointmentId||0),v.value="",U.value=!1,_.value=!1,w.value="正在确认挂号类型",W.value=t.patientId,E.value=t.diagnosisId||null,m.value="",c.value=!1,N.value=!1,F.value=!1,ut.value="正在获取签名...";try{const n=await Ot({patient_id:t.patientId,diagnosis_id:t.diagnosisId||0,appointment_id:d.value});if(e!==Q||!s.value)return;if(oe(n),Wt(n),a.value=n.assistant_id,console.log("后端返回的签名数据:",n),console.log("assistant_id:",a.value),!n||!n.userSig)throw new Error("获取签名失败");n.assistant_id||console.warn("警告:后端未返回 assistant_id,群视频通话可能无法正常工作"),q.value=n.patientUserId||`patient_${t.patientId}`,ut.value="正在登录聊天...",await ze({sdkAppId:Number(n.sdkAppId),userId:n.userId,userSig:n.userSig,useUploadPlugin:!0}),tn();const l=Number(n.sdkAppId);if(!window.__TUICallKitInited__){ut.value="正在初始化通话能力...";try{await x.init({userID:n.userId,userSig:n.userSig,SDKAppID:l}),window.__TUICallKitInited__=!0}catch(f){console.warn("TUICallKit 初始化失败,聊天仍可用,音视频通话不可用:",(f==null?void 0:f.message)||f),lt(f)&>()}}N.value=!!window.__TUICallKitInited__,N.value&&(x.setCallback({beforeCalling:()=>{se(),st(),P.reset(),ft.value=!1,zt++,jt=E.value,pe(),F.value=!0,Rt=an()},afterCalling:()=>{P.beginStopNow(),(async()=>(await Dt(),F.value=!1,await Mt()))()}}),on(),Ze(),Qe(),se(),en(),sn(),cn()),console.log("Chat UIKit 登录成功,患者用户ID:",q.value),ut.value="加载聊天界面...",setTimeout(async()=>{var g;if(e!==Q||!s.value)return;c.value=!0,Fe(),await Qt(),await new Promise(y=>setTimeout(y,1e3));const f=(g=qe.userInfo)==null?void 0:g.avatar;console.log("准备更新头像,avatar:",f),f&&await fn(f,l);try{const y=await We(q.value);At.value=y.conversationID,console.log("已创建/获取会话:",At.value),je(At.value),console.log("已激活会话"),await dn(l,q.value)}catch(y){console.error("创建/激活会话失败:",y)}},800)}catch(n){console.error("初始化聊天失败:",n),m.value=n.message||"初始化聊天失败",I.msgError(m.value)}},hn=async()=>{if(!K.value){I.msgWarning(h.value==="text"?"图文问诊不支持视频通话":w.value);return}if(!N.value){I.msgWarning("通话服务初始化中,请稍后再试");return}if(!q.value){I.msgWarning("未找到患者通话ID,无法发起群视频");return}try{if(!a.value){console.warn("assistant_id 为空,尝试重新获取");const e=await Ot({patient_id:W.value,diagnosis_id:E.value,appointment_id:d.value});Wt(e),a.value=e.assistant_id,console.log("重新获取 assistant_id:",a.value)}const t=[q.value,a.value].filter(e=>e);if(t.length<2){I.msgWarning("助理ID获取失败,无法发起群视频"),console.error("userIDList 不完整:",t,"assistant_ids:",a.value);return}console.log("发起群视频通话,参与者:",t),await x.calls({userIDList:t,type:oo.VIDEO_CALL})}catch(t){console.error("发起群视频失败:",t),lt(t)?gt():I.msgError(xo(t,"发起群视频失败"))}},vn=p(),Ut=p(100),Vt=p(80),Gt=p(!1),de=p(0),fe=p(0),me=p(0),he=p(0),ve=p(),Xt=p(),yt=p(!1),Nt=p(0),Pt=p(0);function pe(){Nt.value=Oe,Pt.value=Math.max(Oe,Math.floor((window.innerHeight-ra)/2))}const Yt=p(!1),ge=p(0),_e=p(0),ye=p(0),we=p(0),pn=j(()=>({left:`${Nt.value}px`,top:`${Pt.value}px`})),gn=t=>{Yt.value=!0,ge.value=t.clientX,_e.value=t.clientY,ye.value=Nt.value,we.value=Pt.value,document.addEventListener("mousemove",Ce),document.addEventListener("mouseup",Se)},Ce=t=>{Yt.value&&(Nt.value=Math.max(0,ye.value+t.clientX-ge.value),Pt.value=Math.max(0,we.value+t.clientY-_e.value))},Se=()=>{Yt.value=!1,document.removeEventListener("mousemove",Ce),document.removeEventListener("mouseup",Se)},_n=async()=>{if(!yt.value){yt.value=!0;try{if(W.value==null){I.msgWarning("缺少患者信息,无法同步舌苔照片");return}const t=ve.value,e=Xt.value,n=t||e;if(!n)return;const l=await Ro(n,{extraRoots:[e].filter(Boolean)});if(!l){I.msgWarning("截屏失败,请确认视频画面已加载");return}const f=await io(l,`callshot-${Date.now()}.jpg`),g=f.url||f.uri;if(!g){I.msgError("上传未返回图片路径");return}if(E.value==null){I.msgWarning("请先保存诊单后再从视频同步舌苔照片");return}await ro({diagnosis_id:E.value,tongue_images:[g]}),I.msgSuccess("舌苔照片已保存")}catch(t){const e=t;console.error(e),I.msgError((e==null?void 0:e.message)||"上传失败")}finally{yt.value=!1}}},yn=async()=>{if(N.value)try{P.beginStopNow(),await Mt(),await x.hangup()}catch(t){console.warn("关闭视频窗口时挂断失败:",t)}F.value=!1},wn=j(()=>({left:`${Ut.value}px`,top:`${Vt.value}px`})),Cn=t=>{const e=t.target;e.closest(".chat-close-btn")||e.closest(".chat-header-actions")||(Gt.value=!0,de.value=t.clientX,fe.value=t.clientY,me.value=Ut.value,he.value=Vt.value,document.addEventListener("mousemove",Te),document.addEventListener("mouseup",Ee))},Te=t=>{Gt.value&&(Ut.value=Math.max(0,me.value+t.clientX-de.value),Vt.value=Math.max(0,he.value+t.clientY-fe.value))},Ee=()=>{Gt.value=!1,document.removeEventListener("mousemove",Te),document.removeEventListener("mouseup",Ee)},Sn=async()=>{if(kt(!0),Q++,$==null||$(),qt(),N.value){const t=X.getData(Y.CALL,z.CALL_STATUS);if(t===Tt||t===nt)try{P.beginStopNow(),await Mt(),await x.hangup()}catch(e){console.warn("挂断通话时出错:",e)}}E.value!=null&&await Dt(),s.value=!1,F.value=!1};return o({open:mn}),(t,e)=>{const n=Un,l=Vn,f=Nn,g=Pn,y=$n;return M(),ot(eo,{to:"body"},[Jt(b("div",{ref_key:"chatWindowRef",ref:vn,class:to(["chat-floating-window",{"chat-floating-window--minimized":r.value}]),style:Me(wn.value)},[b("div",{class:"chat-window-header",onMousedown:Cn},[b("div",qo,[b("span",{class:"chat-window-title",title:u.value},"与 "+Z(u.value)+" 通讯",9,Fo),C(n,{size:"small",type:"info",class:"chat-appointment-type"},{default:k(()=>[ke(Z(T.value),1)]),_:1})]),b("div",{class:"chat-header-actions",onMousedown:e[2]||(e[2]=wt(()=>{},["stop"]))},[C(f,{type:"danger",link:"",class:"chat-close-btn",onClick:Sn},{default:k(()=>[C(l,null,{default:k(()=>[C(R(Re))]),_:1})]),_:1}),r.value?(M(),ot(g,{key:1,content:"展开聊天窗口",placement:"top"},{default:k(()=>[C(f,{type:"primary",link:"",class:"chat-expand-btn",onClick:e[1]||(e[1]=A=>r.value=!1)},{default:k(()=>[C(l,null,{default:k(()=>[C(R(Hn))]),_:1}),e[6]||(e[6]=b("span",{class:"chat-header-btn-text"},"展开",-1))]),_:1})]),_:1})):(M(),ot(g,{key:0,content:"缩小为标题条,不关闭会话",placement:"top"},{default:k(()=>[C(f,{type:"primary",link:"",class:"chat-minimize-btn",onClick:e[0]||(e[0]=A=>r.value=!0)},{default:k(()=>[C(l,null,{default:k(()=>[C(R(On))]),_:1}),e[5]||(e[5]=b("span",{class:"chat-header-btn-text"},"缩小",-1))]),_:1})]),_:1}))],32)],32),Jt(b("div",Go,[c.value?m.value?(M(),H("div",Yo,[C(y,{title:m.value,type:"error",closable:!1},null,8,["title"])])):(M(),H("div",Jo,[C(R(Yn),{language:"zh-CN",theme:"light"},{default:k(()=>[b("div",Zo,[C(R(zn),{class:"chat-area"},{default:k(()=>[C(R(jn),{conversationID:At.value,Message:jo},null,8,["conversationID"]),C(R(Wn),null,{headerToolbar:k(()=>[b("div",Qo,[C(R(Bn)),C(R(qn)),C(R(Fn)),N.value&&S.value?(M(),ot(R(Gn),{key:0})):B("",!0),N.value&&K.value?(M(),ot(R(Xn),{key:1})):B("",!0),N.value&&K.value?(M(),ot(f,{key:2,size:"small",type:"primary",onClick:hn},{default:k(()=>[...e[7]||(e[7]=[ke(" 群视频 ",-1)])]),_:1})):B("",!0),h.value==="text"?(M(),H("span",ta,"图文问诊,不支持音视频通话")):B("",!0)])]),_:1})]),_:1})])]),_:1})])):(M(),H("div",Xo,[C(l,{class:"is-loading"},{default:k(()=>[C(R(Kn))]),_:1}),b("span",null,Z(ut.value),1)]))],512),[[Zt,!r.value]]),N.value?Jt((M(),H("div",{key:0,ref_key:"callKitWrapperRef",ref:ve,class:"chat-dialog-call-kit-wrapper",style:Me(pn.value)},[b("div",{class:"call-kit-drag-handle",onMousedown:gn},[b("div",ea,[e[8]||(e[8]=b("span",{class:"drag-handle-text"},"视频通话",-1)),ft.value?(M(),H("span",na,"本地录制中")):B("",!0)]),b("div",oa,[C(f,{type:"primary",link:"",class:"call-kit-screenshot-btn",loading:yt.value,disabled:yt.value,onMousedown:e[3]||(e[3]=wt(()=>{},["stop"])),onClick:wt(_n,["stop","prevent"])},{default:k(()=>[C(l,null,{default:k(()=>[C(R(Jn))]),_:1}),e[9]||(e[9]=b("span",{class:"call-kit-screenshot-text"},"截屏",-1))]),_:1},8,["loading","disabled"]),C(f,{type:"danger",link:"",class:"call-kit-close-btn",onMousedown:e[4]||(e[4]=wt(()=>{},["stop"])),onClick:wt(yn,["stop"])},{default:k(()=>[C(l,null,{default:k(()=>[C(R(Re))]),_:1})]),_:1}),C(l,{class:"drag-handle-icon"},{default:k(()=>[C(R(Zn))]),_:1})])],32),b("div",{ref_key:"callKitContentRef",ref:Xt,class:"call-kit-content"},[C(R(Qn),{allowedMinimized:!0,allowedFullScreen:!0,class:"chat-dialog-call-kit"})],512)],4)),[[Zt,F.value]]):B("",!0)],6),[[Zt,s.value]])])}}}),Aa=Ke(la,[["__scopeId","data-v-ecdcca87"]]);export{Aa as default}; +var An=Object.defineProperty;var In=(i,o,a)=>o in i?An(i,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):i[o]=a;var D=(i,o,a)=>In(i,typeof o!="symbol"?o+"":o,a);import{o as He,dx as bn,q as M,r as H,T as Z,P as B,s as b,O as ot,u as R,dy as kn,a7 as Rn,p as j,dz as Mn,ap as Ln,aq as Dn,R as xn,ac as Jt,ad as Zt,v as C,D as k,L as ke,bm as Un,aw as wt,w as Vn,av as Re,K as Nn,a1 as Pn,dA as On,dB as Hn,ba as Kn,bo as $n,dC as zn,dD as jn,dE as Wn,dF as Bn,dG as qn,dH as Fn,dI as Gn,dJ as Xn,dK as Yn,dL as Jn,dM as Zn,dr as Qn,t as Me,ae as to,ar as eo,M as p,dN as no,dq as x,n as Qt,dO as oo,ds as X,dt as Y,du as z,dP as ao}from"./.pnpm-CyuAWpdG.js";import{u as io,l as so}from"./file-BjbV-eNx.js";import{a as ro}from"./patient-B_ifBl-W.js";import{Z as Ot,am as lo,aI as co,aJ as uo,aK as fo,at as mo}from"./tcm-BSADvQNg.js";import{_ as Ke,u as ho,j as I}from"./index-Bkarz3gO.js";import{a as vo,c as Le}from"./appointment-type-DJT6wPaT.js";import{p as po}from"./im-business-message-parse-DdA9BRrQ.js";import{T as J}from"./@tencentcloud/chat-Dqh0gV5b.js";import{X as Ht}from"./@tencentcloud/chat-uikit-engine-BOxL0feI.js";import{c as Ct}from"./@tencentcloud/call-engine-js-DCEY106C.js";import"./dayjs-B2bPhvDy.js";import"./tim-upload-plugin-CK05mjrC.js";import"./tim-profanity-filter-plugin-CIiDZ6v0.js";import"./rtc-detect-TVc6uI0Q.js";function go(){const i=["video/webm;codecs=vp9,opus","video/webm;codecs=vp8,opus","video/webm;codecs=vp9","video/webm;codecs=vp8","video/webm"];for(const o of i)if(MediaRecorder.isTypeSupported(o))return o;return""}function _o(){const i=window;return i.AudioContext||i.webkitAudioContext||null}function De(i,o,a,r,s,c){const m=o.videoWidth||o.clientWidth||1,u=o.videoHeight||o.clientHeight||1,h=Math.max(s/m,c/u),d=m*h,v=u*h,T=a+(s-d)/2,U=r+(c-v)/2;try{i.drawImage(o,T,U,d,v)}catch{}}function yo(i,o,a,r){i.fillStyle="#0b0b0b",i.fillRect(0,0,a,r);const s=o.filter(d=>d.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA);if(s.length===0)return;if(s.length===1){De(i,s[0],0,0,a,r);return}const c=Math.ceil(Math.sqrt(s.length)),m=Math.ceil(s.length/c),u=a/c,h=r/m;s.forEach((d,v)=>{const T=v%c,U=Math.floor(v/c);De(i,d,T*u,U*h,u,h)})}function wo(i){const o=new Set,a=[];for(const r of i){const s=r.srcObject;if(s instanceof MediaStream)for(const c of s.getAudioTracks())c.kind!=="audio"||c.readyState==="ended"||!c.enabled||o.has(c.id)||(o.add(c.id),a.push(c))}return a}function Co(i){var r;const o=new Set,a=[];for(const s of i){if(s.readyState{const h=[];for(const d of u)o.has(d)||(o.add(d),h.push(d));return h},r=[...i.querySelectorAll("video")];if(r.length>0)return a(r);const s=document.getElementById("tuicallkit-id");if(s){const u=[...s.querySelectorAll("video")];if(u.length>0)return a(u)}const m=[...document.body.querySelectorAll("video")].filter(u=>{const h=u.srcObject;return h instanceof MediaStream?h.getVideoTracks().some(d=>d.readyState==="live"):!1});return a(m)}class To{constructor(){D(this,"canvas",null);D(this,"ctx",null);D(this,"rafId",0);D(this,"container",null);D(this,"mediaRecorder",null);D(this,"chunks",[]);D(this,"mimeType","");D(this,"audioCtx",null);D(this,"audioDestination",null);D(this,"wiredTrackIds",new Set);D(this,"canvasVideoTrack",null);D(this,"silentOsc",null);D(this,"silentGain",null);D(this,"micStream",null);D(this,"stopResultPromise",null)}isRecording(){return this.mediaRecorder!==null&&this.mediaRecorder.state==="recording"}beginStopNow(){if(this.stopResultPromise)return;cancelAnimationFrame(this.rafId),this.rafId=0;const o=this.mediaRecorder,a=this.mimeType;!o||o.state==="inactive"||(this.stopResultPromise=new Promise(r=>{var s;o.onstop=()=>{this.teardownAudioGraph();const c=o.mimeType||a||"video/webm",m=this.chunks.length>0?new Blob(this.chunks,{type:c}):null;this.chunks=[],this.mediaRecorder=null,this.container=null,this.canvas=null,this.ctx=null,this.canvasVideoTrack=null,r(m&&m.size>0?m:null)};try{const c=o;(s=c.requestData)==null||s.call(c),o.stop()}catch{this.teardownAudioGraph(),this.chunks=[],this.mediaRecorder=null,this.container=null,this.canvas=null,this.ctx=null,this.canvasVideoTrack=null,r(null)}}))}teardownAudioGraph(){var o;try{(o=this.silentOsc)==null||o.stop()}catch{}if(this.silentOsc=null,this.silentGain=null,this.micStream){for(const a of this.micStream.getTracks())try{a.stop()}catch{}this.micStream=null}this.wiredTrackIds.clear(),this.audioDestination=null,this.audioCtx&&(this.audioCtx.close().catch(()=>{}),this.audioCtx=null)}connectTrackToMixer(o){if(!(o.kind!=="audio"||o.readyState==="ended"||!o.enabled)&&!(!this.audioCtx||!this.audioDestination)&&!this.wiredTrackIds.has(o.id))try{const a=this.audioCtx.createMediaStreamSource(new MediaStream([o])),r=this.audioCtx.createGain();r.gain.value=1.25,a.connect(r),r.connect(this.audioDestination),this.wiredTrackIds.add(o.id)}catch{}}attachMicForMixer(){if(!this.audioCtx||!this.audioDestination)return;const o=navigator.mediaDevices;o!=null&&o.getUserMedia&&o.getUserMedia({audio:!0,video:!1}).then(a=>{if(!this.audioDestination||!this.audioCtx){a.getTracks().forEach(r=>r.stop());return}if(this.micStream){a.getTracks().forEach(r=>r.stop());return}this.micStream=a;for(const r of a.getAudioTracks())this.connectTrackToMixer(r)}).catch(()=>{})}wireIncomingAudio(){var m;if(!this.audioCtx||!this.audioDestination||!this.container)return;this.audioCtx.state==="suspended"&&this.audioCtx.resume().catch(()=>{});const o=te(this.container),a=document.getElementById("tuicallkit-id"),r=[...document.body.querySelectorAll("audio"),...this.container.querySelectorAll("audio"),...a?a.querySelectorAll("audio"):[]],s=new Set,c=[];for(const u of o)s.has(u)||(s.add(u),c.push(u));for(const u of r)s.has(u)||(s.add(u),c.push(u));for(const u of c){const h=u.srcObject;if(h instanceof MediaStream)for(const d of h.getAudioTracks())this.connectTrackToMixer(d);if(u instanceof HTMLVideoElement&&u.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA){const d=(m=u.captureStream)==null?void 0:m.call(u);if(d)for(const v of d.getAudioTracks())this.connectTrackToMixer(v)}}}reset(){if(cancelAnimationFrame(this.rafId),this.rafId=0,this.stopResultPromise=null,this.canvasVideoTrack=null,this.mediaRecorder&&this.mediaRecorder.state!=="inactive")try{this.mediaRecorder.stop()}catch{}this.mediaRecorder=null,this.chunks=[],this.canvas=null,this.ctx=null,this.container=null,this.mimeType="",this.teardownAudioGraph()}start(o){if(typeof MediaRecorder>"u")return!1;this.reset(),this.container=o;const a=go();if(this.mimeType=a||"video/webm",this.canvas=document.createElement("canvas"),this.canvas.width=1280,this.canvas.height=720,this.ctx=this.canvas.getContext("2d",{alpha:!1}),!this.ctx)return!1;const s=this.canvas.captureStream(30).getVideoTracks();this.canvasVideoTrack=s[0]??null;const c=te(o),m=_o();let u;if(m)try{this.audioCtx=new m,this.audioDestination=this.audioCtx.createMediaStreamDestination(),this.audioCtx.resume().catch(()=>{}),this.wireIncomingAudio(),this.attachMicForMixer();const d=this.audioDestination.stream.getAudioTracks(),v=this.audioCtx.createOscillator(),T=this.audioCtx.createGain();T.gain.value=1e-5,v.frequency.value=20,v.connect(T),T.connect(this.audioDestination),v.start(),this.silentOsc=v,this.silentGain=T,u=new MediaStream([...s,...d])}catch{this.teardownAudioGraph(),u=this.buildStreamWithoutMixer(s,c)}else u=this.buildStreamWithoutMixer(s,c);try{this.mediaRecorder=a?new MediaRecorder(u,{mimeType:a}):new MediaRecorder(u)}catch{try{this.mediaRecorder=new MediaRecorder(u)}catch{return this.reset(),!1}}this.chunks=[],this.mediaRecorder.ondataavailable=d=>{d.data&&d.data.size>0&&this.chunks.push(d.data)},this.mediaRecorder.onerror=d=>{console.error("[call-local-recorder] MediaRecorder 错误",d)};const h=()=>{var v,T;if(!this.ctx||!this.canvas||!this.container)return;this.wireIncomingAudio();const d=te(this.container);yo(this.ctx,d,this.canvas.width,this.canvas.height),(T=(v=this.canvasVideoTrack)==null?void 0:v.requestFrame)==null||T.call(v),this.rafId=requestAnimationFrame(h)};this.rafId=requestAnimationFrame(h);try{this.mediaRecorder.start(250)}catch{return this.reset(),!1}return!0}buildStreamWithoutMixer(o,a){const r=new Set,s=[],c=m=>{for(const u of m)r.has(u.id)||(r.add(u.id),s.push(u))};return c(wo(a)),c(Co(a)),c(So(this.container)),new MediaStream([...o,...s])}async stop(){this.beginStopNow();const o=this.stopResultPromise;return o||null}}function Eo(i,o=()=>{}){const a=new Map;return r=>{if(!Number.isInteger(r)||r<=0)return Promise.resolve();const s=a.get(r);if(s)return s.again=!0,s.promise;const c={again:!1,promise:Promise.resolve()};return a.set(r,c),c.promise=(async()=>{var m;try{do{c.again=!1;let u;for(;;){const h=await i({diagnosis_id:r,scope:"current",sync_token:u});if(h.completed){if((m=h.errors)!=null&&m.length)throw new Error(h.errors.join(";"));break}if(!h.sync_token)throw new Error("聊天记录同步未返回进度");u=h.sync_token}}while(c.again)}catch(u){o(u)}finally{a.delete(r)}})(),c.promise}}function xe(i){const o=i.srcObject;return o instanceof MediaStream?o.getVideoTracks().some(a=>a.readyState==="live"):!1}function ct(i){const o=i.getBoundingClientRect();return Math.max(0,o.width)*Math.max(0,o.height)}function Ue(i){const o=i.videoWidth||i.clientWidth,a=i.videoHeight||i.clientHeight;return o*a}function Ao(i){const o=new Map,a=new Map;for(const r of i){const s=r.srcObject;if(!(s instanceof MediaStream))continue;const c=s.getVideoTracks(),m=s.id&&String(s.id)||c.map(d=>d.id).filter(Boolean).join("|")||`${c.length}`,u=ct(r),h=a.get(m)??0;u>=h&&(o.set(m,r),a.set(m,u))}return o.size===0?i:Array.from(o.values())}function Io(i){if(i.length<2)return i;let o=0;for(const r of i)o=Math.max(o,ct(r));return o<=1||Math.min(...i.map(r=>ct(r)))/o>=.25?i:i.filter(r=>ct(r)>=o*.25)}function bo(i){let o=i;for(let a=0;a<12&&o;a++){const r=getComputedStyle(o).transform;if(r&&r!=="none"&&(/matrix\(\s*-1\s*,/.test(r)||/scaleX\(\s*-1/.test(r)))return!0;o=o.parentElement}return!1}function ko(i){const o=/local|self|pusher|mini[_-]?stream|preview[_-]?self|own[_-]?camera|tui-local|tencent-local|stream-local|publisher|send|pip|picture[_-]?in[_-]?picture/i,a=/remote|subscriber|peer|other|tui-remote|stream-remote|big-stream|play[_-]?stream|receiver|pull|substream/i;let r=i;for(let s=0;s<20&&r;s++){const c=`${r.className||""} ${r.id||""} ${r.getAttribute("data-type")||""}`;if(a.test(c))return!1;if(o.test(c))return!0;r=r.parentElement}return!1}async function Ro(i,o){const a=(o==null?void 0:o.preferRemote)!==!1,r=[i,...(o==null?void 0:o.extraRoots)||[]].filter(_=>!!_),s=new Set;for(const _ of r)for(const w of _.querySelectorAll("video"))w instanceof HTMLVideoElement&&s.add(w);if(s.size===0){const _=document.querySelector(".chat-dialog-call-kit-wrapper");if(_)for(const w of _.querySelectorAll("video"))w instanceof HTMLVideoElement&&s.add(w)}s.size===0&&document.body.querySelectorAll("video").forEach(_=>{_ instanceof HTMLVideoElement&&xe(_)&&s.add(_)});let c=Array.from(s).filter(_=>_.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&xe(_));if(c.length===0&&(c=Array.from(s).filter(_=>_.readyState>=2)),c.length===0)return null;c=Ao(c);let m=null,u=0,h=0;if(a){const _=c.map(S=>({v:S,layout:ct(S),pixel:Ue(S),localClass:ko(S),mirror:bo(S)}));let w=_.filter(S=>!S.localClass&&!S.mirror);w.length===0&&(w=_.filter(S=>!S.localClass)),w.length===0&&(w=_.filter(S=>!S.mirror)),w.length===0&&(w=_);let K=w.map(S=>S.v);K=Io(K),w=w.filter(S=>K.includes(S.v));for(const S of w)(S.layout>u||S.layout===u&&S.pixel>h)&&(u=S.layout,h=S.pixel,m=S.v)}else for(const _ of c){const w=ct(_),K=Ue(_);(w>u||w===u&&K>h)&&(u=w,h=K,m=_)}if(!m)return null;const d=m.videoWidth||m.clientWidth,v=m.videoHeight||m.clientHeight;if(!d||!v)return null;const T=document.createElement("canvas");T.width=d,T.height=v;const U=T.getContext("2d");if(!U)return null;try{U.drawImage(m,0,0,d,v)}catch{return null}return new Promise(_=>{T.toBlob(w=>_(w),"image/jpeg",.92)})}let Et;function Mo(i){return Et=i,()=>{Et===i&&(Et=void 0)}}async function Lo(i){const o=Et;if(!o)throw new Error("请先打开本次挂号的聊天窗口");const a=i&&typeof i=="object"&&"type"in i?Number(i.type):2;if(await o(a===1?1:2),Et!==o)throw new Error("当前问诊已切换,请重新发起通话")}function Do(i){const o=[];let a=i,r=0;for(;a!=null&&r<6;){if(typeof a=="string"){o.push(a);break}if(typeof a=="object"){const s=a;typeof s.message=="string"&&o.push(s.message),typeof s.name=="string"&&o.push(s.name),typeof s.code<"u"&&o.push(String(s.code)),a=s.cause}else{o.push(String(a));break}r++}return o.join(" ").toLowerCase()}const Ve=-1001;function lt(i){if(i&&typeof i=="object"){const a=i,r=a.code??a.error_code;if(r===Ve||r===String(Ve))return!0}const o=Do(i);return o.includes("does not support this ability")||o.includes("package you purchased")||o.includes("-1001")&&o.includes("does not support")}function $e(){return"套餐欠费或未开通该能力,请联系管理员在腾讯云续费或升级套餐。"}function xo(i,o="通话操作失败"){return lt(i)?$e():i instanceof Error?i.message||o:typeof i=="string"&&i||o}const Uo={key:0,class:"chat-uikit-custom-msg"},Vo={key:0,class:"chat-uikit-custom-msg__tag"},No={class:"chat-uikit-custom-msg__main"},Po={key:1,class:"chat-uikit-custom-msg__sub"},Oo={key:1,class:"chat-uikit-custom-msg chat-uikit-custom-msg--plain"},Ho={class:"chat-uikit-custom-msg__main"},Ko={key:2,class:"chat-uikit-custom-msg chat-uikit-custom-msg--plain"},$o={key:0,class:"chat-uikit-custom-msg__sub"},zo=He({inheritAttrs:!1,__name:"ChatMessageItem",props:{message:{}},setup(i){const o=i,a=bn();function r(d){if(!d||typeof d!="object")return null;const v=d,T=v.data;if(typeof T=="string")return T;if(T&&typeof T=="object")return JSON.stringify(T);const U=v.extension;return typeof U=="string"&&U.trim().startsWith("{")?U:null}const s=j(()=>{var v;const d=(v=o.message)==null?void 0:v.type;return!!(d===Mn.CUSTOM||typeof d=="string"&&/custom/i.test(d))}),c=j(()=>{var v;if(!s.value)return null;const d=(v=r(o.message.payload))==null?void 0:v.trim();return d?po(d):null}),m=j(()=>s.value&&!!c.value),u=j(()=>{const d=o.message.payload,v=d==null?void 0:d.description;return typeof v=="string"&&v.trim()?v.trim():""}),h=j(()=>{var v;const d=(v=r(o.message.payload))==null?void 0:v.trim();return!d||d.length<2?"":d.length<=120?d:`${d.slice(0,117)}…`});return(d,v)=>m.value?(M(),H("div",Uo,[c.value.tag?(M(),H("span",Vo,Z(c.value.tag),1)):B("",!0),b("div",No,Z(c.value.main),1),c.value.sub?(M(),H("div",Po,Z(c.value.sub),1)):B("",!0)])):s.value&&u.value?(M(),H("div",Oo,[b("div",Ho,Z(u.value),1)])):s.value?(M(),H("div",Ko,[v[0]||(v[0]=b("div",{class:"chat-uikit-custom-msg__main"},"系统消息",-1)),h.value?(M(),H("div",$o,Z(h.value),1)):B("",!0)])):(M(),ot(R(kn),Rn({key:3},R(a),{message:i.message}),null,16,["message"]))}}),jo=Ke(zo,[["__scopeId","data-v-1c506f55"]]);function Wo(i){if(i==null)return null;if(typeof i=="object"&&!Array.isArray(i))return i;if(typeof i!="string")return null;const o=i.trim();if(!o.startsWith("{"))return null;try{return JSON.parse(o)}catch{return null}}function Ne(i){const o=i.toLowerCase();return["hangup","cancel","reject","timeout","linebusy","end"].includes(o)}function Bo(i){const o=i.trim();if(!o)return!1;if(/\bcall_end\b/i.test(o)&&(/call_engine|call_record|rtc/i.test(o)||/"reason"\s*:\s*\d/.test(o))||/call_engine_srv\.[a-z_]*call[a-z_]*/i.test(o)&&/hangup|end|leave|reject|cancel/i.test(o))return!0;if(!o.startsWith("{"))return!1;let a;try{a=JSON.parse(o)}catch{return!1}if(a.businessID===1||a.businessID==="1"){const s=Wo(a.data);if(s){const c=String(s.cmd??"");if(Ne(c))return!0}}if((a.businessID==="rtc_call"||typeof a.cmd=="string")&&Ne(String(a.cmd??"")))return!0;const r=JSON.stringify(a);return!!(r.includes("call_engine_srv")&&/hangup|call_end|CALL_END|reject|cancel/i.test(r))}const qo={class:"chat-window-heading"},Fo=["title"],Go={class:"chat-container"},Xo={key:0,class:"loading-container"},Yo={key:1,class:"error-container"},Jo={key:2,class:"chat-content"},Zo={class:"chat-layout"},Qo={class:"message-toolbar"},ta={key:3,class:"text-consultation-hint"},ea={class:"call-kit-drag-handle-left"},na={key:0,class:"call-local-recording-hint"},oa={class:"call-kit-drag-handle-actions"},St="idle",Tt="calling",nt="connected",Pe=40,aa=100,ia=1500,sa=2600,ra=667,Oe=16,la=He({__name:"index",setup(i,{expose:o}){const a=p(""),r=p(!1),s=p(!1),c=p(!1),m=p(""),u=p(""),h=p("video"),d=p(0),v=p(""),T=j(()=>v.value||vo(h.value)),U=p(!1),_=p(!1),w=p("正在确认挂号类型"),K=j(()=>U.value&&Le(h.value)),S=j(()=>_.value&&(Le(h.value)||h.value==="phone"));let $,Q=0,ee=2;const W=p(null),E=p(null),ut=p("正在初始化..."),q=p(""),At=p(""),N=p(!1),F=p(!1),{login:ze}=ao(),{setActiveConversation:je,createC2CConversation:We,activeConversation:Be}=no(),qe=ho(),ne=Eo(mo,()=>{console.warn("[chat-dialog] 聊天记录归档未完成,可在诊单聊天记录中重试同步")});let It,tt;function bt(){const t=E.value;!s.value||!c.value||!t||(tt&&clearTimeout(tt),tt=setTimeout(()=>{tt=void 0,ne(t)},500))}function kt(t=!1){var e,n,l;It&&clearInterval(It),tt&&clearTimeout(tt),It=void 0,tt=void 0,t&&E.value&&c.value&&ne(E.value),(l=(n=(e=Ht)==null?void 0:e.chat)==null?void 0:n.off)==null||l.call(n,J.EVENT.CONVERSATION_LIST_UPDATED,bt)}function Fe(){var t,e,n;kt(),(n=(e=(t=Ht)==null?void 0:t.chat)==null?void 0:e.on)==null||n.call(e,J.EVENT.CONVERSATION_LIST_UPDATED,bt),It=setInterval(bt,15e3),bt()}function oe(t){"appointment_type"in t&&(h.value=t.appointment_type),v.value=t.appointment_type_desc||"",U.value=t.can_video_call===!0,_.value=t.can_audio_call===!0,w.value=t.call_disabled_reason||"当前挂号不支持该通话方式",Number(t.appointment_id)>0&&(d.value=Number(t.appointment_id))}async function Ge(t){const e=Q,n=()=>t===1?S.value:K.value;if(!s.value||!n()){const f=h.value==="text"?"图文问诊不支持音视频通话":w.value;throw I.msgWarning(f),new Error(f)}const l=await Ot({patient_id:W.value,diagnosis_id:E.value,appointment_id:d.value});if(!s.value||Q!==e)throw new Error("当前问诊已切换,请重新发起通话");if(oe(l),!n())throw I.msgWarning(w.value),new Error(w.value);ee=t}const dt=p("");let G=null,at=null,Kt=0;const P=new To,$t=p(!1),ft=p(!1);let zt=0,it=null,mt=null,Rt=Promise.resolve(),jt=null;function st(){it&&(clearTimeout(it),it=null)}function Wt(t){$t.value=!!(t!=null&&t.isLochostVod)}function Mt(){return mt||(mt=(async()=>{if(st(),ft.value=!1,!$t.value)return;P.beginStopNow();const t=jt??E.value;try{await Rt}catch{}const e=await P.stop();if(!e){console.warn("[chat-dialog] 本地录制无有效文件(若通话较长仍出现,请换 Chrome 并看控制台是否有 MediaRecorder 报错)");return}if(t==null){I.msgWarning("缺少诊单信息,本地录制无法保存到通话记录");return}try{const n=await so(e,`call-rec-${t}-${Date.now()}.webm`),l=n.uri||n.url;if(!l){I.msgError("上传成功但未返回文件地址");return}await lo({diagnosis_id:t,file_url:l}),I.msgSuccess("本地录制已上传并关联到通话记录")}catch(n){const l=n instanceof Error?n.message:String(n);console.warn("[chat-dialog] 本地录制上传/关联失败",n),I.msgError(l||"本地录制上传失败")}})().finally(()=>{mt=null}),mt)}function Xe(){const t=X.getData(Y.CALL,z.ROOM_ID);if(t==null)return"";if(typeof t=="number")return t===0?"":String(t);const e=String(t).trim();return!e||e==="0"?"":e}function Ye(){var t,e;try{const n=(e=(t=x).getTUICallEngineInstance)==null?void 0:e.call(t);if(!n)return"";const l=[n.roomId,n.roomID,n._roomId,n._roomID,n.strRoomID];for(const f of l){if(f==null||f==="")continue;const g=String(f).trim();if(g&&g!=="0")return g}}catch{}return""}function Bt(){return Xe()||Ye()}function Lt(t,e){if(e!=null&&String(e).trim()!==""&&String(e)!=="0")return String(e).trim();if(typeof t=="number"&&t>0)return String(t);if(typeof t=="string"){const n=t.trim();if(n&&n!=="0")return n}return""}function ae(t){if(t==null||typeof t!="object")return"";const e=t,n=Lt(e.roomID,e.strRoomID)||Lt(e.roomId,e.strRoomId);if(n)return n;const l=e.data;if(l&&typeof l=="object"){const f=l,g=Lt(f.roomID,f.strRoomID)||Lt(f.roomId,f.strRoomId);if(g)return g}return""}function rt(){at&&(clearTimeout(at),at=null),Kt=0}function Je(){rt();const t=()=>{at=null;const e=X.getData(Y.CALL,z.CALL_STATUS);if(e===St||e!==Tt&&e!==nt)return;const n=Bt();if(n){pt(n);return}if(Kt++,Kt>=Pe){console.warn("[chat-dialog] 仍未解析到有效房间号(已重试",Pe,"次)");return}at=setTimeout(t,aa)};at=setTimeout(t,0)}async function ie(t){if(!(W.value==null||E.value==null)){await Qt();for(let e=0;e<40;e++){const n=Bt();if(n){await pt(n);return}await new Promise(l=>setTimeout(l,50))}console.warn("[chat-dialog] 发起通话后仍未解析到房间号(API:",t,")")}}function Ze(){var l,f;const t=window;if(t.__zytEngineRoomCapture__)return;const e=(f=(l=x).getTUICallEngineInstance)==null?void 0:f.call(l);if(!e||typeof e.calls!="function")return;t.__zytEngineRoomCapture__=!0,e.__zytEngineRoomCapture__=!0;const n=g=>{const y=e[g];typeof y=="function"&&(e[g]=async function(...L){const V=await y.apply(e,L),O=ae(V);return O&&pt(O),await ie("engine."+g),V})};n("calls"),n("call"),n("groupCall")}function Qe(){const t=window;if(t.__zytHangupPreStop__)return;const e=x,n=e.hangup;typeof n=="function"&&(t.__zytHangupPreStop__=!0,e.hangup=function(...f){return P.beginStopNow(),n.apply(x,f)})}function se(){var g,y;const t=window;if(t.__zytTrtcPreStop__)return;const e=(y=(g=x).getTUICallEngineInstance)==null?void 0:y.call(g),n=e==null?void 0:e.trtcCloud;if(!n||typeof n!="object")return;let l=0;const f=["stopLocalVideo","stopLocalAudio"];for(const A of f){const L=n[A];typeof L=="function"&&(n[A]=function(...O){return P.beginStopNow(),L.apply(n,O)},l++)}l>0&&(t.__zytTrtcPreStop__=!0)}let ht=[],vt=null,re=0;async function Dt(){const t=jt??E.value;if(t==null){console.warn("[chat-dialog] endCall 跳过:无诊单 ID(快照与当前均为空)");return}try{await co({diagnosis_id:t}),console.log("[chat-dialog] endCall 已同步",{diagnosis_id:t})}catch(e){console.warn("[chat-dialog] endCall 失败",e)}}function le(t){const e=Date.now();e-re{if(!s.value)return;const l=q.value;if(!l)return;const f=l.startsWith("C2C")?l:`C2C${l}`,g=Array.isArray(n.data)?n.data:[];for(const y of g){if(!y||y.conversationID!==f)continue;const A=y.type;if(!(A===J.TYPES.MSG_CUSTOM||A==="TIMCustomElem"||typeof A=="string"&&/custom/i.test(A)))continue;const V=y.payload,O=typeof(V==null?void 0:V.data)=="string"?V.data:"";if(!(!O||!Bo(O))){le("IM");break}}},e.on(J.EVENT.MESSAGE_RECEIVED,vt)}catch(e){console.warn("[chat-dialog] 绑定 IM 挂断监听失败",e)}}function qt(){var t,e;if(vt){try{const n=(t=Ht)==null?void 0:t.chat;(e=n==null?void 0:n.off)==null||e.call(n,J.EVENT.MESSAGE_RECEIVED,vt)}catch{}vt=null}}function en(){var t,e;try{const n=(e=(t=x).getTUICallEngineInstance)==null?void 0:e.call(t),l=n==null?void 0:n.on;if(!n||typeof l!="function"||n.__zytRoomEvents)return;n.__zytRoomEvents=!0;const f=L=>{const V=ae(L);if(V){pt(V);return}Ft()},g=()=>{le("TUICallEngine")},y=[Ct.TUICallEvent.CALL_END,Ct.TUICallEvent.USER_LEAVE,Ct.TUICallEvent.ON_CALL_NOT_CONNECTED];for(const L of y)l.call(n,L,g),ht.push({event:L,fn:g});const A=[Ct.TUICallEvent.USER_ENTER,Ct.TUICallEvent.ON_CALL_BEGIN];for(const L of A)l.call(n,L,f),ht.push({event:L,fn:f})}catch(n){console.warn("[chat-dialog] 绑定引擎房间事件失败",n)}}function nn(){var t,e;try{const n=(e=(t=x).getTUICallEngineInstance)==null?void 0:e.call(t);if(!(n!=null&&n.off)){ht=[];return}for(const{event:l,fn:f}of ht)n.off(l,f);n.__zytRoomEvents=!1}catch{}ht=[]}function on(){const t=window;if(t.__zytTUICallRoomHooks__)return;t.__zytTUICallRoomHooks__=!0;const e=x,n=l=>{const f=e[l];typeof f=="function"&&(e[l]=async function(...y){await Lo(y[0]);const A=await f.apply(e,y);return await ie(l),A})};n("calls"),n("call"),n("groupCall")}async function pt(t){try{await Rt}catch{}if(W.value==null||E.value==null)return;const e=`${E.value}:${t}`;if(e===dt.value){rt();return}dt.value=e;try{const n=await uo({diagnosis_id:E.value,room_id:t});rt(),console.log("[chat-dialog] bindCallRoom 成功",{room_id:t,bindRes:n});const l=n==null?void 0:n.cloud_recording;l&&l.started===!1&&l.message&&I.msgWarning(`云端合流录制未启动(关闭控制台全局录制后仅依赖 API):${l.message}`)}catch(n){console.warn("[chat-dialog] bindCallRoom 失败",n),dt.value=""}}async function Ft(){if(W.value==null||E.value==null)return;const t=X.getData(Y.CALL,z.CALL_STATUS);if(t===St){rt(),dt.value="";return}if(t!==Tt&&t!==nt)return;await Qt();const e=Bt();if(e){await pt(e);return}Je()}async function an(){if(!(W.value==null||E.value==null))try{await fo({diagnosis_id:E.value,patient_id:W.value,appointment_id:d.value,call_type:ee})}catch(t){console.warn("[chat-dialog] startCall 记录失败",t)}}function sn(){G==null||G();let t=X.getData(Y.CALL,z.CALL_STATUS)??St;const e=l=>{const f=l??St;if(f===St){(t===Tt||t===nt)&&P.beginStopNow(),st(),ft.value=!1,(t===Tt||t===nt)&&(async()=>(await Dt(),F.value=!1,await Mt()))(),rt(),dt.value="",t=f;return}if(f===nt){if(Ft(),st(),!$t.value){t=f;return}const g=zt,y=(A=0)=>{if(g!==zt){console.log("[chat-dialog] 录制轮次已变化,取消启动");return}const L=Xt.value,V=X.getData(Y.CALL,z.CALL_STATUS);if(!L||V!==nt){console.warn("[chat-dialog] 录制启动条件不满足",{root:!!L,status:V});return}console.log(`[chat-dialog] 尝试启动本地录制(第 ${A+1} 次)`);let O=Array.from(L.querySelectorAll("video"));if(O.length===0&&(O=Array.from(document.body.querySelectorAll("video")).filter(Tn=>{const be=Tn.srcObject;return be instanceof MediaStream?be.getVideoTracks().some(En=>En.readyState==="live"):!1}),console.log("[chat-dialog] 在 body 中找到活跃视频:",O.length)),O.length===0){A<10?(console.warn("[chat-dialog] 未找到视频元素,300ms 后重试"),it=setTimeout(()=>y(A+1),300)):console.error("[chat-dialog] 重试 10 次后仍未找到视频元素,放弃录制");return}if(!O.some(Ie=>Ie.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA)){A<10?(console.warn("[chat-dialog] 视频元素未就绪,300ms 后重试"),it=setTimeout(()=>y(A+1),300)):console.error("[chat-dialog] 重试 10 次后视频仍未就绪,放弃录制");return}console.log("[chat-dialog] 视频元素已就绪,立即启动录制");const Ae=P.start(L);ft.value=Ae,Ae?console.log("[chat-dialog] ✅ 本地录制已成功启动"):console.error("[chat-dialog] 本地录制启动失败(MediaRecorder 或画布初始化失败)")};it=setTimeout(()=>y(0),500)}else st();t=f},n=()=>{Ft()};X.watch(Y.CALL,{[z.CALL_STATUS]:e,[z.ROOM_ID]:n}),G=()=>{try{X.unwatch(Y.CALL,{[z.CALL_STATUS]:e,[z.ROOM_ID]:n})}catch{}rt(),G=null}}let ce=0;function gt(){const t=Date.now();t-ce{if(_t(...t),!s.value||!N.value)return;const e=t.map(n=>{if(typeof n=="string")return n;if(n instanceof Error)return n.message;try{return JSON.stringify(n)}catch{return String(n)}}).join(" ");lt(e)&>()})}function ln(){xt&&_t&&(console.error=_t),xt=!1,_t=null}function cn(){var t,e,n;try{const l=(e=(t=x).getTUICallEngineInstance)==null?void 0:e.call(t);if(!(l!=null&&l.on))return;et&&((n=l.off)==null||n.call(l,"error",et)),et=f=>{!s.value||!N.value||lt(f)&>()},l.on("error",et)}catch(l){console.warn("绑定 TUICallEngine error 监听失败:",l)}}function un(){var t,e;try{const n=(e=(t=x).getTUICallEngineInstance)==null?void 0:e.call(t);n!=null&&n.off&&et&&n.off("error",et)}catch{}et=null}async function dn(t,e){try{const n=J.create({SDKAppID:t}),l={businessID:"doctor_entered_consult_room",time:Date.now()},f=n.createCustomMessage({to:e,conversationType:J.TYPES.CONV_C2C,payload:{data:JSON.stringify(l)}});await n.sendMessage(f),console.log("已发送医生进入诊室信令(患者端聊天列表不展示)")}catch(n){console.warn("发送医生进入诊室信令失败:",n)}}const ue=t=>{!s.value||!N.value||lt(t.reason)&>()};Ln(()=>{rn(),window.addEventListener("unhandledrejection",ue)}),Dn(()=>{kt(!0),Q++,$==null||$(),st(),P.reset(),G==null||G(),nn(),qt(),ln(),un(),window.removeEventListener("unhandledrejection",ue)});const fn=async(t,e)=>{try{if(!t){console.warn("头像 URL 为空,跳过更新");return}console.log("开始更新头像到 IM:",t);const n=await new Promise((l,f)=>{setTimeout(async()=>{try{const y=await J.create({SDKAppID:e}).updateMyProfile({avatar:t});console.log("IM 头像更新成功:",y),l(y)}catch(g){console.error("更新头像异常:",g),l(null)}},500)})}catch(n){console.error("IM 头像更新失败:",n.message||n)}};xn(()=>Be.value,async t=>{if(t){if(u.value=t.getShowName()||u.value,console.log("会话切换:",t.conversationID,"名称:",u.value,t),t.userProfile.userID.includes("doctor"))console.log("当前会话是医生,跳过获取 assistant_id");else try{const e=await Ot({patient_id:t.userProfile.userID.replace("patient_",""),diagnosis_id:E.value,appointment_id:d.value});Wt(e),q.value=e.patientUserId,a.value=e.assistant_id,console.log("会话切换后获取到 assistant_id:",a.value,"完整响应:",e)}catch(e){console.error("获取 assistant_id 失败:",e)}console.log("会话切换完成,userID:",t.userProfile.userID)}});const mn=async t=>{kt(!0);const e=++Q;$==null||$(),$=Mo(Ge),s.value=!0,r.value=!1,Ut.value=100,Vt.value=80,pe(),u.value=t.patientName,h.value=t.appointmentType,d.value=Number(t.appointmentId||0),v.value="",U.value=!1,_.value=!1,w.value="正在确认挂号类型",W.value=t.patientId,E.value=t.diagnosisId||null,m.value="",c.value=!1,N.value=!1,F.value=!1,ut.value="正在获取签名...";try{const n=await Ot({patient_id:t.patientId,diagnosis_id:t.diagnosisId||0,appointment_id:d.value});if(e!==Q||!s.value)return;if(oe(n),Wt(n),a.value=n.assistant_id,console.log("后端返回的签名数据:",n),console.log("assistant_id:",a.value),!n||!n.userSig)throw new Error("获取签名失败");n.assistant_id||console.warn("警告:后端未返回 assistant_id,群视频通话可能无法正常工作"),q.value=n.patientUserId||`patient_${t.patientId}`,ut.value="正在登录聊天...",await ze({sdkAppId:Number(n.sdkAppId),userId:n.userId,userSig:n.userSig,useUploadPlugin:!0}),tn();const l=Number(n.sdkAppId);if(!window.__TUICallKitInited__){ut.value="正在初始化通话能力...";try{await x.init({userID:n.userId,userSig:n.userSig,SDKAppID:l}),window.__TUICallKitInited__=!0}catch(f){console.warn("TUICallKit 初始化失败,聊天仍可用,音视频通话不可用:",(f==null?void 0:f.message)||f),lt(f)&>()}}N.value=!!window.__TUICallKitInited__,N.value&&(x.setCallback({beforeCalling:()=>{se(),st(),P.reset(),ft.value=!1,zt++,jt=E.value,pe(),F.value=!0,Rt=an()},afterCalling:()=>{P.beginStopNow(),(async()=>(await Dt(),F.value=!1,await Mt()))()}}),on(),Ze(),Qe(),se(),en(),sn(),cn()),console.log("Chat UIKit 登录成功,患者用户ID:",q.value),ut.value="加载聊天界面...",setTimeout(async()=>{var g;if(e!==Q||!s.value)return;c.value=!0,Fe(),await Qt(),await new Promise(y=>setTimeout(y,1e3));const f=(g=qe.userInfo)==null?void 0:g.avatar;console.log("准备更新头像,avatar:",f),f&&await fn(f,l);try{const y=await We(q.value);At.value=y.conversationID,console.log("已创建/获取会话:",At.value),je(At.value),console.log("已激活会话"),await dn(l,q.value)}catch(y){console.error("创建/激活会话失败:",y)}},800)}catch(n){console.error("初始化聊天失败:",n),m.value=n.message||"初始化聊天失败",I.msgError(m.value)}},hn=async()=>{if(!K.value){I.msgWarning(h.value==="text"?"图文问诊不支持视频通话":w.value);return}if(!N.value){I.msgWarning("通话服务初始化中,请稍后再试");return}if(!q.value){I.msgWarning("未找到患者通话ID,无法发起群视频");return}try{if(!a.value){console.warn("assistant_id 为空,尝试重新获取");const e=await Ot({patient_id:W.value,diagnosis_id:E.value,appointment_id:d.value});Wt(e),a.value=e.assistant_id,console.log("重新获取 assistant_id:",a.value)}const t=[q.value,a.value].filter(e=>e);if(t.length<2){I.msgWarning("助理ID获取失败,无法发起群视频"),console.error("userIDList 不完整:",t,"assistant_ids:",a.value);return}console.log("发起群视频通话,参与者:",t),await x.calls({userIDList:t,type:oo.VIDEO_CALL})}catch(t){console.error("发起群视频失败:",t),lt(t)?gt():I.msgError(xo(t,"发起群视频失败"))}},vn=p(),Ut=p(100),Vt=p(80),Gt=p(!1),de=p(0),fe=p(0),me=p(0),he=p(0),ve=p(),Xt=p(),yt=p(!1),Nt=p(0),Pt=p(0);function pe(){Nt.value=Oe,Pt.value=Math.max(Oe,Math.floor((window.innerHeight-ra)/2))}const Yt=p(!1),ge=p(0),_e=p(0),ye=p(0),we=p(0),pn=j(()=>({left:`${Nt.value}px`,top:`${Pt.value}px`})),gn=t=>{Yt.value=!0,ge.value=t.clientX,_e.value=t.clientY,ye.value=Nt.value,we.value=Pt.value,document.addEventListener("mousemove",Ce),document.addEventListener("mouseup",Se)},Ce=t=>{Yt.value&&(Nt.value=Math.max(0,ye.value+t.clientX-ge.value),Pt.value=Math.max(0,we.value+t.clientY-_e.value))},Se=()=>{Yt.value=!1,document.removeEventListener("mousemove",Ce),document.removeEventListener("mouseup",Se)},_n=async()=>{if(!yt.value){yt.value=!0;try{if(W.value==null){I.msgWarning("缺少患者信息,无法同步舌苔照片");return}const t=ve.value,e=Xt.value,n=t||e;if(!n)return;const l=await Ro(n,{extraRoots:[e].filter(Boolean)});if(!l){I.msgWarning("截屏失败,请确认视频画面已加载");return}const f=await io(l,`callshot-${Date.now()}.jpg`),g=f.url||f.uri;if(!g){I.msgError("上传未返回图片路径");return}if(E.value==null){I.msgWarning("请先保存诊单后再从视频同步舌苔照片");return}await ro({diagnosis_id:E.value,tongue_images:[g]}),I.msgSuccess("舌苔照片已保存")}catch(t){const e=t;console.error(e),I.msgError((e==null?void 0:e.message)||"上传失败")}finally{yt.value=!1}}},yn=async()=>{if(N.value)try{P.beginStopNow(),await Mt(),await x.hangup()}catch(t){console.warn("关闭视频窗口时挂断失败:",t)}F.value=!1},wn=j(()=>({left:`${Ut.value}px`,top:`${Vt.value}px`})),Cn=t=>{const e=t.target;e.closest(".chat-close-btn")||e.closest(".chat-header-actions")||(Gt.value=!0,de.value=t.clientX,fe.value=t.clientY,me.value=Ut.value,he.value=Vt.value,document.addEventListener("mousemove",Te),document.addEventListener("mouseup",Ee))},Te=t=>{Gt.value&&(Ut.value=Math.max(0,me.value+t.clientX-de.value),Vt.value=Math.max(0,he.value+t.clientY-fe.value))},Ee=()=>{Gt.value=!1,document.removeEventListener("mousemove",Te),document.removeEventListener("mouseup",Ee)},Sn=async()=>{if(kt(!0),Q++,$==null||$(),qt(),N.value){const t=X.getData(Y.CALL,z.CALL_STATUS);if(t===Tt||t===nt)try{P.beginStopNow(),await Mt(),await x.hangup()}catch(e){console.warn("挂断通话时出错:",e)}}E.value!=null&&await Dt(),s.value=!1,F.value=!1};return o({open:mn}),(t,e)=>{const n=Un,l=Vn,f=Nn,g=Pn,y=$n;return M(),ot(eo,{to:"body"},[Jt(b("div",{ref_key:"chatWindowRef",ref:vn,class:to(["chat-floating-window",{"chat-floating-window--minimized":r.value}]),style:Me(wn.value)},[b("div",{class:"chat-window-header",onMousedown:Cn},[b("div",qo,[b("span",{class:"chat-window-title",title:u.value},"与 "+Z(u.value)+" 通讯",9,Fo),C(n,{size:"small",type:"info",class:"chat-appointment-type"},{default:k(()=>[ke(Z(T.value),1)]),_:1})]),b("div",{class:"chat-header-actions",onMousedown:e[2]||(e[2]=wt(()=>{},["stop"]))},[C(f,{type:"danger",link:"",class:"chat-close-btn",onClick:Sn},{default:k(()=>[C(l,null,{default:k(()=>[C(R(Re))]),_:1})]),_:1}),r.value?(M(),ot(g,{key:1,content:"展开聊天窗口",placement:"top"},{default:k(()=>[C(f,{type:"primary",link:"",class:"chat-expand-btn",onClick:e[1]||(e[1]=A=>r.value=!1)},{default:k(()=>[C(l,null,{default:k(()=>[C(R(Hn))]),_:1}),e[6]||(e[6]=b("span",{class:"chat-header-btn-text"},"展开",-1))]),_:1})]),_:1})):(M(),ot(g,{key:0,content:"缩小为标题条,不关闭会话",placement:"top"},{default:k(()=>[C(f,{type:"primary",link:"",class:"chat-minimize-btn",onClick:e[0]||(e[0]=A=>r.value=!0)},{default:k(()=>[C(l,null,{default:k(()=>[C(R(On))]),_:1}),e[5]||(e[5]=b("span",{class:"chat-header-btn-text"},"缩小",-1))]),_:1})]),_:1}))],32)],32),Jt(b("div",Go,[c.value?m.value?(M(),H("div",Yo,[C(y,{title:m.value,type:"error",closable:!1},null,8,["title"])])):(M(),H("div",Jo,[C(R(Yn),{language:"zh-CN",theme:"light"},{default:k(()=>[b("div",Zo,[C(R(zn),{class:"chat-area"},{default:k(()=>[C(R(jn),{conversationID:At.value,Message:jo},null,8,["conversationID"]),C(R(Wn),null,{headerToolbar:k(()=>[b("div",Qo,[C(R(Bn)),C(R(qn)),C(R(Fn)),N.value&&S.value?(M(),ot(R(Gn),{key:0})):B("",!0),N.value&&K.value?(M(),ot(R(Xn),{key:1})):B("",!0),N.value&&K.value?(M(),ot(f,{key:2,size:"small",type:"primary",onClick:hn},{default:k(()=>[...e[7]||(e[7]=[ke(" 群视频 ",-1)])]),_:1})):B("",!0),h.value==="text"?(M(),H("span",ta,"图文问诊,不支持音视频通话")):B("",!0)])]),_:1})]),_:1})])]),_:1})])):(M(),H("div",Xo,[C(l,{class:"is-loading"},{default:k(()=>[C(R(Kn))]),_:1}),b("span",null,Z(ut.value),1)]))],512),[[Zt,!r.value]]),N.value?Jt((M(),H("div",{key:0,ref_key:"callKitWrapperRef",ref:ve,class:"chat-dialog-call-kit-wrapper",style:Me(pn.value)},[b("div",{class:"call-kit-drag-handle",onMousedown:gn},[b("div",ea,[e[8]||(e[8]=b("span",{class:"drag-handle-text"},"视频通话",-1)),ft.value?(M(),H("span",na,"本地录制中")):B("",!0)]),b("div",oa,[C(f,{type:"primary",link:"",class:"call-kit-screenshot-btn",loading:yt.value,disabled:yt.value,onMousedown:e[3]||(e[3]=wt(()=>{},["stop"])),onClick:wt(_n,["stop","prevent"])},{default:k(()=>[C(l,null,{default:k(()=>[C(R(Jn))]),_:1}),e[9]||(e[9]=b("span",{class:"call-kit-screenshot-text"},"截屏",-1))]),_:1},8,["loading","disabled"]),C(f,{type:"danger",link:"",class:"call-kit-close-btn",onMousedown:e[4]||(e[4]=wt(()=>{},["stop"])),onClick:wt(yn,["stop"])},{default:k(()=>[C(l,null,{default:k(()=>[C(R(Re))]),_:1})]),_:1}),C(l,{class:"drag-handle-icon"},{default:k(()=>[C(R(Zn))]),_:1})])],32),b("div",{ref_key:"callKitContentRef",ref:Xt,class:"call-kit-content"},[C(R(Qn),{allowedMinimized:!0,allowedFullScreen:!0,class:"chat-dialog-call-kit"})],512)],4)),[[Zt,F.value]]):B("",!0)],6),[[Zt,s.value]])])}}}),Aa=Ke(la,[["__scopeId","data-v-ecdcca87"]]);export{Aa as default}; diff --git a/server/public/admin/assets/index-D-zzvF1Z.js b/server/public/admin/assets/index-CFeQKIlb.js similarity index 99% rename from server/public/admin/assets/index-D-zzvF1Z.js rename to server/public/admin/assets/index-CFeQKIlb.js index 2d14d32f1..c21ba4798 100644 --- a/server/public/admin/assets/index-D-zzvF1Z.js +++ b/server/public/admin/assets/index-CFeQKIlb.js @@ -1 +1 @@ -import{o as pe,aC as j,ap as qe,ac as _e,bn as Ye,q as i,r as c,s as t,T as s,v as r,D as u,u as K,cQ as Ge,w as je,L as d,P as g,bz as Ke,K as He,cR as Qe,O as h,az as We,F as D,G as z,bi as Je,bh as Xe,bL as Ze,cD as et,ae as H,t as me,bC as tt,bl as at,bm as nt,aw as lt,bk as st,bY as ot,cL as it,bu as rt,aB as dt,M as N,p as f,E as Q}from"./.pnpm-CyuAWpdG.js";import{f as ut,a as ct}from"./first_visit-BxZL4Ke4.js";import{_ as _t}from"./index-Dxvz9lb1.js";const mt={class:"conversion-page","element-loading-text":"正在汇总权限范围内的数据"},pt={class:"page-heading"},gt={class:"heading-meta"},ft={class:"scope-chip"},ht={key:0},vt={class:"filter-strip"},bt={class:"filter-item filter-item--time"},yt={class:"filter-item"},kt={class:"filter-item"},wt={class:"filter-item"},Dt={class:"range-text"},Ct={class:"metric-grid","aria-label":"综合转化指标"},xt={class:"metric-value"},Nt={key:0,class:"deleted-fans-marker",title:"加粉总数中已删除"},Vt={key:0,class:"ranking-grid"},zt={class:"panel ranking-panel"},Ft={class:"panel-heading"},Et={key:0,class:"bar-list"},St=["title"],Mt={class:"bar-track"},$t={class:"panel ranking-panel"},Lt={class:"panel-heading"},Tt={key:0,class:"bar-list"},It=["title"],Rt={class:"bar-track"},At={class:"panel detail-panel"},Ot={class:"panel-heading panel-heading--table"},Pt=["onClick"],Bt={key:0,class:"deleted-fans-marker",title:"加粉总数中已删除"},Ut={key:1,class:"fan-count-value is-empty"},qt={class:"panel target-panel"},Yt={class:"panel-heading"},Gt={class:"target-layout"},jt={class:"target-progress-list"},Kt={class:"target-summary"},Ht={class:"is-teal"},Qt={class:"progress-block"},Wt={class:"progress-copy"},Jt={class:"progress-block progress-block--month"},Xt={class:"progress-copy"},Zt={key:0,class:"target-empty-note"},ea={class:"trend-wrap"},ta={class:"fans-detail-context"},aa={class:"customer-cell"},na={key:0},la={key:0,class:"deleted-status"},sa={key:0},oa={class:"fans-detail-footer"},ia=pe({name:"firstVisitConversionPage"}),ra=pe({...ia,setup(da){const ge=new Set(["account_cost","roi"]),W=()=>({meta:{time_type:"today",time_label:"今日",start_date:"",end_date:"",generated_at:"",scope_value:4,scope_label:"",selected_dept_name:"",selected_assistant_name:"",selected_media_channel_code:"",selected_media_channel_name:"",open_count_source:"",ranking_kind:"hidden",can_view_finance:!1,can_view_deleted_fans:!1},filters:{departments:[],assistants:[],media_channels:[]},summary:{},rankings:{orders:[],amounts:[]},rows:[],target:{year:new Date().getFullYear(),target_amount:0,actual_amount:0,completion_rate:null,current_month_target:0,current_month_actual:0,current_month_rate:null,department_count:0,months:[],target_cumulative:[],actual_cumulative:[]}}),l=j(W()),T=N(!1),_=j({time_type:"today",dept_id:void 0,assistant_id:void 0,media_channel_code:""}),C=N([]),I=N(!1),R=N(!1),A=N(!1),F=N([]),p=j({page_no:1,page_size:20,total:0}),E=N({type:"dept",id:0,name:"当前行"}),fe={value:"id",label:"name",children:"children"},he=[{label:"今日",value:"today"},{label:"昨天",value:"yesterday"},{label:"本周",value:"week"},{label:"本月",value:"month"},{label:"本季度",value:"quarter"},{label:"本年",value:"year"},{label:"自定义",value:"custom"}],J=[{key:"add_fans_count",label:"加粉数",type:"count",hint:"区间新增员工+客户组合(不同员工分别计数,含已删除)"},{key:"total_open_count",label:"开口数",type:"count",hint:"获客客户首次发起会话;按开口时间统计,同一员工的同一客户只计一次"},{key:"interview_count",label:"面诊",type:"count",hint:"已完成预约"},{key:"completed_order_count",label:"接诊诊单",type:"count",hint:"业务订单,按创建人归属并过滤无效单"},{key:"completed_order_amount",label:"诊单金额",type:"money",hint:"排除取消、拒收、退款及已退款订单"},{key:"avg_unit_price",label:"平均客单价",type:"money",hint:"诊单金额 / 接诊诊单"},{key:"account_cost",label:"现金成本",type:"money",hint:"当前范围内实际投放成本"},{key:"roi",label:"ROI",type:"ratio",hint:"诊单金额 / 投放成本"}],ve=f(()=>{const n=[`${l.meta.time_label||"当前区间"}数据`,l.meta.scope_label||"当前权限范围"];return l.meta.selected_dept_name&&n.push(l.meta.selected_dept_name),l.meta.selected_assistant_name&&n.push(l.meta.selected_assistant_name),l.meta.selected_media_channel_name&&n.push(`渠道:${l.meta.selected_media_channel_name}`),n.join(" · ")}),X=f(()=>!!l.meta.can_view_finance),O=f(()=>l.meta.can_view_deleted_fans===!0),Z=f(()=>O.value&&A.value),be=f(()=>X.value?J:J.filter(n=>!ge.has(n.key))),ye=f(()=>{const n=[],e=new Map;for(const o of l.filters.media_channels){if(o.kind==="group")continue;const v=String(o.group_name||"").trim();let w=e.get(v);w===void 0&&(w=n.length,e.set(v,w),n.push({group_name:v,customer_count:0,channels:[]}));const M=n[w],$=v!==""&&!o.name.includes(v)?`${o.name} ${v}`:"";M.channels.push($===""?o:{...o,search_label:$}),M.customer_count=Math.max(M.customer_count,Number(o.customer_count||0))}for(const o of n){if(o.group_name==="")continue;const v=o.channels.some(w=>w.name===o.group_name);o.channels.length<2&&v||o.channels.unshift({code:`group:${o.group_name}`,name:`${o.group_name}(全部)`,group_name:o.group_name,customer_count:o.customer_count,kind:"group"})}return n}),ee=f(()=>l.meta.ranking_kind||(Number(l.meta.scope_value)===4?"hidden":Number(l.meta.scope_value)===3?"member":"group")),ke=f(()=>ee.value!=="hidden"),P=f(()=>ee.value==="member"?"组内成员":"小组"),we=f(()=>`${E.value.name} · 加粉组合明细`),De=f(()=>{const n=l.meta.start_date||_.start_date||"",e=l.meta.end_date||_.end_date||"";return n&&e?`${n} 至 ${e}`:l.meta.time_label||"当前区间"}),Ce=f(()=>l.meta.selected_media_channel_name||"全部渠道"),te=f(()=>l.rankings.orders.reduce((n,e)=>n+Number(e.value||0),0)),ae=f(()=>l.rankings.amounts.reduce((n,e)=>n+Number(e.value||0),0)),xe=f(()=>({animationDuration:450,color:["#0f9185","#2f78df"],tooltip:{trigger:"axis",valueFormatter:n=>y(n)},grid:{left:62,right:24,top:28,bottom:36},xAxis:{type:"category",boundaryGap:!1,data:l.target.months,axisLine:{lineStyle:{color:"#d9e1e9"}},axisLabel:{color:"#718096"}},yAxis:{type:"value",axisLabel:{color:"#718096",formatter:n=>Ae(n)},splitLine:{lineStyle:{color:"#edf1f5"}}},series:[{name:"实际完成",type:"line",smooth:!0,symbol:"none",lineStyle:{width:3},areaStyle:{color:"rgba(15,145,133,.08)"},data:l.target.actual_cumulative},{name:"目标值",type:"line",smooth:!0,symbol:"none",lineStyle:{width:2,type:"dashed"},data:l.target.target_cumulative}]}));let B=0,S=0;async function k(){const n=++B;T.value=!0,l.meta.can_view_deleted_fans=!1;try{const e={..._};if(e.time_type==="custom"){if(e.start_date=C.value[0]||"",e.end_date=C.value[1]||"",!e.start_date||!e.end_date){Q.warning("请选择自定义日期范围");return}}else delete e.start_date,delete e.end_date;const o=await ut(e);if(n!==B)return;Object.assign(l,W(),o||{}),_.media_channel_code=l.meta.selected_media_channel_code||""}catch(e){if(n!==B)return;Q.error((e==null?void 0:e.message)||"综合数据加载失败")}finally{n===B&&(T.value=!1)}}function Ne(){if(_.time_type!=="custom"){C.value=[],k();return}C.value.length===2&&k()}function Ve(){_.time_type==="custom"&&C.value.length===2&&k()}function ze(){_.assistant_id=void 0,k()}function Fe(n){E.value={type:n.type?"member":"dept",id:n.id,adminId:Number(n.admin_id||0)||void 0,name:n.name||"当前行"},p.page_no=1,F.value=[],p.total=0,I.value=!0,q()}async function q(){if(!I.value)return;const n=++S;R.value=!0,A.value=!1;try{const e={..._,time_type:_.time_type,start_date:l.meta.start_date||_.start_date,end_date:l.meta.end_date||_.end_date,media_channel_code:l.meta.selected_media_channel_code||_.media_channel_code||"",entity_type:E.value.type,entity_id:E.value.id,admin_id:E.value.adminId,page_no:p.page_no,page_size:p.page_size},o=await ct(e);if(n!==S)return;A.value=(o==null?void 0:o.can_view_deleted_fans)===!0;const v=Array.isArray(o==null?void 0:o.lists)?o.lists:Array.isArray(o==null?void 0:o.rows)?o.rows:[];F.value=v,p.total=Number((o==null?void 0:o.count)??(o==null?void 0:o.total)??v.length)||0}catch(e){if(n!==S)return;F.value=[],p.total=0,Q.error((e==null?void 0:e.message)||"加粉组合明细加载失败")}finally{n===S&&(R.value=!1)}}function Ee(){p.page_no=1,q()}function Se(){++S,R.value=!1,A.value=!1,F.value=[],p.page_no=1,p.total=0}function Me(n){return Math.round(Number(n||0))>0}function Y(n){return Z.value&&!!n.is_deleted}function $e(n){return n.customer_name||n.external_userid||"未知客户"}function Le(n){return n.wecom_staff_name||n.wecom_userid||"未绑定员工"}function Te(n){return n.add_time||"-"}function Ie({row:n}){return Y(n)?"is-deleted-fan-row":""}function Re(n,e){const o=l.summary[n];return e==="money"?y(o):e==="ratio"?se(o):V(o)}function V(n){return Math.round(Number(n||0)).toLocaleString("zh-CN")}function ne(n){return O.value&&Math.round(Number(n||0))>0}function y(n){return`¥${Number(n||0).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}`}function x(n){return`${Number(n||0).toFixed(1)}%`}function le(n,e){return e<=0?"0.0%":`${(Number(n||0)/e*100).toFixed(1)}%`}function G(n){return n==null?"未设置":x(n)}function se(n){return Number(n||0).toFixed(2)}function Ae(n){return Math.abs(n)>=1e4?`${(n/1e4).toFixed(0)}万`:String(Math.round(n))}function oe(n,e){const o=Number(n||0);return e<=0||o<=0?"0%":`${Math.max(4,Math.min(100,o/e*100))}%`}function ie(n){return Math.max(0,Math.min(100,Number(n||0)))}return qe(k),(n,e)=>{const o=je,v=He,w=Qe,M=We,$=Je,re=Xe,Oe=Ze,Pe=et,U=tt,L=nt,m=at,de=st,ue=ot,Be=rt,Ue=dt,ce=Ye;return _e((i(),c("div",mt,[t("header",pt,[t("div",null,[e[8]||(e[8]=t("h1",null,"综合数据转化",-1)),t("p",null,s(ve.value),1)]),t("div",gt,[t("span",ft,[r(o,null,{default:u(()=>[r(K(Ge))]),_:1}),d(s(l.meta.scope_label||"数据范围"),1)]),l.meta.generated_at?(i(),c("span",ht,"更新于 "+s(l.meta.generated_at),1)):g("",!0),r(v,{icon:K(Ke),loading:T.value,onClick:k},{default:u(()=>[...e[9]||(e[9]=[d("刷新",-1)])]),_:1},8,["icon","loading"])])]),t("section",vt,[t("div",bt,[e[10]||(e[10]=t("span",{class:"filter-label"},"时间范围",-1)),r(w,{modelValue:_.time_type,"onUpdate:modelValue":e[0]||(e[0]=a=>_.time_type=a),options:he,onChange:Ne},null,8,["modelValue"]),_.time_type==="custom"?(i(),h(M,{key:0,modelValue:C.value,"onUpdate:modelValue":e[1]||(e[1]=a=>C.value=a),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",class:"date-range-picker",clearable:!1,onChange:Ve},null,8,["modelValue"])):g("",!0)]),t("div",yt,[e[11]||(e[11]=t("span",{class:"filter-label"},"搜索员工",-1)),r(re,{modelValue:_.assistant_id,"onUpdate:modelValue":e[2]||(e[2]=a=>_.assistant_id=a),clearable:"",filterable:"",placeholder:"全部员工",class:"employee-select",onChange:k},{default:u(()=>[(i(!0),c(D,null,z(l.filters.assistants,a=>(i(),h($,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),t("div",kt,[e[12]||(e[12]=t("span",{class:"filter-label"},"部门",-1)),r(Oe,{modelValue:_.dept_id,"onUpdate:modelValue":e[3]||(e[3]=a=>_.dept_id=a),data:l.filters.departments,props:fe,"node-key":"id",clearable:"",filterable:"","check-strictly":"","default-expand-all":"",placeholder:"全部可见部门",class:"dept-select",onChange:ze},null,8,["modelValue","data"])]),t("div",wt,[e[13]||(e[13]=t("span",{class:"filter-label"},"渠道",-1)),r(re,{modelValue:_.media_channel_code,"onUpdate:modelValue":e[4]||(e[4]=a=>_.media_channel_code=a),clearable:"",filterable:"",placeholder:"全部渠道",class:"channel-select",onChange:k},{default:u(()=>[(i(!0),c(D,null,z(ye.value,a=>(i(),h(Pe,{key:a.group_name||"_",label:`${a.group_name||"(未分组)"} · ${a.customer_count}`},{default:u(()=>[(i(!0),c(D,null,z(a.channels,b=>(i(),h($,{key:b.code,label:b.search_label||b.name,value:b.code},{default:u(()=>[t("span",{class:H(["channel-option",{"is-group":b.kind==="group"}])},[t("span",null,s(b.name),1),t("span",null,s(b.customer_count)+" 人",1)],2)]),_:2},1032,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),t("span",Dt,s(l.meta.start_date)+" 至 "+s(l.meta.end_date),1)]),t("section",Ct,[(i(!0),c(D,null,z(be.value,a=>(i(),c("article",{key:a.key,class:"metric-card"},[t("span",null,s(a.label),1),t("strong",xt,[d(s(Re(a.key,a.type))+" ",1),a.key==="add_fans_count"&&ne(l.summary.deleted_fans_count)?(i(),c("em",Nt," (-"+s(V(l.summary.deleted_fans_count))+") ",1)):g("",!0)]),t("small",null,[d(s(a.hint),1),a.key==="add_fans_count"&&O.value?(i(),c(D,{key:0},[d(";(-N)为其中已删除")],64)):g("",!0)])]))),128))]),ke.value?(i(),c("section",Vt,[t("article",zt,[t("div",Ft,[t("div",null,[t("h2",null,s(P.value)+"订单量占比排名",1),t("p",null,"按"+s(P.value)+"归属统计,排除取消、拒收及退款",1)]),e[14]||(e[14]=t("span",null,"单位:单",-1))]),l.rankings.orders.length?(i(),c("div",Et,[(i(!0),c(D,null,z(l.rankings.orders,(a,b)=>(i(),c("div",{key:`order-${a.id}`,class:"bar-row"},[t("span",{class:"bar-name",title:a.name},[t("b",null,s(b+1),1),d(s(a.name),1)],8,St),t("div",Mt,[t("i",{class:"is-teal",style:me({width:oe(a.value,te.value)})},null,4)]),t("strong",null,[t("span",null,s(V(a.value))+" 单",1),t("small",null,s(le(a.value,te.value)),1)])]))),128))])):(i(),h(U,{key:1,"image-size":54,description:"当前范围暂无订单数据"}))]),t("article",$t,[t("div",Lt,[t("div",null,[t("h2",null,s(P.value)+"金额占比排名",1),t("p",null,"按"+s(P.value)+"归属统计,仅含未取消、未拒收且未退款的有效金额",1)]),e[15]||(e[15]=t("span",null,"单位:元",-1))]),l.rankings.amounts.length?(i(),c("div",Tt,[(i(!0),c(D,null,z(l.rankings.amounts,(a,b)=>(i(),c("div",{key:`amount-${a.id}`,class:"bar-row"},[t("span",{class:"bar-name",title:a.name},[t("b",null,s(b+1),1),d(s(a.name),1)],8,It),t("div",Rt,[t("i",{class:"is-blue",style:me({width:oe(a.value,ae.value)})},null,4)]),t("strong",null,[t("span",null,s(y(a.value)),1),t("small",null,s(le(a.value,ae.value)),1)])]))),128))])):(i(),h(U,{key:1,"image-size":54,description:"当前范围暂无金额数据"}))])])):g("",!0),t("section",At,[t("div",Ot,[t("div",null,[e[18]||(e[18]=t("h2",null,"明细数据列表",-1)),t("p",null,[e[16]||(e[16]=d("展开部门可查看人员明细;加粉=总进线=区间新增“员工+客户”组合(同一员工的同一客户只计一次,同一客户进入不同员工分别计数;包含区间内添加后已删客户,剔除继承客户、扫一扫/搜手机号/名片分享添加及区间前已存在的相同组合)",-1)),O.value?(i(),c(D,{key:0},[d(",(-N)表示加粉组合中已删除")],64)):g("",!0),e[17]||(e[17]=d(";开口=获客客户首次发起会话事件,按开口时间计入,同一员工的同一客户只计一次;挂号=已支付且实收低于 10 元的订单,预约=有效预约记录;开口率=开口/加粉,挂号率=挂号/加粉,面诊率=面诊/挂号(看挂号后流失),预约率=面诊/预约(看预约后未面诊),面诊接诊率=接诊诊单/面诊,接诊率=接诊诊单/总进线",-1))])]),t("span",null,s(l.rows.length)+" 个顶层节点",1)]),r(de,{data:l.rows,"row-key":"id","tree-props":{children:"children"},"default-expand-all":"",class:"detail-table"},{empty:u(()=>[r(U,{description:"当前权限范围内暂无转化数据"})]),default:u(()=>[r(m,{prop:"name",label:"部门 / 人员","min-width":"220",fixed:"left"},{default:u(({row:a})=>[t("strong",{class:H({"is-parent":Array.isArray(a.children)&&a.children.length,"is-member":a.type==="member"})},s(a.name),3),!a.type&&a.leader_name?(i(),h(L,{key:0,size:"small",type:"warning",effect:"plain",class:"role-tag"},{default:u(()=>[d(" 组长 · "+s(a.leader_name),1)]),_:2},1024)):g("",!0),a.type==="member"&&a.role?(i(),h(L,{key:1,size:"small",type:"info",effect:"plain",class:"role-tag"},{default:u(()=>[d(s(a.role)+s(a.is_leader?" · 组长":""),1)]),_:2},1024)):a.type==="unbound"?(i(),h(L,{key:2,size:"small",type:"warning",effect:"plain",class:"role-tag"},{default:u(()=>[...e[19]||(e[19]=[d(" 未绑定账号 ",-1)])]),_:1})):g("",!0)]),_:1}),r(m,{prop:"add_fans_count",label:"加粉","min-width":"92",align:"right"},{default:u(({row:a})=>[Me(a.add_fans_count)?(i(),c("button",{key:0,type:"button",class:"fan-count-value fan-detail-trigger fan-detail-trigger--table",title:"查看该行加粉组合明细",onClick:lt(b=>Fe(a),["stop"])},[d(s(V(a.add_fans_count))+" ",1),ne(a.deleted_fans_count)?(i(),c("em",Bt," (-"+s(V(a.deleted_fans_count))+") ",1)):g("",!0)],8,Pt)):(i(),c("span",Ut,"0"))]),_:1}),r(m,{prop:"total_open_count",label:"开口","min-width":"72",align:"right"}),r(m,{prop:"paid_appointment_count",label:"挂号","min-width":"72",align:"right"}),r(m,{prop:"appointment_total_count",label:"预约","min-width":"72",align:"right"}),r(m,{prop:"interview_count",label:"面诊","min-width":"72",align:"right"}),r(m,{prop:"completed_order_count",label:"接诊诊单","min-width":"88",align:"right"}),r(m,{label:"接诊金额","min-width":"104",align:"right"},{default:u(({row:a})=>[d(s(y(a.completed_order_amount)),1)]),_:1}),r(m,{label:"开口率","min-width":"82",align:"right"},{default:u(({row:a})=>[d(s(x(a.total_open_rate)),1)]),_:1}),r(m,{label:"挂号率","min-width":"82",align:"right"},{default:u(({row:a})=>[d(s(x(a.paid_appointment_rate)),1)]),_:1}),r(m,{label:"面诊率","min-width":"82",align:"right"},{default:u(({row:a})=>[d(s(x(a.interview_paid_rate)),1)]),_:1}),r(m,{label:"预约率","min-width":"82",align:"right"},{default:u(({row:a})=>[d(s(x(a.interview_rate)),1)]),_:1}),r(m,{label:"面诊接诊率","min-width":"100",align:"right"},{default:u(({row:a})=>[d(s(x(a.interview_receive_rate)),1)]),_:1}),r(m,{label:"接诊率","min-width":"82",align:"right"},{default:u(({row:a})=>[d(s(x(a.receive_rate)),1)]),_:1}),X.value?(i(),h(m,{key:0,label:"ROI","min-width":"72",align:"right"},{default:u(({row:a})=>[d(s(se(a.roi)),1)]),_:1})):g("",!0)]),_:1},8,["data"])]),t("section",qt,[t("div",Yt,[t("div",null,[e[20]||(e[20]=t("h2",null,"一诊诊金目标追踪",-1)),t("p",null,s(l.target.year)+" 年 · 按当前角色、部门及员工筛选范围计算",1)]),t("span",null,s(l.target.department_count)+" 个目标部门",1)]),t("div",Gt,[t("div",jt,[t("div",Kt,[t("div",null,[e[21]||(e[21]=t("span",null,"年度目标",-1)),t("strong",null,s(y(l.target.target_amount)),1)]),t("div",null,[e[22]||(e[22]=t("span",null,"已完成",-1)),t("strong",null,s(y(l.target.actual_amount)),1)]),t("div",null,[e[23]||(e[23]=t("span",null,"完成率",-1)),t("strong",Ht,s(G(l.target.completion_rate)),1)])]),t("div",Qt,[t("div",Wt,[e[24]||(e[24]=t("span",null,"年度范围目标",-1)),t("b",null,s(G(l.target.completion_rate)),1)]),r(ue,{percentage:ie(l.target.completion_rate),"show-text":!1,"stroke-width":12,color:"#0f9185"},null,8,["percentage"]),t("small",null,"已完成 "+s(y(l.target.actual_amount))+" / 目标 "+s(y(l.target.target_amount)),1)]),t("div",Jt,[t("div",Xt,[e[25]||(e[25]=t("span",null,"本月范围目标",-1)),t("b",null,s(G(l.target.current_month_rate)),1)]),r(ue,{percentage:ie(l.target.current_month_rate),"show-text":!1,"stroke-width":12,color:"#2f78df"},null,8,["percentage"]),t("small",null,"已完成 "+s(y(l.target.current_month_actual))+" / 目标 "+s(y(l.target.current_month_target)),1)]),Number(l.target.target_amount)<=0?(i(),c("div",Zt," 当前可见部门尚未维护本年度月度目标,实际诊单金额仍会正常统计。 ")):g("",!0)]),t("div",ea,[e[26]||(e[26]=t("div",{class:"trend-title"},[t("span",null,"年度累计趋势"),t("div",null,[t("i",{class:"legend-line is-actual"}),d("实际完成 "),t("i",{class:"legend-line is-target"}),d("目标值")])],-1)),r(K(it),{class:"target-chart",option:xe.value,autoresize:""},null,8,["option"])])])]),r(Ue,{modelValue:I.value,"onUpdate:modelValue":e[7]||(e[7]=a=>I.value=a),title:we.value,width:"920px",top:"7vh","append-to-body":"","destroy-on-close":"",class:"fans-detail-dialog",onClosed:Se},{default:u(()=>[t("div",ta,[t("span",null,[e[27]||(e[27]=t("b",null,"统计区间",-1)),d(s(De.value),1)]),t("span",null,[e[28]||(e[28]=t("b",null,"媒体渠道",-1)),d(s(Ce.value),1)]),t("span",null,[e[29]||(e[29]=t("b",null,"数据范围",-1)),d(s(l.meta.scope_label||"当前权限范围"),1)])]),_e((i(),h(de,{data:F.value,"row-class-name":Ie,height:"430",class:"fans-detail-table"},{empty:u(()=>[r(U,{"image-size":68,description:"当前条件下暂无加粉组合明细"})]),default:u(()=>[r(m,{label:"客户","min-width":"190"},{default:u(({row:a})=>[t("div",aa,[t("strong",{class:H(["customer-name",{"is-deleted":Y(a)}])},s($e(a)),3),a.customer_name&&a.external_userid?(i(),c("small",na,s(a.external_userid),1)):g("",!0)])]),_:1}),r(m,{label:"归属员工","min-width":"160"},{default:u(({row:a})=>[d(s(Le(a)),1)]),_:1}),r(m,{label:"添加时间","min-width":"180"},{default:u(({row:a})=>[d(s(Te(a)),1)]),_:1}),Z.value?(i(),h(m,{key:0,label:"状态",width:"150",align:"center"},{default:u(({row:a})=>[Y(a)?(i(),c("div",la,[r(L,{type:"danger",effect:"dark",size:"small"},{default:u(()=>[...e[30]||(e[30]=[d("已删除",-1)])]),_:1}),a.delete_time?(i(),c("small",sa,s(a.delete_time),1)):g("",!0)])):(i(),h(L,{key:1,type:"success",effect:"plain",size:"small"},{default:u(()=>[...e[31]||(e[31]=[d("正常",-1)])]),_:1}))]),_:1})):g("",!0)]),_:1},8,["data"])),[[ce,R.value]]),t("div",oa,[t("span",null,"共 "+s(V(p.total))+" 位客户",1),p.total>0?(i(),h(Be,{key:0,"current-page":p.page_no,"onUpdate:currentPage":e[5]||(e[5]=a=>p.page_no=a),"page-size":p.page_size,"onUpdate:pageSize":e[6]||(e[6]=a=>p.page_size=a),"page-sizes":[10,20,50,100],total:p.total,layout:"total, sizes, prev, pager, next",background:"",onCurrentChange:q,onSizeChange:Ee},null,8,["current-page","page-size","total"])):g("",!0)])]),_:1},8,["modelValue","title"])])),[[ce,T.value]])}}}),ma=_t(ra,[["__scopeId","data-v-e026bcbc"]]);export{ma as default}; +import{o as pe,aC as j,ap as qe,ac as _e,bn as Ye,q as i,r as c,s as t,T as s,v as r,D as u,u as K,cQ as Ge,w as je,L as d,P as g,bz as Ke,K as He,cR as Qe,O as h,az as We,F as D,G as z,bi as Je,bh as Xe,bL as Ze,cD as et,ae as H,t as me,bC as tt,bl as at,bm as nt,aw as lt,bk as st,bY as ot,cL as it,bu as rt,aB as dt,M as N,p as f,E as Q}from"./.pnpm-CyuAWpdG.js";import{f as ut,a as ct}from"./first_visit-B5IgLifl.js";import{_ as _t}from"./index-Bkarz3gO.js";const mt={class:"conversion-page","element-loading-text":"正在汇总权限范围内的数据"},pt={class:"page-heading"},gt={class:"heading-meta"},ft={class:"scope-chip"},ht={key:0},vt={class:"filter-strip"},bt={class:"filter-item filter-item--time"},yt={class:"filter-item"},kt={class:"filter-item"},wt={class:"filter-item"},Dt={class:"range-text"},Ct={class:"metric-grid","aria-label":"综合转化指标"},xt={class:"metric-value"},Nt={key:0,class:"deleted-fans-marker",title:"加粉总数中已删除"},Vt={key:0,class:"ranking-grid"},zt={class:"panel ranking-panel"},Ft={class:"panel-heading"},Et={key:0,class:"bar-list"},St=["title"],Mt={class:"bar-track"},$t={class:"panel ranking-panel"},Lt={class:"panel-heading"},Tt={key:0,class:"bar-list"},It=["title"],Rt={class:"bar-track"},At={class:"panel detail-panel"},Ot={class:"panel-heading panel-heading--table"},Pt=["onClick"],Bt={key:0,class:"deleted-fans-marker",title:"加粉总数中已删除"},Ut={key:1,class:"fan-count-value is-empty"},qt={class:"panel target-panel"},Yt={class:"panel-heading"},Gt={class:"target-layout"},jt={class:"target-progress-list"},Kt={class:"target-summary"},Ht={class:"is-teal"},Qt={class:"progress-block"},Wt={class:"progress-copy"},Jt={class:"progress-block progress-block--month"},Xt={class:"progress-copy"},Zt={key:0,class:"target-empty-note"},ea={class:"trend-wrap"},ta={class:"fans-detail-context"},aa={class:"customer-cell"},na={key:0},la={key:0,class:"deleted-status"},sa={key:0},oa={class:"fans-detail-footer"},ia=pe({name:"firstVisitConversionPage"}),ra=pe({...ia,setup(da){const ge=new Set(["account_cost","roi"]),W=()=>({meta:{time_type:"today",time_label:"今日",start_date:"",end_date:"",generated_at:"",scope_value:4,scope_label:"",selected_dept_name:"",selected_assistant_name:"",selected_media_channel_code:"",selected_media_channel_name:"",open_count_source:"",ranking_kind:"hidden",can_view_finance:!1,can_view_deleted_fans:!1},filters:{departments:[],assistants:[],media_channels:[]},summary:{},rankings:{orders:[],amounts:[]},rows:[],target:{year:new Date().getFullYear(),target_amount:0,actual_amount:0,completion_rate:null,current_month_target:0,current_month_actual:0,current_month_rate:null,department_count:0,months:[],target_cumulative:[],actual_cumulative:[]}}),l=j(W()),T=N(!1),_=j({time_type:"today",dept_id:void 0,assistant_id:void 0,media_channel_code:""}),C=N([]),I=N(!1),R=N(!1),A=N(!1),F=N([]),p=j({page_no:1,page_size:20,total:0}),E=N({type:"dept",id:0,name:"当前行"}),fe={value:"id",label:"name",children:"children"},he=[{label:"今日",value:"today"},{label:"昨天",value:"yesterday"},{label:"本周",value:"week"},{label:"本月",value:"month"},{label:"本季度",value:"quarter"},{label:"本年",value:"year"},{label:"自定义",value:"custom"}],J=[{key:"add_fans_count",label:"加粉数",type:"count",hint:"区间新增员工+客户组合(不同员工分别计数,含已删除)"},{key:"total_open_count",label:"开口数",type:"count",hint:"获客客户首次发起会话;按开口时间统计,同一员工的同一客户只计一次"},{key:"interview_count",label:"面诊",type:"count",hint:"已完成预约"},{key:"completed_order_count",label:"接诊诊单",type:"count",hint:"业务订单,按创建人归属并过滤无效单"},{key:"completed_order_amount",label:"诊单金额",type:"money",hint:"排除取消、拒收、退款及已退款订单"},{key:"avg_unit_price",label:"平均客单价",type:"money",hint:"诊单金额 / 接诊诊单"},{key:"account_cost",label:"现金成本",type:"money",hint:"当前范围内实际投放成本"},{key:"roi",label:"ROI",type:"ratio",hint:"诊单金额 / 投放成本"}],ve=f(()=>{const n=[`${l.meta.time_label||"当前区间"}数据`,l.meta.scope_label||"当前权限范围"];return l.meta.selected_dept_name&&n.push(l.meta.selected_dept_name),l.meta.selected_assistant_name&&n.push(l.meta.selected_assistant_name),l.meta.selected_media_channel_name&&n.push(`渠道:${l.meta.selected_media_channel_name}`),n.join(" · ")}),X=f(()=>!!l.meta.can_view_finance),O=f(()=>l.meta.can_view_deleted_fans===!0),Z=f(()=>O.value&&A.value),be=f(()=>X.value?J:J.filter(n=>!ge.has(n.key))),ye=f(()=>{const n=[],e=new Map;for(const o of l.filters.media_channels){if(o.kind==="group")continue;const v=String(o.group_name||"").trim();let w=e.get(v);w===void 0&&(w=n.length,e.set(v,w),n.push({group_name:v,customer_count:0,channels:[]}));const M=n[w],$=v!==""&&!o.name.includes(v)?`${o.name} ${v}`:"";M.channels.push($===""?o:{...o,search_label:$}),M.customer_count=Math.max(M.customer_count,Number(o.customer_count||0))}for(const o of n){if(o.group_name==="")continue;const v=o.channels.some(w=>w.name===o.group_name);o.channels.length<2&&v||o.channels.unshift({code:`group:${o.group_name}`,name:`${o.group_name}(全部)`,group_name:o.group_name,customer_count:o.customer_count,kind:"group"})}return n}),ee=f(()=>l.meta.ranking_kind||(Number(l.meta.scope_value)===4?"hidden":Number(l.meta.scope_value)===3?"member":"group")),ke=f(()=>ee.value!=="hidden"),P=f(()=>ee.value==="member"?"组内成员":"小组"),we=f(()=>`${E.value.name} · 加粉组合明细`),De=f(()=>{const n=l.meta.start_date||_.start_date||"",e=l.meta.end_date||_.end_date||"";return n&&e?`${n} 至 ${e}`:l.meta.time_label||"当前区间"}),Ce=f(()=>l.meta.selected_media_channel_name||"全部渠道"),te=f(()=>l.rankings.orders.reduce((n,e)=>n+Number(e.value||0),0)),ae=f(()=>l.rankings.amounts.reduce((n,e)=>n+Number(e.value||0),0)),xe=f(()=>({animationDuration:450,color:["#0f9185","#2f78df"],tooltip:{trigger:"axis",valueFormatter:n=>y(n)},grid:{left:62,right:24,top:28,bottom:36},xAxis:{type:"category",boundaryGap:!1,data:l.target.months,axisLine:{lineStyle:{color:"#d9e1e9"}},axisLabel:{color:"#718096"}},yAxis:{type:"value",axisLabel:{color:"#718096",formatter:n=>Ae(n)},splitLine:{lineStyle:{color:"#edf1f5"}}},series:[{name:"实际完成",type:"line",smooth:!0,symbol:"none",lineStyle:{width:3},areaStyle:{color:"rgba(15,145,133,.08)"},data:l.target.actual_cumulative},{name:"目标值",type:"line",smooth:!0,symbol:"none",lineStyle:{width:2,type:"dashed"},data:l.target.target_cumulative}]}));let B=0,S=0;async function k(){const n=++B;T.value=!0,l.meta.can_view_deleted_fans=!1;try{const e={..._};if(e.time_type==="custom"){if(e.start_date=C.value[0]||"",e.end_date=C.value[1]||"",!e.start_date||!e.end_date){Q.warning("请选择自定义日期范围");return}}else delete e.start_date,delete e.end_date;const o=await ut(e);if(n!==B)return;Object.assign(l,W(),o||{}),_.media_channel_code=l.meta.selected_media_channel_code||""}catch(e){if(n!==B)return;Q.error((e==null?void 0:e.message)||"综合数据加载失败")}finally{n===B&&(T.value=!1)}}function Ne(){if(_.time_type!=="custom"){C.value=[],k();return}C.value.length===2&&k()}function Ve(){_.time_type==="custom"&&C.value.length===2&&k()}function ze(){_.assistant_id=void 0,k()}function Fe(n){E.value={type:n.type?"member":"dept",id:n.id,adminId:Number(n.admin_id||0)||void 0,name:n.name||"当前行"},p.page_no=1,F.value=[],p.total=0,I.value=!0,q()}async function q(){if(!I.value)return;const n=++S;R.value=!0,A.value=!1;try{const e={..._,time_type:_.time_type,start_date:l.meta.start_date||_.start_date,end_date:l.meta.end_date||_.end_date,media_channel_code:l.meta.selected_media_channel_code||_.media_channel_code||"",entity_type:E.value.type,entity_id:E.value.id,admin_id:E.value.adminId,page_no:p.page_no,page_size:p.page_size},o=await ct(e);if(n!==S)return;A.value=(o==null?void 0:o.can_view_deleted_fans)===!0;const v=Array.isArray(o==null?void 0:o.lists)?o.lists:Array.isArray(o==null?void 0:o.rows)?o.rows:[];F.value=v,p.total=Number((o==null?void 0:o.count)??(o==null?void 0:o.total)??v.length)||0}catch(e){if(n!==S)return;F.value=[],p.total=0,Q.error((e==null?void 0:e.message)||"加粉组合明细加载失败")}finally{n===S&&(R.value=!1)}}function Ee(){p.page_no=1,q()}function Se(){++S,R.value=!1,A.value=!1,F.value=[],p.page_no=1,p.total=0}function Me(n){return Math.round(Number(n||0))>0}function Y(n){return Z.value&&!!n.is_deleted}function $e(n){return n.customer_name||n.external_userid||"未知客户"}function Le(n){return n.wecom_staff_name||n.wecom_userid||"未绑定员工"}function Te(n){return n.add_time||"-"}function Ie({row:n}){return Y(n)?"is-deleted-fan-row":""}function Re(n,e){const o=l.summary[n];return e==="money"?y(o):e==="ratio"?se(o):V(o)}function V(n){return Math.round(Number(n||0)).toLocaleString("zh-CN")}function ne(n){return O.value&&Math.round(Number(n||0))>0}function y(n){return`¥${Number(n||0).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}`}function x(n){return`${Number(n||0).toFixed(1)}%`}function le(n,e){return e<=0?"0.0%":`${(Number(n||0)/e*100).toFixed(1)}%`}function G(n){return n==null?"未设置":x(n)}function se(n){return Number(n||0).toFixed(2)}function Ae(n){return Math.abs(n)>=1e4?`${(n/1e4).toFixed(0)}万`:String(Math.round(n))}function oe(n,e){const o=Number(n||0);return e<=0||o<=0?"0%":`${Math.max(4,Math.min(100,o/e*100))}%`}function ie(n){return Math.max(0,Math.min(100,Number(n||0)))}return qe(k),(n,e)=>{const o=je,v=He,w=Qe,M=We,$=Je,re=Xe,Oe=Ze,Pe=et,U=tt,L=nt,m=at,de=st,ue=ot,Be=rt,Ue=dt,ce=Ye;return _e((i(),c("div",mt,[t("header",pt,[t("div",null,[e[8]||(e[8]=t("h1",null,"综合数据转化",-1)),t("p",null,s(ve.value),1)]),t("div",gt,[t("span",ft,[r(o,null,{default:u(()=>[r(K(Ge))]),_:1}),d(s(l.meta.scope_label||"数据范围"),1)]),l.meta.generated_at?(i(),c("span",ht,"更新于 "+s(l.meta.generated_at),1)):g("",!0),r(v,{icon:K(Ke),loading:T.value,onClick:k},{default:u(()=>[...e[9]||(e[9]=[d("刷新",-1)])]),_:1},8,["icon","loading"])])]),t("section",vt,[t("div",bt,[e[10]||(e[10]=t("span",{class:"filter-label"},"时间范围",-1)),r(w,{modelValue:_.time_type,"onUpdate:modelValue":e[0]||(e[0]=a=>_.time_type=a),options:he,onChange:Ne},null,8,["modelValue"]),_.time_type==="custom"?(i(),h(M,{key:0,modelValue:C.value,"onUpdate:modelValue":e[1]||(e[1]=a=>C.value=a),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",class:"date-range-picker",clearable:!1,onChange:Ve},null,8,["modelValue"])):g("",!0)]),t("div",yt,[e[11]||(e[11]=t("span",{class:"filter-label"},"搜索员工",-1)),r(re,{modelValue:_.assistant_id,"onUpdate:modelValue":e[2]||(e[2]=a=>_.assistant_id=a),clearable:"",filterable:"",placeholder:"全部员工",class:"employee-select",onChange:k},{default:u(()=>[(i(!0),c(D,null,z(l.filters.assistants,a=>(i(),h($,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),t("div",kt,[e[12]||(e[12]=t("span",{class:"filter-label"},"部门",-1)),r(Oe,{modelValue:_.dept_id,"onUpdate:modelValue":e[3]||(e[3]=a=>_.dept_id=a),data:l.filters.departments,props:fe,"node-key":"id",clearable:"",filterable:"","check-strictly":"","default-expand-all":"",placeholder:"全部可见部门",class:"dept-select",onChange:ze},null,8,["modelValue","data"])]),t("div",wt,[e[13]||(e[13]=t("span",{class:"filter-label"},"渠道",-1)),r(re,{modelValue:_.media_channel_code,"onUpdate:modelValue":e[4]||(e[4]=a=>_.media_channel_code=a),clearable:"",filterable:"",placeholder:"全部渠道",class:"channel-select",onChange:k},{default:u(()=>[(i(!0),c(D,null,z(ye.value,a=>(i(),h(Pe,{key:a.group_name||"_",label:`${a.group_name||"(未分组)"} · ${a.customer_count}`},{default:u(()=>[(i(!0),c(D,null,z(a.channels,b=>(i(),h($,{key:b.code,label:b.search_label||b.name,value:b.code},{default:u(()=>[t("span",{class:H(["channel-option",{"is-group":b.kind==="group"}])},[t("span",null,s(b.name),1),t("span",null,s(b.customer_count)+" 人",1)],2)]),_:2},1032,["label","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),t("span",Dt,s(l.meta.start_date)+" 至 "+s(l.meta.end_date),1)]),t("section",Ct,[(i(!0),c(D,null,z(be.value,a=>(i(),c("article",{key:a.key,class:"metric-card"},[t("span",null,s(a.label),1),t("strong",xt,[d(s(Re(a.key,a.type))+" ",1),a.key==="add_fans_count"&&ne(l.summary.deleted_fans_count)?(i(),c("em",Nt," (-"+s(V(l.summary.deleted_fans_count))+") ",1)):g("",!0)]),t("small",null,[d(s(a.hint),1),a.key==="add_fans_count"&&O.value?(i(),c(D,{key:0},[d(";(-N)为其中已删除")],64)):g("",!0)])]))),128))]),ke.value?(i(),c("section",Vt,[t("article",zt,[t("div",Ft,[t("div",null,[t("h2",null,s(P.value)+"订单量占比排名",1),t("p",null,"按"+s(P.value)+"归属统计,排除取消、拒收及退款",1)]),e[14]||(e[14]=t("span",null,"单位:单",-1))]),l.rankings.orders.length?(i(),c("div",Et,[(i(!0),c(D,null,z(l.rankings.orders,(a,b)=>(i(),c("div",{key:`order-${a.id}`,class:"bar-row"},[t("span",{class:"bar-name",title:a.name},[t("b",null,s(b+1),1),d(s(a.name),1)],8,St),t("div",Mt,[t("i",{class:"is-teal",style:me({width:oe(a.value,te.value)})},null,4)]),t("strong",null,[t("span",null,s(V(a.value))+" 单",1),t("small",null,s(le(a.value,te.value)),1)])]))),128))])):(i(),h(U,{key:1,"image-size":54,description:"当前范围暂无订单数据"}))]),t("article",$t,[t("div",Lt,[t("div",null,[t("h2",null,s(P.value)+"金额占比排名",1),t("p",null,"按"+s(P.value)+"归属统计,仅含未取消、未拒收且未退款的有效金额",1)]),e[15]||(e[15]=t("span",null,"单位:元",-1))]),l.rankings.amounts.length?(i(),c("div",Tt,[(i(!0),c(D,null,z(l.rankings.amounts,(a,b)=>(i(),c("div",{key:`amount-${a.id}`,class:"bar-row"},[t("span",{class:"bar-name",title:a.name},[t("b",null,s(b+1),1),d(s(a.name),1)],8,It),t("div",Rt,[t("i",{class:"is-blue",style:me({width:oe(a.value,ae.value)})},null,4)]),t("strong",null,[t("span",null,s(y(a.value)),1),t("small",null,s(le(a.value,ae.value)),1)])]))),128))])):(i(),h(U,{key:1,"image-size":54,description:"当前范围暂无金额数据"}))])])):g("",!0),t("section",At,[t("div",Ot,[t("div",null,[e[18]||(e[18]=t("h2",null,"明细数据列表",-1)),t("p",null,[e[16]||(e[16]=d("展开部门可查看人员明细;加粉=总进线=区间新增“员工+客户”组合(同一员工的同一客户只计一次,同一客户进入不同员工分别计数;包含区间内添加后已删客户,剔除继承客户、扫一扫/搜手机号/名片分享添加及区间前已存在的相同组合)",-1)),O.value?(i(),c(D,{key:0},[d(",(-N)表示加粉组合中已删除")],64)):g("",!0),e[17]||(e[17]=d(";开口=获客客户首次发起会话事件,按开口时间计入,同一员工的同一客户只计一次;挂号=已支付且实收低于 10 元的订单,预约=有效预约记录;开口率=开口/加粉,挂号率=挂号/加粉,面诊率=面诊/挂号(看挂号后流失),预约率=面诊/预约(看预约后未面诊),面诊接诊率=接诊诊单/面诊,接诊率=接诊诊单/总进线",-1))])]),t("span",null,s(l.rows.length)+" 个顶层节点",1)]),r(de,{data:l.rows,"row-key":"id","tree-props":{children:"children"},"default-expand-all":"",class:"detail-table"},{empty:u(()=>[r(U,{description:"当前权限范围内暂无转化数据"})]),default:u(()=>[r(m,{prop:"name",label:"部门 / 人员","min-width":"220",fixed:"left"},{default:u(({row:a})=>[t("strong",{class:H({"is-parent":Array.isArray(a.children)&&a.children.length,"is-member":a.type==="member"})},s(a.name),3),!a.type&&a.leader_name?(i(),h(L,{key:0,size:"small",type:"warning",effect:"plain",class:"role-tag"},{default:u(()=>[d(" 组长 · "+s(a.leader_name),1)]),_:2},1024)):g("",!0),a.type==="member"&&a.role?(i(),h(L,{key:1,size:"small",type:"info",effect:"plain",class:"role-tag"},{default:u(()=>[d(s(a.role)+s(a.is_leader?" · 组长":""),1)]),_:2},1024)):a.type==="unbound"?(i(),h(L,{key:2,size:"small",type:"warning",effect:"plain",class:"role-tag"},{default:u(()=>[...e[19]||(e[19]=[d(" 未绑定账号 ",-1)])]),_:1})):g("",!0)]),_:1}),r(m,{prop:"add_fans_count",label:"加粉","min-width":"92",align:"right"},{default:u(({row:a})=>[Me(a.add_fans_count)?(i(),c("button",{key:0,type:"button",class:"fan-count-value fan-detail-trigger fan-detail-trigger--table",title:"查看该行加粉组合明细",onClick:lt(b=>Fe(a),["stop"])},[d(s(V(a.add_fans_count))+" ",1),ne(a.deleted_fans_count)?(i(),c("em",Bt," (-"+s(V(a.deleted_fans_count))+") ",1)):g("",!0)],8,Pt)):(i(),c("span",Ut,"0"))]),_:1}),r(m,{prop:"total_open_count",label:"开口","min-width":"72",align:"right"}),r(m,{prop:"paid_appointment_count",label:"挂号","min-width":"72",align:"right"}),r(m,{prop:"appointment_total_count",label:"预约","min-width":"72",align:"right"}),r(m,{prop:"interview_count",label:"面诊","min-width":"72",align:"right"}),r(m,{prop:"completed_order_count",label:"接诊诊单","min-width":"88",align:"right"}),r(m,{label:"接诊金额","min-width":"104",align:"right"},{default:u(({row:a})=>[d(s(y(a.completed_order_amount)),1)]),_:1}),r(m,{label:"开口率","min-width":"82",align:"right"},{default:u(({row:a})=>[d(s(x(a.total_open_rate)),1)]),_:1}),r(m,{label:"挂号率","min-width":"82",align:"right"},{default:u(({row:a})=>[d(s(x(a.paid_appointment_rate)),1)]),_:1}),r(m,{label:"面诊率","min-width":"82",align:"right"},{default:u(({row:a})=>[d(s(x(a.interview_paid_rate)),1)]),_:1}),r(m,{label:"预约率","min-width":"82",align:"right"},{default:u(({row:a})=>[d(s(x(a.interview_rate)),1)]),_:1}),r(m,{label:"面诊接诊率","min-width":"100",align:"right"},{default:u(({row:a})=>[d(s(x(a.interview_receive_rate)),1)]),_:1}),r(m,{label:"接诊率","min-width":"82",align:"right"},{default:u(({row:a})=>[d(s(x(a.receive_rate)),1)]),_:1}),X.value?(i(),h(m,{key:0,label:"ROI","min-width":"72",align:"right"},{default:u(({row:a})=>[d(s(se(a.roi)),1)]),_:1})):g("",!0)]),_:1},8,["data"])]),t("section",qt,[t("div",Yt,[t("div",null,[e[20]||(e[20]=t("h2",null,"一诊诊金目标追踪",-1)),t("p",null,s(l.target.year)+" 年 · 按当前角色、部门及员工筛选范围计算",1)]),t("span",null,s(l.target.department_count)+" 个目标部门",1)]),t("div",Gt,[t("div",jt,[t("div",Kt,[t("div",null,[e[21]||(e[21]=t("span",null,"年度目标",-1)),t("strong",null,s(y(l.target.target_amount)),1)]),t("div",null,[e[22]||(e[22]=t("span",null,"已完成",-1)),t("strong",null,s(y(l.target.actual_amount)),1)]),t("div",null,[e[23]||(e[23]=t("span",null,"完成率",-1)),t("strong",Ht,s(G(l.target.completion_rate)),1)])]),t("div",Qt,[t("div",Wt,[e[24]||(e[24]=t("span",null,"年度范围目标",-1)),t("b",null,s(G(l.target.completion_rate)),1)]),r(ue,{percentage:ie(l.target.completion_rate),"show-text":!1,"stroke-width":12,color:"#0f9185"},null,8,["percentage"]),t("small",null,"已完成 "+s(y(l.target.actual_amount))+" / 目标 "+s(y(l.target.target_amount)),1)]),t("div",Jt,[t("div",Xt,[e[25]||(e[25]=t("span",null,"本月范围目标",-1)),t("b",null,s(G(l.target.current_month_rate)),1)]),r(ue,{percentage:ie(l.target.current_month_rate),"show-text":!1,"stroke-width":12,color:"#2f78df"},null,8,["percentage"]),t("small",null,"已完成 "+s(y(l.target.current_month_actual))+" / 目标 "+s(y(l.target.current_month_target)),1)]),Number(l.target.target_amount)<=0?(i(),c("div",Zt," 当前可见部门尚未维护本年度月度目标,实际诊单金额仍会正常统计。 ")):g("",!0)]),t("div",ea,[e[26]||(e[26]=t("div",{class:"trend-title"},[t("span",null,"年度累计趋势"),t("div",null,[t("i",{class:"legend-line is-actual"}),d("实际完成 "),t("i",{class:"legend-line is-target"}),d("目标值")])],-1)),r(K(it),{class:"target-chart",option:xe.value,autoresize:""},null,8,["option"])])])]),r(Ue,{modelValue:I.value,"onUpdate:modelValue":e[7]||(e[7]=a=>I.value=a),title:we.value,width:"920px",top:"7vh","append-to-body":"","destroy-on-close":"",class:"fans-detail-dialog",onClosed:Se},{default:u(()=>[t("div",ta,[t("span",null,[e[27]||(e[27]=t("b",null,"统计区间",-1)),d(s(De.value),1)]),t("span",null,[e[28]||(e[28]=t("b",null,"媒体渠道",-1)),d(s(Ce.value),1)]),t("span",null,[e[29]||(e[29]=t("b",null,"数据范围",-1)),d(s(l.meta.scope_label||"当前权限范围"),1)])]),_e((i(),h(de,{data:F.value,"row-class-name":Ie,height:"430",class:"fans-detail-table"},{empty:u(()=>[r(U,{"image-size":68,description:"当前条件下暂无加粉组合明细"})]),default:u(()=>[r(m,{label:"客户","min-width":"190"},{default:u(({row:a})=>[t("div",aa,[t("strong",{class:H(["customer-name",{"is-deleted":Y(a)}])},s($e(a)),3),a.customer_name&&a.external_userid?(i(),c("small",na,s(a.external_userid),1)):g("",!0)])]),_:1}),r(m,{label:"归属员工","min-width":"160"},{default:u(({row:a})=>[d(s(Le(a)),1)]),_:1}),r(m,{label:"添加时间","min-width":"180"},{default:u(({row:a})=>[d(s(Te(a)),1)]),_:1}),Z.value?(i(),h(m,{key:0,label:"状态",width:"150",align:"center"},{default:u(({row:a})=>[Y(a)?(i(),c("div",la,[r(L,{type:"danger",effect:"dark",size:"small"},{default:u(()=>[...e[30]||(e[30]=[d("已删除",-1)])]),_:1}),a.delete_time?(i(),c("small",sa,s(a.delete_time),1)):g("",!0)])):(i(),h(L,{key:1,type:"success",effect:"plain",size:"small"},{default:u(()=>[...e[31]||(e[31]=[d("正常",-1)])]),_:1}))]),_:1})):g("",!0)]),_:1},8,["data"])),[[ce,R.value]]),t("div",oa,[t("span",null,"共 "+s(V(p.total))+" 位客户",1),p.total>0?(i(),h(Be,{key:0,"current-page":p.page_no,"onUpdate:currentPage":e[5]||(e[5]=a=>p.page_no=a),"page-size":p.page_size,"onUpdate:pageSize":e[6]||(e[6]=a=>p.page_size=a),"page-sizes":[10,20,50,100],total:p.total,layout:"total, sizes, prev, pager, next",background:"",onCurrentChange:q,onSizeChange:Ee},null,8,["current-page","page-size","total"])):g("",!0)])]),_:1},8,["modelValue","title"])])),[[ce,T.value]])}}}),ma=_t(ra,[["__scopeId","data-v-e026bcbc"]]);export{ma as default}; diff --git a/server/public/admin/assets/index-DfAImr1P.js b/server/public/admin/assets/index-CRapUBJO.js similarity index 97% rename from server/public/admin/assets/index-DfAImr1P.js rename to server/public/admin/assets/index-CRapUBJO.js index 656fa0933..3cdb71c00 100644 --- a/server/public/admin/assets/index-DfAImr1P.js +++ b/server/public/admin/assets/index-CRapUBJO.js @@ -1 +1 @@ -import{o as U,ap as re,q as n,r as m,v as l,D as o,bd as de,bb as ue,bf as ce,be as me,L as d,O as g,az as ve,P as z,K as pe,bj as _e,s,F as x,G as B,ae as O,T as u,u as A,cL as fe,bC as ye,ac as be,bn as ge,M as h,aC as I,p as c,E as he}from"./.pnpm-CyuAWpdG.js";import{r as ke,s as xe}from"./stats-Bao68QGi.js";import{h as we}from"./perm-DOfZAzJJ.js";import{_ as Ce}from"./index-Dxvz9lb1.js";const Ne={class:"assistant-performance-page"},$e={class:"stats-kpi-grid"},Me={class:"stats-kpi-label"},Ve={class:"card-header"},Re={class:"card-hint"},Ee={class:"card-header"},Fe={class:"card-header-left"},De={class:"card-hint"},Se={class:"revisit-rate-body"},Ye={key:0,class:"revisit-kpi-grid"},Te={class:"revisit-kpi-card"},Pe={class:"revisit-kpi-value"},Le={class:"revisit-kpi-card"},ze={class:"revisit-kpi-value"},Be={class:"revisit-kpi-card is-primary"},Oe={class:"revisit-kpi-value"},Ae={class:"revisit-kpi-sub"},Ie={class:"stats-kpi-label"},Ue={class:"revisit-kpi-value"},je={class:"revisit-kpi-sub"},qe={class:"revisit-caliber"},Ge=U({name:"assistantPerformancePage"}),He=U({...Ge,setup(Ke){const w=h(!1),v=h([]),p=I({time_type:"month",start_date:"",end_date:""}),r=I({date_range:[],summary:{total_amount:0,total_count:0},chart:{dates:[],amounts:[],counts:[]}}),j=[{key:"total_amount",label:"业绩",type:"money",cardClass:""},{key:"total_count",label:"有效订单数",type:"count",cardClass:""}],q=c(()=>{var t;return(t=r.date_range)!=null&&t.length?`${r.date_range[0]} 至 ${r.date_range[1]}`:"未选择"}),G=c(()=>r.chart.dates.length>0&&r.chart.amounts.some(t=>t>0)),H=c(()=>({tooltip:{trigger:"axis",formatter:t=>{const e=t[0];return`${e.axisValue}
${e.marker}${e.seriesName}: ¥${Number(e.value).toFixed(2)}`}},grid:{left:60,right:24,top:36,bottom:36},xAxis:{type:"category",data:r.chart.dates,axisLabel:{interval:r.chart.dates.length>15?"auto":0,rotate:r.chart.dates.length>10?30:0}},yAxis:{type:"value",name:"金额(元)",axisLabel:{formatter:t=>t>=1e4?(t/1e4).toFixed(1)+"万":String(t)}},series:[{name:"业绩",type:"line",smooth:!0,showSymbol:!0,symbolSize:6,lineStyle:{width:3,color:"#4a78ff"},itemStyle:{color:"#4a78ff"},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(74, 120, 255, 0.25)"},{offset:1,color:"rgba(74, 120, 255, 0.02)"}]}},data:r.chart.amounts}]})),K=(t,e)=>{var k;const i=((k=r.summary)==null?void 0:k[t])??0;return e==="money"?`¥${Number(i).toFixed(2)}`:String(i)},b=async()=>{w.value=!0;try{const t={time_type:p.time_type};p.time_type==="custom"&&(t.start_date=v.value[0]||"",t.end_date=v.value[1]||"");const e=await ke(t);Object.assign(r,e||{})}catch(t){console.error("获取业绩数据失败:",t),he.error((t==null?void 0:t.msg)||"获取业绩数据失败")}finally{w.value=!1}},J=()=>{p.time_type!=="custom"&&(v.value=[],b())},Q=()=>{var t;((t=v.value)==null?void 0:t.length)===2&&b()},W=()=>{p.time_type="month",v.value=[],b()},V=we(["stats.assistantPerformance/revisitRate"]),R=new Date,E=`${R.getFullYear()}-${String(R.getMonth()+1).padStart(2,"0")}`,y=h(E),C=h(!1),_=h(null),f=c(()=>{var t;return((t=_.value)==null?void 0:t.row)??null}),X=c(()=>{var t;return((t=_.value)==null?void 0:t.inherit_mode)??"slot"}),Z=c(()=>{var t;return(((t=_.value)==null?void 0:t.slots)??[]).map(e=>Number(e)).filter(e=>e>=2)}),ee=c(()=>{var i;const[t,e]=(((i=_.value)==null?void 0:i.month)||y.value).split("-");return t&&e?`${t} 年 ${Number(e)} 月`:y.value}),te=c(()=>_.value&&_.value.in_scope===!1?"暂无数据(仅二中心医助统计)":y.value===E?"本月暂无被指派患者":"该月暂无被指派患者"),se=t=>{const e=new Date;return t.getFullYear()*12+t.getMonth()>e.getFullYear()*12+e.getMonth()},F=["零","一","二","三","四","五","六","七","八","九","十"],ae=t=>t>=2&&t<=10?`${F[t]}诊`:t>10&&t<20?`十${F[t-10]}诊`:`${t}诊`,D=t=>t==null||t===""?"—":`${Number(t)}%`,N=(t,e)=>{var i;return(i=f.value)==null?void 0:i[`visit${t}_${e}`]},S=(t,e)=>`成交 ${Number(t??0)} 单 / 分母 ${Number(e??0)}`,oe=t=>S(N(t,"count"),N(t,"den")),le=c(()=>{var t,e;return S((t=f.value)==null?void 0:t.visit_all_count,(e=f.value)==null?void 0:e.visit_all_den)}),Y=async()=>{if(V){C.value=!0;try{_.value=await xe({month:y.value})}catch{}finally{C.value=!1}}};return re(()=>{b(),Y()}),(t,e)=>{const i=me,k=ce,$=ue,T=ve,P=pe,ie=de,M=_e,L=ye,ne=ge;return n(),m("div",Ne,[l(M,{class:"!border-none",shadow:"never"},{default:o(()=>[l(ie,{inline:!0,class:"stats-filter-form"},{default:o(()=>[l($,{label:"时间范围"},{default:o(()=>[l(k,{modelValue:p.time_type,"onUpdate:modelValue":e[0]||(e[0]=a=>p.time_type=a),onChange:J},{default:o(()=>[l(i,{label:"today"},{default:o(()=>[...e[3]||(e[3]=[d("今天",-1)])]),_:1}),l(i,{label:"yesterday"},{default:o(()=>[...e[4]||(e[4]=[d("昨天",-1)])]),_:1}),l(i,{label:"week"},{default:o(()=>[...e[5]||(e[5]=[d("最近7天",-1)])]),_:1}),l(i,{label:"month"},{default:o(()=>[...e[6]||(e[6]=[d("最近30天",-1)])]),_:1}),l(i,{label:"custom"},{default:o(()=>[...e[7]||(e[7]=[d("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),p.time_type==="custom"?(n(),g($,{key:0},{default:o(()=>[l(T,{modelValue:v.value,"onUpdate:modelValue":e[1]||(e[1]=a=>v.value=a),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",style:{width:"260px"},onChange:Q},null,8,["modelValue"])]),_:1})):z("",!0),l($,null,{default:o(()=>[l(P,{type:"primary",loading:w.value,onClick:b},{default:o(()=>[...e[8]||(e[8]=[d("查询",-1)])]),_:1},8,["loading"]),l(P,{onClick:W},{default:o(()=>[...e[9]||(e[9]=[d("重置",-1)])]),_:1})]),_:1})]),_:1})]),_:1}),s("div",$e,[(n(),m(x,null,B(j,a=>s("div",{key:a.key,class:O(["stats-kpi-card",a.cardClass])},[s("div",Me,u(a.label),1),s("div",{class:O(["stats-kpi-value",{"is-money":a.type==="money"}])},u(K(a.key,a.type)),3)],2)),64))]),l(M,{class:"!border-none mt-4",shadow:"never"},{header:o(()=>[s("div",Ve,[e[10]||(e[10]=s("span",{class:"card-title"},"业绩趋势",-1)),s("span",Re,u(q.value)+" · 履约完成业绩",1)])]),default:o(()=>[G.value?(n(),g(A(fe),{key:0,class:"stats-chart",option:H.value,autoresize:""},null,8,["option"])):(n(),g(L,{key:1,description:"暂无数据"}))]),_:1}),A(V)?(n(),g(M,{key:0,class:"!border-none mt-4",shadow:"never"},{header:o(()=>[s("div",Ee,[s("div",Fe,[e[11]||(e[11]=s("span",{class:"card-title"},"我的复诊接诊率",-1)),l(T,{modelValue:y.value,"onUpdate:modelValue":e[2]||(e[2]=a=>y.value=a),type:"month","value-format":"YYYY-MM",placeholder:"选择月份",clearable:!1,"disabled-date":se,size:"small",style:{width:"130px"},onChange:Y},null,8,["modelValue"])]),s("span",De,u(ee.value)+" · 与「复诊接诊率」报表同口径",1)])]),default:o(()=>[be((n(),m("div",Se,[f.value?(n(),m("div",Ye,[s("div",Te,[e[12]||(e[12]=s("div",{class:"stats-kpi-label"},"新指派数",-1)),s("div",Pe,u(Number(f.value.assigned_count??0)),1),e[13]||(e[13]=s("div",{class:"revisit-kpi-sub"},"当月新指派给我的患者",-1))]),s("div",Le,[e[14]||(e[14]=s("div",{class:"stats-kpi-label"},"继承数",-1)),s("div",ze,u(Number(f.value.inherit_count??0)),1),e[15]||(e[15]=s("div",{class:"revisit-kpi-sub"},"当月继承给我的患者",-1))]),s("div",Be,[e[16]||(e[16]=s("div",{class:"stats-kpi-label"},"复诊合计接诊率",-1)),s("div",Oe,u(D(f.value.visit_all_rate)),1),s("div",Ae,u(le.value),1)]),(n(!0),m(x,null,B(Z.value,a=>(n(),m("div",{key:a,class:"revisit-kpi-card"},[s("div",Ie,u(ae(a))+"接诊率",1),s("div",Ue,u(D(N(a,"rate"))),1),s("div",je,u(oe(a)),1)]))),128))])):(n(),g(L,{key:1,description:te.value,"image-size":72},null,8,["description"])),s("div",qe,[e[17]||(e[17]=d(" 口径:N 诊接诊率 = 当月 N 诊成交单数 ÷ N 诊分母(新指派数 + 起算诊次 ≤ N 的继承数),分母为 0 显示「—」; ",-1)),X.value==="exclude"?(n(),m(x,{key:0},[d("当前为旧口径,继承患者不计入分母;")],64)):(n(),m(x,{key:1},[d("继承患者按继承时诊次从第 k+1 诊起计入;")],64)),e[18]||(e[18]=d(" 复诊合计 = 各诊次成交单数之和 ÷ 被指派合计(新指派 ∪ 继承),可超过 100%。 ",-1))])])),[[ne,C.value]])]),_:1})):z("",!0)])}}}),Ze=Ce(He,[["__scopeId","data-v-a165c7ab"]]);export{Ze as default}; +import{o as U,ap as re,q as n,r as m,v as l,D as o,bd as de,bb as ue,bf as ce,be as me,L as d,O as g,az as ve,P as z,K as pe,bj as _e,s,F as x,G as B,ae as O,T as u,u as A,cL as fe,bC as ye,ac as be,bn as ge,M as h,aC as I,p as c,E as he}from"./.pnpm-CyuAWpdG.js";import{r as ke,s as xe}from"./stats-B9TgZYZ_.js";import{h as we}from"./perm-CHCBwnFR.js";import{_ as Ce}from"./index-Bkarz3gO.js";const Ne={class:"assistant-performance-page"},$e={class:"stats-kpi-grid"},Me={class:"stats-kpi-label"},Ve={class:"card-header"},Re={class:"card-hint"},Ee={class:"card-header"},Fe={class:"card-header-left"},De={class:"card-hint"},Se={class:"revisit-rate-body"},Ye={key:0,class:"revisit-kpi-grid"},Te={class:"revisit-kpi-card"},Pe={class:"revisit-kpi-value"},Le={class:"revisit-kpi-card"},ze={class:"revisit-kpi-value"},Be={class:"revisit-kpi-card is-primary"},Oe={class:"revisit-kpi-value"},Ae={class:"revisit-kpi-sub"},Ie={class:"stats-kpi-label"},Ue={class:"revisit-kpi-value"},je={class:"revisit-kpi-sub"},qe={class:"revisit-caliber"},Ge=U({name:"assistantPerformancePage"}),He=U({...Ge,setup(Ke){const w=h(!1),v=h([]),p=I({time_type:"month",start_date:"",end_date:""}),r=I({date_range:[],summary:{total_amount:0,total_count:0},chart:{dates:[],amounts:[],counts:[]}}),j=[{key:"total_amount",label:"业绩",type:"money",cardClass:""},{key:"total_count",label:"有效订单数",type:"count",cardClass:""}],q=c(()=>{var t;return(t=r.date_range)!=null&&t.length?`${r.date_range[0]} 至 ${r.date_range[1]}`:"未选择"}),G=c(()=>r.chart.dates.length>0&&r.chart.amounts.some(t=>t>0)),H=c(()=>({tooltip:{trigger:"axis",formatter:t=>{const e=t[0];return`${e.axisValue}
${e.marker}${e.seriesName}: ¥${Number(e.value).toFixed(2)}`}},grid:{left:60,right:24,top:36,bottom:36},xAxis:{type:"category",data:r.chart.dates,axisLabel:{interval:r.chart.dates.length>15?"auto":0,rotate:r.chart.dates.length>10?30:0}},yAxis:{type:"value",name:"金额(元)",axisLabel:{formatter:t=>t>=1e4?(t/1e4).toFixed(1)+"万":String(t)}},series:[{name:"业绩",type:"line",smooth:!0,showSymbol:!0,symbolSize:6,lineStyle:{width:3,color:"#4a78ff"},itemStyle:{color:"#4a78ff"},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(74, 120, 255, 0.25)"},{offset:1,color:"rgba(74, 120, 255, 0.02)"}]}},data:r.chart.amounts}]})),K=(t,e)=>{var k;const i=((k=r.summary)==null?void 0:k[t])??0;return e==="money"?`¥${Number(i).toFixed(2)}`:String(i)},b=async()=>{w.value=!0;try{const t={time_type:p.time_type};p.time_type==="custom"&&(t.start_date=v.value[0]||"",t.end_date=v.value[1]||"");const e=await ke(t);Object.assign(r,e||{})}catch(t){console.error("获取业绩数据失败:",t),he.error((t==null?void 0:t.msg)||"获取业绩数据失败")}finally{w.value=!1}},J=()=>{p.time_type!=="custom"&&(v.value=[],b())},Q=()=>{var t;((t=v.value)==null?void 0:t.length)===2&&b()},W=()=>{p.time_type="month",v.value=[],b()},V=we(["stats.assistantPerformance/revisitRate"]),R=new Date,E=`${R.getFullYear()}-${String(R.getMonth()+1).padStart(2,"0")}`,y=h(E),C=h(!1),_=h(null),f=c(()=>{var t;return((t=_.value)==null?void 0:t.row)??null}),X=c(()=>{var t;return((t=_.value)==null?void 0:t.inherit_mode)??"slot"}),Z=c(()=>{var t;return(((t=_.value)==null?void 0:t.slots)??[]).map(e=>Number(e)).filter(e=>e>=2)}),ee=c(()=>{var i;const[t,e]=(((i=_.value)==null?void 0:i.month)||y.value).split("-");return t&&e?`${t} 年 ${Number(e)} 月`:y.value}),te=c(()=>_.value&&_.value.in_scope===!1?"暂无数据(仅二中心医助统计)":y.value===E?"本月暂无被指派患者":"该月暂无被指派患者"),se=t=>{const e=new Date;return t.getFullYear()*12+t.getMonth()>e.getFullYear()*12+e.getMonth()},F=["零","一","二","三","四","五","六","七","八","九","十"],ae=t=>t>=2&&t<=10?`${F[t]}诊`:t>10&&t<20?`十${F[t-10]}诊`:`${t}诊`,D=t=>t==null||t===""?"—":`${Number(t)}%`,N=(t,e)=>{var i;return(i=f.value)==null?void 0:i[`visit${t}_${e}`]},S=(t,e)=>`成交 ${Number(t??0)} 单 / 分母 ${Number(e??0)}`,oe=t=>S(N(t,"count"),N(t,"den")),le=c(()=>{var t,e;return S((t=f.value)==null?void 0:t.visit_all_count,(e=f.value)==null?void 0:e.visit_all_den)}),Y=async()=>{if(V){C.value=!0;try{_.value=await xe({month:y.value})}catch{}finally{C.value=!1}}};return re(()=>{b(),Y()}),(t,e)=>{const i=me,k=ce,$=ue,T=ve,P=pe,ie=de,M=_e,L=ye,ne=ge;return n(),m("div",Ne,[l(M,{class:"!border-none",shadow:"never"},{default:o(()=>[l(ie,{inline:!0,class:"stats-filter-form"},{default:o(()=>[l($,{label:"时间范围"},{default:o(()=>[l(k,{modelValue:p.time_type,"onUpdate:modelValue":e[0]||(e[0]=a=>p.time_type=a),onChange:J},{default:o(()=>[l(i,{label:"today"},{default:o(()=>[...e[3]||(e[3]=[d("今天",-1)])]),_:1}),l(i,{label:"yesterday"},{default:o(()=>[...e[4]||(e[4]=[d("昨天",-1)])]),_:1}),l(i,{label:"week"},{default:o(()=>[...e[5]||(e[5]=[d("最近7天",-1)])]),_:1}),l(i,{label:"month"},{default:o(()=>[...e[6]||(e[6]=[d("最近30天",-1)])]),_:1}),l(i,{label:"custom"},{default:o(()=>[...e[7]||(e[7]=[d("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),p.time_type==="custom"?(n(),g($,{key:0},{default:o(()=>[l(T,{modelValue:v.value,"onUpdate:modelValue":e[1]||(e[1]=a=>v.value=a),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",style:{width:"260px"},onChange:Q},null,8,["modelValue"])]),_:1})):z("",!0),l($,null,{default:o(()=>[l(P,{type:"primary",loading:w.value,onClick:b},{default:o(()=>[...e[8]||(e[8]=[d("查询",-1)])]),_:1},8,["loading"]),l(P,{onClick:W},{default:o(()=>[...e[9]||(e[9]=[d("重置",-1)])]),_:1})]),_:1})]),_:1})]),_:1}),s("div",$e,[(n(),m(x,null,B(j,a=>s("div",{key:a.key,class:O(["stats-kpi-card",a.cardClass])},[s("div",Me,u(a.label),1),s("div",{class:O(["stats-kpi-value",{"is-money":a.type==="money"}])},u(K(a.key,a.type)),3)],2)),64))]),l(M,{class:"!border-none mt-4",shadow:"never"},{header:o(()=>[s("div",Ve,[e[10]||(e[10]=s("span",{class:"card-title"},"业绩趋势",-1)),s("span",Re,u(q.value)+" · 履约完成业绩",1)])]),default:o(()=>[G.value?(n(),g(A(fe),{key:0,class:"stats-chart",option:H.value,autoresize:""},null,8,["option"])):(n(),g(L,{key:1,description:"暂无数据"}))]),_:1}),A(V)?(n(),g(M,{key:0,class:"!border-none mt-4",shadow:"never"},{header:o(()=>[s("div",Ee,[s("div",Fe,[e[11]||(e[11]=s("span",{class:"card-title"},"我的复诊接诊率",-1)),l(T,{modelValue:y.value,"onUpdate:modelValue":e[2]||(e[2]=a=>y.value=a),type:"month","value-format":"YYYY-MM",placeholder:"选择月份",clearable:!1,"disabled-date":se,size:"small",style:{width:"130px"},onChange:Y},null,8,["modelValue"])]),s("span",De,u(ee.value)+" · 与「复诊接诊率」报表同口径",1)])]),default:o(()=>[be((n(),m("div",Se,[f.value?(n(),m("div",Ye,[s("div",Te,[e[12]||(e[12]=s("div",{class:"stats-kpi-label"},"新指派数",-1)),s("div",Pe,u(Number(f.value.assigned_count??0)),1),e[13]||(e[13]=s("div",{class:"revisit-kpi-sub"},"当月新指派给我的患者",-1))]),s("div",Le,[e[14]||(e[14]=s("div",{class:"stats-kpi-label"},"继承数",-1)),s("div",ze,u(Number(f.value.inherit_count??0)),1),e[15]||(e[15]=s("div",{class:"revisit-kpi-sub"},"当月继承给我的患者",-1))]),s("div",Be,[e[16]||(e[16]=s("div",{class:"stats-kpi-label"},"复诊合计接诊率",-1)),s("div",Oe,u(D(f.value.visit_all_rate)),1),s("div",Ae,u(le.value),1)]),(n(!0),m(x,null,B(Z.value,a=>(n(),m("div",{key:a,class:"revisit-kpi-card"},[s("div",Ie,u(ae(a))+"接诊率",1),s("div",Ue,u(D(N(a,"rate"))),1),s("div",je,u(oe(a)),1)]))),128))])):(n(),g(L,{key:1,description:te.value,"image-size":72},null,8,["description"])),s("div",qe,[e[17]||(e[17]=d(" 口径:N 诊接诊率 = 当月 N 诊成交单数 ÷ N 诊分母(新指派数 + 起算诊次 ≤ N 的继承数),分母为 0 显示「—」; ",-1)),X.value==="exclude"?(n(),m(x,{key:0},[d("当前为旧口径,继承患者不计入分母;")],64)):(n(),m(x,{key:1},[d("继承患者按继承时诊次从第 k+1 诊起计入;")],64)),e[18]||(e[18]=d(" 复诊合计 = 各诊次成交单数之和 ÷ 被指派合计(新指派 ∪ 继承),可超过 100%。 ",-1))])])),[[ne,C.value]])]),_:1})):z("",!0)])}}}),Ze=Ce(He,[["__scopeId","data-v-a165c7ab"]]);export{Ze as default}; diff --git a/server/public/admin/assets/index-BnfLT5cB.js b/server/public/admin/assets/index-CS5Wg0xx.js similarity index 93% rename from server/public/admin/assets/index-BnfLT5cB.js rename to server/public/admin/assets/index-CS5Wg0xx.js index 4465a5962..462454f4a 100644 --- a/server/public/admin/assets/index-BnfLT5cB.js +++ b/server/public/admin/assets/index-CS5Wg0xx.js @@ -1 +1 @@ -import{o as B,M as g,n as k,bN as C,q as r,r as b,s as f,ah as p,v as S,bO as T,D as a,L as s,T as d,O as m,K as $,P as v,ae as V,aB as E}from"./.pnpm-CyuAWpdG.js";import{_ as N}from"./index-Dxvz9lb1.js";const h=B({props:{title:{type:String,default:""},content:{type:String,default:""},confirmButtonText:{type:[String,Boolean],default:"确定"},cancelButtonText:{type:[String,Boolean],default:"取消"},width:{type:String,default:"400px"},disabled:{type:Boolean,default:!1},async:{type:Boolean,default:!1},clickModalClose:{type:Boolean,default:!1},center:{type:Boolean,default:!1},customClass:{type:String,default:""},zIndex:{type:Number,default:void 0}},emits:["confirm","cancel","close","open"],setup(e,{emit:o}){const t=g(!1),u=n=>{o(n),(!e.async||n==="cancel")&&i()},i=()=>{t.value=!1,k(()=>{o("close")})},c=()=>{e.disabled||(o("open"),t.value=!0)};return C("visible",t),{visible:t,handleEvent:u,close:i,open:c}}}),w={class:"dialog"},z={class:"dialog-footer"};function D(e,o,t,u,i,c){const n=$,y=E;return r(),b("div",w,[f("div",{class:"dialog__trigger",onClick:o[0]||(o[0]=(...l)=>e.open&&e.open(...l))},[p(e.$slots,"trigger",{},void 0,!0)]),S(y,{modelValue:e.visible,"onUpdate:modelValue":o[3]||(o[3]=l=>e.visible=l),class:V(e.customClass),center:e.center,"append-to-body":!0,width:e.width,"close-on-click-modal":e.clickModalClose,"z-index":e.zIndex,onClosed:e.close},T({footer:a(()=>[f("div",z,[e.cancelButtonText?(r(),m(n,{key:0,onClick:o[1]||(o[1]=l=>e.handleEvent("cancel"))},{default:a(()=>[s(d(e.cancelButtonText),1)]),_:1})):v("",!0),e.confirmButtonText?(r(),m(n,{key:1,type:"primary",onClick:o[2]||(o[2]=l=>e.handleEvent("confirm"))},{default:a(()=>[s(d(e.confirmButtonText),1)]),_:1})):v("",!0)])]),default:a(()=>[p(e.$slots,"default",{},()=>[s(d(e.content),1)],!0)]),_:2},[e.title?{name:"header",fn:a(()=>[s(d(e.title),1)]),key:"0"}:void 0]),1032,["modelValue","class","center","width","close-on-click-modal","z-index","onClosed"])])}const O=N(h,[["render",D],["__scopeId","data-v-40005f05"]]);export{O as _}; +import{o as B,M as g,n as k,bN as C,q as r,r as b,s as f,ah as p,v as S,bO as T,D as a,L as s,T as d,O as m,K as $,P as v,ae as V,aB as E}from"./.pnpm-CyuAWpdG.js";import{_ as N}from"./index-Bkarz3gO.js";const h=B({props:{title:{type:String,default:""},content:{type:String,default:""},confirmButtonText:{type:[String,Boolean],default:"确定"},cancelButtonText:{type:[String,Boolean],default:"取消"},width:{type:String,default:"400px"},disabled:{type:Boolean,default:!1},async:{type:Boolean,default:!1},clickModalClose:{type:Boolean,default:!1},center:{type:Boolean,default:!1},customClass:{type:String,default:""},zIndex:{type:Number,default:void 0}},emits:["confirm","cancel","close","open"],setup(e,{emit:o}){const t=g(!1),u=n=>{o(n),(!e.async||n==="cancel")&&i()},i=()=>{t.value=!1,k(()=>{o("close")})},c=()=>{e.disabled||(o("open"),t.value=!0)};return C("visible",t),{visible:t,handleEvent:u,close:i,open:c}}}),w={class:"dialog"},z={class:"dialog-footer"};function D(e,o,t,u,i,c){const n=$,y=E;return r(),b("div",w,[f("div",{class:"dialog__trigger",onClick:o[0]||(o[0]=(...l)=>e.open&&e.open(...l))},[p(e.$slots,"trigger",{},void 0,!0)]),S(y,{modelValue:e.visible,"onUpdate:modelValue":o[3]||(o[3]=l=>e.visible=l),class:V(e.customClass),center:e.center,"append-to-body":!0,width:e.width,"close-on-click-modal":e.clickModalClose,"z-index":e.zIndex,onClosed:e.close},T({footer:a(()=>[f("div",z,[e.cancelButtonText?(r(),m(n,{key:0,onClick:o[1]||(o[1]=l=>e.handleEvent("cancel"))},{default:a(()=>[s(d(e.cancelButtonText),1)]),_:1})):v("",!0),e.confirmButtonText?(r(),m(n,{key:1,type:"primary",onClick:o[2]||(o[2]=l=>e.handleEvent("confirm"))},{default:a(()=>[s(d(e.confirmButtonText),1)]),_:1})):v("",!0)])]),default:a(()=>[p(e.$slots,"default",{},()=>[s(d(e.content),1)],!0)]),_:2},[e.title?{name:"header",fn:a(()=>[s(d(e.title),1)]),key:"0"}:void 0]),1032,["modelValue","class","center","width","close-on-click-modal","z-index","onClosed"])])}const O=N(h,[["render",D],["__scopeId","data-v-40005f05"]]);export{O as _}; diff --git a/server/public/admin/assets/index-DT7CSmCp.js b/server/public/admin/assets/index-CTRSsggc.js similarity index 99% rename from server/public/admin/assets/index-DT7CSmCp.js rename to server/public/admin/assets/index-CTRSsggc.js index 7b101f2f0..9e0b50c44 100644 --- a/server/public/admin/assets/index-DT7CSmCp.js +++ b/server/public/admin/assets/index-CTRSsggc.js @@ -1 +1 @@ -import{o as Z,q as a,r as l,s as t,T as o,P as _,F as x,G as $,L as ee,ae as te,M as se,p as c}from"./.pnpm-CyuAWpdG.js";import{_ as ne}from"./index-Dxvz9lb1.js";function k(e){return isFinite(e)?Number.isInteger(e)?String(e):e.toFixed(2).replace(/\.?0+$/,""):"0"}function re(e){return e===1||e==="1"?"男":e===0||e==="0"?"女":"—"}function oe(e){return e==null||e===""?"—":`${e}岁`}function V(e){return e==="辅方"?"辅方":"主方"}function A(e){return String(e).padStart(2,"0")}function ie(e="浓缩水丸"){return e==="饮片"?{dosage_amount:50,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:e==="浓缩水丸"?{dosage_amount:5,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:{dosage_amount:1,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}}function ae(e,s){const n=ie(s);if(!e||typeof e!="object")return{...n};const i=e;return{dosage_amount:i.dosage_amount!==null&&i.dosage_amount!==void 0&&i.dosage_amount!==""?Number(i.dosage_amount):n.dosage_amount,dosage_bag_count:i.dosage_bag_count!=null?Number(i.dosage_bag_count)||1:n.dosage_bag_count,need_decoction:i.need_decoction===1||i.need_decoction===!0,bags_per_dose:i.bags_per_dose!=null?Number(i.bags_per_dose)||1:n.bags_per_dose,times_per_day:i.times_per_day!=null?Number(i.times_per_day)||3:n.times_per_day,usage_days:i.usage_days!=null?Number(i.usage_days)||7:n.usage_days,prescription_name:String(i.prescription_name??"").trim()}}function E(e,s,n){const i=e.prescription_type||"浓缩水丸",u=Number(e.times_per_day)>0?Number(e.times_per_day):3,p=e.dosage_amount!=null?Number(e.dosage_amount):10,b=e.dosage_unit||(i==="饮片"?"ml":"g"),f=e.usage_way||s||"温水送服",T=e.usage_time||n||"",g=[];if(g.push(`每天${u}次`),i==="浓缩水丸"){const F=Number(e.dosage_bag_count)>0?Number(e.dosage_bag_count):1;g.push(`一次${F}袋`),g.push(`每袋${p}${b}`)}else g.push(`一次${p}${b}`);return g.push(f),T&&g.push(T),g.join(", ")}function N(e){const s=e==null?void 0:e.herbs;return Array.isArray(s)?s:[]}function le(e){return N(e).filter(s=>V(s.formula_type)==="主方")}function q(e){return N(e).filter(s=>V(s.formula_type)==="辅方")}function W(e){const s=Number(e==null?void 0:e.dose_count);return Number.isFinite(s)&&s>0?s:1}function ue(e){if(!e)return"—";const s=e.create_time??e.update_time??null;if(s){const n=String(s).length===10?Number(s)*1e3:Number(s),i=new Date(n);if(!isNaN(i.getTime()))return`${i.getFullYear()}-${A(i.getMonth()+1)}-${A(i.getDate())} ${A(i.getHours())}:${A(i.getMinutes())}`}return e.prescription_date||"—"}function ce(e){if(!e)return"—";const s=String(e.sn??"").trim();if(s)return s;const n=String(e.visit_no??"").trim();return n||"—"}function _e(e){if(!e)return"—";const s=Number(e.appointment_id);return Number.isFinite(s)&&s>0?String(s):"—"}function de(e){return e?String(e.order_no??"").trim():""}function pe(e){if(!e)return"—";if(e.recipient_text)return e.recipient_text;const s=[];(e.recipient_name||e.patient_name)&&s.push(e.recipient_name||e.patient_name),(e.recipient_phone||e.phone)&&s.push(e.recipient_phone||e.phone);let n=e.region;return Array.isArray(n)&&(n=n.filter(Boolean).join("")),n||(n=[e.shipping_province,e.shipping_city,e.shipping_district].filter(Boolean).join("")),n&&s.push(String(n)),e.shipping_address?s.push(String(e.shipping_address)):e.address&&s.push(String(e.address)),s.length?s.join(","):"—"}function me(e){const n=N(e).reduce((i,u)=>i+(Number(u==null?void 0:u.dosage)||0),0);return k(n)}function xe(e,s){const n=Number(s)||0;return k(n*W(e))}function ge(e){if(!e)return"—";const s=e.prescription_type||"浓缩水丸";return/丸|散|膏|片/.test(s)?`浓缩丸-${s}`:s}function be(e){return e?e.usage_text?e.usage_text:E(e):"—"}function ve(e){if(!e||!q(e).length)return"";const s=ae(e.aux_usage,e.prescription_type||"浓缩水丸");return E({prescription_type:e.prescription_type,dosage_amount:s.dosage_amount,dosage_unit:e.dosage_unit,dosage_bag_count:s.dosage_bag_count,times_per_day:s.times_per_day,usage_way:e.usage_way,usage_time:e.usage_time},e.usage_way,e.usage_time)}function fe(e){return e&&(e.medical_advice||e.doctor_advice)||""}function ye(e){const s=e==null?void 0:e.dietary_taboo;return Array.isArray(s)?s.filter(Boolean).join("、"):typeof s=="string"&&s.trim()?s.trim():""}function he(e){if(!e)return"";const s=[];return s.push(`共${N(e).length}味药`),e.usage_notes&&s.push(String(e.usage_notes)),e.remark&&s.push(String(e.remark)),s.join(" ")}function ke(e){return e&&(e.pharmacy_remark||e.pharmacy_note)||""}function Ne(e){if((e.prescription_type||"浓缩水丸")==="浓缩水丸"){const u=Number(e.medication_days??e.usage_days??e.dose_count),p=Number(e.times_per_day),b=Number(e.dosage_amount),f=Number(e.dosage_bag_count)>0?Number(e.dosage_bag_count):1;if(Number.isFinite(u)&&Number.isFinite(p)&&Number.isFinite(b)&&u>0&&p>0&&b>0)return k(u*p*b*f)}const s=e.out_pellet||e.out_pellet_text||e.total_weight;if(s&&Number(s)>0)return k(Number(s));const n=N(e);if(!n.length)return"";const i=n.reduce((u,p)=>u+(Number(p==null?void 0:p.dosage)||0),0);return k(i*W(e))}function Te(e){if(!e)return"";const s=Ne(e);return s?`${s}克`:""}const Se={class:"rx-title"},we={class:"rx-notice"},$e={class:"rx-notice-text"},Ae={class:"rx-notice-meta"},Fe={class:"rx-meta-item"},Pe={class:"rx-meta-value"},De={class:"rx-meta-item"},je={class:"rx-meta-value"},Be={class:"rx-meta-item"},He={class:"rx-meta-value"},Le={key:0,class:"rx-meta-item"},Re={class:"rx-meta-value"},Ue={class:"rx-info"},Ce={class:"rx-info-row"},Me={class:"rx-info-cell"},Oe={class:"rx-val"},ze={class:"rx-info-cell"},Ge={class:"rx-val"},Ie={class:"rx-info-cell"},Ve={class:"rx-val"},Ee={class:"rx-info-cell"},qe={class:"rx-val"},We={class:"rx-info-row rx-info-row-full"},Ye={class:"rx-info-cell"},Je={class:"rx-val"},Ke={class:"rx-info-row rx-info-row-full"},Qe={class:"rx-info-cell"},Xe={class:"rx-val"},Ze={class:"rx-rp"},et={class:"rx-watermark"},tt={class:"rx-rp-head"},st={class:"rx-rp-cols-head"},nt={class:"rx-rp-col-head"},rt={class:"rx-rp-col-head"},ot={class:"rx-herbs"},it={class:"rx-herb-name"},at={class:"rx-herb-total"},lt={class:"rx-herb-section-label rx-herb-section-label--aux"},ut={key:0,class:"rx-herb-library-name"},ct={class:"rx-herb-name"},_t={class:"rx-herb-total"},dt={class:"rx-herb-name"},pt={class:"rx-herb-total"},mt={class:"rx-herb-name"},xt={class:"rx-herb-total"},gt={class:"rx-text"},bt={key:0},vt={key:1},ft={key:2},yt={key:1},ht={key:2},kt={key:3},Nt={key:4,class:"rx-text-warn"},Tt={key:5,class:"rx-text-warn"},St={class:"rx-bottom"},wt={class:"rx-bot-cell rx-bot-doctor"},$t={class:"rx-bot-doctor-body"},At=["src"],Ft={key:1,class:"rx-bot-doctor-name"},Pt={key:0,class:"rx-bot-cell rx-bot-meta"},Dt={class:"rx-bot-meta-val"},jt={class:"rx-bot-cell rx-bot-meta"},Bt={class:"rx-bot-meta-val"},Ht={key:1,class:"rx-bot-cell rx-bot-meta"},Lt={class:"rx-bot-meta-val"},Rt=Z({name:"PrescriptionSlip",__name:"index",props:{data:{},variant:{default:"internal"},auxLibraryName:{default:""},title:{default:"成都双流甄养堂互联网医院 处方笺"}},setup(e,{expose:s}){const n=e,i=se(null),u=c(()=>n.variant!=="user"),p=c(()=>n.title||"成都双流甄养堂互联网医院 处方笺"),b=c(()=>ue(n.data)),f=c(()=>ce(n.data)),T=c(()=>_e(n.data)),g=c(()=>de(n.data)),F=c(()=>pe(n.data)),Y=c(()=>{var m;return re((m=n.data)==null?void 0:m.gender)}),J=c(()=>{var m;return oe((m=n.data)==null?void 0:m.age)}),S=c(()=>le(n.data)),w=c(()=>q(n.data)),D=c(()=>be(n.data)),P=c(()=>ve(n.data)),j=c(()=>fe(n.data)),B=c(()=>ye(n.data)),H=c(()=>he(n.data)),L=c(()=>ke(n.data)),R=c(()=>Te(n.data)),K=c(()=>ge(n.data)),Q=c(()=>me(n.data)),X=c(()=>{var y,h;const m=(y=n.data)==null?void 0:y.medication_days;if(m!=null&&String(m).trim()!=="")return`${m} 天`;const r=(h=n.data)==null?void 0:h.dose_count;return r!=null&&String(r).trim()!==""?`${r}剂`:"—"});function U(m){return xe(n.data,m)}return s({paperEl:i,$el:i}),(m,r)=>{var y,h,C,M,O,z,G,I;return a(),l("div",{ref_key:"paperRef",ref:i,class:"rx-paper"},[t("div",Se,o(u.value?"药房联":p.value),1),t("div",we,[t("span",$e,o(u.value?"服药前请核对姓名、电话、医生等信息以及服法、医嘱等要点":"服药前请核对姓名、电话、医生等信息以及医嘱等要点"),1),t("div",Ae,[t("div",Fe,[r[0]||(r[0]=t("span",{class:"rx-meta-label"},"日期",-1)),t("span",Pe,o(b.value),1)]),t("div",De,[r[1]||(r[1]=t("span",{class:"rx-meta-label"},"处方编号",-1)),t("span",je,o(f.value),1)]),t("div",Be,[r[2]||(r[2]=t("span",{class:"rx-meta-label"},"流转编号(挂号)",-1)),t("span",He,o(T.value),1)]),g.value?(a(),l("div",Le,[r[3]||(r[3]=t("span",{class:"rx-meta-label"},"业务单号",-1)),t("span",Re,o(g.value),1)])):_("",!0)])]),t("div",Ue,[t("div",Ce,[t("div",Me,[r[4]||(r[4]=t("span",{class:"rx-key"},"姓名",-1)),t("span",Oe,o(((y=e.data)==null?void 0:y.patient_name)||"—"),1)]),t("div",ze,[r[5]||(r[5]=t("span",{class:"rx-key"},"性别",-1)),t("span",Ge,o(Y.value),1)]),t("div",Ie,[r[6]||(r[6]=t("span",{class:"rx-key"},"年龄",-1)),t("span",Ve,o(J.value),1)]),t("div",Ee,[r[7]||(r[7]=t("span",{class:"rx-key"},"电话",-1)),t("span",qe,o(((h=e.data)==null?void 0:h.phone)||((C=e.data)==null?void 0:C.recipient_phone)||"—"),1)])]),t("div",We,[t("div",Ye,[r[8]||(r[8]=t("span",{class:"rx-key"},"收件信息",-1)),t("span",Je,o(F.value),1)])]),t("div",Ke,[t("div",Qe,[r[9]||(r[9]=t("span",{class:"rx-key"},"临床诊断",-1)),t("span",Xe,o(((M=e.data)==null?void 0:M.clinical_diagnosis)||"—"),1)])])]),t("div",Ze,[t("div",et,o(u.value?"药房联":"处方联"),1),t("div",tt,[r[12]||(r[12]=t("div",{class:"rx-rp-label"},"Rp.",-1)),t("div",st,[t("div",nt,[r[10]||(r[10]=t("span",null,"用药 (单剂)",-1)),t("span",null,o(u.value?"总量":"用量"),1)]),t("div",rt,[r[11]||(r[11]=t("span",null,"用药 (单剂)",-1)),t("span",null,o(u.value?"总量":"用量"),1)])])]),t("div",ot,[u.value?(a(),l(x,{key:0},[S.value.length?(a(),l(x,{key:0},[r[13]||(r[13]=t("div",{class:"rx-herb-section-label"},"主方",-1)),(a(!0),l(x,null,$(S.value,(d,v)=>(a(),l("div",{key:"main-"+v,class:"rx-herb-cell"},[t("span",it,o(d.name)+" ("+o(d.dosage)+"克)",1),t("span",at,o(U(d.dosage))+"克",1)]))),128))],64)):_("",!0),w.value.length?(a(),l(x,{key:1},[t("div",lt,[r[14]||(r[14]=ee(" 辅方 ",-1)),e.auxLibraryName?(a(),l("span",ut,"("+o(e.auxLibraryName)+")",1)):_("",!0)]),(a(!0),l(x,null,$(w.value,(d,v)=>(a(),l("div",{key:"aux-"+v,class:"rx-herb-cell"},[t("span",ct,o(d.name)+" ("+o(d.dosage)+"克)",1),t("span",_t,o(U(d.dosage))+"克",1)]))),128))],64)):_("",!0)],64)):(a(),l(x,{key:1},[S.value.length?(a(),l(x,{key:0},[r[15]||(r[15]=t("div",{class:"rx-herb-section-label"},"主方",-1)),(a(!0),l(x,null,$(S.value,(d,v)=>(a(),l("div",{key:"user-main-"+v,class:"rx-herb-cell"},[t("span",dt,o(d.name),1),t("span",pt,o(d.dosage)+"克",1)]))),128))],64)):_("",!0),w.value.length?(a(),l(x,{key:1},[r[16]||(r[16]=t("div",{class:"rx-herb-section-label rx-herb-section-label--aux"},"辅方",-1)),(a(!0),l(x,null,$(w.value,(d,v)=>(a(),l("div",{key:"user-aux-"+v,class:"rx-herb-cell"},[t("span",mt,o(d.name),1),t("span",xt,o(d.dosage)+"克",1)]))),128))],64)):_("",!0)],64))])]),t("div",gt,[u.value?(a(),l(x,{key:0},[P.value?(a(),l("p",bt,"主服法:"+o(D.value),1)):(a(),l("p",vt,"服法:"+o(D.value),1)),P.value?(a(),l("p",ft,"辅服法:"+o(P.value),1)):_("",!0)],64)):_("",!0),j.value?(a(),l("p",yt,"医嘱:"+o(j.value),1)):_("",!0),B.value?(a(),l("p",ht,"忌口:"+o(B.value),1)):_("",!0),u.value&&H.value?(a(),l("p",kt,"备注:"+o(H.value),1)):_("",!0),L.value?(a(),l("p",Nt," 药房备注:"+o(L.value),1)):_("",!0),u.value&&R.value&&((O=e.data)==null?void 0:O.prescription_type)!=="饮片"?(a(),l("p",Tt," 出丸:"+o(R.value),1)):_("",!0)]),t("div",St,[t("div",{class:te(["rx-bot-row rx-bot-row-1",{"rx-bot-row-1--user":!u.value}])},[t("div",wt,[r[17]||(r[17]=t("div",{class:"rx-bot-label rx-bot-label--doctor"},"医师",-1)),t("div",$t,[(z=e.data)!=null&&z.doctor_signature?(a(),l("img",{key:0,src:e.data.doctor_signature,alt:"医师签名",class:"rx-bot-sign-img"},null,8,At)):_("",!0),(G=e.data)!=null&&G.doctor_signature?_("",!0):(a(),l("span",Ft,o(((I=e.data)==null?void 0:I.doctor_name)||"—"),1))])]),u.value?(a(),l("div",Pt,[r[18]||(r[18]=t("span",{class:"rx-bot-meta-key"},"类型:",-1)),t("span",Dt,o(K.value),1)])):_("",!0),t("div",jt,[r[19]||(r[19]=t("span",{class:"rx-bot-meta-key"},"天数:",-1)),t("span",Bt,o(X.value),1)]),u.value?(a(),l("div",Ht,[r[20]||(r[20]=t("span",{class:"rx-bot-meta-key"},"剂量:",-1)),t("span",Lt,o(Q.value)+"克",1)])):_("",!0)],2),r[21]||(r[21]=t("div",{class:"rx-bot-row rx-hospital-row"},[t("div",{class:"rx-hospital-line"},"成都双流甄养堂互联网医院有限公司 联系方式:4001667339"),t("div",{class:"rx-hospital-line"},"地址:四川省成都市双流区黄甲街道黄龙大道二段280号")],-1))])],512)}}}),Mt=ne(Rt,[["__scopeId","data-v-2b78e141"]]);export{Mt as P}; +import{o as Z,q as a,r as l,s as t,T as o,P as _,F as x,G as $,L as ee,ae as te,M as se,p as c}from"./.pnpm-CyuAWpdG.js";import{_ as ne}from"./index-Bkarz3gO.js";function k(e){return isFinite(e)?Number.isInteger(e)?String(e):e.toFixed(2).replace(/\.?0+$/,""):"0"}function re(e){return e===1||e==="1"?"男":e===0||e==="0"?"女":"—"}function oe(e){return e==null||e===""?"—":`${e}岁`}function V(e){return e==="辅方"?"辅方":"主方"}function A(e){return String(e).padStart(2,"0")}function ie(e="浓缩水丸"){return e==="饮片"?{dosage_amount:50,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:e==="浓缩水丸"?{dosage_amount:5,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:{dosage_amount:1,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}}function ae(e,s){const n=ie(s);if(!e||typeof e!="object")return{...n};const i=e;return{dosage_amount:i.dosage_amount!==null&&i.dosage_amount!==void 0&&i.dosage_amount!==""?Number(i.dosage_amount):n.dosage_amount,dosage_bag_count:i.dosage_bag_count!=null?Number(i.dosage_bag_count)||1:n.dosage_bag_count,need_decoction:i.need_decoction===1||i.need_decoction===!0,bags_per_dose:i.bags_per_dose!=null?Number(i.bags_per_dose)||1:n.bags_per_dose,times_per_day:i.times_per_day!=null?Number(i.times_per_day)||3:n.times_per_day,usage_days:i.usage_days!=null?Number(i.usage_days)||7:n.usage_days,prescription_name:String(i.prescription_name??"").trim()}}function E(e,s,n){const i=e.prescription_type||"浓缩水丸",u=Number(e.times_per_day)>0?Number(e.times_per_day):3,p=e.dosage_amount!=null?Number(e.dosage_amount):10,b=e.dosage_unit||(i==="饮片"?"ml":"g"),f=e.usage_way||s||"温水送服",T=e.usage_time||n||"",g=[];if(g.push(`每天${u}次`),i==="浓缩水丸"){const F=Number(e.dosage_bag_count)>0?Number(e.dosage_bag_count):1;g.push(`一次${F}袋`),g.push(`每袋${p}${b}`)}else g.push(`一次${p}${b}`);return g.push(f),T&&g.push(T),g.join(", ")}function N(e){const s=e==null?void 0:e.herbs;return Array.isArray(s)?s:[]}function le(e){return N(e).filter(s=>V(s.formula_type)==="主方")}function q(e){return N(e).filter(s=>V(s.formula_type)==="辅方")}function W(e){const s=Number(e==null?void 0:e.dose_count);return Number.isFinite(s)&&s>0?s:1}function ue(e){if(!e)return"—";const s=e.create_time??e.update_time??null;if(s){const n=String(s).length===10?Number(s)*1e3:Number(s),i=new Date(n);if(!isNaN(i.getTime()))return`${i.getFullYear()}-${A(i.getMonth()+1)}-${A(i.getDate())} ${A(i.getHours())}:${A(i.getMinutes())}`}return e.prescription_date||"—"}function ce(e){if(!e)return"—";const s=String(e.sn??"").trim();if(s)return s;const n=String(e.visit_no??"").trim();return n||"—"}function _e(e){if(!e)return"—";const s=Number(e.appointment_id);return Number.isFinite(s)&&s>0?String(s):"—"}function de(e){return e?String(e.order_no??"").trim():""}function pe(e){if(!e)return"—";if(e.recipient_text)return e.recipient_text;const s=[];(e.recipient_name||e.patient_name)&&s.push(e.recipient_name||e.patient_name),(e.recipient_phone||e.phone)&&s.push(e.recipient_phone||e.phone);let n=e.region;return Array.isArray(n)&&(n=n.filter(Boolean).join("")),n||(n=[e.shipping_province,e.shipping_city,e.shipping_district].filter(Boolean).join("")),n&&s.push(String(n)),e.shipping_address?s.push(String(e.shipping_address)):e.address&&s.push(String(e.address)),s.length?s.join(","):"—"}function me(e){const n=N(e).reduce((i,u)=>i+(Number(u==null?void 0:u.dosage)||0),0);return k(n)}function xe(e,s){const n=Number(s)||0;return k(n*W(e))}function ge(e){if(!e)return"—";const s=e.prescription_type||"浓缩水丸";return/丸|散|膏|片/.test(s)?`浓缩丸-${s}`:s}function be(e){return e?e.usage_text?e.usage_text:E(e):"—"}function ve(e){if(!e||!q(e).length)return"";const s=ae(e.aux_usage,e.prescription_type||"浓缩水丸");return E({prescription_type:e.prescription_type,dosage_amount:s.dosage_amount,dosage_unit:e.dosage_unit,dosage_bag_count:s.dosage_bag_count,times_per_day:s.times_per_day,usage_way:e.usage_way,usage_time:e.usage_time},e.usage_way,e.usage_time)}function fe(e){return e&&(e.medical_advice||e.doctor_advice)||""}function ye(e){const s=e==null?void 0:e.dietary_taboo;return Array.isArray(s)?s.filter(Boolean).join("、"):typeof s=="string"&&s.trim()?s.trim():""}function he(e){if(!e)return"";const s=[];return s.push(`共${N(e).length}味药`),e.usage_notes&&s.push(String(e.usage_notes)),e.remark&&s.push(String(e.remark)),s.join(" ")}function ke(e){return e&&(e.pharmacy_remark||e.pharmacy_note)||""}function Ne(e){if((e.prescription_type||"浓缩水丸")==="浓缩水丸"){const u=Number(e.medication_days??e.usage_days??e.dose_count),p=Number(e.times_per_day),b=Number(e.dosage_amount),f=Number(e.dosage_bag_count)>0?Number(e.dosage_bag_count):1;if(Number.isFinite(u)&&Number.isFinite(p)&&Number.isFinite(b)&&u>0&&p>0&&b>0)return k(u*p*b*f)}const s=e.out_pellet||e.out_pellet_text||e.total_weight;if(s&&Number(s)>0)return k(Number(s));const n=N(e);if(!n.length)return"";const i=n.reduce((u,p)=>u+(Number(p==null?void 0:p.dosage)||0),0);return k(i*W(e))}function Te(e){if(!e)return"";const s=Ne(e);return s?`${s}克`:""}const Se={class:"rx-title"},we={class:"rx-notice"},$e={class:"rx-notice-text"},Ae={class:"rx-notice-meta"},Fe={class:"rx-meta-item"},Pe={class:"rx-meta-value"},De={class:"rx-meta-item"},je={class:"rx-meta-value"},Be={class:"rx-meta-item"},He={class:"rx-meta-value"},Le={key:0,class:"rx-meta-item"},Re={class:"rx-meta-value"},Ue={class:"rx-info"},Ce={class:"rx-info-row"},Me={class:"rx-info-cell"},Oe={class:"rx-val"},ze={class:"rx-info-cell"},Ge={class:"rx-val"},Ie={class:"rx-info-cell"},Ve={class:"rx-val"},Ee={class:"rx-info-cell"},qe={class:"rx-val"},We={class:"rx-info-row rx-info-row-full"},Ye={class:"rx-info-cell"},Je={class:"rx-val"},Ke={class:"rx-info-row rx-info-row-full"},Qe={class:"rx-info-cell"},Xe={class:"rx-val"},Ze={class:"rx-rp"},et={class:"rx-watermark"},tt={class:"rx-rp-head"},st={class:"rx-rp-cols-head"},nt={class:"rx-rp-col-head"},rt={class:"rx-rp-col-head"},ot={class:"rx-herbs"},it={class:"rx-herb-name"},at={class:"rx-herb-total"},lt={class:"rx-herb-section-label rx-herb-section-label--aux"},ut={key:0,class:"rx-herb-library-name"},ct={class:"rx-herb-name"},_t={class:"rx-herb-total"},dt={class:"rx-herb-name"},pt={class:"rx-herb-total"},mt={class:"rx-herb-name"},xt={class:"rx-herb-total"},gt={class:"rx-text"},bt={key:0},vt={key:1},ft={key:2},yt={key:1},ht={key:2},kt={key:3},Nt={key:4,class:"rx-text-warn"},Tt={key:5,class:"rx-text-warn"},St={class:"rx-bottom"},wt={class:"rx-bot-cell rx-bot-doctor"},$t={class:"rx-bot-doctor-body"},At=["src"],Ft={key:1,class:"rx-bot-doctor-name"},Pt={key:0,class:"rx-bot-cell rx-bot-meta"},Dt={class:"rx-bot-meta-val"},jt={class:"rx-bot-cell rx-bot-meta"},Bt={class:"rx-bot-meta-val"},Ht={key:1,class:"rx-bot-cell rx-bot-meta"},Lt={class:"rx-bot-meta-val"},Rt=Z({name:"PrescriptionSlip",__name:"index",props:{data:{},variant:{default:"internal"},auxLibraryName:{default:""},title:{default:"成都双流甄养堂互联网医院 处方笺"}},setup(e,{expose:s}){const n=e,i=se(null),u=c(()=>n.variant!=="user"),p=c(()=>n.title||"成都双流甄养堂互联网医院 处方笺"),b=c(()=>ue(n.data)),f=c(()=>ce(n.data)),T=c(()=>_e(n.data)),g=c(()=>de(n.data)),F=c(()=>pe(n.data)),Y=c(()=>{var m;return re((m=n.data)==null?void 0:m.gender)}),J=c(()=>{var m;return oe((m=n.data)==null?void 0:m.age)}),S=c(()=>le(n.data)),w=c(()=>q(n.data)),D=c(()=>be(n.data)),P=c(()=>ve(n.data)),j=c(()=>fe(n.data)),B=c(()=>ye(n.data)),H=c(()=>he(n.data)),L=c(()=>ke(n.data)),R=c(()=>Te(n.data)),K=c(()=>ge(n.data)),Q=c(()=>me(n.data)),X=c(()=>{var y,h;const m=(y=n.data)==null?void 0:y.medication_days;if(m!=null&&String(m).trim()!=="")return`${m} 天`;const r=(h=n.data)==null?void 0:h.dose_count;return r!=null&&String(r).trim()!==""?`${r}剂`:"—"});function U(m){return xe(n.data,m)}return s({paperEl:i,$el:i}),(m,r)=>{var y,h,C,M,O,z,G,I;return a(),l("div",{ref_key:"paperRef",ref:i,class:"rx-paper"},[t("div",Se,o(u.value?"药房联":p.value),1),t("div",we,[t("span",$e,o(u.value?"服药前请核对姓名、电话、医生等信息以及服法、医嘱等要点":"服药前请核对姓名、电话、医生等信息以及医嘱等要点"),1),t("div",Ae,[t("div",Fe,[r[0]||(r[0]=t("span",{class:"rx-meta-label"},"日期",-1)),t("span",Pe,o(b.value),1)]),t("div",De,[r[1]||(r[1]=t("span",{class:"rx-meta-label"},"处方编号",-1)),t("span",je,o(f.value),1)]),t("div",Be,[r[2]||(r[2]=t("span",{class:"rx-meta-label"},"流转编号(挂号)",-1)),t("span",He,o(T.value),1)]),g.value?(a(),l("div",Le,[r[3]||(r[3]=t("span",{class:"rx-meta-label"},"业务单号",-1)),t("span",Re,o(g.value),1)])):_("",!0)])]),t("div",Ue,[t("div",Ce,[t("div",Me,[r[4]||(r[4]=t("span",{class:"rx-key"},"姓名",-1)),t("span",Oe,o(((y=e.data)==null?void 0:y.patient_name)||"—"),1)]),t("div",ze,[r[5]||(r[5]=t("span",{class:"rx-key"},"性别",-1)),t("span",Ge,o(Y.value),1)]),t("div",Ie,[r[6]||(r[6]=t("span",{class:"rx-key"},"年龄",-1)),t("span",Ve,o(J.value),1)]),t("div",Ee,[r[7]||(r[7]=t("span",{class:"rx-key"},"电话",-1)),t("span",qe,o(((h=e.data)==null?void 0:h.phone)||((C=e.data)==null?void 0:C.recipient_phone)||"—"),1)])]),t("div",We,[t("div",Ye,[r[8]||(r[8]=t("span",{class:"rx-key"},"收件信息",-1)),t("span",Je,o(F.value),1)])]),t("div",Ke,[t("div",Qe,[r[9]||(r[9]=t("span",{class:"rx-key"},"临床诊断",-1)),t("span",Xe,o(((M=e.data)==null?void 0:M.clinical_diagnosis)||"—"),1)])])]),t("div",Ze,[t("div",et,o(u.value?"药房联":"处方联"),1),t("div",tt,[r[12]||(r[12]=t("div",{class:"rx-rp-label"},"Rp.",-1)),t("div",st,[t("div",nt,[r[10]||(r[10]=t("span",null,"用药 (单剂)",-1)),t("span",null,o(u.value?"总量":"用量"),1)]),t("div",rt,[r[11]||(r[11]=t("span",null,"用药 (单剂)",-1)),t("span",null,o(u.value?"总量":"用量"),1)])])]),t("div",ot,[u.value?(a(),l(x,{key:0},[S.value.length?(a(),l(x,{key:0},[r[13]||(r[13]=t("div",{class:"rx-herb-section-label"},"主方",-1)),(a(!0),l(x,null,$(S.value,(d,v)=>(a(),l("div",{key:"main-"+v,class:"rx-herb-cell"},[t("span",it,o(d.name)+" ("+o(d.dosage)+"克)",1),t("span",at,o(U(d.dosage))+"克",1)]))),128))],64)):_("",!0),w.value.length?(a(),l(x,{key:1},[t("div",lt,[r[14]||(r[14]=ee(" 辅方 ",-1)),e.auxLibraryName?(a(),l("span",ut,"("+o(e.auxLibraryName)+")",1)):_("",!0)]),(a(!0),l(x,null,$(w.value,(d,v)=>(a(),l("div",{key:"aux-"+v,class:"rx-herb-cell"},[t("span",ct,o(d.name)+" ("+o(d.dosage)+"克)",1),t("span",_t,o(U(d.dosage))+"克",1)]))),128))],64)):_("",!0)],64)):(a(),l(x,{key:1},[S.value.length?(a(),l(x,{key:0},[r[15]||(r[15]=t("div",{class:"rx-herb-section-label"},"主方",-1)),(a(!0),l(x,null,$(S.value,(d,v)=>(a(),l("div",{key:"user-main-"+v,class:"rx-herb-cell"},[t("span",dt,o(d.name),1),t("span",pt,o(d.dosage)+"克",1)]))),128))],64)):_("",!0),w.value.length?(a(),l(x,{key:1},[r[16]||(r[16]=t("div",{class:"rx-herb-section-label rx-herb-section-label--aux"},"辅方",-1)),(a(!0),l(x,null,$(w.value,(d,v)=>(a(),l("div",{key:"user-aux-"+v,class:"rx-herb-cell"},[t("span",mt,o(d.name),1),t("span",xt,o(d.dosage)+"克",1)]))),128))],64)):_("",!0)],64))])]),t("div",gt,[u.value?(a(),l(x,{key:0},[P.value?(a(),l("p",bt,"主服法:"+o(D.value),1)):(a(),l("p",vt,"服法:"+o(D.value),1)),P.value?(a(),l("p",ft,"辅服法:"+o(P.value),1)):_("",!0)],64)):_("",!0),j.value?(a(),l("p",yt,"医嘱:"+o(j.value),1)):_("",!0),B.value?(a(),l("p",ht,"忌口:"+o(B.value),1)):_("",!0),u.value&&H.value?(a(),l("p",kt,"备注:"+o(H.value),1)):_("",!0),L.value?(a(),l("p",Nt," 药房备注:"+o(L.value),1)):_("",!0),u.value&&R.value&&((O=e.data)==null?void 0:O.prescription_type)!=="饮片"?(a(),l("p",Tt," 出丸:"+o(R.value),1)):_("",!0)]),t("div",St,[t("div",{class:te(["rx-bot-row rx-bot-row-1",{"rx-bot-row-1--user":!u.value}])},[t("div",wt,[r[17]||(r[17]=t("div",{class:"rx-bot-label rx-bot-label--doctor"},"医师",-1)),t("div",$t,[(z=e.data)!=null&&z.doctor_signature?(a(),l("img",{key:0,src:e.data.doctor_signature,alt:"医师签名",class:"rx-bot-sign-img"},null,8,At)):_("",!0),(G=e.data)!=null&&G.doctor_signature?_("",!0):(a(),l("span",Ft,o(((I=e.data)==null?void 0:I.doctor_name)||"—"),1))])]),u.value?(a(),l("div",Pt,[r[18]||(r[18]=t("span",{class:"rx-bot-meta-key"},"类型:",-1)),t("span",Dt,o(K.value),1)])):_("",!0),t("div",jt,[r[19]||(r[19]=t("span",{class:"rx-bot-meta-key"},"天数:",-1)),t("span",Bt,o(X.value),1)]),u.value?(a(),l("div",Ht,[r[20]||(r[20]=t("span",{class:"rx-bot-meta-key"},"剂量:",-1)),t("span",Lt,o(Q.value)+"克",1)])):_("",!0)],2),r[21]||(r[21]=t("div",{class:"rx-bot-row rx-hospital-row"},[t("div",{class:"rx-hospital-line"},"成都双流甄养堂互联网医院有限公司 联系方式:4001667339"),t("div",{class:"rx-hospital-line"},"地址:四川省成都市双流区黄甲街道黄龙大道二段280号")],-1))])],512)}}}),Mt=ne(Rt,[["__scopeId","data-v-2b78e141"]]);export{Mt as P}; diff --git a/server/public/admin/assets/index-CMH8bXK6.js b/server/public/admin/assets/index-CTkEoAmW.js similarity index 99% rename from server/public/admin/assets/index-CMH8bXK6.js rename to server/public/admin/assets/index-CTkEoAmW.js index eb27d1f98..c1b352ebb 100644 --- a/server/public/admin/assets/index-CMH8bXK6.js +++ b/server/public/admin/assets/index-CTkEoAmW.js @@ -1 +1 @@ -import{o as _t,M as m,ap as el,bp as tl,q as i,r as V,v as t,D as n,bd as ll,u as o,bb as al,aA as nl,bc as mt,bh as ol,F as Y,G as se,O as _,bi as sl,K as rl,L as s,ac as D,bj as dl,s as g,Y as il,C as $,X as ul,T as f,P as b,bk as ml,bl as pl,bm as fl,bn as yl,c1 as _l,c2 as cl,bE as vl,bu as gl,aB as bl,aw as pt,az as kl,bo as xl,bf as Vl,bq as wl,I as Tl,J as Cl,w as Sl,ba as Dl,aC as Ke,p as re}from"./.pnpm-CyuAWpdG.js";import{_ as $l}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as El}from"./index.vue_vue_type_script_setup_true_lang-98A4_fZW.js";import{_ as Pl}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{u as Ul}from"./usePaging-CghUEVfD.js";import{h as hl}from"./perm-DOfZAzJJ.js";import{o as Ml,a as Ol,b as Al,c as Ll,d as Yl,e as ql,s as ft,f as Rl,g as zl,h as Nl,i as Fl,j as Il,k as Wl,l as jl,m as yt,n as Bl,w as Hl,p as Kl,q as Ql,r as Gl,t as Xl}from"./order-CIw46QQn.js";import{Y as Jl,o as Zl}from"./tcm-QAkeqQ9Q.js";import{j as v,_ as ea}from"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";const ta={class:"order-list"},la={class:"flex items-center justify-between mb-4"},aa={class:"flex items-center gap-4 text-sm"},na={class:"text-red-500 font-semibold text-lg"},oa={class:"text-gray-400"},sa={class:"mb-3 flex items-center gap-3"},ra={key:0,class:"text-sm text-gray-500"},da={key:0},ia={key:1,class:"text-amber-600"},ua={class:"text-xs text-gray-400"},ma={key:0,class:"text-xs text-gray-400"},pa={class:"text-red-500 font-semibold"},fa={class:"flex justify-end mt-4"},ya={class:"text-red-500 font-semibold"},_a={key:2,class:"text-xs text-gray-500 mb-2"},ca={key:4,class:"flex justify-end mt-3"},va={key:0,class:"text-xs text-gray-500 mb-3"},ga={class:"text-sm text-gray-600 mb-3"},ba={class:"text-red-500 font-semibold"},ka={class:"text-red-500 font-semibold"},xa={class:"text-sm text-gray-600 mb-3"},Va={class:"font-mono"},wa={class:"text-red-500 font-semibold"},Ta={class:"space-y-2 mb-3 max-h-[320px] overflow-y-auto pr-1"},Ca={class:"text-sm text-gray-500 w-14 shrink-0"},Sa={class:"flex flex-col items-center justify-center py-4"},Da={key:0,class:"text-center"},$a={key:1,class:"text-center"},Ea=["src"],Pa={class:"mt-4 text-sm text-gray-600"},Ua={key:2,class:"text-center text-gray-500"},ha=_t({name:"orderList"}),Ma=_t({...ha,setup(Oa){const T=Ke({order_no:"",patient_keyword:"",assistant_id:void 0,order_type:"",status:"",patient_association:"",create_time_start:"",create_time_end:""}),de=m([]),Qe=m(null),Ge=m([]),N=re(()=>Ge.value.map(a=>a.id).filter(a=>a>0)),F=m(!1),we=m(!1),Z=Ke({assistant_id:void 0}),ie=m(""),ue=m({amount:"0.00",count:0}),{pager:I,getLists:E,resetPage:Xe,resetParams:ct}=Ul({fetchFun:Ml,params:T}),vt=a=>{Ge.value=a||[]},gt=()=>{if(!N.value.length){v.msgWarning("请先勾选要指派的支付单");return}Z.assistant_id=void 0,F.value=!0},bt=async()=>{var a;if(Z.assistant_id==null){v.msgWarning("请选择医助");return}we.value=!0;try{await Al({order_ids:[...N.value],assistant_id:Z.assistant_id}),v.msgSuccess("指派成功"),F.value=!1,(a=Qe.value)==null||a.clearSelection(),E(),W()}catch(e){e!=null&&e.msg&&v.msgError(e.msg)}finally{we.value=!1}},Te=()=>{Xe()},kt=a=>{T.patient_association=a||"",Xe()},W=async()=>{try{const a=await Ll();ue.value=(a==null?void 0:a.data)||a||{amount:"0.00",count:0}}catch{ue.value={amount:"0.00",count:0}}},xt=()=>{ie.value="",ct()},me=m(!1),k=m(null),Ce=m(0),Se=m(!1),De=m([]),$e=m(0),j=m(1),pe=m(10),fe=m(!1),ye=m(!1),Ee=m([]),L=m(null),ee=m(""),Pe=async()=>{if(Ce.value){Se.value=!0;try{const a=await Yl({order_id:Ce.value,page_no:j.value,page_size:pe.value});De.value=(a==null?void 0:a.lists)||[],$e.value=(a==null?void 0:a.count)??0}catch{De.value=[],$e.value=0}finally{Se.value=!1}}},Vt=()=>{j.value=1,Pe()},wt=()=>{L.value=null,Je()},Je=async()=>{ye.value=!0;try{const a={};L.value&&L.value.length===2&&(a.start_time=L.value[0],a.end_time=L.value[1]);const e=await ql(Object.keys(a).length?a:void 0);Ee.value=(e==null?void 0:e.list)||[],e!=null&&e.start_time&&(e!=null&&e.end_time)?ee.value=`${e.start_time} ~ ${e.end_time}`:ee.value=""}catch{Ee.value=[],ee.value=""}finally{ye.value=!1}},q=m(!1),_e=m(!1),y=m({order_id:0,order_no:"",amount:0,fubeiPendingAudit:!1,payment_method:"alipay",payType:"supplement",supplement_order_no:""}),R=m(!1),Ue=m(),he=m(!1),Me=m(!1),Oe=m([]),p=Ke({createType:"normal",requirePaymentSlipAudit:!1,patient_id:"",order_type:"",amount:0,remark:""}),Tt={patient_id:[{required:!0,message:"请选择患者",trigger:"change"}],order_type:[{required:!0,message:"请选择订单类型",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"}]},B=m(!1),Ze=m(),Ae=m(!1),Le=m(!1),te=m([]),C=m(null),Ye=re(()=>hl(["order.order/editTime"])),qe=re(()=>{var a;return[2,4].includes(((a=C.value)==null?void 0:a.status)??0)}),Ct={order_type:[{required:!0,message:"请选择订单类型",trigger:"change"}],payment_time:[{validator:(a,e,u)=>{if(qe.value&&!e){u(new Error("请选择支付时间"));return}u()},trigger:"change"}],create_time:[{required:!0,message:"请选择创建时间",trigger:"change"}]},St=async a=>{if(!a){Oe.value=[];return}try{Me.value=!0;const e=await ft({keyword:a,page_no:1,page_size:10});Oe.value=(e==null?void 0:e.lists)||[]}catch(e){console.error("搜索患者失败:",e)}finally{Me.value=!1}},et=()=>{var a;p.createType="normal",p.requirePaymentSlipAudit=!1,p.patient_id="",p.order_type="",p.amount=0,p.remark="",(a=Ue.value)==null||a.clearValidate()},Dt=()=>{et(),R.value=!0},H=m(!1),ce=m(!1),Re=m(!1),ve=m(""),K=m([new Date(Date.now()-7*864e5).toISOString().slice(0,10),new Date().toISOString().slice(0,10)]),$t=[{text:"最近7天",value:()=>{const a=new Date,e=new Date;return e.setTime(e.getTime()-7*864e5),[e,a]}},{text:"最近30天",value:()=>{const a=new Date,e=new Date;return e.setTime(e.getTime()-30*864e5),[e,a]}},{text:"今天",value:()=>{const a=new Date;return[a,a]}}],Et=()=>{K.value=[new Date(Date.now()-7*864e5).toISOString().slice(0,10),new Date().toISOString().slice(0,10)],H.value=!0},Pt=async()=>{var e;const a=K.value;if(!a||a.length!==2){v.msgError("请先选择时间范围");return}try{Re.value=!0;const u=await Rl({begin_time:a[0],end_time:a[1],payee_userid:ve.value||void 0}),r=(u==null?void 0:u.data)||u;let d=`配置:${r.config_ok?"✓":"✗"} | token:${r.access_token} | errcode:${r.api_errcode} | errmsg:${r.api_errmsg||"-"} | 账单数:${r.bill_count}`;(e=r.try_payee_userids)!=null&&e.length&&(d+=`。可尝试收款人: ${r.try_payee_userids.join(", ")}`),r.api_errcode!==0&&r.api_errcode!==-999&&(d+="。提示:需使用「对外收款」应用的Secret(管理后台-应用管理-对外收款-API)"),v.msgSuccess(d),console.log("企业微信同步调试:",r)}catch(u){v.msgError((u==null?void 0:u.message)||"排查失败")}finally{Re.value=!1}},Ut=async()=>{var e;const a=K.value;if(!a||a.length!==2){v.msgError("请选择时间范围");return}try{ce.value=!0;const u=await zl({begin_time:a[0],end_time:a[1]}),r=(u==null?void 0:u.data)||u;H.value=!1,E();const d=`同步完成:新增 ${r.created||0} 笔,更新 ${r.updated||0} 笔,跳过 ${r.skipped||0} 笔`+((e=r.errors)!=null&&e.length?`;错误:${r.errors.join(";")}`:"");v.msgSuccess(d),W()}catch(u){v.msgError((u==null?void 0:u.message)||"同步失败")}finally{ce.value=!1}},ht=async()=>{var a,e;try{if(await((a=Ue.value)==null?void 0:a.validate()),he.value=!0,p.createType==="wechat_work"){const u={patient_id:p.patient_id,order_type:p.order_type,amount:p.amount,remark:p.remark,create_type:"wechat_work"},r=await Nl(u),d=(r==null?void 0:r.order_no)??((e=r==null?void 0:r.data)==null?void 0:e.order_no);R.value=!1,E(),v.msgSuccess(d?`订单创建成功,请在企业微信收款时使用订单号:${d}`:"订单创建成功")}else{const u={patient_id:p.patient_id,order_type:p.order_type,amount:p.amount,remark:p.remark,create_type:p.createType};p.createType==="fubei"?(u.payment_channel="fubei",u.require_payment_slip_audit=p.requirePaymentSlipAudit?1:0):p.createType==="express_cod"?(u.payment_channel="express_cod",u.require_payment_slip_audit=p.requirePaymentSlipAudit?1:0):(u.payment_channel="normal",u.require_payment_slip_audit=0),await Fl(u);const r=(p.createType==="fubei"||p.createType==="express_cod")&&p.requirePaymentSlipAudit?"订单已创建,支付状态为「待审核」":"订单创建成功";v.msgSuccess(r),R.value=!1,E()}}catch(u){console.error("创建订单失败:",u)}finally{he.value=!1}},tt=a=>({1:"挂号费",2:"问诊费",3:"药品费用",4:"首付费用",5:"尾款费用",6:"其他费用",7:"全部费用",8:"驼奶费用"})[a]||"未知",lt=a=>({1:"success",2:"info",3:"warning"})[a]||"info",at=a=>({1:"待支付",2:"已支付",3:"已取消",4:"已退款",5:"待审核"})[a]||"未知",nt=a=>({1:"warning",2:"success",3:"info",4:"danger",5:"warning"})[a]||"info",ot=a=>a?{alipay:"支付宝",wechat:"微信",wechat_work:"企业微信",fubei:"付呗",manual:"手动确认"}[a]||"未知":"-",st=a=>{const e={normal:"普通订单",wechat_work:"企业微信对外收款",fubei:"付呗",express_cod:"快递代收"},u=a==null?void 0:a.create_type;return u==="wechat_work"||u==="fubei"||u==="express_cod"?e[u]:u==="normal"&&(a!=null&&a.payment_method)?ot(a.payment_method):u&&e[u]?e[u]:ot(a==null?void 0:a.payment_method)},rt=a=>{var z;if(a==null||a===""||a==="-")return"";const e=String(a).trim(),u=(z=e.match(/^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}:\d{2}/))==null?void 0:z[0];if(u)return u.replace("T"," ");const r=/^\d{10,13}$/.test(e)?Number(e):0,d=new Date(r?r<1e12?r*1e3:r:e);if(Number.isNaN(d.getTime()))return"";const w=c=>String(c).padStart(2,"0");return`${d.getFullYear()}-${w(d.getMonth()+1)}-${w(d.getDate())} ${w(d.getHours())}:${w(d.getMinutes())}:${w(d.getSeconds())}`},Mt=a=>{C.value={id:a.id,patient_id:a.patient_id||null,order_type:a.order_type,status:Number(a.status),payment_time:[2,4].includes(Number(a.status))?rt(a.payment_time):"",create_time:rt(a.create_time)},te.value=a.patient?[a.patient]:[],B.value=!0},Ot=async a=>{if(!a){te.value=[];return}try{Le.value=!0;const e=await ft({keyword:a,page_no:1,page_size:10});te.value=(e==null?void 0:e.lists)||[]}catch{te.value=[]}finally{Le.value=!1}},At=async()=>{var a;if(C.value)try{await((a=Ze.value)==null?void 0:a.validate()),Ae.value=!0;const e={id:C.value.id,patient_id:C.value.patient_id??0,order_type:C.value.order_type};Ye.value&&(e.create_time=C.value.create_time,qe.value&&(e.payment_time=C.value.payment_time)),await Il(e),v.msgSuccess("保存成功"),B.value=!1,E(),W()}catch(e){e!=null&&e.message&&v.msgError(e.message)}finally{Ae.value=!1}},Q=m(!1),h=m(null),G=m(2),X=m([]),le=m([]),ze=m(!1),dt=()=>{if(!h.value)return;const a=Number(h.value.amount),e=Math.max(2,Math.min(20,Math.floor(Number(G.value)||2)));G.value=e;const u=Math.round(a*100),r=Math.floor(u/e),d=u%e,w=[];for(let J=0;JM{h.value=a,G.value=2,dt(),Q.value=!0},it=re(()=>X.value.reduce((a,e)=>a+Number(e||0),0)),ge=re(()=>{if(!h.value)return!1;const a=Number(h.value.amount);return Math.abs(it.value-a)<1e-4}),Yt=async()=>{if(!(!h.value||!ge.value)){ze.value=!0;try{await Wl({id:h.value.id,amounts:X.value.map(a=>Number(a)),order_types:le.value.map(a=>Number(a))}),v.msgSuccess("拆分成功"),Q.value=!1,E(),W()}catch(a){a!=null&&a.msg&&v.msgError(a.msg)}finally{ze.value=!1}}},qt=async a=>{try{const e=await jl({id:a.id});k.value=e,Ce.value=a.id,j.value=1,me.value=!0,Pe()}catch(e){console.error("获取详情失败:",e)}},Rt=a=>{const e=a.status===5&&(a.payment_method==="fubei"||a.create_type==="express_cod");y.value={order_id:a.id,order_no:a.order_no,amount:a.amount,fubeiPendingAudit:e,payment_method:e?"manual":"alipay",payType:"supplement",supplement_order_no:""},q.value=!0},zt=async()=>{try{if(y.value.fubeiPendingAudit){_e.value=!0,await yt({id:y.value.order_id,payment_method:y.value.payment_method}),v.msgSuccess("已更新为已支付"),q.value=!1,E(),W();return}if(y.value.payType==="supplement"&&!y.value.supplement_order_no){v.msgWarning("请输入支付订单号");return}_e.value=!0;let a={};if(y.value.payType==="normal"?a={id:y.value.order_id,order_no:y.value.order_no,amount:y.value.amount,payment_method:y.value.payment_method}:a={order_no:y.value.supplement_order_no,payment_method:y.value.payment_method,is_supplement:1},y.value.payment_method==="wechat_work")await yt(a),v.msgSuccess("补单成功");else{let e;y.value.payment_method==="alipay"?e=await Bl(a):y.value.payment_method==="wechat"&&(e=await Hl(a)),e&&e.pay_url&&(y.value.payment_method==="alipay"?window.location.href=e.pay_url:y.value.payment_method==="wechat"&&v.msgSuccess("请扫描二维码进行支付"))}q.value=!1,setTimeout(()=>{E()},2e3)}catch(a){console.error("支付失败:",a),v.msgError("支付失败,请重试")}finally{_e.value=!1}},Nt=async a=>{try{await v.confirm("确定要取消该订单吗?"),await Kl({id:a.id}),v.msgSuccess("取消成功"),E()}catch{}},Ft=async a=>{try{await v.confirm("确定要退款该订单吗?"),await Ql({id:a.id}),v.msgSuccess("退款成功"),E()}catch{}},It=async a=>{try{await v.confirm("确定要删除该订单吗?此操作不可恢复"),await Gl({id:a.id}),v.msgSuccess("删除成功"),E()}catch{}},Wt=async a=>{const e=a.is_exempt===1?0:1,u=e===1?"设为豁免":"取消豁免";try{await v.confirm(`确定要${u}该支付单吗?豁免后关联此单的业务订单将跳过定金门槛校验。`),await Xl({id:a.id,is_exempt:e}),v.msgSuccess(`${u}成功`),E()}catch{}},ae=m(!1),be=m(!1),ke=m(""),xe=m(""),ut=async a=>{if(!a.order_no){v.msgWarning("订单号不存在");return}xe.value=a.order_no,ae.value=!0,be.value=!0,ke.value="";try{const e=await Jl({order_no:a.order_no});e!=null&&e.qrcode_url?ke.value=e.qrcode_url:v.msgError("二维码生成失败")}catch(e){v.msgError((e==null?void 0:e.msg)||"生成二维码失败")}finally{be.value=!1}},jt=()=>{xe.value&&ut({order_no:xe.value})},Bt=async()=>{try{const a=await Zl();de.value=Array.isArray(a)?a:[]}catch{de.value=[]}};return el(()=>{Bt(),E(),W()}),(a,e)=>{const u=nl,r=al,d=sl,w=ol,z=Pl,c=rl,J=El,M=ll,Ne=dl,Fe=ul,Ht=il,S=pl,ne=fl,Ie=ml,Kt=$l,U=cl,Qt=_l,Gt=vl,Xt=gl,O=bl,Ve=kl,oe=xl,A=wl,We=Vl,Jt=Tl,je=Cl,Zt=Sl,P=tl("perms"),Be=yl;return i(),V("div",ta,[t(Ne,{class:"!border-none",shadow:"never"},{default:n(()=>[t(M,{class:"ls-form",model:o(T),inline:""},{default:n(()=>[t(r,{class:"w-[280px]",label:"订单号"},{default:n(()=>[t(u,{modelValue:o(T).order_no,"onUpdate:modelValue":e[0]||(e[0]=l=>o(T).order_no=l),placeholder:"请输入订单号",clearable:"",onKeyup:mt(Te,["enter"])},null,8,["modelValue"])]),_:1}),t(r,{class:"w-[280px]",label:"患者信息"},{default:n(()=>[t(u,{modelValue:o(T).patient_keyword,"onUpdate:modelValue":e[1]||(e[1]=l=>o(T).patient_keyword=l),placeholder:"患者姓名/手机号",clearable:"",onKeyup:mt(Te,["enter"])},null,8,["modelValue"])]),_:1}),t(r,{class:"w-[280px]",label:"医助"},{default:n(()=>[t(w,{modelValue:o(T).assistant_id,"onUpdate:modelValue":e[2]||(e[2]=l=>o(T).assistant_id=l),placeholder:"全部医助",clearable:"",filterable:"",class:"w-full"},{default:n(()=>[(i(!0),V(Y,null,se(o(de),l=>(i(),_(d,{key:l.id,label:l.name,value:Number(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(r,{class:"w-[280px]",label:"订单类型"},{default:n(()=>[t(w,{modelValue:o(T).order_type,"onUpdate:modelValue":e[3]||(e[3]=l=>o(T).order_type=l),class:"w-full",placeholder:"全部"},{default:n(()=>[t(d,{label:"全部",value:""}),t(d,{label:"挂号费",value:1}),t(d,{label:"问诊费",value:2}),t(d,{label:"药品费用",value:3}),t(d,{label:"首付费用",value:4}),t(d,{label:"尾款费用",value:5}),t(d,{label:"其他费用",value:6}),t(d,{label:"全部费用",value:7}),t(d,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),t(r,{class:"w-[280px]",label:"订单状态"},{default:n(()=>[t(w,{modelValue:o(T).status,"onUpdate:modelValue":e[4]||(e[4]=l=>o(T).status=l),class:"w-full",placeholder:"全部"},{default:n(()=>[t(d,{label:"全部",value:""}),t(d,{label:"待支付",value:1}),t(d,{label:"已支付",value:2}),t(d,{label:"已取消",value:3}),t(d,{label:"已退款",value:4}),t(d,{label:"待审核",value:5})]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"创建时间"},{default:n(()=>[t(z,{startTime:o(T).create_time_start,"onUpdate:startTime":e[5]||(e[5]=l=>o(T).create_time_start=l),endTime:o(T).create_time_end,"onUpdate:endTime":e[6]||(e[6]=l=>o(T).create_time_end=l)},null,8,["startTime","endTime"])]),_:1}),t(r,null,{default:n(()=>[t(c,{type:"primary",onClick:Te},{default:n(()=>[...e[49]||(e[49]=[s("查询",-1)])]),_:1}),t(c,{onClick:xt},{default:n(()=>[...e[50]||(e[50]=[s("重置",-1)])]),_:1}),D((i(),_(c,{onClick:e[7]||(e[7]=l=>fe.value=!0)},{default:n(()=>[...e[51]||(e[51]=[s(" 操作统计 ",-1)])]),_:1})),[[P,["order.order/lists"]]]),D(t(J,{class:"ml-2.5","fetch-fun":o(Ol),params:o(T),"page-size":o(I).size},null,8,["fetch-fun","params","page-size"]),[[P,["order.order/export"]]]),D((i(),_(c,{type:"success",class:"ml-2.5",onClick:Dt},{default:n(()=>[...e[52]||(e[52]=[s(" + 创建支付单 ",-1)])]),_:1})),[[P,["order.order/create"]]]),D((i(),_(c,{type:"warning",class:"ml-2.5",loading:o(ce),onClick:Et},{default:n(()=>[...e[53]||(e[53]=[s(" 同步企业微信收款 ",-1)])]),_:1},8,["loading"])),[[P,["order.order/alltongbu"]]])]),_:1})]),_:1},8,["model"])]),_:1}),t(Ne,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[g("div",la,[t(Ht,{modelValue:o(ie),"onUpdate:modelValue":e[8]||(e[8]=l=>$(ie)?ie.value=l:null),onTabChange:kt},{default:n(()=>[t(Fe,{label:"全部",name:""}),t(Fe,{label:"待关联",name:"pending"}),t(Fe,{label:"已关联",name:"associated"})]),_:1},8,["modelValue"]),g("div",aa,[e[54]||(e[54]=g("span",{class:"text-gray-500"},"今日收益:",-1)),g("span",na,"¥"+f(o(ue).amount),1),g("span",oa,"("+f(o(ue).count)+" 笔)",1)])])]),_:1}),t(Ne,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[D((i(),V("div",sa,[t(c,{type:"primary",disabled:!N.value.length,onClick:gt},{default:n(()=>[...e[55]||(e[55]=[s(" 将创建人指给医助 ",-1)])]),_:1},8,["disabled"]),N.value.length?(i(),V("span",ra,"已选 "+f(N.value.length)+" 条",1)):b("",!0)])),[[P,["order.order/zhipai"]]]),D((i(),_(Ie,{ref_key:"orderTableRef",ref:Qe,data:o(I).lists,"row-key":"id",size:"large",onSelectionChange:vt},{default:n(()=>[t(S,{type:"selection",width:"48"}),t(S,{label:"订单号",prop:"order_no","min-width":"150"}),t(S,{label:"患者信息","min-width":"150"},{default:n(({row:l})=>{var x;return[l.patient?(i(),V("div",da,f(l.patient.patient_name),1)):(i(),V("div",ia,"待关联")),g("div",ua,f(((x=l.patient)==null?void 0:x.phone)||"-"),1)]}),_:1}),t(S,{label:"创建人","min-width":"120"},{default:n(({row:l})=>{var x;return[g("div",null,f(((x=l.creator)==null?void 0:x.name)||"-"),1),l.payee_userid?(i(),V("div",ma,"收款: "+f(l.payee_userid),1)):b("",!0)]}),_:1}),t(S,{label:"订单类型",width:"100"},{default:n(({row:l})=>[t(ne,{type:lt(l.order_type)},{default:n(()=>[s(f(tt(l.order_type)),1)]),_:2},1032,["type"])]),_:1}),t(S,{label:"金额",width:"100"},{default:n(({row:l})=>[g("span",pa,"¥"+f(l.amount),1)]),_:1}),t(S,{label:"支付方式",width:"120"},{default:n(({row:l})=>[s(f(st(l)),1)]),_:1}),t(S,{label:"订单状态",width:"120"},{default:n(({row:l})=>[t(ne,{type:nt(l.status)},{default:n(()=>[s(f(at(l.status)),1)]),_:2},1032,["type"]),l.is_exempt===1?(i(),_(ne,{key:0,type:"warning",size:"small",class:"ml-1"},{default:n(()=>[...e[56]||(e[56]=[s("豁免",-1)])]),_:1})):b("",!0)]),_:1}),t(S,{label:"支付时间","min-width":"160"},{default:n(({row:l})=>[s(f(l.payment_time||"-"),1)]),_:1}),t(S,{label:"创建时间","min-width":"160"},{default:n(({row:l})=>[s(f(l.create_time),1)]),_:1}),t(S,{label:"操作",width:"340",fixed:"right"},{default:n(({row:l})=>[D((i(),_(c,{type:"primary",link:"",onClick:x=>qt(l)},{default:n(()=>[...e[57]||(e[57]=[s(" 详情 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/detail"]]]),D((i(),_(c,{type:"primary",link:"",onClick:x=>Mt(l)},{default:n(()=>[...e[58]||(e[58]=[s(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/edit"]]]),l.status===1||l.status===2||l.status===5&&(l.payment_method==="fubei"||l.create_type==="express_cod")?D((i(),_(c,{key:0,type:"primary",link:"",onClick:x=>Lt(l)},{default:n(()=>[...e[59]||(e[59]=[s(" 拆分 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/split"]]]):b("",!0),D((i(),_(c,{type:"primary",link:"",onClick:x=>ut(l)},{default:n(()=>[...e[60]||(e[60]=[s(" 小程序码 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/wxQrcode"]]]),l.status===1||l.status===5&&(l.payment_method==="fubei"||l.create_type==="express_cod")?D((i(),_(c,{key:1,type:"success",link:"",onClick:x=>Rt(l)},{default:n(()=>[...e[61]||(e[61]=[s(" 支付 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/pay"]]]):b("",!0),l.status===2?D((i(),_(c,{key:2,type:"warning",link:"",onClick:x=>Ft(l)},{default:n(()=>[...e[62]||(e[62]=[s(" 退款 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/refund"]]]):b("",!0),l.status===1||l.status===5&&(l.payment_method==="fubei"||l.create_type==="express_cod")?D((i(),_(c,{key:3,type:"danger",link:"",onClick:x=>Nt(l)},{default:n(()=>[...e[63]||(e[63]=[s(" 取消 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/cancel"]]]):b("",!0),D((i(),_(c,{type:"danger",link:"",onClick:x=>It(l)},{default:n(()=>[...e[64]||(e[64]=[s(" 删除 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/delete"]]]),D((i(),_(c,{type:l.is_exempt===1?"warning":"default",link:"",onClick:x=>Wt(l)},{default:n(()=>[s(f(l.is_exempt===1?"取消豁免":"设为豁免"),1)]),_:2},1032,["type","onClick"])),[[P,["order.order/setExempt"]]])]),_:1})]),_:1},8,["data"])),[[Be,o(I).loading]]),g("div",fa,[t(Kt,{modelValue:o(I),"onUpdate:modelValue":e[9]||(e[9]=l=>$(I)?I.value=l:null),onChange:o(E)},null,8,["modelValue","onChange"])])]),_:1}),t(O,{modelValue:o(me),"onUpdate:modelValue":e[12]||(e[12]=l=>$(me)?me.value=l:null),title:"订单详情",width:"820px"},{default:n(()=>[o(k)?(i(),_(Qt,{key:0,column:2,border:""},{default:n(()=>[t(U,{label:"订单号"},{default:n(()=>[s(f(o(k).order_no),1)]),_:1}),t(U,{label:"订单状态"},{default:n(()=>[t(ne,{type:nt(o(k).status)},{default:n(()=>[s(f(at(o(k).status)),1)]),_:1},8,["type"])]),_:1}),t(U,{label:"患者姓名"},{default:n(()=>{var l;return[s(f(((l=o(k).patient)==null?void 0:l.patient_name)||"待关联"),1)]}),_:1}),t(U,{label:"患者电话"},{default:n(()=>{var l;return[s(f(((l=o(k).patient)==null?void 0:l.phone)||"-"),1)]}),_:1}),t(U,{label:"创建人"},{default:n(()=>{var l;return[s(f(((l=o(k).creator)==null?void 0:l.name)||"-"),1)]}),_:1}),o(k).payee_userid?(i(),_(U,{key:0,label:"收款人userid"},{default:n(()=>[s(f(o(k).payee_userid),1)]),_:1})):b("",!0),o(k).payer_external_userid?(i(),_(U,{key:1,label:"付款人external_userid"},{default:n(()=>[s(f(o(k).payer_external_userid),1)]),_:1})):b("",!0),t(U,{label:"订单类型"},{default:n(()=>[t(ne,{type:lt(o(k).order_type)},{default:n(()=>[s(f(tt(o(k).order_type)),1)]),_:1},8,["type"])]),_:1}),t(U,{label:"订单金额"},{default:n(()=>[g("span",ya,"¥"+f(o(k).amount),1)]),_:1}),t(U,{label:"支付方式"},{default:n(()=>[s(f(st(o(k))),1)]),_:1}),t(U,{label:"支付时间"},{default:n(()=>[s(f(o(k).payment_time||"-"),1)]),_:1}),t(U,{label:"创建时间"},{default:n(()=>[s(f(o(k).create_time),1)]),_:1}),t(U,{label:"备注",span:2},{default:n(()=>[s(f(o(k).remark||"无"),1)]),_:1})]),_:1})):b("",!0),o(k)?(i(),_(Gt,{key:1,"content-position":"left"},{default:n(()=>[...e[65]||(e[65]=[s("操作记录",-1)])]),_:1})):b("",!0),o(k)?(i(),V("p",_a,"谁在什么时间对本单做了哪些操作(数据来自服务器记录)。")):b("",!0),o(k)?D((i(),_(Ie,{key:3,data:o(De),size:"small","max-height":"320"},{default:n(()=>[t(S,{label:"操作",prop:"action_label","min-width":"120","show-overflow-tooltip":""}),t(S,{label:"操作人",prop:"admin_name","min-width":"100"}),t(S,{label:"操作时间",prop:"create_time_text","min-width":"160"}),t(S,{label:"说明",prop:"summary","min-width":"140","show-overflow-tooltip":""})]),_:1},8,["data"])),[[Be,o(Se)]]):b("",!0),o(k)?(i(),V("div",ca,[t(Xt,{"current-page":o(j),"onUpdate:currentPage":e[10]||(e[10]=l=>$(j)?j.value=l:null),"page-size":o(pe),"onUpdate:pageSize":e[11]||(e[11]=l=>$(pe)?pe.value=l:null),total:o($e),"page-sizes":[10,20,50],layout:"total, sizes, prev, pager, next",small:"",onSizeChange:Vt,onCurrentChange:Pe},null,8,["current-page","page-size","total"])])):b("",!0)]),_:1},8,["modelValue"]),t(O,{modelValue:o(fe),"onUpdate:modelValue":e[15]||(e[15]=l=>$(fe)?fe.value=l:null),title:"支付单操作统计",width:"520px",onOpened:wt},{default:n(()=>[o(ee)?(i(),V("p",va,"统计范围:"+f(o(ee)),1)):b("",!0),t(M,{class:"mb-3",inline:!0,onSubmit:e[14]||(e[14]=pt(()=>{},["prevent"]))},{default:n(()=>[t(r,{label:"时间范围"},{default:n(()=>[t(Ve,{modelValue:o(L),"onUpdate:modelValue":e[13]||(e[13]=l=>$(L)?L.value=l:null),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始","end-placeholder":"结束",class:"!w-[260px]"},null,8,["modelValue"])]),_:1}),t(r,null,{default:n(()=>[t(c,{type:"primary",loading:o(ye),onClick:Je},{default:n(()=>[...e[66]||(e[66]=[s("查询",-1)])]),_:1},8,["loading"])]),_:1})]),_:1}),D((i(),_(Ie,{data:o(Ee),size:"small","max-height":"400"},{default:n(()=>[t(S,{label:"操作人",prop:"admin_name","min-width":"120","show-overflow-tooltip":""}),t(S,{label:"操作次数",prop:"cnt",width:"100",align:"right"})]),_:1},8,["data"])),[[Be,o(ye)]])]),_:1},8,["modelValue"]),t(O,{modelValue:o(F),"onUpdate:modelValue":e[18]||(e[18]=l=>$(F)?F.value=l:null),title:"变更创建人(医助)",width:"440px","destroy-on-close":""},{footer:n(()=>[t(c,{onClick:e[17]||(e[17]=l=>F.value=!1)},{default:n(()=>[...e[67]||(e[67]=[s("取消",-1)])]),_:1}),t(c,{type:"primary",loading:o(we),onClick:bt},{default:n(()=>[...e[68]||(e[68]=[s("确定",-1)])]),_:1},8,["loading"])]),default:n(()=>[g("p",ga," 将 "+f(N.value.length)+" 条支付单的「创建人」改为所选医助,并写入各单操作日志。 ",1),t(w,{modelValue:o(Z).assistant_id,"onUpdate:modelValue":e[16]||(e[16]=l=>o(Z).assistant_id=l),filterable:"",placeholder:"选择医助",class:"w-full"},{default:n(()=>[(i(!0),V(Y,null,se(o(de),l=>(i(),_(d,{key:l.id,label:l.dept_names?`${l.name}(${l.dept_names})`:l.name,value:Number(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"]),t(O,{modelValue:o(q),"onUpdate:modelValue":e[23]||(e[23]=l=>$(q)?q.value=l:null),title:"订单支付",width:"500px"},{footer:n(()=>[t(c,{onClick:e[22]||(e[22]=l=>q.value=!1)},{default:n(()=>[...e[74]||(e[74]=[s("取消",-1)])]),_:1}),t(c,{type:"primary",onClick:zt,loading:o(_e)},{default:n(()=>[...e[75]||(e[75]=[s("确认支付",-1)])]),_:1},8,["loading"])]),default:n(()=>[t(M,{model:o(y),"label-width":"100px"},{default:n(()=>[o(y).fubeiPendingAudit?(i(),_(oe,{key:0,type:"warning",closable:!1,class:"mb-3",title:"该单为待审核(付呗/快递代收),请选择实际到账方式后确认「已支付」"})):b("",!0),o(y).fubeiPendingAudit?b("",!0):(i(),_(r,{key:1,label:"支付类型",required:""},{default:n(()=>[t(We,{modelValue:o(y).payType,"onUpdate:modelValue":e[19]||(e[19]=l=>o(y).payType=l)},{default:n(()=>[t(A,{label:"supplement"},{default:n(()=>[...e[69]||(e[69]=[s("补单支付",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})),o(y).payType==="normal"?(i(),V(Y,{key:2},[t(r,{label:"订单号"},{default:n(()=>[g("span",null,f(o(y).order_no),1)]),_:1}),t(r,{label:"订单金额"},{default:n(()=>[g("span",ba,"¥"+f(o(y).amount),1)]),_:1})],64)):b("",!0),!o(y).fubeiPendingAudit&&o(y).payType==="supplement"?(i(),_(r,{key:3,label:"支付订单号",required:""},{default:n(()=>[t(u,{modelValue:o(y).supplement_order_no,"onUpdate:modelValue":e[20]||(e[20]=l=>o(y).supplement_order_no=l),placeholder:"请输入支付订单号"},null,8,["modelValue"])]),_:1})):b("",!0),o(y).fubeiPendingAudit?(i(),V(Y,{key:4},[t(r,{label:"订单号"},{default:n(()=>[g("span",null,f(o(y).order_no),1)]),_:1}),t(r,{label:"金额"},{default:n(()=>[g("span",ka,"¥"+f(o(y).amount),1)]),_:1})],64)):b("",!0),t(r,{label:"支付方式",required:""},{default:n(()=>[t(We,{modelValue:o(y).payment_method,"onUpdate:modelValue":e[21]||(e[21]=l=>o(y).payment_method=l)},{default:n(()=>[o(y).fubeiPendingAudit?(i(),_(A,{key:0,label:"manual"},{default:n(()=>[...e[70]||(e[70]=[s("手动确认到账",-1)])]),_:1})):b("",!0),t(A,{label:"alipay"},{default:n(()=>[...e[71]||(e[71]=[s("支付宝",-1)])]),_:1}),t(A,{label:"wechat"},{default:n(()=>[...e[72]||(e[72]=[s("微信",-1)])]),_:1}),t(A,{label:"wechat_work"},{default:n(()=>[...e[73]||(e[73]=[s("企业微信",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),t(O,{modelValue:o(R),"onUpdate:modelValue":e[31]||(e[31]=l=>$(R)?R.value=l:null),title:"创建订单",width:"600px",onClose:et},{footer:n(()=>[t(c,{onClick:e[30]||(e[30]=l=>R.value=!1)},{default:n(()=>[...e[87]||(e[87]=[s("取消",-1)])]),_:1}),t(c,{type:"primary",onClick:ht,loading:o(he)},{default:n(()=>[s(f(o(p).createType==="wechat_work"?"创建并获取收款订单号":"创建订单"),1)]),_:1},8,["loading"])]),default:n(()=>[t(M,{ref_key:"createFormRef",ref:Ue,model:o(p),rules:Tt,"label-width":"100px"},{default:n(()=>[t(r,{label:"创建方式"},{default:n(()=>[t(We,{modelValue:o(p).createType,"onUpdate:modelValue":e[24]||(e[24]=l=>o(p).createType=l)},{default:n(()=>[t(A,{label:"normal"},{default:n(()=>[...e[76]||(e[76]=[s("普通订单",-1)])]),_:1}),t(A,{label:"wechat_work"},{default:n(()=>[...e[77]||(e[77]=[s("企业微信对外收款",-1)])]),_:1}),t(A,{label:"fubei"},{default:n(()=>[...e[78]||(e[78]=[s("付呗",-1)])]),_:1}),t(A,{label:"express_cod"},{default:n(()=>[...e[79]||(e[79]=[s("快递代收",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o(p).createType==="wechat_work"?(i(),_(oe,{key:0,type:"info",closable:!1,"show-icon":"",class:"mb-4"},{title:n(()=>[...e[80]||(e[80]=[s("企业微信对外收款",-1)])]),default:n(()=>[e[81]||(e[81]=s(" 创建后将生成订单号,请在企业微信发起收款时将该订单号填写为「商户订单号」,收款成功后系统将自动更新订单状态。 ",-1))]),_:1})):b("",!0),o(p).createType==="fubei"?(i(),_(oe,{key:1,type:"info",closable:!1,"show-icon":"",class:"mb-4"},{title:n(()=>[...e[82]||(e[82]=[s("付呗",-1)])]),default:n(()=>[e[83]||(e[83]=s(" 通过付呗收款的支付单,创建后请按实际对账/审核流程在列表中处理。 ",-1))]),_:1})):b("",!0),o(p).createType==="express_cod"?(i(),_(oe,{key:2,type:"info",closable:!1,"show-icon":"",class:"mb-4"},{title:n(()=>[...e[84]||(e[84]=[s("快递代收",-1)])]),default:n(()=>[e[85]||(e[85]=s(" 通过快递代收的支付单,流转与付呗一致;审核通过/确认到账后将更新为已支付。 ",-1))]),_:1})):b("",!0),o(p).createType==="fubei"||o(p).createType==="express_cod"?(i(),_(r,{key:3,label:"支付单审核"},{default:n(()=>[t(Jt,{modelValue:o(p).requirePaymentSlipAudit,"onUpdate:modelValue":e[25]||(e[25]=l=>o(p).requirePaymentSlipAudit=l),"active-text":"申请审核","inactive-text":"不申请"},null,8,["modelValue"]),e[86]||(e[86]=g("div",{class:"text-xs text-gray-500 mt-1"}," 开启后,新订单的支付状态为「待审核」;未开启则为「待支付」。 ",-1))]),_:1})):b("",!0),t(r,{label:"患者",prop:"patient_id"},{default:n(()=>[t(w,{modelValue:o(p).patient_id,"onUpdate:modelValue":e[26]||(e[26]=l=>o(p).patient_id=l),placeholder:"请选择患者",filterable:"",remote:"","remote-method":St,loading:o(Me)},{default:n(()=>[(i(!0),V(Y,null,se(o(Oe),l=>(i(),_(d,{key:l.id,label:`${l.patient_name} (${l.phone})`,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),t(r,{label:"订单类型",prop:"order_type"},{default:n(()=>[t(w,{modelValue:o(p).order_type,"onUpdate:modelValue":e[27]||(e[27]=l=>o(p).order_type=l),placeholder:"请选择"},{default:n(()=>[t(d,{label:"挂号费",value:1}),t(d,{label:"问诊费",value:2}),t(d,{label:"药品费用",value:3}),t(d,{label:"首付费用",value:4}),t(d,{label:"尾款费用",value:5}),t(d,{label:"其他费用",value:6}),t(d,{label:"全部费用",value:7}),t(d,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"订单金额",prop:"amount"},{default:n(()=>[t(je,{modelValue:o(p).amount,"onUpdate:modelValue":e[28]||(e[28]=l=>o(p).amount=l),min:0,step:.01,precision:2,placeholder:"请输入金额"},null,8,["modelValue"])]),_:1}),t(r,{label:"备注",prop:"remark"},{default:n(()=>[t(u,{modelValue:o(p).remark,"onUpdate:modelValue":e[29]||(e[29]=l=>o(p).remark=l),type:"textarea",rows:3,placeholder:"请输入备注(可选)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),t(O,{modelValue:o(H),"onUpdate:modelValue":e[35]||(e[35]=l=>$(H)?H.value=l:null),title:"同步企业微信对外收款",width:"420px"},{footer:n(()=>[t(c,{onClick:e[34]||(e[34]=l=>H.value=!1)},{default:n(()=>[...e[88]||(e[88]=[s("取消",-1)])]),_:1}),t(c,{type:"info",loading:o(Re),onClick:Pt},{default:n(()=>[...e[89]||(e[89]=[s(" 排查同步为0 ",-1)])]),_:1},8,["loading"]),t(c,{type:"primary",loading:o(ce),onClick:Ut},{default:n(()=>[...e[90]||(e[90]=[s(" 开始同步 ",-1)])]),_:1},8,["loading"])]),default:n(()=>[e[91]||(e[91]=g("p",{class:"text-gray-600 mb-4"},"拉取员工在企业微信内直接发起的对外收款记录,自动创建订单(未经过后台创建的收款)",-1)),t(M,{"label-width":"90px"},{default:n(()=>[t(r,{label:"时间范围"},{default:n(()=>[t(Ve,{modelValue:o(K),"onUpdate:modelValue":e[32]||(e[32]=l=>$(K)?K.value=l:null),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",shortcuts:$t},null,8,["modelValue"])]),_:1}),t(r,{label:"收款人userid"},{default:n(()=>[t(u,{modelValue:o(ve),"onUpdate:modelValue":e[33]||(e[33]=l=>$(ve)?ve.value=l:null),placeholder:"可选,如 GaoXingLiang,排查时若返回 try_payee_userids 可逐个尝试",clearable:""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(O,{modelValue:o(B),"onUpdate:modelValue":e[41]||(e[41]=l=>$(B)?B.value=l:null),title:"编辑订单",width:"480px"},{footer:n(()=>[t(c,{onClick:e[40]||(e[40]=l=>B.value=!1)},{default:n(()=>[...e[92]||(e[92]=[s("取消",-1)])]),_:1}),t(c,{type:"primary",loading:o(Ae),onClick:At},{default:n(()=>[...e[93]||(e[93]=[s("保存",-1)])]),_:1},8,["loading"])]),default:n(()=>[o(C)?(i(),_(M,{key:0,ref_key:"editOrderFormRef",ref:Ze,model:o(C),rules:Ct,"label-width":"100px"},{default:n(()=>[t(r,{label:"关联患者",prop:"patient_id"},{default:n(()=>[t(w,{modelValue:o(C).patient_id,"onUpdate:modelValue":e[36]||(e[36]=l=>o(C).patient_id=l),filterable:"",remote:"",placeholder:"搜索患者姓名/手机号,可留空表示待关联","remote-method":Ot,loading:o(Le),clearable:"",class:"w-full"},{default:n(()=>[(i(!0),V(Y,null,se(o(te),l=>(i(),_(d,{key:l.id,label:`${l.patient_name||"-"} (${l.phone||"-"})`,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),t(r,{label:"订单类型",prop:"order_type"},{default:n(()=>[t(w,{modelValue:o(C).order_type,"onUpdate:modelValue":e[37]||(e[37]=l=>o(C).order_type=l),placeholder:"请选择",class:"w-full"},{default:n(()=>[t(d,{label:"挂号费",value:1}),t(d,{label:"问诊费",value:2}),t(d,{label:"药品费用",value:3}),t(d,{label:"首付费用",value:4}),t(d,{label:"尾款费用",value:5}),t(d,{label:"其他费用",value:6}),t(d,{label:"全部费用",value:7}),t(d,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),Ye.value&&qe.value?(i(),_(r,{key:0,label:"支付时间",prop:"payment_time"},{default:n(()=>[t(Ve,{modelValue:o(C).payment_time,"onUpdate:modelValue":e[38]||(e[38]=l=>o(C).payment_time=l),type:"datetime",placeholder:"请选择支付时间",format:"YYYY-MM-DD HH:mm:ss","value-format":"YYYY-MM-DD HH:mm:ss",clearable:!1,class:"w-full"},null,8,["modelValue"])]),_:1})):b("",!0),Ye.value?(i(),_(r,{key:1,label:"创建时间",prop:"create_time"},{default:n(()=>[t(Ve,{modelValue:o(C).create_time,"onUpdate:modelValue":e[39]||(e[39]=l=>o(C).create_time=l),type:"datetime",placeholder:"请选择创建时间",format:"YYYY-MM-DD HH:mm:ss","value-format":"YYYY-MM-DD HH:mm:ss",clearable:!1,class:"w-full"},null,8,["modelValue"])]),_:1})):b("",!0)]),_:1},8,["model"])):b("",!0)]),_:1},8,["modelValue"]),t(O,{modelValue:o(Q),"onUpdate:modelValue":e[45]||(e[45]=l=>$(Q)?Q.value=l:null),title:"拆分订单",width:"620px","destroy-on-close":"",onClosed:e[46]||(e[46]=l=>h.value=null)},{footer:n(()=>[t(c,{onClick:e[44]||(e[44]=l=>Q.value=!1)},{default:n(()=>[...e[102]||(e[102]=[s("取消",-1)])]),_:1}),t(c,{type:"primary",loading:o(ze),disabled:!ge.value,onClick:Yt},{default:n(()=>[...e[103]||(e[103]=[s(" 确定拆分 ",-1)])]),_:1},8,["loading","disabled"])]),default:n(()=>[o(h)?(i(),V(Y,{key:0},[g("p",xa,[e[94]||(e[94]=s(" 原订单号 ",-1)),g("span",Va,f(o(h).order_no),1),e[95]||(e[95]=s(",金额 ",-1)),g("span",wa,"¥"+f(o(h).amount),1),e[96]||(e[96]=s("。每笔子单可分别选择",-1)),e[97]||(e[97]=g("strong",null,"订单类型",-1)),e[98]||(e[98]=s(";子单继承患者、创建人及企微收款信息;",-1)),e[99]||(e[99]=g("strong",null,"已支付",-1)),e[100]||(e[100]=s("子单继承支付方式、支付时间与交易号;原单将软删除;若已关联业务订单,关联会同步到全部子单。 ",-1))]),t(M,{"label-width":"88px",onSubmit:e[43]||(e[43]=pt(()=>{},["prevent"]))},{default:n(()=>[t(r,{label:"拆分管数"},{default:n(()=>[t(je,{modelValue:o(G),"onUpdate:modelValue":e[42]||(e[42]=l=>$(G)?G.value=l:null),min:2,max:20,step:1,"step-strictly":"",onChange:dt},null,8,["modelValue"]),e[101]||(e[101]=g("span",{class:"text-xs text-gray-400 ml-2"},"2~20 笔",-1))]),_:1})]),_:1}),g("div",Ta,[(i(!0),V(Y,null,se(o(X),(l,x)=>(i(),V("div",{key:x,class:"flex items-center gap-2 flex-wrap"},[g("span",Ca,"第 "+f(x+1)+" 笔",1),t(w,{modelValue:o(le)[x],"onUpdate:modelValue":He=>o(le)[x]=He,placeholder:"订单类型",class:"w-[136px] shrink-0"},{default:n(()=>[t(d,{label:"挂号费",value:1}),t(d,{label:"问诊费",value:2}),t(d,{label:"药品费用",value:3}),t(d,{label:"首付费用",value:4}),t(d,{label:"尾款费用",value:5}),t(d,{label:"其他费用",value:6}),t(d,{label:"全部费用",value:7}),t(d,{label:"驼奶费用",value:8})]),_:1},8,["modelValue","onUpdate:modelValue"]),t(je,{modelValue:o(X)[x],"onUpdate:modelValue":He=>o(X)[x]=He,min:.01,step:.01,precision:2,class:"flex-1 min-w-[140px]","controls-position":"right"},null,8,["modelValue","onUpdate:modelValue"])]))),128))]),t(oe,{type:ge.value?"success":"warning",closable:!1,"show-icon":""},{title:n(()=>[s(" 子单合计 ¥"+f(it.value.toFixed(2))+", "+f(ge.value?"与原价一致,可提交":"须与原价完全一致方可拆分"),1)]),_:1},8,["type"])],64)):b("",!0)]),_:1},8,["modelValue"]),t(O,{modelValue:o(ae),"onUpdate:modelValue":e[48]||(e[48]=l=>$(ae)?ae.value=l:null),title:"支付小程序码",width:"400px","close-on-click-modal":!1},{footer:n(()=>[t(c,{onClick:e[47]||(e[47]=l=>ae.value=!1)},{default:n(()=>[...e[106]||(e[106]=[s("关闭",-1)])]),_:1}),o(be)?b("",!0):(i(),_(c,{key:0,type:"primary",onClick:jt},{default:n(()=>[...e[107]||(e[107]=[s(" 重新生成 ",-1)])]),_:1}))]),default:n(()=>[g("div",Sa,[o(be)?(i(),V("div",Da,[t(Zt,{class:"is-loading",size:40},{default:n(()=>[t(o(Dl))]),_:1}),e[104]||(e[104]=g("div",{class:"mt-4 text-gray-500"},"生成中...",-1))])):o(ke)?(i(),V("div",$a,[g("img",{src:o(ke),alt:"小程序二维码",class:"w-64 h-64 border border-gray-200 rounded"},null,8,Ea),g("div",Pa,[g("div",null,"订单号:"+f(o(xe)),1),e[105]||(e[105]=g("div",{class:"mt-2"},"请使用微信扫描二维码完成支付",-1))])])):(i(),V("div",Ua," 生成失败,请重试 "))])]),_:1},8,["modelValue"])])}}}),ja=ea(Ma,[["__scopeId","data-v-afbba537"]]);export{ja as default}; +import{o as _t,M as m,ap as el,bp as tl,q as i,r as V,v as t,D as n,bd as ll,u as o,bb as al,aA as nl,bc as mt,bh as ol,F as Y,G as se,O as _,bi as sl,K as rl,L as s,ac as D,bj as dl,s as g,Y as il,C as $,X as ul,T as f,P as b,bk as ml,bl as pl,bm as fl,bn as yl,c1 as _l,c2 as cl,bE as vl,bu as gl,aB as bl,aw as pt,az as kl,bo as xl,bf as Vl,bq as wl,I as Tl,J as Cl,w as Sl,ba as Dl,aC as Ke,p as re}from"./.pnpm-CyuAWpdG.js";import{_ as $l}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as El}from"./index.vue_vue_type_script_setup_true_lang-CQzUr1BT.js";import{_ as Pl}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{u as Ul}from"./usePaging-CghUEVfD.js";import{h as hl}from"./perm-CHCBwnFR.js";import{o as Ml,a as Ol,b as Al,c as Ll,d as Yl,e as ql,s as ft,f as Rl,g as zl,h as Nl,i as Fl,j as Il,k as Wl,l as jl,m as yt,n as Bl,w as Hl,p as Kl,q as Ql,r as Gl,t as Xl}from"./order-CKT7wPrv.js";import{Y as Jl,o as Zl}from"./tcm-BSADvQNg.js";import{j as v,_ as ea}from"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";const ta={class:"order-list"},la={class:"flex items-center justify-between mb-4"},aa={class:"flex items-center gap-4 text-sm"},na={class:"text-red-500 font-semibold text-lg"},oa={class:"text-gray-400"},sa={class:"mb-3 flex items-center gap-3"},ra={key:0,class:"text-sm text-gray-500"},da={key:0},ia={key:1,class:"text-amber-600"},ua={class:"text-xs text-gray-400"},ma={key:0,class:"text-xs text-gray-400"},pa={class:"text-red-500 font-semibold"},fa={class:"flex justify-end mt-4"},ya={class:"text-red-500 font-semibold"},_a={key:2,class:"text-xs text-gray-500 mb-2"},ca={key:4,class:"flex justify-end mt-3"},va={key:0,class:"text-xs text-gray-500 mb-3"},ga={class:"text-sm text-gray-600 mb-3"},ba={class:"text-red-500 font-semibold"},ka={class:"text-red-500 font-semibold"},xa={class:"text-sm text-gray-600 mb-3"},Va={class:"font-mono"},wa={class:"text-red-500 font-semibold"},Ta={class:"space-y-2 mb-3 max-h-[320px] overflow-y-auto pr-1"},Ca={class:"text-sm text-gray-500 w-14 shrink-0"},Sa={class:"flex flex-col items-center justify-center py-4"},Da={key:0,class:"text-center"},$a={key:1,class:"text-center"},Ea=["src"],Pa={class:"mt-4 text-sm text-gray-600"},Ua={key:2,class:"text-center text-gray-500"},ha=_t({name:"orderList"}),Ma=_t({...ha,setup(Oa){const T=Ke({order_no:"",patient_keyword:"",assistant_id:void 0,order_type:"",status:"",patient_association:"",create_time_start:"",create_time_end:""}),de=m([]),Qe=m(null),Ge=m([]),N=re(()=>Ge.value.map(a=>a.id).filter(a=>a>0)),F=m(!1),we=m(!1),Z=Ke({assistant_id:void 0}),ie=m(""),ue=m({amount:"0.00",count:0}),{pager:I,getLists:E,resetPage:Xe,resetParams:ct}=Ul({fetchFun:Ml,params:T}),vt=a=>{Ge.value=a||[]},gt=()=>{if(!N.value.length){v.msgWarning("请先勾选要指派的支付单");return}Z.assistant_id=void 0,F.value=!0},bt=async()=>{var a;if(Z.assistant_id==null){v.msgWarning("请选择医助");return}we.value=!0;try{await Al({order_ids:[...N.value],assistant_id:Z.assistant_id}),v.msgSuccess("指派成功"),F.value=!1,(a=Qe.value)==null||a.clearSelection(),E(),W()}catch(e){e!=null&&e.msg&&v.msgError(e.msg)}finally{we.value=!1}},Te=()=>{Xe()},kt=a=>{T.patient_association=a||"",Xe()},W=async()=>{try{const a=await Ll();ue.value=(a==null?void 0:a.data)||a||{amount:"0.00",count:0}}catch{ue.value={amount:"0.00",count:0}}},xt=()=>{ie.value="",ct()},me=m(!1),k=m(null),Ce=m(0),Se=m(!1),De=m([]),$e=m(0),j=m(1),pe=m(10),fe=m(!1),ye=m(!1),Ee=m([]),L=m(null),ee=m(""),Pe=async()=>{if(Ce.value){Se.value=!0;try{const a=await Yl({order_id:Ce.value,page_no:j.value,page_size:pe.value});De.value=(a==null?void 0:a.lists)||[],$e.value=(a==null?void 0:a.count)??0}catch{De.value=[],$e.value=0}finally{Se.value=!1}}},Vt=()=>{j.value=1,Pe()},wt=()=>{L.value=null,Je()},Je=async()=>{ye.value=!0;try{const a={};L.value&&L.value.length===2&&(a.start_time=L.value[0],a.end_time=L.value[1]);const e=await ql(Object.keys(a).length?a:void 0);Ee.value=(e==null?void 0:e.list)||[],e!=null&&e.start_time&&(e!=null&&e.end_time)?ee.value=`${e.start_time} ~ ${e.end_time}`:ee.value=""}catch{Ee.value=[],ee.value=""}finally{ye.value=!1}},q=m(!1),_e=m(!1),y=m({order_id:0,order_no:"",amount:0,fubeiPendingAudit:!1,payment_method:"alipay",payType:"supplement",supplement_order_no:""}),R=m(!1),Ue=m(),he=m(!1),Me=m(!1),Oe=m([]),p=Ke({createType:"normal",requirePaymentSlipAudit:!1,patient_id:"",order_type:"",amount:0,remark:""}),Tt={patient_id:[{required:!0,message:"请选择患者",trigger:"change"}],order_type:[{required:!0,message:"请选择订单类型",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"}]},B=m(!1),Ze=m(),Ae=m(!1),Le=m(!1),te=m([]),C=m(null),Ye=re(()=>hl(["order.order/editTime"])),qe=re(()=>{var a;return[2,4].includes(((a=C.value)==null?void 0:a.status)??0)}),Ct={order_type:[{required:!0,message:"请选择订单类型",trigger:"change"}],payment_time:[{validator:(a,e,u)=>{if(qe.value&&!e){u(new Error("请选择支付时间"));return}u()},trigger:"change"}],create_time:[{required:!0,message:"请选择创建时间",trigger:"change"}]},St=async a=>{if(!a){Oe.value=[];return}try{Me.value=!0;const e=await ft({keyword:a,page_no:1,page_size:10});Oe.value=(e==null?void 0:e.lists)||[]}catch(e){console.error("搜索患者失败:",e)}finally{Me.value=!1}},et=()=>{var a;p.createType="normal",p.requirePaymentSlipAudit=!1,p.patient_id="",p.order_type="",p.amount=0,p.remark="",(a=Ue.value)==null||a.clearValidate()},Dt=()=>{et(),R.value=!0},H=m(!1),ce=m(!1),Re=m(!1),ve=m(""),K=m([new Date(Date.now()-7*864e5).toISOString().slice(0,10),new Date().toISOString().slice(0,10)]),$t=[{text:"最近7天",value:()=>{const a=new Date,e=new Date;return e.setTime(e.getTime()-7*864e5),[e,a]}},{text:"最近30天",value:()=>{const a=new Date,e=new Date;return e.setTime(e.getTime()-30*864e5),[e,a]}},{text:"今天",value:()=>{const a=new Date;return[a,a]}}],Et=()=>{K.value=[new Date(Date.now()-7*864e5).toISOString().slice(0,10),new Date().toISOString().slice(0,10)],H.value=!0},Pt=async()=>{var e;const a=K.value;if(!a||a.length!==2){v.msgError("请先选择时间范围");return}try{Re.value=!0;const u=await Rl({begin_time:a[0],end_time:a[1],payee_userid:ve.value||void 0}),r=(u==null?void 0:u.data)||u;let d=`配置:${r.config_ok?"✓":"✗"} | token:${r.access_token} | errcode:${r.api_errcode} | errmsg:${r.api_errmsg||"-"} | 账单数:${r.bill_count}`;(e=r.try_payee_userids)!=null&&e.length&&(d+=`。可尝试收款人: ${r.try_payee_userids.join(", ")}`),r.api_errcode!==0&&r.api_errcode!==-999&&(d+="。提示:需使用「对外收款」应用的Secret(管理后台-应用管理-对外收款-API)"),v.msgSuccess(d),console.log("企业微信同步调试:",r)}catch(u){v.msgError((u==null?void 0:u.message)||"排查失败")}finally{Re.value=!1}},Ut=async()=>{var e;const a=K.value;if(!a||a.length!==2){v.msgError("请选择时间范围");return}try{ce.value=!0;const u=await zl({begin_time:a[0],end_time:a[1]}),r=(u==null?void 0:u.data)||u;H.value=!1,E();const d=`同步完成:新增 ${r.created||0} 笔,更新 ${r.updated||0} 笔,跳过 ${r.skipped||0} 笔`+((e=r.errors)!=null&&e.length?`;错误:${r.errors.join(";")}`:"");v.msgSuccess(d),W()}catch(u){v.msgError((u==null?void 0:u.message)||"同步失败")}finally{ce.value=!1}},ht=async()=>{var a,e;try{if(await((a=Ue.value)==null?void 0:a.validate()),he.value=!0,p.createType==="wechat_work"){const u={patient_id:p.patient_id,order_type:p.order_type,amount:p.amount,remark:p.remark,create_type:"wechat_work"},r=await Nl(u),d=(r==null?void 0:r.order_no)??((e=r==null?void 0:r.data)==null?void 0:e.order_no);R.value=!1,E(),v.msgSuccess(d?`订单创建成功,请在企业微信收款时使用订单号:${d}`:"订单创建成功")}else{const u={patient_id:p.patient_id,order_type:p.order_type,amount:p.amount,remark:p.remark,create_type:p.createType};p.createType==="fubei"?(u.payment_channel="fubei",u.require_payment_slip_audit=p.requirePaymentSlipAudit?1:0):p.createType==="express_cod"?(u.payment_channel="express_cod",u.require_payment_slip_audit=p.requirePaymentSlipAudit?1:0):(u.payment_channel="normal",u.require_payment_slip_audit=0),await Fl(u);const r=(p.createType==="fubei"||p.createType==="express_cod")&&p.requirePaymentSlipAudit?"订单已创建,支付状态为「待审核」":"订单创建成功";v.msgSuccess(r),R.value=!1,E()}}catch(u){console.error("创建订单失败:",u)}finally{he.value=!1}},tt=a=>({1:"挂号费",2:"问诊费",3:"药品费用",4:"首付费用",5:"尾款费用",6:"其他费用",7:"全部费用",8:"驼奶费用"})[a]||"未知",lt=a=>({1:"success",2:"info",3:"warning"})[a]||"info",at=a=>({1:"待支付",2:"已支付",3:"已取消",4:"已退款",5:"待审核"})[a]||"未知",nt=a=>({1:"warning",2:"success",3:"info",4:"danger",5:"warning"})[a]||"info",ot=a=>a?{alipay:"支付宝",wechat:"微信",wechat_work:"企业微信",fubei:"付呗",manual:"手动确认"}[a]||"未知":"-",st=a=>{const e={normal:"普通订单",wechat_work:"企业微信对外收款",fubei:"付呗",express_cod:"快递代收"},u=a==null?void 0:a.create_type;return u==="wechat_work"||u==="fubei"||u==="express_cod"?e[u]:u==="normal"&&(a!=null&&a.payment_method)?ot(a.payment_method):u&&e[u]?e[u]:ot(a==null?void 0:a.payment_method)},rt=a=>{var z;if(a==null||a===""||a==="-")return"";const e=String(a).trim(),u=(z=e.match(/^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}:\d{2}/))==null?void 0:z[0];if(u)return u.replace("T"," ");const r=/^\d{10,13}$/.test(e)?Number(e):0,d=new Date(r?r<1e12?r*1e3:r:e);if(Number.isNaN(d.getTime()))return"";const w=c=>String(c).padStart(2,"0");return`${d.getFullYear()}-${w(d.getMonth()+1)}-${w(d.getDate())} ${w(d.getHours())}:${w(d.getMinutes())}:${w(d.getSeconds())}`},Mt=a=>{C.value={id:a.id,patient_id:a.patient_id||null,order_type:a.order_type,status:Number(a.status),payment_time:[2,4].includes(Number(a.status))?rt(a.payment_time):"",create_time:rt(a.create_time)},te.value=a.patient?[a.patient]:[],B.value=!0},Ot=async a=>{if(!a){te.value=[];return}try{Le.value=!0;const e=await ft({keyword:a,page_no:1,page_size:10});te.value=(e==null?void 0:e.lists)||[]}catch{te.value=[]}finally{Le.value=!1}},At=async()=>{var a;if(C.value)try{await((a=Ze.value)==null?void 0:a.validate()),Ae.value=!0;const e={id:C.value.id,patient_id:C.value.patient_id??0,order_type:C.value.order_type};Ye.value&&(e.create_time=C.value.create_time,qe.value&&(e.payment_time=C.value.payment_time)),await Il(e),v.msgSuccess("保存成功"),B.value=!1,E(),W()}catch(e){e!=null&&e.message&&v.msgError(e.message)}finally{Ae.value=!1}},Q=m(!1),h=m(null),G=m(2),X=m([]),le=m([]),ze=m(!1),dt=()=>{if(!h.value)return;const a=Number(h.value.amount),e=Math.max(2,Math.min(20,Math.floor(Number(G.value)||2)));G.value=e;const u=Math.round(a*100),r=Math.floor(u/e),d=u%e,w=[];for(let J=0;JM{h.value=a,G.value=2,dt(),Q.value=!0},it=re(()=>X.value.reduce((a,e)=>a+Number(e||0),0)),ge=re(()=>{if(!h.value)return!1;const a=Number(h.value.amount);return Math.abs(it.value-a)<1e-4}),Yt=async()=>{if(!(!h.value||!ge.value)){ze.value=!0;try{await Wl({id:h.value.id,amounts:X.value.map(a=>Number(a)),order_types:le.value.map(a=>Number(a))}),v.msgSuccess("拆分成功"),Q.value=!1,E(),W()}catch(a){a!=null&&a.msg&&v.msgError(a.msg)}finally{ze.value=!1}}},qt=async a=>{try{const e=await jl({id:a.id});k.value=e,Ce.value=a.id,j.value=1,me.value=!0,Pe()}catch(e){console.error("获取详情失败:",e)}},Rt=a=>{const e=a.status===5&&(a.payment_method==="fubei"||a.create_type==="express_cod");y.value={order_id:a.id,order_no:a.order_no,amount:a.amount,fubeiPendingAudit:e,payment_method:e?"manual":"alipay",payType:"supplement",supplement_order_no:""},q.value=!0},zt=async()=>{try{if(y.value.fubeiPendingAudit){_e.value=!0,await yt({id:y.value.order_id,payment_method:y.value.payment_method}),v.msgSuccess("已更新为已支付"),q.value=!1,E(),W();return}if(y.value.payType==="supplement"&&!y.value.supplement_order_no){v.msgWarning("请输入支付订单号");return}_e.value=!0;let a={};if(y.value.payType==="normal"?a={id:y.value.order_id,order_no:y.value.order_no,amount:y.value.amount,payment_method:y.value.payment_method}:a={order_no:y.value.supplement_order_no,payment_method:y.value.payment_method,is_supplement:1},y.value.payment_method==="wechat_work")await yt(a),v.msgSuccess("补单成功");else{let e;y.value.payment_method==="alipay"?e=await Bl(a):y.value.payment_method==="wechat"&&(e=await Hl(a)),e&&e.pay_url&&(y.value.payment_method==="alipay"?window.location.href=e.pay_url:y.value.payment_method==="wechat"&&v.msgSuccess("请扫描二维码进行支付"))}q.value=!1,setTimeout(()=>{E()},2e3)}catch(a){console.error("支付失败:",a),v.msgError("支付失败,请重试")}finally{_e.value=!1}},Nt=async a=>{try{await v.confirm("确定要取消该订单吗?"),await Kl({id:a.id}),v.msgSuccess("取消成功"),E()}catch{}},Ft=async a=>{try{await v.confirm("确定要退款该订单吗?"),await Ql({id:a.id}),v.msgSuccess("退款成功"),E()}catch{}},It=async a=>{try{await v.confirm("确定要删除该订单吗?此操作不可恢复"),await Gl({id:a.id}),v.msgSuccess("删除成功"),E()}catch{}},Wt=async a=>{const e=a.is_exempt===1?0:1,u=e===1?"设为豁免":"取消豁免";try{await v.confirm(`确定要${u}该支付单吗?豁免后关联此单的业务订单将跳过定金门槛校验。`),await Xl({id:a.id,is_exempt:e}),v.msgSuccess(`${u}成功`),E()}catch{}},ae=m(!1),be=m(!1),ke=m(""),xe=m(""),ut=async a=>{if(!a.order_no){v.msgWarning("订单号不存在");return}xe.value=a.order_no,ae.value=!0,be.value=!0,ke.value="";try{const e=await Jl({order_no:a.order_no});e!=null&&e.qrcode_url?ke.value=e.qrcode_url:v.msgError("二维码生成失败")}catch(e){v.msgError((e==null?void 0:e.msg)||"生成二维码失败")}finally{be.value=!1}},jt=()=>{xe.value&&ut({order_no:xe.value})},Bt=async()=>{try{const a=await Zl();de.value=Array.isArray(a)?a:[]}catch{de.value=[]}};return el(()=>{Bt(),E(),W()}),(a,e)=>{const u=nl,r=al,d=sl,w=ol,z=Pl,c=rl,J=El,M=ll,Ne=dl,Fe=ul,Ht=il,S=pl,ne=fl,Ie=ml,Kt=$l,U=cl,Qt=_l,Gt=vl,Xt=gl,O=bl,Ve=kl,oe=xl,A=wl,We=Vl,Jt=Tl,je=Cl,Zt=Sl,P=tl("perms"),Be=yl;return i(),V("div",ta,[t(Ne,{class:"!border-none",shadow:"never"},{default:n(()=>[t(M,{class:"ls-form",model:o(T),inline:""},{default:n(()=>[t(r,{class:"w-[280px]",label:"订单号"},{default:n(()=>[t(u,{modelValue:o(T).order_no,"onUpdate:modelValue":e[0]||(e[0]=l=>o(T).order_no=l),placeholder:"请输入订单号",clearable:"",onKeyup:mt(Te,["enter"])},null,8,["modelValue"])]),_:1}),t(r,{class:"w-[280px]",label:"患者信息"},{default:n(()=>[t(u,{modelValue:o(T).patient_keyword,"onUpdate:modelValue":e[1]||(e[1]=l=>o(T).patient_keyword=l),placeholder:"患者姓名/手机号",clearable:"",onKeyup:mt(Te,["enter"])},null,8,["modelValue"])]),_:1}),t(r,{class:"w-[280px]",label:"医助"},{default:n(()=>[t(w,{modelValue:o(T).assistant_id,"onUpdate:modelValue":e[2]||(e[2]=l=>o(T).assistant_id=l),placeholder:"全部医助",clearable:"",filterable:"",class:"w-full"},{default:n(()=>[(i(!0),V(Y,null,se(o(de),l=>(i(),_(d,{key:l.id,label:l.name,value:Number(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(r,{class:"w-[280px]",label:"订单类型"},{default:n(()=>[t(w,{modelValue:o(T).order_type,"onUpdate:modelValue":e[3]||(e[3]=l=>o(T).order_type=l),class:"w-full",placeholder:"全部"},{default:n(()=>[t(d,{label:"全部",value:""}),t(d,{label:"挂号费",value:1}),t(d,{label:"问诊费",value:2}),t(d,{label:"药品费用",value:3}),t(d,{label:"首付费用",value:4}),t(d,{label:"尾款费用",value:5}),t(d,{label:"其他费用",value:6}),t(d,{label:"全部费用",value:7}),t(d,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),t(r,{class:"w-[280px]",label:"订单状态"},{default:n(()=>[t(w,{modelValue:o(T).status,"onUpdate:modelValue":e[4]||(e[4]=l=>o(T).status=l),class:"w-full",placeholder:"全部"},{default:n(()=>[t(d,{label:"全部",value:""}),t(d,{label:"待支付",value:1}),t(d,{label:"已支付",value:2}),t(d,{label:"已取消",value:3}),t(d,{label:"已退款",value:4}),t(d,{label:"待审核",value:5})]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"创建时间"},{default:n(()=>[t(z,{startTime:o(T).create_time_start,"onUpdate:startTime":e[5]||(e[5]=l=>o(T).create_time_start=l),endTime:o(T).create_time_end,"onUpdate:endTime":e[6]||(e[6]=l=>o(T).create_time_end=l)},null,8,["startTime","endTime"])]),_:1}),t(r,null,{default:n(()=>[t(c,{type:"primary",onClick:Te},{default:n(()=>[...e[49]||(e[49]=[s("查询",-1)])]),_:1}),t(c,{onClick:xt},{default:n(()=>[...e[50]||(e[50]=[s("重置",-1)])]),_:1}),D((i(),_(c,{onClick:e[7]||(e[7]=l=>fe.value=!0)},{default:n(()=>[...e[51]||(e[51]=[s(" 操作统计 ",-1)])]),_:1})),[[P,["order.order/lists"]]]),D(t(J,{class:"ml-2.5","fetch-fun":o(Ol),params:o(T),"page-size":o(I).size},null,8,["fetch-fun","params","page-size"]),[[P,["order.order/export"]]]),D((i(),_(c,{type:"success",class:"ml-2.5",onClick:Dt},{default:n(()=>[...e[52]||(e[52]=[s(" + 创建支付单 ",-1)])]),_:1})),[[P,["order.order/create"]]]),D((i(),_(c,{type:"warning",class:"ml-2.5",loading:o(ce),onClick:Et},{default:n(()=>[...e[53]||(e[53]=[s(" 同步企业微信收款 ",-1)])]),_:1},8,["loading"])),[[P,["order.order/alltongbu"]]])]),_:1})]),_:1},8,["model"])]),_:1}),t(Ne,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[g("div",la,[t(Ht,{modelValue:o(ie),"onUpdate:modelValue":e[8]||(e[8]=l=>$(ie)?ie.value=l:null),onTabChange:kt},{default:n(()=>[t(Fe,{label:"全部",name:""}),t(Fe,{label:"待关联",name:"pending"}),t(Fe,{label:"已关联",name:"associated"})]),_:1},8,["modelValue"]),g("div",aa,[e[54]||(e[54]=g("span",{class:"text-gray-500"},"今日收益:",-1)),g("span",na,"¥"+f(o(ue).amount),1),g("span",oa,"("+f(o(ue).count)+" 笔)",1)])])]),_:1}),t(Ne,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[D((i(),V("div",sa,[t(c,{type:"primary",disabled:!N.value.length,onClick:gt},{default:n(()=>[...e[55]||(e[55]=[s(" 将创建人指给医助 ",-1)])]),_:1},8,["disabled"]),N.value.length?(i(),V("span",ra,"已选 "+f(N.value.length)+" 条",1)):b("",!0)])),[[P,["order.order/zhipai"]]]),D((i(),_(Ie,{ref_key:"orderTableRef",ref:Qe,data:o(I).lists,"row-key":"id",size:"large",onSelectionChange:vt},{default:n(()=>[t(S,{type:"selection",width:"48"}),t(S,{label:"订单号",prop:"order_no","min-width":"150"}),t(S,{label:"患者信息","min-width":"150"},{default:n(({row:l})=>{var x;return[l.patient?(i(),V("div",da,f(l.patient.patient_name),1)):(i(),V("div",ia,"待关联")),g("div",ua,f(((x=l.patient)==null?void 0:x.phone)||"-"),1)]}),_:1}),t(S,{label:"创建人","min-width":"120"},{default:n(({row:l})=>{var x;return[g("div",null,f(((x=l.creator)==null?void 0:x.name)||"-"),1),l.payee_userid?(i(),V("div",ma,"收款: "+f(l.payee_userid),1)):b("",!0)]}),_:1}),t(S,{label:"订单类型",width:"100"},{default:n(({row:l})=>[t(ne,{type:lt(l.order_type)},{default:n(()=>[s(f(tt(l.order_type)),1)]),_:2},1032,["type"])]),_:1}),t(S,{label:"金额",width:"100"},{default:n(({row:l})=>[g("span",pa,"¥"+f(l.amount),1)]),_:1}),t(S,{label:"支付方式",width:"120"},{default:n(({row:l})=>[s(f(st(l)),1)]),_:1}),t(S,{label:"订单状态",width:"120"},{default:n(({row:l})=>[t(ne,{type:nt(l.status)},{default:n(()=>[s(f(at(l.status)),1)]),_:2},1032,["type"]),l.is_exempt===1?(i(),_(ne,{key:0,type:"warning",size:"small",class:"ml-1"},{default:n(()=>[...e[56]||(e[56]=[s("豁免",-1)])]),_:1})):b("",!0)]),_:1}),t(S,{label:"支付时间","min-width":"160"},{default:n(({row:l})=>[s(f(l.payment_time||"-"),1)]),_:1}),t(S,{label:"创建时间","min-width":"160"},{default:n(({row:l})=>[s(f(l.create_time),1)]),_:1}),t(S,{label:"操作",width:"340",fixed:"right"},{default:n(({row:l})=>[D((i(),_(c,{type:"primary",link:"",onClick:x=>qt(l)},{default:n(()=>[...e[57]||(e[57]=[s(" 详情 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/detail"]]]),D((i(),_(c,{type:"primary",link:"",onClick:x=>Mt(l)},{default:n(()=>[...e[58]||(e[58]=[s(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/edit"]]]),l.status===1||l.status===2||l.status===5&&(l.payment_method==="fubei"||l.create_type==="express_cod")?D((i(),_(c,{key:0,type:"primary",link:"",onClick:x=>Lt(l)},{default:n(()=>[...e[59]||(e[59]=[s(" 拆分 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/split"]]]):b("",!0),D((i(),_(c,{type:"primary",link:"",onClick:x=>ut(l)},{default:n(()=>[...e[60]||(e[60]=[s(" 小程序码 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/wxQrcode"]]]),l.status===1||l.status===5&&(l.payment_method==="fubei"||l.create_type==="express_cod")?D((i(),_(c,{key:1,type:"success",link:"",onClick:x=>Rt(l)},{default:n(()=>[...e[61]||(e[61]=[s(" 支付 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/pay"]]]):b("",!0),l.status===2?D((i(),_(c,{key:2,type:"warning",link:"",onClick:x=>Ft(l)},{default:n(()=>[...e[62]||(e[62]=[s(" 退款 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/refund"]]]):b("",!0),l.status===1||l.status===5&&(l.payment_method==="fubei"||l.create_type==="express_cod")?D((i(),_(c,{key:3,type:"danger",link:"",onClick:x=>Nt(l)},{default:n(()=>[...e[63]||(e[63]=[s(" 取消 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/cancel"]]]):b("",!0),D((i(),_(c,{type:"danger",link:"",onClick:x=>It(l)},{default:n(()=>[...e[64]||(e[64]=[s(" 删除 ",-1)])]),_:1},8,["onClick"])),[[P,["order.order/delete"]]]),D((i(),_(c,{type:l.is_exempt===1?"warning":"default",link:"",onClick:x=>Wt(l)},{default:n(()=>[s(f(l.is_exempt===1?"取消豁免":"设为豁免"),1)]),_:2},1032,["type","onClick"])),[[P,["order.order/setExempt"]]])]),_:1})]),_:1},8,["data"])),[[Be,o(I).loading]]),g("div",fa,[t(Kt,{modelValue:o(I),"onUpdate:modelValue":e[9]||(e[9]=l=>$(I)?I.value=l:null),onChange:o(E)},null,8,["modelValue","onChange"])])]),_:1}),t(O,{modelValue:o(me),"onUpdate:modelValue":e[12]||(e[12]=l=>$(me)?me.value=l:null),title:"订单详情",width:"820px"},{default:n(()=>[o(k)?(i(),_(Qt,{key:0,column:2,border:""},{default:n(()=>[t(U,{label:"订单号"},{default:n(()=>[s(f(o(k).order_no),1)]),_:1}),t(U,{label:"订单状态"},{default:n(()=>[t(ne,{type:nt(o(k).status)},{default:n(()=>[s(f(at(o(k).status)),1)]),_:1},8,["type"])]),_:1}),t(U,{label:"患者姓名"},{default:n(()=>{var l;return[s(f(((l=o(k).patient)==null?void 0:l.patient_name)||"待关联"),1)]}),_:1}),t(U,{label:"患者电话"},{default:n(()=>{var l;return[s(f(((l=o(k).patient)==null?void 0:l.phone)||"-"),1)]}),_:1}),t(U,{label:"创建人"},{default:n(()=>{var l;return[s(f(((l=o(k).creator)==null?void 0:l.name)||"-"),1)]}),_:1}),o(k).payee_userid?(i(),_(U,{key:0,label:"收款人userid"},{default:n(()=>[s(f(o(k).payee_userid),1)]),_:1})):b("",!0),o(k).payer_external_userid?(i(),_(U,{key:1,label:"付款人external_userid"},{default:n(()=>[s(f(o(k).payer_external_userid),1)]),_:1})):b("",!0),t(U,{label:"订单类型"},{default:n(()=>[t(ne,{type:lt(o(k).order_type)},{default:n(()=>[s(f(tt(o(k).order_type)),1)]),_:1},8,["type"])]),_:1}),t(U,{label:"订单金额"},{default:n(()=>[g("span",ya,"¥"+f(o(k).amount),1)]),_:1}),t(U,{label:"支付方式"},{default:n(()=>[s(f(st(o(k))),1)]),_:1}),t(U,{label:"支付时间"},{default:n(()=>[s(f(o(k).payment_time||"-"),1)]),_:1}),t(U,{label:"创建时间"},{default:n(()=>[s(f(o(k).create_time),1)]),_:1}),t(U,{label:"备注",span:2},{default:n(()=>[s(f(o(k).remark||"无"),1)]),_:1})]),_:1})):b("",!0),o(k)?(i(),_(Gt,{key:1,"content-position":"left"},{default:n(()=>[...e[65]||(e[65]=[s("操作记录",-1)])]),_:1})):b("",!0),o(k)?(i(),V("p",_a,"谁在什么时间对本单做了哪些操作(数据来自服务器记录)。")):b("",!0),o(k)?D((i(),_(Ie,{key:3,data:o(De),size:"small","max-height":"320"},{default:n(()=>[t(S,{label:"操作",prop:"action_label","min-width":"120","show-overflow-tooltip":""}),t(S,{label:"操作人",prop:"admin_name","min-width":"100"}),t(S,{label:"操作时间",prop:"create_time_text","min-width":"160"}),t(S,{label:"说明",prop:"summary","min-width":"140","show-overflow-tooltip":""})]),_:1},8,["data"])),[[Be,o(Se)]]):b("",!0),o(k)?(i(),V("div",ca,[t(Xt,{"current-page":o(j),"onUpdate:currentPage":e[10]||(e[10]=l=>$(j)?j.value=l:null),"page-size":o(pe),"onUpdate:pageSize":e[11]||(e[11]=l=>$(pe)?pe.value=l:null),total:o($e),"page-sizes":[10,20,50],layout:"total, sizes, prev, pager, next",small:"",onSizeChange:Vt,onCurrentChange:Pe},null,8,["current-page","page-size","total"])])):b("",!0)]),_:1},8,["modelValue"]),t(O,{modelValue:o(fe),"onUpdate:modelValue":e[15]||(e[15]=l=>$(fe)?fe.value=l:null),title:"支付单操作统计",width:"520px",onOpened:wt},{default:n(()=>[o(ee)?(i(),V("p",va,"统计范围:"+f(o(ee)),1)):b("",!0),t(M,{class:"mb-3",inline:!0,onSubmit:e[14]||(e[14]=pt(()=>{},["prevent"]))},{default:n(()=>[t(r,{label:"时间范围"},{default:n(()=>[t(Ve,{modelValue:o(L),"onUpdate:modelValue":e[13]||(e[13]=l=>$(L)?L.value=l:null),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始","end-placeholder":"结束",class:"!w-[260px]"},null,8,["modelValue"])]),_:1}),t(r,null,{default:n(()=>[t(c,{type:"primary",loading:o(ye),onClick:Je},{default:n(()=>[...e[66]||(e[66]=[s("查询",-1)])]),_:1},8,["loading"])]),_:1})]),_:1}),D((i(),_(Ie,{data:o(Ee),size:"small","max-height":"400"},{default:n(()=>[t(S,{label:"操作人",prop:"admin_name","min-width":"120","show-overflow-tooltip":""}),t(S,{label:"操作次数",prop:"cnt",width:"100",align:"right"})]),_:1},8,["data"])),[[Be,o(ye)]])]),_:1},8,["modelValue"]),t(O,{modelValue:o(F),"onUpdate:modelValue":e[18]||(e[18]=l=>$(F)?F.value=l:null),title:"变更创建人(医助)",width:"440px","destroy-on-close":""},{footer:n(()=>[t(c,{onClick:e[17]||(e[17]=l=>F.value=!1)},{default:n(()=>[...e[67]||(e[67]=[s("取消",-1)])]),_:1}),t(c,{type:"primary",loading:o(we),onClick:bt},{default:n(()=>[...e[68]||(e[68]=[s("确定",-1)])]),_:1},8,["loading"])]),default:n(()=>[g("p",ga," 将 "+f(N.value.length)+" 条支付单的「创建人」改为所选医助,并写入各单操作日志。 ",1),t(w,{modelValue:o(Z).assistant_id,"onUpdate:modelValue":e[16]||(e[16]=l=>o(Z).assistant_id=l),filterable:"",placeholder:"选择医助",class:"w-full"},{default:n(()=>[(i(!0),V(Y,null,se(o(de),l=>(i(),_(d,{key:l.id,label:l.dept_names?`${l.name}(${l.dept_names})`:l.name,value:Number(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"]),t(O,{modelValue:o(q),"onUpdate:modelValue":e[23]||(e[23]=l=>$(q)?q.value=l:null),title:"订单支付",width:"500px"},{footer:n(()=>[t(c,{onClick:e[22]||(e[22]=l=>q.value=!1)},{default:n(()=>[...e[74]||(e[74]=[s("取消",-1)])]),_:1}),t(c,{type:"primary",onClick:zt,loading:o(_e)},{default:n(()=>[...e[75]||(e[75]=[s("确认支付",-1)])]),_:1},8,["loading"])]),default:n(()=>[t(M,{model:o(y),"label-width":"100px"},{default:n(()=>[o(y).fubeiPendingAudit?(i(),_(oe,{key:0,type:"warning",closable:!1,class:"mb-3",title:"该单为待审核(付呗/快递代收),请选择实际到账方式后确认「已支付」"})):b("",!0),o(y).fubeiPendingAudit?b("",!0):(i(),_(r,{key:1,label:"支付类型",required:""},{default:n(()=>[t(We,{modelValue:o(y).payType,"onUpdate:modelValue":e[19]||(e[19]=l=>o(y).payType=l)},{default:n(()=>[t(A,{label:"supplement"},{default:n(()=>[...e[69]||(e[69]=[s("补单支付",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})),o(y).payType==="normal"?(i(),V(Y,{key:2},[t(r,{label:"订单号"},{default:n(()=>[g("span",null,f(o(y).order_no),1)]),_:1}),t(r,{label:"订单金额"},{default:n(()=>[g("span",ba,"¥"+f(o(y).amount),1)]),_:1})],64)):b("",!0),!o(y).fubeiPendingAudit&&o(y).payType==="supplement"?(i(),_(r,{key:3,label:"支付订单号",required:""},{default:n(()=>[t(u,{modelValue:o(y).supplement_order_no,"onUpdate:modelValue":e[20]||(e[20]=l=>o(y).supplement_order_no=l),placeholder:"请输入支付订单号"},null,8,["modelValue"])]),_:1})):b("",!0),o(y).fubeiPendingAudit?(i(),V(Y,{key:4},[t(r,{label:"订单号"},{default:n(()=>[g("span",null,f(o(y).order_no),1)]),_:1}),t(r,{label:"金额"},{default:n(()=>[g("span",ka,"¥"+f(o(y).amount),1)]),_:1})],64)):b("",!0),t(r,{label:"支付方式",required:""},{default:n(()=>[t(We,{modelValue:o(y).payment_method,"onUpdate:modelValue":e[21]||(e[21]=l=>o(y).payment_method=l)},{default:n(()=>[o(y).fubeiPendingAudit?(i(),_(A,{key:0,label:"manual"},{default:n(()=>[...e[70]||(e[70]=[s("手动确认到账",-1)])]),_:1})):b("",!0),t(A,{label:"alipay"},{default:n(()=>[...e[71]||(e[71]=[s("支付宝",-1)])]),_:1}),t(A,{label:"wechat"},{default:n(()=>[...e[72]||(e[72]=[s("微信",-1)])]),_:1}),t(A,{label:"wechat_work"},{default:n(()=>[...e[73]||(e[73]=[s("企业微信",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),t(O,{modelValue:o(R),"onUpdate:modelValue":e[31]||(e[31]=l=>$(R)?R.value=l:null),title:"创建订单",width:"600px",onClose:et},{footer:n(()=>[t(c,{onClick:e[30]||(e[30]=l=>R.value=!1)},{default:n(()=>[...e[87]||(e[87]=[s("取消",-1)])]),_:1}),t(c,{type:"primary",onClick:ht,loading:o(he)},{default:n(()=>[s(f(o(p).createType==="wechat_work"?"创建并获取收款订单号":"创建订单"),1)]),_:1},8,["loading"])]),default:n(()=>[t(M,{ref_key:"createFormRef",ref:Ue,model:o(p),rules:Tt,"label-width":"100px"},{default:n(()=>[t(r,{label:"创建方式"},{default:n(()=>[t(We,{modelValue:o(p).createType,"onUpdate:modelValue":e[24]||(e[24]=l=>o(p).createType=l)},{default:n(()=>[t(A,{label:"normal"},{default:n(()=>[...e[76]||(e[76]=[s("普通订单",-1)])]),_:1}),t(A,{label:"wechat_work"},{default:n(()=>[...e[77]||(e[77]=[s("企业微信对外收款",-1)])]),_:1}),t(A,{label:"fubei"},{default:n(()=>[...e[78]||(e[78]=[s("付呗",-1)])]),_:1}),t(A,{label:"express_cod"},{default:n(()=>[...e[79]||(e[79]=[s("快递代收",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o(p).createType==="wechat_work"?(i(),_(oe,{key:0,type:"info",closable:!1,"show-icon":"",class:"mb-4"},{title:n(()=>[...e[80]||(e[80]=[s("企业微信对外收款",-1)])]),default:n(()=>[e[81]||(e[81]=s(" 创建后将生成订单号,请在企业微信发起收款时将该订单号填写为「商户订单号」,收款成功后系统将自动更新订单状态。 ",-1))]),_:1})):b("",!0),o(p).createType==="fubei"?(i(),_(oe,{key:1,type:"info",closable:!1,"show-icon":"",class:"mb-4"},{title:n(()=>[...e[82]||(e[82]=[s("付呗",-1)])]),default:n(()=>[e[83]||(e[83]=s(" 通过付呗收款的支付单,创建后请按实际对账/审核流程在列表中处理。 ",-1))]),_:1})):b("",!0),o(p).createType==="express_cod"?(i(),_(oe,{key:2,type:"info",closable:!1,"show-icon":"",class:"mb-4"},{title:n(()=>[...e[84]||(e[84]=[s("快递代收",-1)])]),default:n(()=>[e[85]||(e[85]=s(" 通过快递代收的支付单,流转与付呗一致;审核通过/确认到账后将更新为已支付。 ",-1))]),_:1})):b("",!0),o(p).createType==="fubei"||o(p).createType==="express_cod"?(i(),_(r,{key:3,label:"支付单审核"},{default:n(()=>[t(Jt,{modelValue:o(p).requirePaymentSlipAudit,"onUpdate:modelValue":e[25]||(e[25]=l=>o(p).requirePaymentSlipAudit=l),"active-text":"申请审核","inactive-text":"不申请"},null,8,["modelValue"]),e[86]||(e[86]=g("div",{class:"text-xs text-gray-500 mt-1"}," 开启后,新订单的支付状态为「待审核」;未开启则为「待支付」。 ",-1))]),_:1})):b("",!0),t(r,{label:"患者",prop:"patient_id"},{default:n(()=>[t(w,{modelValue:o(p).patient_id,"onUpdate:modelValue":e[26]||(e[26]=l=>o(p).patient_id=l),placeholder:"请选择患者",filterable:"",remote:"","remote-method":St,loading:o(Me)},{default:n(()=>[(i(!0),V(Y,null,se(o(Oe),l=>(i(),_(d,{key:l.id,label:`${l.patient_name} (${l.phone})`,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),t(r,{label:"订单类型",prop:"order_type"},{default:n(()=>[t(w,{modelValue:o(p).order_type,"onUpdate:modelValue":e[27]||(e[27]=l=>o(p).order_type=l),placeholder:"请选择"},{default:n(()=>[t(d,{label:"挂号费",value:1}),t(d,{label:"问诊费",value:2}),t(d,{label:"药品费用",value:3}),t(d,{label:"首付费用",value:4}),t(d,{label:"尾款费用",value:5}),t(d,{label:"其他费用",value:6}),t(d,{label:"全部费用",value:7}),t(d,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"订单金额",prop:"amount"},{default:n(()=>[t(je,{modelValue:o(p).amount,"onUpdate:modelValue":e[28]||(e[28]=l=>o(p).amount=l),min:0,step:.01,precision:2,placeholder:"请输入金额"},null,8,["modelValue"])]),_:1}),t(r,{label:"备注",prop:"remark"},{default:n(()=>[t(u,{modelValue:o(p).remark,"onUpdate:modelValue":e[29]||(e[29]=l=>o(p).remark=l),type:"textarea",rows:3,placeholder:"请输入备注(可选)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),t(O,{modelValue:o(H),"onUpdate:modelValue":e[35]||(e[35]=l=>$(H)?H.value=l:null),title:"同步企业微信对外收款",width:"420px"},{footer:n(()=>[t(c,{onClick:e[34]||(e[34]=l=>H.value=!1)},{default:n(()=>[...e[88]||(e[88]=[s("取消",-1)])]),_:1}),t(c,{type:"info",loading:o(Re),onClick:Pt},{default:n(()=>[...e[89]||(e[89]=[s(" 排查同步为0 ",-1)])]),_:1},8,["loading"]),t(c,{type:"primary",loading:o(ce),onClick:Ut},{default:n(()=>[...e[90]||(e[90]=[s(" 开始同步 ",-1)])]),_:1},8,["loading"])]),default:n(()=>[e[91]||(e[91]=g("p",{class:"text-gray-600 mb-4"},"拉取员工在企业微信内直接发起的对外收款记录,自动创建订单(未经过后台创建的收款)",-1)),t(M,{"label-width":"90px"},{default:n(()=>[t(r,{label:"时间范围"},{default:n(()=>[t(Ve,{modelValue:o(K),"onUpdate:modelValue":e[32]||(e[32]=l=>$(K)?K.value=l:null),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",shortcuts:$t},null,8,["modelValue"])]),_:1}),t(r,{label:"收款人userid"},{default:n(()=>[t(u,{modelValue:o(ve),"onUpdate:modelValue":e[33]||(e[33]=l=>$(ve)?ve.value=l:null),placeholder:"可选,如 GaoXingLiang,排查时若返回 try_payee_userids 可逐个尝试",clearable:""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(O,{modelValue:o(B),"onUpdate:modelValue":e[41]||(e[41]=l=>$(B)?B.value=l:null),title:"编辑订单",width:"480px"},{footer:n(()=>[t(c,{onClick:e[40]||(e[40]=l=>B.value=!1)},{default:n(()=>[...e[92]||(e[92]=[s("取消",-1)])]),_:1}),t(c,{type:"primary",loading:o(Ae),onClick:At},{default:n(()=>[...e[93]||(e[93]=[s("保存",-1)])]),_:1},8,["loading"])]),default:n(()=>[o(C)?(i(),_(M,{key:0,ref_key:"editOrderFormRef",ref:Ze,model:o(C),rules:Ct,"label-width":"100px"},{default:n(()=>[t(r,{label:"关联患者",prop:"patient_id"},{default:n(()=>[t(w,{modelValue:o(C).patient_id,"onUpdate:modelValue":e[36]||(e[36]=l=>o(C).patient_id=l),filterable:"",remote:"",placeholder:"搜索患者姓名/手机号,可留空表示待关联","remote-method":Ot,loading:o(Le),clearable:"",class:"w-full"},{default:n(()=>[(i(!0),V(Y,null,se(o(te),l=>(i(),_(d,{key:l.id,label:`${l.patient_name||"-"} (${l.phone||"-"})`,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1}),t(r,{label:"订单类型",prop:"order_type"},{default:n(()=>[t(w,{modelValue:o(C).order_type,"onUpdate:modelValue":e[37]||(e[37]=l=>o(C).order_type=l),placeholder:"请选择",class:"w-full"},{default:n(()=>[t(d,{label:"挂号费",value:1}),t(d,{label:"问诊费",value:2}),t(d,{label:"药品费用",value:3}),t(d,{label:"首付费用",value:4}),t(d,{label:"尾款费用",value:5}),t(d,{label:"其他费用",value:6}),t(d,{label:"全部费用",value:7}),t(d,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),Ye.value&&qe.value?(i(),_(r,{key:0,label:"支付时间",prop:"payment_time"},{default:n(()=>[t(Ve,{modelValue:o(C).payment_time,"onUpdate:modelValue":e[38]||(e[38]=l=>o(C).payment_time=l),type:"datetime",placeholder:"请选择支付时间",format:"YYYY-MM-DD HH:mm:ss","value-format":"YYYY-MM-DD HH:mm:ss",clearable:!1,class:"w-full"},null,8,["modelValue"])]),_:1})):b("",!0),Ye.value?(i(),_(r,{key:1,label:"创建时间",prop:"create_time"},{default:n(()=>[t(Ve,{modelValue:o(C).create_time,"onUpdate:modelValue":e[39]||(e[39]=l=>o(C).create_time=l),type:"datetime",placeholder:"请选择创建时间",format:"YYYY-MM-DD HH:mm:ss","value-format":"YYYY-MM-DD HH:mm:ss",clearable:!1,class:"w-full"},null,8,["modelValue"])]),_:1})):b("",!0)]),_:1},8,["model"])):b("",!0)]),_:1},8,["modelValue"]),t(O,{modelValue:o(Q),"onUpdate:modelValue":e[45]||(e[45]=l=>$(Q)?Q.value=l:null),title:"拆分订单",width:"620px","destroy-on-close":"",onClosed:e[46]||(e[46]=l=>h.value=null)},{footer:n(()=>[t(c,{onClick:e[44]||(e[44]=l=>Q.value=!1)},{default:n(()=>[...e[102]||(e[102]=[s("取消",-1)])]),_:1}),t(c,{type:"primary",loading:o(ze),disabled:!ge.value,onClick:Yt},{default:n(()=>[...e[103]||(e[103]=[s(" 确定拆分 ",-1)])]),_:1},8,["loading","disabled"])]),default:n(()=>[o(h)?(i(),V(Y,{key:0},[g("p",xa,[e[94]||(e[94]=s(" 原订单号 ",-1)),g("span",Va,f(o(h).order_no),1),e[95]||(e[95]=s(",金额 ",-1)),g("span",wa,"¥"+f(o(h).amount),1),e[96]||(e[96]=s("。每笔子单可分别选择",-1)),e[97]||(e[97]=g("strong",null,"订单类型",-1)),e[98]||(e[98]=s(";子单继承患者、创建人及企微收款信息;",-1)),e[99]||(e[99]=g("strong",null,"已支付",-1)),e[100]||(e[100]=s("子单继承支付方式、支付时间与交易号;原单将软删除;若已关联业务订单,关联会同步到全部子单。 ",-1))]),t(M,{"label-width":"88px",onSubmit:e[43]||(e[43]=pt(()=>{},["prevent"]))},{default:n(()=>[t(r,{label:"拆分管数"},{default:n(()=>[t(je,{modelValue:o(G),"onUpdate:modelValue":e[42]||(e[42]=l=>$(G)?G.value=l:null),min:2,max:20,step:1,"step-strictly":"",onChange:dt},null,8,["modelValue"]),e[101]||(e[101]=g("span",{class:"text-xs text-gray-400 ml-2"},"2~20 笔",-1))]),_:1})]),_:1}),g("div",Ta,[(i(!0),V(Y,null,se(o(X),(l,x)=>(i(),V("div",{key:x,class:"flex items-center gap-2 flex-wrap"},[g("span",Ca,"第 "+f(x+1)+" 笔",1),t(w,{modelValue:o(le)[x],"onUpdate:modelValue":He=>o(le)[x]=He,placeholder:"订单类型",class:"w-[136px] shrink-0"},{default:n(()=>[t(d,{label:"挂号费",value:1}),t(d,{label:"问诊费",value:2}),t(d,{label:"药品费用",value:3}),t(d,{label:"首付费用",value:4}),t(d,{label:"尾款费用",value:5}),t(d,{label:"其他费用",value:6}),t(d,{label:"全部费用",value:7}),t(d,{label:"驼奶费用",value:8})]),_:1},8,["modelValue","onUpdate:modelValue"]),t(je,{modelValue:o(X)[x],"onUpdate:modelValue":He=>o(X)[x]=He,min:.01,step:.01,precision:2,class:"flex-1 min-w-[140px]","controls-position":"right"},null,8,["modelValue","onUpdate:modelValue"])]))),128))]),t(oe,{type:ge.value?"success":"warning",closable:!1,"show-icon":""},{title:n(()=>[s(" 子单合计 ¥"+f(it.value.toFixed(2))+", "+f(ge.value?"与原价一致,可提交":"须与原价完全一致方可拆分"),1)]),_:1},8,["type"])],64)):b("",!0)]),_:1},8,["modelValue"]),t(O,{modelValue:o(ae),"onUpdate:modelValue":e[48]||(e[48]=l=>$(ae)?ae.value=l:null),title:"支付小程序码",width:"400px","close-on-click-modal":!1},{footer:n(()=>[t(c,{onClick:e[47]||(e[47]=l=>ae.value=!1)},{default:n(()=>[...e[106]||(e[106]=[s("关闭",-1)])]),_:1}),o(be)?b("",!0):(i(),_(c,{key:0,type:"primary",onClick:jt},{default:n(()=>[...e[107]||(e[107]=[s(" 重新生成 ",-1)])]),_:1}))]),default:n(()=>[g("div",Sa,[o(be)?(i(),V("div",Da,[t(Zt,{class:"is-loading",size:40},{default:n(()=>[t(o(Dl))]),_:1}),e[104]||(e[104]=g("div",{class:"mt-4 text-gray-500"},"生成中...",-1))])):o(ke)?(i(),V("div",$a,[g("img",{src:o(ke),alt:"小程序二维码",class:"w-64 h-64 border border-gray-200 rounded"},null,8,Ea),g("div",Pa,[g("div",null,"订单号:"+f(o(xe)),1),e[105]||(e[105]=g("div",{class:"mt-2"},"请使用微信扫描二维码完成支付",-1))])])):(i(),V("div",Ua," 生成失败,请重试 "))])]),_:1},8,["modelValue"])])}}}),ja=ea(Ma,[["__scopeId","data-v-afbba537"]]);export{ja as default}; diff --git a/server/public/admin/assets/index-BdHx4-gS.js b/server/public/admin/assets/index-CZ0Lrj_J.js similarity index 93% rename from server/public/admin/assets/index-BdHx4-gS.js rename to server/public/admin/assets/index-CZ0Lrj_J.js index 54c601ccd..6343bf014 100644 --- a/server/public/admin/assets/index-BdHx4-gS.js +++ b/server/public/admin/assets/index-CZ0Lrj_J.js @@ -1 +1 @@ -import{o as K,ap as G,n as E,bp as H,q as p,r as J,v as t,D as a,bd as Q,u as d,bb as W,aA as X,bc as Y,bh as Z,bi as ee,K as te,L as s,bj as ae,s as L,ac as b,O as c,bk as le,bl as ne,T as N,bm as oe,P,bn as se,a8 as x,M as V,aC as de}from"./.pnpm-CyuAWpdG.js";import{c as ie,j as re}from"./index-Dxvz9lb1.js";import{e as pe,f as me}from"./department-DToZNvdH.js";import{_ as ue}from"./edit.vue_vue_type_script_setup_true_lang-k1s5vx9i.js";import"./index-BnfLT5cB.js";import"./useDictOptions-ByJNOzqa.js";const fe={class:"department"},ce=K({name:"department"}),ge=K({...ce,setup(_e){const D=x(),_=x(),R=x();let k=!1;const w=V(!1),C=V([]),m=de({status:"",name:""}),v=V(!1),u=async()=>{w.value=!0,C.value=await pe(m),w.value=!1},S=()=>{var l;(l=R.value)==null||l.resetFields(),u()},$=async l=>{var e,o;v.value=!0,await E(),l&&((e=_.value)==null||e.setFormData({pid:l})),(o=_.value)==null||o.open("add")},j=async l=>{var e,o;v.value=!0,await E(),(e=_.value)==null||e.open("edit"),(o=_.value)==null||o.getDetail(l)},q=async l=>{await re.confirm("确定要删除?"),await me({id:l}),u()},h=()=>{k=!k,T(C.value,k)},T=(l,e=!0)=>{var o;for(const i in l)(o=D.value)==null||o.toggleRowExpansion(l[i],e),l[i].children&&T(l[i].children,e)};return G(async()=>{await u(),E(()=>{h()})}),(l,e)=>{const o=X,i=W,g=ee,A=Z,r=te,I=Q,B=ae,M=ie,f=ne,O=oe,U=le,y=H("perms"),z=se;return p(),J("div",fe,[t(B,{class:"!border-none",shadow:"never"},{default:a(()=>[t(I,{ref_key:"formRef",ref:R,class:"mb-[-16px]",model:d(m),inline:!0},{default:a(()=>[t(i,{class:"w-[280px]",label:"部门名称",prop:"name"},{default:a(()=>[t(o,{modelValue:d(m).name,"onUpdate:modelValue":e[0]||(e[0]=n=>d(m).name=n),placeholder:"输入部门名称",clearable:"",onKeyup:Y(u,["enter"])},null,8,["modelValue"])]),_:1}),t(i,{class:"w-[280px]",label:"部门状态",prop:"status"},{default:a(()=>[t(A,{modelValue:d(m).status,"onUpdate:modelValue":e[1]||(e[1]=n=>d(m).status=n)},{default:a(()=>[t(g,{label:"全部",value:""}),t(g,{label:"正常",value:"1"}),t(g,{label:"停用",value:"0"})]),_:1},8,["modelValue"])]),_:1}),t(i,null,{default:a(()=>[t(r,{type:"primary",onClick:u},{default:a(()=>[...e[4]||(e[4]=[s("查询",-1)])]),_:1}),t(r,{onClick:S},{default:a(()=>[...e[5]||(e[5]=[s("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),t(B,{class:"!border-none mt-4",shadow:"never"},{default:a(()=>[L("div",null,[b((p(),c(r,{type:"primary",onClick:e[2]||(e[2]=n=>$())},{icon:a(()=>[t(M,{name:"el-icon-Plus"})]),default:a(()=>[e[6]||(e[6]=s(" 新增 ",-1))]),_:1})),[[y,["dept.dept/add"]]]),t(r,{onClick:h},{default:a(()=>[...e[7]||(e[7]=[s(" 展开/折叠 ",-1)])]),_:1})]),b((p(),c(U,{ref_key:"tableRef",ref:D,class:"mt-4",size:"large",data:d(C),"row-key":"id","tree-props":{children:"children",hasChildren:"hasChildren"}},{default:a(()=>[t(f,{label:"部门名称",prop:"name","min-width":"150","show-overflow-tooltip":""}),t(f,{label:"人数","min-width":"100",align:"center","show-overflow-tooltip":""},{header:a(()=>[...e[8]||(e[8]=[L("span",{title:"含本部门及所有下级部门的管理员数"},"人数(含下级)",-1)])]),default:a(({row:n})=>[s(N(n.admin_count??0),1)]),_:1}),t(f,{label:"部门状态",prop:"status","min-width":"100"},{default:a(({row:n})=>[t(O,{class:"ml-2",type:n.status?"primary":"danger"},{default:a(()=>[s(N(n.status_desc),1)]),_:2},1032,["type"])]),_:1}),t(f,{label:"排序",prop:"sort","min-width":"100"}),t(f,{label:"更新时间",prop:"update_time","min-width":"180"}),t(f,{label:"操作",width:"160",fixed:"right"},{default:a(({row:n})=>[b((p(),c(r,{type:"primary",link:"",onClick:F=>$(n.id)},{default:a(()=>[...e[9]||(e[9]=[s(" 新增 ",-1)])]),_:1},8,["onClick"])),[[y,["dept.dept/add"]]]),b((p(),c(r,{type:"primary",link:"",onClick:F=>j(n)},{default:a(()=>[...e[10]||(e[10]=[s(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[y,["dept.dept/edit"]]]),n.pid!==0?b((p(),c(r,{key:0,type:"danger",link:"",onClick:F=>q(n.id)},{default:a(()=>[...e[11]||(e[11]=[s(" 删除 ",-1)])]),_:1},8,["onClick"])),[[y,["dept.dept/delete"]]]):P("",!0)]),_:1})]),_:1},8,["data"])),[[z,d(w)]])]),_:1}),d(v)?(p(),c(ue,{key:0,ref_key:"editRef",ref:_,onSuccess:u,onClose:e[3]||(e[3]=n=>v.value=!1)},null,512)):P("",!0)])}}});export{ge as default}; +import{o as K,ap as G,n as E,bp as H,q as p,r as J,v as t,D as a,bd as Q,u as d,bb as W,aA as X,bc as Y,bh as Z,bi as ee,K as te,L as s,bj as ae,s as L,ac as b,O as c,bk as le,bl as ne,T as N,bm as oe,P,bn as se,a8 as x,M as V,aC as de}from"./.pnpm-CyuAWpdG.js";import{c as ie,j as re}from"./index-Bkarz3gO.js";import{e as pe,f as me}from"./department-BeBGhsmA.js";import{_ as ue}from"./edit.vue_vue_type_script_setup_true_lang-DVUU54qM.js";import"./index-CS5Wg0xx.js";import"./useDictOptions-dnxxXBSU.js";const fe={class:"department"},ce=K({name:"department"}),ge=K({...ce,setup(_e){const D=x(),_=x(),R=x();let k=!1;const w=V(!1),C=V([]),m=de({status:"",name:""}),v=V(!1),u=async()=>{w.value=!0,C.value=await pe(m),w.value=!1},S=()=>{var l;(l=R.value)==null||l.resetFields(),u()},$=async l=>{var e,o;v.value=!0,await E(),l&&((e=_.value)==null||e.setFormData({pid:l})),(o=_.value)==null||o.open("add")},j=async l=>{var e,o;v.value=!0,await E(),(e=_.value)==null||e.open("edit"),(o=_.value)==null||o.getDetail(l)},q=async l=>{await re.confirm("确定要删除?"),await me({id:l}),u()},h=()=>{k=!k,T(C.value,k)},T=(l,e=!0)=>{var o;for(const i in l)(o=D.value)==null||o.toggleRowExpansion(l[i],e),l[i].children&&T(l[i].children,e)};return G(async()=>{await u(),E(()=>{h()})}),(l,e)=>{const o=X,i=W,g=ee,A=Z,r=te,I=Q,B=ae,M=ie,f=ne,O=oe,U=le,y=H("perms"),z=se;return p(),J("div",fe,[t(B,{class:"!border-none",shadow:"never"},{default:a(()=>[t(I,{ref_key:"formRef",ref:R,class:"mb-[-16px]",model:d(m),inline:!0},{default:a(()=>[t(i,{class:"w-[280px]",label:"部门名称",prop:"name"},{default:a(()=>[t(o,{modelValue:d(m).name,"onUpdate:modelValue":e[0]||(e[0]=n=>d(m).name=n),placeholder:"输入部门名称",clearable:"",onKeyup:Y(u,["enter"])},null,8,["modelValue"])]),_:1}),t(i,{class:"w-[280px]",label:"部门状态",prop:"status"},{default:a(()=>[t(A,{modelValue:d(m).status,"onUpdate:modelValue":e[1]||(e[1]=n=>d(m).status=n)},{default:a(()=>[t(g,{label:"全部",value:""}),t(g,{label:"正常",value:"1"}),t(g,{label:"停用",value:"0"})]),_:1},8,["modelValue"])]),_:1}),t(i,null,{default:a(()=>[t(r,{type:"primary",onClick:u},{default:a(()=>[...e[4]||(e[4]=[s("查询",-1)])]),_:1}),t(r,{onClick:S},{default:a(()=>[...e[5]||(e[5]=[s("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),t(B,{class:"!border-none mt-4",shadow:"never"},{default:a(()=>[L("div",null,[b((p(),c(r,{type:"primary",onClick:e[2]||(e[2]=n=>$())},{icon:a(()=>[t(M,{name:"el-icon-Plus"})]),default:a(()=>[e[6]||(e[6]=s(" 新增 ",-1))]),_:1})),[[y,["dept.dept/add"]]]),t(r,{onClick:h},{default:a(()=>[...e[7]||(e[7]=[s(" 展开/折叠 ",-1)])]),_:1})]),b((p(),c(U,{ref_key:"tableRef",ref:D,class:"mt-4",size:"large",data:d(C),"row-key":"id","tree-props":{children:"children",hasChildren:"hasChildren"}},{default:a(()=>[t(f,{label:"部门名称",prop:"name","min-width":"150","show-overflow-tooltip":""}),t(f,{label:"人数","min-width":"100",align:"center","show-overflow-tooltip":""},{header:a(()=>[...e[8]||(e[8]=[L("span",{title:"含本部门及所有下级部门的管理员数"},"人数(含下级)",-1)])]),default:a(({row:n})=>[s(N(n.admin_count??0),1)]),_:1}),t(f,{label:"部门状态",prop:"status","min-width":"100"},{default:a(({row:n})=>[t(O,{class:"ml-2",type:n.status?"primary":"danger"},{default:a(()=>[s(N(n.status_desc),1)]),_:2},1032,["type"])]),_:1}),t(f,{label:"排序",prop:"sort","min-width":"100"}),t(f,{label:"更新时间",prop:"update_time","min-width":"180"}),t(f,{label:"操作",width:"160",fixed:"right"},{default:a(({row:n})=>[b((p(),c(r,{type:"primary",link:"",onClick:F=>$(n.id)},{default:a(()=>[...e[9]||(e[9]=[s(" 新增 ",-1)])]),_:1},8,["onClick"])),[[y,["dept.dept/add"]]]),b((p(),c(r,{type:"primary",link:"",onClick:F=>j(n)},{default:a(()=>[...e[10]||(e[10]=[s(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[y,["dept.dept/edit"]]]),n.pid!==0?b((p(),c(r,{key:0,type:"danger",link:"",onClick:F=>q(n.id)},{default:a(()=>[...e[11]||(e[11]=[s(" 删除 ",-1)])]),_:1},8,["onClick"])),[[y,["dept.dept/delete"]]]):P("",!0)]),_:1})]),_:1},8,["data"])),[[z,d(w)]])]),_:1}),d(v)?(p(),c(ue,{key:0,ref_key:"editRef",ref:_,onSuccess:u,onClose:e[3]||(e[3]=n=>v.value=!1)},null,512)):P("",!0)])}}});export{ge as default}; diff --git a/server/public/admin/assets/index-Cis-_1uh.js b/server/public/admin/assets/index-C_PSjf1W.js similarity index 99% rename from server/public/admin/assets/index-Cis-_1uh.js rename to server/public/admin/assets/index-C_PSjf1W.js index b9a508542..f2a5fdea7 100644 --- a/server/public/admin/assets/index-Cis-_1uh.js +++ b/server/public/admin/assets/index-C_PSjf1W.js @@ -1,4 +1,4 @@ -import{o as ts,R as ut,q as b,r as V,F as j,v as l,B as ss,u as a,C as N,bO as as,D as n,s as o,K as ls,L as p,bd as os,c9 as ns,ca as is,bb as rs,T as m,aA as ds,bm as us,P as h,dm as cs,cI as ps,cb as _s,J as ms,G as se,ae as ct,O as w,bh as gs,bi as fs,bf as bs,bq as vs,I as ys,aw as ae,w as xs,bA as ks,bI as Vs,a1 as hs,aB as ws,bc as Ss,bB as Cs,ac as Us,bn as Rs,bl as Is,bk as Ds,bu as $s,M as v,p as O,aC as pt,cf as Ps,ce as _t}from"./.pnpm-CyuAWpdG.js";import{M as mt}from"./index-Cf6ygfGC.js";import{u as Ns,e as Es,j as k,n as U,_ as Os}from"./index-Dxvz9lb1.js";import{f as Ts}from"./diabetes-discovery-display-B_wmGXQJ.js";import{aa as zs,r as me,ab as gt,v as Ls,w as Hs,aw as Ws}from"./tcm-QAkeqQ9Q.js";import{m as As}from"./medicine-EUKQYFsM.js";import{P as Ms}from"./index-DT7CSmCp.js";const js={key:0,class:"prescription-edit"},Bs={class:"info-section"},Fs={class:"info-section"},Gs={class:"info-section info-section--rp"},qs={class:"rp-toolbar",role:"region","aria-label":"中药处方"},Ks={class:"rp-toolbar__lead"},Js={class:"rp-toolbar__text"},Ys={class:"rp-toolbar__meta"},Xs={key:0,class:"rp-toolbar__lock-tip"},Qs={class:"rp-toolbar__actions",role:"toolbar","aria-label":"处方药材快捷操作"},Zs={class:"mb-3"},ea={class:"herb-formula-block"},ta={class:"herb-formula-block__head"},sa={class:"herbs-editor-grid"},aa={class:"herb-editor-card__title"},la={key:0,class:"herb-editor-card__dup-hint text-amber-600 text-xs mb-1"},oa={class:"herb-editor-card__row"},na={class:"herb-formula-block mt-4"},ia={class:"herb-formula-block__head"},ra={class:"herbs-editor-grid"},da={key:0,class:"herb-editor-card__dup-hint text-amber-600 text-xs mb-1"},ua={class:"herb-editor-card__row"},ca={key:0,class:"text-sm text-gray-400 py-2"},pa={class:"info-section"},_a={key:3,class:"ml-2"},ma={class:"signature-pad-wrap"},ga={class:"signature-actions"},fa={key:1,class:"rx-wrap"},ba={class:"rx-toolbar"},va={key:0,class:"rx-status rx-status-danger"},ya={key:1,class:"rx-status rx-status-danger"},xa={key:0,class:"mt-1"},ka={class:"prescription-preview-content"},Va={class:"case-record-a3-inner"},ha={class:"case-record-a3-title"},wa={class:"case-record-a3-body"},Sa={class:"cr-section"},Ca={class:"cr-grid"},Ua={class:"cr-item"},Ra={class:"cr-item"},Ia={class:"cr-item"},Da={class:"cr-item"},$a={class:"cr-item"},Pa={class:"cr-item"},Na={class:"cr-item"},Ea={class:"cr-item"},Oa={class:"cr-item"},Ta={class:"cr-item"},za={class:"cr-section"},La={class:"cr-grid"},Ha={class:"cr-item"},Wa={class:"cr-item"},Aa={class:"cr-section"},Ma={class:"cr-grid"},ja={class:"cr-item"},Ba={class:"cr-item"},Fa={class:"cr-item"},Ga={class:"cr-item"},qa={class:"cr-item"},Ka={class:"cr-item cr-full"},Ja={class:"cr-item cr-full"},Ya={class:"cr-section"},Xa={class:"cr-grid"},Qa={class:"cr-item cr-full"},Za={class:"cr-item cr-full"},el={class:"cr-item cr-full"},tl={class:"cr-item cr-full"},sl={class:"cr-item cr-full"},al={class:"cr-item cr-full"},ll={class:"cr-item cr-full"},ol={class:"cr-item cr-full"},nl={class:"cr-item cr-full"},il={class:"cr-item cr-full"},rl={class:"cr-item cr-full"},dl={class:"cr-item cr-full"},ul={class:"cr-item cr-full"},cl={class:"cr-item cr-full"},pl={class:"cr-item cr-full"},_l={class:"cr-section"},ml={class:"cr-item cr-full"},gl={class:"cr-section"},fl={class:"cr-grid"},bl={class:"cr-item"},vl={class:"cr-item"},yl={class:"cr-item"},xl={class:"cr-item"},kl={class:"cr-item"},Vl={class:"cr-section"},hl={key:0,class:"cr-grid"},wl={class:"cr-item cr-full"},Sl={class:"cr-images"},Cl=["src"],Ul={class:"cr-grid"},Rl={class:"cr-item cr-full"},Il={key:2,class:"rx-audit"},Dl={key:0},$l={key:0,class:"ml-2 text-gray-400"},Pl={key:1,class:"mt-1"},Nl={class:"flex justify-end gap-2 mt-4"},El={class:"inline-block"},Ol={class:"flex justify-end gap-2"},Tl={class:"mb-4 flex gap-3"},zl={class:"mb-3 flex flex-wrap items-center gap-x-4 gap-y-2"},Ll={key:0},Hl={key:1,class:"text-gray-400"},Wl={class:"flex justify-end mt-4"},Al={class:"mt-3 flex flex-wrap items-center gap-x-4 gap-y-2"},le=560,oe=168,Ml=ts({__name:"index",emits:["success"],setup(jl,{expose:ft,emit:bt}){function B(s){return s==="辅方"?"辅方":"主方"}function $e(s){const e={name:String((s==null?void 0:s.name)??"").trim(),dosage:Number(s==null?void 0:s.dosage)||0,formula_type:B(s==null?void 0:s.formula_type)},i=Number((s==null?void 0:s.medicine_id)??(s==null?void 0:s.id)??0);return Number.isInteger(i)&&i>0&&(e.medicine_id=i),((s==null?void 0:s.locked)===!0||(s==null?void 0:s.locked)===1)&&(e.locked=!0),e}function ne(s="浓缩水丸"){return s==="饮片"?{dosage_amount:50,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:s==="浓缩水丸"?{dosage_amount:5,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:{dosage_amount:1,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}}const Pe=bt,z=v(!1),vt=v(),ge=v(!1),fe=v(!1),Ne=v(null),Ee=v(),L=v(),ie=v(null),c=v(null),Oe=v("internal"),be=v(!1),re=O(()=>{const s=c.value;return s?Number(s.audit_status)===1&&Number(s.void_status)!==1:!1}),Te=O(()=>{const s=c.value;return s?Number(s.has_prescription_order)===1:!1}),yt=O(()=>re.value?"查看处方":"中医处方单");function xt(s){if(!s)return"";const e=new Date(s*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}const ze=O(()=>t.herbs.map((s,e)=>({herb:s,index:e})).filter(({herb:s})=>B(s.formula_type)==="主方")),X=O(()=>t.herbs.map((s,e)=>({herb:s,index:e})).filter(({herb:s})=>B(s.formula_type)==="辅方")),kt=O(()=>ze.value.length),Vt=O(()=>X.value.length),$=O(()=>t.herbs.some(s=>s.locked===!0)),ve=O(()=>{var e;const s=Number((e=we.userInfo)==null?void 0:e.id);return s>0?s:0}),H=v(!1),ye=v(!1),xe=v([]),Q=v(""),Z=v(""),F=v("replace"),G=v(!1),q=v(1),de=v(15),ke=v(0),K=v(!1),J=v(""),ue=v("replace"),Ve=v(!1),ht=/^(用法|用量|医嘱|忌口|水煎服|空腹|饭后|温水|内服|外用|备注|顿服|分服|ml|毫升|[×xX]\s*\d)/;function wt(s){let e=s.replace(/\r\n/g,` +import{o as ts,R as ut,q as b,r as V,F as j,v as l,B as ss,u as a,C as N,bO as as,D as n,s as o,K as ls,L as p,bd as os,c9 as ns,ca as is,bb as rs,T as m,aA as ds,bm as us,P as h,dm as cs,cI as ps,cb as _s,J as ms,G as se,ae as ct,O as w,bh as gs,bi as fs,bf as bs,bq as vs,I as ys,aw as ae,w as xs,bA as ks,bI as Vs,a1 as hs,aB as ws,bc as Ss,bB as Cs,ac as Us,bn as Rs,bl as Is,bk as Ds,bu as $s,M as v,p as O,aC as pt,cf as Ps,ce as _t}from"./.pnpm-CyuAWpdG.js";import{M as mt}from"./index-DAIDDabA.js";import{u as Ns,e as Es,j as k,n as U,_ as Os}from"./index-Bkarz3gO.js";import{f as Ts}from"./diabetes-discovery-display-B_wmGXQJ.js";import{aa as zs,r as me,ab as gt,v as Ls,w as Hs,aw as Ws}from"./tcm-BSADvQNg.js";import{m as As}from"./medicine-DPIOyHj8.js";import{P as Ms}from"./index-CTRSsggc.js";const js={key:0,class:"prescription-edit"},Bs={class:"info-section"},Fs={class:"info-section"},Gs={class:"info-section info-section--rp"},qs={class:"rp-toolbar",role:"region","aria-label":"中药处方"},Ks={class:"rp-toolbar__lead"},Js={class:"rp-toolbar__text"},Ys={class:"rp-toolbar__meta"},Xs={key:0,class:"rp-toolbar__lock-tip"},Qs={class:"rp-toolbar__actions",role:"toolbar","aria-label":"处方药材快捷操作"},Zs={class:"mb-3"},ea={class:"herb-formula-block"},ta={class:"herb-formula-block__head"},sa={class:"herbs-editor-grid"},aa={class:"herb-editor-card__title"},la={key:0,class:"herb-editor-card__dup-hint text-amber-600 text-xs mb-1"},oa={class:"herb-editor-card__row"},na={class:"herb-formula-block mt-4"},ia={class:"herb-formula-block__head"},ra={class:"herbs-editor-grid"},da={key:0,class:"herb-editor-card__dup-hint text-amber-600 text-xs mb-1"},ua={class:"herb-editor-card__row"},ca={key:0,class:"text-sm text-gray-400 py-2"},pa={class:"info-section"},_a={key:3,class:"ml-2"},ma={class:"signature-pad-wrap"},ga={class:"signature-actions"},fa={key:1,class:"rx-wrap"},ba={class:"rx-toolbar"},va={key:0,class:"rx-status rx-status-danger"},ya={key:1,class:"rx-status rx-status-danger"},xa={key:0,class:"mt-1"},ka={class:"prescription-preview-content"},Va={class:"case-record-a3-inner"},ha={class:"case-record-a3-title"},wa={class:"case-record-a3-body"},Sa={class:"cr-section"},Ca={class:"cr-grid"},Ua={class:"cr-item"},Ra={class:"cr-item"},Ia={class:"cr-item"},Da={class:"cr-item"},$a={class:"cr-item"},Pa={class:"cr-item"},Na={class:"cr-item"},Ea={class:"cr-item"},Oa={class:"cr-item"},Ta={class:"cr-item"},za={class:"cr-section"},La={class:"cr-grid"},Ha={class:"cr-item"},Wa={class:"cr-item"},Aa={class:"cr-section"},Ma={class:"cr-grid"},ja={class:"cr-item"},Ba={class:"cr-item"},Fa={class:"cr-item"},Ga={class:"cr-item"},qa={class:"cr-item"},Ka={class:"cr-item cr-full"},Ja={class:"cr-item cr-full"},Ya={class:"cr-section"},Xa={class:"cr-grid"},Qa={class:"cr-item cr-full"},Za={class:"cr-item cr-full"},el={class:"cr-item cr-full"},tl={class:"cr-item cr-full"},sl={class:"cr-item cr-full"},al={class:"cr-item cr-full"},ll={class:"cr-item cr-full"},ol={class:"cr-item cr-full"},nl={class:"cr-item cr-full"},il={class:"cr-item cr-full"},rl={class:"cr-item cr-full"},dl={class:"cr-item cr-full"},ul={class:"cr-item cr-full"},cl={class:"cr-item cr-full"},pl={class:"cr-item cr-full"},_l={class:"cr-section"},ml={class:"cr-item cr-full"},gl={class:"cr-section"},fl={class:"cr-grid"},bl={class:"cr-item"},vl={class:"cr-item"},yl={class:"cr-item"},xl={class:"cr-item"},kl={class:"cr-item"},Vl={class:"cr-section"},hl={key:0,class:"cr-grid"},wl={class:"cr-item cr-full"},Sl={class:"cr-images"},Cl=["src"],Ul={class:"cr-grid"},Rl={class:"cr-item cr-full"},Il={key:2,class:"rx-audit"},Dl={key:0},$l={key:0,class:"ml-2 text-gray-400"},Pl={key:1,class:"mt-1"},Nl={class:"flex justify-end gap-2 mt-4"},El={class:"inline-block"},Ol={class:"flex justify-end gap-2"},Tl={class:"mb-4 flex gap-3"},zl={class:"mb-3 flex flex-wrap items-center gap-x-4 gap-y-2"},Ll={key:0},Hl={key:1,class:"text-gray-400"},Wl={class:"flex justify-end mt-4"},Al={class:"mt-3 flex flex-wrap items-center gap-x-4 gap-y-2"},le=560,oe=168,Ml=ts({__name:"index",emits:["success"],setup(jl,{expose:ft,emit:bt}){function B(s){return s==="辅方"?"辅方":"主方"}function $e(s){const e={name:String((s==null?void 0:s.name)??"").trim(),dosage:Number(s==null?void 0:s.dosage)||0,formula_type:B(s==null?void 0:s.formula_type)},i=Number((s==null?void 0:s.medicine_id)??(s==null?void 0:s.id)??0);return Number.isInteger(i)&&i>0&&(e.medicine_id=i),((s==null?void 0:s.locked)===!0||(s==null?void 0:s.locked)===1)&&(e.locked=!0),e}function ne(s="浓缩水丸"){return s==="饮片"?{dosage_amount:50,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:s==="浓缩水丸"?{dosage_amount:5,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:{dosage_amount:1,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}}const Pe=bt,z=v(!1),vt=v(),ge=v(!1),fe=v(!1),Ne=v(null),Ee=v(),L=v(),ie=v(null),c=v(null),Oe=v("internal"),be=v(!1),re=O(()=>{const s=c.value;return s?Number(s.audit_status)===1&&Number(s.void_status)!==1:!1}),Te=O(()=>{const s=c.value;return s?Number(s.has_prescription_order)===1:!1}),yt=O(()=>re.value?"查看处方":"中医处方单");function xt(s){if(!s)return"";const e=new Date(s*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}const ze=O(()=>t.herbs.map((s,e)=>({herb:s,index:e})).filter(({herb:s})=>B(s.formula_type)==="主方")),X=O(()=>t.herbs.map((s,e)=>({herb:s,index:e})).filter(({herb:s})=>B(s.formula_type)==="辅方")),kt=O(()=>ze.value.length),Vt=O(()=>X.value.length),$=O(()=>t.herbs.some(s=>s.locked===!0)),ve=O(()=>{var e;const s=Number((e=we.userInfo)==null?void 0:e.id);return s>0?s:0}),H=v(!1),ye=v(!1),xe=v([]),Q=v(""),Z=v(""),F=v("replace"),G=v(!1),q=v(1),de=v(15),ke=v(0),K=v(!1),J=v(""),ue=v("replace"),Ve=v(!1),ht=/^(用法|用量|医嘱|忌口|水煎服|空腹|饭后|温水|内服|外用|备注|顿服|分服|ml|毫升|[×xX]\s*\d)/;function wt(s){let e=s.replace(/\r\n/g,` `).replace(/\r/g,` `);return e=e.replace(/[0-9]/g,i=>String.fromCharCode(i.charCodeAt(0)-65296+48)),e.trim()}function St(s){return s.replace(/^\s*Rp[::**\s]*/i,"").replace(/^\s*处方[::\s]*/,"").replace(/^\s*中药处方[::\s]*/,"").trimStart()}function he(s){return s.replace(/([^)]*)$/u,"").replace(/\([^)]*\)$/u,"").trim()}function Le(s){const e=s.trim();if(!e||ht.test(e)||/^\d/.test(e)||/^\d+\s*剂$/.test(e))return null;const i=e.match(/^(.+)\s*各\s*(\d+(?:\.\d+)?)\s*(?:克|g|G)?$/i);if(i){const y=parseFloat(i[2]);if(!Number.isFinite(y)||y<=0)return null;const g=i[1].split(/[、,,\s]+/).map(f=>f.trim()).filter(Boolean);return g.length?g.map(f=>({name:he(f),dosage:y})):null}const r=e.match(/^(.+?)\s*(\d+(?:\.\d+)?)\s*(?:克|g|G|钱)?$/i);if(r){const y=he(r[1].trim()),g=parseFloat(r[2]);return!y||!Number.isFinite(g)||g<=0?null:[{name:y,dosage:g}]}const _=he(e);return _.length>=2&&_.length<=16?[{name:_,dosage:6}]:null}function Ct(s){const e=St(wt(s)),i=[];for(const r of e.split(/\n+/)){const _=r.trim();if(_)for(const y of _.split(/[、,,;;]/)){const g=y.trim();if(g)if(/\s/.test(g)&&!Le(g)){const f=g.split(/\s+(?=[\u4e00-\u9fff]{2,})/);for(const S of f){const d=S.trim();d&&i.push(d)}}else i.push(g)}}return i}function Ut(s){const e=[];for(const i of Ct(s)){const r=Le(i);r&&e.push(...r)}return e}async function Rt(s){const e=s.trim();if(!e)return null;try{const _=((await As({name:e,page_no:1,page_size:200,status:1})).lists||[]).filter(y=>(y.name??"").trim()===e);return _.length===1?{medicine_id:Number(_[0].id),name:_[0].name.trim()}:null}catch{return null}}function It(){K.value=!0}async function Dt(){const s=Ut(J.value);if(!s.length){k.msgWarning("未能从文本中解析出药材,请检查格式(药名 + 剂量,或用顿号/换行分隔)");return}Ve.value=!0;try{const e=[],i=[];for(const g of s){const f=await Rt(g.name);if(!f){i.push(g.name.trim());continue}e.push({...f,dosage:g.dosage,formula_type:"主方"})}const r=[...new Set(i.filter(Boolean))];if(e.length===0){k.msgWarning(r.length?`药品库中无以下完全同名药材,未录入:${r.join("、")}`:"未能匹配到药品库中的药材");return}if(ue.value==="replace"){const g=t.herbs.filter(f=>B(f.formula_type)==="辅方");t.herbs=[...g,...e]}else t.herbs.push(...e);const _=De(),y=r.length>0?`;药品库未收录已跳过:${r.join("、")}`:"";_.length?k.msgWarning(`已导入 ${e.length} 味药材${y}。存在重复药名:${_.join("、")},请合并剂量或删除多余行`):r.length?k.msgSuccess(`已导入 ${e.length} 味药材${y},请核对剂量`):k.msgSuccess(`已导入 ${e.length} 味药材,请核对药名与剂量`),K.value=!1,J.value=""}finally{Ve.value=!1}}const He=pt({stationName:"成都双流甄养堂互联网医院",showDisclaimer:!0,disclaimer:""}),t=pt({diagnosis_id:0,appointment_id:0,prescription_name:"",prescription_type:"浓缩水丸",dosage_amount:10,dosage_unit:"g",dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,patient_name:"",gender:0,gender_desc:"女",age:0,phone:"",visit_no:"",prescription_date:"",pulse:"",tongue:"",tongue_image:"",pulse_condition:"",clinical_diagnosis:"",case_record:null,herbs:[],dose_count:1,dose_unit:"剂",usage_days:7,times_per_day:2,usage_instruction:"",usage_time:"饭后",usage_way:"温水送服",dietary_taboo:[],usage_notes:"",amount:0,doctor_name:"",doctor_signature:"",is_shared:0,aux_usage:ne("浓缩水丸")}),we=Ns(),$t=Es(),Pt=s=>{const e=typeof s=="string"?s:(s==null?void 0:s.url)??(s==null?void 0:s.uri)??(s==null?void 0:s.path)??"";return e?String(e).startsWith("http")?e:$t.getImageUrl(e):""},Se=v([]),Ce=v([]),We=v([]),Ae=v([]),Me=v([]),je=v([]),Be=v([]),Fe=v([]),Ge=v([]),qe=v([]),Ke=v([]),Je=v([]),Ye=v([]),Xe=v([]),Qe=v([]),Ze=v([]),et=v([]),tt=v([]),T=(s,e)=>{if(!e)return"";const i=s.find(r=>r.value===e);return i?i.name:e},st=async()=>{try{const[s,e,i,r,_,y,g,f,S,d,C,I,P,W,A,Y,ee,te]=await Promise.all([U({type:"diagnosis_type"}),U({type:"syndrome_type"}),U({type:"diabetes_type"}),U({type:"past_history"}),U({type:"appetite"}),U({type:"water_intake"}),U({type:"diet_condition"}),U({type:"weight_change"}),U({type:"body_feeling"}),U({type:"sleep_condition"}),U({type:"eye_condition"}),U({type:"head_feeling"}),U({type:"sweat_condition"}),U({type:"skin_condition"}),U({type:"urine_condition"}),U({type:"stool_condition"}),U({type:"kidney_condition"}),U({type:"fatty_liver_degree"})]);Se.value=(s==null?void 0:s.diagnosis_type)||[],Ce.value=(e==null?void 0:e.syndrome_type)||[],We.value=(i==null?void 0:i.diabetes_type)||[],Ae.value=(r==null?void 0:r.past_history)||[],Me.value=(_==null?void 0:_.appetite)||[],je.value=(y==null?void 0:y.water_intake)||[],Be.value=(g==null?void 0:g.diet_condition)||[],Fe.value=(f==null?void 0:f.weight_change)||[],Ge.value=(S==null?void 0:S.body_feeling)||[],qe.value=(d==null?void 0:d.sleep_condition)||[],Ke.value=(C==null?void 0:C.eye_condition)||[],Je.value=(I==null?void 0:I.head_feeling)||[],Ye.value=(P==null?void 0:P.sweat_condition)||[],Xe.value=(W==null?void 0:W.skin_condition)||[],Qe.value=(A==null?void 0:A.urine_condition)||[],Ze.value=(Y==null?void 0:Y.stool_condition)||[],et.value=(ee==null?void 0:ee.kidney_condition)||[],tt.value=(te==null?void 0:te.fatty_liver_degree)||[]}catch{}},D=(s,e)=>{if(!e||Array.isArray(e)&&e.length===0)return"—";const r=(Array.isArray(e)?e:typeof e=="string"?e.split(","):[]).map(_=>{const y=s.find(g=>g.value===_);return y?y.name:_}).filter(Boolean);return r.length?r.join("、"):"—"},Nt=s=>!s||Array.isArray(s)&&s.length===0?"—":(Array.isArray(s)?s:typeof s=="string"?s.split(","):[]).filter(Boolean).join("、")||"—",Et=s=>{var _;if((_=s==null?void 0:s.symptoms)!=null&&_.trim())return s.symptoms.trim();const e=T(Se.value,s==null?void 0:s.diagnosis_type),i=T(Ce.value,s==null?void 0:s.syndrome_type),r=[e,i].filter(Boolean);return r.length?r.join(" "):""},Ot=async(s,e)=>{var i;if(G.value){console.warn("处方正在打开中,请勿重复点击");return}G.value=!0;try{e!=null&&e.stationName&&(He.stationName=e.stationName);const r=s.diagnosis||s,_=s.diagnosis_id??(r==null?void 0:r.id)??s.id;if(!_){k.msgWarning("缺少诊单信息");return}await st();const y=Number(s.id??s.appointment_id??0);if(y)try{const f=await zs({appointment_id:y});if(console.log("-----------",f),f!=null&&f.id){const S=await me({id:f.id});c.value=S,z.value=!0;return}}catch{}let g=s.case_record&&Object.keys(s.case_record).length>0?s.case_record:null;if(!g&&_)try{const f=await gt({id:Number(_)});g=f&&typeof f=="object"?f:null}catch(f){console.warn("获取诊单详情失败:",f)}t.diagnosis_id=Number(_),t.appointment_id=y,t.prescription_name="",t.prescription_type="浓缩水丸",t.dosage_unit="g",t.dosage_amount=10,t.dosage_bag_count=1,t.patient_name=s.patient_name||r.patient_name||"",t.gender=s.patient_gender??r.gender??0,t.gender_desc=t.gender===1?"男":"女",t.age=s.patient_age??r.age??0,t.phone=s.patient_phone||r.phone||"",t.visit_no=s.id?`1K${String(s.id).padStart(8,"0")}`:"",t.prescription_date=new Date().toISOString().slice(0,10),t.pulse=r.pulse||"",t.tongue=r.tongue_coating||r.tongue||"",t.tongue_image="",t.pulse_condition="",t.clinical_diagnosis=Et(r),t.case_record=g,t.herbs=[],t.dose_count=1,t.dose_unit="剂",t.usage_days=7,t.usage_instruction="",t.usage_time="饭后",t.usage_way="温水送服",t.dietary_taboo=[],t.usage_notes="",t.amount=0,t.doctor_name=((i=we.userInfo)==null?void 0:i.name)||"",t.doctor_signature="",t.is_shared=0,t.need_decoction=!1,t.bags_per_dose=1,t.times_per_day=2,Object.assign(t.aux_usage,ne("浓缩水丸")),c.value=null,z.value=!0,setTimeout(()=>Re(),100)}finally{setTimeout(()=>{G.value=!1},500)}},Tt=async(s,e)=>{if(G.value){console.warn("处方正在打开中,请勿重复点击");return}G.value=!0,Oe.value=(e==null?void 0:e.slipType)??"internal",be.value=(e==null?void 0:e.hideCaseRecord)??!1;try{const i=await me({id:s});c.value=i,i!=null&&i.case_record&&Object.keys(i.case_record).length>0&&await st(),z.value=!0}catch{k.msgError("加载处方失败")}finally{setTimeout(()=>{G.value=!1},500)}},Ue=()=>{z.value=!1,c.value=null,Oe.value="internal",be.value=!1},at=s=>{const e=L.value;if(!e)return{x:0,y:0};const i=e.getBoundingClientRect();if(i.width<=0||i.height<=0)return{x:0,y:0};const r=(s.clientX-i.left)/i.width*le,_=(s.clientY-i.top)/i.height*oe;return{x:Math.max(0,Math.min(le,r)),y:Math.max(0,Math.min(oe,_))}},zt=()=>{const s=L.value;s&&(t.doctor_signature=s.toDataURL("image/png"))},Lt=s=>{if(s.pointerType==="mouse"&&s.button!==0)return;const e=L.value,i=e==null?void 0:e.getContext("2d");if(!e||!i)return;e.setPointerCapture(s.pointerId),ie.value=s.pointerId;const{x:r,y:_}=at(s);i.beginPath(),i.moveTo(r,_)},Ht=s=>{var _;if(ie.value!==s.pointerId)return;const e=(_=L.value)==null?void 0:_.getContext("2d");if(!e)return;const{x:i,y:r}=at(s);e.lineTo(i,r),e.stroke(),e.beginPath(),e.moveTo(i,r)},lt=s=>{if(ie.value!==s.pointerId)return;ie.value=null;const e=L.value;if(e)try{e.releasePointerCapture(s.pointerId)}catch{}zt()},Wt=()=>{Re(),t.doctor_signature=""},Re=()=>{const s=L.value;if(!s)return;const e=Math.min(typeof window<"u"&&window.devicePixelRatio||1,2.5);s.style.width=`${le}px`,s.style.height=`${oe}px`,s.width=Math.round(le*e),s.height=Math.round(oe*e);const i=s.getContext("2d");i&&(i.setTransform(1,0,0,1,0,0),i.scale(e,e),i.fillStyle="#fff",i.fillRect(0,0,le,oe),i.strokeStyle="#333",i.lineWidth=2.5,i.lineCap="round",i.lineJoin="round")};function Ie(s){return(s??"").trim()}function ce(s){var _,y;const e=t.herbs,i=Ie((_=e[s])==null?void 0:_.name);if(!i)return!1;let r=0;for(let g=0;g1}function De(){const s=new Map;for(const e of t.herbs){const i=Ie(e==null?void 0:e.name);i&&s.set(i,(s.get(i)??0)+1)}return[...s.entries()].filter(([,e])=>e>1).map(([e])=>e)}const ot=(s="主方")=>{if($.value){k.msgWarning("该处方含「禁用修改」模板,药材已锁定,请重新从处方库导入覆盖");return}t.herbs.push({name:"",dosage:6,formula_type:s})},nt=s=>{if($.value){k.msgWarning("该处方含「禁用修改」模板,药材已锁定,不可删除");return}t.herbs.splice(s,1)},pe=async()=>{const s=ve.value;if(!s){k.msgWarning("无法确定开方医师,无法加载处方库"),xe.value=[],ke.value=0;return}ye.value=!0;try{const e=await Ls({page_no:q.value,page_size:de.value,prescription_name:Q.value,formula_type:Z.value,prescribing_creator_id:s});xe.value=e.lists||[],ke.value=e.count||0}catch(e){console.error("加载处方库失败:",e),k.msgError("加载处方库失败")}finally{ye.value=!1}},_e=()=>{q.value=1,pe()},At=()=>{if(!ve.value){k.msgWarning("无法确定开方医师,无法从处方库导入");return}H.value=!0},Mt=s=>{it(s)},it=s=>{if(!s.herbs||s.herbs.length===0){k.msgWarning("该处方没有药材信息");return}const e=B(s.formula_type),i=Number(s==null?void 0:s.disable_edit)===1,r=JSON.parse(JSON.stringify(s.herbs)).map(y=>{const g=$e(y);return g.formula_type=e,i?g.locked=!0:delete g.locked,g});if(F.value==="replace"){const y=t.herbs.filter(g=>B(g.formula_type)!==e);t.herbs=[...y,...r]}else t.herbs.push(...r);const _=F.value==="append"?"(已追加)":"";De().length?k.msgWarning(`已导入处方「${s.prescription_name}」${_},共${r.length}味药材。存在重复药名,请合并剂量或删除多余行`):k.msgSuccess(`已导入处方「${s.prescription_name}」${_},共${r.length}味药材`),H.value=!1};ut(H,s=>{if(s){if(!ve.value){k.msgWarning("无法确定开方医师,无法从处方库导入"),H.value=!1;return}Q.value="",Z.value="",F.value="replace",q.value=1,pe()}}),ut(()=>t.prescription_type,s=>{s==="浓缩水丸"?(t.dosage_unit="g",t.dosage_amount=10,t.dosage_bag_count=1,t.need_decoction=!1,t.bags_per_dose=1):s==="饮片"?(t.dosage_unit="ml",t.dosage_amount=50,t.dosage_bag_count=1,t.bags_per_dose=1):(t.dosage_unit="g",t.dosage_amount=void 0,t.dosage_bag_count=1,t.need_decoction=!1,t.bags_per_dose=1),Object.assign(t.aux_usage,ne(s))});const jt=async()=>{var e,i,r;if(!((e=t.clinical_diagnosis)!=null&&e.trim())){k.msgWarning("请输入临床诊断");return}if(t.herbs.length===0){k.msgWarning("请至少添加一味中药");return}const s=De();if(s.length){k.msgWarning(`存在重复药名:${s.join("、")},请合并剂量或删除多余行后再保存`);return}for(const _ of t.herbs){if(!((i=_.name)!=null&&i.trim())){k.msgWarning("请填写中药名称");return}if(!_.dosage||_.dosage<=0){k.msgWarning(`请填写「${_.name}」的剂量`);return}}if(!((r=t.doctor_signature)!=null&&r.trim())){k.msgWarning("请使用电子签名板手写医师签名");return}ge.value=!0;try{const _=await Hs({diagnosis_id:t.diagnosis_id,appointment_id:t.appointment_id,prescription_name:t.prescription_name,prescription_type:t.prescription_type,patient_name:t.patient_name,gender:t.gender,age:t.age,phone:t.phone,visit_no:t.visit_no,prescription_date:t.prescription_date,pulse:t.pulse,tongue:t.tongue,tongue_image:t.tongue_image,pulse_condition:t.pulse_condition,clinical_diagnosis:t.clinical_diagnosis,case_record:t.case_record,herbs:t.herbs.map(g=>$e(g)),aux_usage:X.value.length>0?{...t.aux_usage}:null,dose_count:t.dose_count,dose_unit:t.dose_unit,dosage_amount:t.dosage_amount,dosage_unit:t.dosage_unit,dosage_bag_count:t.dosage_bag_count,need_decoction:t.need_decoction,bags_per_dose:t.bags_per_dose,usage_days:t.usage_days,times_per_day:t.times_per_day,usage_instruction:t.usage_instruction,usage_time:t.usage_time,usage_way:t.usage_way,dietary_taboo:t.dietary_taboo,usage_notes:t.usage_notes,amount:t.amount,doctor_name:t.doctor_name,doctor_signature:t.doctor_signature,is_shared:t.is_shared}),y=_==null?void 0:_.id;if(y){const g=await me({id:y});c.value=g,Pe("success")}else k.msgError("保存失败")}catch(_){k.msgError((_==null?void 0:_.msg)||"保存失败")}finally{ge.value=!1}},Bt=s=>{if(!s)return"—";const e=new Date(s*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}:${String(e.getSeconds()).padStart(2,"0")}`},Ft=async()=>{var e,i;const s=(e=c.value)==null?void 0:e.id;if(s){if(Number((i=c.value)==null?void 0:i.has_prescription_order)===1){k.msgWarning("该处方已存在业务订单,无法作废");return}try{await k.confirm("确定要作废该处方吗?作废后不可恢复。"),fe.value=!0,await Ws({id:s}),k.msgSuccess("作废成功");const r=await me({id:s});c.value=r,Pe("success")}catch(r){r!=="cancel"&&(r==null?void 0:r.message)!=="cancel"&&k.msgError((r==null?void 0:r.msg)||"作废失败")}finally{fe.value=!1}}},Gt=async s=>{if(!s)return null;try{const e=await gt({id:s});return e&&typeof e=="object"?e:null}catch(e){return console.warn("获取诊单详情失败:",e),null}},qt=async()=>{var e;const s=c.value;s&&(t.diagnosis_id=s.diagnosis_id??t.diagnosis_id,t.appointment_id=s.appointment_id??t.appointment_id,t.prescription_name="",t.prescription_type=s.prescription_type||"浓缩水丸",t.prescription_type==="浓缩水丸"?(t.dosage_unit="g",t.dosage_amount=10,t.dosage_bag_count=1):t.prescription_type==="饮片"?(t.dosage_unit="ml",t.dosage_amount=50,t.dosage_bag_count=1):(t.dosage_unit="g",t.dosage_amount=void 0,t.dosage_bag_count=1),t.patient_name=s.patient_name||"",t.gender=s.gender??0,t.gender_desc=s.gender===1?"男":"女",t.age=s.age??0,t.phone=s.phone||"",t.visit_no=s.visit_no||"",t.prescription_date=new Date().toISOString().slice(0,10),t.pulse=s.pulse||"",t.tongue=s.tongue||"",t.tongue_image="",t.pulse_condition="",t.clinical_diagnosis=s.clinical_diagnosis||"",t.dose_count=1,t.dose_unit=s.dose_unit||"剂",t.usage_days=7,t.usage_instruction="",t.usage_time="饭后",t.usage_way="温水送服",t.dietary_taboo=[],t.usage_notes="",t.amount=0,t.doctor_name=((e=we.userInfo)==null?void 0:e.name)||s.doctor_name||"",t.doctor_signature="",t.is_shared=0,t.herbs=[],Object.assign(t.aux_usage,ne(t.prescription_type||"浓缩水丸")),t.case_record=s.case_record&&Object.keys(s.case_record).length>0?s.case_record:await Gt(Number(t.diagnosis_id)),setTimeout(()=>Re(),100)),c.value=null},rt=async()=>{var e;const s=((e=Ne.value)==null?void 0:e.paperEl)??null;if(!s)throw new Error("未找到处方内容");return _t(s,{scale:2,useCORS:!0,logging:!1,backgroundColor:"#ffffff"})},Kt=async s=>{const e=s.querySelectorAll('img[src^="http"]'),i=Array.from(e).map(async r=>{try{const _=await fetch(r.src,{mode:"cors"});if(!_.ok)return;const y=await _.blob(),g=await new Promise((f,S)=>{const d=new FileReader;d.onload=()=>f(d.result),d.onerror=S,d.readAsDataURL(y)});r.src=g}catch{}});await Promise.allSettled(i)},Jt=async()=>{const s=Ee.value;return s?(s.scrollIntoView({behavior:"instant",block:"nearest"}),await Kt(s),await new Promise(e=>setTimeout(e,200)),_t(s,{scale:2,useCORS:!0,logging:!1,backgroundColor:"#ffffff"})):null},Yt=async()=>{var s;try{const e=await rt(),i=document.createElement("a");i.download=`处方_${((s=c.value)==null?void 0:s.patient_name)||"未命名"}_${Date.now()}.png`,i.href=e.toDataURL("image/png"),i.click(),k.msgSuccess("图片已下载")}catch{k.msgError("下载图片失败")}},Xt=async()=>{var s;try{const e=await rt(),i=e.toDataURL("image/png"),r=new Ps({orientation:"portrait",unit:"mm",format:"a5"}),_=r.internal.pageSize.getWidth(),y=r.internal.pageSize.getHeight(),g=Math.min(_/e.width,y/e.height),f=e.width*g,S=e.height*g;r.addImage(i,"PNG",0,0,f,S);const d=await Jt();if(d){r.addPage("a3","p");const P=Math.min(297/d.width,420/d.height),W=d.width*P,A=d.height*P;r.addImage(d.toDataURL("image/png"),"PNG",0,0,W,A)}r.save(`处方_${((s=c.value)==null?void 0:s.patient_name)||"未命名"}_${Date.now()}.pdf`),k.msgSuccess("PDF已下载")}catch{k.msgError("下载PDF失败")}};return ft({open:Ot,openById:Tt}),(s,e)=>{const i=rs,r=is,_=ds,y=ns,g=us,f=ls,S=ms,d=fs,C=gs,I=vs,P=bs,W=ys,A=os,Y=xs,ee=hs,te=ss,M=Is,Qt=Ds,Zt=$s,dt=ws,es=Rs;return b(),V(j,null,[l(te,{modelValue:a(z),"onUpdate:modelValue":e[31]||(e[31]=x=>N(z)?z.value=x:null),title:a(yt),size:"1200px","close-on-click-modal":!1,onClose:Ue},as({default:n(()=>{var x,E;return[a(c)?(b(),V("div",fa,[o("div",ba,[a(c).void_status===1?(b(),w(g,{key:0,type:"danger",size:"small"},{default:n(()=>[...e[70]||(e[70]=[p("已作废",-1)])]),_:1})):a(re)?(b(),w(g,{key:1,type:"success",size:"small"},{default:n(()=>[...e[71]||(e[71]=[p("已通过",-1)])]),_:1})):Number(a(c).audit_status)===0?(b(),w(g,{key:2,type:"warning",size:"small"},{default:n(()=>[...e[72]||(e[72]=[p("待审核",-1)])]),_:1})):Number(a(c).audit_status)===2?(b(),w(g,{key:3,type:"danger",size:"small"},{default:n(()=>[...e[73]||(e[73]=[p("已驳回",-1)])]),_:1})):h("",!0),e[74]||(e[74]=o("div",{class:"flex-1"},null,-1))]),a(c).void_status===1?(b(),V("div",va," 作废人:"+m(a(c).void_by_name||"—")+",作废时间:"+m(Bt(a(c).void_time)),1)):Number(a(c).audit_status)===2?(b(),V("div",ya,[e[75]||(e[75]=o("div",{class:"font-medium"},"处方审核:已驳回",-1)),a(c).audit_remark?(b(),V("div",xa,"驳回意见:"+m(a(c).audit_remark),1)):h("",!0)])):h("",!0),o("div",ka,[a(c)?(b(),w(Ms,{key:0,ref_key:"rxSlipRef",ref:Ne,data:a(c)},null,8,["data"])):h("",!0),a(c).case_record&&!a(be)?(b(),V("div",{key:1,ref_key:"caseRecordPrintRef",ref:Ee,class:"case-record-a3"},[o("div",Va,[o("h2",ha,m(a(He).stationName)+" 详细病历",1),o("div",wa,[o("div",Sa,[e[86]||(e[86]=o("div",{class:"cr-section-title"},"基本信息",-1)),o("div",Ca,[o("div",Ua,[e[76]||(e[76]=o("span",{class:"cr-label"},"诊单ID",-1)),p(m(a(c).case_record.patient_id||"—"),1)]),o("div",Ra,[e[77]||(e[77]=o("span",{class:"cr-label"},"姓名",-1)),p(m(a(c).case_record.patient_name||"—"),1)]),o("div",Ia,[e[78]||(e[78]=o("span",{class:"cr-label"},"身份证号",-1)),p(m(a(c).case_record.id_card||"—"),1)]),o("div",Da,[e[79]||(e[79]=o("span",{class:"cr-label"},"手机号",-1)),p(m(a(c).case_record.phone||"—"),1)]),o("div",$a,[e[80]||(e[80]=o("span",{class:"cr-label"},"性别",-1)),p(m(a(c).gender_desc),1)]),o("div",Pa,[e[81]||(e[81]=o("span",{class:"cr-label"},"年龄",-1)),p(m(a(c).case_record.age??"—")+"岁",1)]),o("div",Na,[e[82]||(e[82]=o("span",{class:"cr-label"},"婚姻状态",-1)),p(m(["未婚","已婚","离异"][a(c).case_record.marital_status]??"—"),1)]),o("div",Ea,[e[83]||(e[83]=o("span",{class:"cr-label"},"身高",-1)),p(m(a(c).case_record.height??"—")+"cm",1)]),o("div",Oa,[e[84]||(e[84]=o("span",{class:"cr-label"},"体重",-1)),p(m(a(c).case_record.weight??"—")+"kg",1)]),o("div",Ta,[e[85]||(e[85]=o("span",{class:"cr-label"},"地区",-1)),p(m(a(c).case_record.region||"—"),1)])])]),o("div",za,[e[89]||(e[89]=o("div",{class:"cr-section-title"},"生命体征",-1)),o("div",La,[o("div",Ha,[e[87]||(e[87]=o("span",{class:"cr-label"},"血压",-1)),p(m(a(c).case_record.systolic_pressure!=null&&a(c).case_record.diastolic_pressure!=null?a(c).case_record.systolic_pressure+"/"+a(c).case_record.diastolic_pressure+" mmHg":"—"),1)]),o("div",Wa,[e[88]||(e[88]=o("span",{class:"cr-label"},"空腹血糖",-1)),p(m(a(c).case_record.fasting_blood_sugar!=null?a(c).case_record.fasting_blood_sugar+" mmol/L":"—"),1)])])]),o("div",Aa,[e[97]||(e[97]=o("div",{class:"cr-section-title"},"主诉",-1)),o("div",Ma,[o("div",ja,[e[90]||(e[90]=o("span",{class:"cr-label"},"诊断日期",-1)),p(m(a(c).case_record.diagnosis_date||"—"),1)]),o("div",Ba,[e[91]||(e[91]=o("span",{class:"cr-label"},"诊断类型",-1)),p(m(T(a(Se),a(c).case_record.diagnosis_type)||"—"),1)]),o("div",Fa,[e[92]||(e[92]=o("span",{class:"cr-label"},"证型",-1)),p(m(T(a(Ce),a(c).case_record.syndrome_type)||"—"),1)]),o("div",Ga,[e[93]||(e[93]=o("span",{class:"cr-label"},"糖尿病期数",-1)),p(m(T(a(We),a(c).case_record.diabetes_type)||"—"),1)]),o("div",qa,[e[94]||(e[94]=o("span",{class:"cr-label"},"发现糖尿病患病史",-1)),p(m(a(Ts)((x=a(c).case_record)==null?void 0:x.diabetes_discovery_year)),1)]),o("div",Ka,[e[95]||(e[95]=o("span",{class:"cr-label"},"当地医院诊断",-1)),p(m(Nt(a(c).case_record.local_hospital_diagnosis)),1)]),o("div",Ja,[e[96]||(e[96]=o("span",{class:"cr-label"},"当地就诊医院",-1)),p(m(a(c).case_record.local_hospital_name||"—"),1)])])]),o("div",Ya,[e[113]||(e[113]=o("div",{class:"cr-section-title"},"现病史",-1)),o("div",Xa,[o("div",Qa,[e[98]||(e[98]=o("span",{class:"cr-label"},"口腔感觉",-1)),p(m(D(a(Me),a(c).case_record.appetite)),1)]),o("div",Za,[e[99]||(e[99]=o("span",{class:"cr-label"},"每日饮水量",-1)),p(m(T(a(je),a(c).case_record.water_intake)||"—"),1)]),o("div",el,[e[100]||(e[100]=o("span",{class:"cr-label"},"体重变化",-1)),p(m(T(a(Fe),a(c).case_record.weight_change)||"—"),1)]),o("div",tl,[e[101]||(e[101]=o("span",{class:"cr-label"},"脂肪肝程度",-1)),p(m(T(a(tt),a(c).case_record.fatty_liver_degree)||"—"),1)]),o("div",sl,[e[102]||(e[102]=o("span",{class:"cr-label"},"饮食情况",-1)),p(m(D(a(Be),a(c).case_record.diet_condition)),1)]),o("div",al,[e[103]||(e[103]=o("span",{class:"cr-label"},"肢体感觉",-1)),p(m(D(a(Ge),a(c).case_record.body_feeling)),1)]),o("div",ll,[e[104]||(e[104]=o("span",{class:"cr-label"},"睡眠情况",-1)),p(m(D(a(qe),a(c).case_record.sleep_condition)),1)]),o("div",ol,[e[105]||(e[105]=o("span",{class:"cr-label"},"眼睛情况",-1)),p(m(D(a(Ke),a(c).case_record.eye_condition)),1)]),o("div",nl,[e[106]||(e[106]=o("span",{class:"cr-label"},"头部感觉",-1)),p(m(D(a(Je),a(c).case_record.head_feeling)),1)]),o("div",il,[e[107]||(e[107]=o("span",{class:"cr-label"},"出汗情况",-1)),p(m(D(a(Ye),a(c).case_record.sweat_condition)),1)]),o("div",rl,[e[108]||(e[108]=o("span",{class:"cr-label"},"皮肤情况",-1)),p(m(D(a(Xe),a(c).case_record.skin_condition)),1)]),o("div",dl,[e[109]||(e[109]=o("span",{class:"cr-label"},"小便情况",-1)),p(m(D(a(Qe),a(c).case_record.urine_condition)),1)]),o("div",ul,[e[110]||(e[110]=o("span",{class:"cr-label"},"大便情况",-1)),p(m(D(a(Ze),a(c).case_record.stool_condition)),1)]),o("div",cl,[e[111]||(e[111]=o("span",{class:"cr-label"},"腰肾情况",-1)),p(m(D(a(et),a(c).case_record.kidney_condition)),1)]),o("div",pl,[e[112]||(e[112]=o("span",{class:"cr-label"},"其他补充",-1)),p(m(a(c).case_record.symptoms||"—"),1)])])]),o("div",_l,[e[115]||(e[115]=o("div",{class:"cr-section-title"},"既往史",-1)),o("div",ml,[e[114]||(e[114]=o("span",{class:"cr-label"},null,-1)),p(m(D(a(Ae),a(c).case_record.past_history)),1)])]),o("div",gl,[e[121]||(e[121]=o("div",{class:"cr-section-title"},"其他病史",-1)),o("div",fl,[o("div",bl,[e[116]||(e[116]=o("span",{class:"cr-label"},"外伤史",-1)),p(m(a(c).case_record.trauma_history===1?"有":"无"),1)]),o("div",vl,[e[117]||(e[117]=o("span",{class:"cr-label"},"手术史",-1)),p(m(a(c).case_record.surgery_history===1?"有":"无"),1)]),o("div",yl,[e[118]||(e[118]=o("span",{class:"cr-label"},"过敏史",-1)),p(m(a(c).case_record.allergy_history===1?"有":"无"),1)]),o("div",xl,[e[119]||(e[119]=o("span",{class:"cr-label"},"家族病史",-1)),p(m(a(c).case_record.family_history===1?"有":"无"),1)]),o("div",kl,[e[120]||(e[120]=o("span",{class:"cr-label"},"妊娠哺乳史",-1)),p(m(a(c).case_record.pregnancy_history===1?"有":"无"),1)])])]),o("div",Vl,[e[124]||(e[124]=o("div",{class:"cr-section-title"},"诊断信息",-1)),(E=a(c).case_record.tongue_images)!=null&&E.length?(b(),V("div",hl,[o("div",wl,[e[122]||(e[122]=o("span",{class:"cr-label"},"舌苔照片",-1)),o("div",Sl,[(b(!0),V(j,null,se(a(c).case_record.tongue_images,(u,R)=>(b(),V("img",{key:R,src:Pt(u),class:"cr-img",crossorigin:"anonymous"},null,8,Cl))),128))])])])):h("",!0),o("div",Ul,[o("div",Rl,[e[123]||(e[123]=o("span",{class:"cr-label"},"舌象",-1)),p(m(a(c).case_record.tongue_coating||"—"),1)])])])])])],512)):h("",!0)]),a(c)&&(a(c).audit_by_name||a(c).audit_remark)?(b(),V("div",Il,[a(c).audit_by_name?(b(),V("div",Dl,[p(" 审核人:"+m(a(c).audit_by_name)+" ",1),a(c).audit_time?(b(),V("span",$l,m(xt(a(c).audit_time)),1)):h("",!0)])):h("",!0),a(c).audit_remark?(b(),V("div",Pl,"审核意见:"+m(a(c).audit_remark),1)):h("",!0)])):h("",!0),o("div",Nl,[l(f,{onClick:Yt},{default:n(()=>[l(Y,null,{default:n(()=>[l(a(ks))]),_:1}),e[125]||(e[125]=p(" 下载图片 ",-1))]),_:1}),l(f,{type:"primary",onClick:Xt},{default:n(()=>[l(Y,null,{default:n(()=>[l(a(Vs))]),_:1}),e[126]||(e[126]=p(" 下载PDF ",-1))]),_:1}),a(c).void_status!==1&&!a(re)?(b(),w(ee,{key:0,disabled:!a(Te),content:"该处方已存在业务订单,无法作废,请前往已开处方里修改",placement:"top"},{default:n(()=>[o("span",El,[l(f,{type:"danger",plain:"",disabled:a(Te),loading:a(fe),onClick:Ft},{default:n(()=>[...e[127]||(e[127]=[p(" 作废处方 ",-1)])]),_:1},8,["disabled","loading"])])]),_:1},8,["disabled"])):h("",!0),a(re)?h("",!0):(b(),w(f,{key:1,onClick:qt},{default:n(()=>[...e[128]||(e[128]=[p("新建处方",-1)])]),_:1})),l(f,{onClick:Ue},{default:n(()=>[...e[129]||(e[129]=[p("关闭",-1)])]),_:1})])])):(b(),V("div",js,[l(A,{ref_key:"formRef",ref:vt,model:a(t),"label-width":"100px",class:"prescription-form"},{default:n(()=>[o("div",Bs,[e[43]||(e[43]=o("div",{class:"section-title"},"患者信息",-1)),l(y,{gutter:16},{default:n(()=>[l(r,{span:8},{default:n(()=>[l(i,{label:"姓名"},{default:n(()=>[o("span",null,m(a(t).patient_name),1)]),_:1})]),_:1}),l(r,{span:8},{default:n(()=>[l(i,{label:"性别"},{default:n(()=>[o("span",null,m(a(t).gender_desc),1)]),_:1})]),_:1}),l(r,{span:8},{default:n(()=>[l(i,{label:"年龄"},{default:n(()=>[o("span",null,m(a(t).age),1)]),_:1})]),_:1}),l(r,{span:12},{default:n(()=>[l(i,{label:"电话"},{default:n(()=>[o("span",null,m(a(t).phone),1)]),_:1})]),_:1}),l(r,{span:12},{default:n(()=>[l(i,{label:"门诊号"},{default:n(()=>[l(_,{modelValue:a(t).visit_no,"onUpdate:modelValue":e[0]||(e[0]=u=>a(t).visit_no=u),placeholder:"门诊号"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})]),o("div",Fs,[e[44]||(e[44]=o("div",{class:"section-title"},"诊断信息",-1)),l(y,{gutter:16},{default:n(()=>[l(r,{span:12},{default:n(()=>[l(i,{label:"面象",prop:"pulse"},{default:n(()=>[l(_,{modelValue:a(t).pulse,"onUpdate:modelValue":e[1]||(e[1]=u=>a(t).pulse=u),placeholder:"面象"},null,8,["modelValue"])]),_:1})]),_:1}),l(r,{span:12},{default:n(()=>[l(i,{label:"舌象",prop:"tongue"},{default:n(()=>[l(_,{modelValue:a(t).tongue,"onUpdate:modelValue":e[2]||(e[2]=u=>a(t).tongue=u),placeholder:"舌象"},null,8,["modelValue"])]),_:1})]),_:1}),l(r,{span:24},{default:n(()=>[l(i,{label:"临床诊断",prop:"clinical_diagnosis"},{default:n(()=>[l(_,{modelValue:a(t).clinical_diagnosis,"onUpdate:modelValue":e[3]||(e[3]=u=>a(t).clinical_diagnosis=u),type:"textarea",rows:2,placeholder:"请输入临床诊断"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})]),o("div",Gs,[o("div",qs,[o("div",Ks,[e[49]||(e[49]=o("span",{class:"rp-toolbar__marker","aria-hidden":"true"},null,-1)),o("div",Js,[e[48]||(e[48]=o("h3",{class:"rp-toolbar__heading"},[p(" 中药处方 "),o("span",{class:"rp-toolbar__abbr"},"(RP)")],-1)),o("p",Ys,[e[45]||(e[45]=p(" 共 ",-1)),o("strong",null,m(a(t).herbs.length),1),p(" 味(主方 "+m(a(kt))+" / 辅方 "+m(a(Vt))+")· 可手动添加、从处方库或粘贴药方批量录入 ",1)]),a($)?(b(),V("p",Xs,[l(g,{type:"danger",size:"small",effect:"plain"},{default:n(()=>[...e[46]||(e[46]=[p("禁用修改",-1)])]),_:1}),e[47]||(e[47]=p(" 含「禁用修改」处方库模板,药材已锁定,不可增删改,如需调整请重新「从处方库导入」覆盖 ",-1))])):h("",!0)])]),o("div",Qs,[l(f,{type:"primary",size:"small",icon:a(cs),disabled:a($),onClick:e[4]||(e[4]=u=>ot("主方"))},{default:n(()=>[...e[50]||(e[50]=[p(" 添加主方 ",-1)])]),_:1},8,["icon","disabled"]),l(f,{type:"primary",plain:"",size:"small",disabled:a($),onClick:e[5]||(e[5]=u=>ot("辅方"))},{default:n(()=>[...e[51]||(e[51]=[p(" 添加辅方 ",-1)])]),_:1},8,["disabled"]),l(f,{type:"primary",plain:"",size:"small",icon:a(ps),onClick:At},{default:n(()=>[...e[52]||(e[52]=[p(" 从处方库导入 ",-1)])]),_:1},8,["icon"]),l(f,{type:"primary",plain:"",size:"small",icon:a(_s),onClick:It},{default:n(()=>[...e[53]||(e[53]=[p(" 导入药方 ",-1)])]),_:1},8,["icon"])])]),o("div",Zs,[l(i,{label:"处方价格",prop:"amount",class:"!mb-0"},{default:n(()=>[l(S,{modelValue:a(t).amount,"onUpdate:modelValue":e[6]||(e[6]=u=>a(t).amount=u),min:0,precision:2,placeholder:"请输入处方总价(元)",class:"!w-40"},null,8,["modelValue"]),e[54]||(e[54]=o("span",{class:"ml-2 text-gray-500"},"元",-1))]),_:1})]),o("div",ea,[o("div",ta,[l(g,{type:"primary",size:"small"},{default:n(()=>[...e[55]||(e[55]=[p("主方",-1)])]),_:1})]),o("div",sa,[(b(!0),V(j,null,se(a(ze),u=>(b(),V("div",{key:"main-"+u.index,class:ct(["herb-editor-card",{"herb-editor-card--dup":ce(u.index)}])},[o("div",aa,"主方 "+m(u.index+1),1),l(mt,{modelValue:a(t).herbs[u.index].name,"onUpdate:modelValue":R=>a(t).herbs[u.index].name=R,"medicine-id":a(t).herbs[u.index].medicine_id,"onUpdate:medicineId":R=>a(t).herbs[u.index].medicine_id=R,disabled:a($),class:"herb-editor-card__select"},null,8,["modelValue","onUpdate:modelValue","medicine-id","onUpdate:medicineId","disabled"]),ce(u.index)?(b(),V("div",la," 该药名与其他行重复,请合并剂量或删除多余行 ")):h("",!0),o("div",oa,[l(S,{modelValue:a(t).herbs[u.index].dosage,"onUpdate:modelValue":R=>a(t).herbs[u.index].dosage=R,min:.1,step:1,precision:1,disabled:a($),placeholder:"剂量(克)",class:"herb-editor-card__dose"},null,8,["modelValue","onUpdate:modelValue","disabled"]),e[57]||(e[57]=o("span",{class:"text-gray-500 shrink-0"},"克",-1)),a($)?h("",!0):(b(),w(f,{key:0,type:"danger",size:"small",link:"",onClick:R=>nt(u.index)},{default:n(()=>[...e[56]||(e[56]=[p(" 删除 ",-1)])]),_:1},8,["onClick"]))])],2))),128))])]),o("div",na,[o("div",ia,[l(g,{type:"warning",size:"small"},{default:n(()=>[...e[58]||(e[58]=[p("辅方",-1)])]),_:1})]),o("div",ra,[(b(!0),V(j,null,se(a(X),u=>(b(),V("div",{key:"aux-"+u.index,class:ct(["herb-editor-card",{"herb-editor-card--dup":ce(u.index)}])},[e[61]||(e[61]=o("div",{class:"herb-editor-card__title"},"辅方",-1)),l(mt,{modelValue:a(t).herbs[u.index].name,"onUpdate:modelValue":R=>a(t).herbs[u.index].name=R,"medicine-id":a(t).herbs[u.index].medicine_id,"onUpdate:medicineId":R=>a(t).herbs[u.index].medicine_id=R,disabled:a($),class:"herb-editor-card__select"},null,8,["modelValue","onUpdate:modelValue","medicine-id","onUpdate:medicineId","disabled"]),ce(u.index)?(b(),V("div",da," 该药名与其他行重复,请合并剂量或删除多余行 ")):h("",!0),o("div",ua,[l(S,{modelValue:a(t).herbs[u.index].dosage,"onUpdate:modelValue":R=>a(t).herbs[u.index].dosage=R,min:.1,step:1,precision:1,disabled:a($),placeholder:"剂量(克)",class:"herb-editor-card__dose"},null,8,["modelValue","onUpdate:modelValue","disabled"]),e[60]||(e[60]=o("span",{class:"text-gray-500 shrink-0"},"克",-1)),a($)?h("",!0):(b(),w(f,{key:0,type:"danger",size:"small",link:"",onClick:R=>nt(u.index)},{default:n(()=>[...e[59]||(e[59]=[p(" 删除 ",-1)])]),_:1},8,["onClick"]))])],2))),128)),a(X).length?h("",!0):(b(),V("p",ca,"暂无辅方药材"))])])]),o("div",pa,[l(y,{gutter:16},{default:n(()=>[l(r,{span:8},{default:n(()=>[l(i,{label:"处方类型",prop:"prescription_type"},{default:n(()=>[l(C,{modelValue:a(t).prescription_type,"onUpdate:modelValue":e[7]||(e[7]=u=>a(t).prescription_type=u),placeholder:"请选择处方类型",class:"!w-full"},{default:n(()=>[l(d,{label:"浓缩水丸",value:"浓缩水丸"}),l(d,{label:"饮片",value:"饮片"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(r,{span:24},{default:n(()=>[...e[62]||(e[62]=[o("div",{class:"usage-formula-title usage-formula-title--main"},"主方用法",-1)])]),_:1}),l(r,{span:8},{default:n(()=>[l(i,{label:"用量",prop:"dosage_amount"},{default:n(()=>[a(t).prescription_type==="浓缩水丸"?(b(),w(C,{key:0,modelValue:a(t).dosage_amount,"onUpdate:modelValue":e[8]||(e[8]=u=>a(t).dosage_amount=u),placeholder:"请选择用量",class:"!w-full"},{default:n(()=>[l(d,{label:"1g",value:1}),l(d,{label:"2g",value:2}),l(d,{label:"3g",value:3}),l(d,{label:"4g",value:4}),l(d,{label:"5g",value:5}),l(d,{label:"6g",value:6}),l(d,{label:"7g",value:7}),l(d,{label:"8g",value:8}),l(d,{label:"9g",value:9}),l(d,{label:"10g",value:10})]),_:1},8,["modelValue"])):a(t).prescription_type==="饮片"?(b(),w(C,{key:1,modelValue:a(t).dosage_amount,"onUpdate:modelValue":e[9]||(e[9]=u=>a(t).dosage_amount=u),placeholder:"请选择用量",class:"!w-full"},{default:n(()=>[l(d,{label:"50ml",value:50}),l(d,{label:"100ml",value:100}),l(d,{label:"120ml",value:120}),l(d,{label:"150ml",value:150}),l(d,{label:"180ml",value:180}),l(d,{label:"200ml",value:200}),l(d,{label:"250ml",value:250})]),_:1},8,["modelValue"])):(b(),w(S,{key:2,modelValue:a(t).dosage_amount,"onUpdate:modelValue":e[10]||(e[10]=u=>a(t).dosage_amount=u),min:0,precision:2,class:"!w-full"},null,8,["modelValue"])),a(t).prescription_type!=="浓缩水丸"&&a(t).prescription_type!=="饮片"?(b(),V("span",_a,m(a(t).dosage_unit),1)):h("",!0)]),_:1})]),_:1}),a(t).prescription_type==="浓缩水丸"?(b(),w(r,{key:0,span:8},{default:n(()=>[l(i,{label:" ",prop:"dosage_bag_count","label-width":"12px"},{default:n(()=>[l(C,{modelValue:a(t).dosage_bag_count,"onUpdate:modelValue":e[11]||(e[11]=u=>a(t).dosage_bag_count=u),placeholder:"请选择袋数",class:"!w-[120px]"},{default:n(()=>[l(d,{label:"1袋",value:1}),l(d,{label:"2袋",value:2}),l(d,{label:"3袋",value:3}),l(d,{label:"4袋",value:4}),l(d,{label:"5袋",value:5})]),_:1},8,["modelValue"])]),_:1})]),_:1})):h("",!0),a(t).prescription_type==="饮片"?(b(),w(r,{key:1,span:8},{default:n(()=>[l(i,{label:"每贴出包数",prop:"bags_per_dose"},{default:n(()=>[l(C,{modelValue:a(t).bags_per_dose,"onUpdate:modelValue":e[12]||(e[12]=u=>a(t).bags_per_dose=u),placeholder:"请选择",class:"!w-full"},{default:n(()=>[l(d,{label:"1包",value:1}),l(d,{label:"2包",value:2}),l(d,{label:"3包",value:3}),l(d,{label:"4包",value:4}),l(d,{label:"5包",value:5}),l(d,{label:"6包",value:6}),l(d,{label:"7包",value:7}),l(d,{label:"8包",value:8}),l(d,{label:"9包",value:9})]),_:1},8,["modelValue"])]),_:1})]),_:1})):h("",!0),a(t).prescription_type==="饮片"?(b(),w(r,{key:2,span:8},{default:n(()=>[l(i,{label:"是否代煎",prop:"need_decoction"},{default:n(()=>[l(P,{modelValue:a(t).need_decoction,"onUpdate:modelValue":e[13]||(e[13]=u=>a(t).need_decoction=u)},{default:n(()=>[l(I,{label:!0},{default:n(()=>[...e[63]||(e[63]=[p("代煎",-1)])]),_:1}),l(I,{label:!1},{default:n(()=>[...e[64]||(e[64]=[p("不代煎",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})):h("",!0),l(r,{span:8},{default:n(()=>[l(i,{label:"服用天数",prop:"usage_days"},{default:n(()=>[l(S,{modelValue:a(t).usage_days,"onUpdate:modelValue":e[14]||(e[14]=u=>a(t).usage_days=u),min:1,max:365,class:"!w-full"},null,8,["modelValue"])]),_:1})]),_:1}),l(r,{span:8},{default:n(()=>[l(i,{label:"每天几次",prop:"times_per_day"},{default:n(()=>[l(S,{modelValue:a(t).times_per_day,"onUpdate:modelValue":e[15]||(e[15]=u=>a(t).times_per_day=u),min:1,max:6,class:"!w-full",placeholder:"每天服用次数"},null,8,["modelValue"])]),_:1})]),_:1}),a(X).length>0?(b(),V(j,{key:3},[l(r,{span:24},{default:n(()=>[...e[65]||(e[65]=[o("div",{class:"usage-formula-title usage-formula-title--aux"},"辅方用法",-1)])]),_:1}),l(r,{span:8},{default:n(()=>[l(i,{label:"用量"},{default:n(()=>[a(t).prescription_type==="浓缩水丸"?(b(),w(C,{key:0,modelValue:a(t).aux_usage.dosage_amount,"onUpdate:modelValue":e[16]||(e[16]=u=>a(t).aux_usage.dosage_amount=u),placeholder:"请选择用量",class:"!w-full"},{default:n(()=>[(b(),V(j,null,se(10,u=>l(d,{key:u,label:u+"g",value:u},null,8,["label","value"])),64))]),_:1},8,["modelValue"])):a(t).prescription_type==="饮片"?(b(),w(C,{key:1,modelValue:a(t).aux_usage.dosage_amount,"onUpdate:modelValue":e[17]||(e[17]=u=>a(t).aux_usage.dosage_amount=u),placeholder:"请选择用量",class:"!w-full"},{default:n(()=>[l(d,{label:"50ml",value:50}),l(d,{label:"100ml",value:100}),l(d,{label:"120ml",value:120}),l(d,{label:"150ml",value:150}),l(d,{label:"180ml",value:180}),l(d,{label:"200ml",value:200}),l(d,{label:"250ml",value:250})]),_:1},8,["modelValue"])):(b(),w(S,{key:2,modelValue:a(t).aux_usage.dosage_amount,"onUpdate:modelValue":e[18]||(e[18]=u=>a(t).aux_usage.dosage_amount=u),min:0,precision:2,class:"!w-full"},null,8,["modelValue"]))]),_:1})]),_:1}),a(t).prescription_type==="浓缩水丸"?(b(),w(r,{key:0,span:8},{default:n(()=>[l(i,{label:" ","label-width":"12px"},{default:n(()=>[l(C,{modelValue:a(t).aux_usage.dosage_bag_count,"onUpdate:modelValue":e[19]||(e[19]=u=>a(t).aux_usage.dosage_bag_count=u),placeholder:"请选择袋数",class:"!w-[120px]"},{default:n(()=>[l(d,{label:"1袋",value:1}),l(d,{label:"2袋",value:2}),l(d,{label:"3袋",value:3}),l(d,{label:"4袋",value:4}),l(d,{label:"5袋",value:5})]),_:1},8,["modelValue"])]),_:1})]),_:1})):h("",!0),a(t).prescription_type==="饮片"?(b(),w(r,{key:1,span:8},{default:n(()=>[l(i,{label:"是否代煎"},{default:n(()=>[l(P,{modelValue:a(t).aux_usage.need_decoction,"onUpdate:modelValue":e[20]||(e[20]=u=>a(t).aux_usage.need_decoction=u)},{default:n(()=>[l(I,{label:!0},{default:n(()=>[...e[66]||(e[66]=[p("代煎",-1)])]),_:1}),l(I,{label:!1},{default:n(()=>[...e[67]||(e[67]=[p("不代煎",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})):h("",!0),a(t).prescription_type==="饮片"?(b(),w(r,{key:2,span:8},{default:n(()=>[l(i,{label:"每贴出包数"},{default:n(()=>[l(C,{modelValue:a(t).aux_usage.bags_per_dose,"onUpdate:modelValue":e[21]||(e[21]=u=>a(t).aux_usage.bags_per_dose=u),placeholder:"请选择",class:"!w-full"},{default:n(()=>[(b(),V(j,null,se(9,u=>l(d,{key:u,label:u+"包",value:u},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1})):h("",!0),l(r,{span:8},{default:n(()=>[l(i,{label:"每天几次"},{default:n(()=>[l(S,{modelValue:a(t).aux_usage.times_per_day,"onUpdate:modelValue":e[22]||(e[22]=u=>a(t).aux_usage.times_per_day=u),min:1,max:6,class:"!w-full",placeholder:"每天服用次数"},null,8,["modelValue"])]),_:1})]),_:1}),l(r,{span:8},{default:n(()=>[l(i,{label:"服用天数"},{default:n(()=>[l(S,{modelValue:a(t).aux_usage.usage_days,"onUpdate:modelValue":e[23]||(e[23]=u=>a(t).aux_usage.usage_days=u),min:1,max:365,class:"!w-full"},null,8,["modelValue"])]),_:1})]),_:1})],64)):h("",!0),l(r,{span:24},{default:n(()=>[l(i,{label:"用法",prop:"usage_instruction"},{default:n(()=>[l(_,{modelValue:a(t).usage_instruction,"onUpdate:modelValue":e[24]||(e[24]=u=>a(t).usage_instruction=u),placeholder:"",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1}),l(r,{span:12},{default:n(()=>[l(i,{label:"服用时间",prop:"usage_time"},{default:n(()=>[l(C,{modelValue:a(t).usage_time,"onUpdate:modelValue":e[25]||(e[25]=u=>a(t).usage_time=u),placeholder:"请选择服用时间",class:"!w-full"},{default:n(()=>[l(d,{label:"饭前",value:"饭前"}),l(d,{label:"饭后",value:"饭后"}),l(d,{label:"饭中",value:"饭中"}),l(d,{label:"空腹",value:"空腹"}),l(d,{label:"睡前",value:"睡前"}),l(d,{label:"晨起",value:"晨起"}),l(d,{label:"随时",value:"随时"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(r,{span:12},{default:n(()=>[l(i,{label:"服用方式",prop:"usage_way"},{default:n(()=>[l(C,{modelValue:a(t).usage_way,"onUpdate:modelValue":e[26]||(e[26]=u=>a(t).usage_way=u),placeholder:"请选择服用方式",class:"!w-full"},{default:n(()=>[l(d,{label:"温水送服",value:"温水送服"}),l(d,{label:"开水冲服",value:"开水冲服"}),l(d,{label:"黄酒送服",value:"黄酒送服"}),l(d,{label:"淡盐水送服",value:"淡盐水送服"}),l(d,{label:"米汤送服",value:"米汤送服"}),l(d,{label:"嚼服",value:"嚼服"}),l(d,{label:"含化",value:"含化"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(r,{span:24},{default:n(()=>[l(i,{label:"忌口",prop:"dietary_taboo"},{default:n(()=>[l(C,{modelValue:a(t).dietary_taboo,"onUpdate:modelValue":e[27]||(e[27]=u=>a(t).dietary_taboo=u),multiple:"",placeholder:"请选择忌口内容(可多选)",class:"!w-full"},{default:n(()=>[l(d,{label:"辛辣食物",value:"辛辣食物"}),l(d,{label:"生冷食物",value:"生冷食物"}),l(d,{label:"油腻食物",value:"油腻食物"}),l(d,{label:"海鲜",value:"海鲜"}),l(d,{label:"牛羊肉",value:"牛羊肉"}),l(d,{label:"鸡蛋",value:"鸡蛋"}),l(d,{label:"豆制品",value:"豆制品"}),l(d,{label:"酒类",value:"酒类"}),l(d,{label:"浓茶",value:"浓茶"}),l(d,{label:"咖啡",value:"咖啡"}),l(d,{label:"烟草",value:"烟草"}),l(d,{label:"萝卜",value:"萝卜"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(r,{span:24},{default:n(()=>[l(i,{label:"其他说明",prop:"usage_notes"},{default:n(()=>[l(_,{modelValue:a(t).usage_notes,"onUpdate:modelValue":e[28]||(e[28]=u=>a(t).usage_notes=u),type:"textarea",rows:2,placeholder:"其他服用注意事项",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1}),l(r,{span:12},{default:n(()=>[l(i,{label:"医师",prop:"doctor_name"},{default:n(()=>[l(_,{modelValue:a(t).doctor_name,"onUpdate:modelValue":e[29]||(e[29]=u=>a(t).doctor_name=u),placeholder:"医师姓名"},null,8,["modelValue"])]),_:1})]),_:1}),l(r,{span:12},{default:n(()=>[l(i,{label:"是否共享",prop:"is_shared"},{default:n(()=>[l(W,{modelValue:a(t).is_shared,"onUpdate:modelValue":e[30]||(e[30]=u=>a(t).is_shared=u),"active-value":1,"inactive-value":0,"active-text":"所有人可见","inactive-text":"仅自己可见"},null,8,["modelValue"])]),_:1})]),_:1}),l(r,{span:24},{default:n(()=>[l(i,{label:"医师签名",prop:"doctor_signature",required:""},{default:n(()=>[o("div",ma,[o("canvas",{ref_key:"signatureCanvasRef",ref:L,class:"signature-canvas",onPointerdown:ae(Lt,["prevent"]),onPointermove:ae(Ht,["prevent"]),onPointerup:ae(lt,["prevent"]),onPointercancel:ae(lt,["prevent"])},null,544),o("div",ga,[l(f,{size:"small",onClick:Wt},{default:n(()=>[...e[68]||(e[68]=[p("清空签名",-1)])]),_:1})])]),e[69]||(e[69]=o("div",{class:"text-xs text-amber-600 mt-1"},"* 必填,请在框内手写医师签名",-1))]),_:1})]),_:1})]),_:1})])]),_:1},8,["model"])]))]}),_:2},[a(c)?void 0:{name:"footer",fn:n(()=>[o("div",Ol,[l(f,{onClick:Ue},{default:n(()=>[...e[130]||(e[130]=[p("取消",-1)])]),_:1}),l(f,{type:"primary",onClick:jt,loading:a(ge)},{default:n(()=>[...e[131]||(e[131]=[p("保存处方",-1)])]),_:1},8,["loading"])])]),key:"0"}]),1032,["modelValue","title"]),l(dt,{modelValue:a(H),"onUpdate:modelValue":e[37]||(e[37]=x=>N(H)?H.value=x:null),title:"从处方库导入",width:"800px","close-on-click-modal":!1},{default:n(()=>[o("div",Tl,[l(_,{modelValue:a(Q),"onUpdate:modelValue":e[32]||(e[32]=x=>N(Q)?Q.value=x:null),class:"flex-1",placeholder:"请输入处方名称搜索",clearable:"",onKeyup:Ss(_e,["enter"]),onClear:_e},{append:n(()=>[l(f,{icon:a(Cs),onClick:_e},null,8,["icon"])]),_:1},8,["modelValue"]),l(C,{modelValue:a(Z),"onUpdate:modelValue":e[33]||(e[33]=x=>N(Z)?Z.value=x:null),placeholder:"处方类型",clearable:"",class:"w-[140px]",onChange:_e},{default:n(()=>[l(d,{label:"全部",value:""}),l(d,{label:"主方",value:"主方"}),l(d,{label:"辅方",value:"辅方"})]),_:1},8,["modelValue"])]),o("div",zl,[e[134]||(e[134]=o("span",{class:"text-sm text-gray-600 shrink-0"},"导入方式",-1)),l(P,{modelValue:a(F),"onUpdate:modelValue":e[34]||(e[34]=x=>N(F)?F.value=x:null)},{default:n(()=>[l(I,{label:"replace"},{default:n(()=>[...e[132]||(e[132]=[p("覆盖同类型药材",-1)])]),_:1}),l(I,{label:"append"},{default:n(()=>[...e[133]||(e[133]=[p("追加到末尾",-1)])]),_:1})]),_:1},8,["modelValue"])]),Us((b(),w(Qt,{data:a(xe),height:"400",onRowClick:Mt,style:{cursor:"pointer"}},{default:n(()=>[l(M,{label:"处方名称",prop:"prescription_name","min-width":"150","show-overflow-tooltip":""}),l(M,{label:"处方类型",width:"90"},{default:n(({row:x})=>[l(g,{type:x.formula_type==="辅方"?"warning":"primary",size:"small"},{default:n(()=>[p(m(x.formula_type||"主方"),1)]),_:2},1032,["type"])]),_:1}),l(M,{label:"药材数量",width:"100"},{default:n(({row:x})=>{var E;return[p(m(((E=x.herbs)==null?void 0:E.length)||0)+"味 ",1)]}),_:1}),l(M,{label:"药材明细","min-width":"300","show-overflow-tooltip":""},{default:n(({row:x})=>[x.herbs&&x.herbs.length>0?(b(),V("span",Ll,m(x.herbs.map(E=>`${E.name} ${E.dosage}g`).join("、")),1)):(b(),V("span",Hl,"暂无药材"))]),_:1}),l(M,{label:"是否公开",width:"110"},{default:n(({row:x})=>[l(g,{type:x.is_public?"success":"info",size:"small"},{default:n(()=>[p(m(x.is_public?"所有人可见":"仅自己可见"),1)]),_:2},1032,["type"])]),_:1}),l(M,{label:"创建人",prop:"creator_name",width:"100"}),l(M,{label:"操作",width:"100",fixed:"right"},{default:n(({row:x})=>[l(f,{type:"primary",link:"",onClick:ae(E=>it(x),["stop"])},{default:n(()=>[...e[135]||(e[135]=[p(" 导入 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[es,a(ye)]]),o("div",Wl,[l(Zt,{"current-page":a(q),"onUpdate:currentPage":e[35]||(e[35]=x=>N(q)?q.value=x:null),"page-size":a(de),"onUpdate:pageSize":e[36]||(e[36]=x=>N(de)?de.value=x:null),total:a(ke),"page-sizes":[10,15,20,50],layout:"total, sizes, prev, pager, next",onCurrentChange:pe,onSizeChange:pe},null,8,["current-page","page-size","total"])])]),_:1},8,["modelValue"]),l(dt,{modelValue:a(K),"onUpdate:modelValue":e[41]||(e[41]=x=>N(K)?K.value=x:null),title:"导入药方(识别药材)",width:"560px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:e[42]||(e[42]=x=>J.value="")},{footer:n(()=>[l(f,{onClick:e[40]||(e[40]=x=>K.value=!1)},{default:n(()=>[...e[140]||(e[140]=[p("取消",-1)])]),_:1}),l(f,{type:"primary",loading:a(Ve),onClick:Dt},{default:n(()=>[...e[141]||(e[141]=[p(" 识别并导入 ",-1)])]),_:1},8,["loading"])]),default:n(()=>[e[142]||(e[142]=o("p",{class:"text-gray-500 text-sm mb-2 leading-relaxed"}," 粘贴整张药方文本,系统按「药名 + 剂量」解析;药名须与药品库中名称完全一致才会录入,否则跳过。支持顿号/逗号/换行分隔;单行可用空格分味(如「黄芪15g 白术10g」);「黄芪、党参各10克」等同剂量写法亦可识别。 ",-1)),l(_,{modelValue:a(J),"onUpdate:modelValue":e[38]||(e[38]=x=>N(J)?J.value=x:null),type:"textarea",rows:10,placeholder:`示例: 黄芪15 党参12 茯苓10 diff --git a/server/public/admin/assets/index-CdyfCy0x.js b/server/public/admin/assets/index-CdyfCy0x.js new file mode 100644 index 000000000..6ec393a5b --- /dev/null +++ b/server/public/admin/assets/index-CdyfCy0x.js @@ -0,0 +1 @@ +import o from"./CohortReport-CBHGIK9p.js";import{o as t,q as e,O as r}from"./.pnpm-CyuAWpdG.js";import"./stats-B9TgZYZ_.js";import"./index-Bkarz3gO.js";import"./perm-CHCBwnFR.js";const a=t({name:"revisitAssignRateStatsPage"}),u=t({...a,setup(p){return(s,n)=>(e(),r(o,{"cohort-type":"new"}))}});export{u as default}; diff --git a/server/public/admin/assets/index-LBcS4UGs.js b/server/public/admin/assets/index-CfCnk281.js similarity index 92% rename from server/public/admin/assets/index-LBcS4UGs.js rename to server/public/admin/assets/index-CfCnk281.js index 629658d58..9ae3c7cca 100644 --- a/server/public/admin/assets/index-LBcS4UGs.js +++ b/server/public/admin/assets/index-CfCnk281.js @@ -1 +1 @@ -import{o as $,bp as q,q as r,r as A,v as e,D as l,bd as I,u as a,bb as O,aA as M,bc as V,bh as G,bi as H,K as J,L as m,bj as Q,s as E,ac as y,O as c,bk as W,bl as X,bm as Y,T as Z,bn as ee,C as te,P as ae,a8 as le,M as oe,aC as se,n as x}from"./.pnpm-CyuAWpdG.js";import{_ as ne}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as ie,j as de}from"./index-Dxvz9lb1.js";import{_ as re}from"./index.vue_vue_type_script_setup_true_lang-98A4_fZW.js";import{d as j,e as me}from"./post-B9rSvSIv.js";import{u as pe}from"./usePaging-CghUEVfD.js";import{_ as ue}from"./edit.vue_vue_type_script_setup_true_lang-CezjvrER.js";import"./index-BnfLT5cB.js";const ce={class:"post-lists"},_e={class:"flex justify-end mt-4"},fe=$({name:"post"}),xe=$({...fe,setup(be){const _=le(),f=oe(!1),s=se({code:"",name:"",status:""}),{pager:d,getLists:b,resetPage:g,resetParams:h}=pe({fetchFun:j,params:s}),D=async()=>{var n;f.value=!0,await x(),(n=_.value)==null||n.open("add")},K=async n=>{var t,p;f.value=!0,await x(),(t=_.value)==null||t.open("edit"),(p=_.value)==null||p.getDetail(n)},P=async n=>{await de.confirm("确定要删除?"),await me({id:n}),b()};return b(),(n,t)=>{const p=M,v=O,w=H,T=G,u=J,B=re,R=I,C=Q,z=ie,i=X,L=Y,N=W,S=ne,k=q("perms"),U=ee;return r(),A("div",ce,[e(C,{class:"!border-none",shadow:"never"},{default:l(()=>[e(R,{ref:"formRef",class:"mb-[-16px]",model:a(s),inline:!0},{default:l(()=>[e(v,{class:"w-[280px]",label:"岗位编码"},{default:l(()=>[e(p,{modelValue:a(s).code,"onUpdate:modelValue":t[0]||(t[0]=o=>a(s).code=o),placeholder:"请输入岗位编码",clearable:"",onKeyup:V(a(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(v,{class:"w-[280px]",label:"岗位名称"},{default:l(()=>[e(p,{modelValue:a(s).name,"onUpdate:modelValue":t[1]||(t[1]=o=>a(s).name=o),clearable:"",onKeyup:V(a(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(v,{class:"w-[280px]",label:"岗位状态"},{default:l(()=>[e(T,{modelValue:a(s).status,"onUpdate:modelValue":t[2]||(t[2]=o=>a(s).status=o)},{default:l(()=>[e(w,{label:"全部",value:""}),e(w,{label:"正常",value:1}),e(w,{label:"停用",value:0})]),_:1},8,["modelValue"])]),_:1}),e(v,null,{default:l(()=>[e(u,{type:"primary",onClick:a(g)},{default:l(()=>[...t[6]||(t[6]=[m("查询",-1)])]),_:1},8,["onClick"]),e(u,{onClick:a(h)},{default:l(()=>[...t[7]||(t[7]=[m("重置",-1)])]),_:1},8,["onClick"]),e(B,{class:"ml-2.5","fetch-fun":a(j),params:a(s),"page-size":a(d).size},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1},8,["model"])]),_:1}),e(C,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[E("div",null,[y((r(),c(u,{type:"primary",onClick:t[3]||(t[3]=o=>D())},{icon:l(()=>[e(z,{name:"el-icon-Plus"})]),default:l(()=>[t[8]||(t[8]=m(" 新增 ",-1))]),_:1})),[[k,["dept.jobs/add"]]])]),y((r(),c(N,{class:"mt-4",size:"large",data:a(d).lists},{default:l(()=>[e(i,{label:"岗位编码",prop:"code","min-width":"100"}),e(i,{label:"岗位名称",prop:"name","min-width":"100"}),e(i,{label:"排序",prop:"sort","min-width":"100"}),e(i,{label:"备注",prop:"remark","min-width":"100","show-overflow-tooltip":""}),e(i,{label:"添加时间",prop:"create_time","min-width":"180"}),e(i,{label:"状态",prop:"status","min-width":"100"},{default:l(({row:o})=>[e(L,{class:"ml-2",type:o.status?"primary":"danger"},{default:l(()=>[m(Z(o.status_desc),1)]),_:2},1032,["type"])]),_:1}),e(i,{label:"操作",width:"120",fixed:"right"},{default:l(({row:o})=>[y((r(),c(u,{type:"primary",link:"",onClick:F=>K(o)},{default:l(()=>[...t[9]||(t[9]=[m(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[k,["dept.jobs/edit"]]]),y((r(),c(u,{type:"danger",link:"",onClick:F=>P(o.id)},{default:l(()=>[...t[10]||(t[10]=[m(" 删除 ",-1)])]),_:1},8,["onClick"])),[[k,["dept.jobs/delete"]]])]),_:1})]),_:1},8,["data"])),[[U,a(d).loading]]),E("div",_e,[e(S,{modelValue:a(d),"onUpdate:modelValue":t[4]||(t[4]=o=>te(d)?d.value=o:null),onChange:a(b)},null,8,["modelValue","onChange"])])]),_:1}),a(f)?(r(),c(ue,{key:0,ref_key:"editRef",ref:_,onSuccess:a(b),onClose:t[5]||(t[5]=o=>f.value=!1)},null,8,["onSuccess"])):ae("",!0)])}}});export{xe as default}; +import{o as $,bp as q,q as r,r as A,v as e,D as l,bd as I,u as a,bb as O,aA as M,bc as V,bh as G,bi as H,K as J,L as m,bj as Q,s as E,ac as y,O as c,bk as W,bl as X,bm as Y,T as Z,bn as ee,C as te,P as ae,a8 as le,M as oe,aC as se,n as x}from"./.pnpm-CyuAWpdG.js";import{_ as ne}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as ie,j as de}from"./index-Bkarz3gO.js";import{_ as re}from"./index.vue_vue_type_script_setup_true_lang-CQzUr1BT.js";import{d as j,e as me}from"./post-DqkuJrmM.js";import{u as pe}from"./usePaging-CghUEVfD.js";import{_ as ue}from"./edit.vue_vue_type_script_setup_true_lang-Co2sfVXO.js";import"./index-CS5Wg0xx.js";const ce={class:"post-lists"},_e={class:"flex justify-end mt-4"},fe=$({name:"post"}),xe=$({...fe,setup(be){const _=le(),f=oe(!1),s=se({code:"",name:"",status:""}),{pager:d,getLists:b,resetPage:g,resetParams:h}=pe({fetchFun:j,params:s}),D=async()=>{var n;f.value=!0,await x(),(n=_.value)==null||n.open("add")},K=async n=>{var t,p;f.value=!0,await x(),(t=_.value)==null||t.open("edit"),(p=_.value)==null||p.getDetail(n)},P=async n=>{await de.confirm("确定要删除?"),await me({id:n}),b()};return b(),(n,t)=>{const p=M,v=O,w=H,T=G,u=J,B=re,R=I,C=Q,z=ie,i=X,L=Y,N=W,S=ne,k=q("perms"),U=ee;return r(),A("div",ce,[e(C,{class:"!border-none",shadow:"never"},{default:l(()=>[e(R,{ref:"formRef",class:"mb-[-16px]",model:a(s),inline:!0},{default:l(()=>[e(v,{class:"w-[280px]",label:"岗位编码"},{default:l(()=>[e(p,{modelValue:a(s).code,"onUpdate:modelValue":t[0]||(t[0]=o=>a(s).code=o),placeholder:"请输入岗位编码",clearable:"",onKeyup:V(a(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(v,{class:"w-[280px]",label:"岗位名称"},{default:l(()=>[e(p,{modelValue:a(s).name,"onUpdate:modelValue":t[1]||(t[1]=o=>a(s).name=o),clearable:"",onKeyup:V(a(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(v,{class:"w-[280px]",label:"岗位状态"},{default:l(()=>[e(T,{modelValue:a(s).status,"onUpdate:modelValue":t[2]||(t[2]=o=>a(s).status=o)},{default:l(()=>[e(w,{label:"全部",value:""}),e(w,{label:"正常",value:1}),e(w,{label:"停用",value:0})]),_:1},8,["modelValue"])]),_:1}),e(v,null,{default:l(()=>[e(u,{type:"primary",onClick:a(g)},{default:l(()=>[...t[6]||(t[6]=[m("查询",-1)])]),_:1},8,["onClick"]),e(u,{onClick:a(h)},{default:l(()=>[...t[7]||(t[7]=[m("重置",-1)])]),_:1},8,["onClick"]),e(B,{class:"ml-2.5","fetch-fun":a(j),params:a(s),"page-size":a(d).size},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1},8,["model"])]),_:1}),e(C,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[E("div",null,[y((r(),c(u,{type:"primary",onClick:t[3]||(t[3]=o=>D())},{icon:l(()=>[e(z,{name:"el-icon-Plus"})]),default:l(()=>[t[8]||(t[8]=m(" 新增 ",-1))]),_:1})),[[k,["dept.jobs/add"]]])]),y((r(),c(N,{class:"mt-4",size:"large",data:a(d).lists},{default:l(()=>[e(i,{label:"岗位编码",prop:"code","min-width":"100"}),e(i,{label:"岗位名称",prop:"name","min-width":"100"}),e(i,{label:"排序",prop:"sort","min-width":"100"}),e(i,{label:"备注",prop:"remark","min-width":"100","show-overflow-tooltip":""}),e(i,{label:"添加时间",prop:"create_time","min-width":"180"}),e(i,{label:"状态",prop:"status","min-width":"100"},{default:l(({row:o})=>[e(L,{class:"ml-2",type:o.status?"primary":"danger"},{default:l(()=>[m(Z(o.status_desc),1)]),_:2},1032,["type"])]),_:1}),e(i,{label:"操作",width:"120",fixed:"right"},{default:l(({row:o})=>[y((r(),c(u,{type:"primary",link:"",onClick:F=>K(o)},{default:l(()=>[...t[9]||(t[9]=[m(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[k,["dept.jobs/edit"]]]),y((r(),c(u,{type:"danger",link:"",onClick:F=>P(o.id)},{default:l(()=>[...t[10]||(t[10]=[m(" 删除 ",-1)])]),_:1},8,["onClick"])),[[k,["dept.jobs/delete"]]])]),_:1})]),_:1},8,["data"])),[[U,a(d).loading]]),E("div",_e,[e(S,{modelValue:a(d),"onUpdate:modelValue":t[4]||(t[4]=o=>te(d)?d.value=o:null),onChange:a(b)},null,8,["modelValue","onChange"])])]),_:1}),a(f)?(r(),c(ue,{key:0,ref_key:"editRef",ref:_,onSuccess:a(b),onClose:t[5]||(t[5]=o=>f.value=!1)},null,8,["onSuccess"])):ae("",!0)])}}});export{xe as default}; diff --git a/server/public/admin/assets/index-DABfjW1m.js b/server/public/admin/assets/index-ChHJWGtd.js similarity index 97% rename from server/public/admin/assets/index-DABfjW1m.js rename to server/public/admin/assets/index-ChHJWGtd.js index e949b702a..68b8c07f4 100644 --- a/server/public/admin/assets/index-DABfjW1m.js +++ b/server/public/admin/assets/index-ChHJWGtd.js @@ -1 +1 @@ -import{o as v,x as T,bp as B,q as l,r as D,v as t,D as a,ac as m,O as s,u as i,K as L,L as r,bk as N,bl as P,bm as j,P as b,s as g,bn as $,C as q,bj as K}from"./.pnpm-CyuAWpdG.js";import{_ as R}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{K as F,l as k,c as O,j as U,L as z}from"./index-Dxvz9lb1.js";import{u as A}from"./usePaging-CghUEVfD.js";const G={class:"flex"},H={class:"flex justify-end mt-4"},I=v({name:"scheduledTask"}),Y=v({...I,setup(J){const{pager:d,getLists:c}=A({fetchFun:F,params:{}}),w=async f=>{await U.confirm("确定要删除?"),await z({id:f}),c()};return c(),(f,e)=>{const h=O,p=L,y=T("router-link"),n=P,u=j,x=N,C=R,V=K,_=B("perms"),E=$;return l(),D("div",null,[t(V,{shadow:"never",class:"!border-none"},{default:a(()=>[m((l(),s(y,{to:i(k)("crontab.crontab/add:edit")},{default:a(()=>[t(p,{type:"primary",class:"mb-[16px]"},{icon:a(()=>[t(h,{name:"el-icon-Plus"})]),default:a(()=>[e[1]||(e[1]=r(" 新增 ",-1))]),_:1})]),_:1},8,["to"])),[[_,["crontab.crontab/add","crontab.crontab/add:edit"]]]),m((l(),s(x,{ref:"paneTable",class:"m-t-24",data:i(d).lists,style:{width:"100%"}},{default:a(()=>[t(n,{prop:"name",label:"名称","min-width":"120"}),t(n,{prop:"type_desc",label:"类型","min-width":"100"}),t(n,{prop:"command",label:"命令","min-width":"100"}),t(n,{prop:"params",label:"参数","min-width":"80"}),t(n,{prop:"expression",label:"规则","min-width":"100"}),t(n,{prop:"status",label:"状态","min-width":"100"},{default:a(({row:o})=>[o.status==1?(l(),s(u,{key:0,type:"success"},{default:a(()=>[...e[2]||(e[2]=[r("运行中",-1)])]),_:1})):b("",!0),o.status==2?(l(),s(u,{key:1,type:"info"},{default:a(()=>[...e[3]||(e[3]=[r("已停止",-1)])]),_:1})):b("",!0),o.status==3?(l(),s(u,{key:2,type:"danger"},{default:a(()=>[...e[4]||(e[4]=[r("错误",-1)])]),_:1})):b("",!0)]),_:1}),t(n,{prop:"error",label:"错误原因","min-width":"120"}),t(n,{prop:"last_time",label:"最后执行时间",width:"180"}),t(n,{prop:"time",label:"时长","min-width":"100"}),t(n,{prop:"max_time",label:"最大时长","min-width":"100"}),t(n,{label:"操作",width:"120",fixed:"right"},{default:a(({row:o})=>[g("div",G,[t(p,{type:"primary",link:""},{default:a(()=>[m((l(),s(y,{to:{path:i(k)("crontab.crontab/add:edit"),query:{id:o.id}}},{default:a(()=>[t(p,{type:"primary",link:""},{default:a(()=>[...e[5]||(e[5]=[r(" 编辑 ",-1)])]),_:1})]),_:1},8,["to"])),[[_,["crontab.crontab/edit","crontab.crontab/add:edit"]]])]),_:2},1024),m((l(),s(p,{type:"danger",link:"",onClick:M=>w(o.id)},{default:a(()=>[...e[6]||(e[6]=[r(" 删除 ",-1)])]),_:1},8,["onClick"])),[[_,["crontab.crontab/delete"]]])])]),_:1})]),_:1},8,["data"])),[[E,i(d).loading]]),g("div",H,[t(C,{modelValue:i(d),"onUpdate:modelValue":e[0]||(e[0]=o=>q(d)?d.value=o:null),onChange:i(c)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{Y as default}; +import{o as v,x as T,bp as B,q as l,r as D,v as t,D as a,ac as m,O as s,u as i,K as L,L as r,bk as N,bl as P,bm as j,P as b,s as g,bn as $,C as q,bj as K}from"./.pnpm-CyuAWpdG.js";import{_ as R}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{K as F,l as k,c as O,j as U,L as z}from"./index-Bkarz3gO.js";import{u as A}from"./usePaging-CghUEVfD.js";const G={class:"flex"},H={class:"flex justify-end mt-4"},I=v({name:"scheduledTask"}),Y=v({...I,setup(J){const{pager:d,getLists:c}=A({fetchFun:F,params:{}}),w=async f=>{await U.confirm("确定要删除?"),await z({id:f}),c()};return c(),(f,e)=>{const h=O,p=L,y=T("router-link"),n=P,u=j,x=N,C=R,V=K,_=B("perms"),E=$;return l(),D("div",null,[t(V,{shadow:"never",class:"!border-none"},{default:a(()=>[m((l(),s(y,{to:i(k)("crontab.crontab/add:edit")},{default:a(()=>[t(p,{type:"primary",class:"mb-[16px]"},{icon:a(()=>[t(h,{name:"el-icon-Plus"})]),default:a(()=>[e[1]||(e[1]=r(" 新增 ",-1))]),_:1})]),_:1},8,["to"])),[[_,["crontab.crontab/add","crontab.crontab/add:edit"]]]),m((l(),s(x,{ref:"paneTable",class:"m-t-24",data:i(d).lists,style:{width:"100%"}},{default:a(()=>[t(n,{prop:"name",label:"名称","min-width":"120"}),t(n,{prop:"type_desc",label:"类型","min-width":"100"}),t(n,{prop:"command",label:"命令","min-width":"100"}),t(n,{prop:"params",label:"参数","min-width":"80"}),t(n,{prop:"expression",label:"规则","min-width":"100"}),t(n,{prop:"status",label:"状态","min-width":"100"},{default:a(({row:o})=>[o.status==1?(l(),s(u,{key:0,type:"success"},{default:a(()=>[...e[2]||(e[2]=[r("运行中",-1)])]),_:1})):b("",!0),o.status==2?(l(),s(u,{key:1,type:"info"},{default:a(()=>[...e[3]||(e[3]=[r("已停止",-1)])]),_:1})):b("",!0),o.status==3?(l(),s(u,{key:2,type:"danger"},{default:a(()=>[...e[4]||(e[4]=[r("错误",-1)])]),_:1})):b("",!0)]),_:1}),t(n,{prop:"error",label:"错误原因","min-width":"120"}),t(n,{prop:"last_time",label:"最后执行时间",width:"180"}),t(n,{prop:"time",label:"时长","min-width":"100"}),t(n,{prop:"max_time",label:"最大时长","min-width":"100"}),t(n,{label:"操作",width:"120",fixed:"right"},{default:a(({row:o})=>[g("div",G,[t(p,{type:"primary",link:""},{default:a(()=>[m((l(),s(y,{to:{path:i(k)("crontab.crontab/add:edit"),query:{id:o.id}}},{default:a(()=>[t(p,{type:"primary",link:""},{default:a(()=>[...e[5]||(e[5]=[r(" 编辑 ",-1)])]),_:1})]),_:1},8,["to"])),[[_,["crontab.crontab/edit","crontab.crontab/add:edit"]]])]),_:2},1024),m((l(),s(p,{type:"danger",link:"",onClick:M=>w(o.id)},{default:a(()=>[...e[6]||(e[6]=[r(" 删除 ",-1)])]),_:1},8,["onClick"])),[[_,["crontab.crontab/delete"]]])])]),_:1})]),_:1},8,["data"])),[[E,i(d).loading]]),g("div",H,[t(C,{modelValue:i(d),"onUpdate:modelValue":e[0]||(e[0]=o=>q(d)?d.value=o:null),onChange:i(c)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{Y as default}; diff --git a/server/public/admin/assets/index-DYbVvpID.js b/server/public/admin/assets/index-Ci6L7hPt.js similarity index 99% rename from server/public/admin/assets/index-DYbVvpID.js rename to server/public/admin/assets/index-Ci6L7hPt.js index 787689f1b..1d457e382 100644 --- a/server/public/admin/assets/index-DYbVvpID.js +++ b/server/public/admin/assets/index-Ci6L7hPt.js @@ -1 +1 @@ -import{o as ie,ap as fe,bp as ye,q as d,r as k,s as l,ac as N,O as $,D as n,L as v,u as L,bz as be,K as we,P as te,bn as ke,T as s,ae as xe,v as i,bb as Ce,aA as Me,bc as ne,bB as A,bh as Ve,bi as Le,aw as Se,bd as ze,bl as Te,bm as Ee,F as M,bJ as Ne,de as $e,bk as he,bu as Be,G as Ue,aB as De,M as p,aC as Pe,e as qe}from"./.pnpm-CyuAWpdG.js";import{r as S,j as Fe,_ as Ie}from"./index-Dxvz9lb1.js";function G(){let u=0;return{next(m){u+=1;const z=Array.isArray(m)?[...m]:m&&typeof m=="object"?{...m}:m;return Object.freeze({generation:u,snapshot:z})},invalidate(){return u+=1,u},isLatest(m){return(m==null?void 0:m.generation)===u}}}function Oe(u){return S.get({url:"/pharmacy.medicineMapping/lists",params:u})}function Re(){return S.get({url:"/pharmacy.medicineMapping/status"})}function je(u){return S.get({url:"/pharmacy.medicineMapping/catalogOptions",params:u})}function Ke(u){return S.post({url:"/pharmacy.medicineMapping/save",params:u})}function Ae(u){return S.post({url:"/pharmacy.medicineMapping/unlink",params:u})}function Ge(){return S.post({url:"/pharmacy.medicineMapping/sync"})}const Je={class:"mapping-page"},He={class:"page-header"},Qe={class:"status-strip"},We={class:"status-item"},Xe={class:"status-item warning"},Ye={class:"status-item"},Ze=["title"],ea={class:"table-wrap"},aa={class:"medicine-name"},la={class:"subline"},ta={class:"medicine-name"},na={class:"subline code"},ia={class:"subline"},sa={class:"subline"},oa={class:"pagination-wrap"},ua={class:"local-summary"},da={class:"option-row"},ra=ie({name:"pharmacyMedicineMapping"}),ca=ie({...ra,setup(u){const m=()=>({sync_enabled:!1,cursor:0,last_success_time:0,last_failure_time:0,last_error_summary:"",is_syncing:!1,catalog_total:0,catalog_active:0,unmapped_local:0}),z=p(!1),P=p(!1),q=p(!1),F=p(!1),I=p(!1),J=p([]),H=p(0),r=p(m()),o=Pe({page_no:1,page_size:20,local_name:"",remote_keyword:"",mapping_status:""}),T=p(!1),g=p(null),b=p(""),h=p([]);let E;const O=G(),V=G(),R=G(),Q=t=>{const e=Number(t||0);return Number.isFinite(e)?e.toFixed(2):"0.00"},W=t=>t?new Date(t*1e3).toLocaleString("zh-CN",{hour12:!1}):"",se=t=>t===1?"已映射":t===2?"远端失效":"未映射",oe=t=>t===1?"success":t===2?"warning":"info",C=async()=>{const t=O.next({...o});z.value=!0;try{const e=await Oe(t.snapshot);O.isLatest(t)&&(J.value=e.lists||[],H.value=e.count||0)}finally{O.isLatest(t)&&(z.value=!1)}},B=async()=>{const t=R.next(void 0);P.value=!0;try{const e=await Re();R.isLatest(t)&&(r.value=e)}finally{R.isLatest(t)&&(P.value=!1)}},U=()=>{o.page_no=1,C()},ue=()=>{o.local_name="",o.remote_keyword="",o.mapping_status="",U()},de=async()=>{q.value=!0;try{const t=await Ge();Fe.msgSuccess(`同步完成:拉取 ${t.pulled},新增 ${t.created},更新 ${t.updated},停用 ${t.deactivated}`),await Promise.all([C(),B()])}finally{q.value=!1}},j=async(t,e=Number((c=>(c=g.value)==null?void 0:c.local_medicine_id)()||0))=>{var _;const f=V.next({keyword:t.trim(),localMedicineId:e});I.value=!0;try{const x=await je({keyword:f.snapshot.keyword,limit:30});V.isLatest(f)&&Number(((_=g.value)==null?void 0:_.local_medicine_id)||0)===f.snapshot.localMedicineId&&(h.value=x)}finally{V.isLatest(f)&&(I.value=!1)}return f},re=t=>{E&&window.clearTimeout(E),V.invalidate(),E=window.setTimeout(()=>void j(t),250)},ce=async t=>{var _;E&&window.clearTimeout(E),V.invalidate();const e={...t},c=Number(e.local_medicine_id);g.value=e,b.value=e.mapping_status===1&&e.medicine_code||"",h.value=[],T.value=!0;const f=await j(e.local_name,c);!V.isLatest(f)||Number(((_=g.value)==null?void 0:_.local_medicine_id)||0)!==c||b.value&&!h.value.some(x=>x.medicine_code===b.value)&&await j(b.value,c)},me=async()=>{if(!(!g.value||!b.value)){F.value=!0;try{await Ke({local_medicine_id:g.value.local_medicine_id,medicine_code:b.value}),T.value=!1,await Promise.all([C(),B()])}finally{F.value=!1}}},pe=async t=>{await qe.confirm(`确认解除“${t.local_name}”与 ${t.medicine_code} 的映射?`,"解除映射",{type:"warning",confirmButtonText:"解除",cancelButtonText:"取消"}),await Ae({local_medicine_id:t.local_medicine_id}),await Promise.all([C(),B()])};return fe(()=>{Promise.all([C(),B()])}),(t,e)=>{var ae;const c=we,f=Me,_=Ce,x=Le,X=Ve,Y=ze,w=Te,Z=Ee,_e=he,ve=Be,ge=De,K=ye("perms"),ee=ke;return d(),k("div",Je,[l("header",He,[e[10]||(e[10]=l("h1",null,"洛阳药房药材映射",-1)),r.value.sync_enabled?N((d(),$(c,{key:0,type:"primary",icon:L(be),loading:q.value,onClick:de},{default:n(()=>[...e[9]||(e[9]=[v(" 增量同步 ",-1)])]),_:1},8,["icon","loading"])),[[K,["pharmacy.medicineMapping/sync"]]]):te("",!0)]),N((d(),k("section",Qe,[l("div",We,[e[11]||(e[11]=l("span",null,"目录",-1)),l("strong",null,s(r.value.catalog_active)+" / "+s(r.value.catalog_total),1),e[12]||(e[12]=l("small",null,"启用 / 总数",-1))]),l("div",Xe,[e[13]||(e[13]=l("span",null,"未映射本地药材",-1)),l("strong",null,s(r.value.unmapped_local),1),e[14]||(e[14]=l("small",null,"仅统计启用药材",-1))]),l("div",Ye,[e[15]||(e[15]=l("span",null,"同步游标",-1)),l("strong",null,s(r.value.cursor),1),l("small",null,s(W(r.value.last_success_time)||"尚未成功同步"),1)]),l("div",{class:xe(["status-item",{danger:!!r.value.last_error_summary}])},[e[16]||(e[16]=l("span",null,"最近同步",-1)),l("strong",null,s(r.value.is_syncing?"进行中":r.value.last_error_summary?"失败":"正常"),1),l("small",{title:r.value.last_error_summary},s(r.value.last_error_summary||W(r.value.last_failure_time)||"无失败记录"),9,Ze)],2)])),[[ee,P.value]]),i(Y,{class:"filter-bar",inline:"",onSubmit:e[3]||(e[3]=Se(()=>{},["prevent"]))},{default:n(()=>[i(_,{label:"本地药材"},{default:n(()=>[i(f,{modelValue:o.local_name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.local_name=a),clearable:"",placeholder:"名称","prefix-icon":L(A),onKeyup:ne(U,["enter"])},null,8,["modelValue","prefix-icon"])]),_:1}),i(_,{label:"远端目录"},{default:n(()=>[i(f,{modelValue:o.remote_keyword,"onUpdate:modelValue":e[1]||(e[1]=a=>o.remote_keyword=a),clearable:"",placeholder:"名称或编码","prefix-icon":L(A),onKeyup:ne(U,["enter"])},null,8,["modelValue","prefix-icon"])]),_:1}),i(_,{label:"映射状态"},{default:n(()=>[i(X,{modelValue:o.mapping_status,"onUpdate:modelValue":e[2]||(e[2]=a=>o.mapping_status=a),clearable:"",placeholder:"全部",style:{width:"150px"}},{default:n(()=>[i(x,{label:"已映射",value:"mapped"}),i(x,{label:"未映射",value:"unmapped"}),i(x,{label:"远端失效",value:"invalid"})]),_:1},8,["modelValue"])]),_:1}),i(_,null,{default:n(()=>[i(c,{type:"primary",icon:L(A),onClick:U},{default:n(()=>[...e[17]||(e[17]=[v("查询",-1)])]),_:1},8,["icon"]),i(c,{onClick:ue},{default:n(()=>[...e[18]||(e[18]=[v("重置",-1)])]),_:1})]),_:1})]),_:1}),l("div",ea,[N((d(),$(_e,{data:J.value,border:"",stripe:"","table-layout":"fixed"},{default:n(()=>[i(w,{label:"本地药材","min-width":"190",fixed:"left"},{default:n(({row:a})=>[l("div",aa,s(a.local_name),1),l("div",la," ID "+s(a.local_medicine_id)+" · "+s(a.local_unit||"-"),1)]),_:1}),i(w,{label:"本地状态",width:"90",align:"center"},{default:n(({row:a})=>[i(Z,{type:a.local_status===1?"success":"info",size:"small"},{default:n(()=>[v(s(a.local_status===1?"启用":"停用"),1)]),_:2},1032,["type"])]),_:1}),i(w,{label:"映射状态",width:"105",align:"center"},{default:n(({row:a})=>[i(Z,{type:oe(a.mapping_status),size:"small"},{default:n(()=>[v(s(se(a.mapping_status)),1)]),_:2},1032,["type"])]),_:1}),i(w,{label:"洛阳药房目录","min-width":"250"},{default:n(({row:a})=>[a.medicine_code?(d(),k(M,{key:0},[l("div",ta,s(a.remote_name||"目录项不可用"),1),l("div",na,s(a.medicine_code),1)],64)):(d(),k(M,{key:1},[e[19]||(e[19]=l("div",{class:"medicine-name"},"-",-1)),e[20]||(e[20]=l("div",{class:"subline"},"未映射",-1))],64))]),_:1}),i(w,{label:"品牌","min-width":"130","show-overflow-tooltip":""},{default:n(({row:a})=>[v(s(a.mapping_status===0?"-":a.remote_brand||"-"),1)]),_:1}),i(w,{label:"单位",width:"80",align:"center"},{default:n(({row:a})=>[v(s(a.remote_unit||"-"),1)]),_:1}),i(w,{label:"价格",width:"155",align:"right"},{default:n(({row:a})=>[a.mapping_status!==0?(d(),k(M,{key:0},[l("div",null,"结算 ¥"+s(Q(a.settlement_price)),1),l("div",ia,"零售 ¥"+s(Q(a.retail_price)),1)],64)):(d(),k(M,{key:1},[e[21]||(e[21]=l("div",null,"-",-1)),e[22]||(e[22]=l("div",{class:"subline"},"未映射",-1))],64))]),_:1}),i(w,{label:"版本 / 状态",width:"130",align:"center"},{default:n(({row:a})=>[a.medicine_code?(d(),k(M,{key:0},[l("div",null,"v"+s(a.catalog_version||0),1),l("div",sa,s(a.remote_status===1&&a.remote_deleted!==1?"远端启用":"远端停用"),1)],64)):(d(),k(M,{key:1},[e[23]||(e[23]=l("div",null,"-",-1)),e[24]||(e[24]=l("div",{class:"subline"},"未映射",-1))],64))]),_:1}),i(w,{label:"操作",width:"170",fixed:"right",align:"center"},{default:n(({row:a})=>[N((d(),$(c,{type:"primary",link:"",icon:L(Ne),disabled:a.local_status!==1,onClick:D=>ce(a)},{default:n(()=>[v(s(a.mapping_status===1?"更换":"映射"),1)]),_:2},1032,["icon","disabled","onClick"])),[[K,["pharmacy.medicineMapping/save"]]]),a.mapping_status===1||a.mapping_status===2?N((d(),$(c,{key:0,type:"danger",link:"",icon:L($e),onClick:D=>pe(a)},{default:n(()=>[...e[25]||(e[25]=[v(" 解除 ",-1)])]),_:1},8,["icon","onClick"])),[[K,["pharmacy.medicineMapping/unlink"]]]):te("",!0)]),_:1})]),_:1},8,["data"])),[[ee,z.value]])]),l("div",oa,[i(ve,{"current-page":o.page_no,"onUpdate:currentPage":e[4]||(e[4]=a=>o.page_no=a),"page-size":o.page_size,"onUpdate:pageSize":e[5]||(e[5]=a=>o.page_size=a),total:H.value,"page-sizes":[20,50,100],layout:"total, sizes, prev, pager, next, jumper",onSizeChange:C,onCurrentChange:C},null,8,["current-page","page-size","total"])]),i(ge,{modelValue:T.value,"onUpdate:modelValue":e[8]||(e[8]=a=>T.value=a),title:`${((ae=g.value)==null?void 0:ae.mapping_status)===1?"更换":"建立"}药材映射`,width:"min(560px, calc(100vw - 32px))","destroy-on-close":""},{footer:n(()=>[i(c,{onClick:e[7]||(e[7]=a=>T.value=!1)},{default:n(()=>[...e[27]||(e[27]=[v("取消",-1)])]),_:1}),i(c,{type:"primary",loading:F.value,disabled:!b.value,onClick:me},{default:n(()=>[...e[28]||(e[28]=[v(" 保存映射 ",-1)])]),_:1},8,["loading","disabled"])]),default:n(()=>{var a,D,le;return[l("div",ua,[e[26]||(e[26]=l("span",null,"本地药材",-1)),l("strong",null,s((a=g.value)==null?void 0:a.local_name),1),l("small",null,"ID "+s((D=g.value)==null?void 0:D.local_medicine_id)+" · "+s(((le=g.value)==null?void 0:le.local_unit)||"-"),1)]),i(Y,{"label-position":"top",class:"mapping-form"},{default:n(()=>[i(_,{label:"洛阳药房药材"},{default:n(()=>[i(X,{modelValue:b.value,"onUpdate:modelValue":e[6]||(e[6]=y=>b.value=y),filterable:"",remote:"","reserve-keyword":"",clearable:"","remote-method":re,loading:I.value,placeholder:"输入药材名称或编码检索",style:{width:"100%"}},{default:n(()=>[(d(!0),k(M,null,Ue(h.value,y=>(d(),$(x,{key:y.medicine_code,label:`${y.name} · ${y.medicine_code}`,value:y.medicine_code},{default:n(()=>[l("div",da,[l("span",null,s(y.name),1),l("small",null,s(y.medicine_code)+" · "+s(y.brand||"无品牌")+" · "+s(y.unit),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1})]),_:1})]}),_:1},8,["modelValue","title"])])}}}),_a=Ie(ca,[["__scopeId","data-v-1b7afda4"]]);export{_a as default}; +import{o as ie,ap as fe,bp as ye,q as d,r as k,s as l,ac as N,O as $,D as n,L as v,u as L,bz as be,K as we,P as te,bn as ke,T as s,ae as xe,v as i,bb as Ce,aA as Me,bc as ne,bB as A,bh as Ve,bi as Le,aw as Se,bd as ze,bl as Te,bm as Ee,F as M,bJ as Ne,de as $e,bk as he,bu as Be,G as Ue,aB as De,M as p,aC as Pe,e as qe}from"./.pnpm-CyuAWpdG.js";import{r as S,j as Fe,_ as Ie}from"./index-Bkarz3gO.js";function G(){let u=0;return{next(m){u+=1;const z=Array.isArray(m)?[...m]:m&&typeof m=="object"?{...m}:m;return Object.freeze({generation:u,snapshot:z})},invalidate(){return u+=1,u},isLatest(m){return(m==null?void 0:m.generation)===u}}}function Oe(u){return S.get({url:"/pharmacy.medicineMapping/lists",params:u})}function Re(){return S.get({url:"/pharmacy.medicineMapping/status"})}function je(u){return S.get({url:"/pharmacy.medicineMapping/catalogOptions",params:u})}function Ke(u){return S.post({url:"/pharmacy.medicineMapping/save",params:u})}function Ae(u){return S.post({url:"/pharmacy.medicineMapping/unlink",params:u})}function Ge(){return S.post({url:"/pharmacy.medicineMapping/sync"})}const Je={class:"mapping-page"},He={class:"page-header"},Qe={class:"status-strip"},We={class:"status-item"},Xe={class:"status-item warning"},Ye={class:"status-item"},Ze=["title"],ea={class:"table-wrap"},aa={class:"medicine-name"},la={class:"subline"},ta={class:"medicine-name"},na={class:"subline code"},ia={class:"subline"},sa={class:"subline"},oa={class:"pagination-wrap"},ua={class:"local-summary"},da={class:"option-row"},ra=ie({name:"pharmacyMedicineMapping"}),ca=ie({...ra,setup(u){const m=()=>({sync_enabled:!1,cursor:0,last_success_time:0,last_failure_time:0,last_error_summary:"",is_syncing:!1,catalog_total:0,catalog_active:0,unmapped_local:0}),z=p(!1),P=p(!1),q=p(!1),F=p(!1),I=p(!1),J=p([]),H=p(0),r=p(m()),o=Pe({page_no:1,page_size:20,local_name:"",remote_keyword:"",mapping_status:""}),T=p(!1),g=p(null),b=p(""),h=p([]);let E;const O=G(),V=G(),R=G(),Q=t=>{const e=Number(t||0);return Number.isFinite(e)?e.toFixed(2):"0.00"},W=t=>t?new Date(t*1e3).toLocaleString("zh-CN",{hour12:!1}):"",se=t=>t===1?"已映射":t===2?"远端失效":"未映射",oe=t=>t===1?"success":t===2?"warning":"info",C=async()=>{const t=O.next({...o});z.value=!0;try{const e=await Oe(t.snapshot);O.isLatest(t)&&(J.value=e.lists||[],H.value=e.count||0)}finally{O.isLatest(t)&&(z.value=!1)}},B=async()=>{const t=R.next(void 0);P.value=!0;try{const e=await Re();R.isLatest(t)&&(r.value=e)}finally{R.isLatest(t)&&(P.value=!1)}},U=()=>{o.page_no=1,C()},ue=()=>{o.local_name="",o.remote_keyword="",o.mapping_status="",U()},de=async()=>{q.value=!0;try{const t=await Ge();Fe.msgSuccess(`同步完成:拉取 ${t.pulled},新增 ${t.created},更新 ${t.updated},停用 ${t.deactivated}`),await Promise.all([C(),B()])}finally{q.value=!1}},j=async(t,e=Number((c=>(c=g.value)==null?void 0:c.local_medicine_id)()||0))=>{var _;const f=V.next({keyword:t.trim(),localMedicineId:e});I.value=!0;try{const x=await je({keyword:f.snapshot.keyword,limit:30});V.isLatest(f)&&Number(((_=g.value)==null?void 0:_.local_medicine_id)||0)===f.snapshot.localMedicineId&&(h.value=x)}finally{V.isLatest(f)&&(I.value=!1)}return f},re=t=>{E&&window.clearTimeout(E),V.invalidate(),E=window.setTimeout(()=>void j(t),250)},ce=async t=>{var _;E&&window.clearTimeout(E),V.invalidate();const e={...t},c=Number(e.local_medicine_id);g.value=e,b.value=e.mapping_status===1&&e.medicine_code||"",h.value=[],T.value=!0;const f=await j(e.local_name,c);!V.isLatest(f)||Number(((_=g.value)==null?void 0:_.local_medicine_id)||0)!==c||b.value&&!h.value.some(x=>x.medicine_code===b.value)&&await j(b.value,c)},me=async()=>{if(!(!g.value||!b.value)){F.value=!0;try{await Ke({local_medicine_id:g.value.local_medicine_id,medicine_code:b.value}),T.value=!1,await Promise.all([C(),B()])}finally{F.value=!1}}},pe=async t=>{await qe.confirm(`确认解除“${t.local_name}”与 ${t.medicine_code} 的映射?`,"解除映射",{type:"warning",confirmButtonText:"解除",cancelButtonText:"取消"}),await Ae({local_medicine_id:t.local_medicine_id}),await Promise.all([C(),B()])};return fe(()=>{Promise.all([C(),B()])}),(t,e)=>{var ae;const c=we,f=Me,_=Ce,x=Le,X=Ve,Y=ze,w=Te,Z=Ee,_e=he,ve=Be,ge=De,K=ye("perms"),ee=ke;return d(),k("div",Je,[l("header",He,[e[10]||(e[10]=l("h1",null,"洛阳药房药材映射",-1)),r.value.sync_enabled?N((d(),$(c,{key:0,type:"primary",icon:L(be),loading:q.value,onClick:de},{default:n(()=>[...e[9]||(e[9]=[v(" 增量同步 ",-1)])]),_:1},8,["icon","loading"])),[[K,["pharmacy.medicineMapping/sync"]]]):te("",!0)]),N((d(),k("section",Qe,[l("div",We,[e[11]||(e[11]=l("span",null,"目录",-1)),l("strong",null,s(r.value.catalog_active)+" / "+s(r.value.catalog_total),1),e[12]||(e[12]=l("small",null,"启用 / 总数",-1))]),l("div",Xe,[e[13]||(e[13]=l("span",null,"未映射本地药材",-1)),l("strong",null,s(r.value.unmapped_local),1),e[14]||(e[14]=l("small",null,"仅统计启用药材",-1))]),l("div",Ye,[e[15]||(e[15]=l("span",null,"同步游标",-1)),l("strong",null,s(r.value.cursor),1),l("small",null,s(W(r.value.last_success_time)||"尚未成功同步"),1)]),l("div",{class:xe(["status-item",{danger:!!r.value.last_error_summary}])},[e[16]||(e[16]=l("span",null,"最近同步",-1)),l("strong",null,s(r.value.is_syncing?"进行中":r.value.last_error_summary?"失败":"正常"),1),l("small",{title:r.value.last_error_summary},s(r.value.last_error_summary||W(r.value.last_failure_time)||"无失败记录"),9,Ze)],2)])),[[ee,P.value]]),i(Y,{class:"filter-bar",inline:"",onSubmit:e[3]||(e[3]=Se(()=>{},["prevent"]))},{default:n(()=>[i(_,{label:"本地药材"},{default:n(()=>[i(f,{modelValue:o.local_name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.local_name=a),clearable:"",placeholder:"名称","prefix-icon":L(A),onKeyup:ne(U,["enter"])},null,8,["modelValue","prefix-icon"])]),_:1}),i(_,{label:"远端目录"},{default:n(()=>[i(f,{modelValue:o.remote_keyword,"onUpdate:modelValue":e[1]||(e[1]=a=>o.remote_keyword=a),clearable:"",placeholder:"名称或编码","prefix-icon":L(A),onKeyup:ne(U,["enter"])},null,8,["modelValue","prefix-icon"])]),_:1}),i(_,{label:"映射状态"},{default:n(()=>[i(X,{modelValue:o.mapping_status,"onUpdate:modelValue":e[2]||(e[2]=a=>o.mapping_status=a),clearable:"",placeholder:"全部",style:{width:"150px"}},{default:n(()=>[i(x,{label:"已映射",value:"mapped"}),i(x,{label:"未映射",value:"unmapped"}),i(x,{label:"远端失效",value:"invalid"})]),_:1},8,["modelValue"])]),_:1}),i(_,null,{default:n(()=>[i(c,{type:"primary",icon:L(A),onClick:U},{default:n(()=>[...e[17]||(e[17]=[v("查询",-1)])]),_:1},8,["icon"]),i(c,{onClick:ue},{default:n(()=>[...e[18]||(e[18]=[v("重置",-1)])]),_:1})]),_:1})]),_:1}),l("div",ea,[N((d(),$(_e,{data:J.value,border:"",stripe:"","table-layout":"fixed"},{default:n(()=>[i(w,{label:"本地药材","min-width":"190",fixed:"left"},{default:n(({row:a})=>[l("div",aa,s(a.local_name),1),l("div",la," ID "+s(a.local_medicine_id)+" · "+s(a.local_unit||"-"),1)]),_:1}),i(w,{label:"本地状态",width:"90",align:"center"},{default:n(({row:a})=>[i(Z,{type:a.local_status===1?"success":"info",size:"small"},{default:n(()=>[v(s(a.local_status===1?"启用":"停用"),1)]),_:2},1032,["type"])]),_:1}),i(w,{label:"映射状态",width:"105",align:"center"},{default:n(({row:a})=>[i(Z,{type:oe(a.mapping_status),size:"small"},{default:n(()=>[v(s(se(a.mapping_status)),1)]),_:2},1032,["type"])]),_:1}),i(w,{label:"洛阳药房目录","min-width":"250"},{default:n(({row:a})=>[a.medicine_code?(d(),k(M,{key:0},[l("div",ta,s(a.remote_name||"目录项不可用"),1),l("div",na,s(a.medicine_code),1)],64)):(d(),k(M,{key:1},[e[19]||(e[19]=l("div",{class:"medicine-name"},"-",-1)),e[20]||(e[20]=l("div",{class:"subline"},"未映射",-1))],64))]),_:1}),i(w,{label:"品牌","min-width":"130","show-overflow-tooltip":""},{default:n(({row:a})=>[v(s(a.mapping_status===0?"-":a.remote_brand||"-"),1)]),_:1}),i(w,{label:"单位",width:"80",align:"center"},{default:n(({row:a})=>[v(s(a.remote_unit||"-"),1)]),_:1}),i(w,{label:"价格",width:"155",align:"right"},{default:n(({row:a})=>[a.mapping_status!==0?(d(),k(M,{key:0},[l("div",null,"结算 ¥"+s(Q(a.settlement_price)),1),l("div",ia,"零售 ¥"+s(Q(a.retail_price)),1)],64)):(d(),k(M,{key:1},[e[21]||(e[21]=l("div",null,"-",-1)),e[22]||(e[22]=l("div",{class:"subline"},"未映射",-1))],64))]),_:1}),i(w,{label:"版本 / 状态",width:"130",align:"center"},{default:n(({row:a})=>[a.medicine_code?(d(),k(M,{key:0},[l("div",null,"v"+s(a.catalog_version||0),1),l("div",sa,s(a.remote_status===1&&a.remote_deleted!==1?"远端启用":"远端停用"),1)],64)):(d(),k(M,{key:1},[e[23]||(e[23]=l("div",null,"-",-1)),e[24]||(e[24]=l("div",{class:"subline"},"未映射",-1))],64))]),_:1}),i(w,{label:"操作",width:"170",fixed:"right",align:"center"},{default:n(({row:a})=>[N((d(),$(c,{type:"primary",link:"",icon:L(Ne),disabled:a.local_status!==1,onClick:D=>ce(a)},{default:n(()=>[v(s(a.mapping_status===1?"更换":"映射"),1)]),_:2},1032,["icon","disabled","onClick"])),[[K,["pharmacy.medicineMapping/save"]]]),a.mapping_status===1||a.mapping_status===2?N((d(),$(c,{key:0,type:"danger",link:"",icon:L($e),onClick:D=>pe(a)},{default:n(()=>[...e[25]||(e[25]=[v(" 解除 ",-1)])]),_:1},8,["icon","onClick"])),[[K,["pharmacy.medicineMapping/unlink"]]]):te("",!0)]),_:1})]),_:1},8,["data"])),[[ee,z.value]])]),l("div",oa,[i(ve,{"current-page":o.page_no,"onUpdate:currentPage":e[4]||(e[4]=a=>o.page_no=a),"page-size":o.page_size,"onUpdate:pageSize":e[5]||(e[5]=a=>o.page_size=a),total:H.value,"page-sizes":[20,50,100],layout:"total, sizes, prev, pager, next, jumper",onSizeChange:C,onCurrentChange:C},null,8,["current-page","page-size","total"])]),i(ge,{modelValue:T.value,"onUpdate:modelValue":e[8]||(e[8]=a=>T.value=a),title:`${((ae=g.value)==null?void 0:ae.mapping_status)===1?"更换":"建立"}药材映射`,width:"min(560px, calc(100vw - 32px))","destroy-on-close":""},{footer:n(()=>[i(c,{onClick:e[7]||(e[7]=a=>T.value=!1)},{default:n(()=>[...e[27]||(e[27]=[v("取消",-1)])]),_:1}),i(c,{type:"primary",loading:F.value,disabled:!b.value,onClick:me},{default:n(()=>[...e[28]||(e[28]=[v(" 保存映射 ",-1)])]),_:1},8,["loading","disabled"])]),default:n(()=>{var a,D,le;return[l("div",ua,[e[26]||(e[26]=l("span",null,"本地药材",-1)),l("strong",null,s((a=g.value)==null?void 0:a.local_name),1),l("small",null,"ID "+s((D=g.value)==null?void 0:D.local_medicine_id)+" · "+s(((le=g.value)==null?void 0:le.local_unit)||"-"),1)]),i(Y,{"label-position":"top",class:"mapping-form"},{default:n(()=>[i(_,{label:"洛阳药房药材"},{default:n(()=>[i(X,{modelValue:b.value,"onUpdate:modelValue":e[6]||(e[6]=y=>b.value=y),filterable:"",remote:"","reserve-keyword":"",clearable:"","remote-method":re,loading:I.value,placeholder:"输入药材名称或编码检索",style:{width:"100%"}},{default:n(()=>[(d(!0),k(M,null,Ue(h.value,y=>(d(),$(x,{key:y.medicine_code,label:`${y.name} · ${y.medicine_code}`,value:y.medicine_code},{default:n(()=>[l("div",da,[l("span",null,s(y.name),1),l("small",null,s(y.medicine_code)+" · "+s(y.brand||"无品牌")+" · "+s(y.unit),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1})]),_:1})]}),_:1},8,["modelValue","title"])])}}}),_a=Ie(ca,[["__scopeId","data-v-1b7afda4"]]);export{_a as default}; diff --git a/server/public/admin/assets/index-TVpa2sx0.js b/server/public/admin/assets/index-CpcrdRr4.js similarity index 97% rename from server/public/admin/assets/index-TVpa2sx0.js rename to server/public/admin/assets/index-CpcrdRr4.js index 3dabc4015..510f5ddb2 100644 --- a/server/public/admin/assets/index-TVpa2sx0.js +++ b/server/public/admin/assets/index-CpcrdRr4.js @@ -1 +1 @@ -import{o as T,ap as S,q as b,r as V,v as a,D as t,s,T as n,bd as z,bb as A,bh as j,u as o,bi as q,F as M,G as O,O as k,aA as G,bc as R,K as $,L as c,bj as H,ac as J,bk as Q,bl as W,bm as X,bn as Y,C as Z,aC as ee,p as E}from"./.pnpm-CyuAWpdG.js";import{_ as ae}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{b as le}from"./ai_mcp-Dog5pgH2.js";import{u as te}from"./usePaging-CghUEVfD.js";import{_ as se}from"./index-Dxvz9lb1.js";const oe={class:"ai-catalog-page"},ne={class:"summary"},de={class:"summary-item"},ie={class:"summary-value success"},ue={class:"summary-item"},re={class:"summary-value warning"},me={class:"summary-item"},ce={class:"summary-value"},_e={class:"cell-sub"},pe={class:"flex justify-end mt-4"},be=T({name:"aiMcpCatalog"}),fe=T({...be,setup(ve){const B={list:"列表",detail:"详情",report:"统计",other:"其他",write:"写操作"},v={open:{label:"已开放",type:"success"},pending:{label:"待整改",type:"warning"},excluded:{label:"不开放",type:"info"}},d=ee({status:"",domain:"",keyword:""}),{pager:i,getLists:g,resetPage:m,resetParams:F}=te({fetchFun:le,params:d,size:50}),f=E(()=>{var u;return((u=i.extend)==null?void 0:u.counts)||{}}),I=E(()=>{var u;return((u=i.extend)==null?void 0:u.domains)||[]});return S(()=>g()),(u,l)=>{const _=q,y=j,p=A,K=G,C=$,L=z,w=H,r=W,U=X,D=Q,N=ae,P=Y;return b(),V("div",oe,[a(w,{class:"!border-none",shadow:"never"},{default:t(()=>[s("div",ne,[s("div",de,[s("div",ie,n(f.value.open??0),1),l[4]||(l[4]=s("div",{class:"summary-label"},"已开放",-1))]),s("div",ue,[s("div",re,n(f.value.pending??0),1),l[5]||(l[5]=s("div",{class:"summary-label"},"待整改",-1))]),s("div",me,[s("div",ce,n(f.value.excluded??0),1),l[6]||(l[6]=s("div",{class:"summary-label"},"不开放",-1))])]),a(L,{inline:!0,class:"mt-3"},{default:t(()=>[a(p,{label:"状态"},{default:t(()=>[a(y,{modelValue:d.status,"onUpdate:modelValue":l[0]||(l[0]=e=>d.status=e),clearable:"",placeholder:"全部",class:"w-[120px]",onChange:o(m)},{default:t(()=>[a(_,{label:"已开放",value:"open"}),a(_,{label:"待整改",value:"pending"}),a(_,{label:"不开放",value:"excluded"})]),_:1},8,["modelValue","onChange"])]),_:1}),a(p,{label:"业务分组"},{default:t(()=>[a(y,{modelValue:d.domain,"onUpdate:modelValue":l[1]||(l[1]=e=>d.domain=e),clearable:"",filterable:"",placeholder:"全部",class:"w-[180px]",onChange:o(m)},{default:t(()=>[(b(!0),V(M,null,O(I.value,e=>(b(),k(_,{key:e,label:e,value:e},null,8,["label","value"]))),128))]),_:1},8,["modelValue","onChange"])]),_:1}),a(p,{label:"关键词"},{default:t(()=>[a(K,{modelValue:d.keyword,"onUpdate:modelValue":l[2]||(l[2]=e=>d.keyword=e),placeholder:"名称或资源标识",clearable:"",class:"w-[200px]",onKeyup:R(o(m),["enter"]),onClear:o(m)},null,8,["modelValue","onKeyup","onClear"])]),_:1}),a(p,null,{default:t(()=>[a(C,{type:"primary",onClick:o(m)},{default:t(()=>[...l[7]||(l[7]=[c("查询",-1)])]),_:1},8,["onClick"]),a(C,{onClick:o(F)},{default:t(()=>[...l[8]||(l[8]=[c("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1}),l[9]||(l[9]=s("div",{class:"page-hint"}," 后台每个只读接口都是一个“数据资源”。已开放的资源由 AI 以调用账号自己的权限和数据范围执行原有接口; 待整改的资源写明了原因(如缺少逐条权限校验、会调用外部接口、权限点未登记),整改或审核通过后开放。 ",-1))]),_:1}),a(w,{class:"!border-none mt-3",shadow:"never"},{default:t(()=>[J((b(),k(D,{data:o(i).lists,size:"default",stripe:""},{default:t(()=>[a(r,{label:"资源","min-width":"220"},{default:t(({row:e})=>[s("div",null,n(e.name),1),s("div",_e,n(e.resource),1)]),_:1}),a(r,{label:"业务分组",width:"150",prop:"domain"}),a(r,{label:"类型",width:"80"},{default:t(({row:e})=>[c(n(B[e.kind]||e.kind),1)]),_:1}),a(r,{label:"状态",width:"90",align:"center"},{default:t(({row:e})=>{var h;return[a(U,{type:(h=v[e.status])==null?void 0:h.type,size:"small"},{default:t(()=>{var x;return[c(n(((x=v[e.status])==null?void 0:x.label)||e.status),1)]}),_:2},1032,["type"])]}),_:1}),a(r,{label:"原因","min-width":"260",prop:"reason"}),a(r,{label:"已审核",width:"80",align:"center"},{default:t(({row:e})=>[c(n(e.reviewed?"是":"自动"),1)]),_:1})]),_:1},8,["data"])),[[P,o(i).loading]]),s("div",pe,[a(N,{modelValue:o(i),"onUpdate:modelValue":l[3]||(l[3]=e=>Z(i)?i.value=e:null),onChange:o(g)},null,8,["modelValue","onChange"])])]),_:1})])}}}),xe=se(fe,[["__scopeId","data-v-3190712f"]]);export{xe as default}; +import{o as T,ap as S,q as b,r as V,v as a,D as t,s,T as n,bd as z,bb as A,bh as j,u as o,bi as q,F as M,G as O,O as k,aA as G,bc as R,K as $,L as c,bj as H,ac as J,bk as Q,bl as W,bm as X,bn as Y,C as Z,aC as ee,p as E}from"./.pnpm-CyuAWpdG.js";import{_ as ae}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{b as le}from"./ai_mcp-Bk1FasTW.js";import{u as te}from"./usePaging-CghUEVfD.js";import{_ as se}from"./index-Bkarz3gO.js";const oe={class:"ai-catalog-page"},ne={class:"summary"},de={class:"summary-item"},ie={class:"summary-value success"},ue={class:"summary-item"},re={class:"summary-value warning"},me={class:"summary-item"},ce={class:"summary-value"},_e={class:"cell-sub"},pe={class:"flex justify-end mt-4"},be=T({name:"aiMcpCatalog"}),fe=T({...be,setup(ve){const B={list:"列表",detail:"详情",report:"统计",other:"其他",write:"写操作"},v={open:{label:"已开放",type:"success"},pending:{label:"待整改",type:"warning"},excluded:{label:"不开放",type:"info"}},d=ee({status:"",domain:"",keyword:""}),{pager:i,getLists:g,resetPage:m,resetParams:F}=te({fetchFun:le,params:d,size:50}),f=E(()=>{var u;return((u=i.extend)==null?void 0:u.counts)||{}}),I=E(()=>{var u;return((u=i.extend)==null?void 0:u.domains)||[]});return S(()=>g()),(u,l)=>{const _=q,y=j,p=A,K=G,C=$,L=z,w=H,r=W,U=X,D=Q,N=ae,P=Y;return b(),V("div",oe,[a(w,{class:"!border-none",shadow:"never"},{default:t(()=>[s("div",ne,[s("div",de,[s("div",ie,n(f.value.open??0),1),l[4]||(l[4]=s("div",{class:"summary-label"},"已开放",-1))]),s("div",ue,[s("div",re,n(f.value.pending??0),1),l[5]||(l[5]=s("div",{class:"summary-label"},"待整改",-1))]),s("div",me,[s("div",ce,n(f.value.excluded??0),1),l[6]||(l[6]=s("div",{class:"summary-label"},"不开放",-1))])]),a(L,{inline:!0,class:"mt-3"},{default:t(()=>[a(p,{label:"状态"},{default:t(()=>[a(y,{modelValue:d.status,"onUpdate:modelValue":l[0]||(l[0]=e=>d.status=e),clearable:"",placeholder:"全部",class:"w-[120px]",onChange:o(m)},{default:t(()=>[a(_,{label:"已开放",value:"open"}),a(_,{label:"待整改",value:"pending"}),a(_,{label:"不开放",value:"excluded"})]),_:1},8,["modelValue","onChange"])]),_:1}),a(p,{label:"业务分组"},{default:t(()=>[a(y,{modelValue:d.domain,"onUpdate:modelValue":l[1]||(l[1]=e=>d.domain=e),clearable:"",filterable:"",placeholder:"全部",class:"w-[180px]",onChange:o(m)},{default:t(()=>[(b(!0),V(M,null,O(I.value,e=>(b(),k(_,{key:e,label:e,value:e},null,8,["label","value"]))),128))]),_:1},8,["modelValue","onChange"])]),_:1}),a(p,{label:"关键词"},{default:t(()=>[a(K,{modelValue:d.keyword,"onUpdate:modelValue":l[2]||(l[2]=e=>d.keyword=e),placeholder:"名称或资源标识",clearable:"",class:"w-[200px]",onKeyup:R(o(m),["enter"]),onClear:o(m)},null,8,["modelValue","onKeyup","onClear"])]),_:1}),a(p,null,{default:t(()=>[a(C,{type:"primary",onClick:o(m)},{default:t(()=>[...l[7]||(l[7]=[c("查询",-1)])]),_:1},8,["onClick"]),a(C,{onClick:o(F)},{default:t(()=>[...l[8]||(l[8]=[c("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1}),l[9]||(l[9]=s("div",{class:"page-hint"}," 后台每个只读接口都是一个“数据资源”。已开放的资源由 AI 以调用账号自己的权限和数据范围执行原有接口; 待整改的资源写明了原因(如缺少逐条权限校验、会调用外部接口、权限点未登记),整改或审核通过后开放。 ",-1))]),_:1}),a(w,{class:"!border-none mt-3",shadow:"never"},{default:t(()=>[J((b(),k(D,{data:o(i).lists,size:"default",stripe:""},{default:t(()=>[a(r,{label:"资源","min-width":"220"},{default:t(({row:e})=>[s("div",null,n(e.name),1),s("div",_e,n(e.resource),1)]),_:1}),a(r,{label:"业务分组",width:"150",prop:"domain"}),a(r,{label:"类型",width:"80"},{default:t(({row:e})=>[c(n(B[e.kind]||e.kind),1)]),_:1}),a(r,{label:"状态",width:"90",align:"center"},{default:t(({row:e})=>{var h;return[a(U,{type:(h=v[e.status])==null?void 0:h.type,size:"small"},{default:t(()=>{var x;return[c(n(((x=v[e.status])==null?void 0:x.label)||e.status),1)]}),_:2},1032,["type"])]}),_:1}),a(r,{label:"原因","min-width":"260",prop:"reason"}),a(r,{label:"已审核",width:"80",align:"center"},{default:t(({row:e})=>[c(n(e.reviewed?"是":"自动"),1)]),_:1})]),_:1},8,["data"])),[[P,o(i).loading]]),s("div",pe,[a(N,{modelValue:o(i),"onUpdate:modelValue":l[3]||(l[3]=e=>Z(i)?i.value=e:null),onChange:o(g)},null,8,["modelValue","onChange"])])]),_:1})])}}}),xe=se(fe,[["__scopeId","data-v-3190712f"]]);export{xe as default}; diff --git a/server/public/admin/assets/index-ClBYIwNX.js b/server/public/admin/assets/index-Cqk_cdo9.js similarity index 89% rename from server/public/admin/assets/index-ClBYIwNX.js rename to server/public/admin/assets/index-Cqk_cdo9.js index eefb444ca..d52b5a4a7 100644 --- a/server/public/admin/assets/index-ClBYIwNX.js +++ b/server/public/admin/assets/index-Cqk_cdo9.js @@ -1 +1 @@ -import{_ as r,c}from"./index-Dxvz9lb1.js";import{o as d,q as s,r as n,ah as p,aw as i,v as _,P as m}from"./.pnpm-CyuAWpdG.js";const f=d({props:{showClose:{type:Boolean,default:!0}},emits:["close"],setup(e,{emit:o}){return{handleClose:()=>{o("close")}}}}),u={class:"del-wrap"};function C(e,o,t,h,$,v){const a=c;return s(),n("div",u,[p(e.$slots,"default",{},void 0,!0),e.showClose?(s(),n("div",{key:0,class:"icon-close",onClick:o[0]||(o[0]=i((...l)=>e.handleClose&&e.handleClose(...l),["stop"]))},[_(a,{size:12,name:"el-icon-CloseBold"})])):m("",!0)])}const B=r(f,[["render",C],["__scopeId","data-v-acafd744"]]);export{B as _}; +import{_ as r,c}from"./index-Bkarz3gO.js";import{o as d,q as s,r as n,ah as p,aw as i,v as _,P as m}from"./.pnpm-CyuAWpdG.js";const f=d({props:{showClose:{type:Boolean,default:!0}},emits:["close"],setup(e,{emit:o}){return{handleClose:()=>{o("close")}}}}),u={class:"del-wrap"};function C(e,o,t,h,$,v){const a=c;return s(),n("div",u,[p(e.$slots,"default",{},void 0,!0),e.showClose?(s(),n("div",{key:0,class:"icon-close",onClick:o[0]||(o[0]=i((...l)=>e.handleClose&&e.handleClose(...l),["stop"]))},[_(a,{size:12,name:"el-icon-CloseBold"})])):m("",!0)])}const B=r(f,[["render",C],["__scopeId","data-v-acafd744"]]);export{B as _}; diff --git a/server/public/admin/assets/index-CZz_g_Zd.js b/server/public/admin/assets/index-D1l4fR0M.js similarity index 99% rename from server/public/admin/assets/index-CZz_g_Zd.js rename to server/public/admin/assets/index-D1l4fR0M.js index 42b15d2d5..c4c3cd1d0 100644 --- a/server/public/admin/assets/index-CZz_g_Zd.js +++ b/server/public/admin/assets/index-D1l4fR0M.js @@ -1 +1 @@ -import{o as te,q as g,r as z,v as l,D as t,bd as xe,u as o,bb as Ce,aA as De,bc as W,bh as Ee,bi as Re,K as Ue,L as i,bj as Fe,s as w,ac as Z,O as x,bk as Ye,bl as $e,T as M,bm as he,bn as Me,C as T,J as Te,bf as qe,bq as He,aB as Le,P as Ne,B as Be,az as Se,M as u}from"./.pnpm-CyuAWpdG.js";import{_ as Ke}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{f as Pe,a as ze,b as Ae,h as je,g as Ie,c as Oe,d as Ge,e as Je}from"./fans-DGKJ29C1.js";import{u as Xe}from"./usePaging-CghUEVfD.js";import{j as ee}from"./index-Dxvz9lb1.js";import{d as le}from"./dayjs-B2bPhvDy.js";const Qe={class:"fans-management"},We={class:"mb-4"},Ze={key:1,class:"text-gray-400"},el={class:"flex mt-4 justify-end"},ll={class:"mb-4"},tl={key:0,class:"text-center mt-4"},al=te({name:"fansManagement"}),ml=te({...al,setup(ol){const ae=n=>{if(!n)return"-";const e=String(n).length===10?Number(n)*1e3:Number(n);return le(e).format("YYYY-MM-DD HH:mm:ss")},f=u({name:"",phone:"",gender:"",status:""}),{pager:k,getLists:C,resetParams:oe,resetPage:q}=Xe({fetchFun:Pe,params:f.value}),b=u(!1),D=u("add"),H=u(),L=u(!1),d=u({id:0,name:"",phone:"",id_card:"",age:0,gender:1,status:1,remark:""}),ne={name:[{required:!0,message:"请输入姓名",trigger:"blur"}],phone:[{required:!0,message:"请输入手机号",trigger:"blur"},{pattern:/^1[3-9]\d{9}$/,message:"手机号格式不正确",trigger:"blur"}],id_card:[{pattern:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,message:"身份证号格式不正确",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}]},ie=()=>{D.value="add",b.value=!0},de=n=>{D.value="edit",d.value={id:n.id,name:n.name,phone:n.phone,id_card:n.id_card,age:n.age,gender:n.gender,status:n.status,remark:n.remark},b.value=!0},se=()=>{var n;d.value={id:0,name:"",phone:"",id_card:"",age:0,gender:1,status:1,remark:""},(n=H.value)==null||n.resetFields()},re=async()=>{var n;await((n=H.value)==null?void 0:n.validate()),L.value=!0;try{D.value==="add"?await ze(d.value):await Ae(d.value),b.value=!1,C()}catch{}finally{L.value=!1}},ue=async n=>{await ee.confirm("确定要删除该粉丝吗?");try{await je({id:n}),C()}catch{}},E=u(!1),R=u(null),y=u([]),N=u(!1),A=u(0),c=u(1),me={1:"",2:"success",3:"info",4:"warning",5:"danger"},pe=n=>{R.value=n,E.value=!0,c.value=1,y.value=[],U()},U=async()=>{N.value=!0;try{const n=await Ie({fan_id:R.value.id,page_no:c.value,page_size:15});c.value===1?y.value=n.lists||[]:y.value=[...y.value,...n.lists||[]],A.value=n.count||0}catch(n){console.error("获取回访记录失败:",n)}finally{N.value=!1}},fe=()=>{c.value++,U()},V=u(!1),F=u("add"),B=u(),S=u(!1),m=u({id:0,fan_id:0,visit_type:1,visit_time:"",content:"",result:"",next_visit_time:""}),ve={visit_type:[{required:!0,message:"请选择回访类型",trigger:"change"}],visit_time:[{required:!0,message:"请选择回访时间",trigger:"change"}],content:[{required:!0,message:"请输入回访内容",trigger:"blur"}]},_e=()=>{F.value="add",m.value={id:0,fan_id:R.value.id,visit_type:1,visit_time:le().format("YYYY-MM-DD HH:mm:ss"),content:"",result:"",next_visit_time:""},V.value=!0},ge=n=>{F.value="edit",m.value={id:n.id,fan_id:n.fan_id,visit_type:n.visit_type,visit_time:n.visit_time_text||"",content:n.content||"",result:n.result||"",next_visit_time:n.next_visit_time_text||""},V.value=!0},be=()=>{var n;m.value={id:0,fan_id:0,visit_type:1,visit_time:"",content:"",result:"",next_visit_time:""},(n=B.value)==null||n.resetFields()},Ve=async()=>{var n;await((n=B.value)==null?void 0:n.validate()),S.value=!0;try{F.value==="add"?await Oe(m.value):await Ge(m.value),V.value=!1,c.value=1,U()}catch{}finally{S.value=!1}},ye=async n=>{await ee.confirm("确定要删除该回访记录吗?");try{await Je({id:n}),c.value=1,U()}catch{}};return C(),(n,e)=>{var Q;const _=De,r=Ce,v=Re,K=Ee,p=Ue,P=xe,j=Fe,s=$e,Y=he,I=Ye,ce=Ke,ke=Te,$=He,O=qe,G=Le,we=Be,J=Se,X=Me;return g(),z("div",Qe,[l(j,{class:"!border-none",shadow:"never"},{default:t(()=>[l(P,{class:"ls-form",model:o(f),inline:""},{default:t(()=>[l(r,{class:"w-[280px]",label:"姓名"},{default:t(()=>[l(_,{placeholder:"请输入姓名",modelValue:o(f).name,"onUpdate:modelValue":e[0]||(e[0]=a=>o(f).name=a),clearable:"",onKeyup:W(o(q),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(r,{class:"w-[280px]",label:"手机号"},{default:t(()=>[l(_,{placeholder:"请输入手机号",modelValue:o(f).phone,"onUpdate:modelValue":e[1]||(e[1]=a=>o(f).phone=a),clearable:"",onKeyup:W(o(q),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(r,{class:"w-[180px]",label:"性别"},{default:t(()=>[l(K,{modelValue:o(f).gender,"onUpdate:modelValue":e[2]||(e[2]=a=>o(f).gender=a),placeholder:"请选择",clearable:""},{default:t(()=>[l(v,{label:"男",value:1}),l(v,{label:"女",value:2})]),_:1},8,["modelValue"])]),_:1}),l(r,{class:"w-[180px]",label:"状态"},{default:t(()=>[l(K,{modelValue:o(f).status,"onUpdate:modelValue":e[3]||(e[3]=a=>o(f).status=a),placeholder:"请选择",clearable:""},{default:t(()=>[l(v,{label:"启用",value:1}),l(v,{label:"禁用",value:0})]),_:1},8,["modelValue"])]),_:1}),l(r,null,{default:t(()=>[l(p,{type:"primary",onClick:o(q)},{default:t(()=>[...e[22]||(e[22]=[i("查询",-1)])]),_:1},8,["onClick"]),l(p,{onClick:o(oe)},{default:t(()=>[...e[23]||(e[23]=[i("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),l(j,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[w("div",We,[l(p,{type:"primary",onClick:ie},{default:t(()=>[...e[24]||(e[24]=[i("新增粉丝",-1)])]),_:1})]),Z((g(),x(I,{data:o(k).lists,size:"large"},{default:t(()=>[l(s,{label:"ID",prop:"id",width:"70"}),l(s,{label:"姓名",prop:"name","min-width":"100"}),l(s,{label:"手机号",prop:"phone","min-width":"130"}),l(s,{label:"身份证号",prop:"id_card","min-width":"180"}),l(s,{label:"性别",prop:"gender_desc",width:"80"}),l(s,{label:"年龄",prop:"age",width:"70"}),l(s,{label:"备注",prop:"remark","min-width":"150","show-overflow-tooltip":""}),l(s,{label:"登记人",prop:"creator_name","min-width":"100"},{default:t(({row:a})=>[w("span",null,M(a.creator_name||"-"),1)]),_:1}),l(s,{label:"回访次数",width:"90",align:"center"},{default:t(({row:a})=>[a.visit_count>0?(g(),x(Y,{key:0,type:"success"},{default:t(()=>[i(M(a.visit_count),1)]),_:2},1024)):(g(),z("span",Ze,"0"))]),_:1}),l(s,{label:"状态",width:"80"},{default:t(({row:a})=>[a.status==1?(g(),x(Y,{key:0,type:"success"},{default:t(()=>[...e[25]||(e[25]=[i("启用",-1)])]),_:1})):(g(),x(Y,{key:1,type:"danger"},{default:t(()=>[...e[26]||(e[26]=[i("禁用",-1)])]),_:1}))]),_:1}),l(s,{label:"创建时间","min-width":"170"},{default:t(({row:a})=>[w("span",null,M(ae(a.create_time)),1)]),_:1}),l(s,{label:"操作",width:"220",fixed:"right"},{default:t(({row:a})=>[l(p,{type:"primary",link:"",onClick:h=>de(a)},{default:t(()=>[...e[27]||(e[27]=[i("编辑",-1)])]),_:1},8,["onClick"]),l(p,{type:"success",link:"",onClick:h=>pe(a)},{default:t(()=>[...e[28]||(e[28]=[i("回访记录",-1)])]),_:1},8,["onClick"]),l(p,{type:"danger",link:"",onClick:h=>ue(a.id)},{default:t(()=>[...e[29]||(e[29]=[i("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[X,o(k).loading]]),w("div",el,[l(ce,{modelValue:o(k),"onUpdate:modelValue":e[4]||(e[4]=a=>T(k)?k.value=a:null),onChange:o(C)},null,8,["modelValue","onChange"])])]),_:1}),l(G,{modelValue:o(b),"onUpdate:modelValue":e[13]||(e[13]=a=>T(b)?b.value=a:null),title:o(D)==="add"?"新增粉丝":"编辑粉丝",width:"600px","close-on-click-modal":!1,onClosed:se},{footer:t(()=>[l(p,{onClick:e[12]||(e[12]=a=>b.value=!1)},{default:t(()=>[...e[34]||(e[34]=[i("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o(L),onClick:re},{default:t(()=>[...e[35]||(e[35]=[i("确定",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(P,{ref_key:"fanFormRef",ref:H,model:o(d),rules:ne,"label-width":"100px"},{default:t(()=>[l(r,{label:"姓名",prop:"name"},{default:t(()=>[l(_,{modelValue:o(d).name,"onUpdate:modelValue":e[5]||(e[5]=a=>o(d).name=a),placeholder:"请输入姓名",maxlength:"50"},null,8,["modelValue"])]),_:1}),l(r,{label:"手机号",prop:"phone"},{default:t(()=>[l(_,{modelValue:o(d).phone,"onUpdate:modelValue":e[6]||(e[6]=a=>o(d).phone=a),placeholder:"请输入手机号",maxlength:"11"},null,8,["modelValue"])]),_:1}),l(r,{label:"身份证号",prop:"id_card"},{default:t(()=>[l(_,{modelValue:o(d).id_card,"onUpdate:modelValue":e[7]||(e[7]=a=>o(d).id_card=a),placeholder:"请输入身份证号码",maxlength:"18"},null,8,["modelValue"])]),_:1}),l(r,{label:"年龄",prop:"age"},{default:t(()=>[l(ke,{modelValue:o(d).age,"onUpdate:modelValue":e[8]||(e[8]=a=>o(d).age=a),min:0,max:150},null,8,["modelValue"])]),_:1}),l(r,{label:"性别",prop:"gender"},{default:t(()=>[l(O,{modelValue:o(d).gender,"onUpdate:modelValue":e[9]||(e[9]=a=>o(d).gender=a)},{default:t(()=>[l($,{label:1},{default:t(()=>[...e[30]||(e[30]=[i("男",-1)])]),_:1}),l($,{label:2},{default:t(()=>[...e[31]||(e[31]=[i("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"状态",prop:"status"},{default:t(()=>[l(O,{modelValue:o(d).status,"onUpdate:modelValue":e[10]||(e[10]=a=>o(d).status=a)},{default:t(()=>[l($,{label:1},{default:t(()=>[...e[32]||(e[32]=[i("启用",-1)])]),_:1}),l($,{label:0},{default:t(()=>[...e[33]||(e[33]=[i("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"备注",prop:"remark"},{default:t(()=>[l(_,{modelValue:o(d).remark,"onUpdate:modelValue":e[11]||(e[11]=a=>o(d).remark=a),type:"textarea",rows:3,placeholder:"请输入备注",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(we,{modelValue:o(E),"onUpdate:modelValue":e[14]||(e[14]=a=>T(E)?E.value=a:null),title:`回访记录 - ${((Q=o(R))==null?void 0:Q.name)||""}`,size:"700px","close-on-click-modal":!1},{default:t(()=>[w("div",ll,[l(p,{type:"primary",onClick:_e},{default:t(()=>[...e[36]||(e[36]=[i("新增回访记录",-1)])]),_:1})]),Z((g(),x(I,{data:o(y),size:"large"},{default:t(()=>[l(s,{label:"回访类型",width:"100"},{default:t(({row:a})=>[l(Y,{type:me[a.visit_type]},{default:t(()=>[i(M(a.visit_type_desc),1)]),_:2},1032,["type"])]),_:1}),l(s,{label:"回访时间",prop:"visit_time_text","min-width":"150"}),l(s,{label:"回访内容",prop:"content","min-width":"200","show-overflow-tooltip":""}),l(s,{label:"回访结果",prop:"result","min-width":"150","show-overflow-tooltip":""}),l(s,{label:"下次回访",prop:"next_visit_time_text","min-width":"150"}),l(s,{label:"操作人",prop:"operator_name",width:"100"}),l(s,{label:"操作",width:"120",fixed:"right"},{default:t(({row:a})=>[l(p,{type:"primary",link:"",onClick:h=>ge(a)},{default:t(()=>[...e[37]||(e[37]=[i("编辑",-1)])]),_:1},8,["onClick"]),l(p,{type:"danger",link:"",onClick:h=>ye(a.id)},{default:t(()=>[...e[38]||(e[38]=[i("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[X,o(N)]]),o(A)>o(y).length?(g(),z("div",tl,[l(p,{link:"",type:"primary",onClick:fe},{default:t(()=>[...e[39]||(e[39]=[i("加载更多",-1)])]),_:1})])):Ne("",!0)]),_:1},8,["modelValue","title"]),l(G,{modelValue:o(V),"onUpdate:modelValue":e[21]||(e[21]=a=>T(V)?V.value=a:null),title:o(F)==="add"?"新增回访记录":"编辑回访记录",width:"600px","close-on-click-modal":!1,onClosed:be},{footer:t(()=>[l(p,{onClick:e[20]||(e[20]=a=>V.value=!1)},{default:t(()=>[...e[40]||(e[40]=[i("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o(S),onClick:Ve},{default:t(()=>[...e[41]||(e[41]=[i("确定",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(P,{ref_key:"visitFormRef",ref:B,model:o(m),rules:ve,"label-width":"120px"},{default:t(()=>[l(r,{label:"回访类型",prop:"visit_type"},{default:t(()=>[l(K,{modelValue:o(m).visit_type,"onUpdate:modelValue":e[15]||(e[15]=a=>o(m).visit_type=a),placeholder:"请选择回访类型"},{default:t(()=>[l(v,{label:"电话",value:1}),l(v,{label:"微信",value:2}),l(v,{label:"短信",value:3}),l(v,{label:"上门",value:4}),l(v,{label:"其他",value:5})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"回访时间",prop:"visit_time"},{default:t(()=>[l(J,{modelValue:o(m).visit_time,"onUpdate:modelValue":e[16]||(e[16]=a=>o(m).visit_time=a),type:"datetime",placeholder:"请选择回访时间","value-format":"YYYY-MM-DD HH:mm:ss",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),l(r,{label:"回访内容",prop:"content"},{default:t(()=>[l(_,{modelValue:o(m).content,"onUpdate:modelValue":e[17]||(e[17]=a=>o(m).content=a),type:"textarea",rows:4,placeholder:"请输入回访内容"},null,8,["modelValue"])]),_:1}),l(r,{label:"回访结果",prop:"result"},{default:t(()=>[l(_,{modelValue:o(m).result,"onUpdate:modelValue":e[18]||(e[18]=a=>o(m).result=a),type:"textarea",rows:3,placeholder:"请输入回访结果"},null,8,["modelValue"])]),_:1}),l(r,{label:"下次回访时间",prop:"next_visit_time"},{default:t(()=>[l(J,{modelValue:o(m).next_visit_time,"onUpdate:modelValue":e[19]||(e[19]=a=>o(m).next_visit_time=a),type:"datetime",placeholder:"请选择下次回访时间","value-format":"YYYY-MM-DD HH:mm:ss",style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}});export{ml as default}; +import{o as te,q as g,r as z,v as l,D as t,bd as xe,u as o,bb as Ce,aA as De,bc as W,bh as Ee,bi as Re,K as Ue,L as i,bj as Fe,s as w,ac as Z,O as x,bk as Ye,bl as $e,T as M,bm as he,bn as Me,C as T,J as Te,bf as qe,bq as He,aB as Le,P as Ne,B as Be,az as Se,M as u}from"./.pnpm-CyuAWpdG.js";import{_ as Ke}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{f as Pe,a as ze,b as Ae,h as je,g as Ie,c as Oe,d as Ge,e as Je}from"./fans-DYvCYhBT.js";import{u as Xe}from"./usePaging-CghUEVfD.js";import{j as ee}from"./index-Bkarz3gO.js";import{d as le}from"./dayjs-B2bPhvDy.js";const Qe={class:"fans-management"},We={class:"mb-4"},Ze={key:1,class:"text-gray-400"},el={class:"flex mt-4 justify-end"},ll={class:"mb-4"},tl={key:0,class:"text-center mt-4"},al=te({name:"fansManagement"}),ml=te({...al,setup(ol){const ae=n=>{if(!n)return"-";const e=String(n).length===10?Number(n)*1e3:Number(n);return le(e).format("YYYY-MM-DD HH:mm:ss")},f=u({name:"",phone:"",gender:"",status:""}),{pager:k,getLists:C,resetParams:oe,resetPage:q}=Xe({fetchFun:Pe,params:f.value}),b=u(!1),D=u("add"),H=u(),L=u(!1),d=u({id:0,name:"",phone:"",id_card:"",age:0,gender:1,status:1,remark:""}),ne={name:[{required:!0,message:"请输入姓名",trigger:"blur"}],phone:[{required:!0,message:"请输入手机号",trigger:"blur"},{pattern:/^1[3-9]\d{9}$/,message:"手机号格式不正确",trigger:"blur"}],id_card:[{pattern:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,message:"身份证号格式不正确",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}]},ie=()=>{D.value="add",b.value=!0},de=n=>{D.value="edit",d.value={id:n.id,name:n.name,phone:n.phone,id_card:n.id_card,age:n.age,gender:n.gender,status:n.status,remark:n.remark},b.value=!0},se=()=>{var n;d.value={id:0,name:"",phone:"",id_card:"",age:0,gender:1,status:1,remark:""},(n=H.value)==null||n.resetFields()},re=async()=>{var n;await((n=H.value)==null?void 0:n.validate()),L.value=!0;try{D.value==="add"?await ze(d.value):await Ae(d.value),b.value=!1,C()}catch{}finally{L.value=!1}},ue=async n=>{await ee.confirm("确定要删除该粉丝吗?");try{await je({id:n}),C()}catch{}},E=u(!1),R=u(null),y=u([]),N=u(!1),A=u(0),c=u(1),me={1:"",2:"success",3:"info",4:"warning",5:"danger"},pe=n=>{R.value=n,E.value=!0,c.value=1,y.value=[],U()},U=async()=>{N.value=!0;try{const n=await Ie({fan_id:R.value.id,page_no:c.value,page_size:15});c.value===1?y.value=n.lists||[]:y.value=[...y.value,...n.lists||[]],A.value=n.count||0}catch(n){console.error("获取回访记录失败:",n)}finally{N.value=!1}},fe=()=>{c.value++,U()},V=u(!1),F=u("add"),B=u(),S=u(!1),m=u({id:0,fan_id:0,visit_type:1,visit_time:"",content:"",result:"",next_visit_time:""}),ve={visit_type:[{required:!0,message:"请选择回访类型",trigger:"change"}],visit_time:[{required:!0,message:"请选择回访时间",trigger:"change"}],content:[{required:!0,message:"请输入回访内容",trigger:"blur"}]},_e=()=>{F.value="add",m.value={id:0,fan_id:R.value.id,visit_type:1,visit_time:le().format("YYYY-MM-DD HH:mm:ss"),content:"",result:"",next_visit_time:""},V.value=!0},ge=n=>{F.value="edit",m.value={id:n.id,fan_id:n.fan_id,visit_type:n.visit_type,visit_time:n.visit_time_text||"",content:n.content||"",result:n.result||"",next_visit_time:n.next_visit_time_text||""},V.value=!0},be=()=>{var n;m.value={id:0,fan_id:0,visit_type:1,visit_time:"",content:"",result:"",next_visit_time:""},(n=B.value)==null||n.resetFields()},Ve=async()=>{var n;await((n=B.value)==null?void 0:n.validate()),S.value=!0;try{F.value==="add"?await Oe(m.value):await Ge(m.value),V.value=!1,c.value=1,U()}catch{}finally{S.value=!1}},ye=async n=>{await ee.confirm("确定要删除该回访记录吗?");try{await Je({id:n}),c.value=1,U()}catch{}};return C(),(n,e)=>{var Q;const _=De,r=Ce,v=Re,K=Ee,p=Ue,P=xe,j=Fe,s=$e,Y=he,I=Ye,ce=Ke,ke=Te,$=He,O=qe,G=Le,we=Be,J=Se,X=Me;return g(),z("div",Qe,[l(j,{class:"!border-none",shadow:"never"},{default:t(()=>[l(P,{class:"ls-form",model:o(f),inline:""},{default:t(()=>[l(r,{class:"w-[280px]",label:"姓名"},{default:t(()=>[l(_,{placeholder:"请输入姓名",modelValue:o(f).name,"onUpdate:modelValue":e[0]||(e[0]=a=>o(f).name=a),clearable:"",onKeyup:W(o(q),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(r,{class:"w-[280px]",label:"手机号"},{default:t(()=>[l(_,{placeholder:"请输入手机号",modelValue:o(f).phone,"onUpdate:modelValue":e[1]||(e[1]=a=>o(f).phone=a),clearable:"",onKeyup:W(o(q),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(r,{class:"w-[180px]",label:"性别"},{default:t(()=>[l(K,{modelValue:o(f).gender,"onUpdate:modelValue":e[2]||(e[2]=a=>o(f).gender=a),placeholder:"请选择",clearable:""},{default:t(()=>[l(v,{label:"男",value:1}),l(v,{label:"女",value:2})]),_:1},8,["modelValue"])]),_:1}),l(r,{class:"w-[180px]",label:"状态"},{default:t(()=>[l(K,{modelValue:o(f).status,"onUpdate:modelValue":e[3]||(e[3]=a=>o(f).status=a),placeholder:"请选择",clearable:""},{default:t(()=>[l(v,{label:"启用",value:1}),l(v,{label:"禁用",value:0})]),_:1},8,["modelValue"])]),_:1}),l(r,null,{default:t(()=>[l(p,{type:"primary",onClick:o(q)},{default:t(()=>[...e[22]||(e[22]=[i("查询",-1)])]),_:1},8,["onClick"]),l(p,{onClick:o(oe)},{default:t(()=>[...e[23]||(e[23]=[i("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),l(j,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[w("div",We,[l(p,{type:"primary",onClick:ie},{default:t(()=>[...e[24]||(e[24]=[i("新增粉丝",-1)])]),_:1})]),Z((g(),x(I,{data:o(k).lists,size:"large"},{default:t(()=>[l(s,{label:"ID",prop:"id",width:"70"}),l(s,{label:"姓名",prop:"name","min-width":"100"}),l(s,{label:"手机号",prop:"phone","min-width":"130"}),l(s,{label:"身份证号",prop:"id_card","min-width":"180"}),l(s,{label:"性别",prop:"gender_desc",width:"80"}),l(s,{label:"年龄",prop:"age",width:"70"}),l(s,{label:"备注",prop:"remark","min-width":"150","show-overflow-tooltip":""}),l(s,{label:"登记人",prop:"creator_name","min-width":"100"},{default:t(({row:a})=>[w("span",null,M(a.creator_name||"-"),1)]),_:1}),l(s,{label:"回访次数",width:"90",align:"center"},{default:t(({row:a})=>[a.visit_count>0?(g(),x(Y,{key:0,type:"success"},{default:t(()=>[i(M(a.visit_count),1)]),_:2},1024)):(g(),z("span",Ze,"0"))]),_:1}),l(s,{label:"状态",width:"80"},{default:t(({row:a})=>[a.status==1?(g(),x(Y,{key:0,type:"success"},{default:t(()=>[...e[25]||(e[25]=[i("启用",-1)])]),_:1})):(g(),x(Y,{key:1,type:"danger"},{default:t(()=>[...e[26]||(e[26]=[i("禁用",-1)])]),_:1}))]),_:1}),l(s,{label:"创建时间","min-width":"170"},{default:t(({row:a})=>[w("span",null,M(ae(a.create_time)),1)]),_:1}),l(s,{label:"操作",width:"220",fixed:"right"},{default:t(({row:a})=>[l(p,{type:"primary",link:"",onClick:h=>de(a)},{default:t(()=>[...e[27]||(e[27]=[i("编辑",-1)])]),_:1},8,["onClick"]),l(p,{type:"success",link:"",onClick:h=>pe(a)},{default:t(()=>[...e[28]||(e[28]=[i("回访记录",-1)])]),_:1},8,["onClick"]),l(p,{type:"danger",link:"",onClick:h=>ue(a.id)},{default:t(()=>[...e[29]||(e[29]=[i("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[X,o(k).loading]]),w("div",el,[l(ce,{modelValue:o(k),"onUpdate:modelValue":e[4]||(e[4]=a=>T(k)?k.value=a:null),onChange:o(C)},null,8,["modelValue","onChange"])])]),_:1}),l(G,{modelValue:o(b),"onUpdate:modelValue":e[13]||(e[13]=a=>T(b)?b.value=a:null),title:o(D)==="add"?"新增粉丝":"编辑粉丝",width:"600px","close-on-click-modal":!1,onClosed:se},{footer:t(()=>[l(p,{onClick:e[12]||(e[12]=a=>b.value=!1)},{default:t(()=>[...e[34]||(e[34]=[i("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o(L),onClick:re},{default:t(()=>[...e[35]||(e[35]=[i("确定",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(P,{ref_key:"fanFormRef",ref:H,model:o(d),rules:ne,"label-width":"100px"},{default:t(()=>[l(r,{label:"姓名",prop:"name"},{default:t(()=>[l(_,{modelValue:o(d).name,"onUpdate:modelValue":e[5]||(e[5]=a=>o(d).name=a),placeholder:"请输入姓名",maxlength:"50"},null,8,["modelValue"])]),_:1}),l(r,{label:"手机号",prop:"phone"},{default:t(()=>[l(_,{modelValue:o(d).phone,"onUpdate:modelValue":e[6]||(e[6]=a=>o(d).phone=a),placeholder:"请输入手机号",maxlength:"11"},null,8,["modelValue"])]),_:1}),l(r,{label:"身份证号",prop:"id_card"},{default:t(()=>[l(_,{modelValue:o(d).id_card,"onUpdate:modelValue":e[7]||(e[7]=a=>o(d).id_card=a),placeholder:"请输入身份证号码",maxlength:"18"},null,8,["modelValue"])]),_:1}),l(r,{label:"年龄",prop:"age"},{default:t(()=>[l(ke,{modelValue:o(d).age,"onUpdate:modelValue":e[8]||(e[8]=a=>o(d).age=a),min:0,max:150},null,8,["modelValue"])]),_:1}),l(r,{label:"性别",prop:"gender"},{default:t(()=>[l(O,{modelValue:o(d).gender,"onUpdate:modelValue":e[9]||(e[9]=a=>o(d).gender=a)},{default:t(()=>[l($,{label:1},{default:t(()=>[...e[30]||(e[30]=[i("男",-1)])]),_:1}),l($,{label:2},{default:t(()=>[...e[31]||(e[31]=[i("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"状态",prop:"status"},{default:t(()=>[l(O,{modelValue:o(d).status,"onUpdate:modelValue":e[10]||(e[10]=a=>o(d).status=a)},{default:t(()=>[l($,{label:1},{default:t(()=>[...e[32]||(e[32]=[i("启用",-1)])]),_:1}),l($,{label:0},{default:t(()=>[...e[33]||(e[33]=[i("禁用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"备注",prop:"remark"},{default:t(()=>[l(_,{modelValue:o(d).remark,"onUpdate:modelValue":e[11]||(e[11]=a=>o(d).remark=a),type:"textarea",rows:3,placeholder:"请输入备注",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(we,{modelValue:o(E),"onUpdate:modelValue":e[14]||(e[14]=a=>T(E)?E.value=a:null),title:`回访记录 - ${((Q=o(R))==null?void 0:Q.name)||""}`,size:"700px","close-on-click-modal":!1},{default:t(()=>[w("div",ll,[l(p,{type:"primary",onClick:_e},{default:t(()=>[...e[36]||(e[36]=[i("新增回访记录",-1)])]),_:1})]),Z((g(),x(I,{data:o(y),size:"large"},{default:t(()=>[l(s,{label:"回访类型",width:"100"},{default:t(({row:a})=>[l(Y,{type:me[a.visit_type]},{default:t(()=>[i(M(a.visit_type_desc),1)]),_:2},1032,["type"])]),_:1}),l(s,{label:"回访时间",prop:"visit_time_text","min-width":"150"}),l(s,{label:"回访内容",prop:"content","min-width":"200","show-overflow-tooltip":""}),l(s,{label:"回访结果",prop:"result","min-width":"150","show-overflow-tooltip":""}),l(s,{label:"下次回访",prop:"next_visit_time_text","min-width":"150"}),l(s,{label:"操作人",prop:"operator_name",width:"100"}),l(s,{label:"操作",width:"120",fixed:"right"},{default:t(({row:a})=>[l(p,{type:"primary",link:"",onClick:h=>ge(a)},{default:t(()=>[...e[37]||(e[37]=[i("编辑",-1)])]),_:1},8,["onClick"]),l(p,{type:"danger",link:"",onClick:h=>ye(a.id)},{default:t(()=>[...e[38]||(e[38]=[i("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[X,o(N)]]),o(A)>o(y).length?(g(),z("div",tl,[l(p,{link:"",type:"primary",onClick:fe},{default:t(()=>[...e[39]||(e[39]=[i("加载更多",-1)])]),_:1})])):Ne("",!0)]),_:1},8,["modelValue","title"]),l(G,{modelValue:o(V),"onUpdate:modelValue":e[21]||(e[21]=a=>T(V)?V.value=a:null),title:o(F)==="add"?"新增回访记录":"编辑回访记录",width:"600px","close-on-click-modal":!1,onClosed:be},{footer:t(()=>[l(p,{onClick:e[20]||(e[20]=a=>V.value=!1)},{default:t(()=>[...e[40]||(e[40]=[i("取消",-1)])]),_:1}),l(p,{type:"primary",loading:o(S),onClick:Ve},{default:t(()=>[...e[41]||(e[41]=[i("确定",-1)])]),_:1},8,["loading"])]),default:t(()=>[l(P,{ref_key:"visitFormRef",ref:B,model:o(m),rules:ve,"label-width":"120px"},{default:t(()=>[l(r,{label:"回访类型",prop:"visit_type"},{default:t(()=>[l(K,{modelValue:o(m).visit_type,"onUpdate:modelValue":e[15]||(e[15]=a=>o(m).visit_type=a),placeholder:"请选择回访类型"},{default:t(()=>[l(v,{label:"电话",value:1}),l(v,{label:"微信",value:2}),l(v,{label:"短信",value:3}),l(v,{label:"上门",value:4}),l(v,{label:"其他",value:5})]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"回访时间",prop:"visit_time"},{default:t(()=>[l(J,{modelValue:o(m).visit_time,"onUpdate:modelValue":e[16]||(e[16]=a=>o(m).visit_time=a),type:"datetime",placeholder:"请选择回访时间","value-format":"YYYY-MM-DD HH:mm:ss",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),l(r,{label:"回访内容",prop:"content"},{default:t(()=>[l(_,{modelValue:o(m).content,"onUpdate:modelValue":e[17]||(e[17]=a=>o(m).content=a),type:"textarea",rows:4,placeholder:"请输入回访内容"},null,8,["modelValue"])]),_:1}),l(r,{label:"回访结果",prop:"result"},{default:t(()=>[l(_,{modelValue:o(m).result,"onUpdate:modelValue":e[18]||(e[18]=a=>o(m).result=a),type:"textarea",rows:3,placeholder:"请输入回访结果"},null,8,["modelValue"])]),_:1}),l(r,{label:"下次回访时间",prop:"next_visit_time"},{default:t(()=>[l(J,{modelValue:o(m).next_visit_time,"onUpdate:modelValue":e[19]||(e[19]=a=>o(m).next_visit_time=a),type:"datetime",placeholder:"请选择下次回访时间","value-format":"YYYY-MM-DD HH:mm:ss",style:{width:"100%"}},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}});export{ml as default}; diff --git a/server/public/admin/assets/index-D1p2R87k.js b/server/public/admin/assets/index-D1p2R87k.js new file mode 100644 index 000000000..8782baa02 --- /dev/null +++ b/server/public/admin/assets/index-D1p2R87k.js @@ -0,0 +1 @@ +import o from"./CohortReport-CBHGIK9p.js";import{o as t,q as e,O as r}from"./.pnpm-CyuAWpdG.js";import"./stats-B9TgZYZ_.js";import"./index-Bkarz3gO.js";import"./perm-CHCBwnFR.js";const a=t({name:"revisitInheritRateStatsPage"}),h=t({...a,setup(p){return(i,n)=>(e(),r(o,{"cohort-type":"inherit"}))}});export{h as default}; diff --git a/server/public/admin/assets/index-90iZzuMB.js b/server/public/admin/assets/index-D6GWqnbb.js similarity index 91% rename from server/public/admin/assets/index-90iZzuMB.js rename to server/public/admin/assets/index-D6GWqnbb.js index 7126bed6b..525d96fbd 100644 --- a/server/public/admin/assets/index-90iZzuMB.js +++ b/server/public/admin/assets/index-D6GWqnbb.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-QAkeqQ9Q.js","assets/index-Dxvz9lb1.js","assets/index-B3vHLAW8.css","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-B4rggqa1.css","assets/edit-DFFSwWxS.js","assets/perm-DOfZAzJJ.js","assets/DailyMatrix-BSZy3g0c.js","assets/picker-BDO86vcM.js","assets/index-BnfLT5cB.js","assets/index-B3imPWFk.css","assets/index-yD39j6dM.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-ClBYIwNX.js","assets/index-D0f1Mn00.css","assets/index-BU3OYnKm.js","assets/file-CefRfHD9.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-CE1isNg2.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-GXQTu6xF.js","assets/FollowupAudioReview-92Fgd7wW.js","assets/FollowupAudioField-BG0mRnT5.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-Bdp996ss.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-DFudUjln.js","assets/RecordingPlaybackBlock-GbWd6PMw.js","assets/RecordingVideoPlayer-grUPRDCj.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CafeXQX5.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-0TFZiCkF.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-C2wB-h-D.js","assets/doctor-8vo_5fa4.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-DDh0aI3_.js","assets/patient-Bz8-LT2R.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-BP2alDvZ.js","assets/PatientOrderList-D8-uh2iu.css","assets/index-Cis-_1uh.js","assets/index-Cf6ygfGC.js","assets/medicine-EUKQYFsM.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-DT7CSmCp.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]); -import{o as fe,ap as Se,q as o,r as c,v as a,D as n,bd as Me,bb as Pe,az as Fe,bL as Ae,bf as Be,be as Ie,L as d,K as Ye,bZ as ze,s as i,T as s,F as R,w as Ue,u as v,ci as $,bj as Ge,G as _e,ae as Ke,P as E,ac as pe,O as b,bk as je,bl as qe,bt as He,a1 as Qe,bn as Ze,bm as Je,aB as We,cd as ce,al as ve,M as f,p as Z}from"./.pnpm-CyuAWpdG.js";import{D as Xe,C as et,E as tt,F as lt}from"./stats-Bao68QGi.js";import{h as I}from"./perm-DOfZAzJJ.js";import{_ as nt}from"./index-Dxvz9lb1.js";const at={class:"revisit-rate-page"},it={class:"rate-caliber-trigger"},st={class:"rate-caliber"},ot={key:1},dt={class:"rate-kpi-grid"},rt=["onClick"],ut={class:"rate-kpi-label"},_t={class:"rate-kpi-value"},pt={key:0,class:"rate-kpi-sub"},ct={class:"rate-card-header"},vt={key:0,class:"rate-dept-cell"},ft={class:"rate-dept-count"},mt={key:1},bt={key:1},ht={key:1},gt={key:1},kt={key:1},yt={class:"rate-cell"},$t={class:"rate-cell-main"},Ct={key:0,class:"rate-cell-sub"},Dt={key:1},Et={class:"rate-cell"},wt={class:"rate-cell-main"},Nt={key:0,class:"rate-cell-sub"},Vt={key:1},xt={key:1},Rt={key:1},Tt={class:"rate-detail-footer"},Lt=fe({name:"revisitRateStatsPage"}),Ot=fe({...Lt,setup(St){const me=ce(()=>ve(()=>import("./PrescriptionOrderDetailDrawer-v90LlSLZ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),be=ce(()=>ve(()=>import("./edit-DFFSwWxS.js"),__vite__mapDeps([8,1,2,3,4,5,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,0,6,7,55,56,57,58,59,60,61,62,63,64,65]))),T=I(["stats.revisitRate/assignLines"]),L=I(["stats.revisitRate/visitOrderLines"]),J=I(["tcm.prescriptionOrder/detail"]),Y=I(["tcm.diagnosis/detail"]),z=f([2,3,4]),W=["零","一","二","三","四","五","六","七","八","九","十"],g=e=>e===0?"复诊合计":e>=2&&e<=10?`${W[e]}诊`:e>10&&e<20?`十${W[e-10]}诊`:`${e}诊`,X=new Date,ee=`${X.getFullYear()}-${String(X.getMonth()+1).padStart(2,"0")}`,w=f(ee),O=f(void 0),N=f(""),S=f(!1),te=f([]),U=f(null),G=f([]),he={value:"id",label:"name",children:"children"},h=Z(()=>N.value!=="exclude"),K=Z(()=>{const[e,t]=w.value.split("-");return e&&t?`${e}年${Number(t)}月`:w.value}),M=e=>e==null?"—":`${e}%`,j=(e,t)=>{const r=Number(e[`${t}_count`]??0),u=e[`${t}_den`];return`${r} / ${u??"—"}`},ge=e=>h.value?`${g(e)}单数 ÷ ${g(e)}分母;分母 = 当月新指派数 + 起算诊次 ≤ ${e} 的继承数;分母为 0 显示「—」`:`${g(e)}单数 ÷ 当月新指派数(旧口径:继承不计分母);分母为 0 显示「—」`,ke=e=>{const t=Number(e??0);return t<=0?"—":t>50?`${t}(仅计合计)`:g(t)},q=()=>({month:w.value,dept_ids:O.value?String(O.value):"",inherit_mode:N.value||void 0}),ye=Z(()=>{const e=U.value,t=[{key:"assigned",label:h.value?"当月新指派数":"当月被指派数",value:e?String(e.assigned_count):"—",sub:e&&h.value?`继承 ${e.inherit_count??0} · 被指派合计 ${e.assigned_total_count??0}`:"",clickable:!!(T&&e&&e.assigned_count>0),onClick:()=>A(null,"new")}];for(const r of z.value){const u=e?e[`visit${r}_count`]:null,p=e?e[`visit${r}_rate`]:null;t.push({key:`visit${r}`,label:`当月${g(r)}接诊率`,value:e?M(p):"—",sub:e?`${g(r)}下单 ${u} 单 / 分母 ${e[`visit${r}_den`]??"—"}`:"",clickable:!!(L&&u>0),onClick:()=>B(r,null)})}return t.push({key:"visit_all",label:"当月复诊合计接诊率",value:e?M(e.visit_all_rate):"—",sub:e?`复诊下单 ${e.visit_all_count??0} 单 / 被指派合计 ${e.visit_all_den??"—"}`:"",clickable:!!(L&&e&&Number(e.visit_all_count)>0),onClick:()=>B(0,null)}),t}),$e=({columns:e})=>{const t=U.value;return e.map((r,u)=>{if(u===0)return"合计";if(!t)return"";const p=String(r.property||"");if(p==="assigned_count"||p==="inherit_count"||p==="assigned_total_count")return String(t[p]??0);const k=/^visit(\d+|all)_(count|den|rate)$/.exec(p);return k?k[2]==="rate"?`${M(t[p])}(${j(t,`visit${k[1]}`)})`:String(t[p]??""):""})},Ce=e=>{const t=new Date;return e.getFullYear()*12+e.getMonth()>t.getFullYear()*12+t.getMonth()},V=async()=>{S.value=!0;try{const e=await Xe(q());te.value=(e==null?void 0:e.rows)??[],U.value=(e==null?void 0:e.total)??null,Array.isArray(e==null?void 0:e.slots)&&e.slots.length&&(z.value=e.slots.map(t=>Number(t)).filter(t=>t>=2)),e!=null&&e.month&&(w.value=e.month),((e==null?void 0:e.inherit_mode)==="slot"||(e==null?void 0:e.inherit_mode)==="exclude")&&(N.value=e.inherit_mode)}finally{S.value=!1}},De=e=>{const t=new Map;for(const p of e)t.set(p.id,{...p,children:[]});const r=[];for(const p of e){const k=t.get(p.id);p.pid>0&&t.has(p.pid)?t.get(p.pid).children.push(k):r.push(k)}const u=p=>{var k;(k=p.children)!=null&&k.length?p.children.forEach(u):delete p.children};return r.forEach(u),r},Ee=async()=>{try{const e=await et();G.value=De((e==null?void 0:e.rows)??[])}catch{G.value=[]}},F=f(!1),H=f("assign"),Q=f(""),P=f(!1),x=f([]),le=f(2),ne=e=>e?e.is_dept?{dept_id:e.dept_id,label:e.dept_name}:{assistant_id:e.assistant_id,label:e.assistant_name||""}:{label:"合计"},we={new:"新指派明细",inherit:"继承明细",all:"被指派合计明细"},A=async(e,t="all")=>{if(!T)return;const r=ne(e);H.value="assign",Q.value=`${r.label} · ${we[t]}(${K.value})`,F.value=!0,P.value=!0,x.value=[];try{const u=await tt({...q(),assistant_id:r.assistant_id,dept_id:r.dept_id,kind:t});x.value=(u==null?void 0:u.rows)??[]}finally{P.value=!1}},B=async(e,t)=>{if(!L)return;const r=ne(t);H.value="orders",le.value=e,Q.value=`${r.label} · ${g(e)}订单明细(${K.value})`,F.value=!0,P.value=!0,x.value=[];try{const u=await lt({...q(),slot:e,assistant_id:r.assistant_id,dept_id:r.dept_id});x.value=(u==null?void 0:u.rows)??[]}finally{P.value=!1}},ae=f(null),Ne=e=>{var t;!J||!e||(t=ae.value)==null||t.open(e)},ie=f(null),se=e=>{var t;!Y||!e||(t=ie.value)==null||t.openViewOnly(e)},Ve=()=>{w.value=ee,O.value=void 0,N.value="",V()};return Se(()=>{Ee(),V()}),(e,t)=>{const r=Fe,u=Pe,p=Ae,k=Ie,xe=Be,oe=Ye,y=Ue,Re=ze,Te=Me,de=Ge,_=qe,C=Qe,D=He,re=je,Le=Je,Oe=We,ue=Ze;return o(),c("div",at,[a(de,{class:"!border-none",shadow:"never"},{default:n(()=>[a(Te,{inline:!0,class:"rate-filter-form"},{default:n(()=>[a(u,{label:"统计月份"},{default:n(()=>[a(r,{modelValue:w.value,"onUpdate:modelValue":t[0]||(t[0]=l=>w.value=l),type:"month","value-format":"YYYY-MM",placeholder:"选择月份",clearable:!1,"disabled-date":Ce,style:{width:"160px"},onChange:V},null,8,["modelValue"])]),_:1}),a(u,{label:"部门"},{default:n(()=>[a(p,{modelValue:O.value,"onUpdate:modelValue":t[1]||(t[1]=l=>O.value=l),data:G.value,placeholder:"二中心(全部)",clearable:"",filterable:"","check-strictly":"","node-key":"id","default-expand-all":!0,props:he,style:{width:"220px"},onChange:V},null,8,["modelValue","data"])]),_:1}),a(u,{label:"口径"},{default:n(()=>[a(xe,{modelValue:N.value,"onUpdate:modelValue":t[2]||(t[2]=l=>N.value=l),size:"small",onChange:V},{default:n(()=>[a(k,{value:"exclude"},{default:n(()=>[...t[4]||(t[4]=[d("原口径(继承不计分母)",-1)])]),_:1}),a(k,{value:"slot"},{default:n(()=>[...t[5]||(t[5]=[d("新口径(继承按继承时诊次计入)",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(u,null,{default:n(()=>[a(oe,{type:"primary",loading:S.value,onClick:V},{default:n(()=>[...t[6]||(t[6]=[d("查询",-1)])]),_:1},8,["loading"]),a(oe,{disabled:S.value,onClick:Ve},{default:n(()=>[...t[7]||(t[7]=[d("重置",-1)])]),_:1},8,["disabled"])]),_:1}),a(u,null,{default:n(()=>[a(Re,{placement:"bottom-start",width:560,trigger:"hover"},{reference:n(()=>[i("span",it,[a(y,null,{default:n(()=>[a(v($))]),_:1}),t[8]||(t[8]=d(" 统计口径 ",-1))])]),default:n(()=>[i("div",st,[i("p",null,[i("b",null,s(h.value?"新指派数":"当月被指派数"),1),t[9]||(t[9]=d(":当月内诊单被指派给医助(按指派操作时间落月,",-1)),t[10]||(t[10]=i("b",null,"不含勾选「继承」的指派",-1)),t[11]||(t[11]=d(")的诊单数,按「医助 × 诊单」去重;部门行 / 合计行按诊单去重;",-1)),t[12]||(t[12]=i("b",null,"再剔除",-1)),t[13]||(t[13]=d("名下存在履约「拒收 / 退款」业务订单的诊单。与业绩看板「被指派数」同口径。 ",-1))]),h.value?(o(),c(R,{key:0},[t[14]||(t[14]=i("p",null,[i("b",null,"继承数"),d(":当月勾选「继承」转接给该医助的诊单数(同一诊单多次继承取最早;同月既新指派又继承给同一医助只算新指派;历史「回退自动分配」行按继承处理;指派给自己的记录忽略)。"),i("b",null,"继承时诊次 k"),d(" = 继承时刻之前患者已完成的诊次(有效实单数 + 偏移),"),i("b",null,"起算诊次 = max(2, k+1)"),d(":继承者只对第 k+1 诊及以后负责。 ")],-1)),t[15]||(t[15]=i("p",null,[i("b",null,"N 诊分母"),d(" = 新指派数 + 起算诊次 ≤ N 的继承数(每列独立);"),i("b",null,"N 诊接诊率"),d(" = N 诊单数 ÷ N 诊分母,分母为 0 显示「—」。"),i("b",null,"复诊合计"),d(":单数 = 各诊次单数之和,分母 = 新指派 ∪ 继承(被指派合计),比率可超过 100%(人均复诊成交单数)。 ")],-1)),t[16]||(t[16]=i("p",{class:"rate-caliber-note"}," 继承分母依赖指派记录的「继承」标记(2026-06 起写入),之前的转接无法回溯;切换为「旧口径」可对照上线前数字。 ",-1))],64)):(o(),c("p",ot,[...t[17]||(t[17]=[i("b",null,"旧口径",-1),d(":继承指派不计入分母,N 诊分母 = 新指派数(对所有 N 相同),新指派数 / N 诊单数 / N 诊接诊率与 2026-10 之前完全一致;继承数恒为 0。切换为「新口径」后继承按继承时诊次计入每列独立分母。 ",-1)])])),t[18]||(t[18]=i("p",null,[i("b",null,"诊次(第 N 次下单)"),d(":患者(诊单)名下计入业绩的业务订单(剔除已取消 / 拒收 / 退款)按下单时间升序编号为「实单序号」,"),i("b",null,"统计诊次 = 实单序号 + 诊单偏移"),d("(默认偏移 0 → 第 1 笔实单为一诊)。诊次"),i("b",null,"跨月累计不重置"),d("。诊单可在「业务订单」tab 配置偏移量。 ")],-1)),t[19]||(t[19]=i("p",null,[i("b",null,"当月 N 诊单数"),d(":当月内下单且诊次为 N 的订单数,归属下单时点"),i("b",null,"持有该患者的医助"),d("(指派可在往月;释放后不再归属;继承会转移持有人)。往月指派、当月成交会推高分子,比率可能超过 100%。 ")],-1)),t[20]||(t[20]=i("p",null,[d(" 医助按人事部门归组;"),i("b",null,"仅统计「二中心」及其组织下级"),d(";部门下拉与未选时的默认范围均限定在该子树,选定部门时含其组织下级。 ")],-1))])]),_:1})]),_:1})]),_:1})]),_:1}),i("div",dt,[(o(!0),c(R,null,_e(ye.value,l=>(o(),c("div",{key:l.key,class:Ke(["rate-kpi-card",{"is-clickable":l.clickable}]),onClick:m=>l.clickable&&l.onClick&&l.onClick()},[i("div",ut,s(l.label),1),i("div",_t,s(l.value),1),l.sub?(o(),c("div",pt,s(l.sub),1)):E("",!0)],10,rt))),128))]),a(de,{class:"!border-none mt-4",shadow:"never"},{header:n(()=>[i("div",ct,[i("span",null,"部门 · 医助明细("+s(K.value)+")",1),t[21]||(t[21]=i("span",{class:"rate-card-hint"}," 点击「新指派数 / 继承数 / 被指派合计 / N诊单数 / 复诊合计单数」可查看具体诊单与订单;接诊率下方灰字为「单数 / 分母」;底栏合计按诊单去重 ",-1))])]),default:n(()=>[pe((o(),b(re,{data:te.value,size:"small",border:"","row-key":"row_key","tree-props":{children:"children"},"default-expand-all":!0,"show-summary":"","summary-method":$e},{default:n(()=>[a(_,{label:"部门 / 医助","min-width":"200",fixed:""},{default:n(({row:l})=>[l.is_dept?(o(),c("span",vt,[d(s(l.dept_name)+" ",1),i("span",ft,s(l.assistant_count)+" 人",1)])):(o(),c("span",mt,s(l.assistant_name),1))]),_:1}),a(_,{prop:"assigned_count",label:h.value?"新指派数":"当月被指派数","min-width":"96",align:"right"},{header:n(()=>[i("span",null,s(h.value?"新指派数":"当月被指派数"),1),a(C,{effect:"dark",placement:"top",content:"当月非继承指派的「医助 × 诊单」去重数(剔除名下有拒收/退款订单的诊单),与业绩看板「被指派数」同口径"},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1})]),default:n(({row:l})=>[v(T)&&l.assigned_count>0?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:m=>A(l,"new")},{default:n(()=>[d(s(l.assigned_count),1)]),_:2},1032,["onClick"])):(o(),c("span",bt,s(l.assigned_count),1))]),_:1},8,["label"]),h.value?(o(),b(_,{key:0,prop:"inherit_count",label:"继承数","min-width":"88",align:"right"},{header:n(()=>[t[22]||(t[22]=i("span",null,"继承数",-1)),a(C,{effect:"dark",placement:"top",content:"当月勾选「继承」转接给该医助的诊单数(按继承时诊次 k 从第 k+1 诊起计入分母;点击查看每条的继承时诊次与起算诊次)"},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1})]),default:n(({row:l})=>[v(T)&&l.inherit_count>0?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:m=>A(l,"inherit")},{default:n(()=>[d(s(l.inherit_count),1)]),_:2},1032,["onClick"])):(o(),c("span",ht,s(l.inherit_count??0),1))]),_:1})):E("",!0),h.value?(o(),b(_,{key:1,prop:"assigned_total_count",label:"被指派合计","min-width":"100",align:"right"},{header:n(()=>[t[23]||(t[23]=i("span",null,"被指派合计",-1)),a(C,{effect:"dark",placement:"top",content:"新指派 ∪ 继承(按诊单去重),即「复诊合计接诊率」的分母"},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1})]),default:n(({row:l})=>[v(T)&&l.assigned_total_count>0?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:m=>A(l,"all")},{default:n(()=>[d(s(l.assigned_total_count),1)]),_:2},1032,["onClick"])):(o(),c("span",gt,s(l.assigned_total_count??0),1))]),_:1})):E("",!0),(o(!0),c(R,null,_e(z.value,l=>(o(),c(R,{key:l},[a(_,{prop:`visit${l}_count`,label:`${g(l)}单数`,"min-width":"96",align:"right"},{header:n(()=>[i("span",null,s(g(l))+"单数",1),a(C,{effect:"dark",placement:"top",content:`当月内下单、诊次为第 ${l} 次的订单数(诊次跨月累计;归属下单时点持有患者的医助)`},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1},8,["content"])]),default:n(({row:m})=>[v(L)&&m[`visit${l}_count`]>0?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:Mt=>B(l,m)},{default:n(()=>[d(s(m[`visit${l}_count`]),1)]),_:2},1032,["onClick"])):(o(),c("span",kt,s(m[`visit${l}_count`]),1))]),_:2},1032,["prop","label"]),a(_,{prop:`visit${l}_rate`,label:`${g(l)}接诊率`,"min-width":"104",align:"right"},{header:n(()=>[i("span",null,s(g(l))+"接诊率",1),a(C,{effect:"dark",placement:"top",content:ge(l)},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1},8,["content"])]),default:n(({row:m})=>[i("div",yt,[i("span",$t,s(M(m[`visit${l}_rate`])),1),h.value?(o(),c("span",Ct,s(j(m,`visit${l}`)),1)):E("",!0)])]),_:2},1032,["prop","label"])],64))),128)),a(_,{prop:"visit_all_count",label:"复诊合计单数","min-width":"110",align:"right"},{header:n(()=>[t[24]||(t[24]=i("span",null,"复诊合计单数",-1)),a(C,{effect:"dark",placement:"top",content:"当月内下单、诊次 ≥ 2 的订单数之和(= 各 N 诊单数之和)"},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1})]),default:n(({row:l})=>[v(L)&&l.visit_all_count>0?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:m=>B(0,l)},{default:n(()=>[d(s(l.visit_all_count),1)]),_:2},1032,["onClick"])):(o(),c("span",Dt,s(l.visit_all_count??0),1))]),_:1}),a(_,{prop:"visit_all_rate",label:"复诊合计接诊率","min-width":"118",align:"right"},{header:n(()=>[t[25]||(t[25]=i("span",null,"复诊合计接诊率",-1)),a(C,{effect:"dark",placement:"top",content:h.value?"复诊合计单数 ÷ 被指派合计(新指派 ∪ 继承);可超过 100%,语义为人均复诊成交单数":"复诊合计单数 ÷ 新指派数(旧口径继承不计分母);可超过 100%"},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1},8,["content"])]),default:n(({row:l})=>[i("div",Et,[i("span",wt,s(M(l.visit_all_rate)),1),h.value?(o(),c("span",Nt,s(j(l,"visit_all")),1)):E("",!0)])]),_:1})]),_:1},8,["data"])),[[ue,S.value]])]),_:1}),a(Oe,{modelValue:F.value,"onUpdate:modelValue":t[3]||(t[3]=l=>F.value=l),title:Q.value,width:"1080px",top:"6vh","destroy-on-close":""},{default:n(()=>[pe((o(),b(re,{data:x.value,size:"small",border:"",stripe:"","max-height":"60vh"},{default:n(()=>[H.value==="assign"?(o(),c(R,{key:0},[a(_,{prop:"diagnosis_id",label:"诊单ID",width:"90"}),a(_,{prop:"patient_name",label:"患者","min-width":"100"},{default:n(({row:l})=>[v(Y)&&l.diagnosis_id?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:m=>se(l.diagnosis_id)},{default:n(()=>[d(s(l.patient_name||`诊单#${l.diagnosis_id}`),1)]),_:2},1032,["onClick"])):(o(),c("span",Vt,s(l.patient_name||"—"),1))]),_:1}),a(_,{prop:"patient_phone",label:"联系电话","min-width":"120"},{default:n(({row:l})=>[d(s(l.patient_phone||"—"),1)]),_:1}),a(_,{prop:"assistant_names",label:"被指派医助","min-width":"140","show-overflow-tooltip":""}),h.value?(o(),b(_,{key:0,prop:"assign_type",label:"指派类型",width:"110",align:"center"},{default:n(({row:l})=>[a(Le,{type:l.assign_type==="inherit"?"warning":"success",size:"small"},{default:n(()=>[d(s(l.assign_type_text||(l.assign_type==="inherit"?"继承":"新指派")),1)]),_:2},1032,["type"])]),_:1})):E("",!0),h.value?(o(),b(_,{key:1,prop:"inherit_visit_slot",label:"继承时诊次",width:"100",align:"center"},{header:n(()=>[t[26]||(t[26]=i("span",null,"继承时诊次",-1)),a(C,{effect:"dark",placement:"top",content:"k:继承时刻之前患者已完成的诊次(有效实单数 + 偏移);新指派无此值"},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1})]),default:n(({row:l})=>[d(s(l.assign_type==="inherit"?`第 ${Number(l.inherit_visit_slot??0)} 诊`:"—"),1)]),_:1})):E("",!0),a(_,{prop:"entry_slot",label:"起算诊次",width:"96",align:"center"},{header:n(()=>[t[27]||(t[27]=i("span",null,"起算诊次",-1)),a(C,{effect:"dark",placement:"top",content:"从该诊次列起计入分母:继承 = max(2, k+1);新指派 = 2(二诊)"},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1})]),default:n(({row:l})=>[d(s(ke(l.entry_slot)),1)]),_:1}),a(_,{prop:"assign_count",label:"当月指派次数",width:"110",align:"right"}),a(_,{prop:"last_assign_time_text",label:"最近指派时间","min-width":"160"})],64)):(o(),c(R,{key:1},[a(_,{prop:"order_no",label:"订单号","min-width":"180","show-overflow-tooltip":""},{default:n(({row:l})=>[v(J)&&l.order_id?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:m=>Ne(l.order_id)},{default:n(()=>[d(s(l.order_no||`#${l.order_id}`),1)]),_:2},1032,["onClick"])):(o(),c("span",xt,s(l.order_no||`#${l.order_id}`),1))]),_:1}),le.value===0?(o(),b(_,{key:0,prop:"visit_slot",label:"诊次",width:"80",align:"center"},{default:n(({row:l})=>[d(s(g(Number(l.visit_slot))),1)]),_:1})):E("",!0),a(_,{prop:"diagnosis_id",label:"诊单ID",width:"90"}),a(_,{prop:"patient_name",label:"患者","min-width":"100"},{default:n(({row:l})=>[v(Y)&&l.diagnosis_id?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:m=>se(l.diagnosis_id)},{default:n(()=>[d(s(l.patient_name||`诊单#${l.diagnosis_id}`),1)]),_:2},1032,["onClick"])):(o(),c("span",Rt,s(l.patient_name||"—"),1))]),_:1}),a(_,{prop:"amount",label:"金额",width:"100",align:"right"},{default:n(({row:l})=>[d("¥ "+s(l.amount),1)]),_:1}),a(_,{prop:"create_time_text",label:"下单时间","min-width":"160"}),a(_,{prop:"assistant_name",label:"持有医助","min-width":"100"}),a(_,{prop:"creator_name",label:"订单创建人","min-width":"100"})],64))]),_:1},8,["data"])),[[ue,P.value]]),i("div",Tt,"共 "+s(x.value.length)+" 条",1)]),_:1},8,["modelValue","title"]),a(v(me),{ref_key:"orderDetailRef",ref:ae,readonly:"","append-to-body":""},null,512),a(v(be),{ref_key:"diagnosisEditRef",ref:ie},null,512)])}}}),It=nt(Ot,[["__scopeId","data-v-bcc92b33"]]);export{It as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PrescriptionOrderDetailDrawer-CX7YbddA.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-BSADvQNg.js","assets/index-Bkarz3gO.js","assets/index-deCJ4ja-.css","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css","assets/edit-BuMVMky1.js","assets/perm-CHCBwnFR.js","assets/DailyMatrix-BkYJBu_D.js","assets/picker-BTh9eW9u.js","assets/index-CS5Wg0xx.js","assets/index-B3imPWFk.css","assets/index-oRynN2pP.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-Cqk_cdo9.js","assets/index-D0f1Mn00.css","assets/index-BJZwRQXE.js","assets/file-BjbV-eNx.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-VonOdKxB.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-BQogJqk-.js","assets/FollowupAudioReview-BDRNtxGL.js","assets/FollowupAudioField-Dz9Csp0b.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-2_yvVfnZ.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-PGnYdg0x.js","assets/RecordingPlaybackBlock-DDHsYga7.js","assets/RecordingVideoPlayer-B0kkGDId.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CO99W60y.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-mqnmyStx.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-aR2VA9u1.js","assets/doctor-DBvYeWd3.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-D83GYvN5.js","assets/patient-B_ifBl-W.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-Dk7f29yf.js","assets/PatientOrderList-D8-uh2iu.css","assets/index-C_PSjf1W.js","assets/index-DAIDDabA.js","assets/medicine-DPIOyHj8.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CTRSsggc.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]); +import{o as fe,ap as Se,q as o,r as c,v as a,D as n,bd as Me,bb as Pe,az as Fe,bL as Ae,bf as Be,be as Ie,L as d,K as Ye,bZ as ze,s as i,T as s,F as R,w as Ue,u as v,ci as $,bj as Ge,G as _e,ae as Ke,P as E,ac as pe,O as b,bk as je,bl as qe,bt as He,a1 as Qe,bn as Ze,bm as Je,aB as We,cd as ce,al as ve,M as f,p as Z}from"./.pnpm-CyuAWpdG.js";import{D as Xe,C as et,E as tt,F as lt}from"./stats-B9TgZYZ_.js";import{h as I}from"./perm-CHCBwnFR.js";import{_ as nt}from"./index-Bkarz3gO.js";const at={class:"revisit-rate-page"},it={class:"rate-caliber-trigger"},st={class:"rate-caliber"},ot={key:1},dt={class:"rate-kpi-grid"},rt=["onClick"],ut={class:"rate-kpi-label"},_t={class:"rate-kpi-value"},pt={key:0,class:"rate-kpi-sub"},ct={class:"rate-card-header"},vt={key:0,class:"rate-dept-cell"},ft={class:"rate-dept-count"},mt={key:1},bt={key:1},ht={key:1},gt={key:1},kt={key:1},yt={class:"rate-cell"},$t={class:"rate-cell-main"},Ct={key:0,class:"rate-cell-sub"},Dt={key:1},Et={class:"rate-cell"},wt={class:"rate-cell-main"},Nt={key:0,class:"rate-cell-sub"},Vt={key:1},xt={key:1},Rt={key:1},Tt={class:"rate-detail-footer"},Lt=fe({name:"revisitRateStatsPage"}),Ot=fe({...Lt,setup(St){const me=ce(()=>ve(()=>import("./PrescriptionOrderDetailDrawer-CX7YbddA.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]))),be=ce(()=>ve(()=>import("./edit-BuMVMky1.js"),__vite__mapDeps([8,1,2,3,4,5,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,0,6,7,55,56,57,58,59,60,61,62,63,64,65]))),T=I(["stats.revisitRate/assignLines"]),L=I(["stats.revisitRate/visitOrderLines"]),J=I(["tcm.prescriptionOrder/detail"]),Y=I(["tcm.diagnosis/detail"]),z=f([2,3,4]),W=["零","一","二","三","四","五","六","七","八","九","十"],g=e=>e===0?"复诊合计":e>=2&&e<=10?`${W[e]}诊`:e>10&&e<20?`十${W[e-10]}诊`:`${e}诊`,X=new Date,ee=`${X.getFullYear()}-${String(X.getMonth()+1).padStart(2,"0")}`,w=f(ee),O=f(void 0),N=f(""),S=f(!1),te=f([]),U=f(null),G=f([]),he={value:"id",label:"name",children:"children"},h=Z(()=>N.value!=="exclude"),K=Z(()=>{const[e,t]=w.value.split("-");return e&&t?`${e}年${Number(t)}月`:w.value}),M=e=>e==null?"—":`${e}%`,j=(e,t)=>{const r=Number(e[`${t}_count`]??0),u=e[`${t}_den`];return`${r} / ${u??"—"}`},ge=e=>h.value?`${g(e)}单数 ÷ ${g(e)}分母;分母 = 当月新指派数 + 起算诊次 ≤ ${e} 的继承数;分母为 0 显示「—」`:`${g(e)}单数 ÷ 当月新指派数(旧口径:继承不计分母);分母为 0 显示「—」`,ke=e=>{const t=Number(e??0);return t<=0?"—":t>50?`${t}(仅计合计)`:g(t)},q=()=>({month:w.value,dept_ids:O.value?String(O.value):"",inherit_mode:N.value||void 0}),ye=Z(()=>{const e=U.value,t=[{key:"assigned",label:h.value?"当月新指派数":"当月被指派数",value:e?String(e.assigned_count):"—",sub:e&&h.value?`继承 ${e.inherit_count??0} · 被指派合计 ${e.assigned_total_count??0}`:"",clickable:!!(T&&e&&e.assigned_count>0),onClick:()=>A(null,"new")}];for(const r of z.value){const u=e?e[`visit${r}_count`]:null,p=e?e[`visit${r}_rate`]:null;t.push({key:`visit${r}`,label:`当月${g(r)}接诊率`,value:e?M(p):"—",sub:e?`${g(r)}下单 ${u} 单 / 分母 ${e[`visit${r}_den`]??"—"}`:"",clickable:!!(L&&u>0),onClick:()=>B(r,null)})}return t.push({key:"visit_all",label:"当月复诊合计接诊率",value:e?M(e.visit_all_rate):"—",sub:e?`复诊下单 ${e.visit_all_count??0} 单 / 被指派合计 ${e.visit_all_den??"—"}`:"",clickable:!!(L&&e&&Number(e.visit_all_count)>0),onClick:()=>B(0,null)}),t}),$e=({columns:e})=>{const t=U.value;return e.map((r,u)=>{if(u===0)return"合计";if(!t)return"";const p=String(r.property||"");if(p==="assigned_count"||p==="inherit_count"||p==="assigned_total_count")return String(t[p]??0);const k=/^visit(\d+|all)_(count|den|rate)$/.exec(p);return k?k[2]==="rate"?`${M(t[p])}(${j(t,`visit${k[1]}`)})`:String(t[p]??""):""})},Ce=e=>{const t=new Date;return e.getFullYear()*12+e.getMonth()>t.getFullYear()*12+t.getMonth()},V=async()=>{S.value=!0;try{const e=await Xe(q());te.value=(e==null?void 0:e.rows)??[],U.value=(e==null?void 0:e.total)??null,Array.isArray(e==null?void 0:e.slots)&&e.slots.length&&(z.value=e.slots.map(t=>Number(t)).filter(t=>t>=2)),e!=null&&e.month&&(w.value=e.month),((e==null?void 0:e.inherit_mode)==="slot"||(e==null?void 0:e.inherit_mode)==="exclude")&&(N.value=e.inherit_mode)}finally{S.value=!1}},De=e=>{const t=new Map;for(const p of e)t.set(p.id,{...p,children:[]});const r=[];for(const p of e){const k=t.get(p.id);p.pid>0&&t.has(p.pid)?t.get(p.pid).children.push(k):r.push(k)}const u=p=>{var k;(k=p.children)!=null&&k.length?p.children.forEach(u):delete p.children};return r.forEach(u),r},Ee=async()=>{try{const e=await et();G.value=De((e==null?void 0:e.rows)??[])}catch{G.value=[]}},F=f(!1),H=f("assign"),Q=f(""),P=f(!1),x=f([]),le=f(2),ne=e=>e?e.is_dept?{dept_id:e.dept_id,label:e.dept_name}:{assistant_id:e.assistant_id,label:e.assistant_name||""}:{label:"合计"},we={new:"新指派明细",inherit:"继承明细",all:"被指派合计明细"},A=async(e,t="all")=>{if(!T)return;const r=ne(e);H.value="assign",Q.value=`${r.label} · ${we[t]}(${K.value})`,F.value=!0,P.value=!0,x.value=[];try{const u=await tt({...q(),assistant_id:r.assistant_id,dept_id:r.dept_id,kind:t});x.value=(u==null?void 0:u.rows)??[]}finally{P.value=!1}},B=async(e,t)=>{if(!L)return;const r=ne(t);H.value="orders",le.value=e,Q.value=`${r.label} · ${g(e)}订单明细(${K.value})`,F.value=!0,P.value=!0,x.value=[];try{const u=await lt({...q(),slot:e,assistant_id:r.assistant_id,dept_id:r.dept_id});x.value=(u==null?void 0:u.rows)??[]}finally{P.value=!1}},ae=f(null),Ne=e=>{var t;!J||!e||(t=ae.value)==null||t.open(e)},ie=f(null),se=e=>{var t;!Y||!e||(t=ie.value)==null||t.openViewOnly(e)},Ve=()=>{w.value=ee,O.value=void 0,N.value="",V()};return Se(()=>{Ee(),V()}),(e,t)=>{const r=Fe,u=Pe,p=Ae,k=Ie,xe=Be,oe=Ye,y=Ue,Re=ze,Te=Me,de=Ge,_=qe,C=Qe,D=He,re=je,Le=Je,Oe=We,ue=Ze;return o(),c("div",at,[a(de,{class:"!border-none",shadow:"never"},{default:n(()=>[a(Te,{inline:!0,class:"rate-filter-form"},{default:n(()=>[a(u,{label:"统计月份"},{default:n(()=>[a(r,{modelValue:w.value,"onUpdate:modelValue":t[0]||(t[0]=l=>w.value=l),type:"month","value-format":"YYYY-MM",placeholder:"选择月份",clearable:!1,"disabled-date":Ce,style:{width:"160px"},onChange:V},null,8,["modelValue"])]),_:1}),a(u,{label:"部门"},{default:n(()=>[a(p,{modelValue:O.value,"onUpdate:modelValue":t[1]||(t[1]=l=>O.value=l),data:G.value,placeholder:"二中心(全部)",clearable:"",filterable:"","check-strictly":"","node-key":"id","default-expand-all":!0,props:he,style:{width:"220px"},onChange:V},null,8,["modelValue","data"])]),_:1}),a(u,{label:"口径"},{default:n(()=>[a(xe,{modelValue:N.value,"onUpdate:modelValue":t[2]||(t[2]=l=>N.value=l),size:"small",onChange:V},{default:n(()=>[a(k,{value:"exclude"},{default:n(()=>[...t[4]||(t[4]=[d("原口径(继承不计分母)",-1)])]),_:1}),a(k,{value:"slot"},{default:n(()=>[...t[5]||(t[5]=[d("新口径(继承按继承时诊次计入)",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(u,null,{default:n(()=>[a(oe,{type:"primary",loading:S.value,onClick:V},{default:n(()=>[...t[6]||(t[6]=[d("查询",-1)])]),_:1},8,["loading"]),a(oe,{disabled:S.value,onClick:Ve},{default:n(()=>[...t[7]||(t[7]=[d("重置",-1)])]),_:1},8,["disabled"])]),_:1}),a(u,null,{default:n(()=>[a(Re,{placement:"bottom-start",width:560,trigger:"hover"},{reference:n(()=>[i("span",it,[a(y,null,{default:n(()=>[a(v($))]),_:1}),t[8]||(t[8]=d(" 统计口径 ",-1))])]),default:n(()=>[i("div",st,[i("p",null,[i("b",null,s(h.value?"新指派数":"当月被指派数"),1),t[9]||(t[9]=d(":当月内诊单被指派给医助(按指派操作时间落月,",-1)),t[10]||(t[10]=i("b",null,"不含勾选「继承」的指派",-1)),t[11]||(t[11]=d(")的诊单数,按「医助 × 诊单」去重;部门行 / 合计行按诊单去重;",-1)),t[12]||(t[12]=i("b",null,"再剔除",-1)),t[13]||(t[13]=d("名下存在履约「拒收 / 退款」业务订单的诊单。与业绩看板「被指派数」同口径。 ",-1))]),h.value?(o(),c(R,{key:0},[t[14]||(t[14]=i("p",null,[i("b",null,"继承数"),d(":当月勾选「继承」转接给该医助的诊单数(同一诊单多次继承取最早;同月既新指派又继承给同一医助只算新指派;历史「回退自动分配」行按继承处理;指派给自己的记录忽略)。"),i("b",null,"继承时诊次 k"),d(" = 继承时刻之前患者已完成的诊次(有效实单数 + 偏移),"),i("b",null,"起算诊次 = max(2, k+1)"),d(":继承者只对第 k+1 诊及以后负责。 ")],-1)),t[15]||(t[15]=i("p",null,[i("b",null,"N 诊分母"),d(" = 新指派数 + 起算诊次 ≤ N 的继承数(每列独立);"),i("b",null,"N 诊接诊率"),d(" = N 诊单数 ÷ N 诊分母,分母为 0 显示「—」。"),i("b",null,"复诊合计"),d(":单数 = 各诊次单数之和,分母 = 新指派 ∪ 继承(被指派合计),比率可超过 100%(人均复诊成交单数)。 ")],-1)),t[16]||(t[16]=i("p",{class:"rate-caliber-note"}," 继承分母依赖指派记录的「继承」标记(2026-06 起写入),之前的转接无法回溯;切换为「旧口径」可对照上线前数字。 ",-1))],64)):(o(),c("p",ot,[...t[17]||(t[17]=[i("b",null,"旧口径",-1),d(":继承指派不计入分母,N 诊分母 = 新指派数(对所有 N 相同),新指派数 / N 诊单数 / N 诊接诊率与 2026-10 之前完全一致;继承数恒为 0。切换为「新口径」后继承按继承时诊次计入每列独立分母。 ",-1)])])),t[18]||(t[18]=i("p",null,[i("b",null,"诊次(第 N 次下单)"),d(":患者(诊单)名下计入业绩的业务订单(剔除已取消 / 拒收 / 退款)按下单时间升序编号为「实单序号」,"),i("b",null,"统计诊次 = 实单序号 + 诊单偏移"),d("(默认偏移 0 → 第 1 笔实单为一诊)。诊次"),i("b",null,"跨月累计不重置"),d("。诊单可在「业务订单」tab 配置偏移量。 ")],-1)),t[19]||(t[19]=i("p",null,[i("b",null,"当月 N 诊单数"),d(":当月内下单且诊次为 N 的订单数,归属下单时点"),i("b",null,"持有该患者的医助"),d("(指派可在往月;释放后不再归属;继承会转移持有人)。往月指派、当月成交会推高分子,比率可能超过 100%。 ")],-1)),t[20]||(t[20]=i("p",null,[d(" 医助按人事部门归组;"),i("b",null,"仅统计「二中心」及其组织下级"),d(";部门下拉与未选时的默认范围均限定在该子树,选定部门时含其组织下级。 ")],-1))])]),_:1})]),_:1})]),_:1})]),_:1}),i("div",dt,[(o(!0),c(R,null,_e(ye.value,l=>(o(),c("div",{key:l.key,class:Ke(["rate-kpi-card",{"is-clickable":l.clickable}]),onClick:m=>l.clickable&&l.onClick&&l.onClick()},[i("div",ut,s(l.label),1),i("div",_t,s(l.value),1),l.sub?(o(),c("div",pt,s(l.sub),1)):E("",!0)],10,rt))),128))]),a(de,{class:"!border-none mt-4",shadow:"never"},{header:n(()=>[i("div",ct,[i("span",null,"部门 · 医助明细("+s(K.value)+")",1),t[21]||(t[21]=i("span",{class:"rate-card-hint"}," 点击「新指派数 / 继承数 / 被指派合计 / N诊单数 / 复诊合计单数」可查看具体诊单与订单;接诊率下方灰字为「单数 / 分母」;底栏合计按诊单去重 ",-1))])]),default:n(()=>[pe((o(),b(re,{data:te.value,size:"small",border:"","row-key":"row_key","tree-props":{children:"children"},"default-expand-all":!0,"show-summary":"","summary-method":$e},{default:n(()=>[a(_,{label:"部门 / 医助","min-width":"200",fixed:""},{default:n(({row:l})=>[l.is_dept?(o(),c("span",vt,[d(s(l.dept_name)+" ",1),i("span",ft,s(l.assistant_count)+" 人",1)])):(o(),c("span",mt,s(l.assistant_name),1))]),_:1}),a(_,{prop:"assigned_count",label:h.value?"新指派数":"当月被指派数","min-width":"96",align:"right"},{header:n(()=>[i("span",null,s(h.value?"新指派数":"当月被指派数"),1),a(C,{effect:"dark",placement:"top",content:"当月非继承指派的「医助 × 诊单」去重数(剔除名下有拒收/退款订单的诊单),与业绩看板「被指派数」同口径"},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1})]),default:n(({row:l})=>[v(T)&&l.assigned_count>0?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:m=>A(l,"new")},{default:n(()=>[d(s(l.assigned_count),1)]),_:2},1032,["onClick"])):(o(),c("span",bt,s(l.assigned_count),1))]),_:1},8,["label"]),h.value?(o(),b(_,{key:0,prop:"inherit_count",label:"继承数","min-width":"88",align:"right"},{header:n(()=>[t[22]||(t[22]=i("span",null,"继承数",-1)),a(C,{effect:"dark",placement:"top",content:"当月勾选「继承」转接给该医助的诊单数(按继承时诊次 k 从第 k+1 诊起计入分母;点击查看每条的继承时诊次与起算诊次)"},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1})]),default:n(({row:l})=>[v(T)&&l.inherit_count>0?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:m=>A(l,"inherit")},{default:n(()=>[d(s(l.inherit_count),1)]),_:2},1032,["onClick"])):(o(),c("span",ht,s(l.inherit_count??0),1))]),_:1})):E("",!0),h.value?(o(),b(_,{key:1,prop:"assigned_total_count",label:"被指派合计","min-width":"100",align:"right"},{header:n(()=>[t[23]||(t[23]=i("span",null,"被指派合计",-1)),a(C,{effect:"dark",placement:"top",content:"新指派 ∪ 继承(按诊单去重),即「复诊合计接诊率」的分母"},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1})]),default:n(({row:l})=>[v(T)&&l.assigned_total_count>0?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:m=>A(l,"all")},{default:n(()=>[d(s(l.assigned_total_count),1)]),_:2},1032,["onClick"])):(o(),c("span",gt,s(l.assigned_total_count??0),1))]),_:1})):E("",!0),(o(!0),c(R,null,_e(z.value,l=>(o(),c(R,{key:l},[a(_,{prop:`visit${l}_count`,label:`${g(l)}单数`,"min-width":"96",align:"right"},{header:n(()=>[i("span",null,s(g(l))+"单数",1),a(C,{effect:"dark",placement:"top",content:`当月内下单、诊次为第 ${l} 次的订单数(诊次跨月累计;归属下单时点持有患者的医助)`},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1},8,["content"])]),default:n(({row:m})=>[v(L)&&m[`visit${l}_count`]>0?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:Mt=>B(l,m)},{default:n(()=>[d(s(m[`visit${l}_count`]),1)]),_:2},1032,["onClick"])):(o(),c("span",kt,s(m[`visit${l}_count`]),1))]),_:2},1032,["prop","label"]),a(_,{prop:`visit${l}_rate`,label:`${g(l)}接诊率`,"min-width":"104",align:"right"},{header:n(()=>[i("span",null,s(g(l))+"接诊率",1),a(C,{effect:"dark",placement:"top",content:ge(l)},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1},8,["content"])]),default:n(({row:m})=>[i("div",yt,[i("span",$t,s(M(m[`visit${l}_rate`])),1),h.value?(o(),c("span",Ct,s(j(m,`visit${l}`)),1)):E("",!0)])]),_:2},1032,["prop","label"])],64))),128)),a(_,{prop:"visit_all_count",label:"复诊合计单数","min-width":"110",align:"right"},{header:n(()=>[t[24]||(t[24]=i("span",null,"复诊合计单数",-1)),a(C,{effect:"dark",placement:"top",content:"当月内下单、诊次 ≥ 2 的订单数之和(= 各 N 诊单数之和)"},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1})]),default:n(({row:l})=>[v(L)&&l.visit_all_count>0?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:m=>B(0,l)},{default:n(()=>[d(s(l.visit_all_count),1)]),_:2},1032,["onClick"])):(o(),c("span",Dt,s(l.visit_all_count??0),1))]),_:1}),a(_,{prop:"visit_all_rate",label:"复诊合计接诊率","min-width":"118",align:"right"},{header:n(()=>[t[25]||(t[25]=i("span",null,"复诊合计接诊率",-1)),a(C,{effect:"dark",placement:"top",content:h.value?"复诊合计单数 ÷ 被指派合计(新指派 ∪ 继承);可超过 100%,语义为人均复诊成交单数":"复诊合计单数 ÷ 新指派数(旧口径继承不计分母);可超过 100%"},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1},8,["content"])]),default:n(({row:l})=>[i("div",Et,[i("span",wt,s(M(l.visit_all_rate)),1),h.value?(o(),c("span",Nt,s(j(l,"visit_all")),1)):E("",!0)])]),_:1})]),_:1},8,["data"])),[[ue,S.value]])]),_:1}),a(Oe,{modelValue:F.value,"onUpdate:modelValue":t[3]||(t[3]=l=>F.value=l),title:Q.value,width:"1080px",top:"6vh","destroy-on-close":""},{default:n(()=>[pe((o(),b(re,{data:x.value,size:"small",border:"",stripe:"","max-height":"60vh"},{default:n(()=>[H.value==="assign"?(o(),c(R,{key:0},[a(_,{prop:"diagnosis_id",label:"诊单ID",width:"90"}),a(_,{prop:"patient_name",label:"患者","min-width":"100"},{default:n(({row:l})=>[v(Y)&&l.diagnosis_id?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:m=>se(l.diagnosis_id)},{default:n(()=>[d(s(l.patient_name||`诊单#${l.diagnosis_id}`),1)]),_:2},1032,["onClick"])):(o(),c("span",Vt,s(l.patient_name||"—"),1))]),_:1}),a(_,{prop:"patient_phone",label:"联系电话","min-width":"120"},{default:n(({row:l})=>[d(s(l.patient_phone||"—"),1)]),_:1}),a(_,{prop:"assistant_names",label:"被指派医助","min-width":"140","show-overflow-tooltip":""}),h.value?(o(),b(_,{key:0,prop:"assign_type",label:"指派类型",width:"110",align:"center"},{default:n(({row:l})=>[a(Le,{type:l.assign_type==="inherit"?"warning":"success",size:"small"},{default:n(()=>[d(s(l.assign_type_text||(l.assign_type==="inherit"?"继承":"新指派")),1)]),_:2},1032,["type"])]),_:1})):E("",!0),h.value?(o(),b(_,{key:1,prop:"inherit_visit_slot",label:"继承时诊次",width:"100",align:"center"},{header:n(()=>[t[26]||(t[26]=i("span",null,"继承时诊次",-1)),a(C,{effect:"dark",placement:"top",content:"k:继承时刻之前患者已完成的诊次(有效实单数 + 偏移);新指派无此值"},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1})]),default:n(({row:l})=>[d(s(l.assign_type==="inherit"?`第 ${Number(l.inherit_visit_slot??0)} 诊`:"—"),1)]),_:1})):E("",!0),a(_,{prop:"entry_slot",label:"起算诊次",width:"96",align:"center"},{header:n(()=>[t[27]||(t[27]=i("span",null,"起算诊次",-1)),a(C,{effect:"dark",placement:"top",content:"从该诊次列起计入分母:继承 = max(2, k+1);新指派 = 2(二诊)"},{default:n(()=>[a(y,{class:"rate-th-hint"},{default:n(()=>[a(v($))]),_:1})]),_:1})]),default:n(({row:l})=>[d(s(ke(l.entry_slot)),1)]),_:1}),a(_,{prop:"assign_count",label:"当月指派次数",width:"110",align:"right"}),a(_,{prop:"last_assign_time_text",label:"最近指派时间","min-width":"160"})],64)):(o(),c(R,{key:1},[a(_,{prop:"order_no",label:"订单号","min-width":"180","show-overflow-tooltip":""},{default:n(({row:l})=>[v(J)&&l.order_id?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:m=>Ne(l.order_id)},{default:n(()=>[d(s(l.order_no||`#${l.order_id}`),1)]),_:2},1032,["onClick"])):(o(),c("span",xt,s(l.order_no||`#${l.order_id}`),1))]),_:1}),le.value===0?(o(),b(_,{key:0,prop:"visit_slot",label:"诊次",width:"80",align:"center"},{default:n(({row:l})=>[d(s(g(Number(l.visit_slot))),1)]),_:1})):E("",!0),a(_,{prop:"diagnosis_id",label:"诊单ID",width:"90"}),a(_,{prop:"patient_name",label:"患者","min-width":"100"},{default:n(({row:l})=>[v(Y)&&l.diagnosis_id?(o(),b(D,{key:0,type:"primary",underline:!1,onClick:m=>se(l.diagnosis_id)},{default:n(()=>[d(s(l.patient_name||`诊单#${l.diagnosis_id}`),1)]),_:2},1032,["onClick"])):(o(),c("span",Rt,s(l.patient_name||"—"),1))]),_:1}),a(_,{prop:"amount",label:"金额",width:"100",align:"right"},{default:n(({row:l})=>[d("¥ "+s(l.amount),1)]),_:1}),a(_,{prop:"create_time_text",label:"下单时间","min-width":"160"}),a(_,{prop:"assistant_name",label:"持有医助","min-width":"100"}),a(_,{prop:"creator_name",label:"订单创建人","min-width":"100"})],64))]),_:1},8,["data"])),[[ue,P.value]]),i("div",Tt,"共 "+s(x.value.length)+" 条",1)]),_:1},8,["modelValue","title"]),a(v(me),{ref_key:"orderDetailRef",ref:ae,readonly:"","append-to-body":""},null,512),a(v(be),{ref_key:"diagnosisEditRef",ref:ie},null,512)])}}}),It=nt(Ot,[["__scopeId","data-v-bcc92b33"]]);export{It as default}; diff --git a/server/public/admin/assets/index-DQ6a96ix.js b/server/public/admin/assets/index-D6Ps2w4q.js similarity index 99% rename from server/public/admin/assets/index-DQ6a96ix.js rename to server/public/admin/assets/index-D6Ps2w4q.js index 9b787e61c..ab8da4353 100644 --- a/server/public/admin/assets/index-DQ6a96ix.js +++ b/server/public/admin/assets/index-D6Ps2w4q.js @@ -1 +1 @@ -import{_ as Fe}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{o as te,ap as Me,q as r,r as S,v as o,D as n,bd as Ie,bb as Ue,cR as $e,O as u,bL as Be,bh as He,F as z,G as D,bi as Ye,bf as je,be as qe,L as b,az as Ge,P as A,K as Ke,u as k,bj as Qe,s as i,T as v,ae as Z,ca as Je,cL as R,bC as Xe,c9 as Ze,bk as et,bl as tt,w as at,cn as nt,bm as lt,C as ot,M as x,aC as ee,p as d,E as st}from"./.pnpm-CyuAWpdG.js";import{v as rt}from"./stats-Bao68QGi.js";import{u as it}from"./usePaging-CghUEVfD.js";import{_ as dt}from"./index-Dxvz9lb1.js";const ut={class:"conversion-stats-page"},ct={class:"stats-kpi-grid"},pt={class:"stats-kpi-label"},mt={class:"card-header"},yt={class:"card-hint"},_t={class:"card-header"},bt={class:"card-header"},vt={class:"card-header"},ht={class:"card-header-main"},ft={class:"card-hint"},gt=["title"],kt={class:"entity-name"},Ct={class:"mt-4 flex justify-end"},St=te({name:"conversionStatsPage"}),xt=te({...St,setup(wt){const C=x([]),F=x([]),M=x([]),I=x([]),U=x([]),$=x([]),B=x(!1),c=ee({dimension:"dept",date_range:[],summary:{},charts:{ranking:{names:[],amounts:[],order_counts:[],fan_counts:[],rois:[],appointment_counts:[],interview_counts:[]},amount_share:[],fan_share:[],order_share:[]}}),l=ee({dimension:"dept",dept_id:void 0,assistant_id:void 0,doctor_id:void 0,media_channel_code:"",time_type:"today",start_date:"",end_date:""}),ae=async e=>{var s;e.include_filters=B.value?0:1,l.time_type==="custom"&&(e.start_date=C.value[0]||"",e.end_date=C.value[1]||"");const t=await rt(e);return Object.assign(c,(t==null?void 0:t.extend)||{}),ge((s=t==null?void 0:t.extend)==null?void 0:s.filters),t},{pager:p,getLists:H}=it({fetchFun:ae,params:l,firstLoading:!0}),ne=[{label:"部门",value:"dept"},{label:"医助",value:"assistant"},{label:"医生",value:"doctor"}],le={value:"id",label:"name",children:"children"},oe={children:"children"},w=d(()=>l.dimension==="assistant"?"医助":l.dimension==="doctor"?"医生":"部门"),se=d(()=>l.dimension==="assistant"?I.value:l.dimension==="doctor"?U.value:M.value),V=d({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}}),re=[{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"}],ie=[{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"},{key:"receive_rate",label:"接诊率",type:"percent"}],de=[{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}],ue=[{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:"receive_rate",label:"接诊率",type:"percent",minWidth:100}],h=d(()=>l.dimension==="doctor"),ce=d(()=>h.value?ie:re),pe=d(()=>h.value?ue:de),Y=d(()=>{var e;return(e=c.date_range)!=null&&e.length?`${c.date_range[0]} 至 ${c.date_range[1]}`:"未选择"}),me=d(()=>c.charts.ranking.names.length>0),ye=d(()=>c.charts.amount_share.length>0),_e=d(()=>{var e,t;return h.value?(((e=c.charts.order_share)==null?void 0:e.length)||0)>0:(((t=c.charts.fan_share)==null?void 0:t.length)||0)>0}),j=d(()=>h.value?"开药金额占比":"诊单金额占比"),q=d(()=>h.value?"接诊单数占比":"加粉占比"),be=d(()=>h.value?"暂无接诊数据":"暂无加粉数据"),f=d(()=>{var m;const e=((m=c.charts)==null?void 0:m.ranking)||{},t=Array.isArray(e.names)?e.names:[],s=y=>t.map((_,T)=>Number((y==null?void 0:y[T])??0));return{names:t,amounts:s(Array.isArray(e.amounts)?e.amounts:[]),appointmentCounts:s(Array.isArray(e.appointment_counts)?e.appointment_counts:[]),interviewCounts:s(Array.isArray(e.interview_counts)?e.interview_counts:[]),orderCounts:s(Array.isArray(e.order_counts)?e.order_counts:[]),fanCounts:s(Array.isArray(e.fan_counts)?e.fan_counts:[])}}),ve=d(()=>{const e={tooltip:{trigger:"axis"},grid:{left:48,right:24,top:48,bottom:48},xAxis:{type:"category",data:f.value.names,axisLabel:{interval:0,rotate:f.value.names.length>6?25:0}},yAxis:[{type:"value",name:"金额 / 数量"}]};return h.value?{...e,legend:{data:["开药金额","挂号数","面诊数","接诊单数"]},series:[{name:"开药金额",type:"bar",barMaxWidth:36,data:f.value.amounts,itemStyle:{color:"#4a78ff"}},{name:"挂号数",type:"line",smooth:!0,showSymbol:!0,symbolSize:8,lineStyle:{width:3},data:f.value.appointmentCounts,itemStyle:{color:"#15b8a6"}},{name:"面诊数",type:"line",smooth:!0,showSymbol:!0,symbolSize:8,lineStyle:{width:3},data:f.value.interviewCounts,itemStyle:{color:"#ff9f43"}},{name:"接诊单数",type:"line",smooth:!0,showSymbol:!0,symbolSize:8,lineStyle:{width:3},data:f.value.orderCounts,itemStyle:{color:"#7c3aed"}}]}:{...e,legend:{data:["诊单金额","接诊诊单","加粉数"]},series:[{name:"诊单金额",type:"bar",barMaxWidth:36,data:f.value.amounts,itemStyle:{color:"#4a78ff"}},{name:"接诊诊单",type:"line",smooth:!0,showSymbol:!0,symbolSize:8,lineStyle:{width:3},data:f.value.orderCounts,itemStyle:{color:"#15b8a6"}},{name:"加粉数",type:"line",smooth:!0,showSymbol:!0,symbolSize:8,lineStyle:{width:3},data:f.value.fanCounts,itemStyle:{color:"#ff9f43"}}]}}),he=d(()=>({tooltip:{trigger:"item"},legend:{bottom:0,type:"scroll",pageIconColor:"#409eff",pageTextStyle:{color:"#909399"}},series:[{name:j.value,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:c.charts.amount_share}]})),fe=d(()=>({tooltip:{trigger:"item"},legend:{bottom:0,type:"scroll",pageIconColor:"#409eff",pageTextStyle:{color:"#909399"}},series:[{name:q.value,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:h.value?c.charts.order_share:c.charts.fan_share}]})),G=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(G(s.children)))}),t},ge=e=>{if(!e)return;B.value=!0;const t=Array.isArray(e.departments)?e.departments:[],s=Array.isArray(e.assistants)?e.assistants:[],m=Array.isArray(e.doctors)?e.doctors:[],y=Array.isArray(e.media_channels)?e.media_channels:[];F.value=t,M.value=G(t),I.value=s.map(_=>({id:Number(_.id),name:_.name})),U.value=m.map(_=>({id:Number(_.id),name:_.name})),$.value=y.map(_=>({code:String(_.code||""),name:String(_.name||"")}))},g=async()=>{try{await H()}catch(e){console.error("获取统计概览失败:",e),st.error((e==null?void 0:e.msg)||"获取统计数据失败")}},ke=()=>{l.dept_id=void 0,l.assistant_id=void 0,l.doctor_id=void 0,p.page=1,g()},K=()=>{p.page=1,g()},Ce=()=>{p.page=1,g()},Se=()=>{l.time_type!=="custom"&&(C.value=[],p.page=1,g())},xe=()=>{C.value.length===2&&(p.page=1,g())},we=()=>{p.page=1,g()},Ee=()=>{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",C.value=[],p.page=1,p.size=15,g()},Oe=e=>{const t=Number((e==null?void 0:e.completed_order_count)||0),s=Number((e==null?void 0:e.interview_count)||0);return s<=0?0:t/s*100},Q=(e,t,s="count",m=!1)=>{if(m)return"—";const y=h.value&&e==="receive_rate"?Oe(t):(t==null?void 0:t[e])??0;return s==="money"?`¥${Number(y||0).toFixed(2)}`:s==="percent"?`${Number(y||0).toFixed(2)}%`:s==="ratio"?Number(y||0).toFixed(2):String(y??0)},Ae=e=>(e==null?void 0:e.id)!==void 0&&(e==null?void 0:e.id)!==null?String(e.id):"",Ve=e=>(e==null?void 0:e.type)==="member"||(e==null?void 0:e.type)==="unbound",Te=({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 Me(async()=>{await g()}),(e,t)=>{const s=$e,m=Ue,y=Be,_=Ye,T=He,E=qe,Pe=je,ze=Ge,J=Ke,De=Ie,O=Qe,W=Xe,P=Je,L=Ze,We=at,N=lt,X=tt,Le=et,Ne=Fe;return r(),S("div",ut,[o(O,{class:"!border-none",shadow:"never"},{default:n(()=>[o(De,{inline:!0,model:l,class:"stats-filter-form"},{default:n(()=>[o(m,{label:"统计维度"},{default:n(()=>[o(s,{modelValue:l.dimension,"onUpdate:modelValue":t[0]||(t[0]=a=>l.dimension=a),options:ne,onChange:ke},null,8,["modelValue"])]),_:1}),o(m,{label:w.value},{default:n(()=>[l.dimension==="dept"?(r(),u(y,{key:0,modelValue:V.value,"onUpdate:modelValue":t[1]||(t[1]=a=>V.value=a),data:F.value,placeholder:`全部${w.value}`,clearable:"",filterable:"","node-key":"id","check-strictly":"","default-expand-all":!0,props:le,style:{width:"220px"},onChange:K},null,8,["modelValue","data","placeholder"])):(r(),u(T,{key:1,modelValue:V.value,"onUpdate:modelValue":t[2]||(t[2]=a=>V.value=a),placeholder:`全部${w.value}`,clearable:"",filterable:"",style:{width:"220px"},onChange:K},{default:n(()=>[(r(!0),S(z,null,D(se.value,a=>(r(),u(_,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"]))]),_:1},8,["label"]),o(m,{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:Ce},{default:n(()=>[(r(!0),S(z,null,D($.value,a=>(r(),u(_,{key:a.code,label:a.name,value:a.code},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(m,{label:"时间范围"},{default:n(()=>[o(Pe,{modelValue:l.time_type,"onUpdate:modelValue":t[4]||(t[4]=a=>l.time_type=a),onChange:Se},{default:n(()=>[o(E,{label:"today"},{default:n(()=>[...t[7]||(t[7]=[b("今天",-1)])]),_:1}),o(E,{label:"yesterday"},{default:n(()=>[...t[8]||(t[8]=[b("昨天",-1)])]),_:1}),o(E,{label:"week"},{default:n(()=>[...t[9]||(t[9]=[b("最近7天",-1)])]),_:1}),o(E,{label:"month"},{default:n(()=>[...t[10]||(t[10]=[b("最近30天",-1)])]),_:1}),o(E,{label:"custom"},{default:n(()=>[...t[11]||(t[11]=[b("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l.time_type==="custom"?(r(),u(m,{key:0},{default:n(()=>[o(ze,{modelValue:C.value,"onUpdate:modelValue":t[5]||(t[5]=a=>C.value=a),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",style:{width:"260px"},onChange:xe},null,8,["modelValue"])]),_:1})):A("",!0),o(m,null,{default:n(()=>[o(J,{type:"primary",loading:k(p).loading,onClick:we},{default:n(()=>[...t[12]||(t[12]=[b("查询",-1)])]),_:1},8,["loading"]),o(J,{onClick:Ee},{default:n(()=>[...t[13]||(t[13]=[b("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),i("div",ct,[(r(!0),S(z,null,D(ce.value,a=>(r(),S("div",{key:a.key,class:"stats-kpi-card"},[i("div",pt,v(a.label),1),i("div",{class:Z(["stats-kpi-value",{"is-money":a.type==="money"}])},v(Q(a.key,c.summary,a.type,a.placeholder)),3)]))),128))]),o(L,{gutter:20,class:"mt-4"},{default:n(()=>[o(P,{span:24},{default:n(()=>[o(O,{class:"!border-none",shadow:"never"},{header:n(()=>[i("div",mt,[t[14]||(t[14]=i("span",null,"转化排行",-1)),i("span",yt,v(Y.value)+" · TOP 10",1)])]),default:n(()=>[me.value?(r(),u(k(R),{key:0,class:"stats-chart stats-chart-wide",option:ve.value,autoresize:""},null,8,["option"])):(r(),u(W,{key:1,description:"暂无图表数据"}))]),_:1})]),_:1})]),_:1}),o(L,{gutter:20,class:"mt-4"},{default:n(()=>[o(P,{xs:24,lg:12},{default:n(()=>[o(O,{class:"!border-none",shadow:"never"},{header:n(()=>[i("div",_t,[i("span",null,v(j.value),1),t[15]||(t[15]=i("span",{class:"card-hint"},"TOP 10",-1))])]),default:n(()=>[ye.value?(r(),u(k(R),{key:0,class:"stats-chart",option:he.value,autoresize:""},null,8,["option"])):(r(),u(W,{key:1,description:"暂无金额数据"}))]),_:1})]),_:1}),o(P,{xs:24,lg:12},{default:n(()=>[o(O,{class:"!border-none",shadow:"never"},{header:n(()=>[i("div",bt,[i("span",null,v(q.value),1),t[16]||(t[16]=i("span",{class:"card-hint"},"TOP 10",-1))])]),default:n(()=>[_e.value?(r(),u(k(R),{key:0,class:"stats-chart",option:fe.value,autoresize:""},null,8,["option"])):(r(),u(W,{key:1,description:be.value},null,8,["description"]))]),_:1})]),_:1})]),_:1}),o(L,{gutter:20,class:"mt-4"},{default:n(()=>[o(P,{span:24},{default:n(()=>[o(O,{class:"!border-none stats-detail-card",shadow:"never"},{header:n(()=>[i("div",vt,[i("div",ht,[t[17]||(t[17]=i("span",{class:"card-title"},"明细列表",-1)),i("span",ft,v(w.value)+"维度 · "+v(Y.value),1)])])]),default:n(()=>[o(Le,{data:k(p).lists,"row-key":Ae,"tree-props":l.dimension==="dept"?oe:void 0,"default-expand-all":!1,indent:20,"row-class-name":Te,size:"default",style:{width:"100%"},"max-height":"640",border:""},{default:n(()=>[o(X,{label:w.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},[Ve(a)?(r(),S("span",{key:0,class:Z(["member-icon",{"is-leader":a.is_leader,"is-unbound":a.type==="unbound"}])},[o(We,null,{default:n(()=>[o(k(nt))]),_:1})],2)):A("",!0),i("span",kt,v(a.name),1),a.type==="member"&&a.is_leader?(r(),u(N,{key:1,size:"small",type:"warning",effect:"light",round:"",class:"role-tag"},{default:n(()=>[...t[18]||(t[18]=[b(" 组长 ",-1)])]),_:1})):A("",!0),a.type==="member"&&a.role?(r(),u(N,{key:2,size:"small",type:a.role==="医生"?"success":"info",effect:"plain",round:"",class:"role-tag"},{default:n(()=>[b(v(a.role),1)]),_:2},1032,["type"])):A("",!0),a.type==="unbound"?(r(),u(N,{key:3,size:"small",type:"danger",effect:"plain",round:"",class:"role-tag"},{default:n(()=>[...t[19]||(t[19]=[b(" 未绑定 ",-1)])]),_:1})):A("",!0)],8,gt)]),_:1},8,["label"]),(r(!0),S(z,null,D(pe.value,a=>(r(),u(X,{key:a.key,label:a.label,"min-width":a.minWidth||110,width:a.width,align:a.align||"center"},{default:n(({row:Re})=>[b(v(Q(a.key,Re,a.type,a.placeholder)),1)]),_:2},1032,["label","min-width","width","align"]))),128))]),_:1},8,["data","tree-props"]),i("div",Ct,[o(Ne,{modelValue:k(p),"onUpdate:modelValue":t[6]||(t[6]=a=>ot(p)?p.value=a:null),onChange:k(H)},null,8,["modelValue","onChange"])])]),_:1})]),_:1})]),_:1})])}}}),Pt=dt(xt,[["__scopeId","data-v-dc9b311a"]]);export{Pt as default}; +import{_ as Fe}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{o as te,ap as Me,q as r,r as S,v as o,D as n,bd as Ie,bb as Ue,cR as $e,O as u,bL as Be,bh as He,F as z,G as D,bi as Ye,bf as je,be as qe,L as b,az as Ge,P as A,K as Ke,u as k,bj as Qe,s as i,T as v,ae as Z,ca as Je,cL as R,bC as Xe,c9 as Ze,bk as et,bl as tt,w as at,cn as nt,bm as lt,C as ot,M as x,aC as ee,p as d,E as st}from"./.pnpm-CyuAWpdG.js";import{v as rt}from"./stats-B9TgZYZ_.js";import{u as it}from"./usePaging-CghUEVfD.js";import{_ as dt}from"./index-Bkarz3gO.js";const ut={class:"conversion-stats-page"},ct={class:"stats-kpi-grid"},pt={class:"stats-kpi-label"},mt={class:"card-header"},yt={class:"card-hint"},_t={class:"card-header"},bt={class:"card-header"},vt={class:"card-header"},ht={class:"card-header-main"},ft={class:"card-hint"},gt=["title"],kt={class:"entity-name"},Ct={class:"mt-4 flex justify-end"},St=te({name:"conversionStatsPage"}),xt=te({...St,setup(wt){const C=x([]),F=x([]),M=x([]),I=x([]),U=x([]),$=x([]),B=x(!1),c=ee({dimension:"dept",date_range:[],summary:{},charts:{ranking:{names:[],amounts:[],order_counts:[],fan_counts:[],rois:[],appointment_counts:[],interview_counts:[]},amount_share:[],fan_share:[],order_share:[]}}),l=ee({dimension:"dept",dept_id:void 0,assistant_id:void 0,doctor_id:void 0,media_channel_code:"",time_type:"today",start_date:"",end_date:""}),ae=async e=>{var s;e.include_filters=B.value?0:1,l.time_type==="custom"&&(e.start_date=C.value[0]||"",e.end_date=C.value[1]||"");const t=await rt(e);return Object.assign(c,(t==null?void 0:t.extend)||{}),ge((s=t==null?void 0:t.extend)==null?void 0:s.filters),t},{pager:p,getLists:H}=it({fetchFun:ae,params:l,firstLoading:!0}),ne=[{label:"部门",value:"dept"},{label:"医助",value:"assistant"},{label:"医生",value:"doctor"}],le={value:"id",label:"name",children:"children"},oe={children:"children"},w=d(()=>l.dimension==="assistant"?"医助":l.dimension==="doctor"?"医生":"部门"),se=d(()=>l.dimension==="assistant"?I.value:l.dimension==="doctor"?U.value:M.value),V=d({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}}),re=[{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"}],ie=[{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"},{key:"receive_rate",label:"接诊率",type:"percent"}],de=[{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}],ue=[{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:"receive_rate",label:"接诊率",type:"percent",minWidth:100}],h=d(()=>l.dimension==="doctor"),ce=d(()=>h.value?ie:re),pe=d(()=>h.value?ue:de),Y=d(()=>{var e;return(e=c.date_range)!=null&&e.length?`${c.date_range[0]} 至 ${c.date_range[1]}`:"未选择"}),me=d(()=>c.charts.ranking.names.length>0),ye=d(()=>c.charts.amount_share.length>0),_e=d(()=>{var e,t;return h.value?(((e=c.charts.order_share)==null?void 0:e.length)||0)>0:(((t=c.charts.fan_share)==null?void 0:t.length)||0)>0}),j=d(()=>h.value?"开药金额占比":"诊单金额占比"),q=d(()=>h.value?"接诊单数占比":"加粉占比"),be=d(()=>h.value?"暂无接诊数据":"暂无加粉数据"),f=d(()=>{var m;const e=((m=c.charts)==null?void 0:m.ranking)||{},t=Array.isArray(e.names)?e.names:[],s=y=>t.map((_,T)=>Number((y==null?void 0:y[T])??0));return{names:t,amounts:s(Array.isArray(e.amounts)?e.amounts:[]),appointmentCounts:s(Array.isArray(e.appointment_counts)?e.appointment_counts:[]),interviewCounts:s(Array.isArray(e.interview_counts)?e.interview_counts:[]),orderCounts:s(Array.isArray(e.order_counts)?e.order_counts:[]),fanCounts:s(Array.isArray(e.fan_counts)?e.fan_counts:[])}}),ve=d(()=>{const e={tooltip:{trigger:"axis"},grid:{left:48,right:24,top:48,bottom:48},xAxis:{type:"category",data:f.value.names,axisLabel:{interval:0,rotate:f.value.names.length>6?25:0}},yAxis:[{type:"value",name:"金额 / 数量"}]};return h.value?{...e,legend:{data:["开药金额","挂号数","面诊数","接诊单数"]},series:[{name:"开药金额",type:"bar",barMaxWidth:36,data:f.value.amounts,itemStyle:{color:"#4a78ff"}},{name:"挂号数",type:"line",smooth:!0,showSymbol:!0,symbolSize:8,lineStyle:{width:3},data:f.value.appointmentCounts,itemStyle:{color:"#15b8a6"}},{name:"面诊数",type:"line",smooth:!0,showSymbol:!0,symbolSize:8,lineStyle:{width:3},data:f.value.interviewCounts,itemStyle:{color:"#ff9f43"}},{name:"接诊单数",type:"line",smooth:!0,showSymbol:!0,symbolSize:8,lineStyle:{width:3},data:f.value.orderCounts,itemStyle:{color:"#7c3aed"}}]}:{...e,legend:{data:["诊单金额","接诊诊单","加粉数"]},series:[{name:"诊单金额",type:"bar",barMaxWidth:36,data:f.value.amounts,itemStyle:{color:"#4a78ff"}},{name:"接诊诊单",type:"line",smooth:!0,showSymbol:!0,symbolSize:8,lineStyle:{width:3},data:f.value.orderCounts,itemStyle:{color:"#15b8a6"}},{name:"加粉数",type:"line",smooth:!0,showSymbol:!0,symbolSize:8,lineStyle:{width:3},data:f.value.fanCounts,itemStyle:{color:"#ff9f43"}}]}}),he=d(()=>({tooltip:{trigger:"item"},legend:{bottom:0,type:"scroll",pageIconColor:"#409eff",pageTextStyle:{color:"#909399"}},series:[{name:j.value,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:c.charts.amount_share}]})),fe=d(()=>({tooltip:{trigger:"item"},legend:{bottom:0,type:"scroll",pageIconColor:"#409eff",pageTextStyle:{color:"#909399"}},series:[{name:q.value,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:h.value?c.charts.order_share:c.charts.fan_share}]})),G=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(G(s.children)))}),t},ge=e=>{if(!e)return;B.value=!0;const t=Array.isArray(e.departments)?e.departments:[],s=Array.isArray(e.assistants)?e.assistants:[],m=Array.isArray(e.doctors)?e.doctors:[],y=Array.isArray(e.media_channels)?e.media_channels:[];F.value=t,M.value=G(t),I.value=s.map(_=>({id:Number(_.id),name:_.name})),U.value=m.map(_=>({id:Number(_.id),name:_.name})),$.value=y.map(_=>({code:String(_.code||""),name:String(_.name||"")}))},g=async()=>{try{await H()}catch(e){console.error("获取统计概览失败:",e),st.error((e==null?void 0:e.msg)||"获取统计数据失败")}},ke=()=>{l.dept_id=void 0,l.assistant_id=void 0,l.doctor_id=void 0,p.page=1,g()},K=()=>{p.page=1,g()},Ce=()=>{p.page=1,g()},Se=()=>{l.time_type!=="custom"&&(C.value=[],p.page=1,g())},xe=()=>{C.value.length===2&&(p.page=1,g())},we=()=>{p.page=1,g()},Ee=()=>{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",C.value=[],p.page=1,p.size=15,g()},Oe=e=>{const t=Number((e==null?void 0:e.completed_order_count)||0),s=Number((e==null?void 0:e.interview_count)||0);return s<=0?0:t/s*100},Q=(e,t,s="count",m=!1)=>{if(m)return"—";const y=h.value&&e==="receive_rate"?Oe(t):(t==null?void 0:t[e])??0;return s==="money"?`¥${Number(y||0).toFixed(2)}`:s==="percent"?`${Number(y||0).toFixed(2)}%`:s==="ratio"?Number(y||0).toFixed(2):String(y??0)},Ae=e=>(e==null?void 0:e.id)!==void 0&&(e==null?void 0:e.id)!==null?String(e.id):"",Ve=e=>(e==null?void 0:e.type)==="member"||(e==null?void 0:e.type)==="unbound",Te=({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 Me(async()=>{await g()}),(e,t)=>{const s=$e,m=Ue,y=Be,_=Ye,T=He,E=qe,Pe=je,ze=Ge,J=Ke,De=Ie,O=Qe,W=Xe,P=Je,L=Ze,We=at,N=lt,X=tt,Le=et,Ne=Fe;return r(),S("div",ut,[o(O,{class:"!border-none",shadow:"never"},{default:n(()=>[o(De,{inline:!0,model:l,class:"stats-filter-form"},{default:n(()=>[o(m,{label:"统计维度"},{default:n(()=>[o(s,{modelValue:l.dimension,"onUpdate:modelValue":t[0]||(t[0]=a=>l.dimension=a),options:ne,onChange:ke},null,8,["modelValue"])]),_:1}),o(m,{label:w.value},{default:n(()=>[l.dimension==="dept"?(r(),u(y,{key:0,modelValue:V.value,"onUpdate:modelValue":t[1]||(t[1]=a=>V.value=a),data:F.value,placeholder:`全部${w.value}`,clearable:"",filterable:"","node-key":"id","check-strictly":"","default-expand-all":!0,props:le,style:{width:"220px"},onChange:K},null,8,["modelValue","data","placeholder"])):(r(),u(T,{key:1,modelValue:V.value,"onUpdate:modelValue":t[2]||(t[2]=a=>V.value=a),placeholder:`全部${w.value}`,clearable:"",filterable:"",style:{width:"220px"},onChange:K},{default:n(()=>[(r(!0),S(z,null,D(se.value,a=>(r(),u(_,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"]))]),_:1},8,["label"]),o(m,{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:Ce},{default:n(()=>[(r(!0),S(z,null,D($.value,a=>(r(),u(_,{key:a.code,label:a.name,value:a.code},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(m,{label:"时间范围"},{default:n(()=>[o(Pe,{modelValue:l.time_type,"onUpdate:modelValue":t[4]||(t[4]=a=>l.time_type=a),onChange:Se},{default:n(()=>[o(E,{label:"today"},{default:n(()=>[...t[7]||(t[7]=[b("今天",-1)])]),_:1}),o(E,{label:"yesterday"},{default:n(()=>[...t[8]||(t[8]=[b("昨天",-1)])]),_:1}),o(E,{label:"week"},{default:n(()=>[...t[9]||(t[9]=[b("最近7天",-1)])]),_:1}),o(E,{label:"month"},{default:n(()=>[...t[10]||(t[10]=[b("最近30天",-1)])]),_:1}),o(E,{label:"custom"},{default:n(()=>[...t[11]||(t[11]=[b("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l.time_type==="custom"?(r(),u(m,{key:0},{default:n(()=>[o(ze,{modelValue:C.value,"onUpdate:modelValue":t[5]||(t[5]=a=>C.value=a),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",style:{width:"260px"},onChange:xe},null,8,["modelValue"])]),_:1})):A("",!0),o(m,null,{default:n(()=>[o(J,{type:"primary",loading:k(p).loading,onClick:we},{default:n(()=>[...t[12]||(t[12]=[b("查询",-1)])]),_:1},8,["loading"]),o(J,{onClick:Ee},{default:n(()=>[...t[13]||(t[13]=[b("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),i("div",ct,[(r(!0),S(z,null,D(ce.value,a=>(r(),S("div",{key:a.key,class:"stats-kpi-card"},[i("div",pt,v(a.label),1),i("div",{class:Z(["stats-kpi-value",{"is-money":a.type==="money"}])},v(Q(a.key,c.summary,a.type,a.placeholder)),3)]))),128))]),o(L,{gutter:20,class:"mt-4"},{default:n(()=>[o(P,{span:24},{default:n(()=>[o(O,{class:"!border-none",shadow:"never"},{header:n(()=>[i("div",mt,[t[14]||(t[14]=i("span",null,"转化排行",-1)),i("span",yt,v(Y.value)+" · TOP 10",1)])]),default:n(()=>[me.value?(r(),u(k(R),{key:0,class:"stats-chart stats-chart-wide",option:ve.value,autoresize:""},null,8,["option"])):(r(),u(W,{key:1,description:"暂无图表数据"}))]),_:1})]),_:1})]),_:1}),o(L,{gutter:20,class:"mt-4"},{default:n(()=>[o(P,{xs:24,lg:12},{default:n(()=>[o(O,{class:"!border-none",shadow:"never"},{header:n(()=>[i("div",_t,[i("span",null,v(j.value),1),t[15]||(t[15]=i("span",{class:"card-hint"},"TOP 10",-1))])]),default:n(()=>[ye.value?(r(),u(k(R),{key:0,class:"stats-chart",option:he.value,autoresize:""},null,8,["option"])):(r(),u(W,{key:1,description:"暂无金额数据"}))]),_:1})]),_:1}),o(P,{xs:24,lg:12},{default:n(()=>[o(O,{class:"!border-none",shadow:"never"},{header:n(()=>[i("div",bt,[i("span",null,v(q.value),1),t[16]||(t[16]=i("span",{class:"card-hint"},"TOP 10",-1))])]),default:n(()=>[_e.value?(r(),u(k(R),{key:0,class:"stats-chart",option:fe.value,autoresize:""},null,8,["option"])):(r(),u(W,{key:1,description:be.value},null,8,["description"]))]),_:1})]),_:1})]),_:1}),o(L,{gutter:20,class:"mt-4"},{default:n(()=>[o(P,{span:24},{default:n(()=>[o(O,{class:"!border-none stats-detail-card",shadow:"never"},{header:n(()=>[i("div",vt,[i("div",ht,[t[17]||(t[17]=i("span",{class:"card-title"},"明细列表",-1)),i("span",ft,v(w.value)+"维度 · "+v(Y.value),1)])])]),default:n(()=>[o(Le,{data:k(p).lists,"row-key":Ae,"tree-props":l.dimension==="dept"?oe:void 0,"default-expand-all":!1,indent:20,"row-class-name":Te,size:"default",style:{width:"100%"},"max-height":"640",border:""},{default:n(()=>[o(X,{label:w.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},[Ve(a)?(r(),S("span",{key:0,class:Z(["member-icon",{"is-leader":a.is_leader,"is-unbound":a.type==="unbound"}])},[o(We,null,{default:n(()=>[o(k(nt))]),_:1})],2)):A("",!0),i("span",kt,v(a.name),1),a.type==="member"&&a.is_leader?(r(),u(N,{key:1,size:"small",type:"warning",effect:"light",round:"",class:"role-tag"},{default:n(()=>[...t[18]||(t[18]=[b(" 组长 ",-1)])]),_:1})):A("",!0),a.type==="member"&&a.role?(r(),u(N,{key:2,size:"small",type:a.role==="医生"?"success":"info",effect:"plain",round:"",class:"role-tag"},{default:n(()=>[b(v(a.role),1)]),_:2},1032,["type"])):A("",!0),a.type==="unbound"?(r(),u(N,{key:3,size:"small",type:"danger",effect:"plain",round:"",class:"role-tag"},{default:n(()=>[...t[19]||(t[19]=[b(" 未绑定 ",-1)])]),_:1})):A("",!0)],8,gt)]),_:1},8,["label"]),(r(!0),S(z,null,D(pe.value,a=>(r(),u(X,{key:a.key,label:a.label,"min-width":a.minWidth||110,width:a.width,align:a.align||"center"},{default:n(({row:Re})=>[b(v(Q(a.key,Re,a.type,a.placeholder)),1)]),_:2},1032,["label","min-width","width","align"]))),128))]),_:1},8,["data","tree-props"]),i("div",Ct,[o(Ne,{modelValue:k(p),"onUpdate:modelValue":t[6]||(t[6]=a=>ot(p)?p.value=a:null),onChange:k(H)},null,8,["modelValue","onChange"])])]),_:1})]),_:1})]),_:1})])}}}),Pt=dt(xt,[["__scopeId","data-v-dc9b311a"]]);export{Pt as default}; diff --git a/server/public/admin/assets/index-Cf6ygfGC.js b/server/public/admin/assets/index-DAIDDabA.js similarity index 93% rename from server/public/admin/assets/index-Cf6ygfGC.js rename to server/public/admin/assets/index-DAIDDabA.js index 74528ac5e..093b4fc62 100644 --- a/server/public/admin/assets/index-Cf6ygfGC.js +++ b/server/public/admin/assets/index-DAIDDabA.js @@ -1 +1 @@ -import{o as k,R as B,q as l,r as v,T as m,O as b,D as I,F as w,G as x,u,bi as M,s as p,bh as C,M as h,p as D}from"./.pnpm-CyuAWpdG.js";import{m as E}from"./medicine-EUKQYFsM.js";import{_ as O}from"./index-Dxvz9lb1.js";const S={key:0,class:"medicine-name-readonly"},q={class:"medicine-name-option"},F={class:"medicine-name-option__meta"},L=k({__name:"index",props:{modelValue:{},medicineId:{},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","update:medicineId"],setup(d,{emit:g}){const t=d,c=g,r=h(!1),o=h([]),V=D(()=>{const e=Number(t.medicineId);return Number.isInteger(e)&&e>0?e:(t.modelValue||"").trim()?0:""});function f(){const e=(t.modelValue||"").trim();if(!e)return;const n=Number(t.medicineId),a=Number.isInteger(n)&&n>0?n:0;o.value.some(s=>s.id===a)||(o.value=[{id:a,name:e},...o.value])}const _=async e=>{r.value=!0;try{const n=(e||"").trim(),a=await E({name:n||void 0,page_no:1,page_size:100,status:1});o.value=a.lists||[],f()}catch(n){console.error(n),o.value=[]}finally{r.value=!1}},y=e=>{e&&o.value.length===0&&_("")},N=e=>{const n=Number(e),a=n>0?o.value.find(s=>s.id===n):void 0;c("update:modelValue",(a==null?void 0:a.name)||""),c("update:medicineId",a==null?void 0:a.id)};return B(()=>[t.modelValue,t.medicineId],()=>{!(t.modelValue||"").trim()&&Number(t.medicineId)>0&&c("update:medicineId",void 0),f()},{immediate:!0}),(e,n)=>{const a=M,s=C;return d.disabled?(l(),v("span",S,m(d.modelValue||"—"),1)):(l(),b(s,{key:1,"model-value":u(V),class:"medicine-name-select w-full",filterable:"",remote:"","reserve-keyword":"",placeholder:"搜索药材名称或拼音首字母","remote-method":_,loading:u(r),clearable:"",onVisibleChange:y,"onUpdate:modelValue":N},{default:I(()=>[(l(!0),v(w,null,x(u(o),i=>(l(),b(a,{key:i.id,label:i.name,value:i.id},{default:I(()=>[p("div",q,[p("span",null,m(i.name),1),p("span",F,m(i.id>0?[i.supplier,i.unit,`ID ${i.id}`].filter(Boolean).join(" · "):"历史名称,请重新选择"),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["model-value","loading"]))}}}),G=O(L,[["__scopeId","data-v-74b65e79"]]);export{G as M}; +import{o as k,R as B,q as l,r as v,T as m,O as b,D as I,F as w,G as x,u,bi as M,s as p,bh as C,M as h,p as D}from"./.pnpm-CyuAWpdG.js";import{m as E}from"./medicine-DPIOyHj8.js";import{_ as O}from"./index-Bkarz3gO.js";const S={key:0,class:"medicine-name-readonly"},q={class:"medicine-name-option"},F={class:"medicine-name-option__meta"},L=k({__name:"index",props:{modelValue:{},medicineId:{},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","update:medicineId"],setup(d,{emit:g}){const t=d,c=g,r=h(!1),o=h([]),V=D(()=>{const e=Number(t.medicineId);return Number.isInteger(e)&&e>0?e:(t.modelValue||"").trim()?0:""});function f(){const e=(t.modelValue||"").trim();if(!e)return;const n=Number(t.medicineId),a=Number.isInteger(n)&&n>0?n:0;o.value.some(s=>s.id===a)||(o.value=[{id:a,name:e},...o.value])}const _=async e=>{r.value=!0;try{const n=(e||"").trim(),a=await E({name:n||void 0,page_no:1,page_size:100,status:1});o.value=a.lists||[],f()}catch(n){console.error(n),o.value=[]}finally{r.value=!1}},y=e=>{e&&o.value.length===0&&_("")},N=e=>{const n=Number(e),a=n>0?o.value.find(s=>s.id===n):void 0;c("update:modelValue",(a==null?void 0:a.name)||""),c("update:medicineId",a==null?void 0:a.id)};return B(()=>[t.modelValue,t.medicineId],()=>{!(t.modelValue||"").trim()&&Number(t.medicineId)>0&&c("update:medicineId",void 0),f()},{immediate:!0}),(e,n)=>{const a=M,s=C;return d.disabled?(l(),v("span",S,m(d.modelValue||"—"),1)):(l(),b(s,{key:1,"model-value":u(V),class:"medicine-name-select w-full",filterable:"",remote:"","reserve-keyword":"",placeholder:"搜索药材名称或拼音首字母","remote-method":_,loading:u(r),clearable:"",onVisibleChange:y,"onUpdate:modelValue":N},{default:I(()=>[(l(!0),v(w,null,x(u(o),i=>(l(),b(a,{key:i.id,label:i.name,value:i.id},{default:I(()=>[p("div",q,[p("span",null,m(i.name),1),p("span",F,m(i.id>0?[i.supplier,i.unit,`ID ${i.id}`].filter(Boolean).join(" · "):"历史名称,请重新选择"),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["model-value","loading"]))}}}),G=O(L,[["__scopeId","data-v-74b65e79"]]);export{G as M}; diff --git a/server/public/admin/assets/index-u3uCInK8.js b/server/public/admin/assets/index-DAbBKTBq.js similarity index 96% rename from server/public/admin/assets/index-u3uCInK8.js rename to server/public/admin/assets/index-DAbBKTBq.js index d2fdb3ead..fd3147dca 100644 --- a/server/public/admin/assets/index-u3uCInK8.js +++ b/server/public/admin/assets/index-DAbBKTBq.js @@ -1 +1 @@ -import{_ as I}from"./index-9qT8_5W1.js";import{r as V,c as N,_ as R}from"./index-Dxvz9lb1.js";import{o as C,bp as z,q as d,r as u,v as t,D as o,bd as A,u as i,bb as G,s as a,bf as L,bq as $,L as c,bj as j,K,bk as O,bl as H,aA as J,ac as x,O as y,F as M,G as P,T as Q,aC as W,p as X}from"./.pnpm-CyuAWpdG.js";function Y(){return V.get({url:"/setting.hot_search/getConfig"})}function Z(p){return V.post({url:"/setting.hot_search/setConfig",params:p})}const ee={class:"hot-search"},te={class:"lg:flex"},oe={class:"flex-1 min-w-0"},se={class:"hot-search-phone mt-4 lg:mt-0 lg:ml-4 flex-none"},ae={class:"hot-search-phone-content"},ne={class:"search-com"},le={class:"search-con flex items-center px-[15px]"},re={class:"hot-search-text"},de=C({name:"search"}),ie=C({...de,setup(p){const l=W({status:1,data:[]}),k=X(()=>l.data.filter(s=>s.name).sort((s,e)=>e.sort-s.sort)),f=async()=>{try{const s=await Y();for(const e in l)l[e]=s[e]}catch(s){console.log("获取=>",s)}},w=()=>{l.data.push({name:"",sort:0})},E=s=>{l.data.splice(s,1)},D=async()=>{try{await Z(l),f()}catch(s){console.log("保存=>",s)}};return f(),(s,e)=>{const h=$,B=L,S=G,U=A,b=j,m=K,g=J,_=H,F=O,T=N,q=I,v=z("perms");return d(),u("div",ee,[t(b,{class:"!border-none",shadow:"never"},{default:o(()=>[t(U,{ref:"formRef",model:i(l),"label-width":"100px"},{default:o(()=>[t(S,{label:"功能状态",style:{"margin-bottom":"0"}},{default:o(()=>[a("div",null,[t(B,{modelValue:i(l).status,"onUpdate:modelValue":e[0]||(e[0]=n=>i(l).status=n)},{default:o(()=>[t(h,{value:1},{default:o(()=>[...e[1]||(e[1]=[c("开启",-1)])]),_:1}),t(h,{value:0},{default:o(()=>[...e[2]||(e[2]=[c("关闭",-1)])]),_:1})]),_:1},8,["modelValue"]),e[3]||(e[3]=a("div",{class:"form-tips"},"默认开启,关闭则前端不显示该功能",-1))])]),_:1})]),_:1},8,["model"])]),_:1}),t(b,{class:"!border-none mt-4",shadow:"never"},{default:o(()=>[a("div",te,[a("div",oe,[t(m,{type:"primary",class:"mb-4",onClick:w},{default:o(()=>[...e[4]||(e[4]=[c("添加",-1)])]),_:1}),t(F,{size:"large",data:i(l).data},{default:o(()=>[t(_,{label:"关键词",prop:"describe","min-width":"160"},{default:o(({row:n})=>[t(g,{modelValue:n.name,"onUpdate:modelValue":r=>n.name=r,clearable:"",placeholder:"请输入关键字","show-word-limit":"",maxlength:"30"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(_,{label:"排序",prop:"describe","min-width":"160"},{default:o(({row:n})=>[t(g,{modelValue:n.sort,"onUpdate:modelValue":r=>n.sort=r,type:"number"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(_,{label:"操作","min-width":"80",fixed:"right"},{default:o(({$index:n})=>[x((d(),y(m,{type:"danger",link:"",onClick:r=>E(n)},{default:o(()=>[...e[5]||(e[5]=[c(" 删除 ",-1)])]),_:1},8,["onClick"])),[[v,["setting:storage:edit"]]])]),_:1})]),_:1},8,["data"])]),a("div",se,[e[8]||(e[8]=a("div",{class:"mb-4 text-center"},"- 热搜预览图 -",-1)),a("div",ae,[a("div",ne,[a("div",le,[t(T,{name:"el-icon-Search",size:17}),e[6]||(e[6]=a("span",{class:"ml-[5px]"},"请输入关键词搜索",-1))])]),e[7]||(e[7]=a("div",{class:"hot-search-title"},"热门搜索",-1)),a("div",re,[(d(!0),u(M,null,P(i(k),(n,r)=>(d(),u("span",{key:r},Q(n.name),1))),128))])])])])]),_:1}),x((d(),y(q,null,{default:o(()=>[t(m,{type:"primary",onClick:D},{default:o(()=>[...e[9]||(e[9]=[c("保存",-1)])]),_:1})]),_:1})),[[v,["setting.hot_search/setConfig"]]])])}}}),ue=R(ie,[["__scopeId","data-v-7cc9d6c3"]]);export{ue as default}; +import{_ as I}from"./index-DIl3M8Wa.js";import{r as V,c as N,_ as R}from"./index-Bkarz3gO.js";import{o as C,bp as z,q as d,r as u,v as t,D as o,bd as A,u as i,bb as G,s as a,bf as L,bq as $,L as c,bj as j,K,bk as O,bl as H,aA as J,ac as x,O as y,F as M,G as P,T as Q,aC as W,p as X}from"./.pnpm-CyuAWpdG.js";function Y(){return V.get({url:"/setting.hot_search/getConfig"})}function Z(p){return V.post({url:"/setting.hot_search/setConfig",params:p})}const ee={class:"hot-search"},te={class:"lg:flex"},oe={class:"flex-1 min-w-0"},se={class:"hot-search-phone mt-4 lg:mt-0 lg:ml-4 flex-none"},ae={class:"hot-search-phone-content"},ne={class:"search-com"},le={class:"search-con flex items-center px-[15px]"},re={class:"hot-search-text"},de=C({name:"search"}),ie=C({...de,setup(p){const l=W({status:1,data:[]}),k=X(()=>l.data.filter(s=>s.name).sort((s,e)=>e.sort-s.sort)),f=async()=>{try{const s=await Y();for(const e in l)l[e]=s[e]}catch(s){console.log("获取=>",s)}},w=()=>{l.data.push({name:"",sort:0})},E=s=>{l.data.splice(s,1)},D=async()=>{try{await Z(l),f()}catch(s){console.log("保存=>",s)}};return f(),(s,e)=>{const h=$,B=L,S=G,U=A,b=j,m=K,g=J,_=H,F=O,T=N,q=I,v=z("perms");return d(),u("div",ee,[t(b,{class:"!border-none",shadow:"never"},{default:o(()=>[t(U,{ref:"formRef",model:i(l),"label-width":"100px"},{default:o(()=>[t(S,{label:"功能状态",style:{"margin-bottom":"0"}},{default:o(()=>[a("div",null,[t(B,{modelValue:i(l).status,"onUpdate:modelValue":e[0]||(e[0]=n=>i(l).status=n)},{default:o(()=>[t(h,{value:1},{default:o(()=>[...e[1]||(e[1]=[c("开启",-1)])]),_:1}),t(h,{value:0},{default:o(()=>[...e[2]||(e[2]=[c("关闭",-1)])]),_:1})]),_:1},8,["modelValue"]),e[3]||(e[3]=a("div",{class:"form-tips"},"默认开启,关闭则前端不显示该功能",-1))])]),_:1})]),_:1},8,["model"])]),_:1}),t(b,{class:"!border-none mt-4",shadow:"never"},{default:o(()=>[a("div",te,[a("div",oe,[t(m,{type:"primary",class:"mb-4",onClick:w},{default:o(()=>[...e[4]||(e[4]=[c("添加",-1)])]),_:1}),t(F,{size:"large",data:i(l).data},{default:o(()=>[t(_,{label:"关键词",prop:"describe","min-width":"160"},{default:o(({row:n})=>[t(g,{modelValue:n.name,"onUpdate:modelValue":r=>n.name=r,clearable:"",placeholder:"请输入关键字","show-word-limit":"",maxlength:"30"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(_,{label:"排序",prop:"describe","min-width":"160"},{default:o(({row:n})=>[t(g,{modelValue:n.sort,"onUpdate:modelValue":r=>n.sort=r,type:"number"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(_,{label:"操作","min-width":"80",fixed:"right"},{default:o(({$index:n})=>[x((d(),y(m,{type:"danger",link:"",onClick:r=>E(n)},{default:o(()=>[...e[5]||(e[5]=[c(" 删除 ",-1)])]),_:1},8,["onClick"])),[[v,["setting:storage:edit"]]])]),_:1})]),_:1},8,["data"])]),a("div",se,[e[8]||(e[8]=a("div",{class:"mb-4 text-center"},"- 热搜预览图 -",-1)),a("div",ae,[a("div",ne,[a("div",le,[t(T,{name:"el-icon-Search",size:17}),e[6]||(e[6]=a("span",{class:"ml-[5px]"},"请输入关键词搜索",-1))])]),e[7]||(e[7]=a("div",{class:"hot-search-title"},"热门搜索",-1)),a("div",re,[(d(!0),u(M,null,P(i(k),(n,r)=>(d(),u("span",{key:r},Q(n.name),1))),128))])])])])]),_:1}),x((d(),y(q,null,{default:o(()=>[t(m,{type:"primary",onClick:D},{default:o(()=>[...e[9]||(e[9]=[c("保存",-1)])]),_:1})]),_:1})),[[v,["setting.hot_search/setConfig"]]])])}}}),ue=R(ie,[["__scopeId","data-v-7cc9d6c3"]]);export{ue as default}; diff --git a/server/public/admin/assets/index-D_wli7K6.js b/server/public/admin/assets/index-DFsVLm8u.js similarity index 92% rename from server/public/admin/assets/index-D_wli7K6.js rename to server/public/admin/assets/index-DFsVLm8u.js index 7c6c7aacd..510f44f84 100644 --- a/server/public/admin/assets/index-D_wli7K6.js +++ b/server/public/admin/assets/index-DFsVLm8u.js @@ -1 +1 @@ -import{o as $,bp as A,q as s,r as v,v as o,D as n,s as B,ac as _,O as r,K as P,L as m,bk as j,u as p,bl as z,P as h,bm as F,bn as S,bj as q,a8 as D,M as G,n as N}from"./.pnpm-CyuAWpdG.js";import{c as K,M as k,j as H}from"./index-Dxvz9lb1.js";import{a as I,e as J}from"./menu-Y8cDrxAC.js";import{u as Q}from"./usePaging-CghUEVfD.js";import{_ as W}from"./edit.vue_vue_type_script_setup_true_lang-ccnC9QVe.js";import"./picker.vue_vue_type_script_setup_true_lang-r5jdEAJg.js";import"./index-BnfLT5cB.js";const X={class:"menu-lists"},Y={key:0},Z={key:1},ee={key:2},te={class:"flex"},ne=$({name:"permission-menu"}),me=$({...ne,setup(ae){const w=D(),u=D();let y=!1;const c=G(!1),{pager:b,getLists:g}=Q({fetchFun:I,params:{page_type:0}}),C=async a=>{var e,l;c.value=!0,await N(),a&&((e=u.value)==null||e.setFormData({pid:a})),(l=u.value)==null||l.open("add")},R=async a=>{var e,l;c.value=!0,await N(),(e=u.value)==null||e.open("edit"),(l=u.value)==null||l.getDetail(a)},L=async a=>{await H.confirm("确定要删除?"),await J({id:a}),g()},M=()=>{y=!y,E(b.lists,y)},E=(a,e=!0)=>{var l;for(const i in a)(l=w.value)==null||l.toggleRowExpansion(a[i],e),a[i].children&&E(a[i].children,e)};return g(),(a,e)=>{const l=K,i=P,d=z,x=F,O=j,U=q,f=A("perms"),V=S;return s(),v("div",X,[o(U,{class:"!border-none",shadow:"never"},{default:n(()=>[B("div",null,[_((s(),r(i,{type:"primary",onClick:e[0]||(e[0]=t=>C())},{icon:n(()=>[o(l,{name:"el-icon-Plus"})]),default:n(()=>[e[2]||(e[2]=m(" 新增 ",-1))]),_:1})),[[f,["auth.menu/add"]]]),o(i,{onClick:M},{default:n(()=>[...e[3]||(e[3]=[m(" 展开/折叠 ",-1)])]),_:1})]),_((s(),r(O,{ref_key:"tableRef",ref:w,class:"mt-4",size:"large",data:p(b).lists,"row-key":"id","tree-props":{children:"children",hasChildren:"hasChildren"}},{default:n(()=>[o(d,{label:"菜单名称",prop:"name","min-width":"150","show-overflow-tooltip":""}),o(d,{label:"类型",prop:"type","min-width":"80"},{default:n(({row:t})=>[t.type==p(k).CATALOGUE?(s(),v("div",Y,"目录")):t.type==p(k).MENU?(s(),v("div",Z,"菜单")):t.type==p(k).BUTTON?(s(),v("div",ee,"按钮")):h("",!0)]),_:1}),o(d,{label:"图标",prop:"icon","min-width":"80"},{default:n(({row:t})=>[B("div",te,[o(l,{name:t.icon,size:20},null,8,["name"])])]),_:1}),o(d,{label:"权限标识",prop:"perms","min-width":"150","show-overflow-tooltip":""}),o(d,{label:"状态",prop:"is_disable","min-width":"100"},{default:n(({row:t})=>[t.is_disable==0?(s(),r(x,{key:0},{default:n(()=>[...e[4]||(e[4]=[m("正常",-1)])]),_:1})):(s(),r(x,{key:1,type:"danger"},{default:n(()=>[...e[5]||(e[5]=[m("停用",-1)])]),_:1}))]),_:1}),o(d,{label:"排序",prop:"sort","min-width":"100"}),o(d,{label:"更新时间",prop:"update_time","min-width":"180"}),o(d,{label:"操作",width:"160",fixed:"right"},{default:n(({row:t})=>[t.type!==p(k).BUTTON?_((s(),r(i,{key:0,type:"primary",link:"",onClick:T=>C(t.id)},{default:n(()=>[...e[6]||(e[6]=[m(" 新增 ",-1)])]),_:1},8,["onClick"])),[[f,["auth.menu/add"]]]):h("",!0),_((s(),r(i,{type:"primary",link:"",onClick:T=>R(t)},{default:n(()=>[...e[7]||(e[7]=[m(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[f,["auth.menu/edit"]]]),_((s(),r(i,{type:"danger",link:"",onClick:T=>L(t.id)},{default:n(()=>[...e[8]||(e[8]=[m(" 删除 ",-1)])]),_:1},8,["onClick"])),[[f,["auth.menu/delete"]]])]),_:1})]),_:1},8,["data"])),[[V,p(b).loading]])]),_:1}),p(c)?(s(),r(W,{key:0,ref_key:"editRef",ref:u,onSuccess:p(g),onClose:e[1]||(e[1]=t=>c.value=!1)},null,8,["onSuccess"])):h("",!0)])}}});export{me as default}; +import{o as $,bp as A,q as s,r as v,v as o,D as n,s as B,ac as _,O as r,K as P,L as m,bk as j,u as p,bl as z,P as h,bm as F,bn as S,bj as q,a8 as D,M as G,n as N}from"./.pnpm-CyuAWpdG.js";import{c as K,M as k,j as H}from"./index-Bkarz3gO.js";import{a as I,e as J}from"./menu-BmHYTFQt.js";import{u as Q}from"./usePaging-CghUEVfD.js";import{_ as W}from"./edit.vue_vue_type_script_setup_true_lang-qmD3gOVD.js";import"./picker.vue_vue_type_script_setup_true_lang-CMq9B6V2.js";import"./index-CS5Wg0xx.js";const X={class:"menu-lists"},Y={key:0},Z={key:1},ee={key:2},te={class:"flex"},ne=$({name:"permission-menu"}),me=$({...ne,setup(ae){const w=D(),u=D();let y=!1;const c=G(!1),{pager:b,getLists:g}=Q({fetchFun:I,params:{page_type:0}}),C=async a=>{var e,l;c.value=!0,await N(),a&&((e=u.value)==null||e.setFormData({pid:a})),(l=u.value)==null||l.open("add")},R=async a=>{var e,l;c.value=!0,await N(),(e=u.value)==null||e.open("edit"),(l=u.value)==null||l.getDetail(a)},L=async a=>{await H.confirm("确定要删除?"),await J({id:a}),g()},M=()=>{y=!y,E(b.lists,y)},E=(a,e=!0)=>{var l;for(const i in a)(l=w.value)==null||l.toggleRowExpansion(a[i],e),a[i].children&&E(a[i].children,e)};return g(),(a,e)=>{const l=K,i=P,d=z,x=F,O=j,U=q,f=A("perms"),V=S;return s(),v("div",X,[o(U,{class:"!border-none",shadow:"never"},{default:n(()=>[B("div",null,[_((s(),r(i,{type:"primary",onClick:e[0]||(e[0]=t=>C())},{icon:n(()=>[o(l,{name:"el-icon-Plus"})]),default:n(()=>[e[2]||(e[2]=m(" 新增 ",-1))]),_:1})),[[f,["auth.menu/add"]]]),o(i,{onClick:M},{default:n(()=>[...e[3]||(e[3]=[m(" 展开/折叠 ",-1)])]),_:1})]),_((s(),r(O,{ref_key:"tableRef",ref:w,class:"mt-4",size:"large",data:p(b).lists,"row-key":"id","tree-props":{children:"children",hasChildren:"hasChildren"}},{default:n(()=>[o(d,{label:"菜单名称",prop:"name","min-width":"150","show-overflow-tooltip":""}),o(d,{label:"类型",prop:"type","min-width":"80"},{default:n(({row:t})=>[t.type==p(k).CATALOGUE?(s(),v("div",Y,"目录")):t.type==p(k).MENU?(s(),v("div",Z,"菜单")):t.type==p(k).BUTTON?(s(),v("div",ee,"按钮")):h("",!0)]),_:1}),o(d,{label:"图标",prop:"icon","min-width":"80"},{default:n(({row:t})=>[B("div",te,[o(l,{name:t.icon,size:20},null,8,["name"])])]),_:1}),o(d,{label:"权限标识",prop:"perms","min-width":"150","show-overflow-tooltip":""}),o(d,{label:"状态",prop:"is_disable","min-width":"100"},{default:n(({row:t})=>[t.is_disable==0?(s(),r(x,{key:0},{default:n(()=>[...e[4]||(e[4]=[m("正常",-1)])]),_:1})):(s(),r(x,{key:1,type:"danger"},{default:n(()=>[...e[5]||(e[5]=[m("停用",-1)])]),_:1}))]),_:1}),o(d,{label:"排序",prop:"sort","min-width":"100"}),o(d,{label:"更新时间",prop:"update_time","min-width":"180"}),o(d,{label:"操作",width:"160",fixed:"right"},{default:n(({row:t})=>[t.type!==p(k).BUTTON?_((s(),r(i,{key:0,type:"primary",link:"",onClick:T=>C(t.id)},{default:n(()=>[...e[6]||(e[6]=[m(" 新增 ",-1)])]),_:1},8,["onClick"])),[[f,["auth.menu/add"]]]):h("",!0),_((s(),r(i,{type:"primary",link:"",onClick:T=>R(t)},{default:n(()=>[...e[7]||(e[7]=[m(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[f,["auth.menu/edit"]]]),_((s(),r(i,{type:"danger",link:"",onClick:T=>L(t.id)},{default:n(()=>[...e[8]||(e[8]=[m(" 删除 ",-1)])]),_:1},8,["onClick"])),[[f,["auth.menu/delete"]]])]),_:1})]),_:1},8,["data"])),[[V,p(b).loading]])]),_:1}),p(c)?(s(),r(W,{key:0,ref_key:"editRef",ref:u,onSuccess:p(g),onClose:e[1]||(e[1]=t=>c.value=!1)},null,8,["onSuccess"])):h("",!0)])}}});export{me as default}; diff --git a/server/public/admin/assets/index-9qT8_5W1.js b/server/public/admin/assets/index-DIl3M8Wa.js similarity index 84% rename from server/public/admin/assets/index-9qT8_5W1.js rename to server/public/admin/assets/index-DIl3M8Wa.js index 5429aee5b..32ab17856 100644 --- a/server/public/admin/assets/index-9qT8_5W1.js +++ b/server/public/admin/assets/index-DIl3M8Wa.js @@ -1 +1 @@ -import{o as t,q as s,r as n,s as a,ah as r,t as _}from"./.pnpm-CyuAWpdG.js";import{_ as c}from"./index-Dxvz9lb1.js";const i={class:"footer-btns"},d=t({__name:"index",props:{fixed:{type:Boolean,default:!0}},setup(e){return(o,l)=>(s(),n("div",i,[a("div",{class:"footer-btns__content",style:_(e.fixed?"position: fixed":"")},[r(o.$slots,"default",{},void 0,!0)],4)]))}}),m=c(d,[["__scopeId","data-v-9f638557"]]);export{m as _}; +import{o as t,q as s,r as n,s as a,ah as r,t as _}from"./.pnpm-CyuAWpdG.js";import{_ as c}from"./index-Bkarz3gO.js";const i={class:"footer-btns"},d=t({__name:"index",props:{fixed:{type:Boolean,default:!0}},setup(e){return(o,l)=>(s(),n("div",i,[a("div",{class:"footer-btns__content",style:_(e.fixed?"position: fixed":"")},[r(o.$slots,"default",{},void 0,!0)],4)]))}}),m=c(d,[["__scopeId","data-v-9f638557"]]);export{m as _}; diff --git a/server/public/admin/assets/index-063fi3m5.js b/server/public/admin/assets/index-DIuTK0zC.js similarity index 88% rename from server/public/admin/assets/index-063fi3m5.js rename to server/public/admin/assets/index-DIuTK0zC.js index fff912b15..a0a6aab07 100644 --- a/server/public/admin/assets/index-063fi3m5.js +++ b/server/public/admin/assets/index-DIuTK0zC.js @@ -1 +1 @@ -import{o as x,ap as S,bp as T,q as s,r as A,v as e,D as o,bd as z,u as n,bb as M,aA as q,bc as k,K as O,L as _,bj as G,ac as f,bn as H,O as m,s as V,bk as J,bl as Q,a0 as W,I as X,C as Y,P as Z,a8 as ee,aC as ae,M as te,n as E}from"./.pnpm-CyuAWpdG.js";import{_ as oe}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as le,j as ne,_ as ie}from"./index-Dxvz9lb1.js";import{a as se,b as de,c as me}from"./admin-7zsFFzhs.js";import{u as re}from"./usePaging-CghUEVfD.js";import pe from"./edit-RtJ3KIa8.js";import"./picker-BDO86vcM.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./department-DToZNvdH.js";import"./post-B9rSvSIv.js";import"./useDictOptions-ByJNOzqa.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=ee(),d=ae({account:"",name:"",role_id:2,apply_data_scope:1}),v=te(!1),{pager:r,getLists:p,resetParams:D,resetPage:g}=re({fetchFun:se,params:d}),P=t=>{de({id:t.id,avatar:t.avatar,account:t.account,name:t.name,role_id:t.role_id,jobs_id:t.jobs_id,dept_id:t.dept_id,disable:t.disable,multipoint_login:t.multipoint_login}).finally(()=>{p()})},I=async()=>{var t;v.value=!0,await E(),(t=b.value)==null||t.open("add")},K=async t=>{var a,c;v.value=!0,await E(),(a=b.value)==null||a.open("edit"),(c=b.value)==null||c.setFormData(t)},$=async t=>{await ne.confirm("确定要删除该医助吗?"),await me({id:t}),p()};return S(()=>{p()}),(t,a)=>{const c=q,C=M,u=O,j=z,y=G,B=le,i=Q,L=W,U=X,F=J,N=oe,h=T("perms"),R=H;return s(),A("div",ce,[e(y,{class:"!border-none",shadow:"never"},{default:o(()=>[e(j,{class:"mb-[-16px]",model:n(d),inline:""},{default:o(()=>[e(C,{class:"w-[280px]",label:"医助账号"},{default:o(()=>[e(c,{modelValue:n(d).account,"onUpdate:modelValue":a[0]||(a[0]=l=>n(d).account=l),placeholder:"请输入医助账号",clearable:"",onKeyup:k(n(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(C,{class:"w-[280px]",label:"医助名称"},{default:o(()=>[e(c,{modelValue:n(d).name,"onUpdate:modelValue":a[1]||(a[1]=l=>n(d).name=l),placeholder:"请输入医助名称",clearable:"",onKeyup:k(n(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(C,null,{default:o(()=>[e(u,{type:"primary",onClick:n(g)},{default:o(()=>[...a[4]||(a[4]=[_("查询",-1)])]),_:1},8,["onClick"]),e(u,{onClick:n(D)},{default:o(()=>[...a[5]||(a[5]=[_("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),f((s(),m(y,{class:"mt-4 !border-none",shadow:"never"},{default:o(()=>[f((s(),m(u,{type:"primary",onClick:I},{icon:o(()=>[e(B,{name:"el-icon-Plus"})]),default:o(()=>[a[6]||(a[6]=_(" 新增医助 ",-1))]),_:1})),[[h,["auth.admin/add"]]]),V("div",ue,[e(F,{data:n(r).lists,size:"large"},{default:o(()=>[e(i,{label:"ID",prop:"id","min-width":"60"}),e(i,{label:"头像","min-width":"100"},{default:o(({row:l})=>[e(L,{size:50,src:l.avatar},null,8,["src"])]),_:1}),e(i,{label:"账号",prop:"account","min-width":"120"}),e(i,{label:"姓名",prop:"name","min-width":"100"}),e(i,{label:"手机号",prop:"phone","min-width":"120"}),e(i,{label:"创建时间",prop:"create_time","min-width":"180"}),e(i,{label:"最近登录时间",prop:"login_time","min-width":"180"}),e(i,{label:"最近登录IP",prop:"login_ip","min-width":"120"}),f((s(),m(i,{label:"状态","min-width":"100"},{default:o(({row:l})=>[e(U,{modelValue:l.disable,"onUpdate:modelValue":w=>l.disable=w,"active-value":0,"inactive-value":1,onChange:w=>P(l)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1})),[[h,["auth.admin/edit"]]]),e(i,{label:"操作",width:"120",fixed:"right"},{default:o(({row:l})=>[f((s(),m(u,{type:"primary",link:"",onClick:w=>K(l)},{default:o(()=>[...a[7]||(a[7]=[_(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[h,["auth.admin/edit"]]]),f((s(),m(u,{type:"danger",link:"",onClick:w=>$(l.id)},{default:o(()=>[...a[8]||(a[8]=[_(" 删除 ",-1)])]),_:1},8,["onClick"])),[[h,["auth.admin/delete"]]])]),_:1})]),_:1},8,["data"])]),V("div",_e,[e(N,{modelValue:n(r),"onUpdate:modelValue":a[2]||(a[2]=l=>Y(r)?r.value=l:null),onChange:n(p)},null,8,["modelValue","onChange"])])]),_:1})),[[R,n(r).loading]]),n(v)?(s(),m(pe,{key:0,ref_key:"editRef",ref:b,onSuccess:n(p),onClose:a[3]||(a[3]=l=>v.value=!1)},null,8,["onSuccess"])):Z("",!0)])}}}),Le=ie(be,[["__scopeId","data-v-64b2cdbe"]]);export{Le as default}; +import{o as x,ap as S,bp as T,q as s,r as A,v as e,D as o,bd as z,u as n,bb as M,aA as q,bc as k,K as O,L as _,bj as G,ac as f,bn as H,O as m,s as V,bk as J,bl as Q,a0 as W,I as X,C as Y,P as Z,a8 as ee,aC as ae,M as te,n as E}from"./.pnpm-CyuAWpdG.js";import{_ as oe}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as le,j as ne,_ as ie}from"./index-Bkarz3gO.js";import{a as se,b as de,c as me}from"./admin-DmTP1JeV.js";import{u as re}from"./usePaging-CghUEVfD.js";import pe from"./edit-DN5qnF9I.js";import"./picker-BTh9eW9u.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./department-BeBGhsmA.js";import"./post-DqkuJrmM.js";import"./useDictOptions-dnxxXBSU.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=ee(),d=ae({account:"",name:"",role_id:2,apply_data_scope:1}),v=te(!1),{pager:r,getLists:p,resetParams:D,resetPage:g}=re({fetchFun:se,params:d}),P=t=>{de({id:t.id,avatar:t.avatar,account:t.account,name:t.name,role_id:t.role_id,jobs_id:t.jobs_id,dept_id:t.dept_id,disable:t.disable,multipoint_login:t.multipoint_login}).finally(()=>{p()})},I=async()=>{var t;v.value=!0,await E(),(t=b.value)==null||t.open("add")},K=async t=>{var a,c;v.value=!0,await E(),(a=b.value)==null||a.open("edit"),(c=b.value)==null||c.setFormData(t)},$=async t=>{await ne.confirm("确定要删除该医助吗?"),await me({id:t}),p()};return S(()=>{p()}),(t,a)=>{const c=q,C=M,u=O,j=z,y=G,B=le,i=Q,L=W,U=X,F=J,N=oe,h=T("perms"),R=H;return s(),A("div",ce,[e(y,{class:"!border-none",shadow:"never"},{default:o(()=>[e(j,{class:"mb-[-16px]",model:n(d),inline:""},{default:o(()=>[e(C,{class:"w-[280px]",label:"医助账号"},{default:o(()=>[e(c,{modelValue:n(d).account,"onUpdate:modelValue":a[0]||(a[0]=l=>n(d).account=l),placeholder:"请输入医助账号",clearable:"",onKeyup:k(n(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(C,{class:"w-[280px]",label:"医助名称"},{default:o(()=>[e(c,{modelValue:n(d).name,"onUpdate:modelValue":a[1]||(a[1]=l=>n(d).name=l),placeholder:"请输入医助名称",clearable:"",onKeyup:k(n(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(C,null,{default:o(()=>[e(u,{type:"primary",onClick:n(g)},{default:o(()=>[...a[4]||(a[4]=[_("查询",-1)])]),_:1},8,["onClick"]),e(u,{onClick:n(D)},{default:o(()=>[...a[5]||(a[5]=[_("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),f((s(),m(y,{class:"mt-4 !border-none",shadow:"never"},{default:o(()=>[f((s(),m(u,{type:"primary",onClick:I},{icon:o(()=>[e(B,{name:"el-icon-Plus"})]),default:o(()=>[a[6]||(a[6]=_(" 新增医助 ",-1))]),_:1})),[[h,["auth.admin/add"]]]),V("div",ue,[e(F,{data:n(r).lists,size:"large"},{default:o(()=>[e(i,{label:"ID",prop:"id","min-width":"60"}),e(i,{label:"头像","min-width":"100"},{default:o(({row:l})=>[e(L,{size:50,src:l.avatar},null,8,["src"])]),_:1}),e(i,{label:"账号",prop:"account","min-width":"120"}),e(i,{label:"姓名",prop:"name","min-width":"100"}),e(i,{label:"手机号",prop:"phone","min-width":"120"}),e(i,{label:"创建时间",prop:"create_time","min-width":"180"}),e(i,{label:"最近登录时间",prop:"login_time","min-width":"180"}),e(i,{label:"最近登录IP",prop:"login_ip","min-width":"120"}),f((s(),m(i,{label:"状态","min-width":"100"},{default:o(({row:l})=>[e(U,{modelValue:l.disable,"onUpdate:modelValue":w=>l.disable=w,"active-value":0,"inactive-value":1,onChange:w=>P(l)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1})),[[h,["auth.admin/edit"]]]),e(i,{label:"操作",width:"120",fixed:"right"},{default:o(({row:l})=>[f((s(),m(u,{type:"primary",link:"",onClick:w=>K(l)},{default:o(()=>[...a[7]||(a[7]=[_(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[h,["auth.admin/edit"]]]),f((s(),m(u,{type:"danger",link:"",onClick:w=>$(l.id)},{default:o(()=>[...a[8]||(a[8]=[_(" 删除 ",-1)])]),_:1},8,["onClick"])),[[h,["auth.admin/delete"]]])]),_:1})]),_:1},8,["data"])]),V("div",_e,[e(N,{modelValue:n(r),"onUpdate:modelValue":a[2]||(a[2]=l=>Y(r)?r.value=l:null),onChange:n(p)},null,8,["modelValue","onChange"])])]),_:1})),[[R,n(r).loading]]),n(v)?(s(),m(pe,{key:0,ref_key:"editRef",ref:b,onSuccess:n(p),onClose:a[3]||(a[3]=l=>v.value=!1)},null,8,["onSuccess"])):Z("",!0)])}}}),Le=ie(be,[["__scopeId","data-v-64b2cdbe"]]);export{Le as default}; diff --git a/server/public/admin/assets/index-D-W2i1y0.js b/server/public/admin/assets/index-DLVY0nue.js similarity index 87% rename from server/public/admin/assets/index-D-W2i1y0.js rename to server/public/admin/assets/index-DLVY0nue.js index f6b281847..9c6c66b81 100644 --- a/server/public/admin/assets/index-D-W2i1y0.js +++ b/server/public/admin/assets/index-DLVY0nue.js @@ -1 +1 @@ -import{o as K,ap as G,bp as H,q as s,r as E,v as e,D as o,bd as J,u as t,bb as Q,aA as W,bc as x,bh as X,bi as Y,F as Z,G as ee,O as m,K as ae,L as u,bj as le,ac as b,bn as te,s as D,bk as oe,bl as ne,a0 as ie,I as se,P as y,C as de,a8 as me,aC as re,M as pe,n as $}from"./.pnpm-CyuAWpdG.js";import{_ as ue}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as ce,j as _e}from"./index-Dxvz9lb1.js";import{_ as fe}from"./index.vue_vue_type_script_setup_true_lang-98A4_fZW.js";import{a as F,b as be,c as ve}from"./admin-7zsFFzhs.js";import{r as we}from"./role-B1hWAn9n.js";import{u as he}from"./useDictOptions-ByJNOzqa.js";import{u as ge}from"./usePaging-CghUEVfD.js";import{_ as ke}from"./edit.vue_vue_type_script_setup_true_lang-DTrkMGri.js";import"./index-BnfLT5cB.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./department-DToZNvdH.js";import"./post-B9rSvSIv.js";const ye={class:"admin"},Ce={class:"mt-4"},Ve={class:"flex mt-4 justify-end"},Ee=K({name:"admin"}),qe=K({...Ee,setup(xe){const v=me(),d=re({account:"",name:"",role_id:""}),w=pe(!1),{pager:r,getLists:c,resetParams:P,resetPage:k}=ge({fetchFun:F,params:d}),U=n=>{be({id:n.id,avatar:n.avatar,account:n.account,name:n.name,role_id:n.role_id,job_id:n.job_id,dept_id:n.dept_id,disable:n.disable,multipoint_login:n.multipoint_login}).finally(()=>{c()})},j=async()=>{var n;w.value=!0,await $(),(n=v.value)==null||n.open("add")},z=async n=>{var a,_;w.value=!0,await $(),(a=v.value)==null||a.open("edit"),(_=v.value)==null||_.setFormData(n)},B=async n=>{await _e.confirm("确定要删除?"),await ve({id:n}),c()},{optionsData:I}=he({role:{api:we}});return G(()=>{c()}),(n,a)=>{const _=W,h=Q,C=Y,L=X,f=ae,S=fe,A=J,V=le,N=ce,i=ne,R=ie,T=se,O=oe,M=ue,g=H("perms"),q=te;return s(),E("div",ye,[e(V,{class:"!border-none",shadow:"never"},{default:o(()=>[e(A,{class:"mb-[-16px]",model:t(d),inline:""},{default:o(()=>[e(h,{class:"w-[280px]",label:"管理员账号"},{default:o(()=>[e(_,{modelValue:t(d).account,"onUpdate:modelValue":a[0]||(a[0]=l=>t(d).account=l),placeholder:"请输入管理员账号",clearable:"",onKeyup:x(t(k),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(h,{class:"w-[280px]",label:"管理员名称"},{default:o(()=>[e(_,{modelValue:t(d).name,"onUpdate:modelValue":a[1]||(a[1]=l=>t(d).name=l),placeholder:"请输入管理员名称",clearable:"",onKeyup:x(t(k),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(h,{class:"w-[280px]",label:"管理员角色"},{default:o(()=>[e(L,{modelValue:t(d).role_id,"onUpdate:modelValue":a[2]||(a[2]=l=>t(d).role_id=l)},{default:o(()=>[e(C,{label:"全部",value:""}),(s(!0),E(Z,null,ee(t(I).role,(l,p)=>(s(),m(C,{key:p,label:l.name,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(h,null,{default:o(()=>[e(f,{type:"primary",onClick:t(k)},{default:o(()=>[...a[5]||(a[5]=[u("查询",-1)])]),_:1},8,["onClick"]),e(f,{onClick:t(P)},{default:o(()=>[...a[6]||(a[6]=[u("重置",-1)])]),_:1},8,["onClick"]),e(S,{class:"ml-2.5","fetch-fun":t(F),params:t(d),"page-size":t(r).size},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1},8,["model"])]),_:1}),b((s(),m(V,{class:"mt-4 !border-none",shadow:"never"},{default:o(()=>[b((s(),m(f,{type:"primary",onClick:j},{icon:o(()=>[e(N,{name:"el-icon-Plus"})]),default:o(()=>[a[7]||(a[7]=u(" 新增 ",-1))]),_:1})),[[g,["auth.admin/add"]]]),D("div",Ce,[e(O,{data:t(r).lists,size:"large"},{default:o(()=>[e(i,{label:"ID",prop:"id","min-width":"60"}),a[10]||(a[10]=u("> ",-1)),e(i,{label:"头像","min-width":"100"},{default:o(({row:l})=>[e(R,{size:50,src:l.avatar},null,8,["src"])]),_:1}),e(i,{label:"账号",prop:"account","min-width":"100"}),e(i,{label:"名称",prop:"name","min-width":"100"}),e(i,{label:"角色",prop:"role_name","min-width":"100","show-tooltip-when-overflow":""}),e(i,{label:"部门",prop:"dept_name","min-width":"100","show-tooltip-when-overflow":""}),e(i,{label:"创建时间",prop:"create_time","min-width":"180"}),e(i,{label:"最近登录时间",prop:"login_time","min-width":"180"}),e(i,{label:"最近登录IP",prop:"login_ip","min-width":"120"}),b((s(),m(i,{label:"状态","min-width":"100"},{default:o(({row:l})=>[l.root!=1?(s(),m(T,{key:0,modelValue:l.disable,"onUpdate:modelValue":p=>l.disable=p,"active-value":0,"inactive-value":1,onChange:p=>U(l)},null,8,["modelValue","onUpdate:modelValue","onChange"])):y("",!0)]),_:1})),[[g,["auth.admin/edit"]]]),e(i,{label:"操作",width:"120",fixed:"right"},{default:o(({row:l})=>[b((s(),m(f,{type:"primary",link:"",onClick:p=>z(l)},{default:o(()=>[...a[8]||(a[8]=[u(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[g,["auth.admin/edit"]]]),l.root!=1?b((s(),m(f,{key:0,type:"danger",link:"",onClick:p=>B(l.id)},{default:o(()=>[...a[9]||(a[9]=[u(" 删除 ",-1)])]),_:1},8,["onClick"])),[[g,["auth.admin/delete"]]]):y("",!0)]),_:1})]),_:1},8,["data"])]),D("div",Ve,[e(M,{modelValue:t(r),"onUpdate:modelValue":a[3]||(a[3]=l=>de(r)?r.value=l:null),onChange:t(c)},null,8,["modelValue","onChange"])])]),_:1})),[[q,t(r).loading]]),t(w)?(s(),m(ke,{key:0,ref_key:"editRef",ref:v,onSuccess:t(c),onClose:a[4]||(a[4]=l=>w.value=!1)},null,8,["onSuccess"])):y("",!0)])}}});export{qe as default}; +import{o as K,ap as G,bp as H,q as s,r as E,v as e,D as o,bd as J,u as t,bb as Q,aA as W,bc as x,bh as X,bi as Y,F as Z,G as ee,O as m,K as ae,L as u,bj as le,ac as b,bn as te,s as D,bk as oe,bl as ne,a0 as ie,I as se,P as y,C as de,a8 as me,aC as re,M as pe,n as $}from"./.pnpm-CyuAWpdG.js";import{_ as ue}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as ce,j as _e}from"./index-Bkarz3gO.js";import{_ as fe}from"./index.vue_vue_type_script_setup_true_lang-CQzUr1BT.js";import{a as F,b as be,c as ve}from"./admin-DmTP1JeV.js";import{r as we}from"./role-fMbnnhKr.js";import{u as he}from"./useDictOptions-dnxxXBSU.js";import{u as ge}from"./usePaging-CghUEVfD.js";import{_ as ke}from"./edit.vue_vue_type_script_setup_true_lang-DLPKXcae.js";import"./index-CS5Wg0xx.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./department-BeBGhsmA.js";import"./post-DqkuJrmM.js";const ye={class:"admin"},Ce={class:"mt-4"},Ve={class:"flex mt-4 justify-end"},Ee=K({name:"admin"}),qe=K({...Ee,setup(xe){const v=me(),d=re({account:"",name:"",role_id:""}),w=pe(!1),{pager:r,getLists:c,resetParams:P,resetPage:k}=ge({fetchFun:F,params:d}),U=n=>{be({id:n.id,avatar:n.avatar,account:n.account,name:n.name,role_id:n.role_id,job_id:n.job_id,dept_id:n.dept_id,disable:n.disable,multipoint_login:n.multipoint_login}).finally(()=>{c()})},j=async()=>{var n;w.value=!0,await $(),(n=v.value)==null||n.open("add")},z=async n=>{var a,_;w.value=!0,await $(),(a=v.value)==null||a.open("edit"),(_=v.value)==null||_.setFormData(n)},B=async n=>{await _e.confirm("确定要删除?"),await ve({id:n}),c()},{optionsData:I}=he({role:{api:we}});return G(()=>{c()}),(n,a)=>{const _=W,h=Q,C=Y,L=X,f=ae,S=fe,A=J,V=le,N=ce,i=ne,R=ie,T=se,O=oe,M=ue,g=H("perms"),q=te;return s(),E("div",ye,[e(V,{class:"!border-none",shadow:"never"},{default:o(()=>[e(A,{class:"mb-[-16px]",model:t(d),inline:""},{default:o(()=>[e(h,{class:"w-[280px]",label:"管理员账号"},{default:o(()=>[e(_,{modelValue:t(d).account,"onUpdate:modelValue":a[0]||(a[0]=l=>t(d).account=l),placeholder:"请输入管理员账号",clearable:"",onKeyup:x(t(k),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(h,{class:"w-[280px]",label:"管理员名称"},{default:o(()=>[e(_,{modelValue:t(d).name,"onUpdate:modelValue":a[1]||(a[1]=l=>t(d).name=l),placeholder:"请输入管理员名称",clearable:"",onKeyup:x(t(k),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(h,{class:"w-[280px]",label:"管理员角色"},{default:o(()=>[e(L,{modelValue:t(d).role_id,"onUpdate:modelValue":a[2]||(a[2]=l=>t(d).role_id=l)},{default:o(()=>[e(C,{label:"全部",value:""}),(s(!0),E(Z,null,ee(t(I).role,(l,p)=>(s(),m(C,{key:p,label:l.name,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(h,null,{default:o(()=>[e(f,{type:"primary",onClick:t(k)},{default:o(()=>[...a[5]||(a[5]=[u("查询",-1)])]),_:1},8,["onClick"]),e(f,{onClick:t(P)},{default:o(()=>[...a[6]||(a[6]=[u("重置",-1)])]),_:1},8,["onClick"]),e(S,{class:"ml-2.5","fetch-fun":t(F),params:t(d),"page-size":t(r).size},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1},8,["model"])]),_:1}),b((s(),m(V,{class:"mt-4 !border-none",shadow:"never"},{default:o(()=>[b((s(),m(f,{type:"primary",onClick:j},{icon:o(()=>[e(N,{name:"el-icon-Plus"})]),default:o(()=>[a[7]||(a[7]=u(" 新增 ",-1))]),_:1})),[[g,["auth.admin/add"]]]),D("div",Ce,[e(O,{data:t(r).lists,size:"large"},{default:o(()=>[e(i,{label:"ID",prop:"id","min-width":"60"}),a[10]||(a[10]=u("> ",-1)),e(i,{label:"头像","min-width":"100"},{default:o(({row:l})=>[e(R,{size:50,src:l.avatar},null,8,["src"])]),_:1}),e(i,{label:"账号",prop:"account","min-width":"100"}),e(i,{label:"名称",prop:"name","min-width":"100"}),e(i,{label:"角色",prop:"role_name","min-width":"100","show-tooltip-when-overflow":""}),e(i,{label:"部门",prop:"dept_name","min-width":"100","show-tooltip-when-overflow":""}),e(i,{label:"创建时间",prop:"create_time","min-width":"180"}),e(i,{label:"最近登录时间",prop:"login_time","min-width":"180"}),e(i,{label:"最近登录IP",prop:"login_ip","min-width":"120"}),b((s(),m(i,{label:"状态","min-width":"100"},{default:o(({row:l})=>[l.root!=1?(s(),m(T,{key:0,modelValue:l.disable,"onUpdate:modelValue":p=>l.disable=p,"active-value":0,"inactive-value":1,onChange:p=>U(l)},null,8,["modelValue","onUpdate:modelValue","onChange"])):y("",!0)]),_:1})),[[g,["auth.admin/edit"]]]),e(i,{label:"操作",width:"120",fixed:"right"},{default:o(({row:l})=>[b((s(),m(f,{type:"primary",link:"",onClick:p=>z(l)},{default:o(()=>[...a[8]||(a[8]=[u(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[g,["auth.admin/edit"]]]),l.root!=1?b((s(),m(f,{key:0,type:"danger",link:"",onClick:p=>B(l.id)},{default:o(()=>[...a[9]||(a[9]=[u(" 删除 ",-1)])]),_:1},8,["onClick"])),[[g,["auth.admin/delete"]]]):y("",!0)]),_:1})]),_:1},8,["data"])]),D("div",Ve,[e(M,{modelValue:t(r),"onUpdate:modelValue":a[3]||(a[3]=l=>de(r)?r.value=l:null),onChange:t(c)},null,8,["modelValue","onChange"])])]),_:1})),[[q,t(r).loading]]),t(w)?(s(),m(ke,{key:0,ref_key:"editRef",ref:v,onSuccess:t(c),onClose:a[4]||(a[4]=l=>w.value=!1)},null,8,["onSuccess"])):y("",!0)])}}});export{qe as default}; diff --git a/server/public/admin/assets/index-DXupcHo0.js b/server/public/admin/assets/index-DReh5Eev.js similarity index 98% rename from server/public/admin/assets/index-DXupcHo0.js rename to server/public/admin/assets/index-DReh5Eev.js index a17697d22..cf5af8ffa 100644 --- a/server/public/admin/assets/index-DXupcHo0.js +++ b/server/public/admin/assets/index-DReh5Eev.js @@ -1 +1 @@ -import{o as Z,W as Ae,ap as Re,bp as Ie,q as o,r as u,v as l,D as a,bd as Ue,bb as Pe,bh as Be,F as k,G as C,O as g,bi as Fe,bL as Me,u as p,J as je,aA as Ke,bc as Ye,K as qe,L as b,s as d,bj as Je,ac as A,bk as We,bl as Ge,T as n,P as v,a1 as He,w as Qe,ci as W,bm as Xe,ae as $,bn as Ze,C as et,c4 as tt,c5 as st,bC as lt,B as at,M as x,aC as nt,p as ot}from"./.pnpm-CyuAWpdG.js";import{_ as it}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as rt}from"./index.vue_vue_type_script_setup_true_lang-98A4_fZW.js";import{N as ut,O as G,Q as dt,S as ct,T as H,U as Q,V as X,W as _t,X as mt,Y as pt,Z as ft,_ as vt}from"./index-Dxvz9lb1.js";import{C as bt}from"./stats-Bao68QGi.js";import{o as yt}from"./tcm-QAkeqQ9Q.js";import{u as ht}from"./usePaging-CghUEVfD.js";import"./index-BnfLT5cB.js";const gt={class:"revisit-due-page"},kt={class:"cell-main"},xt={class:"cell-sub"},Nt={class:"cell-main"},Tt={key:0,class:"cell-sub"},Ct={key:1,class:"text-missing"},Et={class:"cell-main"},Vt={key:0,class:"cell-sub"},wt={key:0,class:"cell-sub"},zt={key:0,class:"cell-sub"},St={key:1,class:"cell-sub"},$t={key:2},Lt={class:"flex justify-end mt-4"},Dt={class:"log-drawer-body"},Ot={key:0,class:"log-summary"},At={class:"log-summary-row"},Rt={key:0},It={class:"log-summary-row"},Ut={class:"cell-sub"},Pt={key:0,class:"log-summary-row cell-sub"},Bt={key:0},Ft={key:1},Mt={key:2},jt={class:"log-event"},Kt={class:"log-event-title"},Yt={class:"log-event-operator"},qt={class:"log-event-meta"},Jt={key:0,class:"log-event-payload"},Wt=Z({name:"statsRevisitDue"}),Gt=Z({...Wt,setup(Ht){const ee=Ae(),te=[...ut,{label:"人工关闭",value:"closed"}],R=x([]),I=x([]),se={value:"id",label:"name",children:"children"},m=nt({assistant_id:"",dept_id:"",state:"",days_bucket:"",min_snooze:"",keyword:""}),L=x(void 0),{pager:N,getLists:U,resetPage:le}=ht({fetchFun:G,params:m}),h=()=>le(),ae=s=>{m.min_snooze=s==null?"":Number(s),h()},ne=()=>{m.assistant_id="",m.dept_id="",m.state="",m.days_bucket="",m.min_snooze="",m.keyword="",L.value=void 0,h()},E=s=>_t(s),oe=({row:s})=>mt(E(s)),P=s=>s.assistant_name||(Number(s.assistant_id)>0?`#${s.assistant_id}`:"—"),B=s=>{const e=Number(s.current_slot??0);return e>0?`第 ${e} 诊`:"未成交"},F=s=>pt(E(s))||s.state_text||"—",ie=s=>{const e=Number(s.snooze_count??0),i=Number(s.contact_count??0),_=Number(s.missed_count??0);return`延迟 ${e} 次 · 已联系 ${i} 次 · 过号 ${_} 次`},re=s=>!!(s.first_shown_at_text||s.last_snoozed_at_text||s.computed_at_text),D=s=>{if(s==null||s==="")return null;const e=Number(s);return Number.isFinite(e)?e:null},M=s=>{const e=D(s.overdue_days),i=D(s.days_left);return(s.state==="overdue"||s.state==="missed")&&e!==null&&e>=0?{text:e===0?"今日到期":`${e} 天`,cls:Number(s.severe)===1?"is-severe":"is-overdue"}:e!==null&&e>0?{text:`${e} 天`,cls:"is-muted"}:i!==null&&i>=0?{text:`剩 ${i} 天`,cls:"is-muted"}:{text:"—",cls:""}},ue=s=>{const e=Number(s.escalation_level??0);return e>=3?"is-level-3":e===2?"is-level-2":e===1?"is-level-1":""},de=s=>{const e=String(s??"").trim();return e==="lost"?"患者流失":e==="other"?"其它":e||"人工关闭"},O=x(!1),V=x(!1),c=x(null),w=x([]),ce=ot(()=>c.value?`${c.value.patient_name||"患者"} · 复诊到期流水`:"复诊到期流水"),_e={1:"延迟",2:"已联系",3:"人工关闭",4:"自动关闭 · 已挂号",5:"自动关闭 · 已面诊",6:"周期重置(新订单)",7:"重新打开(挂号取消 / 过号)",8:"企微推送",9:"医助变更",10:"形态升级",11:"首次弹出"},me=s=>_e[Number(s)]??`事件 ${s}`,pe=s=>[1,2,3].includes(Number(s)),fe=s=>{switch(Number(s)){case 1:return"warning";case 2:case 6:return"primary";case 4:case 5:return"success";case 7:case 10:return"danger";default:return"info"}},ve=s=>s.operator_name?s.operator_name:Number(s.operator_id)>0?`#${s.operator_id}`:"系统",be=s=>{const e=D(s);return e===null?"":e>0?`超期 ${e} 天`:e===0?"到期当天":`未到期(剩 ${-e} 天)`},ye={next_remind_at:"下次提醒",next_remind_at_text:"下次提醒",promised_date:"承诺日",appointment_id:"挂号单",appointment_date:"预约日",order_id:"订单",source_order_id:"周期订单",remark:"备注",reason:"原因",from_assistant:"原医助",from_assistant_id:"原医助",to_assistant:"新医助",to_assistant_id:"新医助",interval:"间隔(秒)",level:"等级",channel:"渠道",message:"说明"},he=(s,e)=>{if(e==null||e==="")return"";if(typeof e=="object")return JSON.stringify(e);if(/_at$/.test(s)&&typeof e=="number"&&e>1e9){const i=new Date(e*1e3),_=y=>String(y).padStart(2,"0");return`${`${i.getFullYear()}-${_(i.getMonth()+1)}-${_(i.getDate())}`} ${_(i.getHours())}:${_(i.getMinutes())}`}return String(e)},j=s=>{const e=s.payload_arr;if(!e||typeof e!="object"||Array.isArray(e))return[];const i=[];for(const[_,r]of Object.entries(e)){if(`${_}_text`in e)continue;const y=he(_,r);y!==""&&i.push({key:_,label:ye[_]??_,value:y})}return i},ge=async s=>{c.value=s,O.value=!0,V.value=!0,w.value=[];try{const e=await ft({due_id:Number(s.id)}),i=Array.isArray(e)?e:(e==null?void 0:e.list)??(e==null?void 0:e.lists)??[];w.value=Array.isArray(i)?i:[]}finally{V.value=!1}},ke=s=>{const e=Number(s.diagnosis_id??0);e<=0||ee.push({path:"/tcm/diagnosis",query:{id:String(e)}})},xe=s=>{const e=new Map;for(const r of s)e.set(Number(r.id),{id:Number(r.id),pid:Number(r.pid),name:r.name,children:[]});const i=[];for(const r of s){const y=e.get(Number(r.id));Number(r.pid)>0&&e.has(Number(r.pid))?e.get(Number(r.pid)).children.push(y):i.push(y)}const _=r=>{var y;(y=r.children)!=null&&y.length?r.children.forEach(_):delete r.children};return i.forEach(_),i},Ne=async()=>{var i;const[s,e]=await Promise.allSettled([yt(),bt()]);s.status==="fulfilled"&&(R.value=Array.isArray(s.value)?s.value:[]),e.status==="fulfilled"&&(I.value=xe(((i=e.value)==null?void 0:i.rows)??[]))};return Re(()=>{Ne(),U()}),(s,e)=>{const i=Fe,_=Be,r=Pe,y=Me,Te=je,Ce=Ke,z=qe,Ee=rt,Ve=Ue,K=Je,f=Ge,Y=Qe,q=He,S=Xe,we=We,ze=it,Se=st,$e=tt,Le=lt,De=at,Oe=Ie("perms"),J=Ze;return o(),u("div",gt,[l(K,{class:"!border-none",shadow:"never"},{default:a(()=>[l(Ve,{inline:!0,class:"due-filter-form"},{default:a(()=>[l(r,{label:"医助"},{default:a(()=>[l(_,{modelValue:m.assistant_id,"onUpdate:modelValue":e[0]||(e[0]=t=>m.assistant_id=t),clearable:"",filterable:"",placeholder:"全部",class:"w-[160px]",onChange:h},{default:a(()=>[(o(!0),u(k,null,C(R.value,t=>(o(),g(i,{key:t.id,label:t.name,value:Number(t.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"部门"},{default:a(()=>[l(y,{modelValue:m.dept_id,"onUpdate:modelValue":e[1]||(e[1]=t=>m.dept_id=t),data:I.value,placeholder:"全部(二中心)",clearable:"",filterable:"","check-strictly":"","node-key":"id","default-expand-all":!0,props:se,class:"w-[200px]",onChange:h},null,8,["modelValue","data"])]),_:1}),l(r,{label:"状态"},{default:a(()=>[l(_,{modelValue:m.state,"onUpdate:modelValue":e[2]||(e[2]=t=>m.state=t),clearable:"",placeholder:"全部",class:"w-[170px]",onChange:h},{default:a(()=>[(o(),u(k,null,C(te,t=>l(i,{key:t.value,label:t.label,value:t.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"开药天数"},{default:a(()=>[l(_,{modelValue:m.days_bucket,"onUpdate:modelValue":e[3]||(e[3]=t=>m.days_bucket=t),clearable:"",placeholder:"全部",class:"w-[120px]",onChange:h},{default:a(()=>[(o(!0),u(k,null,C(p(dt),t=>(o(),g(i,{key:t.value,label:t.label,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"延迟次数 ≥"},{default:a(()=>[l(Te,{modelValue:L.value,"onUpdate:modelValue":e[4]||(e[4]=t=>L.value=t),min:0,max:999,step:1,"step-strictly":"","controls-position":"right",placeholder:"不限",class:"!w-[120px]",onChange:ae},null,8,["modelValue"])]),_:1}),l(r,{label:"患者"},{default:a(()=>[l(Ce,{modelValue:m.keyword,"onUpdate:modelValue":e[5]||(e[5]=t=>m.keyword=t),placeholder:"患者姓名",clearable:"",class:"w-[160px]",onKeyup:Ye(h,["enter"]),onClear:h},null,8,["modelValue"])]),_:1}),l(r,null,{default:a(()=>[l(z,{type:"primary",onClick:h},{default:a(()=>[...e[8]||(e[8]=[b("查询",-1)])]),_:1}),l(z,{onClick:ne},{default:a(()=>[...e[9]||(e[9]=[b("重置",-1)])]),_:1}),l(Ee,{class:"ml-2.5","fetch-fun":p(G),params:m,"page-size":p(N).size,"export-hint":"导出范围与当前筛选一致(医助 / 部门 / 状态 / 开药天数 / 延迟次数 / 患者)"},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1}),e[10]||(e[10]=d("div",{class:"due-hint"}," 每位患者(诊单)一行,取最新有效业务订单为本轮周期:预计复诊日 = 用药起算日(签收 → 发货 → 下单)+ 开药天数; 到期仍无有效挂号 / 过号未面诊的行标红,持有医助登录后台会收到右下角弹窗。 「延迟次数」为医助在弹窗上点「延迟」的累计次数(越多说明越未跟进),「已联系」为填写患者承诺复诊日的次数, 「人工关闭」由医助填原因关闭、在此标记供主管复核。数据范围按角色数据权限收窄;状态按今天实时推导。 ",-1))]),_:1}),l(K,{class:"!border-none mt-3",shadow:"never"},{default:a(()=>[A((o(),g(we,{data:p(N).lists,size:"default",stripe:"","row-key":"id","row-class-name":oe},{default:a(()=>[l(f,{label:"患者","min-width":"120",fixed:"left"},{default:a(({row:t})=>[d("div",kt,n(t.patient_name||"—"),1),d("div",xt,"诊单 #"+n(t.diagnosis_id),1)]),_:1}),l(f,{label:"医助","min-width":"100"},{default:a(({row:t})=>[b(n(P(t)),1)]),_:1}),l(f,{label:"部门","min-width":"110","show-overflow-tooltip":""},{default:a(({row:t})=>[b(n(t.dept_name||"—"),1)]),_:1}),l(f,{label:"诊次",width:"110",align:"center"},{header:a(()=>[e[11]||(e[11]=d("span",null,"诊次",-1)),l(q,{placement:"top",effect:"dark",content:"患者当前已完成诊次 = 有效业务订单数 + 诊单诊次偏移,与复诊接诊率同口径;下一行为待复诊诊次"},{default:a(()=>[l(Y,{class:"col-hint"},{default:a(()=>[l(p(W))]),_:1})]),_:1})]),default:a(({row:t})=>[d("div",Nt,n(B(t)),1),Number(t.next_slot)>0?(o(),u("div",Tt," 待复诊第 "+n(t.next_slot)+" 诊 ",1)):v("",!0)]),_:1}),l(f,{label:"开药天数",width:"110",align:"center"},{default:a(({row:t})=>[Number(t.medication_days)>0?(o(),u(k,{key:0},[d("span",null,n(t.medication_days)+" 天",1),Number(t.rule_days)>0?(o(),g(S,{key:0,size:"small",type:"info",effect:"plain",class:"ml-1"},{default:a(()=>[b(n(t.rule_days)+" 档 ",1)]),_:2},1024)):v("",!0)],64)):(o(),u("span",Ct,"缺开药天数"))]),_:1}),l(f,{label:"预计复诊",width:"110"},{default:a(({row:t})=>[d("div",Et,n(t.due_date||"—"),1),t.anchor_date?(o(),u("div",Vt," 起算 "+n(p(ct)(t.anchor_date)),1)):v("",!0)]),_:1}),l(f,{label:"超期天数",width:"100",align:"center"},{default:a(({row:t})=>[d("span",{class:$(["overdue-cell",M(t).cls])},n(M(t).text),3)]),_:1}),l(f,{label:"状态","min-width":"150"},{default:a(({row:t})=>[l(S,{type:p(X)(t.state),effect:p(Q)(t.state),size:"small",class:$(p(H)(E(t)))},{default:a(()=>[b(n(F(t)),1)]),_:2},1032,["type","effect","class"]),Number(t.closed_state)===4?(o(),g(S,{key:0,size:"small",type:"info",effect:"plain",class:"ml-1"},{default:a(()=>[...e[12]||(e[12]=[b(" 人工关闭 ",-1)])]),_:1})):v("",!0)]),_:1}),l(f,{label:"延迟次数",width:"100",align:"center"},{header:a(()=>[e[13]||(e[13]=d("span",null,"延迟次数",-1)),l(q,{placement:"top",effect:"dark",content:"医助在到期弹窗上点「延迟」的累计次数;1~2 次 L1、3~4 次 L2、≥5 次 L3(居中强制模态)。换医助后清零"},{default:a(()=>[l(Y,{class:"col-hint"},{default:a(()=>[l(p(W))]),_:1})]),_:1})]),default:a(({row:t})=>[d("span",{class:$(["snooze-cell",ue(t)])},n(Number(t.snooze_count??0)),3),Number(t.escalation_level)>0?(o(),u("div",wt," 等级 L"+n(t.escalation_level),1)):v("",!0)]),_:1}),l(f,{label:"已联系",width:"80",align:"center"},{default:a(({row:t})=>[b(n(Number(t.contact_count??0)),1)]),_:1}),l(f,{label:"承诺日",width:"100"},{default:a(({row:t})=>[b(n(t.promised_date||"—"),1)]),_:1}),l(f,{label:"过号",width:"70",align:"center"},{default:a(({row:t})=>[b(n(Number(t.missed_count??0)),1)]),_:1}),l(f,{label:"关闭原因","min-width":"170","show-overflow-tooltip":""},{default:a(({row:t})=>[Number(t.closed_state)===4?(o(),u(k,{key:0},[d("span",null,n(de(t.handle_reason)),1),t.handle_remark?(o(),u("span",zt," :"+n(t.handle_remark),1)):v("",!0)],64)):Number(t.closed_state)>0?(o(),u("span",St,n(t.closed_state_text||"—"),1)):(o(),u("span",$t,"—"))]),_:1}),l(f,{label:"操作",width:"130",fixed:"right",align:"center"},{default:a(({row:t})=>[A((o(),g(z,{link:"",type:"primary",onClick:T=>ge(t)},{default:a(()=>[...e[14]||(e[14]=[b(" 流水 ",-1)])]),_:1},8,["onClick"])),[[Oe,["tcm.revisitDue/logs"]]]),l(z,{link:"",type:"primary",onClick:T=>ke(t)},{default:a(()=>[...e[15]||(e[15]=[b("去诊单",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[J,p(N).loading]]),d("div",Lt,[l(ze,{modelValue:p(N),"onUpdate:modelValue":e[6]||(e[6]=t=>et(N)?N.value=t:null),onChange:p(U)},null,8,["modelValue","onChange"])])]),_:1}),l(De,{modelValue:O.value,"onUpdate:modelValue":e[7]||(e[7]=t=>O.value=t),title:ce.value,direction:"rtl",size:"540px","destroy-on-close":""},{default:a(()=>[A((o(),u("div",Dt,[c.value?(o(),u("div",Ot,[d("div",At,[d("span",null,"医助:"+n(P(c.value)),1),d("span",null,n(B(c.value)),1),c.value.due_date?(o(),u("span",Rt,"预计复诊 "+n(c.value.due_date),1)):v("",!0)]),d("div",It,[l(S,{type:p(X)(c.value.state),effect:p(Q)(c.value.state),size:"small",class:$(p(H)(E(c.value)))},{default:a(()=>[b(n(F(c.value)),1)]),_:1},8,["type","effect","class"]),d("span",Ut,n(ie(c.value)),1)]),re(c.value)?(o(),u("div",Pt,[c.value.first_shown_at_text?(o(),u("span",Bt," 首次弹出 "+n(c.value.first_shown_at_text),1)):v("",!0),c.value.last_snoozed_at_text?(o(),u("span",Ft," 最近延迟 "+n(c.value.last_snoozed_at_text),1)):v("",!0),c.value.computed_at_text?(o(),u("span",Mt," 重算于 "+n(c.value.computed_at_text),1)):v("",!0)])):v("",!0)])):v("",!0),w.value.length?(o(),g($e,{key:1,class:"mt-3"},{default:a(()=>[(o(!0),u(k,null,C(w.value,t=>(o(),g(Se,{key:t.id,timestamp:t.create_time_text,placement:"top",type:fe(t.event),hollow:!pe(t.event)},{default:a(()=>[d("div",jt,[d("span",Kt,n(t.event_text||me(t.event)),1),d("span",Yt,n(ve(t)),1)]),d("div",qt,[d("span",null,"延迟 "+n(Number(t.snooze_count_after??0))+" 次",1),d("span",null,"等级 L"+n(Number(t.level_after??0)),1),d("span",null,n(be(t.overdue_days)),1)]),j(t).length?(o(),u("div",Jt,[(o(!0),u(k,null,C(j(t),T=>(o(),u("span",{key:T.key,class:"log-payload-chip"},n(T.label)+":"+n(T.value),1))),128))])):v("",!0)]),_:2},1032,["timestamp","type","hollow"]))),128))]),_:1})):V.value?v("",!0):(o(),g(Le,{key:2,description:"暂无流水","image-size":80}))])),[[J,V.value]])]),_:1},8,["modelValue","title"])])}}}),ns=vt(Gt,[["__scopeId","data-v-8639b29d"]]);export{ns as default}; +import{o as Z,W as Ae,ap as Re,bp as Ie,q as o,r as u,v as l,D as a,bd as Ue,bb as Pe,bh as Be,F as k,G as C,O as g,bi as Fe,bL as Me,u as p,J as je,aA as Ke,bc as Ye,K as qe,L as b,s as d,bj as Je,ac as A,bk as We,bl as Ge,T as n,P as v,a1 as He,w as Qe,ci as W,bm as Xe,ae as $,bn as Ze,C as et,c4 as tt,c5 as st,bC as lt,B as at,M as x,aC as nt,p as ot}from"./.pnpm-CyuAWpdG.js";import{_ as it}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as rt}from"./index.vue_vue_type_script_setup_true_lang-CQzUr1BT.js";import{N as ut,O as G,Q as dt,S as ct,T as H,U as Q,V as X,W as _t,X as mt,Y as pt,Z as ft,_ as vt}from"./index-Bkarz3gO.js";import{C as bt}from"./stats-B9TgZYZ_.js";import{o as yt}from"./tcm-BSADvQNg.js";import{u as ht}from"./usePaging-CghUEVfD.js";import"./index-CS5Wg0xx.js";const gt={class:"revisit-due-page"},kt={class:"cell-main"},xt={class:"cell-sub"},Nt={class:"cell-main"},Tt={key:0,class:"cell-sub"},Ct={key:1,class:"text-missing"},Et={class:"cell-main"},Vt={key:0,class:"cell-sub"},wt={key:0,class:"cell-sub"},zt={key:0,class:"cell-sub"},St={key:1,class:"cell-sub"},$t={key:2},Lt={class:"flex justify-end mt-4"},Dt={class:"log-drawer-body"},Ot={key:0,class:"log-summary"},At={class:"log-summary-row"},Rt={key:0},It={class:"log-summary-row"},Ut={class:"cell-sub"},Pt={key:0,class:"log-summary-row cell-sub"},Bt={key:0},Ft={key:1},Mt={key:2},jt={class:"log-event"},Kt={class:"log-event-title"},Yt={class:"log-event-operator"},qt={class:"log-event-meta"},Jt={key:0,class:"log-event-payload"},Wt=Z({name:"statsRevisitDue"}),Gt=Z({...Wt,setup(Ht){const ee=Ae(),te=[...ut,{label:"人工关闭",value:"closed"}],R=x([]),I=x([]),se={value:"id",label:"name",children:"children"},m=nt({assistant_id:"",dept_id:"",state:"",days_bucket:"",min_snooze:"",keyword:""}),L=x(void 0),{pager:N,getLists:U,resetPage:le}=ht({fetchFun:G,params:m}),h=()=>le(),ae=s=>{m.min_snooze=s==null?"":Number(s),h()},ne=()=>{m.assistant_id="",m.dept_id="",m.state="",m.days_bucket="",m.min_snooze="",m.keyword="",L.value=void 0,h()},E=s=>_t(s),oe=({row:s})=>mt(E(s)),P=s=>s.assistant_name||(Number(s.assistant_id)>0?`#${s.assistant_id}`:"—"),B=s=>{const e=Number(s.current_slot??0);return e>0?`第 ${e} 诊`:"未成交"},F=s=>pt(E(s))||s.state_text||"—",ie=s=>{const e=Number(s.snooze_count??0),i=Number(s.contact_count??0),_=Number(s.missed_count??0);return`延迟 ${e} 次 · 已联系 ${i} 次 · 过号 ${_} 次`},re=s=>!!(s.first_shown_at_text||s.last_snoozed_at_text||s.computed_at_text),D=s=>{if(s==null||s==="")return null;const e=Number(s);return Number.isFinite(e)?e:null},M=s=>{const e=D(s.overdue_days),i=D(s.days_left);return(s.state==="overdue"||s.state==="missed")&&e!==null&&e>=0?{text:e===0?"今日到期":`${e} 天`,cls:Number(s.severe)===1?"is-severe":"is-overdue"}:e!==null&&e>0?{text:`${e} 天`,cls:"is-muted"}:i!==null&&i>=0?{text:`剩 ${i} 天`,cls:"is-muted"}:{text:"—",cls:""}},ue=s=>{const e=Number(s.escalation_level??0);return e>=3?"is-level-3":e===2?"is-level-2":e===1?"is-level-1":""},de=s=>{const e=String(s??"").trim();return e==="lost"?"患者流失":e==="other"?"其它":e||"人工关闭"},O=x(!1),V=x(!1),c=x(null),w=x([]),ce=ot(()=>c.value?`${c.value.patient_name||"患者"} · 复诊到期流水`:"复诊到期流水"),_e={1:"延迟",2:"已联系",3:"人工关闭",4:"自动关闭 · 已挂号",5:"自动关闭 · 已面诊",6:"周期重置(新订单)",7:"重新打开(挂号取消 / 过号)",8:"企微推送",9:"医助变更",10:"形态升级",11:"首次弹出"},me=s=>_e[Number(s)]??`事件 ${s}`,pe=s=>[1,2,3].includes(Number(s)),fe=s=>{switch(Number(s)){case 1:return"warning";case 2:case 6:return"primary";case 4:case 5:return"success";case 7:case 10:return"danger";default:return"info"}},ve=s=>s.operator_name?s.operator_name:Number(s.operator_id)>0?`#${s.operator_id}`:"系统",be=s=>{const e=D(s);return e===null?"":e>0?`超期 ${e} 天`:e===0?"到期当天":`未到期(剩 ${-e} 天)`},ye={next_remind_at:"下次提醒",next_remind_at_text:"下次提醒",promised_date:"承诺日",appointment_id:"挂号单",appointment_date:"预约日",order_id:"订单",source_order_id:"周期订单",remark:"备注",reason:"原因",from_assistant:"原医助",from_assistant_id:"原医助",to_assistant:"新医助",to_assistant_id:"新医助",interval:"间隔(秒)",level:"等级",channel:"渠道",message:"说明"},he=(s,e)=>{if(e==null||e==="")return"";if(typeof e=="object")return JSON.stringify(e);if(/_at$/.test(s)&&typeof e=="number"&&e>1e9){const i=new Date(e*1e3),_=y=>String(y).padStart(2,"0");return`${`${i.getFullYear()}-${_(i.getMonth()+1)}-${_(i.getDate())}`} ${_(i.getHours())}:${_(i.getMinutes())}`}return String(e)},j=s=>{const e=s.payload_arr;if(!e||typeof e!="object"||Array.isArray(e))return[];const i=[];for(const[_,r]of Object.entries(e)){if(`${_}_text`in e)continue;const y=he(_,r);y!==""&&i.push({key:_,label:ye[_]??_,value:y})}return i},ge=async s=>{c.value=s,O.value=!0,V.value=!0,w.value=[];try{const e=await ft({due_id:Number(s.id)}),i=Array.isArray(e)?e:(e==null?void 0:e.list)??(e==null?void 0:e.lists)??[];w.value=Array.isArray(i)?i:[]}finally{V.value=!1}},ke=s=>{const e=Number(s.diagnosis_id??0);e<=0||ee.push({path:"/tcm/diagnosis",query:{id:String(e)}})},xe=s=>{const e=new Map;for(const r of s)e.set(Number(r.id),{id:Number(r.id),pid:Number(r.pid),name:r.name,children:[]});const i=[];for(const r of s){const y=e.get(Number(r.id));Number(r.pid)>0&&e.has(Number(r.pid))?e.get(Number(r.pid)).children.push(y):i.push(y)}const _=r=>{var y;(y=r.children)!=null&&y.length?r.children.forEach(_):delete r.children};return i.forEach(_),i},Ne=async()=>{var i;const[s,e]=await Promise.allSettled([yt(),bt()]);s.status==="fulfilled"&&(R.value=Array.isArray(s.value)?s.value:[]),e.status==="fulfilled"&&(I.value=xe(((i=e.value)==null?void 0:i.rows)??[]))};return Re(()=>{Ne(),U()}),(s,e)=>{const i=Fe,_=Be,r=Pe,y=Me,Te=je,Ce=Ke,z=qe,Ee=rt,Ve=Ue,K=Je,f=Ge,Y=Qe,q=He,S=Xe,we=We,ze=it,Se=st,$e=tt,Le=lt,De=at,Oe=Ie("perms"),J=Ze;return o(),u("div",gt,[l(K,{class:"!border-none",shadow:"never"},{default:a(()=>[l(Ve,{inline:!0,class:"due-filter-form"},{default:a(()=>[l(r,{label:"医助"},{default:a(()=>[l(_,{modelValue:m.assistant_id,"onUpdate:modelValue":e[0]||(e[0]=t=>m.assistant_id=t),clearable:"",filterable:"",placeholder:"全部",class:"w-[160px]",onChange:h},{default:a(()=>[(o(!0),u(k,null,C(R.value,t=>(o(),g(i,{key:t.id,label:t.name,value:Number(t.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"部门"},{default:a(()=>[l(y,{modelValue:m.dept_id,"onUpdate:modelValue":e[1]||(e[1]=t=>m.dept_id=t),data:I.value,placeholder:"全部(二中心)",clearable:"",filterable:"","check-strictly":"","node-key":"id","default-expand-all":!0,props:se,class:"w-[200px]",onChange:h},null,8,["modelValue","data"])]),_:1}),l(r,{label:"状态"},{default:a(()=>[l(_,{modelValue:m.state,"onUpdate:modelValue":e[2]||(e[2]=t=>m.state=t),clearable:"",placeholder:"全部",class:"w-[170px]",onChange:h},{default:a(()=>[(o(),u(k,null,C(te,t=>l(i,{key:t.value,label:t.label,value:t.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"开药天数"},{default:a(()=>[l(_,{modelValue:m.days_bucket,"onUpdate:modelValue":e[3]||(e[3]=t=>m.days_bucket=t),clearable:"",placeholder:"全部",class:"w-[120px]",onChange:h},{default:a(()=>[(o(!0),u(k,null,C(p(dt),t=>(o(),g(i,{key:t.value,label:t.label,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"延迟次数 ≥"},{default:a(()=>[l(Te,{modelValue:L.value,"onUpdate:modelValue":e[4]||(e[4]=t=>L.value=t),min:0,max:999,step:1,"step-strictly":"","controls-position":"right",placeholder:"不限",class:"!w-[120px]",onChange:ae},null,8,["modelValue"])]),_:1}),l(r,{label:"患者"},{default:a(()=>[l(Ce,{modelValue:m.keyword,"onUpdate:modelValue":e[5]||(e[5]=t=>m.keyword=t),placeholder:"患者姓名",clearable:"",class:"w-[160px]",onKeyup:Ye(h,["enter"]),onClear:h},null,8,["modelValue"])]),_:1}),l(r,null,{default:a(()=>[l(z,{type:"primary",onClick:h},{default:a(()=>[...e[8]||(e[8]=[b("查询",-1)])]),_:1}),l(z,{onClick:ne},{default:a(()=>[...e[9]||(e[9]=[b("重置",-1)])]),_:1}),l(Ee,{class:"ml-2.5","fetch-fun":p(G),params:m,"page-size":p(N).size,"export-hint":"导出范围与当前筛选一致(医助 / 部门 / 状态 / 开药天数 / 延迟次数 / 患者)"},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1}),e[10]||(e[10]=d("div",{class:"due-hint"}," 每位患者(诊单)一行,取最新有效业务订单为本轮周期:预计复诊日 = 用药起算日(签收 → 发货 → 下单)+ 开药天数; 到期仍无有效挂号 / 过号未面诊的行标红,持有医助登录后台会收到右下角弹窗。 「延迟次数」为医助在弹窗上点「延迟」的累计次数(越多说明越未跟进),「已联系」为填写患者承诺复诊日的次数, 「人工关闭」由医助填原因关闭、在此标记供主管复核。数据范围按角色数据权限收窄;状态按今天实时推导。 ",-1))]),_:1}),l(K,{class:"!border-none mt-3",shadow:"never"},{default:a(()=>[A((o(),g(we,{data:p(N).lists,size:"default",stripe:"","row-key":"id","row-class-name":oe},{default:a(()=>[l(f,{label:"患者","min-width":"120",fixed:"left"},{default:a(({row:t})=>[d("div",kt,n(t.patient_name||"—"),1),d("div",xt,"诊单 #"+n(t.diagnosis_id),1)]),_:1}),l(f,{label:"医助","min-width":"100"},{default:a(({row:t})=>[b(n(P(t)),1)]),_:1}),l(f,{label:"部门","min-width":"110","show-overflow-tooltip":""},{default:a(({row:t})=>[b(n(t.dept_name||"—"),1)]),_:1}),l(f,{label:"诊次",width:"110",align:"center"},{header:a(()=>[e[11]||(e[11]=d("span",null,"诊次",-1)),l(q,{placement:"top",effect:"dark",content:"患者当前已完成诊次 = 有效业务订单数 + 诊单诊次偏移,与复诊接诊率同口径;下一行为待复诊诊次"},{default:a(()=>[l(Y,{class:"col-hint"},{default:a(()=>[l(p(W))]),_:1})]),_:1})]),default:a(({row:t})=>[d("div",Nt,n(B(t)),1),Number(t.next_slot)>0?(o(),u("div",Tt," 待复诊第 "+n(t.next_slot)+" 诊 ",1)):v("",!0)]),_:1}),l(f,{label:"开药天数",width:"110",align:"center"},{default:a(({row:t})=>[Number(t.medication_days)>0?(o(),u(k,{key:0},[d("span",null,n(t.medication_days)+" 天",1),Number(t.rule_days)>0?(o(),g(S,{key:0,size:"small",type:"info",effect:"plain",class:"ml-1"},{default:a(()=>[b(n(t.rule_days)+" 档 ",1)]),_:2},1024)):v("",!0)],64)):(o(),u("span",Ct,"缺开药天数"))]),_:1}),l(f,{label:"预计复诊",width:"110"},{default:a(({row:t})=>[d("div",Et,n(t.due_date||"—"),1),t.anchor_date?(o(),u("div",Vt," 起算 "+n(p(ct)(t.anchor_date)),1)):v("",!0)]),_:1}),l(f,{label:"超期天数",width:"100",align:"center"},{default:a(({row:t})=>[d("span",{class:$(["overdue-cell",M(t).cls])},n(M(t).text),3)]),_:1}),l(f,{label:"状态","min-width":"150"},{default:a(({row:t})=>[l(S,{type:p(X)(t.state),effect:p(Q)(t.state),size:"small",class:$(p(H)(E(t)))},{default:a(()=>[b(n(F(t)),1)]),_:2},1032,["type","effect","class"]),Number(t.closed_state)===4?(o(),g(S,{key:0,size:"small",type:"info",effect:"plain",class:"ml-1"},{default:a(()=>[...e[12]||(e[12]=[b(" 人工关闭 ",-1)])]),_:1})):v("",!0)]),_:1}),l(f,{label:"延迟次数",width:"100",align:"center"},{header:a(()=>[e[13]||(e[13]=d("span",null,"延迟次数",-1)),l(q,{placement:"top",effect:"dark",content:"医助在到期弹窗上点「延迟」的累计次数;1~2 次 L1、3~4 次 L2、≥5 次 L3(居中强制模态)。换医助后清零"},{default:a(()=>[l(Y,{class:"col-hint"},{default:a(()=>[l(p(W))]),_:1})]),_:1})]),default:a(({row:t})=>[d("span",{class:$(["snooze-cell",ue(t)])},n(Number(t.snooze_count??0)),3),Number(t.escalation_level)>0?(o(),u("div",wt," 等级 L"+n(t.escalation_level),1)):v("",!0)]),_:1}),l(f,{label:"已联系",width:"80",align:"center"},{default:a(({row:t})=>[b(n(Number(t.contact_count??0)),1)]),_:1}),l(f,{label:"承诺日",width:"100"},{default:a(({row:t})=>[b(n(t.promised_date||"—"),1)]),_:1}),l(f,{label:"过号",width:"70",align:"center"},{default:a(({row:t})=>[b(n(Number(t.missed_count??0)),1)]),_:1}),l(f,{label:"关闭原因","min-width":"170","show-overflow-tooltip":""},{default:a(({row:t})=>[Number(t.closed_state)===4?(o(),u(k,{key:0},[d("span",null,n(de(t.handle_reason)),1),t.handle_remark?(o(),u("span",zt," :"+n(t.handle_remark),1)):v("",!0)],64)):Number(t.closed_state)>0?(o(),u("span",St,n(t.closed_state_text||"—"),1)):(o(),u("span",$t,"—"))]),_:1}),l(f,{label:"操作",width:"130",fixed:"right",align:"center"},{default:a(({row:t})=>[A((o(),g(z,{link:"",type:"primary",onClick:T=>ge(t)},{default:a(()=>[...e[14]||(e[14]=[b(" 流水 ",-1)])]),_:1},8,["onClick"])),[[Oe,["tcm.revisitDue/logs"]]]),l(z,{link:"",type:"primary",onClick:T=>ke(t)},{default:a(()=>[...e[15]||(e[15]=[b("去诊单",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[J,p(N).loading]]),d("div",Lt,[l(ze,{modelValue:p(N),"onUpdate:modelValue":e[6]||(e[6]=t=>et(N)?N.value=t:null),onChange:p(U)},null,8,["modelValue","onChange"])])]),_:1}),l(De,{modelValue:O.value,"onUpdate:modelValue":e[7]||(e[7]=t=>O.value=t),title:ce.value,direction:"rtl",size:"540px","destroy-on-close":""},{default:a(()=>[A((o(),u("div",Dt,[c.value?(o(),u("div",Ot,[d("div",At,[d("span",null,"医助:"+n(P(c.value)),1),d("span",null,n(B(c.value)),1),c.value.due_date?(o(),u("span",Rt,"预计复诊 "+n(c.value.due_date),1)):v("",!0)]),d("div",It,[l(S,{type:p(X)(c.value.state),effect:p(Q)(c.value.state),size:"small",class:$(p(H)(E(c.value)))},{default:a(()=>[b(n(F(c.value)),1)]),_:1},8,["type","effect","class"]),d("span",Ut,n(ie(c.value)),1)]),re(c.value)?(o(),u("div",Pt,[c.value.first_shown_at_text?(o(),u("span",Bt," 首次弹出 "+n(c.value.first_shown_at_text),1)):v("",!0),c.value.last_snoozed_at_text?(o(),u("span",Ft," 最近延迟 "+n(c.value.last_snoozed_at_text),1)):v("",!0),c.value.computed_at_text?(o(),u("span",Mt," 重算于 "+n(c.value.computed_at_text),1)):v("",!0)])):v("",!0)])):v("",!0),w.value.length?(o(),g($e,{key:1,class:"mt-3"},{default:a(()=>[(o(!0),u(k,null,C(w.value,t=>(o(),g(Se,{key:t.id,timestamp:t.create_time_text,placement:"top",type:fe(t.event),hollow:!pe(t.event)},{default:a(()=>[d("div",jt,[d("span",Kt,n(t.event_text||me(t.event)),1),d("span",Yt,n(ve(t)),1)]),d("div",qt,[d("span",null,"延迟 "+n(Number(t.snooze_count_after??0))+" 次",1),d("span",null,"等级 L"+n(Number(t.level_after??0)),1),d("span",null,n(be(t.overdue_days)),1)]),j(t).length?(o(),u("div",Jt,[(o(!0),u(k,null,C(j(t),T=>(o(),u("span",{key:T.key,class:"log-payload-chip"},n(T.label)+":"+n(T.value),1))),128))])):v("",!0)]),_:2},1032,["timestamp","type","hollow"]))),128))]),_:1})):V.value?v("",!0):(o(),g(Le,{key:2,description:"暂无流水","image-size":80}))])),[[J,V.value]])]),_:1},8,["modelValue","title"])])}}}),ns=vt(Gt,[["__scopeId","data-v-8639b29d"]]);export{ns as default}; diff --git a/server/public/admin/assets/index-Cvs9Y5Uh.js b/server/public/admin/assets/index-DTmmBJza.js similarity index 91% rename from server/public/admin/assets/index-Cvs9Y5Uh.js rename to server/public/admin/assets/index-DTmmBJza.js index be2530229..445361bad 100644 --- a/server/public/admin/assets/index-Cvs9Y5Uh.js +++ b/server/public/admin/assets/index-DTmmBJza.js @@ -1 +1 @@ -import{o as k,bp as N,q as s,r as R,v as t,D as n,bo as T,bj as j,ac as m,bn as P,u as i,O as _,s as g,K as U,L as b,bk as A,bl as q,I as z,C as F,P as I,a8 as K,M,n as h}from"./.pnpm-CyuAWpdG.js";import{_ as O}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as G,j as H}from"./index-Dxvz9lb1.js";import{a as J,b as Q,c as W}from"./article-D_HL_wgA.js";import{u as X}from"./usePaging-CghUEVfD.js";import{_ as Y}from"./edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-b3Kn2zcn.js";import"./index-BnfLT5cB.js";const Z={class:"flex justify-end mt-4"},ee=k({name:"articleColumn"}),ce=k({...ee,setup(te){const p=K(),f=M(!1),{pager:r,getLists:o}=X({fetchFun:J}),y=async()=>{var l;f.value=!0,await h(),(l=p.value)==null||l.open("add")},V=async l=>{var e,c;f.value=!0,await h(),(e=p.value)==null||e.open("edit"),(c=p.value)==null||c.getDetail(l)},E=async l=>{await H.confirm("确定要删除?"),await Q({id:l}),o()},x=async(l,e)=>{try{await W({id:e,is_show:l}),o()}catch{o()}};return o(),(l,e)=>{const c=T,w=j,$=G,C=U,d=q,D=z,S=A,B=O,v=N("perms"),L=P;return s(),R("div",null,[t(w,{class:"!border-none",shadow:"never"},{default:n(()=>[t(c,{type:"warning",title:"温馨提示:用于管理网站的分类,只可添加到一级",closable:!1,"show-icon":""})]),_:1}),m((s(),_(w,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[g("div",null,[m((s(),_(C,{class:"mb-4",type:"primary",onClick:e[0]||(e[0]=a=>y())},{icon:n(()=>[t($,{name:"el-icon-Plus"})]),default:n(()=>[e[3]||(e[3]=b(" 新增 ",-1))]),_:1})),[[v,["article.articleCate/add"]]])]),t(S,{size:"large",data:i(r).lists},{default:n(()=>[t(d,{label:"栏目名称",prop:"name","min-width":"120"}),t(d,{label:"文章数",prop:"article_count","min-width":"120"}),t(d,{label:"状态","min-width":"120"},{default:n(({row:a})=>[m(t(D,{modelValue:a.is_show,"onUpdate:modelValue":u=>a.is_show=u,"active-value":1,"inactive-value":0,onChange:u=>x(u,a.id)},null,8,["modelValue","onUpdate:modelValue","onChange"]),[[v,["article.articleCate/updateStatus"]]])]),_:1}),t(d,{label:"排序",prop:"sort","min-width":"120"}),t(d,{label:"操作",width:"120",fixed:"right"},{default:n(({row:a})=>[m((s(),_(C,{type:"primary",link:"",onClick:u=>V(a)},{default:n(()=>[...e[4]||(e[4]=[b(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[v,["article.articleCate/edit"]]]),m((s(),_(C,{type:"danger",link:"",onClick:u=>E(a.id)},{default:n(()=>[...e[5]||(e[5]=[b(" 删除 ",-1)])]),_:1},8,["onClick"])),[[v,["article.articleCate/delete"]]])]),_:1})]),_:1},8,["data"]),g("div",Z,[t(B,{modelValue:i(r),"onUpdate:modelValue":e[1]||(e[1]=a=>F(r)?r.value=a:null),onChange:i(o)},null,8,["modelValue","onChange"])])]),_:1})),[[L,i(r).loading]]),i(f)?(s(),_(Y,{key:0,ref_key:"editRef",ref:p,onSuccess:i(o),onClose:e[2]||(e[2]=a=>f.value=!1)},null,8,["onSuccess"])):I("",!0)])}}});export{ce as default}; +import{o as k,bp as N,q as s,r as R,v as t,D as n,bo as T,bj as j,ac as m,bn as P,u as i,O as _,s as g,K as U,L as b,bk as A,bl as q,I as z,C as F,P as I,a8 as K,M,n as h}from"./.pnpm-CyuAWpdG.js";import{_ as O}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as G,j as H}from"./index-Bkarz3gO.js";import{a as J,b as Q,c as W}from"./article-Cct6St-z.js";import{u as X}from"./usePaging-CghUEVfD.js";import{_ as Y}from"./edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-Cc4NW4mp.js";import"./index-CS5Wg0xx.js";const Z={class:"flex justify-end mt-4"},ee=k({name:"articleColumn"}),ce=k({...ee,setup(te){const p=K(),f=M(!1),{pager:r,getLists:o}=X({fetchFun:J}),y=async()=>{var l;f.value=!0,await h(),(l=p.value)==null||l.open("add")},V=async l=>{var e,c;f.value=!0,await h(),(e=p.value)==null||e.open("edit"),(c=p.value)==null||c.getDetail(l)},E=async l=>{await H.confirm("确定要删除?"),await Q({id:l}),o()},x=async(l,e)=>{try{await W({id:e,is_show:l}),o()}catch{o()}};return o(),(l,e)=>{const c=T,w=j,$=G,C=U,d=q,D=z,S=A,B=O,v=N("perms"),L=P;return s(),R("div",null,[t(w,{class:"!border-none",shadow:"never"},{default:n(()=>[t(c,{type:"warning",title:"温馨提示:用于管理网站的分类,只可添加到一级",closable:!1,"show-icon":""})]),_:1}),m((s(),_(w,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[g("div",null,[m((s(),_(C,{class:"mb-4",type:"primary",onClick:e[0]||(e[0]=a=>y())},{icon:n(()=>[t($,{name:"el-icon-Plus"})]),default:n(()=>[e[3]||(e[3]=b(" 新增 ",-1))]),_:1})),[[v,["article.articleCate/add"]]])]),t(S,{size:"large",data:i(r).lists},{default:n(()=>[t(d,{label:"栏目名称",prop:"name","min-width":"120"}),t(d,{label:"文章数",prop:"article_count","min-width":"120"}),t(d,{label:"状态","min-width":"120"},{default:n(({row:a})=>[m(t(D,{modelValue:a.is_show,"onUpdate:modelValue":u=>a.is_show=u,"active-value":1,"inactive-value":0,onChange:u=>x(u,a.id)},null,8,["modelValue","onUpdate:modelValue","onChange"]),[[v,["article.articleCate/updateStatus"]]])]),_:1}),t(d,{label:"排序",prop:"sort","min-width":"120"}),t(d,{label:"操作",width:"120",fixed:"right"},{default:n(({row:a})=>[m((s(),_(C,{type:"primary",link:"",onClick:u=>V(a)},{default:n(()=>[...e[4]||(e[4]=[b(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[v,["article.articleCate/edit"]]]),m((s(),_(C,{type:"danger",link:"",onClick:u=>E(a.id)},{default:n(()=>[...e[5]||(e[5]=[b(" 删除 ",-1)])]),_:1},8,["onClick"])),[[v,["article.articleCate/delete"]]])]),_:1})]),_:1},8,["data"]),g("div",Z,[t(B,{modelValue:i(r),"onUpdate:modelValue":e[1]||(e[1]=a=>F(r)?r.value=a:null),onChange:i(o)},null,8,["modelValue","onChange"])])]),_:1})),[[L,i(r).loading]]),i(f)?(s(),_(Y,{key:0,ref_key:"editRef",ref:p,onSuccess:i(o),onClose:e[2]||(e[2]=a=>f.value=!1)},null,8,["onSuccess"])):I("",!0)])}}});export{ce as default}; diff --git a/server/public/admin/assets/index-BSjQOypy.js b/server/public/admin/assets/index-DaTbNDLc.js similarity index 81% rename from server/public/admin/assets/index-BSjQOypy.js rename to server/public/admin/assets/index-DaTbNDLc.js index ae7935294..f910d29ae 100644 --- a/server/public/admin/assets/index-BSjQOypy.js +++ b/server/public/admin/assets/index-DaTbNDLc.js @@ -1 +1 @@ -import{o as k,bp as E,q as i,r as x,v as e,D as o,bo as R,bj as N,s as B,bk as V,u as d,bl as D,aa as L,ac as T,O as f,K as P,L as $,P as j,M as _,a8 as q}from"./.pnpm-CyuAWpdG.js";import{a as A}from"./pay-Ia2pwkX0.js";import{u as H}from"./getExposeType-BkPR_d5H.js";import u from"./edit-eKqjns4J.js";import"./index-Dxvz9lb1.js";import"./picker-BDO86vcM.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";import"./useLockFn-d8ytjraO.js";const oe=k({__name:"index",setup(I){const r=H(),m=_([]),b=q(),p=_(!1),l=async()=>{const{lists:n}=await A();m.value=n},w=async n=>{var t;(t=r.value)==null||t.openHandle(n.id,!1)};return l(),(n,t)=>{const h=R,c=N,a=D,y=L,v=P,g=V,C=E("perms");return i(),x("div",null,[e(c,{class:"!border-none",shadow:"never"},{default:o(()=>[e(h,{type:"warning",title:"温馨提示:设置系统支持的支付方式",closable:!1,"show-icon":""})]),_:1}),e(c,{shadow:"never",class:"mt-4 !border-none"},{default:o(()=>[B("div",null,[e(g,{data:d(m)},{default:o(()=>[e(a,{prop:"pay_way_name",label:"支付方式","min-width":"150"}),e(a,{prop:"name",label:"显示名称","min-width":"150"}),e(a,{label:"图标","min-width":"150"},{default:o(({row:s})=>[e(y,{src:s.icon,alt:"图标",style:{width:"34px",height:"34px"}},null,8,["src"])]),_:1}),e(a,{prop:"sort",label:"排序","min-width":"150"}),e(a,{label:"操作","min-width":"80",fixed:"right"},{default:o(({row:s})=>[T((i(),f(v,{link:"",type:"primary",onClick:K=>w(s)},{default:o(()=>[...t[1]||(t[1]=[$(" 配置 ",-1)])]),_:1},8,["onClick"])),[[C,["setting.pay.pay_config/setConfig"]]])]),_:1})]),_:1},8,["data"])])]),_:1}),d(p)?(i(),f(u,{key:0,ref_key:"editRef",ref:b,onSuccess:l,onClose:t[0]||(t[0]=s=>p.value=!1)},null,512)):j("",!0),e(u,{ref_key:"editNewRef",ref:r,onRefresh:l},null,512)])}}});export{oe as default}; +import{o as k,bp as E,q as i,r as x,v as e,D as o,bo as R,bj as N,s as B,bk as V,u as d,bl as D,aa as L,ac as T,O as f,K as P,L as $,P as j,M as _,a8 as q}from"./.pnpm-CyuAWpdG.js";import{a as A}from"./pay-BmHqMA5y.js";import{u as H}from"./getExposeType-BkPR_d5H.js";import u from"./edit-BLDNFAUG.js";import"./index-Bkarz3gO.js";import"./picker-BTh9eW9u.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";import"./useLockFn-d8ytjraO.js";const oe=k({__name:"index",setup(I){const r=H(),m=_([]),b=q(),p=_(!1),l=async()=>{const{lists:n}=await A();m.value=n},w=async n=>{var t;(t=r.value)==null||t.openHandle(n.id,!1)};return l(),(n,t)=>{const h=R,c=N,a=D,y=L,v=P,g=V,C=E("perms");return i(),x("div",null,[e(c,{class:"!border-none",shadow:"never"},{default:o(()=>[e(h,{type:"warning",title:"温馨提示:设置系统支持的支付方式",closable:!1,"show-icon":""})]),_:1}),e(c,{shadow:"never",class:"mt-4 !border-none"},{default:o(()=>[B("div",null,[e(g,{data:d(m)},{default:o(()=>[e(a,{prop:"pay_way_name",label:"支付方式","min-width":"150"}),e(a,{prop:"name",label:"显示名称","min-width":"150"}),e(a,{label:"图标","min-width":"150"},{default:o(({row:s})=>[e(y,{src:s.icon,alt:"图标",style:{width:"34px",height:"34px"}},null,8,["src"])]),_:1}),e(a,{prop:"sort",label:"排序","min-width":"150"}),e(a,{label:"操作","min-width":"80",fixed:"right"},{default:o(({row:s})=>[T((i(),f(v,{link:"",type:"primary",onClick:K=>w(s)},{default:o(()=>[...t[1]||(t[1]=[$(" 配置 ",-1)])]),_:1},8,["onClick"])),[[C,["setting.pay.pay_config/setConfig"]]])]),_:1})]),_:1},8,["data"])])]),_:1}),d(p)?(i(),f(u,{key:0,ref_key:"editRef",ref:b,onSuccess:l,onClose:t[0]||(t[0]=s=>p.value=!1)},null,512)):j("",!0),e(u,{ref_key:"editNewRef",ref:r,onRefresh:l},null,512)])}}});export{oe as default}; diff --git a/server/public/admin/assets/index-tCLK0tON.js b/server/public/admin/assets/index-DbhcuLQj.js similarity index 90% rename from server/public/admin/assets/index-tCLK0tON.js rename to server/public/admin/assets/index-DbhcuLQj.js index 75100c8d5..ce38c6236 100644 --- a/server/public/admin/assets/index-tCLK0tON.js +++ b/server/public/admin/assets/index-DbhcuLQj.js @@ -1 +1 @@ -import{o as y,bs as F,x as P,bp as V,q as o,r as g,v as e,D as t,bo as B,bj as M,Y as D,u as s,C as O,F as U,G as q,X as z,ac as v,O as c,bk as S,bl as j,bm as G,L as m,K,bn as X,M as Y,aC as H}from"./.pnpm-CyuAWpdG.js";import{a as I}from"./message-7QdBbth1.js";import{u as J}from"./usePaging-CghUEVfD.js";import{l as N}from"./index-Dxvz9lb1.js";const Q=y({name:"notice"}),ae=y({...Q,setup(W){let p;(l=>{l[l.USER=1]="USER",l[l.PLATFORM=2]="PLATFORM"})(p||(p={}));const r=Y(1),k=[{name:"通知用户",type:1},{name:"通知平台",type:2}],w=H({recipient:r}),{pager:u,getLists:d}=J({fetchFun:I,params:w});return F(()=>{d()}),d(),(l,a)=>{const T=B,b=M,C=z,E=D,i=j,f=G,h=P("router-link"),L=K,x=S,R=V("perms"),A=X;return o(),g("div",null,[e(b,{class:"!border-none",shadow:"never"},{default:t(()=>[e(T,{type:"warning",title:"温馨提示:平台配置在各个场景下的通知发送方式和内容模板",closable:!1,"show-icon":""})]),_:1}),e(b,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[e(E,{modelValue:s(r),"onUpdate:modelValue":a[0]||(a[0]=n=>O(r)?r.value=n:null),onTabChange:s(d)},{default:t(()=>[(o(),g(U,null,q(k,(n,_)=>e(C,{key:_,label:n.name,name:n.type,lazy:""},null,8,["label","name"])),64))]),_:1},8,["modelValue","onTabChange"]),v((o(),c(x,{size:"large",data:s(u).lists},{default:t(()=>[e(i,{label:"通知场景",prop:"scene_name","min-width":"120"}),e(i,{label:"通知类型",prop:"type_desc","min-width":"160"}),e(i,{label:"短信通知","min-width":"80"},{default:t(({row:n})=>{var _;return[((_=n.sms_notice)==null?void 0:_.status)==1?(o(),c(f,{key:0},{default:t(()=>[...a[1]||(a[1]=[m("开启",-1)])]),_:1})):(o(),c(f,{key:1,type:"danger"},{default:t(()=>[...a[2]||(a[2]=[m("关闭",-1)])]),_:1}))]}),_:1}),e(i,{label:"操作","min-width":"80",fixed:"right"},{default:t(({row:n})=>[v((o(),c(L,{type:"primary",link:""},{default:t(()=>[e(h,{to:{path:s(N)("notice.notice/set"),query:{id:n.id}}},{default:t(()=>[...a[3]||(a[3]=[m(" 设置 ",-1)])]),_:1},8,["to"])]),_:2},1024)),[[R,["notice.notice/set"]]])]),_:1})]),_:1},8,["data"])),[[A,s(u).loading]])]),_:1})])}}});export{ae as default}; +import{o as y,bs as F,x as P,bp as V,q as o,r as g,v as e,D as t,bo as B,bj as M,Y as D,u as s,C as O,F as U,G as q,X as z,ac as v,O as c,bk as S,bl as j,bm as G,L as m,K,bn as X,M as Y,aC as H}from"./.pnpm-CyuAWpdG.js";import{a as I}from"./message-CaYd28kO.js";import{u as J}from"./usePaging-CghUEVfD.js";import{l as N}from"./index-Bkarz3gO.js";const Q=y({name:"notice"}),ae=y({...Q,setup(W){let p;(l=>{l[l.USER=1]="USER",l[l.PLATFORM=2]="PLATFORM"})(p||(p={}));const r=Y(1),k=[{name:"通知用户",type:1},{name:"通知平台",type:2}],w=H({recipient:r}),{pager:u,getLists:d}=J({fetchFun:I,params:w});return F(()=>{d()}),d(),(l,a)=>{const T=B,b=M,C=z,E=D,i=j,f=G,h=P("router-link"),L=K,x=S,R=V("perms"),A=X;return o(),g("div",null,[e(b,{class:"!border-none",shadow:"never"},{default:t(()=>[e(T,{type:"warning",title:"温馨提示:平台配置在各个场景下的通知发送方式和内容模板",closable:!1,"show-icon":""})]),_:1}),e(b,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[e(E,{modelValue:s(r),"onUpdate:modelValue":a[0]||(a[0]=n=>O(r)?r.value=n:null),onTabChange:s(d)},{default:t(()=>[(o(),g(U,null,q(k,(n,_)=>e(C,{key:_,label:n.name,name:n.type,lazy:""},null,8,["label","name"])),64))]),_:1},8,["modelValue","onTabChange"]),v((o(),c(x,{size:"large",data:s(u).lists},{default:t(()=>[e(i,{label:"通知场景",prop:"scene_name","min-width":"120"}),e(i,{label:"通知类型",prop:"type_desc","min-width":"160"}),e(i,{label:"短信通知","min-width":"80"},{default:t(({row:n})=>{var _;return[((_=n.sms_notice)==null?void 0:_.status)==1?(o(),c(f,{key:0},{default:t(()=>[...a[1]||(a[1]=[m("开启",-1)])]),_:1})):(o(),c(f,{key:1,type:"danger"},{default:t(()=>[...a[2]||(a[2]=[m("关闭",-1)])]),_:1}))]}),_:1}),e(i,{label:"操作","min-width":"80",fixed:"right"},{default:t(({row:n})=>[v((o(),c(L,{type:"primary",link:""},{default:t(()=>[e(h,{to:{path:s(N)("notice.notice/set"),query:{id:n.id}}},{default:t(()=>[...a[3]||(a[3]=[m(" 设置 ",-1)])]),_:1},8,["to"])]),_:2},1024)),[[R,["notice.notice/set"]]])]),_:1})]),_:1},8,["data"])),[[A,s(u).loading]])]),_:1})])}}});export{ae as default}; diff --git a/server/public/admin/assets/index-BWeUBmJ1.js b/server/public/admin/assets/index-Dh0SNz82.js similarity index 99% rename from server/public/admin/assets/index-BWeUBmJ1.js rename to server/public/admin/assets/index-Dh0SNz82.js index a879def0c..126a54d42 100644 --- a/server/public/admin/assets/index-BWeUBmJ1.js +++ b/server/public/admin/assets/index-Dh0SNz82.js @@ -1 +1 @@ -import{o as H,ap as ue,bs as fe,by as ge,ac as ve,bn as ye,q as o,r,s as t,v as i,D as c,u as m,cN as ke,w as he,cQ as be,L as d,T as s,P as g,bz as we,K as $e,O as p,bo as xe,b_ as Ne,F as u,ae as h,df as z,dg as F,ci as W,a1 as Ce,G as L,ay as De,bL as Se,t as q,bC as Me,cR as ze,cL as Fe,bY as Le,aC as Ee,M as $,p as v}from"./.pnpm-CyuAWpdG.js";import{w as Ie}from"./stats-Bao68QGi.js";import{_ as Ve}from"./index-Dxvz9lb1.js";const Te={class:"performance-dashboard","element-loading-text":"正在汇总权限范围内的数据"},Re={class:"dashboard-header"},Pe={class:"dashboard-heading"},Be={class:"dashboard-heading__icon"},Ae={class:"dashboard-title-row"},Oe={class:"scope-badge"},je={key:0},Ue={class:"dashboard-actions"},Ge={key:0,class:"updated-at"},We={key:1,class:"dashboard-skeleton"},qe={class:"performance-strip","aria-label":"业绩概览"},He={class:"metric-card metric-card--primary"},Ke={class:"metric-value metric-value--money"},Qe={class:"metric-card"},Ye={class:"metric-value metric-value--money"},Je={class:"metric-card"},Xe={class:"metric-value metric-value--money"},Ze={key:0,class:"metric-card"},et={class:"metric-label-row"},tt={class:"metric-value metric-value--money"},at={class:"metric-card metric-card--clock"},nt={class:"metric-value metric-value--time"},ot={class:"metric-foot"},st={class:"operating-grid","aria-label":"今日运营指标"},rt={class:"metric-label"},lt={class:"metric-comparisons"},it={class:"metric-hint"},ct={class:"dashboard-grid dashboard-grid--rankings"},dt={class:"dashboard-panel ranking-panel"},_t={class:"panel-header"},mt={key:0},pt={class:"panel-header-actions"},ut={key:0,class:"ranking-list"},ft={class:"ranking-main"},gt={class:"ranking-copy"},vt={key:0,class:"ranking-self-tag"},yt={class:"ranking-meter","aria-hidden":"true"},kt={class:"ranking-value"},ht={class:"dashboard-panel ranking-panel"},bt={class:"panel-header"},wt={key:0,class:"ranking-list"},$t={class:"ranking-main"},xt={class:"ranking-copy"},Nt={key:0,class:"ranking-self-tag"},Ct={class:"ranking-meter","aria-hidden":"true"},Dt={class:"ranking-value ranking-value--money"},St={class:"dashboard-grid dashboard-grid--bottom"},Mt={class:"dashboard-panel trend-panel"},zt={class:"panel-header panel-header--stack-mobile"},Ft={class:"dashboard-panel target-panel"},Lt={class:"panel-header"},Et={class:"panel-meta"},It={class:"target-block"},Vt={class:"target-copy"},Tt={key:0},Rt={key:1},Pt={class:"target-block target-block--secondary"},Bt={class:"target-copy"},At={key:0,class:"target-empty-note"},Ot={class:"dashboard-notes"},jt={key:3,class:"dashboard-empty"},Ut=H({name:"performanceDashboardPage"}),Gt=H({...Ut,setup(Wt){const b=()=>({direction:"flat",rate:null,previous:0}),B=()=>({scope:{key:"",kind:"",scope_value:4,label:"",is_limited:!0,viewer_name:"",viewer_id:0,role_ids:[],role_names:[],department_names:[],visible_member_count:0},performance:{month_amount:0,month_compare_rate:null,month_compare_label:"",today_amount:0,today_compare_rate:null,today_compare_label:"",yesterday_amount:0,yesterday_compare_rate:null,yesterday_compare_label:"",personal_month_amount:0},today:{add_fans_count:0,appointment_total_count:0,low_amount_payment_count:0,interview_count:0,completed_order_count:0,completed_order_amount:0,paid_appointment_count:0,paid_appointment_rate:0,interview_receive_rate:0,comparisons:{add_fans_count:b(),appointment_total_count:b(),low_amount_payment_count:b(),interview_count:b(),completed_order_count:b(),completed_order_amount:b(),paid_appointment_rate:b(),interview_receive_rate:b()}},rankings:{appointments:{title:"实时挂号排行",kind:"assistant",metric:"registration",scope_label:"",items:[]},performance:{title:"今日部门业绩排行",kind:"dept",scope_label:"",items:[]}},filters:{ranking_departments:[],ranking_dept_id:0,ranking_selectable:!0},trend:{date_range:[],dates:[],registrations:[],appointments:[],leads:[],orders:[]},target:{year_month:"",target_amount:0,completed_amount:0,completion_rate:null,personal_amount:0,personal_contribution_rate:null,department_count:0},meta:{generated_at:"",timezone:"",commission_note:"",rate_note:""}}),e=Ee(B()),x=$(!1),N=$(!1),C=$(""),E=$("registrations"),D=$(),I=$(new Date);let V;const K={value:"id",label:"name",children:"children"},Q=[{label:"挂号",value:"registrations"},{label:"预约",value:"appointments"},{label:"进线",value:"leads"},{label:"诊单",value:"orders"}],Y=v(()=>{const n=e.scope.role_names.length?e.scope.role_names.join("、"):"管理员",a=e.scope.department_names.length?e.scope.department_names.join("、"):"未绑定部门";return`${e.scope.viewer_name||"当前账号"},${n},${a}`}),J=v(()=>[{key:"fans",label:"今日加粉",value:y(e.today.add_fans_count),hint:"按企微新增客户事件统计",comparisons:[e.today.comparisons.add_fans_count]},{key:"appointments",label:"今日预约",value:y(e.today.appointment_total_count),hint:"状态为已预约、已完成或改期,排除已取消",comparisons:[e.today.comparisons.appointment_total_count]},{key:"lowAmountPayments",label:"今日挂号",value:`${y(e.today.low_amount_payment_count)} `,hint:"已支付且实收金额大于 0、低于 10 元的订单",comparisons:[e.today.comparisons.low_amount_payment_count]},{key:"orders",label:"今日接诊 / 诊单金额",value:"",hint:"按业务订单统计,排除取消、拒收和退款",comparisons:[{...e.today.comparisons.completed_order_count,label:"诊单"},{...e.today.comparisons.completed_order_amount,label:"金额"}]},{key:"appointmentRate",label:"挂号率",value:S(e.today.paid_appointment_rate),hint:`挂号 ${y(e.today.paid_appointment_count)} / 加粉数`,comparisons:[e.today.comparisons.paid_appointment_rate]},{key:"receiveRate",label:"接诊率",value:S(e.today.interview_receive_rate),hint:"诊单数 / 面诊数",comparisons:[e.today.comparisons.interview_receive_rate]},{key:"interviews",label:"今日面诊",value:y(e.today.interview_count),hint:"状态为已完成的预约",comparisons:[e.today.comparisons.interview_count]}]),X=v(()=>new Intl.DateTimeFormat("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(I.value)),Z=v(()=>new Intl.DateTimeFormat("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",weekday:"short"}).format(I.value)),ee=v(()=>e.filters.ranking_selectable!==!1&&e.scope.kind!=="group_leader"&&e.rankings.appointments.kind!=="doctor"&&e.filters.ranking_departments.length>0),A=v(()=>e.rankings.appointments.metric==="appointment"?"预约":"挂号"),O=v(()=>{if(e.rankings.appointments.metric==="appointment")return"";const n=e.rankings.appointments.kind==="doctor"?"医生":"成员";return`${e.rankings.appointments.scope_label||"当前部门"}内${n}已支付且实收低于 10 元的订单数`}),te=v(()=>{const n=e.rankings.performance.scope_label||"当前部门";return e.rankings.performance.kind==="person"?e.scope.kind==="group_leader"?"本小组内今日计入业绩的个人订单":`${n}内今日计入业绩的个人订单`:`${n}内今日计入业绩的业务订单`}),ae=v(()=>Math.max(0,...e.rankings.appointments.items.map(n=>Number(n.count||0)))),ne=v(()=>Math.max(0,...e.rankings.performance.items.map(n=>Number(n.amount||0)))),oe=v(()=>{const a={registrations:{label:"挂号",data:e.trend.registrations},appointments:{label:"预约",data:e.trend.appointments},leads:{label:"进线",data:e.trend.leads},orders:{label:"诊单",data:e.trend.orders}}[E.value];return{animationDuration:320,tooltip:{trigger:"axis",valueFormatter:_=>`${y(_)} 条`},grid:{left:42,right:18,top:24,bottom:30,containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:e.trend.dates,axisLine:{lineStyle:{color:"#d9e0e7"}},axisLabel:{color:"#7d8996"}},yAxis:{type:"value",minInterval:1,splitLine:{lineStyle:{color:"#edf1f4"}},axisLabel:{color:"#7d8996"}},series:[{name:a.label,type:"line",smooth:.35,showSymbol:!0,symbolSize:7,data:a.data,lineStyle:{color:"#0f8f83",width:3},itemStyle:{color:"#0f8f83",borderColor:"#ffffff",borderWidth:2},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(15, 143, 131, 0.20)"},{offset:1,color:"rgba(15, 143, 131, 0.01)"}]}}}]}}),k=(n,a=2)=>`¥${new Intl.NumberFormat("zh-CN",{minimumFractionDigits:a,maximumFractionDigits:a}).format(Number(n||0))}`,y=n=>new Intl.NumberFormat("zh-CN",{maximumFractionDigits:0}).format(Number(n||0)),S=n=>n===null?"暂无":`${Number(n||0).toFixed(1)}%`,T=n=>`${n>=0?"+":""}${Number(n).toFixed(1)}%`,R=n=>n===null||n===0?"":n>0?"is-positive":"is-negative",se=n=>n==="up"?"is-positive":n==="down"?"is-negative":"is-flat",re=n=>{const a=n.label?`${n.label} `:"";if(n.direction==="flat")return`${a}较昨日持平`;const _=n.direction==="up"?"上升":"下降";return n.rate===null?`${a}较昨日${_}(昨日为 0)`:`${a}较昨日${_} ${Math.abs(Number(n.rate)).toFixed(1)}%`},j=(n,a)=>a<=0||n<=0?"0%":`${Math.max(6,Math.min(100,Number(n)/a*100))}%`,U=n=>n===null||!Number.isFinite(Number(n))?0:Math.max(0,Math.min(100,Number(n))),w=async()=>{x.value=!0,C.value="";try{const n=await Ie({ranking_dept_id:N.value?D.value||0:void 0,_t:Date.now()});Object.assign(e,B(),n||{}),D.value=Number(e.filters.ranking_dept_id||0)||void 0,N.value=!0}catch(n){C.value=(n==null?void 0:n.msg)||(n==null?void 0:n.message)||"驾驶舱数据加载失败,请稍后重试"}finally{x.value=!1}},le=()=>{w()};return ue(()=>{w(),V=setInterval(()=>{I.value=new Date},1e3)}),fe(()=>{N.value&&w()}),ge(()=>{V&&clearInterval(V)}),(n,a)=>{const _=he,P=$e,ie=xe,ce=Ne,de=Ce,_e=Se,M=Me,me=ze,G=Le,pe=ye;return ve((o(),r("div",Te,[t("header",Re,[t("div",Pe,[t("div",Be,[i(_,null,{default:c(()=>[i(m(ke))]),_:1})]),t("div",null,[t("div",Ae,[a[2]||(a[2]=t("h1",null,"我的首页",-1)),t("span",Oe,[i(_,null,{default:c(()=>[i(m(be))]),_:1}),d(" "+s(e.scope.label||"数据范围"),1)])]),t("p",null,[d(s(Y.value)+" ",1),e.scope.visible_member_count>0?(o(),r("span",je," ,当前可见 "+s(e.scope.visible_member_count)+" 位成员 ",1)):g("",!0)])])]),t("div",Ue,[e.meta.generated_at?(o(),r("div",Ge," 数据更新于 "+s(e.meta.generated_at),1)):g("",!0),i(P,{icon:m(we),loading:x.value,onClick:w},{default:c(()=>[...a[3]||(a[3]=[d("刷新数据",-1)])]),_:1},8,["icon","loading"])])]),C.value?(o(),p(ie,{key:0,class:"dashboard-error",type:"error",closable:!1,"show-icon":"",title:C.value},{default:c(()=>[i(P,{size:"small",onClick:w},{default:c(()=>[...a[4]||(a[4]=[d("重新加载",-1)])]),_:1})]),_:1},8,["title"])):g("",!0),!N.value&&x.value?(o(),r("div",We,[i(ce,{rows:12,animated:""})])):N.value?(o(),r(u,{key:2},[t("section",qe,[t("article",He,[a[5]||(a[5]=t("div",{class:"metric-label"},"本月实时业绩",-1)),t("div",Ke,s(k(e.performance.month_amount)),1),t("div",{class:h(["metric-foot",R(e.performance.month_compare_rate)])},[e.performance.month_compare_rate!==null?(o(),r(u,{key:0},[e.performance.month_compare_rate>=0?(o(),p(_,{key:0},{default:c(()=>[i(m(z))]),_:1})):(o(),p(_,{key:1},{default:c(()=>[i(m(F))]),_:1})),d(" "+s(e.performance.month_compare_label)+" "+s(T(e.performance.month_compare_rate)),1)],64)):(o(),r(u,{key:1},[d("上月同期暂无可比数据")],64))],2)]),t("article",Qe,[a[6]||(a[6]=t("div",{class:"metric-label"},"今日新增业绩",-1)),t("div",Ye,s(k(e.performance.today_amount)),1),t("div",{class:h(["metric-foot",R(e.performance.today_compare_rate)])},[e.performance.today_compare_rate!==null?(o(),r(u,{key:0},[e.performance.today_compare_rate>=0?(o(),p(_,{key:0},{default:c(()=>[i(m(z))]),_:1})):(o(),p(_,{key:1},{default:c(()=>[i(m(F))]),_:1})),d(" "+s(e.performance.today_compare_label)+" "+s(T(e.performance.today_compare_rate)),1)],64)):(o(),r(u,{key:1},[d("昨日暂无可比数据")],64))],2)]),t("article",Je,[a[7]||(a[7]=t("div",{class:"metric-label"},"昨日新增业绩",-1)),t("div",Xe,s(k(e.performance.yesterday_amount)),1),t("div",{class:h(["metric-foot",R(e.performance.yesterday_compare_rate)])},[e.performance.yesterday_compare_rate!==null?(o(),r(u,{key:0},[e.performance.yesterday_compare_rate>=0?(o(),p(_,{key:0},{default:c(()=>[i(m(z))]),_:1})):(o(),p(_,{key:1},{default:c(()=>[i(m(F))]),_:1})),d(" "+s(e.performance.yesterday_compare_label)+" "+s(T(e.performance.yesterday_compare_rate)),1)],64)):(o(),r(u,{key:1},[d("前一日暂无可比数据")],64))],2)]),e.scope.kind!=="assistant"?(o(),r("article",Ze,[t("div",et,[a[8]||(a[8]=t("span",null,"本人本月业绩",-1)),i(de,{content:e.meta.commission_note,placement:"top"},{default:c(()=>[i(_,{class:"metric-help"},{default:c(()=>[i(m(W))]),_:1})]),_:1},8,["content"])]),t("div",tt,s(k(e.performance.personal_month_amount)),1),a[9]||(a[9]=t("div",{class:"metric-foot"},"仅统计当前登录账号",-1))])):g("",!0),t("article",at,[a[10]||(a[10]=t("div",{class:"metric-label"},"当前时间",-1)),t("div",nt,s(X.value),1),t("div",ot,s(Z.value),1)])]),t("section",st,[(o(!0),r(u,null,L(J.value,l=>(o(),r("article",{key:l.key,class:"metric-card metric-card--compact"},[t("div",rt,s(l.label),1),t("div",{class:h(["metric-value",{"metric-value--pair":l.key==="orders"}])},[l.key==="orders"?(o(),r(u,{key:0},[d(s(y(e.today.completed_order_count))+" ",1),a[11]||(a[11]=t("span",null,"/",-1)),d(" "+s(k(e.today.completed_order_amount)),1)],64)):(o(),r(u,{key:1},[d(s(l.value),1)],64))],2),t("div",lt,[(o(!0),r(u,null,L(l.comparisons,f=>(o(),r("div",{key:`${l.key}-${f.label||"total"}`,class:h(["metric-foot",se(f.direction)])},[f.direction==="up"?(o(),p(_,{key:0},{default:c(()=>[i(m(z))]),_:1})):f.direction==="down"?(o(),p(_,{key:1},{default:c(()=>[i(m(F))]),_:1})):(o(),p(_,{key:2},{default:c(()=>[i(m(De))]),_:1})),d(" "+s(re(f)),1)],2))),128))]),t("div",it,s(l.hint),1)]))),128))]),t("section",ct,[t("article",dt,[t("div",_t,[t("div",null,[t("h2",null,s(e.rankings.appointments.title),1),O.value?(o(),r("p",mt,s(O.value),1)):g("",!0)]),t("div",pt,[ee.value?(o(),p(_e,{key:0,modelValue:D.value,"onUpdate:modelValue":a[0]||(a[0]=l=>D.value=l),data:e.filters.ranking_departments,props:K,"node-key":"id","check-strictly":"",clearable:"",filterable:"","default-expand-all":"",placeholder:"全部部门",class:"ranking-dept-select",onChange:le},null,8,["modelValue","data"])):g("",!0),a[12]||(a[12]=t("span",{class:"panel-meta"},"实时",-1))])]),e.rankings.appointments.items.length?(o(),r("div",ut,[(o(!0),r(u,null,L(e.rankings.appointments.items,(l,f)=>(o(),r("div",{key:`appointment-${l.id}-${f}`,class:h(["ranking-row",{"is-self":l.is_self}])},[t("span",{class:h(["ranking-index",{"is-top":f<2,"is-self":l.is_self}])},s(f+1),3),t("div",ft,[t("div",gt,[t("strong",null,[d(s(l.name||"未命名成员")+" ",1),l.is_self?(o(),r("i",vt,"我")):g("",!0)]),t("span",null,s(y(l.count))+" "+s(A.value),1)]),t("div",yt,[t("span",{style:q({width:j(l.count,ae.value)})},null,4)])]),t("b",kt,s(y(l.count)),1)],2))),128))])):(o(),p(M,{key:1,"image-size":72,description:`当前数据范围内暂无${A.value}排行`},null,8,["description"]))]),t("article",ht,[t("div",bt,[t("div",null,[t("h2",null,s(e.rankings.performance.title),1),t("p",null,s(te.value),1)]),a[13]||(a[13]=t("span",{class:"panel-meta"},"今日",-1))]),e.rankings.performance.items.length?(o(),r("div",wt,[(o(!0),r(u,null,L(e.rankings.performance.items,(l,f)=>(o(),r("div",{key:`performance-${l.id}-${f}`,class:h(["ranking-row",{"is-self":l.is_self}])},[t("span",{class:h(["ranking-index",{"is-top":f<2,"is-self":l.is_self}])},s(f+1),3),t("div",$t,[t("div",xt,[t("strong",null,[d(s(l.name||(e.rankings.performance.kind==="person"?"未命名成员":"未命名部门"))+" ",1),l.is_self?(o(),r("i",Nt,"我")):g("",!0)]),t("span",null,s(y(l.count))+" 个诊单",1)]),t("div",Ct,[t("span",{style:q({width:j(l.amount,ne.value)})},null,4)])]),t("b",Dt,s(k(l.amount)),1)],2))),128))])):(o(),p(M,{key:1,"image-size":72,description:"当前数据范围内暂无业务订单业绩"}))])]),t("section",St,[t("article",Mt,[t("div",zt,[t("div",null,[a[14]||(a[14]=t("h2",null,"近 7 天数据趋势",-1)),t("p",null,s(e.trend.date_range.join(" 至 ")),1)]),i(me,{modelValue:E.value,"onUpdate:modelValue":a[1]||(a[1]=l=>E.value=l),options:Q},null,8,["modelValue"])]),e.trend.dates.length?(o(),p(m(Fe),{key:0,class:"trend-chart",option:oe.value,autoresize:""},null,8,["option"])):(o(),p(M,{key:1,"image-size":72,description:"暂无趋势数据"}))]),t("article",Ft,[t("div",Lt,[t("div",null,[a[15]||(a[15]=t("h2",null,"进度目标",-1)),t("p",null,s(e.target.year_month)+",按当前角色数据范围计算",1)]),t("span",Et,s(e.target.department_count)+" 个目标部门",1)]),t("div",It,[t("div",Vt,[t("div",null,[a[16]||(a[16]=t("span",null,"范围目标进度",-1)),e.target.target_amount>0?(o(),r("strong",Tt,s(S(e.target.completion_rate)),1)):(o(),r("strong",Rt,"未设置"))]),t("p",null,[d(" 已完成 "+s(k(e.target.completed_amount))+" ",1),e.target.target_amount>0?(o(),r(u,{key:0},[d(" ,目标 "+s(k(e.target.target_amount)),1)],64)):g("",!0)])]),i(G,{percentage:U(e.target.completion_rate),"show-text":!1,"stroke-width":12,color:"#0f8f83"},null,8,["percentage"])]),t("div",Pt,[t("div",Bt,[t("div",null,[a[17]||(a[17]=t("span",null,"本人业绩贡献",-1)),t("strong",null,s(S(e.target.personal_contribution_rate)),1)]),t("p",null," 本人 "+s(k(e.target.personal_amount))+",占当前范围已完成业绩 ",1)]),i(G,{percentage:U(e.target.personal_contribution_rate),"show-text":!1,"stroke-width":12,color:"#738196"},null,8,["percentage"])]),e.target.target_amount<=0?(o(),r("div",At," 当前范围尚未设置本月部门目标,已完成业绩仍会正常统计。 ")):g("",!0)])]),t("footer",Ot,[i(_,null,{default:c(()=>[i(m(W))]),_:1}),t("span",null,s(e.meta.rate_note),1)])],64)):C.value?(o(),r("div",jt,[i(M,{description:"驾驶舱数据加载失败"},{default:c(()=>[i(P,{type:"primary",onClick:w},{default:c(()=>[...a[18]||(a[18]=[d("重新加载",-1)])]),_:1})]),_:1})])):g("",!0)])),[[pe,x.value]])}}}),Qt=Ve(Gt,[["__scopeId","data-v-8a87b9f7"]]);export{Qt as default}; +import{o as H,ap as ue,bs as fe,by as ge,ac as ve,bn as ye,q as o,r,s as t,v as i,D as c,u as m,cN as ke,w as he,cQ as be,L as d,T as s,P as g,bz as we,K as $e,O as p,bo as xe,b_ as Ne,F as u,ae as h,df as z,dg as F,ci as W,a1 as Ce,G as L,ay as De,bL as Se,t as q,bC as Me,cR as ze,cL as Fe,bY as Le,aC as Ee,M as $,p as v}from"./.pnpm-CyuAWpdG.js";import{w as Ie}from"./stats-B9TgZYZ_.js";import{_ as Ve}from"./index-Bkarz3gO.js";const Te={class:"performance-dashboard","element-loading-text":"正在汇总权限范围内的数据"},Re={class:"dashboard-header"},Pe={class:"dashboard-heading"},Be={class:"dashboard-heading__icon"},Ae={class:"dashboard-title-row"},Oe={class:"scope-badge"},je={key:0},Ue={class:"dashboard-actions"},Ge={key:0,class:"updated-at"},We={key:1,class:"dashboard-skeleton"},qe={class:"performance-strip","aria-label":"业绩概览"},He={class:"metric-card metric-card--primary"},Ke={class:"metric-value metric-value--money"},Qe={class:"metric-card"},Ye={class:"metric-value metric-value--money"},Je={class:"metric-card"},Xe={class:"metric-value metric-value--money"},Ze={key:0,class:"metric-card"},et={class:"metric-label-row"},tt={class:"metric-value metric-value--money"},at={class:"metric-card metric-card--clock"},nt={class:"metric-value metric-value--time"},ot={class:"metric-foot"},st={class:"operating-grid","aria-label":"今日运营指标"},rt={class:"metric-label"},lt={class:"metric-comparisons"},it={class:"metric-hint"},ct={class:"dashboard-grid dashboard-grid--rankings"},dt={class:"dashboard-panel ranking-panel"},_t={class:"panel-header"},mt={key:0},pt={class:"panel-header-actions"},ut={key:0,class:"ranking-list"},ft={class:"ranking-main"},gt={class:"ranking-copy"},vt={key:0,class:"ranking-self-tag"},yt={class:"ranking-meter","aria-hidden":"true"},kt={class:"ranking-value"},ht={class:"dashboard-panel ranking-panel"},bt={class:"panel-header"},wt={key:0,class:"ranking-list"},$t={class:"ranking-main"},xt={class:"ranking-copy"},Nt={key:0,class:"ranking-self-tag"},Ct={class:"ranking-meter","aria-hidden":"true"},Dt={class:"ranking-value ranking-value--money"},St={class:"dashboard-grid dashboard-grid--bottom"},Mt={class:"dashboard-panel trend-panel"},zt={class:"panel-header panel-header--stack-mobile"},Ft={class:"dashboard-panel target-panel"},Lt={class:"panel-header"},Et={class:"panel-meta"},It={class:"target-block"},Vt={class:"target-copy"},Tt={key:0},Rt={key:1},Pt={class:"target-block target-block--secondary"},Bt={class:"target-copy"},At={key:0,class:"target-empty-note"},Ot={class:"dashboard-notes"},jt={key:3,class:"dashboard-empty"},Ut=H({name:"performanceDashboardPage"}),Gt=H({...Ut,setup(Wt){const b=()=>({direction:"flat",rate:null,previous:0}),B=()=>({scope:{key:"",kind:"",scope_value:4,label:"",is_limited:!0,viewer_name:"",viewer_id:0,role_ids:[],role_names:[],department_names:[],visible_member_count:0},performance:{month_amount:0,month_compare_rate:null,month_compare_label:"",today_amount:0,today_compare_rate:null,today_compare_label:"",yesterday_amount:0,yesterday_compare_rate:null,yesterday_compare_label:"",personal_month_amount:0},today:{add_fans_count:0,appointment_total_count:0,low_amount_payment_count:0,interview_count:0,completed_order_count:0,completed_order_amount:0,paid_appointment_count:0,paid_appointment_rate:0,interview_receive_rate:0,comparisons:{add_fans_count:b(),appointment_total_count:b(),low_amount_payment_count:b(),interview_count:b(),completed_order_count:b(),completed_order_amount:b(),paid_appointment_rate:b(),interview_receive_rate:b()}},rankings:{appointments:{title:"实时挂号排行",kind:"assistant",metric:"registration",scope_label:"",items:[]},performance:{title:"今日部门业绩排行",kind:"dept",scope_label:"",items:[]}},filters:{ranking_departments:[],ranking_dept_id:0,ranking_selectable:!0},trend:{date_range:[],dates:[],registrations:[],appointments:[],leads:[],orders:[]},target:{year_month:"",target_amount:0,completed_amount:0,completion_rate:null,personal_amount:0,personal_contribution_rate:null,department_count:0},meta:{generated_at:"",timezone:"",commission_note:"",rate_note:""}}),e=Ee(B()),x=$(!1),N=$(!1),C=$(""),E=$("registrations"),D=$(),I=$(new Date);let V;const K={value:"id",label:"name",children:"children"},Q=[{label:"挂号",value:"registrations"},{label:"预约",value:"appointments"},{label:"进线",value:"leads"},{label:"诊单",value:"orders"}],Y=v(()=>{const n=e.scope.role_names.length?e.scope.role_names.join("、"):"管理员",a=e.scope.department_names.length?e.scope.department_names.join("、"):"未绑定部门";return`${e.scope.viewer_name||"当前账号"},${n},${a}`}),J=v(()=>[{key:"fans",label:"今日加粉",value:y(e.today.add_fans_count),hint:"按企微新增客户事件统计",comparisons:[e.today.comparisons.add_fans_count]},{key:"appointments",label:"今日预约",value:y(e.today.appointment_total_count),hint:"状态为已预约、已完成或改期,排除已取消",comparisons:[e.today.comparisons.appointment_total_count]},{key:"lowAmountPayments",label:"今日挂号",value:`${y(e.today.low_amount_payment_count)} `,hint:"已支付且实收金额大于 0、低于 10 元的订单",comparisons:[e.today.comparisons.low_amount_payment_count]},{key:"orders",label:"今日接诊 / 诊单金额",value:"",hint:"按业务订单统计,排除取消、拒收和退款",comparisons:[{...e.today.comparisons.completed_order_count,label:"诊单"},{...e.today.comparisons.completed_order_amount,label:"金额"}]},{key:"appointmentRate",label:"挂号率",value:S(e.today.paid_appointment_rate),hint:`挂号 ${y(e.today.paid_appointment_count)} / 加粉数`,comparisons:[e.today.comparisons.paid_appointment_rate]},{key:"receiveRate",label:"接诊率",value:S(e.today.interview_receive_rate),hint:"诊单数 / 面诊数",comparisons:[e.today.comparisons.interview_receive_rate]},{key:"interviews",label:"今日面诊",value:y(e.today.interview_count),hint:"状态为已完成的预约",comparisons:[e.today.comparisons.interview_count]}]),X=v(()=>new Intl.DateTimeFormat("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(I.value)),Z=v(()=>new Intl.DateTimeFormat("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",weekday:"short"}).format(I.value)),ee=v(()=>e.filters.ranking_selectable!==!1&&e.scope.kind!=="group_leader"&&e.rankings.appointments.kind!=="doctor"&&e.filters.ranking_departments.length>0),A=v(()=>e.rankings.appointments.metric==="appointment"?"预约":"挂号"),O=v(()=>{if(e.rankings.appointments.metric==="appointment")return"";const n=e.rankings.appointments.kind==="doctor"?"医生":"成员";return`${e.rankings.appointments.scope_label||"当前部门"}内${n}已支付且实收低于 10 元的订单数`}),te=v(()=>{const n=e.rankings.performance.scope_label||"当前部门";return e.rankings.performance.kind==="person"?e.scope.kind==="group_leader"?"本小组内今日计入业绩的个人订单":`${n}内今日计入业绩的个人订单`:`${n}内今日计入业绩的业务订单`}),ae=v(()=>Math.max(0,...e.rankings.appointments.items.map(n=>Number(n.count||0)))),ne=v(()=>Math.max(0,...e.rankings.performance.items.map(n=>Number(n.amount||0)))),oe=v(()=>{const a={registrations:{label:"挂号",data:e.trend.registrations},appointments:{label:"预约",data:e.trend.appointments},leads:{label:"进线",data:e.trend.leads},orders:{label:"诊单",data:e.trend.orders}}[E.value];return{animationDuration:320,tooltip:{trigger:"axis",valueFormatter:_=>`${y(_)} 条`},grid:{left:42,right:18,top:24,bottom:30,containLabel:!0},xAxis:{type:"category",boundaryGap:!1,data:e.trend.dates,axisLine:{lineStyle:{color:"#d9e0e7"}},axisLabel:{color:"#7d8996"}},yAxis:{type:"value",minInterval:1,splitLine:{lineStyle:{color:"#edf1f4"}},axisLabel:{color:"#7d8996"}},series:[{name:a.label,type:"line",smooth:.35,showSymbol:!0,symbolSize:7,data:a.data,lineStyle:{color:"#0f8f83",width:3},itemStyle:{color:"#0f8f83",borderColor:"#ffffff",borderWidth:2},areaStyle:{color:{type:"linear",x:0,y:0,x2:0,y2:1,colorStops:[{offset:0,color:"rgba(15, 143, 131, 0.20)"},{offset:1,color:"rgba(15, 143, 131, 0.01)"}]}}}]}}),k=(n,a=2)=>`¥${new Intl.NumberFormat("zh-CN",{minimumFractionDigits:a,maximumFractionDigits:a}).format(Number(n||0))}`,y=n=>new Intl.NumberFormat("zh-CN",{maximumFractionDigits:0}).format(Number(n||0)),S=n=>n===null?"暂无":`${Number(n||0).toFixed(1)}%`,T=n=>`${n>=0?"+":""}${Number(n).toFixed(1)}%`,R=n=>n===null||n===0?"":n>0?"is-positive":"is-negative",se=n=>n==="up"?"is-positive":n==="down"?"is-negative":"is-flat",re=n=>{const a=n.label?`${n.label} `:"";if(n.direction==="flat")return`${a}较昨日持平`;const _=n.direction==="up"?"上升":"下降";return n.rate===null?`${a}较昨日${_}(昨日为 0)`:`${a}较昨日${_} ${Math.abs(Number(n.rate)).toFixed(1)}%`},j=(n,a)=>a<=0||n<=0?"0%":`${Math.max(6,Math.min(100,Number(n)/a*100))}%`,U=n=>n===null||!Number.isFinite(Number(n))?0:Math.max(0,Math.min(100,Number(n))),w=async()=>{x.value=!0,C.value="";try{const n=await Ie({ranking_dept_id:N.value?D.value||0:void 0,_t:Date.now()});Object.assign(e,B(),n||{}),D.value=Number(e.filters.ranking_dept_id||0)||void 0,N.value=!0}catch(n){C.value=(n==null?void 0:n.msg)||(n==null?void 0:n.message)||"驾驶舱数据加载失败,请稍后重试"}finally{x.value=!1}},le=()=>{w()};return ue(()=>{w(),V=setInterval(()=>{I.value=new Date},1e3)}),fe(()=>{N.value&&w()}),ge(()=>{V&&clearInterval(V)}),(n,a)=>{const _=he,P=$e,ie=xe,ce=Ne,de=Ce,_e=Se,M=Me,me=ze,G=Le,pe=ye;return ve((o(),r("div",Te,[t("header",Re,[t("div",Pe,[t("div",Be,[i(_,null,{default:c(()=>[i(m(ke))]),_:1})]),t("div",null,[t("div",Ae,[a[2]||(a[2]=t("h1",null,"我的首页",-1)),t("span",Oe,[i(_,null,{default:c(()=>[i(m(be))]),_:1}),d(" "+s(e.scope.label||"数据范围"),1)])]),t("p",null,[d(s(Y.value)+" ",1),e.scope.visible_member_count>0?(o(),r("span",je," ,当前可见 "+s(e.scope.visible_member_count)+" 位成员 ",1)):g("",!0)])])]),t("div",Ue,[e.meta.generated_at?(o(),r("div",Ge," 数据更新于 "+s(e.meta.generated_at),1)):g("",!0),i(P,{icon:m(we),loading:x.value,onClick:w},{default:c(()=>[...a[3]||(a[3]=[d("刷新数据",-1)])]),_:1},8,["icon","loading"])])]),C.value?(o(),p(ie,{key:0,class:"dashboard-error",type:"error",closable:!1,"show-icon":"",title:C.value},{default:c(()=>[i(P,{size:"small",onClick:w},{default:c(()=>[...a[4]||(a[4]=[d("重新加载",-1)])]),_:1})]),_:1},8,["title"])):g("",!0),!N.value&&x.value?(o(),r("div",We,[i(ce,{rows:12,animated:""})])):N.value?(o(),r(u,{key:2},[t("section",qe,[t("article",He,[a[5]||(a[5]=t("div",{class:"metric-label"},"本月实时业绩",-1)),t("div",Ke,s(k(e.performance.month_amount)),1),t("div",{class:h(["metric-foot",R(e.performance.month_compare_rate)])},[e.performance.month_compare_rate!==null?(o(),r(u,{key:0},[e.performance.month_compare_rate>=0?(o(),p(_,{key:0},{default:c(()=>[i(m(z))]),_:1})):(o(),p(_,{key:1},{default:c(()=>[i(m(F))]),_:1})),d(" "+s(e.performance.month_compare_label)+" "+s(T(e.performance.month_compare_rate)),1)],64)):(o(),r(u,{key:1},[d("上月同期暂无可比数据")],64))],2)]),t("article",Qe,[a[6]||(a[6]=t("div",{class:"metric-label"},"今日新增业绩",-1)),t("div",Ye,s(k(e.performance.today_amount)),1),t("div",{class:h(["metric-foot",R(e.performance.today_compare_rate)])},[e.performance.today_compare_rate!==null?(o(),r(u,{key:0},[e.performance.today_compare_rate>=0?(o(),p(_,{key:0},{default:c(()=>[i(m(z))]),_:1})):(o(),p(_,{key:1},{default:c(()=>[i(m(F))]),_:1})),d(" "+s(e.performance.today_compare_label)+" "+s(T(e.performance.today_compare_rate)),1)],64)):(o(),r(u,{key:1},[d("昨日暂无可比数据")],64))],2)]),t("article",Je,[a[7]||(a[7]=t("div",{class:"metric-label"},"昨日新增业绩",-1)),t("div",Xe,s(k(e.performance.yesterday_amount)),1),t("div",{class:h(["metric-foot",R(e.performance.yesterday_compare_rate)])},[e.performance.yesterday_compare_rate!==null?(o(),r(u,{key:0},[e.performance.yesterday_compare_rate>=0?(o(),p(_,{key:0},{default:c(()=>[i(m(z))]),_:1})):(o(),p(_,{key:1},{default:c(()=>[i(m(F))]),_:1})),d(" "+s(e.performance.yesterday_compare_label)+" "+s(T(e.performance.yesterday_compare_rate)),1)],64)):(o(),r(u,{key:1},[d("前一日暂无可比数据")],64))],2)]),e.scope.kind!=="assistant"?(o(),r("article",Ze,[t("div",et,[a[8]||(a[8]=t("span",null,"本人本月业绩",-1)),i(de,{content:e.meta.commission_note,placement:"top"},{default:c(()=>[i(_,{class:"metric-help"},{default:c(()=>[i(m(W))]),_:1})]),_:1},8,["content"])]),t("div",tt,s(k(e.performance.personal_month_amount)),1),a[9]||(a[9]=t("div",{class:"metric-foot"},"仅统计当前登录账号",-1))])):g("",!0),t("article",at,[a[10]||(a[10]=t("div",{class:"metric-label"},"当前时间",-1)),t("div",nt,s(X.value),1),t("div",ot,s(Z.value),1)])]),t("section",st,[(o(!0),r(u,null,L(J.value,l=>(o(),r("article",{key:l.key,class:"metric-card metric-card--compact"},[t("div",rt,s(l.label),1),t("div",{class:h(["metric-value",{"metric-value--pair":l.key==="orders"}])},[l.key==="orders"?(o(),r(u,{key:0},[d(s(y(e.today.completed_order_count))+" ",1),a[11]||(a[11]=t("span",null,"/",-1)),d(" "+s(k(e.today.completed_order_amount)),1)],64)):(o(),r(u,{key:1},[d(s(l.value),1)],64))],2),t("div",lt,[(o(!0),r(u,null,L(l.comparisons,f=>(o(),r("div",{key:`${l.key}-${f.label||"total"}`,class:h(["metric-foot",se(f.direction)])},[f.direction==="up"?(o(),p(_,{key:0},{default:c(()=>[i(m(z))]),_:1})):f.direction==="down"?(o(),p(_,{key:1},{default:c(()=>[i(m(F))]),_:1})):(o(),p(_,{key:2},{default:c(()=>[i(m(De))]),_:1})),d(" "+s(re(f)),1)],2))),128))]),t("div",it,s(l.hint),1)]))),128))]),t("section",ct,[t("article",dt,[t("div",_t,[t("div",null,[t("h2",null,s(e.rankings.appointments.title),1),O.value?(o(),r("p",mt,s(O.value),1)):g("",!0)]),t("div",pt,[ee.value?(o(),p(_e,{key:0,modelValue:D.value,"onUpdate:modelValue":a[0]||(a[0]=l=>D.value=l),data:e.filters.ranking_departments,props:K,"node-key":"id","check-strictly":"",clearable:"",filterable:"","default-expand-all":"",placeholder:"全部部门",class:"ranking-dept-select",onChange:le},null,8,["modelValue","data"])):g("",!0),a[12]||(a[12]=t("span",{class:"panel-meta"},"实时",-1))])]),e.rankings.appointments.items.length?(o(),r("div",ut,[(o(!0),r(u,null,L(e.rankings.appointments.items,(l,f)=>(o(),r("div",{key:`appointment-${l.id}-${f}`,class:h(["ranking-row",{"is-self":l.is_self}])},[t("span",{class:h(["ranking-index",{"is-top":f<2,"is-self":l.is_self}])},s(f+1),3),t("div",ft,[t("div",gt,[t("strong",null,[d(s(l.name||"未命名成员")+" ",1),l.is_self?(o(),r("i",vt,"我")):g("",!0)]),t("span",null,s(y(l.count))+" "+s(A.value),1)]),t("div",yt,[t("span",{style:q({width:j(l.count,ae.value)})},null,4)])]),t("b",kt,s(y(l.count)),1)],2))),128))])):(o(),p(M,{key:1,"image-size":72,description:`当前数据范围内暂无${A.value}排行`},null,8,["description"]))]),t("article",ht,[t("div",bt,[t("div",null,[t("h2",null,s(e.rankings.performance.title),1),t("p",null,s(te.value),1)]),a[13]||(a[13]=t("span",{class:"panel-meta"},"今日",-1))]),e.rankings.performance.items.length?(o(),r("div",wt,[(o(!0),r(u,null,L(e.rankings.performance.items,(l,f)=>(o(),r("div",{key:`performance-${l.id}-${f}`,class:h(["ranking-row",{"is-self":l.is_self}])},[t("span",{class:h(["ranking-index",{"is-top":f<2,"is-self":l.is_self}])},s(f+1),3),t("div",$t,[t("div",xt,[t("strong",null,[d(s(l.name||(e.rankings.performance.kind==="person"?"未命名成员":"未命名部门"))+" ",1),l.is_self?(o(),r("i",Nt,"我")):g("",!0)]),t("span",null,s(y(l.count))+" 个诊单",1)]),t("div",Ct,[t("span",{style:q({width:j(l.amount,ne.value)})},null,4)])]),t("b",Dt,s(k(l.amount)),1)],2))),128))])):(o(),p(M,{key:1,"image-size":72,description:"当前数据范围内暂无业务订单业绩"}))])]),t("section",St,[t("article",Mt,[t("div",zt,[t("div",null,[a[14]||(a[14]=t("h2",null,"近 7 天数据趋势",-1)),t("p",null,s(e.trend.date_range.join(" 至 ")),1)]),i(me,{modelValue:E.value,"onUpdate:modelValue":a[1]||(a[1]=l=>E.value=l),options:Q},null,8,["modelValue"])]),e.trend.dates.length?(o(),p(m(Fe),{key:0,class:"trend-chart",option:oe.value,autoresize:""},null,8,["option"])):(o(),p(M,{key:1,"image-size":72,description:"暂无趋势数据"}))]),t("article",Ft,[t("div",Lt,[t("div",null,[a[15]||(a[15]=t("h2",null,"进度目标",-1)),t("p",null,s(e.target.year_month)+",按当前角色数据范围计算",1)]),t("span",Et,s(e.target.department_count)+" 个目标部门",1)]),t("div",It,[t("div",Vt,[t("div",null,[a[16]||(a[16]=t("span",null,"范围目标进度",-1)),e.target.target_amount>0?(o(),r("strong",Tt,s(S(e.target.completion_rate)),1)):(o(),r("strong",Rt,"未设置"))]),t("p",null,[d(" 已完成 "+s(k(e.target.completed_amount))+" ",1),e.target.target_amount>0?(o(),r(u,{key:0},[d(" ,目标 "+s(k(e.target.target_amount)),1)],64)):g("",!0)])]),i(G,{percentage:U(e.target.completion_rate),"show-text":!1,"stroke-width":12,color:"#0f8f83"},null,8,["percentage"])]),t("div",Pt,[t("div",Bt,[t("div",null,[a[17]||(a[17]=t("span",null,"本人业绩贡献",-1)),t("strong",null,s(S(e.target.personal_contribution_rate)),1)]),t("p",null," 本人 "+s(k(e.target.personal_amount))+",占当前范围已完成业绩 ",1)]),i(G,{percentage:U(e.target.personal_contribution_rate),"show-text":!1,"stroke-width":12,color:"#738196"},null,8,["percentage"])]),e.target.target_amount<=0?(o(),r("div",At," 当前范围尚未设置本月部门目标,已完成业绩仍会正常统计。 ")):g("",!0)])]),t("footer",Ot,[i(_,null,{default:c(()=>[i(m(W))]),_:1}),t("span",null,s(e.meta.rate_note),1)])],64)):C.value?(o(),r("div",jt,[i(M,{description:"驾驶舱数据加载失败"},{default:c(()=>[i(P,{type:"primary",onClick:w},{default:c(()=>[...a[18]||(a[18]=[d("重新加载",-1)])]),_:1})]),_:1})])):g("",!0)])),[[pe,x.value]])}}}),Qt=Ve(Gt,[["__scopeId","data-v-8a87b9f7"]]);export{Qt as default}; diff --git a/server/public/admin/assets/index-DxYFVchx.js b/server/public/admin/assets/index-DhzMB1j0.js similarity index 95% rename from server/public/admin/assets/index-DxYFVchx.js rename to server/public/admin/assets/index-DhzMB1j0.js index 54d592a89..ccda49b11 100644 --- a/server/public/admin/assets/index-DxYFVchx.js +++ b/server/public/admin/assets/index-DhzMB1j0.js @@ -1 +1 @@ -import{o as D,bs as A,x as O,bp as R,q as s,r as y,v as e,D as l,bd as T,u as o,bb as $,aA as z,bc as G,bh as H,bi as J,F as M,G as Q,O as d,K as W,L as p,bj as X,s as x,ac as _,bk as Y,bl as Z,P as ee,I as te,bn as le,C as ae,aC as oe}from"./.pnpm-CyuAWpdG.js";import{_ as ne}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{l as E,c as ie,h as se,j as re}from"./index-Dxvz9lb1.js";import{k as de,l as ce,m as me,j as ue}from"./article-D_HL_wgA.js";import{u as pe}from"./useDictOptions-ByJNOzqa.js";import{u as _e}from"./usePaging-CghUEVfD.js";const fe={class:"article-lists"},be={class:"flex justify-end mt-4"},ve=D({name:"articleLists"}),xe=D({...ve,setup(we){const i=oe({title:"",cid:"",is_show:""}),{pager:c,getLists:r,resetPage:h,resetParams:P}=_e({fetchFun:de,params:i}),{optionsData:L}=pe({article_cate:{api:ue}}),U=async(f,a)=>{try{await ce({id:a,is_show:f}),r()}catch{r()}},B=async f=>{await re.confirm("确定要删除?"),await me({id:f}),r()};return A(()=>{r()}),r(),(f,a)=>{const g=z,b=$,m=J,V=H,u=W,F=T,k=X,S=ie,C=O("router-link"),n=Z,j=se,I=te,K=Y,N=ne,v=R("perms"),q=le;return s(),y("div",fe,[e(k,{class:"!border-none",shadow:"never"},{default:l(()=>[e(F,{ref:"formRef",class:"mb-[-16px]",model:o(i),inline:!0},{default:l(()=>[e(b,{class:"w-[280px]",label:"文章标题"},{default:l(()=>[e(g,{modelValue:o(i).title,"onUpdate:modelValue":a[0]||(a[0]=t=>o(i).title=t),placeholder:"输入文章标题",clearable:"",onKeyup:G(o(h),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(b,{class:"w-[280px]",label:"栏目名称"},{default:l(()=>[e(V,{modelValue:o(i).cid,"onUpdate:modelValue":a[1]||(a[1]=t=>o(i).cid=t)},{default:l(()=>[e(m,{label:"全部",value:""}),(s(!0),y(M,null,Q(o(L).article_cate,t=>(s(),d(m,{key:t.id,label:t.name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(b,{class:"w-[280px]",label:"文章状态"},{default:l(()=>[e(V,{modelValue:o(i).is_show,"onUpdate:modelValue":a[2]||(a[2]=t=>o(i).is_show=t)},{default:l(()=>[e(m,{label:"全部",value:""}),e(m,{label:"显示",value:1}),e(m,{label:"隐藏",value:0})]),_:1},8,["modelValue"])]),_:1}),e(b,null,{default:l(()=>[e(u,{type:"primary",onClick:o(h)},{default:l(()=>[...a[4]||(a[4]=[p("查询",-1)])]),_:1},8,["onClick"]),e(u,{onClick:o(P)},{default:l(()=>[...a[5]||(a[5]=[p("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),e(k,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[x("div",null,[_((s(),d(C,{to:{path:o(E)("article.article/add:edit")}},{default:l(()=>[e(u,{type:"primary",class:"mb-4"},{icon:l(()=>[e(S,{name:"el-icon-Plus"})]),default:l(()=>[a[6]||(a[6]=p(" 发布文章 ",-1))]),_:1})]),_:1},8,["to"])),[[v,["article.article/add","article.article/add:edit"]]])]),_((s(),d(K,{size:"large",data:o(c).lists},{default:l(()=>[e(n,{label:"ID",prop:"id","min-width":"80"}),e(n,{label:"封面","min-width":"100"},{default:l(({row:t})=>[t.image?(s(),d(j,{key:0,src:t.image,width:60,height:45,"preview-src-list":[t.image],"preview-teleported":"",fit:"contain"},null,8,["src","preview-src-list"])):ee("",!0)]),_:1}),e(n,{label:"标题",prop:"title","min-width":"160","show-tooltip-when-overflow":""}),e(n,{label:"栏目",prop:"cate_name","min-width":"100"}),e(n,{label:"作者",prop:"author","min-width":"120"}),e(n,{label:"浏览量",prop:"click","min-width":"100"}),e(n,{label:"状态","min-width":"100"},{default:l(({row:t})=>[_(e(I,{modelValue:t.is_show,"onUpdate:modelValue":w=>t.is_show=w,"active-value":1,"inactive-value":0,onChange:w=>U(w,t.id)},null,8,["modelValue","onUpdate:modelValue","onChange"]),[[v,["article.article/updateStatus"]]])]),_:1}),e(n,{label:"排序",prop:"sort","min-width":"100"}),e(n,{label:"发布时间",prop:"create_time","min-width":"120"}),e(n,{label:"操作",width:"120",fixed:"right"},{default:l(({row:t})=>[_((s(),d(u,{type:"primary",link:""},{default:l(()=>[e(C,{to:{path:o(E)("article.article/add:edit"),query:{id:t.id}}},{default:l(()=>[...a[7]||(a[7]=[p(" 编辑 ",-1)])]),_:1},8,["to"])]),_:2},1024)),[[v,["article.article/edit","article.article/add:edit"]]]),_((s(),d(u,{type:"danger",link:"",onClick:w=>B(t.id)},{default:l(()=>[...a[8]||(a[8]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])),[[v,["article.article/delete"]]])]),_:1})]),_:1},8,["data"])),[[q,o(c).loading]]),x("div",be,[e(N,{modelValue:o(c),"onUpdate:modelValue":a[3]||(a[3]=t=>ae(c)?c.value=t:null),onChange:o(r)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{xe as default}; +import{o as D,bs as A,x as O,bp as R,q as s,r as y,v as e,D as l,bd as T,u as o,bb as $,aA as z,bc as G,bh as H,bi as J,F as M,G as Q,O as d,K as W,L as p,bj as X,s as x,ac as _,bk as Y,bl as Z,P as ee,I as te,bn as le,C as ae,aC as oe}from"./.pnpm-CyuAWpdG.js";import{_ as ne}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{l as E,c as ie,h as se,j as re}from"./index-Bkarz3gO.js";import{k as de,l as ce,m as me,j as ue}from"./article-Cct6St-z.js";import{u as pe}from"./useDictOptions-dnxxXBSU.js";import{u as _e}from"./usePaging-CghUEVfD.js";const fe={class:"article-lists"},be={class:"flex justify-end mt-4"},ve=D({name:"articleLists"}),xe=D({...ve,setup(we){const i=oe({title:"",cid:"",is_show:""}),{pager:c,getLists:r,resetPage:h,resetParams:P}=_e({fetchFun:de,params:i}),{optionsData:L}=pe({article_cate:{api:ue}}),U=async(f,a)=>{try{await ce({id:a,is_show:f}),r()}catch{r()}},B=async f=>{await re.confirm("确定要删除?"),await me({id:f}),r()};return A(()=>{r()}),r(),(f,a)=>{const g=z,b=$,m=J,V=H,u=W,F=T,k=X,S=ie,C=O("router-link"),n=Z,j=se,I=te,K=Y,N=ne,v=R("perms"),q=le;return s(),y("div",fe,[e(k,{class:"!border-none",shadow:"never"},{default:l(()=>[e(F,{ref:"formRef",class:"mb-[-16px]",model:o(i),inline:!0},{default:l(()=>[e(b,{class:"w-[280px]",label:"文章标题"},{default:l(()=>[e(g,{modelValue:o(i).title,"onUpdate:modelValue":a[0]||(a[0]=t=>o(i).title=t),placeholder:"输入文章标题",clearable:"",onKeyup:G(o(h),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(b,{class:"w-[280px]",label:"栏目名称"},{default:l(()=>[e(V,{modelValue:o(i).cid,"onUpdate:modelValue":a[1]||(a[1]=t=>o(i).cid=t)},{default:l(()=>[e(m,{label:"全部",value:""}),(s(!0),y(M,null,Q(o(L).article_cate,t=>(s(),d(m,{key:t.id,label:t.name,value:t.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(b,{class:"w-[280px]",label:"文章状态"},{default:l(()=>[e(V,{modelValue:o(i).is_show,"onUpdate:modelValue":a[2]||(a[2]=t=>o(i).is_show=t)},{default:l(()=>[e(m,{label:"全部",value:""}),e(m,{label:"显示",value:1}),e(m,{label:"隐藏",value:0})]),_:1},8,["modelValue"])]),_:1}),e(b,null,{default:l(()=>[e(u,{type:"primary",onClick:o(h)},{default:l(()=>[...a[4]||(a[4]=[p("查询",-1)])]),_:1},8,["onClick"]),e(u,{onClick:o(P)},{default:l(()=>[...a[5]||(a[5]=[p("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),e(k,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[x("div",null,[_((s(),d(C,{to:{path:o(E)("article.article/add:edit")}},{default:l(()=>[e(u,{type:"primary",class:"mb-4"},{icon:l(()=>[e(S,{name:"el-icon-Plus"})]),default:l(()=>[a[6]||(a[6]=p(" 发布文章 ",-1))]),_:1})]),_:1},8,["to"])),[[v,["article.article/add","article.article/add:edit"]]])]),_((s(),d(K,{size:"large",data:o(c).lists},{default:l(()=>[e(n,{label:"ID",prop:"id","min-width":"80"}),e(n,{label:"封面","min-width":"100"},{default:l(({row:t})=>[t.image?(s(),d(j,{key:0,src:t.image,width:60,height:45,"preview-src-list":[t.image],"preview-teleported":"",fit:"contain"},null,8,["src","preview-src-list"])):ee("",!0)]),_:1}),e(n,{label:"标题",prop:"title","min-width":"160","show-tooltip-when-overflow":""}),e(n,{label:"栏目",prop:"cate_name","min-width":"100"}),e(n,{label:"作者",prop:"author","min-width":"120"}),e(n,{label:"浏览量",prop:"click","min-width":"100"}),e(n,{label:"状态","min-width":"100"},{default:l(({row:t})=>[_(e(I,{modelValue:t.is_show,"onUpdate:modelValue":w=>t.is_show=w,"active-value":1,"inactive-value":0,onChange:w=>U(w,t.id)},null,8,["modelValue","onUpdate:modelValue","onChange"]),[[v,["article.article/updateStatus"]]])]),_:1}),e(n,{label:"排序",prop:"sort","min-width":"100"}),e(n,{label:"发布时间",prop:"create_time","min-width":"120"}),e(n,{label:"操作",width:"120",fixed:"right"},{default:l(({row:t})=>[_((s(),d(u,{type:"primary",link:""},{default:l(()=>[e(C,{to:{path:o(E)("article.article/add:edit"),query:{id:t.id}}},{default:l(()=>[...a[7]||(a[7]=[p(" 编辑 ",-1)])]),_:1},8,["to"])]),_:2},1024)),[[v,["article.article/edit","article.article/add:edit"]]]),_((s(),d(u,{type:"danger",link:"",onClick:w=>B(t.id)},{default:l(()=>[...a[8]||(a[8]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])),[[v,["article.article/delete"]]])]),_:1})]),_:1},8,["data"])),[[q,o(c).loading]]),x("div",be,[e(N,{modelValue:o(c),"onUpdate:modelValue":a[3]||(a[3]=t=>ae(c)?c.value=t:null),onChange:o(r)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{xe as default}; diff --git a/server/public/admin/assets/index-kyFLvGTL.js b/server/public/admin/assets/index-DtgRYEHe.js similarity index 94% rename from server/public/admin/assets/index-kyFLvGTL.js rename to server/public/admin/assets/index-DtgRYEHe.js index c2f58192c..0d346aa07 100644 --- a/server/public/admin/assets/index-kyFLvGTL.js +++ b/server/public/admin/assets/index-DtgRYEHe.js @@ -1 +1 @@ -import{o as T,x as O,bp as Z,q as s,r as y,v as t,D as o,bd as H,u as n,bb as J,aA as Q,bc as K,K as W,L as d,bj as X,ac as i,bn as Y,O as u,s as w,bk as ee,bl as te,$ as oe,Z as ne,_ as ae,C as le,P as se,aC as S,M as re}from"./.pnpm-CyuAWpdG.js";import{_ as de}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as ie,l as me,j as x}from"./index-Dxvz9lb1.js";import{b as ue,c as pe,d as _e,e as ce,s as fe}from"./code-Bx-mc3Tz.js";import{u as be}from"./usePaging-CghUEVfD.js";import{_ as ge}from"./code-preview.vue_vue_type_script_setup_true_lang-B09gNHmz.js";import{_ as ye}from"./data-table.vue_vue_type_script_setup_true_lang-7I2yFg3i.js";import"./index-BnfLT5cB.js";const we={class:"code-generation"},ve={class:"flex"},Ce={class:"mt-4"},ke={class:"flex items-center"},Ve={class:"flex justify-end mt-4"},xe=T({name:"codeGenerate"}),Ie=T({...xe,setup(Ee){const p=S({table_name:"",table_comment:""}),_=S({show:!1,loading:!1,code:[]}),{pager:f,getLists:g,resetParams:B,resetPage:v}=be({fetchFun:ue,params:p}),b=re([]),I=a=>{b.value=a.map(({id:e})=>e)},N=async a=>{await x.confirm("确定要同步表结构?"),await fe({id:a})},E=async a=>{await x.confirm("确定要删除?"),await pe({id:a}),g()},U=async a=>{const e=await _e({id:a});_.code=e,_.show=!0},j=a=>a.some(e=>e.generate_type==1),D=async a=>{if(j(a))return x.msgError("生成方式为生成到模块,请在前端开发模式下使用,详细参考文档");const e=await ce({id:a});e.file&&window.open(e.file,"_blank")},F=(a,e)=>{switch(a){case"generate":D([e.id]);break;case"sync":N(e.id);break;case"delete":E(e.id)}};return g(),(a,e)=>{const P=Q,C=J,r=W,G=H,$=X,k=ie,c=te,L=O("router-link"),V=ae,M=ne,q=oe,z=ee,A=de,m=Z("perms"),R=Y;return s(),y("div",we,[t($,{class:"!border-none",shadow:"never"},{default:o(()=>[t(G,{class:"mb-[-16px]",model:n(p),inline:""},{default:o(()=>[t(C,{class:"w-[280px]",label:"表名称"},{default:o(()=>[t(P,{modelValue:n(p).table_name,"onUpdate:modelValue":e[0]||(e[0]=l=>n(p).table_name=l),clearable:"",onKeyup:K(n(v),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(C,{class:"w-[280px]",label:"表描述"},{default:o(()=>[t(P,{modelValue:n(p).table_comment,"onUpdate:modelValue":e[1]||(e[1]=l=>n(p).table_comment=l),clearable:"",onKeyup:K(n(v),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(C,null,{default:o(()=>[t(r,{type:"primary",onClick:n(v)},{default:o(()=>[...e[6]||(e[6]=[d("查询",-1)])]),_:1},8,["onClick"]),t(r,{onClick:n(B)},{default:o(()=>[...e[7]||(e[7]=[d("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),i((s(),u($,{class:"!border-none mt-4",shadow:"never"},{default:o(()=>[w("div",ve,[i((s(),u(ye,{class:"inline-block mr-[10px]",onSuccess:n(g)},{default:o(()=>[t(r,{type:"primary"},{icon:o(()=>[t(k,{name:"el-icon-Plus"})]),default:o(()=>[e[8]||(e[8]=d(" 导入数据表 ",-1))]),_:1})]),_:1},8,["onSuccess"])),[[m,["tools.generator/selectTable"]]]),i((s(),u(r,{disabled:!n(b).length,onClick:e[2]||(e[2]=l=>E(n(b))),type:"danger"},{icon:o(()=>[t(k,{name:"el-icon-Delete"})]),default:o(()=>[e[9]||(e[9]=d(" 删除 ",-1))]),_:1},8,["disabled"])),[[m,["tools.generator/delete"]]]),i((s(),u(r,{disabled:!n(b).length,onClick:e[3]||(e[3]=l=>D(n(b)))},{default:o(()=>[...e[10]||(e[10]=[d(" 生成代码 ",-1)])]),_:1},8,["disabled"])),[[m,["tools.generator/generate"]]])]),w("div",Ce,[t(z,{data:n(f).lists,size:"large",onSelectionChange:I},{default:o(()=>[t(c,{type:"selection",width:"55"}),t(c,{label:"表名称",prop:"table_name","min-width":"180"}),t(c,{label:"表描述",prop:"table_comment","min-width":"180"}),t(c,{label:"创建时间",prop:"create_time","min-width":"180"}),t(c,{label:"更新时间",prop:"update_time","min-width":"180"}),t(c,{label:"操作",width:"160",fixed:"right"},{default:o(({row:l})=>[w("div",ke,[i((s(),u(r,{type:"primary",link:"",onClick:h=>U(l.id)},{default:o(()=>[...e[11]||(e[11]=[d(" 预览 ",-1)])]),_:1},8,["onClick"])),[[m,["tools.generator/preview"]]]),t(r,{type:"primary",link:""},{default:o(()=>[i((s(),u(L,{to:{path:n(me)("tools.generator/edit"),query:{id:l.id}}},{default:o(()=>[...e[12]||(e[12]=[d(" 编辑 ",-1)])]),_:1},8,["to"])),[[m,["tools.generator/edit"]]])]),_:2},1024),i((s(),u(q,{class:"ml-2",onCommand:h=>F(h,l)},{dropdown:o(()=>[t(M,null,{default:o(()=>[i((s(),y("div",null,[t(V,{command:"generate"},{default:o(()=>[t(r,{type:"primary",link:""},{default:o(()=>[...e[14]||(e[14]=[d(" 生成代码 ",-1)])]),_:1})]),_:1})])),[[m,["tools.generator/generate"]]]),i((s(),y("div",null,[t(V,{command:"sync"},{default:o(()=>[t(r,{type:"primary",link:""},{default:o(()=>[...e[15]||(e[15]=[d(" 同步 ",-1)])]),_:1})]),_:1})])),[[m,["tools.generator/syncColumn"]]]),i((s(),y("div",null,[t(V,{command:"delete"},{default:o(()=>[t(r,{type:"danger",link:""},{default:o(()=>[...e[16]||(e[16]=[d(" 删除 ",-1)])]),_:1})]),_:1})])),[[m,["tools.generator/delete"]]])]),_:1})]),default:o(()=>[t(r,{type:"primary",link:""},{default:o(()=>[e[13]||(e[13]=d(" 更多 ",-1)),t(k,{name:"el-icon-ArrowDown",size:14})]),_:1})]),_:1},8,["onCommand"])),[[m,["tools.generator/generate","tools.generator/syncColumn","tools.generator/delete"]]])])]),_:1})]),_:1},8,["data"])]),w("div",Ve,[t(A,{modelValue:n(f),"onUpdate:modelValue":e[4]||(e[4]=l=>le(f)?f.value=l:null),onChange:n(g)},null,8,["modelValue","onChange"])])]),_:1})),[[R,n(f).loading]]),n(_).show?(s(),u(ge,{key:0,modelValue:n(_).show,"onUpdate:modelValue":e[5]||(e[5]=l=>n(_).show=l),code:n(_).code},null,8,["modelValue","code"])):se("",!0)])}}});export{Ie as default}; +import{o as T,x as O,bp as Z,q as s,r as y,v as t,D as o,bd as H,u as n,bb as J,aA as Q,bc as K,K as W,L as d,bj as X,ac as i,bn as Y,O as u,s as w,bk as ee,bl as te,$ as oe,Z as ne,_ as ae,C as le,P as se,aC as S,M as re}from"./.pnpm-CyuAWpdG.js";import{_ as de}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as ie,l as me,j as x}from"./index-Bkarz3gO.js";import{b as ue,c as pe,d as _e,e as ce,s as fe}from"./code-C__TNCcp.js";import{u as be}from"./usePaging-CghUEVfD.js";import{_ as ge}from"./code-preview.vue_vue_type_script_setup_true_lang-D4QV-rVa.js";import{_ as ye}from"./data-table.vue_vue_type_script_setup_true_lang-D8E8ySzm.js";import"./index-CS5Wg0xx.js";const we={class:"code-generation"},ve={class:"flex"},Ce={class:"mt-4"},ke={class:"flex items-center"},Ve={class:"flex justify-end mt-4"},xe=T({name:"codeGenerate"}),Ie=T({...xe,setup(Ee){const p=S({table_name:"",table_comment:""}),_=S({show:!1,loading:!1,code:[]}),{pager:f,getLists:g,resetParams:B,resetPage:v}=be({fetchFun:ue,params:p}),b=re([]),I=a=>{b.value=a.map(({id:e})=>e)},N=async a=>{await x.confirm("确定要同步表结构?"),await fe({id:a})},E=async a=>{await x.confirm("确定要删除?"),await pe({id:a}),g()},U=async a=>{const e=await _e({id:a});_.code=e,_.show=!0},j=a=>a.some(e=>e.generate_type==1),D=async a=>{if(j(a))return x.msgError("生成方式为生成到模块,请在前端开发模式下使用,详细参考文档");const e=await ce({id:a});e.file&&window.open(e.file,"_blank")},F=(a,e)=>{switch(a){case"generate":D([e.id]);break;case"sync":N(e.id);break;case"delete":E(e.id)}};return g(),(a,e)=>{const P=Q,C=J,r=W,G=H,$=X,k=ie,c=te,L=O("router-link"),V=ae,M=ne,q=oe,z=ee,A=de,m=Z("perms"),R=Y;return s(),y("div",we,[t($,{class:"!border-none",shadow:"never"},{default:o(()=>[t(G,{class:"mb-[-16px]",model:n(p),inline:""},{default:o(()=>[t(C,{class:"w-[280px]",label:"表名称"},{default:o(()=>[t(P,{modelValue:n(p).table_name,"onUpdate:modelValue":e[0]||(e[0]=l=>n(p).table_name=l),clearable:"",onKeyup:K(n(v),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(C,{class:"w-[280px]",label:"表描述"},{default:o(()=>[t(P,{modelValue:n(p).table_comment,"onUpdate:modelValue":e[1]||(e[1]=l=>n(p).table_comment=l),clearable:"",onKeyup:K(n(v),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(C,null,{default:o(()=>[t(r,{type:"primary",onClick:n(v)},{default:o(()=>[...e[6]||(e[6]=[d("查询",-1)])]),_:1},8,["onClick"]),t(r,{onClick:n(B)},{default:o(()=>[...e[7]||(e[7]=[d("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),i((s(),u($,{class:"!border-none mt-4",shadow:"never"},{default:o(()=>[w("div",ve,[i((s(),u(ye,{class:"inline-block mr-[10px]",onSuccess:n(g)},{default:o(()=>[t(r,{type:"primary"},{icon:o(()=>[t(k,{name:"el-icon-Plus"})]),default:o(()=>[e[8]||(e[8]=d(" 导入数据表 ",-1))]),_:1})]),_:1},8,["onSuccess"])),[[m,["tools.generator/selectTable"]]]),i((s(),u(r,{disabled:!n(b).length,onClick:e[2]||(e[2]=l=>E(n(b))),type:"danger"},{icon:o(()=>[t(k,{name:"el-icon-Delete"})]),default:o(()=>[e[9]||(e[9]=d(" 删除 ",-1))]),_:1},8,["disabled"])),[[m,["tools.generator/delete"]]]),i((s(),u(r,{disabled:!n(b).length,onClick:e[3]||(e[3]=l=>D(n(b)))},{default:o(()=>[...e[10]||(e[10]=[d(" 生成代码 ",-1)])]),_:1},8,["disabled"])),[[m,["tools.generator/generate"]]])]),w("div",Ce,[t(z,{data:n(f).lists,size:"large",onSelectionChange:I},{default:o(()=>[t(c,{type:"selection",width:"55"}),t(c,{label:"表名称",prop:"table_name","min-width":"180"}),t(c,{label:"表描述",prop:"table_comment","min-width":"180"}),t(c,{label:"创建时间",prop:"create_time","min-width":"180"}),t(c,{label:"更新时间",prop:"update_time","min-width":"180"}),t(c,{label:"操作",width:"160",fixed:"right"},{default:o(({row:l})=>[w("div",ke,[i((s(),u(r,{type:"primary",link:"",onClick:h=>U(l.id)},{default:o(()=>[...e[11]||(e[11]=[d(" 预览 ",-1)])]),_:1},8,["onClick"])),[[m,["tools.generator/preview"]]]),t(r,{type:"primary",link:""},{default:o(()=>[i((s(),u(L,{to:{path:n(me)("tools.generator/edit"),query:{id:l.id}}},{default:o(()=>[...e[12]||(e[12]=[d(" 编辑 ",-1)])]),_:1},8,["to"])),[[m,["tools.generator/edit"]]])]),_:2},1024),i((s(),u(q,{class:"ml-2",onCommand:h=>F(h,l)},{dropdown:o(()=>[t(M,null,{default:o(()=>[i((s(),y("div",null,[t(V,{command:"generate"},{default:o(()=>[t(r,{type:"primary",link:""},{default:o(()=>[...e[14]||(e[14]=[d(" 生成代码 ",-1)])]),_:1})]),_:1})])),[[m,["tools.generator/generate"]]]),i((s(),y("div",null,[t(V,{command:"sync"},{default:o(()=>[t(r,{type:"primary",link:""},{default:o(()=>[...e[15]||(e[15]=[d(" 同步 ",-1)])]),_:1})]),_:1})])),[[m,["tools.generator/syncColumn"]]]),i((s(),y("div",null,[t(V,{command:"delete"},{default:o(()=>[t(r,{type:"danger",link:""},{default:o(()=>[...e[16]||(e[16]=[d(" 删除 ",-1)])]),_:1})]),_:1})])),[[m,["tools.generator/delete"]]])]),_:1})]),default:o(()=>[t(r,{type:"primary",link:""},{default:o(()=>[e[13]||(e[13]=d(" 更多 ",-1)),t(k,{name:"el-icon-ArrowDown",size:14})]),_:1})]),_:1},8,["onCommand"])),[[m,["tools.generator/generate","tools.generator/syncColumn","tools.generator/delete"]]])])]),_:1})]),_:1},8,["data"])]),w("div",Ve,[t(A,{modelValue:n(f),"onUpdate:modelValue":e[4]||(e[4]=l=>le(f)?f.value=l:null),onChange:n(g)},null,8,["modelValue","onChange"])])]),_:1})),[[R,n(f).loading]]),n(_).show?(s(),u(ge,{key:0,modelValue:n(_).show,"onUpdate:modelValue":e[5]||(e[5]=l=>n(_).show=l),code:n(_).code},null,8,["modelValue","code"])):se("",!0)])}}});export{Ie as default}; diff --git a/server/public/admin/assets/index-Dxvz9lb1.js b/server/public/admin/assets/index-Dxvz9lb1.js deleted file mode 100644 index c7f9f1692..000000000 --- a/server/public/admin/assets/index-Dxvz9lb1.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/404-D0vxTsay.js","assets/error-Ce2og2WO.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/error-Cz3CexuM.css","assets/403-BMBB_v5E.js","assets/login-pFp7rOH_.js","assets/useLockFn-d8ytjraO.js","assets/footer.vue_vue_type_script_setup_true_lang-DVmBDxqU.js","assets/login-C0033_nd.css","assets/change-password-pIHWLEVG.js","assets/change-password-DRfsLJ26.css","assets/bind-work-wechat-BRSOS94Y.js","assets/wecomOauthPostMessage-C_e6VGrO.js","assets/bind-work-wechat-BX1gqwq1.css","assets/setting-DOvqZWBR.js","assets/index-9qT8_5W1.js","assets/index-DoFDMZdP.css","assets/picker-BDO86vcM.js","assets/index-BnfLT5cB.js","assets/index-B3imPWFk.css","assets/index-yD39j6dM.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-ClBYIwNX.js","assets/index-D0f1Mn00.css","assets/index-BU3OYnKm.js","assets/file-CefRfHD9.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/setting-CxqqGetv.css","assets/progress-BVpNfzBl.js","assets/dayjs-B2bPhvDy.js","assets/doctor-8vo_5fa4.js","assets/progress-99NT9ysL.css","assets/pc_details-uATI737f.js","assets/decoration-9ln5Pyvl.js","assets/preview-pc-ByidwxXs.js","assets/index-DdPJHEsY.js","assets/attr-BKcZmDiX.js","assets/picker-BKygjDQE.js","assets/article-D_HL_wgA.js","assets/picker-JBYDNsl5.css","assets/attr-lNortPsv.css","assets/content.vue_vue_type_script_setup_true_lang-DVlBS5Y8.js","assets/decoration-img-DKpVnT4z.js","assets/decoration-img-C5XvHl9_.css","assets/attr.vue_vue_type_script_setup_true_lang-DQUc65nD.js","assets/content-CkQUB7ti.js","assets/content-DXAsZ7EV.css","assets/attr.vue_vue_type_script_setup_true_lang-Co9N5gOC.js","assets/content.vue_vue_type_script_setup_true_lang-D3yhrH9m.js","assets/attr.vue_vue_type_script_setup_true_lang-BUrcLo0c.js","assets/add-nav.vue_vue_type_script_setup_true_lang-CaeukMqg.js","assets/content-BtlOdmdD.js","assets/content-Dy_alH9u.css","assets/attr.vue_vue_type_script_setup_true_lang-kgBs74gd.js","assets/content.vue_vue_type_script_setup_true_lang-CwwLmi2B.js","assets/attr.vue_vue_type_script_setup_true_lang-Bkj1p-jl.js","assets/content-DqDTOak9.js","assets/content-Cl-9UIip.css","assets/attr.vue_vue_type_script_setup_true_lang-BWENGozb.js","assets/index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js","assets/content-0LXu-5MK.js","assets/content.vue_vue_type_script_setup_true_lang-BlC3oWQE.js","assets/attr.vue_vue_type_script_setup_true_lang-jrtitgMf.js","assets/content-C5W1CaMe.js","assets/content-Bd3rHJ5J.css","assets/attr.vue_vue_type_script_setup_true_lang-CsV4MUsa.js","assets/content.vue_vue_type_script_setup_true_lang-Unv1Zxh1.js","assets/attr.vue_vue_type_script_setup_true_lang-ObQLkrtE.js","assets/content-DdjhpUgB.js","assets/content-DxNvUNZR.css","assets/preview-pc-BRQDo0AR.css","assets/pc_details-nlJo1_D0.css","assets/h5-DMwOBeA2.js","assets/fans-DGKJ29C1.js","assets/h5-BSFcFSny.css","assets/index_h5-CguomBSY.js","assets/appointment-type-DJT6wPaT.js","assets/tcm-QAkeqQ9Q.js","assets/order-CIw46QQn.js","assets/weapp-COUVUBPI.js","assets/perm-DOfZAzJJ.js","assets/RevisitNodeCell-DGzlUBxp.js","assets/RevisitNodeCell-B01IyXwO.css","assets/index_h5-Dxw3PrMR.css","assets/readonly-C-Pkqvus.js","assets/patient-Bz8-LT2R.js","assets/diag-display-DCz_VAqj.js","assets/PatientInfoCard--7DLvgKR.js","assets/PatientInfoCard-n6_UPo9e.css","assets/PatientCaseCard-BLq-W0if.js","assets/blood-thresholds-QpDuElbH.js","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/PatientCaseCard-C3Mob6yG.css","assets/DailyMatrix-BSZy3g0c.js","assets/DiagnosisTodoList-CE1isNg2.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/DailyMatrix-UrdT3nb4.css","assets/CallRecordPanel-DFudUjln.js","assets/RecordingPlaybackBlock-GbWd6PMw.js","assets/RecordingVideoPlayer-grUPRDCj.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CafeXQX5.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-0TFZiCkF.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-C2wB-h-D.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/PatientOrderList-BP2alDvZ.js","assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-B4rggqa1.css","assets/PatientOrderList-D8-uh2iu.css","assets/NoteTimeline-DDh0aI3_.js","assets/NoteTimeline-I2FSxX4s.css","assets/readonly-CwfK8LKG.css","assets/index-CWe9wKwn.js","assets/ai_mcp-Dog5pgH2.js","assets/index-CE10PP7-.css","assets/index-TVpa2sx0.js","assets/index-DtoUZmC0.css","assets/index-Co_rrQhX.js","assets/index-C-i6mrdU.css","assets/index-kIO3DJkN.js","assets/edit-L84XrS85.js","assets/edit.vue_vue_type_script_setup_true_name_articleColumnEdit_lang-b3Kn2zcn.js","assets/index-Cvs9Y5Uh.js","assets/edit-D46JCM5b.js","assets/index.vue_vue_type_style_index_0_lang-CduB--xp.js","assets/index-DX96drV3.css","assets/useDictOptions-ByJNOzqa.js","assets/index-DxYFVchx.js","assets/index-D6JjdB2D.js","assets/asset-CMies7fs.js","assets/index-CmzQ0RHU.js","assets/h5-BvJ9_TsW.js","assets/open_setting-CTIsPyjO.js","assets/weapp-DcljhexR.js","assets/config-7zVqSxlr.js","assets/wx_oa-vu-UopqS.js","assets/menu-DFGEBVd5.js","assets/oa-attr-ChgdvxF3.js","assets/oa-menu-form.vue_vue_type_script_setup_true_lang-k_w2frrN.js","assets/useMenuOa-8FDoUIjw.js","assets/oa-menu-form-edit.vue_vue_type_script_setup_true_lang-BqIRIump.js","assets/oa-phone-Chcv3hu5.js","assets/oa-phone-CctIyraX.css","assets/oa-menu-form-edit-DlwuhjjU.js","assets/oa-menu-form-BtVlmzxF.js","assets/default_reply-DlS9tKKW.js","assets/edit.vue_vue_type_script_setup_true_lang-DRGhGv7L.js","assets/edit-D5LhAhOU.js","assets/follow_reply-DcTwnOL_.js","assets/keyword_reply-0cxOJmpm.js","assets/MessageBubble-CRT5BPUN.js","assets/MessageBubble-BwtdPM6K.css","assets/SendPanel-Da0QIw47.js","assets/SendPanel-DaGPWlQG.css","assets/index-DwDe6YfY.js","assets/index-CMsGEvq_.css","assets/edit-RtJ3KIa8.js","assets/admin-7zsFFzhs.js","assets/department-DToZNvdH.js","assets/post-B9rSvSIv.js","assets/edit-CObVTcPU.css","assets/index-063fi3m5.js","assets/index-CjSHFu-R.css","assets/account-adjust-BZWMca9h.js","assets/account-adjust.vue_vue_type_script_setup_true_lang-B4ND4Tl6.js","assets/edit-C3BLD59B.js","assets/edit-D-D8bVPM.css","assets/index-CrHG8Y0M.js","assets/index-Oppei429.css","assets/paiban-BlrBlFR2.js","assets/paiban-BTUHWpUu.css","assets/detail-CQb98XKw.js","assets/consumer-BUIWfqzk.js","assets/index-DhcEF7gk.js","assets/index.vue_vue_type_script_setup_true_lang-98A4_fZW.js","assets/index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js","assets/GancaoSubmissionReconcileButton-BHSxzzMH.js","assets/GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-jSvDxDB9.js","assets/PrescriptionAiBatchGenerateDialog-DjGAFFkN.js","assets/PrescriptionAiBatchGenerateDialog-CKkykmdr.css","assets/PrescriptionAiReportDialog-DqUaPOfy.js","assets/PrescriptionAiReportDialog-CV6AuHV3.css","assets/PrescriptionOrderTimeDialog-i6cJMJuf.js","assets/PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-DLSipsFu.js","assets/guahao-Bm45eY5R.js","assets/index-MpOBPDwT.js","assets/medicine-EUKQYFsM.js","assets/role-B1hWAn9n.js","assets/index-Cf6ygfGC.js","assets/index-C_LxAEkS.css","assets/index-DT7CSmCp.js","assets/index-AnyUcdTT.css","assets/index-B_6Taw4k.css","assets/list-sR7XC4Vj.js","assets/list-BluNBZln.css","assets/order_list-BIadJ-Mc.js","assets/useListTimeFilter-7kq30CnT.js","assets/useListTimeFilter-DI6SIumd.css","assets/order_list-JA7OnSCw.css","assets/order_list_h5-B-ZXMOQL.js","assets/order_list_h5-CY8JpfnL.css","assets/add-nav-tqYQknrT.js","assets/attr-setting-DN289Yb7.js","assets/attr-setting.vue_vue_type_script_setup_true_lang-BB4y2fA5.js","assets/menu-DViiZPlx.js","assets/menu-DYFusokT.css","assets/preview-pEzQXats.js","assets/preview-C7oaKmYo.css","assets/attr-D-UoRRL5.js","assets/attr.vue_vue_type_script_setup_true_lang-53z4NSmb.js","assets/content-Dq3aXIKw.js","assets/content-DaxRy47P.css","assets/attr-D0wjYsnJ.js","assets/menu-set.vue_vue_type_script_setup_true_lang-CJyli6Nb.js","assets/content-BwspHpXJ.js","assets/content-sMbqkta2.css","assets/menu-set-XcVyFmeW.js","assets/content-gqkMlJui.js","assets/attr-DOCKwB30.js","assets/attr-C26ZoaXM.js","assets/content-DraxgVnJ.js","assets/attr-D9VUrNbu.js","assets/attr-B6FOMi5s.js","assets/content-IXSBK-yr.js","assets/attr-fJstkaKx.js","assets/attr-DGZCW9wJ.js","assets/content-Dzcw4koZ.js","assets/attr-DbCbv7ST.js","assets/attr-D5lzCy74.js","assets/content-Cucfe3T0.js","assets/attr-D22y8__F.js","assets/index-BncZ7LCe.js","assets/index-57RdOFNo.css","assets/pc-elPwo4i-.js","assets/mobile-style-BdhGtn_v.js","assets/mobile-style.vue_vue_type_script_setup_true_lang-i-cAJJVM.js","assets/theme-picker-Bzh27A21.js","assets/theme-picker-BsELUxM9.css","assets/style-BpIFLEm4.js","assets/tabbar-CqrxLPr9.js","assets/tabbar-DJsOahKR.css","assets/edit-DT_4uSs7.js","assets/menu-Y8cDrxAC.js","assets/dict-C0-nzPZh.js","assets/code-Bx-mc3Tz.js","assets/relations-add.vue_vue_type_script_setup_true_lang-BwTVgg-3.js","assets/edit-CAJZpU7c.css","assets/index-kyFLvGTL.js","assets/code-preview.vue_vue_type_script_setup_true_lang-B09gNHmz.js","assets/data-table.vue_vue_type_script_setup_true_lang-7I2yFg3i.js","assets/code-preview-DGJNumV5.js","assets/data-table-BD0poTdm.js","assets/relations-add-JWGJyLSB.js","assets/dept-tongji-NKrpNQc1.js","assets/dept-tongji-ky7rOYoi.css","assets/medicine-mKSAmiD4.js","assets/medicine-DO6x6zrS.css","assets/roster-DzNk3SnU.js","assets/roster-CqNlv_rj.css","assets/tongji-Dqu7hvNU.js","assets/tongji-C0VnzFxy.css","assets/commission-settlement-BATYB6RQ.js","assets/stats-Bao68QGi.js","assets/commission-settlement-Gy2UsUPr.css","assets/index-CZz_g_Zd.js","assets/qywx-CthffTyX.js","assets/qywx-Dym8iFe0.css","assets/yeji-D3z5z-ES.js","assets/finance-D9pJwZQS.js","assets/yeji-7-gSVFmd.css","assets/edit-BiF8KYEx.js","assets/edit-D4atl_7z.css","assets/index-Cv-aPQVb.js","assets/index-Bk2rMrqw.css","assets/balance_details-CFmJYiHU.js","assets/refund-log-DhQiU08s.js","assets/refund-log.vue_vue_type_script_setup_true_lang-B1HyKUNn.js","assets/mubiao-dept-card-DiVRo-fN.js","assets/mubiao-dept-card-naMqyghz.css","assets/mubiao-dept-node-Bi4SmSaR.js","assets/mubiao-dept-node-ChUPkaxq.css","assets/mubiao-DmV48IO8.js","assets/mubiao-B6IOi2bJ.css","assets/recharge_record-CeaGnc9A.js","assets/refund_record-BcnFRQEG.js","assets/index-D-zzvF1Z.js","assets/first_visit-BxZL4Ke4.js","assets/index-D2xY0L6n.css","assets/index-Cg1Oldbs.js","assets/index-CSIcxqFk.css","assets/OrderActionHost-KWccaYJI.js","assets/OrderActionHost-DiqybThz.css","assets/OrderPanel-BoY6f2Ur.js","assets/OrderPanel-BzElZPEq.css","assets/PaibanPanel-Ce3FolrR.js","assets/PaibanPanel-aqm8azGc.css","assets/ProgressPanel-Cmnqit8V.js","assets/ProgressPanel-C_aSqDJh.css","assets/index-B_mkjbfl.js","assets/index-Co57tWbg.css","assets/index-BMxpoMf4.js","assets/index-Bw7BJ7QR.css","assets/PromotionAutomationForm-DyEeuDmw.js","assets/WelcomeMessageEditor-BCxSXNSC.js","assets/WelcomeMessageEditor-DD5mXWP2.css","assets/PromotionAutomationForm-BMhNCJa-.css","assets/WecomFloatingWidgetBuilder-LkQ-33ym.js","assets/WecomFloatingWidgetBuilder-DRWt4rvh.css","assets/index-D7Kf_aDd.js","assets/index-Dgjf9Hxv.css","assets/index-CBIMjzc3.js","assets/index-DhR2yeiO.css","assets/edit-BPzwN_e3.js","assets/message-7QdBbth1.js","assets/index-tCLK0tON.js","assets/edit-Dj3GXlCw.js","assets/edit.vue_vue_type_script_setup_true_lang-DMpcHZPx.js","assets/index-CeF71KwZ.js","assets/index-CMH8bXK6.js","assets/index-CmFE2aZQ.css","assets/edit-CTFWDUh7.js","assets/edit.vue_vue_type_script_setup_true_lang-k1s5vx9i.js","assets/index-BdHx4-gS.js","assets/edit-BsuBmpNt.js","assets/edit.vue_vue_type_script_setup_true_lang-CezjvrER.js","assets/index-LBcS4UGs.js","assets/index-D5Mqb28U.js","assets/index-cz2HBbSE.css","assets/edit-DNMajQA9.js","assets/edit.vue_vue_type_script_setup_true_lang-DTrkMGri.js","assets/index-D-W2i1y0.js","assets/edit-LJZ6wso0.js","assets/edit.vue_vue_type_script_setup_true_lang-ccnC9QVe.js","assets/picker.vue_vue_type_script_setup_true_lang-r5jdEAJg.js","assets/index-D_wli7K6.js","assets/auth-BTjFjF41.js","assets/auth.vue_vue_type_script_setup_true_lang-CtcRAVMj.js","assets/edit-B0XKivI5.js","assets/edit.vue_vue_type_script_setup_true_lang-onWuscvD.js","assets/index-DP9-ej81.js","assets/index-DYbVvpID.js","assets/index-Bk7b_sL2.css","assets/index-Do-D0Uai.js","assets/edit-BBEsLRrQ.js","assets/edit.vue_vue_type_script_setup_true_lang-B1vNi0Rd.js","assets/index-DWJNdttC.js","assets/edit-Dl5YLtWp.js","assets/edit.vue_vue_type_script_setup_true_lang-CxUw8LRg.js","assets/index-DnDmUgzz.js","assets/edit-eKqjns4J.js","assets/pay-Ia2pwkX0.js","assets/getExposeType-BkPR_d5H.js","assets/edit-C1NtFi7N.css","assets/index-BSjQOypy.js","assets/index-Dzey7TmE.js","assets/index-u3uCInK8.js","assets/index-BzrSkGWL.css","assets/edit-D7bBKhZX.js","assets/edit.vue_vue_type_script_setup_true_lang-C4JjYzlV.js","assets/index-B4_tqMXr.js","assets/cache-CI01ujaE.js","assets/environment-Dsx_MlBK.js","assets/journal-DGOvChsE.js","assets/edit-p6uNhAfj.js","assets/index-DABfjW1m.js","assets/login_register-GpARPxOz.js","assets/user-6rizCW07.js","assets/setup-twSmrQP7.js","assets/filing-DZkb8wMP.js","assets/website-DRg8FnbB.js","assets/information-CYHEwQb_.js","assets/protocol-Pb2ZZ0kB.js","assets/statistics-D2hIl0ao.js","assets/index-DfAImr1P.js","assets/index-CPXyam6B.css","assets/index-D3RMxMTd.js","assets/index-DRNnKTyK.css","assets/index-DQ6a96ix.js","assets/index-BmDW9vcs.css","assets/index-BWeUBmJ1.js","assets/index-D9Td5Y2a.css","assets/CohortReport-ziQtuRzm.js","assets/CohortReport-DhJXlpZE.css","assets/index-HjY7A-pO.js","assets/index-DXupcHo0.js","assets/index-DKHKZuC3.css","assets/index-BJNSEgMW.js","assets/index-90iZzuMB.js","assets/index-DybA0GjF.css","assets/MediaSourceSelect-nnTL1Ya1.js","assets/MediaSourceSelect.vue_vue_type_script_setup_true_lang-NXWg0oJL.js","assets/account_cost-CKkKx2VX.js","assets/self_input_stats-CIFG1oqD.js","assets/cost-edit.vue_vue_type_script_setup_true_lang-C1_RZ-ed.js","assets/useMediaSourceOptions-CerfJKnV.js","assets/account_cost-fbCWUO9k.css","assets/cost-edit-DJ7jLU8g.js","assets/index-BhYtdemN.js","assets/yeji-edit.vue_vue_type_script_setup_true_lang-9szyzbBz.js","assets/index-55HtuLpn.css","assets/yeji-edit-BEFhRUaj.js","assets/prescription-drawer-CSbFDlBk.js","assets/prescription-drawer-BjwiqvPc.css","assets/list-BctcfoMB.js","assets/list-D5BdlpZJ.css","assets/list_h5-D0z2kYzs.js","assets/list_h5-Cs3mUmOa.css","assets/add-BnODf4Ac.js","assets/add-ByXRFm8M.css","assets/appointment-FizcUjTK.js","assets/appointment-g8BrHfhi.css","assets/AssistantWatchCallDialog-Cmuadkz7.js","assets/AssistantWatchCallDialog-BIPZRgaH.css","assets/BloodRecordList-qlYHWuAX.js","assets/BloodRecordList-DhVK-Y_e.css","assets/CaseRecordList-Bdp996ss.js","assets/CaseRecordList-Cl-c3q7S.css","assets/DietRecordList-Cm5sSPXB.js","assets/DietRecordList-Cc-xUr2B.css","assets/ExerciseRecordList-DI5GCSns.js","assets/ExerciseRecordList-DGtgtzou.css","assets/FollowupAudioField-BG0mRnT5.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioPanel-GXQTu6xF.js","assets/FollowupAudioReview-92Fgd7wW.js","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/TrackingMatrix-CG5kqAiU.js","assets/TrackingMatrix-zyxtXYPb.css","assets/TrackingNoteTimeline-Dpu7gUCf.js","assets/TrackingNoteTimeline-B9T8pFso.css","assets/detail-BC-AUtN0.js","assets/edit-DFFSwWxS.js","assets/index-Cis-_1uh.js","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/index-B3r-iEKl.js","assets/index-V-6wNRcg.css","assets/index-CezM4GA9.js","assets/index-Cmf8QBsF.css","assets/file-BYqZCJsR.js","assets/icon-W3DsMNzy.js","assets/link-BRt-fkOK.js","assets/overflow-VQTiVS2Y.js","assets/popover_input-CHl485Vl.js","assets/rich_text-BsWHrwaA.js","assets/upload-Cf8IgR5h.js","assets/patient-call-DRgV1Jkm.js","assets/patient-call-k8V9hV2G.css","assets/index-dnU03aIn.js","assets/index-DtDaTXOB.css"])))=>i.map(i=>d[i]); -var P0=Object.defineProperty;var S0=(e,a,o)=>a in e?P0(e,a,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[a]=o;var r3=(e,a,o)=>S0(e,typeof a!="symbol"?a+"":a,o);import{d as F3,u as c,E as D3,e as h3,f as R3,h as C0,i as F1,l as K,A as k3,n as G1,j as B0,k as U1,m as Y1,o as S,p as y,q as h,r as A,s as m,t as M3,v as _,w as d1,x as T3,y as k0,z as Z1,B as X1,C as a3,D as z,F as U,G as _3,H as j0,I as N0,J as $0,K as K1,L as P,M as G,N as W0,O as R,P as C,Q as G3,R as w3,S as q0,T as H,U as F0,V as J1,W as p3,X as G0,Y as U0,Z as Q1,_ as e0,$ as a0,a0 as Y0,a1 as o0,a2 as t0,a3 as Z0,a4 as i0,a5 as X0,a6 as K0,a7 as m1,a8 as J0,a9 as Q0,aa as e2,ab as s0,ac as n0,ad as l0,ae as t3,af as a2,ag as o2,ah as t2,ai as i2,aj as s2,ak as n2,al as t,am as l2,an as c2,ao as o1,ap as _1,aq as c0,ar as r0,as as r2,at as u2,au as d2,av as m2,aw as _2,ax as v2,ay as h2,az as p2,aA as b2,aB as z2,aC as y2,aD as f2,aE as g2,aF as w2,aG as A2,aH as V2,aI as L2,aJ as E2,aK as x2,aL as M2,aM as T2,aN as O2,aO as H2,aP as I2,aQ as D2,aR as R2,aS as P2,aT as S2,aU as C2,aV as B2,aW as k2,aX as j2,aY as N2,aZ as $2,a_ as W2,a$ as q2,b0 as F2,b1 as G2,b2 as U2,b3 as Y2,b4 as Z2,b5 as X2,b6 as K2,b7 as J2,b8 as Q2,b9 as e6}from"./.pnpm-CyuAWpdG.js";(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))i(s);new MutationObserver(s=>{for(const n of s)if(n.type==="childList")for(const r of n.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&i(r)}).observe(document,{childList:!0,subtree:!0});function o(s){const n={};return s.integrity&&(n.integrity=s.integrity),s.referrerPolicy&&(n.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?n.credentials="include":s.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function i(s){if(s.ep)return;s.ep=!0;const n=o(s);fetch(s.href,n)}})();const J={terminal:1,title:"后台管理系统",version:"1.9.4",baseUrl:"https://admin.zhenyangtang.com.cn//",urlPrefix:"adminapi",timeout:6e4};var q=(e=>(e.LOGIN="/login",e.ERROR_403="/403",e.INDEX="/",e))(q||{}),u0=(e=>(e.LIGHT="light",e.DARK="dark",e))(u0||{}),N3=(e=>(e.CATALOGUE="M",e.MENU="C",e.BUTTON="A",e))(N3||{}),t1=(e=>(e[e.SM=640]="SM",e[e.MD=768]="MD",e[e.LG=1024]="LG",e[e.XL=1280]="XL",e[e["2XL"]=1536]="2XL",e))(t1||{});const V5={1:"微信小程序",2:"微信公众号",3:"手机H5",4:"电脑PC",5:"苹果APP",6:"安卓APP"};var d0=(e=>(e.JSON="application/json;charset=UTF-8",e.FORM_DATA="multipart/form-data;charset=UTF-8",e))(d0||{}),A3=(e=>(e.GET="GET",e.POST="POST",e))(A3||{}),u3=(e=>(e[e.NOT_INSTALL=-2]="NOT_INSTALL",e[e.LOGIN_FAILURE=-1]="LOGIN_FAILURE",e[e.FAIL=0]="FAIL",e[e.SUCCESS=1]="SUCCESS",e[e.OPEN_NEW_PAGE=2]="OPEN_NEW_PAGE",e[e.NEED_BIND_WORK_WECHAT=10]="NEED_BIND_WORK_WECHAT",e))(u3||{});const V3="token",L5="account",$3="setting";function b3(e){return/^(https?:|mailto:|tel:)/.test(e)}const a6=(e,a)=>a.findIndex(o=>o.fullPath==e),I1=e=>e.name==null||e.name===""?"":`${String(e.name)}::${e.path}`,o6=(e,a)=>{const{path:o,meta:i,name:s}=e;return!!(!o||b3(o)||i!=null&&i.hideTab||!a.hasRoute(s)||[q.LOGIN,q.ERROR_403].includes(o))},t6=(e,a)=>a.findIndex(o=>o.fullPath===e),K3=e=>{var a,o,i;return(i=(o=(a=e.matched.at(-1))==null?void 0:a.components)==null?void 0:o.default)==null?void 0:i.name},m0=e=>{const{params:a,path:o,query:i}=e;return{params:a||{},path:o,query:i||{}}},O3=F3({id:"tabs",state:()=>({cacheTabList:new Set,tabList:[],tasMap:{},indexRouteName:""}),getters:{getTabList(){return this.tabList},getCacheTabList(){return Array.from(this.cacheTabList)}},actions:{setRouteName(e){this.indexRouteName=e},addCache(e){e&&this.cacheTabList.add(e)},removeCache(e){e&&this.cacheTabList.has(e)&&this.cacheTabList.delete(e)},clearCache(){this.cacheTabList.clear()},resetState(){this.cacheTabList=new Set,this.tabList=[],this.tasMap={},this.indexRouteName=""},addTab(e){const a=c(e.currentRoute),{name:o,query:i,meta:s,params:n,fullPath:r,path:v}=a;if(o6(a,e))return;const d=a6(r,this.tabList),p=K3(a),f={name:o,path:v,fullPath:r,title:s==null?void 0:s.title,query:i,params:n};if(s!=null&&s.keepAlive&&this.addCache(p),d!==-1){this.tabList[d]=f,this.tasMap[r]=f;return}const b=I1(f);if(b){const E=[];if(this.tabList.forEach((N,I)=>{I1(N)===b&&E.push(I)}),E.length>0){const N=E[0];for(let O=E.length-1;O>=1;O--){const M=E[O];delete this.tasMap[this.tabList[M].fullPath],this.tabList.splice(M,1)}const I=this.tabList[N];I.fullPath!==r&&delete this.tasMap[I.fullPath],this.tabList[N]=f,this.tasMap[r]=f;return}}this.tasMap[r]=f,this.tabList.push(f)},removeTab(e,a){const{currentRoute:o,push:i}=a,s=t6(e,this.tabList);this.tabList.length>1&&s!==-1&&this.tabList.splice(s,1);const n=K3(o.value);if(this.removeCache(n),e!==o.value.fullPath)return;let r=null;s===0?r=this.tabList[s]:r=this.tabList[s-1];const v=m0(r);i(v)},removeOtherTab(e){this.tabList=this.tabList.filter(o=>o.fullPath==e.fullPath);const a=K3(e);this.cacheTabList.forEach(o=>{a!==o&&this.removeCache(o)})},removeAllTab(e){const{push:a,currentRoute:o}=e,{name:i}=c(o);if(i==this.indexRouteName){this.removeOtherTab(o.value);return}this.tabList=[],this.clearCache(),a(q.INDEX)}}}),Q={key:"like_admin_",set(e,a,o){e=this.getKey(e);let i={expire:o?this.time()+o:"",value:a};typeof i=="object"&&(i=JSON.stringify(i));try{window.localStorage.setItem(e,i)}catch{return null}},get(e){e=this.getKey(e);try{const a=window.localStorage.getItem(e);if(!a)return null;const{value:o,expire:i}=JSON.parse(a);return i&&i{f3.has(o)||f3.set(o,i)})}remove(a){if(f3.has(a)){const o=f3.get(a);o&&o(a),f3.delete(a)}}};r3(q3,"instance");let s1=q3;const D1=s1.createInstance();class s6{constructor(a){r3(this,"axiosInstance");r3(this,"config");r3(this,"options");this.config=a,this.options=a.requestOptions,this.axiosInstance=F1.create(a),this.setupInterceptors()}getAxiosInstance(){return this.axiosInstance}setupInterceptors(){if(!this.config.axiosHooks)return;const{requestInterceptorsHook:a,requestInterceptorsCatchHook:o,responseInterceptorsHook:i,responseInterceptorsCatchHook:s}=this.config.axiosHooks;this.axiosInstance.interceptors.request.use(n=>(this.addCancelToken(n),K.isFunction(a)&&(n=a(n)),n),n=>(K.isFunction(o)&&o(n),n)),this.axiosInstance.interceptors.response.use(n=>(this.removeCancelToken(n.config.url),K.isFunction(i)&&(n=i(n)),n),n=>{var r;return K.isFunction(s)&&s(n),n.code!=k3.ERR_CANCELED&&this.removeCancelToken((r=n.config)==null?void 0:r.url),n.code==k3.ECONNABORTED||n.code==k3.ERR_NETWORK?new Promise(v=>setTimeout(v,500)).then(()=>this.retryRequest(n)):Promise.reject(n)})}addCancelToken(a){const{ignoreCancelToken:o}=a.requestOptions;!o&&D1.add(a)}removeCancelToken(a){D1.remove(a)}retryRequest(a){var n;const o=a.config,{retryCount:i,isOpenRetry:s}=o.requestOptions;return!s||((n=o.method)==null?void 0:n.toUpperCase())==A3.POST||(o.retryCount=o.retryCount??0,o.retryCount>=i)?Promise.reject(a):(o.retryCount++,this.axiosInstance.request(o))}get(a,o){return this.request({...a,method:A3.GET},o)}post(a,o){return this.request({...a,method:A3.POST},o)}request(a,o){const i=K.merge({},this.options,o),s={...K.cloneDeep(a),requestOptions:i},{urlPrefix:n}=i;return n&&(s.url=`${n}${a.url}`),new Promise((r,v)=>{this.axiosInstance.request(s).then(d=>{r(d)}).catch(d=>{v(d)})})}}function n6(){if(typeof window>"u")return!1;const{pathname:e,search:a}=window.location;return e.includes("bind-work-wechat")?/(?:^|[?&])code=/.test(a):!1}const R1="/bind-work-wechat";let P1=0;const l6={requestInterceptorsHook(e){var n;const{withToken:a,isParamsToData:o}=e.requestOptions,i=e.params||{},s=e.headers||{};if(a){const r=_0();s.token=r}return o&&!Reflect.has(e,"data")&&((n=e.method)==null?void 0:n.toUpperCase())===A3.POST&&(e.data=i,e.params={}),e.headers=s,e},requestInterceptorsCatchHook(e){return e},async responseInterceptorsHook(e){const{isTransformResponse:a,isReturnDefaultResponse:o}=e.config.requestOptions;if(o)return e;if(!a)return e.data;const{code:i,data:s,show:n,msg:r}=e.data;switch(i){case u3.SUCCESS:return n&&r&&m3.msgSuccess(r),s;case u3.FAIL:return n&&r&&m3.msgError(r),Promise.reject(s);case u3.LOGIN_FAILURE:return L3(),W.push(q.LOGIN),Promise.reject();case u3.NEED_BIND_WORK_WECHAT:if(W.currentRoute.value.path===R1||n6())return Promise.reject(s);{const v=Date.now();v-P1>400&&(P1=v,W.replace(R1).catch(()=>{}))}return Promise.reject(s);case u3.OPEN_NEW_PAGE:return window.location.href=s.url,s;case u3.NOT_INSTALL:window.location.replace("/install/install.php");break;default:return s}},responseInterceptorsCatchHook(e){return e.code!==k3.ERR_CANCELED&&e.message&&m3.msgError(e.message),Promise.reject(e)}},c6={timeout:J.timeout,baseURL:J.baseUrl,headers:{"Content-Type":d0.JSON,version:J.version},axiosHooks:l6,requestOptions:{isParamsToData:!0,isReturnDefaultResponse:!1,isTransformResponse:!0,urlPrefix:J.urlPrefix,ignoreCancelToken:!1,withToken:!0,isOpenRetry:!0,retryCount:2}};function r6(e){return new s6(K.merge(c6,{}))}const T=r6();function u6(e){return T.post({url:"/login/account",params:{...e,terminal:J.terminal}})}function d6(){return T.post({url:"/login/logout"})}function m6(){return T.get({url:"/auth.admin/mySelf"})}function E5(e){return T.post({url:"/auth.admin/editSelf",params:e})}function x5(){return T.get({url:"/login/workWechatConfig"})}function _6(e){return T.post({url:"/login/workWechatLogin",params:{...e,terminal:J.terminal}})}function M5(e){return T.post({url:"/auth.admin/bindWorkWechat",params:e})}function T5(){return T.post({url:"/auth.admin/unbindWorkWechat"})}function O5(e){return T.post({url:"/login/changeFirstPassword",params:e})}function H5(){return T.get({url:"/iam/config"},{withToken:!1})}function v6(e){return T.post({url:"/iam/exchange",params:{ticket:e,terminal:J.terminal},withCredentials:!0},{withToken:!1,isOpenRetry:!1})}const i3=F3({id:"user",state:()=>({token:_0()||"",userInfo:{},routes:[],perms:[],isPaw:1}),getters:{},actions:{resetState(){this.token="",this.userInfo={},this.perms=[],this.isPaw=1},login(e){const{account:a,password:o}=e;return new Promise((i,s)=>{u6({account:a.trim(),password:o}).then(n=>{this.token=n.token,this.isPaw=n.is_paw??1,Q.set(V3,n.token),i(n)}).catch(n=>{s(n)})})},logout(){return new Promise((e,a)=>{d6().then(async o=>{this.token="",await W.push(q.LOGIN),L3(),e(o)}).catch(o=>{a(o)})})},workWechatLogin(e){return new Promise((a,o)=>{_6({code:e}).then(i=>{this.token=i.token,this.isPaw=i.is_paw??1,Q.set(V3,i.token),a(i)}).catch(i=>{o(i)})})},async iamLogin(e){const a=await v6(e);return this.token=a.token,this.isPaw=a.is_paw??1,Q.set(V3,a.token),a},getUserInfo(){return new Promise((e,a)=>{m6().then(o=>{this.userInfo=o.user,this.perms=o.permissions,this.routes=b0(o.menu),this.isPaw=o.user.is_paw??1,e(o)}).catch(o=>{a(o)})})}}});function v0(){return T.get({url:"/config/getConfig"})}function I5(){return T.get({url:"/workbench/index"})}function D5(e){return T.get({url:"/config/dict",params:e})}const e3=F3({id:"app",state:()=>({config:{},configFetchAttempted:!1,isMobile:!0,isCollapsed:!1,isRouteShow:!0}),actions:{getImageUrl(e){if(!e||typeof e!="string")return"";if(e.startsWith("http://")||e.startsWith("https://"))return e;const a=e.startsWith("/")?e:"/"+e,o=String(this.config.oss_domain||"").replace(/\/$/,"");if(o)return`${o}${a}`;const i=String(J.baseUrl||"/").replace(/\/+$/,"");if(i.startsWith("http://")||i.startsWith("https://"))try{return new URL(a,`${i}/`).href}catch{return`${i}${a}`}const s=typeof window<"u"?window.location.origin:"";return s?`${s}${a}`:a},getConfig(){return new Promise((e,a)=>{v0().then(o=>{this.config=o,e(o)}).catch(o=>{a(o)})})},setMobile(e){this.isMobile=e},toggleCollapsed(e){this.isCollapsed=e??!this.isCollapsed},refreshView(){this.isRouteShow=!1,G1(()=>{this.isRouteShow=!0})}}}),j3={showCrumb:!0,showLogo:!1,isUniqueOpened:!0,sideWidth:183,sideTheme:"dark",sideDarkColor:"#1d2124",openMultipleTabs:!0,theme:"#4A5DFF",successTheme:"#67c23a",warningTheme:"#e6a23c",dangerTheme:"#f56c6c",errorTheme:"#f56c6c",infoTheme:"#909399"},o3=1,h6={1:["sideTheme","sideDarkColor"]},p6={"dark-2":"shade(20%)","light-3":"tint(30%)","light-5":"tint(50%)","light-7":"tint(70%)","light-8":"tint(80%)","light-9":"tint(90%)"},b6={"light-3":"shade(20%)","light-5":"shade(30%)","light-7":"shade(50%)","light-8":"shade(60%)","light-9":"shade(70%)","dark-2":"tint(20%)"},S1="theme-vars",z6=(e,a="primary",o=!1)=>{const i={[`--el-color-${a}`]:e},s=o?b6:p6;for(const n in s)i[`--el-color-${a}-${n}`]=`color(${e} ${s[n]})`;return i},y6=(e,a=!1)=>{const o=Object.keys(e).reduce((n,r)=>Object.assign(n,z6(e[r],r,a)),{});let i=Object.keys(o).reduce((n,r)=>{const v=B0.convert(o[r]);return`${n}${r}:${v};`},"");i=`:root{${i}}`;let s=document.getElementById(S1);if(s){s.innerHTML=i;return}s=document.createElement("style"),s.setAttribute("type","text/css"),s.setAttribute("id",S1),s.innerHTML=i,document.head.append(s)},P3=Q.get($3);function f6(e,a){if(a>=o3)return;for(let s=a+1;s<=o3;s++){const n=h6[s];if(n)for(const r of n)e[r]=j3[r]}e._settingSchemaVersion=o3;const{showDrawer:o,...i}=e;Q.set($3,i)}const s3=F3({id:"setting",state:()=>{const e={showDrawer:!1,...j3};let a=o3;return U1(P3)&&(a=typeof P3._settingSchemaVersion=="number"?P3._settingSchemaVersion:0,Object.assign(e,P3),aObject.is(Number(e),NaN)?e:`${e}${a}`,C1=e=>e==null&&typeof e>"u",S5=(e,a={children:"children"})=>{e=K.cloneDeep(e);const{children:o}=a,i=[],s=[];for(e.forEach(n=>s.push(n));s.length;){const n=s.shift();n[o]&&(n[o].forEach(r=>s.push(r)),delete n[o]),i.push(n)}return i},C5=(e,a={id:"id",parentId:"pid",children:"children"})=>{e=K.cloneDeep(e);const{id:o,parentId:i,children:s}=a,n=[],r=new Map;return e.forEach(v=>{r.set(v[o],v);const d=r.get(v[i]);d?(d[s]=d[s]??[],d[s].push(v)):n.push(v)}),n};function A6(e){if(e.length===0||!e||e=="undefined")return e;const a=e.replace("//","/"),o=a.length;return a[o-1]==="/"?a.slice(0,o-1):a}function V6(e){let a="";for(const o of Object.keys(e)){const i=e[o],s=encodeURIComponent(o)+"=";if(!C1(i))if(U1(i)){for(const n of Object.keys(i))if(!C1(i[n])){const r=o+"["+n+"]",v=encodeURIComponent(r)+"=";a+=v+encodeURIComponent(i[n])+"&"}}else a+=s+encodeURIComponent(i)+"&"}return a.slice(0,-1)}const B5=(e,a="yyyy-mm-dd")=>{e||(e=Number(new Date)),e.toString().length==10&&(e*=1e3);const o=new Date(e);let i;const s={"y+":o.getFullYear().toString(),"m+":(o.getMonth()+1).toString(),"d+":o.getDate().toString(),"h+":o.getHours().toString(),"M+":o.getMinutes().toString(),"s+":o.getSeconds().toString()};for(const n in s)i=new RegExp("("+n+")").exec(a),i&&(a=a.replace(i[1],i[1].length==1?s[n]:s[n].padStart(i[1].length,"0")));return a},k5=(e=8)=>{let a=Date.now().toString(36);return a+=Math.random().toString(36).substring(3,e),a},j5=(e,a)=>{a=Math.min(1,Math.max(0,a));const o=/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,i=/^rgb\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*\)$/,s=/^rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*[0-9.]+\s*\)$/;let n=0,r=0,v=0;if(o.test(e)){const d=e.slice(1),p=d.length===3?d.split("").map(f=>f+f).join(""):d;n=parseInt(p.substring(0,2),16),r=parseInt(p.substring(2,4),16),v=parseInt(p.substring(4,6),16)}else if(i.test(e)){const d=e.match(/\d+/g);d&&(n=parseInt(d[0]),r=parseInt(d[1]),v=parseInt(d[2]))}else if(s.test(e)){const d=e.match(/\d+(\.\d+)?/g);d&&(n=parseInt(d[0]),r=parseInt(d[1]),v=parseInt(d[2]))}else throw new Error("Unsupported color format");return`rgba(${n}, ${r}, ${v}, ${a})`},L6=S({props:{name:{type:String,required:!0},size:{type:[Number,String],default:16},color:{type:String,default:"inherit"}},setup(e){const a=y(()=>`#${e.name}`),o=y(()=>({width:E3(e.size),height:E3(e.size),color:e.color}));return{symbolId:a,styles:o}}}),Y=(e,a)=>{const o=e.__vccOpts||e;for(const[i,s]of a)o[i]=s;return o},E6=["xlink:href"];function x6(e,a,o,i,s,n){return h(),A("svg",{"aria-hidden":"true",style:M3(e.styles)},[m("use",{"xlink:href":e.symbolId,fill:"currentColor"},null,8,E6)],4)}const M6=Y(L6,[["render",x6]]),n3=S({name:"Icon",props:{name:{type:String,required:!0},size:{type:[String,Number],default:"14px"},color:{type:String,default:"inherit"}},setup(e){return()=>e.name.indexOf(n1)===0?_(d1,{size:e.size,color:e.color},{default:()=>_(T3(e.name.replace(n1,"")))}):e.name.indexOf(w6)===0?k0("i",{class:["local-icon"]},_(M6,{...e})):null}}),T6="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALcAAACHCAYAAABUFMgyAAAABHNCSVQICAgIfAhkiAAACbtJREFUeF7tm39olVUYx++92wo0ZiL0V2v/SKMcVMzUtMTyjzL/KUpwWCpuzbZVxpikIWQLBIMUnLiMSWXYJhSYsiA1dNaQCSqkadGGOQdj/dpubM79uPf2nts9l7Oz8/66976/nvsdXO6v957zPM/53A/Pe967cAh/qADRCoSJ5oW0UIEQ4AYEZCsAuMkuLRJzC2635sGKBqcCCadDzRV0uRrH6XwxfnAqkDX8uYLSaJxczRGcZUGkVitgBLCncMvQGj0H4FaXO3+OE+GVQTZ7bqlKdqFTHc9fE9/Te2wpKByUNxXQA9wO+LrFyhZu9nkRbhXobHK78+TN6uZxonp2Zq/z9+R7Vi7L7Yod6GRwZaiToLe0fP5wJBJu/HsounhqcrLQjcV7fNFj/65YvmTYjbkwR+YVCIfDKjAnx8fHu3p6er6oqKi4lYKXA64HuSXArcCtajG4sdOA72s+dPK7k+eW37jRZ2XMzCuk+GR93YZQXe2GnI6JwdyvQDweH79z587h2bNnvyHZW4TcqGWZFrQVEFXGTsPd2npkSdf5S6e6uy/d5X45/p+xrnZ9qL5uo1fTY94cVyAWiw329vY+W1ZWdl0yOW9LVO3KjCjM4DYCO3LgwGdfHWk7tnpoKGo2To7Tnz4c4Ha0vJ4Mnkgk4iMjI7uLi4vfTwEeN7C5MkYzKJV9tTZSRLuFN25qiF64cNkzY/OMALcn/Dk+6dTU1F9FRUUlEtx6/XhW5magJ6Fm93v2Hvyh9VD7QscztDAB4LZQpIAeMjY2dnTWrFms5+Tm1jN4RnCLJ48c8Miq1a+O3rzZb2Z+V0oKuF0psyeTaO3JRCQSuTcFNwdbtLfuzokZnCLYaWvv39+6qOXgl2e1ic0+70pBALcrZfZqksTFixcXan/XFPY2PLE0glNpbNaStHx8+JPm/Z+u8ypbeV7A7ZeVcCaO4eHhprlz5+4W7C0bnE08w+B6cMsnkmlrM7ibPth7vf3o8QecScX+qIDbfs2C9Amt7/5R67ufk+AWAc8Y7mlgp+C+BriDhEewY9WBm/fdDPKs4GaAp2+auX8G3MEGJkjRp+B+Xos5pmhNbMEtX26fBrY2eIEG91XAHSQ8gh2rADcDWQSc2ZvDPcPeqp5bfE1uSQpSbQngDjYvgYr+9u3bXdrvTVYJ1uaAZww33y0RAWdwa+beo8F9gl058sUfTih9sQyOBZGCW2xLGNwcbNVPZJOxGJlbhFtsTQC3Y8uIgVUVUMDNWhG9K5bpITKBu3Db9l1dx0+cWuCXpYC5/bISzsSRgnt1qt9W9dzKizl24U62JW+9vePk6dNdi5xJxf6ogNt+zYL0CVfhrq3f1tHZ2b3MLwUC3H5ZCWfikOAWd0zEvptNPu0qZUbmBtzOLCJGVVcAcOM/cch+NwA34AbcaEvIMkA2MZgb5gbcFM29uWZdaHPNK2QXN98TGx0dbZ83b97rqX3u/Notqa5aG6quqsx3BsjmPzQ09GFpaekuwE12ifM3McANc5OlH3ADbsBN8YQSPTdZrpOJwdwwN1nCATfgBtxoS8gyQDYxmBvmBtwwN1kGyCYGc8PcgBvmJssA2cRgbpgbcMPcZBkgmxjMDXMDbpibLANkE4O5YW7ADXOTZYBsYjA3zA24YW6yDJBNDOaGuQE3zE2WAbKJwdwwN+CGuckyQDYxmBvmBtwwN1kGyCYGc8PcgBvmJssA2cRgbpgbcMPcZBkgmxjMDXMDbpibLANkE4O5YW7ADXOTZYBsYjA3zA24YW6yDJBNDOaGuQE3zE2WAbKJwdwwN+CGuckyQDYxmBvmBtwwN1kGyCYGc8PcgBvmJssA2cRgbpgbcMPcZBkgmxjMDXMDbpibLANkE4O5YW7ADXOTZYBsYjA3zA24YW6yDJBNDOaGuQE3zE2WAbKJwdwwN+CGuckyQDYxmBvmBtwwN1kGyCYGc8PcgBvmJssA2cRgbpgbcMPcZBkgmxjMDXMDbpibLANkE4O5YW7ADXOTZYBsYjA3zA24YW6yDJBNDOaGuQE3zE2WAbKJwdwwN+CGuckyQDYxmBvmzhe4Y1qi8dQtIdyz/Nnz9F9YURH+Grtnt4h0K6yt39bR2dm9zC/VrK5aG6oG3H5ZjpzHIZnbUbgLNLi/Bdw5X0MMqFOBaDS6u6SkZJf2tgg2s3dOzM0NXqANWLD1naatHR1ndvhlNWBuv6yEM3H09fW9XF5efkqAm0Eugs3bEcttCYuUtSRia5KEu66uofzsuctdzqRif1TAbb9mQfpEe3t7WU1NzYAWM++1ucEZzPzGUrIFt9xzM7iTPfjSJ1/4Z3g4yh57/ge4PV8CxwJIJBJ/zJkz50EF2GJbwuc3hZsdKJ5UivZOmpvBXf/mu1+fOXN+pWNZ2RgYcNsoVsAO1U4mm0pLS/ek4GbGlq3NIJ9hbRFiOWU9uPnOSUFxcXHhiqdfutnT+/s9XtcLcHu9As7MPz4+3jl//vwXtRNKEWpxG5D33RnDzVsTufeObNmy/anz3Ve+GRkZ9bQ9AdzOwOXlqPF4fLi1tfWJxsZGsdfmYMuAZwW3ar87afH1mzY/NDEWOfbTlV/u86oYgNuryjsz79jY2PctLS11O3fu/FNoQ/TAVu6UGLUlct+tsne6RWE9ekPDex9dvfZbZX//wN3OpKw/6mvVlaGqTWvdnhbz5bgCk5OTvw4MDOzTtv2OpnpsBrTYY1vaAuRhqa5QiiHzq5TivXzFctp24Zo1G+/XNtwrJyZji2OxWBEfLBFKmM2VcakefWRB/8pnlt7KeAB80NUKhMPh9K6G9nhicHDwSltb24Xm5uaoFgjvo2VTy62IvA04Iwcz4DjU3OTyvjd/LrYt4heBf85sHleLi8l8UQF5f1qEVf7tiNFvSaZt/8lmNspU/p2J+HsTsVWRH8tfCsDtC558FYQZ3Px9+TK74YWbTOAWDSwDrnouG1uEG6D7ijFXgxEtK54Iyo850LLNVa1IxuZWnViqQBfNDbBd5SVwk2UDOEtW93K7XAkrFpWtK7cqcj8ufiGMHgduVRBwTiqggptDy++5uVUw633e9gmlqoUR4VZZXAYagOeECRKDmIEtwqwytO6etqo6Vsyt16PrQW4GN4lVQhJZV8AIdBliy7bWg9VKtPKXQQYcYFupIo7hFZBPBlVm1jvGtIp2zc0H1INcBbfea6bB4QDSFVDtcui1Hbo7IkYVyhRueUyjcXI1B+mVzuPk9MDNCOhs2hK9NQDAeUynQ6n7Bm6z/AC/WYXy7/2s4TUrGaAzqxDeD2wFAHdglw6Bm1UAcJtVCO8HtgKAO7BLh8DNKvAfR+rWAIVxGVEAAAAASUVORK5CYII=",O6="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALcAAACHCAYAAABUFMgyAAAABHNCSVQICAgIfAhkiAAACbZJREFUeF7t201oXFUUB/DMRyJNpE0JuJqYTWtQs2pLqxSzcWGiK8FNceOqiLiMOxe1i0IFXdhFIXSli6agoJS6aBEM2o2QlbXFfkBNhRBNbRIyTTOTzHjv8O5wc3Pf55x578y7/0LI1+S8c8/95eTMfdNCH/6hAjmtQCGn68KyUIE+4AaC3FYAuHO7tVhYWrjTug52tHcq0Ox2qlToqOJ0e72I3zsV6Bg/FcqgOFTX6J1tQaZRKxAEOFPcJtqgzwE86na78zgdrwk57PNIVYqLzvZ49TX9e34fR0oKD3KmAn7A48D3LVanuOXP67ht0OXF417Hmd11eKF+3Vl+XX3PfC/LFXlciYPOhGuibkG/d+/eK5VKZWZgYOBEs9ksp7F5Ozs7641GYzWNa+EayStQKBRsMOtbW1s379+//83Ro0cfeXgVcD/kkYBHwW0bMVTHbgOv1WrXy+XypFhAlJjJK4SfzG0FRIPaevbs2ddDQ0MfG91bRx40suyqTRSIto7dxr24uPia6NQ3hOmB3FYdC0u1AuIv8fKDBw/eGh8fv2N0cjWW2MaVPTmG4Q6CXRR/Tr4V48c7mKlT3XsnLiZG2sbGxsb5/fv3f+YBbwR0c2tN4uDWR5GiBC3+jKyhYzthLZNFbm9vr/T3948auP3m8Y46t8TdQi3f1+v1X8SMfSyTVeOizlRgc3PzyuDg4Adiwapz+3XwRLj1jq2AF8WfjSrGEWeMZbZQ4axWLBaHPdwKtt69fU9OoowlCne7a9+9e/f44cOHfwbuzPbcpQs3FxYWjol/ty3dO/CJZRBua8eWI8nTp09n9+3b975LFcZas6vA6urq2YMHD57XurfZwWVyezq4H27zBk27a0vcYtC/UyqVXsxuubiySxUQc/evYu6eMnDrwBPj3gXbw30buF3ile1afXCruVsi7wi3BN5+E537D+DOdsNdurqH+22x5h3LaBILt3m7fRdsEbwkcN8Cbpd4ZbtWDbeErAOX3Vvh3tO9bTO3/jVzJCl5YwlwZ7vfTl1dHGDcFK83mda6tgKeGPeeI0DZteWbeJHULe/OkVNFxmKzqYCHWx9LJG4F2/YS2VaiQZ1bx62PJsCdzR47e1ULbjmK+N2xbNcpCe6yfP2teMHUq85WGwtPtQIebvkCPdmxbTO39WZOXNytsURc7Lq4iXM81RXiYs5WIFXc1Wr1mjhUP+lstbHwVCtg4NZPTPS5O9ZpiW3mbnVu4E51b52/GHA7TyC/BQDu/O6t8ysDbucJ5LcAwJ3fvXV+ZU7jFv9buk+83sV5BHktgDjAmBsZGflQO+M2b7/TnXNzOy0RLwfoEzeW8rq3zq/ryZMnn4+NjZ0Dbucp5K8AwI3OnT/V3oqAG7iB2/h/lIleW4KZO7eOWC4MnRudmyVMiqSAG7gpHLGMAdzAzRImRVLADdwUjljGAG7gZgmTIingBm4KRyxjADdws4RJkRRwAzeFI5YxgBu4WcKkSAq4gZvCEcsYwA3cLGFSJAXcwE3hiGUM4AZuljApkgJu4KZwxDIGcAM3S5gUSQE3cFM4YhkDuIGbJUyKpIAbuCkcsYwB3MDNEiZFUsAN3BSOWMYAbuBmCZMiKeAGbgpHLGMAN3CzhEmRFHADN4UjljGAG7hZwqRICriBm8IRyxjADdwsYVIkBdzATeGIZQzgBm6WMCmSAm7gpnDEMgZwAzdLmBRJATdwUzhiGQO4gZslTIqkgBu4KRyxjAHcwM0SJkVSwA3cFI5YxgBu4GYJkyIp4AZuCkcsYwA3cLOESZEUcAM3hSOWMYAbuFnCpEgKuIGbwhHLGMAN3CxhUiQF3MBN4YhlDOAGbpYwKZICbuCmcMQyBnADN0uYFEkBN3BTOGIZA7iBmyVMiqSAG7gpHLGMAdzAzRImRVLADdwUjljGAG7gZgmTIingBm4KRyxjADdws4RJkRRwAzeFI5YxgBu4WcKkSAq4gZvCEcsYwA3cLGFSJAXcwE3hiGUM4AZuljApkgJu4KZwxDIGcAM3S5gUSQE3cFM4YhkDuIGbJUyKpIAbuCkcsYwB3MDNEiZFUsAN3BSOWMYwcO+IJBveW1N7L3OXn7f/FSyrUV+T7+Vb0XgrV6vVa4ODgye5VKJWq/VtATeX7SDPI03cJYH7R+Am30ME9KnA2tra+dHR0XPi23rXlt2bpHOrDl4SAUsrKyufjIyMfMplN9C5uexEd/JYXFx8b2Ji4oaGWyLXYatxJPJYIjOVI4k+mrRwz8/PT0xOTt7szlLiRwXu+DXrpZ+Ym5sbP3369JLIWc3aqoNLzOpNLikWbnPmlrhbM3ij0fivUCjIjzP/B9yZb0HXEmg2m/8cOHDgJQtsfSxR1w/FLR+oP6nUu3erc0vcGxsb3w0NDb3ZtVXFCAzcMYrVYw8VTybPjo2Nfenhlh3b7NoS+Z6urSM2l+yHW52clCqVSvnhw4d/lUql57OuF3BnvQPdub44AZs/dOjQu+IJpY5aPwZUc3di3Go0MWfv4sLCwhtHjhz5wRtVurPCCFGBO0KReuwhYuxdvXTp0uszMzP6rK1gm8A7wm0772518atXr748NTX1fblcfiGr+gF3VpXvznU3Nzd/unjx4kdnzpz5VxtD/GBbT0qCxhJz7rZ17/aIImf0x48ffzE8PHyqWCw+150l+0cF7rQr3p3r1ev1P5eWlr4Sx35XvBlbgtZn7EhHgCo72x1KPXN1l1J/b96x3HVcODs7W5menj4loJ8QgfpVMPGsN+xaiSsmftP/Xl9ff5Q4AH4w1QqIU7b2qYb4uLa8vPz75cuXf7tw4cKaSETN0WanNkcR8xhwzxrCwCnUqpOb597qc31s0X8R1M+FXSfV4uJiLCpgnk/rWM3XjgS9lmTX8Z/ZmYNWar7ORH+9iT6qmB+bvxTAzcITqyTCcKvvm7fZA2/cJMGtd2ATuO1zs2PruAGdlbFUk9G7rP5E0PxYgTa7uW0USdy5bU8sbdD1zg3YqXrpuYt1Alwu1vd2u1mJKF3U7LrmqGLO4/ovRNDHPbcrSJikAjbcCq16rzq3DbPfz8d+QmkbYXTcti5uggZwEhO5CBIGW8ds69C+Z9q26kTp3H4zuh/yMNy52CUsouMKBEE3EUfu1n5Yo2Rr/jKYwAE7ShXxGFUB88mgrTP7PSa0inE7twroh9yG2+9rocnhAbmugO2Uw2/s8D0RCapQUtxmzKA4VNfI9U47vDg/uIlAdzKW+O0BADuss0tLZ4M7bH3AH1Yh977fMd6wkgFdWIXw/Z6tAHD37NYh8bAKAHdYhfD9nq0AcPfs1iHxsAr8D7xvfQ8bZ0PpAAAAAElFTkSuQmCC",H6={class:"setting-drawer"},I6={class:"h-full flex flex-col"},D6={class:"setting-item mb-5"},R6={class:"flex mt-4 cursor-pointer"},P6=["onClick"],S6=["src"],C6={class:"setting-item mb-5 flex justify-between items-center"},B6={class:"setting-item mb-5 flex justify-between items-center"},k6={class:"setting-item mb-5 flex justify-between items-center"},j6={class:"setting-item mb-5 flex justify-between items-center"},N6={class:"setting-item mb-5 flex justify-between items-center"},$6={class:"setting-item mb-5 flex justify-between items-center"},W6={class:"setting-item mb-5 flex justify-between items-center"},q6={class:"setting-item flex justify-between items-center mt-auto"},F6=S({__name:"drawer",setup(e){const a=s3(),o=G(["#409EFF","#28C76F","#EA5455","#FF9F43","#01CFE8","#4A5DFF"]),i=[{type:"dark",image:T6},{type:"light",image:O6}],s=y({get(){return a.sideTheme},set(M){a.setSetting({key:"sideTheme",value:M})}}),n=y({get(){return a.openMultipleTabs},set(M){a.setSetting({key:"openMultipleTabs",value:M})}}),r=y({get(){return a.isUniqueOpened},set(M){a.setSetting({key:"isUniqueOpened",value:M})}}),v=y({get(){return a.sideWidth},set(M){a.setSetting({key:"sideWidth",value:M})}}),d=y({get(){return a.showDrawer},set(M){a.setSetting({key:"showDrawer",value:M})}}),p=y({get(){return a.theme},set(M){a.setSetting({key:"theme",value:M}),N()}}),f=y({get(){return a.showLogo},set(M){a.setSetting({key:"showLogo",value:M})}}),b=y({get(){return a.showCrumb},set(M){a.setSetting({key:"showCrumb",value:M})}}),E=Z1(),N=()=>{a.setTheme(E.value)},I=()=>{W0(E)(),N()},O=()=>{E.value=!1,a.resetTheme(),N()};return(M,V)=>{const l3=n3,j=j0,c3=N0,B=$0,Y3=K1,H3=X1;return h(),A("div",H6,[_(H3,{modelValue:c(d),"onUpdate:modelValue":V[6]||(V[6]=k=>a3(d)?d.value=k:null),"append-to-body":"",direction:"rtl",size:"250px",title:"主题设置"},{default:z(()=>[m("div",I6,[m("div",D6,[V[7]||(V[7]=m("span",{class:"text-tx-secondary"},"风格设置",-1)),m("div",R6,[(h(),A(U,null,_3(i,k=>m("div",{class:"mr-4 flex relative text-primary",key:k.type,onClick:z3=>s.value=k.type},[m("img",{src:k.image,width:"52",height:"36"},null,8,S6),c(s)==k.type?(h(),R(l3,{key:0,class:"icon-select",name:"el-icon-Select"})):C("",!0)],8,P6)),64))])]),m("div",C6,[V[8]||(V[8]=m("span",{class:"text-tx-secondary"},"主题颜色",-1)),m("div",null,[_(j,{modelValue:c(p),"onUpdate:modelValue":V[0]||(V[0]=k=>a3(p)?p.value=k:null),predefine:c(o)},null,8,["modelValue","predefine"])])]),m("div",B6,[V[9]||(V[9]=m("span",{class:"text-tx-secondary"},"开启黑暗模式",-1)),m("div",null,[_(c3,{"model-value":c(E),onChange:I},null,8,["model-value"])])]),m("div",k6,[V[10]||(V[10]=m("span",{class:"text-tx-secondary"},"开启多页签栏",-1)),m("div",null,[_(c3,{modelValue:c(n),"onUpdate:modelValue":V[1]||(V[1]=k=>a3(n)?n.value=k:null),"active-value":!0,"inactive-value":!1},null,8,["modelValue"])])]),m("div",j6,[V[11]||(V[11]=m("span",{class:"text-tx-secondary"},"只展开一个一级菜单",-1)),m("div",null,[_(c3,{modelValue:c(r),"onUpdate:modelValue":V[2]||(V[2]=k=>a3(r)?r.value=k:null),"active-value":!0,"inactive-value":!1},null,8,["modelValue"])])]),m("div",N6,[V[12]||(V[12]=m("div",{class:"text-tx-secondary flex-none mr-3"},"菜单栏宽度",-1)),m("div",null,[_(B,{modelValue:c(v),"onUpdate:modelValue":V[3]||(V[3]=k=>a3(v)?v.value=k:null),min:180,max:250},null,8,["modelValue"])])]),m("div",$6,[V[13]||(V[13]=m("div",{class:"text-tx-secondary flex-none mr-3"},"显示LOGO",-1)),m("div",null,[_(c3,{modelValue:c(f),"onUpdate:modelValue":V[4]||(V[4]=k=>a3(f)?f.value=k:null),"active-value":!0,"inactive-value":!1},null,8,["modelValue"])])]),m("div",W6,[V[14]||(V[14]=m("div",{class:"text-tx-secondary flex-none mr-3"},"显示面包屑",-1)),m("div",null,[_(c3,{modelValue:c(b),"onUpdate:modelValue":V[5]||(V[5]=k=>a3(b)?b.value=k:null),"active-value":!0,"inactive-value":!1},null,8,["modelValue"])])]),m("div",q6,[_(Y3,{onClick:O,class:"w-full"},{default:z(()=>[...V[15]||(V[15]=[P("重置主题",-1)])]),_:1})])])]),_:1},8,["modelValue"])])}}}),G6=Y(F6,[["__scopeId","data-v-352f3746"]]),U6=S({__name:"index",setup(e){const a=s3(),o=()=>{a.setSetting({key:"showDrawer",value:!0})};return(i,s)=>{const n=n3;return h(),A("div",{class:"setting flex cursor-pointer h-full items-center px-2",onClick:o},[_(n,{size:16,name:"el-icon-Setting"}),_(G6)])}}});function p0(e){const a=G3();return w3(a,()=>{e(a)},{immediate:!0}),{route:a}}const Y6=S({__name:"breadcrumb",setup(e){const a=G([]),o=i=>{const s=i.matched.filter(n=>n.meta&&n.meta.title);a.value=s};return p0(i=>{o(i)}),(i,s)=>{const n=q0,r=F0;return h(),R(r,{class:"app-breadcrumb"},{default:z(()=>[(h(!0),A(U,null,_3(c(a),v=>(h(),R(n,{key:v.path},{default:z(()=>[P(H(v.meta.title),1)]),_:2},1024))),128))]),_:1})}}}),Z6=Y(Y6,[["__scopeId","data-v-94d84829"]]),X6=S({__name:"fold",setup(e){const a=e3(),o=y(()=>a.isCollapsed),i=()=>{a.toggleCollapsed()};return(s,n)=>{const r=n3;return h(),A("div",{class:"fold h-full cursor-pointer flex items-center px-2",onClick:i},[_(r,{name:`local-icon-${c(o)?"expand":"collapse"}`,size:18},null,8,["name"])])}}}),K6=S({__name:"full-screen",setup(e){const{toggle:a,isFullscreen:o}=J1();return(i,s)=>{const n=n3;return h(),A("div",{class:"full-screen h-full cursor-pointer flex items-center px-2",onClick:s[0]||(s[0]=(...r)=>c(a)&&c(a)(...r))},[_(n,{size:16,name:`local-icon-${c(o)?"fullscreen-exit":"fullscreen"}`},null,8,["name"])])}}});function J6(){const e=p3(),a=G3(),o=O3(),i=s3(),s=y(()=>o.getTabList),n=y(()=>a.fullPath);return{tabsLists:s,currentTab:n,addTab:()=>{i.openMultipleTabs&&o.addTab(e)},removeTab:f=>{i.openMultipleTabs&&(f=f??a.fullPath,o.removeTab(f,e))},removeOtherTab:()=>{i.openMultipleTabs&&o.removeOtherTab(a)},removeAllTab:()=>{i.openMultipleTabs&&o.removeAllTab(e)}}}const Q6={class:"app-tabs pl-4 flex bg-body"},e4={class:"flex-1 min-w-0"},a4={class:"flex items-center px-3"},o4=S({__name:"multiple-tabs",setup(e){const a=p3(),o=O3(),{removeOtherTab:i,addTab:s,removeAllTab:n,removeTab:r,tabsLists:v,currentTab:d}=J6();p0(()=>{s()});const p=b=>{const E=o.tasMap[b];a.push(m0(E))},f=b=>{switch(b){case"closeCurrent":r();break;case"closeOther":i();break;case"closeAll":n();break}};return(b,E)=>{const N=G0,I=U0,O=n3,M=e0,V=Q1,l3=a0;return h(),A("div",Q6,[m("div",e4,[_(I,{"model-value":c(d),closable:c(v).length>1,onTabChange:p,onTabRemove:E[0]||(E[0]=j=>c(r)(j))},{default:z(()=>[(h(!0),A(U,null,_3(c(v),j=>(h(),R(N,{key:j.fullPath,label:j.title,name:j.fullPath},null,8,["label","name"]))),128))]),_:1},8,["model-value","closable"])]),_(l3,{onCommand:f},{dropdown:z(()=>[_(V,null,{default:z(()=>[_(M,{command:"closeCurrent"},{default:z(()=>[...E[1]||(E[1]=[P(" 关闭当前 ",-1)])]),_:1}),_(M,{command:"closeOther"},{default:z(()=>[...E[2]||(E[2]=[P(" 关闭其他 ",-1)])]),_:1}),_(M,{command:"closeAll"},{default:z(()=>[...E[3]||(E[3]=[P(" 关闭全部 ",-1)])]),_:1})]),_:1})]),default:z(()=>[m("span",a4,[_(O,{size:16,name:"el-icon-arrow-down"})])]),_:1})])}}}),t4=Y(o4,[["__scopeId","data-v-414a904e"]]),i4=S({__name:"refresh",setup(e){const a=e3(),o=()=>{a.refreshView()};return(i,s)=>{const n=n3;return h(),A("div",{class:"refresh cursor-pointer h-full flex items-center px-2",onClick:o},[_(n,{name:"el-icon-RefreshRight",size:18})])}}});function N5(){return T.get({url:"/setting.system.system/info"})}function $5(e){return T.get({url:"/setting.system.log/lists",params:e},{ignoreCancelToken:!0})}function s4(){return T.post({url:"/setting.system.cache/clear"})}function W5(e){return T.get({url:"/crontab.crontab/lists",params:e})}function q5(e){return T.post({url:"/crontab.crontab/add",params:e})}function F5(e){return T.get({url:"/crontab.crontab/detail",params:e})}function G5(e){return T.post({url:"/crontab.crontab/edit",params:e})}function U5(e){return T.post({url:"/crontab.crontab/delete",params:e})}function Y5(e){return T.get({url:"/crontab.crontab/expression",params:e})}const n4={class:"flex items-center"},l4={class:"ml-3 mr-1"},c4=S({__name:"user-drop-down",setup(e){const a=i3(),o=y(()=>a.userInfo),i=async s=>{switch(s){case"logout":await m3.confirm("确定退出登录吗?"),a.logout();break;case"cache":await s4(),window.location.reload();break}};return(s,n)=>{const r=Y0,v=n3,d=e0,p=T3("router-link"),f=Q1,b=a0;return h(),R(b,{class:"px-2",onCommand:i},{dropdown:z(()=>[_(f,null,{default:z(()=>[_(p,{to:"/user/setting"},{default:z(()=>[_(d,null,{default:z(()=>[...n[0]||(n[0]=[P("个人设置",-1)])]),_:1})]),_:1}),_(d,{command:"cache"},{default:z(()=>[...n[1]||(n[1]=[P("清除缓存",-1)])]),_:1}),_(d,{command:"logout"},{default:z(()=>[...n[2]||(n[2]=[P("退出登录",-1)])]),_:1})]),_:1})]),default:z(()=>[m("div",n4,[_(r,{size:34,src:c(o).avatar},null,8,["src"]),m("div",l4,H(c(o).name),1),_(v,{name:"el-icon-ArrowDown"})])]),_:1})}}}),r4={class:"header"},u4={class:"navbar"},d4={class:"flex-1 flex"},m4={class:"navbar-item"},_4={class:"navbar-item"},v4={key:0,class:"flex items-center px-2"},h4={class:"flex"},p4={key:0,class:"navbar-item"},b4={class:"navbar-item"},z4={class:"navbar-item"},y4=S({__name:"index",setup(e){const a=e3(),o=y(()=>a.isMobile),i=y(()=>a.isCollapsed),s=s3(),{isFullscreen:n}=J1();return(r,v)=>{const d=o0;return h(),A("header",r4,[m("div",u4,[m("div",d4,[m("div",m4,[_(d,{class:"box-item",effect:"dark",content:c(i)?"展开菜单":"收起菜单",placement:"bottom"},{default:z(()=>[_(X6)]),_:1},8,["content"])]),m("div",_4,[_(d,{class:"box-item",effect:"dark",content:"刷新",placement:"bottom"},{default:z(()=>[_(i4)]),_:1})]),!c(o)&&c(s).showCrumb?(h(),A("div",v4,[_(Z6)])):C("",!0)]),m("div",h4,[c(o)?C("",!0):(h(),A("div",p4,[_(d,{class:"box-item",effect:"dark",content:c(n)?"退出全屏":"全屏模式",placement:"bottom"},{default:z(()=>[_(K6)]),_:1},8,["content"])])),m("div",b4,[_(c4)]),m("div",z4,[_(d,{class:"box-item",effect:"dark",content:"主题设置",placement:"bottom"},{default:z(()=>[_(U6)]),_:1})])])]),c(s).openMultipleTabs?(h(),R(t4,{key:0})):C("",!0)])}}}),f4={class:"main-wrap h-full bg-page"},g4={class:"px-2 py-4"},w4=S({__name:"main",setup(e){const a=e3(),o=O3(),i=s3(),s=y(()=>a.isRouteShow),n=y(()=>i.openMultipleTabs?o.getCacheTabList:[]);return(r,v)=>{const d=T3("router-view"),p=t0;return h(),A("main",f4,[_(p,null,{default:z(()=>[m("div",g4,[c(s)?(h(),R(d,{key:0},{default:z(({Component:f,route:b})=>[(h(),R(Z0,{include:c(n),max:20},[(h(),R(i0(f),{key:b.fullPath}))],1032,["include"]))]),_:1})):C("",!0)])]),_:1})])}}}),A4=S({__name:"index",props:{...X0,teleported:{type:Boolean,default:!1},placement:{type:String,default:"top"},overfloType:{type:String,default:"ellipsis"}},setup(e){const a=e,o=J0(),i=G(!1);return K0(o,"mouseenter",()=>{var s,n;((s=o.value)==null?void 0:s.scrollWidth)>((n=o.value)==null?void 0:n.offsetWidth)?i.value=!1:i.value=!0}),(s,n)=>{const r=o0;return h(),A("div",null,[_(r,m1(a,{disabled:c(i)}),{default:z(()=>[m("div",{ref_key:"textRef",ref:o,class:"overflow-text truncate",style:M3({textOverflow:e.overfloType})},H(s.content),5)]),_:1},16,["disabled"])])}}}),V4=S({__name:"index",props:{width:{type:[String,Number],default:"auto"},height:{type:[String,Number],default:"auto"},radius:{type:[String,Number],default:0},...Q0},setup(e){const a=e,o=y(()=>({width:E3(a.width),height:E3(a.height),borderRadius:E3(a.radius)}));return(i,s)=>{const n=e2;return h(),R(n,m1({style:o.value},a),null,16,["style"])}}}),L4=Y(V4,[["__scopeId","data-v-275301c7"]]),E4=S({__name:"logo",props:{szie:{type:Number,default:34},title:{type:String},theme:{type:String},showTitle:{type:Boolean,default:!0}},setup(e){const a=e3(),o=y(()=>a.config),i=p3(),s=()=>{i.push("/")};return(n,r)=>{const v=L4,d=A4;return h(),A("div",{class:"logo",onClick:s},[_(v,{width:e.szie,height:e.szie,src:c(o).web_logo},null,8,["width","height","src"]),_(s0,{name:"title-width"},{default:z(()=>[n0(m("div",{class:t3(["logo-title overflow-hidden whitespace-nowrap",{"text-white":e.theme==c(u0).DARK}]),style:M3({left:`${e.szie+16}px`})},[_(d,{content:e.title||c(o).web_name,teleported:!0,placement:"bottom","overflo-type":"unset"},null,8,["content"])],6),[[l0,e.showTitle]])]),_:1})])}}}),x4=Y(E4,[["__scopeId","data-v-590d56e3"]]),M4=S({__name:"index",props:{to:{},replace:{type:Boolean}},setup(e){const a=e,o=y(()=>typeof a.to!="object"&&b3(a.to)),i=y(()=>o.value?"a":"router-link"),s=y(()=>o.value?{href:a.to,target:"_blank"}:a);return(n,r)=>(h(),R(i0(c(i)),a2(o2(c(s))),{default:z(()=>[t2(n.$slots,"default")]),_:3},16))}}),T4=S({__name:"menu-item",props:{route:{},routePath:{},popperClass:{}},setup(e){const a=e,o=y(()=>!!(a.route.children??[]).filter(v=>{var d;return!((d=v.meta)!=null&&d.hidden)}).length),i=y(()=>a.route.meta),s=r=>b3(r)?r:A6(`${a.routePath}/${r}`),n=y(()=>{var v;const r=(v=a.route.meta)==null?void 0:v.query;try{const d=JSON.parse(r);return V6(d)}catch{return r}});return(r,v)=>{var N;const d=n3,p=i2,f=M4,b=T3("menu-item",!0),E=s2;return(N=e.route.meta)!=null&&N.hidden?C("",!0):(h(),A(U,{key:0},[c(o)?(h(),R(E,{key:1,index:e.routePath,"popper-class":e.popperClass},{title:z(()=>{var I,O,M;return[(I=c(i))!=null&&I.icon?(h(),R(d,{key:0,class:"menu-item-icon",size:16,name:(O=c(i))==null?void 0:O.icon},null,8,["name"])):C("",!0),m("span",null,H((M=c(i))==null?void 0:M.title),1)]}),default:z(()=>{var I;return[(h(!0),A(U,null,_3((I=e.route)==null?void 0:I.children,O=>(h(),R(b,{key:s(O.path),route:O,"route-path":s(O.path),"popper-class":e.popperClass},null,8,["route","route-path","popper-class"]))),128))]}),_:1},8,["index","popper-class"])):(h(),R(f,{key:0,to:`${e.routePath}?${c(n)}`},{default:z(()=>[_(p,{index:e.routePath},{title:z(()=>{var I;return[m("span",null,H((I=c(i))==null?void 0:I.title),1)]}),default:z(()=>{var I,O;return[(I=c(i))!=null&&I.icon?(h(),R(d,{key:0,class:"menu-item-icon",size:16,name:(O=c(i))==null?void 0:O.icon},null,8,["name"])):C("",!0)]}),_:1},8,["index"])]),_:1},8,["to"]))],64))}}}),O4=Y(T4,[["__scopeId","data-v-65172b69"]]),H4=S({__name:"menu",props:{routes:{type:Object},config:{type:Object},uniqueOpened:{type:Boolean,default:!1},isCollapsed:{type:Boolean,default:!1},theme:{type:String},width:{type:Number,default:200}},emits:["select"],setup(e){const a=e,o=G3(),i=y(()=>{var n;return((n=o.meta)==null?void 0:n.activeMenu)||o.path}),s=y(()=>`theme-${a.theme}`);return(n,r)=>{const v=n2,d=t0;return h(),A("div",{class:t3(["menu flex-1 min-h-0",c(s)]),style:M3(e.isCollapsed?"":`--aside-width: ${e.width}px`)},[_(d,null,{default:z(()=>[_(v,m1(e.config,{"default-active":c(i),collapse:e.isCollapsed,mode:"vertical","unique-opened":e.uniqueOpened,onSelect:r[0]||(r[0]=p=>n.$emit("select"))}),{default:z(()=>[(h(!0),A(U,null,_3(e.routes,p=>(h(),R(O4,{key:p.path,route:p,"route-path":p.path,"popper-class":c(s)},null,8,["route","route-path","popper-class"]))),128))]),_:1},16,["default-active","collapse","unique-opened"])]),_:1})],6)}}}),I4=Y(H4,[["__scopeId","data-v-6c529f19"]]),D4=S({__name:"side",setup(e){const a=e3(),o=y(()=>a.isMobile?!1:a.isCollapsed),i=s3(),s=y(()=>i.sideTheme),n=i3(),r=y(()=>n.routes),v=y(()=>s.value=="dark"?{"--side-dark-color":i.sideDarkColor}:""),d=y(()=>({backgroundColor:s.value=="dark"?i.sideDarkColor:"",textColor:s.value=="dark"?"var(--el-color-white)":"",activeTextColor:s.value=="dark"?"var(--el-color-white)":""})),p=()=>{a.isMobile&&a.toggleCollapsed(!0)};return(f,b)=>(h(),A("div",{class:"side",style:M3(c(v))},[c(i).showLogo?(h(),R(x4,{key:0,"show-title":!c(o),theme:c(s)},null,8,["show-title","theme"])):C("",!0),_(I4,{routes:c(r),"is-collapsed":c(o),width:c(i).sideWidth,"unique-opened":c(i).isUniqueOpened,config:c(d),theme:c(s),onSelect:p},null,8,["routes","is-collapsed","width","unique-opened","config","theme"])],4))}}),B1=Y(D4,[["__scopeId","data-v-ed43753e"]]),R4={class:"sidebar h-full"},P4=S({__name:"index",setup(e){const a=e3(),o=s3(),i=y(()=>a.isMobile),s=y({get(){return!a.isCollapsed&&i.value},set(r){a.toggleCollapsed(!r)}}),n=y(()=>`${o.sideWidth+1}px`);return(r,v)=>{const d=X1;return h(),A("aside",R4,[_(d,{modelValue:c(s),"onUpdate:modelValue":v[0]||(v[0]=p=>a3(s)?s.value=p:null),direction:"ltr",size:c(n),title:"主题设置","with-header":!1},{default:z(()=>[_(B1)]),_:1},8,["modelValue","size"]),n0(_(B1,null,null,512),[[l0,!c(i)]])])}}}),S4=Y(P4,[["__scopeId","data-v-7243bf96"]]),C4={class:"layout-default flex h-screen w-full"},B4={class:"app-aside shrink-0"},k4={class:"flex-1 flex flex-col min-w-0"},j4={class:"app-header"},N4={class:"app-main flex-1 min-h-0"},$4=S({__name:"index",setup(e){return(a,o)=>(h(),A("div",C4,[m("div",B4,[_(S4)]),m("div",k4,[m("div",j4,[_(y4)]),m("div",N4,[_(w4)])])]))}}),x3=()=>Promise.resolve($4),U3=Symbol(),W4=[{path:"/:pathMatch(.*)*",component:()=>t(()=>import("./404-D0vxTsay.js"),__vite__mapDeps([0,1,2,3,4]))},{path:q.ERROR_403,component:()=>t(()=>import("./403-BMBB_v5E.js"),__vite__mapDeps([5,1,2,3,4]))},{path:q.LOGIN,component:()=>t(()=>import("./login-pFp7rOH_.js"),__vite__mapDeps([6,2,3,7,8,9]))},{path:"/change-password",component:()=>t(()=>import("./change-password-pIHWLEVG.js"),__vite__mapDeps([10,2,3,7,8,11]))},{path:"/bind-work-wechat",component:()=>t(()=>import("./bind-work-wechat-BRSOS94Y.js"),__vite__mapDeps([12,2,3,8,13,14]))},{path:"/user",component:x3,children:[{path:"setting",component:()=>t(()=>import("./setting-DOvqZWBR.js"),__vite__mapDeps([15,2,3,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,13,31])),name:Symbol(),meta:{title:"个人设置"}}]},{path:"/doctor",component:x3,children:[{path:"progress",component:()=>t(()=>import("./progress-BVpNfzBl.js"),__vite__mapDeps([32,2,3,33,34,35])),name:"doctorFaceProgress",meta:{title:"面诊进度"}}]},{path:"/decoration/pc_details",component:()=>t(()=>import("./pc_details-uATI737f.js"),__vite__mapDeps([36,2,3,37,38,39,40,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75]))},{path:"/fans/h5",component:()=>t(()=>import("./h5-DMwOBeA2.js"),__vite__mapDeps([76,2,3,77,33,78]))},{path:"/tcm/diagnosis/h5",component:()=>t(()=>import("./index_h5-CguomBSY.js"),__vite__mapDeps([79,2,3,80,81,82,34,83,28,84,33,85,86,87]))},{path:"/tcm/diagnosis-readonly",component:x3,meta:{hidden:!0},children:[{path:"",component:()=>t(()=>import("./readonly-C-Pkqvus.js"),__vite__mapDeps([88,2,3,81,89,90,84,91,92,93,94,95,96,97,18,19,20,21,22,23,24,25,26,27,28,29,30,98,99,100,101,102,103,104,105,106,107,33,108,109,110,111,112,34,113,114,115,116,117,118,119,120,121])),name:"tcmDiagnosisReadonly",meta:{title:"患者信息详情",hidden:!0,activeMenu:"/tcm/diagnosis"}}]}],S3={path:q.INDEX,component:x3,name:U3},l1=Object.assign({"/src/views/account/bind-work-wechat.vue":()=>t(()=>import("./bind-work-wechat-BRSOS94Y.js"),__vite__mapDeps([12,2,3,8,13,14])),"/src/views/account/change-password.vue":()=>t(()=>import("./change-password-pIHWLEVG.js"),__vite__mapDeps([10,2,3,7,8,11])),"/src/views/account/login.vue":()=>t(()=>import("./login-pFp7rOH_.js"),__vite__mapDeps([6,2,3,7,8,9])),"/src/views/ai_mcp/access_log/index.vue":()=>t(()=>import("./index-CWe9wKwn.js"),__vite__mapDeps([122,2,3,22,123,28,124])),"/src/views/ai_mcp/catalog/index.vue":()=>t(()=>import("./index-TVpa2sx0.js"),__vite__mapDeps([125,2,3,22,123,28,126])),"/src/views/ai_mcp/grant/index.vue":()=>t(()=>import("./index-Co_rrQhX.js"),__vite__mapDeps([127,2,3,22,123,28,128])),"/src/views/app/recharge/index.vue":()=>t(()=>import("./index-kIO3DJkN.js"),__vite__mapDeps([129,16,2,3,17])),"/src/views/article/column/edit.vue":()=>t(()=>import("./edit-L84XrS85.js"),__vite__mapDeps([130,131,2,3,42,19,20])),"/src/views/article/column/index.vue":()=>t(()=>import("./index-Cvs9Y5Uh.js"),__vite__mapDeps([132,2,3,22,42,28,131,19,20])),"/src/views/article/lists/edit.vue":()=>t(()=>import("./edit-D46JCM5b.js"),__vite__mapDeps([133,16,2,3,17,134,18,19,20,21,22,23,24,25,26,27,28,29,30,135,42,136])),"/src/views/article/lists/index.vue":()=>t(()=>import("./index-DxYFVchx.js"),__vite__mapDeps([137,2,3,22,42,136,28])),"/src/views/asset/resource/index.vue":()=>t(()=>import("./index-D6JjdB2D.js"),__vite__mapDeps([138,2,3,139,18,19,20,21,22,23,24,25,26,27,28,29,30])),"/src/views/asset/user/index.vue":()=>t(()=>import("./index-CmzQ0RHU.js"),__vite__mapDeps([140,2,3,139])),"/src/views/channel/h5.vue":()=>t(()=>import("./h5-BvJ9_TsW.js"),__vite__mapDeps([141,16,2,3,17])),"/src/views/channel/open_setting.vue":()=>t(()=>import("./open_setting-CTIsPyjO.js"),__vite__mapDeps([142,16,2,3,17])),"/src/views/channel/weapp.vue":()=>t(()=>import("./weapp-DcljhexR.js"),__vite__mapDeps([143,16,2,3,17,18,19,20,21,22,23,24,25,26,27,28,29,30,83])),"/src/views/channel/wx_oa/config.vue":()=>t(()=>import("./config-7zVqSxlr.js"),__vite__mapDeps([144,16,2,3,17,18,19,20,21,22,23,24,25,26,27,28,29,30,145])),"/src/views/channel/wx_oa/menu.vue":()=>t(()=>import("./menu-DFGEBVd5.js"),__vite__mapDeps([146,16,2,3,17,147,23,24,19,20,148,149,145,150,151,152])),"/src/views/channel/wx_oa/menu_com/oa-attr.vue":()=>t(()=>import("./oa-attr-ChgdvxF3.js"),__vite__mapDeps([147,23,2,3,24,19,20,148,149,145,150])),"/src/views/channel/wx_oa/menu_com/oa-menu-form-edit.vue":()=>t(()=>import("./oa-menu-form-edit-DlwuhjjU.js"),__vite__mapDeps([153,150,19,2,3,20,148,149,145])),"/src/views/channel/wx_oa/menu_com/oa-menu-form.vue":()=>t(()=>import("./oa-menu-form-BtVlmzxF.js"),__vite__mapDeps([154,148,2,3,149,145])),"/src/views/channel/wx_oa/menu_com/oa-phone.vue":()=>t(()=>import("./oa-phone-Chcv3hu5.js"),__vite__mapDeps([151,2,3,149,145,152])),"/src/views/channel/wx_oa/reply/default_reply.vue":()=>t(()=>import("./default_reply-DlS9tKKW.js"),__vite__mapDeps([155,2,3,22,145,28,156,19,20])),"/src/views/channel/wx_oa/reply/edit.vue":()=>t(()=>import("./edit-D5LhAhOU.js"),__vite__mapDeps([157,156,2,3,145,19,20])),"/src/views/channel/wx_oa/reply/follow_reply.vue":()=>t(()=>import("./follow_reply-DcTwnOL_.js"),__vite__mapDeps([158,2,3,22,145,28,156,19,20])),"/src/views/channel/wx_oa/reply/keyword_reply.vue":()=>t(()=>import("./keyword_reply-0cxOJmpm.js"),__vite__mapDeps([159,2,3,22,145,28,156,19,20])),"/src/views/chat/components/MessageBubble.vue":()=>t(()=>import("./MessageBubble-CRT5BPUN.js"),__vite__mapDeps([160,2,3,161])),"/src/views/chat/components/SendPanel.vue":()=>t(()=>import("./SendPanel-Da0QIw47.js").then(e=>e.i),__vite__mapDeps([162,2,3,26,163])),"/src/views/chat/index.vue":()=>t(()=>import("./index-DwDe6YfY.js"),__vite__mapDeps([164,2,3,28,160,161,162,26,163,165])),"/src/views/consumer/assistant/edit.vue":()=>t(()=>import("./edit-RtJ3KIa8.js"),__vite__mapDeps([166,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,167,168,169,136,170])),"/src/views/consumer/assistant/index.vue":()=>t(()=>import("./index-063fi3m5.js"),__vite__mapDeps([171,2,3,22,167,28,166,18,19,20,21,23,24,25,26,27,29,30,168,169,136,170,172])),"/src/views/consumer/components/account-adjust.vue":()=>t(()=>import("./account-adjust-BZWMca9h.js"),__vite__mapDeps([173,174,2,3,19,20])),"/src/views/consumer/doctor/edit.vue":()=>t(()=>import("./edit-C3BLD59B.js"),__vite__mapDeps([175,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,167,168,169,136,176])),"/src/views/consumer/doctor/index.vue":()=>t(()=>import("./index-CrHG8Y0M.js"),__vite__mapDeps([177,2,3,22,167,28,175,18,19,20,21,23,24,25,26,27,29,30,168,169,136,176,178])),"/src/views/consumer/doctor/paiban.vue":()=>t(()=>import("./paiban-BlrBlFR2.js"),__vite__mapDeps([179,2,3,33,81,34,180])),"/src/views/consumer/lists/detail.vue":()=>t(()=>import("./detail-CQb98XKw.js"),__vite__mapDeps([181,2,3,27,182,174,19,20])),"/src/views/consumer/lists/index.vue":()=>t(()=>import("./index-DhcEF7gk.js"),__vite__mapDeps([183,2,3,22,184,19,20,185,182,28])),"/src/views/consumer/prescription/components/GancaoSubmissionReconcileButton.vue":()=>t(()=>import("./GancaoSubmissionReconcileButton-BHSxzzMH.js"),__vite__mapDeps([186,187,2,3,81])),"/src/views/consumer/prescription/components/PrescriptionAiBatchGenerateDialog.vue":()=>t(()=>import("./PrescriptionAiBatchGenerateDialog-DjGAFFkN.js"),__vite__mapDeps([188,2,3,81,189])),"/src/views/consumer/prescription/components/PrescriptionAiReportDialog.vue":()=>t(()=>import("./PrescriptionAiReportDialog-DqUaPOfy.js"),__vite__mapDeps([190,2,3,81,191])),"/src/views/consumer/prescription/components/PrescriptionOrderDetailDrawer.vue":()=>t(()=>import("./PrescriptionOrderDetailDrawer-v90LlSLZ.js"),__vite__mapDeps([115,2,3,81,116,117])),"/src/views/consumer/prescription/components/PrescriptionOrderTimeDialog.vue":()=>t(()=>import("./PrescriptionOrderTimeDialog-i6cJMJuf.js"),__vite__mapDeps([192,193,2,3,81])),"/src/views/consumer/prescription/guahao.vue":()=>t(()=>import("./guahao-Bm45eY5R.js"),__vite__mapDeps([194,2,3,22,185,34,80,81,28])),"/src/views/consumer/prescription/index.vue":()=>t(()=>import("./index-MpOBPDwT.js"),__vite__mapDeps([195,2,3,22,81,196,197,28,84,185,198,199,200,201,202])),"/src/views/consumer/prescription/list.vue":()=>t(()=>import("./list-sR7XC4Vj.js"),__vite__mapDeps([203,2,3,22,81,28,198,196,199,188,189,190,191,204])),"/src/views/consumer/prescription/order_list.vue":()=>t(()=>import("./order_list-BIadJ-Mc.js"),__vite__mapDeps([205,2,3,22,184,19,20,206,207,115,81,116,117,193,187,200,201,168,28,208])),"/src/views/consumer/prescription/order_list_h5.vue":()=>t(()=>import("./order_list_h5-B-ZXMOQL.js"),__vite__mapDeps([209,2,3,22,206,207,193,81,187,116,200,201,168,28,210])),"/src/views/decoration/component/add-nav.vue":()=>t(()=>import("./add-nav-tqYQknrT.js"),__vite__mapDeps([211,54,2,3,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/decoration-img.vue":()=>t(()=>import("./decoration-img-DKpVnT4z.js"),__vite__mapDeps([46,2,3,47])),"/src/views/decoration/component/pages/attr-setting.vue":()=>t(()=>import("./attr-setting-DN289Yb7.js"),__vite__mapDeps([212,213,2,3,39,40,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,37,61,62,63,64,65,66,67,68,69,70,71,72,73])),"/src/views/decoration/component/pages/menu.vue":()=>t(()=>import("./menu-DViiZPlx.js"),__vite__mapDeps([214,2,3,215])),"/src/views/decoration/component/pages/preview-pc.vue":()=>t(()=>import("./preview-pc-ByidwxXs.js"),__vite__mapDeps([38,2,3,39,40,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,37,61,62,63,64,65,66,67,68,69,70,71,72,73,74])),"/src/views/decoration/component/pages/preview.vue":()=>t(()=>import("./preview-pEzQXats.js"),__vite__mapDeps([216,2,3,39,40,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,37,61,62,63,64,65,66,67,68,69,70,71,72,73,217])),"/src/views/decoration/component/tabbar/mobile/attr.vue":()=>t(()=>import("./attr-D-UoRRL5.js"),__vite__mapDeps([218,219,2,3,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,63])),"/src/views/decoration/component/tabbar/mobile/content.vue":()=>t(()=>import("./content-Dq3aXIKw.js"),__vite__mapDeps([220,46,2,3,47,221])),"/src/views/decoration/component/tabbar/pc/attr.vue":()=>t(()=>import("./attr-D0wjYsnJ.js"),__vite__mapDeps([222,2,3,223,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/tabbar/pc/content.vue":()=>t(()=>import("./content-BwspHpXJ.js"),__vite__mapDeps([224,2,3,46,47,225])),"/src/views/decoration/component/tabbar/pc/menu-set.vue":()=>t(()=>import("./menu-set-XcVyFmeW.js"),__vite__mapDeps([226,223,2,3,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/widgets/banner/attr.vue":()=>t(()=>import("./attr-BKcZmDiX.js"),__vite__mapDeps([40,2,3,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,44])),"/src/views/decoration/component/widgets/banner/content.vue":()=>t(()=>import("./content-gqkMlJui.js"),__vite__mapDeps([227,45,46,2,3,47])),"/src/views/decoration/component/widgets/customer-service/attr.vue":()=>t(()=>import("./attr-DOCKwB30.js"),__vite__mapDeps([228,48,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30])),"/src/views/decoration/component/widgets/customer-service/content.vue":()=>t(()=>import("./content-CkQUB7ti.js"),__vite__mapDeps([49,46,2,3,47,50])),"/src/views/decoration/component/widgets/middle-banner/attr.vue":()=>t(()=>import("./attr-C26ZoaXM.js"),__vite__mapDeps([229,51,2,3,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/widgets/middle-banner/content.vue":()=>t(()=>import("./content-DraxgVnJ.js"),__vite__mapDeps([230,52,46,2,3,47])),"/src/views/decoration/component/widgets/my-service/attr.vue":()=>t(()=>import("./attr-D9VUrNbu.js"),__vite__mapDeps([231,53,2,3,54,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/widgets/my-service/content.vue":()=>t(()=>import("./content-BtlOdmdD.js"),__vite__mapDeps([55,46,2,3,47,56])),"/src/views/decoration/component/widgets/nav/attr.vue":()=>t(()=>import("./attr-B6FOMi5s.js"),__vite__mapDeps([232,57,2,3,54,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/widgets/nav/content.vue":()=>t(()=>import("./content-IXSBK-yr.js"),__vite__mapDeps([233,58,46,2,3,47])),"/src/views/decoration/component/widgets/news/attr.vue":()=>t(()=>import("./attr-fJstkaKx.js"),__vite__mapDeps([234,59,2,3])),"/src/views/decoration/component/widgets/news/content.vue":()=>t(()=>import("./content-DqDTOak9.js"),__vite__mapDeps([60,37,2,3,61])),"/src/views/decoration/component/widgets/page-meta/attr.vue":()=>t(()=>import("./attr-DGZCW9wJ.js"),__vite__mapDeps([235,62,2,3,63,18,19,20,21,22,23,24,25,26,27,28,29,30])),"/src/views/decoration/component/widgets/page-meta/content.vue":()=>t(()=>import("./content-0LXu-5MK.js"),__vite__mapDeps([64,2,3])),"/src/views/decoration/component/widgets/pc-banner/content.vue":()=>t(()=>import("./content-Dzcw4koZ.js"),__vite__mapDeps([236,65,2,3,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/widgets/search/attr.vue":()=>t(()=>import("./attr-DbCbv7ST.js"),__vite__mapDeps([237,66,2,3])),"/src/views/decoration/component/widgets/search/content.vue":()=>t(()=>import("./content-C5W1CaMe.js"),__vite__mapDeps([67,2,3,68])),"/src/views/decoration/component/widgets/user-banner/attr.vue":()=>t(()=>import("./attr-D5lzCy74.js"),__vite__mapDeps([238,69,2,3,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30])),"/src/views/decoration/component/widgets/user-banner/content.vue":()=>t(()=>import("./content-Cucfe3T0.js"),__vite__mapDeps([239,70,46,2,3,47])),"/src/views/decoration/component/widgets/user-info/attr.vue":()=>t(()=>import("./attr-D22y8__F.js"),__vite__mapDeps([240,71,2,3])),"/src/views/decoration/component/widgets/user-info/content.vue":()=>t(()=>import("./content-DdjhpUgB.js"),__vite__mapDeps([72,2,3,73])),"/src/views/decoration/pages/index.vue":()=>t(()=>import("./index-BncZ7LCe.js"),__vite__mapDeps([241,16,2,3,17,37,213,39,40,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,214,215,216,217,242])),"/src/views/decoration/pc.vue":()=>t(()=>import("./pc-elPwo4i-.js"),__vite__mapDeps([243,2,3,37])),"/src/views/decoration/pc_details.vue":()=>t(()=>import("./pc_details-uATI737f.js"),__vite__mapDeps([36,2,3,37,38,39,40,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75])),"/src/views/decoration/style/components/mobile-style.vue":()=>t(()=>import("./mobile-style-BdhGtn_v.js"),__vite__mapDeps([244,245,2,3,63,246,247])),"/src/views/decoration/style/components/theme-picker.vue":()=>t(()=>import("./theme-picker-Bzh27A21.js"),__vite__mapDeps([246,2,3,247])),"/src/views/decoration/style/style.vue":()=>t(()=>import("./style-BpIFLEm4.js"),__vite__mapDeps([248,16,2,3,17,37,245,63,246,247])),"/src/views/decoration/tabbar.vue":()=>t(()=>import("./tabbar-CqrxLPr9.js"),__vite__mapDeps([249,16,2,3,17,37,214,215,219,23,24,41,19,20,22,42,28,43,18,21,25,26,27,29,30,63,220,46,47,221,250])),"/src/views/dev_tools/code/edit.vue":()=>t(()=>import("./edit-DT_4uSs7.js"),__vite__mapDeps([251,16,2,3,17,252,253,254,136,255,19,20,256])),"/src/views/dev_tools/code/index.vue":()=>t(()=>import("./index-kyFLvGTL.js"),__vite__mapDeps([257,2,3,22,254,28,258,259,19,20])),"/src/views/dev_tools/components/code-preview.vue":()=>t(()=>import("./code-preview-DGJNumV5.js"),__vite__mapDeps([260,258,2,3])),"/src/views/dev_tools/components/data-table.vue":()=>t(()=>import("./data-table-BD0poTdm.js"),__vite__mapDeps([261,259,2,3,254,22,19,20,28])),"/src/views/dev_tools/components/relations-add.vue":()=>t(()=>import("./relations-add-JWGJyLSB.js"),__vite__mapDeps([262,255,2,3,254,19,20,136])),"/src/views/doctor/dept-tongji.vue":()=>t(()=>import("./dept-tongji-NKrpNQc1.js"),__vite__mapDeps([263,2,3,34,264])),"/src/views/doctor/medicine.vue":()=>t(()=>import("./medicine-mKSAmiD4.js"),__vite__mapDeps([265,2,3,196,266])),"/src/views/doctor/progress.vue":()=>t(()=>import("./progress-BVpNfzBl.js"),__vite__mapDeps([32,2,3,33,34,35])),"/src/views/doctor/roster.vue":()=>t(()=>import("./roster-DzNk3SnU.js"),__vite__mapDeps([267,2,3,33,34,268])),"/src/views/doctor/tongji.vue":()=>t(()=>import("./tongji-Dqu7hvNU.js"),__vite__mapDeps([269,2,3,34,270])),"/src/views/error/403.vue":()=>t(()=>import("./403-BMBB_v5E.js"),__vite__mapDeps([5,1,2,3,4])),"/src/views/error/404.vue":()=>t(()=>import("./404-D0vxTsay.js"),__vite__mapDeps([0,1,2,3,4])),"/src/views/error/components/error.vue":()=>t(()=>import("./error-Ce2og2WO.js"),__vite__mapDeps([1,2,3,4])),"/src/views/fans/commission-settlement.vue":()=>t(()=>import("./commission-settlement-BATYB6RQ.js"),__vite__mapDeps([271,2,3,272,273])),"/src/views/fans/h5.vue":()=>t(()=>import("./h5-DMwOBeA2.js"),__vite__mapDeps([76,2,3,77,33,78])),"/src/views/fans/index.vue":()=>t(()=>import("./index-CZz_g_Zd.js"),__vite__mapDeps([274,2,3,22,77,28,33])),"/src/views/fans/qywx.vue":()=>t(()=>import("./qywx-CthffTyX.js"),__vite__mapDeps([275,2,3,22,28,276])),"/src/views/fans/yeji.vue":()=>t(()=>import("./yeji-D3z5z-ES.js"),__vite__mapDeps([277,2,3,272,278,81,84,279])),"/src/views/finance/account_cost/edit.vue":()=>t(()=>import("./edit-BiF8KYEx.js"),__vite__mapDeps([280,2,3,278,19,20,281])),"/src/views/finance/account_cost/index.vue":()=>t(()=>import("./index-Cv-aPQVb.js"),__vite__mapDeps([282,2,3,22,278,28,206,207,280,19,20,281,283])),"/src/views/finance/balance_details.vue":()=>t(()=>import("./balance_details-CFmJYiHU.js"),__vite__mapDeps([284,2,3,22,185,278,136,28])),"/src/views/finance/component/refund-log.vue":()=>t(()=>import("./refund-log-DhQiU08s.js"),__vite__mapDeps([285,286,2,3,278])),"/src/views/finance/mubiao-dept-card.vue":()=>t(()=>import("./mubiao-dept-card-DiVRo-fN.js"),__vite__mapDeps([287,2,3,288])),"/src/views/finance/mubiao-dept-node.vue":()=>t(()=>import("./mubiao-dept-node-Bi4SmSaR.js"),__vite__mapDeps([289,2,3,290])),"/src/views/finance/mubiao.vue":()=>t(()=>import("./mubiao-DmV48IO8.js"),__vite__mapDeps([291,2,3,287,288,278,292])),"/src/views/finance/recharge_record.vue":()=>t(()=>import("./recharge_record-CeaGnc9A.js"),__vite__mapDeps([293,2,3,22,184,19,20,185,278,28])),"/src/views/finance/refund_record.vue":()=>t(()=>import("./refund_record-BcnFRQEG.js"),__vite__mapDeps([294,2,3,22,185,278,28,286])),"/src/views/first_visit/conversion/index.vue":()=>t(()=>import("./index-D-zzvF1Z.js"),__vite__mapDeps([295,2,3,296,297])),"/src/views/first_visit/doctor_dashboard/index.vue":()=>t(()=>import("./index-Cg1Oldbs.js"),__vite__mapDeps([298,2,3,296,299])),"/src/views/first_visit/my_patients/components/OrderActionHost.vue":()=>t(()=>import("./OrderActionHost-KWccaYJI.js").then(e=>e.a),__vite__mapDeps([300,2,3,115,81,116,117,296,84,301])),"/src/views/first_visit/my_patients/components/OrderPanel.vue":()=>t(()=>import("./OrderPanel-BoY6f2Ur.js"),__vite__mapDeps([302,2,3,22,28,296,300,115,81,116,117,84,301,303])),"/src/views/first_visit/my_patients/components/PaibanPanel.vue":()=>t(()=>import("./PaibanPanel-Ce3FolrR.js"),__vite__mapDeps([304,2,3,33,81,34,305])),"/src/views/first_visit/my_patients/components/ProgressPanel.vue":()=>t(()=>import("./ProgressPanel-Cmnqit8V.js"),__vite__mapDeps([306,2,3,22,33,28,296,307])),"/src/views/first_visit/my_patients/index.vue":()=>t(()=>import("./index-B_mkjbfl.js"),__vite__mapDeps([308,2,3,22,80,33,28,84,296,81,83,309])),"/src/views/first_visit/registration_stats/index.vue":()=>t(()=>import("./index-BMxpoMf4.js"),__vite__mapDeps([310,2,3,296,311])),"/src/views/first_visit/wecom_promotion/components/PromotionAutomationForm.vue":()=>t(()=>import("./PromotionAutomationForm-DyEeuDmw.js"),__vite__mapDeps([312,2,3,296,313,314,315])),"/src/views/first_visit/wecom_promotion/components/WecomFloatingWidgetBuilder.vue":()=>t(()=>import("./WecomFloatingWidgetBuilder-LkQ-33ym.js"),__vite__mapDeps([316,2,3,296,317])),"/src/views/first_visit/wecom_promotion/components/WelcomeMessageEditor.vue":()=>t(()=>import("./WelcomeMessageEditor-BCxSXNSC.js").then(e=>e.b),__vite__mapDeps([313,2,3,296,314])),"/src/views/first_visit/wecom_promotion/index.vue":()=>t(()=>import("./index-D7Kf_aDd.js"),__vite__mapDeps([318,2,3,296,316,317,312,313,314,315,319])),"/src/views/material/index.vue":()=>t(()=>import("./index-CBIMjzc3.js"),__vite__mapDeps([320,2,3,21,22,23,24,19,20,25,26,27,28,29,321])),"/src/views/message/notice/edit.vue":()=>t(()=>import("./edit-BPzwN_e3.js"),__vite__mapDeps([322,2,3,16,17,323])),"/src/views/message/notice/index.vue":()=>t(()=>import("./index-tCLK0tON.js"),__vite__mapDeps([324,2,3,323,28])),"/src/views/message/short_letter/edit.vue":()=>t(()=>import("./edit-Dj3GXlCw.js"),__vite__mapDeps([325,326,2,3,323,19,20])),"/src/views/message/short_letter/index.vue":()=>t(()=>import("./index-CeF71KwZ.js"),__vite__mapDeps([327,2,3,323,326,19,20])),"/src/views/order/index.vue":()=>t(()=>import("./index-CMH8bXK6.js"),__vite__mapDeps([328,2,3,22,184,19,20,185,28,84,82,81,329])),"/src/views/organization/department/edit.vue":()=>t(()=>import("./edit-CTFWDUh7.js"),__vite__mapDeps([330,331,2,3,168,19,20,136])),"/src/views/organization/department/index.vue":()=>t(()=>import("./index-BdHx4-gS.js"),__vite__mapDeps([332,2,3,168,331,19,20,136])),"/src/views/organization/post/edit.vue":()=>t(()=>import("./edit-BsuBmpNt.js"),__vite__mapDeps([333,334,2,3,169,19,20])),"/src/views/organization/post/index.vue":()=>t(()=>import("./index-LBcS4UGs.js"),__vite__mapDeps([335,2,3,22,184,19,20,169,28,334])),"/src/views/patient/reception/components/NoteTimeline.vue":()=>t(()=>import("./NoteTimeline-DDh0aI3_.js"),__vite__mapDeps([119,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,89,84,120])),"/src/views/patient/reception/index.vue":()=>t(()=>import("./index-D5Mqb28U.js"),__vite__mapDeps([336,2,3,89,119,18,19,20,21,22,23,24,25,26,27,28,29,30,84,120,91,90,92,93,94,95,96,97,98,81,99,100,34,337])),"/src/views/permission/admin/edit.vue":()=>t(()=>import("./edit-DNMajQA9.js"),__vite__mapDeps([338,339,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,168,169,167,197,136])),"/src/views/permission/admin/index.vue":()=>t(()=>import("./index-D-W2i1y0.js"),__vite__mapDeps([340,2,3,22,184,19,20,167,197,136,28,339,18,21,23,24,25,26,27,29,30,168,169])),"/src/views/permission/menu/edit.vue":()=>t(()=>import("./edit-LJZ6wso0.js"),__vite__mapDeps([341,342,2,3,343,252,19,20])),"/src/views/permission/menu/index.vue":()=>t(()=>import("./index-D_wli7K6.js"),__vite__mapDeps([344,2,3,252,28,342,343,19,20])),"/src/views/permission/role/auth.vue":()=>t(()=>import("./auth-BTjFjF41.js"),__vite__mapDeps([345,346,2,3,252,197,19,20])),"/src/views/permission/role/edit.vue":()=>t(()=>import("./edit-B0XKivI5.js"),__vite__mapDeps([347,348,2,3,197,19,20])),"/src/views/permission/role/index.vue":()=>t(()=>import("./index-DP9-ej81.js"),__vite__mapDeps([349,2,3,22,197,28,346,252,19,20,348])),"/src/views/pharmacy/medicine_mapping/index.vue":()=>t(()=>import("./index-DYbVvpID.js"),__vite__mapDeps([350,2,3,351])),"/src/views/setting/desktop_workstation/index.vue":()=>t(()=>import("./index-Do-D0Uai.js"),__vite__mapDeps([352,16,2,3,17,25,26])),"/src/views/setting/dict/data/edit.vue":()=>t(()=>import("./edit-BBEsLRrQ.js"),__vite__mapDeps([353,354,2,3,253,19,20])),"/src/views/setting/dict/data/index.vue":()=>t(()=>import("./index-DWJNdttC.js"),__vite__mapDeps([355,2,3,22,253,28,354,19,20])),"/src/views/setting/dict/type/edit.vue":()=>t(()=>import("./edit-Dl5YLtWp.js"),__vite__mapDeps([356,357,2,3,253,19,20])),"/src/views/setting/dict/type/index.vue":()=>t(()=>import("./index-DnDmUgzz.js"),__vite__mapDeps([358,2,3,22,253,28,357,19,20])),"/src/views/setting/pay/config/edit.vue":()=>t(()=>import("./edit-eKqjns4J.js"),__vite__mapDeps([359,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,360,7,361,362])),"/src/views/setting/pay/config/index.vue":()=>t(()=>import("./index-BSjQOypy.js"),__vite__mapDeps([363,2,3,360,361,359,18,19,20,21,22,23,24,25,26,27,28,29,30,7,362])),"/src/views/setting/pay/method/index.vue":()=>t(()=>import("./index-Dzey7TmE.js"),__vite__mapDeps([364,16,2,3,17,360])),"/src/views/setting/search/index.vue":()=>t(()=>import("./index-u3uCInK8.js"),__vite__mapDeps([365,16,2,3,17,366])),"/src/views/setting/storage/edit.vue":()=>t(()=>import("./edit-D7bBKhZX.js"),__vite__mapDeps([367,368,2,3,19,20])),"/src/views/setting/storage/index.vue":()=>t(()=>import("./index-B4_tqMXr.js"),__vite__mapDeps([369,2,3,368,19,20])),"/src/views/setting/system/cache.vue":()=>t(()=>import("./cache-CI01ujaE.js"),__vite__mapDeps([370,2,3])),"/src/views/setting/system/environment.vue":()=>t(()=>import("./environment-Dsx_MlBK.js"),__vite__mapDeps([371,2,3])),"/src/views/setting/system/journal.vue":()=>t(()=>import("./journal-DGOvChsE.js"),__vite__mapDeps([372,2,3,22,184,19,20,185,28])),"/src/views/setting/system/scheduled_task/edit.vue":()=>t(()=>import("./edit-p6uNhAfj.js"),__vite__mapDeps([373,16,2,3,17])),"/src/views/setting/system/scheduled_task/index.vue":()=>t(()=>import("./index-DABfjW1m.js"),__vite__mapDeps([374,2,3,22,28])),"/src/views/setting/user/login_register.vue":()=>t(()=>import("./login_register-GpARPxOz.js"),__vite__mapDeps([375,16,2,3,17,376])),"/src/views/setting/user/setup.vue":()=>t(()=>import("./setup-twSmrQP7.js"),__vite__mapDeps([377,16,2,3,17,18,19,20,21,22,23,24,25,26,27,28,29,30,376])),"/src/views/setting/website/filing.vue":()=>t(()=>import("./filing-DZkb8wMP.js"),__vite__mapDeps([378,16,2,3,17,23,24,379])),"/src/views/setting/website/information.vue":()=>t(()=>import("./information-CYHEwQb_.js"),__vite__mapDeps([380,16,2,3,17,18,19,20,21,22,23,24,25,26,27,28,29,30,379])),"/src/views/setting/website/protocol.vue":()=>t(()=>import("./protocol-Pb2ZZ0kB.js"),__vite__mapDeps([381,16,2,3,17,134,18,19,20,21,22,23,24,25,26,27,28,29,30,135,379])),"/src/views/setting/website/statistics.vue":()=>t(()=>import("./statistics-D2hIl0ao.js"),__vite__mapDeps([382,16,2,3,17,379])),"/src/views/stats/assistant-performance/index.vue":()=>t(()=>import("./index-DfAImr1P.js"),__vite__mapDeps([383,2,3,272,84,384])),"/src/views/stats/auto_assign_log/index.vue":()=>t(()=>import("./index-D3RMxMTd.js"),__vite__mapDeps([385,2,3,22,272,28,386])),"/src/views/stats/conversion/index.vue":()=>t(()=>import("./index-DQ6a96ix.js"),__vite__mapDeps([387,22,2,3,272,28,388])),"/src/views/stats/performance-dashboard/index.vue":()=>t(()=>import("./index-BWeUBmJ1.js"),__vite__mapDeps([389,2,3,272,390])),"/src/views/stats/revisit_assign_rate/components/CohortReport.vue":()=>t(()=>import("./CohortReport-ziQtuRzm.js"),__vite__mapDeps([391,2,3,272,84,392])),"/src/views/stats/revisit_assign_rate/index.vue":()=>t(()=>import("./index-HjY7A-pO.js"),__vite__mapDeps([393,391,2,3,272,84,392])),"/src/views/stats/revisit_due/index.vue":()=>t(()=>import("./index-DXupcHo0.js"),__vite__mapDeps([394,2,3,22,184,19,20,272,81,28,395])),"/src/views/stats/revisit_inherit_rate/index.vue":()=>t(()=>import("./index-BJNSEgMW.js"),__vite__mapDeps([396,391,2,3,272,84,392])),"/src/views/stats/revisit_rate/index.vue":()=>t(()=>import("./index-90iZzuMB.js"),__vite__mapDeps([397,2,3,272,84,398])),"/src/views/stats/self_input/MediaSourceSelect.vue":()=>t(()=>import("./MediaSourceSelect-nnTL1Ya1.js"),__vite__mapDeps([399,400,2,3])),"/src/views/stats/self_input/account_cost.vue":()=>t(()=>import("./account_cost-CKkKx2VX.js"),__vite__mapDeps([401,2,3,22,402,168,28,403,19,20,400,404,206,207,405])),"/src/views/stats/self_input/cost-edit.vue":()=>t(()=>import("./cost-edit-DJ7jLU8g.js"),__vite__mapDeps([406,403,2,3,402,19,20,400])),"/src/views/stats/self_input/index.vue":()=>t(()=>import("./index-BhYtdemN.js"),__vite__mapDeps([407,2,3,22,402,168,28,400,408,19,20,404,409])),"/src/views/stats/self_input/yeji-edit.vue":()=>t(()=>import("./yeji-edit-BEFhRUaj.js"),__vite__mapDeps([410,408,2,3,402,19,20,400])),"/src/views/tcm/appointment/components/prescription-drawer.vue":()=>t(()=>import("./prescription-drawer-CSbFDlBk.js"),__vite__mapDeps([411,2,3,81,198,196,199,412])),"/src/views/tcm/appointment/list.vue":()=>t(()=>import("./list-BctcfoMB.js"),__vite__mapDeps([413,2,3,22,185,80,28,34,168,81,89,84,95,83,414])),"/src/views/tcm/appointment/list_h5.vue":()=>t(()=>import("./list_h5-D0z2kYzs.js"),__vite__mapDeps([415,2,3,80,34,83,81,89,28,95,84,416])),"/src/views/tcm/diagnosis/add.vue":()=>t(()=>import("./add-BnODf4Ac.js"),__vite__mapDeps([417,2,3,81,418])),"/src/views/tcm/diagnosis/appointment.vue":()=>t(()=>import("./appointment-FizcUjTK.js"),__vite__mapDeps([419,2,3,33,81,34,296,420])),"/src/views/tcm/diagnosis/components/AppointmentRecordPanel.vue":()=>t(()=>import("./AppointmentRecordPanel-C2wB-h-D.js"),__vite__mapDeps([112,2,3,34,113])),"/src/views/tcm/diagnosis/components/AssignLogPanel.vue":()=>t(()=>import("./AssignLogPanel-0TFZiCkF.js"),__vite__mapDeps([110,2,3,81,111])),"/src/views/tcm/diagnosis/components/AssistantWatchCallDialog.vue":()=>t(()=>import("./AssistantWatchCallDialog-Cmuadkz7.js"),__vite__mapDeps([421,2,3,81,422])),"/src/views/tcm/diagnosis/components/BloodRecordList.vue":()=>t(()=>import("./BloodRecordList-qlYHWuAX.js"),__vite__mapDeps([423,2,3,81,424])),"/src/views/tcm/diagnosis/components/CallRecordPanel.vue":()=>t(()=>import("./CallRecordPanel-DFudUjln.js"),__vite__mapDeps([101,2,3,102,103,104,105,25,26,81,106])),"/src/views/tcm/diagnosis/components/CaseRecordList.vue":()=>t(()=>import("./CaseRecordList-Bdp996ss.js"),__vite__mapDeps([425,2,3,81,426])),"/src/views/tcm/diagnosis/components/DailyMatrix.vue":()=>t(()=>import("./DailyMatrix-BSZy3g0c.js"),__vite__mapDeps([97,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,98,81,84,99,94,100])),"/src/views/tcm/diagnosis/components/DiagnosisTodoList.vue":()=>t(()=>import("./DiagnosisTodoList-CE1isNg2.js"),__vite__mapDeps([98,2,3,22,81,84,99])),"/src/views/tcm/diagnosis/components/DietRecordList.vue":()=>t(()=>import("./DietRecordList-Cm5sSPXB.js"),__vite__mapDeps([427,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,81,428])),"/src/views/tcm/diagnosis/components/ExerciseRecordList.vue":()=>t(()=>import("./ExerciseRecordList-DI5GCSns.js"),__vite__mapDeps([429,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30,81,430])),"/src/views/tcm/diagnosis/components/FollowupAudioField.vue":()=>t(()=>import("./FollowupAudioField-BG0mRnT5.js").then(e=>e.G),__vite__mapDeps([431,2,3,432])),"/src/views/tcm/diagnosis/components/FollowupAudioPanel.vue":()=>t(()=>import("./FollowupAudioPanel-GXQTu6xF.js").then(e=>e.a),__vite__mapDeps([433,2,3,434,431,432,435,436])),"/src/views/tcm/diagnosis/components/FollowupAudioReview.vue":()=>t(()=>import("./FollowupAudioReview-92Fgd7wW.js"),__vite__mapDeps([434,2,3,431,432,435])),"/src/views/tcm/diagnosis/components/ImChatRecordPanel.vue":()=>t(()=>import("./ImChatRecordPanel-CafeXQX5.js"),__vite__mapDeps([107,2,3,33,81,108,109])),"/src/views/tcm/diagnosis/components/PatientCaseCard.vue":()=>t(()=>import("./PatientCaseCard-BLq-W0if.js"),__vite__mapDeps([93,94,90,95,2,3,96])),"/src/views/tcm/diagnosis/components/PatientInfoCard.vue":()=>t(()=>import("./PatientInfoCard--7DLvgKR.js"),__vite__mapDeps([91,90,2,3,92])),"/src/views/tcm/diagnosis/components/PatientOrderList.vue":()=>t(()=>import("./PatientOrderList-BP2alDvZ.js"),__vite__mapDeps([114,2,3,22,28,81,115,116,117,118])),"/src/views/tcm/diagnosis/components/RecordingPlaybackBlock.vue":()=>t(()=>import("./RecordingPlaybackBlock-GbWd6PMw.js"),__vite__mapDeps([102,2,3,103,104,105])),"/src/views/tcm/diagnosis/components/RecordingVideoPlayer.vue":()=>t(()=>import("./RecordingVideoPlayer-grUPRDCj.js"),__vite__mapDeps([103,2,3,104])),"/src/views/tcm/diagnosis/components/RevisitNodeCell.vue":()=>t(()=>import("./RevisitNodeCell-DGzlUBxp.js"),__vite__mapDeps([85,2,3,86])),"/src/views/tcm/diagnosis/components/TrackingMatrix.vue":()=>t(()=>import("./TrackingMatrix-CG5kqAiU.js"),__vite__mapDeps([437,2,3,94,81,438])),"/src/views/tcm/diagnosis/components/TrackingNoteTimeline.vue":()=>t(()=>import("./TrackingNoteTimeline-Dpu7gUCf.js"),__vite__mapDeps([439,2,3,81,440])),"/src/views/tcm/diagnosis/detail.vue":()=>t(()=>import("./detail-BC-AUtN0.js"),__vite__mapDeps([441,19,2,3,20,81])),"/src/views/tcm/diagnosis/edit.vue":()=>t(()=>import("./edit-DFFSwWxS.js"),__vite__mapDeps([442,2,3,81,84,97,18,19,20,21,22,23,24,25,26,27,28,29,30,98,99,94,100,433,434,431,432,435,436,425,426,101,102,103,104,105,106,107,33,108,109,110,111,112,34,113,119,89,120,114,115,116,117,118,443,198,196,199,95,200,201,444,445,440])),"/src/views/tcm/diagnosis/index.vue":()=>t(()=>import("./index-B3r-iEKl.js"),__vite__mapDeps([446,2,3,22,81,82,34,28,83,84,80,33,185,85,86,90,447])),"/src/views/tcm/diagnosis/index_h5.vue":()=>t(()=>import("./index_h5-CguomBSY.js"),__vite__mapDeps([79,2,3,80,81,82,34,83,28,84,33,85,86,87])),"/src/views/tcm/diagnosis/readonly.vue":()=>t(()=>import("./readonly-C-Pkqvus.js"),__vite__mapDeps([88,2,3,81,89,90,84,91,92,93,94,95,96,97,18,19,20,21,22,23,24,25,26,27,28,29,30,98,99,100,101,102,103,104,105,106,107,33,108,109,110,111,112,34,113,114,115,116,117,118,119,120,121])),"/src/views/tcm/follow/index.vue":()=>t(()=>import("./index-CezM4GA9.js"),__vite__mapDeps([448,2,3,22,81,168,82,34,28,83,84,33,449])),"/src/views/template/component/file.vue":()=>t(()=>import("./file-BYqZCJsR.js"),__vite__mapDeps([450,2,3,18,19,20,21,22,23,24,25,26,27,28,29,30])),"/src/views/template/component/icon.vue":()=>t(()=>import("./icon-W3DsMNzy.js"),__vite__mapDeps([451,2,3,343])),"/src/views/template/component/link.vue":()=>t(()=>import("./link-BRt-fkOK.js"),__vite__mapDeps([452,2,3,41,19,20,22,42,28,43])),"/src/views/template/component/overflow.vue":()=>t(()=>import("./overflow-VQTiVS2Y.js"),__vite__mapDeps([453,2,3])),"/src/views/template/component/popover_input.vue":()=>t(()=>import("./popover_input-CHl485Vl.js"),__vite__mapDeps([454,2,3,27])),"/src/views/template/component/rich_text.vue":()=>t(()=>import("./rich_text-BsWHrwaA.js"),__vite__mapDeps([455,2,3,134,18,19,20,21,22,23,24,25,26,27,28,29,30,135])),"/src/views/template/component/upload.vue":()=>t(()=>import("./upload-Cf8IgR5h.js"),__vite__mapDeps([456,2,3,25,26])),"/src/views/test/patient-call.vue":()=>t(()=>import("./patient-call-DRgV1Jkm.js"),__vite__mapDeps([457,2,3,458])),"/src/views/user/setting.vue":()=>t(()=>import("./setting-DOvqZWBR.js"),__vite__mapDeps([15,2,3,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,13,31])),"/src/views/workbench/index.vue":()=>t(()=>import("./index-dnU03aIn.js"),__vite__mapDeps([459,2,3,81,82,361,460]))});function Z5(){return Object.keys(l1).map(e=>e.replace("/src/views/","").replace(".vue",""))}function b0(e,a=!0){return e.map(o=>{const i=q4(o,a);return o.children!=null&&o.children&&o.children.length&&(i.children=b0(o.children,!1)),i})}function q4(e,a){const o=z0(e.paths),i={path:b3(e.paths)?e.paths:a?`/${o}`:o,name:Symbol(e.paths),meta:{hidden:!e.is_show,keepAlive:!!e.is_cache,title:e.name,perms:e.perms,query:e.params,icon:e.icon,type:e.type,activeMenu:e.selected}};switch(e.type){case N3.CATALOGUE:i.component=a?x3:o1,e.children||(i.component=o1);break;case N3.MENU:i.component=F4(e.component);break}return i}function F4(e){try{const a=z0(e),o=Object.keys(l1).find(i=>i.includes(`/${a}.vue`));if(o)return l1[o];throw Error(`找不到组件${e},请确保组件路径正确`)}catch(a){return console.error(a),o1}}function z0(e){return String(e||"").replace(/^\/+/,"").replace(/\/+$/,"")}function c1(e){var a,o;for(const i of e){if(((a=i.meta)==null?void 0:a.type)==N3.MENU&&!((o=i.meta)!=null&&o.hidden)&&!b3(i.path))return i.name;if(i.children){const s=c1(i.children);if(s)return s}}}function X5(e){var o;return((o=(p3()||W).getRoutes().find(i=>{var s;return((s=i.meta)==null?void 0:s.perms)==e}))==null?void 0:o.path)||""}function G4(){W.removeRoute(U3);const{routes:e}=i3();e.forEach(a=>{const o=a.name;o&&W.hasRoute(o)&&W.removeRoute(o)})}const W=l2({history:c2("/admin/"),routes:W4});function J3(e){if(e==null)return"";if(Array.isArray(e)){const a=e[0];return a==null?"":String(a).trim()}return String(e).trim()}function k1(e){if(!J3(e.query.code))return!1;const o=J3(e.query.state);return o==="bind_wxwork"||o==="admin_bind_wx"?!0:J3(e.query.bind_wxwork)==="1"}const r1=(e,a="")=>{try{e.forEach(o=>{if(b3(o.path))return;const i=a+o.path,s={...o,path:i,name:o.name||i.replace(/\//g,"_").replace("_","")};o.children?W.addRoute(s):W.addRoute(U3,s),o.children&&o.children.length>0&&r1(o.children,i+"/")})}catch(o){console.error("Error adding routes:",o)}},g3=q.LOGIN,U4=q.INDEX,Q3="/change-password",C3="/bind-work-wechat",Y4=[q.LOGIN,q.ERROR_403];W.beforeEach(async(e,a,o)=>{var n,r,v,d;document.title=e.meta.title??J.title;const i=i3(),s=O3();if(e.path===C3){if(!i.token){o({path:g3});return}o();return}if(e.path===Q3){if(!i.token){o({path:g3});return}o();return}if(Y4.includes(e.path))o();else if(i.token)if(Object.keys(i.userInfo).length!==0){if(i.isPaw===0){o({path:Q3});return}if((n=i.userInfo)!=null&&n.need_bind_work_wechat&&e.path!==C3){if(k1(e)){o();return}o({path:C3});return}if(!((r=i.userInfo)!=null&&r.need_bind_work_wechat)&&((v=i.routes)==null?void 0:v.length)>0&&!W.hasRoute(U3)){const f=c1(i.routes);if(!f){L3(),o(q.ERROR_403);return}s.setRouteName(f),S3.redirect={name:f},W.addRoute(S3),r1(i.routes),o({...e,replace:!0});return}e.path===g3?o({path:U4}):o()}else try{if(await i.getUserInfo(),i.isPaw===0){o({path:Q3});return}if((d=i.userInfo)!=null&&d.need_bind_work_wechat){if(k1(e)){o({...e,replace:!0});return}o({path:C3});return}const f=i.routes,b=c1(f);if(!b){L3(),o(q.ERROR_403);return}s.setRouteName(b),S3.redirect={name:b},W.addRoute(S3),r1(f),o({...e,replace:!0})}catch{L3(),o({path:g3,query:{redirect:e.fullPath}})}else o({path:g3,query:{redirect:e.fullPath}})});if(typeof window<"u"){let e=function(){var a=document.body,o=document.getElementById("__svg__icons__dom__");o||(o=document.createElementNS("http://www.w3.org/2000/svg","svg"),o.style.position="absolute",o.style.width="0",o.style.height="0",o.id="__svg__icons__dom__",o.setAttribute("xmlns","http://www.w3.org/2000/svg"),o.setAttribute("xmlns:link","http://www.w3.org/1999/xlink")),o.innerHTML='',a.insertBefore(o,a.lastChild)};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e):e()}function Z4(){return T.get({url:"/chat/notifications"})}const X4=["onClick"],K4={class:"chat-notify-body"},J4={class:"chat-notify-title"},Q4={class:"chat-notify-desc"},e7={class:"patient-name"},a7={class:"doctor-name"},o7={class:"patient-name"},t7={class:"patient-name"},i7={class:"chat-notify-time"},s7=["onClick"],n7=5e3,l7=S({__name:"index",setup(e){const a=p3(),o=G([]),i=G(null);function s(d){if(!d)return"";const p=new Date(d*1e3),b=new Date().getTime()-p.getTime();return b<6e4?"刚刚":b<36e5?`${Math.floor(b/6e4)} 分钟前`:b<864e5?`${Math.floor(b/36e5)} 小时前`:p.toLocaleDateString("zh-CN",{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"})}function n(d){o.value=o.value.filter(p=>p.id!==d)}function r(d){n(d.id),d.type==="consultation_complete"&&d.diagnosis_id&&a.push({path:"/tcm/diagnosis",query:{id:d.diagnosis_id}})}async function v(){try{const d=await Z4();Array.isArray(d)&&d.length>0&&(o.value=[...d,...o.value].slice(0,10))}catch{}}return _1(()=>{v(),i.value=setInterval(v,n7)}),c0(()=>{i.value&&clearInterval(i.value)}),(d,p)=>{const f=d1;return h(),R(r0,{to:"body"},[_(v2,{name:"chat-notify-slide",tag:"div",class:"chat-notify-container"},{default:z(()=>[(h(!0),A(U,null,_3(o.value,b=>(h(),A("div",{key:b.id,class:t3(["chat-notify-card",{"chat-notify-card-complete":b.type==="consultation_complete","chat-notify-card-left":b.type==="patient_left_chat"}]),onClick:E=>r(b)},[m("div",{class:t3(["chat-notify-icon",{"chat-notify-icon-complete":b.type==="consultation_complete","chat-notify-icon-left":b.type==="patient_left_chat"}])},[_(f,{size:22},{default:z(()=>[b.type!=="consultation_complete"&&b.type!=="patient_left_chat"?(h(),R(c(r2),{key:0})):b.type==="consultation_complete"?(h(),R(c(u2),{key:1})):(h(),R(c(d2),{key:2}))]),_:2},1024)],2),m("div",K4,[m("div",J4,H(b.type==="consultation_complete"?"面诊结束":b.type==="patient_left_chat"?"患者离开会话":"患者打开会话"),1),m("div",Q4,[b.type==="consultation_complete"?(h(),A(U,{key:0},[m("span",e7,H(b.patient_name||"患者"),1),p[0]||(p[0]=P(" 的面诊已由 ",-1)),m("span",a7,H(b.doctor_name||"医生"),1),p[1]||(p[1]=P(" 完成,请及时跟进 ",-1))],64)):b.type==="patient_left_chat"?(h(),A(U,{key:1},[m("span",o7,H(b.patient_name||"患者"),1),p[2]||(p[2]=P(" 已离开问诊会话页面 ",-1))],64)):(h(),A(U,{key:2},[m("span",t7,H(b.patient_name||"患者"),1),p[3]||(p[3]=P(" 已打开与您的会话,请及时查看 ",-1))],64))]),m("div",i7,H(s(b.created_at)),1)]),m("button",{class:"chat-notify-close",onClick:_2(E=>n(b.id),["stop"]),"aria-label":"关闭"},[_(f,{size:14},{default:z(()=>[_(c(m2))]),_:1})],8,s7)],10,X4))),128))]),_:1})])}}}),c7=Y(l7,[["__scopeId","data-v-9276baf6"]]),r7={isTransformResponse:!1,ignoreCancelToken:!0,isOpenRetry:!1,retryCount:0};async function u7(){const e=await T.get({url:"/tcm.revisitDue/pending"},r7);return e&&typeof e=="object"&&Number(e.code)===1?e.data:Promise.reject((e==null?void 0:e.msg)??"revisit due pending failed")}function d7(e){return T.post({url:"/tcm.revisitDue/snooze",params:e})}function m7(e){return T.post({url:"/tcm.revisitDue/snoozeAll",params:e})}function _7(e){return T.post({url:"/tcm.revisitDue/contact",params:e})}function K5(e){return T.get({url:"/tcm.revisitDue/lists",params:e})}function J5(e){return T.get({url:"/tcm.revisitDue/logs",params:e})}const Q5=[{label:"到期未挂号 / 过号",value:"due"},{label:"即将到期",value:"warning"},{label:"已约待面诊",value:"booked"},{label:"已面诊",value:"visited"},{label:"已联系",value:"contacted"},{label:"缺开药天数",value:"no_days"},{label:"未到期",value:"pending"}],e8=[{label:"14 天",value:"14"},{label:"21 天",value:"21"},{label:"28 天",value:"28"},{label:"30 天",value:"30"},{label:"其它天数",value:"other"}],v7={visited:"已面诊",booked:"已约",missed:"过号",contacted:"已联系",overdue:"超期",warning:"即将到期",pending:"未到期",no_days:"缺开药天数",none:"—"},x=(e,a=0)=>{if(e==null||e==="")return a;const o=Number(e);return Number.isFinite(o)?Math.trunc(o):a},e1=e=>{if(e==null||e==="")return null;const a=Number(e);return Number.isFinite(a)?Math.trunc(a):null},d3=e=>{if(e==null)return"";const a=String(e).trim();return a===""||a==="0000-00-00"?"":a};function a8(e){if(!e||typeof e!="object"||Array.isArray(e))return null;const a=e,o=String(a.state??"none").trim()||"none",i=x(a.days_src),s=x(a.anchor_src);return{current_slot:x(a.current_slot),next_slot:x(a.next_slot),valid_order_count:x(a.valid_order_count),medication_days:x(a.medication_days),days_src:i===1||i===2?i:0,rule_days:x(a.rule_days),anchor_src:s>=1&&s<=3?s:0,anchor_date:d3(a.anchor_date),order_date:d3(a.order_date),due_date:d3(a.due_date),days_left:e1(a.days_left),overdue_days:e1(a.overdue_days),state:o,state_text:String(a.state_text??"").trim(),severe:x(a.severe)===1?1:0,appointment_state:x(a.appointment_state),appointment_date:d3(a.appointment_date),snooze_count:x(a.snooze_count),escalation_level:x(a.escalation_level),promised_date:d3(a.promised_date),missed_count:x(a.missed_count),first_touch_date:d3(a.first_touch_date),in_care_days:e1(a.in_care_days),total_medication_days:x(a.total_medication_days),closed_state:x(a.closed_state)}}function Z(e){return!!e&&e.state!=="none"&&e.state!==""}function y0(e){return Z(e)&&x(e.closed_state)===0&&(e.state==="overdue"||e.state==="missed")}function f0(e){return y0(e)&&Number(e==null?void 0:e.severe)===1}function o8(e){return y0(e)?f0(e)?"row-revisit-overdue row-revisit-overdue-deep":"row-revisit-overdue":""}function X(e){const a=d3(e);if(!a)return"";const o=/^(\d{4})-(\d{2})-(\d{2})/.exec(a);return o?`${o[2]}-${o[3]}`:a}function h7(e){const a=x(e);return a===1?"签收起":a===2?"发货起":a===3?"下单起":""}function p7(e){const a=x(e);return a===1?"订单":a===2?"处方":"缺失"}function g0(e){return Z(e)?x(e.days_src)===0||x(e.medication_days)<=0:!1}function b7(e){if(!Z(e))return"";const a=x(e.current_slot);return a>0?`第 ${a} 诊`:"未成交"}function t8(e){return Z(e)?g0(e)?"缺开药天数":`开药 ${x(e.medication_days)} 天`:""}function z7(e){if(!Z(e))return"";const a=X(e.due_date);return a?`药尽 ${a}`:""}function u1(e){const a=String(e??"").trim();return v7[a]??(a||"—")}function y7(e){if(!Z(e))return"";if(e.state_text)return e.state_text;const a=String(e.state);switch(a){case"overdue":{const o=x(e.overdue_days);return o<=0?"今日应挂号":`超期 ${o} 天`}case"missed":{const o=X(e.appointment_date);return o?`过号 ${o}`:"过号"}case"booked":{const o=X(e.appointment_date);return o?`已约 ${o}`:"已约"}case"visited":{const o=X(e.appointment_date);return o?`已面诊 ${o}`:"已面诊"}case"contacted":{const o=X(e.promised_date);return o?`已联系·约 ${o}`:"已联系"}case"warning":case"pending":{const o=e.days_left;return o===null?u1(a):`剩 ${o} 天`}default:return u1(a)}}function i8(e){switch(String(e??"")){case"overdue":case"missed":return"danger";case"warning":case"no_days":return"warning";case"booked":case"contacted":return"primary";case"visited":return"success";default:return"info"}}function s8(e){switch(String(e??"")){case"overdue":case"missed":return"dark";case"contacted":case"no_days":return"plain";default:return"light"}}function n8(e){switch(String(e??"")){case"overdue":case"missed":return"unserved-red";case"warning":case"no_days":return"unserved-orange";case"visited":return"unserved-green";case"booked":case"contacted":return"unserved-blue";default:return"unserved-muted"}}function l8(e){if(!Z(e))return"rv-chip";const a=["rv-chip",`rv-chip--${String(e.state)}`];return f0(e)&&a.push("rv-chip--severe"),a.join(" ")}function f7(e){if(!Z(e))return"";const a=x(e.snooze_count);return a>0?`已延迟 ${a} 次`:""}function g7(e){if(!Z(e))return"";const a=X(e.promised_date);return a?`已联系 约 ${a}`:""}function c8(e){return[f7(e),g7(e)].filter(o=>o!=="").join(" · ")}function r8(e){if(!Z(e))return[];const a=[],o=Math.max(0,x(e.current_slot)-x(e.valid_order_count));a.push(`有效订单 ${x(e.valid_order_count)} 笔 · 诊次偏移 +${o}`),x(e.next_slot)>0&&a.push(`待复诊:第 ${x(e.next_slot)} 诊`);const i=X(e.first_touch_date);if(i){const r=e.in_care_days;a.push(r===null?`首次触达 ${i}`:`首次触达 ${i} · 在管 ${r} 天`)}x(e.total_medication_days)>0&&a.push(`累计开药 ${x(e.total_medication_days)} 天`);const s=X(e.anchor_date),n=h7(e.anchor_src);return s&&n&&a.push(`用药起算 ${s}(${n.replace(/起$/,"")})`),g0(e)||a.push(`开药天数来源:${p7(e.days_src)}`),x(e.missed_count)>0&&a.push(`曾过号 ${x(e.missed_count)} 次`),a}function u8(e){return Z(e)?[b7(e),z7(e),y7(e)].filter(o=>o!=="").join(" · "):""}const w7={class:"rd-toast__header"},A7={class:"rd-toast__title"},V7={key:0,class:"rd-toast__snoozed"},L7={class:"rd-toast__list"},E7={class:"rd-item__main"},x7={class:"rd-item__line"},M7={class:"rd-item__name"},T7={class:"rd-item__meta"},O7={class:"rd-item__line rd-item__line--status"},H7={key:0,class:"rd-item__tag"},I7={key:1,class:"rd-item__tag"},D7={class:"rd-item__actions"},R7={key:0,class:"rd-contact"},P7={class:"rd-contact__btns"},S7={key:0,class:"rd-toast__more"},C7={key:1,class:"rd-toast__footer"},B7={class:"rd-modal__title"},k7={key:0,class:"rd-modal__body"},j7={class:"rd-modal__name"},N7={class:"rd-modal__meta"},$7={class:"rd-item__line rd-item__line--status"},W7={key:0,class:"rd-item__tag"},q7={key:0,class:"rd-contact rd-contact--modal"},F7={class:"rd-contact__btns"},G7={key:0,class:"rd-modal__footer"},U7=6e4,Y7=3e4,Z7=1e4,X7=5*6e4,B3=2*6e4,j1=5,N1="revisit_due_toast:last_fetch",K7="revisit-due-toast",J7=S({__name:"index",setup(e){const a=p3(),o=i3(),i=G([]),s=G(null),n=G(!1),r=G(!1),v=G(0),d=G(!1),p=G(0),f=G(!1),b=y2({promised_date:"",remark:""}),E=new Map;let N=null,I=null,O=null,M=!1;const V=()=>{var u;return Number(((u=o.userInfo)==null?void 0:u.id)??0)||0},l3=y(()=>{const u=Array.isArray(o.perms)?o.perms:[];return u.includes("*")||u.includes("tcm.revisitDue/pending")}),j=y(()=>i.value.filter(u=>u.escalation_level<3)),c3=y(()=>i.value.filter(u=>u.escalation_level>=3)),B=y(()=>c3.value[0]??null),Y3=y(()=>j.value.slice(0,j1)),H3=y(()=>Math.max(0,j.value.length-j1)),k=y(()=>j.value.length>0),z3=y(()=>j.value.reduce((u,l)=>Math.max(u,Math.min(2,l.escalation_level)),0)),v1=y(()=>j.value.reduce((u,l)=>Math.max(u,l.snooze_count),0)),h1=y(()=>z3.value<=1),p1=y(()=>j.value.filter(u=>u.escalation_level<=1)),A0=y(()=>j.value.length>1&&j.value.every(u=>u.escalation_level<=1)),V0=y(()=>{const u=new Set(p1.value.map(l=>l.next_snooze_seconds));return u.size===1?`全部延迟 ${z1([...u][0],!1)}`:"全部延迟"}),b1=y(()=>{var l;const u=Number(((l=s.value)==null?void 0:l.promise_max_days)??14);return Number.isFinite(u)&&u>=0?Math.trunc(u):14});function z1(u,l){const L=Math.max(0,Math.trunc(Number(u)||0));if(L<=0)return l?"30 分钟":"30min";if(L%3600===0){const D=L/3600;return l?`${D} 小时`:`${D}h`}const g=Math.max(1,Math.round(L/60));return l?`${g} 分钟`:`${g}min`}function y1(u,l=!1){return z1(u.next_snooze_seconds,l)}function f1(u){const l=[],L=[];u.current_slot>0&&L.push(`第 ${u.current_slot} 诊`),L.push(u.medication_days>0?`${u.medication_days} 天`:"缺开药天数"),l.push(L.join("·"));const g=X(u.due_date);return g&&l.push(`药尽 ${g}`),l.join(" · ")}function g1(u){if(u.state_text)return u.state_text;if(u.state==="overdue"){const l=Number(u.overdue_days??0);return l<=0?"今日应挂号":`超期 ${l} 天`}if(u.state==="missed"){const l=X(u.appointment_date);return l?`过号 ${l}`:"过号"}return u1(u.state)}function Z3(){const u=new Date;return u.setHours(0,0,0,0),u}function w1(u,l){const L=new Date(u.getTime());return L.setDate(L.getDate()+l),L}function L0(u){const l=u.getFullYear(),L=String(u.getMonth()+1).padStart(2,"0"),g=String(u.getDate()).padStart(2,"0");return`${l}-${L}-${g}`}function A1(u){const l=Z3().getTime(),L=w1(Z3(),b1.value).getTime()+86399999,g=u.getTime();return gL}function X3(){b.promised_date=L0(w1(Z3(),Math.min(3,b1.value))),b.remark=""}function E0(u){if(!u||typeof u!="object")return null;const l=u,L=Number(l.id);if(!Number.isFinite(L)||L<=0)return null;const g=(F,v3=0)=>{const w=Number(F);return Number.isFinite(w)?Math.trunc(w):v3},D=F=>F==null?"":String(F);return{id:L,diagnosis_id:g(l.diagnosis_id),assistant_id:g(l.assistant_id),patient_name:D(l.patient_name).trim()||"患者",current_slot:g(l.current_slot),next_slot:g(l.next_slot),medication_days:g(l.medication_days),due_date:D(l.due_date),overdue_days:l.overdue_days===null||l.overdue_days===void 0?null:g(l.overdue_days),state:D(l.state)||"overdue",state_text:D(l.state_text),severe:g(l.severe)===1?1:0,missed_count:g(l.missed_count),snooze_count:g(l.snooze_count),escalation_level:Math.max(0,Math.min(3,g(l.escalation_level))),contact_count:g(l.contact_count),promised_date:D(l.promised_date),next_remind_at:g(l.next_remind_at),next_remind_at_text:D(l.next_remind_at_text),next_snooze_seconds:g(l.next_snooze_seconds,1800),appointment_date:D(l.appointment_date),closed_state:g(l.closed_state)}}function V1(u,l){const L=Date.now();for(const[w,$]of E)$<=L&&E.delete(w);const g=new Set,D=[];for(const w of Array.isArray(u)?u:[]){const $=E0(w);!$||g.has($.id)||(E.get($.id)??0)>L||(g.add($.id),D.push($))}const F=new Set(i.value.map(w=>w.id)),v3=D.some(w=>!F.has(w.id));i.value=D,s.value=l&&typeof l=="object"?l:null,v3&&n.value&&(n.value=!1),p.value&&!D.some(w=>w.id===p.value)&&(p.value=0),v3&&z3.value>=2&&L1()}function y3(u,l,L){if(u.length===0)return;const g=Date.now()+L,D=new Set(u);for(const F of D)E.set(F,g);i.value=i.value.filter(F=>!D.has(F.id)),p.value&&D.has(p.value)&&(p.value=0),f.value&&B.value===null&&(f.value=!1),l&&x1({type:"removed",uid:V(),ids:[...D]})}function L1(){r.value=!1,I&&clearTimeout(I),G1(()=>{r.value=!0,I=setTimeout(()=>{r.value=!1},700)})}w3(z3,(u,l)=>{u>=2&&(n.value=!1,l<2&&L1())}),w3(B,u=>{u?X3():f.value=!1}),w3(l3,u=>{u?I3({force:!0}):i.value=[]});function E1(){try{return Number(localStorage.getItem(N1)||0)||0}catch{return 0}}function x0(u){try{localStorage.setItem(N1,String(u))}catch{}}function x1(u){try{O==null||O.postMessage(u)}catch{}}async function I3(u={}){if(!l3.value||typeof document<"u"&&document.hidden||M)return;const l=Date.now();if(!(!u.force&&l-E1()=Z7})}function T0(){}function O0(){h1.value&&(n.value=!0)}function H0(){n.value=!1}function T1(u){y3([u.id],!1,X7),a.push({path:"/tcm/diagnosis",query:{id:String(u.diagnosis_id),action:"appointment"}})}function I0(){a.push({path:"/tcm/diagnosis",query:{revisit_state:"due"}})}function D0(u){if(p.value===u.id){p.value=0;return}X3(),p.value=u.id}async function O1(u){if(!v.value){v.value=u.id;try{await d7({id:u.id}),y3([u.id],!0,B3)}catch{}finally{v.value=0}}}async function R0(){if(d.value)return;const u=p1.value.map(l=>l.id);if(u.length!==0){d.value=!0;try{await m7({ids:u}),y3(u,!0,B3)}catch{}finally{d.value=!1}}}async function H1(u){if(v.value)return;const l=String(b.promised_date||"").trim();if(!l){m3.msgWarning("请选择患者承诺复诊日");return}v.value=u.id;try{await _7({id:u.id,promised_date:l,remark:b.remark.trim()}),y3([u.id],!0,B3),p.value=0,f.value=!1}catch{}finally{v.value=0}}return _1(()=>{if(X3(),typeof BroadcastChannel<"u")try{O=new BroadcastChannel(K7),O.onmessage=M0}catch{O=null}document.addEventListener("visibilitychange",M1),I3(),N=setInterval(()=>void I3(),U7)}),c0(()=>{N&&clearInterval(N),I&&clearTimeout(I),document.removeEventListener("visibilitychange",M1),O&&(O.onmessage=null,O.close(),O=null)}),(u,l)=>{const L=d1,g=K1,D=p2,F=b2,v3=z2;return h(),A(U,null,[(h(),R(r0,{to:"body"},[_(s0,{name:"rd-toast-fade"},{default:z(()=>[c(k)?(h(),A("div",{key:0,class:t3(["rd-toast",[`rd-toast--level-${c(z3)}`,{"rd-toast--shake":c(r),"rd-toast--minimized":c(n)}]]),role:"alert"},[c(n)?(h(),A("button",{key:0,type:"button",class:"rd-toast__bubble",title:"展开到期提醒",onClick:H0},[l[10]||(l[10]=m("span",{class:"rd-toast__warn"},"⚠",-1)),m("span",null,H(c(j).length)+" 位患者到期未挂号",1)])):(h(),A(U,{key:1},[m("div",w7,[m("div",A7,[l[11]||(l[11]=m("span",{class:"rd-toast__warn"},"⚠",-1)),m("span",null,H(c(j).length)+" 位患者到期未挂号",1),c(v1)>0?(h(),A("span",V7," 已延迟 "+H(c(v1))+" 次 ",1)):C("",!0)]),c(h1)?(h(),A("button",{key:0,type:"button",class:"rd-toast__min","aria-label":"最小化",title:"最小化",onClick:O0},[_(L,{size:14},{default:z(()=>[_(c(h2))]),_:1})])):C("",!0)]),m("div",L7,[(h(!0),A(U,null,_3(c(Y3),w=>(h(),A("div",{key:w.id,class:t3(["rd-item",[`rd-item--${w.state}`,{"rd-item--severe":w.severe===1}]])},[m("div",E7,[m("div",x7,[m("span",M7,H(w.patient_name),1),m("span",T7,H(f1(w)),1)]),m("div",O7,[m("span",{class:t3(["rd-chip",[`rd-chip--${w.state}`,{"rd-chip--severe":w.severe===1}]])},H(g1(w)),3),w.missed_count>0?(h(),A("span",H7," 曾过号 "+H(w.missed_count)+" 次 ",1)):C("",!0),w.snooze_count>0?(h(),A("span",I7," 已延迟 "+H(w.snooze_count)+" 次 ",1)):C("",!0)])]),m("div",D7,[_(g,{size:"small",type:"danger",onClick:$=>T1(w)},{default:z(()=>[...l[12]||(l[12]=[P(" 去挂号 ",-1)])]),_:1},8,["onClick"]),_(g,{size:"small",type:c(p)===w.id?"primary":"default",plain:"",onClick:$=>D0(w)},{default:z(()=>[...l[13]||(l[13]=[P(" 已联系 ",-1)])]),_:1},8,["type","onClick"]),_(g,{size:"small",plain:"",loading:c(v)===w.id,onClick:$=>O1(w)},{default:z(()=>[P(" 延迟 "+H(y1(w)),1)]),_:2},1032,["loading","onClick"])]),c(p)===w.id?(h(),A("div",R7,[_(D,{modelValue:c(b).promised_date,"onUpdate:modelValue":l[0]||(l[0]=$=>c(b).promised_date=$),type:"date",size:"small","value-format":"YYYY-MM-DD",clearable:!1,"disabled-date":A1,"popper-class":"rd-toast-popper",placeholder:"患者承诺复诊日",class:"rd-contact__date"},null,8,["modelValue"]),_(F,{modelValue:c(b).remark,"onUpdate:modelValue":l[1]||(l[1]=$=>c(b).remark=$),size:"small",maxlength:"200",placeholder:"备注(选填)",class:"rd-contact__remark"},null,8,["modelValue"]),m("div",P7,[_(g,{size:"small",type:"primary",loading:c(v)===w.id,onClick:$=>H1(w)},{default:z(()=>[...l[14]||(l[14]=[P(" 确定 ",-1)])]),_:1},8,["loading","onClick"]),_(g,{size:"small",onClick:l[2]||(l[2]=$=>p.value=0)},{default:z(()=>[...l[15]||(l[15]=[P(" 取消 ",-1)])]),_:1})])])):C("",!0)],2))),128))]),c(H3)>0?(h(),A("div",S7,[m("span",null,"还有 "+H(c(H3))+" 位",1),_(g,{link:"",type:"primary",size:"small",onClick:I0},{default:z(()=>[...l[16]||(l[16]=[P(" 查看全部 ",-1)])]),_:1})])):C("",!0),c(A0)?(h(),A("div",C7,[_(g,{size:"small",plain:"",loading:c(d),onClick:R0},{default:z(()=>[P(H(c(V0)),1)]),_:1},8,["loading"])])):C("",!0)],64))],2)):C("",!0)]),_:1})])),_(v3,{"model-value":c(B)!==null,"close-on-click-modal":!1,"close-on-press-escape":!1,"show-close":!1,"z-index":3100,"append-to-body":"","align-center":"","destroy-on-close":"",width:"440px",class:"rd-modal","onUpdate:modelValue":T0},{header:z(()=>{var w;return[m("div",B7,[l[17]||(l[17]=m("span",{class:"rd-toast__warn"},"⚠",-1)),m("span",null," 该患者已延迟 "+H(((w=c(B))==null?void 0:w.snooze_count)??0)+" 次,请立即处理 ",1)])]}),footer:z(()=>[c(B)?(h(),A("div",G7,[_(g,{type:"danger",onClick:l[7]||(l[7]=w=>T1(c(B)))},{default:z(()=>[...l[20]||(l[20]=[P("去挂号",-1)])]),_:1}),_(g,{plain:"",onClick:l[8]||(l[8]=w=>f.value=!c(f))},{default:z(()=>[...l[21]||(l[21]=[P("已联系",-1)])]),_:1}),_(g,{plain:"",loading:c(v)===c(B).id,onClick:l[9]||(l[9]=w=>O1(c(B)))},{default:z(()=>[P(" 再延迟 "+H(y1(c(B),!0)),1)]),_:1},8,["loading"])])):C("",!0)]),default:z(()=>[c(B)?(h(),A("div",k7,[m("div",j7,H(c(B).patient_name),1),m("div",N7,H(f1(c(B))),1),m("div",$7,[m("span",{class:t3(["rd-chip",[`rd-chip--${c(B).state}`,{"rd-chip--severe":c(B).severe===1}]])},H(g1(c(B))),3),c(B).missed_count>0?(h(),A("span",W7," 曾过号 "+H(c(B).missed_count)+" 次 ",1)):C("",!0)]),c(f)?(h(),A("div",q7,[_(D,{modelValue:c(b).promised_date,"onUpdate:modelValue":l[3]||(l[3]=w=>c(b).promised_date=w),type:"date",size:"small","value-format":"YYYY-MM-DD",clearable:!1,"disabled-date":A1,"popper-class":"rd-toast-popper",placeholder:"患者承诺复诊日",class:"rd-contact__date"},null,8,["modelValue"]),_(F,{modelValue:c(b).remark,"onUpdate:modelValue":l[4]||(l[4]=w=>c(b).remark=w),size:"small",maxlength:"200",placeholder:"备注(选填)",class:"rd-contact__remark"},null,8,["modelValue"]),m("div",F7,[_(g,{size:"small",type:"primary",loading:c(v)===c(B).id,onClick:l[5]||(l[5]=w=>H1(c(B)))},{default:z(()=>[...l[18]||(l[18]=[P(" 确定 ",-1)])]),_:1},8,["loading"]),_(g,{size:"small",onClick:l[6]||(l[6]=w=>f.value=!1)},{default:z(()=>[...l[19]||(l[19]=[P("取消",-1)])]),_:1})])])):C("",!0)])):C("",!0)]),_:1},8,["model-value"])],64)}}}),Q7=Y(J7,[["__scopeId","data-v-7c5efeca"]]),e5=S({__name:"App",setup(e){const a=e3(),o=s3(),i=i3(),s=G3(),n=y(()=>{var p;return!!i.token&&s.path!=="/bind-work-wechat"&&!((p=i.userInfo)!=null&&p.need_bind_work_wechat)}),r={zIndex:2e3,locale:A2},v=Z1();_1(async()=>{console.log("主题颜色",v.value),o.setTheme(v.value)});const{width:d}=f2();return w3(d,g2(p=>{p>t1.SM?(a.setMobile(!1),a.toggleCollapsed(!1)):(a.setMobile(!0),a.toggleCollapsed(!0)),p{const b=T3("router-view"),E=w2;return h(),R(E,{locale:r.locale,"z-index":r.zIndex},{default:z(()=>[_(b),n.value?(h(),R(c7,{key:0})):C("",!0),n.value?(h(),R(Q7,{key:1})):C("",!0)]),_:1},8,["locale","z-index"])}}}),a1="data-clipboard-text",a5={mounted:(e,a)=>{e.setAttribute(a1,a.value);const{toClipboard:o}=V2();e.onclick=()=>{o(e.getAttribute(a1)).then(()=>{m3.msgSuccess("复制成功")}).catch(()=>{m3.msgError("复制失败")})}},updated:(e,a)=>{e.setAttribute(a1,a.value)}},o5=Object.freeze(Object.defineProperty({__proto__:null,default:a5},Symbol.toStringTag,{value:"Module"}));function $1(e,a){const{value:o}=a,s=i3().perms||[],n="*";if(!Array.isArray(o))throw new Error(`like v-perms="['auth.menu/edit']"`);if(o.length===0){e.style.removeProperty("display");return}s.some(v=>n==v||o.includes(v))?e.style.removeProperty("display"):e.style.display="none"}const t5={mounted:(e,a)=>{$1(e,a)},updated:(e,a)=>{$1(e,a)}},i5=Object.freeze(Object.defineProperty({__proto__:null,default:t5},Symbol.toStringTag,{value:"Module"}));L2([E2,x2,M2,T2,O2,H2,I2,D2,R2,P2,S2,C2,B2,k2,j2,N2,$2,W2,q2,F2,G2,U2,Y2,Z2,X2]);const s5=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),n5=e=>{for(const[a,o]of Object.entries(Y1))e.component(a,o)},l5=Object.freeze(Object.defineProperty({__proto__:null,default:n5},Symbol.toStringTag,{value:"Module"}));console.log(K2);const c5=e=>{e.use(J2)},r5=Object.freeze(Object.defineProperty({__proto__:null,default:c5},Symbol.toStringTag,{value:"Module"})),u5=Q2(),d5=e=>{e.use(u5)},m5=Object.freeze(Object.defineProperty({__proto__:null,default:d5},Symbol.toStringTag,{value:"Module"}));function _5(e){e.beforeEach(async()=>{const a=e3();if(!a.configFetchAttempted){a.$patch({configFetchAttempted:!0});try{const o=await a.getConfig();let i=document.querySelector('link[rel="icon"]');i&&(o!=null&&o.web_favicon)&&(i.href=o.web_favicon),o!=null&&o.web_favicon&&(i=document.createElement("link"),i.rel="icon",i.href=o.web_favicon,document.head.appendChild(i))}catch{}}})}const v5=Object.freeze(Object.defineProperty({__proto__:null,default:_5},Symbol.toStringTag,{value:"Module"})),W1=Object.assign({"./init.ts":v5});function h5(e){Object.keys(W1).forEach(a=>{const o=W1[a].default;typeof o=="function"&&o(e)})}const p5=e=>{h5(W),e.use(W)},b5=Object.freeze(Object.defineProperty({__proto__:null,default:p5},Symbol.toStringTag,{value:"Module"}));function z5(e){typeof window<"u"&&(window.__TUIKIT_INITIALIZED__=!0)}const y5=Object.freeze(Object.defineProperty({__proto__:null,default:z5},Symbol.toStringTag,{value:"Module"})),q1=Object.assign({"./directives/copy.ts":o5,"./directives/perms.ts":i5,"./plugins/echart.ts":s5,"./plugins/element.ts":l5,"./plugins/hljs.ts":r5,"./plugins/pinia.ts":m5,"./plugins/router.ts":b5,"./plugins/tuikit.ts":y5});function f5(e){Object.keys(q1).forEach(a=>{const o=a.replace(/(.*\/)*([^.]+).*/gi,"$2"),i=a.replace(/^\.\/([\w-]+).*/gi,"$1"),s=q1[a];if(s.default)switch(i){case"directives":e.directive(o,s.default);break;case"plugins":typeof s.default=="function"&&s.default(e);break}})}const g5={install:f5},w0=e6(e5);w0.use(g5);w0.mount("#app");v0().then(e=>{console.log(`%c likeadmin %c v${e.version} `,"padding: 4px 1px; border-radius: 3px 0 0 3px; color: #fff; background: #bbb; font-weight: bold;","padding: 4px 1px; border-radius: 0 3px 3px 0; color: #fff; background: #4A5DFF; font-weight: bold;")});export{Z as $,L5 as A,P5 as B,V5 as C,s4 as D,N5 as E,$5 as F,F5 as G,Y5 as H,G5 as I,q5 as J,W5 as K,U5 as L,N3 as M,Q5 as N,K5 as O,q as P,e8 as Q,u3 as R,X as S,l8 as T,s8 as U,i8 as V,a8 as W,o8 as X,y7 as Y,J5 as Z,Y as _,x5 as a,b7 as a0,r8 as a1,g0 as a2,t8 as a3,h7 as a4,z7 as a5,c8 as a6,y0 as a7,u8 as a8,n8 as a9,T5 as aa,E5 as ab,j5 as ac,I5 as ad,M5 as b,n3 as c,O5 as d,e3 as e,Q as f,_0 as g,L4 as h,H5 as i,m3 as j,J6 as k,X5 as l,s3 as m,D5 as n,E3 as o,A4 as p,J as q,T as r,C1 as s,B5 as t,i3 as u,k5 as v,Z5 as w,C5 as x,S5 as y,R5 as z}; diff --git a/server/public/admin/assets/index-CBIMjzc3.js b/server/public/admin/assets/index-DzAK4Ks4.js similarity index 78% rename from server/public/admin/assets/index-CBIMjzc3.js rename to server/public/admin/assets/index-DzAK4Ks4.js index 6554a538d..993b224e4 100644 --- a/server/public/admin/assets/index-CBIMjzc3.js +++ b/server/public/admin/assets/index-DzAK4Ks4.js @@ -1 +1 @@ -import{o as p,q as s,r as l,v as a,D as n,Y as c,C as u,u as f,F as y,G as b,X as x,bj as v,M as g}from"./.pnpm-CyuAWpdG.js";import{a as C}from"./index-yD39j6dM.js";import{_ as E}from"./index-Dxvz9lb1.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BnfLT5cB.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const V={class:"material-index"},k=p({name:"material"}),z=p({...k,setup(T){const r=[{type:"image",name:"图片"},{type:"video",name:"视频"},{type:"file",name:"文件"}],t=g("image");return(h,o)=>{const m=C,_=x,i=c,d=v;return s(),l("div",V,[a(d,{class:"!border-none",shadow:"never"},{default:n(()=>[a(i,{modelValue:f(t),"onUpdate:modelValue":o[0]||(o[0]=e=>u(t)?t.value=e:null)},{default:n(()=>[(s(),l(y,null,b(r,e=>a(_,{label:e.name,name:e.type,index:e.type,key:e.type,lazy:""},{default:n(()=>[a(m,{type:e.type,mode:"page","file-size":"120px",limit:-1,"page-size":20},null,8,["type"])]),_:2},1032,["label","name","index"])),64))]),_:1},8,["modelValue"])]),_:1})])}}}),N=E(z,[["__scopeId","data-v-01f37926"]]);export{N as default}; +import{o as p,q as s,r as l,v as a,D as n,Y as c,C as u,u as f,F as y,G as b,X as x,bj as v,M as g}from"./.pnpm-CyuAWpdG.js";import{a as C}from"./index-oRynN2pP.js";import{_ as E}from"./index-Bkarz3gO.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-CS5Wg0xx.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const V={class:"material-index"},k=p({name:"material"}),z=p({...k,setup(T){const r=[{type:"image",name:"图片"},{type:"video",name:"视频"},{type:"file",name:"文件"}],t=g("image");return(h,o)=>{const m=C,_=x,i=c,d=v;return s(),l("div",V,[a(d,{class:"!border-none",shadow:"never"},{default:n(()=>[a(i,{modelValue:f(t),"onUpdate:modelValue":o[0]||(o[0]=e=>u(t)?t.value=e:null)},{default:n(()=>[(s(),l(y,null,b(r,e=>a(_,{label:e.name,name:e.type,index:e.type,key:e.type,lazy:""},{default:n(()=>[a(m,{type:e.type,mode:"page","file-size":"120px",limit:-1,"page-size":20},null,8,["type"])]),_:2},1032,["label","name","index"])),64))]),_:1},8,["modelValue"])]),_:1})])}}}),N=E(z,[["__scopeId","data-v-01f37926"]]);export{N as default}; diff --git a/server/public/admin/assets/index-HjY7A-pO.js b/server/public/admin/assets/index-HjY7A-pO.js deleted file mode 100644 index 1c98899b2..000000000 --- a/server/public/admin/assets/index-HjY7A-pO.js +++ /dev/null @@ -1 +0,0 @@ -import o from"./CohortReport-ziQtuRzm.js";import{o as t,q as e,O as r}from"./.pnpm-CyuAWpdG.js";import"./stats-Bao68QGi.js";import"./index-Dxvz9lb1.js";import"./perm-DOfZAzJJ.js";const a=t({name:"revisitAssignRateStatsPage"}),u=t({...a,setup(p){return(s,n)=>(e(),r(o,{"cohort-type":"new"}))}});export{u as default}; diff --git a/server/public/admin/assets/index-dnU03aIn.js b/server/public/admin/assets/index-K0croxGm.js similarity index 99% rename from server/public/admin/assets/index-dnU03aIn.js rename to server/public/admin/assets/index-K0croxGm.js index 19c7b26bf..6b5760e52 100644 --- a/server/public/admin/assets/index-dnU03aIn.js +++ b/server/public/admin/assets/index-K0croxGm.js @@ -1,4 +1,4 @@ -import{o as Y,R as rt,aC as U,ap as dt,q as l,r as c,s as t,v as a,D as n,L as O,u as w,bz as I,K as ct,cV as pt,w as ut,T as r,bi as bt,bh as mt,ca as _t,F as C,G as A,c9 as ht,O as v,cL as D,bC as yt,P as B,d7 as wt,cN as vt,p as S,M as K}from"./.pnpm-CyuAWpdG.js";import{m as ft,ac as E,ad as gt,_ as kt}from"./index-Dxvz9lb1.js";import{aH as xt}from"./tcm-QAkeqQ9Q.js";import{u as St}from"./order-CIw46QQn.js";import{u as j}from"./getExposeType-BkPR_d5H.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"},zt={class:"wb-section-icon wb-section-icon--violet"},$t={class:"wb-section-sub"},Lt={class:"wb-toolbar"},Vt={class:"wb-section-body"},Et={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"},Mt={class:"wb-chart-card"},Ut={class:"wb-chart-card"},It={class:"wb-chart-card wb-ranking-card"},jt={key:0,class:"wb-ranking-list"},qt={class:"wb-ranking-rank"},Gt={class:"wb-ranking-name"},Kt={class:"wb-ranking-meta"},Yt={class:"wb-ranking-money"},Jt={key:0,class:"wb-dept-block"},Qt={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"},ne={class:"wb-section-icon wb-section-icon--blue"},ie={class:"wb-section-sub"},re={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"},ve={class:"wb-dept-card-head"},fe={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"},ze={class:"wb-chart-card wb-trend-card"},$e=Y({name:"workbench"}),Le=Y({...$e,setup(Ve){const g=ft(),H=j(),T=j(),J=j(),M=["#5b7cfa","#36cfc9","#ffc53d","#ff7a45","#b37feb","#597ef7","#73d13d","#ff85c0"];function q(s){if(s==null)return 0;const e=parseFloat(String(s).replace(/,/g,""));return Number.isFinite(e)?e:0}const p=U({days:0,departments:[],today_ranking:[],ranking:[],chart:{xAxis:[],series:[]}}),Q=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:M,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} +import{o as Y,R as rt,aC as U,ap as dt,q as l,r as c,s as t,v as a,D as n,L as O,u as w,bz as I,K as ct,cV as pt,w as ut,T as r,bi as bt,bh as mt,ca as _t,F as C,G as A,c9 as ht,O as v,cL as D,bC as yt,P as B,d7 as wt,cN as vt,p as S,M as K}from"./.pnpm-CyuAWpdG.js";import{m as ft,ac as E,ad as gt,_ as kt}from"./index-Bkarz3gO.js";import{aH as xt}from"./tcm-BSADvQNg.js";import{u as St}from"./order-CKT7wPrv.js";import{u as j}from"./getExposeType-BkPR_d5H.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"},zt={class:"wb-section-icon wb-section-icon--violet"},$t={class:"wb-section-sub"},Lt={class:"wb-toolbar"},Vt={class:"wb-section-body"},Et={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"},Mt={class:"wb-chart-card"},Ut={class:"wb-chart-card"},It={class:"wb-chart-card wb-ranking-card"},jt={key:0,class:"wb-ranking-list"},qt={class:"wb-ranking-rank"},Gt={class:"wb-ranking-name"},Kt={class:"wb-ranking-meta"},Yt={class:"wb-ranking-money"},Jt={key:0,class:"wb-dept-block"},Qt={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"},ne={class:"wb-section-icon wb-section-icon--blue"},ie={class:"wb-section-sub"},re={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"},ve={class:"wb-dept-card-head"},fe={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"},ze={class:"wb-chart-card wb-trend-card"},$e=Y({name:"workbench"}),Le=Y({...$e,setup(Ve){const g=ft(),H=j(),T=j(),J=j(),M=["#5b7cfa","#36cfc9","#ffc53d","#ff7a45","#b37feb","#597ef7","#73d13d","#ff85c0"];function q(s){if(s==null)return 0;const e=parseFloat(String(s).replace(/,/g,""));return Number.isFinite(e)?e:0}const p=U({days:0,departments:[],today_ranking:[],ranking:[],chart:{xAxis:[],series:[]}}),Q=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:M,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:E(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=()=>{xt({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=K(-1),F=K(0),_=U({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=>q(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:M,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:q(e.amount)})).filter(e=>e.value>0);return{color:M,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:E(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=()=>{St({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(()=>{})},nt=()=>{G(),R(),N()};rt(()=>g.theme,()=>{it()});const u=U({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:E(g.theme,.65)},{offset:1,color:g.theme}]}}}]}}),G=()=>{gt().then(s=>{var e,h,b,i,k,m,f,x,z,$,L,V;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=(f=s.sale)==null?void 0:f.date)==null||x.reverse().forEach(o=>{u.saleOption.xAxis.data.push(o)}),(V=(L=($=(z=s.sale)==null?void 0:z.list)==null?void 0:$[0])==null?void 0:L.data)==null||V.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:E("#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:E(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 dt(()=>{G(),R(),N()}),(s,e)=>{var z,$,L,V;const h=ct,b=ut,i=bt,k=mt,m=_t,f=ht,x=yt;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:w(I),round:"",class:"wb-refresh-btn",onClick:nt},{default:n(()=>[...e[3]||(e[3]=[O(" 刷新全部 ",-1)])]),_:1},8,["icon"])]),t("section",At,[t("div",Dt,[t("div",Nt,[t("span",zt,[a(b,null,{default:n(()=>[a(w(pt))]),_:1})]),t("div",null,[e[5]||(e[5]=t("div",{class:"wb-section-name"},"订单统计",-1)),t("div",$t,r(ot.value)+" · "+r(_.order_type_name||"—"),1)])]),t("div",Lt,[a(k,{modelValue:P.value,"onUpdate:modelValue":e[0]||(e[0]=o=>P.value=o),class:"wb-select wb-select--wide",onChange:N},{default:n(()=>[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:n(()=>[a(i,{label:"今天",value:0}),a(i,{label:"最近7天",value:7}),a(i,{label:"最近30天",value:30})]),_:1},8,["modelValue"]),a(h,{icon:w(I),circle:"",onClick:N},null,8,["icon"])])]),t("div",Vt,[a(f,{gutter:16,class:"wb-kpi-row"},{default:n(()=>[a(m,{xs:24,sm:8},{default:n(()=>[t("div",Et,[e[6]||(e[6]=t("div",{class:"wb-kpi-label"},"今日单数",-1)),t("div",Rt,r(_.today_total??0),1)])]),_:1}),a(m,{xs:24,sm:8},{default:n(()=>[t("div",Pt,[e[7]||(e[7]=t("div",{class:"wb-kpi-label"},"今日金额",-1)),t("div",Ft,"¥"+r(_.today_amount??"0.00"),1)])]),_:1}),a(m,{xs:24,sm:8},{default:n(()=>{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(C,null,A(_.today_ranking.slice(0,4),(d,y)=>(l(),c("span",{key:d.id,class:"wb-rank-chip wb-rank-chip--dense"},[t("em",null,r(Number(y)+1),1),O(" "+r(d.name)+" ",1),t("strong",null,r(d.count),1),t("small",null,"¥"+r(d.amount),1)]))),128))])):(l(),c("span",Ht,"暂无"))])]}),_:1})]),_:1}),a(f,{gutter:20,class:"wb-chart-row"},{default:n(()=>[a(m,{xs:24,lg:10},{default:n(()=>[t("div",Tt,[e[9]||(e[9]=t("div",{class:"wb-chart-card-head"},[t("span",{class:"wb-chart-title"},"部门单数占比")],-1)),tt.value?(l(),v(w(D),{key:0,class:"wb-chart",style:{height:"300px"},option:st.value,autoresize:!0},null,8,["option"])):(l(),v(x,{key:1,class:"wb-chart-empty",description:"暂无数据"}))])]),_:1}),a(m,{xs:24,lg:14},{default:n(()=>{var o,d;return[t("div",Mt,[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(),v(w(D),{key:"order-bar-"+P.value,class:"wb-chart",style:{height:"300px"},option:lt.value,autoresize:!0},null,8,["option"])):(l(),v(x,{key:1,class:"wb-chart-empty",description:"暂无图表数据"}))])]}),_:1})]),_:1}),a(f,{gutter:20,class:"wb-chart-row"},{default:n(()=>[a(m,{xs:24,lg:10},{default:n(()=>[t("div",Ut,[e[11]||(e[11]=t("div",{class:"wb-chart-card-head"},[t("span",{class:"wb-chart-title"},"部门金额占比")],-1)),et.value?(l(),v(w(D),{key:0,class:"wb-chart",style:{height:"300px"},option:at.value,autoresize:!0},null,8,["option"])):(l(),v(x,{key:1,class:"wb-chart-empty",description:"暂无数据"}))])]),_:1}),a(m,{xs:24,lg:14},{default:n(()=>{var o;return[t("div",It,[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",jt,[(l(!0),c(C,null,A(_.ranking,(d,y)=>(l(),c("div",{key:d.id,class:"wb-ranking-item"},[t("span",qt,r(Number(y)+1),1),t("span",Gt,r(d.name),1),t("span",Kt,[t("b",null,r(d.count),1),e[12]||(e[12]=O(" 单 ",-1)),t("span",Yt,"¥"+r(d.amount),1)])]))),128))])):(l(),v(x,{key:1,description:"暂无排行"}))])]}),_:1})]),_:1}),(z=_.departments)!=null&&z.length?(l(),c("div",Jt,[e[14]||(e[14]=t("div",{class:"wb-dept-title"},"按部门统计",-1)),a(f,{gutter:16},{default:n(()=>[(l(!0),c(C,null,A(_.departments,o=>(l(),v(m,{key:o.dept_id,xs:24,sm:12,lg:8},{default:n(()=>{var d;return[t("div",Qt,[t("div",Xt,[O(r(o.dept_name)+" ",1),t("span",Zt,r(o.total)+" 单 · ¥"+r(o.amount),1)]),t("div",te,[(l(!0),c(C,null,A(o.members,y=>(l(),c("div",{key:`${o.dept_id}-${y.id}`,class:"wb-dept-row"},[t("span",null,r(y.name),1),t("span",ee,[O(r(y.count)+" ",1),t("small",null,"¥"+r(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",ne,[a(b,null,{default:n(()=>[a(w(wt))]),_:1})]),t("div",null,[e[15]||(e[15]=t("div",{class:"wb-section-name"},"医助理诊单统计",-1)),t("div",ie,r(($=p.date_range)==null?void 0:$[0])+" 至 "+r((L=p.date_range)==null?void 0:L[1]),1)])]),t("div",re,[a(k,{modelValue:p.days,"onUpdate:modelValue":e[2]||(e[2]=o=>p.days=o),class:"wb-select",onChange:R},{default:n(()=>[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:w(I),circle:"",onClick:R},null,8,["icon"])])]),t("div",de,[a(f,{gutter:16,class:"wb-kpi-row"},{default:n(()=>[a(m,{xs:24,sm:8,lg:6},{default:n(()=>[t("div",ce,[e[16]||(e[16]=t("div",{class:"wb-kpi-label"},"今日创建诊单",-1)),t("div",pe,r(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:n(()=>{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(C,null,A(p.today_ranking.slice(0,6),(d,y)=>(l(),c("span",{key:d.id,class:"wb-rank-chip"},[t("em",null,r(y+1),1),O(" "+r(d.name)+" ",1),t("strong",null,r(d.count),1)]))),128))])):(l(),c("span",me,"暂无排行数据"))])]}),_:1})]),_:1}),a(f,{gutter:20,class:"wb-chart-row"},{default:n(()=>[a(m,{xs:24,lg:15},{default:n(()=>{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(),v(w(D),{key:0,ref_key:"assistantChart",ref:J,class:"wb-chart",style:{height:"340px"},option:Z.value,autoresize:!0},null,8,["option"])):(l(),v(x,{key:1,class:"wb-chart-empty",description:"暂无图表数据"}))])]}),_:1}),a(m,{xs:24,lg:9},{default:n(()=>[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)),Q.value?(l(),v(w(D),{key:0,class:"wb-chart",style:{height:"340px"},option:X.value,autoresize:!0},null,8,["option"])):(l(),v(x,{key:1,class:"wb-chart-empty",description:"暂无部门数据"}))])]),_:1})]),_:1}),(V=p.departments)!=null&&V.length?(l(),c("div",ye,[e[21]||(e[21]=t("div",{class:"wb-dept-title"},"按部门明细",-1)),a(f,{gutter:16},{default:n(()=>[(l(!0),c(C,null,A(p.departments,o=>(l(),v(m,{key:o.dept_id,xs:24,sm:12,lg:8},{default:n(()=>{var d;return[t("div",we,[t("div",ve,[O(r(o.dept_name)+" ",1),t("span",fe,"共 "+r(o.total),1)]),t("div",ge,[(l(!0),c(C,null,A(o.assistants,y=>(l(),c("div",{key:`${o.dept_id}-${y.id}`,class:"wb-dept-row"},[t("span",null,r(y.name),1),t("span",ke,r(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:n(()=>[a(w(vt))]),_: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(f,{gutter:20},{default:n(()=>[a(m,{xs:24,lg:14},{default:n(()=>[t("div",Ne,[e[23]||(e[23]=t("div",{class:"wb-chart-card-head"},[t("span",{class:"wb-chart-title"},"访问量趋势")],-1)),a(w(D),{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:n(()=>[t("div",ze,[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(w(D),{ref_key:"saleChart",ref:H,class:"wb-chart",style:{height:"320px"},option:u.saleOption,autoresize:!0},null,8,["option"])])]),_:1})]),_:1})])])])}}}),Be=kt(Le,[["__scopeId","data-v-2f6eaa33"]]);export{Be as default}; diff --git a/server/public/admin/assets/index-D7Kf_aDd.js b/server/public/admin/assets/index-LJKjF0q-.js similarity index 99% rename from server/public/admin/assets/index-D7Kf_aDd.js rename to server/public/admin/assets/index-LJKjF0q-.js index 66fae2cec..2fa2860ad 100644 --- a/server/public/admin/assets/index-D7Kf_aDd.js +++ b/server/public/admin/assets/index-LJKjF0q-.js @@ -1 +1 @@ -import{o as Lt,R as at,E as C,ap as Sa,ac as At,bn as Va,q as m,r as y,s,v as i,D as o,u as N,cZ as xa,w as Aa,cQ as Pa,L as v,T as r,P as x,bz as ze,K as Ma,cP as Ia,d4 as Da,bJ as Ea,d5 as Ta,ae as B,d6 as Pt,d7 as Mt,d8 as Ua,d3 as lt,bv as It,cn as st,cx as Dt,F as se,G as ne,O as M,bg as Ba,aw as za,cF as La,at as Et,d9 as ja,bo as Oa,bl as Fa,bm as Ra,I as qa,bC as Ka,bk as Ja,as as Ha,bb as Wa,bh as Ya,bi as Ga,bB as Za,bd as Qa,bu as Xa,a4 as el,da as tl,bt as al,aA as ll,bL as sl,aB as nl,bf as il,be as ol,J as dl,az as ul,aC as Z,M as A,p as I,e as rl}from"./.pnpm-CyuAWpdG.js";import{C as ml,D as cl,E as _l,F as fl,G as pl,H as bl,I as vl,J as gl,K as yl,L as kl,M as hl}from"./first_visit-BxZL4Ke4.js";import wl from"./WecomFloatingWidgetBuilder-LkQ-33ym.js";import Tt from"./PromotionAutomationForm-DyEeuDmw.js";import{d as Le,c as je,i as Ut,a as Bt,s as zt}from"./WelcomeMessageEditor-BCxSXNSC.js";import{_ as Nl}from"./index-Dxvz9lb1.js";const $l={class:"promotion-page","element-loading-text":"正在加载推广配置"},Cl={class:"page-header"},Sl={class:"heading-copy"},Vl={class:"heading-icon"},xl={class:"heading-actions"},Al={class:"scope-chip"},Pl={key:0,class:"update-time"},Ml={class:"metric-grid"},Il={class:"metric-card"},Dl={class:"metric-icon is-teal"},El={class:"metric-card"},Tl={class:"metric-icon is-blue"},Ul={class:"metric-card"},Bl={class:"metric-icon is-green"},zl={class:"metric-card"},Ll={class:"metric-icon is-orange"},jl={class:"workspace-card"},Ol={class:"tab-nav","aria-label":"企业微信获客助手功能"},Fl={key:0,class:"tab-content links-tab"},Rl={class:"section-heading"},ql={class:"section-heading-actions"},Kl={key:0,class:"selection-count"},Jl={key:0,class:"member-sync-results","aria-live":"polite"},Hl={key:0,role:"status"},Wl={key:1,class:"pool-layout"},Yl={class:"pool-sidebar"},Gl={class:"pool-select-all"},Zl=["onClick"],Ql={class:"pool-main"},Xl={key:0,class:"pool-toolbar"},es={class:"pool-title-row"},ts={class:"owner-tag"},as={class:"toolbar-actions"},ls={class:"member-table-area"},ss={class:"member-cell"},ns={key:0,class:"sync-retry-tip"},is={key:1,class:"tab-content customer-stats-tab"},os={class:"section-heading customer-stats-heading"},ds={class:"customer-heading-actions"},us={key:0,class:"update-time"},rs={class:"customer-metric-grid","aria-label":"获客客户消息汇总"},ms={class:"customer-metric-card"},cs={class:"metric-icon is-teal"},_s={class:"customer-metric-card"},fs={class:"metric-icon is-blue"},ps={class:"customer-metric-card"},bs={class:"metric-icon is-green"},vs={class:"customer-metric-card"},gs={class:"metric-icon is-orange"},ys={class:"customer-filter-bar"},ks=["title"],hs={class:"member-cell"},ws={class:"member-cell"},Ns={class:"customer-pagination"},$s={key:2,class:"tab-content authorization-tab"},Cs={class:"configuration-state"},Ss={key:0},Vs={key:1},xs={key:0,class:"missing-fields"},As={class:"callback-list"},Ps={class:"configuration-actions"},Ms={key:3,class:"tab-content install-tab"},Is={class:"section-heading"},Ds={class:"member-tree-option__label"},Es={key:0,class:"member-tree-option__count"},Ts={key:1,class:"member-tree-option__detail"},Us={class:"form-tip"},Bs={key:0,class:"uploading-save-tip"},zs={key:1,class:"batch-pool-summary"},Ls={key:0},js={class:"batch-config-section"},Os={class:"batch-field-grid"},Fs={class:"batch-config-section"},Rs={class:"batch-member-status-grid"},qs={class:"member-tree-option__label"},Ks={key:0,class:"member-tree-option__count"},Js={key:1,class:"member-tree-option__detail"},Hs={class:"form-tip"},Ws={key:0,class:"batch-config-section automation-batch-section"},Ys={class:"batch-section-selectors"},Gs={key:0,class:"uploading-save-tip",role:"status"},Zs={key:1,class:"uploading-save-tip"},Qs={key:0,class:"access-pool-preview"},Xs={key:0},en=Lt({name:"firstVisitWecomPromotionPage"}),tn=Lt({...en,setup(an){const nt=()=>({meta:{admin_id:0,scope_label:"",generated_at:""},config:{mode:"internal",configured:!1,ready:!1,missing:[],corp_id_masked:"",agent_id:"",secret_configured:!1,callback_ready:!1,callback_url:"",official_doc:""},summary:{configured_apps:0,pool_count:0,online_links:0,today_clicks:0},pools:[],links:[],member_options:[],operator_options:[],department_options:[],automation_installed:!1,customer_acquisition_link_example:"https://work.weixin.qq.com/ca/xxxxxxxx"}),c=Z(nt()),Ae=A(!1),K=A("links"),re=A(),ve=A(),j=A([]),he=A(!1),q=A(!1),Pe=A(!1),we=A(!1),G=A(!1),Q=A(0),ge=A(0),Ne=A(!1),ie=A(!1),$e=A(!1),T=A(!1),Ce=A(0),Se=A(!1),P=I(()=>Se.value||Ce.value>0||T.value),X=Z({completed:0,total:0}),Y=A([]),oe=A(!1),it=A(),Ve=A(""),S=Z({id:0,name:"",fallback_url:"",status:1,member_admin_ids:[],skip_verify:0,main_url:"",automation_config:Le()}),Oe=A(),me=A(""),de=A(!1),z=Z({pool_ids:[],operator_admin_ids:[],action:"grant"}),_=Z({skip_verify:!1,fallback_url:!1,status:!1,member_status:!1,reception:!1,customer:!1,welcome:!1}),h=Z({pool_ids:[],skip_verify:0,fallback_url:"",status:1,member_admin_ids:[],member_status:1,automation_config:Le()}),O=Z({id:0,name:"",userid:"",daily_limit:0,status:1,active_range:[],remark:""}),xe=A(!1),ot=A(!1),Fe=A(!1),F=Z({link_id:"",userid:"",chat_status:""}),J=Z({page_no:1,page_size:20,total:0}),U=Z({summary:{customer_count:0,messaged_customer_count:0,message_customer_rate:0,received_message_count:0,message_count_known_count:0},rows:[],link_options:[],member_options:[],meta:{last_synced_at:""}}),w=I(()=>c.pools.find(t=>Number(t.id)===re.value)),Re=I(()=>{var t;return Array.isArray((t=w.value)==null?void 0:t.member_rules)?w.value.member_rules:[]}),qe=I(()=>{var L,k,b,V;const t=w.value,e=(t==null?void 0:t.dispatch_sync)||{},a=Array.isArray((L=t==null?void 0:t.official_link)==null?void 0:L.range_userids)?t.official_link.range_userids.map(String):[],n=Re.value.filter($=>De($).className==="is-ok").map($=>String($.userid)),u=new Map(Re.value.map($=>[String($.userid),String($.name||$.userid)])),d=a.map($=>u.get($)||$).join("、")||"暂无确认记录",f=n.map($=>u.get($)||$).join("、")||"暂无可用成员",p=(k=t==null?void 0:t.official_link)==null?void 0:k.last_sync_time,g=`当前计划:${f};上次企微确认:${d}${p?`(${Ee(p)})`:""}。`,E=String(e.last_error||((b=t==null?void 0:t.official_link)==null?void 0:b.sync_error)||"");if(Number(e.status)===3||E)return{type:"warning",title:"企微成员范围尚未同步成功",description:`${g}${E||"同步失败,请点击“同步成员范围”重试。"}`};if(Number(e.status)===4)return{type:"warning",title:"企微成员范围同步受阻",description:`${g}请检查可用成员后重试同步。`};if([1,2].includes(Number(e.status)))return{type:"warning",title:"本地规则已保存,企微成员范围同步待完成",description:`${g}可点击“同步成员范围”立即重试。`};const W=(((V=t==null?void 0:t.official_link)==null?void 0:V.range_department_ids)||[]).length>0;return a.length>0&&new Set(a).size===new Set(n).size&&n.every($=>a.includes($))&&!W?{type:"info",title:"上次确认的企微成员范围与当前计划一致",description:g}:{type:"warning",title:"当前计划与上次企微范围不一致",description:`${g}${W?"企微范围仍包含部门。":""}请点击“同步成员范围”更新并确认。`}}),Ke=I(()=>c.pools.find(t=>Number(t.id)===ve.value)),Me=I(()=>c.pools.filter(t=>z.pool_ids.includes(Number(t.id)))),jt=I(()=>c.pools.filter(t=>t.can_manage_access).map(t=>Number(t.id))),ue=I(()=>c.pools.filter(t=>t.can_manage_access||t.can_operate).map(t=>Number(t.id))),dt=I(()=>{const t=new Set(j.value);return jt.value.filter(e=>t.has(e)).length}),Je=I(()=>ue.value.filter(t=>j.value.includes(t)).length),Ot=I(()=>ue.value.length>0&&Je.value===ue.value.length),Ft=I(()=>Je.value>0&&Je.valuec.pools.filter(t=>h.pool_ids.includes(Number(t.id)))),ut=I(()=>{const t=new Map(c.member_options.map(a=>[Number(a.id),a])),e=new Map;return ce.value.forEach(a=>{const n=Number(a.id);(Array.isArray(a.member_rules)?a.member_rules:[]).forEach(d=>{const f=Number(d.admin_id);if(f<=0)return;const p=t.get(f),g=e.get(f)||{id:f,name:String(d.name||(p==null?void 0:p.name)||d.userid||`员工 ${f}`),userid:String((p==null?void 0:p.userid)||d.userid||""),display_dept_id:Number((p==null?void 0:p.display_dept_id)||0),dept_ids:Array.isArray(p==null?void 0:p.dept_ids)?p.dept_ids.map(Number).filter(E=>E>0):[],dept_names:Array.isArray(p==null?void 0:p.dept_names)?p.dept_names.map(String).filter(Boolean):Array.isArray(d.dept_names)?d.dept_names.map(String).filter(Boolean):[],pool_count:0,online_count:0,offline_count:0,pool_ids:new Set};g.pool_ids.has(n)||(g.pool_ids.add(n),g.pool_count++,Number(d.enabled)===1?g.online_count++:g.offline_count++),e.set(f,g)})}),[...e.values()].map(({pool_ids:a,...n})=>n).sort((a,n)=>a.name.localeCompare(n.name,"zh-CN"))}),Rt=I(()=>new Map(ut.value.map(t=>[t.id,t]))),rt=I(()=>wt(c.department_options,ut.value,{selectableDepartments:!0,memberDetail:t=>{const e=Rt.value.get(t.id);return e?`${e.pool_count} 个方案 · 已上线 ${e.online_count} / 已下线 ${e.offline_count}`:""}})),qt=I(()=>rt.value.map(t=>t.value)),ye=I(()=>{if(!_.member_status||h.member_status!==0)return[];const t=new Set(h.member_admin_ids.map(Number));return ce.value.filter(e=>{const a=Array.isArray(e.member_rules)?e.member_rules:[],n=a.some(d=>Number(d.enabled)===1&&t.has(Number(d.admin_id))),u=a.some(d=>Number(d.enabled)===1&&(_.reception||d.reception_available)&&!t.has(Number(d.admin_id)));return n&&!u})}),mt=I(()=>ce.value.map(t=>new Set((Array.isArray(t.member_admin_ids)?t.member_admin_ids:[]).map(Number)))),ct=I(()=>[...new Set(mt.value.flatMap(t=>[...t]))]),He=I(()=>{const t=mt.value;return t.length?[...t[0]].filter(e=>t.slice(1).every(a=>a.has(e))):[]}),Kt=I(()=>["reception","customer","welcome"].filter(t=>!_[t])),_t={value:"value",label:"label",children:"children",disabled:"disabled"},ft=I(()=>wt(c.department_options,c.member_options)),Jt=I(()=>ft.value.map(t=>t.value)),Ht=I(()=>U.link_options.length?U.link_options:c.links.filter(t=>t.id).map(t=>({id:Number(t.id),name:t.name||t.remote_link_id||`链接 ${t.id}`}))),Wt=I(()=>U.member_options.length?U.member_options:c.member_options.map(t=>({id:Number(t.id),userid:String(t.userid||""),name:t.name,department_name:Array.isArray(t.dept_names)?t.dept_names.join(" / "):t.department_name||t.dept_name||""})));at(()=>c.pools.map(t=>`${Number(t.id)}:${t.can_manage_access?1:0}:${t.can_operate?1:0}`).join(","),()=>{const t=c.pools.map(a=>Number(a.id)),e=new Set(ue.value);(!re.value||!t.includes(re.value))&&(re.value=t[0]),(!ve.value||!t.includes(ve.value))&&(ve.value=t[0]),j.value=j.value.filter(a=>e.has(a))},{immediate:!0}),at(K,t=>{t==="customer-stats"&&!ot.value&&_e()}),at(()=>z.action,t=>{if(t!=="grant")return;const e=new Set(c.operator_options.filter(a=>a.can_grant).map(a=>Number(a.id)));z.operator_admin_ids=z.operator_admin_ids.filter(a=>e.has(Number(a)))});async function H(){Ae.value=!0;try{const t=await cl();Object.assign(c,nt(),t||{})}catch(t){C.error((t==null?void 0:t.message)||"企业微信推广配置加载失败")}finally{Ae.value=!1}}function Yt(t,e){if(P.value||!(t!=null&&t.can_manage_access)&&!(t!=null&&t.can_operate))return;const a=Number(t.id),n=new Set(j.value);e?n.add(a):n.delete(a),j.value=[...n]}function Gt(t){P.value||(j.value=t?[...ue.value]:[])}function Zt(t=j.value){if(P.value)return;const e=new Set(c.pools.filter(u=>u.can_manage_access).map(u=>Number(u.id))),a=[...new Set(t.map(Number).filter(u=>e.has(u)))];if(!a.length)return C.warning("请先选择可管理的分流方案");if(a.length>100)return C.warning("单次最多设置 100 个分流方案");const n=c.pools.find(u=>Number(u.id)===a[0]);Object.assign(_,{skip_verify:!1,fallback_url:!1,status:!1,member_status:!1,reception:!1,customer:!1,welcome:!1}),Object.assign(h,{pool_ids:a,skip_verify:Number(n==null?void 0:n.skip_verify)===1?1:0,fallback_url:String((n==null?void 0:n.fallback_url)||""),status:Number(n==null?void 0:n.status)===1?1:0,member_admin_ids:[],member_status:1,automation_config:je(n==null?void 0:n.automation_config)}),Ve.value="",oe.value=!1,$e.value=!0}function We(t,e,a){const n=t,u=e;a.forEach(d=>{n[d]=JSON.parse(JSON.stringify(u[d]))})}function ee(t){var e;Ve.value=t,(e=it.value)==null||e.scrollTo({top:0,behavior:"smooth"}),C.warning(t)}function Qt(t,e){return typeof t=="string"&&t?t:t&&typeof t=="object"&&"message"in t&&typeof t.message=="string"?t.message:e}function Xt(t){if(!t.success)return`本地保存失败:${t.error||"请检查配置后重试"}`;const e=t.sync_only?"":"本地已保存,";return t.sync_status==="synced"?`${e}企微成员范围已确认同步`:t.sync_status==="blocked"||t.sync_status==="failed"||t.sync_error?`${e}企微同步${t.sync_status==="blocked"?"受阻":"失败"}:${t.sync_error||"请重试同步"}`:`${e}企微成员范围尚未确认同步,请重试同步`}function Ye(t){const e=Y.value.findIndex(a=>a.id===t.id);e<0?Y.value.push(t):Y.value[e]=t}function Ie(t,e){if(e.sync_status==="synced")C.success(`${t},企微成员范围已确认同步`);else{const a=e.sync_error||"企微成员范围尚未确认同步,请点击“同步成员范围”重试";C.warning({message:`${t}。${a}`,duration:8e3})}}function Ge(t,e,a){Ye({id:t,name:e,success:!0,sync_status:a.sync_status,sync_error:a.sync_error,sync_queued:a.sync_queued})}function Ze(t){const e=c.pools.find(a=>Number(a.id)===t);return!!(e!=null&&e.can_operate&&(e!=null&&e.official_link))}async function pt(t){try{return await hl({pool_id:t})}catch(e){return{pool_id:t,sync_status:"failed",sync_error:Qt(e,"同步请求失败,请重试确认企微范围"),sync_queued:!1}}}async function bt(t){if(P.value||Q.value||!Ze(t))return;const e=c.pools.find(a=>Number(a.id)===t);Ce.value=t;try{const a=await pt(t);Ye({id:t,name:e.name,success:!0,sync_only:!0,...a}),await H(),Ie("成员范围同步结果",a)}finally{Ce.value=0}}async function vt(t){Y.value=t.map(n=>({...n}));const e=t.filter(n=>n.success&&n.sync_queued);Object.assign(X,{total:e.length,completed:0});let a=0;await Promise.all(Array.from({length:Math.min(2,e.length)},async()=>{for(;a100)return C.warning("单次最多同步 100 个分流方案,请分批选择");const e=t.map(a=>{const n=c.pools.find(d=>Number(d.id)===a),u=Ze(a);return{id:a,name:(n==null?void 0:n.name)||`方案 ${a}`,success:!0,sync_only:!0,sync_status:u?"pending":"blocked",sync_queued:u,sync_error:u?"":n!=null&&n.can_operate?"方案尚未生成官方链接,请先保存方案":"没有该方案的操作权限"}});Se.value=!0;try{await vt(e),j.value=Y.value.filter(u=>u.sync_status!=="synced").map(u=>u.id),await H();const a=Y.value.filter(u=>u.sync_status==="synced").length,n=t.length-a;C({type:n?"warning":"success",message:`企微已确认同步 ${a} 个方案${n?`,${n} 个尚未确认同步,已保留勾选`:""}。详情见方案列表上方。`,duration:8e3})}finally{Se.value=!1,Object.assign(X,{completed:0,total:0})}}async function ta(){if(P.value||oe.value)return;Ve.value="";const t=c.automation_installed&&(_.reception||_.customer||_.welcome),e=_.member_status,a=_.skip_verify||_.fallback_url||_.status||t;if(!_.skip_verify&&!_.fallback_url&&!_.status&&!e&&!t)return ee("请至少勾选一项需要批量修改的配置");if(e&&a)return ee("员工上下线需要单独批量保存,请取消其他方案配置修改");if(e&&!h.member_admin_ids.length)return ee("请至少选择一名需要批量上线或下线的员工");if(e&&h.member_admin_ids.length>100)return ee("单次最多设置 100 名员工,请减少选择范围");if(e&&h.member_status===0&&ye.value.length)return ee(`${ye.value[0].name} 至少需要保留一名当前可用的上线员工`);if(_.fallback_url&&h.fallback_url.trim()&&!Ut(h.fallback_url.trim()))return ee("兜底获客助手链接必须为有效的 HTTP/HTTPS 地址");const n=je(h.automation_config);if(_.reception&&n.reception_mode!=="scheduled"&&(n.reception_schedule=[]),_.welcome&&n.welcome_mode!=="channel"&&(n.welcome={text:"",attachments:[]}),_.welcome&&(n.welcome_mode!=="channel"||!n.welcome_schedule_enabled)&&(n.welcome_schedule=[]),t){const d=Le();_.reception&&We(d,n,["reception_mode","reception_schedule","backup_member_admin_ids"]),_.customer&&We(d,n,["tags_enabled","tag_ids","remark_enabled","remark_template","description_enabled","description"]),_.welcome&&We(d,n,["welcome_mode","welcome","welcome_schedule_enabled","welcome_schedule"]);const p=_.reception&&n.backup_member_admin_ids.some(g=>ct.value.includes(Number(g)))?"备用成员不能是任一所选方案的主接待成员":Bt(d,He.value);if(p)return ee(p)}const u={};if(_.skip_verify&&(u.skip_verify=h.skip_verify===1?1:0),_.fallback_url&&(u.fallback_url=h.fallback_url.trim()),_.status&&(u.status=h.status===1?1:0),e&&(u.member_status={member_admin_ids:[...h.member_admin_ids],status:h.member_status}),t){const d=zt(n),f={},p=g=>g.forEach(E=>{f[E]=d[E]});_.reception&&p(["reception_mode","reception_schedule","backup_member_admin_ids"]),_.customer&&p(["tags_enabled","tag_ids","remark_enabled","remark_template","description_enabled","description"]),_.welcome&&p(["welcome_mode","welcome","welcome_schedule_enabled","welcome_schedule"]),u.automation_config=f}T.value=!0,Y.value=[];try{const d=await _l({pool_ids:[...h.pool_ids],changes:u});if(Y.value=d.results.map(D=>({...D})),d.updated===0){const D=d.results.slice(0,2).map(L=>`${L.name||`方案 ${L.id}`}:${L.error||"保存失败"}`).join(";");return ee(D||"所选方案均未能保存,请检查配置后重试")}await vt(d.results),$e.value=!1,j.value=Y.value.filter(D=>!D.success||D.sync_status!=="synced").map(D=>D.id),await H();const f=h.member_status===1?"上线":"下线",p=e?d.member_updated>0?`,${d.member_updated} 条本地员工规则已${f}`:`,所选员工本地均已处于${f}状态`:"",g=Y.value.filter(D=>D.success&&D.sync_status==="synced").length,E=d.updated-g,W=`本地已保存 ${d.updated} 个方案${p};企微已确认同步 ${g} 个${E?`,${E} 个尚未确认同步`:""}${d.failed?`;${d.failed} 个本地保存失败`:""}`;C({type:E||d.failed?"warning":"success",message:`${W}。详情见方案列表上方。`,duration:8e3})}catch(d){ee((d==null?void 0:d.message)||"批量修改分流方案失败")}finally{T.value=!1,Object.assign(X,{completed:0,total:0})}}function gt(t=j.value){if(P.value)return;const e=new Set(c.pools.filter(n=>n.can_manage_access).map(n=>Number(n.id))),a=[...new Set(t.map(Number).filter(n=>e.has(n)))];if(!a.length)return C.warning("请先选择可管理的分流方案");if(a.length>100)return C.warning("单次最多设置 100 个分流方案");Object.assign(z,{pool_ids:a,operator_admin_ids:[],action:"grant"}),Ne.value=!0}async function aa(){if(!z.pool_ids.length)return C.warning("请至少选择一个分流方案");if(!z.operator_admin_ids.length)return C.warning("请至少选择一名操作人");ie.value=!0;try{const t=await fl({pool_ids:[...z.pool_ids],operator_admin_ids:[...z.operator_admin_ids],action:z.action});Ne.value=!1,j.value=[],await H();const e=z.action==="grant"?"添加":"移除";C.success(t!=null&&t.affected?`已批量${e} ${t.affected} 条方案操作权限`:"权限设置已检查,没有需要变更的记录")}catch(t){C.error((t==null?void 0:t.message)||"批量设置访问操作失败")}finally{ie.value=!1}}function la(t){const e=Array.isArray(t.dept_names)&&t.dept_names.length?t.dept_names.join(" / "):"未分部门",a=Number(t.disable)===1?" · 已禁用":"";return`${t.name} · ${e}${a}`}function sa(t){const e=Array.isArray(t==null?void 0:t.operators)?t.operators:[];return e.length?e.map(a=>`${a.name||`账号 ${a.id}`}${Number(a.disable)===1?"(已禁用)":""}`).join("、"):"仅原管理范围可操作"}function na(t){const e=t!=null&&t.main_url?"官方链接已生成":"待生成链接",a=Array.isArray(t==null?void 0:t.operator_admin_ids)?t.operator_admin_ids.length:0;return a>0?`${e} · ${a} 人可操作`:e}function Qe(t){if(P.value)return;const e=new Set(c.member_options.map(a=>Number(a.id)));me.value="",de.value=!1,Object.assign(S,t?{id:Number(t.id),name:t.name,fallback_url:t.fallback_url||"",status:Number(t.status),member_admin_ids:Array.isArray(t.member_admin_ids)?t.member_admin_ids.map(Number).filter(a=>e.has(a)):[],skip_verify:Number(t.skip_verify)===1?1:0,main_url:t.main_url||"",automation_config:je(t.automation_config)}:{id:0,name:"",fallback_url:"",status:1,member_admin_ids:[],skip_verify:0,main_url:"",automation_config:Le()}),he.value=!0}async function ia(){var a,n;if(q.value||de.value||P.value)return;me.value="";const t=je(S.automation_config);t.reception_mode!=="scheduled"&&(t.reception_schedule=[]),t.welcome_mode!=="channel"&&(t.welcome={text:"",attachments:[]}),(t.welcome_mode!=="channel"||!t.welcome_schedule_enabled)&&(t.welcome_schedule=[]);const e=S.name.trim()?S.member_admin_ids.length?S.fallback_url.trim()&&!Ut(S.fallback_url.trim())?"兜底获客助手链接必须为有效的 HTTP/HTTPS 地址":c.automation_installed?Bt(t,S.member_admin_ids):"":"请至少选择一名主接待成员":"请输入分流方案名称";if(e)return me.value=e,(a=Oe.value)==null||a.scrollTo({top:0,behavior:"smooth"}),C.warning(e);q.value=!0;try{const{automation_config:u,...d}=S,f=await pl({...d,name:S.name.trim(),fallback_url:S.fallback_url.trim(),...c.automation_installed?{automation_config:zt(t)}:{}});if(c.automation_installed&&(f==null?void 0:f.automation_saved)!==!0)throw new Error("方案已提交,但服务端未确认标签和欢迎语配置保存成功,请刷新后重试");he.value=!1,Ge(Number((f==null?void 0:f.id)||S.id),S.name,f||{}),await H(),f!=null&&f.id&&(re.value=Number(f.id)),Ie(S.id?"本地方案已保存":"分流方案已创建",f||{})}catch(u){me.value=(u==null?void 0:u.message)||(typeof u=="string"?u:"分流方案保存失败,请检查配置或稍后重试"),(n=Oe.value)==null||n.scrollTo({top:0,behavior:"smooth"}),C.error(me.value)}finally{q.value=!1}}async function oa(t){if(!P.value){try{await rl.confirm(`删除“${t.name}”将同时永久删除企业微信后台中的官方获客链接,已投放的链接会失效且无法恢复。确认继续?`,"永久删除分流方案",{type:"warning",confirmButtonText:"永久删除",cancelButtonText:"取消"})}catch{return}ge.value=Number(t.id);try{await bl({id:Number(t.id)}),C.success("分流方案及企业微信官方获客链接已永久删除"),await H()}catch(e){C.error((e==null?void 0:e.message)||"删除失败")}finally{ge.value=0}}}function da(t){if(P.value)return;const e=Number(t.active_start)>0&&Number(t.active_end)>0?[Vt(t.active_start),Vt(t.active_end)]:[];Object.assign(O,{id:Number(t.id),name:t.name||"",userid:t.userid||"",daily_limit:Number(t.daily_limit)||0,status:Number(t.enabled)===1?1:0,active_range:e,remark:t.remark||""}),we.value=!0}async function ua(){var a,n,u,d;if(G.value||P.value)return;G.value=!0;const t=Number((a=w.value)==null?void 0:a.id),e=String(((n=w.value)==null?void 0:n.name)||"");try{const f=await vl({...O,active_start:((u=O.active_range)==null?void 0:u[0])||"",active_end:((d=O.active_range)==null?void 0:d[1])||""});we.value=!1,Ge(t,e,f||{}),await H(),Ie("本地医助规则已保存",f||{})}catch(f){C.error((f==null?void 0:f.message)||"医助分流规则保存失败")}finally{G.value=!1}}async function ra(t,e){var u,d;if(Q.value||P.value)return;Q.value=Number(t.id);const a=Number((u=w.value)==null?void 0:u.id),n=String(((d=w.value)==null?void 0:d.name)||"");try{const f=await gl({id:Number(t.id),status:e?1:0});Ge(a,n,f||{}),await H(),Ie("本地成员状态已保存",f||{})}catch(f){C.error((f==null?void 0:f.message)||"成员状态更新失败"),await H()}finally{Q.value=0}}async function yt(){Pe.value=!0;try{const t=await yl();t!=null&&t.has_link?C.success((t==null?void 0:t.message)||"API 验证通过:应用凭证、可信 IP 与获客助手权限均可用"):C.warning((t==null?void 0:t.message)||"API 权限可用,但当前应用还没有创建官方获客链接")}catch(t){C.error((t==null?void 0:t.message)||"获客助手 API 验证失败")}finally{Pe.value=!1}}async function ma(){await H(),K.value==="customer-stats"&&await _e()}function ke(t,e){for(const a of e)if((t==null?void 0:t[a])!==void 0&&(t==null?void 0:t[a])!==null&&(t==null?void 0:t[a])!==""){const n=Number(t[a]);return Number.isFinite(n)?n:0}return 0}async function _e(){var t,e;xe.value=!0;try{const a=await ml({page_no:J.page_no,page_size:J.page_size,promotion_link_id:F.link_id?Number(F.link_id):void 0,userid:F.userid||void 0,chat_status:F.chat_status===""?void 0:F.chat_status==="messaged"?1:F.chat_status==="unknown"?2:0}),n=(a==null?void 0:a.summary)||(a==null?void 0:a.stats)||{},u=ke(n,["customer_count","total_customers","customer_total","total"]),d=ke(n,["messaged_customer_count","started_chat_count","chat_customer_count","message_customer_count","chatting_customers"]),f=["message_customer_rate","chat_customer_rate","messaged_rate","chat_rate"],p=f.some(k=>(n==null?void 0:n[k])!==void 0&&(n==null?void 0:n[k])!==null&&(n==null?void 0:n[k])!=="");Object.assign(U.summary,{customer_count:u,messaged_customer_count:d,message_customer_rate:p?ke(n,f):u?d/u*100:0,received_message_count:ke(n,["received_message_count","recv_msg_cnt","recv_msg_count","total_recv_msg_cnt","message_count"]),message_count_known_count:ke(n,["message_count_known_count","exact_message_customer_count"])}),U.rows=Array.isArray(a==null?void 0:a.lists)?a.lists:Array.isArray(a==null?void 0:a.list)?a.list:Array.isArray(a==null?void 0:a.rows)?a.rows:[],J.total=Number((a==null?void 0:a.total)??(a==null?void 0:a.count)??((t=a==null?void 0:a.page)==null?void 0:t.total)??U.rows.length)||0;const g=(a==null?void 0:a.filters)||{},E=(a==null?void 0:a.link_options)||(g==null?void 0:g.link_options)||(g==null?void 0:g.links),W=(a==null?void 0:a.member_options)||(g==null?void 0:g.member_options)||(g==null?void 0:g.members);Array.isArray(E)&&(U.link_options=E),Array.isArray(W)&&(U.member_options=W);const D=U.rows.reduce((k,b)=>{const V=b.last_synced_at||b.last_sync_time||b.synced_at||b.sync_time||"";return Number(V||0)>Number(k||0)?V:k},""),L=((e=a==null?void 0:a.meta)==null?void 0:e.last_synced_at)||(a==null?void 0:a.last_synced_at)||D||U.meta.last_synced_at||"";Object.assign(U.meta,(a==null?void 0:a.meta)||{},{last_synced_at:L?Ee(L):""}),ot.value=!0}catch(a){C.error((a==null?void 0:a.message)||"获客客户统计加载失败")}finally{xe.value=!1}}function ca(){J.page_no=1,_e()}function _a(){Object.assign(F,{link_id:"",userid:"",chat_status:""}),J.page_no=1,_e()}function fa(){J.page_no=1,_e()}async function pa(){var t,e,a;Fe.value=!0;try{const n=await kl({promotion_link_id:F.link_id?Number(F.link_id):void 0}),u=Number((n==null?void 0:n.scanned)??(n==null?void 0:n.customer_scanned)??((t=n==null?void 0:n.customers)==null?void 0:t.scanned)??0),d=Number((n==null?void 0:n.created)??(n==null?void 0:n.customer_created)??((e=n==null?void 0:n.customers)==null?void 0:e.created)??0),f=Number((n==null?void 0:n.updated)??(n==null?void 0:n.customer_updated)??((a=n==null?void 0:n.customers)==null?void 0:a.updated)??0);C.success((n==null?void 0:n.message)||`客户同步完成:扫描 ${te(u)} 位,新增 ${te(d)} 位,更新 ${te(f)} 位`),J.page_no=1,await Promise.all([H(),_e()])}catch(n){C.error((n==null?void 0:n.message)||"获客客户同步失败")}finally{Fe.value=!1}}function De(t){var a;const e=Math.floor(Date.now()/1e3);return Number(t.enabled)!==1?{label:"已禁用",className:"is-muted"}:Number(t.active_start)>0&&Number(t.active_start)>e?{label:"尚未生效",className:"is-waiting"}:Number(t.active_end)>0&&Number(t.active_end)0&&ht(t)>=Number(t.daily_limit)?{label:"今日已达上限",className:"is-waiting"}:Number((a=w.value)==null?void 0:a.status)===0?{label:"方案已停用",className:"is-muted"}:t.reception_available===!1||t.reception_available===0?{label:t.is_backup?"备用待命":"非接待时段",className:"is-waiting"}:t.is_backup?{label:"备用接待中",className:"is-ok"}:{label:"可参与分流",className:"is-ok"}}function kt(t){const e=De(t).className==="is-ok";return t.is_in_remote_range===!0||Number(t.is_in_remote_range)===1?{label:e?"企微范围内":"待移出(仍在企微)",className:e?"is-online":"is-pending"}:{label:e?"待加入企微":"未在企微范围",className:"is-offline"}}function ht(t){const e=new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Shanghai",year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date);return t.today_date===e?Number(t.today_count||0):0}function wt(t,e,a={}){const n=new Set,u=b=>{b.forEach(V=>{const $=Number(V.id);$>0&&n.add($),Array.isArray(V.children)&&u(V.children)})};u(Array.isArray(t)?t:[]);const d=[],f=new Set;for(const b of Array.isArray(e)?e:[]){const V=Number(b.id);V<=0||f.has(V)||(f.add(V),d.push({id:V,name:String(b.name||b.userid||`成员 ${V}`),userid:String(b.userid||""),display_dept_id:Number(b.display_dept_id||0),dept_ids:Array.isArray(b.dept_ids)?Array.from(new Set(b.dept_ids.map(Number).filter($=>$>0))):[],dept_names:Array.isArray(b.dept_names)?b.dept_names.map(String).filter(Boolean):[]}))}const p=new Map;d.forEach(b=>{var R;const V=Number(b.display_dept_id||0),$=n.has(V)?V:b.dept_ids.find(ae=>n.has(ae))||0;p.has($)||p.set($,[]),(R=p.get($))==null||R.push(b)});const g=new Set,E=b=>{var R;const V=b.dept_names.length?b.dept_names.join(" / "):"未分部门",$=((R=a.memberDetail)==null?void 0:R.call(a,b))||(b.userid?`${V} · ${b.userid}`:V);return{value:b.id,label:b.name,kind:"member",detail:$,search_text:`${b.name} ${b.userid} ${b.dept_names.join(" ")}`.toLocaleLowerCase()}},W=(b,V)=>b.name.localeCompare(V.name,"zh-CN"),D=(b,V)=>{const $=[];for(const R of Array.isArray(b)?b:[]){const ae=Number(R.id);if(ae<=0)continue;const fe=String(R.name||`部门 ${ae}`),pe=[...V,fe],Te=D(Array.isArray(R.children)?R.children:[],pe),Ue=[...p.get(ae)||[]].sort(W);Ue.forEach(l=>g.add(l.id));const tt=Ue.map(E),be=[...Te,...tt];if(!be.length)continue;const Be=be.reduce((l,le)=>l+(le.kind==="member"?1:Number(le.member_count||0)),0);$.push({value:`dept:${ae}`,label:fe,kind:"department",disabled:!a.selectableDepartments,member_count:Be,search_text:`${pe.join(" ")} ${be.map(l=>l.search_text).join(" ")}`.toLocaleLowerCase(),children:be})}return $},L=D(Array.isArray(t)?t:[],[]),k=d.filter(b=>!g.has(b.id)).sort(W);if(k.length){const b=k.map(E);L.push({value:"dept:unassigned",label:"未分部门",kind:"department",disabled:!a.selectableDepartments,member_count:b.length,search_text:`未分部门 ${b.map(V=>V.search_text).join(" ")}`.toLocaleLowerCase(),children:b})}return L}function Nt(t,e){const a=String(t||"").trim().toLocaleLowerCase();return a===""||e.search_text.includes(a)}function ba(t){var n,u;const e=Array.isArray(t==null?void 0:t.member_admin_ids)?t.member_admin_ids:[],a=((u=(n=t==null?void 0:t.automation_config)==null?void 0:n.backup_member_admin_ids)==null?void 0:u.length)||0;return e.length?`${e.length} 名主接待${a?` · ${a} 名备用`:""}`:"未选择医助"}function va(t){return`${Array.isArray(t.dept_names)&&t.dept_names.length?t.dept_names.join(" / "):"未分部门"} · ${t.userid||"未绑定 userid"}`}function ga(t){const e=t.department_name||t.dept_name||"",a=t.userid?` · ${t.userid}`:"";return e?`${t.name} · ${e}${a}`:`${t.name}${a}`}function $t(t){const e=t.external_userid_masked||t.customer_id_masked||t.customer_masked||t.customer_name_masked;return e?String(e):ya(t.external_userid||t.customer_id||t.id)}function ya(t){const e=String(t||"").trim();return e?e.includes("*")?e:e.length<=4?`${e.slice(0,1)}***`:e.length<=8?`${e.slice(0,2)}***${e.slice(-1)}`:`${e.slice(0,4)}****${e.slice(-4)}`:"-"}function ka(t){return t.link_name||t.source_link_name||t.promotion_link_name||"未匹配来源链接"}function ha(t){const e=t.link_id||t.remote_link_id||t.source_link_id;return e?`链接 ID:${e}`:"暂无链接 ID"}function Xe(t){return ke(t,["received_message_count","recv_msg_cnt","message_count","received_count"])}function Ct(t){const e=t.message_count_known??t.message_count_exact??t.count_known;return e!=null?e===!0||e===1||e==="1"||e==="true":Xe(t)>0}function et(t){const e=Number(t.chat_status);if(e===2)return"unknown";const a=t.has_messaged??t.has_message??t.messaged;return a!=null?a===!0||a===1||a==="1"||a==="true"||a==="messaged"?"messaged":"silent":e===1||Xe(t)>0?"messaged":"silent"}function wa(t){const e=et(t);return e==="messaged"?"已发消息":e==="unknown"?"状态未知":"未发消息"}function Na(t){if(Ct(t))return te(Xe(t));const e=et(t);return e==="silent"?"0":e==="unknown"?"未知":"待回调"}function St(t){return t.last_message_at||t.last_chat_time||t.last_message_time||t.last_msg_time||t.event_time||""}function Ee(t){if(t==null||t===""||t===0||t==="0")return"-";if(typeof t=="number"||/^\d+$/.test(String(t))){const e=Number(t),a=new Date(e>1e11?e:e*1e3);return Number.isNaN(a.getTime())?"-":a.toLocaleString("zh-CN",{hour12:!1}).replaceAll("/","-")}return String(t).replace("T"," ").replace(/Z$/,"").slice(0,19)}function $a(t){return`${Number(t||0).toFixed(1)}%`}function te(t){return Number(t||0).toLocaleString("zh-CN")}function Vt(t){const e=new Date(Number(t||0)*1e3),a=n=>String(n).padStart(2,"0");return`${e.getFullYear()}-${a(e.getMonth()+1)}-${a(e.getDate())} ${a(e.getHours())}:${a(e.getMinutes())}:${a(e.getSeconds())}`}async function xt(t,e){if(!t)return C.warning(`${e}暂无内容`);try{await navigator.clipboard.writeText(t)}catch{const a=document.createElement("textarea");a.value=t,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select();const n=document.execCommand("copy");if(a.remove(),!n)throw new Error("copy command failed")}C.success(`${e}已复制`)}async function Ca(){await H()}return Sa(async()=>{await H()}),(t,e)=>{var Be;const a=Aa,n=Ma,u=Ba,d=Oa,f=Ra,p=Fa,g=qa,E=Ka,W=Ja,D=Ga,L=Ya,k=Wa,b=Qa,V=Xa,$=al,R=ll,ae=sl,fe=nl,pe=ol,Te=il,Ue=dl,tt=ul,be=Va;return At((m(),y("div",$l,[s("header",Cl,[s("div",Sl,[s("span",Vl,[i(a,null,{default:o(()=>[i(N(xa))]),_:1})]),e[56]||(e[56]=s("div",null,[s("h1",null,"企业微信获客助手"),s("p",null,"一个方案保留一条企业微信官方直链,由企业微信在多个可用医助之间原生路由")],-1))]),s("div",xl,[s("span",Al,[i(a,null,{default:o(()=>[i(N(Pa))]),_:1}),v(r(c.meta.scope_label||"当前数据范围"),1)]),c.meta.generated_at?(m(),y("span",Pl,"更新于 "+r(c.meta.generated_at),1)):x("",!0),i(n,{icon:N(ze),loading:Ae.value||xe.value,onClick:ma},{default:o(()=>[...e[57]||(e[57]=[v("刷新",-1)])]),_:1},8,["icon","loading"])])]),s("section",Ml,[s("article",Il,[s("span",Dl,[i(a,null,{default:o(()=>[i(N(Ia))]),_:1})]),s("div",null,[e[58]||(e[58]=s("small",null,"内部应用",-1)),s("strong",null,r(c.summary.configured_apps),1),e[59]||(e[59]=s("p",null,"直接读取服务器环境配置",-1))])]),s("article",El,[s("span",Tl,[i(a,null,{default:o(()=>[i(N(Da))]),_:1})]),s("div",null,[e[60]||(e[60]=s("small",null,"分流方案",-1)),s("strong",null,r(c.summary.pool_count),1),e[61]||(e[61]=s("p",null,"每个方案对应一个官方链接",-1))])]),s("article",Ul,[s("span",Bl,[i(a,null,{default:o(()=>[i(N(Ea))]),_:1})]),s("div",null,[e[62]||(e[62]=s("small",null,"官方链接",-1)),s("strong",null,r(c.summary.online_links),1),e[63]||(e[63]=s("p",null,"链接不变,成员范围自动更新",-1))])]),s("article",zl,[s("span",Ll,[i(a,null,{default:o(()=>[i(N(Ta))]),_:1})]),s("div",null,[e[64]||(e[64]=s("small",null,"今日实际获客",-1)),s("strong",null,r(c.summary.today_clicks),1),e[65]||(e[65]=s("p",null,"按企业微信回调确认承接成员",-1))])])]),s("section",jl,[s("nav",Ol,[s("button",{class:B({active:K.value==="links"}),onClick:e[0]||(e[0]=l=>K.value="links")},[i(a,null,{default:o(()=>[i(N(Pt))]),_:1}),e[66]||(e[66]=v("获客助手链接 ",-1))],2),s("button",{class:B({active:K.value==="customer-stats"}),onClick:e[1]||(e[1]=l=>K.value="customer-stats")},[i(a,null,{default:o(()=>[i(N(Mt))]),_:1}),e[67]||(e[67]=v("获客客户统计 ",-1))],2),s("button",{class:B({active:K.value==="configuration"}),onClick:e[2]||(e[2]=l=>K.value="configuration")},[i(a,null,{default:o(()=>[i(N(Ua))]),_:1}),e[68]||(e[68]=v("应用配置 ",-1))],2),s("button",{class:B({active:K.value==="install"}),onClick:e[3]||(e[3]=l=>K.value="install")},[i(a,null,{default:o(()=>[i(N(lt))]),_:1}),e[69]||(e[69]=v("JS 安装 ",-1))],2)]),K.value==="links"?(m(),y("div",Fl,[s("div",Rl,[e[74]||(e[74]=s("div",null,[s("h2",null,"获客助手分流方案"),s("p",null,"选择几名医助就生成几条成员规则;官方链接只在方案顶部复制,成员行不重复展示链接。")],-1)),s("div",ql,[j.value.length?(m(),y("span",Kl,"已选 "+r(j.value.length)+" 个方案",1)):x("",!0),i(n,{icon:N(ze),loading:Se.value,disabled:!j.value.length||P.value||Q.value>0||ge.value>0,onClick:ea},{default:o(()=>[...e[70]||(e[70]=[v("批量同步成员范围",-1)])]),_:1},8,["icon","loading","disabled"]),i(n,{icon:N(It),disabled:!dt.value||P.value,onClick:e[4]||(e[4]=l=>Zt())},{default:o(()=>[...e[71]||(e[71]=[v("批量修改方案",-1)])]),_:1},8,["icon","disabled"]),i(n,{icon:N(st),disabled:!dt.value||P.value,onClick:e[5]||(e[5]=l=>gt())},{default:o(()=>[...e[72]||(e[72]=[v("批量设置访问操作",-1)])]),_:1},8,["icon","disabled"]),i(n,{type:"primary",icon:N(Dt),disabled:P.value,onClick:e[6]||(e[6]=l=>Qe())},{default:o(()=>[...e[73]||(e[73]=[v("新建分流方案",-1)])]),_:1},8,["icon","disabled"])])]),Y.value.length?(m(),y("section",Jl,[e[76]||(e[76]=s("strong",null,"本次保存与企微同步结果",-1)),Se.value?(m(),y("p",Hl,"正在同步企微 "+r(X.completed)+" / "+r(X.total)+" 个方案,请等待完成。",1)):x("",!0),s("ul",null,[(m(!0),y(se,null,ne(Y.value,l=>(m(),y("li",{key:l.id},[s("span",null,r(l.name||`方案 ${l.id}`)+":"+r(Xt(l)),1),l.success&&l.sync_status!=="synced"&&Ze(l.id)?(m(),M(n,{key:0,type:"primary",link:"",loading:Ce.value===l.id,disabled:P.value,onClick:le=>bt(l.id)},{default:o(()=>[...e[75]||(e[75]=[v("重试同步",-1)])]),_:1},8,["loading","disabled","onClick"])):x("",!0)]))),128))])])):x("",!0),c.pools.length?(m(),y("div",Wl,[s("aside",Yl,[s("div",Gl,[i(u,{"model-value":Ot.value,indeterminate:Ft.value,disabled:!ue.value.length||P.value,"aria-label":"全选可操作的分流方案",onChange:Gt},{default:o(()=>[...e[77]||(e[77]=[v("全选",-1)])]),_:1},8,["model-value","indeterminate","disabled"]),s("span",null,"可选 "+r(ue.value.length)+" 个",1)]),(m(!0),y(se,null,ne(c.pools,l=>(m(),y("div",{key:l.id,class:B(["pool-select-row",{active:Number(l.id)===re.value}])},[i(u,{"model-value":j.value.includes(Number(l.id)),disabled:!l.can_manage_access&&!l.can_operate||P.value,"aria-label":`选择方案 ${l.name}`,onChange:le=>Yt(l,le),onClick:e[7]||(e[7]=za(()=>{},["stop"]))},null,8,["model-value","disabled","aria-label","onChange"]),s("button",{type:"button",class:"pool-item",onClick:le=>re.value=Number(l.id)},[s("span",{class:B(["pool-status",Number(l.status)===1?"online":"offline"])},null,2),s("span",null,[s("strong",null,r(l.name),1),s("small",null,r(ba(l))+" · "+r(na(l)),1)]),i(a,null,{default:o(()=>[i(N(La))]),_:1})],8,Zl)],2))),128))]),s("div",Ql,[w.value?(m(),y("div",Xl,[s("div",null,[s("div",es,[s("h3",null,r(w.value.name),1),s("span",{class:B(["status-tag",Number(w.value.status)===1?"is-online":"is-offline"])},r(Number(w.value.status)===1?"运行中":"已停用"),3),s("span",ts,r(w.value.dept_name||"未分部门")+" · "+r(w.value.owner_name||"系统"),1)]),s("p",null,"公开键:"+r(w.value.public_key),1)]),s("div",as,[i(n,{icon:N(Et),loading:Pe.value,onClick:yt},{default:o(()=>[...e[78]||(e[78]=[v("验证 API",-1)])]),_:1},8,["icon","loading"]),w.value.can_operate?(m(),M(n,{key:0,icon:N(ze),loading:Ce.value===Number(w.value.id),disabled:!w.value.official_link||P.value||Q.value>0,onClick:e[8]||(e[8]=l=>bt(Number(w.value.id)))},{default:o(()=>[...e[79]||(e[79]=[v("同步成员范围",-1)])]),_:1},8,["icon","loading","disabled"])):x("",!0),i(n,{icon:N(lt),disabled:!w.value.main_url,onClick:e[9]||(e[9]=l=>xt(w.value.main_url,"官方获客链接"))},{default:o(()=>[...e[80]||(e[80]=[v("复制链接",-1)])]),_:1},8,["icon","disabled"]),i(n,{icon:N(lt),onClick:e[10]||(e[10]=l=>xt(w.value.install_code,"JS 安装代码"))},{default:o(()=>[...e[81]||(e[81]=[v("复制 JS",-1)])]),_:1},8,["icon"]),w.value.can_manage_access?(m(),M(n,{key:1,icon:N(st),disabled:P.value,onClick:e[11]||(e[11]=l=>gt([Number(w.value.id)]))},{default:o(()=>[...e[82]||(e[82]=[v("设置访问操作",-1)])]),_:1},8,["icon","disabled"])):x("",!0),w.value.can_operate?(m(),M(n,{key:2,icon:N(It),disabled:P.value,onClick:e[12]||(e[12]=l=>Qe(w.value))},{default:o(()=>[...e[83]||(e[83]=[v("编辑方案",-1)])]),_:1},8,["icon","disabled"])):x("",!0),w.value.can_delete?(m(),M(n,{key:3,type:"danger",plain:"",icon:N(ja),loading:ge.value===Number(w.value.id),disabled:ge.value>0||P.value,onClick:e[13]||(e[13]=l=>oa(w.value))},{default:o(()=>[...e[84]||(e[84]=[v("删除",-1)])]),_:1},8,["icon","loading","disabled"])):x("",!0)])])):x("",!0),w.value.migration_state==="needs_resolution"?(m(),M(d,{key:1,class:"legacy-sync-alert",type:"warning","show-icon":"",closable:!1,title:"检测到旧版方案存在多个官方链接",description:"当前显示最新链接;保存方案后,其余旧链接只会在本地下线,企业微信端与历史客户归因仍会保留。"})):x("",!0),i(d,{class:"legacy-sync-alert",type:"info","show-icon":"",closable:!1,title:"企业微信原生多人路由",description:"上线开关和可用性表示本地规则;企微范围显示上次远端确认结果。“待移出”的成员仍可能获客,只有同步完成才会从官方链接移除。"}),i(d,{class:"legacy-sync-alert member-sync-state",type:qe.value.type,"show-icon":"",closable:!1,title:qe.value.title,description:qe.value.description},null,8,["type","title","description"]),s("div",ls,[i(W,{data:Re.value,class:"link-table",height:"100%",stripe:""},{empty:o(()=>[i(E,{"image-size":72,description:"编辑方案并选择获客医助"})]),default:o(()=>[i(p,{label:"推广成员","min-width":"210",fixed:"left"},{default:o(({row:l})=>[s("div",ss,[s("strong",null,[v(r(l.name||l.userid)+" ",1),l.is_backup?(m(),M(f,{key:0,size:"small",type:"warning",effect:"plain"},{default:o(()=>[...e[85]||(e[85]=[v("备用",-1)])]),_:1})):x("",!0)]),s("small",null,r(va(l)),1)])]),_:1}),i(p,{label:"企微范围(上次确认)",width:"165",align:"center"},{default:o(({row:l})=>[s("span",{class:B(["status-tag",kt(l).className])},r(kt(l).label),3),Number(l.sync_status)===3?(m(),y("div",ns,"同步失败,请查看上方原因")):x("",!0)]),_:1}),i(p,{label:"今日 / 上限",width:"125",align:"center"},{default:o(({row:l})=>[v(r(ht(l))+" / "+r(Number(l.daily_limit)?l.daily_limit:"不限"),1)]),_:1}),i(p,{label:"累计获客",prop:"total_count",width:"105",align:"center"}),i(p,{label:"当前可用性","min-width":"130"},{default:o(({row:l})=>[s("span",{class:B(["availability",De(l).className])},r(De(l).label),3)]),_:1}),i(p,{label:"上线",width:"90",align:"center"},{default:o(({row:l})=>[i(g,{"model-value":Number(l.enabled)===1,disabled:!w.value.can_operate||Q.value>0||P.value,loading:Q.value===Number(l.id),onChange:le=>ra(l,le)},null,8,["model-value","disabled","loading","onChange"])]),_:1}),i(p,{label:"操作","min-width":"100",fixed:"right"},{default:o(({row:l})=>[w.value.can_operate?(m(),M(n,{key:0,type:"primary",link:"",disabled:P.value,onClick:le=>da(l)},{default:o(()=>[...e[86]||(e[86]=[v("编辑规则",-1)])]),_:1},8,["disabled","onClick"])):x("",!0)]),_:1})]),_:1},8,["data"])])])])):(m(),M(E,{key:2,description:"创建方案并选择多个医助,保存后自动生成一个企业微信官方获客链接"},{default:o(()=>[i(n,{type:"primary",icon:N(Dt),onClick:e[14]||(e[14]=l=>Qe())},{default:o(()=>[...e[87]||(e[87]=[v("创建第一个方案",-1)])]),_:1},8,["icon"])]),_:1}))])):K.value==="customer-stats"?(m(),y("div",is,[s("div",os,[e[89]||(e[89]=s("div",null,[s("h2",null,"获客客户消息统计"),s("p",null,"统计当前权限范围内由获客助手链接添加的客户,以及客户向承接成员发送消息的情况。")],-1)),s("div",ds,[U.meta.last_synced_at?(m(),y("span",us,"最近同步 "+r(U.meta.last_synced_at),1)):x("",!0),i(n,{type:"primary",icon:N(ze),loading:Fe.value,onClick:pa},{default:o(()=>[...e[88]||(e[88]=[v("同步客户",-1)])]),_:1},8,["icon","loading"])])]),s("section",rs,[s("article",ms,[s("span",cs,[i(a,null,{default:o(()=>[i(N(st))]),_:1})]),s("div",null,[e[90]||(e[90]=s("small",null,"获客客户数",-1)),s("strong",null,r(te(U.summary.customer_count)),1),e[91]||(e[91]=s("p",null,"当前筛选范围内的去重客户",-1))])]),s("article",_s,[s("span",fs,[i(a,null,{default:o(()=>[i(N(Ha))]),_:1})]),s("div",null,[e[92]||(e[92]=s("small",null,"已发消息客户数",-1)),s("strong",null,r(te(U.summary.messaged_customer_count)),1),e[93]||(e[93]=s("p",null,"至少发送过一条消息",-1))])]),s("article",ps,[s("span",bs,[i(a,null,{default:o(()=>[i(N(Mt))]),_:1})]),s("div",null,[e[94]||(e[94]=s("small",null,"消息客户率",-1)),s("strong",null,r($a(U.summary.message_customer_rate)),1),e[95]||(e[95]=s("p",null,"已发消息客户占获客客户比例",-1))])]),s("article",vs,[s("span",gs,[i(a,null,{default:o(()=>[i(N(Pt))]),_:1})]),s("div",null,[e[96]||(e[96]=s("small",null,"累计接收消息数",-1)),s("strong",null,r(te(U.summary.received_message_count)),1),s("p",null,"已精确统计 "+r(te(U.summary.message_count_known_count))+" 位客户",1)])])]),c.config.callback_ready?x("",!0):(m(),M(d,{key:0,class:"chatkey-alert",type:"warning","show-icon":"",closable:!1,title:"消息次数回调尚未配置完成",description:"复用企业微信自建应用现有的“API 接收消息”地址即可,无需新增第二个回调;请确保该地址为 /api/qywx/external-contact/notify,且服务器 Token、AESKey 与企微后台一致。未完成前无法自动累计成员获客数量,也无法在成员达到上限后自动更新官方范围。"})),i(d,{class:"chatkey-alert",type:"info","show-icon":"",closable:!1,title:"获客助手通过事件与 ChatKey 返回收消息次数",description:"本功能复用现有回调并按事件类型处理 customer_acquisition,不会占用第二个回调。客户首次发消息会推送 customer_start_chat;累计第 3、5、10 次时推送 message_from_customer,服务端需在 30 分钟内用 ChatKey 查询成员、客户、获客链接和累计收消息次数。"}),s("div",ys,[i(b,{model:F,inline:"","label-position":"top"},{default:o(()=>[i(k,{label:"来源链接"},{default:o(()=>[i(L,{modelValue:F.link_id,"onUpdate:modelValue":e[15]||(e[15]=l=>F.link_id=l),clearable:"",filterable:"",placeholder:"全部链接"},{default:o(()=>[(m(!0),y(se,null,ne(Ht.value,l=>(m(),M(D,{key:String(l.id),label:l.name,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),i(k,{label:"承接成员"},{default:o(()=>[i(L,{modelValue:F.userid,"onUpdate:modelValue":e[16]||(e[16]=l=>F.userid=l),clearable:"",filterable:"",placeholder:"全部成员"},{default:o(()=>[(m(!0),y(se,null,ne(Wt.value,l=>(m(),M(D,{key:l.userid||String(l.id),label:ga(l),value:l.userid||String(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),i(k,{label:"聊天状态"},{default:o(()=>[i(L,{modelValue:F.chat_status,"onUpdate:modelValue":e[17]||(e[17]=l=>F.chat_status=l),clearable:"",placeholder:"全部状态"},{default:o(()=>[i(D,{label:"已发过消息",value:"messaged"}),i(D,{label:"未发过消息",value:"silent"}),i(D,{label:"状态未知",value:"unknown"})]),_:1},8,["modelValue"])]),_:1}),i(k,{class:"filter-actions"},{default:o(()=>[i(n,{type:"primary",icon:N(Za),loading:xe.value,onClick:ca},{default:o(()=>[...e[97]||(e[97]=[v("查询",-1)])]),_:1},8,["icon","loading"]),i(n,{onClick:_a},{default:o(()=>[...e[98]||(e[98]=[v("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),At((m(),M(W,{data:U.rows,class:"customer-table",stripe:""},{empty:o(()=>[i(E,{"image-size":72,description:"当前筛选范围暂无获客客户数据"})]),default:o(()=>[i(p,{label:"客户标识(已脱敏)","min-width":"190",fixed:"left"},{default:o(({row:l})=>[s("span",{class:"customer-identifier",title:$t(l)},r($t(l)),9,ks)]),_:1}),i(p,{label:"来源链接","min-width":"190"},{default:o(({row:l})=>[s("div",hs,[s("strong",null,r(ka(l)),1),s("small",null,r(ha(l)),1)])]),_:1}),i(p,{label:"承接成员 / 部门","min-width":"175"},{default:o(({row:l})=>[s("div",ws,[s("strong",null,r(l.member_name||l.owner_name||"未匹配成员"),1),s("small",null,r(l.department_name||l.dept_name||"未分部门")+" · "+r(l.userid||"未绑定企微账号"),1)])]),_:1}),i(p,{label:"客户开口",width:"110",align:"center"},{default:o(({row:l})=>[s("span",{class:B(["message-state",`is-${et(l)}`])},r(wa(l)),3)]),_:1}),i(p,{label:"累计消息",width:"100",align:"right"},{default:o(({row:l})=>[s("strong",{class:B(["message-count",{muted:!Ct(l)}])},r(Na(l)),3)]),_:1}),i(p,{label:"最近同步时间","min-width":"165"},{default:o(({row:l})=>[v(r(Ee(l.last_synced_at||l.last_sync_time||l.synced_at||l.sync_time)),1)]),_:1}),i(p,{label:"最近收消息事件","min-width":"165"},{default:o(({row:l})=>[s("span",{class:B({muted:!St(l)})},r(Ee(St(l))),3)]),_:1})]),_:1},8,["data"])),[[be,xe.value]]),s("div",Ns,[s("span",null,"共 "+r(te(J.total))+" 位客户",1),i(V,{"current-page":J.page_no,"onUpdate:currentPage":e[18]||(e[18]=l=>J.page_no=l),"page-size":J.page_size,"onUpdate:pageSize":e[19]||(e[19]=l=>J.page_size=l),background:"",layout:"sizes, prev, pager, next","page-sizes":[10,20,50,100],total:J.total,onCurrentChange:_e,onSizeChange:fa},null,8,["current-page","page-size","total"])])])):K.value==="configuration"?(m(),y("div",$s,[e[107]||(e[107]=s("div",{class:"section-heading"},[s("div",null,[s("h2",null,"企业微信内部应用配置"),s("p",null,"直接读取服务器现有的 work_wechat 配置,密钥不会返回浏览器,也不需要第三方应用授权。")])],-1)),s("div",{class:B(["configuration-panel",c.config.ready?"is-ready":"is-pending"])},[s("div",Cs,[s("span",null,[i(a,null,{default:o(()=>[(m(),M(el(c.config.ready?N(Et):N(tl))))]),_:1})]),s("div",null,[s("strong",null,r(c.config.ready?"内部应用已就绪":"内部应用配置不完整"),1),c.config.ready?(m(),y("p",Ss,"已识别 CorpID 与应用 Secret;点击“验证 API”可同时检查可信 IP、获客助手开通状态和应用权限。")):(m(),y("p",Vs,"请补齐服务器 .env 的 [work_wechat] 配置;页面不会展示 Secret 内容。"))])]),(Be=c.config.missing)!=null&&Be.length?(m(),y("div",xs,[e[99]||(e[99]=v(" 缺少:",-1)),(m(!0),y(se,null,ne(c.config.missing,l=>(m(),y("code",{key:l},r(l),1))),128))])):x("",!0),s("dl",As,[s("div",null,[e[100]||(e[100]=s("dt",null,"企业 CorpID",-1)),s("dd",null,r(c.config.corp_id_masked||"未配置"),1),s("span",null,r(c.config.corp_id_masked?"已识别":"缺失"),1)]),s("div",null,[e[101]||(e[101]=s("dt",null,"应用 AgentID",-1)),s("dd",null,r(c.config.agent_id||"未配置"),1),s("span",null,r(c.config.agent_id?"已识别":"缺失"),1)]),s("div",null,[e[102]||(e[102]=s("dt",null,"应用 Secret",-1)),e[103]||(e[103]=s("dd",null,"仅保存在服务器环境变量中",-1)),s("span",null,r(c.config.secret_configured?"已配置":"缺失"),1)]),s("div",null,[e[104]||(e[104]=s("dt",null,"消息回调地址",-1)),s("dd",null,r(c.config.callback_url||"未生成"),1),s("span",null,r(c.config.callback_ready?"已配置密钥":"待配置 Token/AESKey"),1)])]),s("div",Ps,[i(n,{type:"primary",loading:Pe.value,onClick:yt},{default:o(()=>[...e[105]||(e[105]=[v("验证获客助手 API",-1)])]),_:1},8,["loading"]),c.config.official_doc?(m(),M($,{key:0,href:c.config.official_doc,target:"_blank",type:"primary"},{default:o(()=>[...e[106]||(e[106]=[v("查看企业微信官方文档",-1)])]),_:1},8,["href"])):x("",!0)])],2)])):(m(),y("div",Ms,[s("div",Is,[e[108]||(e[108]=s("div",null,[s("h2",null,"安装 JS 与浮窗客服"),s("p",null,"为每个分流方案配置独立浮窗;基础脚本仍只负责展示入口、捕获点击并请求服务端分流。")],-1)),i(L,{modelValue:ve.value,"onUpdate:modelValue":e[20]||(e[20]=l=>ve.value=l),placeholder:"选择分流方案",class:"install-pool-select"},{default:o(()=>[(m(!0),y(se,null,ne(c.pools,l=>(m(),M(D,{key:l.id,label:l.name,value:Number(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),Ke.value?(m(),M(wl,{key:Number(Ke.value.id),pool:Ke.value,onSaved:Ca},null,8,["pool"])):(m(),M(E,{key:1,description:"请先创建分流方案,系统会自动生成 JS 安装代码"}))]))]),i(fe,{modelValue:he.value,"onUpdate:modelValue":e[29]||(e[29]=l=>he.value=l),title:S.id?"编辑分流方案":"新建分流方案",width:"1000px",class:"promotion-pool-dialog","destroy-on-close":"","close-on-click-modal":!1,"close-on-press-escape":!q.value&&!de.value,"show-close":!q.value&&!de.value},{footer:o(()=>[de.value?(m(),y("span",Bs,"正在处理标签或素材,请稍候")):x("",!0),i(n,{disabled:q.value||de.value,onClick:e[28]||(e[28]=l=>he.value=!1)},{default:o(()=>[...e[110]||(e[110]=[v("取消",-1)])]),_:1},8,["disabled"]),i(n,{type:"primary",loading:q.value,disabled:de.value,onClick:ia},{default:o(()=>[v(r(S.id?"保存方案":"保存并生成链接"),1)]),_:1},8,["loading","disabled"])]),default:o(()=>[s("div",{ref_key:"poolFormScroll",ref:Oe,class:"pool-form-scroll"},[me.value?(m(),M(d,{key:0,class:"pool-form-error",title:me.value,type:"error","show-icon":"",closable:!1,role:"alert"},null,8,["title"])):x("",!0),i(b,{"label-position":"top",disabled:q.value},{default:o(()=>[i(k,{label:"方案名称",required:""},{default:o(()=>[i(R,{modelValue:S.name,"onUpdate:modelValue":e[21]||(e[21]=l=>S.name=l),disabled:q.value,maxlength:"60","show-word-limit":"",placeholder:"例如:官网咨询分流"},null,8,["modelValue","disabled"])]),_:1}),i(k,{label:"主接待成员(获客医助)",required:""},{default:o(()=>[i(ae,{modelValue:S.member_admin_ids,"onUpdate:modelValue":e[22]||(e[22]=l=>S.member_admin_ids=l),data:ft.value,props:_t,"default-expanded-keys":Jt.value,"filter-node-method":Nt,disabled:q.value,"node-key":"value",multiple:"",filterable:"",clearable:"","show-checkbox":"","collapse-tags":"","collapse-tags-tooltip":"","max-collapse-tags":2,"multiple-limit":500,"render-after-expand":!1,placeholder:"按部门展开,或搜索姓名 / 部门 / 企微 userid",style:{width:"100%"}},{default:o(({data:l})=>[s("span",{class:B(["member-tree-option",`is-${l.kind}`])},[s("span",Ds,r(l.label),1),l.kind==="department"?(m(),y("span",Es,r(l.member_count)+" 人",1)):(m(),y("span",Ts,r(l.detail),1))],2)]),_:1},8,["modelValue","data","default-expanded-keys","disabled"]),s("span",Us,"已选 "+r(S.member_admin_ids.length)+" 名;保存后会为每名医助生成一条成员规则,官方链接地址始终只有一个。",1)]),_:1}),i(k,{label:"添加客户时跳过验证"},{default:o(()=>[i(g,{modelValue:S.skip_verify,"onUpdate:modelValue":e[23]||(e[23]=l=>S.skip_verify=l),disabled:q.value,"active-value":1,"inactive-value":0,"active-text":"跳过验证","inactive-text":"需要验证"},null,8,["modelValue","disabled"])]),_:1}),i(k,{label:"兜底获客助手链接"},{default:o(()=>[i(R,{modelValue:S.fallback_url,"onUpdate:modelValue":e[24]||(e[24]=l=>S.fallback_url=l),disabled:q.value,placeholder:"可选;仅供旧版兼容跳转使用"},null,8,["modelValue","disabled"]),e[109]||(e[109]=s("span",{class:"form-tip"},"新生成的官方直链不经过本站跳转;此项仅兼容旧安装代码。",-1))]),_:1}),i(k,{label:"运行状态"},{default:o(()=>[i(g,{modelValue:S.status,"onUpdate:modelValue":e[25]||(e[25]=l=>S.status=l),disabled:q.value,"active-value":1,"inactive-value":0,"active-text":"运行","inactive-text":"停用"},null,8,["modelValue","disabled"])]),_:1}),c.automation_installed?(m(),M(Tt,{key:0,modelValue:S.automation_config,"onUpdate:modelValue":e[26]||(e[26]=l=>S.automation_config=l),"main-member-ids":S.member_admin_ids,members:c.member_options,disabled:q.value,onBusy:e[27]||(e[27]=l=>de.value=l)},null,8,["modelValue","main-member-ids","members","disabled"])):(m(),M(d,{key:1,type:"warning","show-icon":"",closable:!1,title:"自动化配置尚未安装",description:"请先在服务端执行 add_wecom_promotion_automation.sql 并部署消费进程及定时调度,即可设置接待时段、标签、备注和欢迎语。当前仍可保存原有分流方案。"}))]),_:1},8,["disabled"])],512)]),_:1},8,["modelValue","title","close-on-press-escape","show-close"]),i(fe,{modelValue:$e.value,"onUpdate:modelValue":e[45]||(e[45]=l=>$e.value=l),title:"批量修改分流方案",width:"1000px",class:"promotion-pool-dialog","destroy-on-close":"","close-on-click-modal":!1,"close-on-press-escape":!T.value&&!oe.value,"show-close":!T.value&&!oe.value},{footer:o(()=>[X.total?(m(),y("span",Gs,"本地配置已保存,正在同步企微 "+r(X.completed)+" / "+r(X.total)+" 个方案",1)):x("",!0),oe.value?(m(),y("span",Zs,"正在处理标签或素材,请稍候")):x("",!0),i(n,{disabled:T.value||oe.value,onClick:e[44]||(e[44]=l=>$e.value=!1)},{default:o(()=>[...e[127]||(e[127]=[v("取消",-1)])]),_:1},8,["disabled"]),i(n,{type:"primary",loading:T.value,disabled:oe.value,onClick:ta},{default:o(()=>[...e[128]||(e[128]=[v("批量保存",-1)])]),_:1},8,["loading","disabled"])]),default:o(()=>[s("div",{ref_key:"batchConfigScroll",ref:it,class:"pool-form-scroll batch-config-scroll"},[i(d,{type:"warning","show-icon":"",closable:!1,title:`将统一修改 ${h.pool_ids.length} 个分流方案`,description:"仅勾选的项目会覆盖到所选方案;未勾选项目保留各方案原值。表单初始值取第一个所选方案。"},null,8,["title"]),Ve.value?(m(),M(d,{key:0,class:"pool-form-error batch-config-error",title:Ve.value,type:"error","show-icon":"",closable:!1,role:"alert"},null,8,["title"])):x("",!0),ce.value.length?(m(),y("div",zs,[e[111]||(e[111]=s("strong",null,"已选方案",-1)),(m(!0),y(se,null,ne(ce.value.slice(0,8),l=>(m(),y("span",{key:l.id},r(l.name),1))),128)),ce.value.length>8?(m(),y("small",Ls,"另有 "+r(ce.value.length-8)+" 个",1)):x("",!0)])):x("",!0),i(b,{class:"batch-config-form","label-position":"top",disabled:T.value},{default:o(()=>[s("section",js,[e[116]||(e[116]=s("h3",null,"基础设置",-1)),s("div",Os,[s("div",{class:B(["batch-field",{"is-disabled":!_.skip_verify}])},[i(u,{modelValue:_.skip_verify,"onUpdate:modelValue":e[30]||(e[30]=l=>_.skip_verify=l),disabled:T.value},{default:o(()=>[...e[112]||(e[112]=[v("批量修改验证方式",-1)])]),_:1},8,["modelValue","disabled"]),i(k,{label:"添加客户时跳过验证"},{default:o(()=>[i(g,{modelValue:h.skip_verify,"onUpdate:modelValue":e[31]||(e[31]=l=>h.skip_verify=l),disabled:!_.skip_verify||T.value,"active-value":1,"inactive-value":0,"active-text":"跳过验证","inactive-text":"需要验证"},null,8,["modelValue","disabled"])]),_:1})],2),s("div",{class:B(["batch-field",{"is-disabled":!_.status}])},[i(u,{modelValue:_.status,"onUpdate:modelValue":e[32]||(e[32]=l=>_.status=l),disabled:T.value},{default:o(()=>[...e[113]||(e[113]=[v("批量修改运行状态",-1)])]),_:1},8,["modelValue","disabled"]),i(k,{label:"运行状态"},{default:o(()=>[i(g,{modelValue:h.status,"onUpdate:modelValue":e[33]||(e[33]=l=>h.status=l),disabled:!_.status||T.value,"active-value":1,"inactive-value":0,"active-text":"运行","inactive-text":"停用"},null,8,["modelValue","disabled"])]),_:1})],2)]),s("div",{class:B(["batch-field",{"is-disabled":!_.fallback_url}])},[i(u,{modelValue:_.fallback_url,"onUpdate:modelValue":e[34]||(e[34]=l=>_.fallback_url=l),disabled:T.value},{default:o(()=>[...e[114]||(e[114]=[v("批量修改兜底获客助手链接",-1)])]),_:1},8,["modelValue","disabled"]),i(k,{label:"兜底获客助手链接"},{default:o(()=>[i(R,{modelValue:h.fallback_url,"onUpdate:modelValue":e[35]||(e[35]=l=>h.fallback_url=l),disabled:!_.fallback_url||T.value,placeholder:"留空表示清除;仅供旧版兼容跳转使用"},null,8,["modelValue","disabled"]),e[115]||(e[115]=s("span",{class:"form-tip"},"新生成的官方直链不经过本站跳转;此项仅兼容旧安装代码。",-1))]),_:1})],2)]),s("section",Fs,[e[120]||(e[120]=s("h3",null,"员工上下线",-1)),e[121]||(e[121]=s("p",{class:"batch-section-tip"},"所选员工会在其已加入的所选方案中统一上线或下线;不属于某个方案的员工不会被加入该方案。为保证方案级原子提交,员工上下线需单独批量保存。",-1)),s("div",{class:B(["batch-field batch-member-status-field",{"is-disabled":!_.member_status}])},[i(u,{modelValue:_.member_status,"onUpdate:modelValue":e[36]||(e[36]=l=>_.member_status=l),disabled:T.value},{default:o(()=>[...e[117]||(e[117]=[v("批量修改员工上线状态",-1)])]),_:1},8,["modelValue","disabled"]),s("div",Rs,[i(k,{label:"目标状态"},{default:o(()=>[i(Te,{modelValue:h.member_status,"onUpdate:modelValue":e[37]||(e[37]=l=>h.member_status=l),disabled:!_.member_status||T.value},{default:o(()=>[i(pe,{value:1},{default:o(()=>[...e[118]||(e[118]=[v("批量上线",-1)])]),_:1}),i(pe,{value:0},{default:o(()=>[...e[119]||(e[119]=[v("批量下线",-1)])]),_:1})]),_:1},8,["modelValue","disabled"])]),_:1}),i(k,{label:"选择员工"},{default:o(()=>[i(ae,{modelValue:h.member_admin_ids,"onUpdate:modelValue":e[38]||(e[38]=l=>h.member_admin_ids=l),data:rt.value,props:_t,"default-expanded-keys":qt.value,"filter-node-method":Nt,"node-key":"value",multiple:"",filterable:"",clearable:"","show-checkbox":"","check-on-click-node":"","collapse-tags":"","collapse-tags-tooltip":"","max-collapse-tags":3,"multiple-limit":100,"render-after-expand":!1,disabled:!_.member_status||T.value,placeholder:"按部门勾选,或搜索姓名 / 部门 / 企微 userid",style:{width:"100%"}},{default:o(({data:l})=>[s("span",{class:B(["member-tree-option",`is-${l.kind}`])},[s("span",qs,r(l.label),1),l.kind==="department"?(m(),y("span",Ks,r(l.member_count)+" 人",1)):(m(),y("span",Js,r(l.detail),1))],2)]),_:1},8,["modelValue","data","default-expanded-keys","disabled"]),s("span",Hs,"勾选部门可全选其下员工;已选 "+r(h.member_admin_ids.length)+" 名。",1)]),_:1})]),_.member_status&&h.member_status===0&&ye.value.length?(m(),M(d,{key:0,type:"warning","show-icon":"",closable:!1,title:`${ye.value[0].name} 至少需要保留一名当前可用的上线员工`,description:ye.value.length>1?`另有 ${ye.value.length-1} 个方案也会没有可用上线员工,请调整选择。`:"请减少下线员工,或先为该方案上线一名当前可用的员工。"},null,8,["title","description"])):x("",!0)],2)]),c.automation_installed?(m(),y("section",Ws,[e[125]||(e[125]=s("h3",null,"自动化设置",-1)),e[126]||(e[126]=s("p",{class:"batch-section-tip"},"先选择要覆盖的分组。未选择的接待、客户或欢迎语设置不会随本次批量操作改变。",-1)),s("div",Ys,[i(u,{modelValue:_.reception,"onUpdate:modelValue":e[39]||(e[39]=l=>_.reception=l),disabled:T.value,border:""},{default:o(()=>[...e[122]||(e[122]=[v("批量修改接待设置",-1)])]),_:1},8,["modelValue","disabled"]),i(u,{modelValue:_.customer,"onUpdate:modelValue":e[40]||(e[40]=l=>_.customer=l),disabled:T.value,border:""},{default:o(()=>[...e[123]||(e[123]=[v("批量修改客户设置",-1)])]),_:1},8,["modelValue","disabled"]),i(u,{modelValue:_.welcome,"onUpdate:modelValue":e[41]||(e[41]=l=>_.welcome=l),disabled:T.value,border:""},{default:o(()=>[...e[124]||(e[124]=[v("批量修改欢迎语设置",-1)])]),_:1},8,["modelValue","disabled"])]),_.reception&&!He.value.length?(m(),M(d,{key:0,type:"warning","show-icon":"",closable:!1,title:"所选方案没有共同主接待成员",description:"仍可统一改为全天接待;若使用按时段接待,时段成员必须同时属于全部所选方案。"})):x("",!0),i(Tt,{modelValue:h.automation_config,"onUpdate:modelValue":e[42]||(e[42]=l=>h.automation_config=l),"main-member-ids":He.value,"backup-excluded-member-ids":ct.value,members:c.member_options,disabled:T.value,"disabled-sections":Kt.value,onBusy:e[43]||(e[43]=l=>oe.value=l)},null,8,["modelValue","main-member-ids","backup-excluded-member-ids","members","disabled","disabled-sections"])])):(m(),M(d,{key:1,type:"warning","show-icon":"",closable:!1,title:"自动化配置尚未安装",description:"本次仍可批量修改验证方式、兜底链接、运行状态和员工上下线;安装自动化数据表后即可批量修改接待、客户和欢迎语设置。"}))]),_:1},8,["disabled"])],512)]),_:1},8,["modelValue","close-on-press-escape","show-close"]),i(fe,{modelValue:Ne.value,"onUpdate:modelValue":e[49]||(e[49]=l=>Ne.value=l),title:"批量设置他人访问操作",width:"620px","destroy-on-close":"","close-on-click-modal":!1,"close-on-press-escape":!ie.value},{footer:o(()=>[i(n,{disabled:ie.value,onClick:e[48]||(e[48]=l=>Ne.value=!1)},{default:o(()=>[...e[134]||(e[134]=[v("取消",-1)])]),_:1},8,["disabled"]),i(n,{type:"primary",loading:ie.value,onClick:aa},{default:o(()=>[v(r(z.action==="grant"?"批量添加":"批量移除"),1)]),_:1},8,["loading"])]),default:o(()=>[i(d,{type:"info","show-icon":"",closable:!1,title:`将设置 ${z.pool_ids.length} 个分流方案`,description:"被添加的账号可以查看并编辑方案、成员规则和浮窗配置;不能删除方案,也不能继续分配操作权限。"},null,8,["title"]),i(b,{class:"access-form","label-position":"top"},{default:o(()=>[i(k,{label:"设置方式",required:""},{default:o(()=>[i(Te,{modelValue:z.action,"onUpdate:modelValue":e[46]||(e[46]=l=>z.action=l),disabled:ie.value},{default:o(()=>[i(pe,{value:"grant"},{default:o(()=>[...e[129]||(e[129]=[v("添加操作人",-1)])]),_:1}),i(pe,{value:"revoke"},{default:o(()=>[...e[130]||(e[130]=[v("移除操作人",-1)])]),_:1})]),_:1},8,["modelValue","disabled"]),e[131]||(e[131]=s("span",{class:"form-tip"},"批量添加不会覆盖各方案已有操作人;批量移除只撤销本次选中的账号。",-1))]),_:1}),i(k,{label:"选择账号",required:""},{default:o(()=>[i(L,{modelValue:z.operator_admin_ids,"onUpdate:modelValue":e[47]||(e[47]=l=>z.operator_admin_ids=l),multiple:"",filterable:"",clearable:"","collapse-tags":"","collapse-tags-tooltip":"","max-collapse-tags":3,"multiple-limit":100,disabled:ie.value,placeholder:"搜索姓名或部门",style:{width:"100%"}},{default:o(()=>[(m(!0),y(se,null,ne(c.operator_options,l=>(m(),M(D,{key:l.id,label:la(l),value:Number(l.id),disabled:z.action==="grant"&&!l.can_grant},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue","disabled"]),e[132]||(e[132]=s("span",{class:"form-tip"},"添加时可选择当前管理范围内的启用账号;授权后账号会自动获得本页面入口,且只能访问已授权方案。",-1))]),_:1}),Me.value.length?(m(),y("div",Qs,[e[133]||(e[133]=s("strong",null,"当前授权",-1)),(m(!0),y(se,null,ne(Me.value.slice(0,5),l=>(m(),y("div",{key:l.id},[s("span",null,r(l.name),1),s("small",null,r(sa(l)),1)]))),128)),Me.value.length>5?(m(),y("p",Xs,"另有 "+r(Me.value.length-5)+" 个方案",1)):x("",!0)])):x("",!0)]),_:1})]),_:1},8,["modelValue","close-on-press-escape"]),i(fe,{modelValue:we.value,"onUpdate:modelValue":e[55]||(e[55]=l=>we.value=l),title:"编辑医助分流规则",width:"560px","destroy-on-close":"","close-on-click-modal":!1},{footer:o(()=>[i(n,{disabled:G.value,onClick:e[54]||(e[54]=l=>we.value=!1)},{default:o(()=>[...e[136]||(e[136]=[v("取消",-1)])]),_:1},8,["disabled"]),i(n,{type:"primary",loading:G.value,onClick:ua},{default:o(()=>[...e[137]||(e[137]=[v("保存规则",-1)])]),_:1},8,["loading"])]),default:o(()=>[i(b,{"label-position":"top"},{default:o(()=>[i(k,{label:"获客医助"},{default:o(()=>[i(R,{"model-value":O.name?`${O.name} · ${O.userid}`:O.userid,readonly:""},null,8,["model-value"])]),_:1}),i(k,{label:"每日获客上限"},{default:o(()=>[i(Ue,{modelValue:O.daily_limit,"onUpdate:modelValue":e[50]||(e[50]=l=>O.daily_limit=l),min:0,max:1e6,disabled:G.value,style:{width:"100%"}},null,8,["modelValue","disabled"]),e[135]||(e[135]=s("span",{class:"form-tip"},"0 表示不限;数量按实际获客回调累计,达到上限后会从企微官方成员范围移除。",-1))]),_:1}),i(k,{label:"有效时间"},{default:o(()=>[i(tt,{modelValue:O.active_range,"onUpdate:modelValue":e[51]||(e[51]=l=>O.active_range=l),type:"datetimerange","range-separator":"至","start-placeholder":"开始时间","end-placeholder":"结束时间","value-format":"YYYY-MM-DD HH:mm:ss",disabled:G.value,style:{width:"100%"}},null,8,["modelValue","disabled"])]),_:1}),i(k,{label:"上线状态"},{default:o(()=>[i(g,{modelValue:O.status,"onUpdate:modelValue":e[52]||(e[52]=l=>O.status=l),"active-value":1,"inactive-value":0,"active-text":"启用","inactive-text":"禁用",disabled:G.value},null,8,["modelValue","disabled"])]),_:1}),i(k,{label:"备注"},{default:o(()=>[i(R,{modelValue:O.remark,"onUpdate:modelValue":e[53]||(e[53]=l=>O.remark=l),type:"textarea",rows:2,maxlength:"255","show-word-limit":"",disabled:G.value},null,8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"])])),[[be,Ae.value]])}}}),rn=Nl(tn,[["__scopeId","data-v-97dc53d7"]]);export{rn as default}; +import{o as Lt,R as at,E as C,ap as Sa,ac as At,bn as Va,q as m,r as y,s,v as i,D as o,u as N,cZ as xa,w as Aa,cQ as Pa,L as v,T as r,P as x,bz as ze,K as Ma,cP as Ia,d4 as Da,bJ as Ea,d5 as Ta,ae as B,d6 as Pt,d7 as Mt,d8 as Ua,d3 as lt,bv as It,cn as st,cx as Dt,F as se,G as ne,O as M,bg as Ba,aw as za,cF as La,at as Et,d9 as ja,bo as Oa,bl as Fa,bm as Ra,I as qa,bC as Ka,bk as Ja,as as Ha,bb as Wa,bh as Ya,bi as Ga,bB as Za,bd as Qa,bu as Xa,a4 as el,da as tl,bt as al,aA as ll,bL as sl,aB as nl,bf as il,be as ol,J as dl,az as ul,aC as Z,M as A,p as I,e as rl}from"./.pnpm-CyuAWpdG.js";import{C as ml,D as cl,E as _l,F as fl,G as pl,H as bl,I as vl,J as gl,K as yl,L as kl,M as hl}from"./first_visit-B5IgLifl.js";import wl from"./WecomFloatingWidgetBuilder-DSuI6Hvw.js";import Tt from"./PromotionAutomationForm-NjSjwmp0.js";import{d as Le,c as je,i as Ut,a as Bt,s as zt}from"./WelcomeMessageEditor-3rIW6eTh.js";import{_ as Nl}from"./index-Bkarz3gO.js";const $l={class:"promotion-page","element-loading-text":"正在加载推广配置"},Cl={class:"page-header"},Sl={class:"heading-copy"},Vl={class:"heading-icon"},xl={class:"heading-actions"},Al={class:"scope-chip"},Pl={key:0,class:"update-time"},Ml={class:"metric-grid"},Il={class:"metric-card"},Dl={class:"metric-icon is-teal"},El={class:"metric-card"},Tl={class:"metric-icon is-blue"},Ul={class:"metric-card"},Bl={class:"metric-icon is-green"},zl={class:"metric-card"},Ll={class:"metric-icon is-orange"},jl={class:"workspace-card"},Ol={class:"tab-nav","aria-label":"企业微信获客助手功能"},Fl={key:0,class:"tab-content links-tab"},Rl={class:"section-heading"},ql={class:"section-heading-actions"},Kl={key:0,class:"selection-count"},Jl={key:0,class:"member-sync-results","aria-live":"polite"},Hl={key:0,role:"status"},Wl={key:1,class:"pool-layout"},Yl={class:"pool-sidebar"},Gl={class:"pool-select-all"},Zl=["onClick"],Ql={class:"pool-main"},Xl={key:0,class:"pool-toolbar"},es={class:"pool-title-row"},ts={class:"owner-tag"},as={class:"toolbar-actions"},ls={class:"member-table-area"},ss={class:"member-cell"},ns={key:0,class:"sync-retry-tip"},is={key:1,class:"tab-content customer-stats-tab"},os={class:"section-heading customer-stats-heading"},ds={class:"customer-heading-actions"},us={key:0,class:"update-time"},rs={class:"customer-metric-grid","aria-label":"获客客户消息汇总"},ms={class:"customer-metric-card"},cs={class:"metric-icon is-teal"},_s={class:"customer-metric-card"},fs={class:"metric-icon is-blue"},ps={class:"customer-metric-card"},bs={class:"metric-icon is-green"},vs={class:"customer-metric-card"},gs={class:"metric-icon is-orange"},ys={class:"customer-filter-bar"},ks=["title"],hs={class:"member-cell"},ws={class:"member-cell"},Ns={class:"customer-pagination"},$s={key:2,class:"tab-content authorization-tab"},Cs={class:"configuration-state"},Ss={key:0},Vs={key:1},xs={key:0,class:"missing-fields"},As={class:"callback-list"},Ps={class:"configuration-actions"},Ms={key:3,class:"tab-content install-tab"},Is={class:"section-heading"},Ds={class:"member-tree-option__label"},Es={key:0,class:"member-tree-option__count"},Ts={key:1,class:"member-tree-option__detail"},Us={class:"form-tip"},Bs={key:0,class:"uploading-save-tip"},zs={key:1,class:"batch-pool-summary"},Ls={key:0},js={class:"batch-config-section"},Os={class:"batch-field-grid"},Fs={class:"batch-config-section"},Rs={class:"batch-member-status-grid"},qs={class:"member-tree-option__label"},Ks={key:0,class:"member-tree-option__count"},Js={key:1,class:"member-tree-option__detail"},Hs={class:"form-tip"},Ws={key:0,class:"batch-config-section automation-batch-section"},Ys={class:"batch-section-selectors"},Gs={key:0,class:"uploading-save-tip",role:"status"},Zs={key:1,class:"uploading-save-tip"},Qs={key:0,class:"access-pool-preview"},Xs={key:0},en=Lt({name:"firstVisitWecomPromotionPage"}),tn=Lt({...en,setup(an){const nt=()=>({meta:{admin_id:0,scope_label:"",generated_at:""},config:{mode:"internal",configured:!1,ready:!1,missing:[],corp_id_masked:"",agent_id:"",secret_configured:!1,callback_ready:!1,callback_url:"",official_doc:""},summary:{configured_apps:0,pool_count:0,online_links:0,today_clicks:0},pools:[],links:[],member_options:[],operator_options:[],department_options:[],automation_installed:!1,customer_acquisition_link_example:"https://work.weixin.qq.com/ca/xxxxxxxx"}),c=Z(nt()),Ae=A(!1),K=A("links"),re=A(),ve=A(),j=A([]),he=A(!1),q=A(!1),Pe=A(!1),we=A(!1),G=A(!1),Q=A(0),ge=A(0),Ne=A(!1),ie=A(!1),$e=A(!1),T=A(!1),Ce=A(0),Se=A(!1),P=I(()=>Se.value||Ce.value>0||T.value),X=Z({completed:0,total:0}),Y=A([]),oe=A(!1),it=A(),Ve=A(""),S=Z({id:0,name:"",fallback_url:"",status:1,member_admin_ids:[],skip_verify:0,main_url:"",automation_config:Le()}),Oe=A(),me=A(""),de=A(!1),z=Z({pool_ids:[],operator_admin_ids:[],action:"grant"}),_=Z({skip_verify:!1,fallback_url:!1,status:!1,member_status:!1,reception:!1,customer:!1,welcome:!1}),h=Z({pool_ids:[],skip_verify:0,fallback_url:"",status:1,member_admin_ids:[],member_status:1,automation_config:Le()}),O=Z({id:0,name:"",userid:"",daily_limit:0,status:1,active_range:[],remark:""}),xe=A(!1),ot=A(!1),Fe=A(!1),F=Z({link_id:"",userid:"",chat_status:""}),J=Z({page_no:1,page_size:20,total:0}),U=Z({summary:{customer_count:0,messaged_customer_count:0,message_customer_rate:0,received_message_count:0,message_count_known_count:0},rows:[],link_options:[],member_options:[],meta:{last_synced_at:""}}),w=I(()=>c.pools.find(t=>Number(t.id)===re.value)),Re=I(()=>{var t;return Array.isArray((t=w.value)==null?void 0:t.member_rules)?w.value.member_rules:[]}),qe=I(()=>{var L,k,b,V;const t=w.value,e=(t==null?void 0:t.dispatch_sync)||{},a=Array.isArray((L=t==null?void 0:t.official_link)==null?void 0:L.range_userids)?t.official_link.range_userids.map(String):[],n=Re.value.filter($=>De($).className==="is-ok").map($=>String($.userid)),u=new Map(Re.value.map($=>[String($.userid),String($.name||$.userid)])),d=a.map($=>u.get($)||$).join("、")||"暂无确认记录",f=n.map($=>u.get($)||$).join("、")||"暂无可用成员",p=(k=t==null?void 0:t.official_link)==null?void 0:k.last_sync_time,g=`当前计划:${f};上次企微确认:${d}${p?`(${Ee(p)})`:""}。`,E=String(e.last_error||((b=t==null?void 0:t.official_link)==null?void 0:b.sync_error)||"");if(Number(e.status)===3||E)return{type:"warning",title:"企微成员范围尚未同步成功",description:`${g}${E||"同步失败,请点击“同步成员范围”重试。"}`};if(Number(e.status)===4)return{type:"warning",title:"企微成员范围同步受阻",description:`${g}请检查可用成员后重试同步。`};if([1,2].includes(Number(e.status)))return{type:"warning",title:"本地规则已保存,企微成员范围同步待完成",description:`${g}可点击“同步成员范围”立即重试。`};const W=(((V=t==null?void 0:t.official_link)==null?void 0:V.range_department_ids)||[]).length>0;return a.length>0&&new Set(a).size===new Set(n).size&&n.every($=>a.includes($))&&!W?{type:"info",title:"上次确认的企微成员范围与当前计划一致",description:g}:{type:"warning",title:"当前计划与上次企微范围不一致",description:`${g}${W?"企微范围仍包含部门。":""}请点击“同步成员范围”更新并确认。`}}),Ke=I(()=>c.pools.find(t=>Number(t.id)===ve.value)),Me=I(()=>c.pools.filter(t=>z.pool_ids.includes(Number(t.id)))),jt=I(()=>c.pools.filter(t=>t.can_manage_access).map(t=>Number(t.id))),ue=I(()=>c.pools.filter(t=>t.can_manage_access||t.can_operate).map(t=>Number(t.id))),dt=I(()=>{const t=new Set(j.value);return jt.value.filter(e=>t.has(e)).length}),Je=I(()=>ue.value.filter(t=>j.value.includes(t)).length),Ot=I(()=>ue.value.length>0&&Je.value===ue.value.length),Ft=I(()=>Je.value>0&&Je.valuec.pools.filter(t=>h.pool_ids.includes(Number(t.id)))),ut=I(()=>{const t=new Map(c.member_options.map(a=>[Number(a.id),a])),e=new Map;return ce.value.forEach(a=>{const n=Number(a.id);(Array.isArray(a.member_rules)?a.member_rules:[]).forEach(d=>{const f=Number(d.admin_id);if(f<=0)return;const p=t.get(f),g=e.get(f)||{id:f,name:String(d.name||(p==null?void 0:p.name)||d.userid||`员工 ${f}`),userid:String((p==null?void 0:p.userid)||d.userid||""),display_dept_id:Number((p==null?void 0:p.display_dept_id)||0),dept_ids:Array.isArray(p==null?void 0:p.dept_ids)?p.dept_ids.map(Number).filter(E=>E>0):[],dept_names:Array.isArray(p==null?void 0:p.dept_names)?p.dept_names.map(String).filter(Boolean):Array.isArray(d.dept_names)?d.dept_names.map(String).filter(Boolean):[],pool_count:0,online_count:0,offline_count:0,pool_ids:new Set};g.pool_ids.has(n)||(g.pool_ids.add(n),g.pool_count++,Number(d.enabled)===1?g.online_count++:g.offline_count++),e.set(f,g)})}),[...e.values()].map(({pool_ids:a,...n})=>n).sort((a,n)=>a.name.localeCompare(n.name,"zh-CN"))}),Rt=I(()=>new Map(ut.value.map(t=>[t.id,t]))),rt=I(()=>wt(c.department_options,ut.value,{selectableDepartments:!0,memberDetail:t=>{const e=Rt.value.get(t.id);return e?`${e.pool_count} 个方案 · 已上线 ${e.online_count} / 已下线 ${e.offline_count}`:""}})),qt=I(()=>rt.value.map(t=>t.value)),ye=I(()=>{if(!_.member_status||h.member_status!==0)return[];const t=new Set(h.member_admin_ids.map(Number));return ce.value.filter(e=>{const a=Array.isArray(e.member_rules)?e.member_rules:[],n=a.some(d=>Number(d.enabled)===1&&t.has(Number(d.admin_id))),u=a.some(d=>Number(d.enabled)===1&&(_.reception||d.reception_available)&&!t.has(Number(d.admin_id)));return n&&!u})}),mt=I(()=>ce.value.map(t=>new Set((Array.isArray(t.member_admin_ids)?t.member_admin_ids:[]).map(Number)))),ct=I(()=>[...new Set(mt.value.flatMap(t=>[...t]))]),He=I(()=>{const t=mt.value;return t.length?[...t[0]].filter(e=>t.slice(1).every(a=>a.has(e))):[]}),Kt=I(()=>["reception","customer","welcome"].filter(t=>!_[t])),_t={value:"value",label:"label",children:"children",disabled:"disabled"},ft=I(()=>wt(c.department_options,c.member_options)),Jt=I(()=>ft.value.map(t=>t.value)),Ht=I(()=>U.link_options.length?U.link_options:c.links.filter(t=>t.id).map(t=>({id:Number(t.id),name:t.name||t.remote_link_id||`链接 ${t.id}`}))),Wt=I(()=>U.member_options.length?U.member_options:c.member_options.map(t=>({id:Number(t.id),userid:String(t.userid||""),name:t.name,department_name:Array.isArray(t.dept_names)?t.dept_names.join(" / "):t.department_name||t.dept_name||""})));at(()=>c.pools.map(t=>`${Number(t.id)}:${t.can_manage_access?1:0}:${t.can_operate?1:0}`).join(","),()=>{const t=c.pools.map(a=>Number(a.id)),e=new Set(ue.value);(!re.value||!t.includes(re.value))&&(re.value=t[0]),(!ve.value||!t.includes(ve.value))&&(ve.value=t[0]),j.value=j.value.filter(a=>e.has(a))},{immediate:!0}),at(K,t=>{t==="customer-stats"&&!ot.value&&_e()}),at(()=>z.action,t=>{if(t!=="grant")return;const e=new Set(c.operator_options.filter(a=>a.can_grant).map(a=>Number(a.id)));z.operator_admin_ids=z.operator_admin_ids.filter(a=>e.has(Number(a)))});async function H(){Ae.value=!0;try{const t=await cl();Object.assign(c,nt(),t||{})}catch(t){C.error((t==null?void 0:t.message)||"企业微信推广配置加载失败")}finally{Ae.value=!1}}function Yt(t,e){if(P.value||!(t!=null&&t.can_manage_access)&&!(t!=null&&t.can_operate))return;const a=Number(t.id),n=new Set(j.value);e?n.add(a):n.delete(a),j.value=[...n]}function Gt(t){P.value||(j.value=t?[...ue.value]:[])}function Zt(t=j.value){if(P.value)return;const e=new Set(c.pools.filter(u=>u.can_manage_access).map(u=>Number(u.id))),a=[...new Set(t.map(Number).filter(u=>e.has(u)))];if(!a.length)return C.warning("请先选择可管理的分流方案");if(a.length>100)return C.warning("单次最多设置 100 个分流方案");const n=c.pools.find(u=>Number(u.id)===a[0]);Object.assign(_,{skip_verify:!1,fallback_url:!1,status:!1,member_status:!1,reception:!1,customer:!1,welcome:!1}),Object.assign(h,{pool_ids:a,skip_verify:Number(n==null?void 0:n.skip_verify)===1?1:0,fallback_url:String((n==null?void 0:n.fallback_url)||""),status:Number(n==null?void 0:n.status)===1?1:0,member_admin_ids:[],member_status:1,automation_config:je(n==null?void 0:n.automation_config)}),Ve.value="",oe.value=!1,$e.value=!0}function We(t,e,a){const n=t,u=e;a.forEach(d=>{n[d]=JSON.parse(JSON.stringify(u[d]))})}function ee(t){var e;Ve.value=t,(e=it.value)==null||e.scrollTo({top:0,behavior:"smooth"}),C.warning(t)}function Qt(t,e){return typeof t=="string"&&t?t:t&&typeof t=="object"&&"message"in t&&typeof t.message=="string"?t.message:e}function Xt(t){if(!t.success)return`本地保存失败:${t.error||"请检查配置后重试"}`;const e=t.sync_only?"":"本地已保存,";return t.sync_status==="synced"?`${e}企微成员范围已确认同步`:t.sync_status==="blocked"||t.sync_status==="failed"||t.sync_error?`${e}企微同步${t.sync_status==="blocked"?"受阻":"失败"}:${t.sync_error||"请重试同步"}`:`${e}企微成员范围尚未确认同步,请重试同步`}function Ye(t){const e=Y.value.findIndex(a=>a.id===t.id);e<0?Y.value.push(t):Y.value[e]=t}function Ie(t,e){if(e.sync_status==="synced")C.success(`${t},企微成员范围已确认同步`);else{const a=e.sync_error||"企微成员范围尚未确认同步,请点击“同步成员范围”重试";C.warning({message:`${t}。${a}`,duration:8e3})}}function Ge(t,e,a){Ye({id:t,name:e,success:!0,sync_status:a.sync_status,sync_error:a.sync_error,sync_queued:a.sync_queued})}function Ze(t){const e=c.pools.find(a=>Number(a.id)===t);return!!(e!=null&&e.can_operate&&(e!=null&&e.official_link))}async function pt(t){try{return await hl({pool_id:t})}catch(e){return{pool_id:t,sync_status:"failed",sync_error:Qt(e,"同步请求失败,请重试确认企微范围"),sync_queued:!1}}}async function bt(t){if(P.value||Q.value||!Ze(t))return;const e=c.pools.find(a=>Number(a.id)===t);Ce.value=t;try{const a=await pt(t);Ye({id:t,name:e.name,success:!0,sync_only:!0,...a}),await H(),Ie("成员范围同步结果",a)}finally{Ce.value=0}}async function vt(t){Y.value=t.map(n=>({...n}));const e=t.filter(n=>n.success&&n.sync_queued);Object.assign(X,{total:e.length,completed:0});let a=0;await Promise.all(Array.from({length:Math.min(2,e.length)},async()=>{for(;a100)return C.warning("单次最多同步 100 个分流方案,请分批选择");const e=t.map(a=>{const n=c.pools.find(d=>Number(d.id)===a),u=Ze(a);return{id:a,name:(n==null?void 0:n.name)||`方案 ${a}`,success:!0,sync_only:!0,sync_status:u?"pending":"blocked",sync_queued:u,sync_error:u?"":n!=null&&n.can_operate?"方案尚未生成官方链接,请先保存方案":"没有该方案的操作权限"}});Se.value=!0;try{await vt(e),j.value=Y.value.filter(u=>u.sync_status!=="synced").map(u=>u.id),await H();const a=Y.value.filter(u=>u.sync_status==="synced").length,n=t.length-a;C({type:n?"warning":"success",message:`企微已确认同步 ${a} 个方案${n?`,${n} 个尚未确认同步,已保留勾选`:""}。详情见方案列表上方。`,duration:8e3})}finally{Se.value=!1,Object.assign(X,{completed:0,total:0})}}async function ta(){if(P.value||oe.value)return;Ve.value="";const t=c.automation_installed&&(_.reception||_.customer||_.welcome),e=_.member_status,a=_.skip_verify||_.fallback_url||_.status||t;if(!_.skip_verify&&!_.fallback_url&&!_.status&&!e&&!t)return ee("请至少勾选一项需要批量修改的配置");if(e&&a)return ee("员工上下线需要单独批量保存,请取消其他方案配置修改");if(e&&!h.member_admin_ids.length)return ee("请至少选择一名需要批量上线或下线的员工");if(e&&h.member_admin_ids.length>100)return ee("单次最多设置 100 名员工,请减少选择范围");if(e&&h.member_status===0&&ye.value.length)return ee(`${ye.value[0].name} 至少需要保留一名当前可用的上线员工`);if(_.fallback_url&&h.fallback_url.trim()&&!Ut(h.fallback_url.trim()))return ee("兜底获客助手链接必须为有效的 HTTP/HTTPS 地址");const n=je(h.automation_config);if(_.reception&&n.reception_mode!=="scheduled"&&(n.reception_schedule=[]),_.welcome&&n.welcome_mode!=="channel"&&(n.welcome={text:"",attachments:[]}),_.welcome&&(n.welcome_mode!=="channel"||!n.welcome_schedule_enabled)&&(n.welcome_schedule=[]),t){const d=Le();_.reception&&We(d,n,["reception_mode","reception_schedule","backup_member_admin_ids"]),_.customer&&We(d,n,["tags_enabled","tag_ids","remark_enabled","remark_template","description_enabled","description"]),_.welcome&&We(d,n,["welcome_mode","welcome","welcome_schedule_enabled","welcome_schedule"]);const p=_.reception&&n.backup_member_admin_ids.some(g=>ct.value.includes(Number(g)))?"备用成员不能是任一所选方案的主接待成员":Bt(d,He.value);if(p)return ee(p)}const u={};if(_.skip_verify&&(u.skip_verify=h.skip_verify===1?1:0),_.fallback_url&&(u.fallback_url=h.fallback_url.trim()),_.status&&(u.status=h.status===1?1:0),e&&(u.member_status={member_admin_ids:[...h.member_admin_ids],status:h.member_status}),t){const d=zt(n),f={},p=g=>g.forEach(E=>{f[E]=d[E]});_.reception&&p(["reception_mode","reception_schedule","backup_member_admin_ids"]),_.customer&&p(["tags_enabled","tag_ids","remark_enabled","remark_template","description_enabled","description"]),_.welcome&&p(["welcome_mode","welcome","welcome_schedule_enabled","welcome_schedule"]),u.automation_config=f}T.value=!0,Y.value=[];try{const d=await _l({pool_ids:[...h.pool_ids],changes:u});if(Y.value=d.results.map(D=>({...D})),d.updated===0){const D=d.results.slice(0,2).map(L=>`${L.name||`方案 ${L.id}`}:${L.error||"保存失败"}`).join(";");return ee(D||"所选方案均未能保存,请检查配置后重试")}await vt(d.results),$e.value=!1,j.value=Y.value.filter(D=>!D.success||D.sync_status!=="synced").map(D=>D.id),await H();const f=h.member_status===1?"上线":"下线",p=e?d.member_updated>0?`,${d.member_updated} 条本地员工规则已${f}`:`,所选员工本地均已处于${f}状态`:"",g=Y.value.filter(D=>D.success&&D.sync_status==="synced").length,E=d.updated-g,W=`本地已保存 ${d.updated} 个方案${p};企微已确认同步 ${g} 个${E?`,${E} 个尚未确认同步`:""}${d.failed?`;${d.failed} 个本地保存失败`:""}`;C({type:E||d.failed?"warning":"success",message:`${W}。详情见方案列表上方。`,duration:8e3})}catch(d){ee((d==null?void 0:d.message)||"批量修改分流方案失败")}finally{T.value=!1,Object.assign(X,{completed:0,total:0})}}function gt(t=j.value){if(P.value)return;const e=new Set(c.pools.filter(n=>n.can_manage_access).map(n=>Number(n.id))),a=[...new Set(t.map(Number).filter(n=>e.has(n)))];if(!a.length)return C.warning("请先选择可管理的分流方案");if(a.length>100)return C.warning("单次最多设置 100 个分流方案");Object.assign(z,{pool_ids:a,operator_admin_ids:[],action:"grant"}),Ne.value=!0}async function aa(){if(!z.pool_ids.length)return C.warning("请至少选择一个分流方案");if(!z.operator_admin_ids.length)return C.warning("请至少选择一名操作人");ie.value=!0;try{const t=await fl({pool_ids:[...z.pool_ids],operator_admin_ids:[...z.operator_admin_ids],action:z.action});Ne.value=!1,j.value=[],await H();const e=z.action==="grant"?"添加":"移除";C.success(t!=null&&t.affected?`已批量${e} ${t.affected} 条方案操作权限`:"权限设置已检查,没有需要变更的记录")}catch(t){C.error((t==null?void 0:t.message)||"批量设置访问操作失败")}finally{ie.value=!1}}function la(t){const e=Array.isArray(t.dept_names)&&t.dept_names.length?t.dept_names.join(" / "):"未分部门",a=Number(t.disable)===1?" · 已禁用":"";return`${t.name} · ${e}${a}`}function sa(t){const e=Array.isArray(t==null?void 0:t.operators)?t.operators:[];return e.length?e.map(a=>`${a.name||`账号 ${a.id}`}${Number(a.disable)===1?"(已禁用)":""}`).join("、"):"仅原管理范围可操作"}function na(t){const e=t!=null&&t.main_url?"官方链接已生成":"待生成链接",a=Array.isArray(t==null?void 0:t.operator_admin_ids)?t.operator_admin_ids.length:0;return a>0?`${e} · ${a} 人可操作`:e}function Qe(t){if(P.value)return;const e=new Set(c.member_options.map(a=>Number(a.id)));me.value="",de.value=!1,Object.assign(S,t?{id:Number(t.id),name:t.name,fallback_url:t.fallback_url||"",status:Number(t.status),member_admin_ids:Array.isArray(t.member_admin_ids)?t.member_admin_ids.map(Number).filter(a=>e.has(a)):[],skip_verify:Number(t.skip_verify)===1?1:0,main_url:t.main_url||"",automation_config:je(t.automation_config)}:{id:0,name:"",fallback_url:"",status:1,member_admin_ids:[],skip_verify:0,main_url:"",automation_config:Le()}),he.value=!0}async function ia(){var a,n;if(q.value||de.value||P.value)return;me.value="";const t=je(S.automation_config);t.reception_mode!=="scheduled"&&(t.reception_schedule=[]),t.welcome_mode!=="channel"&&(t.welcome={text:"",attachments:[]}),(t.welcome_mode!=="channel"||!t.welcome_schedule_enabled)&&(t.welcome_schedule=[]);const e=S.name.trim()?S.member_admin_ids.length?S.fallback_url.trim()&&!Ut(S.fallback_url.trim())?"兜底获客助手链接必须为有效的 HTTP/HTTPS 地址":c.automation_installed?Bt(t,S.member_admin_ids):"":"请至少选择一名主接待成员":"请输入分流方案名称";if(e)return me.value=e,(a=Oe.value)==null||a.scrollTo({top:0,behavior:"smooth"}),C.warning(e);q.value=!0;try{const{automation_config:u,...d}=S,f=await pl({...d,name:S.name.trim(),fallback_url:S.fallback_url.trim(),...c.automation_installed?{automation_config:zt(t)}:{}});if(c.automation_installed&&(f==null?void 0:f.automation_saved)!==!0)throw new Error("方案已提交,但服务端未确认标签和欢迎语配置保存成功,请刷新后重试");he.value=!1,Ge(Number((f==null?void 0:f.id)||S.id),S.name,f||{}),await H(),f!=null&&f.id&&(re.value=Number(f.id)),Ie(S.id?"本地方案已保存":"分流方案已创建",f||{})}catch(u){me.value=(u==null?void 0:u.message)||(typeof u=="string"?u:"分流方案保存失败,请检查配置或稍后重试"),(n=Oe.value)==null||n.scrollTo({top:0,behavior:"smooth"}),C.error(me.value)}finally{q.value=!1}}async function oa(t){if(!P.value){try{await rl.confirm(`删除“${t.name}”将同时永久删除企业微信后台中的官方获客链接,已投放的链接会失效且无法恢复。确认继续?`,"永久删除分流方案",{type:"warning",confirmButtonText:"永久删除",cancelButtonText:"取消"})}catch{return}ge.value=Number(t.id);try{await bl({id:Number(t.id)}),C.success("分流方案及企业微信官方获客链接已永久删除"),await H()}catch(e){C.error((e==null?void 0:e.message)||"删除失败")}finally{ge.value=0}}}function da(t){if(P.value)return;const e=Number(t.active_start)>0&&Number(t.active_end)>0?[Vt(t.active_start),Vt(t.active_end)]:[];Object.assign(O,{id:Number(t.id),name:t.name||"",userid:t.userid||"",daily_limit:Number(t.daily_limit)||0,status:Number(t.enabled)===1?1:0,active_range:e,remark:t.remark||""}),we.value=!0}async function ua(){var a,n,u,d;if(G.value||P.value)return;G.value=!0;const t=Number((a=w.value)==null?void 0:a.id),e=String(((n=w.value)==null?void 0:n.name)||"");try{const f=await vl({...O,active_start:((u=O.active_range)==null?void 0:u[0])||"",active_end:((d=O.active_range)==null?void 0:d[1])||""});we.value=!1,Ge(t,e,f||{}),await H(),Ie("本地医助规则已保存",f||{})}catch(f){C.error((f==null?void 0:f.message)||"医助分流规则保存失败")}finally{G.value=!1}}async function ra(t,e){var u,d;if(Q.value||P.value)return;Q.value=Number(t.id);const a=Number((u=w.value)==null?void 0:u.id),n=String(((d=w.value)==null?void 0:d.name)||"");try{const f=await gl({id:Number(t.id),status:e?1:0});Ge(a,n,f||{}),await H(),Ie("本地成员状态已保存",f||{})}catch(f){C.error((f==null?void 0:f.message)||"成员状态更新失败"),await H()}finally{Q.value=0}}async function yt(){Pe.value=!0;try{const t=await yl();t!=null&&t.has_link?C.success((t==null?void 0:t.message)||"API 验证通过:应用凭证、可信 IP 与获客助手权限均可用"):C.warning((t==null?void 0:t.message)||"API 权限可用,但当前应用还没有创建官方获客链接")}catch(t){C.error((t==null?void 0:t.message)||"获客助手 API 验证失败")}finally{Pe.value=!1}}async function ma(){await H(),K.value==="customer-stats"&&await _e()}function ke(t,e){for(const a of e)if((t==null?void 0:t[a])!==void 0&&(t==null?void 0:t[a])!==null&&(t==null?void 0:t[a])!==""){const n=Number(t[a]);return Number.isFinite(n)?n:0}return 0}async function _e(){var t,e;xe.value=!0;try{const a=await ml({page_no:J.page_no,page_size:J.page_size,promotion_link_id:F.link_id?Number(F.link_id):void 0,userid:F.userid||void 0,chat_status:F.chat_status===""?void 0:F.chat_status==="messaged"?1:F.chat_status==="unknown"?2:0}),n=(a==null?void 0:a.summary)||(a==null?void 0:a.stats)||{},u=ke(n,["customer_count","total_customers","customer_total","total"]),d=ke(n,["messaged_customer_count","started_chat_count","chat_customer_count","message_customer_count","chatting_customers"]),f=["message_customer_rate","chat_customer_rate","messaged_rate","chat_rate"],p=f.some(k=>(n==null?void 0:n[k])!==void 0&&(n==null?void 0:n[k])!==null&&(n==null?void 0:n[k])!=="");Object.assign(U.summary,{customer_count:u,messaged_customer_count:d,message_customer_rate:p?ke(n,f):u?d/u*100:0,received_message_count:ke(n,["received_message_count","recv_msg_cnt","recv_msg_count","total_recv_msg_cnt","message_count"]),message_count_known_count:ke(n,["message_count_known_count","exact_message_customer_count"])}),U.rows=Array.isArray(a==null?void 0:a.lists)?a.lists:Array.isArray(a==null?void 0:a.list)?a.list:Array.isArray(a==null?void 0:a.rows)?a.rows:[],J.total=Number((a==null?void 0:a.total)??(a==null?void 0:a.count)??((t=a==null?void 0:a.page)==null?void 0:t.total)??U.rows.length)||0;const g=(a==null?void 0:a.filters)||{},E=(a==null?void 0:a.link_options)||(g==null?void 0:g.link_options)||(g==null?void 0:g.links),W=(a==null?void 0:a.member_options)||(g==null?void 0:g.member_options)||(g==null?void 0:g.members);Array.isArray(E)&&(U.link_options=E),Array.isArray(W)&&(U.member_options=W);const D=U.rows.reduce((k,b)=>{const V=b.last_synced_at||b.last_sync_time||b.synced_at||b.sync_time||"";return Number(V||0)>Number(k||0)?V:k},""),L=((e=a==null?void 0:a.meta)==null?void 0:e.last_synced_at)||(a==null?void 0:a.last_synced_at)||D||U.meta.last_synced_at||"";Object.assign(U.meta,(a==null?void 0:a.meta)||{},{last_synced_at:L?Ee(L):""}),ot.value=!0}catch(a){C.error((a==null?void 0:a.message)||"获客客户统计加载失败")}finally{xe.value=!1}}function ca(){J.page_no=1,_e()}function _a(){Object.assign(F,{link_id:"",userid:"",chat_status:""}),J.page_no=1,_e()}function fa(){J.page_no=1,_e()}async function pa(){var t,e,a;Fe.value=!0;try{const n=await kl({promotion_link_id:F.link_id?Number(F.link_id):void 0}),u=Number((n==null?void 0:n.scanned)??(n==null?void 0:n.customer_scanned)??((t=n==null?void 0:n.customers)==null?void 0:t.scanned)??0),d=Number((n==null?void 0:n.created)??(n==null?void 0:n.customer_created)??((e=n==null?void 0:n.customers)==null?void 0:e.created)??0),f=Number((n==null?void 0:n.updated)??(n==null?void 0:n.customer_updated)??((a=n==null?void 0:n.customers)==null?void 0:a.updated)??0);C.success((n==null?void 0:n.message)||`客户同步完成:扫描 ${te(u)} 位,新增 ${te(d)} 位,更新 ${te(f)} 位`),J.page_no=1,await Promise.all([H(),_e()])}catch(n){C.error((n==null?void 0:n.message)||"获客客户同步失败")}finally{Fe.value=!1}}function De(t){var a;const e=Math.floor(Date.now()/1e3);return Number(t.enabled)!==1?{label:"已禁用",className:"is-muted"}:Number(t.active_start)>0&&Number(t.active_start)>e?{label:"尚未生效",className:"is-waiting"}:Number(t.active_end)>0&&Number(t.active_end)0&&ht(t)>=Number(t.daily_limit)?{label:"今日已达上限",className:"is-waiting"}:Number((a=w.value)==null?void 0:a.status)===0?{label:"方案已停用",className:"is-muted"}:t.reception_available===!1||t.reception_available===0?{label:t.is_backup?"备用待命":"非接待时段",className:"is-waiting"}:t.is_backup?{label:"备用接待中",className:"is-ok"}:{label:"可参与分流",className:"is-ok"}}function kt(t){const e=De(t).className==="is-ok";return t.is_in_remote_range===!0||Number(t.is_in_remote_range)===1?{label:e?"企微范围内":"待移出(仍在企微)",className:e?"is-online":"is-pending"}:{label:e?"待加入企微":"未在企微范围",className:"is-offline"}}function ht(t){const e=new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Shanghai",year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date);return t.today_date===e?Number(t.today_count||0):0}function wt(t,e,a={}){const n=new Set,u=b=>{b.forEach(V=>{const $=Number(V.id);$>0&&n.add($),Array.isArray(V.children)&&u(V.children)})};u(Array.isArray(t)?t:[]);const d=[],f=new Set;for(const b of Array.isArray(e)?e:[]){const V=Number(b.id);V<=0||f.has(V)||(f.add(V),d.push({id:V,name:String(b.name||b.userid||`成员 ${V}`),userid:String(b.userid||""),display_dept_id:Number(b.display_dept_id||0),dept_ids:Array.isArray(b.dept_ids)?Array.from(new Set(b.dept_ids.map(Number).filter($=>$>0))):[],dept_names:Array.isArray(b.dept_names)?b.dept_names.map(String).filter(Boolean):[]}))}const p=new Map;d.forEach(b=>{var R;const V=Number(b.display_dept_id||0),$=n.has(V)?V:b.dept_ids.find(ae=>n.has(ae))||0;p.has($)||p.set($,[]),(R=p.get($))==null||R.push(b)});const g=new Set,E=b=>{var R;const V=b.dept_names.length?b.dept_names.join(" / "):"未分部门",$=((R=a.memberDetail)==null?void 0:R.call(a,b))||(b.userid?`${V} · ${b.userid}`:V);return{value:b.id,label:b.name,kind:"member",detail:$,search_text:`${b.name} ${b.userid} ${b.dept_names.join(" ")}`.toLocaleLowerCase()}},W=(b,V)=>b.name.localeCompare(V.name,"zh-CN"),D=(b,V)=>{const $=[];for(const R of Array.isArray(b)?b:[]){const ae=Number(R.id);if(ae<=0)continue;const fe=String(R.name||`部门 ${ae}`),pe=[...V,fe],Te=D(Array.isArray(R.children)?R.children:[],pe),Ue=[...p.get(ae)||[]].sort(W);Ue.forEach(l=>g.add(l.id));const tt=Ue.map(E),be=[...Te,...tt];if(!be.length)continue;const Be=be.reduce((l,le)=>l+(le.kind==="member"?1:Number(le.member_count||0)),0);$.push({value:`dept:${ae}`,label:fe,kind:"department",disabled:!a.selectableDepartments,member_count:Be,search_text:`${pe.join(" ")} ${be.map(l=>l.search_text).join(" ")}`.toLocaleLowerCase(),children:be})}return $},L=D(Array.isArray(t)?t:[],[]),k=d.filter(b=>!g.has(b.id)).sort(W);if(k.length){const b=k.map(E);L.push({value:"dept:unassigned",label:"未分部门",kind:"department",disabled:!a.selectableDepartments,member_count:b.length,search_text:`未分部门 ${b.map(V=>V.search_text).join(" ")}`.toLocaleLowerCase(),children:b})}return L}function Nt(t,e){const a=String(t||"").trim().toLocaleLowerCase();return a===""||e.search_text.includes(a)}function ba(t){var n,u;const e=Array.isArray(t==null?void 0:t.member_admin_ids)?t.member_admin_ids:[],a=((u=(n=t==null?void 0:t.automation_config)==null?void 0:n.backup_member_admin_ids)==null?void 0:u.length)||0;return e.length?`${e.length} 名主接待${a?` · ${a} 名备用`:""}`:"未选择医助"}function va(t){return`${Array.isArray(t.dept_names)&&t.dept_names.length?t.dept_names.join(" / "):"未分部门"} · ${t.userid||"未绑定 userid"}`}function ga(t){const e=t.department_name||t.dept_name||"",a=t.userid?` · ${t.userid}`:"";return e?`${t.name} · ${e}${a}`:`${t.name}${a}`}function $t(t){const e=t.external_userid_masked||t.customer_id_masked||t.customer_masked||t.customer_name_masked;return e?String(e):ya(t.external_userid||t.customer_id||t.id)}function ya(t){const e=String(t||"").trim();return e?e.includes("*")?e:e.length<=4?`${e.slice(0,1)}***`:e.length<=8?`${e.slice(0,2)}***${e.slice(-1)}`:`${e.slice(0,4)}****${e.slice(-4)}`:"-"}function ka(t){return t.link_name||t.source_link_name||t.promotion_link_name||"未匹配来源链接"}function ha(t){const e=t.link_id||t.remote_link_id||t.source_link_id;return e?`链接 ID:${e}`:"暂无链接 ID"}function Xe(t){return ke(t,["received_message_count","recv_msg_cnt","message_count","received_count"])}function Ct(t){const e=t.message_count_known??t.message_count_exact??t.count_known;return e!=null?e===!0||e===1||e==="1"||e==="true":Xe(t)>0}function et(t){const e=Number(t.chat_status);if(e===2)return"unknown";const a=t.has_messaged??t.has_message??t.messaged;return a!=null?a===!0||a===1||a==="1"||a==="true"||a==="messaged"?"messaged":"silent":e===1||Xe(t)>0?"messaged":"silent"}function wa(t){const e=et(t);return e==="messaged"?"已发消息":e==="unknown"?"状态未知":"未发消息"}function Na(t){if(Ct(t))return te(Xe(t));const e=et(t);return e==="silent"?"0":e==="unknown"?"未知":"待回调"}function St(t){return t.last_message_at||t.last_chat_time||t.last_message_time||t.last_msg_time||t.event_time||""}function Ee(t){if(t==null||t===""||t===0||t==="0")return"-";if(typeof t=="number"||/^\d+$/.test(String(t))){const e=Number(t),a=new Date(e>1e11?e:e*1e3);return Number.isNaN(a.getTime())?"-":a.toLocaleString("zh-CN",{hour12:!1}).replaceAll("/","-")}return String(t).replace("T"," ").replace(/Z$/,"").slice(0,19)}function $a(t){return`${Number(t||0).toFixed(1)}%`}function te(t){return Number(t||0).toLocaleString("zh-CN")}function Vt(t){const e=new Date(Number(t||0)*1e3),a=n=>String(n).padStart(2,"0");return`${e.getFullYear()}-${a(e.getMonth()+1)}-${a(e.getDate())} ${a(e.getHours())}:${a(e.getMinutes())}:${a(e.getSeconds())}`}async function xt(t,e){if(!t)return C.warning(`${e}暂无内容`);try{await navigator.clipboard.writeText(t)}catch{const a=document.createElement("textarea");a.value=t,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select();const n=document.execCommand("copy");if(a.remove(),!n)throw new Error("copy command failed")}C.success(`${e}已复制`)}async function Ca(){await H()}return Sa(async()=>{await H()}),(t,e)=>{var Be;const a=Aa,n=Ma,u=Ba,d=Oa,f=Ra,p=Fa,g=qa,E=Ka,W=Ja,D=Ga,L=Ya,k=Wa,b=Qa,V=Xa,$=al,R=ll,ae=sl,fe=nl,pe=ol,Te=il,Ue=dl,tt=ul,be=Va;return At((m(),y("div",$l,[s("header",Cl,[s("div",Sl,[s("span",Vl,[i(a,null,{default:o(()=>[i(N(xa))]),_:1})]),e[56]||(e[56]=s("div",null,[s("h1",null,"企业微信获客助手"),s("p",null,"一个方案保留一条企业微信官方直链,由企业微信在多个可用医助之间原生路由")],-1))]),s("div",xl,[s("span",Al,[i(a,null,{default:o(()=>[i(N(Pa))]),_:1}),v(r(c.meta.scope_label||"当前数据范围"),1)]),c.meta.generated_at?(m(),y("span",Pl,"更新于 "+r(c.meta.generated_at),1)):x("",!0),i(n,{icon:N(ze),loading:Ae.value||xe.value,onClick:ma},{default:o(()=>[...e[57]||(e[57]=[v("刷新",-1)])]),_:1},8,["icon","loading"])])]),s("section",Ml,[s("article",Il,[s("span",Dl,[i(a,null,{default:o(()=>[i(N(Ia))]),_:1})]),s("div",null,[e[58]||(e[58]=s("small",null,"内部应用",-1)),s("strong",null,r(c.summary.configured_apps),1),e[59]||(e[59]=s("p",null,"直接读取服务器环境配置",-1))])]),s("article",El,[s("span",Tl,[i(a,null,{default:o(()=>[i(N(Da))]),_:1})]),s("div",null,[e[60]||(e[60]=s("small",null,"分流方案",-1)),s("strong",null,r(c.summary.pool_count),1),e[61]||(e[61]=s("p",null,"每个方案对应一个官方链接",-1))])]),s("article",Ul,[s("span",Bl,[i(a,null,{default:o(()=>[i(N(Ea))]),_:1})]),s("div",null,[e[62]||(e[62]=s("small",null,"官方链接",-1)),s("strong",null,r(c.summary.online_links),1),e[63]||(e[63]=s("p",null,"链接不变,成员范围自动更新",-1))])]),s("article",zl,[s("span",Ll,[i(a,null,{default:o(()=>[i(N(Ta))]),_:1})]),s("div",null,[e[64]||(e[64]=s("small",null,"今日实际获客",-1)),s("strong",null,r(c.summary.today_clicks),1),e[65]||(e[65]=s("p",null,"按企业微信回调确认承接成员",-1))])])]),s("section",jl,[s("nav",Ol,[s("button",{class:B({active:K.value==="links"}),onClick:e[0]||(e[0]=l=>K.value="links")},[i(a,null,{default:o(()=>[i(N(Pt))]),_:1}),e[66]||(e[66]=v("获客助手链接 ",-1))],2),s("button",{class:B({active:K.value==="customer-stats"}),onClick:e[1]||(e[1]=l=>K.value="customer-stats")},[i(a,null,{default:o(()=>[i(N(Mt))]),_:1}),e[67]||(e[67]=v("获客客户统计 ",-1))],2),s("button",{class:B({active:K.value==="configuration"}),onClick:e[2]||(e[2]=l=>K.value="configuration")},[i(a,null,{default:o(()=>[i(N(Ua))]),_:1}),e[68]||(e[68]=v("应用配置 ",-1))],2),s("button",{class:B({active:K.value==="install"}),onClick:e[3]||(e[3]=l=>K.value="install")},[i(a,null,{default:o(()=>[i(N(lt))]),_:1}),e[69]||(e[69]=v("JS 安装 ",-1))],2)]),K.value==="links"?(m(),y("div",Fl,[s("div",Rl,[e[74]||(e[74]=s("div",null,[s("h2",null,"获客助手分流方案"),s("p",null,"选择几名医助就生成几条成员规则;官方链接只在方案顶部复制,成员行不重复展示链接。")],-1)),s("div",ql,[j.value.length?(m(),y("span",Kl,"已选 "+r(j.value.length)+" 个方案",1)):x("",!0),i(n,{icon:N(ze),loading:Se.value,disabled:!j.value.length||P.value||Q.value>0||ge.value>0,onClick:ea},{default:o(()=>[...e[70]||(e[70]=[v("批量同步成员范围",-1)])]),_:1},8,["icon","loading","disabled"]),i(n,{icon:N(It),disabled:!dt.value||P.value,onClick:e[4]||(e[4]=l=>Zt())},{default:o(()=>[...e[71]||(e[71]=[v("批量修改方案",-1)])]),_:1},8,["icon","disabled"]),i(n,{icon:N(st),disabled:!dt.value||P.value,onClick:e[5]||(e[5]=l=>gt())},{default:o(()=>[...e[72]||(e[72]=[v("批量设置访问操作",-1)])]),_:1},8,["icon","disabled"]),i(n,{type:"primary",icon:N(Dt),disabled:P.value,onClick:e[6]||(e[6]=l=>Qe())},{default:o(()=>[...e[73]||(e[73]=[v("新建分流方案",-1)])]),_:1},8,["icon","disabled"])])]),Y.value.length?(m(),y("section",Jl,[e[76]||(e[76]=s("strong",null,"本次保存与企微同步结果",-1)),Se.value?(m(),y("p",Hl,"正在同步企微 "+r(X.completed)+" / "+r(X.total)+" 个方案,请等待完成。",1)):x("",!0),s("ul",null,[(m(!0),y(se,null,ne(Y.value,l=>(m(),y("li",{key:l.id},[s("span",null,r(l.name||`方案 ${l.id}`)+":"+r(Xt(l)),1),l.success&&l.sync_status!=="synced"&&Ze(l.id)?(m(),M(n,{key:0,type:"primary",link:"",loading:Ce.value===l.id,disabled:P.value,onClick:le=>bt(l.id)},{default:o(()=>[...e[75]||(e[75]=[v("重试同步",-1)])]),_:1},8,["loading","disabled","onClick"])):x("",!0)]))),128))])])):x("",!0),c.pools.length?(m(),y("div",Wl,[s("aside",Yl,[s("div",Gl,[i(u,{"model-value":Ot.value,indeterminate:Ft.value,disabled:!ue.value.length||P.value,"aria-label":"全选可操作的分流方案",onChange:Gt},{default:o(()=>[...e[77]||(e[77]=[v("全选",-1)])]),_:1},8,["model-value","indeterminate","disabled"]),s("span",null,"可选 "+r(ue.value.length)+" 个",1)]),(m(!0),y(se,null,ne(c.pools,l=>(m(),y("div",{key:l.id,class:B(["pool-select-row",{active:Number(l.id)===re.value}])},[i(u,{"model-value":j.value.includes(Number(l.id)),disabled:!l.can_manage_access&&!l.can_operate||P.value,"aria-label":`选择方案 ${l.name}`,onChange:le=>Yt(l,le),onClick:e[7]||(e[7]=za(()=>{},["stop"]))},null,8,["model-value","disabled","aria-label","onChange"]),s("button",{type:"button",class:"pool-item",onClick:le=>re.value=Number(l.id)},[s("span",{class:B(["pool-status",Number(l.status)===1?"online":"offline"])},null,2),s("span",null,[s("strong",null,r(l.name),1),s("small",null,r(ba(l))+" · "+r(na(l)),1)]),i(a,null,{default:o(()=>[i(N(La))]),_:1})],8,Zl)],2))),128))]),s("div",Ql,[w.value?(m(),y("div",Xl,[s("div",null,[s("div",es,[s("h3",null,r(w.value.name),1),s("span",{class:B(["status-tag",Number(w.value.status)===1?"is-online":"is-offline"])},r(Number(w.value.status)===1?"运行中":"已停用"),3),s("span",ts,r(w.value.dept_name||"未分部门")+" · "+r(w.value.owner_name||"系统"),1)]),s("p",null,"公开键:"+r(w.value.public_key),1)]),s("div",as,[i(n,{icon:N(Et),loading:Pe.value,onClick:yt},{default:o(()=>[...e[78]||(e[78]=[v("验证 API",-1)])]),_:1},8,["icon","loading"]),w.value.can_operate?(m(),M(n,{key:0,icon:N(ze),loading:Ce.value===Number(w.value.id),disabled:!w.value.official_link||P.value||Q.value>0,onClick:e[8]||(e[8]=l=>bt(Number(w.value.id)))},{default:o(()=>[...e[79]||(e[79]=[v("同步成员范围",-1)])]),_:1},8,["icon","loading","disabled"])):x("",!0),i(n,{icon:N(lt),disabled:!w.value.main_url,onClick:e[9]||(e[9]=l=>xt(w.value.main_url,"官方获客链接"))},{default:o(()=>[...e[80]||(e[80]=[v("复制链接",-1)])]),_:1},8,["icon","disabled"]),i(n,{icon:N(lt),onClick:e[10]||(e[10]=l=>xt(w.value.install_code,"JS 安装代码"))},{default:o(()=>[...e[81]||(e[81]=[v("复制 JS",-1)])]),_:1},8,["icon"]),w.value.can_manage_access?(m(),M(n,{key:1,icon:N(st),disabled:P.value,onClick:e[11]||(e[11]=l=>gt([Number(w.value.id)]))},{default:o(()=>[...e[82]||(e[82]=[v("设置访问操作",-1)])]),_:1},8,["icon","disabled"])):x("",!0),w.value.can_operate?(m(),M(n,{key:2,icon:N(It),disabled:P.value,onClick:e[12]||(e[12]=l=>Qe(w.value))},{default:o(()=>[...e[83]||(e[83]=[v("编辑方案",-1)])]),_:1},8,["icon","disabled"])):x("",!0),w.value.can_delete?(m(),M(n,{key:3,type:"danger",plain:"",icon:N(ja),loading:ge.value===Number(w.value.id),disabled:ge.value>0||P.value,onClick:e[13]||(e[13]=l=>oa(w.value))},{default:o(()=>[...e[84]||(e[84]=[v("删除",-1)])]),_:1},8,["icon","loading","disabled"])):x("",!0)])])):x("",!0),w.value.migration_state==="needs_resolution"?(m(),M(d,{key:1,class:"legacy-sync-alert",type:"warning","show-icon":"",closable:!1,title:"检测到旧版方案存在多个官方链接",description:"当前显示最新链接;保存方案后,其余旧链接只会在本地下线,企业微信端与历史客户归因仍会保留。"})):x("",!0),i(d,{class:"legacy-sync-alert",type:"info","show-icon":"",closable:!1,title:"企业微信原生多人路由",description:"上线开关和可用性表示本地规则;企微范围显示上次远端确认结果。“待移出”的成员仍可能获客,只有同步完成才会从官方链接移除。"}),i(d,{class:"legacy-sync-alert member-sync-state",type:qe.value.type,"show-icon":"",closable:!1,title:qe.value.title,description:qe.value.description},null,8,["type","title","description"]),s("div",ls,[i(W,{data:Re.value,class:"link-table",height:"100%",stripe:""},{empty:o(()=>[i(E,{"image-size":72,description:"编辑方案并选择获客医助"})]),default:o(()=>[i(p,{label:"推广成员","min-width":"210",fixed:"left"},{default:o(({row:l})=>[s("div",ss,[s("strong",null,[v(r(l.name||l.userid)+" ",1),l.is_backup?(m(),M(f,{key:0,size:"small",type:"warning",effect:"plain"},{default:o(()=>[...e[85]||(e[85]=[v("备用",-1)])]),_:1})):x("",!0)]),s("small",null,r(va(l)),1)])]),_:1}),i(p,{label:"企微范围(上次确认)",width:"165",align:"center"},{default:o(({row:l})=>[s("span",{class:B(["status-tag",kt(l).className])},r(kt(l).label),3),Number(l.sync_status)===3?(m(),y("div",ns,"同步失败,请查看上方原因")):x("",!0)]),_:1}),i(p,{label:"今日 / 上限",width:"125",align:"center"},{default:o(({row:l})=>[v(r(ht(l))+" / "+r(Number(l.daily_limit)?l.daily_limit:"不限"),1)]),_:1}),i(p,{label:"累计获客",prop:"total_count",width:"105",align:"center"}),i(p,{label:"当前可用性","min-width":"130"},{default:o(({row:l})=>[s("span",{class:B(["availability",De(l).className])},r(De(l).label),3)]),_:1}),i(p,{label:"上线",width:"90",align:"center"},{default:o(({row:l})=>[i(g,{"model-value":Number(l.enabled)===1,disabled:!w.value.can_operate||Q.value>0||P.value,loading:Q.value===Number(l.id),onChange:le=>ra(l,le)},null,8,["model-value","disabled","loading","onChange"])]),_:1}),i(p,{label:"操作","min-width":"100",fixed:"right"},{default:o(({row:l})=>[w.value.can_operate?(m(),M(n,{key:0,type:"primary",link:"",disabled:P.value,onClick:le=>da(l)},{default:o(()=>[...e[86]||(e[86]=[v("编辑规则",-1)])]),_:1},8,["disabled","onClick"])):x("",!0)]),_:1})]),_:1},8,["data"])])])])):(m(),M(E,{key:2,description:"创建方案并选择多个医助,保存后自动生成一个企业微信官方获客链接"},{default:o(()=>[i(n,{type:"primary",icon:N(Dt),onClick:e[14]||(e[14]=l=>Qe())},{default:o(()=>[...e[87]||(e[87]=[v("创建第一个方案",-1)])]),_:1},8,["icon"])]),_:1}))])):K.value==="customer-stats"?(m(),y("div",is,[s("div",os,[e[89]||(e[89]=s("div",null,[s("h2",null,"获客客户消息统计"),s("p",null,"统计当前权限范围内由获客助手链接添加的客户,以及客户向承接成员发送消息的情况。")],-1)),s("div",ds,[U.meta.last_synced_at?(m(),y("span",us,"最近同步 "+r(U.meta.last_synced_at),1)):x("",!0),i(n,{type:"primary",icon:N(ze),loading:Fe.value,onClick:pa},{default:o(()=>[...e[88]||(e[88]=[v("同步客户",-1)])]),_:1},8,["icon","loading"])])]),s("section",rs,[s("article",ms,[s("span",cs,[i(a,null,{default:o(()=>[i(N(st))]),_:1})]),s("div",null,[e[90]||(e[90]=s("small",null,"获客客户数",-1)),s("strong",null,r(te(U.summary.customer_count)),1),e[91]||(e[91]=s("p",null,"当前筛选范围内的去重客户",-1))])]),s("article",_s,[s("span",fs,[i(a,null,{default:o(()=>[i(N(Ha))]),_:1})]),s("div",null,[e[92]||(e[92]=s("small",null,"已发消息客户数",-1)),s("strong",null,r(te(U.summary.messaged_customer_count)),1),e[93]||(e[93]=s("p",null,"至少发送过一条消息",-1))])]),s("article",ps,[s("span",bs,[i(a,null,{default:o(()=>[i(N(Mt))]),_:1})]),s("div",null,[e[94]||(e[94]=s("small",null,"消息客户率",-1)),s("strong",null,r($a(U.summary.message_customer_rate)),1),e[95]||(e[95]=s("p",null,"已发消息客户占获客客户比例",-1))])]),s("article",vs,[s("span",gs,[i(a,null,{default:o(()=>[i(N(Pt))]),_:1})]),s("div",null,[e[96]||(e[96]=s("small",null,"累计接收消息数",-1)),s("strong",null,r(te(U.summary.received_message_count)),1),s("p",null,"已精确统计 "+r(te(U.summary.message_count_known_count))+" 位客户",1)])])]),c.config.callback_ready?x("",!0):(m(),M(d,{key:0,class:"chatkey-alert",type:"warning","show-icon":"",closable:!1,title:"消息次数回调尚未配置完成",description:"复用企业微信自建应用现有的“API 接收消息”地址即可,无需新增第二个回调;请确保该地址为 /api/qywx/external-contact/notify,且服务器 Token、AESKey 与企微后台一致。未完成前无法自动累计成员获客数量,也无法在成员达到上限后自动更新官方范围。"})),i(d,{class:"chatkey-alert",type:"info","show-icon":"",closable:!1,title:"获客助手通过事件与 ChatKey 返回收消息次数",description:"本功能复用现有回调并按事件类型处理 customer_acquisition,不会占用第二个回调。客户首次发消息会推送 customer_start_chat;累计第 3、5、10 次时推送 message_from_customer,服务端需在 30 分钟内用 ChatKey 查询成员、客户、获客链接和累计收消息次数。"}),s("div",ys,[i(b,{model:F,inline:"","label-position":"top"},{default:o(()=>[i(k,{label:"来源链接"},{default:o(()=>[i(L,{modelValue:F.link_id,"onUpdate:modelValue":e[15]||(e[15]=l=>F.link_id=l),clearable:"",filterable:"",placeholder:"全部链接"},{default:o(()=>[(m(!0),y(se,null,ne(Ht.value,l=>(m(),M(D,{key:String(l.id),label:l.name,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),i(k,{label:"承接成员"},{default:o(()=>[i(L,{modelValue:F.userid,"onUpdate:modelValue":e[16]||(e[16]=l=>F.userid=l),clearable:"",filterable:"",placeholder:"全部成员"},{default:o(()=>[(m(!0),y(se,null,ne(Wt.value,l=>(m(),M(D,{key:l.userid||String(l.id),label:ga(l),value:l.userid||String(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),i(k,{label:"聊天状态"},{default:o(()=>[i(L,{modelValue:F.chat_status,"onUpdate:modelValue":e[17]||(e[17]=l=>F.chat_status=l),clearable:"",placeholder:"全部状态"},{default:o(()=>[i(D,{label:"已发过消息",value:"messaged"}),i(D,{label:"未发过消息",value:"silent"}),i(D,{label:"状态未知",value:"unknown"})]),_:1},8,["modelValue"])]),_:1}),i(k,{class:"filter-actions"},{default:o(()=>[i(n,{type:"primary",icon:N(Za),loading:xe.value,onClick:ca},{default:o(()=>[...e[97]||(e[97]=[v("查询",-1)])]),_:1},8,["icon","loading"]),i(n,{onClick:_a},{default:o(()=>[...e[98]||(e[98]=[v("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),At((m(),M(W,{data:U.rows,class:"customer-table",stripe:""},{empty:o(()=>[i(E,{"image-size":72,description:"当前筛选范围暂无获客客户数据"})]),default:o(()=>[i(p,{label:"客户标识(已脱敏)","min-width":"190",fixed:"left"},{default:o(({row:l})=>[s("span",{class:"customer-identifier",title:$t(l)},r($t(l)),9,ks)]),_:1}),i(p,{label:"来源链接","min-width":"190"},{default:o(({row:l})=>[s("div",hs,[s("strong",null,r(ka(l)),1),s("small",null,r(ha(l)),1)])]),_:1}),i(p,{label:"承接成员 / 部门","min-width":"175"},{default:o(({row:l})=>[s("div",ws,[s("strong",null,r(l.member_name||l.owner_name||"未匹配成员"),1),s("small",null,r(l.department_name||l.dept_name||"未分部门")+" · "+r(l.userid||"未绑定企微账号"),1)])]),_:1}),i(p,{label:"客户开口",width:"110",align:"center"},{default:o(({row:l})=>[s("span",{class:B(["message-state",`is-${et(l)}`])},r(wa(l)),3)]),_:1}),i(p,{label:"累计消息",width:"100",align:"right"},{default:o(({row:l})=>[s("strong",{class:B(["message-count",{muted:!Ct(l)}])},r(Na(l)),3)]),_:1}),i(p,{label:"最近同步时间","min-width":"165"},{default:o(({row:l})=>[v(r(Ee(l.last_synced_at||l.last_sync_time||l.synced_at||l.sync_time)),1)]),_:1}),i(p,{label:"最近收消息事件","min-width":"165"},{default:o(({row:l})=>[s("span",{class:B({muted:!St(l)})},r(Ee(St(l))),3)]),_:1})]),_:1},8,["data"])),[[be,xe.value]]),s("div",Ns,[s("span",null,"共 "+r(te(J.total))+" 位客户",1),i(V,{"current-page":J.page_no,"onUpdate:currentPage":e[18]||(e[18]=l=>J.page_no=l),"page-size":J.page_size,"onUpdate:pageSize":e[19]||(e[19]=l=>J.page_size=l),background:"",layout:"sizes, prev, pager, next","page-sizes":[10,20,50,100],total:J.total,onCurrentChange:_e,onSizeChange:fa},null,8,["current-page","page-size","total"])])])):K.value==="configuration"?(m(),y("div",$s,[e[107]||(e[107]=s("div",{class:"section-heading"},[s("div",null,[s("h2",null,"企业微信内部应用配置"),s("p",null,"直接读取服务器现有的 work_wechat 配置,密钥不会返回浏览器,也不需要第三方应用授权。")])],-1)),s("div",{class:B(["configuration-panel",c.config.ready?"is-ready":"is-pending"])},[s("div",Cs,[s("span",null,[i(a,null,{default:o(()=>[(m(),M(el(c.config.ready?N(Et):N(tl))))]),_:1})]),s("div",null,[s("strong",null,r(c.config.ready?"内部应用已就绪":"内部应用配置不完整"),1),c.config.ready?(m(),y("p",Ss,"已识别 CorpID 与应用 Secret;点击“验证 API”可同时检查可信 IP、获客助手开通状态和应用权限。")):(m(),y("p",Vs,"请补齐服务器 .env 的 [work_wechat] 配置;页面不会展示 Secret 内容。"))])]),(Be=c.config.missing)!=null&&Be.length?(m(),y("div",xs,[e[99]||(e[99]=v(" 缺少:",-1)),(m(!0),y(se,null,ne(c.config.missing,l=>(m(),y("code",{key:l},r(l),1))),128))])):x("",!0),s("dl",As,[s("div",null,[e[100]||(e[100]=s("dt",null,"企业 CorpID",-1)),s("dd",null,r(c.config.corp_id_masked||"未配置"),1),s("span",null,r(c.config.corp_id_masked?"已识别":"缺失"),1)]),s("div",null,[e[101]||(e[101]=s("dt",null,"应用 AgentID",-1)),s("dd",null,r(c.config.agent_id||"未配置"),1),s("span",null,r(c.config.agent_id?"已识别":"缺失"),1)]),s("div",null,[e[102]||(e[102]=s("dt",null,"应用 Secret",-1)),e[103]||(e[103]=s("dd",null,"仅保存在服务器环境变量中",-1)),s("span",null,r(c.config.secret_configured?"已配置":"缺失"),1)]),s("div",null,[e[104]||(e[104]=s("dt",null,"消息回调地址",-1)),s("dd",null,r(c.config.callback_url||"未生成"),1),s("span",null,r(c.config.callback_ready?"已配置密钥":"待配置 Token/AESKey"),1)])]),s("div",Ps,[i(n,{type:"primary",loading:Pe.value,onClick:yt},{default:o(()=>[...e[105]||(e[105]=[v("验证获客助手 API",-1)])]),_:1},8,["loading"]),c.config.official_doc?(m(),M($,{key:0,href:c.config.official_doc,target:"_blank",type:"primary"},{default:o(()=>[...e[106]||(e[106]=[v("查看企业微信官方文档",-1)])]),_:1},8,["href"])):x("",!0)])],2)])):(m(),y("div",Ms,[s("div",Is,[e[108]||(e[108]=s("div",null,[s("h2",null,"安装 JS 与浮窗客服"),s("p",null,"为每个分流方案配置独立浮窗;基础脚本仍只负责展示入口、捕获点击并请求服务端分流。")],-1)),i(L,{modelValue:ve.value,"onUpdate:modelValue":e[20]||(e[20]=l=>ve.value=l),placeholder:"选择分流方案",class:"install-pool-select"},{default:o(()=>[(m(!0),y(se,null,ne(c.pools,l=>(m(),M(D,{key:l.id,label:l.name,value:Number(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),Ke.value?(m(),M(wl,{key:Number(Ke.value.id),pool:Ke.value,onSaved:Ca},null,8,["pool"])):(m(),M(E,{key:1,description:"请先创建分流方案,系统会自动生成 JS 安装代码"}))]))]),i(fe,{modelValue:he.value,"onUpdate:modelValue":e[29]||(e[29]=l=>he.value=l),title:S.id?"编辑分流方案":"新建分流方案",width:"1000px",class:"promotion-pool-dialog","destroy-on-close":"","close-on-click-modal":!1,"close-on-press-escape":!q.value&&!de.value,"show-close":!q.value&&!de.value},{footer:o(()=>[de.value?(m(),y("span",Bs,"正在处理标签或素材,请稍候")):x("",!0),i(n,{disabled:q.value||de.value,onClick:e[28]||(e[28]=l=>he.value=!1)},{default:o(()=>[...e[110]||(e[110]=[v("取消",-1)])]),_:1},8,["disabled"]),i(n,{type:"primary",loading:q.value,disabled:de.value,onClick:ia},{default:o(()=>[v(r(S.id?"保存方案":"保存并生成链接"),1)]),_:1},8,["loading","disabled"])]),default:o(()=>[s("div",{ref_key:"poolFormScroll",ref:Oe,class:"pool-form-scroll"},[me.value?(m(),M(d,{key:0,class:"pool-form-error",title:me.value,type:"error","show-icon":"",closable:!1,role:"alert"},null,8,["title"])):x("",!0),i(b,{"label-position":"top",disabled:q.value},{default:o(()=>[i(k,{label:"方案名称",required:""},{default:o(()=>[i(R,{modelValue:S.name,"onUpdate:modelValue":e[21]||(e[21]=l=>S.name=l),disabled:q.value,maxlength:"60","show-word-limit":"",placeholder:"例如:官网咨询分流"},null,8,["modelValue","disabled"])]),_:1}),i(k,{label:"主接待成员(获客医助)",required:""},{default:o(()=>[i(ae,{modelValue:S.member_admin_ids,"onUpdate:modelValue":e[22]||(e[22]=l=>S.member_admin_ids=l),data:ft.value,props:_t,"default-expanded-keys":Jt.value,"filter-node-method":Nt,disabled:q.value,"node-key":"value",multiple:"",filterable:"",clearable:"","show-checkbox":"","collapse-tags":"","collapse-tags-tooltip":"","max-collapse-tags":2,"multiple-limit":500,"render-after-expand":!1,placeholder:"按部门展开,或搜索姓名 / 部门 / 企微 userid",style:{width:"100%"}},{default:o(({data:l})=>[s("span",{class:B(["member-tree-option",`is-${l.kind}`])},[s("span",Ds,r(l.label),1),l.kind==="department"?(m(),y("span",Es,r(l.member_count)+" 人",1)):(m(),y("span",Ts,r(l.detail),1))],2)]),_:1},8,["modelValue","data","default-expanded-keys","disabled"]),s("span",Us,"已选 "+r(S.member_admin_ids.length)+" 名;保存后会为每名医助生成一条成员规则,官方链接地址始终只有一个。",1)]),_:1}),i(k,{label:"添加客户时跳过验证"},{default:o(()=>[i(g,{modelValue:S.skip_verify,"onUpdate:modelValue":e[23]||(e[23]=l=>S.skip_verify=l),disabled:q.value,"active-value":1,"inactive-value":0,"active-text":"跳过验证","inactive-text":"需要验证"},null,8,["modelValue","disabled"])]),_:1}),i(k,{label:"兜底获客助手链接"},{default:o(()=>[i(R,{modelValue:S.fallback_url,"onUpdate:modelValue":e[24]||(e[24]=l=>S.fallback_url=l),disabled:q.value,placeholder:"可选;仅供旧版兼容跳转使用"},null,8,["modelValue","disabled"]),e[109]||(e[109]=s("span",{class:"form-tip"},"新生成的官方直链不经过本站跳转;此项仅兼容旧安装代码。",-1))]),_:1}),i(k,{label:"运行状态"},{default:o(()=>[i(g,{modelValue:S.status,"onUpdate:modelValue":e[25]||(e[25]=l=>S.status=l),disabled:q.value,"active-value":1,"inactive-value":0,"active-text":"运行","inactive-text":"停用"},null,8,["modelValue","disabled"])]),_:1}),c.automation_installed?(m(),M(Tt,{key:0,modelValue:S.automation_config,"onUpdate:modelValue":e[26]||(e[26]=l=>S.automation_config=l),"main-member-ids":S.member_admin_ids,members:c.member_options,disabled:q.value,onBusy:e[27]||(e[27]=l=>de.value=l)},null,8,["modelValue","main-member-ids","members","disabled"])):(m(),M(d,{key:1,type:"warning","show-icon":"",closable:!1,title:"自动化配置尚未安装",description:"请先在服务端执行 add_wecom_promotion_automation.sql 并部署消费进程及定时调度,即可设置接待时段、标签、备注和欢迎语。当前仍可保存原有分流方案。"}))]),_:1},8,["disabled"])],512)]),_:1},8,["modelValue","title","close-on-press-escape","show-close"]),i(fe,{modelValue:$e.value,"onUpdate:modelValue":e[45]||(e[45]=l=>$e.value=l),title:"批量修改分流方案",width:"1000px",class:"promotion-pool-dialog","destroy-on-close":"","close-on-click-modal":!1,"close-on-press-escape":!T.value&&!oe.value,"show-close":!T.value&&!oe.value},{footer:o(()=>[X.total?(m(),y("span",Gs,"本地配置已保存,正在同步企微 "+r(X.completed)+" / "+r(X.total)+" 个方案",1)):x("",!0),oe.value?(m(),y("span",Zs,"正在处理标签或素材,请稍候")):x("",!0),i(n,{disabled:T.value||oe.value,onClick:e[44]||(e[44]=l=>$e.value=!1)},{default:o(()=>[...e[127]||(e[127]=[v("取消",-1)])]),_:1},8,["disabled"]),i(n,{type:"primary",loading:T.value,disabled:oe.value,onClick:ta},{default:o(()=>[...e[128]||(e[128]=[v("批量保存",-1)])]),_:1},8,["loading","disabled"])]),default:o(()=>[s("div",{ref_key:"batchConfigScroll",ref:it,class:"pool-form-scroll batch-config-scroll"},[i(d,{type:"warning","show-icon":"",closable:!1,title:`将统一修改 ${h.pool_ids.length} 个分流方案`,description:"仅勾选的项目会覆盖到所选方案;未勾选项目保留各方案原值。表单初始值取第一个所选方案。"},null,8,["title"]),Ve.value?(m(),M(d,{key:0,class:"pool-form-error batch-config-error",title:Ve.value,type:"error","show-icon":"",closable:!1,role:"alert"},null,8,["title"])):x("",!0),ce.value.length?(m(),y("div",zs,[e[111]||(e[111]=s("strong",null,"已选方案",-1)),(m(!0),y(se,null,ne(ce.value.slice(0,8),l=>(m(),y("span",{key:l.id},r(l.name),1))),128)),ce.value.length>8?(m(),y("small",Ls,"另有 "+r(ce.value.length-8)+" 个",1)):x("",!0)])):x("",!0),i(b,{class:"batch-config-form","label-position":"top",disabled:T.value},{default:o(()=>[s("section",js,[e[116]||(e[116]=s("h3",null,"基础设置",-1)),s("div",Os,[s("div",{class:B(["batch-field",{"is-disabled":!_.skip_verify}])},[i(u,{modelValue:_.skip_verify,"onUpdate:modelValue":e[30]||(e[30]=l=>_.skip_verify=l),disabled:T.value},{default:o(()=>[...e[112]||(e[112]=[v("批量修改验证方式",-1)])]),_:1},8,["modelValue","disabled"]),i(k,{label:"添加客户时跳过验证"},{default:o(()=>[i(g,{modelValue:h.skip_verify,"onUpdate:modelValue":e[31]||(e[31]=l=>h.skip_verify=l),disabled:!_.skip_verify||T.value,"active-value":1,"inactive-value":0,"active-text":"跳过验证","inactive-text":"需要验证"},null,8,["modelValue","disabled"])]),_:1})],2),s("div",{class:B(["batch-field",{"is-disabled":!_.status}])},[i(u,{modelValue:_.status,"onUpdate:modelValue":e[32]||(e[32]=l=>_.status=l),disabled:T.value},{default:o(()=>[...e[113]||(e[113]=[v("批量修改运行状态",-1)])]),_:1},8,["modelValue","disabled"]),i(k,{label:"运行状态"},{default:o(()=>[i(g,{modelValue:h.status,"onUpdate:modelValue":e[33]||(e[33]=l=>h.status=l),disabled:!_.status||T.value,"active-value":1,"inactive-value":0,"active-text":"运行","inactive-text":"停用"},null,8,["modelValue","disabled"])]),_:1})],2)]),s("div",{class:B(["batch-field",{"is-disabled":!_.fallback_url}])},[i(u,{modelValue:_.fallback_url,"onUpdate:modelValue":e[34]||(e[34]=l=>_.fallback_url=l),disabled:T.value},{default:o(()=>[...e[114]||(e[114]=[v("批量修改兜底获客助手链接",-1)])]),_:1},8,["modelValue","disabled"]),i(k,{label:"兜底获客助手链接"},{default:o(()=>[i(R,{modelValue:h.fallback_url,"onUpdate:modelValue":e[35]||(e[35]=l=>h.fallback_url=l),disabled:!_.fallback_url||T.value,placeholder:"留空表示清除;仅供旧版兼容跳转使用"},null,8,["modelValue","disabled"]),e[115]||(e[115]=s("span",{class:"form-tip"},"新生成的官方直链不经过本站跳转;此项仅兼容旧安装代码。",-1))]),_:1})],2)]),s("section",Fs,[e[120]||(e[120]=s("h3",null,"员工上下线",-1)),e[121]||(e[121]=s("p",{class:"batch-section-tip"},"所选员工会在其已加入的所选方案中统一上线或下线;不属于某个方案的员工不会被加入该方案。为保证方案级原子提交,员工上下线需单独批量保存。",-1)),s("div",{class:B(["batch-field batch-member-status-field",{"is-disabled":!_.member_status}])},[i(u,{modelValue:_.member_status,"onUpdate:modelValue":e[36]||(e[36]=l=>_.member_status=l),disabled:T.value},{default:o(()=>[...e[117]||(e[117]=[v("批量修改员工上线状态",-1)])]),_:1},8,["modelValue","disabled"]),s("div",Rs,[i(k,{label:"目标状态"},{default:o(()=>[i(Te,{modelValue:h.member_status,"onUpdate:modelValue":e[37]||(e[37]=l=>h.member_status=l),disabled:!_.member_status||T.value},{default:o(()=>[i(pe,{value:1},{default:o(()=>[...e[118]||(e[118]=[v("批量上线",-1)])]),_:1}),i(pe,{value:0},{default:o(()=>[...e[119]||(e[119]=[v("批量下线",-1)])]),_:1})]),_:1},8,["modelValue","disabled"])]),_:1}),i(k,{label:"选择员工"},{default:o(()=>[i(ae,{modelValue:h.member_admin_ids,"onUpdate:modelValue":e[38]||(e[38]=l=>h.member_admin_ids=l),data:rt.value,props:_t,"default-expanded-keys":qt.value,"filter-node-method":Nt,"node-key":"value",multiple:"",filterable:"",clearable:"","show-checkbox":"","check-on-click-node":"","collapse-tags":"","collapse-tags-tooltip":"","max-collapse-tags":3,"multiple-limit":100,"render-after-expand":!1,disabled:!_.member_status||T.value,placeholder:"按部门勾选,或搜索姓名 / 部门 / 企微 userid",style:{width:"100%"}},{default:o(({data:l})=>[s("span",{class:B(["member-tree-option",`is-${l.kind}`])},[s("span",qs,r(l.label),1),l.kind==="department"?(m(),y("span",Ks,r(l.member_count)+" 人",1)):(m(),y("span",Js,r(l.detail),1))],2)]),_:1},8,["modelValue","data","default-expanded-keys","disabled"]),s("span",Hs,"勾选部门可全选其下员工;已选 "+r(h.member_admin_ids.length)+" 名。",1)]),_:1})]),_.member_status&&h.member_status===0&&ye.value.length?(m(),M(d,{key:0,type:"warning","show-icon":"",closable:!1,title:`${ye.value[0].name} 至少需要保留一名当前可用的上线员工`,description:ye.value.length>1?`另有 ${ye.value.length-1} 个方案也会没有可用上线员工,请调整选择。`:"请减少下线员工,或先为该方案上线一名当前可用的员工。"},null,8,["title","description"])):x("",!0)],2)]),c.automation_installed?(m(),y("section",Ws,[e[125]||(e[125]=s("h3",null,"自动化设置",-1)),e[126]||(e[126]=s("p",{class:"batch-section-tip"},"先选择要覆盖的分组。未选择的接待、客户或欢迎语设置不会随本次批量操作改变。",-1)),s("div",Ys,[i(u,{modelValue:_.reception,"onUpdate:modelValue":e[39]||(e[39]=l=>_.reception=l),disabled:T.value,border:""},{default:o(()=>[...e[122]||(e[122]=[v("批量修改接待设置",-1)])]),_:1},8,["modelValue","disabled"]),i(u,{modelValue:_.customer,"onUpdate:modelValue":e[40]||(e[40]=l=>_.customer=l),disabled:T.value,border:""},{default:o(()=>[...e[123]||(e[123]=[v("批量修改客户设置",-1)])]),_:1},8,["modelValue","disabled"]),i(u,{modelValue:_.welcome,"onUpdate:modelValue":e[41]||(e[41]=l=>_.welcome=l),disabled:T.value,border:""},{default:o(()=>[...e[124]||(e[124]=[v("批量修改欢迎语设置",-1)])]),_:1},8,["modelValue","disabled"])]),_.reception&&!He.value.length?(m(),M(d,{key:0,type:"warning","show-icon":"",closable:!1,title:"所选方案没有共同主接待成员",description:"仍可统一改为全天接待;若使用按时段接待,时段成员必须同时属于全部所选方案。"})):x("",!0),i(Tt,{modelValue:h.automation_config,"onUpdate:modelValue":e[42]||(e[42]=l=>h.automation_config=l),"main-member-ids":He.value,"backup-excluded-member-ids":ct.value,members:c.member_options,disabled:T.value,"disabled-sections":Kt.value,onBusy:e[43]||(e[43]=l=>oe.value=l)},null,8,["modelValue","main-member-ids","backup-excluded-member-ids","members","disabled","disabled-sections"])])):(m(),M(d,{key:1,type:"warning","show-icon":"",closable:!1,title:"自动化配置尚未安装",description:"本次仍可批量修改验证方式、兜底链接、运行状态和员工上下线;安装自动化数据表后即可批量修改接待、客户和欢迎语设置。"}))]),_:1},8,["disabled"])],512)]),_:1},8,["modelValue","close-on-press-escape","show-close"]),i(fe,{modelValue:Ne.value,"onUpdate:modelValue":e[49]||(e[49]=l=>Ne.value=l),title:"批量设置他人访问操作",width:"620px","destroy-on-close":"","close-on-click-modal":!1,"close-on-press-escape":!ie.value},{footer:o(()=>[i(n,{disabled:ie.value,onClick:e[48]||(e[48]=l=>Ne.value=!1)},{default:o(()=>[...e[134]||(e[134]=[v("取消",-1)])]),_:1},8,["disabled"]),i(n,{type:"primary",loading:ie.value,onClick:aa},{default:o(()=>[v(r(z.action==="grant"?"批量添加":"批量移除"),1)]),_:1},8,["loading"])]),default:o(()=>[i(d,{type:"info","show-icon":"",closable:!1,title:`将设置 ${z.pool_ids.length} 个分流方案`,description:"被添加的账号可以查看并编辑方案、成员规则和浮窗配置;不能删除方案,也不能继续分配操作权限。"},null,8,["title"]),i(b,{class:"access-form","label-position":"top"},{default:o(()=>[i(k,{label:"设置方式",required:""},{default:o(()=>[i(Te,{modelValue:z.action,"onUpdate:modelValue":e[46]||(e[46]=l=>z.action=l),disabled:ie.value},{default:o(()=>[i(pe,{value:"grant"},{default:o(()=>[...e[129]||(e[129]=[v("添加操作人",-1)])]),_:1}),i(pe,{value:"revoke"},{default:o(()=>[...e[130]||(e[130]=[v("移除操作人",-1)])]),_:1})]),_:1},8,["modelValue","disabled"]),e[131]||(e[131]=s("span",{class:"form-tip"},"批量添加不会覆盖各方案已有操作人;批量移除只撤销本次选中的账号。",-1))]),_:1}),i(k,{label:"选择账号",required:""},{default:o(()=>[i(L,{modelValue:z.operator_admin_ids,"onUpdate:modelValue":e[47]||(e[47]=l=>z.operator_admin_ids=l),multiple:"",filterable:"",clearable:"","collapse-tags":"","collapse-tags-tooltip":"","max-collapse-tags":3,"multiple-limit":100,disabled:ie.value,placeholder:"搜索姓名或部门",style:{width:"100%"}},{default:o(()=>[(m(!0),y(se,null,ne(c.operator_options,l=>(m(),M(D,{key:l.id,label:la(l),value:Number(l.id),disabled:z.action==="grant"&&!l.can_grant},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue","disabled"]),e[132]||(e[132]=s("span",{class:"form-tip"},"添加时可选择当前管理范围内的启用账号;授权后账号会自动获得本页面入口,且只能访问已授权方案。",-1))]),_:1}),Me.value.length?(m(),y("div",Qs,[e[133]||(e[133]=s("strong",null,"当前授权",-1)),(m(!0),y(se,null,ne(Me.value.slice(0,5),l=>(m(),y("div",{key:l.id},[s("span",null,r(l.name),1),s("small",null,r(sa(l)),1)]))),128)),Me.value.length>5?(m(),y("p",Xs,"另有 "+r(Me.value.length-5)+" 个方案",1)):x("",!0)])):x("",!0)]),_:1})]),_:1},8,["modelValue","close-on-press-escape"]),i(fe,{modelValue:we.value,"onUpdate:modelValue":e[55]||(e[55]=l=>we.value=l),title:"编辑医助分流规则",width:"560px","destroy-on-close":"","close-on-click-modal":!1},{footer:o(()=>[i(n,{disabled:G.value,onClick:e[54]||(e[54]=l=>we.value=!1)},{default:o(()=>[...e[136]||(e[136]=[v("取消",-1)])]),_:1},8,["disabled"]),i(n,{type:"primary",loading:G.value,onClick:ua},{default:o(()=>[...e[137]||(e[137]=[v("保存规则",-1)])]),_:1},8,["loading"])]),default:o(()=>[i(b,{"label-position":"top"},{default:o(()=>[i(k,{label:"获客医助"},{default:o(()=>[i(R,{"model-value":O.name?`${O.name} · ${O.userid}`:O.userid,readonly:""},null,8,["model-value"])]),_:1}),i(k,{label:"每日获客上限"},{default:o(()=>[i(Ue,{modelValue:O.daily_limit,"onUpdate:modelValue":e[50]||(e[50]=l=>O.daily_limit=l),min:0,max:1e6,disabled:G.value,style:{width:"100%"}},null,8,["modelValue","disabled"]),e[135]||(e[135]=s("span",{class:"form-tip"},"0 表示不限;数量按实际获客回调累计,达到上限后会从企微官方成员范围移除。",-1))]),_:1}),i(k,{label:"有效时间"},{default:o(()=>[i(tt,{modelValue:O.active_range,"onUpdate:modelValue":e[51]||(e[51]=l=>O.active_range=l),type:"datetimerange","range-separator":"至","start-placeholder":"开始时间","end-placeholder":"结束时间","value-format":"YYYY-MM-DD HH:mm:ss",disabled:G.value,style:{width:"100%"}},null,8,["modelValue","disabled"])]),_:1}),i(k,{label:"上线状态"},{default:o(()=>[i(g,{modelValue:O.status,"onUpdate:modelValue":e[52]||(e[52]=l=>O.status=l),"active-value":1,"inactive-value":0,"active-text":"启用","inactive-text":"禁用",disabled:G.value},null,8,["modelValue","disabled"])]),_:1}),i(k,{label:"备注"},{default:o(()=>[i(R,{modelValue:O.remark,"onUpdate:modelValue":e[53]||(e[53]=l=>O.remark=l),type:"textarea",rows:2,maxlength:"255","show-word-limit":"",disabled:G.value},null,8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1},8,["modelValue"])])),[[be,Ae.value]])}}}),rn=Nl(tn,[["__scopeId","data-v-97dc53d7"]]);export{rn as default}; diff --git a/server/public/admin/assets/index-BncZ7LCe.js b/server/public/admin/assets/index-SoGq86eC.js similarity index 58% rename from server/public/admin/assets/index-BncZ7LCe.js rename to server/public/admin/assets/index-SoGq86eC.js index b5998d02d..fbf4d2eaa 100644 --- a/server/public/admin/assets/index-BncZ7LCe.js +++ b/server/public/admin/assets/index-SoGq86eC.js @@ -1 +1 @@ -import{_ as C}from"./index-9qT8_5W1.js";import{o as w,aC as N,R as E,bp as O,q as v,r as B,s as I,v as i,D as m,u as n,C as _,bj as U,ac as h,O as k,K as J,L as R,M as D,p as c}from"./.pnpm-CyuAWpdG.js";import{a as W,s as j}from"./decoration-9ln5Pyvl.js";import{v as q,_ as H}from"./index-Dxvz9lb1.js";import{_ as K}from"./attr-setting.vue_vue_type_script_setup_true_lang-BB4y2fA5.js";import L from"./menu-DViiZPlx.js";import $ from"./preview-pEzQXats.js";import{e as z}from"./index-DdPJHEsY.js";import"./attr-BKcZmDiX.js";import"./index-ClBYIwNX.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./content.vue_vue_type_script_setup_true_lang-DVlBS5Y8.js";import"./decoration-img-DKpVnT4z.js";import"./attr.vue_vue_type_script_setup_true_lang-DQUc65nD.js";import"./content-CkQUB7ti.js";import"./attr.vue_vue_type_script_setup_true_lang-Co9N5gOC.js";import"./content.vue_vue_type_script_setup_true_lang-D3yhrH9m.js";import"./attr.vue_vue_type_script_setup_true_lang-BUrcLo0c.js";import"./add-nav.vue_vue_type_script_setup_true_lang-CaeukMqg.js";import"./content-BtlOdmdD.js";import"./attr.vue_vue_type_script_setup_true_lang-kgBs74gd.js";import"./content.vue_vue_type_script_setup_true_lang-CwwLmi2B.js";import"./attr.vue_vue_type_script_setup_true_lang-Bkj1p-jl.js";import"./content-DqDTOak9.js";import"./attr.vue_vue_type_script_setup_true_lang-BWENGozb.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./content-0LXu-5MK.js";import"./content.vue_vue_type_script_setup_true_lang-BlC3oWQE.js";import"./attr.vue_vue_type_script_setup_true_lang-jrtitgMf.js";import"./content-C5W1CaMe.js";import"./attr.vue_vue_type_script_setup_true_lang-CsV4MUsa.js";import"./content.vue_vue_type_script_setup_true_lang-Unv1Zxh1.js";import"./attr.vue_vue_type_script_setup_true_lang-ObQLkrtE.js";import"./content-DdjhpUgB.js";const A={class:"decoration-pages min-w-[1100px]"},F={class:"flex flex-1 h-full justify-between"},G=w({name:"decorationPages"}),Q=w({...G,setup(T){let u;(e=>{e.HOME="1",e.USER="2",e.SERVICE="3"})(u||(u={}));const x=e=>{o[a.value].pageData=[...e]},s=e=>e.map(t=>{var p;return{id:q(),...((p=z[t])==null?void 0:p.options())||{}}}),M=e=>{var t;(t=o[a.value])!=null&&t.pageData&&(o[a.value].pageData[r.value].content=e)},o=N({1:{id:1,type:1,name:"首页装修",pageMeta:s(["page-meta"]),pageData:s(["search","banner","nav","news"])},2:{id:2,type:2,name:"个人中心",pageMeta:s(["page-meta"]),pageData:s(["user-info","my-service","user-banner"])},3:{id:3,type:3,name:"客服设置",pageMeta:null,pageData:s(["customer-service"])}}),a=D("1"),r=D(-1),d=c(()=>{var e;return((e=o[a.value])==null?void 0:e.pageData)??[]}),b=c(()=>{var e;return((e=o[a.value])==null?void 0:e.pageMeta)??null}),y=c(()=>{var e,t;return r.value===-1?((e=o[a.value])==null?void 0:e.pageMeta[0])??"":((t=o[a.value])==null?void 0:t.pageData[r.value])??""}),g=async()=>{const e=await W({id:a.value});o[String(e.id)].pageData=JSON.parse(e.data),o[String(e.id)].pageMeta=e!=null&&e.meta?JSON.parse(e==null?void 0:e.meta):null},V=async()=>{const e=o[a.value];await j({...e,data:JSON.stringify(e.pageData),meta:e!=null&&e.pageMeta?JSON.stringify(e==null?void 0:e.pageMeta):null}),g()};return E(a,()=>{r.value=d.value.findIndex(e=>!e.disabled),g()},{immediate:!0}),(e,t)=>{const f=U,p=J,P=C,S=O("perms");return v(),B("div",A,[I("div",F,[i(f,{shadow:"never",class:"!border-none flex scroll-view-content","body-style":{"padding-right":0}},{default:m(()=>[i(L,{modelValue:n(a),"onUpdate:modelValue":t[0]||(t[0]=l=>_(a)?a.value=l:null),menus:n(o)},null,8,["modelValue","menus"])]),_:1}),i($,{class:"flex-1 scroll-view-content",modelValue:n(r),"onUpdate:modelValue":t[1]||(t[1]=l=>_(r)?r.value=l:null),onUpdatePageData:x,pageData:n(d),pageMeta:n(b)},null,8,["modelValue","pageData","pageMeta"]),i(K,{class:"w-[560px] scroll-view-content",widget:n(y),"onUpdate:content":M},null,8,["widget"])]),h((v(),k(P,{class:"mt-4",fixed:!1},{default:m(()=>[i(p,{type:"primary",onClick:V},{default:m(()=>[...t[2]||(t[2]=[R("保存",-1)])]),_:1})]),_:1})),[[S,["decorate:pages:save"]]])])}}}),qe=H(Q,[["__scopeId","data-v-8a7bf3bc"]]);export{qe as default}; +import{_ as C}from"./index-DIl3M8Wa.js";import{o as w,aC as N,R as E,bp as O,q as v,r as B,s as I,v as i,D as m,u as n,C as _,bj as U,ac as h,O as k,K as J,L as R,M as D,p as c}from"./.pnpm-CyuAWpdG.js";import{a as W,s as j}from"./decoration-BCfnNTDP.js";import{v as q,_ as H}from"./index-Bkarz3gO.js";import{_ as K}from"./attr-setting.vue_vue_type_script_setup_true_lang-D7NyugHW.js";import L from"./menu-CC2IkBNA.js";import $ from"./preview-D6ROnn0L.js";import{e as z}from"./index-BLw2qqEh.js";import"./attr-DWgf0zU2.js";import"./index-Cqk_cdo9.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./content.vue_vue_type_script_setup_true_lang-3GiNjvv7.js";import"./decoration-img-SoINHtbg.js";import"./attr.vue_vue_type_script_setup_true_lang-BoEBITiA.js";import"./content-BR-B7Y89.js";import"./attr.vue_vue_type_script_setup_true_lang-VLQINM6l.js";import"./content.vue_vue_type_script_setup_true_lang-DJb4aHFp.js";import"./attr.vue_vue_type_script_setup_true_lang-BsVB4T8K.js";import"./add-nav.vue_vue_type_script_setup_true_lang-ByQYZkB9.js";import"./content-CPrgdURU.js";import"./attr.vue_vue_type_script_setup_true_lang-DyWBgKkz.js";import"./content.vue_vue_type_script_setup_true_lang-DIToE7Db.js";import"./attr.vue_vue_type_script_setup_true_lang-Bkj1p-jl.js";import"./content-B1kkCzVQ.js";import"./attr.vue_vue_type_script_setup_true_lang-DEQz3dX_.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./content-DLUkNAW_.js";import"./content.vue_vue_type_script_setup_true_lang-D7k_-QjC.js";import"./attr.vue_vue_type_script_setup_true_lang-jrtitgMf.js";import"./content-C1VdJnCo.js";import"./attr.vue_vue_type_script_setup_true_lang-BPT_wucL.js";import"./content.vue_vue_type_script_setup_true_lang-_A_7DW4P.js";import"./attr.vue_vue_type_script_setup_true_lang-ObQLkrtE.js";import"./content-DraD2KOm.js";const A={class:"decoration-pages min-w-[1100px]"},F={class:"flex flex-1 h-full justify-between"},G=w({name:"decorationPages"}),Q=w({...G,setup(T){let u;(e=>{e.HOME="1",e.USER="2",e.SERVICE="3"})(u||(u={}));const x=e=>{o[a.value].pageData=[...e]},s=e=>e.map(t=>{var p;return{id:q(),...((p=z[t])==null?void 0:p.options())||{}}}),M=e=>{var t;(t=o[a.value])!=null&&t.pageData&&(o[a.value].pageData[r.value].content=e)},o=N({1:{id:1,type:1,name:"首页装修",pageMeta:s(["page-meta"]),pageData:s(["search","banner","nav","news"])},2:{id:2,type:2,name:"个人中心",pageMeta:s(["page-meta"]),pageData:s(["user-info","my-service","user-banner"])},3:{id:3,type:3,name:"客服设置",pageMeta:null,pageData:s(["customer-service"])}}),a=D("1"),r=D(-1),d=c(()=>{var e;return((e=o[a.value])==null?void 0:e.pageData)??[]}),b=c(()=>{var e;return((e=o[a.value])==null?void 0:e.pageMeta)??null}),y=c(()=>{var e,t;return r.value===-1?((e=o[a.value])==null?void 0:e.pageMeta[0])??"":((t=o[a.value])==null?void 0:t.pageData[r.value])??""}),g=async()=>{const e=await W({id:a.value});o[String(e.id)].pageData=JSON.parse(e.data),o[String(e.id)].pageMeta=e!=null&&e.meta?JSON.parse(e==null?void 0:e.meta):null},V=async()=>{const e=o[a.value];await j({...e,data:JSON.stringify(e.pageData),meta:e!=null&&e.pageMeta?JSON.stringify(e==null?void 0:e.pageMeta):null}),g()};return E(a,()=>{r.value=d.value.findIndex(e=>!e.disabled),g()},{immediate:!0}),(e,t)=>{const f=U,p=J,P=C,S=O("perms");return v(),B("div",A,[I("div",F,[i(f,{shadow:"never",class:"!border-none flex scroll-view-content","body-style":{"padding-right":0}},{default:m(()=>[i(L,{modelValue:n(a),"onUpdate:modelValue":t[0]||(t[0]=l=>_(a)?a.value=l:null),menus:n(o)},null,8,["modelValue","menus"])]),_:1}),i($,{class:"flex-1 scroll-view-content",modelValue:n(r),"onUpdate:modelValue":t[1]||(t[1]=l=>_(r)?r.value=l:null),onUpdatePageData:x,pageData:n(d),pageMeta:n(b)},null,8,["modelValue","pageData","pageMeta"]),i(K,{class:"w-[560px] scroll-view-content",widget:n(y),"onUpdate:content":M},null,8,["widget"])]),h((v(),k(P,{class:"mt-4",fixed:!1},{default:m(()=>[i(p,{type:"primary",onClick:V},{default:m(()=>[...t[2]||(t[2]=[R("保存",-1)])]),_:1})]),_:1})),[[S,["decorate:pages:save"]]])])}}}),qe=H(Q,[["__scopeId","data-v-8a7bf3bc"]]);export{qe as default}; diff --git a/server/public/admin/assets/index-B4_tqMXr.js b/server/public/admin/assets/index-W9kKr3OI.js similarity index 94% rename from server/public/admin/assets/index-B4_tqMXr.js rename to server/public/admin/assets/index-W9kKr3OI.js index 9cf78c5e9..0ed8c440c 100644 --- a/server/public/admin/assets/index-B4_tqMXr.js +++ b/server/public/admin/assets/index-W9kKr3OI.js @@ -1 +1 @@ -import{o as g,bp as E,q as l,r as x,v as a,D as t,bo as B,s as o,bj as L,ac as f,bn as T,u as b,O as i,bk as D,bl as N,bm as R,L as _,K as V,a8 as q,aC as S}from"./.pnpm-CyuAWpdG.js";import{_ as $,s as j}from"./edit.vue_vue_type_script_setup_true_lang-C4JjYzlV.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";const z={class:"storage"},A=g({name:"storage"}),J=g({...A,setup(F){const c=q(),s=S({loading:!1,lists:[]}),u=async()=>{try{s.loading=!0,s.lists=await j(),s.loading=!1}catch{s.loading=!1}},v=r=>{var e;(e=c.value)==null||e.open(r)};return u(),(r,e)=>{const w=B,p=L,n=N,m=R,k=V,y=D,h=E("perms"),C=T;return l(),x("div",z,[a(p,{class:"!border-none",shadow:"never"},{default:t(()=>[a(w,{type:"warning",title:"温馨提示:",closable:!1,"show-icon":""},{default:t(()=>[...e[0]||(e[0]=[o("div",null," 1.使用对象存储,需要将public目录下的资源文件保留原来目录路径传输到对象存储空间。 ",-1),o("div",null,"2.请勿随意切换存储方式,可能导致图片无法查看。",-1),o("div",null," 3.需要在对象存储后台设置域名跨域,否则图片生成场景无法使用,例海报合成等。 ",-1),o("div",null," 4.需将对象存储的图片域名添加到微信小程序官方后台request合法域名和downloadFile合法域名。 ",-1)])]),_:1})]),_:1}),f((l(),i(p,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[a(y,{size:"large",data:b(s).lists},{default:t(()=>[a(n,{label:"储存方式",prop:"name","min-width":"120"}),a(n,{label:"储存位置",prop:"path","min-width":"160"}),a(n,{label:"状态","min-width":"80"},{default:t(({row:d})=>[d.status==1?(l(),i(m,{key:0},{default:t(()=>[...e[1]||(e[1]=[_("开启",-1)])]),_:1})):(l(),i(m,{key:1,type:"danger"},{default:t(()=>[...e[2]||(e[2]=[_("关闭",-1)])]),_:1}))]),_:1}),a(n,{label:"操作","min-width":"80",fixed:"right"},{default:t(({row:d})=>[f((l(),i(k,{type:"primary",link:"",onClick:K=>v(d.engine)},{default:t(()=>[...e[3]||(e[3]=[_(" 设置 ",-1)])]),_:1},8,["onClick"])),[[h,["setting.storage/setup"]]])]),_:1})]),_:1},8,["data"])]),_:1})),[[C,b(s).loading]]),a($,{ref_key:"editRef",ref:c,onSuccess:u},null,512)])}}});export{J as default}; +import{o as g,bp as E,q as l,r as x,v as a,D as t,bo as B,s as o,bj as L,ac as f,bn as T,u as b,O as i,bk as D,bl as N,bm as R,L as _,K as V,a8 as q,aC as S}from"./.pnpm-CyuAWpdG.js";import{_ as $,s as j}from"./edit.vue_vue_type_script_setup_true_lang-BuYDp57-.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";const z={class:"storage"},A=g({name:"storage"}),J=g({...A,setup(F){const c=q(),s=S({loading:!1,lists:[]}),u=async()=>{try{s.loading=!0,s.lists=await j(),s.loading=!1}catch{s.loading=!1}},v=r=>{var e;(e=c.value)==null||e.open(r)};return u(),(r,e)=>{const w=B,p=L,n=N,m=R,k=V,y=D,h=E("perms"),C=T;return l(),x("div",z,[a(p,{class:"!border-none",shadow:"never"},{default:t(()=>[a(w,{type:"warning",title:"温馨提示:",closable:!1,"show-icon":""},{default:t(()=>[...e[0]||(e[0]=[o("div",null," 1.使用对象存储,需要将public目录下的资源文件保留原来目录路径传输到对象存储空间。 ",-1),o("div",null,"2.请勿随意切换存储方式,可能导致图片无法查看。",-1),o("div",null," 3.需要在对象存储后台设置域名跨域,否则图片生成场景无法使用,例海报合成等。 ",-1),o("div",null," 4.需将对象存储的图片域名添加到微信小程序官方后台request合法域名和downloadFile合法域名。 ",-1)])]),_:1})]),_:1}),f((l(),i(p,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[a(y,{size:"large",data:b(s).lists},{default:t(()=>[a(n,{label:"储存方式",prop:"name","min-width":"120"}),a(n,{label:"储存位置",prop:"path","min-width":"160"}),a(n,{label:"状态","min-width":"80"},{default:t(({row:d})=>[d.status==1?(l(),i(m,{key:0},{default:t(()=>[...e[1]||(e[1]=[_("开启",-1)])]),_:1})):(l(),i(m,{key:1,type:"danger"},{default:t(()=>[...e[2]||(e[2]=[_("关闭",-1)])]),_:1}))]),_:1}),a(n,{label:"操作","min-width":"80",fixed:"right"},{default:t(({row:d})=>[f((l(),i(k,{type:"primary",link:"",onClick:K=>v(d.engine)},{default:t(()=>[...e[3]||(e[3]=[_(" 设置 ",-1)])]),_:1},8,["onClick"])),[[h,["setting.storage/setup"]]])]),_:1})]),_:1},8,["data"])]),_:1})),[[C,b(s).loading]]),a($,{ref_key:"editRef",ref:c,onSuccess:u},null,512)])}}});export{J as default}; diff --git a/server/public/admin/assets/index-D3RMxMTd.js b/server/public/admin/assets/index-_VHyuJqs.js similarity index 98% rename from server/public/admin/assets/index-D3RMxMTd.js rename to server/public/admin/assets/index-_VHyuJqs.js index 680e4e1c6..297a8f9f9 100644 --- a/server/public/admin/assets/index-D3RMxMTd.js +++ b/server/public/admin/assets/index-_VHyuJqs.js @@ -1 +1 @@ -import{o as U,R as M,ap as Z,bp as ee,q as c,r,v as a,D as s,bd as te,bb as le,az as ae,bh as se,bi as ne,aA as oe,bc as ie,K as de,L as d,s as u,bj as _e,ac as A,O as E,T as i,P as T,bk as ce,u as k,bl as ue,bm as re,F as S,a1 as me,w as be,ci as pe,bn as fe,C as ge,M as h,aC as ve}from"./.pnpm-CyuAWpdG.js";import{_ as ke}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{t as he,u as ye}from"./stats-Bao68QGi.js";import{u as Ve}from"./usePaging-CghUEVfD.js";import{j as Y,_ as Ce}from"./index-Dxvz9lb1.js";const Ne={class:"auto-assign-log-page"},xe={class:"toolbar mb-3"},Ee={key:0,class:"toolbar-tip"},Re={class:"cell-sub"},De={class:"cell-sub"},Le={key:0,class:"cell-sub"},Ae={key:2},Se={class:"cell-sub"},Ye={key:1},$e={class:"cell-sub"},ze={key:1,class:"cell-sub"},Be={class:"cell-sub"},Me={key:1,class:"cell-sub"},Te={class:"flex justify-end mt-4"},Ue=U({name:"statsAutoAssignLog"}),je=U({...Ue,setup(Fe){const y=h(null),V=h(null),R=h(),m=h([]),C=h(!1),n=ve({start_date:"",end_date:"",start_time:"",end_time:"",action:"",is_rollback:"",keyword:""});M(y,e=>{n.start_date=(e==null?void 0:e[0])??"",n.end_date=(e==null?void 0:e[1])??""}),M(V,e=>{n.start_time=(e==null?void 0:e[0])??"",n.end_time=(e==null?void 0:e[1])??""});const{pager:f,getLists:D,resetPage:j}=Ve({fetchFun:he,params:n}),b=()=>{var e,l;m.value=[],(l=(e=R.value)==null?void 0:e.clearSelection)==null||l.call(e),j()},F=()=>{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="",b()},L=e=>e==null?"—":`${e}%`,I=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,P=e=>Number(e.can_rollback)===1,w=e=>{m.value=e.filter(l=>Number(l.can_rollback)===1)},$=async e=>{var l,g;if(e.length!==0){await Y.confirm(`确认回退选中的 ${e.length} 条自动分配?将把诊单医助撤回到自动分配前的原医助,并写入指派日志。`),C.value=!0;try{const o=await ye({ids:e}),p=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?Y.msgWarning(`回退成功 ${p} 条,跳过/失败 ${v} 条:${o.messages.slice(0,3).join(";")}`):Y.msgSuccess(`回退成功 ${p} 条`),m.value=[],(g=(l=R.value)==null?void 0:l.clearSelection)==null||g.call(l),await D()}finally{C.value=!1}}},K=()=>{const e=m.value.map(l=>Number(l.id)).filter(l=>l>0);return $(e)},q=e=>{const l=Number((e==null?void 0:e.id)??0);if(!(l<=0))return $([l])};return Z(()=>D()),(e,l)=>{const g=ae,o=le,p=ne,v=se,H=oe,N=de,O=te,z=_e,_=ue,x=re,W=be,G=me,J=ce,Q=ke,B=ee("perms"),X=fe;return c(),r("div",Ne,[a(z,{class:"!border-none",shadow:"never"},{default:s(()=>[a(O,{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:b},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:b},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:b},{default:s(()=>[a(p,{label:"已分配",value:"1"}),a(p,{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:b},{default:s(()=>[a(p,{label:"未回退",value:"0"}),a(p,{label:"已回退",value:"1"})]),_:1},8,["modelValue"])]),_:1}),a(o,{label:"关键词"},{default:s(()=>[a(H,{modelValue:n.keyword,"onUpdate:modelValue":l[4]||(l[4]=t=>n.keyword=t),placeholder:"患者/手机号/医助/诊单ID",clearable:"",class:"w-[220px]",onKeyup:ie(b,["enter"]),onClear:b},null,8,["modelValue"])]),_:1}),a(o,null,{default:s(()=>[a(N,{type:"primary",onClick:b},{default:s(()=>[...l[6]||(l[6]=[d("查询",-1)])]),_:1}),a(N,{onClick:F},{default:s(()=>[...l[7]||(l[7]=[d("重置",-1)])]),_:1})]),_:1})]),_:1}),l[8]||(l[8]=u("div",{class:"log-hint"},[d(" 由每日定时任务「待分配诊单自动指派」写入:按上月二诊复诊接诊率分档轮询分配(>70% 每人3条/日,60%~70% 每人2条/日,50%~60% 每人1条/日,<50% 不分)。「回退」可将已分配医助撤回到自动分配前的原医助(通常为一中心),并写入指派日志(原医助重新接手按「继承」记录)。 "),u("br"),d(" 口径版本:"),u("b",null,"v1 旧口径"),d(" = 分母仅新指派(visit2_rate_new_assign);"),u("b",null,"v2 新口径"),d(" = 每列独立分母,继承按继承时诊次计入(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,[A((c(),E(N,{type:"warning",disabled:m.value.length===0,loading:C.value,onClick:K},{default:s(()=>[d(" 回退选中("+i(m.value.length)+") ",1)]),_:1},8,["disabled","loading"])),[[B,["stats.autoAssignLog/rollback"]]]),m.value.length>0?(c(),r("span",Ee," 已选 "+i(m.value.length)+" 条可回退记录 ",1)):T("",!0)]),A((c(),E(J,{ref_key:"tableRef",ref:R,data:k(f).lists,size:"default",stripe:"","row-key":"id",onSelectionChange:w},{default:s(()=>[a(_,{type:"selection",width:"48",selectable:P,"reserve-selection":""}),a(_,{label:"记录时间",width:"160"},{default:s(({row:t})=>[d(i(t.create_time_text||"—"),1)]),_:1}),a(_,{label:"诊单",width:"90",prop:"diagnosis_id"}),a(_,{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(_,{label:"结果",width:"90",align:"center"},{default:s(({row:t})=>[a(x,{type:Number(t.action)===1?"success":"info",size:"small"},{default:s(()=>[d(i(t.action_text),1)]),_:2},1032,["type"])]),_:1}),a(_,{label:"回退状态",width:"140"},{default:s(({row:t})=>[Number(t.is_rollback)===1?(c(),r(S,{key:0},[a(x,{type:"warning",size:"small"},{default:s(()=>[...l[9]||(l[9]=[d("已回退",-1)])]),_:1}),u("div",De,i(t.rollback_time_text),1),t.rollback_admin_name?(c(),r("div",Le,i(t.rollback_admin_name),1)):T("",!0)],64)):Number(t.can_rollback)===1?(c(),E(x,{key:1,type:"success",size:"small"},{default:s(()=>[...l[10]||(l[10]=[d(" 可回退 ",-1)])]),_:1})):(c(),r("span",Ae,"—"))]),_:1}),a(_,{label:"医助","min-width":"110"},{default:s(({row:t})=>[Number(t.assistant_id)>0?(c(),r(S,{key:0},[u("div",null,i(t.assistant_name||"#"+t.assistant_id),1),u("div",Se,"上月二诊接诊率 "+i(L(I(t))),1)],64)):(c(),r("span",Ye,"—"))]),_:1}),a(_,{label:"档位",width:"100",align:"center"},{default:s(({row:t})=>[d(i(t.tier_text||"—"),1)]),_:1}),a(_,{label:"分档口径","min-width":"150"},{header:s(()=>[l[11]||(l[11]=u("span",null,"分档口径",-1)),a(G,{placement:"top",effect:"dark",content:"本批次分档所用口径;下方为两套口径的上月二诊接诊率(新口径 = 每列独立分母 / 旧口径 = 分母仅新指派)"},{default:s(()=>[a(W,{class:"col-hint"},{default:s(()=>[a(k(pe))]),_:1})]),_:1})]),default:s(({row:t})=>[Number(t.action)===1?(c(),r(S,{key:0},[a(x,{type:t.rate_version==="v2"?"primary":"info",size:"small"},{default:s(()=>[d(i(t.rate_version_text||t.rate_version||"v1"),1)]),_:2},1032,["type"]),u("div",$e," 新口径 "+i(L(t.visit2_rate))+" · 旧口径 "+i(L(t.visit2_rate_new_assign)),1)],64)):(c(),r("span",ze,"—"))]),_:1}),a(_,{label:"轮次",width:"70",align:"center"},{default:s(({row:t})=>[d(i(Number(t.round_no)>0?"第"+t.round_no+"轮":"—"),1)]),_:1}),a(_,{label:"原因","min-width":"280","show-overflow-tooltip":""},{default:s(({row:t})=>[d(i(t.reason),1)]),_:1}),a(_,{label:"统计月",width:"90",prop:"stat_month",align:"center"}),a(_,{label:"批次",width:"160"},{default:s(({row:t})=>[u("span",Be,i(t.batch_no),1)]),_:1}),a(_,{label:"操作",width:"90",fixed:"right",align:"center"},{default:s(({row:t})=>[Number(t.can_rollback)===1?A((c(),E(N,{key:0,link:"",type:"warning",loading:C.value,onClick:Ie=>q(t)},{default:s(()=>[...l[12]||(l[12]=[d(" 回退 ",-1)])]),_:1},8,["loading","onClick"])),[[B,["stats.autoAssignLog/rollback"]]]):(c(),r("span",Me,"—"))]),_:1})]),_:1},8,["data"])),[[X,k(f).loading]]),u("div",Te,[a(Q,{modelValue:k(f),"onUpdate:modelValue":l[5]||(l[5]=t=>ge(f)?f.value=t:null),onChange:k(D)},null,8,["modelValue","onChange"])])]),_:1})])}}}),Oe=Ce(je,[["__scopeId","data-v-c7a53d4f"]]);export{Oe as default}; +import{o as U,R as M,ap as Z,bp as ee,q as c,r,v as a,D as s,bd as te,bb as le,az as ae,bh as se,bi as ne,aA as oe,bc as ie,K as de,L as d,s as u,bj as _e,ac as A,O as E,T as i,P as T,bk as ce,u as k,bl as ue,bm as re,F as S,a1 as me,w as be,ci as pe,bn as fe,C as ge,M as h,aC as ve}from"./.pnpm-CyuAWpdG.js";import{_ as ke}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{t as he,u as ye}from"./stats-B9TgZYZ_.js";import{u as Ve}from"./usePaging-CghUEVfD.js";import{j as Y,_ as Ce}from"./index-Bkarz3gO.js";const Ne={class:"auto-assign-log-page"},xe={class:"toolbar mb-3"},Ee={key:0,class:"toolbar-tip"},Re={class:"cell-sub"},De={class:"cell-sub"},Le={key:0,class:"cell-sub"},Ae={key:2},Se={class:"cell-sub"},Ye={key:1},$e={class:"cell-sub"},ze={key:1,class:"cell-sub"},Be={class:"cell-sub"},Me={key:1,class:"cell-sub"},Te={class:"flex justify-end mt-4"},Ue=U({name:"statsAutoAssignLog"}),je=U({...Ue,setup(Fe){const y=h(null),V=h(null),R=h(),m=h([]),C=h(!1),n=ve({start_date:"",end_date:"",start_time:"",end_time:"",action:"",is_rollback:"",keyword:""});M(y,e=>{n.start_date=(e==null?void 0:e[0])??"",n.end_date=(e==null?void 0:e[1])??""}),M(V,e=>{n.start_time=(e==null?void 0:e[0])??"",n.end_time=(e==null?void 0:e[1])??""});const{pager:f,getLists:D,resetPage:j}=Ve({fetchFun:he,params:n}),b=()=>{var e,l;m.value=[],(l=(e=R.value)==null?void 0:e.clearSelection)==null||l.call(e),j()},F=()=>{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="",b()},L=e=>e==null?"—":`${e}%`,I=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,P=e=>Number(e.can_rollback)===1,w=e=>{m.value=e.filter(l=>Number(l.can_rollback)===1)},$=async e=>{var l,g;if(e.length!==0){await Y.confirm(`确认回退选中的 ${e.length} 条自动分配?将把诊单医助撤回到自动分配前的原医助,并写入指派日志。`),C.value=!0;try{const o=await ye({ids:e}),p=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?Y.msgWarning(`回退成功 ${p} 条,跳过/失败 ${v} 条:${o.messages.slice(0,3).join(";")}`):Y.msgSuccess(`回退成功 ${p} 条`),m.value=[],(g=(l=R.value)==null?void 0:l.clearSelection)==null||g.call(l),await D()}finally{C.value=!1}}},K=()=>{const e=m.value.map(l=>Number(l.id)).filter(l=>l>0);return $(e)},q=e=>{const l=Number((e==null?void 0:e.id)??0);if(!(l<=0))return $([l])};return Z(()=>D()),(e,l)=>{const g=ae,o=le,p=ne,v=se,H=oe,N=de,O=te,z=_e,_=ue,x=re,W=be,G=me,J=ce,Q=ke,B=ee("perms"),X=fe;return c(),r("div",Ne,[a(z,{class:"!border-none",shadow:"never"},{default:s(()=>[a(O,{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:b},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:b},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:b},{default:s(()=>[a(p,{label:"已分配",value:"1"}),a(p,{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:b},{default:s(()=>[a(p,{label:"未回退",value:"0"}),a(p,{label:"已回退",value:"1"})]),_:1},8,["modelValue"])]),_:1}),a(o,{label:"关键词"},{default:s(()=>[a(H,{modelValue:n.keyword,"onUpdate:modelValue":l[4]||(l[4]=t=>n.keyword=t),placeholder:"患者/手机号/医助/诊单ID",clearable:"",class:"w-[220px]",onKeyup:ie(b,["enter"]),onClear:b},null,8,["modelValue"])]),_:1}),a(o,null,{default:s(()=>[a(N,{type:"primary",onClick:b},{default:s(()=>[...l[6]||(l[6]=[d("查询",-1)])]),_:1}),a(N,{onClick:F},{default:s(()=>[...l[7]||(l[7]=[d("重置",-1)])]),_:1})]),_:1})]),_:1}),l[8]||(l[8]=u("div",{class:"log-hint"},[d(" 由每日定时任务「待分配诊单自动指派」写入:按上月二诊复诊接诊率分档轮询分配(>70% 每人3条/日,60%~70% 每人2条/日,50%~60% 每人1条/日,<50% 不分)。「回退」可将已分配医助撤回到自动分配前的原医助(通常为一中心),并写入指派日志(原医助重新接手按「继承」记录)。 "),u("br"),d(" 口径版本:"),u("b",null,"v1 旧口径"),d(" = 分母仅新指派(visit2_rate_new_assign);"),u("b",null,"v2 新口径"),d(" = 每列独立分母,继承按继承时诊次计入(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,[A((c(),E(N,{type:"warning",disabled:m.value.length===0,loading:C.value,onClick:K},{default:s(()=>[d(" 回退选中("+i(m.value.length)+") ",1)]),_:1},8,["disabled","loading"])),[[B,["stats.autoAssignLog/rollback"]]]),m.value.length>0?(c(),r("span",Ee," 已选 "+i(m.value.length)+" 条可回退记录 ",1)):T("",!0)]),A((c(),E(J,{ref_key:"tableRef",ref:R,data:k(f).lists,size:"default",stripe:"","row-key":"id",onSelectionChange:w},{default:s(()=>[a(_,{type:"selection",width:"48",selectable:P,"reserve-selection":""}),a(_,{label:"记录时间",width:"160"},{default:s(({row:t})=>[d(i(t.create_time_text||"—"),1)]),_:1}),a(_,{label:"诊单",width:"90",prop:"diagnosis_id"}),a(_,{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(_,{label:"结果",width:"90",align:"center"},{default:s(({row:t})=>[a(x,{type:Number(t.action)===1?"success":"info",size:"small"},{default:s(()=>[d(i(t.action_text),1)]),_:2},1032,["type"])]),_:1}),a(_,{label:"回退状态",width:"140"},{default:s(({row:t})=>[Number(t.is_rollback)===1?(c(),r(S,{key:0},[a(x,{type:"warning",size:"small"},{default:s(()=>[...l[9]||(l[9]=[d("已回退",-1)])]),_:1}),u("div",De,i(t.rollback_time_text),1),t.rollback_admin_name?(c(),r("div",Le,i(t.rollback_admin_name),1)):T("",!0)],64)):Number(t.can_rollback)===1?(c(),E(x,{key:1,type:"success",size:"small"},{default:s(()=>[...l[10]||(l[10]=[d(" 可回退 ",-1)])]),_:1})):(c(),r("span",Ae,"—"))]),_:1}),a(_,{label:"医助","min-width":"110"},{default:s(({row:t})=>[Number(t.assistant_id)>0?(c(),r(S,{key:0},[u("div",null,i(t.assistant_name||"#"+t.assistant_id),1),u("div",Se,"上月二诊接诊率 "+i(L(I(t))),1)],64)):(c(),r("span",Ye,"—"))]),_:1}),a(_,{label:"档位",width:"100",align:"center"},{default:s(({row:t})=>[d(i(t.tier_text||"—"),1)]),_:1}),a(_,{label:"分档口径","min-width":"150"},{header:s(()=>[l[11]||(l[11]=u("span",null,"分档口径",-1)),a(G,{placement:"top",effect:"dark",content:"本批次分档所用口径;下方为两套口径的上月二诊接诊率(新口径 = 每列独立分母 / 旧口径 = 分母仅新指派)"},{default:s(()=>[a(W,{class:"col-hint"},{default:s(()=>[a(k(pe))]),_:1})]),_:1})]),default:s(({row:t})=>[Number(t.action)===1?(c(),r(S,{key:0},[a(x,{type:t.rate_version==="v2"?"primary":"info",size:"small"},{default:s(()=>[d(i(t.rate_version_text||t.rate_version||"v1"),1)]),_:2},1032,["type"]),u("div",$e," 新口径 "+i(L(t.visit2_rate))+" · 旧口径 "+i(L(t.visit2_rate_new_assign)),1)],64)):(c(),r("span",ze,"—"))]),_:1}),a(_,{label:"轮次",width:"70",align:"center"},{default:s(({row:t})=>[d(i(Number(t.round_no)>0?"第"+t.round_no+"轮":"—"),1)]),_:1}),a(_,{label:"原因","min-width":"280","show-overflow-tooltip":""},{default:s(({row:t})=>[d(i(t.reason),1)]),_:1}),a(_,{label:"统计月",width:"90",prop:"stat_month",align:"center"}),a(_,{label:"批次",width:"160"},{default:s(({row:t})=>[u("span",Be,i(t.batch_no),1)]),_:1}),a(_,{label:"操作",width:"90",fixed:"right",align:"center"},{default:s(({row:t})=>[Number(t.can_rollback)===1?A((c(),E(N,{key:0,link:"",type:"warning",loading:C.value,onClick:Ie=>q(t)},{default:s(()=>[...l[12]||(l[12]=[d(" 回退 ",-1)])]),_:1},8,["loading","onClick"])),[[B,["stats.autoAssignLog/rollback"]]]):(c(),r("span",Me,"—"))]),_:1})]),_:1},8,["data"])),[[X,k(f).loading]]),u("div",Te,[a(Q,{modelValue:k(f),"onUpdate:modelValue":l[5]||(l[5]=t=>ge(f)?f.value=t:null),onChange:k(D)},null,8,["modelValue","onChange"])])]),_:1})])}}}),Oe=Ce(je,[["__scopeId","data-v-c7a53d4f"]]);export{Oe as default}; diff --git a/server/public/admin/assets/index-deCJ4ja-.css b/server/public/admin/assets/index-deCJ4ja-.css new file mode 100644 index 000000000..e813b7a84 --- /dev/null +++ b/server/public/admin/assets/index-deCJ4ja-.css @@ -0,0 +1 @@ +.icon-select[data-v-352f3746]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.app-breadcrumb[data-v-94d84829] .el-breadcrumb__item .el-breadcrumb__inner{color:#303133;font-weight:500}.app-breadcrumb[data-v-94d84829] .el-breadcrumb__item:last-child .el-breadcrumb__inner{color:#303133}.app-breadcrumb[data-v-94d84829] .el-breadcrumb__separator{color:#606266}.app-tabs[data-v-414a904e]{border-top-width:1px;border-color:var(--el-border-color)}.app-tabs[data-v-414a904e] .el-tabs{height:40px}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__header{margin-bottom:0}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__content{display:none}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__nav-next,.app-tabs[data-v-414a904e] .el-tabs .el-tabs__nav-prev{font-size:var( --el-font-size-large)}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__nav-wrap:after{height:0}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__item{font-weight:400;padding:0 15px!important;box-sizing:border-box}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__item.is-active{color:var(--el-text-color-primary);background-color:var(--el-color-primary-light-9)}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__item.is-active:before{content:"";display:inline-block;width:6px;height:6px;background-color:var(--el-color-primary);margin-right:6px;border-radius:50%;vertical-align:2px}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__item.is-active:after{position:absolute;content:"";display:block;top:0;height:2px;left:0;width:100%;background-color:var(--el-color-primary)}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__item .is-icon-close{color:var(--el-text-color-regular);vertical-align:-2px}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__item .is-icon-close:hover{color:var(--color-white);background-color:var(--el-color-danger)}.app-tabs[data-v-414a904e] .el-tabs .el-tabs__active-bar{display:none}.navbar{height:var(--navbar-height);display:flex;background-color:var(--el-bg-color);padding-left:8px;padding-right:8px}.navbar .navbar-item{display:flex;height:100%;align-items:center;justify-content:center}.navbar .navbar-item:hover{background-color:var(--el-bg-color-page)}.el-image[data-v-275301c7]{display:block}.el-image .el-image__error[data-v-275301c7]{font-size:var(--el-font-size-extra-small)}.logo[data-v-590d56e3]{height:var(--navbar-height);overflow:hidden;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;display:flex;align-items:center;padding:8px}.logo .logo-title[data-v-590d56e3]{width:70%;position:absolute;font-size:var( --el-font-size-large)}.logo .title-width-enter-active[data-v-590d56e3]{opacity:0;transition:all .3s ease-out}.logo .title-width-leave-active[data-v-590d56e3]{transition:all .3s cubic-bezier(1,.5,.8,1)}.logo .title-width-enter-from[data-v-590d56e3],.logo .title-width-leave-to[data-v-590d56e3]{width:0;opacity:0}.el-menu-item .menu-item-icon[data-v-65172b69],.el-sub-menu__title .menu-item-icon[data-v-65172b69]{margin-right:8px;width:var(--el-menu-icon-width);text-align:center;vertical-align:middle}.menu.theme-dark .el-menu[data-v-6c529f19] .el-menu-item.is-active{border-color:var(--el-color-primary);background-color:var(--el-color-primary)}.menu.theme-dark[data-v-6c529f19] .el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{background-color:var(--el-color-primary)!important}.menu.theme-light[data-v-6c529f19] .el-menu .el-menu-item{border-color:transparent}.menu.theme-light[data-v-6c529f19] .el-menu .el-menu-item.is-active{border-right-width:2px;border-color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)}.menu.theme-light[data-v-6c529f19] .el-menu .el-menu-item:hover,.menu.theme-light[data-v-6c529f19] .el-menu .el-sub-menu__title:hover{color:var(--el-color-primary)}.menu .el-menu[data-v-6c529f19]{border-right:none}.menu .el-menu[data-v-6c529f19]:not(.el-menu--collapse){width:var(--aside-width)}.side[data-v-ed43753e]{position:relative;z-index:999;display:flex;height:100%;flex-direction:column;border-right-width:1px;border-color:var(--el-border-color-light);background-color:var(--side-dark-color, var(--el-bg-color))}.sidebar[data-v-7243bf96] .el-drawer__body{padding:0}:root.dark{color-scheme:dark;--table-header-bg-color: var(--el-bg-color);--el-bg-color-page: #0a0a0a;--el-bg-color: #1d2124;--el-bg-color-overlay: #1d1e1f;--el-text-color-primary: #e5eaf3;--el-text-color-regular: #cfd3dc;--el-text-color-secondary: #a3a6ad;--el-text-color-placeholder: #8d9095;--el-text-color-disabled: #6c6e72;--el-border-color-darker: #636466;--el-border-color-dark: #58585b;--el-border-color: #4c4d4f;--el-border-color-light: #414243;--el-border-color-lighter: #363637;--el-border-color-extra-light: #2b2b2c;--el-fill-color-darker: #424243;--el-fill-color-dark: #39393a;--el-fill-color: #303030;--el-fill-color-light: #262727;--el-fill-color-lighter: #1d1d1d;--el-fill-color-extra-light: #191919;--el-fill-color-blank: var(--el-bg-color);--el-mask-color: rgba(0, 0, 0, .8);--el-mask-color-extra-light: rgba(0, 0, 0, .3);--el-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .36), 0px 8px 20px rgba(0, 0, 0, .72);--el-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .72);--el-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .72);--el-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .72), 0px 12px 32px #000000, 0px 8px 16px -8px #000000 !important;--w-e-textarea-bg-color: var(--el-bg-color);--w-e-textarea-color: var(--el-text-color-primary);--w-e-textarea-border-color: var(--el-border-color);--w-e-textarea-slight-border-color: var(--el-border-color-light);--w-e-textarea-slight-color: var(--el-border-color);--w-e-textarea-slight-bg-color: var(--el-bg-color-page);--w-e-toolbar-color: var(--el-text-color-primary);--w-e-toolbar-bg-color: var(--el-bg-color);--w-e-toolbar-active-color: var(--el-text-color-primary);--w-e-toolbar-active-bg-color: var(--el-bg-color);--w-e-toolbar-disabled-color: var(--el-text-color-disabled);--w-e-toolbar-border-color: var(--el-border-color);--w-e-modal-button-bg-color: var(--el-bg-color);--w-e-modal-button-border-color: var(--el-border-color)}:root{--el-font-family: PingFang SC, Arial, Hiragino Sans GB, Microsoft YaHei, sans-serif;--el-font-weight-primary: 400;--el-menu-item-height: 46px;--el-menu-sub-item-height: var(--el-menu-item-height);--el-menu-icon-width: 18px;--aside-width: 200px;--navbar-height: 50px;--color-white: #ffffff;--table-header-bg-color: #f8f8f8;--el-font-size-extra-large: 18px;--el-menu-base-level-padding: 16px;--el-menu-level-padding: 26px;--el-font-size-large: 16px;--el-font-size-medium: 15px;--el-font-size-base: 14px;--el-font-size-small: 13px;--el-font-size-extra-small: 12px;--el-bg-color: var(--color-white);--el-bg-color-page: #f6f6f6;--el-bg-color-overlay: #ffffff;--el-text-color-primary: #333333;--el-text-color-regular: #666666;--el-text-color-secondary: #999999;--el-text-color-placeholder: #a8abb2;--el-text-color-disabled: #c0c4cc;--el-border-color: #dcdfe6;--el-border-color-light: #e4e7ed;--el-border-color-lighter: #ebeef5;--el-border-color-extra-light: #f2f2f2;--el-border-color-dark: #d4d7de;--el-border-color-darker: #cdd0d6;--el-fill-color: #f0f2f5;--el-fill-color-light: #f8f8f8;--el-fill-color-lighter: #fafafa;--el-fill-color-extra-light: #fafcff;--el-fill-color-dark: #ebedf0;--el-fill-color-darker: #e6e8eb;--el-fill-color-blank: #ffffff;--el-mask-color: rgba(255, 255, 255, .5);--el-mask-color-extra-light: rgba(255, 255, 255, .22);-el-box-shadow:0px 12px 32px 4px rgba(0,0,0,.04),0px 8px 20px rgba(0,0,0,.08);--el-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .12);--el-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .12);--el-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .08), 0px 12px 32px rgba(0, 0, 0, .12), 0px 8px 16px -8px rgba(0, 0, 0, .16)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:PingFang SC,Arial,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-right-6{right:-24px}.-top-8{top:-32px}.bottom-0{bottom:0}.left-0{left:0}.left-1\/2{left:50%}.right-4{right:16px}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:16px}.z-\[100\]{z-index:100}.\!m-0{margin:0!important}.m-0{margin:0}.m-1{margin:4px}.m-4{margin:16px}.m-5{margin:20px}.mx-1{margin-left:4px;margin-right:4px}.mx-10{margin-left:40px;margin-right:40px}.mx-2{margin-left:8px;margin-right:8px}.mx-4{margin-left:16px;margin-right:16px}.mx-\[10px\]{margin-left:10px;margin-right:10px}.mx-\[18px\]{margin-left:18px;margin-right:18px}.mx-\[30px\]{margin-left:30px;margin-right:30px}.mx-auto{margin-left:auto;margin-right:auto}.my-\[15px\]{margin-top:15px;margin-bottom:15px}.\!mb-0{margin-bottom:0!important}.\!mb-3{margin-bottom:12px!important}.\!mt-0{margin-top:0!important}.-mt-1{margin-top:-4px}.-mt-2{margin-top:-8px}.mb-0\.5{margin-bottom:2px}.mb-1{margin-bottom:4px}.mb-1\.5{margin-bottom:6px}.mb-10{margin-bottom:40px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-5{margin-bottom:20px}.mb-6{margin-bottom:24px}.mb-7{margin-bottom:28px}.mb-8{margin-bottom:32px}.mb-\[-16px\]{margin-bottom:-16px}.mb-\[10px\]{margin-bottom:10px}.mb-\[15px\]{margin-bottom:15px}.mb-\[16px\]{margin-bottom:16px}.mb-\[18px\]{margin-bottom:18px}.mb-\[20px\]{margin-bottom:20px}.mb-\[24px\]{margin-bottom:24px}.mb-auto{margin-bottom:auto}.ml-0\.5{margin-left:2px}.ml-1{margin-left:4px}.ml-2{margin-left:8px}.ml-2\.5{margin-left:10px}.ml-3{margin-left:12px}.ml-4{margin-left:16px}.ml-5{margin-left:20px}.ml-\[100px\]{margin-left:100px}.ml-\[101px\]{margin-left:101px}.ml-\[10px\]{margin-left:10px}.ml-\[14px\]{margin-left:14px}.ml-\[30px\]{margin-left:30px}.ml-\[40px\]{margin-left:40px}.ml-\[5px\]{margin-left:5px}.ml-\[6px\]{margin-left:6px}.ml-auto{margin-left:auto}.mr-1{margin-right:4px}.mr-2{margin-right:8px}.mr-3{margin-right:12px}.mr-4{margin-right:16px}.mr-5{margin-right:20px}.mr-6{margin-right:24px}.mr-\[10px\]{margin-right:10px}.mr-\[20px\]{margin-right:20px}.mr-\[35px\]{margin-right:35px}.mr-auto{margin-right:auto}.mt-0\.5{margin-top:2px}.mt-1{margin-top:4px}.mt-1\.5{margin-top:6px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-5{margin-top:20px}.mt-7{margin-top:28px}.mt-8{margin-top:32px}.mt-\[-10px\]{margin-top:-10px}.mt-\[10px\]{margin-top:10px}.mt-\[12px\]{margin-top:12px}.mt-\[15px\]{margin-top:15px}.mt-\[16px\]{margin-top:16px}.mt-\[18px\]{margin-top:18px}.mt-\[20px\]{margin-top:20px}.mt-\[30px\]{margin-top:30px}.mt-\[40px\]{margin-top:40px}.mt-\[4px\]{margin-top:4px}.mt-\[7px\]{margin-top:7px}.mt-\[8px\]{margin-top:8px}.mt-auto{margin-top:auto}.box-border{box-sizing:border-box}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-video{aspect-ratio:16 / 9}.size-full{width:100%;height:100%}.\!h-auto{height:auto!important}.\!h-full{height:100%!important}.h-10{height:40px}.h-16{height:64px}.h-28{height:112px}.h-5{height:20px}.h-64{height:256px}.h-\[122px\]{height:122px}.h-\[150px\]{height:150px}.h-\[16px\]{height:16px}.h-\[280px\]{height:280px}.h-\[34px\]{height:34px}.h-\[400px\]{height:400px}.h-\[50px\]{height:50px}.h-\[530px\]{height:530px}.h-\[58px\]{height:58px}.h-\[60px\]{height:60px}.h-\[90px\]{height:90px}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[320px\]{max-height:320px}.min-h-0{min-height:0px}.min-h-\[100px\]{min-height:100px}.min-h-\[350px\]{min-height:350px}.min-h-\[52px\]{min-height:52px}.min-h-\[56px\]{min-height:56px}.min-h-\[668px\]{min-height:668px}.min-h-screen{min-height:100vh}.\!w-40{width:160px!important}.\!w-\[120px\]{width:120px!important}.\!w-\[130px\]{width:130px!important}.\!w-\[140px\]{width:140px!important}.\!w-\[160px\]{width:160px!important}.\!w-\[180px\]{width:180px!important}.\!w-\[200px\]{width:200px!important}.\!w-\[260px\]{width:260px!important}.\!w-\[280px\]{width:280px!important}.\!w-full{width:100%!important}.w-1\/2{width:50%}.w-1\/4{width:25%}.w-10{width:40px}.w-14{width:56px}.w-16{width:64px}.w-20{width:80px}.w-28{width:112px}.w-48{width:192px}.w-5{width:20px}.w-60{width:240px}.w-64{width:256px}.w-80{width:320px}.w-\[120px\]{width:120px}.w-\[122px\]{width:122px}.w-\[130px\]{width:130px}.w-\[136px\]{width:136px}.w-\[140px\]{width:140px}.w-\[150px\]{width:150px}.w-\[160px\]{width:160px}.w-\[170px\]{width:170px}.w-\[180px\]{width:180px}.w-\[200px\]{width:200px}.w-\[20px\]{width:20px}.w-\[220px\]{width:220px}.w-\[260px\]{width:260px}.w-\[280px\]{width:280px}.w-\[300px\]{width:300px}.w-\[34px\]{width:34px}.w-\[380px\]{width:380px}.w-\[396px\]{width:396px}.w-\[400px\]{width:400px}.w-\[467px\]{width:467px}.w-\[480px\]{width:480px}.w-\[500px\]{width:500px}.w-\[560px\]{width:560px}.w-\[58px\]{width:58px}.w-\[60px\]{width:60px}.w-\[640px\]{width:640px}.w-\[86px\]{width:86px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[100px\]{min-width:100px}.min-w-\[1100px\]{min-width:1100px}.min-w-\[140px\]{min-width:140px}.min-w-\[200px\]{min-width:200px}.min-w-\[900px\]{min-width:900px}.max-w-52{max-width:208px}.max-w-\[1200px\]{max-width:1200px}.max-w-\[150px\]{max-width:150px}.max-w-\[320px\]{max-width:320px}.max-w-\[400px\]{max-width:400px}.max-w-\[640px\]{max-width:640px}.max-w-\[900px\]{max-width:900px}.max-w-full{max-width:100%}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.basis-40{flex-basis:160px}.border-collapse{border-collapse:collapse}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-pointer{cursor:pointer}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.\!items-start{align-items:flex-start!important}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:2px}.gap-1{gap:4px}.gap-1\.5{gap:6px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-x-2{-moz-column-gap:8px;column-gap:8px}.gap-x-3{-moz-column-gap:12px;column-gap:12px}.gap-x-4{-moz-column-gap:16px;column-gap:16px}.gap-y-1{row-gap:4px}.gap-y-2{row-gap:8px}.gap-y-3{row-gap:12px}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2px * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(4px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4px * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(6px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(6px * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(8px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(8px * var(--tw-space-y-reverse))}.self-end{align-self:flex-end}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\!whitespace-normal{white-space:normal!important}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[3px\]{border-radius:3px}.rounded-\[8px\]{border-radius:8px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.\!border-2{border-width:2px!important}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.\!border-none{border-style:none!important}.\!border-red-500{--tw-border-opacity: 1 !important;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))!important}.border-\[\#dcdfe6\]{--tw-border-opacity: 1;border-color:rgb(220 223 230 / var(--tw-border-opacity, 1))}.border-\[\#e5e5e5\]{--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity, 1))}.border-\[\#f2f2f2\]{--tw-border-opacity: 1;border-color:rgb(242 242 242 / var(--tw-border-opacity, 1))}.border-\[\#f5f5f5\]{--tw-border-opacity: 1;border-color:rgb(245 245 245 / var(--tw-border-opacity, 1))}.border-amber-100{--tw-border-opacity: 1;border-color:rgb(254 243 199 / var(--tw-border-opacity, 1))}.border-amber-200\/80{border-color:#fde68acc}.border-br{border-color:var(--el-border-color)}.border-br-light{border-color:var(--el-border-color-light)}.border-emerald-100{--tw-border-opacity: 1;border-color:rgb(209 250 229 / var(--tw-border-opacity, 1))}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-primary{border-color:var(--el-color-primary)}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-200\/90{border-color:#e2e8f0e6}.\!bg-primary{background-color:var(--el-color-primary)!important}.bg-\[\#f3f8ff\]{--tw-bg-opacity: 1;background-color:rgb(243 248 255 / var(--tw-bg-opacity, 1))}.bg-\[rgba\(0\,0\,0\,0\.3\)\]{background-color:#0000004d}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/50{background-color:#fffbeb80}.bg-body{background-color:var(--el-bg-color)}.bg-br-extra-light{background-color:var(--el-border-color-extra-light)}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-fill-light{background-color:var(--el-fill-color-light)}.bg-fill-lighter{background-color:var(--el-fill-color-lighter)}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-50\/50{background-color:#f9fafb80}.bg-gray-50\/80{background-color:#f9fafbcc}.bg-page{background-color:var(--el-bg-color-page)}.bg-primary{background-color:var(--el-color-primary)}.bg-primary-light-9{background-color:var(--el-color-primary-light-9)}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-sky-500\/10{background-color:#0ea5e91a}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-white{background-color:var(--color-white)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-slate-50{--tw-gradient-from: #f8fafc var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-white{--tw-gradient-to: var(--color-white) var(--tw-gradient-to-position)}.bg-center{background-position:center}.bg-no-repeat{background-repeat:no-repeat}.object-contain{-o-object-fit:contain;object-fit:contain}.\!p-0{padding:0!important}.\!p-3{padding:12px!important}.p-0{padding:0}.p-1{padding:4px}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.p-5{padding:20px}.p-\[15px\]{padding:15px}.px-1{padding-left:4px;padding-right:4px}.px-1\.5{padding-left:6px;padding-right:6px}.px-10{padding-left:40px;padding-right:40px}.px-2{padding-left:8px;padding-right:8px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}.px-5{padding-left:20px;padding-right:20px}.px-6{padding-left:24px;padding-right:24px}.px-\[10px\]{padding-left:10px;padding-right:10px}.px-\[12px\]{padding-left:12px;padding-right:12px}.px-\[15px\]{padding-left:15px;padding-right:15px}.px-\[20px\]{padding-left:20px;padding-right:20px}.px-\[25px\]{padding-left:25px;padding-right:25px}.py-0\.5{padding-top:2px;padding-bottom:2px}.py-1\.5{padding-top:6px;padding-bottom:6px}.py-10{padding-top:40px;padding-bottom:40px}.py-2{padding-top:8px;padding-bottom:8px}.py-3\.5{padding-top:14px;padding-bottom:14px}.py-4{padding-top:16px;padding-bottom:16px}.py-5{padding-top:20px;padding-bottom:20px}.py-6{padding-top:24px;padding-bottom:24px}.py-8{padding-top:32px;padding-bottom:32px}.py-\[10px\]{padding-top:10px;padding-bottom:10px}.py-\[16px\]{padding-top:16px;padding-bottom:16px}.py-\[18px\]{padding-top:18px;padding-bottom:18px}.py-\[5px\]{padding-top:5px;padding-bottom:5px}.pb-1{padding-bottom:4px}.pb-2{padding-bottom:8px}.pb-3{padding-bottom:12px}.pb-5{padding-bottom:20px}.pb-6{padding-bottom:24px}.pb-8{padding-bottom:32px}.pb-\[10px\]{padding-bottom:10px}.pb-\[50px\]{padding-bottom:50px}.pb-\[8px\]{padding-bottom:8px}.pl-0{padding-left:0}.pl-2{padding-left:8px}.pl-4{padding-left:16px}.pl-5{padding-left:20px}.pl-\[120px\]{padding-left:120px}.pl-\[84px\]{padding-left:84px}.pl-\[90px\]{padding-left:90px}.pl-\[96px\]{padding-left:96px}.pr-1{padding-right:4px}.pr-10{padding-right:40px}.pr-2{padding-right:8px}.pr-4{padding-right:16px}.pr-8{padding-right:32px}.pt-1{padding-top:4px}.pt-1\.5{padding-top:6px}.pt-2{padding-top:8px}.pt-4{padding-top:16px}.pt-\[15px\]{padding-top:15px}.pt-\[20px\]{padding-top:20px}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:var( --el-font-size-extra-large)}.text-3xl{font-size:20px}.text-4xl{font-size:24px}.text-6xl{font-size:30px}.text-\[1\.125rem\]{font-size:1.125rem}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[17px\]{font-size:17px}.text-\[18px\]{font-size:18px}.text-base{font-size:var( --el-font-size-base)}.text-lg{font-size:var( --el-font-size-medium)}.text-sm{font-size:var( --el-font-size-small)}.text-xl{font-size:var( --el-font-size-large)}.text-xs{font-size:var(--el-font-size-extra-small)}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-10{line-height:40px}.leading-3{line-height:12px}.leading-5{line-height:20px}.leading-6{line-height:24px}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[0\.06em\]{letter-spacing:.06em}.tracking-tight{letter-spacing:-.025em}.\!text-red-700{--tw-text-opacity: 1 !important;color:rgb(185 28 28 / var(--tw-text-opacity, 1))!important}.\!text-white{color:var(--color-white)!important}.text-\[\#101010\]{--tw-text-opacity: 1;color:rgb(16 16 16 / var(--tw-text-opacity, 1))}.text-\[\#136bdf\]{--tw-text-opacity: 1;color:rgb(19 107 223 / var(--tw-text-opacity, 1))}.text-\[\#333\]{--tw-text-opacity: 1;color:rgb(51 51 51 / var(--tw-text-opacity, 1))}.text-\[\#999\]{--tw-text-opacity: 1;color:rgb(153 153 153 / var(--tw-text-opacity, 1))}.text-\[var\(--el-color-danger\)\]{color:var(--el-color-danger)}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-danger{color:var(--el-color-danger)}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-error{color:var(--el-color-error)}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-info{color:var(--el-color-info)}.text-orange-500{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-primary{color:var(--el-color-primary)}.text-red-100{--tw-text-opacity: 1;color:rgb(254 226 226 / var(--tw-text-opacity, 1))}.text-red-100\/85{color:#fee2e2d9}.text-red-100\/90{color:#fee2e2e6}.text-red-50{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-sky-500{--tw-text-opacity: 1;color:rgb(14 165 233 / var(--tw-text-opacity, 1))}.text-sky-600{--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.text-sky-700{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-success{color:var(--el-color-success)}.text-tx-regular{color:var(--el-text-color-regular)}.text-tx-secondary{color:var(--el-text-color-secondary)}.text-warning{color:var(--el-color-warning)}.text-white{color:var(--color-white)}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-40{opacity:.4}.shadow{--tw-shadow: var(--el-box-shadow);--tw-shadow-colored: var(--el-box-shadow);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-red-500\/10{--tw-shadow-color: rgb(239 68 68 / .1);--tw-shadow: var(--tw-shadow-colored)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-red-600\/70{--tw-ring-color: rgb(220 38 38 / .7)}.ring-red-600\/90{--tw-ring-color: rgb(220 38 38 / .9)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}:root .el-message{z-index:9999!important}:root .el-notification{z-index:9999!important}:root .el-overlay-dialog{display:flex;justify-content:center;align-items:center;min-height:100%;position:static}:root .el-overlay-dialog .el-dialog{--el-dialog-content-font-size: var(--el-font-size-base);--el-dialog-margin-top: 50px;max-width:calc(100vw - 30px);flex:none;display:flex;flex-direction:column;border-radius:5px}:root .el-overlay-dialog .el-dialog.body-padding .el-dialog__body{padding:0}:root .el-overlay-dialog .el-dialog .el-dialog__body{flex:1;padding:15px 20px}:root .el-overlay-dialog .el-dialog .el-dialog__header{font-size:var(--el-font-size-large)}:root .el-menu{-webkit-user-select:none;-moz-user-select:none;user-select:none}:root .el-drawer{--el-drawer-padding-primary: 16px}:root .el-drawer__header{margin-bottom:0;padding:13px 16px;border-bottom:1px solid var(--el-border-color-lighter)}:root .el-drawer__title{color:var(--el-text-color-primary)}:root .el-table{--el-table-header-text-color: var(--el-text-color-primary);--el-table-header-bg-color: var(--table-header-bg-color);font-size:var(--el-font-size-base)}:root .el-table thead th{font-weight:400}:root .el-input-group__prepend{background-color:var(--el-fill-color-blank)}:root .el-checkbox{--el-checkbox-font-size: var(--el-font-size-base)}:root .el-menu--popup-container.theme-light .el-menu .el-menu-item.is-active{border-right-width:2px;border-color:var(--el-color-primary);background-color:var(--el-color-primary-light-9)}:root .el-menu--popup-container.theme-light .el-menu .el-menu-item:hover,:root .el-menu--popup-container.theme-light .el-menu .el-sub-menu__title:hover{color:var(--el-color-primary)}:root .el-menu--popup-container.theme-dark .el-menu .el-menu-item.is-active{background-color:var(--el-color-primary)}:root .el-message-box{--el-messagebox-width: 350px}:root .el-date-editor{--el-date-editor-datetimerange-width: 380px}:root .el-date-editor .el-range-input{font-size:var(--el-font-size-small)}:root .el-button--primary{--el-button-hover-link-text-color: var(--el-color-primary-light-3)}:root .el-button--success{--el-button-hover-link-text-color: var(--el-color-success-light-3)}:root .el-button--info{--el-button-hover-link-text-color: var(--el-color-info-light-3)}:root .el-button--warning{--el-button-hover-link-text-color: var(--el-color-warning-light-3)}:root .el-button--danger{--el-button-hover-link-text-color: var(--el-color-danger-light-3)}:root .el-image__error{font-size:12px}:root .el-tabs__nav-wrap:after{height:1px}:root .el-page-header__breadcrumb{margin-bottom:0}:root .el-input,:root .el-select,:root .el-textarea{--tw-shadow-color: var(--el-color-primary-light-8);--tw-shadow: var(--tw-shadow-colored);box-shadow:0 0 0 0 var(--tw-shadow-color)}:root .el-input:focus-within,:root .el-select:focus-within,:root .el-textarea:focus-within{box-shadow:0 0 0 2px var(--tw-shadow-color);border-radius:var(--el-input-border-radius, var(--el-border-radius-base));transition:box-shadow ease .1s}:root .el-checkbox__input,:root .el-radio__input{--tw-shadow-color: var(--el-color-primary-light-8);--tw-shadow: var(--tw-shadow-colored);border-radius:var(--el-checkbox-border-radius);box-shadow:0 0 0 0 var(--tw-shadow-color)}:root .el-checkbox__input:active,:root .el-radio__input:active{box-shadow:0 0 0 2px var(--tw-shadow-color);transition:box-shadow ease 0s}:root .el-radio__input{border-radius:var(--el-radio-input-border-radius)}:root .el-form-item.is-error .el-input,:root .el-form-item.is-error .el-select,:root .el-form-item.is-error .el-textarea,:root .el-form-item.is-error .el-radio__input,:root .el-form-item.is-error .el-checkbox{--tw-shadow-color: var(--el-color-danger-light-8);--tw-shadow: var(--tw-shadow-colored)}@media (max-width: 768px){.el-pagination>.el-pagination__jump{display:none!important}.el-pagination>.el-pagination__sizes{display:none!important}}.el-button{background-color:var(--el-button-bg-color, var(--el-color-white))}.el-button:focus{color:var(--el-button-text-color);border-color:var(--el-button-border-color);background-color:var(--el-button-bg-color)}.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color)}body{min-width:375px;overflow:hidden;font-size:var( --el-font-size-base);color:var(--el-text-color-primary)}.form-tips{margin-top:4px;font-size:var(--el-font-size-extra-small);line-height:24px;color:var(--el-text-color-secondary)}.clearfix:after{content:"";display:block;clear:both;visibility:hidden}#nprogress .bar{background-color:var(--el-color-primary)!important}.before\:mr-2:before{content:var(--tw-content);margin-right:8px}.before\:block:before{content:var(--tw-content);display:block}.before\:h-\[14px\]:before{content:var(--tw-content);height:14px}.before\:w-\[3px\]:before{content:var(--tw-content);width:3px}.before\:bg-primary:before{content:var(--tw-content);background-color:var(--el-color-primary)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:text-primary:hover{color:var(--el-color-primary)}.hover\:underline:hover{text-decoration-line:underline}.dark\:text-\[\#ffffff\]:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:flex{display:flex}.sm\:h-\[600px\]{height:600px}.sm\:w-80{width:320px}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:text-\[28px\]{font-size:28px}.sm\:text-sm{font-size:var( --el-font-size-small)}}@media (min-width: 768px){.md\:inline-block{display:inline-block}.md\:w-1\/3{width:33.333333%}.md\:w-1\/4{width:25%}.md\:w-\[420px\]{width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:ml-4{margin-left:16px}.lg\:mt-0{margin-top:0}.lg\:flex{display:flex}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (min-width: 1280px){.xl\:ml-20{margin-left:80px}.xl\:mr-4{margin-right:16px}.xl\:flex{display:flex}}.chat-notify-container[data-v-9276baf6]{position:fixed;top:72px;right:24px;z-index:3000;display:flex;flex-direction:column;gap:12px;max-width:360px;pointer-events:none}.chat-notify-container[data-v-9276baf6]>*{pointer-events:auto}.chat-notify-card[data-v-9276baf6]{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid rgba(34,197,94,.2);border-radius:12px;box-shadow:0 4px 20px #00000014,0 0 0 1px #22c55e0f;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}html.dark .chat-notify-card[data-v-9276baf6]{background:linear-gradient(135deg,#1e293b,#0f172a);border-color:#22c55e4d;box-shadow:0 4px 20px #0000004d}.chat-notify-card[data-v-9276baf6]:hover{transform:translate(-2px);box-shadow:0 6px 24px #0000001a,0 0 0 1px #22c55e1f}html.dark .chat-notify-card[data-v-9276baf6]:hover{box-shadow:0 6px 24px #0006}.chat-notify-icon[data-v-9276baf6]{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border-radius:10px}.chat-notify-icon-complete[data-v-9276baf6]{background:linear-gradient(135deg,#3b82f6,#2563eb)}.chat-notify-card-left[data-v-9276baf6]{border-color:#94a3b859;box-shadow:0 4px 20px #0000000f,0 0 0 1px #94a3b814}.chat-notify-icon-left[data-v-9276baf6]{background:linear-gradient(135deg,#94a3b8,#64748b)}.chat-notify-body[data-v-9276baf6]{flex:1;min-width:0}.chat-notify-title[data-v-9276baf6]{font-size:14px;font-weight:600;color:#0f172a;margin-bottom:4px}html.dark .chat-notify-title[data-v-9276baf6]{color:#f1f5f9}.chat-notify-desc[data-v-9276baf6]{font-size:13px;color:#475569;line-height:1.45}html.dark .chat-notify-desc[data-v-9276baf6]{color:#94a3b8}.patient-name[data-v-9276baf6]{font-weight:600;color:#16a34a}.doctor-name[data-v-9276baf6]{font-weight:600;color:#2563eb}.chat-notify-time[data-v-9276baf6]{font-size:12px;color:#94a3b8;margin-top:6px}html.dark .chat-notify-time[data-v-9276baf6]{color:#64748b}.chat-notify-close[data-v-9276baf6]{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;transition:color .2s,background .2s}.chat-notify-close[data-v-9276baf6]:hover{color:#64748b;background:#0000000d}html.dark .chat-notify-close[data-v-9276baf6]:hover{color:#94a3b8;background:#ffffff14}.chat-notify-slide-enter-active[data-v-9276baf6],.chat-notify-slide-leave-active[data-v-9276baf6]{transition:all .3s ease}.chat-notify-slide-enter-from[data-v-9276baf6],.chat-notify-slide-leave-to[data-v-9276baf6]{opacity:0;transform:translate(24px)}.chat-notify-slide-move[data-v-9276baf6]{transition:transform .3s ease}.rd-toast[data-v-7c5efeca]{position:fixed;right:24px;bottom:24px;z-index:3000;width:400px;max-width:calc(100vw - 48px);max-height:calc(100vh - 120px);display:flex;flex-direction:column;background:#fff;border:1px solid rgba(239,68,68,.25);border-left:4px solid #ef4444;border-radius:12px;box-shadow:0 8px 28px #0f172a24;overflow:hidden;font-size:13px;color:#0f172a}html.dark .rd-toast[data-v-7c5efeca]{background:#0f172a;border-color:#f8717159;color:#f1f5f9;box-shadow:0 8px 28px #00000073}.rd-toast--level-1[data-v-7c5efeca]{border-left-color:#f97316}.rd-toast--level-1 .rd-toast__header[data-v-7c5efeca]{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff}.rd-toast--level-2[data-v-7c5efeca]{border-left-color:#dc2626;border-color:#dc262673}.rd-toast--level-2 .rd-toast__header[data-v-7c5efeca]{background:linear-gradient(135deg,#ef4444,#b91c1c);color:#fff}.rd-toast--level-1 .rd-toast__snoozed[data-v-7c5efeca],.rd-toast--level-2 .rd-toast__snoozed[data-v-7c5efeca]{background:#ffffff38;color:#fff}.rd-toast--level-1 .rd-toast__min[data-v-7c5efeca],.rd-toast--level-2 .rd-toast__min[data-v-7c5efeca]{color:#ffffffe6}.rd-toast--level-1 .rd-toast__min[data-v-7c5efeca]:hover{background:#ffffff2e}.rd-toast--shake[data-v-7c5efeca]{animation:rd-shake-7c5efeca .6s ease-in-out}@keyframes rd-shake-7c5efeca{0%,to{transform:translate(0)}15%{transform:translate(-6px)}30%{transform:translate(6px)}45%{transform:translate(-4px)}60%{transform:translate(4px)}75%{transform:translate(-2px)}}.rd-toast__header[data-v-7c5efeca]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px 10px 14px;background:#fef2f2;color:#991b1b}html.dark .rd-toast__header[data-v-7c5efeca]{background:#ef44441f;color:#fca5a5}.rd-toast__title[data-v-7c5efeca]{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;min-width:0}.rd-toast__warn[data-v-7c5efeca]{font-size:15px;line-height:1}.rd-toast__snoozed[data-v-7c5efeca]{margin-left:4px;padding:1px 8px;border-radius:999px;background:#ef44441f;font-size:12px;font-weight:500}.rd-toast__min[data-v-7c5efeca]{flex-shrink:0;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:transparent;color:inherit;cursor:pointer;opacity:.85}.rd-toast__min[data-v-7c5efeca]:hover{background:#0000000f;opacity:1}.rd-toast--minimized[data-v-7c5efeca]{width:auto;border-left-width:1px}.rd-toast__bubble[data-v-7c5efeca]{display:flex;align-items:center;gap:6px;padding:10px 14px;border:none;background:transparent;color:#b91c1c;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}html.dark .rd-toast__bubble[data-v-7c5efeca]{color:#fca5a5}.rd-toast__list[data-v-7c5efeca]{flex:1;min-height:0;overflow-y:auto}.rd-item[data-v-7c5efeca]{padding:10px 14px;border-top:1px solid rgba(15,23,42,.06)}html.dark .rd-item[data-v-7c5efeca]{border-top-color:#ffffff14}.rd-item--severe[data-v-7c5efeca]{background:#ef44440a}html.dark .rd-item--severe[data-v-7c5efeca]{background:#ef444414}.rd-item__line[data-v-7c5efeca]{display:flex;align-items:center;flex-wrap:wrap;gap:6px;line-height:1.5}.rd-item__line--status[data-v-7c5efeca]{margin-top:4px}.rd-item__name[data-v-7c5efeca]{font-size:14px;font-weight:600}.rd-item__meta[data-v-7c5efeca]{color:#475569}html.dark .rd-item__meta[data-v-7c5efeca]{color:#94a3b8}.rd-item__tag[data-v-7c5efeca]{font-size:12px;color:#64748b}html.dark .rd-item__tag[data-v-7c5efeca]{color:#94a3b8}.rd-chip[data-v-7c5efeca]{display:inline-flex;align-items:center;padding:0 8px;height:20px;border-radius:999px;font-size:12px;font-weight:600;color:#fff;background:#ef4444}.rd-chip--missed[data-v-7c5efeca]{background:#dc2626}.rd-chip--severe[data-v-7c5efeca]{background:#991b1b;font-weight:700}.rd-item__actions[data-v-7c5efeca]{display:flex;gap:6px;margin-top:8px}.rd-item__actions[data-v-7c5efeca] .el-button+.el-button{margin-left:0}.rd-contact[data-v-7c5efeca]{display:grid;grid-template-columns:1fr;gap:6px;margin-top:8px;padding:8px;border-radius:8px;background:#3b82f60f}html.dark .rd-contact[data-v-7c5efeca]{background:#3b82f624}.rd-contact__date[data-v-7c5efeca] .el-input{width:100%}.rd-contact__btns[data-v-7c5efeca]{display:flex;gap:6px;justify-content:flex-end}.rd-contact__btns[data-v-7c5efeca] .el-button+.el-button{margin-left:0}.rd-toast__more[data-v-7c5efeca]{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-top:1px solid rgba(15,23,42,.06);color:#64748b;font-size:12px}html.dark .rd-toast__more[data-v-7c5efeca]{border-top-color:#ffffff14;color:#94a3b8}.rd-toast__footer[data-v-7c5efeca]{padding:8px 14px 12px;border-top:1px solid rgba(15,23,42,.06);display:flex;justify-content:flex-end}html.dark .rd-toast__footer[data-v-7c5efeca]{border-top-color:#ffffff14}body.h5-mode .rd-toast[data-v-7c5efeca]{left:0;right:0;bottom:0;width:auto;max-width:none;border-radius:12px 12px 0 0;border-left-width:1px;max-height:70vh}body.h5-mode .rd-item__actions[data-v-7c5efeca]{flex-wrap:wrap}.rd-toast-fade-enter-active[data-v-7c5efeca],.rd-toast-fade-leave-active[data-v-7c5efeca]{transition:opacity .25s ease,transform .25s ease}.rd-toast-fade-enter-from[data-v-7c5efeca],.rd-toast-fade-leave-to[data-v-7c5efeca]{opacity:0;transform:translateY(12px)}.rd-modal__title[data-v-7c5efeca]{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:600;color:#b91c1c}html.dark .rd-modal__title[data-v-7c5efeca]{color:#fca5a5}.rd-modal__body[data-v-7c5efeca]{display:flex;flex-direction:column;gap:6px}.rd-modal__name[data-v-7c5efeca]{font-size:18px;font-weight:700}.rd-modal__meta[data-v-7c5efeca]{color:#475569}html.dark .rd-modal__meta[data-v-7c5efeca]{color:#94a3b8}.rd-contact--modal[data-v-7c5efeca]{margin-top:10px}.rd-modal__footer[data-v-7c5efeca]{display:flex;justify-content:flex-end;gap:8px}.rd-modal__footer[data-v-7c5efeca] .el-button+.el-button{margin-left:0}.rd-toast-popper{z-index:3200!important} diff --git a/server/public/admin/assets/index-D6JjdB2D.js b/server/public/admin/assets/index-nC9ifQFX.js similarity index 95% rename from server/public/admin/assets/index-D6JjdB2D.js rename to server/public/admin/assets/index-nC9ifQFX.js index b9de231c2..538541eb7 100644 --- a/server/public/admin/assets/index-D6JjdB2D.js +++ b/server/public/admin/assets/index-nC9ifQFX.js @@ -1 +1 @@ -import{o as ce,ap as ge,q as n,r as k,v as t,D as l,bd as ye,bb as ve,aA as be,bc as ke,az as we,K as Ve,L as i,bj as Ee,s as x,T as C,P as w,Y as xe,X as Ce,ac as he,O as f,bk as Re,bl as Ue,aa as Se,bt as ze,bm as De,bn as Ae,bu as Te,bf as Be,bq as Le,bh as Oe,F as Pe,G as je,bi as qe,aB as Fe,M as m,aC as A,p as Ie,E as V,e as M}from"./.pnpm-CyuAWpdG.js";import{a as Me,b as N,c as Ne,d as Ye,e as $e}from"./asset-CMies7fs.js";import{_ as Ke}from"./picker-BDO86vcM.js";import{U as Y}from"./index-BU3OYnKm.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./file-CefRfHD9.js";import"./usePaging-CghUEVfD.js";const Ge={class:"asset-resource-container"},Qe={class:"mb-4 flex items-center gap-2"},Xe={key:0,class:"text-sm text-gray-500"},He={key:1},Je={class:"mt-4 flex justify-end"},We={key:0,class:"w-full"},Ze=["title"],_t=ce({__name:"index",setup(et){const h=m(!1),T=m([]),B=m(0),c=m([]),r=A({title:"",dateRange:[]}),u=A({type:"1",page_no:1,page_size:15}),v=m(!1),R=m(!1),U=m(),g=m(!1),S=m(0),L=m([]),s=A({type:1,title:"",file_url:"",cover_url:"",user_ids:[]}),$=(a,e,d)=>{if(Array.isArray(e)){if(!e.length)return d(new Error("请上传资源文件"))}else if(!e)return d(new Error("请输入或上传文件获取链接"));d()},K=Ie(()=>g.value?{title:[{required:!0,message:"请输入标题",trigger:"blur"}]}:{title:[{required:!0,message:"请输入标题",trigger:"blur"}],file_url:[{required:!0,validator:$,trigger:"change"}]}),G=()=>{const a={...u};return r.title&&(a.title=r.title),r.dateRange&&r.dateRange.length===2&&(a.start_time=r.dateRange[0],a.end_time=r.dateRange[1]),a},_=async()=>{h.value=!0;try{const a=await Me(G());T.value=a.lists,B.value=a.count,c.value=[]}catch(a){console.error(a)}finally{h.value=!1}},O=async()=>{try{const a=await $e({page_no:1,page_size:9999});L.value=a.lists}catch(a){console.error(a)}},P=()=>{u.page_no=1,_()},Q=()=>{r.title="",r.dateRange=[],u.page_no=1,_()},X=()=>{u.page_no=1,_()},H=()=>{g.value=!1,S.value=0,Object.assign(s,{type:parseInt(u.type),title:"",file_url:"",cover_url:"",user_ids:[]}),O(),v.value=!0},J=a=>{var e;g.value=!0,S.value=a.id,Object.assign(s,{type:a.type,title:a.title,file_url:a.file_url,cover_url:a.cover_url||"",user_ids:((e=a.users)==null?void 0:e.map(d=>d.id))||[]}),O(),v.value=!0},j=a=>{var e,d;s.file_url=((e=a==null?void 0:a.data)==null?void 0:e.uri)||((d=a==null?void 0:a.data)==null?void 0:d.url)||"",V.success("上传成功")},W=async a=>{try{await M.confirm("确定要删除该资源吗?用户将无法再看到。","提示",{type:"warning"}),await N({id:a.id}),V.success("删除成功"),_()}catch{}},Z=a=>{c.value=a.map(e=>Number(e.id)).filter(e=>e>0)},ee=async()=>{if(c.value.length)try{await M.confirm(`确定要删除选中的 ${c.value.length} 个资源吗?用户将无法再看到。`,"提示",{type:"warning"}),await N({id:c.value}),V.success("删除成功"),_()}catch{}},te=async()=>{U.value&&await U.value.validate(async a=>{if(a){R.value=!0;try{g.value?(await Ne({id:S.value,title:s.title,user_ids:s.user_ids}),V.success("编辑成功")):(await Ye(s),V.success("上传分发成功")),v.value=!1,_()}catch(e){console.error(e)}finally{R.value=!1}}})};return ge(()=>{_()}),(a,e)=>{const d=be,y=ve,le=we,p=Ve,q=ye,F=Ee,z=Ce,ae=xe,b=Ue,oe=Se,se=ze,ne=De,ie=Re,re=Te,D=Le,ue=Be,de=qe,pe=Oe,me=Fe,_e=Ae;return n(),k("div",Ge,[t(F,{class:"!border-none",shadow:"never"},{default:l(()=>[t(q,{class:"ls-form",model:r,inline:""},{default:l(()=>[t(y,{class:"w-[280px]",label:"标题"},{default:l(()=>[t(d,{placeholder:"请输入标题关键词",modelValue:r.title,"onUpdate:modelValue":e[0]||(e[0]=o=>r.title=o),clearable:"",onKeyup:ke(P,["enter"])},null,8,["modelValue"])]),_:1}),t(y,{label:"上传时间"},{default:l(()=>[t(le,{modelValue:r.dateRange,"onUpdate:modelValue":e[1]||(e[1]=o=>r.dateRange=o),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",clearable:"",style:{width:"280px"}},null,8,["modelValue"])]),_:1}),t(y,null,{default:l(()=>[t(p,{type:"primary",onClick:P},{default:l(()=>[...e[11]||(e[11]=[i("查询",-1)])]),_:1}),t(p,{onClick:Q},{default:l(()=>[...e[12]||(e[12]=[i("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),t(F,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[x("div",Qe,[t(p,{type:"primary",onClick:H},{default:l(()=>[...e[13]||(e[13]=[i("上传资源",-1)])]),_:1}),t(p,{type:"danger",disabled:c.value.length===0,onClick:ee},{default:l(()=>[...e[14]||(e[14]=[i(" 批量删除 ",-1)])]),_:1},8,["disabled"]),c.value.length>0?(n(),k("span",Xe,"已选 "+C(c.value.length)+" 条",1)):w("",!0)]),t(ae,{modelValue:u.type,"onUpdate:modelValue":e[2]||(e[2]=o=>u.type=o),onTabChange:X},{default:l(()=>[t(z,{label:"图片",name:"1"}),t(z,{label:"视频",name:"2"}),t(z,{label:"语音",name:"3"})]),_:1},8,["modelValue"]),he((n(),f(ie,{data:T.value,onSelectionChange:Z},{default:l(()=>[t(b,{type:"selection",width:"55"}),t(b,{prop:"title",label:"标题","min-width":"80"}),t(b,{label:"预览",width:"100"},{default:l(({row:o})=>[o.type==1?(n(),f(oe,{key:0,src:o.file_url,style:{width:"50px",height:"50px"},"preview-src-list":[o.file_url],"preview-teleported":""},null,8,["src","preview-src-list"])):(n(),f(se,{key:1,href:o.file_url,target:"_blank",type:"primary"},{default:l(()=>[...e[15]||(e[15]=[i("点击预览",-1)])]),_:1},8,["href"]))]),_:1}),t(b,{label:"关联账号","min-width":"150","show-overflow-tooltip":""},{default:l(({row:o})=>{var E,I;return[(E=o.users)!=null&&E.length?(n(),k("span",He,C((I=o.users)==null?void 0:I.map(fe=>fe.phone).join(", ")),1)):(n(),f(ne,{key:0,type:"info",size:"small"},{default:l(()=>[...e[16]||(e[16]=[i("公开资源",-1)])]),_:1}))]}),_:1}),t(b,{prop:"create_time",label:"上传时间",width:"180"}),t(b,{label:"操作",width:"150",fixed:"right"},{default:l(({row:o})=>[t(p,{type:"primary",link:"",onClick:E=>J(o)},{default:l(()=>[...e[17]||(e[17]=[i("编辑",-1)])]),_:1},8,["onClick"]),t(p,{type:"danger",link:"",onClick:E=>W(o)},{default:l(()=>[...e[18]||(e[18]=[i("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[_e,h.value]]),x("div",Je,[t(re,{"current-page":u.page_no,"onUpdate:currentPage":e[3]||(e[3]=o=>u.page_no=o),"page-size":u.page_size,"onUpdate:pageSize":e[4]||(e[4]=o=>u.page_size=o),total:B.value,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:_,onCurrentChange:_},null,8,["current-page","page-size","total"])])]),_:1}),t(me,{modelValue:v.value,"onUpdate:modelValue":e[10]||(e[10]=o=>v.value=o),title:g.value?"编辑资源":"新增分发资源",width:"600px","destroy-on-close":""},{footer:l(()=>[t(p,{onClick:e[9]||(e[9]=o=>v.value=!1)},{default:l(()=>[...e[26]||(e[26]=[i("取消",-1)])]),_:1}),t(p,{type:"primary",onClick:te,loading:R.value},{default:l(()=>[i(C(g.value?"保存修改":"确定发布"),1)]),_:1},8,["loading"])]),default:l(()=>[t(q,{ref_key:"formRef",ref:U,model:s,rules:K.value,"label-width":"100px"},{default:l(()=>[g.value?w("",!0):(n(),f(y,{key:0,label:"资源类型",prop:"type"},{default:l(()=>[t(ue,{modelValue:s.type,"onUpdate:modelValue":e[5]||(e[5]=o=>s.type=o)},{default:l(()=>[t(D,{label:1},{default:l(()=>[...e[19]||(e[19]=[i("图片",-1)])]),_:1}),t(D,{label:2},{default:l(()=>[...e[20]||(e[20]=[i("视频",-1)])]),_:1}),t(D,{label:3},{default:l(()=>[...e[21]||(e[21]=[i("语音",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})),t(y,{label:"标题",prop:"title"},{default:l(()=>[t(d,{modelValue:s.title,"onUpdate:modelValue":e[6]||(e[6]=o=>s.title=o),placeholder:"请输入资源标题"},null,8,["modelValue"])]),_:1}),g.value?w("",!0):(n(),f(y,{key:1,label:"资源文件",prop:"file_url"},{default:l(()=>[s.type===1?(n(),k("div",We,[t(Ke,{modelValue:s.file_url,"onUpdate:modelValue":e[7]||(e[7]=o=>s.file_url=o),limit:9,type:"image"},null,8,["modelValue"]),e[22]||(e[22]=x("div",{style:{"font-size":"12px",color:"#909399","margin-top":"4px"}},"支持批量上传多张图片,一次最多 9 张,每张图片将生成一条独立资源(多张时标题自动追加序号)",-1))])):s.type===2?(n(),f(Y,{key:1,type:"video",direct:"",multiple:!1,limit:1,"show-progress":!0,onSuccess:j},{default:l(()=>[t(p,{type:"primary"},{default:l(()=>[...e[23]||(e[23]=[i("上传视频 (OSS直传)",-1)])]),_:1})]),_:1})):s.type===3?(n(),f(Y,{key:2,type:"voice",direct:"",multiple:!1,limit:1,"show-progress":!0,onSuccess:j},{default:l(()=>[t(p,{type:"primary"},{default:l(()=>[...e[24]||(e[24]=[i("上传语音 (OSS直传)",-1)])]),_:1})]),_:1})):w("",!0),s.file_url&&s.type!==1?(n(),k("div",{key:3,class:"ml-4 text-primary truncate max-w-xs",title:s.file_url}," 已上传: "+C(s.file_url),9,Ze)):w("",!0)]),_:1})),t(y,{label:"关联账号",prop:"user_ids"},{default:l(()=>[t(pe,{modelValue:s.user_ids,"onUpdate:modelValue":e[8]||(e[8]=o=>s.user_ids=o),multiple:"",filterable:"",placeholder:"不选择则为公开资源",clearable:"",style:{width:"100%"}},{default:l(()=>[(n(!0),k(Pe,null,je(L.value,o=>(n(),f(de,{key:o.id,label:o.phone,value:o.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e[25]||(e[25]=x("div",{style:{"font-size":"12px",color:"#909399","margin-top":"4px"}},"不选择账号则资源为公开资源,所有人可见",-1))]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}});export{_t as default}; +import{o as ce,ap as ge,q as n,r as k,v as t,D as l,bd as ye,bb as ve,aA as be,bc as ke,az as we,K as Ve,L as i,bj as Ee,s as x,T as C,P as w,Y as xe,X as Ce,ac as he,O as f,bk as Re,bl as Ue,aa as Se,bt as ze,bm as De,bn as Ae,bu as Te,bf as Be,bq as Le,bh as Oe,F as Pe,G as je,bi as qe,aB as Fe,M as m,aC as A,p as Ie,E as V,e as M}from"./.pnpm-CyuAWpdG.js";import{a as Me,b as N,c as Ne,d as Ye,e as $e}from"./asset-LsxWDUaP.js";import{_ as Ke}from"./picker-BTh9eW9u.js";import{U as Y}from"./index-BJZwRQXE.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./file-BjbV-eNx.js";import"./usePaging-CghUEVfD.js";const Ge={class:"asset-resource-container"},Qe={class:"mb-4 flex items-center gap-2"},Xe={key:0,class:"text-sm text-gray-500"},He={key:1},Je={class:"mt-4 flex justify-end"},We={key:0,class:"w-full"},Ze=["title"],_t=ce({__name:"index",setup(et){const h=m(!1),T=m([]),B=m(0),c=m([]),r=A({title:"",dateRange:[]}),u=A({type:"1",page_no:1,page_size:15}),v=m(!1),R=m(!1),U=m(),g=m(!1),S=m(0),L=m([]),s=A({type:1,title:"",file_url:"",cover_url:"",user_ids:[]}),$=(a,e,d)=>{if(Array.isArray(e)){if(!e.length)return d(new Error("请上传资源文件"))}else if(!e)return d(new Error("请输入或上传文件获取链接"));d()},K=Ie(()=>g.value?{title:[{required:!0,message:"请输入标题",trigger:"blur"}]}:{title:[{required:!0,message:"请输入标题",trigger:"blur"}],file_url:[{required:!0,validator:$,trigger:"change"}]}),G=()=>{const a={...u};return r.title&&(a.title=r.title),r.dateRange&&r.dateRange.length===2&&(a.start_time=r.dateRange[0],a.end_time=r.dateRange[1]),a},_=async()=>{h.value=!0;try{const a=await Me(G());T.value=a.lists,B.value=a.count,c.value=[]}catch(a){console.error(a)}finally{h.value=!1}},O=async()=>{try{const a=await $e({page_no:1,page_size:9999});L.value=a.lists}catch(a){console.error(a)}},P=()=>{u.page_no=1,_()},Q=()=>{r.title="",r.dateRange=[],u.page_no=1,_()},X=()=>{u.page_no=1,_()},H=()=>{g.value=!1,S.value=0,Object.assign(s,{type:parseInt(u.type),title:"",file_url:"",cover_url:"",user_ids:[]}),O(),v.value=!0},J=a=>{var e;g.value=!0,S.value=a.id,Object.assign(s,{type:a.type,title:a.title,file_url:a.file_url,cover_url:a.cover_url||"",user_ids:((e=a.users)==null?void 0:e.map(d=>d.id))||[]}),O(),v.value=!0},j=a=>{var e,d;s.file_url=((e=a==null?void 0:a.data)==null?void 0:e.uri)||((d=a==null?void 0:a.data)==null?void 0:d.url)||"",V.success("上传成功")},W=async a=>{try{await M.confirm("确定要删除该资源吗?用户将无法再看到。","提示",{type:"warning"}),await N({id:a.id}),V.success("删除成功"),_()}catch{}},Z=a=>{c.value=a.map(e=>Number(e.id)).filter(e=>e>0)},ee=async()=>{if(c.value.length)try{await M.confirm(`确定要删除选中的 ${c.value.length} 个资源吗?用户将无法再看到。`,"提示",{type:"warning"}),await N({id:c.value}),V.success("删除成功"),_()}catch{}},te=async()=>{U.value&&await U.value.validate(async a=>{if(a){R.value=!0;try{g.value?(await Ne({id:S.value,title:s.title,user_ids:s.user_ids}),V.success("编辑成功")):(await Ye(s),V.success("上传分发成功")),v.value=!1,_()}catch(e){console.error(e)}finally{R.value=!1}}})};return ge(()=>{_()}),(a,e)=>{const d=be,y=ve,le=we,p=Ve,q=ye,F=Ee,z=Ce,ae=xe,b=Ue,oe=Se,se=ze,ne=De,ie=Re,re=Te,D=Le,ue=Be,de=qe,pe=Oe,me=Fe,_e=Ae;return n(),k("div",Ge,[t(F,{class:"!border-none",shadow:"never"},{default:l(()=>[t(q,{class:"ls-form",model:r,inline:""},{default:l(()=>[t(y,{class:"w-[280px]",label:"标题"},{default:l(()=>[t(d,{placeholder:"请输入标题关键词",modelValue:r.title,"onUpdate:modelValue":e[0]||(e[0]=o=>r.title=o),clearable:"",onKeyup:ke(P,["enter"])},null,8,["modelValue"])]),_:1}),t(y,{label:"上传时间"},{default:l(()=>[t(le,{modelValue:r.dateRange,"onUpdate:modelValue":e[1]||(e[1]=o=>r.dateRange=o),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",clearable:"",style:{width:"280px"}},null,8,["modelValue"])]),_:1}),t(y,null,{default:l(()=>[t(p,{type:"primary",onClick:P},{default:l(()=>[...e[11]||(e[11]=[i("查询",-1)])]),_:1}),t(p,{onClick:Q},{default:l(()=>[...e[12]||(e[12]=[i("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),t(F,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[x("div",Qe,[t(p,{type:"primary",onClick:H},{default:l(()=>[...e[13]||(e[13]=[i("上传资源",-1)])]),_:1}),t(p,{type:"danger",disabled:c.value.length===0,onClick:ee},{default:l(()=>[...e[14]||(e[14]=[i(" 批量删除 ",-1)])]),_:1},8,["disabled"]),c.value.length>0?(n(),k("span",Xe,"已选 "+C(c.value.length)+" 条",1)):w("",!0)]),t(ae,{modelValue:u.type,"onUpdate:modelValue":e[2]||(e[2]=o=>u.type=o),onTabChange:X},{default:l(()=>[t(z,{label:"图片",name:"1"}),t(z,{label:"视频",name:"2"}),t(z,{label:"语音",name:"3"})]),_:1},8,["modelValue"]),he((n(),f(ie,{data:T.value,onSelectionChange:Z},{default:l(()=>[t(b,{type:"selection",width:"55"}),t(b,{prop:"title",label:"标题","min-width":"80"}),t(b,{label:"预览",width:"100"},{default:l(({row:o})=>[o.type==1?(n(),f(oe,{key:0,src:o.file_url,style:{width:"50px",height:"50px"},"preview-src-list":[o.file_url],"preview-teleported":""},null,8,["src","preview-src-list"])):(n(),f(se,{key:1,href:o.file_url,target:"_blank",type:"primary"},{default:l(()=>[...e[15]||(e[15]=[i("点击预览",-1)])]),_:1},8,["href"]))]),_:1}),t(b,{label:"关联账号","min-width":"150","show-overflow-tooltip":""},{default:l(({row:o})=>{var E,I;return[(E=o.users)!=null&&E.length?(n(),k("span",He,C((I=o.users)==null?void 0:I.map(fe=>fe.phone).join(", ")),1)):(n(),f(ne,{key:0,type:"info",size:"small"},{default:l(()=>[...e[16]||(e[16]=[i("公开资源",-1)])]),_:1}))]}),_:1}),t(b,{prop:"create_time",label:"上传时间",width:"180"}),t(b,{label:"操作",width:"150",fixed:"right"},{default:l(({row:o})=>[t(p,{type:"primary",link:"",onClick:E=>J(o)},{default:l(()=>[...e[17]||(e[17]=[i("编辑",-1)])]),_:1},8,["onClick"]),t(p,{type:"danger",link:"",onClick:E=>W(o)},{default:l(()=>[...e[18]||(e[18]=[i("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[_e,h.value]]),x("div",Je,[t(re,{"current-page":u.page_no,"onUpdate:currentPage":e[3]||(e[3]=o=>u.page_no=o),"page-size":u.page_size,"onUpdate:pageSize":e[4]||(e[4]=o=>u.page_size=o),total:B.value,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:_,onCurrentChange:_},null,8,["current-page","page-size","total"])])]),_:1}),t(me,{modelValue:v.value,"onUpdate:modelValue":e[10]||(e[10]=o=>v.value=o),title:g.value?"编辑资源":"新增分发资源",width:"600px","destroy-on-close":""},{footer:l(()=>[t(p,{onClick:e[9]||(e[9]=o=>v.value=!1)},{default:l(()=>[...e[26]||(e[26]=[i("取消",-1)])]),_:1}),t(p,{type:"primary",onClick:te,loading:R.value},{default:l(()=>[i(C(g.value?"保存修改":"确定发布"),1)]),_:1},8,["loading"])]),default:l(()=>[t(q,{ref_key:"formRef",ref:U,model:s,rules:K.value,"label-width":"100px"},{default:l(()=>[g.value?w("",!0):(n(),f(y,{key:0,label:"资源类型",prop:"type"},{default:l(()=>[t(ue,{modelValue:s.type,"onUpdate:modelValue":e[5]||(e[5]=o=>s.type=o)},{default:l(()=>[t(D,{label:1},{default:l(()=>[...e[19]||(e[19]=[i("图片",-1)])]),_:1}),t(D,{label:2},{default:l(()=>[...e[20]||(e[20]=[i("视频",-1)])]),_:1}),t(D,{label:3},{default:l(()=>[...e[21]||(e[21]=[i("语音",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})),t(y,{label:"标题",prop:"title"},{default:l(()=>[t(d,{modelValue:s.title,"onUpdate:modelValue":e[6]||(e[6]=o=>s.title=o),placeholder:"请输入资源标题"},null,8,["modelValue"])]),_:1}),g.value?w("",!0):(n(),f(y,{key:1,label:"资源文件",prop:"file_url"},{default:l(()=>[s.type===1?(n(),k("div",We,[t(Ke,{modelValue:s.file_url,"onUpdate:modelValue":e[7]||(e[7]=o=>s.file_url=o),limit:9,type:"image"},null,8,["modelValue"]),e[22]||(e[22]=x("div",{style:{"font-size":"12px",color:"#909399","margin-top":"4px"}},"支持批量上传多张图片,一次最多 9 张,每张图片将生成一条独立资源(多张时标题自动追加序号)",-1))])):s.type===2?(n(),f(Y,{key:1,type:"video",direct:"",multiple:!1,limit:1,"show-progress":!0,onSuccess:j},{default:l(()=>[t(p,{type:"primary"},{default:l(()=>[...e[23]||(e[23]=[i("上传视频 (OSS直传)",-1)])]),_:1})]),_:1})):s.type===3?(n(),f(Y,{key:2,type:"voice",direct:"",multiple:!1,limit:1,"show-progress":!0,onSuccess:j},{default:l(()=>[t(p,{type:"primary"},{default:l(()=>[...e[24]||(e[24]=[i("上传语音 (OSS直传)",-1)])]),_:1})]),_:1})):w("",!0),s.file_url&&s.type!==1?(n(),k("div",{key:3,class:"ml-4 text-primary truncate max-w-xs",title:s.file_url}," 已上传: "+C(s.file_url),9,Ze)):w("",!0)]),_:1})),t(y,{label:"关联账号",prop:"user_ids"},{default:l(()=>[t(pe,{modelValue:s.user_ids,"onUpdate:modelValue":e[8]||(e[8]=o=>s.user_ids=o),multiple:"",filterable:"",placeholder:"不选择则为公开资源",clearable:"",style:{width:"100%"}},{default:l(()=>[(n(!0),k(Pe,null,je(L.value,o=>(n(),f(de,{key:o.id,label:o.phone,value:o.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e[25]||(e[25]=x("div",{style:{"font-size":"12px",color:"#909399","margin-top":"4px"}},"不选择账号则资源为公开资源,所有人可见",-1))]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}});export{_t as default}; diff --git a/server/public/admin/assets/index-Cg1Oldbs.js b/server/public/admin/assets/index-nanEoHJF.js similarity index 99% rename from server/public/admin/assets/index-Cg1Oldbs.js rename to server/public/admin/assets/index-nanEoHJF.js index c24ab1643..e3e134851 100644 --- a/server/public/admin/assets/index-Cg1Oldbs.js +++ b/server/public/admin/assets/index-nanEoHJF.js @@ -1,3 +1,3 @@ -import{o as I,ap as ge,ac as he,bn as ye,q as d,r as u,s as e,v as s,D as r,u as c,cH as G,w as ke,cQ as we,L as b,T as a,P as D,bz as Ce,K as Ne,bA as xe,cR as De,O as z,az as Ve,bL as $e,F as N,G as V,bi as Se,bh as Le,ae as x,cg as Me,cn as ze,cG as Ee,cS as Fe,at as W,t as q,bC as Te,cL as Oe,cT as Re,bl as Ue,bk as Be,ci as Pe,aC as H,M as E,p as $,E as O}from"./.pnpm-CyuAWpdG.js";import{b as je}from"./first_visit-BxZL4Ke4.js";import{_ as Ae}from"./index-Dxvz9lb1.js";const Ye={class:"doctor-dashboard","element-loading-text":"正在汇总医生经营数据"},Ge={class:"page-heading"},We={class:"heading-copy"},qe={class:"heading-mark"},He={class:"heading-actions"},Ie={class:"scope-chip"},Ke={key:0,class:"update-time"},Qe={class:"filter-strip"},Ze={class:"filter-item filter-item--time"},Je={key:0,class:"filter-item"},Xe={class:"filter-item"},et={class:"filter-item filter-item--status"},tt={class:"view-switch"},lt={class:"metric-grid","aria-label":"医生经营核心指标"},nt={class:"metric-card metric-card--teal"},at={class:"metric-icon"},ot={class:"metric-card metric-card--green"},st={class:"metric-icon"},it={class:"metric-card metric-card--indigo"},rt={class:"metric-icon"},dt={class:"metric-card metric-card--blue"},ut={class:"metric-icon"},ct={class:"metric-card metric-card--orange"},mt={class:"metric-icon"},_t={class:"metric-card metric-card--cyan"},pt={class:"metric-icon"},vt={class:"two-column-grid"},ft={class:"panel ranking-panel"},bt={class:"panel-heading"},gt={key:0,class:"bar-list"},ht=["title"],yt={class:"bar-track"},kt={class:"panel ranking-panel"},wt={class:"panel-heading"},Ct={key:0,class:"bar-list"},Nt=["title"],xt={class:"bar-track"},Dt={class:"analytics-grid"},Vt={class:"panel trend-panel"},$t={class:"panel-heading"},St={class:"panel-heading alert-heading"},Lt={class:"threshold-control"},Mt={key:0,class:"alert-list"},zt={class:"alert-doctor"},Et={class:"alert-data"},Ft={class:"alert-rate"},Tt={key:1,class:"alert-empty"},Ot={key:1,class:"panel detail-panel"},Rt={class:"panel-heading"},Ut={key:0,class:"warning-mark"},Bt={class:"money-text"},Pt={class:"data-note"},jt=I({name:"firstVisitDoctorDashboardPage"}),At=I({...jt,setup(Yt){const R=()=>({meta:{time_type:"month",time_label:"本月",start_date:"",end_date:"",generated_at:"",scope_value:4,scope_label:"",scope_kind:"",selected_dept_name:"",selected_doctor_name:"",doctor_count:0,registration_rule:"",appointment_rule:"",performance_rule:""},filters:{departments:[],doctors:[],can_filter_department:!0},summary:{registration_total:0,appointment_total:0,interview_count:0,order_count:0,deal_amount:0,avg_order_amount:null,appointment_completion_rate:null,receive_conversion_rate:null,missed_count:0,cancelled_count:0},rankings:{amounts:[],conversion:[]},trend:{start_date:"",end_date:"",dates:[],labels:[],amounts:[]},alerts:[],alert_threshold:15,rows:[]}),o=H(R()),S=E(!1),k=E("overview"),g=E(!1),i=H({time_type:"month",active_only:1,alert_threshold:15}),h=E([]),K=[{label:"今日",value:"today"},{label:"昨天",value:"yesterday"},{label:"本周",value:"week"},{label:"本月",value:"month"},{label:"自定义",value:"custom"}],Q=[{label:"仅活跃医生",value:1},{label:"全部医生",value:0}],Z=[10,15,20,30],J={label:"name",value:"id",children:"children"},X=$(()=>Math.max(0,...o.rankings.amounts.map(l=>Number(l.value)||0))),U=$(()=>o.rows.filter(l=>F(l))),B=$(()=>o.rows.filter(l=>!F(l))),ee=$(()=>i.doctor_id||g.value?o.rows:U.value),te=$(()=>({animationDuration:450,grid:{left:20,right:20,top:18,bottom:18,containLabel:!0},tooltip:{trigger:"axis",valueFormatter:l=>L(l)},xAxis:{type:"category",boundaryGap:!1,data:o.trend.labels,axisLine:{lineStyle:{color:"#dfe5eb"}},axisTick:{show:!1},axisLabel:{color:"#7e8a9b",fontSize:10,interval:4}},yAxis:{type:"value",splitNumber:4,axisLabel:{color:"#8793a2",fontSize:10,formatter:l=>re(l)},splitLine:{lineStyle:{color:"#eef2f5"}}},series:[{name:"成交金额",type:"line",smooth:!0,symbol:"circle",symbolSize:5,data:o.trend.amounts,lineStyle:{color:"#139a8c",width:3},itemStyle:{color:"#ffffff",borderColor:"#139a8c",borderWidth:2},areaStyle:{color:"rgba(19,154,140,.08)"}}]}));async function p(){S.value=!0;try{const l={time_type:i.time_type,active_only:i.active_only??1,alert_threshold:Number(i.alert_threshold||15)};if(i.time_type==="custom"&&(l.start_date=h.value[0]||"",l.end_date=h.value[1]||"",!l.start_date||!l.end_date)){O.warning("请选择自定义日期范围");return}i.dept_id&&(l.dept_id=Number(i.dept_id)),i.doctor_id&&(l.doctor_id=Number(i.doctor_id));const t=await je(l);Object.assign(o,R(),t||{})}catch(l){O.error((l==null?void 0:l.message)||"医生看板加载失败,请稍后重试")}finally{S.value=!1}}function le(){if(i.time_type!=="custom"){h.value=[],p();return}h.value.length===2&&p()}function ne(){i.time_type==="custom"&&h.value.length===2&&p()}function ae(){delete i.doctor_id,p()}function oe(){delete i.doctor_id,p()}function v(l){return Number(l||0).toLocaleString("zh-CN",{maximumFractionDigits:0})}function L(l){return`¥${Number(l||0).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}`}function se(l){return`¥${Number(l||0).toLocaleString("zh-CN",{minimumFractionDigits:0,maximumFractionDigits:2})}`}function ie(l){return l==null?"—":L(l)}function y(l){return l==null?"—":`${Number(l).toFixed(1)}%`}function re(l){return Math.abs(l)>=1e4?`${(l/1e4).toFixed(l>=1e5?0:1)}万`:`${Math.round(l)}`}function de(l,t){return t<=0?"0%":`${Math.max(3,Math.min(100,Number(l||0)/t*100))}%`}function ue(l){return`${Math.max(0,Math.min(100,Number(l)||0))}%`}function ce(l){return l==null?"conversion-rate is-neutral":Number(l)0||Number(l.interview_count||0)>0||Number(l.order_count||0)>0||Number(l.deal_amount||0)>0||Number(l.appointment_missed||0)>0||Number(l.appointment_cancelled||0)>0}function P(l){return Number(l.interview_count||0)>0&&Number(l.receive_conversion_rate||0)[_.doctor_name,_.status==="disabled"?"停用":"活跃",_.appointment_total,_.interview_count,_.order_count,y(_.receive_conversion_rate),_.deal_amount,_.appointment_missed,_.appointment_cancelled].map(j).join(",")),m=new Blob([`\uFEFF${l.map(j).join(",")} +import{o as I,ap as ge,ac as he,bn as ye,q as d,r as u,s as e,v as s,D as r,u as c,cH as G,w as ke,cQ as we,L as b,T as a,P as D,bz as Ce,K as Ne,bA as xe,cR as De,O as z,az as Ve,bL as $e,F as N,G as V,bi as Se,bh as Le,ae as x,cg as Me,cn as ze,cG as Ee,cS as Fe,at as W,t as q,bC as Te,cL as Oe,cT as Re,bl as Ue,bk as Be,ci as Pe,aC as H,M as E,p as $,E as O}from"./.pnpm-CyuAWpdG.js";import{b as je}from"./first_visit-B5IgLifl.js";import{_ as Ae}from"./index-Bkarz3gO.js";const Ye={class:"doctor-dashboard","element-loading-text":"正在汇总医生经营数据"},Ge={class:"page-heading"},We={class:"heading-copy"},qe={class:"heading-mark"},He={class:"heading-actions"},Ie={class:"scope-chip"},Ke={key:0,class:"update-time"},Qe={class:"filter-strip"},Ze={class:"filter-item filter-item--time"},Je={key:0,class:"filter-item"},Xe={class:"filter-item"},et={class:"filter-item filter-item--status"},tt={class:"view-switch"},lt={class:"metric-grid","aria-label":"医生经营核心指标"},nt={class:"metric-card metric-card--teal"},at={class:"metric-icon"},ot={class:"metric-card metric-card--green"},st={class:"metric-icon"},it={class:"metric-card metric-card--indigo"},rt={class:"metric-icon"},dt={class:"metric-card metric-card--blue"},ut={class:"metric-icon"},ct={class:"metric-card metric-card--orange"},mt={class:"metric-icon"},_t={class:"metric-card metric-card--cyan"},pt={class:"metric-icon"},vt={class:"two-column-grid"},ft={class:"panel ranking-panel"},bt={class:"panel-heading"},gt={key:0,class:"bar-list"},ht=["title"],yt={class:"bar-track"},kt={class:"panel ranking-panel"},wt={class:"panel-heading"},Ct={key:0,class:"bar-list"},Nt=["title"],xt={class:"bar-track"},Dt={class:"analytics-grid"},Vt={class:"panel trend-panel"},$t={class:"panel-heading"},St={class:"panel-heading alert-heading"},Lt={class:"threshold-control"},Mt={key:0,class:"alert-list"},zt={class:"alert-doctor"},Et={class:"alert-data"},Ft={class:"alert-rate"},Tt={key:1,class:"alert-empty"},Ot={key:1,class:"panel detail-panel"},Rt={class:"panel-heading"},Ut={key:0,class:"warning-mark"},Bt={class:"money-text"},Pt={class:"data-note"},jt=I({name:"firstVisitDoctorDashboardPage"}),At=I({...jt,setup(Yt){const R=()=>({meta:{time_type:"month",time_label:"本月",start_date:"",end_date:"",generated_at:"",scope_value:4,scope_label:"",scope_kind:"",selected_dept_name:"",selected_doctor_name:"",doctor_count:0,registration_rule:"",appointment_rule:"",performance_rule:""},filters:{departments:[],doctors:[],can_filter_department:!0},summary:{registration_total:0,appointment_total:0,interview_count:0,order_count:0,deal_amount:0,avg_order_amount:null,appointment_completion_rate:null,receive_conversion_rate:null,missed_count:0,cancelled_count:0},rankings:{amounts:[],conversion:[]},trend:{start_date:"",end_date:"",dates:[],labels:[],amounts:[]},alerts:[],alert_threshold:15,rows:[]}),o=H(R()),S=E(!1),k=E("overview"),g=E(!1),i=H({time_type:"month",active_only:1,alert_threshold:15}),h=E([]),K=[{label:"今日",value:"today"},{label:"昨天",value:"yesterday"},{label:"本周",value:"week"},{label:"本月",value:"month"},{label:"自定义",value:"custom"}],Q=[{label:"仅活跃医生",value:1},{label:"全部医生",value:0}],Z=[10,15,20,30],J={label:"name",value:"id",children:"children"},X=$(()=>Math.max(0,...o.rankings.amounts.map(l=>Number(l.value)||0))),U=$(()=>o.rows.filter(l=>F(l))),B=$(()=>o.rows.filter(l=>!F(l))),ee=$(()=>i.doctor_id||g.value?o.rows:U.value),te=$(()=>({animationDuration:450,grid:{left:20,right:20,top:18,bottom:18,containLabel:!0},tooltip:{trigger:"axis",valueFormatter:l=>L(l)},xAxis:{type:"category",boundaryGap:!1,data:o.trend.labels,axisLine:{lineStyle:{color:"#dfe5eb"}},axisTick:{show:!1},axisLabel:{color:"#7e8a9b",fontSize:10,interval:4}},yAxis:{type:"value",splitNumber:4,axisLabel:{color:"#8793a2",fontSize:10,formatter:l=>re(l)},splitLine:{lineStyle:{color:"#eef2f5"}}},series:[{name:"成交金额",type:"line",smooth:!0,symbol:"circle",symbolSize:5,data:o.trend.amounts,lineStyle:{color:"#139a8c",width:3},itemStyle:{color:"#ffffff",borderColor:"#139a8c",borderWidth:2},areaStyle:{color:"rgba(19,154,140,.08)"}}]}));async function p(){S.value=!0;try{const l={time_type:i.time_type,active_only:i.active_only??1,alert_threshold:Number(i.alert_threshold||15)};if(i.time_type==="custom"&&(l.start_date=h.value[0]||"",l.end_date=h.value[1]||"",!l.start_date||!l.end_date)){O.warning("请选择自定义日期范围");return}i.dept_id&&(l.dept_id=Number(i.dept_id)),i.doctor_id&&(l.doctor_id=Number(i.doctor_id));const t=await je(l);Object.assign(o,R(),t||{})}catch(l){O.error((l==null?void 0:l.message)||"医生看板加载失败,请稍后重试")}finally{S.value=!1}}function le(){if(i.time_type!=="custom"){h.value=[],p();return}h.value.length===2&&p()}function ne(){i.time_type==="custom"&&h.value.length===2&&p()}function ae(){delete i.doctor_id,p()}function oe(){delete i.doctor_id,p()}function v(l){return Number(l||0).toLocaleString("zh-CN",{maximumFractionDigits:0})}function L(l){return`¥${Number(l||0).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}`}function se(l){return`¥${Number(l||0).toLocaleString("zh-CN",{minimumFractionDigits:0,maximumFractionDigits:2})}`}function ie(l){return l==null?"—":L(l)}function y(l){return l==null?"—":`${Number(l).toFixed(1)}%`}function re(l){return Math.abs(l)>=1e4?`${(l/1e4).toFixed(l>=1e5?0:1)}万`:`${Math.round(l)}`}function de(l,t){return t<=0?"0%":`${Math.max(3,Math.min(100,Number(l||0)/t*100))}%`}function ue(l){return`${Math.max(0,Math.min(100,Number(l)||0))}%`}function ce(l){return l==null?"conversion-rate is-neutral":Number(l)0||Number(l.interview_count||0)>0||Number(l.order_count||0)>0||Number(l.deal_amount||0)>0||Number(l.appointment_missed||0)>0||Number(l.appointment_cancelled||0)>0}function P(l){return Number(l.interview_count||0)>0&&Number(l.receive_conversion_rate||0)[_.doctor_name,_.status==="disabled"?"停用":"活跃",_.appointment_total,_.interview_count,_.order_count,y(_.receive_conversion_rate),_.deal_amount,_.appointment_missed,_.appointment_cancelled].map(j).join(",")),m=new Blob([`\uFEFF${l.map(j).join(",")} ${t.join(` `)}`],{type:"text/csv;charset=utf-8"}),w=URL.createObjectURL(m),C=document.createElement("a");C.href=w,C.download=`医生看板_${o.meta.start_date}_${o.meta.end_date}.csv`,C.click(),URL.revokeObjectURL(w)}return ge(p),(l,t)=>{const m=ke,w=Ne,C=De,_=Ve,ve=$e,A=Se,Y=Le,T=Te,f=Ue,fe=Be,be=ye;return he((d(),u("div",Ye,[e("header",Ge,[e("div",We,[e("span",qe,[s(m,null,{default:r(()=>[s(c(G))]),_:1})]),t[9]||(t[9]=e("div",null,[e("h1",null,"医生看板"),e("p",null,"从挂号、预约、面诊到接诊成交,统一观察医生经营表现")],-1))]),e("div",He,[e("span",Ie,[s(m,null,{default:r(()=>[s(c(we))]),_:1}),b(a(o.meta.scope_label||"数据范围"),1)]),o.meta.generated_at?(d(),u("span",Ke,"更新于 "+a(o.meta.generated_at),1)):D("",!0),s(w,{icon:c(Ce),loading:S.value,onClick:p},{default:r(()=>[...t[10]||(t[10]=[b("刷新",-1)])]),_:1},8,["icon","loading"]),s(w,{icon:c(xe),onClick:pe},{default:r(()=>[...t[11]||(t[11]=[b("导出",-1)])]),_:1},8,["icon"])])]),e("section",Qe,[e("div",Ze,[t[12]||(t[12]=e("span",null,"时间范围",-1)),s(C,{modelValue:i.time_type,"onUpdate:modelValue":t[0]||(t[0]=n=>i.time_type=n),options:K,onChange:le},null,8,["modelValue"]),i.time_type==="custom"?(d(),z(_,{key:0,modelValue:h.value,"onUpdate:modelValue":t[1]||(t[1]=n=>h.value=n),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",class:"date-range-picker",clearable:!1,onChange:ne},null,8,["modelValue"])):D("",!0)]),o.filters.can_filter_department?(d(),u("div",Je,[t[13]||(t[13]=e("span",null,"所属部门",-1)),s(ve,{modelValue:i.dept_id,"onUpdate:modelValue":t[2]||(t[2]=n=>i.dept_id=n),data:o.filters.departments,props:J,"node-key":"id",clearable:"",filterable:"","check-strictly":"","default-expand-all":"",placeholder:"全部可见部门",class:"dept-select",onChange:ae},null,8,["modelValue","data"])])):D("",!0),e("div",Xe,[t[14]||(t[14]=e("span",null,"医生",-1)),s(Y,{modelValue:i.doctor_id,"onUpdate:modelValue":t[3]||(t[3]=n=>i.doctor_id=n),clearable:"",filterable:"",placeholder:"全部医生",class:"doctor-select",onChange:p},{default:r(()=>[(d(!0),u(N,null,V(o.filters.doctors,n=>(d(),z(A,{key:n.id,value:Number(n.id),label:`${n.name}${Number(n.disable)===1?"(停用)":""}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),e("div",et,[t[15]||(t[15]=e("span",null,"医生范围",-1)),s(C,{modelValue:i.active_only,"onUpdate:modelValue":t[4]||(t[4]=n=>i.active_only=n),options:Q,onChange:oe},null,8,["modelValue"])]),e("div",tt,[e("button",{class:x({active:k.value==="overview"}),onClick:t[5]||(t[5]=n=>k.value="overview")},"诊断总览",2),e("button",{class:x({active:k.value==="detail"}),onClick:t[6]||(t[6]=n=>k.value="detail")},"医生明细",2)])]),e("section",lt,[e("article",nt,[e("div",at,[s(m,null,{default:r(()=>[s(c(Me))]),_:1})]),e("div",null,[t[16]||(t[16]=e("span",null,"总预约",-1)),e("strong",null,a(v(o.summary.registration_total)),1),t[17]||(t[17]=e("small",null,"已支付且实收金额大于 0、低于 10 元的订单",-1))])]),e("article",ot,[e("div",st,[s(m,null,{default:r(()=>[s(c(ze))]),_:1})]),e("div",null,[t[18]||(t[18]=e("span",null,"总面诊",-1)),e("strong",null,a(v(o.summary.interview_count)),1),e("small",null,"过号 "+a(v(o.summary.missed_count))+" · 取消 "+a(v(o.summary.cancelled_count)),1)])]),e("article",it,[e("div",rt,[s(m,null,{default:r(()=>[s(c(Ee))]),_:1})]),e("div",null,[t[19]||(t[19]=e("span",null,"总诊单",-1)),e("strong",null,a(v(o.summary.order_count)),1),e("small",null,"接诊转化率 "+a(y(o.summary.receive_conversion_rate)),1)])]),e("article",dt,[e("div",ut,[s(m,null,{default:r(()=>[s(c(Fe))]),_:1})]),e("div",null,[t[20]||(t[20]=e("span",null,"总成交金额",-1)),e("strong",null,a(L(o.summary.deal_amount)),1),e("small",null,"客单价 "+a(ie(o.summary.avg_order_amount)),1)])]),e("article",ct,[e("div",mt,[s(m,null,{default:r(()=>[s(c(G))]),_:1})]),e("div",null,[t[21]||(t[21]=e("span",null,"总接诊率",-1)),e("strong",null,a(y(o.summary.receive_conversion_rate)),1),e("small",null,"总接诊 "+a(v(o.summary.order_count))+" ÷ 总面诊 "+a(v(o.summary.interview_count)),1)])]),e("article",_t,[e("div",pt,[s(m,null,{default:r(()=>[s(c(W))]),_:1})]),e("div",null,[t[22]||(t[22]=e("span",null,"预约完成率",-1)),e("strong",null,a(y(o.summary.appointment_completion_rate)),1),e("small",null,"总预约 "+a(v(o.summary.appointment_total))+" · "+a(o.meta.doctor_count)+" 位有数据医生",1)])])]),k.value==="overview"?(d(),u(N,{key:0},[e("section",vt,[e("article",ft,[e("div",bt,[t[23]||(t[23]=e("div",null,[e("h2",null,"成交金额 TOP"),e("p",null,"按有效诊单金额从高到低")],-1)),e("span",null,a(o.meta.time_label),1)]),o.rankings.amounts.length?(d(),u("div",gt,[(d(!0),u(N,null,V(o.rankings.amounts,(n,M)=>(d(),u("div",{key:`amount-${n.doctor_id}`,class:"bar-row"},[e("b",null,a(M+1),1),e("span",{title:n.name},a(n.name),9,ht),e("div",yt,[e("i",{class:"is-blue",style:q({width:de(n.value,X.value)})},null,4)]),e("strong",null,a(L(n.value)),1)]))),128))])):(d(),z(T,{key:1,"image-size":52,description:"当前范围暂无成交金额"}))]),e("article",kt,[e("div",wt,[t[24]||(t[24]=e("div",null,[e("h2",null,"接诊转化率 TOP"),e("p",null,"有效诊单数 ÷ 完成面诊数")],-1)),e("span",null,a(o.meta.time_label),1)]),o.rankings.conversion.length?(d(),u("div",Ct,[(d(!0),u(N,null,V(o.rankings.conversion,(n,M)=>(d(),u("div",{key:`rate-${n.doctor_id}`,class:"bar-row"},[e("b",null,a(M+1),1),e("span",{title:n.name},a(n.name),9,Nt),e("div",xt,[e("i",{class:"is-teal",style:q({width:ue(n.value)})},null,4)]),e("strong",null,a(y(n.value)),1)]))),128))])):(d(),z(T,{key:1,"image-size":52,description:"当前范围暂无转化数据"}))])]),e("section",Dt,[e("article",Vt,[e("div",$t,[e("div",null,[t[25]||(t[25]=e("h2",null,"近 30 天成交金额趋势",-1)),e("p",null,a(o.trend.start_date)+" 至 "+a(o.trend.end_date),1)]),t[26]||(t[26]=e("span",null,"单位:元",-1))]),s(c(Oe),{class:"trend-chart",option:te.value,autoresize:""},null,8,["option"])])]),e("section",{class:x(["panel alert-panel",{"has-alerts":o.alerts.length}])},[e("div",St,[e("div",null,[e("h2",null,[s(m,null,{default:r(()=>[s(c(Re))]),_:1}),t[27]||(t[27]=b("需关注医生",-1))]),t[28]||(t[28]=e("p",null,"仅对完成过面诊的医生计算接诊转化预警",-1))]),e("div",Lt,[t[29]||(t[29]=e("span",null,"接诊转化率低于",-1)),s(Y,{modelValue:i.alert_threshold,"onUpdate:modelValue":t[7]||(t[7]=n=>i.alert_threshold=n),class:"threshold-select",onChange:p},{default:r(()=>[(d(),u(N,null,V(Z,n=>s(A,{key:n,label:`${n}%`,value:n},null,8,["label","value"])),64))]),_:1},8,["modelValue"])])]),o.alerts.length?(d(),u("div",Mt,[(d(!0),u(N,null,V(o.alerts,n=>(d(),u("div",{key:n.doctor_id,class:"alert-row"},[t[30]||(t[30]=e("span",{class:"alert-icon"},"!",-1)),e("div",zt,[e("strong",null,a(n.doctor_name),1),e("small",null,a(n.department_name),1)]),e("span",{class:x(["severity",`is-${n.severity}`])},a(n.severity==="high"?"重点关注":"低于阈值"),3),e("span",Et,"面诊 "+a(n.interview_count)+" / 接诊 "+a(n.order_count),1),e("p",null,a(n.suggestion),1),e("strong",Ft,a(y(n.rate)),1)]))),128))])):(d(),u("div",Tt,[s(m,null,{default:r(()=>[s(c(W))]),_:1}),b(" 当前范围内暂无低于 "+a(i.alert_threshold)+"% 的医生 ",1)]))],2)],64)):(d(),u("section",Ot,[e("div",Rt,[t[31]||(t[31]=e("div",null,[e("h2",null,"医生明细 · 按成交金额排序"),e("p",null,"低于接诊率预警线的医生整行标红,过号与取消分别展示")],-1)),e("span",null,a(U.value.length)+" 位有数据医生",1)]),s(fe,{data:ee.value,class:"detail-table","default-sort":{prop:"deal_amount",order:"descending"},"row-class-name":me},{empty:r(()=>[s(T,{description:"当前权限和筛选范围内暂无医生数据"})]),default:r(()=>[s(f,{prop:"doctor_name",label:"医生","min-width":"130",fixed:"left",sortable:""},{default:r(({row:n})=>[e("strong",null,a(n.doctor_name),1)]),_:1}),s(f,{prop:"status",label:"状态","min-width":"90",sortable:""},{default:r(({row:n})=>[e("span",{class:x(["status-pill",{disabled:n.status==="disabled"}])},a(n.status==="disabled"?"停用":"活跃"),3)]),_:1}),s(f,{prop:"appointment_total",label:"预约","min-width":"90",sortable:""}),s(f,{prop:"interview_count",label:"面诊","min-width":"90",sortable:""}),s(f,{prop:"order_count",label:"接诊","min-width":"90",sortable:""}),s(f,{prop:"receive_conversion_rate",label:"接诊率","min-width":"110",sortable:""},{default:r(({row:n})=>[e("span",{class:x(ce(n.receive_conversion_rate))},[P(n)?(d(),u("span",Ut,"△")):D("",!0),b(a(y(n.receive_conversion_rate)),1)],2)]),_:1}),s(f,{prop:"deal_amount",label:"成交金额","min-width":"135",sortable:""},{default:r(({row:n})=>[e("strong",Bt,a(se(n.deal_amount)),1)]),_:1}),s(f,{label:"过号/取消","min-width":"110"},{default:r(({row:n})=>[b(a(v(n.appointment_missed))+"/"+a(v(n.appointment_cancelled)),1)]),_:1}),s(f,{label:"操作","min-width":"90",fixed:"right"},{default:r(({row:n})=>[s(w,{class:"detail-action",type:"primary",link:"",onClick:M=>_e(n)},{default:r(()=>[...t[32]||(t[32]=[b("详情",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"]),!i.doctor_id&&B.value.length?(d(),u("button",{key:0,type:"button",class:"zero-doctor-toggle",onClick:t[8]||(t[8]=n=>g.value=!g.value)},[e("span",null,a(g.value?"▾":"▸"),1),b(" "+a(g.value?"收起":"已隐藏")+" "+a(B.value.length)+" 位无业务数据医生"+a(g.value?"":"(点击展开)"),1)])):D("",!0)])),e("footer",Pt,[s(m,null,{default:r(()=>[s(c(Pe))]),_:1}),e("span",null,a(o.meta.registration_rule)+";"+a(o.meta.appointment_rule)+";"+a(o.meta.performance_rule)+"。",1)])])),[[be,S.value]])}}}),Ht=Ae(At,[["__scopeId","data-v-2e596eda"]]);export{Ht as default}; diff --git a/server/public/admin/assets/index-yD39j6dM.js b/server/public/admin/assets/index-oRynN2pP.js similarity index 98% rename from server/public/admin/assets/index-yD39j6dM.js rename to server/public/admin/assets/index-oRynN2pP.js index 3ab32d92e..f40e983af 100644 --- a/server/public/admin/assets/index-yD39j6dM.js +++ b/server/public/admin/assets/index-oRynN2pP.js @@ -1 +1 @@ -import{o as fe,q as i,r as m,s as o,O as h,aa as Ye,v as n,P as p,ah as Ke,t as Re,M as E,a8 as pe,E as De,aC as qe,R as Z,n as Ee,ac as Q,ad as ce,u as t,aB as Ze,C as L,D as a,p as Te,bT as Qe,bS as Je,bU as Oe,ap as Xe,bn as He,a2 as el,bV as ll,Z as tl,_ as nl,L as r,K as al,aw as q,bh as sl,F as D,G as W,aA as ol,bc as il,a1 as dl,ae as ze,bg as ul,bk as rl,bl as cl,bt as ml,T as ue,$ as fl,bi as pl}from"./.pnpm-CyuAWpdG.js";import{_ as vl}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as yl}from"./index-ClBYIwNX.js";import{_ as Ie,c as Le,j as me,p as _l}from"./index-Dxvz9lb1.js";import{_ as gl}from"./index-BnfLT5cB.js";import{U as Cl}from"./index-BU3OYnKm.js";import{_ as hl}from"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import{f as kl,b as bl,c as wl,d as $e,e as xl,g as Sl,h as Al,i as Vl}from"./file-CefRfHD9.js";import{u as El}from"./usePaging-CghUEVfD.js";const zl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAgCAYAAABgrToAAAACJElEQVRYR+2YMWsUURSFz3m7s+nskjUIQSutbMRi7WzUVjSadMHCbVLkByjmLygaCVYWRqMEUhkFS9Gg0cJfYCPZjYUQFbPs+I7c2R1Q2ZjZfRNYYS4MAzPv3vnmvDvL3kMA2Hl5/CjLI9ckf4ZwY3Zt15C+gfwIao3So0rt3XsJtPUk9M/cAW6y9ap2DIyfAjgCwANwGeoYiEFtk/5e5CvXeer1D2neATcGgiTZM4+t9RNLEKcBtAFEGeBsiRWzl7EoSXo+8rV9gWc/fDc1B1VSEoEnDpj0KTB33tS26DGaEezvZQZpRxmODyoT5+vwBwS3zeTcT4yjTdZNJEiPSykk1bjZX6HeD/WQJ1zUApgq2w+etcsniBuAVlH9vELOx6Yo1VywgkmTB4X1kEGGhyAtg/Ecq3NNqnknDwVTrNBaactEts88OHs5b8Bw/Tof4M+kr4WrwwhoL9n5uRPWhxWwsxPEl+EGNMacP5I8evCPGgVgqKSFgoWCoQqE5hc9WCgYqkBoftGDeSiYz1/+UJLe+foftvh2A2B1fwQIrapkaFoDcK4PVyH0qVnyU4fjGdW4NQ2WlgDE5hLkMoJmQdh9zW9Dk59K5lhtLjyE01TX/jDILP5MGEbvbFPOJroIXvc5PjvTBbx7GM4vAjjd9WdSc2g/IPaqaTv5Aq58haP1TSb2Au20GGErvgTxIqiTAA7tVSnn+2Z9vAXdCsa4bD6Nsf0C/gYA5PMzcW0AAAAASUVORK5CYII=",$l=fe({props:{uri:{type:String},fileSize:{type:String,default:"100px"},width:{type:String,default:""},height:{type:String,default:""},type:{type:String,default:"image"}},emits:["close"]}),Rl=["src"],Dl={key:3,class:"absolute left-1/2 top-1/2 translate-x-[-50%] translate-y-[-50%] rounded-full w-5 h-5 flex justify-center items-center bg-[rgba(0,0,0,0.3)]"};function Tl(s,$,x,_,k,z){const S=Ye,u=Le;return i(),m("div",null,[o("div",{class:"file-item relative",style:Re({height:s.height||s.fileSize,width:s.width||s.fileSize})},[s.type=="image"?(i(),h(S,{key:0,class:"image",fit:"contain",src:s.uri},null,8,["src"])):s.type=="video"?(i(),m("video",{key:1,class:"video",src:s.uri},null,8,Rl)):(i(),h(S,{key:2,class:"image",src:"https://img95.699pic.com/element/40103/3946.png_860.png"})),s.type=="video"?(i(),m("div",Dl,[n(u,{name:"el-icon-CaretRight",size:18,color:"#fff"})])):p("",!0),Ke(s.$slots,"default",{},void 0,!0)],4)])}const re=Ie($l,[["render",Tl],["__scopeId","data-v-60d59d9e"]]);function Il(s){const $=pe(),x=E([]),_=E(""),k=async()=>{const f=await kl({page_type:0,type:s}),C=[{name:"全部",id:""},{name:"未分组",id:0}];x.value=f.lists,x.value.unshift(...C),setTimeout(()=>{var b;(b=$.value)==null||b.setCurrentKey(_.value)},0)};return{treeRef:$,cateId:_,cateLists:x,handleAddCate:async f=>{await $e({type:s,name:f,pid:0}),k()},handleAddChildCate:async(f,C)=>{await $e({type:s,name:f,pid:C}),k()},handleEditCate:async(f,C)=>{await wl({id:C,name:f}),k()},handleDeleteCate:async(f,C)=>{C?await me.confirm("删除文件夹将会永久删除文件夹及其所有内容。您确定要继续吗?"):await me.confirm("确定要删除?"),await bl({id:f}),_.value="",k()},getCateLists:k,handleCatSelect:f=>{_.value=f.id}}}function Ll(s,$,x,_){const k=pe(),z=E("normal"),S=E(0),u=E([]),R=E(!1),g=E(!1),f=qe({name:"",type:$,cid:s,source:""}),{pager:C,getLists:b,resetPage:M}=El({fetchFun:Vl,params:f,firstLoading:!0,size:_}),U=()=>{b()},J=()=>{M()},O=c=>!!u.value.find(d=>d.id==c),X=async c=>{await me.confirm("确认删除后,本地或云存储文件也将同步删除,如文件已被使用,请谨慎操作!");const d=c||u.value.map(V=>V.id);await Al({ids:d}),U(),F()},H=async()=>{const c=u.value.map(d=>d.id);await Sl({ids:c,cid:S.value}),S.value=0,U(),F()},ee=c=>{const d=u.value.findIndex(V=>V.id==c.id);if(d!=-1){u.value.splice(d,1);return}if(u.value.length==x.value){if(x.value==1){u.value=[],u.value.push(c);return}De.warning("已达到选择上限");return}u.value.push(c)},F=()=>{u.value=[]};return{listShowType:z,tableRef:k,moveId:S,pager:C,fileParams:f,select:u,isCheckAll:R,isIndeterminate:g,getFileList:U,refresh:J,batchFileDelete:X,batchFileMove:H,selectFile:ee,isSelect:O,clearSelect:F,cancelSelete:c=>{u.value=u.value.filter(d=>d.id!=c)},selectAll:c=>{var d;if(g.value=!1,(d=k.value)==null||d.toggleAllSelection(),c){u.value=[...C.lists];return}F()},handleFileRename:async(c,d)=>{await xl({id:d,name:c}),U()}}}const Ul={key:0},Fl={key:1},jl={class:"aspect-video overflow-hidden"},Ml={class:"size-full",controls:""},Pl=["src"],Bl=fe({__name:"preview",props:{modelValue:{type:Boolean,default:!1},url:{type:String,default:""},type:{type:String,default:"image"}},emits:["update:modelValue"],setup(s,{emit:$}){const x=s,_=$,k=pe(),z=Te({get(){return x.modelValue},set(R){_("update:modelValue",R)}}),S=()=>{_("update:modelValue",!1)},u=E([]);return Z(()=>x.modelValue,R=>{R?Ee(()=>{var g;u.value=[x.url],(g=k.value)==null||g.play()}):Ee(()=>{var g;u.value=[],(g=k.value)==null||g.pause()})}),(R,g)=>{const f=Qe,C=Ze;return Q((i(),m("div",null,[s.type=="image"?(i(),m("div",Ul,[t(u).length?(i(),h(f,{key:0,"url-list":t(u),"hide-on-click-modal":"",onClose:S},null,8,["url-list"])):p("",!0)])):p("",!0),s.type=="video"?(i(),m("div",Fl,[n(C,{modelValue:t(z),"onUpdate:modelValue":g[0]||(g[0]=b=>L(z)?z.value=b:null),width:"740px",title:"视频预览","before-close":S},{default:a(()=>[o("div",jl,[o("video",Ml,[o("source",{src:s.url,type:"video/mp4"},null,8,Pl)])])]),_:1},8,["modelValue"])])):p("",!0)],512)),[[ce,s.modelValue]])}}}),Nl={class:"material"},Gl={class:"material__left"},Wl={class:"flex-1 min-h-0"},Yl={class:"material-left__content pt-4 p-b-4"},Kl={class:"flex flex-1 items-center min-w-0 pr-4"},ql={class:"flex-1 truncate mr-2"},Zl=["onClick"],Ql={class:"flex justify-center p-2 border-t border-br"},Jl={class:"material__center flex flex-col"},Ol={class:"operate-btn flex"},Xl={class:"flex-1 flex"},Hl={class:"flex items-center ml-2"},et={key:0,class:"mt-3"},lt={class:"material-center__content flex flex-col flex-1 mb-1 min-h-0"},tt={class:"file-list flex flex-wrap mt-4"},nt={key:0,class:"item-selected"},at={class:"operation-btns flex items-center"},st={class:"inline-block"},ot={class:"inline-block"},it={class:"inline-block"},dt={key:1,class:"flex flex-1 justify-center items-center"},ut={class:"material-center__footer flex justify-between items-center mt-2"},rt={class:"flex"},ct={class:"mr-3"},mt={key:0,class:"material__right"},ft={class:"flex justify-between p-2 flex-wrap"},pt={class:"sm flex items-center"},vt={key:0},yt={class:"flex-1 min-h-0"},_t={class:"select-lists flex flex-col p-t-3"},gt={class:"select-item"},Ct=fe({__name:"index",props:{fileSize:{type:String,default:"100px"},limit:{type:Number,default:1},type:{type:String,default:"image"},mode:{type:String,default:"picker"},pageSize:{type:Number,default:15}},emits:["change"],setup(s,{expose:$,emit:x}){const _=s,k=x,{limit:z}=Je(_),S=Te(()=>{switch(_.type){case"image":return 10;case"video":return 20;case"file":return 30;default:return 0}}),u=[{value:"0",label:"后台上传"},{value:"1",label:"前端上传"}],R=Oe("visible",E(!1)),g=E(""),f=E(!1),{treeRef:C,cateId:b,cateLists:M,handleAddCate:U,handleAddChildCate:J,handleEditCate:O,handleDeleteCate:X,getCateLists:H,handleCatSelect:ee}=Il(S.value),{tableRef:F,listShowType:T,moveId:I,pager:A,fileParams:c,select:d,isCheckAll:V,isIndeterminate:P,getFileList:ve,refresh:j,batchFileDelete:Y,batchFileMove:ye,selectFile:le,isSelect:_e,clearSelect:ge,cancelSelete:Ue,selectAll:Ce,handleFileRename:he}=Ll(b,S,z,_.pageSize),ke=async()=>{var w;await H(),(w=C.value)==null||w.setCurrentKey(b.value),ve()},te=w=>{g.value=w,f.value=!0};Z(()=>R.value,async w=>{w&&ke()},{immediate:!0}),Z(b,()=>{c.name="",j()}),Z(d,w=>{if(k("change",w),w.length==A.lists.length&&w.length!==0){P.value=!1,V.value=!0;return}w.length>0?P.value=!0:(V.value=!1,P.value=!1)},{deep:!0}),Xe(()=>{_.mode=="page"&&ke()}),$({clearSelect:ge});const be=E(),Fe=w=>{const e=w,B=be.value;B.value=e,B.select(),document.execCommand("copy"),De({message:"地址复制成功",type:"success"})};return(w,e)=>{const B=_l,ne=nl,N=hl,je=tl,Me=fl,Pe=ll,ae=el,y=al,se=Cl,oe=pl,ie=sl,we=gl,K=Le,Be=ol,xe=dl,de=ul,Se=yl,Ae=ml,G=cl,Ne=rl,Ge=vl,We=He;return Q((i(),m("div",Nl,[o("div",Gl,[o("div",Wl,[n(ae,null,{default:a(()=>[o("div",Yl,[n(Pe,{ref_key:"treeRef",ref:C,"node-key":"id",data:t(M),"empty-text":"","highlight-current":!0,"expand-on-click-node":!1,"current-node-key":t(b),onNodeClick:t(ee)},{default:a(({data:l})=>[o("div",Kl,[e[16]||(e[16]=o("img",{class:"w-[20px] h-[16px] mr-3",src:zl},null,-1)),o("span",ql,[n(B,{content:l.name},null,8,["content"])]),l.id>0?(i(),h(Me,{key:0,"hide-on-click":!1},{dropdown:a(()=>[n(je,null,{default:a(()=>[n(N,{onConfirm:v=>t(O)(v,l.id),size:"default",value:l.name,width:"400px",limit:20,"show-limit":"",teleported:""},{default:a(()=>[o("div",null,[n(ne,null,{default:a(()=>[...e[12]||(e[12]=[r(" 命名分组 ",-1)])]),_:1})])]),_:1},8,["onConfirm","value"]),n(N,{onConfirm:v=>t(J)(v,l.id),size:"default",width:"400px",limit:20,"show-limit":"",teleported:""},{default:a(()=>[o("div",null,[n(ne,null,{default:a(()=>[...e[13]||(e[13]=[r(" 添加分组 ",-1)])]),_:1})])]),_:1},8,["onConfirm"]),o("div",{onClick:v=>{var Ve;return t(X)(l.id,(Ve=l==null?void 0:l.children)==null?void 0:Ve.length)}},[n(ne,null,{default:a(()=>[...e[14]||(e[14]=[r("删除分组",-1)])]),_:1})],8,Zl)]),_:2},1024)]),default:a(()=>[e[15]||(e[15]=o("span",{class:"muted m-r-10"},"···",-1))]),_:2},1024)):p("",!0)])]),_:1},8,["data","current-node-key","onNodeClick"])])]),_:1})]),o("div",Ql,[n(N,{onConfirm:t(U),size:"default",width:"400px",limit:20,"show-limit":"",teleported:""},{default:a(()=>[n(y,null,{default:a(()=>[...e[17]||(e[17]=[r(" 添加分组 ",-1)])]),_:1})]),_:1},8,["onConfirm"])])]),o("div",Jl,[o("div",Ol,[o("div",Xl,[s.type=="image"?(i(),h(se,{key:0,class:"mr-3",data:{cid:t(b)},type:s.type,"show-progress":!0,onChange:t(j)},{default:a(()=>[n(y,{type:"primary"},{default:a(()=>[...e[18]||(e[18]=[r("本地上传",-1)])]),_:1})]),_:1},8,["data","type","onChange"])):p("",!0),s.type=="video"?(i(),h(se,{key:1,class:"mr-3",data:{cid:t(b)},type:s.type,"show-progress":!0,onAllSuccess:t(j)},{default:a(()=>[n(y,{type:"primary"},{default:a(()=>[...e[19]||(e[19]=[r("本地上传",-1)])]),_:1})]),_:1},8,["data","type","onAllSuccess"])):p("",!0),s.type=="file"?(i(),h(se,{key:2,class:"mr-3",data:{cid:t(b)},type:s.type,"show-progress":!0,onAllSuccess:t(j)},{default:a(()=>[n(y,{type:"primary"},{default:a(()=>[...e[20]||(e[20]=[r("本地上传",-1)])]),_:1})]),_:1},8,["data","type","onAllSuccess"])):p("",!0),s.mode=="page"?(i(),h(y,{key:3,disabled:!t(d).length,onClick:e[0]||(e[0]=q(l=>t(Y)(),["stop"]))},{default:a(()=>[...e[21]||(e[21]=[r(" 删除 ",-1)])]),_:1},8,["disabled"])):p("",!0),s.mode=="page"?(i(),h(we,{key:4,class:"ml-3",onConfirm:t(ye),disabled:!t(d).length,title:"移动文件"},{trigger:a(()=>[n(y,{disabled:!t(d).length},{default:a(()=>[...e[22]||(e[22]=[r("移动",-1)])]),_:1},8,["disabled"])]),default:a(()=>[o("div",null,[e[23]||(e[23]=o("span",{class:"mr-5"},"移动文件至",-1)),n(ie,{modelValue:t(I),"onUpdate:modelValue":e[1]||(e[1]=l=>L(I)?I.value=l:null),placeholder:"请选择"},{default:a(()=>[(i(!0),m(D,null,W(t(M),l=>(i(),m(D,{key:l.id},[l.id!==""?(i(),h(oe,{key:0,label:l.name,value:l.id},null,8,["label","value"])):p("",!0)],64))),128))]),_:1},8,["modelValue"])])]),_:1},8,["onConfirm","disabled"])):p("",!0)]),n(ie,{modelValue:t(c).source,"onUpdate:modelValue":e[2]||(e[2]=l=>t(c).source=l),placeholder:"请选择文件来源",clearable:"",style:{"margin-right":"20px"},class:"max-w-52 ml-3"},{default:a(()=>[(i(),m(D,null,W(u,l=>n(oe,{key:l.value,label:l.label,value:l.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),n(Be,{class:"w-60",placeholder:"请输入名称",modelValue:t(c).name,"onUpdate:modelValue":e[3]||(e[3]=l=>t(c).name=l),onKeyup:il(t(j),["enter"])},{append:a(()=>[n(y,{onClick:t(j)},{icon:a(()=>[n(K,{name:"el-icon-Search"})]),_:1},8,["onClick"])]),_:1},8,["modelValue","onKeyup"]),o("div",Hl,[n(xe,{content:"列表视图",placement:"top"},{default:a(()=>[o("div",{class:ze(["list-icon",{select:t(T)=="table"}]),onClick:e[4]||(e[4]=l=>T.value="table")},[n(K,{name:"local-icon-list-2",size:18})],2)]),_:1}),n(xe,{content:"平铺视图",placement:"top"},{default:a(()=>[o("div",{class:ze(["list-icon",{select:t(T)=="normal"}]),onClick:e[5]||(e[5]=l=>T.value="normal")},[n(K,{name:"el-icon-Menu",size:18})],2)]),_:1})])]),s.mode=="page"?(i(),m("div",et,[n(de,{disabled:!t(A).lists.length,modelValue:t(V),"onUpdate:modelValue":e[6]||(e[6]=l=>L(V)?V.value=l:null),onChange:t(Ce),indeterminate:t(P)},{default:a(()=>[...e[24]||(e[24]=[r(" 当页全选 ",-1)])]),_:1},8,["disabled","modelValue","onChange","indeterminate"])])):p("",!0),o("div",lt,[t(A).lists.length?Q((i(),h(ae,{key:0},{default:a(()=>[o("ul",tt,[(i(!0),m(D,null,W(t(A).lists,l=>(i(),m("li",{class:"file-item-wrap",key:l.id,style:Re({width:s.fileSize})},[n(Se,{onClose:v=>t(Y)([l.id])},{default:a(()=>[n(re,{uri:l.url,"file-size":s.fileSize,type:s.type,onClick:v=>t(le)(l)},{default:a(()=>[t(_e)(l.id)?(i(),m("div",nt,[n(K,{size:24,name:"el-icon-Check",color:"#fff"})])):p("",!0)]),_:2},1032,["uri","file-size","type","onClick"])]),_:2},1032,["onClose"]),n(B,{class:"mt-1",content:l.name},null,8,["content"]),o("div",at,[n(N,{onConfirm:v=>t(he)(v,l.id),size:"default",value:l.name,width:"400px",limit:50,"show-limit":"",teleported:""},{default:a(()=>[n(y,{type:"primary",link:""},{default:a(()=>[...e[25]||(e[25]=[r(" 重命名 ",-1)])]),_:1})]),_:1},8,["onConfirm","value"]),l.type===10||l.type===20?(i(),h(y,{key:0,type:"primary",link:"",onClick:v=>te(l.url)},{default:a(()=>[...e[26]||(e[26]=[r(" 查看 ",-1)])]),_:1},8,["onClick"])):p("",!0),l.type===10||l.type===20?(i(),h(y,{key:1,type:"primary",link:"",onClick:v=>Fe(l.url),style:{"margin-left":"1px"}},{default:a(()=>[...e[27]||(e[27]=[r("地址",-1)])]),_:1},8,["onClick"])):(i(),h(Ae,{key:2,type:"primary",underline:!1,style:{"margin-left":"25px"},href:l.url},{default:a(()=>[...e[28]||(e[28]=[r("下载",-1)])]),_:1},8,["href"]))])],4))),128))])]),_:1},512)),[[ce,t(T)=="normal"]]):p("",!0),Q(n(Ne,{ref_key:"tableRef",ref:F,class:"mt-4",data:t(A).lists,width:"100%",height:"100%",size:"large",onRowClick:t(le)},{default:a(()=>[n(G,{width:"55"},{default:a(({row:l})=>[n(de,{modelValue:t(_e)(l.id),onChange:v=>t(le)(l)},null,8,["modelValue","onChange"])]),_:1}),n(G,{label:"图片",width:"100"},{default:a(({row:l})=>[n(re,{uri:l.url,"file-size":"50px",type:s.type},null,8,["uri","type"])]),_:1}),n(G,{label:"名称","min-width":"100","show-overflow-tooltip":""},{default:a(({row:l})=>[n(Ae,{onClick:q(v=>te(l.url),["stop"]),underline:!1},{default:a(()=>[r(ue(l.name),1)]),_:2},1032,["onClick"])]),_:1}),n(G,{prop:"create_time",label:"上传时间","min-width":"100"}),n(G,{label:"操作",width:"150",fixed:"right"},{default:a(({row:l})=>[o("div",st,[n(N,{onConfirm:v=>t(he)(v,l.id),size:"default",value:l.name,width:"400px",limit:50,"show-limit":"",teleported:""},{default:a(()=>[n(y,{type:"primary",link:""},{default:a(()=>[...e[29]||(e[29]=[r(" 重命名 ",-1)])]),_:1})]),_:1},8,["onConfirm","value"])]),o("div",ot,[n(y,{type:"primary",link:"",onClick:q(v=>te(l.url),["stop"])},{default:a(()=>[...e[30]||(e[30]=[r(" 查看 ",-1)])]),_:1},8,["onClick"])]),o("div",it,[n(y,{type:"primary",link:"",onClick:q(v=>t(Y)([l.id]),["stop"])},{default:a(()=>[...e[31]||(e[31]=[r(" 删除 ",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data","onRowClick"]),[[ce,t(T)=="table"]]),!t(A).loading&&!t(A).lists.length?(i(),m("div",dt," 暂无数据~ ")):p("",!0)]),o("div",ut,[o("div",rt,[s.mode=="page"?(i(),m(D,{key:0},[o("span",ct,[n(de,{disabled:!t(A).lists.length,modelValue:t(V),"onUpdate:modelValue":e[7]||(e[7]=l=>L(V)?V.value=l:null),onChange:t(Ce),indeterminate:t(P)},{default:a(()=>[...e[32]||(e[32]=[r(" 当页全选 ",-1)])]),_:1},8,["disabled","modelValue","onChange","indeterminate"])]),n(y,{disabled:!t(d).length,onClick:e[8]||(e[8]=l=>t(Y)())},{default:a(()=>[...e[33]||(e[33]=[r(" 删除 ",-1)])]),_:1},8,["disabled"]),n(we,{class:"ml-3 inline",onConfirm:t(ye),disabled:!t(d).length,title:"移动文件"},{trigger:a(()=>[n(y,{disabled:!t(d).length},{default:a(()=>[...e[34]||(e[34]=[r("移动",-1)])]),_:1},8,["disabled"])]),default:a(()=>[o("div",null,[e[35]||(e[35]=o("span",{class:"mr-5"},"移动文件至",-1)),n(ie,{modelValue:t(I),"onUpdate:modelValue":e[9]||(e[9]=l=>L(I)?I.value=l:null),placeholder:"请选择"},{default:a(()=>[(i(!0),m(D,null,W(t(M),l=>(i(),m(D,{key:l.id},[l.id!==""?(i(),h(oe,{key:0,label:l.name,value:l.id},null,8,["label","value"])):p("",!0)],64))),128))]),_:1},8,["modelValue"])])]),_:1},8,["onConfirm","disabled"])],64)):p("",!0)]),n(Ge,{modelValue:t(A),"onUpdate:modelValue":e[10]||(e[10]=l=>L(A)?A.value=l:null),onChange:t(ve),layout:"total, prev, pager, next, jumper"},null,8,["modelValue","onChange"])])]),s.mode=="picker"?(i(),m("div",mt,[o("div",ft,[o("div",pt,[r(" 已选择 "+ue(t(d).length)+" ",1),t(z)?(i(),m("span",vt,"/"+ue(t(z)),1)):p("",!0)]),n(y,{type:"primary",link:"",onClick:t(ge)},{default:a(()=>[...e[36]||(e[36]=[r("清空",-1)])]),_:1},8,["onClick"])]),o("div",yt,[n(ae,{class:"ls-scrollbar"},{default:a(()=>[o("ul",_t,[(i(!0),m(D,null,W(t(d),l=>(i(),m("li",{class:"mb-4",key:l.id},[o("div",gt,[n(Se,{onClose:v=>t(Ue)(l.id)},{default:a(()=>[n(re,{uri:l.url,"file-size":"100px",type:s.type},null,8,["uri","type"])]),_:2},1032,["onClose"])])]))),128))])]),_:1})])])):p("",!0),n(Bl,{modelValue:t(f),"onUpdate:modelValue":e[11]||(e[11]=l=>L(f)?f.value=l:null),url:t(g),type:s.type},null,8,["modelValue","url","type"]),o("input",{ref_key:"textCopys",ref:be,id:"textCopys",value:"",style:{opacity:"0",position:"absolute"}},null,512)])),[[We,t(A).loading]])}}}),zt=Ie(Ct,[["__scopeId","data-v-1e1d2cd0"]]);export{re as F,Bl as _,zt as a}; +import{o as fe,q as i,r as m,s as o,O as h,aa as Ye,v as n,P as p,ah as Ke,t as Re,M as E,a8 as pe,E as De,aC as qe,R as Z,n as Ee,ac as Q,ad as ce,u as t,aB as Ze,C as L,D as a,p as Te,bT as Qe,bS as Je,bU as Oe,ap as Xe,bn as He,a2 as el,bV as ll,Z as tl,_ as nl,L as r,K as al,aw as q,bh as sl,F as D,G as W,aA as ol,bc as il,a1 as dl,ae as ze,bg as ul,bk as rl,bl as cl,bt as ml,T as ue,$ as fl,bi as pl}from"./.pnpm-CyuAWpdG.js";import{_ as vl}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as yl}from"./index-Cqk_cdo9.js";import{_ as Ie,c as Le,j as me,p as _l}from"./index-Bkarz3gO.js";import{_ as gl}from"./index-CS5Wg0xx.js";import{U as Cl}from"./index-BJZwRQXE.js";import{_ as hl}from"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import{f as kl,b as bl,c as wl,d as $e,e as xl,g as Sl,h as Al,i as Vl}from"./file-BjbV-eNx.js";import{u as El}from"./usePaging-CghUEVfD.js";const zl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAgCAYAAABgrToAAAACJElEQVRYR+2YMWsUURSFz3m7s+nskjUIQSutbMRi7WzUVjSadMHCbVLkByjmLygaCVYWRqMEUhkFS9Gg0cJfYCPZjYUQFbPs+I7c2R1Q2ZjZfRNYYS4MAzPv3vnmvDvL3kMA2Hl5/CjLI9ckf4ZwY3Zt15C+gfwIao3So0rt3XsJtPUk9M/cAW6y9ap2DIyfAjgCwANwGeoYiEFtk/5e5CvXeer1D2neATcGgiTZM4+t9RNLEKcBtAFEGeBsiRWzl7EoSXo+8rV9gWc/fDc1B1VSEoEnDpj0KTB33tS26DGaEezvZQZpRxmODyoT5+vwBwS3zeTcT4yjTdZNJEiPSykk1bjZX6HeD/WQJ1zUApgq2w+etcsniBuAVlH9vELOx6Yo1VywgkmTB4X1kEGGhyAtg/Ecq3NNqnknDwVTrNBaactEts88OHs5b8Bw/Tof4M+kr4WrwwhoL9n5uRPWhxWwsxPEl+EGNMacP5I8evCPGgVgqKSFgoWCoQqE5hc9WCgYqkBoftGDeSiYz1/+UJLe+foftvh2A2B1fwQIrapkaFoDcK4PVyH0qVnyU4fjGdW4NQ2WlgDE5hLkMoJmQdh9zW9Dk59K5lhtLjyE01TX/jDILP5MGEbvbFPOJroIXvc5PjvTBbx7GM4vAjjd9WdSc2g/IPaqaTv5Aq58haP1TSb2Au20GGErvgTxIqiTAA7tVSnn+2Z9vAXdCsa4bD6Nsf0C/gYA5PMzcW0AAAAASUVORK5CYII=",$l=fe({props:{uri:{type:String},fileSize:{type:String,default:"100px"},width:{type:String,default:""},height:{type:String,default:""},type:{type:String,default:"image"}},emits:["close"]}),Rl=["src"],Dl={key:3,class:"absolute left-1/2 top-1/2 translate-x-[-50%] translate-y-[-50%] rounded-full w-5 h-5 flex justify-center items-center bg-[rgba(0,0,0,0.3)]"};function Tl(s,$,x,_,k,z){const S=Ye,u=Le;return i(),m("div",null,[o("div",{class:"file-item relative",style:Re({height:s.height||s.fileSize,width:s.width||s.fileSize})},[s.type=="image"?(i(),h(S,{key:0,class:"image",fit:"contain",src:s.uri},null,8,["src"])):s.type=="video"?(i(),m("video",{key:1,class:"video",src:s.uri},null,8,Rl)):(i(),h(S,{key:2,class:"image",src:"https://img95.699pic.com/element/40103/3946.png_860.png"})),s.type=="video"?(i(),m("div",Dl,[n(u,{name:"el-icon-CaretRight",size:18,color:"#fff"})])):p("",!0),Ke(s.$slots,"default",{},void 0,!0)],4)])}const re=Ie($l,[["render",Tl],["__scopeId","data-v-60d59d9e"]]);function Il(s){const $=pe(),x=E([]),_=E(""),k=async()=>{const f=await kl({page_type:0,type:s}),C=[{name:"全部",id:""},{name:"未分组",id:0}];x.value=f.lists,x.value.unshift(...C),setTimeout(()=>{var b;(b=$.value)==null||b.setCurrentKey(_.value)},0)};return{treeRef:$,cateId:_,cateLists:x,handleAddCate:async f=>{await $e({type:s,name:f,pid:0}),k()},handleAddChildCate:async(f,C)=>{await $e({type:s,name:f,pid:C}),k()},handleEditCate:async(f,C)=>{await wl({id:C,name:f}),k()},handleDeleteCate:async(f,C)=>{C?await me.confirm("删除文件夹将会永久删除文件夹及其所有内容。您确定要继续吗?"):await me.confirm("确定要删除?"),await bl({id:f}),_.value="",k()},getCateLists:k,handleCatSelect:f=>{_.value=f.id}}}function Ll(s,$,x,_){const k=pe(),z=E("normal"),S=E(0),u=E([]),R=E(!1),g=E(!1),f=qe({name:"",type:$,cid:s,source:""}),{pager:C,getLists:b,resetPage:M}=El({fetchFun:Vl,params:f,firstLoading:!0,size:_}),U=()=>{b()},J=()=>{M()},O=c=>!!u.value.find(d=>d.id==c),X=async c=>{await me.confirm("确认删除后,本地或云存储文件也将同步删除,如文件已被使用,请谨慎操作!");const d=c||u.value.map(V=>V.id);await Al({ids:d}),U(),F()},H=async()=>{const c=u.value.map(d=>d.id);await Sl({ids:c,cid:S.value}),S.value=0,U(),F()},ee=c=>{const d=u.value.findIndex(V=>V.id==c.id);if(d!=-1){u.value.splice(d,1);return}if(u.value.length==x.value){if(x.value==1){u.value=[],u.value.push(c);return}De.warning("已达到选择上限");return}u.value.push(c)},F=()=>{u.value=[]};return{listShowType:z,tableRef:k,moveId:S,pager:C,fileParams:f,select:u,isCheckAll:R,isIndeterminate:g,getFileList:U,refresh:J,batchFileDelete:X,batchFileMove:H,selectFile:ee,isSelect:O,clearSelect:F,cancelSelete:c=>{u.value=u.value.filter(d=>d.id!=c)},selectAll:c=>{var d;if(g.value=!1,(d=k.value)==null||d.toggleAllSelection(),c){u.value=[...C.lists];return}F()},handleFileRename:async(c,d)=>{await xl({id:d,name:c}),U()}}}const Ul={key:0},Fl={key:1},jl={class:"aspect-video overflow-hidden"},Ml={class:"size-full",controls:""},Pl=["src"],Bl=fe({__name:"preview",props:{modelValue:{type:Boolean,default:!1},url:{type:String,default:""},type:{type:String,default:"image"}},emits:["update:modelValue"],setup(s,{emit:$}){const x=s,_=$,k=pe(),z=Te({get(){return x.modelValue},set(R){_("update:modelValue",R)}}),S=()=>{_("update:modelValue",!1)},u=E([]);return Z(()=>x.modelValue,R=>{R?Ee(()=>{var g;u.value=[x.url],(g=k.value)==null||g.play()}):Ee(()=>{var g;u.value=[],(g=k.value)==null||g.pause()})}),(R,g)=>{const f=Qe,C=Ze;return Q((i(),m("div",null,[s.type=="image"?(i(),m("div",Ul,[t(u).length?(i(),h(f,{key:0,"url-list":t(u),"hide-on-click-modal":"",onClose:S},null,8,["url-list"])):p("",!0)])):p("",!0),s.type=="video"?(i(),m("div",Fl,[n(C,{modelValue:t(z),"onUpdate:modelValue":g[0]||(g[0]=b=>L(z)?z.value=b:null),width:"740px",title:"视频预览","before-close":S},{default:a(()=>[o("div",jl,[o("video",Ml,[o("source",{src:s.url,type:"video/mp4"},null,8,Pl)])])]),_:1},8,["modelValue"])])):p("",!0)],512)),[[ce,s.modelValue]])}}}),Nl={class:"material"},Gl={class:"material__left"},Wl={class:"flex-1 min-h-0"},Yl={class:"material-left__content pt-4 p-b-4"},Kl={class:"flex flex-1 items-center min-w-0 pr-4"},ql={class:"flex-1 truncate mr-2"},Zl=["onClick"],Ql={class:"flex justify-center p-2 border-t border-br"},Jl={class:"material__center flex flex-col"},Ol={class:"operate-btn flex"},Xl={class:"flex-1 flex"},Hl={class:"flex items-center ml-2"},et={key:0,class:"mt-3"},lt={class:"material-center__content flex flex-col flex-1 mb-1 min-h-0"},tt={class:"file-list flex flex-wrap mt-4"},nt={key:0,class:"item-selected"},at={class:"operation-btns flex items-center"},st={class:"inline-block"},ot={class:"inline-block"},it={class:"inline-block"},dt={key:1,class:"flex flex-1 justify-center items-center"},ut={class:"material-center__footer flex justify-between items-center mt-2"},rt={class:"flex"},ct={class:"mr-3"},mt={key:0,class:"material__right"},ft={class:"flex justify-between p-2 flex-wrap"},pt={class:"sm flex items-center"},vt={key:0},yt={class:"flex-1 min-h-0"},_t={class:"select-lists flex flex-col p-t-3"},gt={class:"select-item"},Ct=fe({__name:"index",props:{fileSize:{type:String,default:"100px"},limit:{type:Number,default:1},type:{type:String,default:"image"},mode:{type:String,default:"picker"},pageSize:{type:Number,default:15}},emits:["change"],setup(s,{expose:$,emit:x}){const _=s,k=x,{limit:z}=Je(_),S=Te(()=>{switch(_.type){case"image":return 10;case"video":return 20;case"file":return 30;default:return 0}}),u=[{value:"0",label:"后台上传"},{value:"1",label:"前端上传"}],R=Oe("visible",E(!1)),g=E(""),f=E(!1),{treeRef:C,cateId:b,cateLists:M,handleAddCate:U,handleAddChildCate:J,handleEditCate:O,handleDeleteCate:X,getCateLists:H,handleCatSelect:ee}=Il(S.value),{tableRef:F,listShowType:T,moveId:I,pager:A,fileParams:c,select:d,isCheckAll:V,isIndeterminate:P,getFileList:ve,refresh:j,batchFileDelete:Y,batchFileMove:ye,selectFile:le,isSelect:_e,clearSelect:ge,cancelSelete:Ue,selectAll:Ce,handleFileRename:he}=Ll(b,S,z,_.pageSize),ke=async()=>{var w;await H(),(w=C.value)==null||w.setCurrentKey(b.value),ve()},te=w=>{g.value=w,f.value=!0};Z(()=>R.value,async w=>{w&&ke()},{immediate:!0}),Z(b,()=>{c.name="",j()}),Z(d,w=>{if(k("change",w),w.length==A.lists.length&&w.length!==0){P.value=!1,V.value=!0;return}w.length>0?P.value=!0:(V.value=!1,P.value=!1)},{deep:!0}),Xe(()=>{_.mode=="page"&&ke()}),$({clearSelect:ge});const be=E(),Fe=w=>{const e=w,B=be.value;B.value=e,B.select(),document.execCommand("copy"),De({message:"地址复制成功",type:"success"})};return(w,e)=>{const B=_l,ne=nl,N=hl,je=tl,Me=fl,Pe=ll,ae=el,y=al,se=Cl,oe=pl,ie=sl,we=gl,K=Le,Be=ol,xe=dl,de=ul,Se=yl,Ae=ml,G=cl,Ne=rl,Ge=vl,We=He;return Q((i(),m("div",Nl,[o("div",Gl,[o("div",Wl,[n(ae,null,{default:a(()=>[o("div",Yl,[n(Pe,{ref_key:"treeRef",ref:C,"node-key":"id",data:t(M),"empty-text":"","highlight-current":!0,"expand-on-click-node":!1,"current-node-key":t(b),onNodeClick:t(ee)},{default:a(({data:l})=>[o("div",Kl,[e[16]||(e[16]=o("img",{class:"w-[20px] h-[16px] mr-3",src:zl},null,-1)),o("span",ql,[n(B,{content:l.name},null,8,["content"])]),l.id>0?(i(),h(Me,{key:0,"hide-on-click":!1},{dropdown:a(()=>[n(je,null,{default:a(()=>[n(N,{onConfirm:v=>t(O)(v,l.id),size:"default",value:l.name,width:"400px",limit:20,"show-limit":"",teleported:""},{default:a(()=>[o("div",null,[n(ne,null,{default:a(()=>[...e[12]||(e[12]=[r(" 命名分组 ",-1)])]),_:1})])]),_:1},8,["onConfirm","value"]),n(N,{onConfirm:v=>t(J)(v,l.id),size:"default",width:"400px",limit:20,"show-limit":"",teleported:""},{default:a(()=>[o("div",null,[n(ne,null,{default:a(()=>[...e[13]||(e[13]=[r(" 添加分组 ",-1)])]),_:1})])]),_:1},8,["onConfirm"]),o("div",{onClick:v=>{var Ve;return t(X)(l.id,(Ve=l==null?void 0:l.children)==null?void 0:Ve.length)}},[n(ne,null,{default:a(()=>[...e[14]||(e[14]=[r("删除分组",-1)])]),_:1})],8,Zl)]),_:2},1024)]),default:a(()=>[e[15]||(e[15]=o("span",{class:"muted m-r-10"},"···",-1))]),_:2},1024)):p("",!0)])]),_:1},8,["data","current-node-key","onNodeClick"])])]),_:1})]),o("div",Ql,[n(N,{onConfirm:t(U),size:"default",width:"400px",limit:20,"show-limit":"",teleported:""},{default:a(()=>[n(y,null,{default:a(()=>[...e[17]||(e[17]=[r(" 添加分组 ",-1)])]),_:1})]),_:1},8,["onConfirm"])])]),o("div",Jl,[o("div",Ol,[o("div",Xl,[s.type=="image"?(i(),h(se,{key:0,class:"mr-3",data:{cid:t(b)},type:s.type,"show-progress":!0,onChange:t(j)},{default:a(()=>[n(y,{type:"primary"},{default:a(()=>[...e[18]||(e[18]=[r("本地上传",-1)])]),_:1})]),_:1},8,["data","type","onChange"])):p("",!0),s.type=="video"?(i(),h(se,{key:1,class:"mr-3",data:{cid:t(b)},type:s.type,"show-progress":!0,onAllSuccess:t(j)},{default:a(()=>[n(y,{type:"primary"},{default:a(()=>[...e[19]||(e[19]=[r("本地上传",-1)])]),_:1})]),_:1},8,["data","type","onAllSuccess"])):p("",!0),s.type=="file"?(i(),h(se,{key:2,class:"mr-3",data:{cid:t(b)},type:s.type,"show-progress":!0,onAllSuccess:t(j)},{default:a(()=>[n(y,{type:"primary"},{default:a(()=>[...e[20]||(e[20]=[r("本地上传",-1)])]),_:1})]),_:1},8,["data","type","onAllSuccess"])):p("",!0),s.mode=="page"?(i(),h(y,{key:3,disabled:!t(d).length,onClick:e[0]||(e[0]=q(l=>t(Y)(),["stop"]))},{default:a(()=>[...e[21]||(e[21]=[r(" 删除 ",-1)])]),_:1},8,["disabled"])):p("",!0),s.mode=="page"?(i(),h(we,{key:4,class:"ml-3",onConfirm:t(ye),disabled:!t(d).length,title:"移动文件"},{trigger:a(()=>[n(y,{disabled:!t(d).length},{default:a(()=>[...e[22]||(e[22]=[r("移动",-1)])]),_:1},8,["disabled"])]),default:a(()=>[o("div",null,[e[23]||(e[23]=o("span",{class:"mr-5"},"移动文件至",-1)),n(ie,{modelValue:t(I),"onUpdate:modelValue":e[1]||(e[1]=l=>L(I)?I.value=l:null),placeholder:"请选择"},{default:a(()=>[(i(!0),m(D,null,W(t(M),l=>(i(),m(D,{key:l.id},[l.id!==""?(i(),h(oe,{key:0,label:l.name,value:l.id},null,8,["label","value"])):p("",!0)],64))),128))]),_:1},8,["modelValue"])])]),_:1},8,["onConfirm","disabled"])):p("",!0)]),n(ie,{modelValue:t(c).source,"onUpdate:modelValue":e[2]||(e[2]=l=>t(c).source=l),placeholder:"请选择文件来源",clearable:"",style:{"margin-right":"20px"},class:"max-w-52 ml-3"},{default:a(()=>[(i(),m(D,null,W(u,l=>n(oe,{key:l.value,label:l.label,value:l.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),n(Be,{class:"w-60",placeholder:"请输入名称",modelValue:t(c).name,"onUpdate:modelValue":e[3]||(e[3]=l=>t(c).name=l),onKeyup:il(t(j),["enter"])},{append:a(()=>[n(y,{onClick:t(j)},{icon:a(()=>[n(K,{name:"el-icon-Search"})]),_:1},8,["onClick"])]),_:1},8,["modelValue","onKeyup"]),o("div",Hl,[n(xe,{content:"列表视图",placement:"top"},{default:a(()=>[o("div",{class:ze(["list-icon",{select:t(T)=="table"}]),onClick:e[4]||(e[4]=l=>T.value="table")},[n(K,{name:"local-icon-list-2",size:18})],2)]),_:1}),n(xe,{content:"平铺视图",placement:"top"},{default:a(()=>[o("div",{class:ze(["list-icon",{select:t(T)=="normal"}]),onClick:e[5]||(e[5]=l=>T.value="normal")},[n(K,{name:"el-icon-Menu",size:18})],2)]),_:1})])]),s.mode=="page"?(i(),m("div",et,[n(de,{disabled:!t(A).lists.length,modelValue:t(V),"onUpdate:modelValue":e[6]||(e[6]=l=>L(V)?V.value=l:null),onChange:t(Ce),indeterminate:t(P)},{default:a(()=>[...e[24]||(e[24]=[r(" 当页全选 ",-1)])]),_:1},8,["disabled","modelValue","onChange","indeterminate"])])):p("",!0),o("div",lt,[t(A).lists.length?Q((i(),h(ae,{key:0},{default:a(()=>[o("ul",tt,[(i(!0),m(D,null,W(t(A).lists,l=>(i(),m("li",{class:"file-item-wrap",key:l.id,style:Re({width:s.fileSize})},[n(Se,{onClose:v=>t(Y)([l.id])},{default:a(()=>[n(re,{uri:l.url,"file-size":s.fileSize,type:s.type,onClick:v=>t(le)(l)},{default:a(()=>[t(_e)(l.id)?(i(),m("div",nt,[n(K,{size:24,name:"el-icon-Check",color:"#fff"})])):p("",!0)]),_:2},1032,["uri","file-size","type","onClick"])]),_:2},1032,["onClose"]),n(B,{class:"mt-1",content:l.name},null,8,["content"]),o("div",at,[n(N,{onConfirm:v=>t(he)(v,l.id),size:"default",value:l.name,width:"400px",limit:50,"show-limit":"",teleported:""},{default:a(()=>[n(y,{type:"primary",link:""},{default:a(()=>[...e[25]||(e[25]=[r(" 重命名 ",-1)])]),_:1})]),_:1},8,["onConfirm","value"]),l.type===10||l.type===20?(i(),h(y,{key:0,type:"primary",link:"",onClick:v=>te(l.url)},{default:a(()=>[...e[26]||(e[26]=[r(" 查看 ",-1)])]),_:1},8,["onClick"])):p("",!0),l.type===10||l.type===20?(i(),h(y,{key:1,type:"primary",link:"",onClick:v=>Fe(l.url),style:{"margin-left":"1px"}},{default:a(()=>[...e[27]||(e[27]=[r("地址",-1)])]),_:1},8,["onClick"])):(i(),h(Ae,{key:2,type:"primary",underline:!1,style:{"margin-left":"25px"},href:l.url},{default:a(()=>[...e[28]||(e[28]=[r("下载",-1)])]),_:1},8,["href"]))])],4))),128))])]),_:1},512)),[[ce,t(T)=="normal"]]):p("",!0),Q(n(Ne,{ref_key:"tableRef",ref:F,class:"mt-4",data:t(A).lists,width:"100%",height:"100%",size:"large",onRowClick:t(le)},{default:a(()=>[n(G,{width:"55"},{default:a(({row:l})=>[n(de,{modelValue:t(_e)(l.id),onChange:v=>t(le)(l)},null,8,["modelValue","onChange"])]),_:1}),n(G,{label:"图片",width:"100"},{default:a(({row:l})=>[n(re,{uri:l.url,"file-size":"50px",type:s.type},null,8,["uri","type"])]),_:1}),n(G,{label:"名称","min-width":"100","show-overflow-tooltip":""},{default:a(({row:l})=>[n(Ae,{onClick:q(v=>te(l.url),["stop"]),underline:!1},{default:a(()=>[r(ue(l.name),1)]),_:2},1032,["onClick"])]),_:1}),n(G,{prop:"create_time",label:"上传时间","min-width":"100"}),n(G,{label:"操作",width:"150",fixed:"right"},{default:a(({row:l})=>[o("div",st,[n(N,{onConfirm:v=>t(he)(v,l.id),size:"default",value:l.name,width:"400px",limit:50,"show-limit":"",teleported:""},{default:a(()=>[n(y,{type:"primary",link:""},{default:a(()=>[...e[29]||(e[29]=[r(" 重命名 ",-1)])]),_:1})]),_:1},8,["onConfirm","value"])]),o("div",ot,[n(y,{type:"primary",link:"",onClick:q(v=>te(l.url),["stop"])},{default:a(()=>[...e[30]||(e[30]=[r(" 查看 ",-1)])]),_:1},8,["onClick"])]),o("div",it,[n(y,{type:"primary",link:"",onClick:q(v=>t(Y)([l.id]),["stop"])},{default:a(()=>[...e[31]||(e[31]=[r(" 删除 ",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data","onRowClick"]),[[ce,t(T)=="table"]]),!t(A).loading&&!t(A).lists.length?(i(),m("div",dt," 暂无数据~ ")):p("",!0)]),o("div",ut,[o("div",rt,[s.mode=="page"?(i(),m(D,{key:0},[o("span",ct,[n(de,{disabled:!t(A).lists.length,modelValue:t(V),"onUpdate:modelValue":e[7]||(e[7]=l=>L(V)?V.value=l:null),onChange:t(Ce),indeterminate:t(P)},{default:a(()=>[...e[32]||(e[32]=[r(" 当页全选 ",-1)])]),_:1},8,["disabled","modelValue","onChange","indeterminate"])]),n(y,{disabled:!t(d).length,onClick:e[8]||(e[8]=l=>t(Y)())},{default:a(()=>[...e[33]||(e[33]=[r(" 删除 ",-1)])]),_:1},8,["disabled"]),n(we,{class:"ml-3 inline",onConfirm:t(ye),disabled:!t(d).length,title:"移动文件"},{trigger:a(()=>[n(y,{disabled:!t(d).length},{default:a(()=>[...e[34]||(e[34]=[r("移动",-1)])]),_:1},8,["disabled"])]),default:a(()=>[o("div",null,[e[35]||(e[35]=o("span",{class:"mr-5"},"移动文件至",-1)),n(ie,{modelValue:t(I),"onUpdate:modelValue":e[9]||(e[9]=l=>L(I)?I.value=l:null),placeholder:"请选择"},{default:a(()=>[(i(!0),m(D,null,W(t(M),l=>(i(),m(D,{key:l.id},[l.id!==""?(i(),h(oe,{key:0,label:l.name,value:l.id},null,8,["label","value"])):p("",!0)],64))),128))]),_:1},8,["modelValue"])])]),_:1},8,["onConfirm","disabled"])],64)):p("",!0)]),n(Ge,{modelValue:t(A),"onUpdate:modelValue":e[10]||(e[10]=l=>L(A)?A.value=l:null),onChange:t(ve),layout:"total, prev, pager, next, jumper"},null,8,["modelValue","onChange"])])]),s.mode=="picker"?(i(),m("div",mt,[o("div",ft,[o("div",pt,[r(" 已选择 "+ue(t(d).length)+" ",1),t(z)?(i(),m("span",vt,"/"+ue(t(z)),1)):p("",!0)]),n(y,{type:"primary",link:"",onClick:t(ge)},{default:a(()=>[...e[36]||(e[36]=[r("清空",-1)])]),_:1},8,["onClick"])]),o("div",yt,[n(ae,{class:"ls-scrollbar"},{default:a(()=>[o("ul",_t,[(i(!0),m(D,null,W(t(d),l=>(i(),m("li",{class:"mb-4",key:l.id},[o("div",gt,[n(Se,{onClose:v=>t(Ue)(l.id)},{default:a(()=>[n(re,{uri:l.url,"file-size":"100px",type:s.type},null,8,["uri","type"])]),_:2},1032,["onClose"])])]))),128))])]),_:1})])])):p("",!0),n(Bl,{modelValue:t(f),"onUpdate:modelValue":e[11]||(e[11]=l=>L(f)?f.value=l:null),url:t(g),type:s.type},null,8,["modelValue","url","type"]),o("input",{ref_key:"textCopys",ref:be,id:"textCopys",value:"",style:{opacity:"0",position:"absolute"}},null,512)])),[[We,t(A).loading]])}}}),zt=Ie(Ct,[["__scopeId","data-v-1e1d2cd0"]]);export{re as F,Bl as _,zt as a}; diff --git a/server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-98A4_fZW.js b/server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-CQzUr1BT.js similarity index 98% rename from server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-98A4_fZW.js rename to server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-CQzUr1BT.js index 5795801c9..404c502cd 100644 --- a/server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-98A4_fZW.js +++ b/server/public/admin/assets/index.vue_vue_type_script_setup_true_lang-CQzUr1BT.js @@ -1 +1 @@ -import{o as B,q as f,r as v,v as a,D as l,s as g,T as m,P as w,bd as D,u as t,bb as N,L as _,bf as S,bq as O,O as U,aA as j,K as H,a8 as z,aC as E}from"./.pnpm-CyuAWpdG.js";import{_ as L}from"./index-BnfLT5cB.js";import{j as c}from"./index-Dxvz9lb1.js";const h={class:"export-data"},I={key:0,class:"text-sm text-gray-500 mb-3 leading-relaxed"},M={class:"flex"},K=B({__name:"index",props:{params:{type:Object,default:()=>({})},pageSize:{type:Number,default:25},fetchFun:{type:Function,required:!0},exportHint:{type:String,default:""}},setup(R){const x=z(),n=R,y=z(),o=E({page_type:0,page_start:1,page_end:200,file_name:""}),k={page_start:[{required:!0,message:"请输入起始页码"},{type:"number",message:"页码必须是整数"},{validator:(r,e,s)=>{if(e<=0)return s(new Error("页码必须大于0"));s()}}],page_end:[{required:!0,message:"请输入结束页码"},{type:"number",message:"页码必须是整数"},{validator:(r,e,s)=>{if(e<=0)return s(new Error("页码必须大于0"));s()}}]},u=E({count:0,sum_page:0,page_size:0,max_page:0,all_max_size:0}),b=async()=>{const r=await n.fetchFun({...n.params,page_size:n.pageSize,export:1});Object.assign(u,r),o.file_name=r.file_name,o.page_end=r.page_end,o.page_start=r.page_start},q=async()=>{var r,e;await((r=x.value)==null?void 0:r.validate()),c.loading("正在导出中...");try{await n.fetchFun({...n.params,...o,page_size:n.pageSize,export:2}),(e=y.value)==null||e.close(),c.closeLoading()}catch{c.closeLoading()}};return b(),(r,e)=>{const s=H,p=N,V=O,C=S,i=j,F=D;return f(),v("div",h,[a(L,{ref_key:"popupRef",ref:y,title:"导出设置",width:"500px","confirm-button-text":"确认导出",onConfirm:q,async:!0,onOpen:b},{trigger:l(()=>[a(s,null,{default:l(()=>[...e[4]||(e[4]=[_("导出",-1)])]),_:1})]),default:l(()=>[g("div",null,[n.exportHint?(f(),v("p",I,m(n.exportHint),1)):w("",!0),a(F,{ref_key:"formRef",ref:x,model:t(o),"label-width":"120px",rules:k},{default:l(()=>[a(p,{label:"数据量:"},{default:l(()=>[_(" 预计导出"+m(t(u).count)+"条数据, 共"+m(t(u).sum_page)+"页,每页"+m(t(u).page_size)+"条数据 ",1)]),_:1}),a(p,{label:"导出限制:"},{default:l(()=>[_(" 每次导出最大允许"+m(t(u).max_page)+"页,共"+m(t(u).all_max_size)+"条数据 ",1)]),_:1}),a(p,{prop:"page_type",label:"导出范围:",required:""},{default:l(()=>[a(C,{modelValue:t(o).page_type,"onUpdate:modelValue":e[0]||(e[0]=d=>t(o).page_type=d)},{default:l(()=>[a(V,{value:0},{default:l(()=>[...e[5]||(e[5]=[_("全部导出",-1)])]),_:1}),a(V,{value:1},{default:l(()=>[...e[6]||(e[6]=[_("分页导出",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(o).page_type==1?(f(),U(p,{key:0,label:"分页范围:"},{default:l(()=>[g("div",M,[a(p,{prop:"page_start"},{default:l(()=>[a(i,{style:{width:"140px"},modelValue:t(o).page_start,"onUpdate:modelValue":e[1]||(e[1]=d=>t(o).page_start=d),modelModifiers:{number:!0},placeholder:""},null,8,["modelValue"])]),_:1}),e[7]||(e[7]=g("span",{class:"flex-none ml-2 mr-2"},"页,至",-1)),a(p,{prop:"page_end"},{default:l(()=>[a(i,{style:{width:"140px"},modelValue:t(o).page_end,"onUpdate:modelValue":e[2]||(e[2]=d=>t(o).page_end=d),modelModifiers:{number:!0},placeholder:""},null,8,["modelValue"])]),_:1})])]),_:1})):w("",!0),a(p,{label:"导出文件名称:",prop:"file_name"},{default:l(()=>[a(i,{modelValue:t(o).file_name,"onUpdate:modelValue":e[3]||(e[3]=d=>t(o).file_name=d),placeholder:"请输入导出文件名称"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},512)])}}});export{K as _}; +import{o as B,q as f,r as v,v as a,D as l,s as g,T as m,P as w,bd as D,u as t,bb as N,L as _,bf as S,bq as O,O as U,aA as j,K as H,a8 as z,aC as E}from"./.pnpm-CyuAWpdG.js";import{_ as L}from"./index-CS5Wg0xx.js";import{j as c}from"./index-Bkarz3gO.js";const h={class:"export-data"},I={key:0,class:"text-sm text-gray-500 mb-3 leading-relaxed"},M={class:"flex"},K=B({__name:"index",props:{params:{type:Object,default:()=>({})},pageSize:{type:Number,default:25},fetchFun:{type:Function,required:!0},exportHint:{type:String,default:""}},setup(R){const x=z(),n=R,y=z(),o=E({page_type:0,page_start:1,page_end:200,file_name:""}),k={page_start:[{required:!0,message:"请输入起始页码"},{type:"number",message:"页码必须是整数"},{validator:(r,e,s)=>{if(e<=0)return s(new Error("页码必须大于0"));s()}}],page_end:[{required:!0,message:"请输入结束页码"},{type:"number",message:"页码必须是整数"},{validator:(r,e,s)=>{if(e<=0)return s(new Error("页码必须大于0"));s()}}]},u=E({count:0,sum_page:0,page_size:0,max_page:0,all_max_size:0}),b=async()=>{const r=await n.fetchFun({...n.params,page_size:n.pageSize,export:1});Object.assign(u,r),o.file_name=r.file_name,o.page_end=r.page_end,o.page_start=r.page_start},q=async()=>{var r,e;await((r=x.value)==null?void 0:r.validate()),c.loading("正在导出中...");try{await n.fetchFun({...n.params,...o,page_size:n.pageSize,export:2}),(e=y.value)==null||e.close(),c.closeLoading()}catch{c.closeLoading()}};return b(),(r,e)=>{const s=H,p=N,V=O,C=S,i=j,F=D;return f(),v("div",h,[a(L,{ref_key:"popupRef",ref:y,title:"导出设置",width:"500px","confirm-button-text":"确认导出",onConfirm:q,async:!0,onOpen:b},{trigger:l(()=>[a(s,null,{default:l(()=>[...e[4]||(e[4]=[_("导出",-1)])]),_:1})]),default:l(()=>[g("div",null,[n.exportHint?(f(),v("p",I,m(n.exportHint),1)):w("",!0),a(F,{ref_key:"formRef",ref:x,model:t(o),"label-width":"120px",rules:k},{default:l(()=>[a(p,{label:"数据量:"},{default:l(()=>[_(" 预计导出"+m(t(u).count)+"条数据, 共"+m(t(u).sum_page)+"页,每页"+m(t(u).page_size)+"条数据 ",1)]),_:1}),a(p,{label:"导出限制:"},{default:l(()=>[_(" 每次导出最大允许"+m(t(u).max_page)+"页,共"+m(t(u).all_max_size)+"条数据 ",1)]),_:1}),a(p,{prop:"page_type",label:"导出范围:",required:""},{default:l(()=>[a(C,{modelValue:t(o).page_type,"onUpdate:modelValue":e[0]||(e[0]=d=>t(o).page_type=d)},{default:l(()=>[a(V,{value:0},{default:l(()=>[...e[5]||(e[5]=[_("全部导出",-1)])]),_:1}),a(V,{value:1},{default:l(()=>[...e[6]||(e[6]=[_("分页导出",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(o).page_type==1?(f(),U(p,{key:0,label:"分页范围:"},{default:l(()=>[g("div",M,[a(p,{prop:"page_start"},{default:l(()=>[a(i,{style:{width:"140px"},modelValue:t(o).page_start,"onUpdate:modelValue":e[1]||(e[1]=d=>t(o).page_start=d),modelModifiers:{number:!0},placeholder:""},null,8,["modelValue"])]),_:1}),e[7]||(e[7]=g("span",{class:"flex-none ml-2 mr-2"},"页,至",-1)),a(p,{prop:"page_end"},{default:l(()=>[a(i,{style:{width:"140px"},modelValue:t(o).page_end,"onUpdate:modelValue":e[2]||(e[2]=d=>t(o).page_end=d),modelModifiers:{number:!0},placeholder:""},null,8,["modelValue"])]),_:1})])]),_:1})):w("",!0),a(p,{label:"导出文件名称:",prop:"file_name"},{default:l(()=>[a(i,{modelValue:t(o).file_name,"onUpdate:modelValue":e[3]||(e[3]=d=>t(o).file_name=d),placeholder:"请输入导出文件名称"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])])]),_:1},512)])}}});export{K as _}; diff --git a/server/public/admin/assets/index.vue_vue_type_style_index_0_lang-CduB--xp.js b/server/public/admin/assets/index.vue_vue_type_style_index_0_lang-D6-pu4qU.js similarity index 91% rename from server/public/admin/assets/index.vue_vue_type_style_index_0_lang-CduB--xp.js rename to server/public/admin/assets/index.vue_vue_type_style_index_0_lang-D6-pu4qU.js index 6b17e6ab4..2e2fe4c5f 100644 --- a/server/public/admin/assets/index.vue_vue_type_style_index_0_lang-CduB--xp.js +++ b/server/public/admin/assets/index.vue_vue_type_style_index_0_lang-D6-pu4qU.js @@ -1 +1 @@ -import{o as x,by as k,q as R,r as U,t as _,u as t,v as i,bP as B,bQ as P,C as E,a8 as m,M as c,p,n as N}from"./.pnpm-CyuAWpdG.js";import{_ as T}from"./picker-BDO86vcM.js";import{o as h}from"./index-Dxvz9lb1.js";const O=x({__name:"index",props:{modelValue:{default:""},mode:{default:"default"},height:{default:"100%"},width:{default:"auto"},toolbarConfig:{default:()=>({})}},emits:["update:modelValue"],setup(a,{emit:g}){const l=a,v=g,d=m(),n=m(),r=c(""),f=c(!1);let s;const b={MENU_CONF:{uploadImage:{customBrowseAndUpload(e){var o;r.value="image",(o=n.value)==null||o.showPopup(-1),s=e}},uploadVideo:{customBrowseAndUpload(e){var o;r.value="video",(o=n.value)==null||o.showPopup(-1),s=e}}}},C=p(()=>({height:h(l.height),width:h(l.width)})),u=p({get(){return l.modelValue},set(e){f.value&&v("update:modelValue",e)}}),y=e=>{e.forEach(o=>{s(o)})};k(()=>{const e=d.value;e!=null&&e.destroy()});const w=e=>{d.value=e,N(()=>{f.value=!0})};return(e,o)=>(R(),U("div",{class:"border border-br flex flex-col",style:_(t(C))},[i(t(B),{class:"border-b border-br",editor:t(d),defaultConfig:a.toolbarConfig,mode:a.mode},null,8,["editor","defaultConfig","mode"]),i(t(P),{class:"flex-1 overflow-hidden",modelValue:t(u),"onUpdate:modelValue":o[0]||(o[0]=V=>E(u)?u.value=V:null),defaultConfig:b,mode:a.mode,onOnCreated:w},null,8,["modelValue","mode"]),i(T,{ref_key:"materialPickerRef",ref:n,type:t(r),limit:-1,"hidden-upload":"",onChange:y},null,8,["type"])],4))}});export{O as _}; +import{o as x,by as k,q as R,r as U,t as _,u as t,v as i,bP as B,bQ as P,C as E,a8 as m,M as c,p,n as N}from"./.pnpm-CyuAWpdG.js";import{_ as T}from"./picker-BTh9eW9u.js";import{o as h}from"./index-Bkarz3gO.js";const O=x({__name:"index",props:{modelValue:{default:""},mode:{default:"default"},height:{default:"100%"},width:{default:"auto"},toolbarConfig:{default:()=>({})}},emits:["update:modelValue"],setup(a,{emit:g}){const l=a,v=g,d=m(),n=m(),r=c(""),f=c(!1);let s;const b={MENU_CONF:{uploadImage:{customBrowseAndUpload(e){var o;r.value="image",(o=n.value)==null||o.showPopup(-1),s=e}},uploadVideo:{customBrowseAndUpload(e){var o;r.value="video",(o=n.value)==null||o.showPopup(-1),s=e}}}},C=p(()=>({height:h(l.height),width:h(l.width)})),u=p({get(){return l.modelValue},set(e){f.value&&v("update:modelValue",e)}}),y=e=>{e.forEach(o=>{s(o)})};k(()=>{const e=d.value;e!=null&&e.destroy()});const w=e=>{d.value=e,N(()=>{f.value=!0})};return(e,o)=>(R(),U("div",{class:"border border-br flex flex-col",style:_(t(C))},[i(t(B),{class:"border-b border-br",editor:t(d),defaultConfig:a.toolbarConfig,mode:a.mode},null,8,["editor","defaultConfig","mode"]),i(t(P),{class:"flex-1 overflow-hidden",modelValue:t(u),"onUpdate:modelValue":o[0]||(o[0]=V=>E(u)?u.value=V:null),defaultConfig:b,mode:a.mode,onOnCreated:w},null,8,["modelValue","mode"]),i(T,{ref_key:"materialPickerRef",ref:n,type:t(r),limit:-1,"hidden-upload":"",onChange:y},null,8,["type"])],4))}});export{O as _}; diff --git a/server/public/admin/assets/index_h5-CguomBSY.js b/server/public/admin/assets/index_h5-C57gHVJz.js similarity index 93% rename from server/public/admin/assets/index_h5-CguomBSY.js rename to server/public/admin/assets/index_h5-C57gHVJz.js index 1e2ba308a..46845c084 100644 --- a/server/public/admin/assets/index_h5-CguomBSY.js +++ b/server/public/admin/assets/index_h5-C57gHVJz.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-DFFSwWxS.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-QAkeqQ9Q.js","assets/index-Dxvz9lb1.js","assets/index-B3vHLAW8.css","assets/perm-DOfZAzJJ.js","assets/DailyMatrix-BSZy3g0c.js","assets/picker-BDO86vcM.js","assets/index-BnfLT5cB.js","assets/index-B3imPWFk.css","assets/index-yD39j6dM.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-ClBYIwNX.js","assets/index-D0f1Mn00.css","assets/index-BU3OYnKm.js","assets/file-CefRfHD9.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-CE1isNg2.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-GXQTu6xF.js","assets/FollowupAudioReview-92Fgd7wW.js","assets/FollowupAudioField-BG0mRnT5.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-Bdp996ss.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-DFudUjln.js","assets/RecordingPlaybackBlock-GbWd6PMw.js","assets/RecordingVideoPlayer-grUPRDCj.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CafeXQX5.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-0TFZiCkF.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-C2wB-h-D.js","assets/doctor-8vo_5fa4.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-DDh0aI3_.js","assets/patient-Bz8-LT2R.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-BP2alDvZ.js","assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-B4rggqa1.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-Cis-_1uh.js","assets/index-Cf6ygfGC.js","assets/medicine-EUKQYFsM.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-DT7CSmCp.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/detail-BC-AUtN0.js","assets/appointment-FizcUjTK.js","assets/first_visit-BxZL4Ke4.js","assets/appointment-g8BrHfhi.css","assets/AssistantWatchCallDialog-Cmuadkz7.js","assets/AssistantWatchCallDialog-BIPZRgaH.css"])))=>i.map(i=>d[i]); -import{o as vt,ap as Va,aq as xa,q as l,r as d,s,v as n,bc as Da,u as m,bB as Ea,aA as $a,D as o,L as g,K as Ra,F as D,G as q,ae as A,T as p,P as _,w as Aa,cm as ot,ac as We,ad as za,O as $,bi as Ia,bh as wa,bn as Sa,bC as qa,cx as Pa,cn as La,bF as dt,db as Ta,dp as Na,bI as Fa,as as Wa,d9 as Ua,B as Oa,bd as Ma,bb as Ya,bg as Ba,J as Qa,aB as Ha,ba as Ga,bm as Ka,aa as ja,cd as ne,p as Y,aC as Ue,M as c,bG as Xa,al as se}from"./.pnpm-CyuAWpdG.js";import{c as Ja,a as rt}from"./appointment-type-DJT6wPaT.js";import{ax as R,o as Za,az as en,Y as tn,aB as an,X as ut,aC as pt,aG as nn,aD as sn,aE as ln,aF as on}from"./tcm-QAkeqQ9Q.js";import{i as dn}from"./order-CIw46QQn.js";import{m as rn}from"./doctor-8vo_5fa4.js";import{u as un,n as ct,j as f,$ as pn,W as cn,a7 as mn,_ as _n}from"./index-Dxvz9lb1.js";import{g as mt}from"./weapp-COUVUBPI.js";import{u as vn}from"./usePaging-CghUEVfD.js";import{h as E}from"./perm-DOfZAzJJ.js";import{d as _t}from"./dayjs-B2bPhvDy.js";import gn from"./RevisitNodeCell-DGzlUBxp.js";const fn={class:"dh5"},hn={class:"dh5-topbar"},yn={class:"dh5-search"},kn={class:"dh5-chips dh5-chips--scroll"},bn=["onClick"],Cn={key:0},Vn={key:0},xn={key:0},Dn={key:0},En={key:0},$n={class:"dh5-quick"},Rn={class:"dh5-quick-group"},An=["onClick"],zn={class:"dh5-quick-group"},In=["onClick"],wn={class:"dh5-more-filter"},Sn={class:"dh5-list"},qn={key:0,class:"dh5-empty"},Pn=["onClick"],Ln={class:"dh5-card-avatar"},Tn={class:"dh5-card-id-name"},Nn={class:"dh5-card-name"},Fn={key:0,class:"dh5-meta-gender"},Wn={key:1,class:"dh5-meta-age"},Un={class:"dh5-card-sub"},On={key:0,class:"dh5-tag-new"},Mn={class:"dh5-card-tags"},Yn={key:0,class:"dh5-tag dh5-tag--ok"},Bn={key:1,class:"dh5-tag dh5-tag--warn"},Qn={key:2,class:"dh5-tag dh5-tag--info"},Hn=["onClick"],Gn={class:"dh5-row-val"},Kn={class:"dh5-apt-status"},jn={class:"dh5-apt-doctor"},Xn={class:"dh5-apt-time"},Jn={class:"dh5-apt-type"},Zn={class:"dh5-apt-status"},es={class:"dh5-apt-doctor"},ts={class:"dh5-apt-time"},as={class:"dh5-apt-type"},ns={key:1,class:"dh5-apt-none"},ss={key:0,class:"dh5-row dh5-row--followup"},ls={class:"dh5-row-val dh5-row-val--revisit"},is={class:"dh5-row"},os={class:"dh5-row-val"},ds={key:1,class:"dh5-row"},rs={class:"dh5-row-val"},us={key:0,class:"dh5-meta-mute"},ps={key:1},cs={key:0,class:"dh5-card-watch"},ms={class:"dh5-watch-tip"},_s={key:1,class:"dh5-watch-mute"},vs={class:"dh5-card-foot"},gs={key:2,class:"dh5-no-more"},fs={key:0,class:"dh5-actions"},hs={class:"dh5-form-tip"},ys={class:"font-medium"},ks={class:"dh5-qr"},bs={key:0,class:"dh5-qr-loading"},Cs={key:1},Vs=["src"],xs={class:"dh5-qr-meta"},Ds={key:2,class:"dh5-qr-fail"},Es={key:0,class:"dh5-wx-contact"},$s={class:"dh5-wx-contact-row"},Rs={class:"dh5-wx-val"},As={class:"dh5-wx-contact-row"},zs={class:"dh5-wx-val"},Is={key:0},ws={class:"dh5-wx-contact-row"},Ss={class:"dh5-wx-val"},qs={class:"dh5-wx-add"},Ps={class:"dh5-wx-list-wrap"},Ls={key:0,class:"dh5-wx-empty"},Ts={key:1,class:"dh5-wx-list"},Ns={class:"dh5-wx-head"},Fs={class:"dh5-wx-head-left"},Ws={class:"dh5-wx-name"},Us={class:"dh5-wx-head-right"},Os={class:"dh5-wx-time"},Ms={class:"dh5-wx-content"},Ys={key:0,class:"dh5-wx-media"},Bs=vt({name:"tcmDiagnosisH5"}),Qs=vt({...Bs,setup(Hs){const gt=ne(()=>se(()=>import("./edit-DFFSwWxS.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),ft=ne(()=>se(()=>import("./detail-BC-AUtN0.js"),__vite__mapDeps([66,9,1,2,4,5,10,3]))),ht=ne(()=>se(()=>import("./index-Cis-_1uh.js"),__vite__mapDeps([56,1,2,57,58,4,5,59,60,3,61,62,63]))),yt=ne(()=>se(()=>import("./appointment-FizcUjTK.js"),__vite__mapDeps([67,1,2,40,3,4,5,46,68,69]))),kt=ne(()=>se(()=>import("./AssistantWatchCallDialog-Cmuadkz7.js"),__vite__mapDeps([70,1,2,3,4,5,71]))),le=un(),bt=t=>{if(!t)return"-";const e=String(t).length===10?Number(t)*1e3:Number(t);return _t(e).format("YYYY-MM-DD HH:mm")},Ct=t=>{if(!t)return"-";const e=String(t).length===10?t*1e3:t;return _t(e).format("YYYY-MM-DD HH:mm")},Oe=t=>!t||t.length<11?t:t.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),z=t=>String(t).padStart(2,"0"),ge=Y(()=>{const t=new Date;return t.setDate(t.getDate()-1),`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),fe=Y(()=>{const t=new Date;return t.setDate(t.getDate()-2),`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),G=Y(()=>{const t=new Date;return`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),he=Y(()=>{const t=new Date;return t.setDate(t.getDate()+1),`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),ye=Y(()=>{const t=new Date;return t.setDate(t.getDate()+2),`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),i=Ue({keyword:"",diagnosis_type:"",syndrome_type:"",assistant_id:"",diagnosis_confirmed:"",appointment_date:"",has_appointment:"",pending_assign:"",pending_booking:"",completed_appointment:"",revisit_state:""}),K=c(!1),Vt=[{label:"全部",value:""},{label:"已挂号",value:"1"},{label:"未挂号",value:"0"}],xt=[{label:"全部",value:""},{label:"已确认",value:"1"},{label:"未确认",value:"0"}],Dt=Y(()=>[{label:"昨天挂号",value:ge.value},{label:"前天挂号",value:fe.value},{label:"当天挂号",value:G.value},{label:"明天挂号",value:he.value},{label:"后天挂号",value:ye.value},{label:"全部",value:""}]),ke=c({}),be=c(void 0),Ce=c(void 0),Ve=c(void 0),{pager:y,getLists:b}=vn({fetchFun:R,params:i}),xe=Y(()=>y.lists.length<(y.count||0)),Me=()=>b({silent:!0}),Q=()=>{y.page=1,b(),V()},Et=()=>{i.keyword="",i.diagnosis_type="",i.syndrome_type="",i.assistant_id="",i.diagnosis_confirmed="",i.appointment_date=G.value,i.has_appointment="",i.pending_assign="",i.pending_booking="",i.completed_appointment="",i.revisit_state="",y.page=1,b(),V()},$t=t=>{i.has_appointment=t,i.pending_booking="",i.completed_appointment="",y.page=1,b(),V()},Rt=t=>{i.diagnosis_confirmed=t,i.pending_booking="",i.completed_appointment="",y.page=1,b(),V()},At=async t=>{i.pending_assign="",i.pending_booking="",i.completed_appointment="",i.revisit_state="",i.has_appointment="",i.appointment_date=t,y.page=1,await b(),V()},zt=async()=>{i.pending_assign="",i.pending_booking="1",i.completed_appointment="",i.revisit_state="",i.appointment_date="",i.has_appointment="0",y.page=1,await b(),V()},It=async()=>{i.pending_assign="",i.pending_booking="",i.completed_appointment="1",i.revisit_state="",i.has_appointment="",i.appointment_date="",y.page=1,await b(),V()},wt=async()=>{i.pending_assign="1",i.pending_booking="",i.completed_appointment="",i.revisit_state="",i.has_appointment="",i.appointment_date="",y.page=1,await b(),V()},St=async()=>{i.pending_assign="",i.pending_booking="",i.completed_appointment="",i.has_appointment="",i.appointment_date="",i.revisit_state="due",y.page=1,await b(),V()},De=c(void 0),Ee=t=>cn(t==null?void 0:t.revisit_due),V=async()=>{try{const[t,e,u,r,h,C,P,te,M,x]=await Promise.all([R({appointment_date:ge.value,page_no:1,page_size:1}),R({appointment_date:fe.value,page_no:1,page_size:1}),R({appointment_date:G.value,page_no:1,page_size:1}),R({appointment_date:he.value,page_no:1,page_size:1}),R({appointment_date:ye.value,page_no:1,page_size:1}),R({page_no:1,page_size:1}),R({has_appointment:0,page_no:1,page_size:1}),R({completed_appointment:1,page_no:1,page_size:1}),R({pending_assign:1,page_no:1,page_size:1}),R({revisit_state:"due",page_no:1,page_size:1})]);ke.value={[ge.value]:(t==null?void 0:t.count)??0,[fe.value]:(e==null?void 0:e.count)??0,[G.value]:(u==null?void 0:u.count)??0,[he.value]:(r==null?void 0:r.count)??0,[ye.value]:(h==null?void 0:h.count)??0,"":(C==null?void 0:C.count)??0},be.value=(P==null?void 0:P.count)??0,Ce.value=(te==null?void 0:te.count)??0,Ve.value=(M==null?void 0:M.count)??0,De.value=(x==null?void 0:x.count)??0}catch(t){console.error("获取日期数量失败",t)}},qt=async()=>{if(y.loading||!xe.value)return;const t=(y.page||1)+1;y.loading=!0;try{const e=await R({page_no:t,page_size:y.size,...i});y.page=t,y.lists.push(...(e==null?void 0:e.lists)||[]),y.count=(e==null?void 0:e.count)??y.count}catch(e){console.error("加载更多失败:",e)}finally{y.loading=!1}},$e=c([]),Re=c([]),j=c([]),Pt=async()=>{try{const[t,e,u]=await Promise.all([ct({type:"diagnosis_type"}),ct({type:"syndrome_type"}),Za()]);$e.value=(t==null?void 0:t.diagnosis_type)||[],Re.value=(e==null?void 0:e.syndrome_type)||[],j.value=u||[]}catch(t){console.error("获取字典数据失败:",t)}},Ye=(t,e)=>{const u=t.find(r=>r.value===e);return u?u.name:e||"-"},Lt=t=>{if(!t&&t!==0)return"-";const e=typeof t=="string"?parseInt(t):t;if(j.value.length===0)return"...";const u=j.value.find(r=>(typeof r.id=="string"?parseInt(r.id):r.id)===e);return u?u.name:"-"},Be=t=>{const e=t.DiagnosisViewRecord||[];return e.length>0&&e.some(u=>u.is_confirmed==1)},Tt=t=>mn(Ee(t))?"dh5-card--overdue":Be(t)?t.has_appointment?"":"dh5-card--noapt":"dh5-card--unconfirmed",Nt=t=>{const e=Number(t.appointment_status);return e===3?"已完成":e===4?"已过号":"已挂号"},Ft=t=>{const e=Number(t);return e===3?"已完成":e===4?"已过号":"已挂号"},Ae=t=>{const e=Array.isArray(t.appointments)?t.appointments:[];return e.length>0?e:t.has_appointment?[{id:t.appointment_id,status:t.appointment_status,doctor_id:t.appointment_doctor_id,doctor_name:t.appointment_doctor_name,time_text:t.appointment_time_text,appointment_type:t.appointment_type}]:[]},Wt=t=>{const e=Number(t==null?void 0:t.status);return{"dh5-apt-item--done":e===3,"dh5-apt-item--missed":e===4,"dh5-apt-item--active":e===1}},Ut=t=>{const e=Number(t.appointment_status);return{"has-apt":t.has_appointment,"apt-row-done":t.has_appointment&&e===3,"apt-row-missed":t.has_appointment&&e===4}},ze=(t,e=!1)=>Ae(t).find(u=>Number(u==null?void 0:u.status)===1&&(!e||Ja(u.appointment_type)))??null,Qe=(t,e=!1)=>{const u=ze(t,e);return u?{...t,has_appointment:1,appointment_id:u.id,appointment_status:u.status,appointment_doctor_id:u.doctor_id,appointment_doctor_name:u.doctor_name,appointment_time_text:u.time_text,appointment_type:u.appointment_type}:null},Ot=t=>!!ze(t),ie=t=>!!ze(t,!0),He=t=>{const e=Number(t.appointment_status);return!!(t.has_appointment&&t.appointment_id&&(e===1||e===4))},Mt=t=>{var u;const e=t.assistant_id??t.assistant;return e==null||e===""?!1:Number(e)===Number((u=le.userInfo)==null?void 0:u.id)},oe=t=>ie(t)&&Mt(t)&&E(["tcm.diagnosis/watchCall"]),X=t=>{var e;return ie(t)&&((e=t.video_call_hint)==null?void 0:e.state)||"none"},Yt=t=>{const e=X(t);return e==="live"||e==="pending_room"},Bt=t=>X(t)==="pending_room"?"医生未接通或未同步房间":"点击进入实时房间",Qt=t=>{const e=t.video_call_hint;return e!=null&&e.label?e.label:"暂无可旁观通话"},Ht=t=>{const e=X(t);if(e==="none")return"";if(e==="live")return"通话中";if(e==="pending_room")return"接通中";const u=t.video_call_hint;return(u==null?void 0:u.label)||""},Gt=t=>{if(oe(t))return!0;const e=X(t);return e==="live"||e==="pending_room"},Ie=c(!1),Ge=c(0),Kt=t=>{if(!oe(t)){f.msgWarning("仅已预约的视频问诊可进入视频旁观");return}if(X(t)!=="live"){f.msgWarning("医生未接通或未同步房间号,请稍后再试");return}Ge.value=Number(t.id)||0,Ie.value=!0},de=c(),Ke=c(),je=c(),Xe=c(),jt=()=>{var t;return(t=de.value)==null?void 0:t.open("add")},Xt=t=>{var e;return(e=de.value)==null?void 0:e.open("edit",t)},Je=t=>{var e;return(e=Ke.value)==null?void 0:e.open(t)},Ze=t=>(t==null?void 0:t.prescription_audit_status)===1&&Number(t==null?void 0:t.prescription_void_status)!==1?"查看":"开方",Jt=t=>{var e;if(!(t!=null&&t.id)){f.msgWarning("诊单信息不完整");return}(e=je.value)==null||e.open({...t,diagnosis_id:t.id,id:t.appointment_id||0})},Zt=()=>{var t,e;b(),(e=(t=de.value)==null?void 0:t.refreshCaseList)==null||e.call(t)},ea=t=>{var e;if(!t.patient_id){f.msgWarning("患者信息不完整");return}(e=Xe.value)==null||e.open(t)},ta=async t=>{await f.confirm("确定要删除该诊单吗?"),await on({id:t}),b()},re=c(!1),L=c(null),aa=t=>{L.value=t,re.value=!0},T=t=>{const e=L.value;if(re.value=!1,!!e)switch(t){case"assign":na(e);break;case"videoQr":if(!ie(e)){f.msgWarning("仅已预约的视频问诊可生成视频二维码");return}tt(e);break;case"confirmQr":at(e);break;case"cancelApt":_a(e);break;case"fillIdCard":ua(e);break;case"order":ia(e);break;case"wechat":nt(e);break;case"delete":ta(e.id);break}},J=c(!1),we=c(!1),ue=c(null),I=c({assistant_id:null,is_inherit:!1}),na=t=>{ue.value=t,I.value.assistant_id=t.assistant_id?Number(t.assistant_id):null,I.value.is_inherit=!1,J.value=!0},sa=async()=>{if(!I.value.assistant_id){f.msgWarning("请选择医助");return}we.value=!0;try{await en({id:ue.value.id,assistant_id:I.value.assistant_id,is_inherit:I.value.is_inherit?1:0}),J.value=!1,b()}catch(t){console.error("指派失败:",t)}finally{we.value=!1}},Z=c(!1),pe=c(),Se=c(!1),v=Ue({patient_id:"",patient_name:"",phone:"",order_type:"",amount:0,remark:"",has_appointment:!1,appointment_time_text:""}),la={order_type:[{required:!0,message:"请选择订单类型",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"}]},ia=t=>{var e;v.patient_id=t.patient_id||t.id,v.patient_name=t.patient_name,v.phone=t.phone||"",v.order_type="",v.amount=0,v.remark="",v.has_appointment=!!t.has_appointment,v.appointment_time_text=t.appointment_time_text||"",(e=pe.value)==null||e.clearValidate(),Z.value=!0},oa=()=>{var t;v.patient_id="",v.patient_name="",v.phone="",v.order_type="",v.amount=0,v.remark="",v.has_appointment=!1,v.appointment_time_text="",(t=pe.value)==null||t.clearValidate()},da=async()=>{var t;try{await((t=pe.value)==null?void 0:t.validate()),Se.value=!0;const e=await dn({patient_id:v.patient_id,order_type:v.order_type,amount:v.amount,remark:v.remark});Z.value=!1,b();const u=e==null?void 0:e.order_no;if(u){N.value=!0,F.value=!0,W.value="",ce.value="收款二维码",U.value={patient_name:v.patient_name,has_appointment:v.has_appointment,appointment_time_text:v.appointment_time_text};try{const r=await tn({order_no:u});r!=null&&r.qrcode_url?W.value=r.qrcode_url:f.msgError("二维码生成失败")}catch(r){f.msgError((r==null?void 0:r.msg)||"生成二维码失败")}finally{F.value=!1}}}catch(e){console.error("创建订单失败:",e)}finally{Se.value=!1}},ee=c(!1),qe=c(!1),et=c(),w=Ue({id:0,patient_name:"",id_card:""}),ra={id_card:[{required:!0,validator:(t,e,u)=>{if(!e){u(new Error("请输入身份证号"));return}const r=/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e),h=/^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$/.test(e);r||h?u():u(new Error("请输入15或18位有效身份证号"))},trigger:"blur"}]},ua=t=>{w.id=t.id,w.patient_name=t.patient_name||"-",w.id_card=t.id_card||"",ee.value=!0},pa=async()=>{var t;await((t=et.value)==null?void 0:t.validate()),qe.value=!0;try{await an({id:w.id,id_card:w.id_card}),f.msgSuccess("补全成功,年龄已自动更新"),ee.value=!1,b()}catch(e){f.msgError((e==null?void 0:e.msg)||"补全失败")}finally{qe.value=!1}},N=c(!1),F=c(!1),W=c(""),U=c(null),ce=c("小程序二维码"),Pe=c("confirm"),ca=Y(()=>{const t=U.value;return t?t.has_appointment?t.appointment_time_text||"—":"未挂号":"—"}),tt=async t=>{var u;const e=Qe(t,!0);if(!e){f.msgWarning("仅已预约的视频问诊可生成视频二维码");return}if(!e.patient_id){f.msgWarning("患者信息不完整");return}Pe.value="video",U.value=e,N.value=!0,F.value=!0,W.value="",ce.value="视频二维码";try{const r=await mt();if(!(r!=null&&r.app_id)){f.msgError("小程序未配置"),N.value=!1;return}const h=await ut({doctor_id:e.appointment_doctor_id,diagnosis_id:e.appointment_doctor_id,patient_id:e.patient_id,share_user_id:((u=le.userInfo)==null?void 0:u.id)||"",mini_program_path:"pages/login/login"});h!=null&&h.qrcode_url?W.value=h.qrcode_url:f.msgError("二维码生成失败")}catch(r){f.msgError((r==null?void 0:r.msg)||"生成二维码失败")}finally{F.value=!1}},at=async t=>{var u;const e=Qe(t);if(!e){f.msgWarning("仅「已预约」状态可使用诊单二维码");return}if(!e.patient_id){f.msgWarning("患者信息不完整");return}Pe.value="confirm",U.value=e,N.value=!0,F.value=!0,W.value="",ce.value="诊单二维码";try{const r=await mt();if(!(r!=null&&r.app_id)){f.msgError("小程序未配置"),N.value=!1;return}const h=await ut({diagnosis_id:e.id,doctor_id:e.appointment_doctor_id,patient_id:e.patient_id,share_user_id:((u=le.userInfo)==null?void 0:u.id)||""});h!=null&&h.qrcode_url?W.value=h.qrcode_url:f.msgError("二维码生成失败")}catch(r){f.msgError((r==null?void 0:r.msg)||"生成二维码失败")}finally{F.value=!1}},ma=()=>{U.value&&(Pe.value==="video"?tt(U.value):at(U.value))},_a=async t=>{if(!He(t)){const e=Number(t.appointment_status);t.has_appointment&&e===3?f.msgWarning("已完成就诊,无法取消挂号"):f.msgWarning("该诊单未挂号或挂号信息异常");return}try{await f.confirm(`确定要取消患者「${t.patient_name}」的挂号吗?`),await rn({id:t.appointment_id}),f.msgSuccess("取消挂号成功"),b(),V()}catch(e){e!=="cancel"&&f.msgError((e==null?void 0:e.msg)||"取消挂号失败")}},Le=c(!1),S=c(null),O=c([]),me=c(0),_e=c(!1),B=c(null),H=c(""),Te=c(!1),Ne=c(1),nt=async t=>{S.value=t,Le.value=!0,O.value=[],me.value=0,B.value=null,H.value="",Ne.value=1,_e.value=!0;try{const[e,u]=await Promise.all([pt({diagnosis_id:t.id,patient_id:t.patient_id,page_no:1,page_size:20}),nn({patient_id:t.patient_id||t.id}).catch(()=>null)]);O.value=(e==null?void 0:e.lists)||[],me.value=(e==null?void 0:e.count)||0,B.value=u}catch(e){console.error(e)}finally{_e.value=!1}},va=async()=>{if(S.value){Ne.value++;try{const t=await pt({diagnosis_id:S.value.id,patient_id:S.value.patient_id,page_no:Ne.value,page_size:20});O.value.push(...(t==null?void 0:t.lists)||[])}catch(t){console.error(t)}}},ga=async()=>{var t;if(!H.value.trim()){f.msgWarning("请输入内容");return}Te.value=!0;try{await sn({diagnosis_id:S.value.id,patient_id:S.value.patient_id,content:H.value.trim(),msg_type:"note",staff_name:((t=le.userInfo)==null?void 0:t.name)||"",external_name:S.value.patient_name||""}),H.value="",nt(S.value)}catch(e){f.msgError((e==null?void 0:e.msg)||"添加失败")}finally{Te.value=!1}},fa=async t=>{await f.confirm("确定删除该记录吗?");try{await ln({id:t}),O.value=O.value.filter(e=>e.id!==t),me.value--}catch(e){f.msgError((e==null?void 0:e.msg)||"删除失败")}},ha=15e3;let ve=null;const ya=()=>{typeof document<"u"&&document.hidden||(b({silent:!0}).catch(()=>{}),V())};return Va(async()=>{document.body.classList.add("h5-mode"),i.appointment_date=G.value,Pt(),b(),typeof requestIdleCallback=="function"?requestIdleCallback(()=>V(),{timeout:2500}):setTimeout(V,200),ve=setInterval(ya,ha)}),xa(()=>{document.body.classList.remove("h5-mode"),ve&&(clearInterval(ve),ve=null)}),(t,e)=>{var it;const u=$a,r=Ra,h=Aa,C=Ia,P=wa,te=qa,M=Oa,x=Ya,ka=Ba,Fe=Ma,ba=Qa,st=Ha,ae=Ka,Ca=ja,lt=Sa;return l(),d("div",fn,[s("header",hn,[s("div",yn,[n(u,{modelValue:i.keyword,"onUpdate:modelValue":e[0]||(e[0]=a=>i.keyword=a),placeholder:"患者姓名 / 手机号",clearable:"","prefix-icon":m(Ea),onKeyup:Da(Q,["enter"]),onClear:Q},null,8,["modelValue","prefix-icon"]),n(r,{class:"dh5-search-btn",type:"primary",onClick:Q},{default:o(()=>[...e[32]||(e[32]=[g("查询",-1)])]),_:1})]),s("div",kn,[(l(!0),d(D,null,q(Dt.value,a=>(l(),d("span",{key:a.value||"all",class:A(["dh5-chip",{active:i.pending_assign!=="1"&&i.pending_booking!=="1"&&i.completed_appointment!=="1"&&i.revisit_state===""&&i.appointment_date===a.value}]),onClick:k=>At(a.value)},[g(p(a.label)+" ",1),ke.value[a.value]!==void 0?(l(),d("em",Cn,p(ke.value[a.value]),1)):_("",!0)],10,bn))),128)),s("span",{class:A(["dh5-chip","dh5-chip--booking",{active:i.pending_booking==="1"}]),onClick:zt},[e[33]||(e[33]=g(" 待预约 ",-1)),be.value!==void 0?(l(),d("em",Vn,p(be.value),1)):_("",!0)],2),s("span",{class:A(["dh5-chip","dh5-chip--revisit",{active:i.revisit_state==="due"}]),onClick:St},[e[34]||(e[34]=g(" 复诊到期 ",-1)),De.value!==void 0?(l(),d("em",xn,p(De.value),1)):_("",!0)],2),s("span",{class:A(["dh5-chip","dh5-chip--done",{active:i.completed_appointment==="1"}]),onClick:It},[e[35]||(e[35]=g(" 已完成 ",-1)),Ce.value!==void 0?(l(),d("em",Dn,p(Ce.value),1)):_("",!0)],2),m(E)(["tcm.diagnosis/assign"])?(l(),d("span",{key:0,class:A(["dh5-chip","dh5-chip--pending",{active:i.pending_assign==="1"}]),onClick:wt},[e[36]||(e[36]=g(" 待分配医助 ",-1)),Ve.value!==void 0?(l(),d("em",En,p(Ve.value),1)):_("",!0)],2)):_("",!0)]),s("div",$n,[s("div",Rn,[e[37]||(e[37]=s("span",{class:"dh5-quick-label"},"挂号",-1)),(l(),d(D,null,q(Vt,a=>s("span",{key:"a"+a.value,class:A(["dh5-pill",{active:i.has_appointment===a.value}]),onClick:k=>$t(a.value)},p(a.label),11,An)),64))]),s("div",zn,[e[38]||(e[38]=s("span",{class:"dh5-quick-label"},"确认",-1)),(l(),d(D,null,q(xt,a=>s("span",{key:"c"+a.value,class:A(["dh5-pill",{active:i.diagnosis_confirmed===a.value}]),onClick:k=>Rt(a.value)},p(a.label),11,In)),64))]),n(r,{link:"",type:"primary",size:"small",class:"dh5-more-toggle",onClick:e[1]||(e[1]=a=>K.value=!K.value)},{default:o(()=>[g(p(K.value?"收起":"更多")+" ",1),n(h,{class:A({"rotate-180":K.value})},{default:o(()=>[n(m(ot))]),_:1},8,["class"])]),_:1})]),We(s("div",wn,[n(P,{modelValue:i.diagnosis_type,"onUpdate:modelValue":e[2]||(e[2]=a=>i.diagnosis_type=a),placeholder:"诊断类型",clearable:"",size:"small",onChange:Q},{default:o(()=>[(l(!0),d(D,null,q($e.value,a=>(l(),$(C,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),n(P,{modelValue:i.syndrome_type,"onUpdate:modelValue":e[3]||(e[3]=a=>i.syndrome_type=a),placeholder:"证型",clearable:"",size:"small",onChange:Q},{default:o(()=>[(l(!0),d(D,null,q(Re.value,a=>(l(),$(C,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),n(P,{modelValue:i.assistant_id,"onUpdate:modelValue":e[4]||(e[4]=a=>i.assistant_id=a),placeholder:"医助",clearable:"",filterable:"",size:"small",onChange:Q},{default:o(()=>[(l(!0),d(D,null,q(j.value,a=>(l(),$(C,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),n(r,{size:"small",onClick:Et},{default:o(()=>[...e[39]||(e[39]=[g("重置",-1)])]),_:1})],512),[[za,K.value]])]),We((l(),d("main",Sn,[m(y).lists.length===0&&!m(y).loading?(l(),d("div",qn,[n(te,{description:"暂无诊单","image-size":120})])):_("",!0),(l(!0),d(D,null,q(m(y).lists,a=>(l(),d("article",{key:a.id,class:A(["dh5-card",Tt(a)])},[s("header",{class:"dh5-card-head",onClick:k=>Je(a.id)},[s("div",Ln,p((a.patient_name||"患").charAt(0)),1),s("div",Tn,[s("div",Nn,[g(p(a.patient_name||"-")+" ",1),a.gender_desc?(l(),d("span",Fn,p(a.gender_desc),1)):_("",!0),a.age!=null?(l(),d("span",Wn,p(a.age)+"岁",1)):_("",!0)]),s("div",Un,[g(" #"+p(a.id)+" · "+p(a.diagnosis_date_text||bt(a.create_time))+" ",1),a.assign_read_at===null&&a.assistant_id>0?(l(),d("span",On,"NEW")):_("",!0)])]),s("div",Mn,[Be(a)?(l(),d("span",Yn,"已确认")):(l(),d("span",Bn,"未确认")),a.has_prescription?(l(),d("span",Qn,"已开方")):_("",!0)])],8,Pn),s("section",{class:"dh5-card-body",onClick:k=>Je(a.id)},[s("div",{class:A(["dh5-row","dh5-row--apt",Ut(a)])},[e[40]||(e[40]=s("span",{class:"dh5-row-key"},"挂号",-1)),s("div",Gn,[a.has_appointment?(l(),d(D,{key:0},[Ae(a).length?(l(!0),d(D,{key:0},q(Ae(a),k=>(l(),d("div",{key:k.id||`${k.doctor_id}-${k.time_text}`,class:A(["dh5-apt-item",Wt(k)])},[s("span",Kn,p(Ft(k.status)),1),s("span",jn,p(k.doctor_name||"-"),1),s("span",Xn,p(k.time_text||"-"),1),s("span",Jn,"挂号类型:"+p(m(rt)(k.appointment_type)),1)],2))),128)):(l(),d(D,{key:1},[s("span",Zn,p(Nt(a)),1),s("span",es,p(a.appointment_doctor_name||"-"),1),s("span",ts,p(a.appointment_time_text||"-"),1),s("span",as,"挂号类型:"+p(m(rt)(a.appointment_type)),1)],64))],64)):(l(),d("span",ns,"未挂号"))])],2),a.has_prescription||m(pn)(Ee(a))?(l(),d("div",ss,[e[41]||(e[41]=s("span",{class:"dh5-row-key"},"复诊",-1)),s("div",ls,[n(gn,{compact:"",due:Ee(a),"has-prescription":!!a.has_prescription,"followup-doctor-name":a.followup_doctor_name||"","prescribed-text":a.followup_rx_voided?"处方作废":""},null,8,["due","has-prescription","followup-doctor-name","prescribed-text"])])])):_("",!0),s("div",is,[e[42]||(e[42]=s("span",{class:"dh5-row-key"},"助理",-1)),s("span",os,p(Lt(a.assistant_id||a.assistant)),1)]),a.diagnosis_type?(l(),d("div",ds,[e[43]||(e[43]=s("span",{class:"dh5-row-key"},"诊断",-1)),s("span",rs,[g(p(Ye($e.value,a.diagnosis_type))+" ",1),a.syndrome_type?(l(),d("span",us,"·")):_("",!0),a.syndrome_type?(l(),d("span",ps,p(Ye(Re.value,a.syndrome_type)),1)):_("",!0)])])):_("",!0)],8,Hn),Gt(a)?(l(),d("div",cs,[oe(a)&&Yt(a)?(l(),d(D,{key:0},[n(r,{type:"primary",size:"small",icon:m(Xa),onClick:k=>Kt(a)},{default:o(()=>[...e[44]||(e[44]=[g(" 进入旁观 ",-1)])]),_:1},8,["icon","onClick"]),s("span",ms,p(Bt(a)),1)],64)):(l(),d("span",_s,p(oe(a)?Qt(a):Ht(a)),1))])):_("",!0),s("footer",vs,[m(E)(["tcm.diagnosis/edit"])?(l(),$(r,{key:0,type:"primary",size:"small",plain:"",onClick:k=>Xt(a.id)},{default:o(()=>[...e[45]||(e[45]=[g(" 诊单 ",-1)])]),_:1},8,["onClick"])):_("",!0),m(E)(["tcm.diagnosis/kaifang"])?(l(),$(r,{key:1,type:Ze(a)==="查看"?"success":"primary",size:"small",onClick:k=>Jt(a)},{default:o(()=>[g(p(Ze(a)),1)]),_:2},1032,["type","onClick"])):_("",!0),m(E)(["tcm.diagnosis/guahao"])?(l(),$(r,{key:2,type:"success",size:"small",plain:"",onClick:k=>ea(a)},{default:o(()=>[...e[46]||(e[46]=[g(" 预约 ",-1)])]),_:1},8,["onClick"])):_("",!0),n(r,{size:"small",class:"dh5-more-btn",onClick:k=>aa(a)},{default:o(()=>[e[47]||(e[47]=g(" 更多",-1)),n(h,{class:"el-icon--right"},{default:o(()=>[n(m(ot))]),_:1})]),_:1},8,["onClick"])])],2))),128)),xe.value?(l(),d("div",{key:1,class:"dh5-load-more",onClick:qt},p(m(y).loading?"加载中…":"加载更多"),1)):_("",!0),!xe.value&&m(y).lists.length>0?(l(),d("div",gs,"— 没有更多了 —")):_("",!0)])),[[lt,m(y).loading]]),m(E)(["tcm.diagnosis/add"])?(l(),d("button",{key:0,class:"dh5-fab",type:"button","aria-label":"新增诊单",onClick:jt},[n(h,{size:22},{default:o(()=>[n(m(Pa))]),_:1})])):_("",!0),n(m(gt),{ref_key:"editRef",ref:de,onSuccess:Me},null,512),n(m(ft),{ref_key:"detailRef",ref:Ke},null,512),n(m(ht),{ref_key:"prescriptionRef",ref:je,onSuccess:Zt},null,512),n(m(yt),{ref_key:"appointmentRef",ref:Xe,onSuccess:Me},null,512),n(m(kt),{modelValue:Ie.value,"onUpdate:modelValue":e[5]||(e[5]=a=>Ie.value=a),"diagnosis-id":Ge.value,onClosed:m(b)},null,8,["modelValue","diagnosis-id","onClosed"]),n(M,{modelValue:re.value,"onUpdate:modelValue":e[14]||(e[14]=a=>re.value=a),title:L.value?`${L.value.patient_name||"诊单"} · 更多操作`:"更多操作",direction:"btt",size:"auto","with-header":!0,"destroy-on-close":!0},{default:o(()=>[L.value?(l(),d("div",fs,[m(E)(["tcm.diagnosis/assign"])?(l(),d("button",{key:0,class:"dh5-action",onClick:e[6]||(e[6]=a=>T("assign"))},[n(h,null,{default:o(()=>[n(m(La))]),_:1}),e[48]||(e[48]=s("span",null,"指派医助",-1))])):_("",!0),ie(L.value)&&m(E)(["tcm.diagnosis/videoQr"])?(l(),d("button",{key:1,class:"dh5-action",onClick:e[7]||(e[7]=a=>T("videoQr"))},[n(h,null,{default:o(()=>[n(m(dt))]),_:1}),e[49]||(e[49]=s("span",null,"视频二维码",-1))])):_("",!0),Ot(L.value)&&m(E)(["tcm.diagnosis/guahao"])?(l(),d("button",{key:2,class:"dh5-action",onClick:e[8]||(e[8]=a=>T("confirmQr"))},[n(h,null,{default:o(()=>[n(m(dt))]),_:1}),e[50]||(e[50]=s("span",null,"诊单二维码",-1))])):_("",!0),He(L.value)&&m(E)(["tcm.diagnosis/guahao"])?(l(),d("button",{key:3,class:"dh5-action",onClick:e[9]||(e[9]=a=>T("cancelApt"))},[n(h,null,{default:o(()=>[n(m(Ta))]),_:1}),e[51]||(e[51]=s("span",null,"取消挂号",-1))])):_("",!0),m(E)(["tcm.diagnosis/edit"])?(l(),d("button",{key:4,class:"dh5-action",onClick:e[10]||(e[10]=a=>T("fillIdCard"))},[n(h,null,{default:o(()=>[n(m(Na))]),_:1}),e[52]||(e[52]=s("span",null,"补全身份证",-1))])):_("",!0),m(E)(["tcm.diagnosis/order"])?(l(),d("button",{key:5,class:"dh5-action",onClick:e[11]||(e[11]=a=>T("order"))},[n(h,null,{default:o(()=>[n(m(Fa))]),_:1}),e[53]||(e[53]=s("span",null,"创建订单",-1))])):_("",!0),s("button",{class:"dh5-action",onClick:e[12]||(e[12]=a=>T("wechat"))},[n(h,null,{default:o(()=>[n(m(Wa))]),_:1}),e[54]||(e[54]=s("span",null,"企微记录",-1))]),m(E)(["tcm.diagnosis/delete"])?(l(),d("button",{key:6,class:"dh5-action dh5-action--danger",onClick:e[13]||(e[13]=a=>T("delete"))},[n(h,null,{default:o(()=>[n(m(Ua))]),_:1}),e[55]||(e[55]=s("span",null,"删除诊单",-1))])):_("",!0)])):_("",!0)]),_:1},8,["modelValue","title"]),n(M,{modelValue:J.value,"onUpdate:modelValue":e[18]||(e[18]=a=>J.value=a),title:"指派医助",direction:"btt",size:"46%"},{footer:o(()=>[n(r,{class:"dh5-flex1",onClick:e[17]||(e[17]=a=>J.value=!1)},{default:o(()=>[...e[58]||(e[58]=[g("取消",-1)])]),_:1}),n(r,{class:"dh5-flex1",type:"primary",loading:we.value,onClick:sa},{default:o(()=>[...e[59]||(e[59]=[g(" 确定指派 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[n(Fe,{model:I.value,"label-position":"top",class:"dh5-form"},{default:o(()=>[n(x,{label:"选择医助",required:""},{default:o(()=>[n(P,{modelValue:I.value.assistant_id,"onUpdate:modelValue":e[15]||(e[15]=a=>I.value.assistant_id=a),placeholder:"请选择医助",class:"!w-full",filterable:"",clearable:""},{default:o(()=>[(l(!0),d(D,null,q(j.value,a=>(l(),$(C,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),n(x,{label:"继承"},{default:o(()=>[n(ka,{modelValue:I.value.is_inherit,"onUpdate:modelValue":e[16]||(e[16]=a=>I.value.is_inherit=a)},{default:o(()=>[...e[56]||(e[56]=[g("继承",-1)])]),_:1},8,["modelValue"]),e[57]||(e[57]=s("span",{class:"text-gray-400 text-xs ml-2"},"勾选后写入指派记录",-1))]),_:1}),n(x,{label:"诊单信息"},{default:o(()=>{var a,k;return[s("div",hs,[s("div",null,"患者:"+p((a=ue.value)==null?void 0:a.patient_name),1),s("div",null,"诊断日期:"+p(((k=ue.value)==null?void 0:k.diagnosis_date_text)||"—"),1)])]}),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),n(M,{modelValue:Z.value,"onUpdate:modelValue":e[23]||(e[23]=a=>Z.value=a),title:"创建订单",direction:"btt",size:"64%",onClose:oa},{footer:o(()=>[n(r,{class:"dh5-flex1",onClick:e[22]||(e[22]=a=>Z.value=!1)},{default:o(()=>[...e[60]||(e[60]=[g("取消",-1)])]),_:1}),n(r,{class:"dh5-flex1",type:"primary",loading:Se.value,onClick:da},{default:o(()=>[...e[61]||(e[61]=[g(" 创建订单 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[n(Fe,{ref_key:"orderFormRef",ref:pe,model:v,rules:la,"label-position":"top",class:"dh5-form"},{default:o(()=>[n(x,{label:"患者"},{default:o(()=>[s("span",null,p(v.patient_name)+" ("+p(Oe(v.phone))+")",1)]),_:1}),n(x,{label:"订单类型",prop:"order_type"},{default:o(()=>[n(P,{modelValue:v.order_type,"onUpdate:modelValue":e[19]||(e[19]=a=>v.order_type=a),placeholder:"请选择",class:"!w-full"},{default:o(()=>[n(C,{label:"挂号费",value:1}),n(C,{label:"问诊费",value:2}),n(C,{label:"药品费用",value:3}),n(C,{label:"首付费用",value:4}),n(C,{label:"尾款费用",value:5}),n(C,{label:"其他费用",value:6}),n(C,{label:"全部费用",value:7}),n(C,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),n(x,{label:"订单金额",prop:"amount"},{default:o(()=>[n(ba,{modelValue:v.amount,"onUpdate:modelValue":e[20]||(e[20]=a=>v.amount=a),min:0,step:.01,precision:2,placeholder:"请输入金额",class:"!w-full"},null,8,["modelValue"])]),_:1}),n(x,{label:"备注",prop:"remark"},{default:o(()=>[n(u,{modelValue:v.remark,"onUpdate:modelValue":e[21]||(e[21]=a=>v.remark=a),type:"textarea",rows:3,placeholder:"请输入备注(可选)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),n(st,{modelValue:ee.value,"onUpdate:modelValue":e[26]||(e[26]=a=>ee.value=a),title:"补全身份证号","close-on-click-modal":!1,onClose:e[27]||(e[27]=a=>w.id_card="")},{footer:o(()=>[n(r,{onClick:e[25]||(e[25]=a=>ee.value=!1)},{default:o(()=>[...e[62]||(e[62]=[g("取消",-1)])]),_:1}),n(r,{type:"primary",loading:qe.value,onClick:pa},{default:o(()=>[...e[63]||(e[63]=[g(" 提交 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[n(Fe,{ref_key:"fillIdCardFormRef",ref:et,model:w,rules:ra,"label-position":"top",class:"dh5-form"},{default:o(()=>[n(x,{label:"患者"},{default:o(()=>[s("span",ys,p(w.patient_name),1)]),_:1}),n(x,{label:"身份证号",prop:"id_card"},{default:o(()=>[n(u,{modelValue:w.id_card,"onUpdate:modelValue":e[24]||(e[24]=a=>w.id_card=a),placeholder:"请输入15或18位身份证号",maxlength:"18","show-word-limit":"",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),n(st,{modelValue:N.value,"onUpdate:modelValue":e[29]||(e[29]=a=>N.value=a),title:ce.value,"close-on-click-modal":!1},{footer:o(()=>[n(r,{onClick:e[28]||(e[28]=a=>N.value=!1)},{default:o(()=>[...e[66]||(e[66]=[g("关闭",-1)])]),_:1}),F.value?_("",!0):(l(),$(r,{key:0,type:"primary",onClick:ma},{default:o(()=>[...e[67]||(e[67]=[g("重新生成",-1)])]),_:1}))]),default:o(()=>{var a;return[s("div",ks,[F.value?(l(),d("div",bs,[n(h,{class:"is-loading",size:36},{default:o(()=>[n(m(Ga))]),_:1}),e[64]||(e[64]=s("div",{class:"dh5-qr-tip"},"生成中...",-1))])):W.value?(l(),d("div",Cs,[s("img",{src:W.value,alt:"小程序二维码",class:"dh5-qr-img"},null,8,Vs),s("div",xs,[s("div",null,"患者:"+p((a=U.value)==null?void 0:a.patient_name),1),s("div",null,"挂号时间:"+p(ca.value),1),e[65]||(e[65]=s("div",{class:"dh5-qr-hint"},"请使用企业微信扫描二维码,然后转发给患者",-1))])])):(l(),d("div",Ds,"生成失败,请重试"))])]}),_:1},8,["modelValue","title"]),n(M,{modelValue:Le.value,"onUpdate:modelValue":e[31]||(e[31]=a=>Le.value=a),title:`企微记录 - ${((it=S.value)==null?void 0:it.patient_name)||""}`,direction:"rtl",size:"100%","destroy-on-close":!0},{default:o(()=>[B.value?(l(),d("div",Es,[s("div",$s,[e[68]||(e[68]=s("span",{class:"dh5-wx-key"},"手机号",-1)),s("span",Rs,p(Oe(B.value.phone)||"-"),1)]),s("div",As,[e[70]||(e[70]=s("span",{class:"dh5-wx-key"},"企微 ID",-1)),s("span",zs,[B.value.external_userid?(l(),d("span",Is,p(B.value.external_userid),1)):(l(),$(ae,{key:1,type:"info",size:"small"},{default:o(()=>[...e[69]||(e[69]=[g("未关联",-1)])]),_:1}))])]),s("div",ws,[e[73]||(e[73]=s("span",{class:"dh5-wx-key"},"会话存档",-1)),s("span",Ss,[B.value.msgaudit_enabled?(l(),$(ae,{key:0,type:"success",size:"small"},{default:o(()=>[...e[71]||(e[71]=[g("已开通",-1)])]),_:1})):(l(),$(ae,{key:1,type:"info",size:"small"},{default:o(()=>[...e[72]||(e[72]=[g("未配置",-1)])]),_:1}))])])])):_("",!0),s("div",qs,[n(u,{modelValue:H.value,"onUpdate:modelValue":e[30]||(e[30]=a=>H.value=a),type:"textarea",rows:2,placeholder:"添加沟通记录..."},null,8,["modelValue"]),n(r,{type:"primary",loading:Te.value,size:"small",onClick:ga},{default:o(()=>[...e[74]||(e[74]=[g(" 添加 ",-1)])]),_:1},8,["loading"])]),We((l(),d("div",Ps,[O.value.length===0&&!_e.value?(l(),d("div",Ls," 暂无聊天记录 ")):(l(),d("div",Ts,[(l(!0),d(D,null,q(O.value,a=>{var k;return l(),d("div",{key:a.id,class:"dh5-wx-item"},[s("div",Ns,[s("div",Fs,[n(ae,{type:a.direction===0?"primary":"success",size:"small"},{default:o(()=>[g(p(a.direction===0?"员工":"客户"),1)]),_:2},1032,["type"]),s("span",Ws,p(a.direction===0?a.staff_name:a.external_name||((k=S.value)==null?void 0:k.patient_name)),1),a.msg_type==="note"?(l(),$(ae,{key:0,type:"warning",size:"small"},{default:o(()=>[...e[75]||(e[75]=[g("备注",-1)])]),_:1})):_("",!0)]),s("div",Us,[s("span",Os,p(Ct(a.chat_time)),1),n(r,{type:"danger",link:"",size:"small",onClick:Ks=>fa(a.id)},{default:o(()=>[...e[76]||(e[76]=[g(" 删除 ",-1)])]),_:1},8,["onClick"])])]),s("div",Ms,p(a.content),1),a.media_url?(l(),d("div",Ys,[n(Ca,{src:a.media_url,style:{"max-width":"200px"},fit:"contain","preview-src-list":[a.media_url]},null,8,["src","preview-src-list"])])):_("",!0)])}),128))])),me.value>O.value.length?(l(),d("div",{key:2,class:"dh5-load-more",onClick:va}," 加载更多 ")):_("",!0)])),[[lt,_e.value]])]),_:1},8,["modelValue","title"])])}}}),ol=_n(Qs,[["__scopeId","data-v-6232258b"]]);export{ol as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-BuMVMky1.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-BSADvQNg.js","assets/index-Bkarz3gO.js","assets/index-deCJ4ja-.css","assets/perm-CHCBwnFR.js","assets/DailyMatrix-BkYJBu_D.js","assets/picker-BTh9eW9u.js","assets/index-CS5Wg0xx.js","assets/index-B3imPWFk.css","assets/index-oRynN2pP.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-Cqk_cdo9.js","assets/index-D0f1Mn00.css","assets/index-BJZwRQXE.js","assets/file-BjbV-eNx.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-VonOdKxB.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-BQogJqk-.js","assets/FollowupAudioReview-BDRNtxGL.js","assets/FollowupAudioField-Dz9Csp0b.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-2_yvVfnZ.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-PGnYdg0x.js","assets/RecordingPlaybackBlock-DDHsYga7.js","assets/RecordingVideoPlayer-B0kkGDId.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CO99W60y.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-mqnmyStx.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-aR2VA9u1.js","assets/doctor-DBvYeWd3.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-D83GYvN5.js","assets/patient-B_ifBl-W.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-Dk7f29yf.js","assets/PrescriptionOrderDetailDrawer-CX7YbddA.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-C_PSjf1W.js","assets/index-DAIDDabA.js","assets/medicine-DPIOyHj8.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CTRSsggc.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/detail-C1EBtcAD.js","assets/appointment-C_cZtFED.js","assets/first_visit-B5IgLifl.js","assets/appointment-g8BrHfhi.css","assets/AssistantWatchCallDialog-CjRQdKqO.js","assets/AssistantWatchCallDialog-BIPZRgaH.css"])))=>i.map(i=>d[i]); +import{o as vt,ap as Va,aq as xa,q as l,r as d,s,v as n,bc as Da,u as m,bB as Ea,aA as $a,D as o,L as g,K as Ra,F as D,G as q,ae as A,T as p,P as _,w as Aa,cm as ot,ac as We,ad as za,O as $,bi as Ia,bh as wa,bn as Sa,bC as qa,cx as Pa,cn as La,bF as dt,db as Ta,dp as Na,bI as Fa,as as Wa,d9 as Ua,B as Oa,bd as Ma,bb as Ya,bg as Ba,J as Qa,aB as Ha,ba as Ga,bm as Ka,aa as ja,cd as ne,p as Y,aC as Ue,M as c,bG as Xa,al as se}from"./.pnpm-CyuAWpdG.js";import{c as Ja,a as rt}from"./appointment-type-DJT6wPaT.js";import{ax as R,o as Za,az as en,Y as tn,aB as an,X as ut,aC as pt,aG as nn,aD as sn,aE as ln,aF as on}from"./tcm-BSADvQNg.js";import{i as dn}from"./order-CKT7wPrv.js";import{m as rn}from"./doctor-DBvYeWd3.js";import{u as un,n as ct,j as f,$ as pn,W as cn,a7 as mn,_ as _n}from"./index-Bkarz3gO.js";import{g as mt}from"./weapp-COeXC0ZY.js";import{u as vn}from"./usePaging-CghUEVfD.js";import{h as E}from"./perm-CHCBwnFR.js";import{d as _t}from"./dayjs-B2bPhvDy.js";import gn from"./RevisitNodeCell-C_WC8gU-.js";const fn={class:"dh5"},hn={class:"dh5-topbar"},yn={class:"dh5-search"},kn={class:"dh5-chips dh5-chips--scroll"},bn=["onClick"],Cn={key:0},Vn={key:0},xn={key:0},Dn={key:0},En={key:0},$n={class:"dh5-quick"},Rn={class:"dh5-quick-group"},An=["onClick"],zn={class:"dh5-quick-group"},In=["onClick"],wn={class:"dh5-more-filter"},Sn={class:"dh5-list"},qn={key:0,class:"dh5-empty"},Pn=["onClick"],Ln={class:"dh5-card-avatar"},Tn={class:"dh5-card-id-name"},Nn={class:"dh5-card-name"},Fn={key:0,class:"dh5-meta-gender"},Wn={key:1,class:"dh5-meta-age"},Un={class:"dh5-card-sub"},On={key:0,class:"dh5-tag-new"},Mn={class:"dh5-card-tags"},Yn={key:0,class:"dh5-tag dh5-tag--ok"},Bn={key:1,class:"dh5-tag dh5-tag--warn"},Qn={key:2,class:"dh5-tag dh5-tag--info"},Hn=["onClick"],Gn={class:"dh5-row-val"},Kn={class:"dh5-apt-status"},jn={class:"dh5-apt-doctor"},Xn={class:"dh5-apt-time"},Jn={class:"dh5-apt-type"},Zn={class:"dh5-apt-status"},es={class:"dh5-apt-doctor"},ts={class:"dh5-apt-time"},as={class:"dh5-apt-type"},ns={key:1,class:"dh5-apt-none"},ss={key:0,class:"dh5-row dh5-row--followup"},ls={class:"dh5-row-val dh5-row-val--revisit"},is={class:"dh5-row"},os={class:"dh5-row-val"},ds={key:1,class:"dh5-row"},rs={class:"dh5-row-val"},us={key:0,class:"dh5-meta-mute"},ps={key:1},cs={key:0,class:"dh5-card-watch"},ms={class:"dh5-watch-tip"},_s={key:1,class:"dh5-watch-mute"},vs={class:"dh5-card-foot"},gs={key:2,class:"dh5-no-more"},fs={key:0,class:"dh5-actions"},hs={class:"dh5-form-tip"},ys={class:"font-medium"},ks={class:"dh5-qr"},bs={key:0,class:"dh5-qr-loading"},Cs={key:1},Vs=["src"],xs={class:"dh5-qr-meta"},Ds={key:2,class:"dh5-qr-fail"},Es={key:0,class:"dh5-wx-contact"},$s={class:"dh5-wx-contact-row"},Rs={class:"dh5-wx-val"},As={class:"dh5-wx-contact-row"},zs={class:"dh5-wx-val"},Is={key:0},ws={class:"dh5-wx-contact-row"},Ss={class:"dh5-wx-val"},qs={class:"dh5-wx-add"},Ps={class:"dh5-wx-list-wrap"},Ls={key:0,class:"dh5-wx-empty"},Ts={key:1,class:"dh5-wx-list"},Ns={class:"dh5-wx-head"},Fs={class:"dh5-wx-head-left"},Ws={class:"dh5-wx-name"},Us={class:"dh5-wx-head-right"},Os={class:"dh5-wx-time"},Ms={class:"dh5-wx-content"},Ys={key:0,class:"dh5-wx-media"},Bs=vt({name:"tcmDiagnosisH5"}),Qs=vt({...Bs,setup(Hs){const gt=ne(()=>se(()=>import("./edit-BuMVMky1.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),ft=ne(()=>se(()=>import("./detail-C1EBtcAD.js"),__vite__mapDeps([66,9,1,2,4,5,10,3]))),ht=ne(()=>se(()=>import("./index-C_PSjf1W.js"),__vite__mapDeps([56,1,2,57,58,4,5,59,60,3,61,62,63]))),yt=ne(()=>se(()=>import("./appointment-C_cZtFED.js"),__vite__mapDeps([67,1,2,40,3,4,5,46,68,69]))),kt=ne(()=>se(()=>import("./AssistantWatchCallDialog-CjRQdKqO.js"),__vite__mapDeps([70,1,2,3,4,5,71]))),le=un(),bt=t=>{if(!t)return"-";const e=String(t).length===10?Number(t)*1e3:Number(t);return _t(e).format("YYYY-MM-DD HH:mm")},Ct=t=>{if(!t)return"-";const e=String(t).length===10?t*1e3:t;return _t(e).format("YYYY-MM-DD HH:mm")},Oe=t=>!t||t.length<11?t:t.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),z=t=>String(t).padStart(2,"0"),ge=Y(()=>{const t=new Date;return t.setDate(t.getDate()-1),`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),fe=Y(()=>{const t=new Date;return t.setDate(t.getDate()-2),`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),G=Y(()=>{const t=new Date;return`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),he=Y(()=>{const t=new Date;return t.setDate(t.getDate()+1),`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),ye=Y(()=>{const t=new Date;return t.setDate(t.getDate()+2),`${t.getFullYear()}-${z(t.getMonth()+1)}-${z(t.getDate())}`}),i=Ue({keyword:"",diagnosis_type:"",syndrome_type:"",assistant_id:"",diagnosis_confirmed:"",appointment_date:"",has_appointment:"",pending_assign:"",pending_booking:"",completed_appointment:"",revisit_state:""}),K=c(!1),Vt=[{label:"全部",value:""},{label:"已挂号",value:"1"},{label:"未挂号",value:"0"}],xt=[{label:"全部",value:""},{label:"已确认",value:"1"},{label:"未确认",value:"0"}],Dt=Y(()=>[{label:"昨天挂号",value:ge.value},{label:"前天挂号",value:fe.value},{label:"当天挂号",value:G.value},{label:"明天挂号",value:he.value},{label:"后天挂号",value:ye.value},{label:"全部",value:""}]),ke=c({}),be=c(void 0),Ce=c(void 0),Ve=c(void 0),{pager:y,getLists:b}=vn({fetchFun:R,params:i}),xe=Y(()=>y.lists.length<(y.count||0)),Me=()=>b({silent:!0}),Q=()=>{y.page=1,b(),V()},Et=()=>{i.keyword="",i.diagnosis_type="",i.syndrome_type="",i.assistant_id="",i.diagnosis_confirmed="",i.appointment_date=G.value,i.has_appointment="",i.pending_assign="",i.pending_booking="",i.completed_appointment="",i.revisit_state="",y.page=1,b(),V()},$t=t=>{i.has_appointment=t,i.pending_booking="",i.completed_appointment="",y.page=1,b(),V()},Rt=t=>{i.diagnosis_confirmed=t,i.pending_booking="",i.completed_appointment="",y.page=1,b(),V()},At=async t=>{i.pending_assign="",i.pending_booking="",i.completed_appointment="",i.revisit_state="",i.has_appointment="",i.appointment_date=t,y.page=1,await b(),V()},zt=async()=>{i.pending_assign="",i.pending_booking="1",i.completed_appointment="",i.revisit_state="",i.appointment_date="",i.has_appointment="0",y.page=1,await b(),V()},It=async()=>{i.pending_assign="",i.pending_booking="",i.completed_appointment="1",i.revisit_state="",i.has_appointment="",i.appointment_date="",y.page=1,await b(),V()},wt=async()=>{i.pending_assign="1",i.pending_booking="",i.completed_appointment="",i.revisit_state="",i.has_appointment="",i.appointment_date="",y.page=1,await b(),V()},St=async()=>{i.pending_assign="",i.pending_booking="",i.completed_appointment="",i.has_appointment="",i.appointment_date="",i.revisit_state="due",y.page=1,await b(),V()},De=c(void 0),Ee=t=>cn(t==null?void 0:t.revisit_due),V=async()=>{try{const[t,e,u,r,h,C,P,te,M,x]=await Promise.all([R({appointment_date:ge.value,page_no:1,page_size:1}),R({appointment_date:fe.value,page_no:1,page_size:1}),R({appointment_date:G.value,page_no:1,page_size:1}),R({appointment_date:he.value,page_no:1,page_size:1}),R({appointment_date:ye.value,page_no:1,page_size:1}),R({page_no:1,page_size:1}),R({has_appointment:0,page_no:1,page_size:1}),R({completed_appointment:1,page_no:1,page_size:1}),R({pending_assign:1,page_no:1,page_size:1}),R({revisit_state:"due",page_no:1,page_size:1})]);ke.value={[ge.value]:(t==null?void 0:t.count)??0,[fe.value]:(e==null?void 0:e.count)??0,[G.value]:(u==null?void 0:u.count)??0,[he.value]:(r==null?void 0:r.count)??0,[ye.value]:(h==null?void 0:h.count)??0,"":(C==null?void 0:C.count)??0},be.value=(P==null?void 0:P.count)??0,Ce.value=(te==null?void 0:te.count)??0,Ve.value=(M==null?void 0:M.count)??0,De.value=(x==null?void 0:x.count)??0}catch(t){console.error("获取日期数量失败",t)}},qt=async()=>{if(y.loading||!xe.value)return;const t=(y.page||1)+1;y.loading=!0;try{const e=await R({page_no:t,page_size:y.size,...i});y.page=t,y.lists.push(...(e==null?void 0:e.lists)||[]),y.count=(e==null?void 0:e.count)??y.count}catch(e){console.error("加载更多失败:",e)}finally{y.loading=!1}},$e=c([]),Re=c([]),j=c([]),Pt=async()=>{try{const[t,e,u]=await Promise.all([ct({type:"diagnosis_type"}),ct({type:"syndrome_type"}),Za()]);$e.value=(t==null?void 0:t.diagnosis_type)||[],Re.value=(e==null?void 0:e.syndrome_type)||[],j.value=u||[]}catch(t){console.error("获取字典数据失败:",t)}},Ye=(t,e)=>{const u=t.find(r=>r.value===e);return u?u.name:e||"-"},Lt=t=>{if(!t&&t!==0)return"-";const e=typeof t=="string"?parseInt(t):t;if(j.value.length===0)return"...";const u=j.value.find(r=>(typeof r.id=="string"?parseInt(r.id):r.id)===e);return u?u.name:"-"},Be=t=>{const e=t.DiagnosisViewRecord||[];return e.length>0&&e.some(u=>u.is_confirmed==1)},Tt=t=>mn(Ee(t))?"dh5-card--overdue":Be(t)?t.has_appointment?"":"dh5-card--noapt":"dh5-card--unconfirmed",Nt=t=>{const e=Number(t.appointment_status);return e===3?"已完成":e===4?"已过号":"已挂号"},Ft=t=>{const e=Number(t);return e===3?"已完成":e===4?"已过号":"已挂号"},Ae=t=>{const e=Array.isArray(t.appointments)?t.appointments:[];return e.length>0?e:t.has_appointment?[{id:t.appointment_id,status:t.appointment_status,doctor_id:t.appointment_doctor_id,doctor_name:t.appointment_doctor_name,time_text:t.appointment_time_text,appointment_type:t.appointment_type}]:[]},Wt=t=>{const e=Number(t==null?void 0:t.status);return{"dh5-apt-item--done":e===3,"dh5-apt-item--missed":e===4,"dh5-apt-item--active":e===1}},Ut=t=>{const e=Number(t.appointment_status);return{"has-apt":t.has_appointment,"apt-row-done":t.has_appointment&&e===3,"apt-row-missed":t.has_appointment&&e===4}},ze=(t,e=!1)=>Ae(t).find(u=>Number(u==null?void 0:u.status)===1&&(!e||Ja(u.appointment_type)))??null,Qe=(t,e=!1)=>{const u=ze(t,e);return u?{...t,has_appointment:1,appointment_id:u.id,appointment_status:u.status,appointment_doctor_id:u.doctor_id,appointment_doctor_name:u.doctor_name,appointment_time_text:u.time_text,appointment_type:u.appointment_type}:null},Ot=t=>!!ze(t),ie=t=>!!ze(t,!0),He=t=>{const e=Number(t.appointment_status);return!!(t.has_appointment&&t.appointment_id&&(e===1||e===4))},Mt=t=>{var u;const e=t.assistant_id??t.assistant;return e==null||e===""?!1:Number(e)===Number((u=le.userInfo)==null?void 0:u.id)},oe=t=>ie(t)&&Mt(t)&&E(["tcm.diagnosis/watchCall"]),X=t=>{var e;return ie(t)&&((e=t.video_call_hint)==null?void 0:e.state)||"none"},Yt=t=>{const e=X(t);return e==="live"||e==="pending_room"},Bt=t=>X(t)==="pending_room"?"医生未接通或未同步房间":"点击进入实时房间",Qt=t=>{const e=t.video_call_hint;return e!=null&&e.label?e.label:"暂无可旁观通话"},Ht=t=>{const e=X(t);if(e==="none")return"";if(e==="live")return"通话中";if(e==="pending_room")return"接通中";const u=t.video_call_hint;return(u==null?void 0:u.label)||""},Gt=t=>{if(oe(t))return!0;const e=X(t);return e==="live"||e==="pending_room"},Ie=c(!1),Ge=c(0),Kt=t=>{if(!oe(t)){f.msgWarning("仅已预约的视频问诊可进入视频旁观");return}if(X(t)!=="live"){f.msgWarning("医生未接通或未同步房间号,请稍后再试");return}Ge.value=Number(t.id)||0,Ie.value=!0},de=c(),Ke=c(),je=c(),Xe=c(),jt=()=>{var t;return(t=de.value)==null?void 0:t.open("add")},Xt=t=>{var e;return(e=de.value)==null?void 0:e.open("edit",t)},Je=t=>{var e;return(e=Ke.value)==null?void 0:e.open(t)},Ze=t=>(t==null?void 0:t.prescription_audit_status)===1&&Number(t==null?void 0:t.prescription_void_status)!==1?"查看":"开方",Jt=t=>{var e;if(!(t!=null&&t.id)){f.msgWarning("诊单信息不完整");return}(e=je.value)==null||e.open({...t,diagnosis_id:t.id,id:t.appointment_id||0})},Zt=()=>{var t,e;b(),(e=(t=de.value)==null?void 0:t.refreshCaseList)==null||e.call(t)},ea=t=>{var e;if(!t.patient_id){f.msgWarning("患者信息不完整");return}(e=Xe.value)==null||e.open(t)},ta=async t=>{await f.confirm("确定要删除该诊单吗?"),await on({id:t}),b()},re=c(!1),L=c(null),aa=t=>{L.value=t,re.value=!0},T=t=>{const e=L.value;if(re.value=!1,!!e)switch(t){case"assign":na(e);break;case"videoQr":if(!ie(e)){f.msgWarning("仅已预约的视频问诊可生成视频二维码");return}tt(e);break;case"confirmQr":at(e);break;case"cancelApt":_a(e);break;case"fillIdCard":ua(e);break;case"order":ia(e);break;case"wechat":nt(e);break;case"delete":ta(e.id);break}},J=c(!1),we=c(!1),ue=c(null),I=c({assistant_id:null,is_inherit:!1}),na=t=>{ue.value=t,I.value.assistant_id=t.assistant_id?Number(t.assistant_id):null,I.value.is_inherit=!1,J.value=!0},sa=async()=>{if(!I.value.assistant_id){f.msgWarning("请选择医助");return}we.value=!0;try{await en({id:ue.value.id,assistant_id:I.value.assistant_id,is_inherit:I.value.is_inherit?1:0}),J.value=!1,b()}catch(t){console.error("指派失败:",t)}finally{we.value=!1}},Z=c(!1),pe=c(),Se=c(!1),v=Ue({patient_id:"",patient_name:"",phone:"",order_type:"",amount:0,remark:"",has_appointment:!1,appointment_time_text:""}),la={order_type:[{required:!0,message:"请选择订单类型",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"}]},ia=t=>{var e;v.patient_id=t.patient_id||t.id,v.patient_name=t.patient_name,v.phone=t.phone||"",v.order_type="",v.amount=0,v.remark="",v.has_appointment=!!t.has_appointment,v.appointment_time_text=t.appointment_time_text||"",(e=pe.value)==null||e.clearValidate(),Z.value=!0},oa=()=>{var t;v.patient_id="",v.patient_name="",v.phone="",v.order_type="",v.amount=0,v.remark="",v.has_appointment=!1,v.appointment_time_text="",(t=pe.value)==null||t.clearValidate()},da=async()=>{var t;try{await((t=pe.value)==null?void 0:t.validate()),Se.value=!0;const e=await dn({patient_id:v.patient_id,order_type:v.order_type,amount:v.amount,remark:v.remark});Z.value=!1,b();const u=e==null?void 0:e.order_no;if(u){N.value=!0,F.value=!0,W.value="",ce.value="收款二维码",U.value={patient_name:v.patient_name,has_appointment:v.has_appointment,appointment_time_text:v.appointment_time_text};try{const r=await tn({order_no:u});r!=null&&r.qrcode_url?W.value=r.qrcode_url:f.msgError("二维码生成失败")}catch(r){f.msgError((r==null?void 0:r.msg)||"生成二维码失败")}finally{F.value=!1}}}catch(e){console.error("创建订单失败:",e)}finally{Se.value=!1}},ee=c(!1),qe=c(!1),et=c(),w=Ue({id:0,patient_name:"",id_card:""}),ra={id_card:[{required:!0,validator:(t,e,u)=>{if(!e){u(new Error("请输入身份证号"));return}const r=/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(e),h=/^[1-9]\d{5}\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$/.test(e);r||h?u():u(new Error("请输入15或18位有效身份证号"))},trigger:"blur"}]},ua=t=>{w.id=t.id,w.patient_name=t.patient_name||"-",w.id_card=t.id_card||"",ee.value=!0},pa=async()=>{var t;await((t=et.value)==null?void 0:t.validate()),qe.value=!0;try{await an({id:w.id,id_card:w.id_card}),f.msgSuccess("补全成功,年龄已自动更新"),ee.value=!1,b()}catch(e){f.msgError((e==null?void 0:e.msg)||"补全失败")}finally{qe.value=!1}},N=c(!1),F=c(!1),W=c(""),U=c(null),ce=c("小程序二维码"),Pe=c("confirm"),ca=Y(()=>{const t=U.value;return t?t.has_appointment?t.appointment_time_text||"—":"未挂号":"—"}),tt=async t=>{var u;const e=Qe(t,!0);if(!e){f.msgWarning("仅已预约的视频问诊可生成视频二维码");return}if(!e.patient_id){f.msgWarning("患者信息不完整");return}Pe.value="video",U.value=e,N.value=!0,F.value=!0,W.value="",ce.value="视频二维码";try{const r=await mt();if(!(r!=null&&r.app_id)){f.msgError("小程序未配置"),N.value=!1;return}const h=await ut({doctor_id:e.appointment_doctor_id,diagnosis_id:e.appointment_doctor_id,patient_id:e.patient_id,share_user_id:((u=le.userInfo)==null?void 0:u.id)||"",mini_program_path:"pages/login/login"});h!=null&&h.qrcode_url?W.value=h.qrcode_url:f.msgError("二维码生成失败")}catch(r){f.msgError((r==null?void 0:r.msg)||"生成二维码失败")}finally{F.value=!1}},at=async t=>{var u;const e=Qe(t);if(!e){f.msgWarning("仅「已预约」状态可使用诊单二维码");return}if(!e.patient_id){f.msgWarning("患者信息不完整");return}Pe.value="confirm",U.value=e,N.value=!0,F.value=!0,W.value="",ce.value="诊单二维码";try{const r=await mt();if(!(r!=null&&r.app_id)){f.msgError("小程序未配置"),N.value=!1;return}const h=await ut({diagnosis_id:e.id,doctor_id:e.appointment_doctor_id,patient_id:e.patient_id,share_user_id:((u=le.userInfo)==null?void 0:u.id)||""});h!=null&&h.qrcode_url?W.value=h.qrcode_url:f.msgError("二维码生成失败")}catch(r){f.msgError((r==null?void 0:r.msg)||"生成二维码失败")}finally{F.value=!1}},ma=()=>{U.value&&(Pe.value==="video"?tt(U.value):at(U.value))},_a=async t=>{if(!He(t)){const e=Number(t.appointment_status);t.has_appointment&&e===3?f.msgWarning("已完成就诊,无法取消挂号"):f.msgWarning("该诊单未挂号或挂号信息异常");return}try{await f.confirm(`确定要取消患者「${t.patient_name}」的挂号吗?`),await rn({id:t.appointment_id}),f.msgSuccess("取消挂号成功"),b(),V()}catch(e){e!=="cancel"&&f.msgError((e==null?void 0:e.msg)||"取消挂号失败")}},Le=c(!1),S=c(null),O=c([]),me=c(0),_e=c(!1),B=c(null),H=c(""),Te=c(!1),Ne=c(1),nt=async t=>{S.value=t,Le.value=!0,O.value=[],me.value=0,B.value=null,H.value="",Ne.value=1,_e.value=!0;try{const[e,u]=await Promise.all([pt({diagnosis_id:t.id,patient_id:t.patient_id,page_no:1,page_size:20}),nn({patient_id:t.patient_id||t.id}).catch(()=>null)]);O.value=(e==null?void 0:e.lists)||[],me.value=(e==null?void 0:e.count)||0,B.value=u}catch(e){console.error(e)}finally{_e.value=!1}},va=async()=>{if(S.value){Ne.value++;try{const t=await pt({diagnosis_id:S.value.id,patient_id:S.value.patient_id,page_no:Ne.value,page_size:20});O.value.push(...(t==null?void 0:t.lists)||[])}catch(t){console.error(t)}}},ga=async()=>{var t;if(!H.value.trim()){f.msgWarning("请输入内容");return}Te.value=!0;try{await sn({diagnosis_id:S.value.id,patient_id:S.value.patient_id,content:H.value.trim(),msg_type:"note",staff_name:((t=le.userInfo)==null?void 0:t.name)||"",external_name:S.value.patient_name||""}),H.value="",nt(S.value)}catch(e){f.msgError((e==null?void 0:e.msg)||"添加失败")}finally{Te.value=!1}},fa=async t=>{await f.confirm("确定删除该记录吗?");try{await ln({id:t}),O.value=O.value.filter(e=>e.id!==t),me.value--}catch(e){f.msgError((e==null?void 0:e.msg)||"删除失败")}},ha=15e3;let ve=null;const ya=()=>{typeof document<"u"&&document.hidden||(b({silent:!0}).catch(()=>{}),V())};return Va(async()=>{document.body.classList.add("h5-mode"),i.appointment_date=G.value,Pt(),b(),typeof requestIdleCallback=="function"?requestIdleCallback(()=>V(),{timeout:2500}):setTimeout(V,200),ve=setInterval(ya,ha)}),xa(()=>{document.body.classList.remove("h5-mode"),ve&&(clearInterval(ve),ve=null)}),(t,e)=>{var it;const u=$a,r=Ra,h=Aa,C=Ia,P=wa,te=qa,M=Oa,x=Ya,ka=Ba,Fe=Ma,ba=Qa,st=Ha,ae=Ka,Ca=ja,lt=Sa;return l(),d("div",fn,[s("header",hn,[s("div",yn,[n(u,{modelValue:i.keyword,"onUpdate:modelValue":e[0]||(e[0]=a=>i.keyword=a),placeholder:"患者姓名 / 手机号",clearable:"","prefix-icon":m(Ea),onKeyup:Da(Q,["enter"]),onClear:Q},null,8,["modelValue","prefix-icon"]),n(r,{class:"dh5-search-btn",type:"primary",onClick:Q},{default:o(()=>[...e[32]||(e[32]=[g("查询",-1)])]),_:1})]),s("div",kn,[(l(!0),d(D,null,q(Dt.value,a=>(l(),d("span",{key:a.value||"all",class:A(["dh5-chip",{active:i.pending_assign!=="1"&&i.pending_booking!=="1"&&i.completed_appointment!=="1"&&i.revisit_state===""&&i.appointment_date===a.value}]),onClick:k=>At(a.value)},[g(p(a.label)+" ",1),ke.value[a.value]!==void 0?(l(),d("em",Cn,p(ke.value[a.value]),1)):_("",!0)],10,bn))),128)),s("span",{class:A(["dh5-chip","dh5-chip--booking",{active:i.pending_booking==="1"}]),onClick:zt},[e[33]||(e[33]=g(" 待预约 ",-1)),be.value!==void 0?(l(),d("em",Vn,p(be.value),1)):_("",!0)],2),s("span",{class:A(["dh5-chip","dh5-chip--revisit",{active:i.revisit_state==="due"}]),onClick:St},[e[34]||(e[34]=g(" 复诊到期 ",-1)),De.value!==void 0?(l(),d("em",xn,p(De.value),1)):_("",!0)],2),s("span",{class:A(["dh5-chip","dh5-chip--done",{active:i.completed_appointment==="1"}]),onClick:It},[e[35]||(e[35]=g(" 已完成 ",-1)),Ce.value!==void 0?(l(),d("em",Dn,p(Ce.value),1)):_("",!0)],2),m(E)(["tcm.diagnosis/assign"])?(l(),d("span",{key:0,class:A(["dh5-chip","dh5-chip--pending",{active:i.pending_assign==="1"}]),onClick:wt},[e[36]||(e[36]=g(" 待分配医助 ",-1)),Ve.value!==void 0?(l(),d("em",En,p(Ve.value),1)):_("",!0)],2)):_("",!0)]),s("div",$n,[s("div",Rn,[e[37]||(e[37]=s("span",{class:"dh5-quick-label"},"挂号",-1)),(l(),d(D,null,q(Vt,a=>s("span",{key:"a"+a.value,class:A(["dh5-pill",{active:i.has_appointment===a.value}]),onClick:k=>$t(a.value)},p(a.label),11,An)),64))]),s("div",zn,[e[38]||(e[38]=s("span",{class:"dh5-quick-label"},"确认",-1)),(l(),d(D,null,q(xt,a=>s("span",{key:"c"+a.value,class:A(["dh5-pill",{active:i.diagnosis_confirmed===a.value}]),onClick:k=>Rt(a.value)},p(a.label),11,In)),64))]),n(r,{link:"",type:"primary",size:"small",class:"dh5-more-toggle",onClick:e[1]||(e[1]=a=>K.value=!K.value)},{default:o(()=>[g(p(K.value?"收起":"更多")+" ",1),n(h,{class:A({"rotate-180":K.value})},{default:o(()=>[n(m(ot))]),_:1},8,["class"])]),_:1})]),We(s("div",wn,[n(P,{modelValue:i.diagnosis_type,"onUpdate:modelValue":e[2]||(e[2]=a=>i.diagnosis_type=a),placeholder:"诊断类型",clearable:"",size:"small",onChange:Q},{default:o(()=>[(l(!0),d(D,null,q($e.value,a=>(l(),$(C,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),n(P,{modelValue:i.syndrome_type,"onUpdate:modelValue":e[3]||(e[3]=a=>i.syndrome_type=a),placeholder:"证型",clearable:"",size:"small",onChange:Q},{default:o(()=>[(l(!0),d(D,null,q(Re.value,a=>(l(),$(C,{key:a.value,label:a.name,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),n(P,{modelValue:i.assistant_id,"onUpdate:modelValue":e[4]||(e[4]=a=>i.assistant_id=a),placeholder:"医助",clearable:"",filterable:"",size:"small",onChange:Q},{default:o(()=>[(l(!0),d(D,null,q(j.value,a=>(l(),$(C,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),n(r,{size:"small",onClick:Et},{default:o(()=>[...e[39]||(e[39]=[g("重置",-1)])]),_:1})],512),[[za,K.value]])]),We((l(),d("main",Sn,[m(y).lists.length===0&&!m(y).loading?(l(),d("div",qn,[n(te,{description:"暂无诊单","image-size":120})])):_("",!0),(l(!0),d(D,null,q(m(y).lists,a=>(l(),d("article",{key:a.id,class:A(["dh5-card",Tt(a)])},[s("header",{class:"dh5-card-head",onClick:k=>Je(a.id)},[s("div",Ln,p((a.patient_name||"患").charAt(0)),1),s("div",Tn,[s("div",Nn,[g(p(a.patient_name||"-")+" ",1),a.gender_desc?(l(),d("span",Fn,p(a.gender_desc),1)):_("",!0),a.age!=null?(l(),d("span",Wn,p(a.age)+"岁",1)):_("",!0)]),s("div",Un,[g(" #"+p(a.id)+" · "+p(a.diagnosis_date_text||bt(a.create_time))+" ",1),a.assign_read_at===null&&a.assistant_id>0?(l(),d("span",On,"NEW")):_("",!0)])]),s("div",Mn,[Be(a)?(l(),d("span",Yn,"已确认")):(l(),d("span",Bn,"未确认")),a.has_prescription?(l(),d("span",Qn,"已开方")):_("",!0)])],8,Pn),s("section",{class:"dh5-card-body",onClick:k=>Je(a.id)},[s("div",{class:A(["dh5-row","dh5-row--apt",Ut(a)])},[e[40]||(e[40]=s("span",{class:"dh5-row-key"},"挂号",-1)),s("div",Gn,[a.has_appointment?(l(),d(D,{key:0},[Ae(a).length?(l(!0),d(D,{key:0},q(Ae(a),k=>(l(),d("div",{key:k.id||`${k.doctor_id}-${k.time_text}`,class:A(["dh5-apt-item",Wt(k)])},[s("span",Kn,p(Ft(k.status)),1),s("span",jn,p(k.doctor_name||"-"),1),s("span",Xn,p(k.time_text||"-"),1),s("span",Jn,"挂号类型:"+p(m(rt)(k.appointment_type)),1)],2))),128)):(l(),d(D,{key:1},[s("span",Zn,p(Nt(a)),1),s("span",es,p(a.appointment_doctor_name||"-"),1),s("span",ts,p(a.appointment_time_text||"-"),1),s("span",as,"挂号类型:"+p(m(rt)(a.appointment_type)),1)],64))],64)):(l(),d("span",ns,"未挂号"))])],2),a.has_prescription||m(pn)(Ee(a))?(l(),d("div",ss,[e[41]||(e[41]=s("span",{class:"dh5-row-key"},"复诊",-1)),s("div",ls,[n(gn,{compact:"",due:Ee(a),"has-prescription":!!a.has_prescription,"followup-doctor-name":a.followup_doctor_name||"","prescribed-text":a.followup_rx_voided?"处方作废":""},null,8,["due","has-prescription","followup-doctor-name","prescribed-text"])])])):_("",!0),s("div",is,[e[42]||(e[42]=s("span",{class:"dh5-row-key"},"助理",-1)),s("span",os,p(Lt(a.assistant_id||a.assistant)),1)]),a.diagnosis_type?(l(),d("div",ds,[e[43]||(e[43]=s("span",{class:"dh5-row-key"},"诊断",-1)),s("span",rs,[g(p(Ye($e.value,a.diagnosis_type))+" ",1),a.syndrome_type?(l(),d("span",us,"·")):_("",!0),a.syndrome_type?(l(),d("span",ps,p(Ye(Re.value,a.syndrome_type)),1)):_("",!0)])])):_("",!0)],8,Hn),Gt(a)?(l(),d("div",cs,[oe(a)&&Yt(a)?(l(),d(D,{key:0},[n(r,{type:"primary",size:"small",icon:m(Xa),onClick:k=>Kt(a)},{default:o(()=>[...e[44]||(e[44]=[g(" 进入旁观 ",-1)])]),_:1},8,["icon","onClick"]),s("span",ms,p(Bt(a)),1)],64)):(l(),d("span",_s,p(oe(a)?Qt(a):Ht(a)),1))])):_("",!0),s("footer",vs,[m(E)(["tcm.diagnosis/edit"])?(l(),$(r,{key:0,type:"primary",size:"small",plain:"",onClick:k=>Xt(a.id)},{default:o(()=>[...e[45]||(e[45]=[g(" 诊单 ",-1)])]),_:1},8,["onClick"])):_("",!0),m(E)(["tcm.diagnosis/kaifang"])?(l(),$(r,{key:1,type:Ze(a)==="查看"?"success":"primary",size:"small",onClick:k=>Jt(a)},{default:o(()=>[g(p(Ze(a)),1)]),_:2},1032,["type","onClick"])):_("",!0),m(E)(["tcm.diagnosis/guahao"])?(l(),$(r,{key:2,type:"success",size:"small",plain:"",onClick:k=>ea(a)},{default:o(()=>[...e[46]||(e[46]=[g(" 预约 ",-1)])]),_:1},8,["onClick"])):_("",!0),n(r,{size:"small",class:"dh5-more-btn",onClick:k=>aa(a)},{default:o(()=>[e[47]||(e[47]=g(" 更多",-1)),n(h,{class:"el-icon--right"},{default:o(()=>[n(m(ot))]),_:1})]),_:1},8,["onClick"])])],2))),128)),xe.value?(l(),d("div",{key:1,class:"dh5-load-more",onClick:qt},p(m(y).loading?"加载中…":"加载更多"),1)):_("",!0),!xe.value&&m(y).lists.length>0?(l(),d("div",gs,"— 没有更多了 —")):_("",!0)])),[[lt,m(y).loading]]),m(E)(["tcm.diagnosis/add"])?(l(),d("button",{key:0,class:"dh5-fab",type:"button","aria-label":"新增诊单",onClick:jt},[n(h,{size:22},{default:o(()=>[n(m(Pa))]),_:1})])):_("",!0),n(m(gt),{ref_key:"editRef",ref:de,onSuccess:Me},null,512),n(m(ft),{ref_key:"detailRef",ref:Ke},null,512),n(m(ht),{ref_key:"prescriptionRef",ref:je,onSuccess:Zt},null,512),n(m(yt),{ref_key:"appointmentRef",ref:Xe,onSuccess:Me},null,512),n(m(kt),{modelValue:Ie.value,"onUpdate:modelValue":e[5]||(e[5]=a=>Ie.value=a),"diagnosis-id":Ge.value,onClosed:m(b)},null,8,["modelValue","diagnosis-id","onClosed"]),n(M,{modelValue:re.value,"onUpdate:modelValue":e[14]||(e[14]=a=>re.value=a),title:L.value?`${L.value.patient_name||"诊单"} · 更多操作`:"更多操作",direction:"btt",size:"auto","with-header":!0,"destroy-on-close":!0},{default:o(()=>[L.value?(l(),d("div",fs,[m(E)(["tcm.diagnosis/assign"])?(l(),d("button",{key:0,class:"dh5-action",onClick:e[6]||(e[6]=a=>T("assign"))},[n(h,null,{default:o(()=>[n(m(La))]),_:1}),e[48]||(e[48]=s("span",null,"指派医助",-1))])):_("",!0),ie(L.value)&&m(E)(["tcm.diagnosis/videoQr"])?(l(),d("button",{key:1,class:"dh5-action",onClick:e[7]||(e[7]=a=>T("videoQr"))},[n(h,null,{default:o(()=>[n(m(dt))]),_:1}),e[49]||(e[49]=s("span",null,"视频二维码",-1))])):_("",!0),Ot(L.value)&&m(E)(["tcm.diagnosis/guahao"])?(l(),d("button",{key:2,class:"dh5-action",onClick:e[8]||(e[8]=a=>T("confirmQr"))},[n(h,null,{default:o(()=>[n(m(dt))]),_:1}),e[50]||(e[50]=s("span",null,"诊单二维码",-1))])):_("",!0),He(L.value)&&m(E)(["tcm.diagnosis/guahao"])?(l(),d("button",{key:3,class:"dh5-action",onClick:e[9]||(e[9]=a=>T("cancelApt"))},[n(h,null,{default:o(()=>[n(m(Ta))]),_:1}),e[51]||(e[51]=s("span",null,"取消挂号",-1))])):_("",!0),m(E)(["tcm.diagnosis/edit"])?(l(),d("button",{key:4,class:"dh5-action",onClick:e[10]||(e[10]=a=>T("fillIdCard"))},[n(h,null,{default:o(()=>[n(m(Na))]),_:1}),e[52]||(e[52]=s("span",null,"补全身份证",-1))])):_("",!0),m(E)(["tcm.diagnosis/order"])?(l(),d("button",{key:5,class:"dh5-action",onClick:e[11]||(e[11]=a=>T("order"))},[n(h,null,{default:o(()=>[n(m(Fa))]),_:1}),e[53]||(e[53]=s("span",null,"创建订单",-1))])):_("",!0),s("button",{class:"dh5-action",onClick:e[12]||(e[12]=a=>T("wechat"))},[n(h,null,{default:o(()=>[n(m(Wa))]),_:1}),e[54]||(e[54]=s("span",null,"企微记录",-1))]),m(E)(["tcm.diagnosis/delete"])?(l(),d("button",{key:6,class:"dh5-action dh5-action--danger",onClick:e[13]||(e[13]=a=>T("delete"))},[n(h,null,{default:o(()=>[n(m(Ua))]),_:1}),e[55]||(e[55]=s("span",null,"删除诊单",-1))])):_("",!0)])):_("",!0)]),_:1},8,["modelValue","title"]),n(M,{modelValue:J.value,"onUpdate:modelValue":e[18]||(e[18]=a=>J.value=a),title:"指派医助",direction:"btt",size:"46%"},{footer:o(()=>[n(r,{class:"dh5-flex1",onClick:e[17]||(e[17]=a=>J.value=!1)},{default:o(()=>[...e[58]||(e[58]=[g("取消",-1)])]),_:1}),n(r,{class:"dh5-flex1",type:"primary",loading:we.value,onClick:sa},{default:o(()=>[...e[59]||(e[59]=[g(" 确定指派 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[n(Fe,{model:I.value,"label-position":"top",class:"dh5-form"},{default:o(()=>[n(x,{label:"选择医助",required:""},{default:o(()=>[n(P,{modelValue:I.value.assistant_id,"onUpdate:modelValue":e[15]||(e[15]=a=>I.value.assistant_id=a),placeholder:"请选择医助",class:"!w-full",filterable:"",clearable:""},{default:o(()=>[(l(!0),d(D,null,q(j.value,a=>(l(),$(C,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),n(x,{label:"继承"},{default:o(()=>[n(ka,{modelValue:I.value.is_inherit,"onUpdate:modelValue":e[16]||(e[16]=a=>I.value.is_inherit=a)},{default:o(()=>[...e[56]||(e[56]=[g("继承",-1)])]),_:1},8,["modelValue"]),e[57]||(e[57]=s("span",{class:"text-gray-400 text-xs ml-2"},"勾选后写入指派记录",-1))]),_:1}),n(x,{label:"诊单信息"},{default:o(()=>{var a,k;return[s("div",hs,[s("div",null,"患者:"+p((a=ue.value)==null?void 0:a.patient_name),1),s("div",null,"诊断日期:"+p(((k=ue.value)==null?void 0:k.diagnosis_date_text)||"—"),1)])]}),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),n(M,{modelValue:Z.value,"onUpdate:modelValue":e[23]||(e[23]=a=>Z.value=a),title:"创建订单",direction:"btt",size:"64%",onClose:oa},{footer:o(()=>[n(r,{class:"dh5-flex1",onClick:e[22]||(e[22]=a=>Z.value=!1)},{default:o(()=>[...e[60]||(e[60]=[g("取消",-1)])]),_:1}),n(r,{class:"dh5-flex1",type:"primary",loading:Se.value,onClick:da},{default:o(()=>[...e[61]||(e[61]=[g(" 创建订单 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[n(Fe,{ref_key:"orderFormRef",ref:pe,model:v,rules:la,"label-position":"top",class:"dh5-form"},{default:o(()=>[n(x,{label:"患者"},{default:o(()=>[s("span",null,p(v.patient_name)+" ("+p(Oe(v.phone))+")",1)]),_:1}),n(x,{label:"订单类型",prop:"order_type"},{default:o(()=>[n(P,{modelValue:v.order_type,"onUpdate:modelValue":e[19]||(e[19]=a=>v.order_type=a),placeholder:"请选择",class:"!w-full"},{default:o(()=>[n(C,{label:"挂号费",value:1}),n(C,{label:"问诊费",value:2}),n(C,{label:"药品费用",value:3}),n(C,{label:"首付费用",value:4}),n(C,{label:"尾款费用",value:5}),n(C,{label:"其他费用",value:6}),n(C,{label:"全部费用",value:7}),n(C,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),n(x,{label:"订单金额",prop:"amount"},{default:o(()=>[n(ba,{modelValue:v.amount,"onUpdate:modelValue":e[20]||(e[20]=a=>v.amount=a),min:0,step:.01,precision:2,placeholder:"请输入金额",class:"!w-full"},null,8,["modelValue"])]),_:1}),n(x,{label:"备注",prop:"remark"},{default:o(()=>[n(u,{modelValue:v.remark,"onUpdate:modelValue":e[21]||(e[21]=a=>v.remark=a),type:"textarea",rows:3,placeholder:"请输入备注(可选)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),n(st,{modelValue:ee.value,"onUpdate:modelValue":e[26]||(e[26]=a=>ee.value=a),title:"补全身份证号","close-on-click-modal":!1,onClose:e[27]||(e[27]=a=>w.id_card="")},{footer:o(()=>[n(r,{onClick:e[25]||(e[25]=a=>ee.value=!1)},{default:o(()=>[...e[62]||(e[62]=[g("取消",-1)])]),_:1}),n(r,{type:"primary",loading:qe.value,onClick:pa},{default:o(()=>[...e[63]||(e[63]=[g(" 提交 ",-1)])]),_:1},8,["loading"])]),default:o(()=>[n(Fe,{ref_key:"fillIdCardFormRef",ref:et,model:w,rules:ra,"label-position":"top",class:"dh5-form"},{default:o(()=>[n(x,{label:"患者"},{default:o(()=>[s("span",ys,p(w.patient_name),1)]),_:1}),n(x,{label:"身份证号",prop:"id_card"},{default:o(()=>[n(u,{modelValue:w.id_card,"onUpdate:modelValue":e[24]||(e[24]=a=>w.id_card=a),placeholder:"请输入15或18位身份证号",maxlength:"18","show-word-limit":"",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),n(st,{modelValue:N.value,"onUpdate:modelValue":e[29]||(e[29]=a=>N.value=a),title:ce.value,"close-on-click-modal":!1},{footer:o(()=>[n(r,{onClick:e[28]||(e[28]=a=>N.value=!1)},{default:o(()=>[...e[66]||(e[66]=[g("关闭",-1)])]),_:1}),F.value?_("",!0):(l(),$(r,{key:0,type:"primary",onClick:ma},{default:o(()=>[...e[67]||(e[67]=[g("重新生成",-1)])]),_:1}))]),default:o(()=>{var a;return[s("div",ks,[F.value?(l(),d("div",bs,[n(h,{class:"is-loading",size:36},{default:o(()=>[n(m(Ga))]),_:1}),e[64]||(e[64]=s("div",{class:"dh5-qr-tip"},"生成中...",-1))])):W.value?(l(),d("div",Cs,[s("img",{src:W.value,alt:"小程序二维码",class:"dh5-qr-img"},null,8,Vs),s("div",xs,[s("div",null,"患者:"+p((a=U.value)==null?void 0:a.patient_name),1),s("div",null,"挂号时间:"+p(ca.value),1),e[65]||(e[65]=s("div",{class:"dh5-qr-hint"},"请使用企业微信扫描二维码,然后转发给患者",-1))])])):(l(),d("div",Ds,"生成失败,请重试"))])]}),_:1},8,["modelValue","title"]),n(M,{modelValue:Le.value,"onUpdate:modelValue":e[31]||(e[31]=a=>Le.value=a),title:`企微记录 - ${((it=S.value)==null?void 0:it.patient_name)||""}`,direction:"rtl",size:"100%","destroy-on-close":!0},{default:o(()=>[B.value?(l(),d("div",Es,[s("div",$s,[e[68]||(e[68]=s("span",{class:"dh5-wx-key"},"手机号",-1)),s("span",Rs,p(Oe(B.value.phone)||"-"),1)]),s("div",As,[e[70]||(e[70]=s("span",{class:"dh5-wx-key"},"企微 ID",-1)),s("span",zs,[B.value.external_userid?(l(),d("span",Is,p(B.value.external_userid),1)):(l(),$(ae,{key:1,type:"info",size:"small"},{default:o(()=>[...e[69]||(e[69]=[g("未关联",-1)])]),_:1}))])]),s("div",ws,[e[73]||(e[73]=s("span",{class:"dh5-wx-key"},"会话存档",-1)),s("span",Ss,[B.value.msgaudit_enabled?(l(),$(ae,{key:0,type:"success",size:"small"},{default:o(()=>[...e[71]||(e[71]=[g("已开通",-1)])]),_:1})):(l(),$(ae,{key:1,type:"info",size:"small"},{default:o(()=>[...e[72]||(e[72]=[g("未配置",-1)])]),_:1}))])])])):_("",!0),s("div",qs,[n(u,{modelValue:H.value,"onUpdate:modelValue":e[30]||(e[30]=a=>H.value=a),type:"textarea",rows:2,placeholder:"添加沟通记录..."},null,8,["modelValue"]),n(r,{type:"primary",loading:Te.value,size:"small",onClick:ga},{default:o(()=>[...e[74]||(e[74]=[g(" 添加 ",-1)])]),_:1},8,["loading"])]),We((l(),d("div",Ps,[O.value.length===0&&!_e.value?(l(),d("div",Ls," 暂无聊天记录 ")):(l(),d("div",Ts,[(l(!0),d(D,null,q(O.value,a=>{var k;return l(),d("div",{key:a.id,class:"dh5-wx-item"},[s("div",Ns,[s("div",Fs,[n(ae,{type:a.direction===0?"primary":"success",size:"small"},{default:o(()=>[g(p(a.direction===0?"员工":"客户"),1)]),_:2},1032,["type"]),s("span",Ws,p(a.direction===0?a.staff_name:a.external_name||((k=S.value)==null?void 0:k.patient_name)),1),a.msg_type==="note"?(l(),$(ae,{key:0,type:"warning",size:"small"},{default:o(()=>[...e[75]||(e[75]=[g("备注",-1)])]),_:1})):_("",!0)]),s("div",Us,[s("span",Os,p(Ct(a.chat_time)),1),n(r,{type:"danger",link:"",size:"small",onClick:Ks=>fa(a.id)},{default:o(()=>[...e[76]||(e[76]=[g(" 删除 ",-1)])]),_:1},8,["onClick"])])]),s("div",Ms,p(a.content),1),a.media_url?(l(),d("div",Ys,[n(Ca,{src:a.media_url,style:{"max-width":"200px"},fit:"contain","preview-src-list":[a.media_url]},null,8,["src","preview-src-list"])])):_("",!0)])}),128))])),me.value>O.value.length?(l(),d("div",{key:2,class:"dh5-load-more",onClick:va}," 加载更多 ")):_("",!0)])),[[lt,_e.value]])]),_:1},8,["modelValue","title"])])}}}),ol=_n(Qs,[["__scopeId","data-v-6232258b"]]);export{ol as default}; diff --git a/server/public/admin/assets/information-CYHEwQb_.js b/server/public/admin/assets/information-B8Louq1-.js similarity index 92% rename from server/public/admin/assets/information-CYHEwQb_.js rename to server/public/admin/assets/information-B8Louq1-.js index c08231415..e5c89ac50 100644 --- a/server/public/admin/assets/information-CYHEwQb_.js +++ b/server/public/admin/assets/information-B8Louq1-.js @@ -1 +1 @@ -import{_ as q}from"./index-9qT8_5W1.js";import{o as f,bp as C,q as _,r as U,v as o,D as s,bj as k,s as i,bb as O,aA as y,u as t,bd as M,ac as P,O as E,K as L,L as B,M as D,aC as G}from"./.pnpm-CyuAWpdG.js";import{_ as I}from"./picker-BDO86vcM.js";import{a as N,b as S}from"./website-DRg8FnbB.js";import{e as W}from"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const A={class:"website-information"},F={class:"w-80"},R={class:"w-80"},K={class:"w-80"},T={class:"w-80"},z={class:"w-80"},H=f({name:"webInformation"}),ae=f({...H,setup(J){const u=D(),b=W(),l=G({name:"",web_favicon:"",web_logo:"",login_image:"",h5_favicon:"",shop_name:"",shop_logo:"",pc_logo:"",pc_title:"",pc_desc:"",pc_ico:"",pc_keywords:""}),v={name:[{required:!0,message:"请输入网站名称",trigger:["blur"]}],web_favicon:[{required:!0,message:"请选择网站图标",trigger:["change"]}],web_logo:[{required:!0,message:"请选择网站logo",trigger:["change"]}],login_image:[{required:!0,message:"请选择登录页广告图",trigger:["change"]}],shop_name:[{required:!0,message:"请输入店铺/商城名称",trigger:["blur"]}],shop_logo:[{required:!0,message:"请选择商城LOGO",trigger:["change"]}],pc_logo:[{required:!0,message:"请选择PC端LOGO",trigger:["change"]}],pc_title:[{required:!0,message:"请输入PC端网站标题",trigger:["blur"]}],pc_ico:[{required:!0,message:"请选择PC端网站图标",trigger:["change"]}]},g=async()=>{const n=await N();for(const e in l)l[e]=n[e]},w=async()=>{var n;await((n=u.value)==null?void 0:n.validate()),await S(l),b.getConfig(),g()};return g(),(n,e)=>{const m=y,a=O,d=I,p=k,V=M,c=L,x=q,j=C("perms");return _(),U("div",A,[o(V,{ref_key:"formRef",ref:u,rules:v,class:"ls-form",model:t(l),"label-width":"120px","scroll-to-error":""},{default:s(()=>[o(p,{shadow:"never",class:"!border-none"},{default:s(()=>[e[15]||(e[15]=i("div",{class:"text-xl font-medium mb-[20px]"},"后台设置",-1)),o(a,{label:"网站名称",prop:"name"},{default:s(()=>[i("div",F,[o(m,{modelValue:t(l).name,"onUpdate:modelValue":e[0]||(e[0]=r=>t(l).name=r),modelModifiers:{trim:!0},placeholder:"请输入网站名称",maxlength:"30","show-word-limit":""},null,8,["modelValue"])])]),_:1}),o(a,{label:"网站图标",prop:"web_favicon",required:""},{default:s(()=>[i("div",null,[o(d,{modelValue:t(l).web_favicon,"onUpdate:modelValue":e[1]||(e[1]=r=>t(l).web_favicon=r),limit:1},null,8,["modelValue"]),e[12]||(e[12]=i("div",{class:"form-tips"},"建议尺寸:100*100像素,支持jpg,jpeg,png格式",-1))])]),_:1}),o(a,{label:"网站LOGO",prop:"web_logo",required:""},{default:s(()=>[i("div",null,[o(d,{modelValue:t(l).web_logo,"onUpdate:modelValue":e[2]||(e[2]=r=>t(l).web_logo=r),modelModifiers:{trim:!0},limit:1},null,8,["modelValue"]),e[13]||(e[13]=i("div",{class:"form-tips"},"建议尺寸:100*100像素,支持jpg,jpeg,png格式",-1))])]),_:1}),o(a,{label:"登录页广告图",prop:"login_image",required:""},{default:s(()=>[i("div",null,[o(d,{modelValue:t(l).login_image,"onUpdate:modelValue":e[3]||(e[3]=r=>t(l).login_image=r),modelModifiers:{trim:!0},limit:1},null,8,["modelValue"]),e[14]||(e[14]=i("div",{class:"form-tips"},"建议尺寸:100*100像素,支持jpg,jpeg,png格式",-1))])]),_:1})]),_:1}),o(p,{shadow:"never",class:"!border-none mt-4"},{default:s(()=>[e[18]||(e[18]=i("div",{class:"text-xl font-medium mb-[20px]"},"前台设置",-1)),o(a,{label:"前台名称",prop:"shop_name"},{default:s(()=>[i("div",R,[o(m,{modelValue:t(l).shop_name,"onUpdate:modelValue":e[4]||(e[4]=r=>t(l).shop_name=r),modelModifiers:{trim:!0},placeholder:"请输入前台名称",maxlength:"30","show-word-limit":""},null,8,["modelValue"])])]),_:1}),o(a,{label:"网站图标",prop:"web_favicon",required:""},{default:s(()=>[i("div",null,[o(d,{modelValue:t(l).h5_favicon,"onUpdate:modelValue":e[5]||(e[5]=r=>t(l).h5_favicon=r),limit:1},null,8,["modelValue"]),e[16]||(e[16]=i("div",{class:"form-tips"},"建议尺寸:100*100像素,支持jpg,jpeg,png格式",-1))])]),_:1}),o(a,{label:"前台LOGO",prop:"shop_logo"},{default:s(()=>[i("div",null,[o(d,{modelValue:t(l).shop_logo,"onUpdate:modelValue":e[6]||(e[6]=r=>t(l).shop_logo=r),limit:1},null,8,["modelValue"]),e[17]||(e[17]=i("div",{class:"form-tips"},"建议尺寸:100*100px,支持jpg,jpeg,png格式",-1))])]),_:1})]),_:1}),o(p,{shadow:"never",class:"!border-none mt-4"},{default:s(()=>[e[21]||(e[21]=i("div",{class:"text-xl font-medium mb-[20px]"},"PC端设置",-1)),o(a,{label:"PC端LOGO",prop:"pc_logo"},{default:s(()=>[i("div",null,[o(d,{modelValue:t(l).pc_logo,"onUpdate:modelValue":e[7]||(e[7]=r=>t(l).pc_logo=r),limit:1},null,8,["modelValue"]),e[19]||(e[19]=i("div",{class:"form-tips"},"建议尺寸:120*28px,支持jpg,jpeg,png格式",-1))])]),_:1}),o(a,{label:"网站标题",prop:"pc_title"},{default:s(()=>[i("div",K,[o(m,{modelValue:t(l).pc_title,"onUpdate:modelValue":e[8]||(e[8]=r=>t(l).pc_title=r),modelModifiers:{trim:!0},placeholder:"请输入PC端网站标题",maxlength:"30","show-word-limit":""},null,8,["modelValue"])])]),_:1}),o(a,{label:"网站图标",prop:"pc_ico"},{default:s(()=>[i("div",null,[o(d,{modelValue:t(l).pc_ico,"onUpdate:modelValue":e[9]||(e[9]=r=>t(l).pc_ico=r),limit:1},null,8,["modelValue"]),e[20]||(e[20]=i("div",{class:"form-tips"},"建议尺寸:100*100像素,支持jpg,jpeg,png格式",-1))])]),_:1}),o(a,{label:"网站描述",prop:"pc_desc"},{default:s(()=>[i("div",T,[o(m,{modelValue:t(l).pc_desc,"onUpdate:modelValue":e[10]||(e[10]=r=>t(l).pc_desc=r),modelModifiers:{trim:!0},placeholder:"请输入PC端网站描述"},null,8,["modelValue"])])]),_:1}),o(a,{label:"网站关键词",prop:"pc_keywords"},{default:s(()=>[i("div",z,[o(m,{modelValue:t(l).pc_keywords,"onUpdate:modelValue":e[11]||(e[11]=r=>t(l).pc_keywords=r),modelModifiers:{trim:!0},placeholder:"请输入PC端网站关键词"},null,8,["modelValue"])])]),_:1})]),_:1})]),_:1},8,["model"]),P((_(),E(x,null,{default:s(()=>[o(c,{type:"primary",onClick:w},{default:s(()=>[...e[22]||(e[22]=[B("保存",-1)])]),_:1})]),_:1})),[[j,["setting.web.web_setting/setWebsite"]]])])}}});export{ae as default}; +import{_ as q}from"./index-DIl3M8Wa.js";import{o as f,bp as C,q as _,r as U,v as o,D as s,bj as k,s as i,bb as O,aA as y,u as t,bd as M,ac as P,O as E,K as L,L as B,M as D,aC as G}from"./.pnpm-CyuAWpdG.js";import{_ as I}from"./picker-BTh9eW9u.js";import{a as N,b as S}from"./website-Uj_9T8tc.js";import{e as W}from"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const A={class:"website-information"},F={class:"w-80"},R={class:"w-80"},K={class:"w-80"},T={class:"w-80"},z={class:"w-80"},H=f({name:"webInformation"}),ae=f({...H,setup(J){const u=D(),b=W(),l=G({name:"",web_favicon:"",web_logo:"",login_image:"",h5_favicon:"",shop_name:"",shop_logo:"",pc_logo:"",pc_title:"",pc_desc:"",pc_ico:"",pc_keywords:""}),v={name:[{required:!0,message:"请输入网站名称",trigger:["blur"]}],web_favicon:[{required:!0,message:"请选择网站图标",trigger:["change"]}],web_logo:[{required:!0,message:"请选择网站logo",trigger:["change"]}],login_image:[{required:!0,message:"请选择登录页广告图",trigger:["change"]}],shop_name:[{required:!0,message:"请输入店铺/商城名称",trigger:["blur"]}],shop_logo:[{required:!0,message:"请选择商城LOGO",trigger:["change"]}],pc_logo:[{required:!0,message:"请选择PC端LOGO",trigger:["change"]}],pc_title:[{required:!0,message:"请输入PC端网站标题",trigger:["blur"]}],pc_ico:[{required:!0,message:"请选择PC端网站图标",trigger:["change"]}]},g=async()=>{const n=await N();for(const e in l)l[e]=n[e]},w=async()=>{var n;await((n=u.value)==null?void 0:n.validate()),await S(l),b.getConfig(),g()};return g(),(n,e)=>{const m=y,a=O,d=I,p=k,V=M,c=L,x=q,j=C("perms");return _(),U("div",A,[o(V,{ref_key:"formRef",ref:u,rules:v,class:"ls-form",model:t(l),"label-width":"120px","scroll-to-error":""},{default:s(()=>[o(p,{shadow:"never",class:"!border-none"},{default:s(()=>[e[15]||(e[15]=i("div",{class:"text-xl font-medium mb-[20px]"},"后台设置",-1)),o(a,{label:"网站名称",prop:"name"},{default:s(()=>[i("div",F,[o(m,{modelValue:t(l).name,"onUpdate:modelValue":e[0]||(e[0]=r=>t(l).name=r),modelModifiers:{trim:!0},placeholder:"请输入网站名称",maxlength:"30","show-word-limit":""},null,8,["modelValue"])])]),_:1}),o(a,{label:"网站图标",prop:"web_favicon",required:""},{default:s(()=>[i("div",null,[o(d,{modelValue:t(l).web_favicon,"onUpdate:modelValue":e[1]||(e[1]=r=>t(l).web_favicon=r),limit:1},null,8,["modelValue"]),e[12]||(e[12]=i("div",{class:"form-tips"},"建议尺寸:100*100像素,支持jpg,jpeg,png格式",-1))])]),_:1}),o(a,{label:"网站LOGO",prop:"web_logo",required:""},{default:s(()=>[i("div",null,[o(d,{modelValue:t(l).web_logo,"onUpdate:modelValue":e[2]||(e[2]=r=>t(l).web_logo=r),modelModifiers:{trim:!0},limit:1},null,8,["modelValue"]),e[13]||(e[13]=i("div",{class:"form-tips"},"建议尺寸:100*100像素,支持jpg,jpeg,png格式",-1))])]),_:1}),o(a,{label:"登录页广告图",prop:"login_image",required:""},{default:s(()=>[i("div",null,[o(d,{modelValue:t(l).login_image,"onUpdate:modelValue":e[3]||(e[3]=r=>t(l).login_image=r),modelModifiers:{trim:!0},limit:1},null,8,["modelValue"]),e[14]||(e[14]=i("div",{class:"form-tips"},"建议尺寸:100*100像素,支持jpg,jpeg,png格式",-1))])]),_:1})]),_:1}),o(p,{shadow:"never",class:"!border-none mt-4"},{default:s(()=>[e[18]||(e[18]=i("div",{class:"text-xl font-medium mb-[20px]"},"前台设置",-1)),o(a,{label:"前台名称",prop:"shop_name"},{default:s(()=>[i("div",R,[o(m,{modelValue:t(l).shop_name,"onUpdate:modelValue":e[4]||(e[4]=r=>t(l).shop_name=r),modelModifiers:{trim:!0},placeholder:"请输入前台名称",maxlength:"30","show-word-limit":""},null,8,["modelValue"])])]),_:1}),o(a,{label:"网站图标",prop:"web_favicon",required:""},{default:s(()=>[i("div",null,[o(d,{modelValue:t(l).h5_favicon,"onUpdate:modelValue":e[5]||(e[5]=r=>t(l).h5_favicon=r),limit:1},null,8,["modelValue"]),e[16]||(e[16]=i("div",{class:"form-tips"},"建议尺寸:100*100像素,支持jpg,jpeg,png格式",-1))])]),_:1}),o(a,{label:"前台LOGO",prop:"shop_logo"},{default:s(()=>[i("div",null,[o(d,{modelValue:t(l).shop_logo,"onUpdate:modelValue":e[6]||(e[6]=r=>t(l).shop_logo=r),limit:1},null,8,["modelValue"]),e[17]||(e[17]=i("div",{class:"form-tips"},"建议尺寸:100*100px,支持jpg,jpeg,png格式",-1))])]),_:1})]),_:1}),o(p,{shadow:"never",class:"!border-none mt-4"},{default:s(()=>[e[21]||(e[21]=i("div",{class:"text-xl font-medium mb-[20px]"},"PC端设置",-1)),o(a,{label:"PC端LOGO",prop:"pc_logo"},{default:s(()=>[i("div",null,[o(d,{modelValue:t(l).pc_logo,"onUpdate:modelValue":e[7]||(e[7]=r=>t(l).pc_logo=r),limit:1},null,8,["modelValue"]),e[19]||(e[19]=i("div",{class:"form-tips"},"建议尺寸:120*28px,支持jpg,jpeg,png格式",-1))])]),_:1}),o(a,{label:"网站标题",prop:"pc_title"},{default:s(()=>[i("div",K,[o(m,{modelValue:t(l).pc_title,"onUpdate:modelValue":e[8]||(e[8]=r=>t(l).pc_title=r),modelModifiers:{trim:!0},placeholder:"请输入PC端网站标题",maxlength:"30","show-word-limit":""},null,8,["modelValue"])])]),_:1}),o(a,{label:"网站图标",prop:"pc_ico"},{default:s(()=>[i("div",null,[o(d,{modelValue:t(l).pc_ico,"onUpdate:modelValue":e[9]||(e[9]=r=>t(l).pc_ico=r),limit:1},null,8,["modelValue"]),e[20]||(e[20]=i("div",{class:"form-tips"},"建议尺寸:100*100像素,支持jpg,jpeg,png格式",-1))])]),_:1}),o(a,{label:"网站描述",prop:"pc_desc"},{default:s(()=>[i("div",T,[o(m,{modelValue:t(l).pc_desc,"onUpdate:modelValue":e[10]||(e[10]=r=>t(l).pc_desc=r),modelModifiers:{trim:!0},placeholder:"请输入PC端网站描述"},null,8,["modelValue"])])]),_:1}),o(a,{label:"网站关键词",prop:"pc_keywords"},{default:s(()=>[i("div",z,[o(m,{modelValue:t(l).pc_keywords,"onUpdate:modelValue":e[11]||(e[11]=r=>t(l).pc_keywords=r),modelModifiers:{trim:!0},placeholder:"请输入PC端网站关键词"},null,8,["modelValue"])])]),_:1})]),_:1})]),_:1},8,["model"]),P((_(),E(x,null,{default:s(()=>[o(c,{type:"primary",onClick:w},{default:s(()=>[...e[22]||(e[22]=[B("保存",-1)])]),_:1})]),_:1})),[[j,["setting.web.web_setting/setWebsite"]]])])}}});export{ae as default}; diff --git a/server/public/admin/assets/journal-DGOvChsE.js b/server/public/admin/assets/journal-BMTdPoej.js similarity index 94% rename from server/public/admin/assets/journal-DGOvChsE.js rename to server/public/admin/assets/journal-BMTdPoej.js index 0f322c9b9..435c4a37c 100644 --- a/server/public/admin/assets/journal-DGOvChsE.js +++ b/server/public/admin/assets/journal-BMTdPoej.js @@ -1 +1 @@ -import{o as C,ap as D,q as r,r as f,v as e,D as n,bd as P,u as l,bb as j,aA as z,bc as u,bh as N,F as $,G as M,O as v,bi as O,K as q,L as g,bj as A,ac as G,bn as R,s as V,bk as S,bl as H,C as J,M as y}from"./.pnpm-CyuAWpdG.js";import{_ as Q}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as W}from"./index.vue_vue_type_script_setup_true_lang-98A4_fZW.js";import{_ as X}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{F as w}from"./index-Dxvz9lb1.js";import{u as Y}from"./usePaging-CghUEVfD.js";import"./index-BnfLT5cB.js";const Z={class:"journal"},ee={class:"flex mt-4 justify-end"},le=C({name:"journal"}),de=C({...le,setup(ae){const o=y({admin_name:"",url:"",ip:"",type:"",start_time:"",end_time:""}),k=y([{label:"全部",value:""},{label:"get",value:"get"},{label:"post",value:"post"},{label:"put",value:"put"},{label:"delete",value:"delete"},{label:"option",value:"option"}]),{pager:m,getLists:_,resetParams:x,resetPage:i}=Y({fetchFun:w,params:o.value});return D(()=>{_()}),(te,a)=>{const d=z,p=j,E=O,T=N,K=X,c=q,h=W,U=P,b=A,s=H,F=S,I=Q,L=R;return r(),f("div",Z,[e(b,{class:"!border-none",shadow:"never"},{default:n(()=>[e(U,{class:"ls-form",model:l(o),inline:""},{default:n(()=>[e(p,{class:"w-[280px]",label:"管理员"},{default:n(()=>[e(d,{placeholder:"请输入",modelValue:l(o).admin_name,"onUpdate:modelValue":a[0]||(a[0]=t=>l(o).admin_name=t),clearable:"",onKeyup:u(l(i),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(p,{class:"w-[280px]",label:"访问方式"},{default:n(()=>[e(T,{modelValue:l(o).type,"onUpdate:modelValue":a[1]||(a[1]=t=>l(o).type=t),placeholder:"请选择"},{default:n(()=>[(r(!0),f($,null,M(l(k),(t,B)=>(r(),v(E,{key:B,label:t.label,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(p,{class:"w-[280px]",label:"来源IP"},{default:n(()=>[e(d,{placeholder:"请输入",modelValue:l(o).ip,"onUpdate:modelValue":a[2]||(a[2]=t=>l(o).ip=t),clearable:"",onKeyup:u(l(i),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(p,{label:"访问时间"},{default:n(()=>[e(K,{startTime:l(o).start_time,"onUpdate:startTime":a[3]||(a[3]=t=>l(o).start_time=t),endTime:l(o).end_time,"onUpdate:endTime":a[4]||(a[4]=t=>l(o).end_time=t)},null,8,["startTime","endTime"])]),_:1}),e(p,{class:"w-[280px]",label:"访问链接"},{default:n(()=>[e(d,{placeholder:"请输入",modelValue:l(o).url,"onUpdate:modelValue":a[5]||(a[5]=t=>l(o).url=t),clearable:"",onKeyup:u(l(i),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(p,null,{default:n(()=>[e(c,{type:"primary",onClick:l(i)},{default:n(()=>[...a[7]||(a[7]=[g("查询",-1)])]),_:1},8,["onClick"]),e(c,{onClick:l(x)},{default:n(()=>[...a[8]||(a[8]=[g("重置",-1)])]),_:1},8,["onClick"]),e(h,{class:"ml-2.5","fetch-fun":l(w),params:l(o),"page-size":l(m).size},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1},8,["model"])]),_:1}),G((r(),v(b,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[V("div",null,[e(F,{data:l(m).lists,size:"large"},{default:n(()=>[e(s,{label:"记录ID",prop:"id"}),e(s,{label:"操作",prop:"action","min-width":"120"}),e(s,{label:"管理员",prop:"admin_name","min-width":"120"}),e(s,{label:"管理员ID",prop:"admin_id","min-width":"120"}),e(s,{label:"访问链接",prop:"url","min-width":"160"}),e(s,{label:"访问方式",prop:"type"}),e(s,{label:"访问参数",prop:"params","min-width":"160"}),e(s,{label:"来源IP",prop:"ip","min-width":"160"}),e(s,{label:"日志时间",prop:"create_time","min-width":"180"})]),_:1},8,["data"])]),V("div",ee,[e(I,{modelValue:l(m),"onUpdate:modelValue":a[6]||(a[6]=t=>J(m)?m.value=t:null),onChange:l(_)},null,8,["modelValue","onChange"])])]),_:1})),[[L,l(m).loading]])])}}});export{de as default}; +import{o as C,ap as D,q as r,r as f,v as e,D as n,bd as P,u as l,bb as j,aA as z,bc as u,bh as N,F as $,G as M,O as v,bi as O,K as q,L as g,bj as A,ac as G,bn as R,s as V,bk as S,bl as H,C as J,M as y}from"./.pnpm-CyuAWpdG.js";import{_ as Q}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as W}from"./index.vue_vue_type_script_setup_true_lang-CQzUr1BT.js";import{_ as X}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{F as w}from"./index-Bkarz3gO.js";import{u as Y}from"./usePaging-CghUEVfD.js";import"./index-CS5Wg0xx.js";const Z={class:"journal"},ee={class:"flex mt-4 justify-end"},le=C({name:"journal"}),de=C({...le,setup(ae){const o=y({admin_name:"",url:"",ip:"",type:"",start_time:"",end_time:""}),k=y([{label:"全部",value:""},{label:"get",value:"get"},{label:"post",value:"post"},{label:"put",value:"put"},{label:"delete",value:"delete"},{label:"option",value:"option"}]),{pager:m,getLists:_,resetParams:x,resetPage:i}=Y({fetchFun:w,params:o.value});return D(()=>{_()}),(te,a)=>{const d=z,p=j,E=O,T=N,K=X,c=q,h=W,U=P,b=A,s=H,F=S,I=Q,L=R;return r(),f("div",Z,[e(b,{class:"!border-none",shadow:"never"},{default:n(()=>[e(U,{class:"ls-form",model:l(o),inline:""},{default:n(()=>[e(p,{class:"w-[280px]",label:"管理员"},{default:n(()=>[e(d,{placeholder:"请输入",modelValue:l(o).admin_name,"onUpdate:modelValue":a[0]||(a[0]=t=>l(o).admin_name=t),clearable:"",onKeyup:u(l(i),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(p,{class:"w-[280px]",label:"访问方式"},{default:n(()=>[e(T,{modelValue:l(o).type,"onUpdate:modelValue":a[1]||(a[1]=t=>l(o).type=t),placeholder:"请选择"},{default:n(()=>[(r(!0),f($,null,M(l(k),(t,B)=>(r(),v(E,{key:B,label:t.label,value:t.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),e(p,{class:"w-[280px]",label:"来源IP"},{default:n(()=>[e(d,{placeholder:"请输入",modelValue:l(o).ip,"onUpdate:modelValue":a[2]||(a[2]=t=>l(o).ip=t),clearable:"",onKeyup:u(l(i),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(p,{label:"访问时间"},{default:n(()=>[e(K,{startTime:l(o).start_time,"onUpdate:startTime":a[3]||(a[3]=t=>l(o).start_time=t),endTime:l(o).end_time,"onUpdate:endTime":a[4]||(a[4]=t=>l(o).end_time=t)},null,8,["startTime","endTime"])]),_:1}),e(p,{class:"w-[280px]",label:"访问链接"},{default:n(()=>[e(d,{placeholder:"请输入",modelValue:l(o).url,"onUpdate:modelValue":a[5]||(a[5]=t=>l(o).url=t),clearable:"",onKeyup:u(l(i),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(p,null,{default:n(()=>[e(c,{type:"primary",onClick:l(i)},{default:n(()=>[...a[7]||(a[7]=[g("查询",-1)])]),_:1},8,["onClick"]),e(c,{onClick:l(x)},{default:n(()=>[...a[8]||(a[8]=[g("重置",-1)])]),_:1},8,["onClick"]),e(h,{class:"ml-2.5","fetch-fun":l(w),params:l(o),"page-size":l(m).size},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1},8,["model"])]),_:1}),G((r(),v(b,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[V("div",null,[e(F,{data:l(m).lists,size:"large"},{default:n(()=>[e(s,{label:"记录ID",prop:"id"}),e(s,{label:"操作",prop:"action","min-width":"120"}),e(s,{label:"管理员",prop:"admin_name","min-width":"120"}),e(s,{label:"管理员ID",prop:"admin_id","min-width":"120"}),e(s,{label:"访问链接",prop:"url","min-width":"160"}),e(s,{label:"访问方式",prop:"type"}),e(s,{label:"访问参数",prop:"params","min-width":"160"}),e(s,{label:"来源IP",prop:"ip","min-width":"160"}),e(s,{label:"日志时间",prop:"create_time","min-width":"180"})]),_:1},8,["data"])]),V("div",ee,[e(I,{modelValue:l(m),"onUpdate:modelValue":a[6]||(a[6]=t=>J(m)?m.value=t:null),onChange:l(_)},null,8,["modelValue","onChange"])])]),_:1})),[[L,l(m).loading]])])}}});export{de as default}; diff --git a/server/public/admin/assets/keyword_reply-0cxOJmpm.js b/server/public/admin/assets/keyword_reply-CnD27rGc.js similarity index 91% rename from server/public/admin/assets/keyword_reply-0cxOJmpm.js rename to server/public/admin/assets/keyword_reply-CnD27rGc.js index d2366734f..4b46a3749 100644 --- a/server/public/admin/assets/keyword_reply-0cxOJmpm.js +++ b/server/public/admin/assets/keyword_reply-CnD27rGc.js @@ -1 +1 @@ -import{o as L,q as f,r as N,v as t,D as l,bo as j,bj as O,s as g,K as P,L as d,ac as U,O as v,bk as A,u as o,bl as M,T as w,I as q,bn as z,C as F,P as I,a8 as K,M as G,p as b,n as h}from"./.pnpm-CyuAWpdG.js";import{_ as H}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as J,j as Q}from"./index-Dxvz9lb1.js";import{d as W,o as X,e as Y}from"./wx_oa-vu-UopqS.js";import{u as Z}from"./usePaging-CghUEVfD.js";import{_ as ee}from"./edit.vue_vue_type_script_setup_true_lang-DRGhGv7L.js";import"./index-BnfLT5cB.js";const te={class:"flex justify-end mt-4"},ce=L({__name:"keyword_reply",setup(ae){const c=K(),u=G(!1),k=b(()=>n=>{switch(n){case 1:return"全匹配";case 2:return"模糊匹配"}}),C=b(()=>n=>{switch(n){case 1:return"文本"}}),{pager:r,getLists:i}=Z({fetchFun:W,params:{reply_type:2}}),V=async()=>{var n;u.value=!0,await h(),(n=c.value)==null||n.open("add",2)},E=async n=>{var e,m;u.value=!0,await h(),(e=c.value)==null||e.open("edit",2),(m=c.value)==null||m.getDetail(n)},$=async n=>{await Q.confirm("确定要删除?"),await X({id:n}),i()},x=async n=>{try{await Y({id:n}),i()}catch{i()}};return i(),(n,e)=>{const m=j,y=O,R=J,_=P,s=M,T=q,D=A,S=H,B=z;return f(),N("div",null,[t(y,{class:"!border-none",shadow:"never"},{default:l(()=>[t(m,{type:"warning",title:"温馨提示:1.粉丝在公众号发送内容时,通过关键词可触发关键词回复;2.同时可启用多个关键词回复,有多条关键词匹配时优选选择排序靠前的一条",closable:!1,"show-icon":""})]),_:1}),t(y,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[g("div",null,[t(_,{class:"mb-4",type:"primary",onClick:e[0]||(e[0]=a=>V())},{icon:l(()=>[t(R,{name:"el-icon-Plus"})]),default:l(()=>[e[3]||(e[3]=d(" 新增 ",-1))]),_:1})]),U((f(),v(D,{size:"large",data:o(r).lists},{default:l(()=>[t(s,{label:"规则名称",prop:"name","min-width":"120"}),t(s,{label:"关键词",prop:"keyword","min-width":"120"}),t(s,{label:"匹配方式","min-width":"120"},{default:l(({row:a})=>[d(w(o(k)(a.matching_type)),1)]),_:1}),t(s,{label:"回复类型","min-width":"120"},{default:l(({row:a})=>[d(w(o(C)(a.content_type)),1)]),_:1}),t(s,{label:"状态","min-width":"120"},{default:l(({row:a})=>[t(T,{modelValue:a.status,"onUpdate:modelValue":p=>a.status=p,"active-value":1,"inactive-value":0,onChange:p=>x(a.id)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),t(s,{label:"排序",prop:"sort","min-width":"120"}),t(s,{label:"操作",width:"120",fixed:"right"},{default:l(({row:a})=>[t(_,{type:"primary",link:"",onClick:p=>E(a)},{default:l(()=>[...e[4]||(e[4]=[d(" 编辑 ",-1)])]),_:1},8,["onClick"]),t(_,{type:"danger",link:"",onClick:p=>$(a.id)},{default:l(()=>[...e[5]||(e[5]=[d(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[B,o(r).loading]]),g("div",te,[t(S,{modelValue:o(r),"onUpdate:modelValue":e[1]||(e[1]=a=>F(r)?r.value=a:null),onChange:o(i)},null,8,["modelValue","onChange"])])]),_:1}),o(u)?(f(),v(ee,{key:0,ref_key:"editRef",ref:c,onSuccess:o(i),onClose:e[2]||(e[2]=a=>u.value=!1)},null,8,["onSuccess"])):I("",!0)])}}});export{ce as default}; +import{o as L,q as f,r as N,v as t,D as l,bo as j,bj as O,s as g,K as P,L as d,ac as U,O as v,bk as A,u as o,bl as M,T as w,I as q,bn as z,C as F,P as I,a8 as K,M as G,p as b,n as h}from"./.pnpm-CyuAWpdG.js";import{_ as H}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{c as J,j as Q}from"./index-Bkarz3gO.js";import{d as W,o as X,e as Y}from"./wx_oa-C-EoclSf.js";import{u as Z}from"./usePaging-CghUEVfD.js";import{_ as ee}from"./edit.vue_vue_type_script_setup_true_lang-DjT3f1Sv.js";import"./index-CS5Wg0xx.js";const te={class:"flex justify-end mt-4"},ce=L({__name:"keyword_reply",setup(ae){const c=K(),u=G(!1),k=b(()=>n=>{switch(n){case 1:return"全匹配";case 2:return"模糊匹配"}}),C=b(()=>n=>{switch(n){case 1:return"文本"}}),{pager:r,getLists:i}=Z({fetchFun:W,params:{reply_type:2}}),V=async()=>{var n;u.value=!0,await h(),(n=c.value)==null||n.open("add",2)},E=async n=>{var e,m;u.value=!0,await h(),(e=c.value)==null||e.open("edit",2),(m=c.value)==null||m.getDetail(n)},$=async n=>{await Q.confirm("确定要删除?"),await X({id:n}),i()},x=async n=>{try{await Y({id:n}),i()}catch{i()}};return i(),(n,e)=>{const m=j,y=O,R=J,_=P,s=M,T=q,D=A,S=H,B=z;return f(),N("div",null,[t(y,{class:"!border-none",shadow:"never"},{default:l(()=>[t(m,{type:"warning",title:"温馨提示:1.粉丝在公众号发送内容时,通过关键词可触发关键词回复;2.同时可启用多个关键词回复,有多条关键词匹配时优选选择排序靠前的一条",closable:!1,"show-icon":""})]),_:1}),t(y,{class:"!border-none mt-4",shadow:"never"},{default:l(()=>[g("div",null,[t(_,{class:"mb-4",type:"primary",onClick:e[0]||(e[0]=a=>V())},{icon:l(()=>[t(R,{name:"el-icon-Plus"})]),default:l(()=>[e[3]||(e[3]=d(" 新增 ",-1))]),_:1})]),U((f(),v(D,{size:"large",data:o(r).lists},{default:l(()=>[t(s,{label:"规则名称",prop:"name","min-width":"120"}),t(s,{label:"关键词",prop:"keyword","min-width":"120"}),t(s,{label:"匹配方式","min-width":"120"},{default:l(({row:a})=>[d(w(o(k)(a.matching_type)),1)]),_:1}),t(s,{label:"回复类型","min-width":"120"},{default:l(({row:a})=>[d(w(o(C)(a.content_type)),1)]),_:1}),t(s,{label:"状态","min-width":"120"},{default:l(({row:a})=>[t(T,{modelValue:a.status,"onUpdate:modelValue":p=>a.status=p,"active-value":1,"inactive-value":0,onChange:p=>x(a.id)},null,8,["modelValue","onUpdate:modelValue","onChange"])]),_:1}),t(s,{label:"排序",prop:"sort","min-width":"120"}),t(s,{label:"操作",width:"120",fixed:"right"},{default:l(({row:a})=>[t(_,{type:"primary",link:"",onClick:p=>E(a)},{default:l(()=>[...e[4]||(e[4]=[d(" 编辑 ",-1)])]),_:1},8,["onClick"]),t(_,{type:"danger",link:"",onClick:p=>$(a.id)},{default:l(()=>[...e[5]||(e[5]=[d(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[B,o(r).loading]]),g("div",te,[t(S,{modelValue:o(r),"onUpdate:modelValue":e[1]||(e[1]=a=>F(r)?r.value=a:null),onChange:o(i)},null,8,["modelValue","onChange"])])]),_:1}),o(u)?(f(),v(ee,{key:0,ref_key:"editRef",ref:c,onSuccess:o(i),onClose:e[2]||(e[2]=a=>u.value=!1)},null,8,["onSuccess"])):I("",!0)])}}});export{ce as default}; diff --git a/server/public/admin/assets/link-BRt-fkOK.js b/server/public/admin/assets/link-13OKwoRw.js similarity index 70% rename from server/public/admin/assets/link-BRt-fkOK.js rename to server/public/admin/assets/link-13OKwoRw.js index 7d7725ac8..a0749a1bc 100644 --- a/server/public/admin/assets/link-BRt-fkOK.js +++ b/server/public/admin/assets/link-13OKwoRw.js @@ -1 +1 @@ -import{o as s,q as m,r as p,v as t,D as _,u as a,bj as u,aC as i}from"./.pnpm-CyuAWpdG.js";import{_ as c}from"./picker-BKygjDQE.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";const w=s({__name:"link",setup(d){const e=i({value1:{}});return(f,o)=>{const n=c,r=u;return m(),p("div",null,[t(r,{header:"基础使用",shadow:"never",class:"!border-none"},{default:_(()=>[t(n,{modelValue:a(e).value1,"onUpdate:modelValue":o[0]||(o[0]=l=>a(e).value1=l)},null,8,["modelValue"])]),_:1})])}}});export{w as default}; +import{o as s,q as m,r as p,v as t,D as _,u as a,bj as u,aC as i}from"./.pnpm-CyuAWpdG.js";import{_ as c}from"./picker-CSWk6Vbk.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";const w=s({__name:"link",setup(d){const e=i({value1:{}});return(f,o)=>{const n=c,r=u;return m(),p("div",null,[t(r,{header:"基础使用",shadow:"never",class:"!border-none"},{default:_(()=>[t(n,{modelValue:a(e).value1,"onUpdate:modelValue":o[0]||(o[0]=l=>a(e).value1=l)},null,8,["modelValue"])]),_:1})])}}});export{w as default}; diff --git a/server/public/admin/assets/list-sR7XC4Vj.js b/server/public/admin/assets/list-rjCkupr-.js similarity index 97% rename from server/public/admin/assets/list-sR7XC4Vj.js rename to server/public/admin/assets/list-rjCkupr-.js index a0c2e15fb..d5087107c 100644 --- a/server/public/admin/assets/list-sR7XC4Vj.js +++ b/server/public/admin/assets/list-rjCkupr-.js @@ -1 +1 @@ -import{o as q,ap as fe,bp as be,q as m,r as N,v as l,D as i,bd as ye,u as o,bb as ve,aA as ge,bc as ke,bh as Ve,bi as he,K as Ce,L as s,bj as xe,ac as k,bn as we,O as b,P as R,s as V,bk as Ee,bl as Re,bm as Ae,T as E,C as J,bO as De,bf as Se,bq as Le,J as Ne,I as Ue,aB as Ie,aC as j,M as h,p as Pe}from"./.pnpm-CyuAWpdG.js";import{_ as Be}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{u as $e,c as Oe,j as y,_ as Me}from"./index-Dxvz9lb1.js";import{v as Ge,A as Te,B as Fe,C as Je}from"./tcm-QAkeqQ9Q.js";import{u as je}from"./usePaging-CghUEVfD.js";import{M as qe}from"./index-Cf6ygfGC.js";import Ke from"./PrescriptionAiBatchGenerateDialog-DjGAFFkN.js";import ze from"./PrescriptionAiReportDialog-DqUaPOfy.js";import"./medicine-EUKQYFsM.js";const He={class:"prescription-library"},Qe={class:"mt-4"},We={key:0},Xe={key:1,class:"text-gray-400"},Ye={class:"flex mt-4 justify-end"},Ze={class:"w-full"},el={class:"flex flex-col gap-1 leading-none"},ll=q({name:"prescriptionLibrary"}),tl=q({...ll,setup(al){const _=j({prescription_name:"",formula_type:"",is_public:""}),f=h(!1),p=h("add"),A=h(!1),D=h(),U=h(),I=h(),n=j({id:0,prescription_name:"",formula_type:"主方",herbs:[],is_public:0,disable_edit:0}),K={prescription_name:[{required:!0,message:"请输入处方名称",trigger:"blur"}]},S=$e(),z=Pe(()=>{const a=S.perms||[];return a.includes("*")||a.includes("tcm.prescriptionLibrary/missingAiReports")&&a.includes("tcm.prescriptionLibrary/generateAiReports")}),H=[0,3],{pager:C,getLists:x,resetParams:Q,resetPage:P}=je({fetchFun:Ge,params:_}),W=a=>{var e;return Number(a.creator_id)===Number((e=S.userInfo)==null?void 0:e.id)},X=()=>{const a=S.userInfo;if(!a)return!1;if(Number(a.root)===1)return!0;const e=Array.isArray(a.role_ids)?a.role_ids.map(v=>Number(v)):[];return H.some(v=>e.includes(v))},B=a=>X()||W(a),Y=B,Z=a=>{var e;(e=U.value)==null||e.open(a)},ee=()=>{var a;(a=I.value)==null||a.open()},le=()=>{n.herbs.push({name:"",dosage:0})},te=a=>{n.herbs.splice(a,1)},ae=()=>{n.id=0,n.prescription_name="",n.formula_type="主方",n.herbs=[],n.is_public=0,n.disable_edit=0},ie=()=>{ae(),p.value="add",f.value=!0},oe=a=>{p.value="view",n.id=a.id,n.prescription_name=a.prescription_name||"",n.formula_type=a.formula_type||"主方",n.herbs=a.herbs?JSON.parse(JSON.stringify(a.herbs)):[],n.is_public=a.is_public??0,n.disable_edit=a.disable_edit??0,f.value=!0},ne=a=>{p.value="edit",n.id=a.id,n.prescription_name=a.prescription_name||"",n.formula_type=a.formula_type||"主方",n.herbs=a.herbs?JSON.parse(JSON.stringify(a.herbs)):[],n.is_public=a.is_public??0,n.disable_edit=a.disable_edit??0,f.value=!0},se=async()=>{if(D.value){if(await D.value.validate(),!n.herbs||n.herbs.length===0){y.msgError("请至少添加一味药材");return}for(let a=0;a{await y.confirm("确定要删除该处方吗?"),await Je({id:a}),y.msgSuccess("删除成功"),x()};return fe(()=>{x()}),(a,e)=>{const v=ge,c=ve,g=he,$=Ve,u=Ce,O=ye,M=xe,de=Oe,d=Re,L=Ae,G=Ee,pe=Be,T=Le,ue=Se,me=Ne,F=Ue,ce=Ie,w=be("perms"),_e=we;return m(),N("div",He,[l(M,{class:"!border-none",shadow:"never"},{default:i(()=>[l(O,{class:"mb-[-16px]",model:o(_),inline:""},{default:i(()=>[l(c,{class:"w-[280px]",label:"处方名称"},{default:i(()=>[l(v,{modelValue:o(_).prescription_name,"onUpdate:modelValue":e[0]||(e[0]=t=>o(_).prescription_name=t),placeholder:"请输入处方名称",clearable:"",onKeyup:ke(o(P),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(c,{class:"w-[200px]",label:"处方类型"},{default:i(()=>[l($,{modelValue:o(_).formula_type,"onUpdate:modelValue":e[1]||(e[1]=t=>o(_).formula_type=t),placeholder:"全部",clearable:""},{default:i(()=>[l(g,{label:"全部",value:""}),l(g,{label:"主方",value:"主方"}),l(g,{label:"辅方",value:"辅方"})]),_:1},8,["modelValue"])]),_:1}),l(c,{class:"w-[200px]",label:"是否公开"},{default:i(()=>[l($,{modelValue:o(_).is_public,"onUpdate:modelValue":e[2]||(e[2]=t=>o(_).is_public=t),placeholder:"全部",clearable:""},{default:i(()=>[l(g,{label:"全部",value:""}),l(g,{label:"仅自己可见",value:0}),l(g,{label:"所有人可见",value:1})]),_:1},8,["modelValue"])]),_:1}),l(c,null,{default:i(()=>[l(u,{type:"primary",onClick:o(P)},{default:i(()=>[...e[10]||(e[10]=[s("查询",-1)])]),_:1},8,["onClick"]),l(u,{onClick:o(Q)},{default:i(()=>[...e[11]||(e[11]=[s("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),k((m(),b(M,{class:"mt-4 !border-none",shadow:"never"},{default:i(()=>[k((m(),b(u,{type:"primary",onClick:ie},{icon:i(()=>[l(de,{name:"el-icon-Plus"})]),default:i(()=>[e[12]||(e[12]=s(" 新增处方 ",-1))]),_:1})),[[w,["wcf.prescription/add"]]]),o(z)?(m(),b(u,{key:0,type:"primary",plain:"",onClick:ee},{default:i(()=>[...e[13]||(e[13]=[s(" 批量生成报告 ",-1)])]),_:1})):R("",!0),V("div",Qe,[l(G,{data:o(C).lists,size:"large"},{default:i(()=>[l(d,{label:"ID",prop:"id","min-width":"60"}),l(d,{label:"处方名称",prop:"prescription_name","min-width":"200","show-overflow-tooltip":""}),l(d,{label:"处方类型","min-width":"100"},{default:i(({row:t})=>[l(L,{type:t.formula_type==="辅方"?"warning":"primary",size:"small"},{default:i(()=>[s(E(t.formula_type||"主方"),1)]),_:2},1032,["type"])]),_:1}),l(d,{label:"药材数量","min-width":"100"},{default:i(({row:t})=>{var r;return[s(E(((r=t.herbs)==null?void 0:r.length)||0)+"味 ",1)]}),_:1}),l(d,{label:"药材明细","min-width":"300","show-overflow-tooltip":""},{default:i(({row:t})=>[t.herbs&&t.herbs.length>0?(m(),N("span",We,E(t.herbs.map(r=>`${r.name} ${r.dosage}g`).join("、")),1)):(m(),N("span",Xe,"暂无药材"))]),_:1}),l(d,{label:"是否公开","min-width":"120"},{default:i(({row:t})=>[l(L,{type:t.is_public?"success":"info"},{default:i(()=>[s(E(t.is_public?"所有人可见":"仅自己可见"),1)]),_:2},1032,["type"])]),_:1}),l(d,{label:"禁用修改","min-width":"100"},{default:i(({row:t})=>[l(L,{type:t.disable_edit?"danger":"info"},{default:i(()=>[s(E(t.disable_edit?"已禁用":"可修改"),1)]),_:2},1032,["type"])]),_:1}),l(d,{label:"创建人",prop:"creator_name","min-width":"100"}),l(d,{label:"创建时间",prop:"create_time","min-width":"160"}),l(d,{label:"操作",width:"240",fixed:"right"},{default:i(({row:t})=>[k((m(),b(u,{type:"primary",link:"",onClick:r=>oe(t)},{default:i(()=>[...e[14]||(e[14]=[s(" 查看 ",-1)])]),_:1},8,["onClick"])),[[w,["wcf.prescription/read"]]]),k((m(),b(u,{type:"primary",link:"",onClick:r=>Z(t)},{default:i(()=>[...e[15]||(e[15]=[s(" AI解释 ",-1)])]),_:1},8,["onClick"])),[[w,["tcm.prescriptionLibrary/aiReports","wcf.prescription/read"]]]),B(t)?k((m(),b(u,{key:0,type:"primary",link:"",onClick:r=>ne(t)},{default:i(()=>[...e[16]||(e[16]=[s(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[w,["wcf.prescription/edit"]]]):R("",!0),o(Y)(t)?k((m(),b(u,{key:1,type:"danger",link:"",onClick:r=>re(t.id)},{default:i(()=>[...e[17]||(e[17]=[s(" 删除 ",-1)])]),_:1},8,["onClick"])),[[w,["wcf.prescription/delete"]]]):R("",!0)]),_:1})]),_:1},8,["data"])]),V("div",Ye,[l(pe,{modelValue:o(C),"onUpdate:modelValue":e[3]||(e[3]=t=>J(C)?C.value=t:null),onChange:o(x)},null,8,["modelValue","onChange"])])]),_:1})),[[_e,o(C).loading]]),l(ce,{modelValue:o(f),"onUpdate:modelValue":e[9]||(e[9]=t=>J(f)?f.value=t:null),title:o(p)==="add"?"新增处方":o(p)==="edit"?"编辑处方":"查看处方",width:"800px","close-on-click-modal":!1},De({default:i(()=>[l(O,{ref_key:"formRef",ref:D,model:o(n),rules:K,"label-width":"120px",disabled:o(p)==="view"},{default:i(()=>[l(c,{label:"处方名称",prop:"prescription_name"},{default:i(()=>[l(v,{modelValue:o(n).prescription_name,"onUpdate:modelValue":e[4]||(e[4]=t=>o(n).prescription_name=t),placeholder:"请输入处方名称,例如:六味地黄丸、补中益气汤",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(c,{label:"处方类型",prop:"formula_type"},{default:i(()=>[l(ue,{modelValue:o(n).formula_type,"onUpdate:modelValue":e[5]||(e[5]=t=>o(n).formula_type=t)},{default:i(()=>[l(T,{value:"主方"},{default:i(()=>[...e[18]||(e[18]=[s("主方",-1)])]),_:1}),l(T,{value:"辅方"},{default:i(()=>[...e[19]||(e[19]=[s("辅方",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(c,{label:"药材配方",prop:"herbs",required:""},{default:i(()=>[V("div",Ze,[l(u,{type:"primary",size:"small",onClick:le,disabled:o(p)==="view"},{default:i(()=>[...e[20]||(e[20]=[s(" 添加药材 ",-1)])]),_:1},8,["disabled"]),l(G,{data:o(n).herbs,class:"mt-2",border:""},{default:i(()=>[l(d,{label:"序号",type:"index",width:"60"}),l(d,{label:"药材名称","min-width":"220"},{default:i(({row:t})=>[l(qe,{modelValue:t.name,"onUpdate:modelValue":r=>t.name=r,"medicine-id":t.medicine_id,"onUpdate:medicineId":r=>t.medicine_id=r,disabled:o(p)==="view"},null,8,["modelValue","onUpdate:modelValue","medicine-id","onUpdate:medicineId","disabled"])]),_:1}),l(d,{label:"剂量(克)","min-width":"150"},{default:i(({row:t})=>[l(me,{modelValue:t.dosage,"onUpdate:modelValue":r=>t.dosage=r,min:0,precision:1,step:.5,placeholder:"剂量",class:"w-full",disabled:o(p)==="view"},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:1}),o(p)!=="view"?(m(),b(d,{key:0,label:"操作",width:"80"},{default:i(({$index:t})=>[l(u,{type:"danger",link:"",onClick:r=>te(t)},{default:i(()=>[...e[21]||(e[21]=[s(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})):R("",!0)]),_:1},8,["data"])])]),_:1}),l(c,{label:"是否公开",prop:"is_public"},{default:i(()=>[l(F,{modelValue:o(n).is_public,"onUpdate:modelValue":e[6]||(e[6]=t=>o(n).is_public=t),"active-value":1,"inactive-value":0,"active-text":"所有人可见","inactive-text":"仅自己可见"},null,8,["modelValue"]),e[22]||(e[22]=V("div",{class:"text-xs text-gray-400 mt-1"}," 勾选后,所有医生都可以查看和使用此处方模板 ",-1))]),_:1}),l(c,{label:"禁用修改",prop:"disable_edit"},{default:i(()=>[V("div",el,[l(F,{modelValue:o(n).disable_edit,"onUpdate:modelValue":e[7]||(e[7]=t=>o(n).disable_edit=t),"active-value":1,"inactive-value":0,"active-text":"开启","inactive-text":"关闭"},null,8,["modelValue"]),e[23]||(e[23]=V("div",{class:"text-xs text-gray-400 leading-relaxed"}," 开启后,导入此模板到处方时将锁定整张处方的药材,不可增删改,只能再次导入覆盖 ",-1))])]),_:1})]),_:1},8,["model","disabled"])]),_:2},[o(p)!=="view"?{name:"footer",fn:i(()=>[l(u,{onClick:e[8]||(e[8]=t=>f.value=!1)},{default:i(()=>[...e[24]||(e[24]=[s("取消",-1)])]),_:1}),l(u,{type:"primary",onClick:se,loading:o(A)},{default:i(()=>[...e[25]||(e[25]=[s(" 确定 ",-1)])]),_:1},8,["loading"])]),key:"0"}:void 0]),1032,["modelValue","title"]),l(ze,{ref_key:"aiReportDialogRef",ref:U},null,512),l(Ke,{ref_key:"aiBatchGenerateDialogRef",ref:I,onChanged:o(x)},null,8,["onChanged"])])}}}),cl=Me(tl,[["__scopeId","data-v-abbf0b98"]]);export{cl as default}; +import{o as q,ap as fe,bp as be,q as m,r as N,v as l,D as i,bd as ye,u as o,bb as ve,aA as ge,bc as ke,bh as Ve,bi as he,K as Ce,L as s,bj as xe,ac as k,bn as we,O as b,P as R,s as V,bk as Ee,bl as Re,bm as Ae,T as E,C as J,bO as De,bf as Se,bq as Le,J as Ne,I as Ue,aB as Ie,aC as j,M as h,p as Pe}from"./.pnpm-CyuAWpdG.js";import{_ as Be}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{u as $e,c as Oe,j as y,_ as Me}from"./index-Bkarz3gO.js";import{v as Ge,A as Te,B as Fe,C as Je}from"./tcm-BSADvQNg.js";import{u as je}from"./usePaging-CghUEVfD.js";import{M as qe}from"./index-DAIDDabA.js";import Ke from"./PrescriptionAiBatchGenerateDialog-BuV-lxd1.js";import ze from"./PrescriptionAiReportDialog-CbJLuZ8F.js";import"./medicine-DPIOyHj8.js";const He={class:"prescription-library"},Qe={class:"mt-4"},We={key:0},Xe={key:1,class:"text-gray-400"},Ye={class:"flex mt-4 justify-end"},Ze={class:"w-full"},el={class:"flex flex-col gap-1 leading-none"},ll=q({name:"prescriptionLibrary"}),tl=q({...ll,setup(al){const _=j({prescription_name:"",formula_type:"",is_public:""}),f=h(!1),p=h("add"),A=h(!1),D=h(),U=h(),I=h(),n=j({id:0,prescription_name:"",formula_type:"主方",herbs:[],is_public:0,disable_edit:0}),K={prescription_name:[{required:!0,message:"请输入处方名称",trigger:"blur"}]},S=$e(),z=Pe(()=>{const a=S.perms||[];return a.includes("*")||a.includes("tcm.prescriptionLibrary/missingAiReports")&&a.includes("tcm.prescriptionLibrary/generateAiReports")}),H=[0,3],{pager:C,getLists:x,resetParams:Q,resetPage:P}=je({fetchFun:Ge,params:_}),W=a=>{var e;return Number(a.creator_id)===Number((e=S.userInfo)==null?void 0:e.id)},X=()=>{const a=S.userInfo;if(!a)return!1;if(Number(a.root)===1)return!0;const e=Array.isArray(a.role_ids)?a.role_ids.map(v=>Number(v)):[];return H.some(v=>e.includes(v))},B=a=>X()||W(a),Y=B,Z=a=>{var e;(e=U.value)==null||e.open(a)},ee=()=>{var a;(a=I.value)==null||a.open()},le=()=>{n.herbs.push({name:"",dosage:0})},te=a=>{n.herbs.splice(a,1)},ae=()=>{n.id=0,n.prescription_name="",n.formula_type="主方",n.herbs=[],n.is_public=0,n.disable_edit=0},ie=()=>{ae(),p.value="add",f.value=!0},oe=a=>{p.value="view",n.id=a.id,n.prescription_name=a.prescription_name||"",n.formula_type=a.formula_type||"主方",n.herbs=a.herbs?JSON.parse(JSON.stringify(a.herbs)):[],n.is_public=a.is_public??0,n.disable_edit=a.disable_edit??0,f.value=!0},ne=a=>{p.value="edit",n.id=a.id,n.prescription_name=a.prescription_name||"",n.formula_type=a.formula_type||"主方",n.herbs=a.herbs?JSON.parse(JSON.stringify(a.herbs)):[],n.is_public=a.is_public??0,n.disable_edit=a.disable_edit??0,f.value=!0},se=async()=>{if(D.value){if(await D.value.validate(),!n.herbs||n.herbs.length===0){y.msgError("请至少添加一味药材");return}for(let a=0;a{await y.confirm("确定要删除该处方吗?"),await Je({id:a}),y.msgSuccess("删除成功"),x()};return fe(()=>{x()}),(a,e)=>{const v=ge,c=ve,g=he,$=Ve,u=Ce,O=ye,M=xe,de=Oe,d=Re,L=Ae,G=Ee,pe=Be,T=Le,ue=Se,me=Ne,F=Ue,ce=Ie,w=be("perms"),_e=we;return m(),N("div",He,[l(M,{class:"!border-none",shadow:"never"},{default:i(()=>[l(O,{class:"mb-[-16px]",model:o(_),inline:""},{default:i(()=>[l(c,{class:"w-[280px]",label:"处方名称"},{default:i(()=>[l(v,{modelValue:o(_).prescription_name,"onUpdate:modelValue":e[0]||(e[0]=t=>o(_).prescription_name=t),placeholder:"请输入处方名称",clearable:"",onKeyup:ke(o(P),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(c,{class:"w-[200px]",label:"处方类型"},{default:i(()=>[l($,{modelValue:o(_).formula_type,"onUpdate:modelValue":e[1]||(e[1]=t=>o(_).formula_type=t),placeholder:"全部",clearable:""},{default:i(()=>[l(g,{label:"全部",value:""}),l(g,{label:"主方",value:"主方"}),l(g,{label:"辅方",value:"辅方"})]),_:1},8,["modelValue"])]),_:1}),l(c,{class:"w-[200px]",label:"是否公开"},{default:i(()=>[l($,{modelValue:o(_).is_public,"onUpdate:modelValue":e[2]||(e[2]=t=>o(_).is_public=t),placeholder:"全部",clearable:""},{default:i(()=>[l(g,{label:"全部",value:""}),l(g,{label:"仅自己可见",value:0}),l(g,{label:"所有人可见",value:1})]),_:1},8,["modelValue"])]),_:1}),l(c,null,{default:i(()=>[l(u,{type:"primary",onClick:o(P)},{default:i(()=>[...e[10]||(e[10]=[s("查询",-1)])]),_:1},8,["onClick"]),l(u,{onClick:o(Q)},{default:i(()=>[...e[11]||(e[11]=[s("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),k((m(),b(M,{class:"mt-4 !border-none",shadow:"never"},{default:i(()=>[k((m(),b(u,{type:"primary",onClick:ie},{icon:i(()=>[l(de,{name:"el-icon-Plus"})]),default:i(()=>[e[12]||(e[12]=s(" 新增处方 ",-1))]),_:1})),[[w,["wcf.prescription/add"]]]),o(z)?(m(),b(u,{key:0,type:"primary",plain:"",onClick:ee},{default:i(()=>[...e[13]||(e[13]=[s(" 批量生成报告 ",-1)])]),_:1})):R("",!0),V("div",Qe,[l(G,{data:o(C).lists,size:"large"},{default:i(()=>[l(d,{label:"ID",prop:"id","min-width":"60"}),l(d,{label:"处方名称",prop:"prescription_name","min-width":"200","show-overflow-tooltip":""}),l(d,{label:"处方类型","min-width":"100"},{default:i(({row:t})=>[l(L,{type:t.formula_type==="辅方"?"warning":"primary",size:"small"},{default:i(()=>[s(E(t.formula_type||"主方"),1)]),_:2},1032,["type"])]),_:1}),l(d,{label:"药材数量","min-width":"100"},{default:i(({row:t})=>{var r;return[s(E(((r=t.herbs)==null?void 0:r.length)||0)+"味 ",1)]}),_:1}),l(d,{label:"药材明细","min-width":"300","show-overflow-tooltip":""},{default:i(({row:t})=>[t.herbs&&t.herbs.length>0?(m(),N("span",We,E(t.herbs.map(r=>`${r.name} ${r.dosage}g`).join("、")),1)):(m(),N("span",Xe,"暂无药材"))]),_:1}),l(d,{label:"是否公开","min-width":"120"},{default:i(({row:t})=>[l(L,{type:t.is_public?"success":"info"},{default:i(()=>[s(E(t.is_public?"所有人可见":"仅自己可见"),1)]),_:2},1032,["type"])]),_:1}),l(d,{label:"禁用修改","min-width":"100"},{default:i(({row:t})=>[l(L,{type:t.disable_edit?"danger":"info"},{default:i(()=>[s(E(t.disable_edit?"已禁用":"可修改"),1)]),_:2},1032,["type"])]),_:1}),l(d,{label:"创建人",prop:"creator_name","min-width":"100"}),l(d,{label:"创建时间",prop:"create_time","min-width":"160"}),l(d,{label:"操作",width:"240",fixed:"right"},{default:i(({row:t})=>[k((m(),b(u,{type:"primary",link:"",onClick:r=>oe(t)},{default:i(()=>[...e[14]||(e[14]=[s(" 查看 ",-1)])]),_:1},8,["onClick"])),[[w,["wcf.prescription/read"]]]),k((m(),b(u,{type:"primary",link:"",onClick:r=>Z(t)},{default:i(()=>[...e[15]||(e[15]=[s(" AI解释 ",-1)])]),_:1},8,["onClick"])),[[w,["tcm.prescriptionLibrary/aiReports","wcf.prescription/read"]]]),B(t)?k((m(),b(u,{key:0,type:"primary",link:"",onClick:r=>ne(t)},{default:i(()=>[...e[16]||(e[16]=[s(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[w,["wcf.prescription/edit"]]]):R("",!0),o(Y)(t)?k((m(),b(u,{key:1,type:"danger",link:"",onClick:r=>re(t.id)},{default:i(()=>[...e[17]||(e[17]=[s(" 删除 ",-1)])]),_:1},8,["onClick"])),[[w,["wcf.prescription/delete"]]]):R("",!0)]),_:1})]),_:1},8,["data"])]),V("div",Ye,[l(pe,{modelValue:o(C),"onUpdate:modelValue":e[3]||(e[3]=t=>J(C)?C.value=t:null),onChange:o(x)},null,8,["modelValue","onChange"])])]),_:1})),[[_e,o(C).loading]]),l(ce,{modelValue:o(f),"onUpdate:modelValue":e[9]||(e[9]=t=>J(f)?f.value=t:null),title:o(p)==="add"?"新增处方":o(p)==="edit"?"编辑处方":"查看处方",width:"800px","close-on-click-modal":!1},De({default:i(()=>[l(O,{ref_key:"formRef",ref:D,model:o(n),rules:K,"label-width":"120px",disabled:o(p)==="view"},{default:i(()=>[l(c,{label:"处方名称",prop:"prescription_name"},{default:i(()=>[l(v,{modelValue:o(n).prescription_name,"onUpdate:modelValue":e[4]||(e[4]=t=>o(n).prescription_name=t),placeholder:"请输入处方名称,例如:六味地黄丸、补中益气汤",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(c,{label:"处方类型",prop:"formula_type"},{default:i(()=>[l(ue,{modelValue:o(n).formula_type,"onUpdate:modelValue":e[5]||(e[5]=t=>o(n).formula_type=t)},{default:i(()=>[l(T,{value:"主方"},{default:i(()=>[...e[18]||(e[18]=[s("主方",-1)])]),_:1}),l(T,{value:"辅方"},{default:i(()=>[...e[19]||(e[19]=[s("辅方",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(c,{label:"药材配方",prop:"herbs",required:""},{default:i(()=>[V("div",Ze,[l(u,{type:"primary",size:"small",onClick:le,disabled:o(p)==="view"},{default:i(()=>[...e[20]||(e[20]=[s(" 添加药材 ",-1)])]),_:1},8,["disabled"]),l(G,{data:o(n).herbs,class:"mt-2",border:""},{default:i(()=>[l(d,{label:"序号",type:"index",width:"60"}),l(d,{label:"药材名称","min-width":"220"},{default:i(({row:t})=>[l(qe,{modelValue:t.name,"onUpdate:modelValue":r=>t.name=r,"medicine-id":t.medicine_id,"onUpdate:medicineId":r=>t.medicine_id=r,disabled:o(p)==="view"},null,8,["modelValue","onUpdate:modelValue","medicine-id","onUpdate:medicineId","disabled"])]),_:1}),l(d,{label:"剂量(克)","min-width":"150"},{default:i(({row:t})=>[l(me,{modelValue:t.dosage,"onUpdate:modelValue":r=>t.dosage=r,min:0,precision:1,step:.5,placeholder:"剂量",class:"w-full",disabled:o(p)==="view"},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:1}),o(p)!=="view"?(m(),b(d,{key:0,label:"操作",width:"80"},{default:i(({$index:t})=>[l(u,{type:"danger",link:"",onClick:r=>te(t)},{default:i(()=>[...e[21]||(e[21]=[s(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})):R("",!0)]),_:1},8,["data"])])]),_:1}),l(c,{label:"是否公开",prop:"is_public"},{default:i(()=>[l(F,{modelValue:o(n).is_public,"onUpdate:modelValue":e[6]||(e[6]=t=>o(n).is_public=t),"active-value":1,"inactive-value":0,"active-text":"所有人可见","inactive-text":"仅自己可见"},null,8,["modelValue"]),e[22]||(e[22]=V("div",{class:"text-xs text-gray-400 mt-1"}," 勾选后,所有医生都可以查看和使用此处方模板 ",-1))]),_:1}),l(c,{label:"禁用修改",prop:"disable_edit"},{default:i(()=>[V("div",el,[l(F,{modelValue:o(n).disable_edit,"onUpdate:modelValue":e[7]||(e[7]=t=>o(n).disable_edit=t),"active-value":1,"inactive-value":0,"active-text":"开启","inactive-text":"关闭"},null,8,["modelValue"]),e[23]||(e[23]=V("div",{class:"text-xs text-gray-400 leading-relaxed"}," 开启后,导入此模板到处方时将锁定整张处方的药材,不可增删改,只能再次导入覆盖 ",-1))])]),_:1})]),_:1},8,["model","disabled"])]),_:2},[o(p)!=="view"?{name:"footer",fn:i(()=>[l(u,{onClick:e[8]||(e[8]=t=>f.value=!1)},{default:i(()=>[...e[24]||(e[24]=[s("取消",-1)])]),_:1}),l(u,{type:"primary",onClick:se,loading:o(A)},{default:i(()=>[...e[25]||(e[25]=[s(" 确定 ",-1)])]),_:1},8,["loading"])]),key:"0"}:void 0]),1032,["modelValue","title"]),l(ze,{ref_key:"aiReportDialogRef",ref:U},null,512),l(Ke,{ref_key:"aiBatchGenerateDialogRef",ref:I,onChanged:o(x)},null,8,["onChanged"])])}}}),cl=Me(tl,[["__scopeId","data-v-abbf0b98"]]);export{cl as default}; diff --git a/server/public/admin/assets/list-BctcfoMB.js b/server/public/admin/assets/list-tumMZTt6.js similarity index 92% rename from server/public/admin/assets/list-BctcfoMB.js rename to server/public/admin/assets/list-tumMZTt6.js index a1f777e83..86800572b 100644 --- a/server/public/admin/assets/list-BctcfoMB.js +++ b/server/public/admin/assets/list-tumMZTt6.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-DFFSwWxS.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-QAkeqQ9Q.js","assets/index-Dxvz9lb1.js","assets/index-B3vHLAW8.css","assets/perm-DOfZAzJJ.js","assets/DailyMatrix-BSZy3g0c.js","assets/picker-BDO86vcM.js","assets/index-BnfLT5cB.js","assets/index-B3imPWFk.css","assets/index-yD39j6dM.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-ClBYIwNX.js","assets/index-D0f1Mn00.css","assets/index-BU3OYnKm.js","assets/file-CefRfHD9.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-CE1isNg2.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-GXQTu6xF.js","assets/FollowupAudioReview-92Fgd7wW.js","assets/FollowupAudioField-BG0mRnT5.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-Bdp996ss.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-DFudUjln.js","assets/RecordingPlaybackBlock-GbWd6PMw.js","assets/RecordingVideoPlayer-grUPRDCj.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CafeXQX5.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-0TFZiCkF.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-C2wB-h-D.js","assets/doctor-8vo_5fa4.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-DDh0aI3_.js","assets/patient-Bz8-LT2R.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-BP2alDvZ.js","assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-B4rggqa1.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-Cis-_1uh.js","assets/index-Cf6ygfGC.js","assets/medicine-EUKQYFsM.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-DT7CSmCp.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/index-b8RBNrGF.js","assets/appointment-type-DJT6wPaT.js","assets/@tencentcloud/chat-Dqh0gV5b.js","assets/@tencentcloud/chat-uikit-engine-BOxL0feI.js","assets/tim-upload-plugin-CK05mjrC.js","assets/tim-profanity-filter-plugin-CIiDZ6v0.js","assets/@tencentcloud/call-engine-js-DCEY106C.js","assets/rtc-detect-TVc6uI0Q.js","assets/index-ma9pGSsz.css"])))=>i.map(i=>d[i]); -import{o as ie,R as ne,ap as oe,aq as de,bp as re,q as m,r as k,v as a,D as i,s as e,Y as pe,C as z,u as s,X as ue,w as _e,cU as me,L as p,O as v,bD as ce,P as f,dh as fe,da as bt,db as kt,at as ge,aA as ve,bc as ye,K as be,$ as ke,cm as Dt,Z as De,_ as Ce,aw as Ct,cg as Vt,cz as Ve,bf as we,be as Ee,bL as Se,aB as Te,ac as P,bk as he,bl as Ie,T as u,bm as Pe,F as $e,bF as ze,bI as it,bn as Ae,bj as Re,cn as qe,ba as xe,cd as nt,al as ot,p as dt,aC as Le,M as g}from"./.pnpm-CyuAWpdG.js";import{_ as Ne}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as Ue}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{a as wt,c as rt}from"./appointment-type-DJT6wPaT.js";import{u as Me}from"./usePaging-CghUEVfD.js";import{a as Be,m as Oe,l as Et}from"./doctor-8vo_5fa4.js";import{d as Fe}from"./department-DToZNvdH.js";import{Z as We,X as je,aa as Qe}from"./tcm-QAkeqQ9Q.js";import{u as Ye,j as y,_ as He}from"./index-Dxvz9lb1.js";import{a as Ke}from"./patient-Bz8-LT2R.js";import{h as Ge}from"./perm-DOfZAzJJ.js";import{i as Xe,f as Ze}from"./diabetes-discovery-display-B_wmGXQJ.js";import{g as Je}from"./weapp-COUVUBPI.js";const ts={class:"appointment-list"},es={class:"list-toolbar"},ss={class:"tab-label tab-priority"},as={class:"tab-label"},ls={class:"tab-label"},is={class:"tab-label"},ns={class:"tab-label"},os={class:"toolbar-actions"},ds={class:"filter-bar"},rs={class:"filter-group"},ps={class:"filter-group"},us={class:"filter-group"},_s={class:"table-wrap"},ms={class:"patient-cell"},cs={class:"patient-info"},fs={class:"patient-name"},gs={class:"patient-phone"},vs={class:"patient-extra"},ys={class:"datetime-cell"},bs={class:"date-text"},ks={class:"time-text"},Ds={class:"prescription-tags"},Cs={class:"action-btns"},Vs={class:"flex justify-end py-4 px-4"},ws={key:0,class:"detail-content"},Es={class:"detail-section"},Ss={class:"detail-section-title"},Ts={class:"detail-grid"},hs={class:"detail-item"},Is={class:"detail-value"},Ps={class:"detail-item"},$s={class:"detail-item"},zs={class:"detail-value"},As={class:"detail-item"},Rs={class:"detail-value"},qs={class:"detail-item"},xs={class:"detail-value"},Ls={class:"detail-item"},Ns={class:"detail-value"},Us={class:"detail-section"},Ms={class:"detail-section-title"},Bs={class:"detail-grid"},Os={class:"detail-item"},Fs={class:"detail-value"},Ws={class:"detail-item"},js={class:"detail-value"},Qs={class:"detail-item"},Ys={class:"detail-value"},Hs={class:"detail-item"},Ks={class:"detail-value"},Gs={class:"detail-item"},Xs={class:"detail-value"},Zs={class:"detail-item"},Js={class:"detail-value"},ta={class:"detail-item"},ea={class:"detail-value"},sa={class:"detail-item"},aa={class:"detail-value"},la={class:"detail-item"},ia={class:"detail-value"},na={class:"detail-item"},oa={class:"detail-value"},da={class:"detail-item"},ra={class:"detail-value"},pa={class:"detail-item"},ua={class:"detail-value"},_a={class:"detail-item"},ma={class:"detail-value"},ca={class:"detail-item"},fa={class:"detail-value"},ga={class:"detail-item"},va={class:"detail-value"},ya={class:"detail-item"},ba={class:"detail-value"},ka={key:0,class:"detail-section"},Da={class:"detail-section-title"},Ca={class:"detail-grid"},Va={key:0,class:"detail-item"},wa={class:"detail-value"},Ea={key:1,class:"detail-item"},Sa={class:"detail-value"},Ta={key:2,class:"detail-item detail-item-full"},ha={class:"detail-value"},Ia={key:3,class:"detail-item detail-item-full"},Pa={class:"detail-value"},$a={key:1,class:"detail-section"},za={class:"detail-section-title"},Aa={class:"detail-grid"},Ra={key:0,class:"detail-item"},qa={class:"detail-value"},xa={key:1,class:"detail-item"},La={class:"detail-value"},Na={key:2,class:"detail-item detail-item-full"},Ua={class:"detail-value"},Ma={key:3,class:"detail-item detail-item-full"},Ba={class:"detail-value"},Oa={class:"detail-section"},Fa={class:"detail-remark"},Wa={class:"qrcode-content"},ja={key:0,class:"qrcode-loading"},Qa={key:1,class:"qrcode-success"},Ya={class:"qrcode-image-wrap"},Ha=["src"],Ka={class:"qrcode-info"},Ga={class:"qrcode-patient"},Xa={key:2,class:"qrcode-error"},Za={class:"complete-dialog"},Ja=2e4,tl=ie({__name:"list",setup(el){const St=nt(()=>ot(()=>import("./edit-DFFSwWxS.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),Tt=nt(()=>ot(()=>import("./index-Cis-_1uh.js"),__vite__mapDeps([56,1,2,57,58,4,5,59,60,3,61,62,63]))),ht=nt(()=>ot(()=>import("./index-b8RBNrGF.js"),__vite__mapDeps([66,1,2,16,4,5,49,3,67,41,40,68,69,70,71,72,73,74]))),pt=Ye(),It=dt(()=>pt.userInfo),Pt=l=>!l||l.length<11?l:l.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),$t=dt(()=>{const l=It.value.role_id;return Array.isArray(l)?!l.includes(1)&&!l.includes(2):l!==1&&l!==2}),r=Le({patient_name:"",doctor_name:"",status:"",start_date:"",end_date:"",date_preset:"today",diagnosis_confirmed:"",assistant_dept_id:"",include_status_counts:0}),G=g([]),zt={value:"id",label:"name",children:"children"},O=g("1"),A=g(!1),S=g({1:0,2:0,3:0,4:0}),{pager:V,getLists:ut,resetPage:At}=Me({fetchFun:Be,params:r,firstLoading:!0});ne(()=>[r.start_date,r.end_date],([l,t])=>{if(!r.date_preset)return;const o=new Date,c=C=>String(C).padStart(2,"0"),_=C=>`${C.getFullYear()}-${c(C.getMonth()+1)}-${c(C.getDate())}`,T=_(o),h=new Date(o);h.setDate(h.getDate()-1);const b=_(h),I=new Date(o);I.setDate(I.getDate()-2);const K=_(I),L=new Date(o);L.setDate(L.getDate()+1);const E=_(L),N=new Date(o);N.setDate(N.getDate()+2);const lt=_(N),U=r.date_preset,M=U==="yesterday"?b:U==="day_before"?K:U==="today"?T:U==="tomorrow"?E:lt;(l||"").split(" ")[0]!==M&&(r.date_preset="")});const Rt=l=>{l==="all"?r.status="":r.status=Number(l),At()};let F=null;const D=async l=>{const t=(l==null?void 0:l.silent)===!0;r.include_status_counts=1;try{await ut({silent:t});const o=V.extend,c=o==null?void 0:o.status_count;if(c)for(const _ of[1,2,3,4]){const T=c[_]??c[String(_)];typeof T=="number"&&(S.value[_]=T)}}catch(o){if(!t)throw o}finally{r.include_status_counts=0}},qt=l=>{l==="customDate"?A.value=!0:l==="reset"&&Mt()},xt=()=>{r.date_preset="",A.value=!1,V.page=1,D()},Lt=()=>{V.page=1,D()},Nt=()=>{V.page=1,D()},Ut=l=>{const t=String(l||"");if(!t){r.date_preset="",r.start_date="",r.end_date="",D();return}const o=new Date,c=h=>String(h).padStart(2,"0");let _;t==="yesterday"?(_=new Date(o),_.setDate(_.getDate()-1)):t==="day_before"?(_=new Date(o),_.setDate(_.getDate()-2)):t==="today"?_=o:t==="tomorrow"?(_=new Date(o),_.setDate(_.getDate()+1)):(_=new Date(o),_.setDate(_.getDate()+2));const T=`${_.getFullYear()}-${c(_.getMonth()+1)}-${c(_.getDate())}`;r.date_preset=t,r.start_date=T,r.end_date=T,V.page=1,D()},_t=()=>{V.page=1,D()},Mt=()=>{O.value="1",r.patient_name="",r.doctor_name="",r.date_preset="today",r.diagnosis_confirmed="",r.assistant_dept_id="";const l=new Date,t=o=>String(o).padStart(2,"0");r.start_date=`${l.getFullYear()}-${t(l.getMonth()+1)}-${t(l.getDate())}`,r.end_date=r.start_date,r.status=1,V.page=1,D()},X=g(!1),d=g(null),Bt=g([]),Ot=g([]),Ft=g([]),Wt=g([]),W=(l,t)=>{if(!t)return"-";const o=l.find(c=>c.value===t);return o?o.name:t},jt=l=>(Array.isArray(l)?l:typeof l=="string"?l.split(/[,,、]/):[]).map(o=>W(Wt.value,o.trim())).filter(Boolean).join("、")||"-",Z=g(),J=g(),mt=g(),Qt=["doctor.appointment/addDoctorNote"],R=g(!1),j=g(!1),q=g(""),tt=g(null),et=dt(()=>Ge(Qt)),x=g(!1),Q=g(!1),Y=g(""),H=g(null),Yt=(l,t)=>{switch(l){case"edit":ft(t);break;case"viewCase":Jt(t);break;case"complete":ct(t);break;case"chat":gt(t);break;case"qrcode":st(t);break;case"prescription":vt(t);break;case"cancel":Ht(t);break}},Ht=async l=>{try{await y.confirm("确定要取消该挂号吗?"),await Oe({id:l.id}),y.msgSuccess("取消成功"),D()}catch{}},ct=async l=>{if(tt.value=l,q.value="",et.value){R.value=!0;return}try{await y.confirm("是否添加医生备注?"),await Et({id:l.id}),y.msgSuccess("操作成功"),D()}catch{}},Kt=async()=>{const l=tt.value;if(!(!(l!=null&&l.id)||j.value)){j.value=!0;try{const t=q.value.trim();await Et({id:l.id});let o="";if(et.value&&t){const c=l.patient_id||l.diagnosis_id;if(c)try{await Ke({diagnosis_id:Number(c),content:t})}catch{o="问诊已完成,但备注未保存"}else o="问诊已完成,但该预约没有关联诊单,备注未保存"}o?y.msgWarning(o):y.msgSuccess("操作成功"),R.value=!1,q.value="",tt.value=null,D()}catch(t){y.msgError((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"操作失败")}finally{j.value=!1}}},ft=l=>{var t;if(!l.patient_id){y.msgWarning("该预约没有关联诊单信息");return}(t=Z.value)==null||t.open("edit",l.patient_id)},Gt=l=>{ft(l)},gt=async l=>{var c;const t=Number(l.source_patient_id||0),o=Number(l.diagnosis_id||0);if(!t){y.msgWarning("患者信息不完整");return}if(!o){y.msgWarning("预约信息不完整,无法发起聊天");return}try{const _=await We({patient_id:t,diagnosis_id:o,appointment_id:Number(l.id)});console.log("获取聊天签名成功:",_),(c=mt.value)==null||c.open({patientId:t,patientName:l.patient_name,diagnosisId:o,appointmentId:Number(l.id),appointmentType:l.appointment_type,signatureData:_})}catch(_){console.error("获取聊天签名失败:",_),y.msgError(_.message||"获取聊天签名失败")}},st=async l=>{if(!rt(l.appointment_type)){y.msgWarning("仅视频问诊可生成视频二维码");return}if(!l.patient_id){y.msgWarning("患者信息不完整");return}H.value=l,x.value=!0,Q.value=!0,Y.value="";try{const t=await Je();if(!(t!=null&&t.app_id)){y.msgError("小程序未配置,请先配置小程序信息"),x.value=!1;return}const o=pt.userInfo,c=await je({doctor_id:l.doctor_id||"",patient_id:l.patient_id,share_user_id:(o==null?void 0:o.id)||"",mini_program_path:"pages/login/login"});c!=null&&c.qrcode_url?Y.value=c.qrcode_url:y.msgError("二维码生成失败")}catch(t){console.error("生成小程序二维码失败:",t),y.msgError((t==null?void 0:t.msg)||"生成二维码失败,请重试")}finally{Q.value=!1}},Xt=()=>{var l,t;D(),(t=(l=Z.value)==null?void 0:l.refreshCaseList)==null||t.call(l)};function Zt(l){return(l==null?void 0:l.prescription_audit_status)===1&&Number(l==null?void 0:l.prescription_void_status)!==1?"查看":"开方"}const vt=l=>{var t;if(!l.diagnosis_id&&!l.patient_id){y.msgWarning("该预约缺少诊单信息,请先编辑患者");return}(t=J.value)==null||t.open(l)},Jt=async l=>{var t;if(!l.id){y.msgWarning("预约信息不完整");return}try{const o=await Qe({appointment_id:l.id});o!=null&&o.id?(t=J.value)==null||t.openById(o.id):y.msgWarning("该预约暂无病历记录,请先开方")}catch(o){y.msgError((o==null?void 0:o.msg)||"获取病历失败")}},te=()=>{H.value&&st(H.value)},at=new Date,yt=l=>String(l).padStart(2,"0");return r.start_date=`${at.getFullYear()}-${yt(at.getMonth()+1)}-${yt(at.getDate())}`,r.end_date=r.start_date,r.status=1,oe(async()=>{try{const l=await Fe();G.value=Array.isArray(l)?l:[]}catch{G.value=[]}D(),F=setInterval(()=>{D({silent:!0})},Ja)}),de(()=>{F!==null&&(clearInterval(F),F=null)}),(l,t)=>{const o=_e,c=ce,_=ue,T=pe,h=ve,b=be,I=Ce,K=De,L=ke,E=Ee,N=we,lt=Se,U=Ue,M=Te,w=Ie,C=Pe,ee=he,se=Ne,ae=Re,$=re("perms"),le=Ae;return m(),k("div",ts,[a(ae,{class:"list-card !border-none",shadow:"never"},{default:i(()=>[e("div",es,[a(T,{modelValue:s(O),"onUpdate:modelValue":t[0]||(t[0]=n=>z(O)?O.value=n:null),onTabChange:Rt,class:"list-tabs"},{default:i(()=>[a(_,{name:"1"},{label:i(()=>[e("span",ss,[a(o,null,{default:i(()=>[a(s(me))]),_:1}),t[20]||(t[20]=p("待接诊",-1)),s(S)[1]?(m(),v(c,{key:0,value:s(S)[1],class:"tab-badge tab-badge-success"},null,8,["value"])):f("",!0)])]),_:1}),a(_,{name:"all"},{label:i(()=>[e("span",as,[a(o,null,{default:i(()=>[a(s(fe))]),_:1}),t[21]||(t[21]=p("全部",-1))])]),_:1}),a(_,{name:"4"},{label:i(()=>[e("span",ls,[a(o,null,{default:i(()=>[a(s(bt))]),_:1}),t[22]||(t[22]=p("已过号",-1)),s(S)[4]?(m(),v(c,{key:0,value:s(S)[4],class:"tab-badge tab-badge-danger"},null,8,["value"])):f("",!0)])]),_:1}),a(_,{name:"2"},{label:i(()=>[e("span",is,[a(o,null,{default:i(()=>[a(s(kt))]),_:1}),t[23]||(t[23]=p("已取消",-1)),s(S)[2]?(m(),v(c,{key:0,value:s(S)[2],class:"tab-badge tab-badge-info"},null,8,["value"])):f("",!0)])]),_:1}),a(_,{name:"3"},{label:i(()=>[e("span",ns,[a(o,null,{default:i(()=>[a(s(ge))]),_:1}),t[24]||(t[24]=p("已完成",-1)),s(S)[3]?(m(),v(c,{key:0,value:s(S)[3],class:"tab-badge tab-badge-primary"},null,8,["value"])):f("",!0)])]),_:1})]),_:1},8,["modelValue"]),e("div",os,[a(h,{modelValue:s(r).patient_name,"onUpdate:modelValue":t[1]||(t[1]=n=>s(r).patient_name=n),placeholder:"患者姓名",clearable:"",size:"small",class:"action-input",onKeyup:ye(_t,["enter"])},null,8,["modelValue"]),a(b,{type:"primary",size:"small",onClick:_t},{default:i(()=>[...t[25]||(t[25]=[p("查询",-1)])]),_:1}),a(L,{trigger:"click",onCommand:qt},{dropdown:i(()=>[a(K,null,{default:i(()=>[s($t)?(m(),v(I,{key:0,class:"dropdown-item-with-input",onClick:t[4]||(t[4]=Ct(()=>{},["stop"]))},{default:i(()=>[t[27]||(t[27]=e("span",{class:"dropdown-label"},"医生",-1)),a(h,{modelValue:s(r).doctor_name,"onUpdate:modelValue":t[2]||(t[2]=n=>s(r).doctor_name=n),placeholder:"医生",size:"small",class:"dropdown-input",onClick:t[3]||(t[3]=Ct(()=>{},["stop"]))},null,8,["modelValue"])]),_:1})):f("",!0),a(I,{command:"customDate",divided:""},{default:i(()=>[a(o,null,{default:i(()=>[a(s(Vt))]),_:1}),t[28]||(t[28]=p(" 自定义日期 ",-1))]),_:1}),a(I,{command:"reset"},{default:i(()=>[a(o,null,{default:i(()=>[a(s(Ve))]),_:1}),t[29]||(t[29]=p(" 重置 ",-1))]),_:1})]),_:1})]),default:i(()=>[a(b,{size:"small"},{default:i(()=>[t[26]||(t[26]=p("更多",-1)),a(o,{class:"el-icon--right"},{default:i(()=>[a(s(Dt))]),_:1})]),_:1})]),_:1})])]),e("div",ds,[e("div",rs,[t[36]||(t[36]=e("span",{class:"filter-label"},"日期",-1)),a(N,{modelValue:s(r).date_preset,"onUpdate:modelValue":t[5]||(t[5]=n=>s(r).date_preset=n),size:"small",onChange:Ut,class:"filter-radio"},{default:i(()=>[a(E,{value:"yesterday"},{default:i(()=>[...t[30]||(t[30]=[p("昨天挂号",-1)])]),_:1}),a(E,{value:"day_before"},{default:i(()=>[...t[31]||(t[31]=[p("前天挂号",-1)])]),_:1}),a(E,{value:"today"},{default:i(()=>[...t[32]||(t[32]=[p("当天挂号",-1)])]),_:1}),a(E,{value:"tomorrow"},{default:i(()=>[...t[33]||(t[33]=[p("明天挂号",-1)])]),_:1}),a(E,{value:"day_after"},{default:i(()=>[...t[34]||(t[34]=[p("后天挂号",-1)])]),_:1}),a(E,{value:""},{default:i(()=>[...t[35]||(t[35]=[p("不限",-1)])]),_:1})]),_:1},8,["modelValue"])]),e("div",ps,[t[40]||(t[40]=e("span",{class:"filter-label"},"确认诊单",-1)),a(N,{modelValue:s(r).diagnosis_confirmed,"onUpdate:modelValue":t[6]||(t[6]=n=>s(r).diagnosis_confirmed=n),size:"small",onChange:Lt,class:"filter-radio"},{default:i(()=>[a(E,{value:""},{default:i(()=>[...t[37]||(t[37]=[p("全部",-1)])]),_:1}),a(E,{value:"1"},{default:i(()=>[...t[38]||(t[38]=[p("已确认",-1)])]),_:1}),a(E,{value:"0"},{default:i(()=>[...t[39]||(t[39]=[p("未确认",-1)])]),_:1})]),_:1},8,["modelValue"])]),e("div",us,[t[41]||(t[41]=e("span",{class:"filter-label"},"部门",-1)),a(lt,{modelValue:s(r).assistant_dept_id,"onUpdate:modelValue":t[7]||(t[7]=n=>s(r).assistant_dept_id=n),data:s(G),class:"filter-dept-select",clearable:"",filterable:"","check-strictly":"","default-expand-all":!0,"node-key":"id",size:"small",props:zt,placeholder:"选父级含子级",onChange:Nt},null,8,["modelValue","data"])])]),a(M,{modelValue:s(A),"onUpdate:modelValue":t[11]||(t[11]=n=>z(A)?A.value=n:null),title:"自定义日期",width:"400px","append-to-body":"","close-on-click-modal":!0},{footer:i(()=>[a(b,{onClick:t[10]||(t[10]=n=>A.value=!1)},{default:i(()=>[...t[42]||(t[42]=[p("取消",-1)])]),_:1}),a(b,{type:"primary",onClick:xt},{default:i(()=>[...t[43]||(t[43]=[p("确定",-1)])]),_:1})]),default:i(()=>[a(U,{startTime:s(r).start_date,"onUpdate:startTime":t[8]||(t[8]=n=>s(r).start_date=n),endTime:s(r).end_date,"onUpdate:endTime":t[9]||(t[9]=n=>s(r).end_date=n)},null,8,["startTime","endTime"])]),_:1},8,["modelValue"]),e("div",_s,[P((m(),v(ee,{data:s(V).lists,size:"default",class:"appointment-table"},{default:i(()=>[a(w,{label:"ID",prop:"id",width:"72",align:"center"}),a(w,{label:"患者信息","min-width":"140"},{default:i(({row:n})=>[e("div",ms,[e("div",cs,[e("div",fs,u(n.patient_name),1),e("div",gs,u(Pt(n.patient_phone)),1),e("div",vs,u([n.gender===1?"男":n.gender===0?"女":"",n.age!=null?n.age+"岁":"",n.height!=null?n.height+"cm":"",n.weight!=null?n.weight+"kg":""].filter(Boolean).join(" ")||"-"),1)])])]),_:1}),a(w,{label:"医生",prop:"doctor_name",width:"90","show-overflow-tooltip":""}),a(w,{label:"预约时间","min-width":"120"},{default:i(({row:n})=>[e("div",ys,[e("div",bs,u(n.appointment_date),1),e("div",ks,u(n.appointment_time),1)])]),_:1}),a(w,{label:"助理",prop:"assistant_name",width:"100","show-overflow-tooltip":""},{default:i(({row:n})=>[p(u(n.assistant_name||"—"),1)]),_:1}),a(w,{label:"面诊类型",width:"110"},{default:i(({row:n})=>[p(u(s(wt)(n.appointment_type)),1)]),_:1}),a(w,{label:"确认诊单",width:"90",align:"center"},{default:i(({row:n})=>[n.diagnosis_confirmed?(m(),v(C,{key:0,type:"success",size:"small",effect:"plain"},{default:i(()=>[...t[44]||(t[44]=[p("已确认",-1)])]),_:1})):(m(),v(C,{key:1,type:"warning",size:"small",effect:"plain"},{default:i(()=>[...t[45]||(t[45]=[p("未确认",-1)])]),_:1}))]),_:1}),a(w,{label:"开方",width:"120",align:"center"},{default:i(({row:n})=>[e("div",Ds,[n.has_prescription?(m(),v(C,{key:0,type:"success",size:"small",effect:"plain"},{default:i(()=>[...t[46]||(t[46]=[p("已开方",-1)])]),_:1})):(m(),v(C,{key:1,type:"info",size:"small",effect:"plain"},{default:i(()=>[...t[47]||(t[47]=[p("未开方",-1)])]),_:1})),n.has_prescription&&n.prescription_is_system_auto===1?(m(),v(C,{key:2,type:"warning",size:"small",effect:"plain"},{default:i(()=>[...t[48]||(t[48]=[p(" 系统代开 ",-1)])]),_:1})):f("",!0)])]),_:1}),a(w,{label:"状态",width:"90",align:"center"},{default:i(({row:n})=>[a(C,{type:n.status===1?"success":n.status===2?"info":n.status===3?"primary":"danger",size:"small",effect:"light",round:""},{default:i(()=>[p(u(n.status_desc),1)]),_:2},1032,["type"])]),_:1}),a(w,{label:"备注",prop:"remark","min-width":"120","show-overflow-tooltip":""}),a(w,{label:"操作",width:"380",fixed:"right",align:"left"},{default:i(({row:n})=>[e("div",Cs,[P((m(),v(b,{type:"primary",link:"",size:"small",onClick:B=>Gt(n)},{default:i(()=>[...t[49]||(t[49]=[p(" 编辑患者 ",-1)])]),_:1},8,["onClick"])),[[$,["tcm.diagnosis/edit"]]]),n.status!==3?(m(),k($e,{key:0},[s(rt)(n.appointment_type)?P((m(),v(b,{key:0,type:"warning",link:"",size:"small",onClick:B=>st(n),class:"action-qrcode"},{default:i(()=>[a(o,null,{default:i(()=>[a(s(ze))]),_:1}),t[50]||(t[50]=p(" 视频二维码 ",-1))]),_:1},8,["onClick"])),[[$,["tcm.diagnosis/videoQr"]]]):f("",!0),P((m(),v(b,{type:"primary",link:"",size:"small",onClick:B=>gt(n)},{default:i(()=>[p(u(s(rt)(n.appointment_type)?"通话":"图文沟通"),1)]),_:2},1032,["onClick"])),[[$,["doctor.appointment/prescription"]]]),P((m(),v(b,{type:"success",link:"",size:"small",onClick:B=>ct(n)},{default:i(()=>[...t[51]||(t[51]=[p(" 完成 ",-1)])]),_:1},8,["onClick"])),[[$,["doctor.appointment/complete"]]])],64)):f("",!0),P((m(),v(b,{type:"primary",link:"",size:"small",onClick:B=>vt(n)},{default:i(()=>[p(u(Zt(n)),1)]),_:2},1032,["onClick"])),[[$,["tcm.diagnosis/kaifang"]]]),a(L,{trigger:"click",onCommand:B=>Yt(B,n),placement:"bottom-end"},{dropdown:i(()=>[a(K,null,{default:i(()=>[P((m(),v(I,{command:"viewCase"},{default:i(()=>[a(o,null,{default:i(()=>[a(s(it))]),_:1}),t[53]||(t[53]=p(" 病历 ",-1))]),_:1})),[[$,["tcm.diagnosis/kaifang"]]]),n.status===1?P((m(),v(I,{key:0,command:"cancel",divided:""},{default:i(()=>[a(o,null,{default:i(()=>[a(s(kt))]),_:1}),t[54]||(t[54]=e("span",{class:"text-danger"},"取消挂号",-1))]),_:1})),[[$,["doctor.appointment/cancel"]]]):f("",!0)]),_:2},1024)]),default:i(()=>[a(b,{type:"info",link:"",size:"small"},{default:i(()=>[t[52]||(t[52]=p(" 更多 ",-1)),a(o,{class:"el-icon--right"},{default:i(()=>[a(s(Dt))]),_:1})]),_:1})]),_:2},1032,["onCommand"])])]),_:1})]),_:1},8,["data"])),[[le,s(V).loading]]),e("div",Vs,[a(se,{modelValue:s(V),"onUpdate:modelValue":t[12]||(t[12]=n=>z(V)?V.value=n:null),onChange:s(ut)},null,8,["modelValue","onChange"])])])]),_:1}),a(M,{modelValue:s(X),"onUpdate:modelValue":t[13]||(t[13]=n=>z(X)?X.value=n:null),title:"挂号详情",width:"720px",class:"detail-dialog","destroy-on-close":""},{default:i(()=>[s(d)?(m(),k("div",ws,[e("div",Es,[e("div",Ss,[a(o,null,{default:i(()=>[a(s(Vt))]),_:1}),t[55]||(t[55]=p(" 预约信息 ",-1))]),e("div",Ts,[e("div",hs,[t[56]||(t[56]=e("span",{class:"detail-label"},"挂号ID",-1)),e("span",Is,u(s(d).id),1)]),e("div",Ps,[t[57]||(t[57]=e("span",{class:"detail-label"},"状态",-1)),a(C,{type:s(d).status===1?"success":s(d).status===2?"info":s(d).status===3?"primary":"danger",size:"small",effect:"light"},{default:i(()=>[p(u(s(d).status_desc),1)]),_:1},8,["type"])]),e("div",$s,[t[58]||(t[58]=e("span",{class:"detail-label"},"医生",-1)),e("span",zs,u(s(d).doctor_name),1)]),e("div",As,[t[59]||(t[59]=e("span",{class:"detail-label"},"预约时间",-1)),e("span",Rs,u(s(d).appointment_date)+" "+u(s(d).appointment_time),1)]),e("div",qs,[t[60]||(t[60]=e("span",{class:"detail-label"},"时段",-1)),e("span",xs,u(s(d).period==="morning"?"上午":"下午"),1)]),e("div",Ls,[t[61]||(t[61]=e("span",{class:"detail-label"},"面诊类型",-1)),e("span",Ns,u(s(wt)(s(d).appointment_type)),1)])])]),e("div",Us,[e("div",Ms,[a(o,null,{default:i(()=>[a(s(qe))]),_:1}),t[62]||(t[62]=p(" 患者信息 ",-1))]),e("div",Bs,[e("div",Os,[t[63]||(t[63]=e("span",{class:"detail-label"},"姓名",-1)),e("span",Fs,u(s(d).patient_name||"-"),1)]),e("div",Ws,[t[64]||(t[64]=e("span",{class:"detail-label"},"手机号",-1)),e("span",js,u(s(d).phone||s(d).patient_phone||"-"),1)]),e("div",Qs,[t[65]||(t[65]=e("span",{class:"detail-label"},"身份证号",-1)),e("span",Ys,u(s(d).id_card||"-"),1)]),e("div",Hs,[t[66]||(t[66]=e("span",{class:"detail-label"},"性别",-1)),e("span",Ks,u(s(d).gender===1?"男":s(d).gender===0?"女":"-"),1)]),e("div",Gs,[t[67]||(t[67]=e("span",{class:"detail-label"},"年龄",-1)),e("span",Xs,u(s(d).age!=null?s(d).age+"岁":"-"),1)]),e("div",Zs,[t[68]||(t[68]=e("span",{class:"detail-label"},"诊断日期",-1)),e("span",Js,u(s(d).diagnosis_date||"-"),1)]),e("div",ta,[t[69]||(t[69]=e("span",{class:"detail-label"},"婚姻状态",-1)),e("span",ea,u(s(d).marital_status===0?"未婚":s(d).marital_status===1?"已婚":s(d).marital_status===2?"离异":"-"),1)]),e("div",sa,[t[70]||(t[70]=e("span",{class:"detail-label"},"身高(cm)",-1)),e("span",aa,u(s(d).height??"-"),1)]),e("div",la,[t[71]||(t[71]=e("span",{class:"detail-label"},"体重(kg)",-1)),e("span",ia,u(s(d).weight??"-"),1)]),e("div",na,[t[72]||(t[72]=e("span",{class:"detail-label"},"地区",-1)),e("span",oa,u(s(d).region||"-"),1)]),e("div",da,[t[73]||(t[73]=e("span",{class:"detail-label"},"收缩压(mmHg)",-1)),e("span",ra,u(s(d).systolic_pressure??"-"),1)]),e("div",pa,[t[74]||(t[74]=e("span",{class:"detail-label"},"舒张压(mmHg)",-1)),e("span",ua,u(s(d).diastolic_pressure??"-"),1)]),e("div",_a,[t[75]||(t[75]=e("span",{class:"detail-label"},"空腹血糖(mmol/L)",-1)),e("span",ma,u(s(d).fasting_blood_sugar??"-"),1)]),e("div",ca,[t[76]||(t[76]=e("span",{class:"detail-label"},"诊断类型",-1)),e("span",fa,u(W(s(Bt),s(d).diagnosis_type)||"-"),1)]),e("div",ga,[t[77]||(t[77]=e("span",{class:"detail-label"},"证型",-1)),e("span",va,u(W(s(Ot),s(d).syndrome_type)||"-"),1)]),e("div",ya,[t[78]||(t[78]=e("span",{class:"detail-label"},"糖尿病期数",-1)),e("span",ba,u(W(s(Ft),s(d).diabetes_type)||"-"),1)])])]),s(d).symptoms||s(d).local_hospital_name||s(d).past_history&&s(d).past_history.length?(m(),k("div",ka,[e("div",Da,[a(o,null,{default:i(()=>[a(s(it))]),_:1}),t[79]||(t[79]=p(" 病史信息 ",-1))]),e("div",Ca,[s(Xe)(s(d).diabetes_discovery_year)?(m(),k("div",Va,[t[80]||(t[80]=e("span",{class:"detail-label"},"发现糖尿病病史",-1)),e("span",wa,u(s(Ze)(s(d).diabetes_discovery_year)),1)])):f("",!0),s(d).local_hospital_name?(m(),k("div",Ea,[t[81]||(t[81]=e("span",{class:"detail-label"},"当地就诊医院",-1)),e("span",Sa,u(s(d).local_hospital_name),1)])):f("",!0),s(d).symptoms?(m(),k("div",Ta,[t[82]||(t[82]=e("span",{class:"detail-label"},"症状补充",-1)),e("span",ha,u(s(d).symptoms),1)])):f("",!0),s(d).past_history&&s(d).past_history.length?(m(),k("div",Ia,[t[83]||(t[83]=e("span",{class:"detail-label"},"既往史",-1)),e("span",Pa,u(jt(s(d).past_history)),1)])):f("",!0)])])):f("",!0),s(d).tongue_coating||s(d).pulse||s(d).treatment_principle||s(d).prescription?(m(),k("div",$a,[e("div",za,[a(o,null,{default:i(()=>[a(s(it))]),_:1}),t[84]||(t[84]=p(" 诊断信息 ",-1))]),e("div",Aa,[s(d).tongue_coating?(m(),k("div",Ra,[t[85]||(t[85]=e("span",{class:"detail-label"},"舌苔",-1)),e("span",qa,u(s(d).tongue_coating),1)])):f("",!0),s(d).pulse?(m(),k("div",xa,[t[86]||(t[86]=e("span",{class:"detail-label"},"脉象",-1)),e("span",La,u(s(d).pulse),1)])):f("",!0),s(d).treatment_principle?(m(),k("div",Na,[t[87]||(t[87]=e("span",{class:"detail-label"},"治则",-1)),e("span",Ua,u(s(d).treatment_principle),1)])):f("",!0),s(d).prescription?(m(),k("div",Ma,[t[88]||(t[88]=e("span",{class:"detail-label"},"处方",-1)),e("span",Ba,u(s(d).prescription),1)])):f("",!0)])])):f("",!0),e("div",Oa,[t[89]||(t[89]=e("div",{class:"detail-section-title"},"备注",-1)),e("p",Fa,u(s(d).remark||"无"),1)])])):f("",!0)]),_:1},8,["modelValue"]),a(s(St),{ref_key:"editRef",ref:Z,onSuccess:t[14]||(t[14]=()=>D({silent:!0}))},null,512),a(s(Tt),{ref_key:"prescriptionRef",ref:J,onSuccess:Xt},null,512),a(s(ht),{ref_key:"chatDialogRef",ref:mt},null,512),a(M,{modelValue:s(x),"onUpdate:modelValue":t[16]||(t[16]=n=>z(x)?x.value=n:null),title:"小程序二维码",width:"380px","close-on-click-modal":!1,class:"qrcode-dialog"},{footer:i(()=>[a(b,{onClick:t[15]||(t[15]=n=>x.value=!1)},{default:i(()=>[...t[94]||(t[94]=[p("关闭",-1)])]),_:1}),s(Q)?f("",!0):(m(),v(b,{key:0,type:"primary",onClick:te},{default:i(()=>[...t[95]||(t[95]=[p(" 重新生成 ",-1)])]),_:1}))]),default:i(()=>{var n;return[e("div",Wa,[s(Q)?(m(),k("div",ja,[a(o,{class:"is-loading",size:48},{default:i(()=>[a(s(xe))]),_:1}),t[90]||(t[90]=e("div",{class:"qrcode-loading-text"},"生成中...",-1))])):s(Y)?(m(),k("div",Qa,[e("div",Ya,[e("img",{src:s(Y),alt:"小程序二维码",class:"qrcode-image"},null,8,Ha)]),e("div",Ka,[e("div",Ga,"患者:"+u((n=s(H))==null?void 0:n.patient_name),1),t[91]||(t[91]=e("div",{class:"qrcode-tip"},"请使用微信扫描二维码",-1)),t[92]||(t[92]=e("div",{class:"qrcode-path"},"pages/login/login",-1))])])):(m(),k("div",Xa,[a(o,{size:40},{default:i(()=>[a(s(bt))]),_:1}),t[93]||(t[93]=e("div",null,"生成失败,请重试",-1))]))])]}),_:1},8,["modelValue"]),a(M,{modelValue:s(R),"onUpdate:modelValue":t[19]||(t[19]=n=>z(R)?R.value=n:null),title:"完成问诊",width:"420px","append-to-body":"","close-on-click-modal":!1,"destroy-on-close":""},{footer:i(()=>[a(b,{onClick:t[18]||(t[18]=n=>R.value=!1)},{default:i(()=>[...t[97]||(t[97]=[p("取消",-1)])]),_:1}),a(b,{type:"primary",loading:s(j),onClick:Kt},{default:i(()=>[...t[98]||(t[98]=[p("确认完成",-1)])]),_:1},8,["loading"])]),default:i(()=>[e("div",Za,[t[96]||(t[96]=e("p",{class:"complete-dialog-tip"},"是否添加医生备注?",-1)),s(et)?(m(),v(h,{key:0,modelValue:s(q),"onUpdate:modelValue":t[17]||(t[17]=n=>z(q)?q.value=n:null),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"填写完成备注,将追加到医生备注时间轴"},null,8,["modelValue"])):f("",!0)])]),_:1},8,["modelValue"])])}}}),fl=He(tl,[["__scopeId","data-v-05330d47"]]);export{fl as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-BuMVMky1.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-BSADvQNg.js","assets/index-Bkarz3gO.js","assets/index-deCJ4ja-.css","assets/perm-CHCBwnFR.js","assets/DailyMatrix-BkYJBu_D.js","assets/picker-BTh9eW9u.js","assets/index-CS5Wg0xx.js","assets/index-B3imPWFk.css","assets/index-oRynN2pP.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-Cqk_cdo9.js","assets/index-D0f1Mn00.css","assets/index-BJZwRQXE.js","assets/file-BjbV-eNx.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-VonOdKxB.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-BQogJqk-.js","assets/FollowupAudioReview-BDRNtxGL.js","assets/FollowupAudioField-Dz9Csp0b.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-2_yvVfnZ.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-PGnYdg0x.js","assets/RecordingPlaybackBlock-DDHsYga7.js","assets/RecordingVideoPlayer-B0kkGDId.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CO99W60y.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-mqnmyStx.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-aR2VA9u1.js","assets/doctor-DBvYeWd3.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-D83GYvN5.js","assets/patient-B_ifBl-W.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-Dk7f29yf.js","assets/PrescriptionOrderDetailDrawer-CX7YbddA.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-C_PSjf1W.js","assets/index-DAIDDabA.js","assets/medicine-DPIOyHj8.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CTRSsggc.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/index-CDvJ_gqb.js","assets/appointment-type-DJT6wPaT.js","assets/@tencentcloud/chat-Dqh0gV5b.js","assets/@tencentcloud/chat-uikit-engine-BOxL0feI.js","assets/tim-upload-plugin-CK05mjrC.js","assets/tim-profanity-filter-plugin-CIiDZ6v0.js","assets/@tencentcloud/call-engine-js-DCEY106C.js","assets/rtc-detect-TVc6uI0Q.js","assets/index-ma9pGSsz.css"])))=>i.map(i=>d[i]); +import{o as ie,R as ne,ap as oe,aq as de,bp as re,q as m,r as k,v as a,D as i,s as e,Y as pe,C as z,u as s,X as ue,w as _e,cU as me,L as p,O as v,bD as ce,P as f,dh as fe,da as bt,db as kt,at as ge,aA as ve,bc as ye,K as be,$ as ke,cm as Dt,Z as De,_ as Ce,aw as Ct,cg as Vt,cz as Ve,bf as we,be as Ee,bL as Se,aB as Te,ac as P,bk as he,bl as Ie,T as u,bm as Pe,F as $e,bF as ze,bI as it,bn as Ae,bj as Re,cn as qe,ba as xe,cd as nt,al as ot,p as dt,aC as Le,M as g}from"./.pnpm-CyuAWpdG.js";import{_ as Ne}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as Ue}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{a as wt,c as rt}from"./appointment-type-DJT6wPaT.js";import{u as Me}from"./usePaging-CghUEVfD.js";import{a as Be,m as Oe,l as Et}from"./doctor-DBvYeWd3.js";import{d as Fe}from"./department-BeBGhsmA.js";import{Z as We,X as je,aa as Qe}from"./tcm-BSADvQNg.js";import{u as Ye,j as y,_ as He}from"./index-Bkarz3gO.js";import{a as Ke}from"./patient-B_ifBl-W.js";import{h as Ge}from"./perm-CHCBwnFR.js";import{i as Xe,f as Ze}from"./diabetes-discovery-display-B_wmGXQJ.js";import{g as Je}from"./weapp-COeXC0ZY.js";const ts={class:"appointment-list"},es={class:"list-toolbar"},ss={class:"tab-label tab-priority"},as={class:"tab-label"},ls={class:"tab-label"},is={class:"tab-label"},ns={class:"tab-label"},os={class:"toolbar-actions"},ds={class:"filter-bar"},rs={class:"filter-group"},ps={class:"filter-group"},us={class:"filter-group"},_s={class:"table-wrap"},ms={class:"patient-cell"},cs={class:"patient-info"},fs={class:"patient-name"},gs={class:"patient-phone"},vs={class:"patient-extra"},ys={class:"datetime-cell"},bs={class:"date-text"},ks={class:"time-text"},Ds={class:"prescription-tags"},Cs={class:"action-btns"},Vs={class:"flex justify-end py-4 px-4"},ws={key:0,class:"detail-content"},Es={class:"detail-section"},Ss={class:"detail-section-title"},Ts={class:"detail-grid"},hs={class:"detail-item"},Is={class:"detail-value"},Ps={class:"detail-item"},$s={class:"detail-item"},zs={class:"detail-value"},As={class:"detail-item"},Rs={class:"detail-value"},qs={class:"detail-item"},xs={class:"detail-value"},Ls={class:"detail-item"},Ns={class:"detail-value"},Us={class:"detail-section"},Ms={class:"detail-section-title"},Bs={class:"detail-grid"},Os={class:"detail-item"},Fs={class:"detail-value"},Ws={class:"detail-item"},js={class:"detail-value"},Qs={class:"detail-item"},Ys={class:"detail-value"},Hs={class:"detail-item"},Ks={class:"detail-value"},Gs={class:"detail-item"},Xs={class:"detail-value"},Zs={class:"detail-item"},Js={class:"detail-value"},ta={class:"detail-item"},ea={class:"detail-value"},sa={class:"detail-item"},aa={class:"detail-value"},la={class:"detail-item"},ia={class:"detail-value"},na={class:"detail-item"},oa={class:"detail-value"},da={class:"detail-item"},ra={class:"detail-value"},pa={class:"detail-item"},ua={class:"detail-value"},_a={class:"detail-item"},ma={class:"detail-value"},ca={class:"detail-item"},fa={class:"detail-value"},ga={class:"detail-item"},va={class:"detail-value"},ya={class:"detail-item"},ba={class:"detail-value"},ka={key:0,class:"detail-section"},Da={class:"detail-section-title"},Ca={class:"detail-grid"},Va={key:0,class:"detail-item"},wa={class:"detail-value"},Ea={key:1,class:"detail-item"},Sa={class:"detail-value"},Ta={key:2,class:"detail-item detail-item-full"},ha={class:"detail-value"},Ia={key:3,class:"detail-item detail-item-full"},Pa={class:"detail-value"},$a={key:1,class:"detail-section"},za={class:"detail-section-title"},Aa={class:"detail-grid"},Ra={key:0,class:"detail-item"},qa={class:"detail-value"},xa={key:1,class:"detail-item"},La={class:"detail-value"},Na={key:2,class:"detail-item detail-item-full"},Ua={class:"detail-value"},Ma={key:3,class:"detail-item detail-item-full"},Ba={class:"detail-value"},Oa={class:"detail-section"},Fa={class:"detail-remark"},Wa={class:"qrcode-content"},ja={key:0,class:"qrcode-loading"},Qa={key:1,class:"qrcode-success"},Ya={class:"qrcode-image-wrap"},Ha=["src"],Ka={class:"qrcode-info"},Ga={class:"qrcode-patient"},Xa={key:2,class:"qrcode-error"},Za={class:"complete-dialog"},Ja=2e4,tl=ie({__name:"list",setup(el){const St=nt(()=>ot(()=>import("./edit-BuMVMky1.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),Tt=nt(()=>ot(()=>import("./index-C_PSjf1W.js"),__vite__mapDeps([56,1,2,57,58,4,5,59,60,3,61,62,63]))),ht=nt(()=>ot(()=>import("./index-CDvJ_gqb.js"),__vite__mapDeps([66,1,2,16,4,5,49,3,67,41,40,68,69,70,71,72,73,74]))),pt=Ye(),It=dt(()=>pt.userInfo),Pt=l=>!l||l.length<11?l:l.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),$t=dt(()=>{const l=It.value.role_id;return Array.isArray(l)?!l.includes(1)&&!l.includes(2):l!==1&&l!==2}),r=Le({patient_name:"",doctor_name:"",status:"",start_date:"",end_date:"",date_preset:"today",diagnosis_confirmed:"",assistant_dept_id:"",include_status_counts:0}),G=g([]),zt={value:"id",label:"name",children:"children"},O=g("1"),A=g(!1),S=g({1:0,2:0,3:0,4:0}),{pager:V,getLists:ut,resetPage:At}=Me({fetchFun:Be,params:r,firstLoading:!0});ne(()=>[r.start_date,r.end_date],([l,t])=>{if(!r.date_preset)return;const o=new Date,c=C=>String(C).padStart(2,"0"),_=C=>`${C.getFullYear()}-${c(C.getMonth()+1)}-${c(C.getDate())}`,T=_(o),h=new Date(o);h.setDate(h.getDate()-1);const b=_(h),I=new Date(o);I.setDate(I.getDate()-2);const K=_(I),L=new Date(o);L.setDate(L.getDate()+1);const E=_(L),N=new Date(o);N.setDate(N.getDate()+2);const lt=_(N),U=r.date_preset,M=U==="yesterday"?b:U==="day_before"?K:U==="today"?T:U==="tomorrow"?E:lt;(l||"").split(" ")[0]!==M&&(r.date_preset="")});const Rt=l=>{l==="all"?r.status="":r.status=Number(l),At()};let F=null;const D=async l=>{const t=(l==null?void 0:l.silent)===!0;r.include_status_counts=1;try{await ut({silent:t});const o=V.extend,c=o==null?void 0:o.status_count;if(c)for(const _ of[1,2,3,4]){const T=c[_]??c[String(_)];typeof T=="number"&&(S.value[_]=T)}}catch(o){if(!t)throw o}finally{r.include_status_counts=0}},qt=l=>{l==="customDate"?A.value=!0:l==="reset"&&Mt()},xt=()=>{r.date_preset="",A.value=!1,V.page=1,D()},Lt=()=>{V.page=1,D()},Nt=()=>{V.page=1,D()},Ut=l=>{const t=String(l||"");if(!t){r.date_preset="",r.start_date="",r.end_date="",D();return}const o=new Date,c=h=>String(h).padStart(2,"0");let _;t==="yesterday"?(_=new Date(o),_.setDate(_.getDate()-1)):t==="day_before"?(_=new Date(o),_.setDate(_.getDate()-2)):t==="today"?_=o:t==="tomorrow"?(_=new Date(o),_.setDate(_.getDate()+1)):(_=new Date(o),_.setDate(_.getDate()+2));const T=`${_.getFullYear()}-${c(_.getMonth()+1)}-${c(_.getDate())}`;r.date_preset=t,r.start_date=T,r.end_date=T,V.page=1,D()},_t=()=>{V.page=1,D()},Mt=()=>{O.value="1",r.patient_name="",r.doctor_name="",r.date_preset="today",r.diagnosis_confirmed="",r.assistant_dept_id="";const l=new Date,t=o=>String(o).padStart(2,"0");r.start_date=`${l.getFullYear()}-${t(l.getMonth()+1)}-${t(l.getDate())}`,r.end_date=r.start_date,r.status=1,V.page=1,D()},X=g(!1),d=g(null),Bt=g([]),Ot=g([]),Ft=g([]),Wt=g([]),W=(l,t)=>{if(!t)return"-";const o=l.find(c=>c.value===t);return o?o.name:t},jt=l=>(Array.isArray(l)?l:typeof l=="string"?l.split(/[,,、]/):[]).map(o=>W(Wt.value,o.trim())).filter(Boolean).join("、")||"-",Z=g(),J=g(),mt=g(),Qt=["doctor.appointment/addDoctorNote"],R=g(!1),j=g(!1),q=g(""),tt=g(null),et=dt(()=>Ge(Qt)),x=g(!1),Q=g(!1),Y=g(""),H=g(null),Yt=(l,t)=>{switch(l){case"edit":ft(t);break;case"viewCase":Jt(t);break;case"complete":ct(t);break;case"chat":gt(t);break;case"qrcode":st(t);break;case"prescription":vt(t);break;case"cancel":Ht(t);break}},Ht=async l=>{try{await y.confirm("确定要取消该挂号吗?"),await Oe({id:l.id}),y.msgSuccess("取消成功"),D()}catch{}},ct=async l=>{if(tt.value=l,q.value="",et.value){R.value=!0;return}try{await y.confirm("是否添加医生备注?"),await Et({id:l.id}),y.msgSuccess("操作成功"),D()}catch{}},Kt=async()=>{const l=tt.value;if(!(!(l!=null&&l.id)||j.value)){j.value=!0;try{const t=q.value.trim();await Et({id:l.id});let o="";if(et.value&&t){const c=l.patient_id||l.diagnosis_id;if(c)try{await Ke({diagnosis_id:Number(c),content:t})}catch{o="问诊已完成,但备注未保存"}else o="问诊已完成,但该预约没有关联诊单,备注未保存"}o?y.msgWarning(o):y.msgSuccess("操作成功"),R.value=!1,q.value="",tt.value=null,D()}catch(t){y.msgError((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"操作失败")}finally{j.value=!1}}},ft=l=>{var t;if(!l.patient_id){y.msgWarning("该预约没有关联诊单信息");return}(t=Z.value)==null||t.open("edit",l.patient_id)},Gt=l=>{ft(l)},gt=async l=>{var c;const t=Number(l.source_patient_id||0),o=Number(l.diagnosis_id||0);if(!t){y.msgWarning("患者信息不完整");return}if(!o){y.msgWarning("预约信息不完整,无法发起聊天");return}try{const _=await We({patient_id:t,diagnosis_id:o,appointment_id:Number(l.id)});console.log("获取聊天签名成功:",_),(c=mt.value)==null||c.open({patientId:t,patientName:l.patient_name,diagnosisId:o,appointmentId:Number(l.id),appointmentType:l.appointment_type,signatureData:_})}catch(_){console.error("获取聊天签名失败:",_),y.msgError(_.message||"获取聊天签名失败")}},st=async l=>{if(!rt(l.appointment_type)){y.msgWarning("仅视频问诊可生成视频二维码");return}if(!l.patient_id){y.msgWarning("患者信息不完整");return}H.value=l,x.value=!0,Q.value=!0,Y.value="";try{const t=await Je();if(!(t!=null&&t.app_id)){y.msgError("小程序未配置,请先配置小程序信息"),x.value=!1;return}const o=pt.userInfo,c=await je({doctor_id:l.doctor_id||"",patient_id:l.patient_id,share_user_id:(o==null?void 0:o.id)||"",mini_program_path:"pages/login/login"});c!=null&&c.qrcode_url?Y.value=c.qrcode_url:y.msgError("二维码生成失败")}catch(t){console.error("生成小程序二维码失败:",t),y.msgError((t==null?void 0:t.msg)||"生成二维码失败,请重试")}finally{Q.value=!1}},Xt=()=>{var l,t;D(),(t=(l=Z.value)==null?void 0:l.refreshCaseList)==null||t.call(l)};function Zt(l){return(l==null?void 0:l.prescription_audit_status)===1&&Number(l==null?void 0:l.prescription_void_status)!==1?"查看":"开方"}const vt=l=>{var t;if(!l.diagnosis_id&&!l.patient_id){y.msgWarning("该预约缺少诊单信息,请先编辑患者");return}(t=J.value)==null||t.open(l)},Jt=async l=>{var t;if(!l.id){y.msgWarning("预约信息不完整");return}try{const o=await Qe({appointment_id:l.id});o!=null&&o.id?(t=J.value)==null||t.openById(o.id):y.msgWarning("该预约暂无病历记录,请先开方")}catch(o){y.msgError((o==null?void 0:o.msg)||"获取病历失败")}},te=()=>{H.value&&st(H.value)},at=new Date,yt=l=>String(l).padStart(2,"0");return r.start_date=`${at.getFullYear()}-${yt(at.getMonth()+1)}-${yt(at.getDate())}`,r.end_date=r.start_date,r.status=1,oe(async()=>{try{const l=await Fe();G.value=Array.isArray(l)?l:[]}catch{G.value=[]}D(),F=setInterval(()=>{D({silent:!0})},Ja)}),de(()=>{F!==null&&(clearInterval(F),F=null)}),(l,t)=>{const o=_e,c=ce,_=ue,T=pe,h=ve,b=be,I=Ce,K=De,L=ke,E=Ee,N=we,lt=Se,U=Ue,M=Te,w=Ie,C=Pe,ee=he,se=Ne,ae=Re,$=re("perms"),le=Ae;return m(),k("div",ts,[a(ae,{class:"list-card !border-none",shadow:"never"},{default:i(()=>[e("div",es,[a(T,{modelValue:s(O),"onUpdate:modelValue":t[0]||(t[0]=n=>z(O)?O.value=n:null),onTabChange:Rt,class:"list-tabs"},{default:i(()=>[a(_,{name:"1"},{label:i(()=>[e("span",ss,[a(o,null,{default:i(()=>[a(s(me))]),_:1}),t[20]||(t[20]=p("待接诊",-1)),s(S)[1]?(m(),v(c,{key:0,value:s(S)[1],class:"tab-badge tab-badge-success"},null,8,["value"])):f("",!0)])]),_:1}),a(_,{name:"all"},{label:i(()=>[e("span",as,[a(o,null,{default:i(()=>[a(s(fe))]),_:1}),t[21]||(t[21]=p("全部",-1))])]),_:1}),a(_,{name:"4"},{label:i(()=>[e("span",ls,[a(o,null,{default:i(()=>[a(s(bt))]),_:1}),t[22]||(t[22]=p("已过号",-1)),s(S)[4]?(m(),v(c,{key:0,value:s(S)[4],class:"tab-badge tab-badge-danger"},null,8,["value"])):f("",!0)])]),_:1}),a(_,{name:"2"},{label:i(()=>[e("span",is,[a(o,null,{default:i(()=>[a(s(kt))]),_:1}),t[23]||(t[23]=p("已取消",-1)),s(S)[2]?(m(),v(c,{key:0,value:s(S)[2],class:"tab-badge tab-badge-info"},null,8,["value"])):f("",!0)])]),_:1}),a(_,{name:"3"},{label:i(()=>[e("span",ns,[a(o,null,{default:i(()=>[a(s(ge))]),_:1}),t[24]||(t[24]=p("已完成",-1)),s(S)[3]?(m(),v(c,{key:0,value:s(S)[3],class:"tab-badge tab-badge-primary"},null,8,["value"])):f("",!0)])]),_:1})]),_:1},8,["modelValue"]),e("div",os,[a(h,{modelValue:s(r).patient_name,"onUpdate:modelValue":t[1]||(t[1]=n=>s(r).patient_name=n),placeholder:"患者姓名",clearable:"",size:"small",class:"action-input",onKeyup:ye(_t,["enter"])},null,8,["modelValue"]),a(b,{type:"primary",size:"small",onClick:_t},{default:i(()=>[...t[25]||(t[25]=[p("查询",-1)])]),_:1}),a(L,{trigger:"click",onCommand:qt},{dropdown:i(()=>[a(K,null,{default:i(()=>[s($t)?(m(),v(I,{key:0,class:"dropdown-item-with-input",onClick:t[4]||(t[4]=Ct(()=>{},["stop"]))},{default:i(()=>[t[27]||(t[27]=e("span",{class:"dropdown-label"},"医生",-1)),a(h,{modelValue:s(r).doctor_name,"onUpdate:modelValue":t[2]||(t[2]=n=>s(r).doctor_name=n),placeholder:"医生",size:"small",class:"dropdown-input",onClick:t[3]||(t[3]=Ct(()=>{},["stop"]))},null,8,["modelValue"])]),_:1})):f("",!0),a(I,{command:"customDate",divided:""},{default:i(()=>[a(o,null,{default:i(()=>[a(s(Vt))]),_:1}),t[28]||(t[28]=p(" 自定义日期 ",-1))]),_:1}),a(I,{command:"reset"},{default:i(()=>[a(o,null,{default:i(()=>[a(s(Ve))]),_:1}),t[29]||(t[29]=p(" 重置 ",-1))]),_:1})]),_:1})]),default:i(()=>[a(b,{size:"small"},{default:i(()=>[t[26]||(t[26]=p("更多",-1)),a(o,{class:"el-icon--right"},{default:i(()=>[a(s(Dt))]),_:1})]),_:1})]),_:1})])]),e("div",ds,[e("div",rs,[t[36]||(t[36]=e("span",{class:"filter-label"},"日期",-1)),a(N,{modelValue:s(r).date_preset,"onUpdate:modelValue":t[5]||(t[5]=n=>s(r).date_preset=n),size:"small",onChange:Ut,class:"filter-radio"},{default:i(()=>[a(E,{value:"yesterday"},{default:i(()=>[...t[30]||(t[30]=[p("昨天挂号",-1)])]),_:1}),a(E,{value:"day_before"},{default:i(()=>[...t[31]||(t[31]=[p("前天挂号",-1)])]),_:1}),a(E,{value:"today"},{default:i(()=>[...t[32]||(t[32]=[p("当天挂号",-1)])]),_:1}),a(E,{value:"tomorrow"},{default:i(()=>[...t[33]||(t[33]=[p("明天挂号",-1)])]),_:1}),a(E,{value:"day_after"},{default:i(()=>[...t[34]||(t[34]=[p("后天挂号",-1)])]),_:1}),a(E,{value:""},{default:i(()=>[...t[35]||(t[35]=[p("不限",-1)])]),_:1})]),_:1},8,["modelValue"])]),e("div",ps,[t[40]||(t[40]=e("span",{class:"filter-label"},"确认诊单",-1)),a(N,{modelValue:s(r).diagnosis_confirmed,"onUpdate:modelValue":t[6]||(t[6]=n=>s(r).diagnosis_confirmed=n),size:"small",onChange:Lt,class:"filter-radio"},{default:i(()=>[a(E,{value:""},{default:i(()=>[...t[37]||(t[37]=[p("全部",-1)])]),_:1}),a(E,{value:"1"},{default:i(()=>[...t[38]||(t[38]=[p("已确认",-1)])]),_:1}),a(E,{value:"0"},{default:i(()=>[...t[39]||(t[39]=[p("未确认",-1)])]),_:1})]),_:1},8,["modelValue"])]),e("div",us,[t[41]||(t[41]=e("span",{class:"filter-label"},"部门",-1)),a(lt,{modelValue:s(r).assistant_dept_id,"onUpdate:modelValue":t[7]||(t[7]=n=>s(r).assistant_dept_id=n),data:s(G),class:"filter-dept-select",clearable:"",filterable:"","check-strictly":"","default-expand-all":!0,"node-key":"id",size:"small",props:zt,placeholder:"选父级含子级",onChange:Nt},null,8,["modelValue","data"])])]),a(M,{modelValue:s(A),"onUpdate:modelValue":t[11]||(t[11]=n=>z(A)?A.value=n:null),title:"自定义日期",width:"400px","append-to-body":"","close-on-click-modal":!0},{footer:i(()=>[a(b,{onClick:t[10]||(t[10]=n=>A.value=!1)},{default:i(()=>[...t[42]||(t[42]=[p("取消",-1)])]),_:1}),a(b,{type:"primary",onClick:xt},{default:i(()=>[...t[43]||(t[43]=[p("确定",-1)])]),_:1})]),default:i(()=>[a(U,{startTime:s(r).start_date,"onUpdate:startTime":t[8]||(t[8]=n=>s(r).start_date=n),endTime:s(r).end_date,"onUpdate:endTime":t[9]||(t[9]=n=>s(r).end_date=n)},null,8,["startTime","endTime"])]),_:1},8,["modelValue"]),e("div",_s,[P((m(),v(ee,{data:s(V).lists,size:"default",class:"appointment-table"},{default:i(()=>[a(w,{label:"ID",prop:"id",width:"72",align:"center"}),a(w,{label:"患者信息","min-width":"140"},{default:i(({row:n})=>[e("div",ms,[e("div",cs,[e("div",fs,u(n.patient_name),1),e("div",gs,u(Pt(n.patient_phone)),1),e("div",vs,u([n.gender===1?"男":n.gender===0?"女":"",n.age!=null?n.age+"岁":"",n.height!=null?n.height+"cm":"",n.weight!=null?n.weight+"kg":""].filter(Boolean).join(" ")||"-"),1)])])]),_:1}),a(w,{label:"医生",prop:"doctor_name",width:"90","show-overflow-tooltip":""}),a(w,{label:"预约时间","min-width":"120"},{default:i(({row:n})=>[e("div",ys,[e("div",bs,u(n.appointment_date),1),e("div",ks,u(n.appointment_time),1)])]),_:1}),a(w,{label:"助理",prop:"assistant_name",width:"100","show-overflow-tooltip":""},{default:i(({row:n})=>[p(u(n.assistant_name||"—"),1)]),_:1}),a(w,{label:"面诊类型",width:"110"},{default:i(({row:n})=>[p(u(s(wt)(n.appointment_type)),1)]),_:1}),a(w,{label:"确认诊单",width:"90",align:"center"},{default:i(({row:n})=>[n.diagnosis_confirmed?(m(),v(C,{key:0,type:"success",size:"small",effect:"plain"},{default:i(()=>[...t[44]||(t[44]=[p("已确认",-1)])]),_:1})):(m(),v(C,{key:1,type:"warning",size:"small",effect:"plain"},{default:i(()=>[...t[45]||(t[45]=[p("未确认",-1)])]),_:1}))]),_:1}),a(w,{label:"开方",width:"120",align:"center"},{default:i(({row:n})=>[e("div",Ds,[n.has_prescription?(m(),v(C,{key:0,type:"success",size:"small",effect:"plain"},{default:i(()=>[...t[46]||(t[46]=[p("已开方",-1)])]),_:1})):(m(),v(C,{key:1,type:"info",size:"small",effect:"plain"},{default:i(()=>[...t[47]||(t[47]=[p("未开方",-1)])]),_:1})),n.has_prescription&&n.prescription_is_system_auto===1?(m(),v(C,{key:2,type:"warning",size:"small",effect:"plain"},{default:i(()=>[...t[48]||(t[48]=[p(" 系统代开 ",-1)])]),_:1})):f("",!0)])]),_:1}),a(w,{label:"状态",width:"90",align:"center"},{default:i(({row:n})=>[a(C,{type:n.status===1?"success":n.status===2?"info":n.status===3?"primary":"danger",size:"small",effect:"light",round:""},{default:i(()=>[p(u(n.status_desc),1)]),_:2},1032,["type"])]),_:1}),a(w,{label:"备注",prop:"remark","min-width":"120","show-overflow-tooltip":""}),a(w,{label:"操作",width:"380",fixed:"right",align:"left"},{default:i(({row:n})=>[e("div",Cs,[P((m(),v(b,{type:"primary",link:"",size:"small",onClick:B=>Gt(n)},{default:i(()=>[...t[49]||(t[49]=[p(" 编辑患者 ",-1)])]),_:1},8,["onClick"])),[[$,["tcm.diagnosis/edit"]]]),n.status!==3?(m(),k($e,{key:0},[s(rt)(n.appointment_type)?P((m(),v(b,{key:0,type:"warning",link:"",size:"small",onClick:B=>st(n),class:"action-qrcode"},{default:i(()=>[a(o,null,{default:i(()=>[a(s(ze))]),_:1}),t[50]||(t[50]=p(" 视频二维码 ",-1))]),_:1},8,["onClick"])),[[$,["tcm.diagnosis/videoQr"]]]):f("",!0),P((m(),v(b,{type:"primary",link:"",size:"small",onClick:B=>gt(n)},{default:i(()=>[p(u(s(rt)(n.appointment_type)?"通话":"图文沟通"),1)]),_:2},1032,["onClick"])),[[$,["doctor.appointment/prescription"]]]),P((m(),v(b,{type:"success",link:"",size:"small",onClick:B=>ct(n)},{default:i(()=>[...t[51]||(t[51]=[p(" 完成 ",-1)])]),_:1},8,["onClick"])),[[$,["doctor.appointment/complete"]]])],64)):f("",!0),P((m(),v(b,{type:"primary",link:"",size:"small",onClick:B=>vt(n)},{default:i(()=>[p(u(Zt(n)),1)]),_:2},1032,["onClick"])),[[$,["tcm.diagnosis/kaifang"]]]),a(L,{trigger:"click",onCommand:B=>Yt(B,n),placement:"bottom-end"},{dropdown:i(()=>[a(K,null,{default:i(()=>[P((m(),v(I,{command:"viewCase"},{default:i(()=>[a(o,null,{default:i(()=>[a(s(it))]),_:1}),t[53]||(t[53]=p(" 病历 ",-1))]),_:1})),[[$,["tcm.diagnosis/kaifang"]]]),n.status===1?P((m(),v(I,{key:0,command:"cancel",divided:""},{default:i(()=>[a(o,null,{default:i(()=>[a(s(kt))]),_:1}),t[54]||(t[54]=e("span",{class:"text-danger"},"取消挂号",-1))]),_:1})),[[$,["doctor.appointment/cancel"]]]):f("",!0)]),_:2},1024)]),default:i(()=>[a(b,{type:"info",link:"",size:"small"},{default:i(()=>[t[52]||(t[52]=p(" 更多 ",-1)),a(o,{class:"el-icon--right"},{default:i(()=>[a(s(Dt))]),_:1})]),_:1})]),_:2},1032,["onCommand"])])]),_:1})]),_:1},8,["data"])),[[le,s(V).loading]]),e("div",Vs,[a(se,{modelValue:s(V),"onUpdate:modelValue":t[12]||(t[12]=n=>z(V)?V.value=n:null),onChange:s(ut)},null,8,["modelValue","onChange"])])])]),_:1}),a(M,{modelValue:s(X),"onUpdate:modelValue":t[13]||(t[13]=n=>z(X)?X.value=n:null),title:"挂号详情",width:"720px",class:"detail-dialog","destroy-on-close":""},{default:i(()=>[s(d)?(m(),k("div",ws,[e("div",Es,[e("div",Ss,[a(o,null,{default:i(()=>[a(s(Vt))]),_:1}),t[55]||(t[55]=p(" 预约信息 ",-1))]),e("div",Ts,[e("div",hs,[t[56]||(t[56]=e("span",{class:"detail-label"},"挂号ID",-1)),e("span",Is,u(s(d).id),1)]),e("div",Ps,[t[57]||(t[57]=e("span",{class:"detail-label"},"状态",-1)),a(C,{type:s(d).status===1?"success":s(d).status===2?"info":s(d).status===3?"primary":"danger",size:"small",effect:"light"},{default:i(()=>[p(u(s(d).status_desc),1)]),_:1},8,["type"])]),e("div",$s,[t[58]||(t[58]=e("span",{class:"detail-label"},"医生",-1)),e("span",zs,u(s(d).doctor_name),1)]),e("div",As,[t[59]||(t[59]=e("span",{class:"detail-label"},"预约时间",-1)),e("span",Rs,u(s(d).appointment_date)+" "+u(s(d).appointment_time),1)]),e("div",qs,[t[60]||(t[60]=e("span",{class:"detail-label"},"时段",-1)),e("span",xs,u(s(d).period==="morning"?"上午":"下午"),1)]),e("div",Ls,[t[61]||(t[61]=e("span",{class:"detail-label"},"面诊类型",-1)),e("span",Ns,u(s(wt)(s(d).appointment_type)),1)])])]),e("div",Us,[e("div",Ms,[a(o,null,{default:i(()=>[a(s(qe))]),_:1}),t[62]||(t[62]=p(" 患者信息 ",-1))]),e("div",Bs,[e("div",Os,[t[63]||(t[63]=e("span",{class:"detail-label"},"姓名",-1)),e("span",Fs,u(s(d).patient_name||"-"),1)]),e("div",Ws,[t[64]||(t[64]=e("span",{class:"detail-label"},"手机号",-1)),e("span",js,u(s(d).phone||s(d).patient_phone||"-"),1)]),e("div",Qs,[t[65]||(t[65]=e("span",{class:"detail-label"},"身份证号",-1)),e("span",Ys,u(s(d).id_card||"-"),1)]),e("div",Hs,[t[66]||(t[66]=e("span",{class:"detail-label"},"性别",-1)),e("span",Ks,u(s(d).gender===1?"男":s(d).gender===0?"女":"-"),1)]),e("div",Gs,[t[67]||(t[67]=e("span",{class:"detail-label"},"年龄",-1)),e("span",Xs,u(s(d).age!=null?s(d).age+"岁":"-"),1)]),e("div",Zs,[t[68]||(t[68]=e("span",{class:"detail-label"},"诊断日期",-1)),e("span",Js,u(s(d).diagnosis_date||"-"),1)]),e("div",ta,[t[69]||(t[69]=e("span",{class:"detail-label"},"婚姻状态",-1)),e("span",ea,u(s(d).marital_status===0?"未婚":s(d).marital_status===1?"已婚":s(d).marital_status===2?"离异":"-"),1)]),e("div",sa,[t[70]||(t[70]=e("span",{class:"detail-label"},"身高(cm)",-1)),e("span",aa,u(s(d).height??"-"),1)]),e("div",la,[t[71]||(t[71]=e("span",{class:"detail-label"},"体重(kg)",-1)),e("span",ia,u(s(d).weight??"-"),1)]),e("div",na,[t[72]||(t[72]=e("span",{class:"detail-label"},"地区",-1)),e("span",oa,u(s(d).region||"-"),1)]),e("div",da,[t[73]||(t[73]=e("span",{class:"detail-label"},"收缩压(mmHg)",-1)),e("span",ra,u(s(d).systolic_pressure??"-"),1)]),e("div",pa,[t[74]||(t[74]=e("span",{class:"detail-label"},"舒张压(mmHg)",-1)),e("span",ua,u(s(d).diastolic_pressure??"-"),1)]),e("div",_a,[t[75]||(t[75]=e("span",{class:"detail-label"},"空腹血糖(mmol/L)",-1)),e("span",ma,u(s(d).fasting_blood_sugar??"-"),1)]),e("div",ca,[t[76]||(t[76]=e("span",{class:"detail-label"},"诊断类型",-1)),e("span",fa,u(W(s(Bt),s(d).diagnosis_type)||"-"),1)]),e("div",ga,[t[77]||(t[77]=e("span",{class:"detail-label"},"证型",-1)),e("span",va,u(W(s(Ot),s(d).syndrome_type)||"-"),1)]),e("div",ya,[t[78]||(t[78]=e("span",{class:"detail-label"},"糖尿病期数",-1)),e("span",ba,u(W(s(Ft),s(d).diabetes_type)||"-"),1)])])]),s(d).symptoms||s(d).local_hospital_name||s(d).past_history&&s(d).past_history.length?(m(),k("div",ka,[e("div",Da,[a(o,null,{default:i(()=>[a(s(it))]),_:1}),t[79]||(t[79]=p(" 病史信息 ",-1))]),e("div",Ca,[s(Xe)(s(d).diabetes_discovery_year)?(m(),k("div",Va,[t[80]||(t[80]=e("span",{class:"detail-label"},"发现糖尿病病史",-1)),e("span",wa,u(s(Ze)(s(d).diabetes_discovery_year)),1)])):f("",!0),s(d).local_hospital_name?(m(),k("div",Ea,[t[81]||(t[81]=e("span",{class:"detail-label"},"当地就诊医院",-1)),e("span",Sa,u(s(d).local_hospital_name),1)])):f("",!0),s(d).symptoms?(m(),k("div",Ta,[t[82]||(t[82]=e("span",{class:"detail-label"},"症状补充",-1)),e("span",ha,u(s(d).symptoms),1)])):f("",!0),s(d).past_history&&s(d).past_history.length?(m(),k("div",Ia,[t[83]||(t[83]=e("span",{class:"detail-label"},"既往史",-1)),e("span",Pa,u(jt(s(d).past_history)),1)])):f("",!0)])])):f("",!0),s(d).tongue_coating||s(d).pulse||s(d).treatment_principle||s(d).prescription?(m(),k("div",$a,[e("div",za,[a(o,null,{default:i(()=>[a(s(it))]),_:1}),t[84]||(t[84]=p(" 诊断信息 ",-1))]),e("div",Aa,[s(d).tongue_coating?(m(),k("div",Ra,[t[85]||(t[85]=e("span",{class:"detail-label"},"舌苔",-1)),e("span",qa,u(s(d).tongue_coating),1)])):f("",!0),s(d).pulse?(m(),k("div",xa,[t[86]||(t[86]=e("span",{class:"detail-label"},"脉象",-1)),e("span",La,u(s(d).pulse),1)])):f("",!0),s(d).treatment_principle?(m(),k("div",Na,[t[87]||(t[87]=e("span",{class:"detail-label"},"治则",-1)),e("span",Ua,u(s(d).treatment_principle),1)])):f("",!0),s(d).prescription?(m(),k("div",Ma,[t[88]||(t[88]=e("span",{class:"detail-label"},"处方",-1)),e("span",Ba,u(s(d).prescription),1)])):f("",!0)])])):f("",!0),e("div",Oa,[t[89]||(t[89]=e("div",{class:"detail-section-title"},"备注",-1)),e("p",Fa,u(s(d).remark||"无"),1)])])):f("",!0)]),_:1},8,["modelValue"]),a(s(St),{ref_key:"editRef",ref:Z,onSuccess:t[14]||(t[14]=()=>D({silent:!0}))},null,512),a(s(Tt),{ref_key:"prescriptionRef",ref:J,onSuccess:Xt},null,512),a(s(ht),{ref_key:"chatDialogRef",ref:mt},null,512),a(M,{modelValue:s(x),"onUpdate:modelValue":t[16]||(t[16]=n=>z(x)?x.value=n:null),title:"小程序二维码",width:"380px","close-on-click-modal":!1,class:"qrcode-dialog"},{footer:i(()=>[a(b,{onClick:t[15]||(t[15]=n=>x.value=!1)},{default:i(()=>[...t[94]||(t[94]=[p("关闭",-1)])]),_:1}),s(Q)?f("",!0):(m(),v(b,{key:0,type:"primary",onClick:te},{default:i(()=>[...t[95]||(t[95]=[p(" 重新生成 ",-1)])]),_:1}))]),default:i(()=>{var n;return[e("div",Wa,[s(Q)?(m(),k("div",ja,[a(o,{class:"is-loading",size:48},{default:i(()=>[a(s(xe))]),_:1}),t[90]||(t[90]=e("div",{class:"qrcode-loading-text"},"生成中...",-1))])):s(Y)?(m(),k("div",Qa,[e("div",Ya,[e("img",{src:s(Y),alt:"小程序二维码",class:"qrcode-image"},null,8,Ha)]),e("div",Ka,[e("div",Ga,"患者:"+u((n=s(H))==null?void 0:n.patient_name),1),t[91]||(t[91]=e("div",{class:"qrcode-tip"},"请使用微信扫描二维码",-1)),t[92]||(t[92]=e("div",{class:"qrcode-path"},"pages/login/login",-1))])])):(m(),k("div",Xa,[a(o,{size:40},{default:i(()=>[a(s(bt))]),_:1}),t[93]||(t[93]=e("div",null,"生成失败,请重试",-1))]))])]}),_:1},8,["modelValue"]),a(M,{modelValue:s(R),"onUpdate:modelValue":t[19]||(t[19]=n=>z(R)?R.value=n:null),title:"完成问诊",width:"420px","append-to-body":"","close-on-click-modal":!1,"destroy-on-close":""},{footer:i(()=>[a(b,{onClick:t[18]||(t[18]=n=>R.value=!1)},{default:i(()=>[...t[97]||(t[97]=[p("取消",-1)])]),_:1}),a(b,{type:"primary",loading:s(j),onClick:Kt},{default:i(()=>[...t[98]||(t[98]=[p("确认完成",-1)])]),_:1},8,["loading"])]),default:i(()=>[e("div",Za,[t[96]||(t[96]=e("p",{class:"complete-dialog-tip"},"是否添加医生备注?",-1)),s(et)?(m(),v(h,{key:0,modelValue:s(q),"onUpdate:modelValue":t[17]||(t[17]=n=>z(q)?q.value=n:null),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"填写完成备注,将追加到医生备注时间轴"},null,8,["modelValue"])):f("",!0)])]),_:1},8,["modelValue"])])}}}),fl=He(tl,[["__scopeId","data-v-05330d47"]]);export{fl as default}; diff --git a/server/public/admin/assets/list_h5-D0z2kYzs.js b/server/public/admin/assets/list_h5-CX-9i8Qb.js similarity index 92% rename from server/public/admin/assets/list_h5-D0z2kYzs.js rename to server/public/admin/assets/list_h5-CX-9i8Qb.js index 2b6f8b3d2..8967e584c 100644 --- a/server/public/admin/assets/list_h5-D0z2kYzs.js +++ b/server/public/admin/assets/list_h5-CX-9i8Qb.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-DFFSwWxS.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-QAkeqQ9Q.js","assets/index-Dxvz9lb1.js","assets/index-B3vHLAW8.css","assets/perm-DOfZAzJJ.js","assets/DailyMatrix-BSZy3g0c.js","assets/picker-BDO86vcM.js","assets/index-BnfLT5cB.js","assets/index-B3imPWFk.css","assets/index-yD39j6dM.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-ClBYIwNX.js","assets/index-D0f1Mn00.css","assets/index-BU3OYnKm.js","assets/file-CefRfHD9.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-CE1isNg2.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-GXQTu6xF.js","assets/FollowupAudioReview-92Fgd7wW.js","assets/FollowupAudioField-BG0mRnT5.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-Bdp996ss.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-DFudUjln.js","assets/RecordingPlaybackBlock-GbWd6PMw.js","assets/RecordingVideoPlayer-grUPRDCj.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CafeXQX5.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-0TFZiCkF.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-C2wB-h-D.js","assets/doctor-8vo_5fa4.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-DDh0aI3_.js","assets/patient-Bz8-LT2R.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-BP2alDvZ.js","assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-B4rggqa1.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-Cis-_1uh.js","assets/index-Cf6ygfGC.js","assets/medicine-EUKQYFsM.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-DT7CSmCp.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/index-b8RBNrGF.js","assets/appointment-type-DJT6wPaT.js","assets/@tencentcloud/chat-Dqh0gV5b.js","assets/@tencentcloud/chat-uikit-engine-BOxL0feI.js","assets/tim-upload-plugin-CK05mjrC.js","assets/tim-profanity-filter-plugin-CIiDZ6v0.js","assets/@tencentcloud/call-engine-js-DCEY106C.js","assets/rtc-detect-TVc6uI0Q.js","assets/index-ma9pGSsz.css"])))=>i.map(i=>d[i]); -import{o as zt,aC as ke,ap as be,aq as Ce,q as i,r as u,F as $,s as e,v as c,bc as At,u as p,bB as De,aA as Ve,D as v,L as h,K as Ee,G as K,ae as L,T as a,P as d,w as $e,cm as Rt,ac as at,ad as Ne,O as C,az as Le,bn as Se,bC as Pe,dc as Ie,bF as Ae,at as Re,bI as Te,db as Me,B as qe,ba as Oe,aB as ze,cd as nt,al as ot,p as S,M as m}from"./.pnpm-CyuAWpdG.js";import{a as Tt,c as j}from"./appointment-type-DJT6wPaT.js";import{a as Mt,l as qt,m as Be,n as xe}from"./doctor-8vo_5fa4.js";import{g as Ue}from"./weapp-COUVUBPI.js";import{Z as We,aa as Fe,X as Qe,ab as He}from"./tcm-QAkeqQ9Q.js";import{u as Ye,j as y,n as G,_ as Ke}from"./index-Dxvz9lb1.js";import{a as je}from"./patient-Bz8-LT2R.js";import{u as Ge}from"./usePaging-CghUEVfD.js";import{i as Ot,f as Xe}from"./diabetes-discovery-display-B_wmGXQJ.js";import{h as b}from"./perm-DOfZAzJJ.js";const Ze={class:"apt-h5"},we={class:"apt-h5-topbar"},Je={class:"apt-h5-search"},ts={class:"apt-h5-status apt-h5-scroll"},es=["onClick"],ss={key:0},ls={class:"apt-h5-date apt-h5-scroll"},as=["onClick"],ns={class:"apt-h5-quick"},os={class:"apt-h5-quick-group"},is=["onClick"],us={class:"apt-h5-more-filter"},rs={class:"apt-h5-list"},ps={key:0,class:"apt-h5-empty"},ds=["onClick"],cs={class:"apt-h5-avatar"},vs={class:"apt-h5-title"},ms={class:"apt-h5-name"},_s={key:0,class:"apt-h5-meta"},gs={key:1,class:"apt-h5-meta"},ys={class:"apt-h5-sub"},fs={class:"apt-h5-tags"},hs={key:0,class:"apt-h5-tag apt-h5-tag--ok"},ks={key:1,class:"apt-h5-tag apt-h5-tag--warn"},bs=["onClick"],Cs={class:"apt-h5-row"},Ds={class:"apt-h5-row-val"},Vs={class:"apt-h5-row"},Es={class:"apt-h5-row-val"},$s={class:"apt-h5-row"},Ns={class:"apt-h5-row-val"},Ls={class:"apt-h5-row"},Ss={class:"apt-h5-row-val"},Ps={class:"apt-h5-row"},Is={class:"apt-h5-row-val"},As={key:0,class:"apt-h5-inline-tag apt-h5-inline-tag--ok"},Rs={key:1,class:"apt-h5-inline-tag"},Ts={key:2,class:"apt-h5-inline-tag apt-h5-inline-tag--warn"},Ms={key:0,class:"apt-h5-row apt-h5-row--remark"},qs={class:"apt-h5-row-val"},Os={class:"apt-h5-card-foot"},zs={key:2,class:"apt-h5-no-more"},Bs={key:0,class:"apt-h5-actions"},xs={class:"apt-h5-detail-topbar"},Us={class:"apt-h5-detail-title"},Ws={class:"apt-h5-detail-page"},Fs={class:"apt-h5-detail-section"},Qs={class:"apt-h5-detail-grid"},Hs={class:"apt-h5-detail-section"},Ys={class:"apt-h5-detail-grid"},Ks={class:"apt-h5-detail-full"},js={class:"apt-h5-detail-full"},Gs={key:0,class:"apt-h5-detail-section"},Xs={class:"apt-h5-detail-grid"},Zs={key:0},ws={key:1},Js={key:2,class:"apt-h5-detail-full"},tl={key:3,class:"apt-h5-detail-full"},el={key:1,class:"apt-h5-detail-section"},sl={class:"apt-h5-detail-grid"},ll={key:0},al={key:1},nl={key:2,class:"apt-h5-detail-full"},ol={key:3,class:"apt-h5-detail-full"},il={class:"apt-h5-detail-section"},ul={key:0,class:"apt-h5-detail-footer-bar"},rl={class:"apt-h5-detail-footer"},pl={class:"apt-h5-qr"},dl={key:0,class:"apt-h5-qr-loading"},cl={key:1},vl=["src"],ml={class:"apt-h5-qr-meta"},_l={key:2,class:"apt-h5-qr-fail"},gl={class:"apt-h5-complete"},yl=zt({name:"tcmAppointmentH5"}),fl=zt({...yl,setup(hl){const Bt=nt(()=>ot(()=>import("./edit-DFFSwWxS.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),xt=nt(()=>ot(()=>import("./index-Cis-_1uh.js"),__vite__mapDeps([56,1,2,57,58,4,5,59,60,3,61,62,63]))),Ut=nt(()=>ot(()=>import("./index-b8RBNrGF.js"),__vite__mapDeps([66,1,2,16,4,5,49,3,67,41,40,68,69,70,71,72,73,74]))),it=Ye(),Wt=S(()=>it.userInfo),ut=()=>rt(new Date),rt=s=>{const t=o=>String(o).padStart(2,"0");return`${s.getFullYear()}-${t(s.getMonth()+1)}-${t(s.getDate())}`},Ft=s=>{const t=new Date;return t.setDate(t.getDate()+s),rt(t)},Qt=s=>!s||s.length<11?s:s.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),Ht=S(()=>{var t;const s=(t=Wt.value)==null?void 0:t.role_id;return Array.isArray(s)?!s.includes(1)&&!s.includes(2):s!==1&&s!==2}),_=ke({patient_name:"",doctor_name:"",status:1,start_date:ut(),end_date:ut(),date_preset:"today",diagnosis_confirmed:"",include_status_counts:0}),X=m("1"),P=m("list"),I=m(!1),N=m(""),A=m({1:0,2:0,3:0,4:0}),{pager:g,getLists:Yt}=Ge({fetchFun:Mt,params:_,firstLoading:!0}),Kt=S(()=>[{label:"待接诊",value:"1",count:A.value[1]},{label:"全部",value:"all",count:0},{label:"已过号",value:"4",count:A.value[4]},{label:"已取消",value:"2",count:A.value[2]},{label:"已完成",value:"3",count:A.value[3]}]),jt=[{label:"昨天",value:"yesterday"},{label:"前天",value:"day_before"},{label:"今天",value:"today"},{label:"明天",value:"tomorrow"},{label:"后天",value:"day_after"},{label:"不限",value:""}],Gt=[{label:"全部",value:""},{label:"已确认",value:"1"},{label:"未确认",value:"0"}],Z=S(()=>g.lists.length<(g.count||0)),k=async s=>{var t;_.include_status_counts=1;try{await Yt(s);const o=(t=g.extend)==null?void 0:t.status_count;o&&[1,2,3,4].forEach(r=>{const f=o[r]??o[String(r)];A.value[r]=typeof f=="number"?f:0})}finally{_.include_status_counts=0}},R=()=>{g.page=1,k()},Xt=s=>{X.value=s,_.status=s==="all"?"":Number(s),g.page=1,k()},w=s=>{if(_.date_preset=s,N.value="",!s)_.start_date="",_.end_date="";else{const o=Ft({yesterday:-1,day_before:-2,today:0,tomorrow:1,day_after:2}[s]??0);_.start_date=o,_.end_date=o}g.page=1,k()},Zt=s=>{_.diagnosis_confirmed=s,g.page=1,k()},wt=()=>{if(!N.value){w("");return}_.date_preset="",_.start_date=N.value[0],_.end_date=N.value[1],g.page=1,k()},Jt=()=>{_.patient_name="",_.doctor_name="",_.diagnosis_confirmed="",X.value="1",_.status=1,w("today")},te=async()=>{if(g.loading||!Z.value)return;const s=(g.page||1)+1;g.loading=!0;try{const t=await Mt({page_no:s,page_size:g.size,..._,include_status_counts:0});g.page=s,g.lists.push(...(t==null?void 0:t.lists)||[]),g.count=(t==null?void 0:t.count)??g.count}finally{g.loading=!1}},pt=s=>{const t=Number(s);return t===1?"待接诊":t===2?"已取消":t===3?"已完成":t===4?"已过号":"-"},ee=s=>{const t=Number(s);return{"apt-h5-tag--ok":t===1||t===3,"apt-h5-tag--gray":t===2,"apt-h5-tag--danger":t===4}},se=s=>({"apt-h5-card--done":Number(s.status)===3,"apt-h5-card--cancel":Number(s.status)===2,"apt-h5-card--missed":Number(s.status)===4}),J=m(),tt=m(),dt=m(),le=["doctor.appointment/addDoctorNote"],T=m(!1),z=m(!1),M=m(""),et=m(null),st=S(()=>b(le)),ct=s=>{var t;if(!s.patient_id){y.msgWarning("该预约没有关联诊单信息");return}(t=J.value)==null||t.open("edit",s.patient_id)},vt=async s=>{var r;const t=Number(s.source_patient_id||0),o=Number(s.diagnosis_id||0);if(!t){y.msgWarning("患者信息不完整");return}if(!o){y.msgWarning("预约信息不完整,无法发起聊天");return}try{const f=await We({patient_id:t,diagnosis_id:o,appointment_id:Number(s.id)});(r=dt.value)==null||r.open({patientId:t,patientName:s.patient_name,diagnosisId:o,appointmentId:Number(s.id),appointmentType:s.appointment_type,signatureData:f})}catch(f){y.msgError((f==null?void 0:f.msg)||(f==null?void 0:f.message)||"获取通话签名失败")}},lt=s=>(s==null?void 0:s.prescription_audit_status)===1&&Number(s==null?void 0:s.prescription_void_status)!==1?"查看":"开方",mt=s=>{var t;if(!s.diagnosis_id&&!s.patient_id){y.msgWarning("该预约缺少诊单信息,请先编辑患者");return}(t=tt.value)==null||t.open(s)},ae=()=>{var s,t;k(),(t=(s=J.value)==null?void 0:s.refreshCaseList)==null||t.call(s)},B=m(!1),D=m(null),ne=s=>{D.value=s,B.value=!0},x=s=>{const t=D.value;B.value=!1,t&&(s==="videoQr"&>(t),s==="complete"&&_t(t),s==="case"&&ue(t),s==="cancel"&&ie(t))},_t=async s=>{if(et.value=s,M.value="",st.value){T.value=!0;return}try{await y.confirm("确认患者已就诊完成?"),await qt({id:s.id}),y.msgSuccess("操作成功"),k()}catch(t){t!=="cancel"&&y.msgError((t==null?void 0:t.msg)||"操作失败")}},oe=async()=>{const s=et.value;if(!(!(s!=null&&s.id)||z.value)){z.value=!0;try{const t=M.value.trim();await qt({id:s.id});let o="";if(st.value&&t){const r=s.patient_id||s.diagnosis_id;if(r)try{await je({diagnosis_id:Number(r),content:t})}catch{o="问诊已完成,但备注未保存"}else o="问诊已完成,但该预约没有关联诊单,备注未保存"}o?y.msgWarning(o):y.msgSuccess("操作成功"),T.value=!1,M.value="",et.value=null,P.value==="detail"&&Dt(),k()}catch(t){y.msgError((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"操作失败")}finally{z.value=!1}}},ie=async s=>{try{await y.confirm("确定要取消该挂号吗?"),await Be({id:s.id}),y.msgSuccess("取消成功"),k()}catch(t){t!=="cancel"&&y.msgError((t==null?void 0:t.msg)||"取消失败")}},ue=async s=>{var t;try{const o=await Fe({appointment_id:s.id});o!=null&&o.id?(t=tt.value)==null||t.openById(o.id):y.msgWarning("该预约暂无病历记录,请先开方")}catch(o){y.msgError((o==null?void 0:o.msg)||"获取病历失败")}},q=m(!1),U=m(!1),W=m(""),F=m(null),gt=async s=>{var t;if(!j(s.appointment_type)){y.msgWarning("仅视频问诊可生成视频二维码");return}if(!s.patient_id){y.msgWarning("患者信息不完整");return}F.value=s,q.value=!0,U.value=!0,W.value="";try{const o=await Ue();if(!(o!=null&&o.app_id)){y.msgError("小程序未配置,请先配置小程序信息"),q.value=!1;return}const r=await Qe({doctor_id:s.doctor_id||"",patient_id:s.patient_id,share_user_id:((t=it.userInfo)==null?void 0:t.id)||"",mini_program_path:"pages/login/login"});r!=null&&r.qrcode_url?W.value=r.qrcode_url:y.msgError("二维码生成失败")}catch(o){y.msgError((o==null?void 0:o.msg)||"生成二维码失败,请重试")}finally{U.value=!1}},re=()=>{F.value&>(F.value)},Q=m(!1),n=m(null),O=m(null),V=S(()=>({...O.value||{},...n.value||{}})),yt=m([]),ft=m([]),ht=m([]),kt=m([]),bt=m(!1),H=(s,t)=>{if(!t)return"-";const o=s.find(r=>r.value===t);return o?o.name:t},pe=s=>(Array.isArray(s)?s:typeof s=="string"?s.split(/[,,、]/):[]).map(o=>H(kt.value,o.trim())).filter(Boolean).join("、")||"-",de=s=>Number(s)===0?"未婚":Number(s)===1?"已婚":Number(s)===2?"离异":"-",ce=async()=>{const[s,t,o,r]=await Promise.all([G({type:"diagnosis_type"}),G({type:"syndrome_type"}),G({type:"diabetes_type"}),G({type:"past_history"})]);yt.value=(s==null?void 0:s.diagnosis_type)||[],ft.value=(t==null?void 0:t.syndrome_type)||[],ht.value=(o==null?void 0:o.diabetes_type)||[],kt.value=(r==null?void 0:r.past_history)||[]},ve=async()=>{bt.value||(await ce(),bt.value=!0)},me=s=>Ot(s==null?void 0:s.diabetes_discovery_year)||!!(s!=null&&s.local_hospital_name)||!!(s!=null&&s.symptoms)||(Array.isArray(s==null?void 0:s.past_history)?s.past_history.length>0:!!(s!=null&&s.past_history)),_e=s=>!!(s!=null&&s.tongue_coating||s!=null&&s.pulse||s!=null&&s.treatment_principle||s!=null&&s.prescription),Ct=async s=>{P.value="detail",Q.value=!0,n.value=null,O.value=s;try{const[,t]=await Promise.all([ve().catch(o=>console.warn("加载详情字典失败:",o)),xe({id:s.id})]);if(n.value={...s,...t,appointment_id:s.id},t!=null&&t.patient_id)try{const o=await He({id:t.patient_id});n.value={...s,...t,...o,id:t.id||s.id,appointment_id:s.id,diagnosis_id:t.patient_id}}catch(o){console.warn("获取患者诊单详情失败:",o)}}catch(t){y.msgError((t==null?void 0:t.msg)||"获取详情失败"),P.value="list"}finally{Q.value=!1}},Dt=()=>{P.value="list",Q.value=!1},ge=2e4;let Y=null;return be(()=>{document.body.classList.add("h5-mode"),k(),Y=setInterval(()=>{k({silent:!0}).catch(()=>{})},ge)}),Ce(()=>{document.body.classList.remove("h5-mode"),Y!==null&&(clearInterval(Y),Y=null)}),(s,t)=>{var $t,Nt,Lt,St,Pt,It;const o=Ve,r=Ee,f=$e,ye=Le,fe=Pe,he=qe,Vt=ze,Et=Se;return i(),u("div",Ze,[P.value==="list"?(i(),u($,{key:0},[e("header",we,[e("div",Je,[c(o,{modelValue:_.patient_name,"onUpdate:modelValue":t[0]||(t[0]=l=>_.patient_name=l),placeholder:"患者姓名",clearable:"","prefix-icon":p(De),onKeyup:At(R,["enter"]),onClear:R},null,8,["modelValue","prefix-icon"]),c(r,{class:"apt-h5-search-btn",type:"primary",onClick:R},{default:v(()=>[...t[19]||(t[19]=[h("查询",-1)])]),_:1})]),e("div",ts,[(i(!0),u($,null,K(Kt.value,l=>(i(),u("span",{key:l.value,class:L(["apt-h5-chip",{active:X.value===l.value}]),onClick:E=>Xt(l.value)},[h(a(l.label)+" ",1),l.count?(i(),u("em",ss,a(l.count),1)):d("",!0)],10,es))),128))]),e("div",ls,[(i(),u($,null,K(jt,l=>e("span",{key:l.value||"all",class:L(["apt-h5-pill",{active:_.date_preset===l.value}]),onClick:E=>w(l.value)},a(l.label),11,as)),64))]),e("div",ns,[e("div",os,[t[20]||(t[20]=e("span",{class:"apt-h5-quick-label"},"确认",-1)),(i(),u($,null,K(Gt,l=>e("span",{key:l.value||"all",class:L(["apt-h5-pill",{active:_.diagnosis_confirmed===l.value}]),onClick:E=>Zt(l.value)},a(l.label),11,is)),64))]),c(r,{link:"",type:"primary",size:"small",class:"apt-h5-more-toggle",onClick:t[1]||(t[1]=l=>I.value=!I.value)},{default:v(()=>[h(a(I.value?"收起":"更多")+" ",1),c(f,{class:L({"rotate-180":I.value})},{default:v(()=>[c(p(Rt))]),_:1},8,["class"])]),_:1})]),at(e("div",us,[Ht.value?(i(),C(o,{key:0,modelValue:_.doctor_name,"onUpdate:modelValue":t[2]||(t[2]=l=>_.doctor_name=l),placeholder:"医生",clearable:"",size:"small",onKeyup:At(R,["enter"]),onClear:R},null,8,["modelValue"])):d("",!0),c(ye,{modelValue:N.value,"onUpdate:modelValue":t[3]||(t[3]=l=>N.value=l),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",size:"small",class:"apt-h5-date-range",onChange:wt},null,8,["modelValue"]),c(r,{size:"small",onClick:Jt},{default:v(()=>[...t[21]||(t[21]=[h("重置",-1)])]),_:1})],512),[[Ne,I.value]])]),at((i(),u("main",rs,[p(g).lists.length===0&&!p(g).loading?(i(),u("div",ps,[c(fe,{description:"暂无问诊","image-size":120})])):d("",!0),(i(!0),u($,null,K(p(g).lists,l=>(i(),u("article",{key:l.id,class:L(["apt-h5-card",se(l)])},[e("header",{class:"apt-h5-card-head",onClick:E=>Ct(l)},[e("div",cs,a((l.patient_name||"患").charAt(0)),1),e("div",vs,[e("div",ms,[h(a(l.patient_name||"-")+" ",1),l.gender===1||l.gender===0?(i(),u("span",_s,a(l.gender===1?"男":"女"),1)):d("",!0),l.age!=null?(i(),u("span",gs,a(l.age)+"岁",1)):d("",!0)]),e("div",ys,"#"+a(l.id)+" · "+a(Qt(l.patient_phone)||"-"),1)]),e("div",fs,[e("span",{class:L(["apt-h5-tag",ee(l.status)])},a(l.status_desc||pt(l.status)),3),l.diagnosis_confirmed?(i(),u("span",hs,"已确认")):(i(),u("span",ks,"未确认"))])],8,ds),e("section",{class:"apt-h5-card-body",onClick:E=>Ct(l)},[e("div",Cs,[t[22]||(t[22]=e("span",{class:"apt-h5-row-key"},"预约",-1)),e("span",Ds,a(l.appointment_date||"-")+" "+a(l.appointment_time||""),1)]),e("div",Vs,[t[23]||(t[23]=e("span",{class:"apt-h5-row-key"},"面诊类型",-1)),e("span",Es,a(p(Tt)(l.appointment_type)),1)]),e("div",$s,[t[24]||(t[24]=e("span",{class:"apt-h5-row-key"},"医生",-1)),e("span",Ns,a(l.doctor_name||"-"),1)]),e("div",Ls,[t[25]||(t[25]=e("span",{class:"apt-h5-row-key"},"助理",-1)),e("span",Ss,a(l.assistant_name||"-"),1)]),e("div",Ps,[t[26]||(t[26]=e("span",{class:"apt-h5-row-key"},"开方",-1)),e("span",Is,[l.has_prescription?(i(),u("span",As,"已开方")):(i(),u("span",Rs,"未开方")),l.has_prescription&&l.prescription_is_system_auto===1?(i(),u("span",Ts,"系统代开")):d("",!0)])]),l.remark?(i(),u("div",Ms,[t[27]||(t[27]=e("span",{class:"apt-h5-row-key"},"备注",-1)),e("span",qs,a(l.remark),1)])):d("",!0)],8,bs),e("footer",Os,[p(b)(["tcm.diagnosis/edit"])?(i(),C(r,{key:0,type:"primary",size:"small",plain:"",onClick:E=>ct(l)},{default:v(()=>[...t[28]||(t[28]=[h(" 编辑患者 ",-1)])]),_:1},8,["onClick"])):d("",!0),l.status!==3&&p(b)(["doctor.appointment/prescription"])?(i(),C(r,{key:1,type:"primary",size:"small",icon:p(Ie),onClick:E=>vt(l)},{default:v(()=>[h(a(p(j)(l.appointment_type)?"通话":"图文沟通"),1)]),_:2},1032,["icon","onClick"])):d("",!0),p(b)(["tcm.diagnosis/kaifang"])?(i(),C(r,{key:2,type:lt(l)==="查看"?"success":"primary",size:"small",plain:"",onClick:E=>mt(l)},{default:v(()=>[h(a(lt(l)),1)]),_:2},1032,["type","onClick"])):d("",!0),c(r,{size:"small",class:"apt-h5-more-btn",onClick:E=>ne(l)},{default:v(()=>[t[29]||(t[29]=h(" 更多",-1)),c(f,{class:"el-icon--right"},{default:v(()=>[c(p(Rt))]),_:1})]),_:1},8,["onClick"])])],2))),128)),Z.value?(i(),u("div",{key:1,class:"apt-h5-load-more",onClick:te},a(p(g).loading?"加载中...":"加载更多"),1)):d("",!0),!Z.value&&p(g).lists.length>0?(i(),u("div",zs,"没有更多了")):d("",!0)])),[[Et,p(g).loading]]),c(he,{modelValue:B.value,"onUpdate:modelValue":t[8]||(t[8]=l=>B.value=l),title:D.value?`${D.value.patient_name||"问诊"} · 更多操作`:"更多操作",direction:"btt",size:"auto","destroy-on-close":!0},{default:v(()=>[D.value?(i(),u("div",Bs,[D.value.status!==3&&p(j)(D.value.appointment_type)&&p(b)(["tcm.diagnosis/videoQr"])?(i(),u("button",{key:0,class:"apt-h5-action",onClick:t[4]||(t[4]=l=>x("videoQr"))},[c(f,null,{default:v(()=>[c(p(Ae))]),_:1}),t[30]||(t[30]=e("span",null,"视频二维码",-1))])):d("",!0),D.value.status!==3&&p(b)(["doctor.appointment/complete"])?(i(),u("button",{key:1,class:"apt-h5-action",onClick:t[5]||(t[5]=l=>x("complete"))},[c(f,null,{default:v(()=>[c(p(Re))]),_:1}),t[31]||(t[31]=e("span",null,"完成",-1))])):d("",!0),p(b)(["tcm.diagnosis/kaifang"])?(i(),u("button",{key:2,class:"apt-h5-action",onClick:t[6]||(t[6]=l=>x("case"))},[c(f,null,{default:v(()=>[c(p(Te))]),_:1}),t[32]||(t[32]=e("span",null,"病历",-1))])):d("",!0),D.value.status===1&&p(b)(["doctor.appointment/cancel"])?(i(),u("button",{key:3,class:"apt-h5-action apt-h5-action--danger",onClick:t[7]||(t[7]=l=>x("cancel"))},[c(f,null,{default:v(()=>[c(p(Me))]),_:1}),t[33]||(t[33]=e("span",null,"取消挂号",-1))])):d("",!0)])):d("",!0)]),_:1},8,["modelValue","title"])],64)):(i(),u($,{key:1},[e("header",xs,[e("button",{class:"apt-h5-back",onClick:Dt},[...t[34]||(t[34]=[e("span",null,"‹",-1),h(" 返回 ",-1)])]),e("div",Us,[e("strong",null,a((($t=n.value)==null?void 0:$t.patient_name)||((Nt=O.value)==null?void 0:Nt.patient_name)||"问诊详情"),1),e("small",null,a(((Lt=n.value)==null?void 0:Lt.appointment_date)||((St=O.value)==null?void 0:St.appointment_date)||"")+" "+a(((Pt=n.value)==null?void 0:Pt.appointment_time)||((It=O.value)==null?void 0:It.appointment_time)||""),1)])]),at((i(),u("main",Ws,[n.value?(i(),u($,{key:0},[e("section",Fs,[t[41]||(t[41]=e("h3",null,"预约信息",-1)),e("div",Qs,[e("div",null,[t[35]||(t[35]=e("span",null,"挂号ID",-1)),e("strong",null,a(n.value.id||"-"),1)]),e("div",null,[t[36]||(t[36]=e("span",null,"状态",-1)),e("strong",null,a(n.value.status_desc||pt(n.value.status)),1)]),e("div",null,[t[37]||(t[37]=e("span",null,"医生",-1)),e("strong",null,a(n.value.doctor_name||"-"),1)]),e("div",null,[t[38]||(t[38]=e("span",null,"预约时间",-1)),e("strong",null,a(n.value.appointment_date||"-")+" "+a(n.value.appointment_time||""),1)]),e("div",null,[t[39]||(t[39]=e("span",null,"时段",-1)),e("strong",null,a(n.value.period==="morning"?"上午":n.value.period==="afternoon"?"下午":"-"),1)]),e("div",null,[t[40]||(t[40]=e("span",null,"面诊类型",-1)),e("strong",null,a(p(Tt)(n.value.appointment_type)),1)])])]),e("section",Hs,[t[58]||(t[58]=e("h3",null,"患者信息",-1)),e("div",Ys,[e("div",null,[t[42]||(t[42]=e("span",null,"姓名",-1)),e("strong",null,a(n.value.patient_name||"-"),1)]),e("div",null,[t[43]||(t[43]=e("span",null,"手机号",-1)),e("strong",null,a(n.value.phone||n.value.patient_phone||"-"),1)]),e("div",Ks,[t[44]||(t[44]=e("span",null,"身份证号",-1)),e("strong",null,a(n.value.id_card||"-"),1)]),e("div",null,[t[45]||(t[45]=e("span",null,"性别",-1)),e("strong",null,a(n.value.gender===1?"男":n.value.gender===0?"女":"-"),1)]),e("div",null,[t[46]||(t[46]=e("span",null,"年龄",-1)),e("strong",null,a(n.value.age!=null?`${n.value.age}岁`:"-"),1)]),e("div",null,[t[47]||(t[47]=e("span",null,"诊断日期",-1)),e("strong",null,a(n.value.diagnosis_date||"-"),1)]),e("div",null,[t[48]||(t[48]=e("span",null,"婚姻状态",-1)),e("strong",null,a(de(n.value.marital_status)),1)]),e("div",null,[t[49]||(t[49]=e("span",null,"身高(cm)",-1)),e("strong",null,a(n.value.height??"-"),1)]),e("div",null,[t[50]||(t[50]=e("span",null,"体重(kg)",-1)),e("strong",null,a(n.value.weight??"-"),1)]),e("div",js,[t[51]||(t[51]=e("span",null,"地区",-1)),e("strong",null,a(n.value.region||"-"),1)]),e("div",null,[t[52]||(t[52]=e("span",null,"收缩压(mmHg)",-1)),e("strong",null,a(n.value.systolic_pressure??"-"),1)]),e("div",null,[t[53]||(t[53]=e("span",null,"舒张压(mmHg)",-1)),e("strong",null,a(n.value.diastolic_pressure??"-"),1)]),e("div",null,[t[54]||(t[54]=e("span",null,"空腹血糖(mmol/L)",-1)),e("strong",null,a(n.value.fasting_blood_sugar??"-"),1)]),e("div",null,[t[55]||(t[55]=e("span",null,"诊断类型",-1)),e("strong",null,a(H(yt.value,n.value.diagnosis_type)),1)]),e("div",null,[t[56]||(t[56]=e("span",null,"证型",-1)),e("strong",null,a(H(ft.value,n.value.syndrome_type)),1)]),e("div",null,[t[57]||(t[57]=e("span",null,"糖尿病期数",-1)),e("strong",null,a(H(ht.value,n.value.diabetes_type)),1)])])]),me(n.value)?(i(),u("section",Gs,[t[63]||(t[63]=e("h3",null,"病史信息",-1)),e("div",Xs,[p(Ot)(n.value.diabetes_discovery_year)?(i(),u("div",Zs,[t[59]||(t[59]=e("span",null,"发现糖尿病病史",-1)),e("strong",null,a(p(Xe)(n.value.diabetes_discovery_year)),1)])):d("",!0),n.value.local_hospital_name?(i(),u("div",ws,[t[60]||(t[60]=e("span",null,"当地就诊医院",-1)),e("strong",null,a(n.value.local_hospital_name),1)])):d("",!0),n.value.symptoms?(i(),u("div",Js,[t[61]||(t[61]=e("span",null,"症状补充",-1)),e("strong",null,a(n.value.symptoms),1)])):d("",!0),n.value.past_history&&n.value.past_history.length?(i(),u("div",tl,[t[62]||(t[62]=e("span",null,"既往史",-1)),e("strong",null,a(pe(n.value.past_history)),1)])):d("",!0)])])):d("",!0),_e(n.value)?(i(),u("section",el,[t[68]||(t[68]=e("h3",null,"诊断信息",-1)),e("div",sl,[n.value.tongue_coating?(i(),u("div",ll,[t[64]||(t[64]=e("span",null,"舌苔",-1)),e("strong",null,a(n.value.tongue_coating),1)])):d("",!0),n.value.pulse?(i(),u("div",al,[t[65]||(t[65]=e("span",null,"脉象",-1)),e("strong",null,a(n.value.pulse),1)])):d("",!0),n.value.treatment_principle?(i(),u("div",nl,[t[66]||(t[66]=e("span",null,"治则",-1)),e("strong",null,a(n.value.treatment_principle),1)])):d("",!0),n.value.prescription?(i(),u("div",ol,[t[67]||(t[67]=e("span",null,"处方",-1)),e("strong",null,a(n.value.prescription),1)])):d("",!0)])])):d("",!0),e("section",il,[t[69]||(t[69]=e("h3",null,"备注",-1)),e("p",null,a(n.value.remark||"无"),1)])],64)):d("",!0)])),[[Et,Q.value]]),n.value?(i(),u("footer",ul,[e("div",rl,[p(b)(["tcm.diagnosis/edit"])?(i(),C(r,{key:0,type:"primary",plain:"",onClick:t[9]||(t[9]=l=>ct(V.value))},{default:v(()=>[...t[70]||(t[70]=[h(" 编辑患者 ",-1)])]),_:1})):d("",!0),p(b)(["tcm.diagnosis/kaifang"])?(i(),C(r,{key:1,type:"primary",onClick:t[10]||(t[10]=l=>mt(V.value))},{default:v(()=>[h(a(lt(V.value)),1)]),_:1})):d("",!0),V.value.status!==3&&p(b)(["doctor.appointment/prescription"])?(i(),C(r,{key:2,type:"primary",plain:"",onClick:t[11]||(t[11]=l=>vt(V.value))},{default:v(()=>[h(a(p(j)(V.value.appointment_type)?"通话":"图文沟通"),1)]),_:1})):d("",!0),V.value.status!==3&&p(b)(["doctor.appointment/complete"])?(i(),C(r,{key:3,type:"success",plain:"",onClick:t[12]||(t[12]=l=>_t(V.value))},{default:v(()=>[...t[71]||(t[71]=[h(" 完成 ",-1)])]),_:1})):d("",!0)])])):d("",!0)],64)),c(Vt,{modelValue:q.value,"onUpdate:modelValue":t[14]||(t[14]=l=>q.value=l),title:"视频二维码","close-on-click-modal":!1,class:"apt-h5-qr-dialog"},{footer:v(()=>[c(r,{onClick:t[13]||(t[13]=l=>q.value=!1)},{default:v(()=>[...t[74]||(t[74]=[h("关闭",-1)])]),_:1}),U.value?d("",!0):(i(),C(r,{key:0,type:"primary",onClick:re},{default:v(()=>[...t[75]||(t[75]=[h("重新生成",-1)])]),_:1}))]),default:v(()=>{var l;return[e("div",pl,[U.value?(i(),u("div",dl,[c(f,{class:"is-loading",size:36},{default:v(()=>[c(p(Oe))]),_:1}),t[72]||(t[72]=e("div",null,"生成中...",-1))])):W.value?(i(),u("div",cl,[e("img",{src:W.value,alt:"小程序二维码",class:"apt-h5-qr-img"},null,8,vl),e("div",ml,[e("div",null,"患者:"+a(((l=F.value)==null?void 0:l.patient_name)||"-"),1),t[73]||(t[73]=e("div",null,"请使用微信扫描二维码",-1))])])):(i(),u("div",_l,"生成失败,请重试"))])]}),_:1},8,["modelValue"]),c(Vt,{modelValue:T.value,"onUpdate:modelValue":t[17]||(t[17]=l=>T.value=l),title:"完成问诊","close-on-click-modal":!1,class:"apt-h5-complete-dialog","destroy-on-close":""},{footer:v(()=>[c(r,{onClick:t[16]||(t[16]=l=>T.value=!1)},{default:v(()=>[...t[77]||(t[77]=[h("取消",-1)])]),_:1}),c(r,{type:"primary",loading:z.value,onClick:oe},{default:v(()=>[...t[78]||(t[78]=[h("确认完成",-1)])]),_:1},8,["loading"])]),default:v(()=>[e("div",gl,[t[76]||(t[76]=e("p",null,"确认患者已就诊完成?",-1)),st.value?(i(),C(o,{key:0,modelValue:M.value,"onUpdate:modelValue":t[15]||(t[15]=l=>M.value=l),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"填写完成备注,将追加到医生备注时间轴"},null,8,["modelValue"])):d("",!0)])]),_:1},8,["modelValue"]),c(p(Bt),{ref_key:"editRef",ref:J,onSuccess:t[18]||(t[18]=()=>k({silent:!0}))},null,512),c(p(xt),{ref_key:"prescriptionRef",ref:tt,onSuccess:ae},null,512),c(p(Ut),{ref_key:"chatDialogRef",ref:dt},null,512)])}}}),Pl=Ke(fl,[["__scopeId","data-v-08a4745f"]]);export{Pl as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-BuMVMky1.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-BSADvQNg.js","assets/index-Bkarz3gO.js","assets/index-deCJ4ja-.css","assets/perm-CHCBwnFR.js","assets/DailyMatrix-BkYJBu_D.js","assets/picker-BTh9eW9u.js","assets/index-CS5Wg0xx.js","assets/index-B3imPWFk.css","assets/index-oRynN2pP.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-Cqk_cdo9.js","assets/index-D0f1Mn00.css","assets/index-BJZwRQXE.js","assets/file-BjbV-eNx.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-VonOdKxB.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-BQogJqk-.js","assets/FollowupAudioReview-BDRNtxGL.js","assets/FollowupAudioField-Dz9Csp0b.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-2_yvVfnZ.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-PGnYdg0x.js","assets/RecordingPlaybackBlock-DDHsYga7.js","assets/RecordingVideoPlayer-B0kkGDId.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CO99W60y.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-mqnmyStx.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-aR2VA9u1.js","assets/doctor-DBvYeWd3.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-D83GYvN5.js","assets/patient-B_ifBl-W.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-Dk7f29yf.js","assets/PrescriptionOrderDetailDrawer-CX7YbddA.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-C_PSjf1W.js","assets/index-DAIDDabA.js","assets/medicine-DPIOyHj8.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CTRSsggc.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css","assets/index-CDvJ_gqb.js","assets/appointment-type-DJT6wPaT.js","assets/@tencentcloud/chat-Dqh0gV5b.js","assets/@tencentcloud/chat-uikit-engine-BOxL0feI.js","assets/tim-upload-plugin-CK05mjrC.js","assets/tim-profanity-filter-plugin-CIiDZ6v0.js","assets/@tencentcloud/call-engine-js-DCEY106C.js","assets/rtc-detect-TVc6uI0Q.js","assets/index-ma9pGSsz.css"])))=>i.map(i=>d[i]); +import{o as zt,aC as ke,ap as be,aq as Ce,q as i,r as u,F as $,s as e,v as c,bc as At,u as p,bB as De,aA as Ve,D as v,L as h,K as Ee,G as K,ae as L,T as a,P as d,w as $e,cm as Rt,ac as at,ad as Ne,O as C,az as Le,bn as Se,bC as Pe,dc as Ie,bF as Ae,at as Re,bI as Te,db as Me,B as qe,ba as Oe,aB as ze,cd as nt,al as ot,p as S,M as m}from"./.pnpm-CyuAWpdG.js";import{a as Tt,c as j}from"./appointment-type-DJT6wPaT.js";import{a as Mt,l as qt,m as Be,n as xe}from"./doctor-DBvYeWd3.js";import{g as Ue}from"./weapp-COeXC0ZY.js";import{Z as We,aa as Fe,X as Qe,ab as He}from"./tcm-BSADvQNg.js";import{u as Ye,j as y,n as G,_ as Ke}from"./index-Bkarz3gO.js";import{a as je}from"./patient-B_ifBl-W.js";import{u as Ge}from"./usePaging-CghUEVfD.js";import{i as Ot,f as Xe}from"./diabetes-discovery-display-B_wmGXQJ.js";import{h as b}from"./perm-CHCBwnFR.js";const Ze={class:"apt-h5"},we={class:"apt-h5-topbar"},Je={class:"apt-h5-search"},ts={class:"apt-h5-status apt-h5-scroll"},es=["onClick"],ss={key:0},ls={class:"apt-h5-date apt-h5-scroll"},as=["onClick"],ns={class:"apt-h5-quick"},os={class:"apt-h5-quick-group"},is=["onClick"],us={class:"apt-h5-more-filter"},rs={class:"apt-h5-list"},ps={key:0,class:"apt-h5-empty"},ds=["onClick"],cs={class:"apt-h5-avatar"},vs={class:"apt-h5-title"},ms={class:"apt-h5-name"},_s={key:0,class:"apt-h5-meta"},gs={key:1,class:"apt-h5-meta"},ys={class:"apt-h5-sub"},fs={class:"apt-h5-tags"},hs={key:0,class:"apt-h5-tag apt-h5-tag--ok"},ks={key:1,class:"apt-h5-tag apt-h5-tag--warn"},bs=["onClick"],Cs={class:"apt-h5-row"},Ds={class:"apt-h5-row-val"},Vs={class:"apt-h5-row"},Es={class:"apt-h5-row-val"},$s={class:"apt-h5-row"},Ns={class:"apt-h5-row-val"},Ls={class:"apt-h5-row"},Ss={class:"apt-h5-row-val"},Ps={class:"apt-h5-row"},Is={class:"apt-h5-row-val"},As={key:0,class:"apt-h5-inline-tag apt-h5-inline-tag--ok"},Rs={key:1,class:"apt-h5-inline-tag"},Ts={key:2,class:"apt-h5-inline-tag apt-h5-inline-tag--warn"},Ms={key:0,class:"apt-h5-row apt-h5-row--remark"},qs={class:"apt-h5-row-val"},Os={class:"apt-h5-card-foot"},zs={key:2,class:"apt-h5-no-more"},Bs={key:0,class:"apt-h5-actions"},xs={class:"apt-h5-detail-topbar"},Us={class:"apt-h5-detail-title"},Ws={class:"apt-h5-detail-page"},Fs={class:"apt-h5-detail-section"},Qs={class:"apt-h5-detail-grid"},Hs={class:"apt-h5-detail-section"},Ys={class:"apt-h5-detail-grid"},Ks={class:"apt-h5-detail-full"},js={class:"apt-h5-detail-full"},Gs={key:0,class:"apt-h5-detail-section"},Xs={class:"apt-h5-detail-grid"},Zs={key:0},ws={key:1},Js={key:2,class:"apt-h5-detail-full"},tl={key:3,class:"apt-h5-detail-full"},el={key:1,class:"apt-h5-detail-section"},sl={class:"apt-h5-detail-grid"},ll={key:0},al={key:1},nl={key:2,class:"apt-h5-detail-full"},ol={key:3,class:"apt-h5-detail-full"},il={class:"apt-h5-detail-section"},ul={key:0,class:"apt-h5-detail-footer-bar"},rl={class:"apt-h5-detail-footer"},pl={class:"apt-h5-qr"},dl={key:0,class:"apt-h5-qr-loading"},cl={key:1},vl=["src"],ml={class:"apt-h5-qr-meta"},_l={key:2,class:"apt-h5-qr-fail"},gl={class:"apt-h5-complete"},yl=zt({name:"tcmAppointmentH5"}),fl=zt({...yl,setup(hl){const Bt=nt(()=>ot(()=>import("./edit-BuMVMky1.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),xt=nt(()=>ot(()=>import("./index-C_PSjf1W.js"),__vite__mapDeps([56,1,2,57,58,4,5,59,60,3,61,62,63]))),Ut=nt(()=>ot(()=>import("./index-CDvJ_gqb.js"),__vite__mapDeps([66,1,2,16,4,5,49,3,67,41,40,68,69,70,71,72,73,74]))),it=Ye(),Wt=S(()=>it.userInfo),ut=()=>rt(new Date),rt=s=>{const t=o=>String(o).padStart(2,"0");return`${s.getFullYear()}-${t(s.getMonth()+1)}-${t(s.getDate())}`},Ft=s=>{const t=new Date;return t.setDate(t.getDate()+s),rt(t)},Qt=s=>!s||s.length<11?s:s.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),Ht=S(()=>{var t;const s=(t=Wt.value)==null?void 0:t.role_id;return Array.isArray(s)?!s.includes(1)&&!s.includes(2):s!==1&&s!==2}),_=ke({patient_name:"",doctor_name:"",status:1,start_date:ut(),end_date:ut(),date_preset:"today",diagnosis_confirmed:"",include_status_counts:0}),X=m("1"),P=m("list"),I=m(!1),N=m(""),A=m({1:0,2:0,3:0,4:0}),{pager:g,getLists:Yt}=Ge({fetchFun:Mt,params:_,firstLoading:!0}),Kt=S(()=>[{label:"待接诊",value:"1",count:A.value[1]},{label:"全部",value:"all",count:0},{label:"已过号",value:"4",count:A.value[4]},{label:"已取消",value:"2",count:A.value[2]},{label:"已完成",value:"3",count:A.value[3]}]),jt=[{label:"昨天",value:"yesterday"},{label:"前天",value:"day_before"},{label:"今天",value:"today"},{label:"明天",value:"tomorrow"},{label:"后天",value:"day_after"},{label:"不限",value:""}],Gt=[{label:"全部",value:""},{label:"已确认",value:"1"},{label:"未确认",value:"0"}],Z=S(()=>g.lists.length<(g.count||0)),k=async s=>{var t;_.include_status_counts=1;try{await Yt(s);const o=(t=g.extend)==null?void 0:t.status_count;o&&[1,2,3,4].forEach(r=>{const f=o[r]??o[String(r)];A.value[r]=typeof f=="number"?f:0})}finally{_.include_status_counts=0}},R=()=>{g.page=1,k()},Xt=s=>{X.value=s,_.status=s==="all"?"":Number(s),g.page=1,k()},w=s=>{if(_.date_preset=s,N.value="",!s)_.start_date="",_.end_date="";else{const o=Ft({yesterday:-1,day_before:-2,today:0,tomorrow:1,day_after:2}[s]??0);_.start_date=o,_.end_date=o}g.page=1,k()},Zt=s=>{_.diagnosis_confirmed=s,g.page=1,k()},wt=()=>{if(!N.value){w("");return}_.date_preset="",_.start_date=N.value[0],_.end_date=N.value[1],g.page=1,k()},Jt=()=>{_.patient_name="",_.doctor_name="",_.diagnosis_confirmed="",X.value="1",_.status=1,w("today")},te=async()=>{if(g.loading||!Z.value)return;const s=(g.page||1)+1;g.loading=!0;try{const t=await Mt({page_no:s,page_size:g.size,..._,include_status_counts:0});g.page=s,g.lists.push(...(t==null?void 0:t.lists)||[]),g.count=(t==null?void 0:t.count)??g.count}finally{g.loading=!1}},pt=s=>{const t=Number(s);return t===1?"待接诊":t===2?"已取消":t===3?"已完成":t===4?"已过号":"-"},ee=s=>{const t=Number(s);return{"apt-h5-tag--ok":t===1||t===3,"apt-h5-tag--gray":t===2,"apt-h5-tag--danger":t===4}},se=s=>({"apt-h5-card--done":Number(s.status)===3,"apt-h5-card--cancel":Number(s.status)===2,"apt-h5-card--missed":Number(s.status)===4}),J=m(),tt=m(),dt=m(),le=["doctor.appointment/addDoctorNote"],T=m(!1),z=m(!1),M=m(""),et=m(null),st=S(()=>b(le)),ct=s=>{var t;if(!s.patient_id){y.msgWarning("该预约没有关联诊单信息");return}(t=J.value)==null||t.open("edit",s.patient_id)},vt=async s=>{var r;const t=Number(s.source_patient_id||0),o=Number(s.diagnosis_id||0);if(!t){y.msgWarning("患者信息不完整");return}if(!o){y.msgWarning("预约信息不完整,无法发起聊天");return}try{const f=await We({patient_id:t,diagnosis_id:o,appointment_id:Number(s.id)});(r=dt.value)==null||r.open({patientId:t,patientName:s.patient_name,diagnosisId:o,appointmentId:Number(s.id),appointmentType:s.appointment_type,signatureData:f})}catch(f){y.msgError((f==null?void 0:f.msg)||(f==null?void 0:f.message)||"获取通话签名失败")}},lt=s=>(s==null?void 0:s.prescription_audit_status)===1&&Number(s==null?void 0:s.prescription_void_status)!==1?"查看":"开方",mt=s=>{var t;if(!s.diagnosis_id&&!s.patient_id){y.msgWarning("该预约缺少诊单信息,请先编辑患者");return}(t=tt.value)==null||t.open(s)},ae=()=>{var s,t;k(),(t=(s=J.value)==null?void 0:s.refreshCaseList)==null||t.call(s)},B=m(!1),D=m(null),ne=s=>{D.value=s,B.value=!0},x=s=>{const t=D.value;B.value=!1,t&&(s==="videoQr"&>(t),s==="complete"&&_t(t),s==="case"&&ue(t),s==="cancel"&&ie(t))},_t=async s=>{if(et.value=s,M.value="",st.value){T.value=!0;return}try{await y.confirm("确认患者已就诊完成?"),await qt({id:s.id}),y.msgSuccess("操作成功"),k()}catch(t){t!=="cancel"&&y.msgError((t==null?void 0:t.msg)||"操作失败")}},oe=async()=>{const s=et.value;if(!(!(s!=null&&s.id)||z.value)){z.value=!0;try{const t=M.value.trim();await qt({id:s.id});let o="";if(st.value&&t){const r=s.patient_id||s.diagnosis_id;if(r)try{await je({diagnosis_id:Number(r),content:t})}catch{o="问诊已完成,但备注未保存"}else o="问诊已完成,但该预约没有关联诊单,备注未保存"}o?y.msgWarning(o):y.msgSuccess("操作成功"),T.value=!1,M.value="",et.value=null,P.value==="detail"&&Dt(),k()}catch(t){y.msgError((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"操作失败")}finally{z.value=!1}}},ie=async s=>{try{await y.confirm("确定要取消该挂号吗?"),await Be({id:s.id}),y.msgSuccess("取消成功"),k()}catch(t){t!=="cancel"&&y.msgError((t==null?void 0:t.msg)||"取消失败")}},ue=async s=>{var t;try{const o=await Fe({appointment_id:s.id});o!=null&&o.id?(t=tt.value)==null||t.openById(o.id):y.msgWarning("该预约暂无病历记录,请先开方")}catch(o){y.msgError((o==null?void 0:o.msg)||"获取病历失败")}},q=m(!1),U=m(!1),W=m(""),F=m(null),gt=async s=>{var t;if(!j(s.appointment_type)){y.msgWarning("仅视频问诊可生成视频二维码");return}if(!s.patient_id){y.msgWarning("患者信息不完整");return}F.value=s,q.value=!0,U.value=!0,W.value="";try{const o=await Ue();if(!(o!=null&&o.app_id)){y.msgError("小程序未配置,请先配置小程序信息"),q.value=!1;return}const r=await Qe({doctor_id:s.doctor_id||"",patient_id:s.patient_id,share_user_id:((t=it.userInfo)==null?void 0:t.id)||"",mini_program_path:"pages/login/login"});r!=null&&r.qrcode_url?W.value=r.qrcode_url:y.msgError("二维码生成失败")}catch(o){y.msgError((o==null?void 0:o.msg)||"生成二维码失败,请重试")}finally{U.value=!1}},re=()=>{F.value&>(F.value)},Q=m(!1),n=m(null),O=m(null),V=S(()=>({...O.value||{},...n.value||{}})),yt=m([]),ft=m([]),ht=m([]),kt=m([]),bt=m(!1),H=(s,t)=>{if(!t)return"-";const o=s.find(r=>r.value===t);return o?o.name:t},pe=s=>(Array.isArray(s)?s:typeof s=="string"?s.split(/[,,、]/):[]).map(o=>H(kt.value,o.trim())).filter(Boolean).join("、")||"-",de=s=>Number(s)===0?"未婚":Number(s)===1?"已婚":Number(s)===2?"离异":"-",ce=async()=>{const[s,t,o,r]=await Promise.all([G({type:"diagnosis_type"}),G({type:"syndrome_type"}),G({type:"diabetes_type"}),G({type:"past_history"})]);yt.value=(s==null?void 0:s.diagnosis_type)||[],ft.value=(t==null?void 0:t.syndrome_type)||[],ht.value=(o==null?void 0:o.diabetes_type)||[],kt.value=(r==null?void 0:r.past_history)||[]},ve=async()=>{bt.value||(await ce(),bt.value=!0)},me=s=>Ot(s==null?void 0:s.diabetes_discovery_year)||!!(s!=null&&s.local_hospital_name)||!!(s!=null&&s.symptoms)||(Array.isArray(s==null?void 0:s.past_history)?s.past_history.length>0:!!(s!=null&&s.past_history)),_e=s=>!!(s!=null&&s.tongue_coating||s!=null&&s.pulse||s!=null&&s.treatment_principle||s!=null&&s.prescription),Ct=async s=>{P.value="detail",Q.value=!0,n.value=null,O.value=s;try{const[,t]=await Promise.all([ve().catch(o=>console.warn("加载详情字典失败:",o)),xe({id:s.id})]);if(n.value={...s,...t,appointment_id:s.id},t!=null&&t.patient_id)try{const o=await He({id:t.patient_id});n.value={...s,...t,...o,id:t.id||s.id,appointment_id:s.id,diagnosis_id:t.patient_id}}catch(o){console.warn("获取患者诊单详情失败:",o)}}catch(t){y.msgError((t==null?void 0:t.msg)||"获取详情失败"),P.value="list"}finally{Q.value=!1}},Dt=()=>{P.value="list",Q.value=!1},ge=2e4;let Y=null;return be(()=>{document.body.classList.add("h5-mode"),k(),Y=setInterval(()=>{k({silent:!0}).catch(()=>{})},ge)}),Ce(()=>{document.body.classList.remove("h5-mode"),Y!==null&&(clearInterval(Y),Y=null)}),(s,t)=>{var $t,Nt,Lt,St,Pt,It;const o=Ve,r=Ee,f=$e,ye=Le,fe=Pe,he=qe,Vt=ze,Et=Se;return i(),u("div",Ze,[P.value==="list"?(i(),u($,{key:0},[e("header",we,[e("div",Je,[c(o,{modelValue:_.patient_name,"onUpdate:modelValue":t[0]||(t[0]=l=>_.patient_name=l),placeholder:"患者姓名",clearable:"","prefix-icon":p(De),onKeyup:At(R,["enter"]),onClear:R},null,8,["modelValue","prefix-icon"]),c(r,{class:"apt-h5-search-btn",type:"primary",onClick:R},{default:v(()=>[...t[19]||(t[19]=[h("查询",-1)])]),_:1})]),e("div",ts,[(i(!0),u($,null,K(Kt.value,l=>(i(),u("span",{key:l.value,class:L(["apt-h5-chip",{active:X.value===l.value}]),onClick:E=>Xt(l.value)},[h(a(l.label)+" ",1),l.count?(i(),u("em",ss,a(l.count),1)):d("",!0)],10,es))),128))]),e("div",ls,[(i(),u($,null,K(jt,l=>e("span",{key:l.value||"all",class:L(["apt-h5-pill",{active:_.date_preset===l.value}]),onClick:E=>w(l.value)},a(l.label),11,as)),64))]),e("div",ns,[e("div",os,[t[20]||(t[20]=e("span",{class:"apt-h5-quick-label"},"确认",-1)),(i(),u($,null,K(Gt,l=>e("span",{key:l.value||"all",class:L(["apt-h5-pill",{active:_.diagnosis_confirmed===l.value}]),onClick:E=>Zt(l.value)},a(l.label),11,is)),64))]),c(r,{link:"",type:"primary",size:"small",class:"apt-h5-more-toggle",onClick:t[1]||(t[1]=l=>I.value=!I.value)},{default:v(()=>[h(a(I.value?"收起":"更多")+" ",1),c(f,{class:L({"rotate-180":I.value})},{default:v(()=>[c(p(Rt))]),_:1},8,["class"])]),_:1})]),at(e("div",us,[Ht.value?(i(),C(o,{key:0,modelValue:_.doctor_name,"onUpdate:modelValue":t[2]||(t[2]=l=>_.doctor_name=l),placeholder:"医生",clearable:"",size:"small",onKeyup:At(R,["enter"]),onClear:R},null,8,["modelValue"])):d("",!0),c(ye,{modelValue:N.value,"onUpdate:modelValue":t[3]||(t[3]=l=>N.value=l),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",size:"small",class:"apt-h5-date-range",onChange:wt},null,8,["modelValue"]),c(r,{size:"small",onClick:Jt},{default:v(()=>[...t[21]||(t[21]=[h("重置",-1)])]),_:1})],512),[[Ne,I.value]])]),at((i(),u("main",rs,[p(g).lists.length===0&&!p(g).loading?(i(),u("div",ps,[c(fe,{description:"暂无问诊","image-size":120})])):d("",!0),(i(!0),u($,null,K(p(g).lists,l=>(i(),u("article",{key:l.id,class:L(["apt-h5-card",se(l)])},[e("header",{class:"apt-h5-card-head",onClick:E=>Ct(l)},[e("div",cs,a((l.patient_name||"患").charAt(0)),1),e("div",vs,[e("div",ms,[h(a(l.patient_name||"-")+" ",1),l.gender===1||l.gender===0?(i(),u("span",_s,a(l.gender===1?"男":"女"),1)):d("",!0),l.age!=null?(i(),u("span",gs,a(l.age)+"岁",1)):d("",!0)]),e("div",ys,"#"+a(l.id)+" · "+a(Qt(l.patient_phone)||"-"),1)]),e("div",fs,[e("span",{class:L(["apt-h5-tag",ee(l.status)])},a(l.status_desc||pt(l.status)),3),l.diagnosis_confirmed?(i(),u("span",hs,"已确认")):(i(),u("span",ks,"未确认"))])],8,ds),e("section",{class:"apt-h5-card-body",onClick:E=>Ct(l)},[e("div",Cs,[t[22]||(t[22]=e("span",{class:"apt-h5-row-key"},"预约",-1)),e("span",Ds,a(l.appointment_date||"-")+" "+a(l.appointment_time||""),1)]),e("div",Vs,[t[23]||(t[23]=e("span",{class:"apt-h5-row-key"},"面诊类型",-1)),e("span",Es,a(p(Tt)(l.appointment_type)),1)]),e("div",$s,[t[24]||(t[24]=e("span",{class:"apt-h5-row-key"},"医生",-1)),e("span",Ns,a(l.doctor_name||"-"),1)]),e("div",Ls,[t[25]||(t[25]=e("span",{class:"apt-h5-row-key"},"助理",-1)),e("span",Ss,a(l.assistant_name||"-"),1)]),e("div",Ps,[t[26]||(t[26]=e("span",{class:"apt-h5-row-key"},"开方",-1)),e("span",Is,[l.has_prescription?(i(),u("span",As,"已开方")):(i(),u("span",Rs,"未开方")),l.has_prescription&&l.prescription_is_system_auto===1?(i(),u("span",Ts,"系统代开")):d("",!0)])]),l.remark?(i(),u("div",Ms,[t[27]||(t[27]=e("span",{class:"apt-h5-row-key"},"备注",-1)),e("span",qs,a(l.remark),1)])):d("",!0)],8,bs),e("footer",Os,[p(b)(["tcm.diagnosis/edit"])?(i(),C(r,{key:0,type:"primary",size:"small",plain:"",onClick:E=>ct(l)},{default:v(()=>[...t[28]||(t[28]=[h(" 编辑患者 ",-1)])]),_:1},8,["onClick"])):d("",!0),l.status!==3&&p(b)(["doctor.appointment/prescription"])?(i(),C(r,{key:1,type:"primary",size:"small",icon:p(Ie),onClick:E=>vt(l)},{default:v(()=>[h(a(p(j)(l.appointment_type)?"通话":"图文沟通"),1)]),_:2},1032,["icon","onClick"])):d("",!0),p(b)(["tcm.diagnosis/kaifang"])?(i(),C(r,{key:2,type:lt(l)==="查看"?"success":"primary",size:"small",plain:"",onClick:E=>mt(l)},{default:v(()=>[h(a(lt(l)),1)]),_:2},1032,["type","onClick"])):d("",!0),c(r,{size:"small",class:"apt-h5-more-btn",onClick:E=>ne(l)},{default:v(()=>[t[29]||(t[29]=h(" 更多",-1)),c(f,{class:"el-icon--right"},{default:v(()=>[c(p(Rt))]),_:1})]),_:1},8,["onClick"])])],2))),128)),Z.value?(i(),u("div",{key:1,class:"apt-h5-load-more",onClick:te},a(p(g).loading?"加载中...":"加载更多"),1)):d("",!0),!Z.value&&p(g).lists.length>0?(i(),u("div",zs,"没有更多了")):d("",!0)])),[[Et,p(g).loading]]),c(he,{modelValue:B.value,"onUpdate:modelValue":t[8]||(t[8]=l=>B.value=l),title:D.value?`${D.value.patient_name||"问诊"} · 更多操作`:"更多操作",direction:"btt",size:"auto","destroy-on-close":!0},{default:v(()=>[D.value?(i(),u("div",Bs,[D.value.status!==3&&p(j)(D.value.appointment_type)&&p(b)(["tcm.diagnosis/videoQr"])?(i(),u("button",{key:0,class:"apt-h5-action",onClick:t[4]||(t[4]=l=>x("videoQr"))},[c(f,null,{default:v(()=>[c(p(Ae))]),_:1}),t[30]||(t[30]=e("span",null,"视频二维码",-1))])):d("",!0),D.value.status!==3&&p(b)(["doctor.appointment/complete"])?(i(),u("button",{key:1,class:"apt-h5-action",onClick:t[5]||(t[5]=l=>x("complete"))},[c(f,null,{default:v(()=>[c(p(Re))]),_:1}),t[31]||(t[31]=e("span",null,"完成",-1))])):d("",!0),p(b)(["tcm.diagnosis/kaifang"])?(i(),u("button",{key:2,class:"apt-h5-action",onClick:t[6]||(t[6]=l=>x("case"))},[c(f,null,{default:v(()=>[c(p(Te))]),_:1}),t[32]||(t[32]=e("span",null,"病历",-1))])):d("",!0),D.value.status===1&&p(b)(["doctor.appointment/cancel"])?(i(),u("button",{key:3,class:"apt-h5-action apt-h5-action--danger",onClick:t[7]||(t[7]=l=>x("cancel"))},[c(f,null,{default:v(()=>[c(p(Me))]),_:1}),t[33]||(t[33]=e("span",null,"取消挂号",-1))])):d("",!0)])):d("",!0)]),_:1},8,["modelValue","title"])],64)):(i(),u($,{key:1},[e("header",xs,[e("button",{class:"apt-h5-back",onClick:Dt},[...t[34]||(t[34]=[e("span",null,"‹",-1),h(" 返回 ",-1)])]),e("div",Us,[e("strong",null,a((($t=n.value)==null?void 0:$t.patient_name)||((Nt=O.value)==null?void 0:Nt.patient_name)||"问诊详情"),1),e("small",null,a(((Lt=n.value)==null?void 0:Lt.appointment_date)||((St=O.value)==null?void 0:St.appointment_date)||"")+" "+a(((Pt=n.value)==null?void 0:Pt.appointment_time)||((It=O.value)==null?void 0:It.appointment_time)||""),1)])]),at((i(),u("main",Ws,[n.value?(i(),u($,{key:0},[e("section",Fs,[t[41]||(t[41]=e("h3",null,"预约信息",-1)),e("div",Qs,[e("div",null,[t[35]||(t[35]=e("span",null,"挂号ID",-1)),e("strong",null,a(n.value.id||"-"),1)]),e("div",null,[t[36]||(t[36]=e("span",null,"状态",-1)),e("strong",null,a(n.value.status_desc||pt(n.value.status)),1)]),e("div",null,[t[37]||(t[37]=e("span",null,"医生",-1)),e("strong",null,a(n.value.doctor_name||"-"),1)]),e("div",null,[t[38]||(t[38]=e("span",null,"预约时间",-1)),e("strong",null,a(n.value.appointment_date||"-")+" "+a(n.value.appointment_time||""),1)]),e("div",null,[t[39]||(t[39]=e("span",null,"时段",-1)),e("strong",null,a(n.value.period==="morning"?"上午":n.value.period==="afternoon"?"下午":"-"),1)]),e("div",null,[t[40]||(t[40]=e("span",null,"面诊类型",-1)),e("strong",null,a(p(Tt)(n.value.appointment_type)),1)])])]),e("section",Hs,[t[58]||(t[58]=e("h3",null,"患者信息",-1)),e("div",Ys,[e("div",null,[t[42]||(t[42]=e("span",null,"姓名",-1)),e("strong",null,a(n.value.patient_name||"-"),1)]),e("div",null,[t[43]||(t[43]=e("span",null,"手机号",-1)),e("strong",null,a(n.value.phone||n.value.patient_phone||"-"),1)]),e("div",Ks,[t[44]||(t[44]=e("span",null,"身份证号",-1)),e("strong",null,a(n.value.id_card||"-"),1)]),e("div",null,[t[45]||(t[45]=e("span",null,"性别",-1)),e("strong",null,a(n.value.gender===1?"男":n.value.gender===0?"女":"-"),1)]),e("div",null,[t[46]||(t[46]=e("span",null,"年龄",-1)),e("strong",null,a(n.value.age!=null?`${n.value.age}岁`:"-"),1)]),e("div",null,[t[47]||(t[47]=e("span",null,"诊断日期",-1)),e("strong",null,a(n.value.diagnosis_date||"-"),1)]),e("div",null,[t[48]||(t[48]=e("span",null,"婚姻状态",-1)),e("strong",null,a(de(n.value.marital_status)),1)]),e("div",null,[t[49]||(t[49]=e("span",null,"身高(cm)",-1)),e("strong",null,a(n.value.height??"-"),1)]),e("div",null,[t[50]||(t[50]=e("span",null,"体重(kg)",-1)),e("strong",null,a(n.value.weight??"-"),1)]),e("div",js,[t[51]||(t[51]=e("span",null,"地区",-1)),e("strong",null,a(n.value.region||"-"),1)]),e("div",null,[t[52]||(t[52]=e("span",null,"收缩压(mmHg)",-1)),e("strong",null,a(n.value.systolic_pressure??"-"),1)]),e("div",null,[t[53]||(t[53]=e("span",null,"舒张压(mmHg)",-1)),e("strong",null,a(n.value.diastolic_pressure??"-"),1)]),e("div",null,[t[54]||(t[54]=e("span",null,"空腹血糖(mmol/L)",-1)),e("strong",null,a(n.value.fasting_blood_sugar??"-"),1)]),e("div",null,[t[55]||(t[55]=e("span",null,"诊断类型",-1)),e("strong",null,a(H(yt.value,n.value.diagnosis_type)),1)]),e("div",null,[t[56]||(t[56]=e("span",null,"证型",-1)),e("strong",null,a(H(ft.value,n.value.syndrome_type)),1)]),e("div",null,[t[57]||(t[57]=e("span",null,"糖尿病期数",-1)),e("strong",null,a(H(ht.value,n.value.diabetes_type)),1)])])]),me(n.value)?(i(),u("section",Gs,[t[63]||(t[63]=e("h3",null,"病史信息",-1)),e("div",Xs,[p(Ot)(n.value.diabetes_discovery_year)?(i(),u("div",Zs,[t[59]||(t[59]=e("span",null,"发现糖尿病病史",-1)),e("strong",null,a(p(Xe)(n.value.diabetes_discovery_year)),1)])):d("",!0),n.value.local_hospital_name?(i(),u("div",ws,[t[60]||(t[60]=e("span",null,"当地就诊医院",-1)),e("strong",null,a(n.value.local_hospital_name),1)])):d("",!0),n.value.symptoms?(i(),u("div",Js,[t[61]||(t[61]=e("span",null,"症状补充",-1)),e("strong",null,a(n.value.symptoms),1)])):d("",!0),n.value.past_history&&n.value.past_history.length?(i(),u("div",tl,[t[62]||(t[62]=e("span",null,"既往史",-1)),e("strong",null,a(pe(n.value.past_history)),1)])):d("",!0)])])):d("",!0),_e(n.value)?(i(),u("section",el,[t[68]||(t[68]=e("h3",null,"诊断信息",-1)),e("div",sl,[n.value.tongue_coating?(i(),u("div",ll,[t[64]||(t[64]=e("span",null,"舌苔",-1)),e("strong",null,a(n.value.tongue_coating),1)])):d("",!0),n.value.pulse?(i(),u("div",al,[t[65]||(t[65]=e("span",null,"脉象",-1)),e("strong",null,a(n.value.pulse),1)])):d("",!0),n.value.treatment_principle?(i(),u("div",nl,[t[66]||(t[66]=e("span",null,"治则",-1)),e("strong",null,a(n.value.treatment_principle),1)])):d("",!0),n.value.prescription?(i(),u("div",ol,[t[67]||(t[67]=e("span",null,"处方",-1)),e("strong",null,a(n.value.prescription),1)])):d("",!0)])])):d("",!0),e("section",il,[t[69]||(t[69]=e("h3",null,"备注",-1)),e("p",null,a(n.value.remark||"无"),1)])],64)):d("",!0)])),[[Et,Q.value]]),n.value?(i(),u("footer",ul,[e("div",rl,[p(b)(["tcm.diagnosis/edit"])?(i(),C(r,{key:0,type:"primary",plain:"",onClick:t[9]||(t[9]=l=>ct(V.value))},{default:v(()=>[...t[70]||(t[70]=[h(" 编辑患者 ",-1)])]),_:1})):d("",!0),p(b)(["tcm.diagnosis/kaifang"])?(i(),C(r,{key:1,type:"primary",onClick:t[10]||(t[10]=l=>mt(V.value))},{default:v(()=>[h(a(lt(V.value)),1)]),_:1})):d("",!0),V.value.status!==3&&p(b)(["doctor.appointment/prescription"])?(i(),C(r,{key:2,type:"primary",plain:"",onClick:t[11]||(t[11]=l=>vt(V.value))},{default:v(()=>[h(a(p(j)(V.value.appointment_type)?"通话":"图文沟通"),1)]),_:1})):d("",!0),V.value.status!==3&&p(b)(["doctor.appointment/complete"])?(i(),C(r,{key:3,type:"success",plain:"",onClick:t[12]||(t[12]=l=>_t(V.value))},{default:v(()=>[...t[71]||(t[71]=[h(" 完成 ",-1)])]),_:1})):d("",!0)])])):d("",!0)],64)),c(Vt,{modelValue:q.value,"onUpdate:modelValue":t[14]||(t[14]=l=>q.value=l),title:"视频二维码","close-on-click-modal":!1,class:"apt-h5-qr-dialog"},{footer:v(()=>[c(r,{onClick:t[13]||(t[13]=l=>q.value=!1)},{default:v(()=>[...t[74]||(t[74]=[h("关闭",-1)])]),_:1}),U.value?d("",!0):(i(),C(r,{key:0,type:"primary",onClick:re},{default:v(()=>[...t[75]||(t[75]=[h("重新生成",-1)])]),_:1}))]),default:v(()=>{var l;return[e("div",pl,[U.value?(i(),u("div",dl,[c(f,{class:"is-loading",size:36},{default:v(()=>[c(p(Oe))]),_:1}),t[72]||(t[72]=e("div",null,"生成中...",-1))])):W.value?(i(),u("div",cl,[e("img",{src:W.value,alt:"小程序二维码",class:"apt-h5-qr-img"},null,8,vl),e("div",ml,[e("div",null,"患者:"+a(((l=F.value)==null?void 0:l.patient_name)||"-"),1),t[73]||(t[73]=e("div",null,"请使用微信扫描二维码",-1))])])):(i(),u("div",_l,"生成失败,请重试"))])]}),_:1},8,["modelValue"]),c(Vt,{modelValue:T.value,"onUpdate:modelValue":t[17]||(t[17]=l=>T.value=l),title:"完成问诊","close-on-click-modal":!1,class:"apt-h5-complete-dialog","destroy-on-close":""},{footer:v(()=>[c(r,{onClick:t[16]||(t[16]=l=>T.value=!1)},{default:v(()=>[...t[77]||(t[77]=[h("取消",-1)])]),_:1}),c(r,{type:"primary",loading:z.value,onClick:oe},{default:v(()=>[...t[78]||(t[78]=[h("确认完成",-1)])]),_:1},8,["loading"])]),default:v(()=>[e("div",gl,[t[76]||(t[76]=e("p",null,"确认患者已就诊完成?",-1)),st.value?(i(),C(o,{key:0,modelValue:M.value,"onUpdate:modelValue":t[15]||(t[15]=l=>M.value=l),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"填写完成备注,将追加到医生备注时间轴"},null,8,["modelValue"])):d("",!0)])]),_:1},8,["modelValue"]),c(p(Bt),{ref_key:"editRef",ref:J,onSuccess:t[18]||(t[18]=()=>k({silent:!0}))},null,512),c(p(xt),{ref_key:"prescriptionRef",ref:tt,onSuccess:ae},null,512),c(p(Ut),{ref_key:"chatDialogRef",ref:dt},null,512)])}}}),Pl=Ke(fl,[["__scopeId","data-v-08a4745f"]]);export{Pl as default}; diff --git a/server/public/admin/assets/login-pFp7rOH_.js b/server/public/admin/assets/login-BBpsAvZz.js similarity index 98% rename from server/public/admin/assets/login-pFp7rOH_.js rename to server/public/admin/assets/login-BBpsAvZz.js index 6f7c1ee64..8661e7344 100644 --- a/server/public/admin/assets/login-pFp7rOH_.js +++ b/server/public/admin/assets/login-BBpsAvZz.js @@ -1 +1 @@ -import{o as le,Q as ce,W as de,R as ue,n as q,ap as me,q as c,r as d,s,v as a,T as D,D as i,u,ba as M,w as _e,F as I,be as pe,L as z,bf as we,P as b,bb as fe,aA as ge,bc as T,bd as he,bg as ve,K as ke,a8 as Q,M as m,p as xe,aC as ye,E as P}from"./.pnpm-CyuAWpdG.js";import{e as be,u as Ce,f as G,A as H,a as Le,h as Ue,c as Ee,i as Re,P as Ve,_ as We}from"./index-Dxvz9lb1.js";import{u as qe}from"./useLockFn-d8ytjraO.js";import{_ as Ie}from"./footer.vue_vue_type_script_setup_true_lang-DVmBDxqU.js";const ze={class:"login flex flex-col"},Pe={class:"flex-1 flex items-center justify-center"},Se={class:"login-card flex rounded-md overflow-hidden"},Ae={class:"flex-1 h-full hidden md:inline-block"},Fe={class:"login-form bg-body flex flex-col justify-center px-10 py-10 md:w-[420px] w-[380px] flex-none mx-auto"},Ne={class:"text-center text-3xl font-medium mb-8"},$e={key:0,class:"text-center py-10"},je={class:"text-gray-500"},Be={key:0,class:"flex justify-center mb-6"},Ke={class:"mb-5"},De={class:"wxwork-qrcode-wrap"},Me={key:0,class:"text-center py-10"},Te={key:1,id:"wxwork_qrcode_container",class:"wxwork-qrcode"},Qe={key:3,class:"iam-login-alternative","aria-label":"其他登录方式"},Ge={class:"iam-login-entry__content"},He={class:"iam-login-entry__arrow","aria-hidden":"true"},Je=le({__name:"login",setup(Oe){const S=Q(),A=Q(),J=be(),C=Ce(),L=ce(),_=de(),g=m(!1),F=xe(()=>J.config),l=ye({account:"",password:""}),O={account:[{required:!0,message:"请输入账号",trigger:["blur"]}],password:[{required:!0,message:"请输入密码",trigger:["blur"]}]},U=m(!1),E=m(""),h=m(!1);let N=!1;const X=async()=>{try{const o=await Re(),e=new URL((o==null?void 0:o.loginUrl)||"",window.location.origin);(o==null?void 0:o.enabled)===!0&&e.protocol==="https:"&&(E.value=e.href,U.value=!0)}catch{}},Y=()=>{U.value&&E.value&&window.location.assign(E.value)},Z=async(o,e)=>{if(N)return;N=!0;const n=new URL(window.location.href);if(n.searchParams.delete("iam_ticket"),n.searchParams.delete("iam_error"),n.searchParams.delete("code"),n.searchParams.delete("state"),window.history.replaceState(window.history.state,"",n.pathname+n.search+n.hash),e||!o){P.error(e||"统一账号登录凭证无效,请重新登录");return}h.value=!0;try{const t=await C.iamLogin(o);if(t.is_paw===0){await _.push("/change-password");return}if(t.need_bind_work_wechat){await _.push("/bind-work-wechat");return}W()}catch(t){P.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"统一账号登录失败,请重新登录或使用账号密码"),p.value="account"}finally{h.value=!1}},p=m("account"),$=m(!1),v=m({corp_id:"",agent_id:""}),k=m(!1),R=m(!1),ee=()=>/wxwork/i.test(navigator.userAgent),j=()=>window.location.origin+window.location.pathname,oe=()=>{var o;if(!l.password)return(o=S.value)==null?void 0:o.focus();V()},V=async()=>{var e;await((e=A.value)==null?void 0:e.validate()),G.set(H,{remember:g.value,account:g.value?l.account:""});const o=await C.login(l);if(o.is_paw===0){_.push("/change-password");return}if(o.need_bind_work_wechat){_.push("/bind-work-wechat");return}W()},{isLock:ae,lockFn:te}=qe(V),W=()=>{const{query:{redirect:o}}=L,e=typeof o=="string"?o:Ve.INDEX;_.push(e)},ne=async o=>{k.value=!0;try{const e=await C.workWechatLogin(o);if(e.is_paw===0){_.push("/change-password");return}if(e.need_bind_work_wechat){_.push("/bind-work-wechat");return}W()}catch(e){console.error("企业微信登录失败:",e),P.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"企业微信登录失败,请使用账号密码登录"),k.value=!1,p.value="account"}},se=async()=>{if(!v.value.corp_id)return;R.value=!0,window.WwLogin||await new Promise((e,n)=>{const t=document.createElement("script");t.src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js",t.onload=()=>e(),t.onerror=()=>n(new Error("加载企业微信JS失败")),document.head.appendChild(t)}),await q(),R.value=!1,await q();const o=encodeURIComponent(j());new window.WwLogin({id:"wxwork_qrcode_container",appid:v.value.corp_id,agentid:v.value.agent_id,redirect_uri:o,lang:"zh",state:"admin_login",href:"",self_redirect:!1})};return ue(p,o=>{o==="wxwork"&&q(()=>se())}),me(async()=>{const o=G.get(H);o!=null&&o.remember&&(g.value=o.remember,l.account=o.account);const e=new URLSearchParams(window.location.search);X();const n=e.has("iam_ticket")||e.has("iam_error");n&&await Z(e.get("iam_ticket"),e.get("iam_error"));const t=n?null:e.get("code"),x=e.get("state");if(t&&x==="admin_login"){const r=window.location.pathname+(L.query.redirect?`?redirect=${L.query.redirect}`:"");window.history.replaceState({},"",r),ne(t);return}try{const r=await Le();if(r!=null&&r.enabled&&($.value=!0,v.value={corp_id:r.corp_id,agent_id:r.agent_id},ee()&&!n)){const f=encodeURIComponent(j()),y=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${r.corp_id}&redirect_uri=${f}&response_type=code&scope=snsapi_privateinfo&agentid=${r.agent_id}&state=admin_login#wechat_redirect`;window.location.href=y,k.value=!0;return}}catch(r){console.warn("获取企业微信配置失败:",r)}}),(o,e)=>{const n=Ue,t=_e,x=pe,r=we,f=Ee,y=ge,B=fe,re=he,ie=ve,K=ke;return c(),d("div",ze,[s("div",Pe,[s("div",Se,[s("div",Ae,[a(n,{src:F.value.login_image,width:400,height:"100%"},null,8,["src"])]),s("div",Fe,[s("div",Ne,D(F.value.web_name),1),k.value||h.value?(c(),d("div",$e,[a(t,{class:"is-loading mb-4",size:40,color:"var(--el-color-primary)"},{default:i(()=>[a(u(M))]),_:1}),s("div",je,D(h.value?"统一账号登录中...":"企业微信授权登录中..."),1)])):(c(),d(I,{key:1},[$.value?(c(),d("div",Be,[a(r,{modelValue:p.value,"onUpdate:modelValue":e[0]||(e[0]=w=>p.value=w),size:"large"},{default:i(()=>[a(x,{value:"account"},{default:i(()=>[...e[4]||(e[4]=[z("账号登录",-1)])]),_:1}),a(x,{value:"wxwork"},{default:i(()=>[...e[5]||(e[5]=[z("企业微信",-1)])]),_:1})]),_:1},8,["modelValue"])])):b("",!0),p.value==="account"?(c(),d(I,{key:1},[a(re,{ref_key:"formRef",ref:A,model:u(l),size:"large",rules:O},{default:i(()=>[a(B,{prop:"account"},{default:i(()=>[a(y,{modelValue:u(l).account,"onUpdate:modelValue":e[1]||(e[1]=w=>u(l).account=w),placeholder:"请输入账号",onKeyup:T(oe,["enter"])},{prepend:i(()=>[a(f,{name:"el-icon-User",size:"16"})]),_:1},8,["modelValue"])]),_:1}),a(B,{prop:"password"},{default:i(()=>[a(y,{ref_key:"passwordRef",ref:S,modelValue:u(l).password,"onUpdate:modelValue":e[2]||(e[2]=w=>u(l).password=w),"show-password":"",placeholder:"请输入密码",onKeyup:T(V,["enter"])},{prepend:i(()=>[a(f,{name:"el-icon-Lock",size:"16"})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"]),s("div",Ke,[a(ie,{modelValue:g.value,"onUpdate:modelValue":e[3]||(e[3]=w=>g.value=w),label:"记住账号"},null,8,["modelValue"])]),a(K,{type:"primary",size:"large",loading:u(ae),onClick:u(te)},{default:i(()=>[...e[6]||(e[6]=[z(" 登录 ",-1)])]),_:1},8,["loading","onClick"])],64)):b("",!0),p.value==="wxwork"?(c(),d(I,{key:2},[s("div",De,[R.value?(c(),d("div",Me,[a(t,{class:"is-loading",size:32,color:"var(--el-color-primary)"},{default:i(()=>[a(u(M))]),_:1}),e[7]||(e[7]=s("div",{class:"mt-2 text-gray-400 text-sm"},"加载企业微信扫码...",-1))])):(c(),d("div",Te))]),e[8]||(e[8]=s("div",{class:"text-center text-sm text-gray-400 mt-4"}," 请使用企业微信扫描二维码登录 ",-1))],64)):b("",!0),U.value?(c(),d("section",Qe,[e[10]||(e[10]=s("div",{class:"iam-login-divider","aria-hidden":"true"},"其他登录方式",-1)),a(K,{class:"iam-login-entry",size:"large",onClick:Y},{default:i(()=>[s("span",Ge,[a(f,{name:"local-icon-anquan",size:"22"}),e[9]||(e[9]=s("span",null,"统一账号快捷登录",-1))]),s("span",He,[a(f,{name:"el-icon-ArrowRight",size:"16"})])]),_:1}),e[11]||(e[11]=s("p",{class:"iam-login-hint"},"使用统一身份平台账号登录",-1))])):b("",!0)],64))])])]),a(Ie)])}}}),oo=We(Je,[["__scopeId","data-v-f99aa1d6"]]);export{oo as default}; +import{o as le,Q as ce,W as de,R as ue,n as q,ap as me,q as c,r as d,s,v as a,T as D,D as i,u,ba as M,w as _e,F as I,be as pe,L as z,bf as we,P as b,bb as fe,aA as ge,bc as T,bd as he,bg as ve,K as ke,a8 as Q,M as m,p as xe,aC as ye,E as P}from"./.pnpm-CyuAWpdG.js";import{e as be,u as Ce,f as G,A as H,a as Le,h as Ue,c as Ee,i as Re,P as Ve,_ as We}from"./index-Bkarz3gO.js";import{u as qe}from"./useLockFn-d8ytjraO.js";import{_ as Ie}from"./footer.vue_vue_type_script_setup_true_lang-CPBf3DXQ.js";const ze={class:"login flex flex-col"},Pe={class:"flex-1 flex items-center justify-center"},Se={class:"login-card flex rounded-md overflow-hidden"},Ae={class:"flex-1 h-full hidden md:inline-block"},Fe={class:"login-form bg-body flex flex-col justify-center px-10 py-10 md:w-[420px] w-[380px] flex-none mx-auto"},Ne={class:"text-center text-3xl font-medium mb-8"},$e={key:0,class:"text-center py-10"},je={class:"text-gray-500"},Be={key:0,class:"flex justify-center mb-6"},Ke={class:"mb-5"},De={class:"wxwork-qrcode-wrap"},Me={key:0,class:"text-center py-10"},Te={key:1,id:"wxwork_qrcode_container",class:"wxwork-qrcode"},Qe={key:3,class:"iam-login-alternative","aria-label":"其他登录方式"},Ge={class:"iam-login-entry__content"},He={class:"iam-login-entry__arrow","aria-hidden":"true"},Je=le({__name:"login",setup(Oe){const S=Q(),A=Q(),J=be(),C=Ce(),L=ce(),_=de(),g=m(!1),F=xe(()=>J.config),l=ye({account:"",password:""}),O={account:[{required:!0,message:"请输入账号",trigger:["blur"]}],password:[{required:!0,message:"请输入密码",trigger:["blur"]}]},U=m(!1),E=m(""),h=m(!1);let N=!1;const X=async()=>{try{const o=await Re(),e=new URL((o==null?void 0:o.loginUrl)||"",window.location.origin);(o==null?void 0:o.enabled)===!0&&e.protocol==="https:"&&(E.value=e.href,U.value=!0)}catch{}},Y=()=>{U.value&&E.value&&window.location.assign(E.value)},Z=async(o,e)=>{if(N)return;N=!0;const n=new URL(window.location.href);if(n.searchParams.delete("iam_ticket"),n.searchParams.delete("iam_error"),n.searchParams.delete("code"),n.searchParams.delete("state"),window.history.replaceState(window.history.state,"",n.pathname+n.search+n.hash),e||!o){P.error(e||"统一账号登录凭证无效,请重新登录");return}h.value=!0;try{const t=await C.iamLogin(o);if(t.is_paw===0){await _.push("/change-password");return}if(t.need_bind_work_wechat){await _.push("/bind-work-wechat");return}W()}catch(t){P.error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"统一账号登录失败,请重新登录或使用账号密码"),p.value="account"}finally{h.value=!1}},p=m("account"),$=m(!1),v=m({corp_id:"",agent_id:""}),k=m(!1),R=m(!1),ee=()=>/wxwork/i.test(navigator.userAgent),j=()=>window.location.origin+window.location.pathname,oe=()=>{var o;if(!l.password)return(o=S.value)==null?void 0:o.focus();V()},V=async()=>{var e;await((e=A.value)==null?void 0:e.validate()),G.set(H,{remember:g.value,account:g.value?l.account:""});const o=await C.login(l);if(o.is_paw===0){_.push("/change-password");return}if(o.need_bind_work_wechat){_.push("/bind-work-wechat");return}W()},{isLock:ae,lockFn:te}=qe(V),W=()=>{const{query:{redirect:o}}=L,e=typeof o=="string"?o:Ve.INDEX;_.push(e)},ne=async o=>{k.value=!0;try{const e=await C.workWechatLogin(o);if(e.is_paw===0){_.push("/change-password");return}if(e.need_bind_work_wechat){_.push("/bind-work-wechat");return}W()}catch(e){console.error("企业微信登录失败:",e),P.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"企业微信登录失败,请使用账号密码登录"),k.value=!1,p.value="account"}},se=async()=>{if(!v.value.corp_id)return;R.value=!0,window.WwLogin||await new Promise((e,n)=>{const t=document.createElement("script");t.src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js",t.onload=()=>e(),t.onerror=()=>n(new Error("加载企业微信JS失败")),document.head.appendChild(t)}),await q(),R.value=!1,await q();const o=encodeURIComponent(j());new window.WwLogin({id:"wxwork_qrcode_container",appid:v.value.corp_id,agentid:v.value.agent_id,redirect_uri:o,lang:"zh",state:"admin_login",href:"",self_redirect:!1})};return ue(p,o=>{o==="wxwork"&&q(()=>se())}),me(async()=>{const o=G.get(H);o!=null&&o.remember&&(g.value=o.remember,l.account=o.account);const e=new URLSearchParams(window.location.search);X();const n=e.has("iam_ticket")||e.has("iam_error");n&&await Z(e.get("iam_ticket"),e.get("iam_error"));const t=n?null:e.get("code"),x=e.get("state");if(t&&x==="admin_login"){const r=window.location.pathname+(L.query.redirect?`?redirect=${L.query.redirect}`:"");window.history.replaceState({},"",r),ne(t);return}try{const r=await Le();if(r!=null&&r.enabled&&($.value=!0,v.value={corp_id:r.corp_id,agent_id:r.agent_id},ee()&&!n)){const f=encodeURIComponent(j()),y=`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${r.corp_id}&redirect_uri=${f}&response_type=code&scope=snsapi_privateinfo&agentid=${r.agent_id}&state=admin_login#wechat_redirect`;window.location.href=y,k.value=!0;return}}catch(r){console.warn("获取企业微信配置失败:",r)}}),(o,e)=>{const n=Ue,t=_e,x=pe,r=we,f=Ee,y=ge,B=fe,re=he,ie=ve,K=ke;return c(),d("div",ze,[s("div",Pe,[s("div",Se,[s("div",Ae,[a(n,{src:F.value.login_image,width:400,height:"100%"},null,8,["src"])]),s("div",Fe,[s("div",Ne,D(F.value.web_name),1),k.value||h.value?(c(),d("div",$e,[a(t,{class:"is-loading mb-4",size:40,color:"var(--el-color-primary)"},{default:i(()=>[a(u(M))]),_:1}),s("div",je,D(h.value?"统一账号登录中...":"企业微信授权登录中..."),1)])):(c(),d(I,{key:1},[$.value?(c(),d("div",Be,[a(r,{modelValue:p.value,"onUpdate:modelValue":e[0]||(e[0]=w=>p.value=w),size:"large"},{default:i(()=>[a(x,{value:"account"},{default:i(()=>[...e[4]||(e[4]=[z("账号登录",-1)])]),_:1}),a(x,{value:"wxwork"},{default:i(()=>[...e[5]||(e[5]=[z("企业微信",-1)])]),_:1})]),_:1},8,["modelValue"])])):b("",!0),p.value==="account"?(c(),d(I,{key:1},[a(re,{ref_key:"formRef",ref:A,model:u(l),size:"large",rules:O},{default:i(()=>[a(B,{prop:"account"},{default:i(()=>[a(y,{modelValue:u(l).account,"onUpdate:modelValue":e[1]||(e[1]=w=>u(l).account=w),placeholder:"请输入账号",onKeyup:T(oe,["enter"])},{prepend:i(()=>[a(f,{name:"el-icon-User",size:"16"})]),_:1},8,["modelValue"])]),_:1}),a(B,{prop:"password"},{default:i(()=>[a(y,{ref_key:"passwordRef",ref:S,modelValue:u(l).password,"onUpdate:modelValue":e[2]||(e[2]=w=>u(l).password=w),"show-password":"",placeholder:"请输入密码",onKeyup:T(V,["enter"])},{prepend:i(()=>[a(f,{name:"el-icon-Lock",size:"16"})]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"]),s("div",Ke,[a(ie,{modelValue:g.value,"onUpdate:modelValue":e[3]||(e[3]=w=>g.value=w),label:"记住账号"},null,8,["modelValue"])]),a(K,{type:"primary",size:"large",loading:u(ae),onClick:u(te)},{default:i(()=>[...e[6]||(e[6]=[z(" 登录 ",-1)])]),_:1},8,["loading","onClick"])],64)):b("",!0),p.value==="wxwork"?(c(),d(I,{key:2},[s("div",De,[R.value?(c(),d("div",Me,[a(t,{class:"is-loading",size:32,color:"var(--el-color-primary)"},{default:i(()=>[a(u(M))]),_:1}),e[7]||(e[7]=s("div",{class:"mt-2 text-gray-400 text-sm"},"加载企业微信扫码...",-1))])):(c(),d("div",Te))]),e[8]||(e[8]=s("div",{class:"text-center text-sm text-gray-400 mt-4"}," 请使用企业微信扫描二维码登录 ",-1))],64)):b("",!0),U.value?(c(),d("section",Qe,[e[10]||(e[10]=s("div",{class:"iam-login-divider","aria-hidden":"true"},"其他登录方式",-1)),a(K,{class:"iam-login-entry",size:"large",onClick:Y},{default:i(()=>[s("span",Ge,[a(f,{name:"local-icon-anquan",size:"22"}),e[9]||(e[9]=s("span",null,"统一账号快捷登录",-1))]),s("span",He,[a(f,{name:"el-icon-ArrowRight",size:"16"})])]),_:1}),e[11]||(e[11]=s("p",{class:"iam-login-hint"},"使用统一身份平台账号登录",-1))])):b("",!0)],64))])])]),a(Ie)])}}}),oo=We(Je,[["__scopeId","data-v-f99aa1d6"]]);export{oo as default}; diff --git a/server/public/admin/assets/login_register-GpARPxOz.js b/server/public/admin/assets/login_register-BvTo2laZ.js similarity index 97% rename from server/public/admin/assets/login_register-GpARPxOz.js rename to server/public/admin/assets/login_register-BvTo2laZ.js index 293c4a208..7ba5434d3 100644 --- a/server/public/admin/assets/login_register-GpARPxOz.js +++ b/server/public/admin/assets/login_register-BvTo2laZ.js @@ -1 +1 @@ -import{_ as E}from"./index-9qT8_5W1.js";import{o as y,bp as C,q as b,r as B,v as o,D as a,bj as D,s as t,bb as U,cB as R,u as r,bg as F,L as n,I as L,T as p,K as N,bd as P,ac as S,O as W,M as j,aC as w}from"./.pnpm-CyuAWpdG.js";import{g as I,s as T}from"./user-6rizCW07.js";import"./index-Dxvz9lb1.js";const A={class:"login-register"},G={class:"mt-1 ml-2"},K={class:"mt-1 ml-2"},M={class:"mt-1 ml-2"},O={href:"https://open.weixin.qq.com/",target:"_blank"},z=y({name:"loginRegister"}),Z=y({...z,setup(H){const m=j(),l=w({login_way:[],coerce_mobile:0,login_agreement:0,third_auth:0,wechat_auth:0,qq_auth:0}),V=w({loginWay:[{required:!0,validator:(i,e,u)=>{if(l.login_way.join("").length===0)u(new Error("登录方式至少选择一项!"));else{if(l.login_way!==""){if(!m.value)return;m.value.validateField("checkPass")}u()}},trigger:"change"}],coerce_mobile:[{required:!0,trigger:"blur"}],login_agreement:[{required:!0,trigger:"blur"}],third_auth:[{required:!0,trigger:"blur"}]}),g=async()=>{try{const i=await I();for(const e in l)l[e]=i[e]}catch(i){console.log("获取=>",i)}},k=async()=>{var i;await((i=m.value)==null?void 0:i.validate());try{await T(l),g()}catch(e){console.log("保存=>",e)}};return g(),(i,e)=>{const u=F,f=R,d=U,_=L,v=D,c=N,h=P,x=E,q=C("perms");return b(),B("div",A,[o(h,{ref_key:"formRef",ref:m,rules:r(V),model:r(l),"label-width":"120px"},{default:a(()=>[o(v,{shadow:"never",class:"!border-none"},{default:a(()=>[e[10]||(e[10]=t("div",{class:"font-medium mb-7"},"通用设置",-1)),o(d,{label:"登录方式",prop:"login_way"},{default:a(()=>[t("div",null,[o(f,{modelValue:r(l).login_way,"onUpdate:modelValue":e[0]||(e[0]=s=>r(l).login_way=s)},{default:a(()=>[o(u,{value:"1"},{default:a(()=>[...e[5]||(e[5]=[n("账号密码登录",-1)])]),_:1}),o(u,{value:"2"},{default:a(()=>[...e[6]||(e[6]=[n("手机验证码登录",-1)])]),_:1})]),_:1},8,["modelValue"]),e[7]||(e[7]=t("div",{class:"form-tips"},"系统通用登录方式,至少选择一项",-1))])]),_:1}),o(d,{label:"强制绑定手机",prop:"coerce_mobile"},{default:a(()=>[t("div",null,[o(_,{modelValue:r(l).coerce_mobile,"onUpdate:modelValue":e[1]||(e[1]=s=>r(l).coerce_mobile=s),"active-value":1,"inactive-value":0},null,8,["modelValue"]),t("span",G,p(r(l).coerce_mobile?"开启":"关闭"),1),e[8]||(e[8]=t("div",{class:"form-tips"},[n(" 1、如果开启,则新用户在注册完成之后要强制绑定手机号"),t("br"),n(" 2、老用户登录时如果检测到没有绑定手机,则要重新绑定手机号 ")],-1))])]),_:1}),o(d,{label:"政策协议",prop:"login_agreement"},{default:a(()=>[t("div",null,[o(_,{modelValue:r(l).login_agreement,"onUpdate:modelValue":e[2]||(e[2]=s=>r(l).login_agreement=s),"active-value":1,"inactive-value":0},null,8,["modelValue"]),t("span",K,p(r(l).login_agreement?"开启":"关闭"),1),e[9]||(e[9]=t("div",{class:"form-tips"},"登录/注册会员时,是否显示服务协议和隐私政策",-1))])]),_:1})]),_:1}),o(v,{shadow:"never",class:"!border-none mt-4"},{default:a(()=>[e[15]||(e[15]=t("div",{class:"font-medium mb-7"},"第三方设置",-1)),o(d,{label:"第三方登录",prop:"third_auth"},{default:a(()=>[t("div",null,[o(_,{modelValue:r(l).third_auth,"onUpdate:modelValue":e[3]||(e[3]=s=>r(l).third_auth=s),"active-value":1,"inactive-value":0},null,8,["modelValue"]),t("span",M,p(r(l).third_auth?"开启":"关闭"),1),e[12]||(e[12]=t("div",{class:"form-tips"},"登录时支持第三方登录,新用户授权即自动注册账号",-1)),t("div",null,[o(u,{modelValue:r(l).wechat_auth,"onUpdate:modelValue":e[4]||(e[4]=s=>r(l).wechat_auth=s),"true-value":1,"false-value":0},{default:a(()=>[...e[11]||(e[11]=[n(" 微信登录 ",-1)])]),_:1},8,["modelValue"])])])]),_:1}),o(d,{label:"微信开放平台"},{default:a(()=>[t("div",null,[t("a",O,[o(c,{type:"primary",link:"",class:"underline"},{default:a(()=>[...e[13]||(e[13]=[n(" 前往微信开放平台 ",-1)])]),_:1})]),e[14]||(e[14]=t("div",{class:"form-tips"},[n(" 1、在各渠道使用微信授权登录时,强烈建议配置微信开放平台"),t("br"),n(" 2、微信开放平台关联公众号、小程序和APP后,可实现各端用户账号统一,识别买家唯一微信身份"),t("br"),n(" 3、没有配置微信开放平台,同一微信号会生成多个用户,配置微信开放平台后已生成的用户账号无法合并 ")],-1))])]),_:1})]),_:1})]),_:1},8,["rules","model"]),S((b(),W(x,null,{default:a(()=>[o(c,{type:"primary",onClick:k},{default:a(()=>[...e[16]||(e[16]=[n("保存",-1)])]),_:1})]),_:1})),[[q,["setting.user.user/setRegisterConfig"]]])])}}});export{Z as default}; +import{_ as E}from"./index-DIl3M8Wa.js";import{o as y,bp as C,q as b,r as B,v as o,D as a,bj as D,s as t,bb as U,cB as R,u as r,bg as F,L as n,I as L,T as p,K as N,bd as P,ac as S,O as W,M as j,aC as w}from"./.pnpm-CyuAWpdG.js";import{g as I,s as T}from"./user-DrLRwVd-.js";import"./index-Bkarz3gO.js";const A={class:"login-register"},G={class:"mt-1 ml-2"},K={class:"mt-1 ml-2"},M={class:"mt-1 ml-2"},O={href:"https://open.weixin.qq.com/",target:"_blank"},z=y({name:"loginRegister"}),Z=y({...z,setup(H){const m=j(),l=w({login_way:[],coerce_mobile:0,login_agreement:0,third_auth:0,wechat_auth:0,qq_auth:0}),V=w({loginWay:[{required:!0,validator:(i,e,u)=>{if(l.login_way.join("").length===0)u(new Error("登录方式至少选择一项!"));else{if(l.login_way!==""){if(!m.value)return;m.value.validateField("checkPass")}u()}},trigger:"change"}],coerce_mobile:[{required:!0,trigger:"blur"}],login_agreement:[{required:!0,trigger:"blur"}],third_auth:[{required:!0,trigger:"blur"}]}),g=async()=>{try{const i=await I();for(const e in l)l[e]=i[e]}catch(i){console.log("获取=>",i)}},k=async()=>{var i;await((i=m.value)==null?void 0:i.validate());try{await T(l),g()}catch(e){console.log("保存=>",e)}};return g(),(i,e)=>{const u=F,f=R,d=U,_=L,v=D,c=N,h=P,x=E,q=C("perms");return b(),B("div",A,[o(h,{ref_key:"formRef",ref:m,rules:r(V),model:r(l),"label-width":"120px"},{default:a(()=>[o(v,{shadow:"never",class:"!border-none"},{default:a(()=>[e[10]||(e[10]=t("div",{class:"font-medium mb-7"},"通用设置",-1)),o(d,{label:"登录方式",prop:"login_way"},{default:a(()=>[t("div",null,[o(f,{modelValue:r(l).login_way,"onUpdate:modelValue":e[0]||(e[0]=s=>r(l).login_way=s)},{default:a(()=>[o(u,{value:"1"},{default:a(()=>[...e[5]||(e[5]=[n("账号密码登录",-1)])]),_:1}),o(u,{value:"2"},{default:a(()=>[...e[6]||(e[6]=[n("手机验证码登录",-1)])]),_:1})]),_:1},8,["modelValue"]),e[7]||(e[7]=t("div",{class:"form-tips"},"系统通用登录方式,至少选择一项",-1))])]),_:1}),o(d,{label:"强制绑定手机",prop:"coerce_mobile"},{default:a(()=>[t("div",null,[o(_,{modelValue:r(l).coerce_mobile,"onUpdate:modelValue":e[1]||(e[1]=s=>r(l).coerce_mobile=s),"active-value":1,"inactive-value":0},null,8,["modelValue"]),t("span",G,p(r(l).coerce_mobile?"开启":"关闭"),1),e[8]||(e[8]=t("div",{class:"form-tips"},[n(" 1、如果开启,则新用户在注册完成之后要强制绑定手机号"),t("br"),n(" 2、老用户登录时如果检测到没有绑定手机,则要重新绑定手机号 ")],-1))])]),_:1}),o(d,{label:"政策协议",prop:"login_agreement"},{default:a(()=>[t("div",null,[o(_,{modelValue:r(l).login_agreement,"onUpdate:modelValue":e[2]||(e[2]=s=>r(l).login_agreement=s),"active-value":1,"inactive-value":0},null,8,["modelValue"]),t("span",K,p(r(l).login_agreement?"开启":"关闭"),1),e[9]||(e[9]=t("div",{class:"form-tips"},"登录/注册会员时,是否显示服务协议和隐私政策",-1))])]),_:1})]),_:1}),o(v,{shadow:"never",class:"!border-none mt-4"},{default:a(()=>[e[15]||(e[15]=t("div",{class:"font-medium mb-7"},"第三方设置",-1)),o(d,{label:"第三方登录",prop:"third_auth"},{default:a(()=>[t("div",null,[o(_,{modelValue:r(l).third_auth,"onUpdate:modelValue":e[3]||(e[3]=s=>r(l).third_auth=s),"active-value":1,"inactive-value":0},null,8,["modelValue"]),t("span",M,p(r(l).third_auth?"开启":"关闭"),1),e[12]||(e[12]=t("div",{class:"form-tips"},"登录时支持第三方登录,新用户授权即自动注册账号",-1)),t("div",null,[o(u,{modelValue:r(l).wechat_auth,"onUpdate:modelValue":e[4]||(e[4]=s=>r(l).wechat_auth=s),"true-value":1,"false-value":0},{default:a(()=>[...e[11]||(e[11]=[n(" 微信登录 ",-1)])]),_:1},8,["modelValue"])])])]),_:1}),o(d,{label:"微信开放平台"},{default:a(()=>[t("div",null,[t("a",O,[o(c,{type:"primary",link:"",class:"underline"},{default:a(()=>[...e[13]||(e[13]=[n(" 前往微信开放平台 ",-1)])]),_:1})]),e[14]||(e[14]=t("div",{class:"form-tips"},[n(" 1、在各渠道使用微信授权登录时,强烈建议配置微信开放平台"),t("br"),n(" 2、微信开放平台关联公众号、小程序和APP后,可实现各端用户账号统一,识别买家唯一微信身份"),t("br"),n(" 3、没有配置微信开放平台,同一微信号会生成多个用户,配置微信开放平台后已生成的用户账号无法合并 ")],-1))])]),_:1})]),_:1})]),_:1},8,["rules","model"]),S((b(),W(x,null,{default:a(()=>[o(c,{type:"primary",onClick:k},{default:a(()=>[...e[16]||(e[16]=[n("保存",-1)])]),_:1})]),_:1})),[[q,["setting.user.user/setRegisterConfig"]]])])}}});export{Z as default}; diff --git a/server/public/admin/assets/medicine-mKSAmiD4.js b/server/public/admin/assets/medicine-B45eA9C1.js similarity index 98% rename from server/public/admin/assets/medicine-mKSAmiD4.js rename to server/public/admin/assets/medicine-B45eA9C1.js index b42adbc30..228cb8bc4 100644 --- a/server/public/admin/assets/medicine-mKSAmiD4.js +++ b/server/public/admin/assets/medicine-B45eA9C1.js @@ -1 +1 @@ -import{o as M,ap as ie,q as _,r as h,v as l,D as a,bd as re,bb as ue,aA as de,K as pe,L as r,ac as me,O as U,bk as ce,bl as ge,aa as fe,s as m,T as V,bm as _e,bn as ve,bu as be,w as ye,u as j,cx as L,bj as we,bh as Ve,bi as ke,J as xe,bX as Ee,bf as Ce,bq as he,aB as Ue,M as g,aC as ze,p as z,e as Be}from"./.pnpm-CyuAWpdG.js";import{g as Te,j as p,_ as De}from"./index-Dxvz9lb1.js";import{a as Se,b as qe,c as Ie,m as je}from"./medicine-EUKQYFsM.js";const Le={class:"medicine-library"},Me={class:"flex justify-between items-center"},Ne={key:1,class:"text-gray-400"},Re={class:"text-blue-600"},Fe={class:"text-green-600 font-medium"},Ae={class:"flex justify-end mt-4"},Pe=["src"],$e=M({name:"medicineLibrary"}),Oe=M({...$e,setup(Ge){const k=g(!1),x=g(!1),f=g(!1),y=g(),n=ze({page_no:1,page_size:20,name:"",supplier:""}),B=g([]),T=g(0),s=g({name:"",supplier:"",unit:"克",settlement_price:0,retail_price:0,stock:0,image:"",status:1,remark:""}),N={name:[{required:!0,message:"请输入药材名称",trigger:"blur"}],supplier:[{required:!0,message:"请输入供应商名称",trigger:"blur"}],unit:[{required:!0,message:"请选择单位",trigger:"change"}],settlement_price:[{required:!0,message:"请输入结算价",trigger:"blur"}],retail_price:[{required:!0,message:"请输入零售价",trigger:"blur"}]},R=z(()=>s.value.id?"编辑药品":"添加药品"),F=z(()=>"https://admin.zhenyangtang.com.cn//api/upload/image"),A=z(()=>({token:Te()})),D=o=>{if(o==null||o==="")return"0.00";const e=typeof o=="string"?parseFloat(o):o;return isNaN(e)?"0.00":e.toFixed(2)},P=o=>o===0?"danger":o<10?"warning":"success",E=()=>{v()},$=()=>{n.name="",n.supplier="",n.page_no=1,v()},O=()=>{s.value={name:"",supplier:"",unit:"克",settlement_price:0,retail_price:0,stock:0,image:"",status:1,remark:""},f.value=!0},G=o=>{s.value={...o},f.value=!0},H=async o=>{try{await Be.confirm("确定要删除该药品吗?","提示",{type:"warning",confirmButtonText:"确定",cancelButtonText:"取消"}),await Se({id:o.id}),p.msgSuccess("删除成功"),v()}catch(e){e!=="cancel"&&p.msgError("删除失败")}},J=async()=>{y.value&&await y.value.validate(async o=>{if(o){x.value=!0;try{s.value.id?await qe(s.value):await Ie(s.value),p.msgSuccess("保存成功"),f.value=!1,v()}catch{p.msgError("保存失败")}finally{x.value=!1}}})},K=()=>{var o;(o=y.value)==null||o.resetFields()},Q=o=>{const e=o.type.startsWith("image/"),w=o.size/1024/1024<2;return e?w?!0:(p.msgError("图片大小不能超过 2MB!"),!1):(p.msgError("只能上传图片文件!"),!1)},W=o=>{var e;o.code===1&&((e=o.data)!=null&&e.url)?(s.value.image=o.data.url,p.msgSuccess("上传成功")):p.msgError(o.msg||"上传失败")},v=async()=>{k.value=!0;try{const o=await je(n);B.value=o.lists||[],T.value=o.count||0}catch(o){console.error("加载数据失败:",o),p.msgError("加载数据失败")}finally{k.value=!1}};return ie(()=>{v()}),(o,e)=>{const w=ye,c=pe,b=de,i=ue,S=re,u=ge,X=fe,q=_e,Y=ce,Z=be,ee=we,d=ke,le=Ve,C=xe,te=Ee,I=he,ae=Ce,oe=Ue,se=ve;return _(),h("div",Le,[l(ee,{shadow:"never"},{header:a(()=>[m("div",Me,[e[15]||(e[15]=m("span",{class:"text-lg font-medium"},"药品库管理",-1)),l(c,{type:"primary",onClick:O},{default:a(()=>[l(w,{class:"mr-1"},{default:a(()=>[l(j(L))]),_:1}),e[14]||(e[14]=r(" 添加药品 ",-1))]),_:1})])]),default:a(()=>[l(S,{inline:"",class:"mb-4"},{default:a(()=>[l(i,{label:"药材名称"},{default:a(()=>[l(b,{modelValue:n.name,"onUpdate:modelValue":e[0]||(e[0]=t=>n.name=t),placeholder:"请输入药材名称",clearable:"",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),l(i,{label:"供应商"},{default:a(()=>[l(b,{modelValue:n.supplier,"onUpdate:modelValue":e[1]||(e[1]=t=>n.supplier=t),placeholder:"请输入供应商名称",clearable:"",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),l(i,null,{default:a(()=>[l(c,{type:"primary",onClick:E},{default:a(()=>[...e[16]||(e[16]=[r("查询",-1)])]),_:1}),l(c,{onClick:$},{default:a(()=>[...e[17]||(e[17]=[r("重置",-1)])]),_:1})]),_:1})]),_:1}),me((_(),U(Y,{data:B.value,border:"",stripe:""},{default:a(()=>[l(u,{type:"index",label:"序号",width:"60",align:"center"}),l(u,{prop:"image",label:"图片",width:"100",align:"center"},{default:a(({row:t})=>[t.image?(_(),U(X,{key:0,src:t.image,"preview-src-list":[t.image],fit:"cover",class:"w-16 h-16 rounded"},null,8,["src","preview-src-list"])):(_(),h("span",Ne,"暂无图片"))]),_:1}),l(u,{prop:"name",label:"药材名称","min-width":"120","show-overflow-tooltip":""}),l(u,{prop:"supplier",label:"供应商","min-width":"120","show-overflow-tooltip":""}),l(u,{prop:"unit",label:"单位",width:"80",align:"center"}),l(u,{prop:"settlement_price",label:"结算价(元)",width:"110",align:"right"},{default:a(({row:t})=>[m("span",Re,V(D(t.settlement_price)),1)]),_:1}),l(u,{prop:"retail_price",label:"零售价(元)",width:"110",align:"right"},{default:a(({row:t})=>[m("span",Fe,V(D(t.retail_price)),1)]),_:1}),l(u,{prop:"stock",label:"库存",width:"100",align:"center"},{default:a(({row:t})=>[l(q,{type:P(t.stock),size:"small"},{default:a(()=>[r(V(t.stock||0),1)]),_:2},1032,["type"])]),_:1}),l(u,{prop:"status",label:"状态",width:"80",align:"center"},{default:a(({row:t})=>[l(q,{type:t.status===1?"success":"info",size:"small"},{default:a(()=>[r(V(t.status===1?"启用":"停用"),1)]),_:2},1032,["type"])]),_:1}),l(u,{label:"操作",width:"160",fixed:"right",align:"center"},{default:a(({row:t})=>[l(c,{type:"primary",link:"",onClick:ne=>G(t)},{default:a(()=>[...e[18]||(e[18]=[r("编辑",-1)])]),_:1},8,["onClick"]),l(c,{type:"danger",link:"",onClick:ne=>H(t)},{default:a(()=>[...e[19]||(e[19]=[r("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[se,k.value]]),m("div",Ae,[l(Z,{"current-page":n.page_no,"onUpdate:currentPage":e[2]||(e[2]=t=>n.page_no=t),"page-size":n.page_size,"onUpdate:pageSize":e[3]||(e[3]=t=>n.page_size=t),total:T.value,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next, jumper",onSizeChange:E,onCurrentChange:E},null,8,["current-page","page-size","total"])])]),_:1}),l(oe,{modelValue:f.value,"onUpdate:modelValue":e[13]||(e[13]=t=>f.value=t),title:R.value,width:"600px","destroy-on-close":"",onClose:K},{footer:a(()=>[l(c,{onClick:e[12]||(e[12]=t=>f.value=!1)},{default:a(()=>[...e[25]||(e[25]=[r("取消",-1)])]),_:1}),l(c,{type:"primary",loading:x.value,onClick:J},{default:a(()=>[...e[26]||(e[26]=[r("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[l(S,{ref_key:"formRef",ref:y,model:s.value,rules:N,"label-width":"100px"},{default:a(()=>[l(i,{label:"药材名称",prop:"name"},{default:a(()=>[l(b,{modelValue:s.value.name,"onUpdate:modelValue":e[4]||(e[4]=t=>s.value.name=t),placeholder:"请输入药材名称",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"供应商",prop:"supplier"},{default:a(()=>[l(b,{modelValue:s.value.supplier,"onUpdate:modelValue":e[5]||(e[5]=t=>s.value.supplier=t),placeholder:"请输入供应商名称",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"单位",prop:"unit"},{default:a(()=>[l(le,{modelValue:s.value.unit,"onUpdate:modelValue":e[6]||(e[6]=t=>s.value.unit=t),placeholder:"请选择单位",clearable:"",style:{width:"100%"}},{default:a(()=>[l(d,{label:"克",value:"克"}),l(d,{label:"千克",value:"千克"}),l(d,{label:"斤",value:"斤"}),l(d,{label:"盒",value:"盒"}),l(d,{label:"瓶",value:"瓶"}),l(d,{label:"袋",value:"袋"}),l(d,{label:"包",value:"包"}),l(d,{label:"片",value:"片"}),l(d,{label:"粒",value:"粒"}),l(d,{label:"支",value:"支"})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"结算价",prop:"settlement_price"},{default:a(()=>[l(C,{modelValue:s.value.settlement_price,"onUpdate:modelValue":e[7]||(e[7]=t=>s.value.settlement_price=t),min:0,precision:2,step:.1,"controls-position":"right",style:{width:"100%"}},null,8,["modelValue"]),e[20]||(e[20]=m("span",{class:"ml-2 text-gray-500 text-sm"},"元",-1))]),_:1}),l(i,{label:"零售价",prop:"retail_price"},{default:a(()=>[l(C,{modelValue:s.value.retail_price,"onUpdate:modelValue":e[8]||(e[8]=t=>s.value.retail_price=t),min:0,precision:2,step:.1,"controls-position":"right",style:{width:"100%"}},null,8,["modelValue"]),e[21]||(e[21]=m("span",{class:"ml-2 text-gray-500 text-sm"},"元",-1))]),_:1}),l(i,{label:"库存",prop:"stock"},{default:a(()=>[l(C,{modelValue:s.value.stock,"onUpdate:modelValue":e[9]||(e[9]=t=>s.value.stock=t),min:0,step:1,"controls-position":"right",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),l(i,{label:"药品图片",prop:"image"},{default:a(()=>[l(te,{class:"medicine-uploader",action:F.value,headers:A.value,"show-file-list":!1,"on-success":W,"before-upload":Q,accept:"image/*"},{default:a(()=>[s.value.image?(_(),h("img",{key:0,src:s.value.image,class:"medicine-image"},null,8,Pe)):(_(),U(w,{key:1,class:"medicine-uploader-icon"},{default:a(()=>[l(j(L))]),_:1}))]),_:1},8,["action","headers"]),e[22]||(e[22]=m("div",{class:"text-gray-500 text-xs mt-1"},"建议尺寸:300x300像素,支持jpg、png格式,大小不超过2MB",-1))]),_:1}),l(i,{label:"状态",prop:"status"},{default:a(()=>[l(ae,{modelValue:s.value.status,"onUpdate:modelValue":e[10]||(e[10]=t=>s.value.status=t)},{default:a(()=>[l(I,{label:1},{default:a(()=>[...e[23]||(e[23]=[r("启用",-1)])]),_:1}),l(I,{label:0},{default:a(()=>[...e[24]||(e[24]=[r("停用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"备注"},{default:a(()=>[l(b,{modelValue:s.value.remark,"onUpdate:modelValue":e[11]||(e[11]=t=>s.value.remark=t),type:"textarea",rows:3,placeholder:"请输入备注信息",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Qe=De(Oe,[["__scopeId","data-v-ff8ad457"]]);export{Qe as default}; +import{o as M,ap as ie,q as _,r as h,v as l,D as a,bd as re,bb as ue,aA as de,K as pe,L as r,ac as me,O as U,bk as ce,bl as ge,aa as fe,s as m,T as V,bm as _e,bn as ve,bu as be,w as ye,u as j,cx as L,bj as we,bh as Ve,bi as ke,J as xe,bX as Ee,bf as Ce,bq as he,aB as Ue,M as g,aC as ze,p as z,e as Be}from"./.pnpm-CyuAWpdG.js";import{g as Te,j as p,_ as De}from"./index-Bkarz3gO.js";import{a as Se,b as qe,c as Ie,m as je}from"./medicine-DPIOyHj8.js";const Le={class:"medicine-library"},Me={class:"flex justify-between items-center"},Ne={key:1,class:"text-gray-400"},Re={class:"text-blue-600"},Fe={class:"text-green-600 font-medium"},Ae={class:"flex justify-end mt-4"},Pe=["src"],$e=M({name:"medicineLibrary"}),Oe=M({...$e,setup(Ge){const k=g(!1),x=g(!1),f=g(!1),y=g(),n=ze({page_no:1,page_size:20,name:"",supplier:""}),B=g([]),T=g(0),s=g({name:"",supplier:"",unit:"克",settlement_price:0,retail_price:0,stock:0,image:"",status:1,remark:""}),N={name:[{required:!0,message:"请输入药材名称",trigger:"blur"}],supplier:[{required:!0,message:"请输入供应商名称",trigger:"blur"}],unit:[{required:!0,message:"请选择单位",trigger:"change"}],settlement_price:[{required:!0,message:"请输入结算价",trigger:"blur"}],retail_price:[{required:!0,message:"请输入零售价",trigger:"blur"}]},R=z(()=>s.value.id?"编辑药品":"添加药品"),F=z(()=>"https://admin.zhenyangtang.com.cn//api/upload/image"),A=z(()=>({token:Te()})),D=o=>{if(o==null||o==="")return"0.00";const e=typeof o=="string"?parseFloat(o):o;return isNaN(e)?"0.00":e.toFixed(2)},P=o=>o===0?"danger":o<10?"warning":"success",E=()=>{v()},$=()=>{n.name="",n.supplier="",n.page_no=1,v()},O=()=>{s.value={name:"",supplier:"",unit:"克",settlement_price:0,retail_price:0,stock:0,image:"",status:1,remark:""},f.value=!0},G=o=>{s.value={...o},f.value=!0},H=async o=>{try{await Be.confirm("确定要删除该药品吗?","提示",{type:"warning",confirmButtonText:"确定",cancelButtonText:"取消"}),await Se({id:o.id}),p.msgSuccess("删除成功"),v()}catch(e){e!=="cancel"&&p.msgError("删除失败")}},J=async()=>{y.value&&await y.value.validate(async o=>{if(o){x.value=!0;try{s.value.id?await qe(s.value):await Ie(s.value),p.msgSuccess("保存成功"),f.value=!1,v()}catch{p.msgError("保存失败")}finally{x.value=!1}}})},K=()=>{var o;(o=y.value)==null||o.resetFields()},Q=o=>{const e=o.type.startsWith("image/"),w=o.size/1024/1024<2;return e?w?!0:(p.msgError("图片大小不能超过 2MB!"),!1):(p.msgError("只能上传图片文件!"),!1)},W=o=>{var e;o.code===1&&((e=o.data)!=null&&e.url)?(s.value.image=o.data.url,p.msgSuccess("上传成功")):p.msgError(o.msg||"上传失败")},v=async()=>{k.value=!0;try{const o=await je(n);B.value=o.lists||[],T.value=o.count||0}catch(o){console.error("加载数据失败:",o),p.msgError("加载数据失败")}finally{k.value=!1}};return ie(()=>{v()}),(o,e)=>{const w=ye,c=pe,b=de,i=ue,S=re,u=ge,X=fe,q=_e,Y=ce,Z=be,ee=we,d=ke,le=Ve,C=xe,te=Ee,I=he,ae=Ce,oe=Ue,se=ve;return _(),h("div",Le,[l(ee,{shadow:"never"},{header:a(()=>[m("div",Me,[e[15]||(e[15]=m("span",{class:"text-lg font-medium"},"药品库管理",-1)),l(c,{type:"primary",onClick:O},{default:a(()=>[l(w,{class:"mr-1"},{default:a(()=>[l(j(L))]),_:1}),e[14]||(e[14]=r(" 添加药品 ",-1))]),_:1})])]),default:a(()=>[l(S,{inline:"",class:"mb-4"},{default:a(()=>[l(i,{label:"药材名称"},{default:a(()=>[l(b,{modelValue:n.name,"onUpdate:modelValue":e[0]||(e[0]=t=>n.name=t),placeholder:"请输入药材名称",clearable:"",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),l(i,{label:"供应商"},{default:a(()=>[l(b,{modelValue:n.supplier,"onUpdate:modelValue":e[1]||(e[1]=t=>n.supplier=t),placeholder:"请输入供应商名称",clearable:"",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),l(i,null,{default:a(()=>[l(c,{type:"primary",onClick:E},{default:a(()=>[...e[16]||(e[16]=[r("查询",-1)])]),_:1}),l(c,{onClick:$},{default:a(()=>[...e[17]||(e[17]=[r("重置",-1)])]),_:1})]),_:1})]),_:1}),me((_(),U(Y,{data:B.value,border:"",stripe:""},{default:a(()=>[l(u,{type:"index",label:"序号",width:"60",align:"center"}),l(u,{prop:"image",label:"图片",width:"100",align:"center"},{default:a(({row:t})=>[t.image?(_(),U(X,{key:0,src:t.image,"preview-src-list":[t.image],fit:"cover",class:"w-16 h-16 rounded"},null,8,["src","preview-src-list"])):(_(),h("span",Ne,"暂无图片"))]),_:1}),l(u,{prop:"name",label:"药材名称","min-width":"120","show-overflow-tooltip":""}),l(u,{prop:"supplier",label:"供应商","min-width":"120","show-overflow-tooltip":""}),l(u,{prop:"unit",label:"单位",width:"80",align:"center"}),l(u,{prop:"settlement_price",label:"结算价(元)",width:"110",align:"right"},{default:a(({row:t})=>[m("span",Re,V(D(t.settlement_price)),1)]),_:1}),l(u,{prop:"retail_price",label:"零售价(元)",width:"110",align:"right"},{default:a(({row:t})=>[m("span",Fe,V(D(t.retail_price)),1)]),_:1}),l(u,{prop:"stock",label:"库存",width:"100",align:"center"},{default:a(({row:t})=>[l(q,{type:P(t.stock),size:"small"},{default:a(()=>[r(V(t.stock||0),1)]),_:2},1032,["type"])]),_:1}),l(u,{prop:"status",label:"状态",width:"80",align:"center"},{default:a(({row:t})=>[l(q,{type:t.status===1?"success":"info",size:"small"},{default:a(()=>[r(V(t.status===1?"启用":"停用"),1)]),_:2},1032,["type"])]),_:1}),l(u,{label:"操作",width:"160",fixed:"right",align:"center"},{default:a(({row:t})=>[l(c,{type:"primary",link:"",onClick:ne=>G(t)},{default:a(()=>[...e[18]||(e[18]=[r("编辑",-1)])]),_:1},8,["onClick"]),l(c,{type:"danger",link:"",onClick:ne=>H(t)},{default:a(()=>[...e[19]||(e[19]=[r("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[se,k.value]]),m("div",Ae,[l(Z,{"current-page":n.page_no,"onUpdate:currentPage":e[2]||(e[2]=t=>n.page_no=t),"page-size":n.page_size,"onUpdate:pageSize":e[3]||(e[3]=t=>n.page_size=t),total:T.value,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next, jumper",onSizeChange:E,onCurrentChange:E},null,8,["current-page","page-size","total"])])]),_:1}),l(oe,{modelValue:f.value,"onUpdate:modelValue":e[13]||(e[13]=t=>f.value=t),title:R.value,width:"600px","destroy-on-close":"",onClose:K},{footer:a(()=>[l(c,{onClick:e[12]||(e[12]=t=>f.value=!1)},{default:a(()=>[...e[25]||(e[25]=[r("取消",-1)])]),_:1}),l(c,{type:"primary",loading:x.value,onClick:J},{default:a(()=>[...e[26]||(e[26]=[r("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[l(S,{ref_key:"formRef",ref:y,model:s.value,rules:N,"label-width":"100px"},{default:a(()=>[l(i,{label:"药材名称",prop:"name"},{default:a(()=>[l(b,{modelValue:s.value.name,"onUpdate:modelValue":e[4]||(e[4]=t=>s.value.name=t),placeholder:"请输入药材名称",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"供应商",prop:"supplier"},{default:a(()=>[l(b,{modelValue:s.value.supplier,"onUpdate:modelValue":e[5]||(e[5]=t=>s.value.supplier=t),placeholder:"请输入供应商名称",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"单位",prop:"unit"},{default:a(()=>[l(le,{modelValue:s.value.unit,"onUpdate:modelValue":e[6]||(e[6]=t=>s.value.unit=t),placeholder:"请选择单位",clearable:"",style:{width:"100%"}},{default:a(()=>[l(d,{label:"克",value:"克"}),l(d,{label:"千克",value:"千克"}),l(d,{label:"斤",value:"斤"}),l(d,{label:"盒",value:"盒"}),l(d,{label:"瓶",value:"瓶"}),l(d,{label:"袋",value:"袋"}),l(d,{label:"包",value:"包"}),l(d,{label:"片",value:"片"}),l(d,{label:"粒",value:"粒"}),l(d,{label:"支",value:"支"})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"结算价",prop:"settlement_price"},{default:a(()=>[l(C,{modelValue:s.value.settlement_price,"onUpdate:modelValue":e[7]||(e[7]=t=>s.value.settlement_price=t),min:0,precision:2,step:.1,"controls-position":"right",style:{width:"100%"}},null,8,["modelValue"]),e[20]||(e[20]=m("span",{class:"ml-2 text-gray-500 text-sm"},"元",-1))]),_:1}),l(i,{label:"零售价",prop:"retail_price"},{default:a(()=>[l(C,{modelValue:s.value.retail_price,"onUpdate:modelValue":e[8]||(e[8]=t=>s.value.retail_price=t),min:0,precision:2,step:.1,"controls-position":"right",style:{width:"100%"}},null,8,["modelValue"]),e[21]||(e[21]=m("span",{class:"ml-2 text-gray-500 text-sm"},"元",-1))]),_:1}),l(i,{label:"库存",prop:"stock"},{default:a(()=>[l(C,{modelValue:s.value.stock,"onUpdate:modelValue":e[9]||(e[9]=t=>s.value.stock=t),min:0,step:1,"controls-position":"right",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),l(i,{label:"药品图片",prop:"image"},{default:a(()=>[l(te,{class:"medicine-uploader",action:F.value,headers:A.value,"show-file-list":!1,"on-success":W,"before-upload":Q,accept:"image/*"},{default:a(()=>[s.value.image?(_(),h("img",{key:0,src:s.value.image,class:"medicine-image"},null,8,Pe)):(_(),U(w,{key:1,class:"medicine-uploader-icon"},{default:a(()=>[l(j(L))]),_:1}))]),_:1},8,["action","headers"]),e[22]||(e[22]=m("div",{class:"text-gray-500 text-xs mt-1"},"建议尺寸:300x300像素,支持jpg、png格式,大小不超过2MB",-1))]),_:1}),l(i,{label:"状态",prop:"status"},{default:a(()=>[l(ae,{modelValue:s.value.status,"onUpdate:modelValue":e[10]||(e[10]=t=>s.value.status=t)},{default:a(()=>[l(I,{label:1},{default:a(()=>[...e[23]||(e[23]=[r("启用",-1)])]),_:1}),l(I,{label:0},{default:a(()=>[...e[24]||(e[24]=[r("停用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"备注"},{default:a(()=>[l(b,{modelValue:s.value.remark,"onUpdate:modelValue":e[11]||(e[11]=t=>s.value.remark=t),type:"textarea",rows:3,placeholder:"请输入备注信息",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Qe=De(Oe,[["__scopeId","data-v-ff8ad457"]]);export{Qe as default}; diff --git a/server/public/admin/assets/medicine-EUKQYFsM.js b/server/public/admin/assets/medicine-DPIOyHj8.js similarity index 81% rename from server/public/admin/assets/medicine-EUKQYFsM.js rename to server/public/admin/assets/medicine-DPIOyHj8.js index 874dd1d6f..059db0a85 100644 --- a/server/public/admin/assets/medicine-EUKQYFsM.js +++ b/server/public/admin/assets/medicine-DPIOyHj8.js @@ -1 +1 @@ -import{r as i}from"./index-Dxvz9lb1.js";function r(e){return i.get({url:"/doctor.medicine/lists",params:e})}function n(e){return i.post({url:"/doctor.medicine/add",params:e})}function d(e){return i.post({url:"/doctor.medicine/edit",params:e})}function o(e){return i.post({url:"/doctor.medicine/delete",params:e})}export{o as a,d as b,n as c,r as m}; +import{r as i}from"./index-Bkarz3gO.js";function r(e){return i.get({url:"/doctor.medicine/lists",params:e})}function n(e){return i.post({url:"/doctor.medicine/add",params:e})}function d(e){return i.post({url:"/doctor.medicine/edit",params:e})}function o(e){return i.post({url:"/doctor.medicine/delete",params:e})}export{o as a,d as b,n as c,r as m}; diff --git a/server/public/admin/assets/menu-Y8cDrxAC.js b/server/public/admin/assets/menu-BmHYTFQt.js similarity index 86% rename from server/public/admin/assets/menu-Y8cDrxAC.js rename to server/public/admin/assets/menu-BmHYTFQt.js index 6a2aeaaf0..3f0dce0c5 100644 --- a/server/public/admin/assets/menu-Y8cDrxAC.js +++ b/server/public/admin/assets/menu-BmHYTFQt.js @@ -1 +1 @@ -import{r as t}from"./index-Dxvz9lb1.js";function n(u){return t.get({url:"/auth.menu/lists",params:u})}function r(u){return t.get({url:"/auth.menu/all",params:u})}function a(u){return t.post({url:"/auth.menu/add",params:u})}function l(u){return t.post({url:"/auth.menu/edit",params:u})}function m(u){return t.post({url:"/auth.menu/delete",params:u})}function s(u){return t.get({url:"/auth.menu/detail",params:u})}export{n as a,l as b,a as c,s as d,m as e,r as m}; +import{r as t}from"./index-Bkarz3gO.js";function n(u){return t.get({url:"/auth.menu/lists",params:u})}function r(u){return t.get({url:"/auth.menu/all",params:u})}function a(u){return t.post({url:"/auth.menu/add",params:u})}function l(u){return t.post({url:"/auth.menu/edit",params:u})}function m(u){return t.post({url:"/auth.menu/delete",params:u})}function s(u){return t.get({url:"/auth.menu/detail",params:u})}export{n as a,l as b,a as c,s as d,m as e,r as m}; diff --git a/server/public/admin/assets/menu-DViiZPlx.js b/server/public/admin/assets/menu-CC2IkBNA.js similarity index 91% rename from server/public/admin/assets/menu-DViiZPlx.js rename to server/public/admin/assets/menu-CC2IkBNA.js index b4249ad90..ba552edeb 100644 --- a/server/public/admin/assets/menu-DViiZPlx.js +++ b/server/public/admin/assets/menu-CC2IkBNA.js @@ -1 +1 @@ -import{o as i,q as e,r as s,v as _,ak as p,D as o,F as f,G as x,O as V,s as h,T as k,ai as v}from"./.pnpm-CyuAWpdG.js";import{_ as g}from"./index-Dxvz9lb1.js";const y={class:"pages-menu"},B=i({__name:"menu",props:{menus:{type:Object,default:()=>({})},modelValue:{type:String,default:"1"}},emits:["update:modelValue"],setup(t,{emit:l}){const c=l,u=a=>{c("update:modelValue",a)};return(a,S)=>{const m=v,d=p;return e(),s("div",y,[_(d,{"default-active":t.modelValue,class:"w-[160px] min-h-[668px]",onSelect:u},{default:o(()=>[(e(!0),s(f,null,x(t.menus,(n,r)=>(e(),V(m,{index:r,key:n.id},{default:o(()=>[h("span",null,k(n.name),1)]),_:2},1032,["index"]))),128))]),_:1},8,["default-active"])])}}}),w=g(B,[["__scopeId","data-v-99909138"]]);export{w as default}; +import{o as i,q as e,r as s,v as _,ak as p,D as o,F as f,G as x,O as V,s as h,T as k,ai as v}from"./.pnpm-CyuAWpdG.js";import{_ as g}from"./index-Bkarz3gO.js";const y={class:"pages-menu"},B=i({__name:"menu",props:{menus:{type:Object,default:()=>({})},modelValue:{type:String,default:"1"}},emits:["update:modelValue"],setup(t,{emit:l}){const c=l,u=a=>{c("update:modelValue",a)};return(a,S)=>{const m=v,d=p;return e(),s("div",y,[_(d,{"default-active":t.modelValue,class:"w-[160px] min-h-[668px]",onSelect:u},{default:o(()=>[(e(!0),s(f,null,x(t.menus,(n,r)=>(e(),V(m,{index:r,key:n.id},{default:o(()=>[h("span",null,k(n.name),1)]),_:2},1032,["index"]))),128))]),_:1},8,["default-active"])])}}}),w=g(B,[["__scopeId","data-v-99909138"]]);export{w as default}; diff --git a/server/public/admin/assets/menu-DFGEBVd5.js b/server/public/admin/assets/menu-EB2DGQxc.js similarity index 71% rename from server/public/admin/assets/menu-DFGEBVd5.js rename to server/public/admin/assets/menu-EB2DGQxc.js index 024903af4..6924d1f3d 100644 --- a/server/public/admin/assets/menu-DFGEBVd5.js +++ b/server/public/admin/assets/menu-EB2DGQxc.js @@ -1 +1 @@ -import{_ as b}from"./index-9qT8_5W1.js";import{o as p,bp as x,q as n,r as w,v as e,D as o,bo as k,bj as C,s as l,ac as c,O as _,K as O,u as i,L as m}from"./.pnpm-CyuAWpdG.js";import g from"./oa-attr-ChgdvxF3.js";import y from"./oa-phone-Chcv3hu5.js";import{u as B}from"./useMenuOa-8FDoUIjw.js";import{_ as M}from"./index-Dxvz9lb1.js";import"./index-ClBYIwNX.js";import"./index-BnfLT5cB.js";import"./oa-menu-form.vue_vue_type_script_setup_true_lang-k_w2frrN.js";import"./oa-menu-form-edit.vue_vue_type_script_setup_true_lang-BqIRIump.js";import"./wx_oa-vu-UopqS.js";const E={class:"menu-oa"},D={class:"lg:flex flex-1"},N={class:"mt-4 lg:mt-0 max-w-[400px]"},V=p({name:"wxOaMenu"}),A=p({...V,setup(P){const{getOaMenuFunc:d,handleSave:u,handlePublish:f}=B(void 0);return d(),(j,t)=>{const v=k,a=C,s=O,h=b,r=x("perms");return n(),w("div",E,[e(a,{class:"!border-none",shadow:"never"},{default:o(()=>[e(v,{type:"warning",title:"配置微信公众号菜单,点击确认,保存菜单并发布至微信公众号",closable:!1,"show-icon":""})]),_:1}),e(a,{class:"!border-none mt-4",shadow:"never"},{default:o(()=>[l("div",D,[e(y),l("div",N,[e(g)])])]),_:1}),e(h,null,{default:o(()=>[c((n(),_(s,{type:"primary",onClick:i(u)},{default:o(()=>[...t[0]||(t[0]=[m(" 保存 ",-1)])]),_:1},8,["onClick"])),[[r,["channel:oaMenu:save"]]]),c((n(),_(s,{type:"primary",onClick:i(f)},{default:o(()=>[...t[1]||(t[1]=[m(" 发布 ",-1)])]),_:1},8,["onClick"])),[[r,["channel:oaMenu:publish"]]])]),_:1})])}}}),Q=M(A,[["__scopeId","data-v-f59ca9a4"]]);export{Q as default}; +import{_ as b}from"./index-DIl3M8Wa.js";import{o as p,bp as x,q as n,r as w,v as e,D as o,bo as k,bj as C,s as l,ac as c,O as _,K as O,u as i,L as m}from"./.pnpm-CyuAWpdG.js";import g from"./oa-attr-DmdyjM6c.js";import y from"./oa-phone-Da6Js6fB.js";import{u as B}from"./useMenuOa-30Dq12UU.js";import{_ as M}from"./index-Bkarz3gO.js";import"./index-Cqk_cdo9.js";import"./index-CS5Wg0xx.js";import"./oa-menu-form.vue_vue_type_script_setup_true_lang-BFU8gUm5.js";import"./oa-menu-form-edit.vue_vue_type_script_setup_true_lang-DIX04Rea.js";import"./wx_oa-C-EoclSf.js";const E={class:"menu-oa"},D={class:"lg:flex flex-1"},N={class:"mt-4 lg:mt-0 max-w-[400px]"},V=p({name:"wxOaMenu"}),A=p({...V,setup(P){const{getOaMenuFunc:d,handleSave:u,handlePublish:f}=B(void 0);return d(),(j,t)=>{const v=k,a=C,s=O,h=b,r=x("perms");return n(),w("div",E,[e(a,{class:"!border-none",shadow:"never"},{default:o(()=>[e(v,{type:"warning",title:"配置微信公众号菜单,点击确认,保存菜单并发布至微信公众号",closable:!1,"show-icon":""})]),_:1}),e(a,{class:"!border-none mt-4",shadow:"never"},{default:o(()=>[l("div",D,[e(y),l("div",N,[e(g)])])]),_:1}),e(h,null,{default:o(()=>[c((n(),_(s,{type:"primary",onClick:i(u)},{default:o(()=>[...t[0]||(t[0]=[m(" 保存 ",-1)])]),_:1},8,["onClick"])),[[r,["channel:oaMenu:save"]]]),c((n(),_(s,{type:"primary",onClick:i(f)},{default:o(()=>[...t[1]||(t[1]=[m(" 发布 ",-1)])]),_:1},8,["onClick"])),[[r,["channel:oaMenu:publish"]]])]),_:1})])}}}),Q=M(A,[["__scopeId","data-v-f59ca9a4"]]);export{Q as default}; diff --git a/server/public/admin/assets/menu-set-DvvNpj_n.js b/server/public/admin/assets/menu-set-DvvNpj_n.js new file mode 100644 index 000000000..ae775aa5b --- /dev/null +++ b/server/public/admin/assets/menu-set-DvvNpj_n.js @@ -0,0 +1 @@ +import{_ as o}from"./menu-set.vue_vue_type_script_setup_true_lang-xu18r-v2.js";import"./.pnpm-CyuAWpdG.js";import"./index-Cqk_cdo9.js";import"./index-Bkarz3gO.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";export{o as default}; diff --git a/server/public/admin/assets/menu-set-XcVyFmeW.js b/server/public/admin/assets/menu-set-XcVyFmeW.js deleted file mode 100644 index e8438f8a0..000000000 --- a/server/public/admin/assets/menu-set-XcVyFmeW.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./menu-set.vue_vue_type_script_setup_true_lang-CJyli6Nb.js";import"./.pnpm-CyuAWpdG.js";import"./index-ClBYIwNX.js";import"./index-Dxvz9lb1.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";export{o as default}; diff --git a/server/public/admin/assets/menu-set.vue_vue_type_script_setup_true_lang-CJyli6Nb.js b/server/public/admin/assets/menu-set.vue_vue_type_script_setup_true_lang-xu18r-v2.js similarity index 94% rename from server/public/admin/assets/menu-set.vue_vue_type_script_setup_true_lang-CJyli6Nb.js rename to server/public/admin/assets/menu-set.vue_vue_type_script_setup_true_lang-xu18r-v2.js index 3a0246cdf..fa7a88e88 100644 --- a/server/public/admin/assets/menu-set.vue_vue_type_script_setup_true_lang-CJyli6Nb.js +++ b/server/public/admin/assets/menu-set.vue_vue_type_script_setup_true_lang-xu18r-v2.js @@ -1 +1 @@ -import{o as D,q as n,r as z,s as d,v as a,D as o,O as m,bb as B,P as c,aA as $,I as N,C as F,u as r,bR as I,K as P,L as R,F as A,p as j,co as q}from"./.pnpm-CyuAWpdG.js";import{_ as K}from"./index-ClBYIwNX.js";import{_ as L}from"./picker-BKygjDQE.js";import{_ as O}from"./picker-BDO86vcM.js";import{c as S,j as x}from"./index-Dxvz9lb1.js";const T={class:"mb-[18px] max-w-[400px]"},G={class:"bg-fill-light w-full p-4 mt-4"},H={class:"upload-btn w-[60px] h-[60px]"},J={class:"upload-btn w-[60px] h-[60px]"},M={class:"flex-1 flex items-center"},Q={class:"drag-move cursor-move ml-auto"},le=D({__name:"menu-set",props:{modelValue:{},max:{default:9999},min:{default:-1},itemData:{default:()=>({name:"",selected:"",unselected:"",is_show:"1",link:{}})}},emits:["update:modelValue"],setup(V,{emit:v}){const u=V,g=v,t=j({get(){return u.modelValue},set(i){g("update:modelValue",i)}}),k=()=>{var i;((i=t.value)==null?void 0:i.length){if(t.value.length<=u.min&&u.min>-1)return x.msgError(`最少保留${u.min}个`);t.value.splice(i,1)};return(i,s)=>{const _=S,f=O,p=B,h=$,w=L,y=N,U=K,C=P;return n(),z(A,null,[d("div",T,[a(r(I),{class:"draggable",modelValue:r(t),"onUpdate:modelValue":s[0]||(s[0]=e=>F(t)?t.value=e:null),animation:"300",handle:".drag-move","item-key":"index"},{item:o(({element:e,index:E})=>[a(U,{onClose:l=>b(E),class:"max-w-[400px]"},{default:o(()=>[d("div",G,[e.unselected!==void 0||e.selected!==void 0?(n(),m(p,{key:0,label:"导航图标"},{default:o(()=>[e.unselected!==void 0?(n(),m(f,{key:0,modelValue:e.unselected,"onUpdate:modelValue":l=>e.unselected=l,"upload-class":"bg-body","exclude-domain":"",size:"60px"},{upload:o(()=>[d("div",H,[a(_,{name:"el-icon-Plus",size:16}),s[1]||(s[1]=d("span",{class:"text-xs leading-5"}," 未选中 ",-1))])]),_:1},8,["modelValue","onUpdate:modelValue"])):c("",!0),e.selected!==void 0?(n(),m(f,{key:1,modelValue:e.selected,"onUpdate:modelValue":l=>e.selected=l,"upload-class":"bg-body","exclude-domain":"",size:"60px"},{upload:o(()=>[d("div",J,[a(_,{name:"el-icon-Plus",size:16}),s[2]||(s[2]=d("span",{class:"text-xs leading-5"}," 选中 ",-1))])]),_:1},8,["modelValue","onUpdate:modelValue"])):c("",!0)]),_:2},1024)):c("",!0),e.name!==void 0?(n(),m(p,{key:1,label:"导航名称"},{default:o(()=>[a(h,{modelValue:e.name,"onUpdate:modelValue":l=>e.name=l,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)):c("",!0),e.link!==void 0?(n(),m(p,{key:2,label:"链接地址"},{default:o(()=>[a(w,{modelValue:e.link,"onUpdate:modelValue":l=>e.link=l,type:"pc"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)):c("",!0),e.is_show!==void 0?(n(),m(p,{key:3,label:"是否显示"},{default:o(()=>[d("div",M,[a(y,{modelValue:e.is_show,"onUpdate:modelValue":l=>e.is_show=l,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),d("div",Q,[a(_,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)):c("",!0)])]),_:2},1032,["onClose"])]),_:1},8,["modelValue"])]),r(t).length[a(C,{type:"primary",onClick:k},{default:o(()=>[...s[3]||(s[3]=[R(" 添加导航 ",-1)])]),_:1})]),_:1})):c("",!0)],64)}}});export{le as _}; +import{o as D,q as n,r as z,s as d,v as a,D as o,O as m,bb as B,P as c,aA as $,I as N,C as F,u as r,bR as I,K as P,L as R,F as A,p as j,co as q}from"./.pnpm-CyuAWpdG.js";import{_ as K}from"./index-Cqk_cdo9.js";import{_ as L}from"./picker-CSWk6Vbk.js";import{_ as O}from"./picker-BTh9eW9u.js";import{c as S,j as x}from"./index-Bkarz3gO.js";const T={class:"mb-[18px] max-w-[400px]"},G={class:"bg-fill-light w-full p-4 mt-4"},H={class:"upload-btn w-[60px] h-[60px]"},J={class:"upload-btn w-[60px] h-[60px]"},M={class:"flex-1 flex items-center"},Q={class:"drag-move cursor-move ml-auto"},le=D({__name:"menu-set",props:{modelValue:{},max:{default:9999},min:{default:-1},itemData:{default:()=>({name:"",selected:"",unselected:"",is_show:"1",link:{}})}},emits:["update:modelValue"],setup(V,{emit:v}){const u=V,g=v,t=j({get(){return u.modelValue},set(i){g("update:modelValue",i)}}),k=()=>{var i;((i=t.value)==null?void 0:i.length){if(t.value.length<=u.min&&u.min>-1)return x.msgError(`最少保留${u.min}个`);t.value.splice(i,1)};return(i,s)=>{const _=S,f=O,p=B,h=$,w=L,y=N,U=K,C=P;return n(),z(A,null,[d("div",T,[a(r(I),{class:"draggable",modelValue:r(t),"onUpdate:modelValue":s[0]||(s[0]=e=>F(t)?t.value=e:null),animation:"300",handle:".drag-move","item-key":"index"},{item:o(({element:e,index:E})=>[a(U,{onClose:l=>b(E),class:"max-w-[400px]"},{default:o(()=>[d("div",G,[e.unselected!==void 0||e.selected!==void 0?(n(),m(p,{key:0,label:"导航图标"},{default:o(()=>[e.unselected!==void 0?(n(),m(f,{key:0,modelValue:e.unselected,"onUpdate:modelValue":l=>e.unselected=l,"upload-class":"bg-body","exclude-domain":"",size:"60px"},{upload:o(()=>[d("div",H,[a(_,{name:"el-icon-Plus",size:16}),s[1]||(s[1]=d("span",{class:"text-xs leading-5"}," 未选中 ",-1))])]),_:1},8,["modelValue","onUpdate:modelValue"])):c("",!0),e.selected!==void 0?(n(),m(f,{key:1,modelValue:e.selected,"onUpdate:modelValue":l=>e.selected=l,"upload-class":"bg-body","exclude-domain":"",size:"60px"},{upload:o(()=>[d("div",J,[a(_,{name:"el-icon-Plus",size:16}),s[2]||(s[2]=d("span",{class:"text-xs leading-5"}," 选中 ",-1))])]),_:1},8,["modelValue","onUpdate:modelValue"])):c("",!0)]),_:2},1024)):c("",!0),e.name!==void 0?(n(),m(p,{key:1,label:"导航名称"},{default:o(()=>[a(h,{modelValue:e.name,"onUpdate:modelValue":l=>e.name=l,placeholder:"请输入名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)):c("",!0),e.link!==void 0?(n(),m(p,{key:2,label:"链接地址"},{default:o(()=>[a(w,{modelValue:e.link,"onUpdate:modelValue":l=>e.link=l,type:"pc"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024)):c("",!0),e.is_show!==void 0?(n(),m(p,{key:3,label:"是否显示"},{default:o(()=>[d("div",M,[a(y,{modelValue:e.is_show,"onUpdate:modelValue":l=>e.is_show=l,"active-value":"1","inactive-value":"0"},null,8,["modelValue","onUpdate:modelValue"]),d("div",Q,[a(_,{name:"el-icon-Rank",size:"18"})])])]),_:2},1024)):c("",!0)])]),_:2},1032,["onClose"])]),_:1},8,["modelValue"])]),r(t).length[a(C,{type:"primary",onClick:k},{default:o(()=>[...s[3]||(s[3]=[R(" 添加导航 ",-1)])]),_:1})]),_:1})):c("",!0)],64)}}});export{le as _}; diff --git a/server/public/admin/assets/message-7QdBbth1.js b/server/public/admin/assets/message-CaYd28kO.js similarity index 87% rename from server/public/admin/assets/message-7QdBbth1.js rename to server/public/admin/assets/message-CaYd28kO.js index 0d70b2a20..5eb6c8ea6 100644 --- a/server/public/admin/assets/message-7QdBbth1.js +++ b/server/public/admin/assets/message-CaYd28kO.js @@ -1 +1 @@ -import{r as n}from"./index-Dxvz9lb1.js";function i(t){return n.get({url:"/notice.notice/settingLists",params:t})}function s(t){return n.get({url:"/notice.notice/detail",params:t})}function o(t){return n.post({url:"/notice.notice/set",params:t})}function r(){return n.get({url:"/notice.sms_config/getConfig"})}function c(t){return n.get({url:"/notice.sms_config/detail",params:t})}function u(t){return n.post({url:"/notice.sms_config/setConfig",params:t})}export{i as a,u as b,c,r as d,s as n,o as s}; +import{r as n}from"./index-Bkarz3gO.js";function i(t){return n.get({url:"/notice.notice/settingLists",params:t})}function s(t){return n.get({url:"/notice.notice/detail",params:t})}function o(t){return n.post({url:"/notice.notice/set",params:t})}function r(){return n.get({url:"/notice.sms_config/getConfig"})}function c(t){return n.get({url:"/notice.sms_config/detail",params:t})}function u(t){return n.post({url:"/notice.sms_config/setConfig",params:t})}export{i as a,u as b,c,r as d,s as n,o as s}; diff --git a/server/public/admin/assets/mobile-style-BdhGtn_v.js b/server/public/admin/assets/mobile-style-CyMoXYJb.js similarity index 50% rename from server/public/admin/assets/mobile-style-BdhGtn_v.js rename to server/public/admin/assets/mobile-style-CyMoXYJb.js index 30c6b2495..49fe570f7 100644 --- a/server/public/admin/assets/mobile-style-BdhGtn_v.js +++ b/server/public/admin/assets/mobile-style-CyMoXYJb.js @@ -1 +1 @@ -import{_ as o}from"./mobile-style.vue_vue_type_script_setup_true_lang-i-cAJJVM.js";import"./.pnpm-CyuAWpdG.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./theme-picker-Bzh27A21.js";import"./index-Dxvz9lb1.js";export{o as default}; +import{_ as o}from"./mobile-style.vue_vue_type_script_setup_true_lang-n-0g3y0b.js";import"./.pnpm-CyuAWpdG.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./theme-picker-BztxpFGq.js";import"./index-Bkarz3gO.js";export{o as default}; diff --git a/server/public/admin/assets/mobile-style.vue_vue_type_script_setup_true_lang-i-cAJJVM.js b/server/public/admin/assets/mobile-style.vue_vue_type_script_setup_true_lang-n-0g3y0b.js similarity index 98% rename from server/public/admin/assets/mobile-style.vue_vue_type_script_setup_true_lang-i-cAJJVM.js rename to server/public/admin/assets/mobile-style.vue_vue_type_script_setup_true_lang-n-0g3y0b.js index 3c8f44ccf..df4931995 100644 --- a/server/public/admin/assets/mobile-style.vue_vue_type_script_setup_true_lang-i-cAJJVM.js +++ b/server/public/admin/assets/mobile-style.vue_vue_type_script_setup_true_lang-n-0g3y0b.js @@ -1 +1 @@ -import{o as k,cp as B,q as m,O as c,D as n,s as o,v as t,bb as D,u as e,bf as y,bq as E,L as C,P as i,r as d,bd as I,M as N}from"./.pnpm-CyuAWpdG.js";import{_ as T}from"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import q from"./theme-picker-Bzh27A21.js";const z="/admin/assets/blue1-gLOo1H0w.png",P="/admin/assets/blue2-CRQPdLZd.png",U="/admin/assets/blue3-D3K9OqGO.png",L="/admin/assets/green1-h1zqes95.png",O="/admin/assets/green2-C-VRKLSN.png",R="/admin/assets/green3-CPorIQiC.png",W="/admin/assets/purple1-BpMq9FWz.png",G="/admin/assets/purple2-C0tQkldV.png",K="/admin/assets/purple3-BGd0LxTa.png",M="/admin/assets/yellow1-Ebw0T5sw.png",Q="/admin/assets/yellow2-B-WtqITJ.png",Z="/admin/assets/yellow3-C_qd9cqN.png",A="/admin/assets/red1-C6Y3UuNB.png",S="/admin/assets/red2-Dw8p71sP.png",Y="/admin/assets/red3-NOuWP8DK.png",H="/admin/assets/pink1-BWNZrP7C.png",J="/admin/assets/pink2-BpEp33zy.png",$="/admin/assets/pink3-BxZ4Y6CS.png",j={key:0,class:"flex"},X={key:1,class:"flex"},h={key:2,class:"flex"},ll={key:3,class:"flex"},ol={key:4,class:"flex"},sl={key:5,class:"flex"},rl=k({__name:"mobile-style",props:{modelValue:{}},emits:["update:modelValue"],setup(_,{emit:f}){const w=_,b=N([{id:1,name:"科技蓝",color1:"#2F80ED",color2:"#56CCF2",btnColor:"white"},{id:2,name:"偏绿蓝",color1:"#2EC840",color2:"#3DE650",btnColor:"white"},{id:3,name:"商务紫",color1:"#A74BFD",color2:"#CB60FF",btnColor:"white"},{id:4,name:"活力橙",color1:"#F7971E",color2:"#FFD200",btnColor:"black"},{id:5,name:"经典红",color1:"#FF2C3C",color2:"#EF1D2D",btnColor:"white"},{id:6,name:"美妆色",color1:"#FD498F",color2:"#FA444D",btnColor:"white"},{id:7,name:"自定义",color1:"#F8F8F8",color2:"#F5F5F5",btnColor:"white"}]),v=f,F=a=>{a.id!=7&&(s.value.themeColor1=a.color1,s.value.themeColor2=a.color2,s.value.navigationBarColor=a.color1,s.value.buttonColor=a.btnColor,s.value.topTextColor=a.btnColor)},s=B(w,"modelValue",v);return(a,l)=>{const p=D,u=E,g=y,x=T,V=I;return m(),c(V,{"label-width":"140px"},{default:n(()=>[o("div",null,[l[6]||(l[6]=o("div",{class:"text-xl font-medium mb-[20px]"},"系统主题色",-1)),t(p,{"label-width":"50"},{default:n(()=>[t(q,{modelValue:e(s).themeColorId,"onUpdate:modelValue":l[0]||(l[0]=r=>e(s).themeColorId=r),"theme-colors":e(b),onChange:F},null,8,["modelValue","theme-colors"])]),_:1})]),o("div",null,[l[14]||(l[14]=o("div",{class:"text-xl font-medium mt-[40px] mb-[20px]"},"样式设置",-1)),t(p,{label:"导航顶部文字颜色"},{default:n(()=>[o("div",null,[t(g,{modelValue:e(s).topTextColor,"onUpdate:modelValue":l[1]||(l[1]=r=>e(s).topTextColor=r)},{default:n(()=>[t(u,{value:"white",size:"large"},{default:n(()=>[...l[7]||(l[7]=[C("白色",-1)])]),_:1}),t(u,{value:"black",size:"large"},{default:n(()=>[...l[8]||(l[8]=[C("黑色",-1)])]),_:1})]),_:1},8,["modelValue"]),l[9]||(l[9]=o("div",null,[o("span",{class:"form-tips"},"页面导航栏文字的颜色")],-1))])]),_:1}),t(p,{label:"导航顶部背景颜色"},{default:n(()=>[o("div",null,[t(x,{resetColor:e(s).themeColor1,modelValue:e(s).navigationBarColor,"onUpdate:modelValue":l[2]||(l[2]=r=>e(s).navigationBarColor=r)},null,8,["resetColor","modelValue"]),l[10]||(l[10]=o("div",null,[o("span",{class:"form-tips"}," 页面顶部导航栏背景颜色,不设置则跟随主题色 ")],-1))])]),_:1}),e(s).themeColorId==7?(m(),c(p,{key:0,label:"自定义主题颜色"},{default:n(()=>[o("div",null,[t(x,{modelValue:e(s).themeColor1,"onUpdate:modelValue":l[3]||(l[3]=r=>e(s).themeColor1=r),"default-color":"#F8F8F8"},null,8,["modelValue"]),t(x,{modelValue:e(s).themeColor2,"onUpdate:modelValue":l[4]||(l[4]=r=>e(s).themeColor2=r),"default-color":"#F8F8F8",class:"mt-2"},null,8,["modelValue"]),l[11]||(l[11]=o("div",null,[o("span",{class:"form-tips"},"自定义主题渐变色,用于按钮类和主要文字")],-1))])]),_:1})):i("",!0),t(p,{label:"按钮文字颜色"},{default:n(()=>[o("div",null,[t(g,{modelValue:e(s).buttonColor,"onUpdate:modelValue":l[5]||(l[5]=r=>e(s).buttonColor=r)},{default:n(()=>[t(u,{value:"white",size:"large"},{default:n(()=>[...l[12]||(l[12]=[C("白色",-1)])]),_:1}),t(u,{value:"black",size:"large"},{default:n(()=>[...l[13]||(l[13]=[C("黑色",-1)])]),_:1})]),_:1},8,["modelValue"])])]),_:1})]),o("div",null,[e(s).themeColorId==1?(m(),d("div",j,[...l[15]||(l[15]=[o("img",{class:"w-[200px]",src:z},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:P},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:U},null,-1)])])):i("",!0),e(s).themeColorId==2?(m(),d("div",X,[...l[16]||(l[16]=[o("img",{class:"w-[200px]",src:L},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:O},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:R},null,-1)])])):i("",!0),e(s).themeColorId==3?(m(),d("div",h,[...l[17]||(l[17]=[o("img",{class:"w-[200px]",src:W},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:G},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:K},null,-1)])])):i("",!0),e(s).themeColorId==4?(m(),d("div",ll,[...l[18]||(l[18]=[o("img",{class:"w-[200px]",src:M},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:Q},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:Z},null,-1)])])):i("",!0),e(s).themeColorId==5?(m(),d("div",ol,[...l[19]||(l[19]=[o("img",{class:"w-[200px]",src:A},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:S},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:Y},null,-1)])])):i("",!0),e(s).themeColorId==6?(m(),d("div",sl,[...l[20]||(l[20]=[o("img",{class:"w-[200px]",src:H},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:J},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:$},null,-1)])])):i("",!0)])]),_:1})}}});export{rl as _}; +import{o as k,cp as B,q as m,O as c,D as n,s as o,v as t,bb as D,u as e,bf as y,bq as E,L as C,P as i,r as d,bd as I,M as N}from"./.pnpm-CyuAWpdG.js";import{_ as T}from"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import q from"./theme-picker-BztxpFGq.js";const z="/admin/assets/blue1-gLOo1H0w.png",P="/admin/assets/blue2-CRQPdLZd.png",U="/admin/assets/blue3-D3K9OqGO.png",L="/admin/assets/green1-h1zqes95.png",O="/admin/assets/green2-C-VRKLSN.png",R="/admin/assets/green3-CPorIQiC.png",W="/admin/assets/purple1-BpMq9FWz.png",G="/admin/assets/purple2-C0tQkldV.png",K="/admin/assets/purple3-BGd0LxTa.png",M="/admin/assets/yellow1-Ebw0T5sw.png",Q="/admin/assets/yellow2-B-WtqITJ.png",Z="/admin/assets/yellow3-C_qd9cqN.png",A="/admin/assets/red1-C6Y3UuNB.png",S="/admin/assets/red2-Dw8p71sP.png",Y="/admin/assets/red3-NOuWP8DK.png",H="/admin/assets/pink1-BWNZrP7C.png",J="/admin/assets/pink2-BpEp33zy.png",$="/admin/assets/pink3-BxZ4Y6CS.png",j={key:0,class:"flex"},X={key:1,class:"flex"},h={key:2,class:"flex"},ll={key:3,class:"flex"},ol={key:4,class:"flex"},sl={key:5,class:"flex"},rl=k({__name:"mobile-style",props:{modelValue:{}},emits:["update:modelValue"],setup(_,{emit:f}){const w=_,b=N([{id:1,name:"科技蓝",color1:"#2F80ED",color2:"#56CCF2",btnColor:"white"},{id:2,name:"偏绿蓝",color1:"#2EC840",color2:"#3DE650",btnColor:"white"},{id:3,name:"商务紫",color1:"#A74BFD",color2:"#CB60FF",btnColor:"white"},{id:4,name:"活力橙",color1:"#F7971E",color2:"#FFD200",btnColor:"black"},{id:5,name:"经典红",color1:"#FF2C3C",color2:"#EF1D2D",btnColor:"white"},{id:6,name:"美妆色",color1:"#FD498F",color2:"#FA444D",btnColor:"white"},{id:7,name:"自定义",color1:"#F8F8F8",color2:"#F5F5F5",btnColor:"white"}]),v=f,F=a=>{a.id!=7&&(s.value.themeColor1=a.color1,s.value.themeColor2=a.color2,s.value.navigationBarColor=a.color1,s.value.buttonColor=a.btnColor,s.value.topTextColor=a.btnColor)},s=B(w,"modelValue",v);return(a,l)=>{const p=D,u=E,g=y,x=T,V=I;return m(),c(V,{"label-width":"140px"},{default:n(()=>[o("div",null,[l[6]||(l[6]=o("div",{class:"text-xl font-medium mb-[20px]"},"系统主题色",-1)),t(p,{"label-width":"50"},{default:n(()=>[t(q,{modelValue:e(s).themeColorId,"onUpdate:modelValue":l[0]||(l[0]=r=>e(s).themeColorId=r),"theme-colors":e(b),onChange:F},null,8,["modelValue","theme-colors"])]),_:1})]),o("div",null,[l[14]||(l[14]=o("div",{class:"text-xl font-medium mt-[40px] mb-[20px]"},"样式设置",-1)),t(p,{label:"导航顶部文字颜色"},{default:n(()=>[o("div",null,[t(g,{modelValue:e(s).topTextColor,"onUpdate:modelValue":l[1]||(l[1]=r=>e(s).topTextColor=r)},{default:n(()=>[t(u,{value:"white",size:"large"},{default:n(()=>[...l[7]||(l[7]=[C("白色",-1)])]),_:1}),t(u,{value:"black",size:"large"},{default:n(()=>[...l[8]||(l[8]=[C("黑色",-1)])]),_:1})]),_:1},8,["modelValue"]),l[9]||(l[9]=o("div",null,[o("span",{class:"form-tips"},"页面导航栏文字的颜色")],-1))])]),_:1}),t(p,{label:"导航顶部背景颜色"},{default:n(()=>[o("div",null,[t(x,{resetColor:e(s).themeColor1,modelValue:e(s).navigationBarColor,"onUpdate:modelValue":l[2]||(l[2]=r=>e(s).navigationBarColor=r)},null,8,["resetColor","modelValue"]),l[10]||(l[10]=o("div",null,[o("span",{class:"form-tips"}," 页面顶部导航栏背景颜色,不设置则跟随主题色 ")],-1))])]),_:1}),e(s).themeColorId==7?(m(),c(p,{key:0,label:"自定义主题颜色"},{default:n(()=>[o("div",null,[t(x,{modelValue:e(s).themeColor1,"onUpdate:modelValue":l[3]||(l[3]=r=>e(s).themeColor1=r),"default-color":"#F8F8F8"},null,8,["modelValue"]),t(x,{modelValue:e(s).themeColor2,"onUpdate:modelValue":l[4]||(l[4]=r=>e(s).themeColor2=r),"default-color":"#F8F8F8",class:"mt-2"},null,8,["modelValue"]),l[11]||(l[11]=o("div",null,[o("span",{class:"form-tips"},"自定义主题渐变色,用于按钮类和主要文字")],-1))])]),_:1})):i("",!0),t(p,{label:"按钮文字颜色"},{default:n(()=>[o("div",null,[t(g,{modelValue:e(s).buttonColor,"onUpdate:modelValue":l[5]||(l[5]=r=>e(s).buttonColor=r)},{default:n(()=>[t(u,{value:"white",size:"large"},{default:n(()=>[...l[12]||(l[12]=[C("白色",-1)])]),_:1}),t(u,{value:"black",size:"large"},{default:n(()=>[...l[13]||(l[13]=[C("黑色",-1)])]),_:1})]),_:1},8,["modelValue"])])]),_:1})]),o("div",null,[e(s).themeColorId==1?(m(),d("div",j,[...l[15]||(l[15]=[o("img",{class:"w-[200px]",src:z},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:P},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:U},null,-1)])])):i("",!0),e(s).themeColorId==2?(m(),d("div",X,[...l[16]||(l[16]=[o("img",{class:"w-[200px]",src:L},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:O},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:R},null,-1)])])):i("",!0),e(s).themeColorId==3?(m(),d("div",h,[...l[17]||(l[17]=[o("img",{class:"w-[200px]",src:W},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:G},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:K},null,-1)])])):i("",!0),e(s).themeColorId==4?(m(),d("div",ll,[...l[18]||(l[18]=[o("img",{class:"w-[200px]",src:M},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:Q},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:Z},null,-1)])])):i("",!0),e(s).themeColorId==5?(m(),d("div",ol,[...l[19]||(l[19]=[o("img",{class:"w-[200px]",src:A},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:S},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:Y},null,-1)])])):i("",!0),e(s).themeColorId==6?(m(),d("div",sl,[...l[20]||(l[20]=[o("img",{class:"w-[200px]",src:H},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:J},null,-1),o("img",{class:"w-[200px] ml-[30px]",src:$},null,-1)])])):i("",!0)])]),_:1})}}});export{rl as _}; diff --git a/server/public/admin/assets/mubiao-DmV48IO8.js b/server/public/admin/assets/mubiao-DjCWlJEf.js similarity index 97% rename from server/public/admin/assets/mubiao-DmV48IO8.js rename to server/public/admin/assets/mubiao-DjCWlJEf.js index 002f67ff0..1e006ecb5 100644 --- a/server/public/admin/assets/mubiao-DmV48IO8.js +++ b/server/public/admin/assets/mubiao-DjCWlJEf.js @@ -1 +1 @@ -import{o as Y,M as m,ap as q,bp as K,q as i,r as v,s as a,v as o,D as r,u as g,cN as U,w as W,L as y,az as H,T as b,bz as B,K as J,ac as I,O as x,cO as Q,bn as X,cP as Z,F as T,G as z,ax as ee,p as F}from"./.pnpm-CyuAWpdG.js";import V from"./mubiao-dept-card-DiVRo-fN.js";import{d as te,i as ae}from"./finance-D9pJwZQS.js";import{j as L,_ as le}from"./index-Dxvz9lb1.js";const ne={class:"mubiao-page"},oe={class:"toolbar"},se={class:"toolbar__left"},ie={class:"toolbar__icon"},re={class:"toolbar__center"},de={class:"month-picker-wrap"},ue={class:"toolbar__right"},ce={class:"summary-strip"},_e={class:"summary-item"},me={class:"summary-item__val"},pe={class:"summary-item"},ve={class:"summary-item__val primary"},fe={"element-loading-text":"数据加载中…",class:"board-wrap"},he={key:0,class:"empty-state"},ge={class:"empty-state__icon"},ye={class:"empty-state__title"},be={class:"empty-state__desc"},ke={key:1,class:"board-grid"},we=Y({name:"financeMubiao"}),Se=Y({...we,setup(xe){function k(e){const t={dept_id:Number(e.dept_id??0),dept_name:String(e.dept_name??""),dept_path:String(e.dept_path??""),target_id:Number(e.target_id??0),target_amount:Number(e.target_amount??0),remark:String(e.remark??"")},l=e.children;return Array.isArray(l)&&l.length>0&&(t.children=l.map(k)),t}function M(e){var l;let t=0;for(const n of e)t+=Number(n.target_amount??0),(l=n.children)!=null&&l.length&&(t+=M(n.children));return Math.round(t*100)/100}function C(e){var l;let t=0;for(const n of e)t+=1,(l=n.children)!=null&&l.length&&(t+=C(n.children));return t}function D(e){var l;const t=[];for(const n of e)t.push({dept_id:n.dept_id,target_amount:Number(n.target_amount??0),remark:n.remark||""}),(l=n.children)!=null&&l.length&&t.push(...D(n.children));return t}function E(){const e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}`}function P(e){return e>=1e4?(e/1e4).toFixed(1)+"w":e.toLocaleString("zh-CN",{maximumFractionDigits:0})}const d=m(E()),p=m(!1),w=m(!1),u=m([]),f=m(!1),s=m([]),_=m(null),$=F(()=>M(u.value)),A=F(()=>C(u.value));function N(e){if(s.value.some(t=>t.dept_id===e.dept_id)){_.value=e.dept_id;return}s.value.push(e),_.value=e.dept_id}function G(e){const t=s.value.findIndex(l=>l.dept_id===e);t!==-1&&s.value.splice(t),_.value=s.value.length>0?s.value[s.value.length-1].dept_id:null}async function h(){if(d.value){p.value=!0,s.value=[],_.value=null;try{const e=await te({year_month:d.value});u.value=((e==null?void 0:e.rows)||[]).map(k),f.value=!!(e!=null&&e.data_scope_limited)}catch{u.value=[],f.value=!1}finally{p.value=!1}}}async function O(){if(!d.value){L.msgWarning("请选择月份");return}await L.confirm("确认保存「"+d.value+"」各部门业绩目标?"),w.value=!0;try{const e=await ae({year_month:d.value,items:D(u.value)});e!=null&&e.rows?(u.value=e.rows.map(k),f.value=!!(e!=null&&e.data_scope_limited),s.value=[],_.value=null):await h()}finally{w.value=!1}}return q(h),(e,t)=>{const l=W,n=H,S=J,R=K("perms"),j=X;return i(),v("div",ne,[a("div",oe,[a("div",se,[a("div",ie,[o(l,null,{default:r(()=>[o(g(U))]),_:1})]),t[1]||(t[1]=a("div",null,[a("div",{class:"toolbar__title"},"制定业绩目标"),a("div",{class:"toolbar__desc"},[y(" 按部门设置每月销售目标,填 0 并保存将删除该记录。列表按当前账号 "),a("strong",null,"角色数据权限"),y(" 仅展示"),a("strong",null,"本部门及下级"),y("(不展示权限外的上级组织;口径与业绩看板数据范围一致)。 ")])],-1))]),a("div",re,[a("div",de,[t[2]||(t[2]=a("span",{class:"month-picker-wrap__label"},"目标月份",-1)),o(n,{modelValue:d.value,"onUpdate:modelValue":t[0]||(t[0]=c=>d.value=c),type:"month","value-format":"YYYY-MM",placeholder:"选择月份",clearable:!1,size:"default",class:"month-picker",onChange:h},null,8,["modelValue"])])]),a("div",ue,[a("div",ce,[a("div",_e,[a("span",me,b(A.value),1),t[3]||(t[3]=a("span",{class:"summary-item__label"},"部门",-1))]),t[5]||(t[5]=a("div",{class:"summary-divider"},null,-1)),a("div",pe,[a("span",ve,"¥"+b(P($.value)),1),t[4]||(t[4]=a("span",{class:"summary-item__label"},"目标合计",-1))])]),o(S,{circle:"",loading:p.value,onClick:h,title:"刷新"},{default:r(()=>[o(l,null,{default:r(()=>[o(g(B))]),_:1})]),_:1},8,["loading"]),I((i(),x(S,{type:"primary",loading:w.value,disabled:p.value||!d.value,onClick:O},{default:r(()=>[o(l,null,{default:r(()=>[o(g(Q))]),_:1}),t[6]||(t[6]=y("保存目标 ",-1))]),_:1},8,["loading","disabled"])),[[R,["finance.dept_performance_target/batchSave"]]])])]),I((i(),v("div",fe,[!p.value&&u.value.length===0?(i(),v("div",he,[a("div",ge,[o(l,null,{default:r(()=>[o(g(Z))]),_:1})]),a("p",ye,b(f.value?"数据权限内无可选部门":"暂无部门数据"),1),a("p",be,b(f.value?"当前角色数据范围未包含任何部门,或需在权限中绑定部门后再试。":"请检查部门配置后重试"),1),o(S,{size:"small",onClick:h},{default:r(()=>[o(l,null,{default:r(()=>[o(g(B))]),_:1}),t[7]||(t[7]=y("重新加载",-1))]),_:1})])):(i(),v("div",ke,[o(ee,{name:"card",tag:"div",class:"board-grid__inner"},{default:r(()=>[(i(!0),v(T,null,z(u.value,c=>(i(),x(V,{key:"root-"+c.dept_id,node:c,"is-root":!0,"drilled-id":_.value,onDrillIn:N},null,8,["node","drilled-id"]))),128)),(i(!0),v(T,null,z(s.value,c=>(i(),x(V,{key:"drill-"+c.dept_id,node:c,"is-root":!1,"drilled-id":_.value,class:"card--drilled",onDrillIn:N,onClose:Me=>G(c.dept_id)},null,8,["node","drilled-id","onClose"]))),128))]),_:1})]))])),[[j,p.value]])])}}}),Ie=le(Se,[["__scopeId","data-v-9d32b132"]]);export{Ie as default}; +import{o as Y,M as m,ap as q,bp as K,q as i,r as v,s as a,v as o,D as r,u as g,cN as U,w as W,L as y,az as H,T as b,bz as B,K as J,ac as I,O as x,cO as Q,bn as X,cP as Z,F as T,G as z,ax as ee,p as F}from"./.pnpm-CyuAWpdG.js";import V from"./mubiao-dept-card-8VkmXPc1.js";import{d as te,i as ae}from"./finance-C684dcZP.js";import{j as L,_ as le}from"./index-Bkarz3gO.js";const ne={class:"mubiao-page"},oe={class:"toolbar"},se={class:"toolbar__left"},ie={class:"toolbar__icon"},re={class:"toolbar__center"},de={class:"month-picker-wrap"},ue={class:"toolbar__right"},ce={class:"summary-strip"},_e={class:"summary-item"},me={class:"summary-item__val"},pe={class:"summary-item"},ve={class:"summary-item__val primary"},fe={"element-loading-text":"数据加载中…",class:"board-wrap"},he={key:0,class:"empty-state"},ge={class:"empty-state__icon"},ye={class:"empty-state__title"},be={class:"empty-state__desc"},ke={key:1,class:"board-grid"},we=Y({name:"financeMubiao"}),Se=Y({...we,setup(xe){function k(e){const t={dept_id:Number(e.dept_id??0),dept_name:String(e.dept_name??""),dept_path:String(e.dept_path??""),target_id:Number(e.target_id??0),target_amount:Number(e.target_amount??0),remark:String(e.remark??"")},l=e.children;return Array.isArray(l)&&l.length>0&&(t.children=l.map(k)),t}function M(e){var l;let t=0;for(const n of e)t+=Number(n.target_amount??0),(l=n.children)!=null&&l.length&&(t+=M(n.children));return Math.round(t*100)/100}function C(e){var l;let t=0;for(const n of e)t+=1,(l=n.children)!=null&&l.length&&(t+=C(n.children));return t}function D(e){var l;const t=[];for(const n of e)t.push({dept_id:n.dept_id,target_amount:Number(n.target_amount??0),remark:n.remark||""}),(l=n.children)!=null&&l.length&&t.push(...D(n.children));return t}function E(){const e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}`}function P(e){return e>=1e4?(e/1e4).toFixed(1)+"w":e.toLocaleString("zh-CN",{maximumFractionDigits:0})}const d=m(E()),p=m(!1),w=m(!1),u=m([]),f=m(!1),s=m([]),_=m(null),$=F(()=>M(u.value)),A=F(()=>C(u.value));function N(e){if(s.value.some(t=>t.dept_id===e.dept_id)){_.value=e.dept_id;return}s.value.push(e),_.value=e.dept_id}function G(e){const t=s.value.findIndex(l=>l.dept_id===e);t!==-1&&s.value.splice(t),_.value=s.value.length>0?s.value[s.value.length-1].dept_id:null}async function h(){if(d.value){p.value=!0,s.value=[],_.value=null;try{const e=await te({year_month:d.value});u.value=((e==null?void 0:e.rows)||[]).map(k),f.value=!!(e!=null&&e.data_scope_limited)}catch{u.value=[],f.value=!1}finally{p.value=!1}}}async function O(){if(!d.value){L.msgWarning("请选择月份");return}await L.confirm("确认保存「"+d.value+"」各部门业绩目标?"),w.value=!0;try{const e=await ae({year_month:d.value,items:D(u.value)});e!=null&&e.rows?(u.value=e.rows.map(k),f.value=!!(e!=null&&e.data_scope_limited),s.value=[],_.value=null):await h()}finally{w.value=!1}}return q(h),(e,t)=>{const l=W,n=H,S=J,R=K("perms"),j=X;return i(),v("div",ne,[a("div",oe,[a("div",se,[a("div",ie,[o(l,null,{default:r(()=>[o(g(U))]),_:1})]),t[1]||(t[1]=a("div",null,[a("div",{class:"toolbar__title"},"制定业绩目标"),a("div",{class:"toolbar__desc"},[y(" 按部门设置每月销售目标,填 0 并保存将删除该记录。列表按当前账号 "),a("strong",null,"角色数据权限"),y(" 仅展示"),a("strong",null,"本部门及下级"),y("(不展示权限外的上级组织;口径与业绩看板数据范围一致)。 ")])],-1))]),a("div",re,[a("div",de,[t[2]||(t[2]=a("span",{class:"month-picker-wrap__label"},"目标月份",-1)),o(n,{modelValue:d.value,"onUpdate:modelValue":t[0]||(t[0]=c=>d.value=c),type:"month","value-format":"YYYY-MM",placeholder:"选择月份",clearable:!1,size:"default",class:"month-picker",onChange:h},null,8,["modelValue"])])]),a("div",ue,[a("div",ce,[a("div",_e,[a("span",me,b(A.value),1),t[3]||(t[3]=a("span",{class:"summary-item__label"},"部门",-1))]),t[5]||(t[5]=a("div",{class:"summary-divider"},null,-1)),a("div",pe,[a("span",ve,"¥"+b(P($.value)),1),t[4]||(t[4]=a("span",{class:"summary-item__label"},"目标合计",-1))])]),o(S,{circle:"",loading:p.value,onClick:h,title:"刷新"},{default:r(()=>[o(l,null,{default:r(()=>[o(g(B))]),_:1})]),_:1},8,["loading"]),I((i(),x(S,{type:"primary",loading:w.value,disabled:p.value||!d.value,onClick:O},{default:r(()=>[o(l,null,{default:r(()=>[o(g(Q))]),_:1}),t[6]||(t[6]=y("保存目标 ",-1))]),_:1},8,["loading","disabled"])),[[R,["finance.dept_performance_target/batchSave"]]])])]),I((i(),v("div",fe,[!p.value&&u.value.length===0?(i(),v("div",he,[a("div",ge,[o(l,null,{default:r(()=>[o(g(Z))]),_:1})]),a("p",ye,b(f.value?"数据权限内无可选部门":"暂无部门数据"),1),a("p",be,b(f.value?"当前角色数据范围未包含任何部门,或需在权限中绑定部门后再试。":"请检查部门配置后重试"),1),o(S,{size:"small",onClick:h},{default:r(()=>[o(l,null,{default:r(()=>[o(g(B))]),_:1}),t[7]||(t[7]=y("重新加载",-1))]),_:1})])):(i(),v("div",ke,[o(ee,{name:"card",tag:"div",class:"board-grid__inner"},{default:r(()=>[(i(!0),v(T,null,z(u.value,c=>(i(),x(V,{key:"root-"+c.dept_id,node:c,"is-root":!0,"drilled-id":_.value,onDrillIn:N},null,8,["node","drilled-id"]))),128)),(i(!0),v(T,null,z(s.value,c=>(i(),x(V,{key:"drill-"+c.dept_id,node:c,"is-root":!1,"drilled-id":_.value,class:"card--drilled",onDrillIn:N,onClose:Me=>G(c.dept_id)},null,8,["node","drilled-id","onClose"]))),128))]),_:1})]))])),[[j,p.value]])])}}}),Ie=le(Se,[["__scopeId","data-v-9d32b132"]]);export{Ie as default}; diff --git a/server/public/admin/assets/mubiao-dept-card-DiVRo-fN.js b/server/public/admin/assets/mubiao-dept-card-8VkmXPc1.js similarity index 98% rename from server/public/admin/assets/mubiao-dept-card-DiVRo-fN.js rename to server/public/admin/assets/mubiao-dept-card-8VkmXPc1.js index 3f8ce2d4d..36a448b51 100644 --- a/server/public/admin/assets/mubiao-dept-card-DiVRo-fN.js +++ b/server/public/admin/assets/mubiao-dept-card-8VkmXPc1.js @@ -1 +1 @@ -import{o as R,q as d,r as s,ae as h,F as b,G as I,s as t,T as r,O as S,D as v,v as u,u as w,cF as D,w as A,P as c,t as q,L as E,av as G,J,aA as O,bm as P,p as _}from"./.pnpm-CyuAWpdG.js";import{_ as j}from"./index-Dxvz9lb1.js";const H={key:0,class:"dept-card__crumb"},K={class:"crumb-seg__text"},Q={class:"dept-card__header"},W={class:"dept-card__meta"},X={class:"dept-card__name"},Y={key:0,class:"dept-card__sub-count"},Z={key:0,class:"dept-card__sub-total"},ee={class:"dept-card__actions"},te={key:0,class:"status-badge status-badge--saved"},ae={key:1,class:"status-badge status-badge--new"},le={class:"dept-card__body"},ne={class:"field-row"},de={class:"field-block"},se={key:0,class:"field-block__hint"},oe={class:"field-block field-block--remark"},re={class:"child-header"},ie={class:"child-header__count"},ce={class:"child-list"},ue={class:"child-row__name-wrap"},_e={class:"child-row__name"},me={class:"child-row__inputs"},ge=["title"],fe=["title","onClick"],pe={class:"dept-card__footer"},he=R({__name:"mubiao-dept-card",props:{node:{},isRoot:{type:Boolean},drilledId:{}},emits:["drill-in","close"],setup(n,{emit:U}){const i=n,x=U;function g(l){var o;let e=Number(l.target_amount??0);if((o=l.children)!=null&&o.length)for(const f of l.children)e+=g(f);return e}const k=_(()=>{var l;return(l=i.node.children)!=null&&l.length?i.node.children.reduce((e,o)=>e+g(o),0):0}),y=_(()=>Number(i.node.target_amount??0)+k.value),T=_(()=>y.value===0),$=_(()=>{var l;return i.node.target_id?(l=i.node.children)!=null&&l.length?i.node.children.every(e=>e.target_id>0):!0:!1}),V=_(()=>{if(!i.node.dept_path)return null;const l=i.node.dept_path.split(/\s*\/\s*/).filter(Boolean);return l.length>1?l:null}),L=_(()=>{const l=["linear-gradient(135deg,#667eea,#764ba2)","linear-gradient(135deg,#f093fb,#f5576c)","linear-gradient(135deg,#4facfe,#00f2fe)","linear-gradient(135deg,#43e97b,#38f9d7)","linear-gradient(135deg,#fa709a,#fee140)","linear-gradient(135deg,#30cfd0,#330867)","linear-gradient(135deg,#a18cd1,#fbc2eb)","linear-gradient(135deg,#fccb90,#d57eeb)","linear-gradient(135deg,#e0c3fc,#8ec5fc)","linear-gradient(135deg,#f6d365,#fda085)"];let e=0;for(let o=0;o=1e4?(l/1e4).toFixed(1)+"w":l.toLocaleString("zh-CN",{maximumFractionDigits:0})}return(l,e)=>{var B,F;const o=A,f=J,z=O,M=P;return d(),s("div",{class:h(["dept-card",{"dept-card--saved":$.value,"dept-card--empty":T.value}])},[!n.isRoot&&V.value?(d(),s("div",H,[(d(!0),s(b,null,I(V.value,(a,m)=>(d(),s("span",{key:m,class:"crumb-seg"},[t("span",K,r(a),1),m[u(w(D))]),_:1})):c("",!0)]))),128))])):c("",!0),t("div",Q,[t("div",{class:"dept-card__avatar",style:q({background:L.value})},r(n.node.dept_name.slice(0,1)),5),t("div",W,[t("div",X,r(n.node.dept_name),1),(B=n.node.children)!=null&&B.length?(d(),s("div",Y,[E(r(n.node.children.length)+" 个子部门 ",1),k.value>0?(d(),s("span",Z,"· ¥"+r(N(k.value)),1)):c("",!0)])):c("",!0)]),t("div",ee,[n.node.target_id?(d(),s("span",te,"已保存")):(d(),s("span",ae,"未设置")),n.isRoot?c("",!0):(d(),s("button",{key:2,class:"close-btn",title:"关闭此卡片",onClick:e[0]||(e[0]=a=>x("close"))},[u(o,null,{default:v(()=>[u(w(G))]),_:1})]))])]),t("div",le,[t("div",ne,[t("div",de,[e[3]||(e[3]=t("label",{class:"field-block__label"},"目标金额",-1)),u(f,{modelValue:n.node.target_amount,"onUpdate:modelValue":e[1]||(e[1]=a=>n.node.target_amount=a),min:0,precision:2,step:1e3,"controls-position":"right",placeholder:"0.00",class:"field-block__input"},null,8,["modelValue"]),n.node.target_amount>0?(d(),s("span",se," ¥ "+r(C(n.node.target_amount)),1)):c("",!0)]),t("div",oe,[e[4]||(e[4]=t("label",{class:"field-block__label"},"备注",-1)),u(z,{modelValue:n.node.remark,"onUpdate:modelValue":e[2]||(e[2]=a=>n.node.remark=a),maxlength:"255",placeholder:"备注(选填)",clearable:""},null,8,["modelValue"])])])]),(F=n.node.children)!=null&&F.length?(d(),s(b,{key:1},[t("div",re,[e[5]||(e[5]=t("span",{class:"child-header__title"},"子部门",-1)),t("span",ie,r(n.node.children.length),1)]),t("div",ce,[(d(!0),s(b,null,I(n.node.children,a=>{var m;return d(),s("div",{key:a.dept_id,class:h(["child-row",{"child-row--active":n.drilledId===a.dept_id}])},[t("div",ue,[e[7]||(e[7]=t("div",{class:"child-row__dot"},null,-1)),t("span",_e,r(a.dept_name),1),a.target_id?(d(),S(M,{key:0,size:"small",type:"success",effect:"plain",round:"",class:"child-row__tag"},{default:v(()=>[...e[6]||(e[6]=[E("已保存",-1)])]),_:1})):c("",!0)]),t("div",me,[u(f,{modelValue:a.target_amount,"onUpdate:modelValue":p=>a.target_amount=p,min:0,precision:2,step:1e3,"controls-position":"right",placeholder:"0.00",class:"child-row__amount"},null,8,["modelValue","onUpdate:modelValue"]),u(z,{modelValue:a.remark,"onUpdate:modelValue":p=>a.remark=p,maxlength:"255",placeholder:"备注",clearable:"",size:"small",class:"child-row__remark"},null,8,["modelValue","onUpdate:modelValue"]),(m=a.children)!=null&&m.length?(d(),s(b,{key:0},[g(a)>0?(d(),s("span",{key:0,class:"child-subtree-total",title:`「${a.dept_name}」含下级合计`}," ="+r(N(g(a))),9,ge)):c("",!0),t("button",{class:h(["drill-btn",{"drill-btn--active":n.drilledId===a.dept_id}]),title:`展开「${a.dept_name}」的 ${a.children.length} 个子部门`,onClick:p=>x("drill-in",a)},[u(o,null,{default:v(()=>[u(w(D))]),_:1}),t("span",null,r(a.children.length),1)],10,fe)],64)):c("",!0)])],2)}),128))])],64)):c("",!0),t("div",pe,[e[8]||(e[8]=t("span",{class:"dept-card__footer-label"},"本卡合计",-1)),t("span",{class:h(["dept-card__footer-total",{"is-nonzero":y.value>0}])}," ¥ "+r(C(y.value)),3)])],2)}}}),ke=j(he,[["__scopeId","data-v-27adbc27"]]);export{ke as default}; +import{o as R,q as d,r as s,ae as h,F as b,G as I,s as t,T as r,O as S,D as v,v as u,u as w,cF as D,w as A,P as c,t as q,L as E,av as G,J,aA as O,bm as P,p as _}from"./.pnpm-CyuAWpdG.js";import{_ as j}from"./index-Bkarz3gO.js";const H={key:0,class:"dept-card__crumb"},K={class:"crumb-seg__text"},Q={class:"dept-card__header"},W={class:"dept-card__meta"},X={class:"dept-card__name"},Y={key:0,class:"dept-card__sub-count"},Z={key:0,class:"dept-card__sub-total"},ee={class:"dept-card__actions"},te={key:0,class:"status-badge status-badge--saved"},ae={key:1,class:"status-badge status-badge--new"},le={class:"dept-card__body"},ne={class:"field-row"},de={class:"field-block"},se={key:0,class:"field-block__hint"},oe={class:"field-block field-block--remark"},re={class:"child-header"},ie={class:"child-header__count"},ce={class:"child-list"},ue={class:"child-row__name-wrap"},_e={class:"child-row__name"},me={class:"child-row__inputs"},ge=["title"],fe=["title","onClick"],pe={class:"dept-card__footer"},he=R({__name:"mubiao-dept-card",props:{node:{},isRoot:{type:Boolean},drilledId:{}},emits:["drill-in","close"],setup(n,{emit:U}){const i=n,x=U;function g(l){var o;let e=Number(l.target_amount??0);if((o=l.children)!=null&&o.length)for(const f of l.children)e+=g(f);return e}const k=_(()=>{var l;return(l=i.node.children)!=null&&l.length?i.node.children.reduce((e,o)=>e+g(o),0):0}),y=_(()=>Number(i.node.target_amount??0)+k.value),T=_(()=>y.value===0),$=_(()=>{var l;return i.node.target_id?(l=i.node.children)!=null&&l.length?i.node.children.every(e=>e.target_id>0):!0:!1}),V=_(()=>{if(!i.node.dept_path)return null;const l=i.node.dept_path.split(/\s*\/\s*/).filter(Boolean);return l.length>1?l:null}),L=_(()=>{const l=["linear-gradient(135deg,#667eea,#764ba2)","linear-gradient(135deg,#f093fb,#f5576c)","linear-gradient(135deg,#4facfe,#00f2fe)","linear-gradient(135deg,#43e97b,#38f9d7)","linear-gradient(135deg,#fa709a,#fee140)","linear-gradient(135deg,#30cfd0,#330867)","linear-gradient(135deg,#a18cd1,#fbc2eb)","linear-gradient(135deg,#fccb90,#d57eeb)","linear-gradient(135deg,#e0c3fc,#8ec5fc)","linear-gradient(135deg,#f6d365,#fda085)"];let e=0;for(let o=0;o=1e4?(l/1e4).toFixed(1)+"w":l.toLocaleString("zh-CN",{maximumFractionDigits:0})}return(l,e)=>{var B,F;const o=A,f=J,z=O,M=P;return d(),s("div",{class:h(["dept-card",{"dept-card--saved":$.value,"dept-card--empty":T.value}])},[!n.isRoot&&V.value?(d(),s("div",H,[(d(!0),s(b,null,I(V.value,(a,m)=>(d(),s("span",{key:m,class:"crumb-seg"},[t("span",K,r(a),1),m[u(w(D))]),_:1})):c("",!0)]))),128))])):c("",!0),t("div",Q,[t("div",{class:"dept-card__avatar",style:q({background:L.value})},r(n.node.dept_name.slice(0,1)),5),t("div",W,[t("div",X,r(n.node.dept_name),1),(B=n.node.children)!=null&&B.length?(d(),s("div",Y,[E(r(n.node.children.length)+" 个子部门 ",1),k.value>0?(d(),s("span",Z,"· ¥"+r(N(k.value)),1)):c("",!0)])):c("",!0)]),t("div",ee,[n.node.target_id?(d(),s("span",te,"已保存")):(d(),s("span",ae,"未设置")),n.isRoot?c("",!0):(d(),s("button",{key:2,class:"close-btn",title:"关闭此卡片",onClick:e[0]||(e[0]=a=>x("close"))},[u(o,null,{default:v(()=>[u(w(G))]),_:1})]))])]),t("div",le,[t("div",ne,[t("div",de,[e[3]||(e[3]=t("label",{class:"field-block__label"},"目标金额",-1)),u(f,{modelValue:n.node.target_amount,"onUpdate:modelValue":e[1]||(e[1]=a=>n.node.target_amount=a),min:0,precision:2,step:1e3,"controls-position":"right",placeholder:"0.00",class:"field-block__input"},null,8,["modelValue"]),n.node.target_amount>0?(d(),s("span",se," ¥ "+r(C(n.node.target_amount)),1)):c("",!0)]),t("div",oe,[e[4]||(e[4]=t("label",{class:"field-block__label"},"备注",-1)),u(z,{modelValue:n.node.remark,"onUpdate:modelValue":e[2]||(e[2]=a=>n.node.remark=a),maxlength:"255",placeholder:"备注(选填)",clearable:""},null,8,["modelValue"])])])]),(F=n.node.children)!=null&&F.length?(d(),s(b,{key:1},[t("div",re,[e[5]||(e[5]=t("span",{class:"child-header__title"},"子部门",-1)),t("span",ie,r(n.node.children.length),1)]),t("div",ce,[(d(!0),s(b,null,I(n.node.children,a=>{var m;return d(),s("div",{key:a.dept_id,class:h(["child-row",{"child-row--active":n.drilledId===a.dept_id}])},[t("div",ue,[e[7]||(e[7]=t("div",{class:"child-row__dot"},null,-1)),t("span",_e,r(a.dept_name),1),a.target_id?(d(),S(M,{key:0,size:"small",type:"success",effect:"plain",round:"",class:"child-row__tag"},{default:v(()=>[...e[6]||(e[6]=[E("已保存",-1)])]),_:1})):c("",!0)]),t("div",me,[u(f,{modelValue:a.target_amount,"onUpdate:modelValue":p=>a.target_amount=p,min:0,precision:2,step:1e3,"controls-position":"right",placeholder:"0.00",class:"child-row__amount"},null,8,["modelValue","onUpdate:modelValue"]),u(z,{modelValue:a.remark,"onUpdate:modelValue":p=>a.remark=p,maxlength:"255",placeholder:"备注",clearable:"",size:"small",class:"child-row__remark"},null,8,["modelValue","onUpdate:modelValue"]),(m=a.children)!=null&&m.length?(d(),s(b,{key:0},[g(a)>0?(d(),s("span",{key:0,class:"child-subtree-total",title:`「${a.dept_name}」含下级合计`}," ="+r(N(g(a))),9,ge)):c("",!0),t("button",{class:h(["drill-btn",{"drill-btn--active":n.drilledId===a.dept_id}]),title:`展开「${a.dept_name}」的 ${a.children.length} 个子部门`,onClick:p=>x("drill-in",a)},[u(o,null,{default:v(()=>[u(w(D))]),_:1}),t("span",null,r(a.children.length),1)],10,fe)],64)):c("",!0)])],2)}),128))])],64)):c("",!0),t("div",pe,[e[8]||(e[8]=t("span",{class:"dept-card__footer-label"},"本卡合计",-1)),t("span",{class:h(["dept-card__footer-total",{"is-nonzero":y.value>0}])}," ¥ "+r(C(y.value)),3)])],2)}}}),ke=j(he,[["__scopeId","data-v-27adbc27"]]);export{ke as default}; diff --git a/server/public/admin/assets/mubiao-dept-node-Bi4SmSaR.js b/server/public/admin/assets/mubiao-dept-node-Dy4mHHPx.js similarity index 97% rename from server/public/admin/assets/mubiao-dept-node-Bi4SmSaR.js rename to server/public/admin/assets/mubiao-dept-node-Dy4mHHPx.js index 8223cf4bf..43b1d3f1c 100644 --- a/server/public/admin/assets/mubiao-dept-node-Bi4SmSaR.js +++ b/server/public/admin/assets/mubiao-dept-node-Dy4mHHPx.js @@ -1 +1 @@ -import{o as x,x as N,q as a,r as d,s as o,v as s,D as r,u as D,cM as B,w as E,L as i,T as u,J as M,aA as C,O as l,bm as I,F as m,G as k,P as c,t as U,p as w}from"./.pnpm-CyuAWpdG.js";import{_ as z}from"./index-Dxvz9lb1.js";const S={key:0,class:"group"},T={class:"group__header"},F={class:"group__name"},L={class:"group__amount-wrap"},P={class:"group__remark-wrap"},j={class:"group__badge-wrap"},q={key:1,class:"group__unsaved-dot"},A={key:0,class:"group__body"},G=["data-depth"],J={class:"row__dept"},O={class:"row__dept-text"},$={class:"row__name"},H={key:0,class:"row__path"},K={class:"row__amount"},Q={class:"row__remark"},R=x({name:"MubiaoDeptNode",__name:"mubiao-dept-node",props:{node:{},depth:{}},setup(e){const V=e,y=w(()=>V.node.dept_path.split(/\s*\/\s*/).filter(Boolean)),_=w(()=>y.value.slice(0,-1).join(" › "));return(W,t)=>{var f;const b=E,p=M,g=C,h=I,v=N("MubiaoDeptNode",!0);return e.depth===0?(a(),d("div",S,[o("div",T,[t[5]||(t[5]=o("div",{class:"group__accent"},null,-1)),o("div",F,[s(b,{class:"group__name-icon"},{default:r(()=>[s(D(B))]),_:1}),i(" "+u(e.node.dept_name),1)]),o("div",L,[s(p,{modelValue:e.node.target_amount,"onUpdate:modelValue":t[0]||(t[0]=n=>e.node.target_amount=n),min:0,precision:2,step:1e3,"controls-position":"right",placeholder:"0.00",class:"group__amount-input"},null,8,["modelValue"])]),o("div",P,[s(g,{modelValue:e.node.remark,"onUpdate:modelValue":t[1]||(t[1]=n=>e.node.remark=n),maxlength:"255",placeholder:"备注(选填)",clearable:""},null,8,["modelValue"])]),o("div",j,[e.node.target_id?(a(),l(h,{key:0,size:"small",type:"success",effect:"plain",round:""},{default:r(()=>[...t[4]||(t[4]=[i("已保存",-1)])]),_:1})):(a(),d("span",q))])]),(f=e.node.children)!=null&&f.length?(a(),d("div",A,[(a(!0),d(m,null,k(e.node.children,n=>(a(),l(v,{key:n.dept_id,node:n,depth:1},null,8,["node"]))),128))])):c("",!0)])):(a(),d(m,{key:1},[o("div",{class:"row","data-depth":String(Math.min(e.depth,4))},[o("div",{class:"row__indent",style:U({width:`${(e.depth-1)*20+16}px`})},[...t[6]||(t[6]=[o("div",{class:"row__connector"},null,-1)])],4),o("div",J,[t[8]||(t[8]=o("div",{class:"row__dot"},null,-1)),o("div",O,[o("span",$,u(e.node.dept_name),1),_.value?(a(),d("span",H,u(_.value),1)):c("",!0)]),e.node.target_id?(a(),l(h,{key:0,size:"small",type:"success",effect:"plain",round:"",class:"row__saved"},{default:r(()=>[...t[7]||(t[7]=[i("已保存",-1)])]),_:1})):c("",!0)]),o("div",K,[s(p,{modelValue:e.node.target_amount,"onUpdate:modelValue":t[2]||(t[2]=n=>e.node.target_amount=n),min:0,precision:2,step:1e3,"controls-position":"right",placeholder:"0.00",class:"row__amount-input"},null,8,["modelValue"])]),o("div",Q,[s(g,{modelValue:e.node.remark,"onUpdate:modelValue":t[3]||(t[3]=n=>e.node.remark=n),maxlength:"255",placeholder:"备注(选填)",clearable:""},null,8,["modelValue"])])],8,G),(a(!0),d(m,null,k(e.node.children,n=>(a(),l(v,{key:n.dept_id,node:n,depth:e.depth+1},null,8,["node","depth"]))),128))],64))}}}),Z=z(R,[["__scopeId","data-v-02198f38"]]);export{Z as default}; +import{o as x,x as N,q as a,r as d,s as o,v as s,D as r,u as D,cM as B,w as E,L as i,T as u,J as M,aA as C,O as l,bm as I,F as m,G as k,P as c,t as U,p as w}from"./.pnpm-CyuAWpdG.js";import{_ as z}from"./index-Bkarz3gO.js";const S={key:0,class:"group"},T={class:"group__header"},F={class:"group__name"},L={class:"group__amount-wrap"},P={class:"group__remark-wrap"},j={class:"group__badge-wrap"},q={key:1,class:"group__unsaved-dot"},A={key:0,class:"group__body"},G=["data-depth"],J={class:"row__dept"},O={class:"row__dept-text"},$={class:"row__name"},H={key:0,class:"row__path"},K={class:"row__amount"},Q={class:"row__remark"},R=x({name:"MubiaoDeptNode",__name:"mubiao-dept-node",props:{node:{},depth:{}},setup(e){const V=e,y=w(()=>V.node.dept_path.split(/\s*\/\s*/).filter(Boolean)),_=w(()=>y.value.slice(0,-1).join(" › "));return(W,t)=>{var f;const b=E,p=M,g=C,h=I,v=N("MubiaoDeptNode",!0);return e.depth===0?(a(),d("div",S,[o("div",T,[t[5]||(t[5]=o("div",{class:"group__accent"},null,-1)),o("div",F,[s(b,{class:"group__name-icon"},{default:r(()=>[s(D(B))]),_:1}),i(" "+u(e.node.dept_name),1)]),o("div",L,[s(p,{modelValue:e.node.target_amount,"onUpdate:modelValue":t[0]||(t[0]=n=>e.node.target_amount=n),min:0,precision:2,step:1e3,"controls-position":"right",placeholder:"0.00",class:"group__amount-input"},null,8,["modelValue"])]),o("div",P,[s(g,{modelValue:e.node.remark,"onUpdate:modelValue":t[1]||(t[1]=n=>e.node.remark=n),maxlength:"255",placeholder:"备注(选填)",clearable:""},null,8,["modelValue"])]),o("div",j,[e.node.target_id?(a(),l(h,{key:0,size:"small",type:"success",effect:"plain",round:""},{default:r(()=>[...t[4]||(t[4]=[i("已保存",-1)])]),_:1})):(a(),d("span",q))])]),(f=e.node.children)!=null&&f.length?(a(),d("div",A,[(a(!0),d(m,null,k(e.node.children,n=>(a(),l(v,{key:n.dept_id,node:n,depth:1},null,8,["node"]))),128))])):c("",!0)])):(a(),d(m,{key:1},[o("div",{class:"row","data-depth":String(Math.min(e.depth,4))},[o("div",{class:"row__indent",style:U({width:`${(e.depth-1)*20+16}px`})},[...t[6]||(t[6]=[o("div",{class:"row__connector"},null,-1)])],4),o("div",J,[t[8]||(t[8]=o("div",{class:"row__dot"},null,-1)),o("div",O,[o("span",$,u(e.node.dept_name),1),_.value?(a(),d("span",H,u(_.value),1)):c("",!0)]),e.node.target_id?(a(),l(h,{key:0,size:"small",type:"success",effect:"plain",round:"",class:"row__saved"},{default:r(()=>[...t[7]||(t[7]=[i("已保存",-1)])]),_:1})):c("",!0)]),o("div",K,[s(p,{modelValue:e.node.target_amount,"onUpdate:modelValue":t[2]||(t[2]=n=>e.node.target_amount=n),min:0,precision:2,step:1e3,"controls-position":"right",placeholder:"0.00",class:"row__amount-input"},null,8,["modelValue"])]),o("div",Q,[s(g,{modelValue:e.node.remark,"onUpdate:modelValue":t[3]||(t[3]=n=>e.node.remark=n),maxlength:"255",placeholder:"备注(选填)",clearable:""},null,8,["modelValue"])])],8,G),(a(!0),d(m,null,k(e.node.children,n=>(a(),l(v,{key:n.dept_id,node:n,depth:e.depth+1},null,8,["node","depth"]))),128))],64))}}}),Z=z(R,[["__scopeId","data-v-02198f38"]]);export{Z as default}; diff --git a/server/public/admin/assets/oa-attr-ChgdvxF3.js b/server/public/admin/assets/oa-attr-DmdyjM6c.js similarity index 84% rename from server/public/admin/assets/oa-attr-ChgdvxF3.js rename to server/public/admin/assets/oa-attr-DmdyjM6c.js index 4c3fff140..7a98ff3b7 100644 --- a/server/public/admin/assets/oa-attr-ChgdvxF3.js +++ b/server/public/admin/assets/oa-attr-DmdyjM6c.js @@ -1 +1 @@ -import{_ as S}from"./index-ClBYIwNX.js";import{_ as A}from"./index-BnfLT5cB.js";import{o as B,x as g,q as l,r as d,G as h,ac as $,ad as L,u as t,s as p,v as o,D as a,F as y,T as v,K as N,w as R,L as b,a8 as V}from"./.pnpm-CyuAWpdG.js";import{_ as F}from"./oa-menu-form.vue_vue_type_script_setup_true_lang-k_w2frrN.js";import{_ as U}from"./oa-menu-form-edit.vue_vue_type_script_setup_true_lang-BqIRIump.js";import{u as O}from"./useMenuOa-8FDoUIjw.js";import{_ as q}from"./index-Dxvz9lb1.js";import"./wx_oa-vu-UopqS.js";const G={class:"flex items-center w-full p-4 mt-4 rounded bg-fill-light"},K={class:"flex-1"},j={class:"mr-auto"},z=B({__name:"oa-attr",setup(H){const r=V(),{menuList:x,menuIndex:u,handleAddSubMenu:T,handleEditSubMenu:k,handleDelMenu:w,handleDelSubMenu:E}=O(r);return(J,s)=>{const D=g("EditPen"),m=R,i=N,C=g("Delete"),P=A,M=S;return l(!0),d(y,null,h(t(x),(e,f)=>$((l(),d("div",{key:f,class:"flex-1 oa-attr min-w-0"},[s[2]||(s[2]=p("div",{class:"text-base oa-attr-title"},"菜单配置",-1)),o(M,{onClose:s[0]||(s[0]=n=>t(w)(t(u)))},{default:a(()=>[p("div",G,[o(F,{ref_for:!0,ref_key:"menuRef",ref:r,modular:"master",name:e.name,"onUpdate:name":n=>e.name=n,menuType:e.has_menu,"onUpdate:menuType":n=>e.has_menu=n,visitType:e.type,"onUpdate:visitType":n=>e.type=n,url:e.url,"onUpdate:url":n=>e.url=n,appId:e.appid,"onUpdate:appId":n=>e.appid=n,pagePath:e.pagepath,"onUpdate:pagePath":n=>e.pagepath=n},{default:a(()=>[p("div",K,[p("ul",null,[(l(!0),d(y,null,h(e.sub_button,(n,_)=>(l(),d("li",{class:"flex",key:_,style:{padding:"8px"}},[p("span",j,v(n.name),1),o(U,{modular:"edit",subItem:n,onEdit:c=>t(k)(c,_)},{default:a(()=>[o(i,{link:""},{default:a(()=>[o(m,null,{default:a(()=>[o(D)]),_:1})]),_:1})]),_:1},8,["subItem","onEdit"]),o(P,{onConfirm:c=>t(E)(t(u),_)},{trigger:a(()=>[o(i,{link:""},{default:a(()=>[o(m,{class:"ml-5"},{default:a(()=>[o(C)]),_:1})]),_:1})]),default:a(()=>[s[1]||(s[1]=b(" 是否删除当前子菜单? ",-1))]),_:1},8,["onConfirm"])]))),128))]),o(U,{modular:"add",onAdd:t(T)},{default:a(()=>[o(i,{type:"primary",link:"",disabled:e.sub_button.length>=5},{default:a(()=>[b(" 添加子菜单("+v(e.sub_button.length)+"/5) ",1)]),_:2},1032,["disabled"])]),_:2},1032,["onAdd"])])]),_:2},1032,["name","onUpdate:name","menuType","onUpdate:menuType","visitType","onUpdate:visitType","url","onUpdate:url","appId","onUpdate:appId","pagePath","onUpdate:pagePath"])])]),_:2},1024)],512)),[[L,f===t(u)]])),128)}}}),oe=q(z,[["__scopeId","data-v-0fd60009"]]);export{oe as default}; +import{_ as S}from"./index-Cqk_cdo9.js";import{_ as A}from"./index-CS5Wg0xx.js";import{o as B,x as g,q as l,r as d,G as h,ac as $,ad as L,u as t,s as p,v as o,D as a,F as y,T as v,K as N,w as R,L as b,a8 as V}from"./.pnpm-CyuAWpdG.js";import{_ as F}from"./oa-menu-form.vue_vue_type_script_setup_true_lang-BFU8gUm5.js";import{_ as U}from"./oa-menu-form-edit.vue_vue_type_script_setup_true_lang-DIX04Rea.js";import{u as O}from"./useMenuOa-30Dq12UU.js";import{_ as q}from"./index-Bkarz3gO.js";import"./wx_oa-C-EoclSf.js";const G={class:"flex items-center w-full p-4 mt-4 rounded bg-fill-light"},K={class:"flex-1"},j={class:"mr-auto"},z=B({__name:"oa-attr",setup(H){const r=V(),{menuList:x,menuIndex:u,handleAddSubMenu:T,handleEditSubMenu:k,handleDelMenu:w,handleDelSubMenu:E}=O(r);return(J,s)=>{const D=g("EditPen"),m=R,i=N,C=g("Delete"),P=A,M=S;return l(!0),d(y,null,h(t(x),(e,f)=>$((l(),d("div",{key:f,class:"flex-1 oa-attr min-w-0"},[s[2]||(s[2]=p("div",{class:"text-base oa-attr-title"},"菜单配置",-1)),o(M,{onClose:s[0]||(s[0]=n=>t(w)(t(u)))},{default:a(()=>[p("div",G,[o(F,{ref_for:!0,ref_key:"menuRef",ref:r,modular:"master",name:e.name,"onUpdate:name":n=>e.name=n,menuType:e.has_menu,"onUpdate:menuType":n=>e.has_menu=n,visitType:e.type,"onUpdate:visitType":n=>e.type=n,url:e.url,"onUpdate:url":n=>e.url=n,appId:e.appid,"onUpdate:appId":n=>e.appid=n,pagePath:e.pagepath,"onUpdate:pagePath":n=>e.pagepath=n},{default:a(()=>[p("div",K,[p("ul",null,[(l(!0),d(y,null,h(e.sub_button,(n,_)=>(l(),d("li",{class:"flex",key:_,style:{padding:"8px"}},[p("span",j,v(n.name),1),o(U,{modular:"edit",subItem:n,onEdit:c=>t(k)(c,_)},{default:a(()=>[o(i,{link:""},{default:a(()=>[o(m,null,{default:a(()=>[o(D)]),_:1})]),_:1})]),_:1},8,["subItem","onEdit"]),o(P,{onConfirm:c=>t(E)(t(u),_)},{trigger:a(()=>[o(i,{link:""},{default:a(()=>[o(m,{class:"ml-5"},{default:a(()=>[o(C)]),_:1})]),_:1})]),default:a(()=>[s[1]||(s[1]=b(" 是否删除当前子菜单? ",-1))]),_:1},8,["onConfirm"])]))),128))]),o(U,{modular:"add",onAdd:t(T)},{default:a(()=>[o(i,{type:"primary",link:"",disabled:e.sub_button.length>=5},{default:a(()=>[b(" 添加子菜单("+v(e.sub_button.length)+"/5) ",1)]),_:2},1032,["disabled"])]),_:2},1032,["onAdd"])])]),_:2},1032,["name","onUpdate:name","menuType","onUpdate:menuType","visitType","onUpdate:visitType","url","onUpdate:url","appId","onUpdate:appId","pagePath","onUpdate:pagePath"])])]),_:2},1024)],512)),[[L,f===t(u)]])),128)}}}),oe=q(z,[["__scopeId","data-v-0fd60009"]]);export{oe as default}; diff --git a/server/public/admin/assets/oa-menu-form-BtVlmzxF.js b/server/public/admin/assets/oa-menu-form-BtVlmzxF.js deleted file mode 100644 index 547be965a..000000000 --- a/server/public/admin/assets/oa-menu-form-BtVlmzxF.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./oa-menu-form.vue_vue_type_script_setup_true_lang-k_w2frrN.js";import"./.pnpm-CyuAWpdG.js";import"./useMenuOa-8FDoUIjw.js";import"./wx_oa-vu-UopqS.js";import"./index-Dxvz9lb1.js";export{o as default}; diff --git a/server/public/admin/assets/oa-menu-form-C5al5xBc.js b/server/public/admin/assets/oa-menu-form-C5al5xBc.js new file mode 100644 index 000000000..129c464d5 --- /dev/null +++ b/server/public/admin/assets/oa-menu-form-C5al5xBc.js @@ -0,0 +1 @@ +import{_ as o}from"./oa-menu-form.vue_vue_type_script_setup_true_lang-BFU8gUm5.js";import"./.pnpm-CyuAWpdG.js";import"./useMenuOa-30Dq12UU.js";import"./wx_oa-C-EoclSf.js";import"./index-Bkarz3gO.js";export{o as default}; diff --git a/server/public/admin/assets/oa-menu-form-edit-7MBFNNnP.js b/server/public/admin/assets/oa-menu-form-edit-7MBFNNnP.js new file mode 100644 index 000000000..c9c9c20f2 --- /dev/null +++ b/server/public/admin/assets/oa-menu-form-edit-7MBFNNnP.js @@ -0,0 +1 @@ +import{_ as o}from"./oa-menu-form-edit.vue_vue_type_script_setup_true_lang-DIX04Rea.js";import"./index-CS5Wg0xx.js";import"./.pnpm-CyuAWpdG.js";import"./index-Bkarz3gO.js";import"./oa-menu-form.vue_vue_type_script_setup_true_lang-BFU8gUm5.js";import"./useMenuOa-30Dq12UU.js";import"./wx_oa-C-EoclSf.js";export{o as default}; diff --git a/server/public/admin/assets/oa-menu-form-edit-DlwuhjjU.js b/server/public/admin/assets/oa-menu-form-edit-DlwuhjjU.js deleted file mode 100644 index 4086933f8..000000000 --- a/server/public/admin/assets/oa-menu-form-edit-DlwuhjjU.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./oa-menu-form-edit.vue_vue_type_script_setup_true_lang-BqIRIump.js";import"./index-BnfLT5cB.js";import"./.pnpm-CyuAWpdG.js";import"./index-Dxvz9lb1.js";import"./oa-menu-form.vue_vue_type_script_setup_true_lang-k_w2frrN.js";import"./useMenuOa-8FDoUIjw.js";import"./wx_oa-vu-UopqS.js";export{o as default}; diff --git a/server/public/admin/assets/oa-menu-form-edit.vue_vue_type_script_setup_true_lang-BqIRIump.js b/server/public/admin/assets/oa-menu-form-edit.vue_vue_type_script_setup_true_lang-DIX04Rea.js similarity index 90% rename from server/public/admin/assets/oa-menu-form-edit.vue_vue_type_script_setup_true_lang-BqIRIump.js rename to server/public/admin/assets/oa-menu-form-edit.vue_vue_type_script_setup_true_lang-DIX04Rea.js index 190b8355f..c5abfa32d 100644 --- a/server/public/admin/assets/oa-menu-form-edit.vue_vue_type_script_setup_true_lang-BqIRIump.js +++ b/server/public/admin/assets/oa-menu-form-edit.vue_vue_type_script_setup_true_lang-DIX04Rea.js @@ -1 +1 @@ -import{_ as y}from"./index-BnfLT5cB.js";import{_ as g}from"./oa-menu-form.vue_vue_type_script_setup_true_lang-k_w2frrN.js";import{o as v,bw as c,q as R,O as k,D as d,v as F,ah as _,a8 as i}from"./.pnpm-CyuAWpdG.js";const P=v({__name:"oa-menu-form-edit",props:{modular:{default:"edit"},subItem:{default:{}}},emits:["add","edit"],setup(s,{emit:l}){const m=l,n=s,p=i(),r=i(),e={name:"",type:"view",url:"",appid:"",pagepath:""};c(()=>{if(Object.keys(n.subItem).length!=0)for(const o in e)e[o]=n.subItem[o]});const u=async()=>{await p.value.menuFormRef.validate(),n.modular==="edit"?m("edit",{...e}):m("add",{...e}),r.value.close(),p.value.menuFormRef.resetFields()};return(o,t)=>{const f=y;return R(),k(f,{ref_key:"menuFromPopupRef",ref:r,async:"",clickModalClose:!1,title:`${s.modular==="add"?"新增":"编辑"}子菜单`,onConfirm:u},{trigger:d(()=>[_(o.$slots,"default")]),default:d(()=>[F(g,{ref_key:"menuFormEditRef",ref:p,modular:"secondary",name:e.name,"onUpdate:name":t[0]||(t[0]=a=>e.name=a),visitType:e.type,"onUpdate:visitType":t[1]||(t[1]=a=>e.type=a),url:e.url,"onUpdate:url":t[2]||(t[2]=a=>e.url=a),appId:e.appid,"onUpdate:appId":t[3]||(t[3]=a=>e.appid=a),pagePath:e.pagepath,"onUpdate:pagePath":t[4]||(t[4]=a=>e.pagepath=a)},null,8,["name","visitType","url","appId","pagePath"])]),_:3},8,["title"])}}});export{P as _}; +import{_ as y}from"./index-CS5Wg0xx.js";import{_ as g}from"./oa-menu-form.vue_vue_type_script_setup_true_lang-BFU8gUm5.js";import{o as v,bw as c,q as R,O as k,D as d,v as F,ah as _,a8 as i}from"./.pnpm-CyuAWpdG.js";const P=v({__name:"oa-menu-form-edit",props:{modular:{default:"edit"},subItem:{default:{}}},emits:["add","edit"],setup(s,{emit:l}){const m=l,n=s,p=i(),r=i(),e={name:"",type:"view",url:"",appid:"",pagepath:""};c(()=>{if(Object.keys(n.subItem).length!=0)for(const o in e)e[o]=n.subItem[o]});const u=async()=>{await p.value.menuFormRef.validate(),n.modular==="edit"?m("edit",{...e}):m("add",{...e}),r.value.close(),p.value.menuFormRef.resetFields()};return(o,t)=>{const f=y;return R(),k(f,{ref_key:"menuFromPopupRef",ref:r,async:"",clickModalClose:!1,title:`${s.modular==="add"?"新增":"编辑"}子菜单`,onConfirm:u},{trigger:d(()=>[_(o.$slots,"default")]),default:d(()=>[F(g,{ref_key:"menuFormEditRef",ref:p,modular:"secondary",name:e.name,"onUpdate:name":t[0]||(t[0]=a=>e.name=a),visitType:e.type,"onUpdate:visitType":t[1]||(t[1]=a=>e.type=a),url:e.url,"onUpdate:url":t[2]||(t[2]=a=>e.url=a),appId:e.appid,"onUpdate:appId":t[3]||(t[3]=a=>e.appid=a),pagePath:e.pagepath,"onUpdate:pagePath":t[4]||(t[4]=a=>e.pagepath=a)},null,8,["name","visitType","url","appId","pagePath"])]),_:3},8,["title"])}}});export{P as _}; diff --git a/server/public/admin/assets/oa-menu-form.vue_vue_type_script_setup_true_lang-k_w2frrN.js b/server/public/admin/assets/oa-menu-form.vue_vue_type_script_setup_true_lang-BFU8gUm5.js similarity index 97% rename from server/public/admin/assets/oa-menu-form.vue_vue_type_script_setup_true_lang-k_w2frrN.js rename to server/public/admin/assets/oa-menu-form.vue_vue_type_script_setup_true_lang-BFU8gUm5.js index 140ac0c42..034ddfaa4 100644 --- a/server/public/admin/assets/oa-menu-form.vue_vue_type_script_setup_true_lang-k_w2frrN.js +++ b/server/public/admin/assets/oa-menu-form.vue_vue_type_script_setup_true_lang-BFU8gUm5.js @@ -1 +1 @@ -import{o as P,M as E,R as F,bw as R,q as m,O as V,D as u,v as t,bb as U,aA as x,u as l,bf as B,bq as C,L as f,P as i,ah as N,r as _,F as g,bd as q,a8 as A}from"./.pnpm-CyuAWpdG.js";import{r as D}from"./useMenuOa-8FDoUIjw.js";const M=P({__name:"oa-menu-form",props:{modular:{default:"master"},name:{default:""},menuType:{type:Boolean,default:!1},visitType:{default:"view"},url:{default:""},appId:{default:""},pagePath:{default:""}},emits:["update:name","update:menuType","update:visitType","update:url","update:appId","update:pagePath"],setup(r,{expose:I,emit:k}){const d=k,y=r,T=A(),e=E({...y});return F(()=>y,v=>{e.value=v},{immediate:!0}),R(()=>{y.modular==="master"&&d("update:menuType",e.value.menuType),d("update:name",e.value.name),d("update:visitType",e.value.visitType),d("update:url",e.value.url),d("update:appId",e.value.appId),d("update:pagePath",e.value.pagePath)}),I({menuFormRef:T}),(v,a)=>{const n=x,p=U,s=C,b=B,w=q;return m(),V(w,{ref_key:"menuFormRef",ref:T,rules:l(D),model:l(e),"label-width":"100px"},{default:u(()=>[t(p,{label:r.modular==="master"?"主菜单名称":"子菜单名称",prop:"name"},{default:u(()=>[t(n,{modelValue:l(e).name,"onUpdate:modelValue":a[0]||(a[0]=o=>l(e).name=o)},null,8,["modelValue"])]),_:1},8,["label"]),r.modular==="master"?(m(),V(p,{key:0,label:"主菜单类型",prop:"menuType"},{default:u(()=>[t(b,{modelValue:l(e).menuType,"onUpdate:modelValue":a[1]||(a[1]=o=>l(e).menuType=o)},{default:u(()=>[t(s,{value:!1},{default:u(()=>[...a[6]||(a[6]=[f("不配置子菜单",-1)])]),_:1}),t(s,{value:!0},{default:u(()=>[...a[7]||(a[7]=[f("配置子菜单",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})):i("",!0),l(e).menuType&&r.modular==="master"?(m(),V(p,{key:1,label:""},{default:u(()=>[N(v.$slots,"default")]),_:3})):i("",!0),l(e).menuType?i("",!0):(m(),_(g,{key:2},[t(p,{label:"跳转链接",prop:"visitType"},{default:u(()=>[t(b,{modelValue:l(e).visitType,"onUpdate:modelValue":a[2]||(a[2]=o=>l(e).visitType=o)},{default:u(()=>[t(s,{value:"view"},{default:u(()=>[...a[8]||(a[8]=[f("网页",-1)])]),_:1}),t(s,{value:"miniprogram"},{default:u(()=>[...a[9]||(a[9]=[f("小程序",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(p,{label:"网址",prop:"url"},{default:u(()=>[t(n,{modelValue:l(e).url,"onUpdate:modelValue":a[3]||(a[3]=o=>l(e).url=o)},null,8,["modelValue"])]),_:1}),l(e).visitType=="miniprogram"?(m(),_(g,{key:0},[t(p,{label:"AppId",prop:"appId"},{default:u(()=>[t(n,{modelValue:l(e).appId,"onUpdate:modelValue":a[4]||(a[4]=o=>l(e).appId=o)},null,8,["modelValue"])]),_:1}),t(p,{label:"路径",prop:"pagePath"},{default:u(()=>[t(n,{modelValue:l(e).pagePath,"onUpdate:modelValue":a[5]||(a[5]=o=>l(e).pagePath=o)},null,8,["modelValue"])]),_:1})],64)):i("",!0)],64))]),_:3},8,["rules","model"])}}});export{M as _}; +import{o as P,M as E,R as F,bw as R,q as m,O as V,D as u,v as t,bb as U,aA as x,u as l,bf as B,bq as C,L as f,P as i,ah as N,r as _,F as g,bd as q,a8 as A}from"./.pnpm-CyuAWpdG.js";import{r as D}from"./useMenuOa-30Dq12UU.js";const M=P({__name:"oa-menu-form",props:{modular:{default:"master"},name:{default:""},menuType:{type:Boolean,default:!1},visitType:{default:"view"},url:{default:""},appId:{default:""},pagePath:{default:""}},emits:["update:name","update:menuType","update:visitType","update:url","update:appId","update:pagePath"],setup(r,{expose:I,emit:k}){const d=k,y=r,T=A(),e=E({...y});return F(()=>y,v=>{e.value=v},{immediate:!0}),R(()=>{y.modular==="master"&&d("update:menuType",e.value.menuType),d("update:name",e.value.name),d("update:visitType",e.value.visitType),d("update:url",e.value.url),d("update:appId",e.value.appId),d("update:pagePath",e.value.pagePath)}),I({menuFormRef:T}),(v,a)=>{const n=x,p=U,s=C,b=B,w=q;return m(),V(w,{ref_key:"menuFormRef",ref:T,rules:l(D),model:l(e),"label-width":"100px"},{default:u(()=>[t(p,{label:r.modular==="master"?"主菜单名称":"子菜单名称",prop:"name"},{default:u(()=>[t(n,{modelValue:l(e).name,"onUpdate:modelValue":a[0]||(a[0]=o=>l(e).name=o)},null,8,["modelValue"])]),_:1},8,["label"]),r.modular==="master"?(m(),V(p,{key:0,label:"主菜单类型",prop:"menuType"},{default:u(()=>[t(b,{modelValue:l(e).menuType,"onUpdate:modelValue":a[1]||(a[1]=o=>l(e).menuType=o)},{default:u(()=>[t(s,{value:!1},{default:u(()=>[...a[6]||(a[6]=[f("不配置子菜单",-1)])]),_:1}),t(s,{value:!0},{default:u(()=>[...a[7]||(a[7]=[f("配置子菜单",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})):i("",!0),l(e).menuType&&r.modular==="master"?(m(),V(p,{key:1,label:""},{default:u(()=>[N(v.$slots,"default")]),_:3})):i("",!0),l(e).menuType?i("",!0):(m(),_(g,{key:2},[t(p,{label:"跳转链接",prop:"visitType"},{default:u(()=>[t(b,{modelValue:l(e).visitType,"onUpdate:modelValue":a[2]||(a[2]=o=>l(e).visitType=o)},{default:u(()=>[t(s,{value:"view"},{default:u(()=>[...a[8]||(a[8]=[f("网页",-1)])]),_:1}),t(s,{value:"miniprogram"},{default:u(()=>[...a[9]||(a[9]=[f("小程序",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(p,{label:"网址",prop:"url"},{default:u(()=>[t(n,{modelValue:l(e).url,"onUpdate:modelValue":a[3]||(a[3]=o=>l(e).url=o)},null,8,["modelValue"])]),_:1}),l(e).visitType=="miniprogram"?(m(),_(g,{key:0},[t(p,{label:"AppId",prop:"appId"},{default:u(()=>[t(n,{modelValue:l(e).appId,"onUpdate:modelValue":a[4]||(a[4]=o=>l(e).appId=o)},null,8,["modelValue"])]),_:1}),t(p,{label:"路径",prop:"pagePath"},{default:u(()=>[t(n,{modelValue:l(e).pagePath,"onUpdate:modelValue":a[5]||(a[5]=o=>l(e).pagePath=o)},null,8,["modelValue"])]),_:1})],64)):i("",!0)],64))]),_:3},8,["rules","model"])}}});export{M as _}; diff --git a/server/public/admin/assets/oa-phone-Chcv3hu5.js b/server/public/admin/assets/oa-phone-Da6Js6fB.js similarity index 91% rename from server/public/admin/assets/oa-phone-Chcv3hu5.js rename to server/public/admin/assets/oa-phone-Da6Js6fB.js index cd76d463b..59c25c7d5 100644 --- a/server/public/admin/assets/oa-phone-Chcv3hu5.js +++ b/server/public/admin/assets/oa-phone-Da6Js6fB.js @@ -1 +1 @@ -import{o as S,bx as D,u as t,p as F,x as _,q as s,r as n,s as o,v as l,D as p,w as P,F as h,G as f,ae as V,T as v,ac as j,ad as B,P as G}from"./.pnpm-CyuAWpdG.js";import{m as N,_ as A}from"./index-Dxvz9lb1.js";import{u as x}from"./useMenuOa-8FDoUIjw.js";import"./wx_oa-vu-UopqS.js";const E={class:"oa-phone mr-[35px]"},L={class:"flex oa-phone-menu"},M={class:"flex items-center justify-center oa-phone-menu-switch"},O=["onClick"],q={class:"oa-phone-menu-subitem"},z=S({__name:"oa-phone",setup(T){D(k=>({v5d8c0dd7:t(b)}));const C=N(),b=F(()=>C.theme||"#4A5DFF"),{menuList:i,menuIndex:r,handleAddMenu:u}=x(x);return(k,a)=>{const y=_("Grid"),d=P,g=_("Plus");return s(),n("div",E,[a[1]||(a[1]=o("div",{class:"oa-phone-content"},null,-1)),o("div",L,[o("div",M,[l(d,null,{default:p(()=>[l(y)]),_:1})]),(s(!0),n(h,null,f(t(i),(e,c)=>(s(),n("div",{key:c,class:"relative flex-1",onClick:m=>r.value=c},[o("div",{class:V(["flex items-center justify-center flex-1 text-sm oa-phone-menu-item",{"active-menu":t(r)===c}])},v(e.name),3),j(o("div",q,[(s(!0),n(h,null,f(e.sub_button,(m,w)=>(s(),n("div",{key:w,class:"oa-phone-menu-subitem-title"},v(m.name),1))),128))],512),[[B,e.sub_button.length&&e.has_menu]])],8,O))),128)),t(i).length<=2?(s(),n("div",{key:0,class:"flex items-center justify-center flex-1 h-full",onClick:a[0]||(a[0]=(...e)=>t(u)&&t(u)(...e))},[l(d,null,{default:p(()=>[l(g)]),_:1})])):G("",!0)])])}}}),K=A(z,[["__scopeId","data-v-e8e53db5"]]);export{K as default}; +import{o as S,bx as D,u as t,p as F,x as _,q as s,r as n,s as o,v as l,D as p,w as P,F as h,G as f,ae as V,T as v,ac as j,ad as B,P as G}from"./.pnpm-CyuAWpdG.js";import{m as N,_ as A}from"./index-Bkarz3gO.js";import{u as x}from"./useMenuOa-30Dq12UU.js";import"./wx_oa-C-EoclSf.js";const E={class:"oa-phone mr-[35px]"},L={class:"flex oa-phone-menu"},M={class:"flex items-center justify-center oa-phone-menu-switch"},O=["onClick"],q={class:"oa-phone-menu-subitem"},z=S({__name:"oa-phone",setup(T){D(k=>({v5d8c0dd7:t(b)}));const C=N(),b=F(()=>C.theme||"#4A5DFF"),{menuList:i,menuIndex:r,handleAddMenu:u}=x(x);return(k,a)=>{const y=_("Grid"),d=P,g=_("Plus");return s(),n("div",E,[a[1]||(a[1]=o("div",{class:"oa-phone-content"},null,-1)),o("div",L,[o("div",M,[l(d,null,{default:p(()=>[l(y)]),_:1})]),(s(!0),n(h,null,f(t(i),(e,c)=>(s(),n("div",{key:c,class:"relative flex-1",onClick:m=>r.value=c},[o("div",{class:V(["flex items-center justify-center flex-1 text-sm oa-phone-menu-item",{"active-menu":t(r)===c}])},v(e.name),3),j(o("div",q,[(s(!0),n(h,null,f(e.sub_button,(m,w)=>(s(),n("div",{key:w,class:"oa-phone-menu-subitem-title"},v(m.name),1))),128))],512),[[B,e.sub_button.length&&e.has_menu]])],8,O))),128)),t(i).length<=2?(s(),n("div",{key:0,class:"flex items-center justify-center flex-1 h-full",onClick:a[0]||(a[0]=(...e)=>t(u)&&t(u)(...e))},[l(d,null,{default:p(()=>[l(g)]),_:1})])):G("",!0)])])}}}),K=A(z,[["__scopeId","data-v-e8e53db5"]]);export{K as default}; diff --git a/server/public/admin/assets/open_setting-CTIsPyjO.js b/server/public/admin/assets/open_setting-CjV5CmT2.js similarity index 93% rename from server/public/admin/assets/open_setting-CTIsPyjO.js rename to server/public/admin/assets/open_setting-CjV5CmT2.js index 71d1423b7..78f96e9da 100644 --- a/server/public/admin/assets/open_setting-CTIsPyjO.js +++ b/server/public/admin/assets/open_setting-CjV5CmT2.js @@ -1 +1 @@ -import{_ as A}from"./index-9qT8_5W1.js";import{o as f,bp as y,q as m,r as E,v as t,D as n,bo as k,bj as x,s as l,bb as S,aA as B,u as s,bd as I,ac as q,O as R,K as N,L as O,aC as F,a8 as U}from"./.pnpm-CyuAWpdG.js";import{r as g}from"./index-Dxvz9lb1.js";function j(p){return g.post({url:"/channel.open_setting/setConfig",params:p})}function K(){return g.get({url:"/channel.open_setting/getConfig"})}const L={class:"w-80"},T={class:"w-80"},z=f({name:"wxDevConfig"}),M=f({...z,setup(p){const o=F({app_id:"",app_secret:""}),i=U(),b={app_id:[{required:!0,message:"请输入AppID",trigger:["blur","change"]}],app_secret:[{required:!0,message:"请输入AppSecret",trigger:["blur","change"]}]},c=async()=>{const a=await K();for(const e in o)o[e]=a[e]},v=async()=>{var a;await((a=i.value)==null?void 0:a.validate()),await j(o),c()};return c(),(a,e)=>{const w=k,_=x,d=B,u=S,C=I,h=N,D=A,V=y("perms");return m(),E("div",null,[t(_,{class:"!border-none",shadow:"never"},{default:n(()=>[t(w,{type:"warning",title:"温馨提示:填写微信开放平台开发配置,请前往微信开放平台创建应用并完成认证;网站应用配置主要用于网站微信登录和微信支付",closable:!1,"show-icon":""})]),_:1}),t(C,{ref_key:"formRef",ref:i,model:s(o),rules:b,"label-width":"160px"},{default:n(()=>[t(_,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[e[2]||(e[2]=l("div",{class:"font-medium mb-7"},"网站应用",-1)),t(u,{label:"AppID",prop:"app_id"},{default:n(()=>[l("div",L,[t(d,{modelValue:s(o).app_id,"onUpdate:modelValue":e[0]||(e[0]=r=>s(o).app_id=r),placeholder:"请输入AppID"},null,8,["modelValue"])])]),_:1}),t(u,{label:"AppSecret",prop:"app_secret"},{default:n(()=>[l("div",null,[l("div",T,[t(d,{modelValue:s(o).app_secret,"onUpdate:modelValue":e[1]||(e[1]=r=>s(o).app_secret=r),placeholder:"请输入AppSecret"},null,8,["modelValue"])])])]),_:1})]),_:1})]),_:1},8,["model"]),q((m(),R(D,null,{default:n(()=>[t(h,{type:"primary",onClick:v},{default:n(()=>[...e[3]||(e[3]=[O("保存",-1)])]),_:1})]),_:1})),[[V,["channel.open_setting/setConfig"]]])])}}});export{M as default}; +import{_ as A}from"./index-DIl3M8Wa.js";import{o as f,bp as y,q as m,r as E,v as t,D as n,bo as k,bj as x,s as l,bb as S,aA as B,u as s,bd as I,ac as q,O as R,K as N,L as O,aC as F,a8 as U}from"./.pnpm-CyuAWpdG.js";import{r as g}from"./index-Bkarz3gO.js";function j(p){return g.post({url:"/channel.open_setting/setConfig",params:p})}function K(){return g.get({url:"/channel.open_setting/getConfig"})}const L={class:"w-80"},T={class:"w-80"},z=f({name:"wxDevConfig"}),M=f({...z,setup(p){const o=F({app_id:"",app_secret:""}),i=U(),b={app_id:[{required:!0,message:"请输入AppID",trigger:["blur","change"]}],app_secret:[{required:!0,message:"请输入AppSecret",trigger:["blur","change"]}]},c=async()=>{const a=await K();for(const e in o)o[e]=a[e]},v=async()=>{var a;await((a=i.value)==null?void 0:a.validate()),await j(o),c()};return c(),(a,e)=>{const w=k,_=x,d=B,u=S,C=I,h=N,D=A,V=y("perms");return m(),E("div",null,[t(_,{class:"!border-none",shadow:"never"},{default:n(()=>[t(w,{type:"warning",title:"温馨提示:填写微信开放平台开发配置,请前往微信开放平台创建应用并完成认证;网站应用配置主要用于网站微信登录和微信支付",closable:!1,"show-icon":""})]),_:1}),t(C,{ref_key:"formRef",ref:i,model:s(o),rules:b,"label-width":"160px"},{default:n(()=>[t(_,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[e[2]||(e[2]=l("div",{class:"font-medium mb-7"},"网站应用",-1)),t(u,{label:"AppID",prop:"app_id"},{default:n(()=>[l("div",L,[t(d,{modelValue:s(o).app_id,"onUpdate:modelValue":e[0]||(e[0]=r=>s(o).app_id=r),placeholder:"请输入AppID"},null,8,["modelValue"])])]),_:1}),t(u,{label:"AppSecret",prop:"app_secret"},{default:n(()=>[l("div",null,[l("div",T,[t(d,{modelValue:s(o).app_secret,"onUpdate:modelValue":e[1]||(e[1]=r=>s(o).app_secret=r),placeholder:"请输入AppSecret"},null,8,["modelValue"])])])]),_:1})]),_:1})]),_:1},8,["model"]),q((m(),R(D,null,{default:n(()=>[t(h,{type:"primary",onClick:v},{default:n(()=>[...e[3]||(e[3]=[O("保存",-1)])]),_:1})]),_:1})),[[V,["channel.open_setting/setConfig"]]])])}}});export{M as default}; diff --git a/server/public/admin/assets/order-CIw46QQn.js b/server/public/admin/assets/order-CKT7wPrv.js similarity index 96% rename from server/public/admin/assets/order-CIw46QQn.js rename to server/public/admin/assets/order-CKT7wPrv.js index 5d082c90a..fd41cd58e 100644 --- a/server/public/admin/assets/order-CIw46QQn.js +++ b/server/public/admin/assets/order-CKT7wPrv.js @@ -1 +1 @@ -import{r as e}from"./index-Dxvz9lb1.js";function o(r){return e.get({url:"/order.order/lists",params:r})}function n(r){return e.get({url:"/order.order/syncWechatWorkBills",params:r})}function u(r){return e.get({url:"/order.order/syncWechatWorkBillsDebug",params:r})}function s(){return e.get({url:"/order.order/todayRevenue"})}function d(r){return e.get({url:"/order.order/orderStats",params:r})}function a(r){return e.post({url:"/order.order/detail",params:r})}function i(r){return e.post({url:"/order.order/create",params:r})}function c(r){return e.post({url:"/order.order/createForWechatWork",params:r})}function l(r){return e.post({url:"/order.order/edit",params:r})}function f(r){return e.post({url:"/order.order/delete",params:r})}function p(r){return e.post({url:"/order.order/pay",params:r})}function g(r){return e.post({url:"/order.order/alipay",params:r})}function h(r){return e.post({url:"/order.order/wechat",params:r})}function y(r){return e.post({url:"/order.order/cancel",params:r})}function W(r){return e.post({url:"/order.order/refund",params:r})}function k(r){return e.get({url:"/order.order/export",params:r},{isReturnDefaultResponse:!0})}function m(r){return e.post({url:"/order.order/split",params:r})}function S(r){return e.get({url:"/tcm.diagnosis/searchPatient",params:r})}function x(r){return e.get({url:"/order.order/actionLogs",params:r})}function A(r){return e.get({url:"/order.order/actionLogStats",params:r})}function B(r){return e.post({url:"/order.order/assignAssistant",params:r})}function D(r){return e.post({url:"/order.order/setExempt",params:r})}export{k as a,B as b,s as c,x as d,A as e,u as f,n as g,c as h,i,l as j,m as k,a as l,p as m,g as n,o,y as p,W as q,f as r,S as s,D as t,d as u,h as w}; +import{r as e}from"./index-Bkarz3gO.js";function o(r){return e.get({url:"/order.order/lists",params:r})}function n(r){return e.get({url:"/order.order/syncWechatWorkBills",params:r})}function u(r){return e.get({url:"/order.order/syncWechatWorkBillsDebug",params:r})}function s(){return e.get({url:"/order.order/todayRevenue"})}function d(r){return e.get({url:"/order.order/orderStats",params:r})}function a(r){return e.post({url:"/order.order/detail",params:r})}function i(r){return e.post({url:"/order.order/create",params:r})}function c(r){return e.post({url:"/order.order/createForWechatWork",params:r})}function l(r){return e.post({url:"/order.order/edit",params:r})}function f(r){return e.post({url:"/order.order/delete",params:r})}function p(r){return e.post({url:"/order.order/pay",params:r})}function g(r){return e.post({url:"/order.order/alipay",params:r})}function h(r){return e.post({url:"/order.order/wechat",params:r})}function y(r){return e.post({url:"/order.order/cancel",params:r})}function W(r){return e.post({url:"/order.order/refund",params:r})}function k(r){return e.get({url:"/order.order/export",params:r},{isReturnDefaultResponse:!0})}function m(r){return e.post({url:"/order.order/split",params:r})}function S(r){return e.get({url:"/tcm.diagnosis/searchPatient",params:r})}function x(r){return e.get({url:"/order.order/actionLogs",params:r})}function A(r){return e.get({url:"/order.order/actionLogStats",params:r})}function B(r){return e.post({url:"/order.order/assignAssistant",params:r})}function D(r){return e.post({url:"/order.order/setExempt",params:r})}export{k as a,B as b,s as c,x as d,A as e,u as f,n as g,c as h,i,l as j,m as k,a as l,p as m,g as n,o,y as p,W as q,f as r,S as s,D as t,d as u,h as w}; diff --git a/server/public/admin/assets/order_list-BIadJ-Mc.js b/server/public/admin/assets/order_list-CJML0J2h.js similarity index 98% rename from server/public/admin/assets/order_list-BIadJ-Mc.js rename to server/public/admin/assets/order_list-CJML0J2h.js index c3f12fc81..128d44318 100644 --- a/server/public/admin/assets/order_list-BIadJ-Mc.js +++ b/server/public/admin/assets/order_list-CJML0J2h.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-DFFSwWxS.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-QAkeqQ9Q.js","assets/index-Dxvz9lb1.js","assets/index-B3vHLAW8.css","assets/perm-DOfZAzJJ.js","assets/DailyMatrix-BSZy3g0c.js","assets/picker-BDO86vcM.js","assets/index-BnfLT5cB.js","assets/index-B3imPWFk.css","assets/index-yD39j6dM.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-ClBYIwNX.js","assets/index-D0f1Mn00.css","assets/index-BU3OYnKm.js","assets/file-CefRfHD9.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-CE1isNg2.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-GXQTu6xF.js","assets/FollowupAudioReview-92Fgd7wW.js","assets/FollowupAudioField-BG0mRnT5.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-Bdp996ss.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-DFudUjln.js","assets/RecordingPlaybackBlock-GbWd6PMw.js","assets/RecordingVideoPlayer-grUPRDCj.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CafeXQX5.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-0TFZiCkF.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-C2wB-h-D.js","assets/doctor-8vo_5fa4.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-DDh0aI3_.js","assets/patient-Bz8-LT2R.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-BP2alDvZ.js","assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-B4rggqa1.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-Cis-_1uh.js","assets/index-Cf6ygfGC.js","assets/medicine-EUKQYFsM.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-DT7CSmCp.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]); -import{o as pl,Q as yn,R as ia,ap as gn,n as et,bp as bn,q as u,r as g,v as l,D as n,s as r,F as T,G as z,ae as B,T as m,P as b,bj as xn,ac as S,w as kn,u as h,cg as hn,L as _,bI as wn,bJ as Vn,ch as Sn,bn as Cn,bd as Nn,C as oa,bb as On,aA as Pn,bc as Ct,O as y,bh as An,bi as Rn,bL as En,K as Tn,bk as Dn,bl as $n,bm as Un,bZ as Fn,aw as De,ci as Ln,a1 as In,cj as qn,bf as zn,be as jn,J as Mn,aB as Bn,bo as Hn,bO as Wn,b$ as Kn,c0 as Gn,c9 as Qn,ca as Jn,cc as Xn,ad as ua,bB as Yn,U as Zn,S as er,I as tr,bq as ar,Y as lr,X as sr,B as nr,c1 as rr,c2 as ir,cd as or,al as ur,M as f,p as R,aC as me,e as Nt,cf as dr,ce as pr}from"./.pnpm-CyuAWpdG.js";import{_ as cr}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as mr}from"./index.vue_vue_type_script_setup_true_lang-98A4_fZW.js";import{L as _r,u as fr}from"./useListTimeFilter-7kq30CnT.js";import vr from"./PrescriptionOrderDetailDrawer-v90LlSLZ.js";import{_ as yr}from"./PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-DLSipsFu.js";import{_ as gr}from"./GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-jSvDxDB9.js";import{z as br,A as xr,s as da,g as sl,b as j,B as kr,a as hr,f as nl,h as Ot,p as wr,o as Vr,T as Sr,P as Cr,n as Nr,C as Pt,y as Or,c as rl,u as Pr,D as Ar,E as Rr,q as Er,F as Tr}from"./prescription-order-utils-CXfs2Bra.js";import{D as Dr,E as $r,g as Ur,o as Fr,z as Lr,F as Ir,G as qr,H as zr,m as At,I as il,J as jr,K as Mr,L as Br,M as ol,N as Hr,O as Wr,P as Kr,Q as ul,R as Gr,S as Qr,T as Jr,U as Xr,V as Yr,W as Zr,r as ei,l as dl,i as ti,v as ai}from"./tcm-QAkeqQ9Q.js";import{P as li}from"./index-DT7CSmCp.js";import{u as si,j as w,n as ni,_ as ri}from"./index-Dxvz9lb1.js";import{d as ii}from"./department-DToZNvdH.js";import{u as oi}from"./usePaging-CghUEVfD.js";import"./index-BnfLT5cB.js";const ui={class:"prescription-order-page prescription-order-list px-4 py-4 pb-8"},di={class:"flex flex-col gap-3"},pi={key:0,class:"flex items-center gap-2 flex-wrap"},ci=["onClick"],mi={class:"font-medium"},_i={class:"flex items-center gap-2 flex-wrap"},fi=["onClick"],vi={class:"font-medium"},yi={class:"flex items-center gap-2 flex-wrap"},gi=["onClick"],bi={class:"font-medium"},xi={class:"flex items-center gap-2 flex-wrap"},ki=["onClick"],hi={class:"font-medium"},wi={class:"flex items-center gap-2 flex-wrap"},Vi=["onClick"],Si={class:"font-medium"},Ci={class:"po-list-stats grid grid-cols-1 sm:grid-cols-2 gap-4 mb-5"},Ni={class:"po-stat-surface po-stat-surface--order relative overflow-hidden rounded-xl border border-slate-200/90 px-5 py-4 shadow-sm"},Oi={class:"relative flex items-start justify-between gap-3"},Pi={class:"flex items-center gap-2 text-slate-500 text-xs font-medium"},Ai={class:"mt-2 space-y-1.5 min-w-0"},Ri={class:"text-2xl sm:text-[28px] font-bold text-sky-700 tabular-nums leading-none"},Ei={class:"flex flex-wrap gap-x-3 gap-y-1 text-xs text-slate-500 tabular-nums"},Ti={class:"text-slate-400"},Di={class:"stat-icon-wrap h-10 w-10 shrink-0 rounded-lg bg-sky-500/10 flex items-center justify-center text-sky-600"},$i={class:"relative mt-2 text-xs text-slate-500 leading-relaxed"},Ui={class:"po-stat-surface po-stat-surface--pay relative overflow-hidden rounded-xl border border-slate-200/90 px-5 py-4 shadow-sm"},Fi={class:"relative flex items-start justify-between gap-3"},Li={class:"flex items-center gap-2 text-slate-500 text-xs font-medium"},Ii={class:"mt-2 space-y-1.5 min-w-0"},qi={class:"text-2xl sm:text-[28px] font-bold text-emerald-700 tabular-nums leading-none"},zi={class:"flex flex-wrap gap-x-3 gap-y-1 text-xs text-slate-500 tabular-nums"},ji={class:"text-slate-400"},Mi={class:"stat-icon-wrap h-10 w-10 shrink-0 rounded-lg bg-emerald-500/10 flex items-center justify-center text-emerald-600"},Bi={class:"relative mt-2 text-xs text-slate-500 leading-relaxed"},Hi={class:"po-table-toolbar"},Wi={class:"po-table-toolbar__title-wrap"},Ki={class:"po-table-hint text-gray-400"},Gi={class:"po-focus-board"},Qi={class:"po-focus-board__value"},Ji={class:"po-focus-board__value"},Xi={class:"po-focus-board__value"},Yi={class:"po-focus-board__value"},Zi={class:"po-order-no-cell"},eo={class:"po-order-no-main"},to={class:"po-order-no-sub"},ao={class:"text-gray-400"},lo={key:0,class:"ml-1"},so={class:"flex items-center gap-1"},no={class:"text-red-500 font-medium whitespace-nowrap"},ro={class:"text-sm"},io={class:"flex justify-between mb-1"},oo={class:"font-medium text-red-500"},uo={class:"flex justify-between mb-1"},po={class:"flex justify-between mb-1"},co={class:"font-medium"},mo={key:0,class:"flex justify-between"},_o={key:1},fo=["title"],vo={key:1},yo={key:0,class:"text-gray-400"},go={class:"flex items-center gap-1 flex-wrap"},bo={class:"flex justify-end mt-4"},xo={class:"flex items-center gap-2 ml-4 shrink-0"},ko={class:"text-sm text-gray-700 font-medium"},ho={class:"create-order-dialog__inner"},wo={key:0,class:"create-order-rx-card"},Vo={class:"create-order-rx-card__head"},So={class:"create-order-rx-card__meta"},Co={class:"create-order-rx-card__id"},No={key:0,class:"create-order-rx-card__sn"},Oo={class:"create-order-rx-card__patient"},Po={class:"create-order-rx-card__herbs"},Ao={class:"text-sm text-gray-700 mt-1"},Ro={class:"create-order-step-lead"},Eo={class:"flex gap-2 w-full"},To={class:"create-order-step-panel"},Do={class:"create-order-step-panel"},$o={class:"flex flex-wrap items-center gap-2 pb-2 border-b border-gray-100"},Uo={class:"text-xs text-gray-400"},Fo={class:"mt-2 space-y-1.5 text-xs sm:text-sm"},Lo={key:0,class:"space-y-1.5"},Io={class:"text-gray-800 break-all"},qo={key:1,class:"text-gray-400"},zo={class:"flex items-center gap-1 w-full"},jo={class:"flex gap-2 w-full"},Mo={class:"flex flex-col gap-0.5",style:{"line-height":"normal"}},Bo={class:"flex items-center justify-between"},Ho={class:"font-medium text-[13px] text-gray-800"},Wo={class:"text-orange-500 font-medium ml-4"},Ko={class:"flex items-center justify-between text-xs text-gray-400 mt-1"},Go={class:"truncate pr-2"},Qo={class:"shrink-0"},Jo={class:"create-order-pay-hint text-gray-500"},Xo={class:"text-amber-600 font-medium"},Yo={class:"create-order-step-panel"},Zo={class:"create-order-deposit-bar__cell"},eu={class:"create-order-deposit-bar__sub"},tu={class:"create-order-deposit-bar__cell"},au={class:"create-order-deposit-bar__sub"},lu={class:"create-order-footer"},su={key:0,class:"create-order-footer__hint"},nu={class:"create-order-footer__step"},ru={key:0,class:"create-order-footer__warn"},iu={class:"create-order-footer__actions"},ou={class:"text-sm"},uu={class:"text-gray-600"},du={class:"text-gray-600"},pu={class:"min-h-[52px]"},cu={class:"text-xs leading-relaxed space-y-1.5"},mu={key:0,class:"flex flex-wrap gap-1 items-center"},_u={key:1,class:"list-disc pl-4 space-y-0.5 text-red-50"},fu={class:"mt-3"},vu={key:0,class:"rounded-lg border border-amber-200/80 bg-amber-50/50 p-3"},yu={class:"text-xs font-semibold text-amber-900 mb-2"},gu={class:"text-red-500"},bu={key:1,class:"text-xs text-gray-500 mt-2"},xu={class:"text-xs text-gray-500 mt-1"},ku={class:"text-xs text-gray-500 mt-1"},hu={class:"flex flex-col gap-0.5 py-0.5"},wu={class:"flex items-center justify-between"},Vu={class:"text-sm"},Su={class:"text-orange-500 font-medium ml-4"},Cu={class:"text-xs text-gray-400"},Nu={class:"flex items-center justify-between w-full pr-2 gap-3"},Ou={key:0,class:"flex items-center gap-2 shrink-0"},Pu={class:"rx-wrap"},Au={key:1,class:"rx-statusbar"},Ru={key:2,class:"rx-status rx-status-danger"},Eu={key:3,class:"rx-status rx-status-danger"},Tu={key:0,class:"mt-1"},Du={key:4,class:"rx-status rx-status-danger"},$u={key:0,class:"mt-1"},Uu={key:6,class:"rx-audit"},Fu={key:0},Lu={key:0,class:"ml-2 text-gray-400"},Iu={key:1,class:"mt-1"},qu={key:0,class:"px-4"},zu={class:"flex items-center justify-between"},ju={class:"text-lg font-semibold text-orange-600"},Mu={class:"text-lg font-semibold text-blue-600"},Bu={class:"text-lg font-semibold text-green-600"},Hu={class:"text-xl font-bold text-red-600"},Wu={class:"text-sm text-gray-500 mt-1.5"},Ku={class:"font-medium text-gray-700"},Gu={key:0},Qu={class:"text-sm text-gray-700 leading-relaxed"},Ju={class:"flex items-center justify-between"},Xu={class:"text-sm text-gray-500"},Yu={class:"font-medium text-orange-600"},Zu={class:"text-base font-medium"},ed={class:"text-base font-medium"},td={class:"text-sm text-gray-600 mb-3"},ad={class:"text-primary"},ld=pl({name:"prescriptionOrderList"}),sd=pl({...ld,setup(nd){const cl=or(()=>ur(()=>import("./edit-DFFSwWxS.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),_e=si(),ml=yn(),pa=f(null);function _l(){var e,s;const t=Number((e=D.value)==null?void 0:e.diagnosis_id);if(!t){w.msgWarning("本订单未关联诊单,无法查看患者诊单信息");return}(s=pa.value)==null||s.openViewOnly(t)}const fl=6,ca=[3,8],vl=R(()=>{const t=_e.userInfo;if(!t||Number(t.root)===1)return!1;const e=Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[];return e.includes(fl)?!ca.some(s=>e.includes(s)):!1}),yl=R(()=>{const t=_e.userInfo;if(!t)return!1;if(Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[];return ca.some(s=>e.includes(s))}),gl=R(()=>vl.value||yl.value),ma=f([]),tt=R(()=>{const t=_e.userInfo;if(!t||Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[];return e.includes(Sr)?e.some(s=>Cr.includes(s)):!0}),bl=R(()=>tt.value?"详情/审核":"详情"),xl=[0,3,6],_a=[0,3],Rt=()=>{const t=_e.userInfo;if(!t)return!1;if(Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[];return xl.some(s=>e.includes(s))},re=f(!1),fa=R(()=>{const t=_e.userInfo;if(!t)return!1;if(Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[];return _a.some(s=>e.includes(s))}),fe=f([]);function kl(t){fe.value=Array.isArray(t)?t:[]}const $e=f(!1),at=f(""),Et=f(!1);function hl(){if(fe.value.length===0){w.msgWarning("请先勾选要改派的订单");return}at.value="",$e.value=!0}async function wl(){const t=Number(at.value);if(!t){w.msgWarning("请选择目标医助");return}const e=fe.value.map(s=>Number(s.id)).filter(s=>s>0);if(e.length===0){w.msgWarning("请先勾选要改派的订单");return}Et.value=!0;try{const s=await $r({order_ids:e,assistant_id:t}),i=Number((s==null?void 0:s.success)??0),o=Array.isArray(s==null?void 0:s.errors)?s.errors:[];let d=`已改派 ${i} 单`;o.length&&(d+=`;${o.join(";")}`),w.msgSuccess(d),$e.value=!1,fe.value=[],$()}catch{}finally{Et.value=!1}}const lt=f([]),Tt=f([]),Dt=f([]),we=f([]),st=f([]),Vl={value:"id",label:"name",children:"children"};function va(t,e){for(const s of t||[]){if(s==null||typeof s!="object")continue;const i=s;if(Number(i.id)===e)return i;const o=va(i.children||[],e);if(o)return o}return null}function ya(t){const e=Number(t.id),s=[];Number.isFinite(e)&&e>0&&s.push(e);for(const i of t.children||[])i&&typeof i=="object"&&s.push(...ya(i));return s}function Sl(t,e){const s=va(e,t);return s?ya(s):[t]}async function Cl(){try{const[t,e,s]=await Promise.all([Ur(),Fr(),ii()]);Dt.value=Array.isArray(t)?t:[],we.value=Array.isArray(e)?e:[];const i=Array.isArray(s)?s:[];st.value=i}catch{Dt.value=[],we.value=[],st.value=[]}}const Nl=t=>t.map(e=>{var s;return{value:e.province,label:e.province,code:e.code,children:((s=e.citys)==null?void 0:s.map(i=>{var o;return{value:i.city,label:i.city,code:i.code,children:((o=i.areas)==null?void 0:o.map(d=>({value:d.area,label:d.area,code:d.code})))||[]}}))||[]}}),Ol=async()=>{try{console.log("开始加载省市区数据...");const e=await fetch("https://cos.zhenyangtang.com.cn/area/ChinaCitys.json");if(console.log("响应状态:",e.status),!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const s=await e.json();console.log("加载的数据条数:",s==null?void 0:s.length),lt.value=Nl(s),console.log("regionOptions 已设置,条数:",lt.value.length)}catch(t){console.error("加载省市区数据失败:",t),lt.value=[]}},Pl=async()=>{try{const t=await ni({type:"server_order"});Tt.value=Nr(t==null?void 0:t.server_order)}catch(t){console.error("加载服务套餐选项失败:",t),Tt.value=[]}},Al=[{label:"全部",value:""},{label:"待双审通过",value:1},{label:"待发货",value:2},{label:"已发货",value:5},{label:"已签收",value:6},{label:"已完成",value:3},{label:"已取消",value:4},{label:"进行中",value:7},{label:"暂不制药",value:8},{label:"拒收",value:9},{label:"退款",value:10},{label:"保留药方",value:11},{label:"制药缓发",value:12}];function Rl(t){te.value="",v.exclude_fulfillment_cancelled=0,v.fulfillment_status=t,W()}const te=f(""),El=[{label:"全部",value:""},{label:"甘草",value:"gancao"},{label:"洛阳直发",value:"direct"},{label:"自营",value:"self"}];function Tl(t){v.supply_mode=t,W()}const Dl=[{label:"全部",value:""},{label:"顺丰",value:"sf"},{label:"京东",value:"jd"}];function $l(t){v.express_company=t,W()}const v=me({order_no:"",prescription_id:"",patient_keyword:"",express_keyword:"",express_company:"",doctor_id:"",assistant_id:"",assistant_dept_id:"",fulfillment_status:"",prescription_audit_status:"",payment_slip_audit_status:"",supply_mode:"",service_channel:"",has_aux_formula:"",exclude_fulfillment_cancelled:0,audit_admin_id:""}),Ul=[{label:"全部",value:""},{label:"待审核",value:0},{label:"已通过",value:1},{label:"已驳回",value:2}],Fl=[{label:"全部",value:""},{label:"待审核",value:0},{label:"已通过",value:1},{label:"已驳回",value:2}];function Ll(t){te.value="",v.exclude_fulfillment_cancelled=0,v.prescription_audit_status=t,W()}function Il(t){te.value="",v.exclude_fulfillment_cancelled=0,v.payment_slip_audit_status=t,W()}function nt(t){if(te.value===t){te.value="",v.prescription_audit_status="",v.payment_slip_audit_status="",v.fulfillment_status="",v.exclude_fulfillment_cancelled=0,W();return}te.value=t,v.prescription_audit_status="",v.payment_slip_audit_status="",v.fulfillment_status="",v.exclude_fulfillment_cancelled=0,t==="pendingRx"?(v.prescription_audit_status=0,v.exclude_fulfillment_cancelled=1):t==="pendingPay"?(v.prescription_audit_status=1,v.payment_slip_audit_status=0):t==="pendingShip"?v.fulfillment_status=2:t==="risk"&&(v.payment_slip_audit_status=2),W()}const{time_type:Ue,dateRange:$t,resolve:ga,handleTimeTypeChange:ql,handleCustomDateChange:zl,resetTimeFilter:jl,applyCustomRange:Ml}=fr("all"),ba=()=>{Y.page=1,$()},Bl=()=>ql(ba),Hl=()=>zl(ba);function xa(t){const e={...t};if(e.prescription_id===""||e.prescription_id===void 0?delete e.prescription_id:e.prescription_id=Number(e.prescription_id),e.fulfillment_status===""||e.fulfillment_status===void 0||e.fulfillment_status===null?delete e.fulfillment_status:e.fulfillment_status=Number(e.fulfillment_status),e.prescription_audit_status===""||e.prescription_audit_status===void 0||e.prescription_audit_status===null?delete e.prescription_audit_status:e.prescription_audit_status=Number(e.prescription_audit_status),e.payment_slip_audit_status===""||e.payment_slip_audit_status===void 0||e.payment_slip_audit_status===null?delete e.payment_slip_audit_status:e.payment_slip_audit_status=Number(e.payment_slip_audit_status),(!e.supply_mode||e.supply_mode==="")&&delete e.supply_mode,e.doctor_id===""||e.doctor_id===void 0||e.doctor_id===null?delete e.doctor_id:e.doctor_id=Number(e.doctor_id),e.assistant_id===""||e.assistant_id===void 0||e.assistant_id===null?delete e.assistant_id:e.assistant_id=Number(e.assistant_id),e.assistant_dept_id===""||e.assistant_dept_id===void 0||e.assistant_dept_id===null?delete e.assistant_dept_id:e.assistant_dept_id=Number(e.assistant_dept_id),e.order_no||delete e.order_no,String(e.patient_keyword||"").trim()||delete e.patient_keyword,e.audit_admin_id===""||e.audit_admin_id===void 0||e.audit_admin_id===null?delete e.audit_admin_id:e.audit_admin_id=Number(e.audit_admin_id),String(e.express_keyword||"").trim()||delete e.express_keyword,(!e.express_company||e.express_company==="")&&delete e.express_company,e.service_channel===""||e.service_channel===void 0||e.service_channel===null?delete e.service_channel:(e.service_channel=String(e.service_channel).trim(),e.service_channel===""&&delete e.service_channel),e.has_aux_formula===""||e.has_aux_formula===void 0||e.has_aux_formula===null?delete e.has_aux_formula:e.has_aux_formula=Number(e.has_aux_formula),Number(e.exclude_fulfillment_cancelled)!==1&&delete e.exclude_fulfillment_cancelled,!String(e.start_time||"").trim()||!String(e.end_time||"").trim())delete e.start_time,delete e.end_time;else{const s=String(e.start_time||"").trim(),i=String(e.end_time||"").trim();/^\d{4}-\d{2}-\d{2}$/.test(s)&&/^\d{4}-\d{2}-\d{2}$/.test(i)&&(e.start_time=`${s} 00:00:00`,e.end_time=`${i} 23:59:59`)}return e}async function Wl(t){const[e,s]=ga(),i=xa({...t,start_time:e,end_time:s});return Lr(i)}const Kl=R(()=>{const[t,e]=ga();return xa({...v,start_time:t,end_time:e})}),{pager:Y,getLists:$,resetPage:W,resetParams:Gl}=oi({fetchFun:Wl,params:v});ia(()=>{var t;return(t=Y.extend)==null?void 0:t.audit_admin_options},t=>{Array.isArray(t)&&(ma.value=t.map(e=>{if(e==null||typeof e!="object")return null;const s=e,i=Number(s.id),o=String(s.name??"").trim();return!Number.isFinite(i)||i<=0||o===""?null:{id:i,name:o}}).filter(e=>e!=null))},{immediate:!0});function Ql(){const t=ml.query,e=p=>{const k=p!=null?String(p).trim():"";return k?k.length>=10?k.slice(0,10):k:""},s=e(t.start_time),i=e(t.end_time);s&&i&&Ml(s,i);const o=t.assistant_dept_id;if(o!=null&&String(o)!==""){const p=Number(o);Number.isFinite(p)&&p>0&&(v.assistant_dept_id=p)}const d=t.assistant_id;if(d!=null&&String(d)!==""){const p=Number(d);Number.isFinite(p)&&p>0&&(v.assistant_id=p)}}const ka=R(()=>{const t=v.assistant_dept_id;if(t===""||t==null)return we.value;const e=Number(t);if(!Number.isFinite(e))return we.value;const s=new Set(Sl(e,st.value));return we.value.filter(i=>{const o=i.dept_ids;return!Array.isArray(o)||o.length===0?!1:o.map(Number).some(d=>s.has(d))})});function Jl(){const t=v.assistant_id;if(t!==""&&t!=null){const e=Number(t);ka.value.some(i=>Number(i.id)===e)||(v.assistant_id="")}W()}const ie=R(()=>{const t=Y.extend,e=(t==null?void 0:t.stats_order_amount)??(t==null?void 0:t.today_order_amount),s=(t==null?void 0:t.stats_linked_pay_amount)??(t==null?void 0:t.today_linked_pay_amount),i=ee=>{const X=Number(ee);return Number.isFinite(X)?Math.round(X*100)/100:0},o=ee=>ee.toFixed(2),d=(t==null?void 0:t.stats_order_amount_not_cancelled)!==void 0&&(t==null?void 0:t.stats_order_amount_cancelled)!==void 0,p=(t==null?void 0:t.stats_linked_pay_amount_not_cancelled)!==void 0&&(t==null?void 0:t.stats_linked_pay_amount_cancelled)!==void 0,k=i(d?t==null?void 0:t.stats_order_amount_not_cancelled:e),J=d?i(t==null?void 0:t.stats_order_amount_cancelled):0,x=i(p?t==null?void 0:t.stats_linked_pay_amount_not_cancelled:s),Re=p?i(t==null?void 0:t.stats_linked_pay_amount_cancelled):0,G=(t==null?void 0:t.stats_order_amount_performance)!==void 0?i(t==null?void 0:t.stats_order_amount_performance):k,P=(t==null?void 0:t.stats_linked_pay_amount_performance)!==void 0?i(t==null?void 0:t.stats_linked_pay_amount_performance):x,A=String((t==null?void 0:t.stats_time_start)??"").trim(),Vt=String((t==null?void 0:t.stats_time_end)??"").trim(),Xe=A&&Vt?`统计时间:${A} ~ ${Vt}`:"统计时间:—",Ye=String((t==null?void 0:t.stats_scope)??"restricted");let he="统计口径:与当前列表数据可见范围一致";Ye==="all"?he="统计口径:支付单审核白名单角色,按全量订单;与下方筛选项(医生/医助/医助部门/患者等,不含「创建时间」)一致":Ye==="assistant"?he="统计口径:仅计诊单医助为本人且满足下方其它筛选项的订单":Ye==="own_rx"&&(he="统计口径:本人创建的订单 + 关联处方开方人为本人的订单(含医助代建);与下方筛选项(不含「创建时间」)一致");const Ee=Ue.value==="all"?"全部":Ue.value==="today"?"今日":"区间";return{order:i(e),pay:i(s),orderStr:o(i(e)),payStr:o(i(s)),orderNotCancelledStr:o(k),orderCancelledStr:o(J),payNotCancelledStr:o(x),payCancelledStr:o(Re),orderPerformanceStr:o(G),payPerformanceStr:o(P),orderHeading:`${Ee}业绩(业务订单额)`,payHeading:`${Ee}业绩(关联实付)`,periodLine:Xe,scopeHint:he,orderSplitHint:"业绩 = 排除履约已取消(4)、拒收(9)、退款(10)后的订单金额;下方为合计与排除项明细"}}),rt=R(()=>{const t=Y.extend,e=p=>{const k=Number(p);return!Number.isFinite(k)||k<0?0:Math.trunc(k)},s=e(t==null?void 0:t.focus_pending_rx_count),i=e(t==null?void 0:t.focus_pending_pay_count),o=e(t==null?void 0:t.focus_pending_ship_count),d=e(t==null?void 0:t.focus_risk_count);return{pendingRx:s,pendingPay:i,pendingShip:o,risk:d}});function Ut(t,e){const s=Number(e==null?void 0:e.prescription_audit_status),i=Number(e==null?void 0:e.payment_slip_audit_status),o=Number(e==null?void 0:e.fulfillment_status);return t==="rx"&&s===0||t==="pay"&&s===1&&i===0||t==="fulfillment"&&o===2?"po-status-tag is-focus":t==="rx"&&s===2||t==="pay"&&i===2||t==="fulfillment"&&o===4?"po-status-tag is-risk":"po-status-tag"}function Xl({row:t}){const e=Number(t==null?void 0:t.prescription_audit_status),s=Number(t==null?void 0:t.payment_slip_audit_status),i=Number(t==null?void 0:t.fulfillment_status),o=da(t==null?void 0:t.recipient_phone,t==null?void 0:t.prescription_phone);return e===2||s===2||o?"po-row-risk":e===0||e===1&&s===0||i===2?"po-row-focus":i===3||i===6?"po-row-done":""}ia(tt,t=>{t||v.prescription_audit_status===""||v.prescription_audit_status===void 0||(v.prescription_audit_status="",v.exclude_fulfillment_cancelled=0,W())},{immediate:!0});function Yl(){te.value="",jl(),v.order_no="",v.prescription_id="",v.patient_keyword="",v.express_keyword="",v.express_company="",v.doctor_id="",v.assistant_id="",v.assistant_dept_id="",v.fulfillment_status="",v.prescription_audit_status="",v.payment_slip_audit_status="",v.supply_mode="",v.service_channel="",v.has_aux_formula="",v.audit_admin_id="",v.exclude_fulfillment_cancelled=0,Gl()}function ha(t){return t===1?"已通过":t===2?"已驳回":"待审核"}function wa(t){return t===1?"success":t===2?"danger":"info"}function Va(){const t=_e.userInfo;return t?Number(t.root)===1?!0:(Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[]).some(s=>_a.includes(s)):!1}function Sa(t){var s;const e=Number((s=_e.userInfo)==null?void 0:s.id);return e>0&&Number(t.creator_id)===e}function it(t){return Number(t.prescription_audit_status)===1&&Number(t.payment_slip_audit_status)===1}function Ca(t){const e=Number(t.fulfillment_status);return e===3||e===4||Sa(t)&&it(t)&&!Va()||Pt(t)?!1:e===1||e===2}function Zl(t){const e=Number(t.fulfillment_status);return e===3||e===4||e===6?!1:Number(t.prescription_audit_status)===0}function es(t){const e=Number(t.fulfillment_status);return e===3||e===4?!1:Number(t.prescription_audit_status)===1&&Number(t.payment_slip_audit_status)===0}function ts(t){if(Pt(t))return!1;const e=Number(t.fulfillment_status);if(e===3||e===4||e===6)return!1;const s=Number(t.prescription_audit_status),i=Number(t.payment_slip_audit_status);return(s===1||s===2)&&i===0}function as(t){const e=Number(t.fulfillment_status);if(e===3||e===4||e===6)return!1;const s=Number(t.prescription_audit_status),i=Number(t.payment_slip_audit_status);return s===1&&(i===1||i===2)}function ls(t){return Pt(t)?!1:Number(t.fulfillment_status)===1}function Ft(t){return Number(t.fulfillment_status)===2&&it(t)}const ss=R(()=>{const t=_e.perms||[];return t.includes("*")||t.includes("tcm.prescriptionOrder/setShipMode")});function Q(t){return String(t||"").toLowerCase()==="direct"?"direct":"gancao"}function ns(t){return Q(t)==="direct"?"洛阳药房":"甘草药房"}function Na(t){return Pt(t)}function Oa(t){const e=Number(t.fulfillment_status);return e!==3&&e!==4&&!Na(t)}const Lt=f(!1);function It(t,e){const s=Number(t),i=Number(e);return s>0&&s===i}const rs=R(()=>Q(H.ship_mode)==="direct"?"洛阳药房直发":"甘草药房直发");async function is(t){const e=D.value;if(!(e!=null&&e.id))return;const s=Q(t),i=Q(e.ship_mode);if(s!==i){if(!Oa(e)){w.msgWarning("当前订单状态不可修改发货类型");return}Lt.value=!0;try{await Ir({id:e.id,ship_mode:s}),D.value&&(D.value.ship_mode=s),ke.value&&It(Ne.value,e.id)&&(H.ship_mode=s),await dt(),w.msgSuccess("发货类型已保存"),$()}catch{}finally{Lt.value=!1}}}async function os(){await dt(),$()}function qt(t){const e=Number(t.fulfillment_status);if(e!==5&&e!==6)return!1;const s=Math.round((Number(t.amount)||0)*100)/100;return Math.round((Number(t.linked_pay_paid_total)||0)*100)/100{var t;return((t=M.value)==null?void 0:t.detail)??null}),ds=R(()=>{var e;const t=(e=D.value)==null?void 0:e.prescription;return t&&typeof t=="object"?t:null}),Ta=R(()=>`${c.dose_unit||"剂"}数`),Fe=f(!1),jt=f(!1),ot=f(),de=me({id:0,amount:void 0}),ps={amount:[{required:!0,message:"请输入订单金额",trigger:"blur"},{validator:(t,e,s)=>{const i=Number(e);if(!Number.isFinite(i)||i<0){s(new Error("订单金额不能为负数"));return}s()},trigger:"blur"}]},Ve=f(null),ut=f(!1),Le=R(()=>Or(Ve.value)),Ie=f(!1),Mt=f(!1),Bt=f(),ae=me({patient_name:"",phone:""}),cs={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],phone:[{required:!0,message:"请输入手机号",trigger:"blur"}]};function ms(){const t=ds.value,e=D.value;if(!t||!(e!=null&&e.id)||!e.prescription_id){w.msgWarning("无处方数据");return}ae.patient_name=String(t.patient_name??"").trim(),ae.phone=String(t.phone??"").trim(),Ie.value=!0,et(()=>{var s;return(s=Bt.value)==null?void 0:s.clearValidate()})}function _s(){ae.patient_name="",ae.phone=""}function fs(){var t;de.id=0,de.amount=void 0,(t=ot.value)==null||t.clearValidate()}function vs(){const t=D.value;if(!rl(t)){w.msgWarning("当前订单状态不允许修改金额");return}de.id=Number(t==null?void 0:t.id)||0;const e=Number(t==null?void 0:t.amount);de.amount=Number.isFinite(e)?e:void 0,Fe.value=!0,et(()=>{var s;return(s=ot.value)==null?void 0:s.clearValidate()})}async function dt(){var t;await((t=M.value)==null?void 0:t.refresh())}async function ys(){var s;const t=Bt.value;if(!t)return;try{await t.validate()}catch{return}const e=(s=D.value)==null?void 0:s.id;if(e){Mt.value=!0;try{await qr({id:e,patient_name:ae.patient_name.trim(),phone:ae.phone.trim()}),Ie.value=!1,await dt()}catch(i){console.error(i)}finally{Mt.value=!1}}}async function Da(){const t=ot.value;if(!t)return;try{await t.validate()}catch{return}if(!rl(D.value)){w.msgWarning("当前订单状态不允许修改金额");return}const e=de.id;jt.value=!0;try{await zr({id:e,amount:Number(de.amount)}),w.msgSuccess("修改成功"),Fe.value=!1,await dt(),$()}catch{}finally{jt.value=!1}}async function gs(t){var e;await((e=M.value)==null?void 0:e.open(t))}const be=f(!1),Ht=f(!1),Wt=f(!1),F=f(0),le=f(null),se=f(!1),pt=f(""),bs=R(()=>["请核对收货信息,便于发货与物流联系。","按需填写服务与物流,并选择本诊单下需要关联的支付单。","确认费用类别与订单金额;保存前请对照定金门槛是否已满足。"][F.value]??""),$a=R(()=>{const t=le.value,e=Pr(t==null?void 0:t.herbs);if(!e.length)return"暂无药材明细";const s=e.map(i=>`${i.name} ${i.dosage}g`).join("、");return s.length>120?`${s.slice(0,120)}…`:s}),xs=["recipient_name","recipient_phone","region","shipping_address"],xe=f(),c=me({id:0,prescription_id:0,diagnosis_id:0,recipient_name:"",recipient_phone:"",region:[],shipping_address:"",is_follow_up:0,medication_days:void 0,dose_count:1,dose_unit:"剂",prev_staff:"",service_channel:"",service_package:[],express_company:"auto",tracking_number:"",fee_type:3,amount:0,remark_extra:"",remark_assistant:"",pay_order_ids:[],internal_cost:void 0,assistant_id:0,diagnosis_creator_id:0,diagnosis_creator_name:"",diagnosis_creator_dept_path:""}),ks=R(()=>Ar(Tt.value,c.service_package)),Ua=R(()=>{const t=String(c.diagnosis_creator_dept_path||"").trim();return t?t.split(";").map(e=>e.trim()).filter(Boolean).map(e=>e.includes(" / ")?e.split(" / ").map(s=>s.trim()).filter(Boolean):e.split("/").map(s=>s.trim()).filter(Boolean)).filter(e=>e.length>0):[]}),qe=f([]),Kt=f(!1),I=f(0);function ct(t){return{1:"挂号费",2:"问诊费",3:"药品费用",4:"首付",5:"尾款",6:"其他"}[Number(t)]||"未知"}const Gt=R(()=>{const t=new Set(c.pay_order_ids.map(s=>Number(s)));let e=0;for(const s of qe.value)t.has(Number(s.id))&&(e+=Number(s.amount)||0);return Math.round(e*100)/100}),hs=R(()=>{const t=I.value;return t>0?Math.round(t*100)/100:0});async function ws(t,e){var s,i;if(!t){qe.value=[];return}try{Kt.value=!0;const o=await dl({diagnosis_id:t,...e?{prescription_order_id:e}:{}}),d=(o==null?void 0:o.lists)??((s=o==null?void 0:o.data)==null?void 0:s.lists)??[];qe.value=Array.isArray(d)?d:[];const p=Number((o==null?void 0:o.deposit_min_amount)??((i=o==null?void 0:o.data)==null?void 0:i.deposit_min_amount));!Number.isNaN(p)&&p>=0&&(I.value=p)}catch{qe.value=[]}finally{Kt.value=!1}}const Vs=R(()=>{const t={recipient_name:[{required:!0,message:"请输入收货人",trigger:"blur"}],recipient_phone:[{required:!0,message:"请输入收货手机",trigger:"blur"}],region:[{required:!0,message:"请选择省/市/区",trigger:"change",type:"array"}],shipping_address:[{required:!0,message:"请输入收货地址",trigger:"blur"}],fee_type:[{required:!0,message:"请选择费用类别",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"},{validator:(e,s,i)=>{const o=I.value,d=Number(s);if(o>0&&(!Number.isFinite(d)||d0){const e=`已开启关联支付门槛(¥${j(I.value)}),请至少选择一笔支付单`;t.pay_order_ids=[{type:"array",required:!0,min:1,message:e,trigger:"change"}]}return t});function Ss(){var t;F.value=0,le.value=null,se.value=!1,pt.value="",(t=xe.value)==null||t.clearValidate()}function Cs(){F.value>0&&(F.value-=1)}async function Ns(){const t=xe.value;if(t)try{F.value===0?await t.validateField([...xs]):F.value===1&&I.value>0&&await t.validateField(["pay_order_ids"]),F.value<2&&(F.value+=1)}catch{}}async function Os(t){if(!Ca(t)){Sa(t)&&it(t)&&!Va()&&w.msgWarning("处方与支付单均已审核通过,创建人不可再编辑");return}F.value=0,le.value=null,be.value=!0,Ht.value=!0;try{const e=await At({id:t.id}),s=(e==null?void 0:e.data)??e;if(!s){w.msgError("加载数据结构异常"),be.value=!1;return}const i=s.prescription;i&&typeof i=="object"?le.value=i:Number(s.prescription_id)>0?le.value={id:Number(s.prescription_id),sn:"",patient_name:String(s.recipient_name||""),herbs:[]}:le.value=null,c.id=s.id,c.prescription_id=Number(s.prescription_id)||0,c.diagnosis_id=Number(s.diagnosis_id)||0,c.assistant_id=Number(s.assistant_id)||0,c.diagnosis_creator_id=Number(s.diagnosis_creator_id)||0,c.diagnosis_creator_name=s.diagnosis_creator_name!=null&&s.diagnosis_creator_name!==""?String(s.diagnosis_creator_name):"",c.diagnosis_creator_dept_path=s.diagnosis_creator_dept_path!=null&&s.diagnosis_creator_dept_path!==""?String(s.diagnosis_creator_dept_path):"",c.recipient_name=s.recipient_name||"",c.recipient_phone=s.recipient_phone||"";const o=s.shipping_province||"",d=s.shipping_city||"",p=s.shipping_district||"";o||d||p?c.region=[o,d,p].filter(A=>A!==""):c.region=[],c.shipping_address=s.shipping_address||"",c.is_follow_up=s.is_follow_up?1:0,c.medication_days=s.medication_days>0?s.medication_days:void 0,c.dose_count=s.dose_count>0?s.dose_count:1,c.dose_unit=s.dose_unit||"剂",c.prev_staff=s.prev_staff||"",c.service_channel=s.service_channel||"",c.service_package=Rr(s.service_package),c.express_company=String(s.express_company||"auto")||"auto",c.tracking_number=s.tracking_number||"",c.fee_type=Number(s.fee_type)||3,I.value=Number(s.deposit_min_amount)||0;let k=Number(s.amount)||0;const J=Math.round((Number(s.linked_pay_paid_total)||0)*100)/100,x=I.value;if(x>0){const A=Math.round(x*100)/100;kNumber(A)).filter(A=>!Number.isNaN(A)):[],c.internal_cost=s.internal_cost!=null&&s.internal_cost!==""?Number(s.internal_cost):void 0;const G=String(s.gancao_reciperl_order_no||"").trim(),P=Number(s.gancao_submit_time||0);se.value=G!==""||P>0,pt.value=G||"",await ws(c.diagnosis_id,c.id),et(()=>{var A;(A=xe.value)==null||A.clearValidate()})}catch(e){w.msgError((e==null?void 0:e.message)||"加载异常"),be.value=!1}finally{Ht.value=!1}}async function Ps(){if(!xe.value)return;const t=se.value;if(!(!t&&F.value!==2)){t?xe.value.clearValidate():await xe.value.validate(),Wt.value=!0;try{const e={id:c.id,recipient_name:c.recipient_name,recipient_phone:c.recipient_phone,shipping_address:c.shipping_address,is_follow_up:c.is_follow_up,prev_staff:c.prev_staff||"",service_channel:c.service_channel||"",service_package:Array.isArray(c.service_package)?c.service_package.join(","):"",express_company:c.express_company||"auto",fee_type:c.fee_type,amount:c.amount,remark_extra:c.remark_extra||"",remark_assistant:c.remark_assistant||"",medication_days:c.medication_days!=null&&String(c.medication_days).trim()!==""?c.medication_days:"",dose_unit:c.dose_unit||"剂",dose_count:c.dose_count||1,internal_cost:c.internal_cost!=null&&String(c.internal_cost).trim()!==""?c.internal_cost:""};c.region&&c.region.length>0?(e.shipping_province=c.region[0]||"",e.shipping_city=c.region[1]||"",e.shipping_district=c.region[2]||""):(e.shipping_province="",e.shipping_city="",e.shipping_district=""),e.pay_order_ids=[...c.pay_order_ids],await il(e),w.msgSuccess("保存成功"),be.value=!1,$()}catch{}finally{Wt.value=!1}}}const ze=f(!1),Qt=f("prescription"),Jt=f(0),je=f(null),Se=f(""),mt=f(!1),As=R(()=>Qt.value==="prescription"?"处方业务审核":"关联支付单审核");function Fa(t,e){Qt.value=e,Jt.value=t.id,je.value=t,Se.value="",ze.value=!0}async function La(t){var e;if(t==="reject"&&!Se.value.trim()){w.msgError("驳回或阻止时必须填写明确的审核意见");return}mt.value=!0;try{const s={id:Jt.value,action:t,remark:Se.value.trim()};Qt.value==="prescription"?await jr(s):await Mr(s),w.msgSuccess(t==="approve"?"审核通过成功":"已成功驳回该单"),ze.value=!1,$(),await((e=M.value)==null?void 0:e.refreshIfCurrent(Jt.value))}catch{}finally{mt.value=!1}}async function Rs(t){try{await Nt.confirm("确认撤回该业务订单?撤回后状态为「已取消」,未双审通过或双审均驳回等场景下均可安全撤回。","撤回警告",{type:"warning",confirmButtonText:"确定撤回",cancelButtonText:"暂不处理"}),await Br({id:t.id}),w.msgSuccess("撤回成功"),$()}catch{}}const _t=f(0),ft=f(!1),Ce=f(!1),U=f(null);function Xt(t){if(!t)return"0.00";const e=Number(t.m_cost)||0,s=Number(t.proces_cost)||0,i=Number(t.lis_cost)||0;return(e+s+i).toFixed(2)}function Es(t,e){const s=parseFloat(Xt(t))||0,i=Number(e)||0;return i<=0?"—":(s/i*100).toFixed(2)}function Ts(t){return!Array.isArray(t)||t.length===0?"0":t.reduce((s,i)=>s+(Number(i.quantity)||0),0).toFixed(0)}async function Ds(){if(!c.id){w.msgError("请先保存订单");return}Ce.value=!0;try{const t=await ol({id:c.id,dose_count:c.dose_count||1,medication_days:c.medication_days||void 0}),e=(t==null?void 0:t.data)??t;e&&e.success&&(U.value=e,ft.value=!0,w.msgSuccess("预下单测试成功"))}catch{}finally{Ce.value=!1}}async function $s(){var t,e;if(!((t=D.value)!=null&&t.id)){w.msgError("订单数据不存在");return}Ce.value=!0;try{const s=await ol({id:D.value.id,dose_count:D.value.dose_count||1,medication_days:D.value.medication_days||void 0}),i=(s==null?void 0:s.data)??s;if(i&&i.success&&(U.value=i,ft.value=!0,Rt()&&i.fee)){const o=Xt(i.fee);try{const d=await At({id:D.value.id}),p=(d==null?void 0:d.data)??d;if(p!=null&&p.id){const k=p.service_package,J=Array.isArray(k)?k.join(","):String(k||"");await il({id:p.id,recipient_name:p.recipient_name||"",recipient_phone:p.recipient_phone||"",shipping_province:p.shipping_province||"",shipping_city:p.shipping_city||"",shipping_district:p.shipping_district||"",shipping_address:p.shipping_address||"",is_follow_up:p.is_follow_up?1:0,medication_days:p.medication_days!=null&&String(p.medication_days).trim()!==""?p.medication_days:"",dose_unit:p.dose_unit||"剂",dose_count:p.dose_count>0?p.dose_count:1,prev_staff:p.prev_staff||"",service_channel:p.service_channel||"",service_package:J,express_company:p.express_company||"auto",tracking_number:p.tracking_number||"",fee_type:Number(p.fee_type)||3,amount:Number(p.amount)||0,remark_extra:p.remark_extra||"",remark_assistant:p.remark_assistant||"",internal_cost:o,pay_order_ids:Array.isArray(p.pay_order_ids)?p.pay_order_ids:[]}),w.msgSuccess("内部成本已按预报价总计更新"),$(),await((e=M.value)==null?void 0:e.refreshIfCurrent(p.id))}}catch{}}}catch{}finally{Ce.value=!1}}async function Ia(t){var i;const s=Q(t.ship_mode)==="direct"?"洛阳药房":"甘草药房";try{await Nt.confirm(`将把本单关联处方提交至${s},提交成功后不可切换发货药房。确定继续?`,"上传药房",{type:"warning",confirmButtonText:"确定上传",cancelButtonText:"取消"}),_t.value=t.id;const o=await Hr({id:t.id}),d=(o==null?void 0:o.data)??o,p=(d==null?void 0:d.pharmacy_order_no)!=null?String(d.pharmacy_order_no):(d==null?void 0:d.recipel_order_no)!=null?String(d.recipel_order_no):"";w.msgSuccess(p?`上传成功,${s}单号:${p}`:"上传成功"),$(),await((i=M.value)==null?void 0:i.refreshIfCurrent(t.id))}catch{}finally{_t.value=0}}gn(async()=>{await Ol(),await Pl(),await Cl(),Ql(),await et(),$()});const Me=f(!1),vt=f(!1),Yt=f(0),pe=me({express_company:"auto",tracking_number:""});function Us(t){if(!Ra(t)){w.msgWarning("处方审核和支付单审核均通过后,才可填写或修改快递单号");return}Yt.value=t.id,pe.express_company=String(t.express_company||"auto")||"auto",pe.tracking_number=String(t.tracking_number||""),Me.value=!0}async function qa(){var t;if(!pe.tracking_number.trim()){w.msgError("请填写快递单号");return}vt.value=!0;try{await Wr({id:Yt.value,express_company:pe.express_company||"auto",tracking_number:pe.tracking_number.trim()}),w.msgSuccess("快递单号已保存"),Me.value=!1,$(),await((t=M.value)==null?void 0:t.refreshIfCurrent(Yt.value))}catch{}finally{vt.value=!1}}const ke=f(!1),yt=f(!1),Ne=f(0),H=me({ship_mode:"gancao",express_company:"auto",tracking_number:""});function Fs(t){var e;return It((e=D.value)==null?void 0:e.id,t.id)?Q(D.value.ship_mode):Q(t.ship_mode)}function za(t){if(!Ft(t)){w.msgWarning("仅处方审核和支付单审核均通过的履约中订单可填写单号并发货");return}Ne.value=Number(t.id),H.ship_mode=Fs(t),H.express_company=String(t.express_company||"auto")||"auto",H.tracking_number=String(t.tracking_number||""),ke.value=!0}ia(()=>{var t;return(t=D.value)==null?void 0:t.ship_mode},t=>{var e;!ke.value||!Ne.value||!It((e=D.value)==null?void 0:e.id,Ne.value)||(H.ship_mode=Q(t))});async function ja(){var t;if(!H.tracking_number.trim()){w.msgError("请先填写快递单号再确认发货");return}yt.value=!0;try{await Kr({id:Ne.value,ship_mode:Q(H.ship_mode),express_company:H.express_company||"auto",tracking_number:H.tracking_number.trim()}),w.msgSuccess("确认发货成功,订单已进入「已发货」状态"),ke.value=!1,$(),await((t=M.value)==null?void 0:t.refreshIfCurrent(Ne.value))}catch{}finally{yt.value=!1}}const Ls=[{value:3,label:"已完成"},{value:7,label:"进行中"},{value:8,label:"暂不制药"},{value:9,label:"拒收"},{value:10,label:"退款"},{value:11,label:"保留药方"},{value:12,label:"制药缓发"}],Oe=f(!1),Pe=f(0),ve=f(3),Be=f(!1),He=f(!1),oe=f([]),Zt=f(),Z=me({reason:"",refund_amount:void 0}),ye=f(0),Is=R(()=>ea(oe.value)),qs=R(()=>({refund_amount:[{required:!0,message:"请输入退款金额",trigger:"change"},{validator:(t,e,s)=>{const i=Number(e),o=ye.value;if(!Number.isFinite(i)||i<=0){s(new Error("退款金额须大于 0"));return}if(o>0&&i>o+.009){s(new Error(`不能超过可退上限 ¥${j(o)}`));return}s()},trigger:"change"}],reason:[{required:!0,message:"请填写退款原因",trigger:"blur"}]}));let We=0;function zs(){var t;Pe.value=0,oe.value=[],He.value=!1,Z.reason="",Z.refund_amount=void 0,ye.value=0,(t=Zt.value)==null||t.clearValidate(),We+=1,Ve.value=null,ut.value=!1}async function js(t){if(!t){oe.value=[];return}He.value=!0;try{const e=await At({id:t}),s=(e==null?void 0:e.data)??e??null,i=s==null?void 0:s.linked_pay_orders;oe.value=Array.isArray(i)?i:[];const o=ea(oe.value),d=Number(s==null?void 0:s.paid)||0;ye.value=o>0?o:d,Z.refund_amount=ye.value}catch{oe.value=[],ye.value=0}finally{He.value=!1}}async function Ms(t){const e=Number(t.id),s=String(t.tracking_number||"").trim();if(!e||!s)return;const i=++We;ut.value=!0,Ve.value=null;try{const o=String(t.recipient_phone||"").replace(/\D/g,""),d={id:e,express_company:String(t.express_company||"auto")||"auto"};o.length>=4&&(d.phone_tail=o);const p=await ti(d);if(i!==We||Pe.value!==e)return;Ve.value=Er(p,s,e)}catch{if(i!==We||Pe.value!==e)return;Ve.value=null}finally{i===We&&Pe.value===e&&(ut.value=!1)}}async function Bs(){var e,s,i;const t=Pe.value;if(t){if(ve.value===10){if(!await((e=Zt.value)==null?void 0:e.validate().catch(()=>!1)))return;Be.value=!0;try{await ul({id:t,reason:Z.reason.trim(),refund_amount:Number(Z.refund_amount)}),w.msgSuccess("退款成功"),Oe.value=!1,$(),await((s=M.value)==null?void 0:s.refreshIfCurrent(t))}catch{}finally{Be.value=!1}return}Be.value=!0;try{await Gr({id:t,fulfillment_status:ve.value}),w.msgSuccess("订单状态已更新"),Oe.value=!1,$(),await((i=M.value)==null?void 0:i.refreshIfCurrent(t))}catch{}finally{Be.value=!1}}}function ea(t){let e=0;for(const s of t||[]){const i=Number(s==null?void 0:s.status);(i===2||i===5)&&(e+=Number(s==null?void 0:s.amount)||0)}return Math.round(e*100)/100}const Ke=f(!1),ta=f(0),aa=f(!1),la=f(),ne=f(0),K=me({reason:"",refund_amount:void 0}),Hs=R(()=>{const t=j(ne.value),e=j(K.refund_amount);return Number(K.refund_amount)>=ne.value-.009?`确认全额退款 ¥${t}:关联收款将标记已退款,本单已付清零,且不可撤销。`:`确认部分退款 ¥${e}(可退上限 ¥${t}):将扣减本单已付,并按金额依次标记关联收款已退款。`}),Ws=R(()=>({refund_amount:[{required:!0,message:"请输入退款金额",trigger:"change"},{validator:(t,e,s)=>{const i=Number(e),o=ne.value;if(!Number.isFinite(i)||i<=0){s(new Error("退款金额须大于 0"));return}if(o>0&&i>o+.009){s(new Error(`不能超过可退上限 ¥${j(o)}`));return}s()},trigger:"change"}],reason:[{required:!0,message:"请填写退款原因",trigger:"blur"}]}));function Ks(){var t;ta.value=0,K.reason="",K.refund_amount=void 0,ne.value=0,(t=la.value)==null||t.clearValidate()}async function Ma(t){ta.value=t.id,K.reason="",K.refund_amount=void 0,ne.value=0,Ke.value=!0;try{const e=await At({id:t.id}),s=(e==null?void 0:e.data)??e??null,i=Array.isArray(s==null?void 0:s.linked_pay_orders)?s.linked_pay_orders:[],o=ea(i),d=Number(s==null?void 0:s.paid)||0;ne.value=o>0?o:d,K.refund_amount=ne.value}catch{ne.value=0}}async function Gs(){var s,i;const t=ta.value;if(!(!t||!await((s=la.value)==null?void 0:s.validate().catch(()=>!1)))){aa.value=!0;try{await ul({id:t,reason:K.reason.trim(),refund_amount:Number(K.refund_amount)}),w.msgSuccess("退款成功"),Ke.value=!1,$(),await((i=M.value)==null?void 0:i.refreshIfCurrent(t))}catch{}finally{aa.value=!1}}}const Ge=f(!1),gt=f(!1),Qe=f(0),bt=f(),sa=f(!1),xt=f([]),Qs=R(()=>V.add_mode==="completion_only"?"不创建或关联支付单,仅提交完单申请,由审核人员在支付审核时处理。":V.add_mode==="create_express"?"通过快递代收创建新支付单(流转同付呗),或关联已存在但未绑定的支付单。":"可以通过付呗创建新支付单,或关联已存在但未绑定的支付单。"),V=me({add_mode:"create",order_type:3,pay_amount:void 0,pay_remark:"",link_pay_order_ids:[],completion_request:0}),Js=R(()=>{const t={add_mode:[{required:!0,message:"请选择添加方式",trigger:"change"}]};return V.add_mode==="create"||V.add_mode==="create_express"?(t.order_type=[{required:!0,message:"请选择费用类别",trigger:"change"}],t.pay_amount=[{validator:(e,s,i)=>{if(s==null||s===""){i(new Error("请输入支付金额"));return}const o=Number(s);!Number.isFinite(o)||o<0?i(new Error("金额不能小于 0")):i()},trigger:"blur"}]):V.add_mode==="link"&&(t.link_pay_order_ids=[{required:!0,message:"请至少选择一个支付单",trigger:"change",validator:(e,s,i)=>{!Array.isArray(s)||s.length===0?i(new Error("请至少选择一个支付单")):i()}}]),t});async function Xs(t,e=[]){var s;if(!t){xt.value=[];return}try{sa.value=!0;const i=await dl({diagnosis_id:t}),o=(i==null?void 0:i.lists)??((s=i==null?void 0:i.data)==null?void 0:s.lists)??[],d=Array.isArray(o)?o.filter(p=>!e.includes(p.id)):[];xt.value=d}catch{xt.value=[]}finally{sa.value=!1}}function Ba(t){var i,o;if(!qt(t)){w.msgWarning("订单总金额与已付金额一致,无需补齐支付单");return}Qe.value=t.id,V.add_mode="create",V.order_type=3,V.pay_amount=void 0,V.pay_remark="",V.link_pay_order_ids=[],V.completion_request=0,Ge.value=!0;const e=t.diagnosis_id||((i=D.value)==null?void 0:i.diagnosis_id),s=t.pay_order_ids||((o=D.value)==null?void 0:o.pay_order_ids)||[];e&&Xs(e,s)}async function Ys(){var t;if(bt.value){await bt.value.validate(),gt.value=!0;try{if(V.add_mode==="completion_only")await Qr({id:Qe.value}),w.msgSuccess("完单申请已提交,请等待支付审核");else if(V.add_mode==="create"||V.add_mode==="create_express")await Jr({id:Qe.value,order_type:V.order_type,pay_amount:V.pay_amount,pay_remark:V.pay_remark||"",completion_request:V.completion_request,pay_create_type:V.add_mode==="create_express"?"express_cod":"fubei"}),w.msgSuccess("支付单已新增,请等待审核");else{const e=V.link_pay_order_ids;if(e.length===0){w.msgError("请至少选择一个支付单");return}await Xr({id:Qe.value,pay_order_ids:e,completion_request:V.completion_request}),w.msgSuccess(`已关联 ${e.length} 个支付单,请等待审核`)}Ge.value=!1,$(),await((t=M.value)==null?void 0:t.refreshIfCurrent(Qe.value))}catch{}finally{gt.value=!1}}}function Ha(t){Pe.value=t.id,ve.value=3,Z.reason="",Z.refund_amount=void 0,oe.value=[],Ve.value=null,Oe.value=!0,js(t.id),String(t.tracking_number||"").trim()&&Ms(t)}async function Zs(t){var e;try{await Nt.confirm("确认撤回处方审核?撤回后将重置为「待审核」状态。","撤回处方审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await Yr({id:t.id}),w.msgSuccess("处方审核已撤回"),$(),await((e=M.value)==null?void 0:e.refreshIfCurrent(t.id))}catch{}}async function en(t){var e;try{await Nt.confirm("确认撤回支付单审核?撤回后将重置为「待审核」状态。","撤回支付单审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await Zr({id:t.id}),w.msgSuccess("支付单审核已撤回"),$(),await((e=M.value)==null?void 0:e.refreshIfCurrent(t.id))}catch{}}const tn="成都双流甄养堂互联网医院 处方笺",kt=f(!1),ht=f(!1),C=f(null),Je=f(""),wt=f("internal"),Wa=f(null),Ae=f(!1);function Ka(t){if(!t)return"";const e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}function an(t){return t?Ka(t):"—"}function ln(){Qa(c)}function Ga(t){return t.map(e=>`${String(e.name??"").trim()}:${Number(e.dosage)||0}`).sort().join("|")}function sn(t,e){return!t.length||!e.length||t.length!==e.length?!1:Ga(t)===Ga(e)}function nn(t){if(!t||typeof t!="object")return"";const e=t;return String(e.prescription_name??e.library_name??"").trim()}async function rn(t){const e=nn(t.aux_usage);if(e)return e;const i=(Array.isArray(t.herbs)?t.herbs:[]).filter(d=>Tr(d==null?void 0:d.formula_type)==="辅方");if(!i.length)return"";const o=Number(t.creator_id)>0?Number(t.creator_id):0;if(!o)return"";try{const d=await ai({page_no:1,page_size:200,formula_type:"辅方",prescribing_creator_id:o}),p=Array.isArray(d==null?void 0:d.lists)?d.lists:[];for(const k of p){const J=Array.isArray(k==null?void 0:k.herbs)?k.herbs:[];if(sn(i,J))return String((k==null?void 0:k.prescription_name)??"").trim()}}catch{}return""}async function Qa(t){if(!t.prescription_id){w.msgWarning("该订单未关联处方");return}kt.value=!0,ht.value=!0,C.value=null,Je.value="",wt.value="internal";try{const e=await ei({id:t.prescription_id}),s=(e==null?void 0:e.data)??e??null;if(s){const i=t.medication_days,o={...s};i!=null&&String(i).trim()!==""&&(o.medication_days=i),t.order_no&&!o.order_no&&(o.order_no=t.order_no),t.recipient_name&&!o.recipient_name&&(o.recipient_name=t.recipient_name),t.recipient_phone&&!o.recipient_phone&&(o.recipient_phone=t.recipient_phone),t.shipping_address&&!o.shipping_address&&(o.shipping_address=t.shipping_address),t.amount!=null&&o.order_amount==null&&(o.order_amount=t.amount),t.dose_count!=null&&String(t.dose_count).trim()!==""&&Number(t.dose_count)>0&&(o.dose_count=Number(t.dose_count)),t.dose_unit!=null&&String(t.dose_unit).trim()!==""&&(o.dose_unit=String(t.dose_unit));const d=t.linked_appointment;(!o.appointment_id||Number(o.appointment_id)<=0)&&d&&typeof d=="object"&&Number(d.id)>0&&(o.appointment_id=Number(d.id)),C.value=o,Je.value=await rn(o)}else C.value=null,Je.value=""}catch(e){w.msgError((e==null?void 0:e.message)||"加载处方详情失败"),kt.value=!1,Je.value=""}finally{ht.value=!1}}async function on(t){const e=t.querySelectorAll('img[src^="http"]'),s=Array.from(e).map(async i=>{try{const o=await fetch(i.src,{mode:"cors"});if(!o.ok)return;const d=await o.blob(),p=await new Promise((k,J)=>{const x=new FileReader;x.onload=()=>k(x.result),x.onerror=J,x.readAsDataURL(d)});i.src=p}catch{}});await Promise.allSettled(s)}async function Ja(){var e;await et();const t=((e=Wa.value)==null?void 0:e.paperEl)??null;if(!t)throw new Error("未找到处方笺内容");return t.scrollIntoView({behavior:"instant",block:"nearest"}),await on(t),await new Promise(s=>requestAnimationFrame(()=>s(null))),await new Promise(s=>setTimeout(s,250)),pr(t,{scale:2,useCORS:!0,allowTaint:!1,logging:!1,backgroundColor:"#ffffff",windowWidth:t.scrollWidth,windowHeight:t.scrollHeight,width:t.scrollWidth,height:t.scrollHeight,ignoreElements:s=>s instanceof HTMLElement&&s.classList.contains("cf-slip-no-export"),onclone:(s,i)=>{i instanceof HTMLElement&&(i.querySelectorAll(".rx-notice, .rx-notice-text, .rx-notice-meta").forEach(o=>{o.style.lineHeight="1.95",o.style.overflow="visible"}),i.querySelectorAll(".rx-notice").forEach(o=>{o.style.padding="10px 12px"}),i.querySelectorAll(".rx-info-cell, .rx-info-cell .rx-key, .rx-info-cell .rx-val").forEach(o=>{o.style.lineHeight="1.95",o.style.overflow="visible"}),i.querySelectorAll(".rx-info-cell").forEach(o=>{o.style.padding="10px 12px"}),i.querySelectorAll(".rx-herb-cell").forEach(o=>{o.style.lineHeight="2.5"}),i.querySelectorAll(".rx-herbs").forEach(o=>{o.style.rowGap="12px"}),i.querySelectorAll(".rx-text").forEach(o=>{o.style.lineHeight="2.1"}),i.querySelectorAll(".rx-bot-meta-val, .rx-hospital-line, .rx-bot-cell").forEach(o=>{o.style.overflow="visible",o.style.lineHeight="1.85"}),i.querySelectorAll(".rx-hospital-row").forEach(o=>{o.style.paddingTop="12px",o.style.paddingBottom="14px"}))}})}function Xa(){var s;const t=(s=C.value)==null?void 0:s.patient_name;return`处方_${typeof t=="string"&&t.trim()?t.trim().replace(/[\\/:*?"<>|]/g,"_"):"未命名"}_${Date.now()}`}async function un(){if(C.value){Ae.value=!0;try{const t=await Ja(),e=document.createElement("a");e.download=`${Xa()}.png`,e.href=t.toDataURL("image/png"),e.click(),w.msgSuccess("图片已下载")}catch{w.msgError("下载图片失败")}finally{Ae.value=!1}}}async function dn(){if(C.value){Ae.value=!0;try{const t=await Ja(),e=t.toDataURL("image/jpeg",.95),s=new dr({orientation:"portrait",unit:"mm",format:"a4"}),i=210,o=297,d=i,p=t.height*d/t.width;if(p<=o)s.addImage(e,"JPEG",0,0,d,p);else{let k=p,J=0;for(;k>0;)s.addImage(e,"JPEG",0,J,d,p),k-=o,J-=o,k>0&&s.addPage()}s.save(`${Xa()}.pdf`),w.msgSuccess("PDF已下载")}catch{w.msgError("下载PDF失败")}finally{Ae.value=!1}}}return(t,e)=>{const s=xn,i=kn,o=Pn,d=On,p=Rn,k=An,J=En,x=Tn,Re=mr,G=Nn,P=$n,A=Un,Vt=Fn,St=In,Xe=Dn,Ye=cr,he=jn,Ee=zn,ee=Mn,X=Bn,ge=Hn,na=Gn,pn=Kn,L=Jn,Ze=Qn,cn=Xn,mn=er,_n=Zn,fn=tr,Te=ar,Ya=sr,vn=lr,Za=nr,ue=ir,ra=rr,ce=Cn,E=bn("perms");return u(),g("div",ui,[l(s,{class:"!border-none shadow-sm mb-4",shadow:"never"},{default:n(()=>[r("div",di,[tt.value?(u(),g("div",pi,[e[89]||(e[89]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"处方审核",-1)),(u(),g(T,null,z(Ul,a=>r("div",{key:a.value,class:B(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",v.prescription_audit_status===a.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:N=>Ll(a.value)},[r("span",mi,m(a.label),1)],10,ci)),64))])):b("",!0),r("div",_i,[e[90]||(e[90]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"支付单审核",-1)),(u(),g(T,null,z(Fl,a=>r("div",{key:a.value,class:B(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",v.payment_slip_audit_status===a.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:N=>Il(a.value)},[r("span",vi,m(a.label),1)],10,fi)),64))]),r("div",yi,[e[91]||(e[91]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"发货状态",-1)),(u(),g(T,null,z(Al,a=>r("div",{key:"fs-"+String(a.value),class:B(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",v.fulfillment_status===a.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:N=>Rl(a.value)},[r("span",bi,m(a.label),1)],10,gi)),64))]),r("div",xi,[e[92]||(e[92]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"供货方式",-1)),(u(),g(T,null,z(El,a=>r("div",{key:"sm-"+String(a.value),class:B(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",v.supply_mode===a.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:N=>Tl(a.value)},[r("span",hi,m(a.label),1)],10,ki)),64))]),r("div",wi,[e[93]||(e[93]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"快递方式",-1)),(u(),g(T,null,z(Dl,a=>r("div",{key:"ec-"+String(a.value),class:B(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",v.express_company===a.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:N=>$l(a.value)},[r("span",Si,m(a.label),1)],10,Vi)),64))])])]),_:1}),l(s,{class:"!border-none po-filter-card shadow-sm",shadow:"never"},{default:n(()=>[S((u(),g("div",Ci,[r("div",Ni,[e[94]||(e[94]=r("div",{class:"po-stat-deco po-stat-deco--o pointer-events-none absolute -right-6 -top-8 h-28 w-28 rounded-full opacity-40"},null,-1)),r("div",Oi,[r("div",null,[r("div",Pi,[l(i,{size:16,class:"text-sky-500"},{default:n(()=>[l(h(hn))]),_:1}),_(" "+m(ie.value.orderHeading),1)]),r("div",Ai,[r("div",Ri," ¥"+m(ie.value.orderPerformanceStr),1),r("div",Ei,[r("span",null,"合计 ¥"+m(ie.value.orderStr),1),r("span",Ti,"已取消 ¥"+m(ie.value.orderCancelledStr),1)])])]),r("div",Di,[l(i,{size:20},{default:n(()=>[l(h(wn))]),_:1})])]),r("p",$i,m(ie.value.periodLine),1)]),r("div",Ui,[e[95]||(e[95]=r("div",{class:"po-stat-deco po-stat-deco--p pointer-events-none absolute -right-6 -top-8 h-28 w-28 rounded-full opacity-40"},null,-1)),r("div",Fi,[r("div",null,[r("div",Li,[l(i,{size:16,class:"text-emerald-500"},{default:n(()=>[l(h(Vn))]),_:1}),_(" "+m(ie.value.payHeading),1)]),r("div",Ii,[r("div",qi," ¥"+m(ie.value.payPerformanceStr),1),r("div",zi,[r("span",null,"合计 ¥"+m(ie.value.payStr),1),r("span",ji,"已取消 ¥"+m(ie.value.payCancelledStr),1)])])]),r("div",Mi,[l(i,{size:20},{default:n(()=>[l(h(Sn))]),_:1})])]),r("p",Bi,m(ie.value.periodLine),1)])])),[[ce,h(Y).loading]]),l(G,{class:"ls-form",model:v,inline:""},{default:n(()=>[l(_r,{"time-type":h(Ue),"onUpdate:timeType":e[0]||(e[0]=a=>oa(Ue)?Ue.value=a:null),"date-range":h($t),"onUpdate:dateRange":e[1]||(e[1]=a=>oa($t)?$t.value=a:null),label:"创建时间",variant:"inline","show-all":"","picker-width":"230px",onTimeTypeChange:Bl,onCustomChange:Hl},null,8,["time-type","date-range"]),l(d,{class:"w-[260px]",label:"订单号"},{default:n(()=>[l(o,{modelValue:v.order_no,"onUpdate:modelValue":e[2]||(e[2]=a=>v.order_no=a),placeholder:"业务订单号",clearable:"",onKeyup:Ct(h(W),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(d,{class:"w-[140px]",label:"处方ID"},{default:n(()=>[l(o,{modelValue:v.prescription_id,"onUpdate:modelValue":e[3]||(e[3]=a=>v.prescription_id=a),placeholder:"处方ID",clearable:"",onKeyup:Ct(h(W),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(d,{class:"w-[220px]",label:"患者"},{default:n(()=>[l(o,{modelValue:v.patient_keyword,"onUpdate:modelValue":e[4]||(e[4]=a=>v.patient_keyword=a),placeholder:"姓名 / 手机号",clearable:"",onKeyup:Ct(h(W),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(d,{class:"w-[220px]",label:"快递"},{default:n(()=>[l(o,{modelValue:v.express_keyword,"onUpdate:modelValue":e[5]||(e[5]=a=>v.express_keyword=a),placeholder:"快递单号 / 公司",clearable:"",onKeyup:Ct(h(W),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),gl.value?(u(),y(d,{key:0,class:"w-[200px]",label:"下单人"},{default:n(()=>[l(k,{modelValue:v.audit_admin_id,"onUpdate:modelValue":e[6]||(e[6]=a=>v.audit_admin_id=a),clearable:"",filterable:"",placeholder:"全部下单人",class:"!w-full"},{default:n(()=>[(u(!0),g(T,null,z(ma.value,a=>(u(),y(p,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})):b("",!0),l(d,{class:"w-[200px]",label:"医生"},{default:n(()=>[l(k,{modelValue:v.doctor_id,"onUpdate:modelValue":e[7]||(e[7]=a=>v.doctor_id=a),clearable:"",filterable:"",placeholder:"开方医生",class:"!w-full"},{default:n(()=>[(u(!0),g(T,null,z(Dt.value,a=>(u(),y(p,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(d,{class:"w-[220px] min-w-[200px]",label:"医助部门"},{default:n(()=>[l(J,{modelValue:v.assistant_dept_id,"onUpdate:modelValue":e[8]||(e[8]=a=>v.assistant_dept_id=a),data:st.value,class:"!w-full",clearable:"",filterable:"","check-strictly":"","default-expand-all":!0,"node-key":"id",props:Vl,placeholder:"医助部门(选父级含子级)",onChange:Jl},null,8,["modelValue","data"])]),_:1}),l(d,{class:"w-[200px]",label:"医助"},{default:n(()=>[l(k,{modelValue:v.assistant_id,"onUpdate:modelValue":e[9]||(e[9]=a=>v.assistant_id=a),clearable:"",filterable:"",placeholder:"订单创建人",class:"!w-full"},{default:n(()=>[(u(!0),g(T,null,z(ka.value,a=>(u(),y(p,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(d,{class:"w-[160px]",label:"服务渠道"},{default:n(()=>[l(k,{modelValue:v.service_channel,"onUpdate:modelValue":e[10]||(e[10]=a=>v.service_channel=a),clearable:"",placeholder:"全部",class:"!w-full"},{default:n(()=>[l(p,{label:"未指派",value:"0"})]),_:1},8,["modelValue"])]),_:1}),l(d,{class:"w-[140px]",label:"辅方"},{default:n(()=>[l(k,{modelValue:v.has_aux_formula,"onUpdate:modelValue":e[11]||(e[11]=a=>v.has_aux_formula=a),clearable:"",placeholder:"全部",class:"!w-full"},{default:n(()=>[l(p,{label:"含辅方",value:"1"}),l(p,{label:"不含辅方",value:"0"})]),_:1},8,["modelValue"])]),_:1}),l(d,null,{default:n(()=>[l(x,{type:"primary",onClick:h(W)},{default:n(()=>[...e[96]||(e[96]=[_("查询",-1)])]),_:1},8,["onClick"]),l(x,{onClick:Yl},{default:n(()=>[...e[97]||(e[97]=[_("重置",-1)])]),_:1}),S(l(Re,{class:"ml-2.5","fetch-fun":h(Dr),params:Kl.value,"page-size":h(Y).size,"export-hint":"导出范围与上方筛选一致(履约状态、创建时间及其他条件均会生效)。含「自媒体渠道(挂号渠道来源)」:优先取该单关联处方登记的挂号;无则诊单下同患者挂号取 id 最大的一条(与前台挂号选择的记录一致);业绩侧栏带渠道筛选导出时与同页列表高亮挂号同源。「服务套餐」按字典 server_order 解析展示。「处方」导出主方/辅方药材明细;「主方/辅方服用方式、天数」与详情侧栏同口径(主方/辅方天数分别取处方 usage_days、辅方 aux_usage.usage_days;「天数」列为订单 medication_days)。「关联收款记录」与详情侧栏同源(已支付/已退款/待审核),每笔两行展示(摘要行+明细行),多笔空行分隔,单元格自动换行。「签收日期」与详情/业绩看板同源,仅读物流库(轨迹/签收时间):导出不再实时查快递100,速度只取决于数据库;签收时间由 `tcm:backfill-sign-time` 命令与物流自动更新定时任务落库,刚发货尚未同步的单子会暂时为空,待下次回填/定时任务刷新后显示。"},null,8,["fetch-fun","params","page-size"]),[[E,["tcm.prescriptionOrder/export"]]])]),_:1})]),_:1},8,["model"])]),_:1}),S((u(),y(s,{class:"!border-none mt-4 po-table-card shadow-sm",shadow:"never"},{default:n(()=>[r("div",Hi,[r("div",Wi,[e[98]||(e[98]=r("span",{class:"po-table-title text-gray-800"},"订单列表",-1)),r("span",Ki,"共 "+m(h(Y).count)+" 条",1),fa.value?(u(),y(x,{key:0,type:"primary",plain:"",size:"small",class:"ml-3",disabled:fe.value.length===0,onClick:hl},{default:n(()=>[_(" 批量改派医助"+m(fe.value.length?`(${fe.value.length})`:""),1)]),_:1},8,["disabled"])):b("",!0)]),r("div",Gi,[r("div",{class:B(["po-focus-board__item is-pending-rx",{"is-active":te.value==="pendingRx"}]),onClick:e[12]||(e[12]=a=>nt("pendingRx"))},[e[99]||(e[99]=r("span",{class:"po-focus-board__label"},"待处方审核",-1)),r("strong",Qi,m(rt.value.pendingRx),1)],2),r("div",{class:B(["po-focus-board__item is-pending-pay",{"is-active":te.value==="pendingPay"}]),onClick:e[13]||(e[13]=a=>nt("pendingPay"))},[e[100]||(e[100]=r("span",{class:"po-focus-board__label"},"待支付审核",-1)),r("strong",Ji,m(rt.value.pendingPay),1)],2),r("div",{class:B(["po-focus-board__item is-pending-ship",{"is-active":te.value==="pendingShip"}]),onClick:e[14]||(e[14]=a=>nt("pendingShip"))},[e[101]||(e[101]=r("span",{class:"po-focus-board__label"},"待发货",-1)),r("strong",Xi,m(rt.value.pendingShip),1)],2),r("div",{class:B(["po-focus-board__item is-risk",{"is-active":te.value==="risk"}]),onClick:e[15]||(e[15]=a=>nt("risk"))},[e[102]||(e[102]=r("span",{class:"po-focus-board__label"},"重点异常",-1)),r("strong",Yi,m(rt.value.risk),1)],2)])]),l(Xe,{data:h(Y).lists,size:"default",stripe:"",class:"po-data-table","row-class-name":Xl,onSelectionChange:kl},{default:n(()=>[fa.value?(u(),y(P,{key:0,type:"selection",width:"44",selectable:()=>!0})):b("",!0),l(P,{label:"订单号","min-width":"178","show-overflow-tooltip":""},{default:n(({row:a})=>[r("div",Zi,[r("div",eo,m(a.order_no||"—"),1),r("div",to,[l(A,{size:"small",effect:"plain",type:h(br)(a)},{default:n(()=>[_(m(h(xr)(a)),1)]),_:2},1032,["type"]),r("span",ao,"#"+m(a.id),1)])])]),_:1}),l(P,{label:"处方ID",prop:"prescription_id",width:"86"}),l(P,{label:"诊单ID",prop:"diagnosis_id",width:"86"}),l(P,{label:"收货人","min-width":"100"},{default:n(({row:a})=>[r("div",null,m(a.recipient_name||"—"),1),r("div",{class:B(["text-xs",h(da)(a.recipient_phone,a.prescription_phone)?"text-red-600 font-semibold":"text-gray-400"])},[_(m(a.recipient_phone||"—")+" ",1),h(da)(a.recipient_phone,a.prescription_phone)?(u(),g("span",lo,"(与处方手机不一致)")):b("",!0)],2)]),_:1}),l(P,{label:"费用类别",width:"96"},{default:n(({row:a})=>[_(m(h(sl)(a.fee_type)),1)]),_:1}),l(P,{label:"金额","min-width":"100"},{default:n(({row:a})=>[r("div",so,[r("span",no,"¥"+m(a.amount),1),l(Vt,{placement:"top",width:200,trigger:"hover"},{reference:n(()=>[l(i,{class:"text-gray-400 cursor-pointer hover:text-primary"},{default:n(()=>[l(h(Ln))]),_:1})]),default:n(()=>[r("div",ro,[r("div",io,[e[103]||(e[103]=r("span",{class:"text-gray-500"},"业务订单单据:",-1)),r("span",oo,"¥"+m(a.amount),1)]),r("div",uo,[e[104]||(e[104]=r("span",{class:"text-gray-500"},"定金下限:",-1)),r("span",null,"¥"+m(h(j)(a.deposit_min_amount)),1)]),r("div",po,[e[105]||(e[105]=r("span",{class:"text-gray-500"},"实付(关联):",-1)),r("span",co,"¥"+m(h(j)(a.linked_pay_paid_total)),1)]),Rt()&&a.internal_cost!=null&&a.internal_cost!==""?(u(),g("div",mo,[e[106]||(e[106]=r("span",{class:"text-gray-500"},"内部成本:",-1)),r("span",{class:B(["font-medium cursor-pointer select-none",re.value?"text-orange-600":"text-gray-400"]),title:"点击显示/隐藏",onClick:e[16]||(e[16]=De(N=>re.value=!re.value,["stop"]))},m(re.value?`¥${h(j)(a.internal_cost)}`:"****"),3)])):b("",!0)])]),_:2},1024)])]),_:1}),Rt()?(u(),y(P,{key:1,width:"100"},{header:n(()=>[r("span",{class:"cursor-pointer select-none hover:text-primary",title:"点击显示/隐藏内部成本",onClick:e[17]||(e[17]=De(a=>re.value=!re.value,["stop"]))}," 内部成本 ")]),default:n(({row:a})=>[a.internal_cost!=null&&a.internal_cost!==""?(u(),g("span",{key:0,class:B(["cursor-pointer select-none",re.value?"text-orange-600 font-medium":"text-gray-400"]),title:"点击显示/隐藏",onClick:e[18]||(e[18]=De(N=>re.value=!re.value,["stop"]))},m(re.value?`¥${a.internal_cost}`:"****"),3)):(u(),g("span",_o,"—"))]),_:1})):b("",!0),l(P,{label:"处方审核",width:"110"},{default:n(({row:a})=>[l(A,{type:wa(a.prescription_audit_status),size:"small",class:B(Ut("rx",a))},{default:n(()=>[_(m(ha(a.prescription_audit_status)),1)]),_:2},1032,["type","class"])]),_:1}),l(P,{label:"支付单审核",width:"110"},{default:n(({row:a})=>[l(A,{type:wa(a.payment_slip_audit_status),size:"small",class:B(Ut("pay",a))},{default:n(()=>[_(m(ha(a.payment_slip_audit_status)),1)]),_:2},1032,["type","class"])]),_:1}),l(P,{label:"履约",width:"108"},{default:n(({row:a})=>[l(A,{type:h(kr)(a.fulfillment_status),size:"small",class:B(Ut("fulfillment",a))},{default:n(()=>[_(m(h(hr)(a.fulfillment_status)),1)]),_:2},1032,["type","class"])]),_:1}),l(P,{label:"关联支付单",width:"100"},{default:n(({row:a})=>[Number(a.linked_pay_order_count)>0?(u(),g("span",{key:0,class:"text-primary cursor-default",title:a.linked_pay_order_id?`#${a.linked_pay_order_id}…`:""},m(a.linked_pay_order_count)+" 笔 ",9,fo)):(u(),g("span",vo,"—"))]),_:1}),l(P,{label:"创建时间","min-width":"144"},{default:n(({row:a})=>[_(m(h(nl)(a.create_time)),1)]),_:1}),l(P,{label:"开方人",prop:"doctor_name",width:"90","show-overflow-tooltip":""}),l(P,{label:"创建人",prop:"creator_name",width:"90","show-overflow-tooltip":""}),l(P,{"min-width":"128","show-overflow-tooltip":""},{header:n(()=>[e[107]||(e[107]=r("span",null,"二中心·指派",-1)),l(St,{placement:"top","max-width":"320",content:"与诊单「指派记录」快照一致:仅当本条业务单在操作瞬间为快照中的「关联业务单」(创建人+创建时间命中)时显示。绿色=新医助在名称含「二中心」的部门及其下级;灰色=系统自动释放诊单医助。"},{default:n(()=>[l(i,{class:"ml-0.5 align-middle text-gray-400 cursor-help"},{default:n(()=>[l(h(qn))]),_:1})]),_:1})]),default:n(({row:a})=>[Number(a.po_assign_snapshot_hit)?Number(a.po_assign_is_release)?(u(),y(A,{key:1,type:"info",size:"small"},{default:n(()=>[...e[108]||(e[108]=[_("已释放",-1)])]),_:1})):Number(a.po_assign_to_er_center)?(u(),y(A,{key:2,type:"success",size:"small"},{default:n(()=>[_(m(a.po_assign_to_assistant_name||"医助#"+a.po_assign_to_assistant_id),1)]),_:2},1024)):(u(),y(A,{key:3,type:"warning",size:"small",effect:"plain"},{default:n(()=>[_(" 非二中心 "+m(a.po_assign_to_assistant_name||"医助#"+a.po_assign_to_assistant_id),1)]),_:2},1024)):(u(),g("span",yo,"—"))]),_:1}),l(P,{label:"操作",width:"310",fixed:"right"},{default:n(({row:a})=>[r("div",go,[S((u(),y(x,{type:"primary",link:"",onClick:N=>gs(a.id)},{default:n(()=>[_(m(bl.value),1)]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/detail"]]]),Ca(a)?S((u(),y(x,{key:0,type:"primary",link:"",onClick:N=>Os(a)},{default:n(()=>[...e[109]||(e[109]=[_("编辑",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/edit"]]]):b("",!0),S((u(),y(x,{type:"primary",link:"",onClick:N=>{var O;return(O=zt.value)==null?void 0:O.open(a)}},{default:n(()=>[...e[110]||(e[110]=[_("修改创建时间",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/editTime"]]]),Ra(a)?S((u(),y(x,{key:1,type:"success",link:"",onClick:N=>Us(a)},{default:n(()=>[...e[111]||(e[111]=[_("修改单号",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/ddcode"]]]):b("",!0),Ft(a)?S((u(),y(x,{key:2,type:"primary",link:"",onClick:N=>za(a)},{default:n(()=>[...e[112]||(e[112]=[_("确认发货",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/ship"]]]):b("",!0),qt(a)?S((u(),y(x,{key:3,type:"success",link:"",onClick:N=>Ba(a)},{default:n(()=>[...e[113]||(e[113]=[_("补齐支付单",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/addPayOrder"]]]):b("",!0),Pa(a)?S((u(),y(x,{key:4,type:"primary",link:"",onClick:N=>Ha(a)},{default:n(()=>[...e[114]||(e[114]=[_("完成订单",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/complete"]]]):b("",!0),Aa(a)?S((u(),y(x,{key:5,type:"danger",link:"",onClick:N=>Ma(a)},{default:n(()=>[...e[115]||(e[115]=[_("退款",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/refund"]]]):b("",!0),ls(a)?S((u(),y(x,{key:6,type:"danger",link:"",onClick:N=>Rs(a)},{default:n(()=>[...e[116]||(e[116]=[_("撤回",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/withdraw"]]]):b("",!0),Ea(a)?S((u(),y(x,{key:7,type:"warning",link:"",loading:_t.value===a.id,onClick:N=>Ia(a)},{default:n(()=>[...e[117]||(e[117]=[_("上传药房",-1)])]),_:1},8,["loading","onClick"])),[[E,["tcm.prescriptionOrder/uploadToPharmacy"]]]):b("",!0)])]),_:1})]),_:1},8,["data"]),r("div",bo,[l(Ye,{modelValue:h(Y),"onUpdate:modelValue":e[19]||(e[19]=a=>oa(Y)?Y.value=a:null),"page-sizes":[15,20,30,40,100,150,200],onChange:h($)},null,8,["modelValue","onChange"])])]),_:1})),[[ce,h(Y).loading]]),l(vr,{ref_key:"detailDrawerRef",ref:M,"gancao-preview-loading":Ce.value,onUpdateAmount:vs,onPatchRxPatient:ms,onViewPrescription:e[20]||(e[20]=a=>D.value&&Qa(D.value)),onTestGancaoPreview:$s,onViewPatient:_l,onDetailChanged:h($)},{"header-extra":n(({detail:a})=>[r("div",xo,[e[120]||(e[120]=r("span",{class:"text-sm text-gray-500"},"发货类型",-1)),S((u(),y(Ee,{"model-value":Q(a.ship_mode),size:"small",disabled:Lt.value||!Oa(a),onChange:is},{default:n(()=>[l(he,{label:"gancao"},{default:n(()=>[...e[118]||(e[118]=[_("甘草药房",-1)])]),_:1}),l(he,{label:"direct",disabled:Na(a)},{default:n(()=>[...e[119]||(e[119]=[_("洛阳药房",-1)])]),_:1},8,["disabled"])]),_:2},1032,["model-value","disabled"])),[[E,["tcm.prescriptionOrder/setShipMode"]]]),ss.value?b("",!0):(u(),y(A,{key:0,type:Q(a.ship_mode)==="direct"?"warning":"success",effect:"plain",round:""},{default:n(()=>[_(m(ns(a.ship_mode)),1)]),_:2},1032,["type"]))])]),"header-actions":n(({detail:a})=>[S((u(),y(x,{size:"small",onClick:N=>{var O;return(O=zt.value)==null?void 0:O.open(a)}},{default:n(()=>[...e[121]||(e[121]=[_("修改创建时间",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/editTime"]]]),l(gr,{order:a,onResolved:os},null,8,["order"]),Ea(a)?S((u(),y(x,{key:0,type:"warning",size:"small",plain:"",loading:_t.value===a.id,onClick:N=>Ia(a)},{default:n(()=>[...e[122]||(e[122]=[_("上传药房",-1)])]),_:1},8,["loading","onClick"])),[[E,["tcm.prescriptionOrder/uploadToPharmacy"]]]):b("",!0),Zl(a)?S((u(),y(x,{key:1,type:"warning",size:"small",plain:"",onClick:N=>Fa(a,"prescription")},{default:n(()=>[...e[123]||(e[123]=[_(" 处方审核 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/auditPrescription"]]]):b("",!0),ts(a)?S((u(),y(x,{key:2,type:"info",size:"small",plain:"",onClick:N=>Zs(a)},{default:n(()=>[...e[124]||(e[124]=[_(" 撤回处方审核 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/auditPrescription"]]]):b("",!0),es(a)?S((u(),y(x,{key:3,type:"warning",size:"small",plain:"",onClick:N=>Fa(a,"payment")},{default:n(()=>[...e[125]||(e[125]=[_(" 支付审核 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/auditPayment"]]]):b("",!0),as(a)?S((u(),y(x,{key:4,type:"info",size:"small",plain:"",onClick:N=>en(a)},{default:n(()=>[...e[126]||(e[126]=[_(" 撤回支付审核 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/auditPayment"]]]):b("",!0),Ft(a)?S((u(),y(x,{key:5,type:"primary",size:"small",plain:"",onClick:N=>za(a)},{default:n(()=>[...e[127]||(e[127]=[_(" 确认发货 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/ship"]]]):b("",!0),qt(a)?S((u(),y(x,{key:6,type:"success",size:"small",plain:"",onClick:N=>Ba(a)},{default:n(()=>[...e[128]||(e[128]=[_(" 关联支付单 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/addPayOrder"]]]):b("",!0),Pa(a)?S((u(),y(x,{key:7,type:"primary",size:"small",plain:"",onClick:N=>Ha(a)},{default:n(()=>[...e[129]||(e[129]=[_(" 完成订单 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/complete"]]]):b("",!0),Aa(a)?S((u(),y(x,{key:8,type:"danger",size:"small",plain:"",onClick:N=>Ma(a)},{default:n(()=>[...e[130]||(e[130]=[_(" 退款 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/refund"]]]):b("",!0)]),_:1},8,["gancao-preview-loading","onDetailChanged"]),l(X,{modelValue:Fe.value,"onUpdate:modelValue":e[23]||(e[23]=a=>Fe.value=a),title:"修改订单金额",width:"420px","destroy-on-close":"","close-on-click-modal":!1,onClosed:fs},{footer:n(()=>[l(x,{onClick:e[22]||(e[22]=a=>Fe.value=!1)},{default:n(()=>[...e[132]||(e[132]=[_("取消",-1)])]),_:1}),l(x,{type:"primary",loading:jt.value,onClick:Da},{default:n(()=>[...e[133]||(e[133]=[_(" 确认修改 ",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(G,{ref_key:"updateAmountFormRef",ref:ot,model:de,rules:ps,"label-width":"96px",class:"pr-2",onSubmit:De(Da,["prevent"])},{default:n(()=>[l(d,{label:"当前金额"},{default:n(()=>{var a;return[r("div",ko,"¥"+m(h(j)((a=D.value)==null?void 0:a.amount)),1)]}),_:1}),l(d,{label:"新金额",prop:"amount"},{default:n(()=>[l(ee,{modelValue:de.amount,"onUpdate:modelValue":e[21]||(e[21]=a=>de.amount=a),min:0,step:.01,precision:2,"controls-position":"right",class:"w-full",placeholder:"请输入新金额"},null,8,["modelValue"])]),_:1}),e[131]||(e[131]=r("div",{class:"text-xs text-gray-400 pl-[96px] -mt-1 leading-relaxed"}," 已完成或已取消订单不可修改。提交成功后会刷新详情与操作日志。 ",-1))]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(X,{modelValue:be.value,"onUpdate:modelValue":e[46]||(e[46]=a=>be.value=a),title:se.value?"修改物流信息(甘草订单)":"编辑业务订单",width:"940px",top:"4vh","close-on-click-modal":!1,"destroy-on-close":"",class:"create-order-dialog",onClosed:Ss},{footer:n(()=>[r("div",lu,[se.value?b("",!0):(u(),g("div",su,[r("span",nu,"第 "+m(F.value+1)+" / 3 步",1),F.value===2&&I.value>0?(u(),g("span",ru," 订单金额与关联支付单合计须 ≥ ¥"+m(h(j)(I.value)),1)):b("",!0)])),r("div",iu,[l(x,{size:"large",onClick:e[45]||(e[45]=a=>be.value=!1)},{default:n(()=>[...e[148]||(e[148]=[_("取消",-1)])]),_:1}),se.value?b("",!0):(u(),g(T,{key:0},[F.value>0?(u(),y(x,{key:0,size:"large",onClick:Cs},{default:n(()=>[...e[149]||(e[149]=[_("上一步",-1)])]),_:1})):b("",!0),F.value<2?(u(),y(x,{key:1,type:"primary",size:"large",onClick:Ns},{default:n(()=>[...e[150]||(e[150]=[_(" 下一步 ",-1)])]),_:1})):b("",!0)],64)),se.value||F.value===2?(u(),y(x,{key:1,type:"primary",size:"large",loading:Wt.value,onClick:Ps},{default:n(()=>[...e[151]||(e[151]=[_(" 确认保存 ",-1)])]),_:1},8,["loading"])):b("",!0)])])]),default:n(()=>[S((u(),g("div",ho,[le.value?(u(),g("div",wo,[r("div",Vo,[e[134]||(e[134]=r("span",{class:"create-order-rx-card__badge"},"关联处方",-1)),r("div",So,[r("span",Co,"#"+m(le.value.id),1),le.value.sn?(u(),g("span",No,m(le.value.sn),1)):b("",!0),r("span",Oo,m(le.value.patient_name||"—"),1)])]),l(St,{content:$a.value,placement:"bottom","show-after":300},{default:n(()=>[r("div",Po,m($a.value),1)]),_:1},8,["content"])])):b("",!0),se.value?(u(),y(ge,{key:1,type:"info",closable:!1,"show-icon":"",class:"mb-4",title:"订单已提交甘草,仅可修改快递单号与承运商;地址、金额等变更请先走取消流程。"},Wn({_:2},[pt.value?{name:"default",fn:n(()=>[r("div",Ao,"甘草处方单号:"+m(pt.value),1)]),key:"0"}:void 0]),1024)):b("",!0),se.value?b("",!0):(u(),g(T,{key:2},[l(pn,{active:F.value,"finish-status":"success","align-center":"",class:"create-order-steps"},{default:n(()=>[l(na,{title:"患者与收货",description:"诊单与物流地址"}),l(na,{title:"服务与支付单",description:"套餐与关联收款"}),l(na,{title:"金额与确认",description:"费用与备注"})]),_:1},8,["active"]),r("p",Ro,m(bs.value),1)],64)),l(G,{ref_key:"editFormRef",ref:xe,model:c,rules:Vs.value,"label-width":"108px",class:"create-order-form"},{default:n(()=>[se.value?(u(),y(Ze,{key:0,gutter:20},{default:n(()=>[l(L,{span:24},{default:n(()=>[l(d,{label:"物流设置"},{default:n(()=>[r("div",Eo,[l(k,{modelValue:c.express_company,"onUpdate:modelValue":e[24]||(e[24]=a=>c.express_company=a),placeholder:"承运商",class:"w-[140px] shrink-0"},{default:n(()=>[l(p,{label:"自动识别",value:"auto"}),l(p,{label:"顺丰速运",value:"sf"}),l(p,{label:"京东快递",value:"jd"}),l(p,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),l(o,{modelValue:c.tracking_number,"onUpdate:modelValue":e[25]||(e[25]=a=>c.tracking_number=a),disabled:"",maxlength:"80",placeholder:"快递单号",class:"flex-1 min-w-0"},null,8,["modelValue"])]),e[135]||(e[135]=r("div",{class:"text-xs text-gray-400 mt-1"}," 编辑订单后需重新审核;双审通过后,请通过列表的单号操作填写或修改 ",-1))]),_:1})]),_:1})]),_:1})):b("",!0),se.value?b("",!0):(u(),g(T,{key:1},[S(r("div",To,[l(Ze,{gutter:20},{default:n(()=>[l(L,{span:12},{default:n(()=>[l(d,{label:"收货人",prop:"recipient_name"},{default:n(()=>[l(o,{modelValue:c.recipient_name,"onUpdate:modelValue":e[26]||(e[26]=a=>c.recipient_name=a),maxlength:"50",placeholder:"姓名"},null,8,["modelValue"])]),_:1})]),_:1}),l(L,{span:12},{default:n(()=>[l(d,{label:"收货手机",prop:"recipient_phone"},{default:n(()=>[l(o,{modelValue:c.recipient_phone,"onUpdate:modelValue":e[27]||(e[27]=a=>c.recipient_phone=a),maxlength:"20",placeholder:"物流联系"},null,8,["modelValue"])]),_:1})]),_:1}),l(L,{span:24},{default:n(()=>[l(d,{label:"省市区",prop:"region"},{default:n(()=>[l(cn,{modelValue:c.region,"onUpdate:modelValue":e[28]||(e[28]=a=>c.region=a),options:lt.value,props:{emitPath:!0},placeholder:"省 / 市 / 区",clearable:"",filterable:"",class:"w-full"},null,8,["modelValue","options"])]),_:1})]),_:1}),l(L,{span:24},{default:n(()=>[l(d,{label:"详细地址",prop:"shipping_address"},{default:n(()=>[l(o,{modelValue:c.shipping_address,"onUpdate:modelValue":e[29]||(e[29]=a=>c.shipping_address=a),type:"textarea",rows:3,placeholder:"街道、小区、门牌号等详细地址",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[ua,F.value===0]]),S(r("div",Do,[tt.value?(u(),y(Ze,{key:0,gutter:20,class:"mb-1"},{default:n(()=>[l(L,{span:24},{default:n(()=>[r("div",$o,[e[138]||(e[138]=r("span",{class:"text-sm font-medium text-gray-700 mr-1"},"处方",-1)),c.prescription_id?(u(),y(x,{key:0,type:"primary",size:"small",link:"",onClick:ln},{default:n(()=>[...e[136]||(e[136]=[_(" 详细 ",-1)])]),_:1})):b("",!0),c.id?(u(),y(x,{key:1,type:"warning",size:"small",link:"",loading:Ce.value,icon:h(Yn),onClick:Ds},{default:n(()=>[...e[137]||(e[137]=[_(" 测试价格 ",-1)])]),_:1},8,["loading","icon"])):b("",!0),r("span",Uo,"ID: "+m(c.prescription_id||"—"),1)]),r("div",Fo,[Ua.value.length?(u(),g("div",Lo,[e[139]||(e[139]=r("div",{class:"text-gray-500"},"创建人所属部门",-1)),(u(!0),g(T,null,z(Ua.value,(a,N)=>(u(),g("div",{key:N,class:"pl-0 min-w-0"},[a.length?(u(),y(_n,{key:0,class:"po-diagnosis-creator-dept-breadcrumb text-[13px] leading-relaxed",separator:"/"},{default:n(()=>[(u(!0),g(T,null,z(a,(O,q)=>(u(),y(mn,{key:q},{default:n(()=>[r("span",Io,m(O),1)]),_:2},1024))),128))]),_:2},1024)):b("",!0)]))),128))])):(u(),g("div",qo,"创建人所属部门:—"))])]),_:1}),l(L,{xs:24,sm:8},{default:n(()=>[l(d,{label:"复诊"},{default:n(()=>[l(fn,{modelValue:c.is_follow_up,"onUpdate:modelValue":e[30]||(e[30]=a=>c.is_follow_up=a),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1}),l(L,{xs:24,sm:8},{default:n(()=>[l(d,{label:"服用天数",class:"create-order-form-item--inline-num"},{default:n(()=>[r("div",zo,[l(ee,{modelValue:c.medication_days,"onUpdate:modelValue":e[31]||(e[31]=a=>c.medication_days=a),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[140]||(e[140]=r("span",{class:"create-order-unit-suffix"},"天",-1))])]),_:1})]),_:1}),l(L,{xs:24,sm:8},{default:n(()=>[l(d,{label:"上次医生"},{default:n(()=>[l(o,{modelValue:c.prev_staff,"onUpdate:modelValue":e[32]||(e[32]=a=>c.prev_staff=a),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),l(L,{span:12},{default:n(()=>[l(d,{label:Ta.value,prop:"dose_count"},{default:n(()=>[l(ee,{modelValue:c.dose_count,"onUpdate:modelValue":e[33]||(e[33]=a=>c.dose_count=a),min:1,placeholder:Ta.value,class:"w-full"},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1}),l(L,{span:12},{default:n(()=>[l(d,{label:"剂量单位",prop:"dose_unit"},{default:n(()=>[l(k,{modelValue:c.dose_unit,"onUpdate:modelValue":e[34]||(e[34]=a=>c.dose_unit=a),placeholder:"请选择",class:"w-full"},{default:n(()=>[l(p,{label:"剂",value:"剂"}),l(p,{label:"丸",value:"丸"}),l(p,{label:"袋",value:"袋"}),l(p,{label:"盒",value:"盒"}),l(p,{label:"瓶",value:"瓶"}),l(p,{label:"膏",value:"膏"}),l(p,{label:"贴",value:"贴"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})):b("",!0),l(Ze,{gutter:20},{default:n(()=>[l(L,{span:12},{default:n(()=>[l(d,{label:"服务渠道"},{default:n(()=>[l(k,{modelValue:c.service_channel,"onUpdate:modelValue":e[35]||(e[35]=a=>c.service_channel=a),class:"w-full",filterable:"","allow-create":"","default-first-option":"",clearable:"",placeholder:"可选或自定义输入"},{default:n(()=>[l(p,{label:"未指派",value:"0"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(L,{span:12},{default:n(()=>[l(d,{label:"服务套餐"},{default:n(()=>[l(k,{modelValue:c.service_package,"onUpdate:modelValue":e[36]||(e[36]=a=>c.service_package=a),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"请选择服务套餐",clearable:"",class:"w-full"},{default:n(()=>[(u(!0),g(T,null,z(ks.value,a=>(u(),y(p,{key:a.value,label:a.name,value:a.value,disabled:a.status===0},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(L,{span:24},{default:n(()=>[l(d,{label:"物流设置"},{default:n(()=>[r("div",jo,[l(k,{modelValue:c.express_company,"onUpdate:modelValue":e[37]||(e[37]=a=>c.express_company=a),placeholder:"承运商",class:"w-[140px] shrink-0"},{default:n(()=>[l(p,{label:"自动识别",value:"auto"}),l(p,{label:"顺丰速运",value:"sf"}),l(p,{label:"京东快递",value:"jd"}),l(p,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),l(o,{modelValue:c.tracking_number,"onUpdate:modelValue":e[38]||(e[38]=a=>c.tracking_number=a),disabled:"",maxlength:"80",placeholder:"快递单号",class:"flex-1 min-w-0"},null,8,["modelValue"])]),e[141]||(e[141]=r("div",{class:"text-xs text-gray-400 mt-1"}," 编辑订单后需重新审核;双审通过后,请通过列表的单号操作填写或修改 ",-1))]),_:1})]),_:1}),l(L,{span:24},{default:n(()=>[l(d,{label:"关联支付单",prop:"pay_order_ids",required:I.value>0},{default:n(()=>[l(k,{modelValue:c.pay_order_ids,"onUpdate:modelValue":e[39]||(e[39]=a=>c.pay_order_ids=a),class:"w-full",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:I.value>0?"请至少选择一笔本诊单支付单(已开启门槛)":"多选本诊单支付单(可选)",loading:Kt.value},{default:n(()=>[(u(!0),g(T,null,z(qe.value,a=>(u(),y(p,{key:a.id,label:`${a.order_no} · ¥${a.amount} · ${ct(a.order_type)} · ${h(Ot)(a)}`,value:a.id,class:"!h-auto py-1.5"},{default:n(()=>[r("div",Mo,[r("div",Bo,[r("span",Ho,m(a.order_no),1),r("span",Wo,"¥"+m(a.amount),1)]),r("div",Ko,[r("span",Go,[_(m(ct(a.order_type))+" · "+m(h(Ot)(a)),1),a.remark?(u(),g(T,{key:0},[_(" · "+m(a.remark),1)],64)):b("",!0)]),r("span",Qo,m(String(a.create_time||"").substring(0,16)),1)])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","loading"]),r("div",Jo,[I.value>0?(u(),g(T,{key:0},[r("span",Xo,"当前已开启关联支付门槛(¥"+m(h(j)(I.value))+"),须至少选择一笔支付单。",1),e[142]||(e[142]=r("span",{class:"mx-1"},null,-1))],64)):b("",!0),e[144]||(e[144]=_(" 主管/本诊单医助可见全部支付单;否则仅本人收款单。已被占用的支付单不列出。 ",-1)),l(St,{content:"主管或本诊单医助可见该诊单全部支付单(待支付/已支付),否则仅本人创建的收款单。已被其他有效业务订单占用的支付单不会出现在此列表。",placement:"top"},{default:n(()=>[...e[143]||(e[143]=[r("span",{class:"text-primary cursor-help ml-0.5"},"详情",-1)])]),_:1})])]),_:1},8,["required"])]),_:1})]),_:1})],512),[[ua,F.value===1]]),S(r("div",Yo,[r("div",{class:B(["create-order-deposit-bar",Gt.value>=I.value?"is-ok":"is-warn"])},[r("div",Zo,[e[145]||(e[145]=r("span",{class:"create-order-deposit-bar__label"},"定金门槛",-1)),r("strong",null,"¥"+m(h(j)(I.value)),1),r("span",eu,m(I.value>0?"须 ≥ 此值":"未设置"),1)]),e[147]||(e[147]=r("div",{class:"create-order-deposit-bar__sep"},null,-1)),r("div",tu,[e[146]||(e[146]=r("span",{class:"create-order-deposit-bar__label"},"已选收款",-1)),r("strong",null,"¥"+m(h(j)(Gt.value)),1),r("span",au,m(Gt.value>=I.value?"已达标":"未达标"),1)])],2),l(Ze,{gutter:20,class:"create-order-step-panel__row-after-bar"},{default:n(()=>[l(L,{span:12},{default:n(()=>[l(d,{label:"费用类别",prop:"fee_type"},{default:n(()=>[l(k,{modelValue:c.fee_type,"onUpdate:modelValue":e[40]||(e[40]=a=>c.fee_type=a),placeholder:"请选择",class:"w-full"},{default:n(()=>[l(p,{label:"挂号费",value:1}),l(p,{label:"问诊费",value:2}),l(p,{label:"药品费用",value:3}),l(p,{label:"首付费用",value:4}),l(p,{label:"尾款费用",value:5}),l(p,{label:"其他费用",value:6}),l(p,{label:"全部费用",value:7}),l(p,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(L,{span:12},{default:n(()=>[l(d,{label:"总金额",prop:"amount"},{default:n(()=>[l(ee,{modelValue:c.amount,"onUpdate:modelValue":e[41]||(e[41]=a=>c.amount=a),min:hs.value,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"元"},null,8,["modelValue","min"])]),_:1})]),_:1}),S((u(),y(L,{span:12},{default:n(()=>[l(d,{label:"内部成本"},{default:n(()=>[l(ee,{modelValue:c.internal_cost,"onUpdate:modelValue":e[42]||(e[42]=a=>c.internal_cost=a),min:0,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"财务可见"},null,8,["modelValue"])]),_:1})]),_:1})),[[E,["finance.account_log/lists"]]]),l(L,{span:24},{default:n(()=>[S((u(),y(d,{label:"药房备注"},{default:n(()=>[l(o,{modelValue:c.remark_extra,"onUpdate:modelValue":e[43]||(e[43]=a=>c.remark_extra=a),type:"textarea",rows:3,placeholder:"选填,对内说明",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})),[[E,["tcm.prescriptionOrder/editRemarkExtra"]]]),l(d,{label:"医助备注"},{default:n(()=>[l(o,{modelValue:c.remark_assistant,"onUpdate:modelValue":e[44]||(e[44]=a=>c.remark_assistant=a),type:"textarea",rows:3,placeholder:"选填,医助对内说明",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[ua,F.value===2]])],64))]),_:1},8,["model","rules"])])),[[ce,Ht.value]])]),_:1},8,["modelValue","title"]),l(X,{modelValue:ze.value,"onUpdate:modelValue":e[51]||(e[51]=a=>ze.value=a),title:As.value,width:"480px","destroy-on-close":"",onClosed:e[52]||(e[52]=a=>Se.value="")},{footer:n(()=>[l(x,{onClick:e[48]||(e[48]=a=>ze.value=!1)},{default:n(()=>[...e[153]||(e[153]=[_("取消",-1)])]),_:1}),l(x,{type:"primary",loading:mt.value,onClick:e[49]||(e[49]=a=>La("approve"))},{default:n(()=>[...e[154]||(e[154]=[_("同意通过",-1)])]),_:1},8,["loading"]),l(x,{type:"danger",loading:mt.value,onClick:e[50]||(e[50]=a=>La("reject"))},{default:n(()=>[...e[155]||(e[155]=[_("驳回阻止",-1)])]),_:1},8,["loading"])]),default:n(()=>[je.value&&je.value.completion_request===1?(u(),y(ge,{key:0,title:"完单申请",type:"warning",closable:!1,"show-icon":"",class:"mb-3"},{default:n(()=>[r("div",ou,[e[152]||(e[152]=r("div",{class:"font-medium mb-1"},"该订单已申请完成",-1)),r("div",uu," 申请人:"+m(je.value.completion_request_by_name||"—"),1),r("div",du," 申请时间:"+m(h(nl)(je.value.completion_request_time)),1)])]),_:1})):b("",!0),e[156]||(e[156]=r("p",{class:"text-[13px] text-gray-500 mb-3 bg-gray-50/80 border border-gray-100 p-2 rounded"},"驳回时必须填写意见;通过时意见选填。",-1)),l(o,{modelValue:Se.value,"onUpdate:modelValue":e[47]||(e[47]=a=>Se.value=a),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"在此输入审核意见..."},null,8,["modelValue"])]),_:1},8,["modelValue","title"]),l(X,{modelValue:Me.value,"onUpdate:modelValue":e[56]||(e[56]=a=>Me.value=a),title:"修改快递单号",width:"420px","destroy-on-close":"","close-on-click-modal":!1},{footer:n(()=>[l(x,{onClick:e[55]||(e[55]=a=>Me.value=!1)},{default:n(()=>[...e[158]||(e[158]=[_("取消",-1)])]),_:1}),l(x,{type:"primary",loading:vt.value,onClick:qa},{default:n(()=>[...e[159]||(e[159]=[_("保存单号",-1)])]),_:1},8,["loading"])]),default:n(()=>[S((u(),y(G,{"label-width":"90px",class:"pr-2",onSubmit:De(qa,["prevent"])},{default:n(()=>[l(d,{label:"承运商"},{default:n(()=>[l(k,{modelValue:pe.express_company,"onUpdate:modelValue":e[53]||(e[53]=a=>pe.express_company=a),class:"w-full",placeholder:"选择承运商"},{default:n(()=>[l(p,{label:"自动识别",value:"auto"}),l(p,{label:"顺丰速运",value:"sf"}),l(p,{label:"京东快递",value:"jd"}),l(p,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"])]),_:1}),l(d,{label:"快递单号"},{default:n(()=>[l(o,{modelValue:pe.tracking_number,"onUpdate:modelValue":e[54]||(e[54]=a=>pe.tracking_number=a),maxlength:"80",placeholder:"请输入快递单号",clearable:"",autofocus:""},null,8,["modelValue"])]),_:1}),e[157]||(e[157]=r("div",{class:"text-xs text-gray-400 pl-[90px] -mt-1 leading-relaxed"}," 仅更新快递信息,其他字段不受影响。 ",-1))]),_:1})),[[ce,vt.value]])]),_:1},8,["modelValue"]),l(X,{modelValue:ke.value,"onUpdate:modelValue":e[60]||(e[60]=a=>ke.value=a),title:"确认发货",width:"440px","destroy-on-close":"","close-on-click-modal":!1},{footer:n(()=>[l(x,{onClick:e[59]||(e[59]=a=>ke.value=!1)},{default:n(()=>[...e[161]||(e[161]=[_("取消",-1)])]),_:1}),l(x,{type:"primary",loading:yt.value,onClick:ja},{default:n(()=>[...e[162]||(e[162]=[_(" 确认发货 ",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(ge,{title:"确认后订单状态将变更为「已发货」,请核对快递信息无误。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),S((u(),y(G,{"label-width":"90px",class:"pr-2",onSubmit:De(ja,["prevent"])},{default:n(()=>[l(d,{label:"发货方式"},{default:n(()=>[l(A,{type:Q(H.ship_mode)==="direct"?"warning":"success",effect:"plain",size:"default"},{default:n(()=>[_(m(rs.value),1)]),_:1},8,["type"]),e[160]||(e[160]=r("span",{class:"text-xs text-gray-400 ml-2"},"请在订单详情顶部「发货类型」中设置,此处不可修改",-1))]),_:1}),l(d,{label:"承运商"},{default:n(()=>[l(k,{modelValue:H.express_company,"onUpdate:modelValue":e[57]||(e[57]=a=>H.express_company=a),class:"w-full"},{default:n(()=>[l(p,{label:"自动识别",value:"auto"}),l(p,{label:"顺丰速运",value:"sf"}),l(p,{label:"京东快递",value:"jd"}),l(p,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"])]),_:1}),l(d,{label:"快递单号"},{default:n(()=>[l(o,{modelValue:H.tracking_number,"onUpdate:modelValue":e[58]||(e[58]=a=>H.tracking_number=a),maxlength:"80",placeholder:"请输入快递单号",clearable:""},null,8,["modelValue"])]),_:1})]),_:1})),[[ce,yt.value]])]),_:1},8,["modelValue"]),l(X,{modelValue:Oe.value,"onUpdate:modelValue":e[65]||(e[65]=a=>Oe.value=a),title:"完成订单",width:"480px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:zs},{footer:n(()=>[l(x,{onClick:e[64]||(e[64]=a=>Oe.value=!1)},{default:n(()=>[...e[166]||(e[166]=[_("取消",-1)])]),_:1}),l(x,{type:ve.value===10?"danger":"primary",loading:Be.value,onClick:Bs},{default:n(()=>[_(m(ve.value===10?"确认退款":"确定"),1)]),_:1},8,["type","loading"])]),default:n(()=>[S((u(),g("div",pu,[Le.value.show?(u(),y(ge,{key:0,type:"error",effect:"dark",closable:!1,"show-icon":"",class:"mb-3 !items-start ring-2 ring-red-600/70",title:"物流异常:轨迹含拒收/退回等,请先核实处理再结案"},{default:n(()=>[r("div",cu,[Le.value.keywords.length?(u(),g("div",mu,[e[163]||(e[163]=r("span",{class:"text-red-100/90"},"命中:",-1)),(u(!0),g(T,null,z(Le.value.keywords,a=>(u(),y(A,{key:a,type:"danger",effect:"plain",size:"small",class:"!border-white/35 !text-white"},{default:n(()=>[_(m(a),1)]),_:2},1024))),128))])):b("",!0),Le.value.lines.length?(u(),g("ul",_u,[(u(!0),g(T,null,z(Le.value.lines,(a,N)=>(u(),g("li",{key:N},m(a),1))),128))])):b("",!0),e[164]||(e[164]=r("div",{class:"text-red-100/85 border-t border-white/15 pt-1.5"}," 确认已协调拒收/退回后续(重发、退款、改址等)后再完成订单。 ",-1))])]),_:1})):b("",!0),e[165]||(e[165]=r("p",{class:"text-sm text-gray-600 mb-3"}," 请选择本单结案状态。选择「已完成」时,实付将按已关联的支付单金额汇总;选择「退款」时将关联收款单标记为已退款并清零本单已付。 ",-1)),l(k,{modelValue:ve.value,"onUpdate:modelValue":e[61]||(e[61]=a=>ve.value=a),class:"w-full",placeholder:"请选择"},{default:n(()=>[(u(),g(T,null,z(Ls,a=>l(p,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),ve.value===10?(u(),g(T,{key:1},[l(ge,{type:"warning",closable:!1,"show-icon":"",class:"mt-3 !items-start",title:"退款将处理本单全部关联收款单,已付总额清零,且不可撤销。"}),S((u(),g("div",fu,[oe.value.length?(u(),g("div",vu,[r("div",yu," 将退款的关联收款("+m(oe.value.length)+" 笔 · 合计 ¥"+m(h(j)(Is.value))+") ",1),l(Xe,{data:oe.value,size:"small",border:"",stripe:"","max-height":"200"},{default:n(()=>[l(P,{prop:"order_no",label:"单号","min-width":"120","show-overflow-tooltip":""}),l(P,{label:"类型",width:"88"},{default:n(({row:a})=>[_(m(a.order_type_desc||h(sl)(a.order_type)),1)]),_:1}),l(P,{label:"金额",width:"88",align:"right"},{default:n(({row:a})=>[r("span",gu,"¥"+m(a.amount),1)]),_:1}),l(P,{label:"状态",width:"92",align:"center"},{default:n(({row:a})=>[l(A,{type:h(wr)(a.status),size:"small"},{default:n(()=>[_(m(a.status_desc||h(Vr)(a.status)),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])])):He.value?b("",!0):(u(),g("p",bu," 当前无已关联的收款单;提交后仍将本单标记为「退款」并清零已付。 "))])),[[ce,He.value]]),l(G,{ref_key:"completeRefundFormRef",ref:Zt,model:Z,rules:qs.value,"label-width":"88px",class:"mt-3"},{default:n(()=>[l(d,{label:"退款金额",prop:"refund_amount"},{default:n(()=>[l(ee,{modelValue:Z.refund_amount,"onUpdate:modelValue":e[62]||(e[62]=a=>Z.refund_amount=a),min:.01,max:ye.value>0?ye.value:void 0,step:.01,precision:2,class:"w-full","controls-position":"right"},null,8,["modelValue","max"]),r("div",xu," 可退上限 ¥"+m(h(j)(ye.value)),1)]),_:1}),l(d,{label:"退款原因",prop:"reason"},{default:n(()=>[l(o,{modelValue:Z.reason,"onUpdate:modelValue":e[63]||(e[63]=a=>Z.reason=a),type:"textarea",rows:3,maxlength:"500","show-word-limit":"",placeholder:"请填写退款原因(必填)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])],64)):b("",!0)])),[[ce,ut.value]])]),_:1},8,["modelValue"]),l(yr,{ref_key:"orderTimeDialogRef",ref:zt,onSaved:us},null,512),l(X,{modelValue:Ke.value,"onUpdate:modelValue":e[69]||(e[69]=a=>Ke.value=a),title:"订单退款",width:"480px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:Ks},{footer:n(()=>[l(x,{onClick:e[68]||(e[68]=a=>Ke.value=!1)},{default:n(()=>[...e[167]||(e[167]=[_("取消",-1)])]),_:1}),l(x,{type:"danger",loading:aa.value,onClick:Gs},{default:n(()=>[...e[168]||(e[168]=[_(" 确认退款 ",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(ge,{type:"warning",closable:!1,"show-icon":"",class:"mb-4 !items-start",title:Hs.value},null,8,["title"]),l(G,{ref_key:"refundOrderFormRef",ref:la,model:K,rules:Ws.value,"label-width":"88px"},{default:n(()=>[l(d,{label:"退款金额",prop:"refund_amount"},{default:n(()=>[l(ee,{modelValue:K.refund_amount,"onUpdate:modelValue":e[66]||(e[66]=a=>K.refund_amount=a),min:.01,max:ne.value>0?ne.value:void 0,step:.01,precision:2,class:"w-full","controls-position":"right"},null,8,["modelValue","max"]),r("div",ku," 可退上限 ¥"+m(h(j)(ne.value))+"(默认全额);部分退款时按金额从关联收款单依次标记已退款,并扣减本单已付。 ",1)]),_:1}),l(d,{label:"退款原因",prop:"reason"},{default:n(()=>[l(o,{modelValue:K.reason,"onUpdate:modelValue":e[67]||(e[67]=a=>K.reason=a),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"请填写退款原因(必填)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue"]),l(X,{modelValue:Ge.value,"onUpdate:modelValue":e[77]||(e[77]=a=>Ge.value=a),title:"补齐支付单",width:"600px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:e[78]||(e[78]=a=>{var N;return(N=bt.value)==null?void 0:N.clearValidate()})},{footer:n(()=>[l(x,{onClick:e[76]||(e[76]=a=>Ge.value=!1)},{default:n(()=>[...e[178]||(e[178]=[_("取消",-1)])]),_:1}),l(x,{type:"primary",loading:gt.value,onClick:Ys},{default:n(()=>[_(m(V.add_mode==="completion_only"?"提交申请":"确认新增"),1)]),_:1},8,["loading"])]),default:n(()=>[l(ge,{title:Qs.value,type:"info",closable:!1,"show-icon":"",class:"mb-4"},null,8,["title"]),S((u(),y(G,{ref_key:"addPayOrderFormRef",ref:bt,model:V,rules:Js.value,"label-width":"90px",class:"pr-2"},{default:n(()=>[l(d,{label:"添加方式",prop:"add_mode"},{default:n(()=>[l(Ee,{modelValue:V.add_mode,"onUpdate:modelValue":e[70]||(e[70]=a=>V.add_mode=a)},{default:n(()=>[l(Te,{value:"create"},{default:n(()=>[...e[169]||(e[169]=[_("付呗",-1)])]),_:1}),l(Te,{value:"create_express"},{default:n(()=>[...e[170]||(e[170]=[_("快递代收",-1)])]),_:1}),l(Te,{value:"link"},{default:n(()=>[...e[171]||(e[171]=[_("关联已有",-1)])]),_:1}),l(Te,{value:"completion_only"},{default:n(()=>[...e[172]||(e[172]=[_("直接完单申请",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),V.add_mode==="create"||V.add_mode==="create_express"?(u(),g(T,{key:0},[l(d,{label:"费用类别",prop:"order_type"},{default:n(()=>[l(k,{modelValue:V.order_type,"onUpdate:modelValue":e[71]||(e[71]=a=>V.order_type=a),class:"w-full"},{default:n(()=>[l(p,{label:"挂号费",value:1}),l(p,{label:"问诊费",value:2}),l(p,{label:"药品费用",value:3}),l(p,{label:"首付费用",value:4}),l(p,{label:"尾款费用",value:5}),l(p,{label:"其他费用",value:6}),l(p,{label:"全部费用",value:7}),l(p,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),l(d,{label:"支付金额",prop:"pay_amount"},{default:n(()=>[l(ee,{modelValue:V.pay_amount,"onUpdate:modelValue":e[72]||(e[72]=a=>V.pay_amount=a),min:0,step:.01,precision:2,class:"w-full",placeholder:"请输入支付金额(元,可为 0)"},null,8,["modelValue"])]),_:1}),l(d,{label:"备注",prop:"pay_remark"},{default:n(()=>[l(o,{modelValue:V.pay_remark,"onUpdate:modelValue":e[73]||(e[73]=a=>V.pay_remark=a),type:"textarea",rows:3,maxlength:"200","show-word-limit":"",placeholder:"支付说明(选填)"},null,8,["modelValue"])]),_:1})],64)):V.add_mode==="completion_only"?(u(),y(ge,{key:1,type:"warning",closable:!1,"show-icon":"",class:"!mb-0"},{title:n(()=>[...e[173]||(e[173]=[_(" 不新增或关联支付单,仅向审核人员提交「完成订单」申请;提交后支付审核将变为待审核,审核通过后将自动结案。 ",-1)])]),_:1})):(u(),y(d,{key:2,label:"选择支付单",prop:"link_pay_order_id"},{default:n(()=>[l(k,{modelValue:V.link_pay_order_ids,"onUpdate:modelValue":e[74]||(e[74]=a=>V.link_pay_order_ids=a),class:"w-full",placeholder:"选择未绑定的支付单(可多选)",loading:sa.value,multiple:"","collapse-tags":"","collapse-tags-tooltip":""},{default:n(()=>[(u(!0),g(T,null,z(xt.value,a=>(u(),y(p,{key:a.id,label:`${a.order_no} · ¥${a.amount} · ${ct(a.order_type)} · ${h(Ot)(a)}`,value:a.id},{default:n(()=>[r("div",hu,[r("div",wu,[r("span",Vu,m(a.order_no),1),r("span",Su,"¥"+m(a.amount),1)]),r("div",Cu,m(ct(a.order_type))+" · "+m(h(Ot)(a)),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","loading"]),e[174]||(e[174]=r("div",{class:"text-xs text-gray-500 mt-1.5"}," 仅显示本诊单下未被其他业务订单占用的支付单,可同时选择多个 ",-1))]),_:1})),V.add_mode!=="completion_only"?(u(),y(d,{key:3,label:"完单申请"},{default:n(()=>[l(Ee,{modelValue:V.completion_request,"onUpdate:modelValue":e[75]||(e[75]=a=>V.completion_request=a)},{default:n(()=>[l(Te,{value:0},{default:n(()=>[...e[175]||(e[175]=[_("不申请",-1)])]),_:1}),l(Te,{value:1},{default:n(()=>[...e[176]||(e[176]=[_("申请完成订单",-1)])]),_:1})]),_:1},8,["modelValue"]),e[177]||(e[177]=r("div",{class:"text-xs text-gray-400 mt-1"},' 选择"申请完成订单"后,审核人员可在支付审核时看到此申请 ',-1))]),_:1})):b("",!0)]),_:1},8,["model","rules"])),[[ce,gt.value]])]),_:1},8,["modelValue"]),l(X,{modelValue:Ie.value,"onUpdate:modelValue":e[82]||(e[82]=a=>Ie.value=a),title:"修改处方患者信息",width:"440px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:_s},{footer:n(()=>[l(x,{onClick:e[81]||(e[81]=a=>Ie.value=!1)},{default:n(()=>[...e[179]||(e[179]=[_("取消",-1)])]),_:1}),l(x,{type:"primary",loading:Mt.value,onClick:ys},{default:n(()=>[...e[180]||(e[180]=[_(" 保存 ",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(G,{ref_key:"patchRxPatientFormRef",ref:Bt,model:ae,rules:cs,"label-width":"96px"},{default:n(()=>[l(d,{label:"患者姓名",prop:"patient_name"},{default:n(()=>[l(o,{modelValue:ae.patient_name,"onUpdate:modelValue":e[79]||(e[79]=a=>ae.patient_name=a),maxlength:"50","show-word-limit":"",placeholder:"与处方笺一致",clearable:""},null,8,["modelValue"])]),_:1}),l(d,{label:"手机",prop:"phone"},{default:n(()=>[l(o,{modelValue:ae.phone,"onUpdate:modelValue":e[80]||(e[80]=a=>ae.phone=a),maxlength:"20",placeholder:"处方登记手机号",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(Za,{modelValue:kt.value,"onUpdate:modelValue":e[84]||(e[84]=a=>kt.value=a),size:"920px","close-on-click-modal":!1},{header:n(()=>[r("div",Nu,[e[183]||(e[183]=r("span",{class:"text-base font-medium text-gray-800"},"查看处方",-1)),C.value&&!ht.value?(u(),g("div",Ou,[l(x,{size:"small",loading:Ae.value,onClick:un},{default:n(()=>[...e[181]||(e[181]=[_(" 下载图片 ",-1)])]),_:1},8,["loading"]),l(x,{size:"small",loading:Ae.value,onClick:dn},{default:n(()=>[...e[182]||(e[182]=[_(" 下载PDF ",-1)])]),_:1},8,["loading"])])):b("",!0)])]),default:n(()=>[S((u(),g("div",Pu,[C.value?(u(),y(vn,{key:0,modelValue:wt.value,"onUpdate:modelValue":e[83]||(e[83]=a=>wt.value=a),class:"mx-4 mt-2",style:{"margin-bottom":"0","z-index":"1",position:"relative"}},{default:n(()=>[l(Ya,{label:"药房联",name:"internal"}),l(Ya,{label:"处方联",name:"user"})]),_:1},8,["modelValue"])):b("",!0),C.value?(u(),g("div",Au,[Number(C.value.void_status)===1?(u(),y(A,{key:0,type:"danger",size:"small"},{default:n(()=>[...e[184]||(e[184]=[_("已作废",-1)])]),_:1})):Number(C.value.business_prescription_audit_rejected)===1?(u(),y(A,{key:1,type:"danger",size:"small"},{default:n(()=>[...e[185]||(e[185]=[_("业务订单已驳回",-1)])]),_:1})):Number(C.value.audit_status)===1?(u(),y(A,{key:2,type:"success",size:"small"},{default:n(()=>[...e[186]||(e[186]=[_("已通过",-1)])]),_:1})):Number(C.value.audit_status)===0?(u(),y(A,{key:3,type:"warning",size:"small"},{default:n(()=>[...e[187]||(e[187]=[_("待审核",-1)])]),_:1})):(u(),y(A,{key:4,type:"danger",size:"small"},{default:n(()=>[...e[188]||(e[188]=[_("已驳回",-1)])]),_:1}))])):b("",!0),C.value&&Number(C.value.void_status)===1?(u(),g("div",Ru," 作废人:"+m(C.value.void_by_name||"—")+",作废时间:"+m(an(C.value.void_time)),1)):C.value&&Number(C.value.business_prescription_audit_rejected)===1?(u(),g("div",Eu,[e[189]||(e[189]=r("div",{class:"font-medium"},"审核状态:已驳回(业务订单·处方审核)",-1)),C.value.business_prescription_audit_remark?(u(),g("div",Tu," 驳回意见:"+m(C.value.business_prescription_audit_remark),1)):b("",!0)])):C.value&&Number(C.value.audit_status)===2?(u(),g("div",Du,[e[190]||(e[190]=r("div",{class:"font-medium"},"消费者处方审核:已驳回",-1)),C.value.audit_remark?(u(),g("div",$u,"驳回意见:"+m(C.value.audit_remark),1)):b("",!0)])):b("",!0),C.value?(u(),y(li,{key:5,ref_key:"rxSlipRef",ref:Wa,data:C.value,variant:wt.value,"aux-library-name":Je.value,title:tn},null,8,["data","variant","aux-library-name"])):b("",!0),C.value&&(C.value.audit_by_name||C.value.audit_remark)?(u(),g("div",Uu,[C.value.audit_by_name?(u(),g("div",Fu,[_(" 审核人:"+m(C.value.audit_by_name)+" ",1),C.value.audit_time?(u(),g("span",Lu,m(Ka(C.value.audit_time)),1)):b("",!0)])):b("",!0),C.value.audit_remark?(u(),g("div",Iu,"审核意见:"+m(C.value.audit_remark),1)):b("",!0)])):b("",!0)])),[[ce,ht.value]])]),_:1},8,["modelValue"]),l(Za,{modelValue:ft.value,"onUpdate:modelValue":e[85]||(e[85]=a=>ft.value=a),title:"甘草预下单测试结果",size:"800px","destroy-on-close":""},{default:n(()=>{var a,N;return[U.value?(u(),g("div",qu,[l(s,{shadow:"never",class:"mb-4"},{header:n(()=>[r("div",zu,[e[192]||(e[192]=r("span",{class:"font-semibold"},"价格信息",-1)),l(A,{type:"success"},{default:n(()=>[...e[191]||(e[191]=[_("预下单成功",-1)])]),_:1})])]),default:n(()=>[l(ra,{column:2,border:""},{default:n(()=>[l(ue,{label:"药材成本"},{default:n(()=>{var O;return[r("span",ju,"¥"+m(((O=U.value.fee)==null?void 0:O.m_cost)||"0.00"),1)]}),_:1}),l(ue,{label:"制作费"},{default:n(()=>{var O;return[r("span",Mu,"¥"+m((((O=U.value.fee)==null?void 0:O.proces_cost)||0).toFixed(2)),1)]}),_:1}),l(ue,{label:"物流费"},{default:n(()=>{var O;return[r("span",Bu,"¥"+m((((O=U.value.fee)==null?void 0:O.lis_cost)||0).toFixed(2)),1)]}),_:1}),l(ue,{label:"总计"},{default:n(()=>[r("div",null,[r("span",Hu," ¥"+m(Xt(U.value.fee)),1),S((u(),g("div",Wu,[e[193]||(e[193]=_(" 占订单总金额: ",-1)),r("span",Ku,m(Es(U.value.fee,U.value.amount)),1),U.value.amount>0?(u(),g("span",Gu,"%(预报价 ÷ 订单金额 × 100)")):b("",!0)])),[[E,["prescription.order/finance"]]])])]),_:1})]),_:1})]),_:1}),l(s,{shadow:"never",class:"mb-4"},{header:n(()=>[...e[194]||(e[194]=[r("span",{class:"font-semibold"},"配送信息",-1)])]),default:n(()=>[l(ra,{column:2,border:""},{default:n(()=>[l(ue,{label:"调配中心"},{default:n(()=>{var O;return[_(m(((O=U.value.result)==null?void 0:O.ds_name)||"—"),1)]}),_:1}),l(ue,{label:"调配中心ID"},{default:n(()=>{var O;return[_(m(((O=U.value.result)==null?void 0:O.ds_id)||"—"),1)]}),_:1}),l(ue,{label:"服用天数范围",span:2},{default:n(()=>{var O,q,el,tl,al,ll;return[_(m(((q=(O=U.value.result)==null?void 0:O.take_days)==null?void 0:q.min)||"—")+" - "+m(((tl=(el=U.value.result)==null?void 0:el.take_days)==null?void 0:tl.max)||"—")+" 天 (默认: "+m(((ll=(al=U.value.result)==null?void 0:al.take_days)==null?void 0:ll.default)||"—")+" 天) ",1)]}),_:1})]),_:1})]),_:1}),(N=(a=U.value.result)==null?void 0:a.rule_check)!=null&&N.length?(u(),y(s,{key:0,shadow:"never",class:"mb-4"},{header:n(()=>[...e[195]||(e[195]=[r("span",{class:"font-semibold"},"医嘱备注",-1)])]),default:n(()=>[r("div",Qu,m(U.value.result.rule_check.map(O=>O.msg).join(" ")),1)]),_:1})):b("",!0),l(s,{shadow:"never"},{header:n(()=>{var O,q;return[r("div",Ju,[e[196]||(e[196]=r("span",{class:"font-semibold"},"药材明细",-1)),r("span",Xu,"共 "+m(((q=(O=U.value.result)==null?void 0:O.m_list)==null?void 0:q.length)||0)+" 味药",1)])]}),default:n(()=>{var O;return[l(Xe,{data:((O=U.value.result)==null?void 0:O.m_list)||[],border:"",stripe:"","max-height":"400"},{default:n(()=>[l(P,{type:"index",label:"#",width:"50",align:"center"}),l(P,{prop:"title",label:"药材名称","min-width":"120","show-overflow-tooltip":""}),l(P,{prop:"quantity",label:"用量",width:"80",align:"right"},{default:n(({row:q})=>[_(m(q.quantity)+m(q.unit),1)]),_:1}),l(P,{prop:"price",label:"单价(元/克)",width:"110",align:"right"},{default:n(({row:q})=>[_(" ¥"+m(Number(q.price).toFixed(4)),1)]),_:1}),l(P,{label:"小计",width:"100",align:"right"},{default:n(({row:q})=>[r("span",Yu," ¥"+m((Number(q.price)*Number(q.quantity)).toFixed(2)),1)]),_:1}),l(P,{prop:"is_available",label:"库存状态",width:"100",align:"center"},{default:n(({row:q})=>[l(A,{type:q.is_available===1?"success":"danger",size:"small"},{default:n(()=>[_(m(q.is_available===1?"有货":"缺货"),1)]),_:2},1032,["type"])]),_:1}),l(P,{prop:"brief",label:"备注","min-width":"120","show-overflow-tooltip":""})]),_:1},8,["data"])]}),_:1}),l(s,{shadow:"never",class:"mt-4"},{header:n(()=>[...e[197]||(e[197]=[r("span",{class:"font-semibold"},"订单信息",-1)])]),default:n(()=>[l(ra,{column:2,border:""},{default:n(()=>[l(ue,{label:"订单号",span:2},{default:n(()=>[_(m(U.value.order_no||"—"),1)]),_:1}),l(ue,{label:"剂数"},{default:n(()=>[r("span",Zu,m(U.value.dose_count||"—")+"剂",1)]),_:1}),l(ue,{label:"单剂量"},{default:n(()=>{var O;return[r("span",ed,m(Ts((O=U.value.result)==null?void 0:O.m_list))+"克 ",1)]}),_:1})]),_:1})]),_:1})])):b("",!0)]}),_:1},8,["modelValue"]),l(X,{modelValue:$e.value,"onUpdate:modelValue":e[88]||(e[88]=a=>$e.value=a),title:"批量改派医助",width:"440px","append-to-body":""},{footer:n(()=>[l(x,{onClick:e[87]||(e[87]=a=>$e.value=!1)},{default:n(()=>[...e[200]||(e[200]=[_("取消",-1)])]),_:1}),l(x,{type:"primary",loading:Et.value,onClick:wl},{default:n(()=>[...e[201]||(e[201]=[_("确定改派",-1)])]),_:1},8,["loading"])]),default:n(()=>[r("div",td,[e[198]||(e[198]=_(" 已选 ",-1)),r("strong",ad,m(fe.value.length),1),e[199]||(e[199]=_(" 单,将订单「创建人(医助归属)」改派为: ",-1))]),l(k,{modelValue:at.value,"onUpdate:modelValue":e[86]||(e[86]=a=>at.value=a),clearable:"",filterable:"",placeholder:"选择目标医助",class:"!w-full"},{default:n(()=>[(u(!0),g(T,null,z(we.value,a=>(u(),y(p,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e[202]||(e[202]=r("p",{class:"text-xs text-gray-400 mt-2 leading-relaxed"}," 仅变更订单的业务归属(医助筛选 / 业绩口径),并写入操作日志;不影响处方、支付单及审核状态。已是该医助的订单会自动跳过。 ",-1))]),_:1},8,["modelValue"]),l(h(cl),{ref_key:"diagnosisViewRef",ref:pa},null,512)])}}}),kd=ri(sd,[["__scopeId","data-v-7b9e328c"]]);export{kd as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-BuMVMky1.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-BSADvQNg.js","assets/index-Bkarz3gO.js","assets/index-deCJ4ja-.css","assets/perm-CHCBwnFR.js","assets/DailyMatrix-BkYJBu_D.js","assets/picker-BTh9eW9u.js","assets/index-CS5Wg0xx.js","assets/index-B3imPWFk.css","assets/index-oRynN2pP.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-Cqk_cdo9.js","assets/index-D0f1Mn00.css","assets/index-BJZwRQXE.js","assets/file-BjbV-eNx.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-VonOdKxB.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-BQogJqk-.js","assets/FollowupAudioReview-BDRNtxGL.js","assets/FollowupAudioField-Dz9Csp0b.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-2_yvVfnZ.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-PGnYdg0x.js","assets/RecordingPlaybackBlock-DDHsYga7.js","assets/RecordingVideoPlayer-B0kkGDId.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CO99W60y.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-mqnmyStx.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-aR2VA9u1.js","assets/doctor-DBvYeWd3.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-D83GYvN5.js","assets/patient-B_ifBl-W.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-Dk7f29yf.js","assets/PrescriptionOrderDetailDrawer-CX7YbddA.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-C_PSjf1W.js","assets/index-DAIDDabA.js","assets/medicine-DPIOyHj8.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CTRSsggc.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]); +import{o as pl,Q as yn,R as ia,ap as gn,n as et,bp as bn,q as u,r as g,v as l,D as n,s as r,F as T,G as z,ae as B,T as m,P as b,bj as xn,ac as S,w as kn,u as h,cg as hn,L as _,bI as wn,bJ as Vn,ch as Sn,bn as Cn,bd as Nn,C as oa,bb as On,aA as Pn,bc as Ct,O as y,bh as An,bi as Rn,bL as En,K as Tn,bk as Dn,bl as $n,bm as Un,bZ as Fn,aw as De,ci as Ln,a1 as In,cj as qn,bf as zn,be as jn,J as Mn,aB as Bn,bo as Hn,bO as Wn,b$ as Kn,c0 as Gn,c9 as Qn,ca as Jn,cc as Xn,ad as ua,bB as Yn,U as Zn,S as er,I as tr,bq as ar,Y as lr,X as sr,B as nr,c1 as rr,c2 as ir,cd as or,al as ur,M as f,p as R,aC as me,e as Nt,cf as dr,ce as pr}from"./.pnpm-CyuAWpdG.js";import{_ as cr}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{_ as mr}from"./index.vue_vue_type_script_setup_true_lang-CQzUr1BT.js";import{L as _r,u as fr}from"./useListTimeFilter-F3VNdKVb.js";import vr from"./PrescriptionOrderDetailDrawer-CX7YbddA.js";import{_ as yr}from"./PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-CJXWubSx.js";import{_ as gr}from"./GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-__KcsZHs.js";import{z as br,A as xr,s as da,g as sl,b as j,B as kr,a as hr,f as nl,h as Ot,p as wr,o as Vr,T as Sr,P as Cr,n as Nr,C as Pt,y as Or,c as rl,u as Pr,D as Ar,E as Rr,q as Er,F as Tr}from"./prescription-order-utils-CXfs2Bra.js";import{D as Dr,E as $r,g as Ur,o as Fr,z as Lr,F as Ir,G as qr,H as zr,m as At,I as il,J as jr,K as Mr,L as Br,M as ol,N as Hr,O as Wr,P as Kr,Q as ul,R as Gr,S as Qr,T as Jr,U as Xr,V as Yr,W as Zr,r as ei,l as dl,i as ti,v as ai}from"./tcm-BSADvQNg.js";import{P as li}from"./index-CTRSsggc.js";import{u as si,j as w,n as ni,_ as ri}from"./index-Bkarz3gO.js";import{d as ii}from"./department-BeBGhsmA.js";import{u as oi}from"./usePaging-CghUEVfD.js";import"./index-CS5Wg0xx.js";const ui={class:"prescription-order-page prescription-order-list px-4 py-4 pb-8"},di={class:"flex flex-col gap-3"},pi={key:0,class:"flex items-center gap-2 flex-wrap"},ci=["onClick"],mi={class:"font-medium"},_i={class:"flex items-center gap-2 flex-wrap"},fi=["onClick"],vi={class:"font-medium"},yi={class:"flex items-center gap-2 flex-wrap"},gi=["onClick"],bi={class:"font-medium"},xi={class:"flex items-center gap-2 flex-wrap"},ki=["onClick"],hi={class:"font-medium"},wi={class:"flex items-center gap-2 flex-wrap"},Vi=["onClick"],Si={class:"font-medium"},Ci={class:"po-list-stats grid grid-cols-1 sm:grid-cols-2 gap-4 mb-5"},Ni={class:"po-stat-surface po-stat-surface--order relative overflow-hidden rounded-xl border border-slate-200/90 px-5 py-4 shadow-sm"},Oi={class:"relative flex items-start justify-between gap-3"},Pi={class:"flex items-center gap-2 text-slate-500 text-xs font-medium"},Ai={class:"mt-2 space-y-1.5 min-w-0"},Ri={class:"text-2xl sm:text-[28px] font-bold text-sky-700 tabular-nums leading-none"},Ei={class:"flex flex-wrap gap-x-3 gap-y-1 text-xs text-slate-500 tabular-nums"},Ti={class:"text-slate-400"},Di={class:"stat-icon-wrap h-10 w-10 shrink-0 rounded-lg bg-sky-500/10 flex items-center justify-center text-sky-600"},$i={class:"relative mt-2 text-xs text-slate-500 leading-relaxed"},Ui={class:"po-stat-surface po-stat-surface--pay relative overflow-hidden rounded-xl border border-slate-200/90 px-5 py-4 shadow-sm"},Fi={class:"relative flex items-start justify-between gap-3"},Li={class:"flex items-center gap-2 text-slate-500 text-xs font-medium"},Ii={class:"mt-2 space-y-1.5 min-w-0"},qi={class:"text-2xl sm:text-[28px] font-bold text-emerald-700 tabular-nums leading-none"},zi={class:"flex flex-wrap gap-x-3 gap-y-1 text-xs text-slate-500 tabular-nums"},ji={class:"text-slate-400"},Mi={class:"stat-icon-wrap h-10 w-10 shrink-0 rounded-lg bg-emerald-500/10 flex items-center justify-center text-emerald-600"},Bi={class:"relative mt-2 text-xs text-slate-500 leading-relaxed"},Hi={class:"po-table-toolbar"},Wi={class:"po-table-toolbar__title-wrap"},Ki={class:"po-table-hint text-gray-400"},Gi={class:"po-focus-board"},Qi={class:"po-focus-board__value"},Ji={class:"po-focus-board__value"},Xi={class:"po-focus-board__value"},Yi={class:"po-focus-board__value"},Zi={class:"po-order-no-cell"},eo={class:"po-order-no-main"},to={class:"po-order-no-sub"},ao={class:"text-gray-400"},lo={key:0,class:"ml-1"},so={class:"flex items-center gap-1"},no={class:"text-red-500 font-medium whitespace-nowrap"},ro={class:"text-sm"},io={class:"flex justify-between mb-1"},oo={class:"font-medium text-red-500"},uo={class:"flex justify-between mb-1"},po={class:"flex justify-between mb-1"},co={class:"font-medium"},mo={key:0,class:"flex justify-between"},_o={key:1},fo=["title"],vo={key:1},yo={key:0,class:"text-gray-400"},go={class:"flex items-center gap-1 flex-wrap"},bo={class:"flex justify-end mt-4"},xo={class:"flex items-center gap-2 ml-4 shrink-0"},ko={class:"text-sm text-gray-700 font-medium"},ho={class:"create-order-dialog__inner"},wo={key:0,class:"create-order-rx-card"},Vo={class:"create-order-rx-card__head"},So={class:"create-order-rx-card__meta"},Co={class:"create-order-rx-card__id"},No={key:0,class:"create-order-rx-card__sn"},Oo={class:"create-order-rx-card__patient"},Po={class:"create-order-rx-card__herbs"},Ao={class:"text-sm text-gray-700 mt-1"},Ro={class:"create-order-step-lead"},Eo={class:"flex gap-2 w-full"},To={class:"create-order-step-panel"},Do={class:"create-order-step-panel"},$o={class:"flex flex-wrap items-center gap-2 pb-2 border-b border-gray-100"},Uo={class:"text-xs text-gray-400"},Fo={class:"mt-2 space-y-1.5 text-xs sm:text-sm"},Lo={key:0,class:"space-y-1.5"},Io={class:"text-gray-800 break-all"},qo={key:1,class:"text-gray-400"},zo={class:"flex items-center gap-1 w-full"},jo={class:"flex gap-2 w-full"},Mo={class:"flex flex-col gap-0.5",style:{"line-height":"normal"}},Bo={class:"flex items-center justify-between"},Ho={class:"font-medium text-[13px] text-gray-800"},Wo={class:"text-orange-500 font-medium ml-4"},Ko={class:"flex items-center justify-between text-xs text-gray-400 mt-1"},Go={class:"truncate pr-2"},Qo={class:"shrink-0"},Jo={class:"create-order-pay-hint text-gray-500"},Xo={class:"text-amber-600 font-medium"},Yo={class:"create-order-step-panel"},Zo={class:"create-order-deposit-bar__cell"},eu={class:"create-order-deposit-bar__sub"},tu={class:"create-order-deposit-bar__cell"},au={class:"create-order-deposit-bar__sub"},lu={class:"create-order-footer"},su={key:0,class:"create-order-footer__hint"},nu={class:"create-order-footer__step"},ru={key:0,class:"create-order-footer__warn"},iu={class:"create-order-footer__actions"},ou={class:"text-sm"},uu={class:"text-gray-600"},du={class:"text-gray-600"},pu={class:"min-h-[52px]"},cu={class:"text-xs leading-relaxed space-y-1.5"},mu={key:0,class:"flex flex-wrap gap-1 items-center"},_u={key:1,class:"list-disc pl-4 space-y-0.5 text-red-50"},fu={class:"mt-3"},vu={key:0,class:"rounded-lg border border-amber-200/80 bg-amber-50/50 p-3"},yu={class:"text-xs font-semibold text-amber-900 mb-2"},gu={class:"text-red-500"},bu={key:1,class:"text-xs text-gray-500 mt-2"},xu={class:"text-xs text-gray-500 mt-1"},ku={class:"text-xs text-gray-500 mt-1"},hu={class:"flex flex-col gap-0.5 py-0.5"},wu={class:"flex items-center justify-between"},Vu={class:"text-sm"},Su={class:"text-orange-500 font-medium ml-4"},Cu={class:"text-xs text-gray-400"},Nu={class:"flex items-center justify-between w-full pr-2 gap-3"},Ou={key:0,class:"flex items-center gap-2 shrink-0"},Pu={class:"rx-wrap"},Au={key:1,class:"rx-statusbar"},Ru={key:2,class:"rx-status rx-status-danger"},Eu={key:3,class:"rx-status rx-status-danger"},Tu={key:0,class:"mt-1"},Du={key:4,class:"rx-status rx-status-danger"},$u={key:0,class:"mt-1"},Uu={key:6,class:"rx-audit"},Fu={key:0},Lu={key:0,class:"ml-2 text-gray-400"},Iu={key:1,class:"mt-1"},qu={key:0,class:"px-4"},zu={class:"flex items-center justify-between"},ju={class:"text-lg font-semibold text-orange-600"},Mu={class:"text-lg font-semibold text-blue-600"},Bu={class:"text-lg font-semibold text-green-600"},Hu={class:"text-xl font-bold text-red-600"},Wu={class:"text-sm text-gray-500 mt-1.5"},Ku={class:"font-medium text-gray-700"},Gu={key:0},Qu={class:"text-sm text-gray-700 leading-relaxed"},Ju={class:"flex items-center justify-between"},Xu={class:"text-sm text-gray-500"},Yu={class:"font-medium text-orange-600"},Zu={class:"text-base font-medium"},ed={class:"text-base font-medium"},td={class:"text-sm text-gray-600 mb-3"},ad={class:"text-primary"},ld=pl({name:"prescriptionOrderList"}),sd=pl({...ld,setup(nd){const cl=or(()=>ur(()=>import("./edit-BuMVMky1.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),_e=si(),ml=yn(),pa=f(null);function _l(){var e,s;const t=Number((e=D.value)==null?void 0:e.diagnosis_id);if(!t){w.msgWarning("本订单未关联诊单,无法查看患者诊单信息");return}(s=pa.value)==null||s.openViewOnly(t)}const fl=6,ca=[3,8],vl=R(()=>{const t=_e.userInfo;if(!t||Number(t.root)===1)return!1;const e=Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[];return e.includes(fl)?!ca.some(s=>e.includes(s)):!1}),yl=R(()=>{const t=_e.userInfo;if(!t)return!1;if(Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[];return ca.some(s=>e.includes(s))}),gl=R(()=>vl.value||yl.value),ma=f([]),tt=R(()=>{const t=_e.userInfo;if(!t||Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[];return e.includes(Sr)?e.some(s=>Cr.includes(s)):!0}),bl=R(()=>tt.value?"详情/审核":"详情"),xl=[0,3,6],_a=[0,3],Rt=()=>{const t=_e.userInfo;if(!t)return!1;if(Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[];return xl.some(s=>e.includes(s))},re=f(!1),fa=R(()=>{const t=_e.userInfo;if(!t)return!1;if(Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[];return _a.some(s=>e.includes(s))}),fe=f([]);function kl(t){fe.value=Array.isArray(t)?t:[]}const $e=f(!1),at=f(""),Et=f(!1);function hl(){if(fe.value.length===0){w.msgWarning("请先勾选要改派的订单");return}at.value="",$e.value=!0}async function wl(){const t=Number(at.value);if(!t){w.msgWarning("请选择目标医助");return}const e=fe.value.map(s=>Number(s.id)).filter(s=>s>0);if(e.length===0){w.msgWarning("请先勾选要改派的订单");return}Et.value=!0;try{const s=await $r({order_ids:e,assistant_id:t}),i=Number((s==null?void 0:s.success)??0),o=Array.isArray(s==null?void 0:s.errors)?s.errors:[];let d=`已改派 ${i} 单`;o.length&&(d+=`;${o.join(";")}`),w.msgSuccess(d),$e.value=!1,fe.value=[],$()}catch{}finally{Et.value=!1}}const lt=f([]),Tt=f([]),Dt=f([]),we=f([]),st=f([]),Vl={value:"id",label:"name",children:"children"};function va(t,e){for(const s of t||[]){if(s==null||typeof s!="object")continue;const i=s;if(Number(i.id)===e)return i;const o=va(i.children||[],e);if(o)return o}return null}function ya(t){const e=Number(t.id),s=[];Number.isFinite(e)&&e>0&&s.push(e);for(const i of t.children||[])i&&typeof i=="object"&&s.push(...ya(i));return s}function Sl(t,e){const s=va(e,t);return s?ya(s):[t]}async function Cl(){try{const[t,e,s]=await Promise.all([Ur(),Fr(),ii()]);Dt.value=Array.isArray(t)?t:[],we.value=Array.isArray(e)?e:[];const i=Array.isArray(s)?s:[];st.value=i}catch{Dt.value=[],we.value=[],st.value=[]}}const Nl=t=>t.map(e=>{var s;return{value:e.province,label:e.province,code:e.code,children:((s=e.citys)==null?void 0:s.map(i=>{var o;return{value:i.city,label:i.city,code:i.code,children:((o=i.areas)==null?void 0:o.map(d=>({value:d.area,label:d.area,code:d.code})))||[]}}))||[]}}),Ol=async()=>{try{console.log("开始加载省市区数据...");const e=await fetch("https://cos.zhenyangtang.com.cn/area/ChinaCitys.json");if(console.log("响应状态:",e.status),!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const s=await e.json();console.log("加载的数据条数:",s==null?void 0:s.length),lt.value=Nl(s),console.log("regionOptions 已设置,条数:",lt.value.length)}catch(t){console.error("加载省市区数据失败:",t),lt.value=[]}},Pl=async()=>{try{const t=await ni({type:"server_order"});Tt.value=Nr(t==null?void 0:t.server_order)}catch(t){console.error("加载服务套餐选项失败:",t),Tt.value=[]}},Al=[{label:"全部",value:""},{label:"待双审通过",value:1},{label:"待发货",value:2},{label:"已发货",value:5},{label:"已签收",value:6},{label:"已完成",value:3},{label:"已取消",value:4},{label:"进行中",value:7},{label:"暂不制药",value:8},{label:"拒收",value:9},{label:"退款",value:10},{label:"保留药方",value:11},{label:"制药缓发",value:12}];function Rl(t){te.value="",v.exclude_fulfillment_cancelled=0,v.fulfillment_status=t,W()}const te=f(""),El=[{label:"全部",value:""},{label:"甘草",value:"gancao"},{label:"洛阳直发",value:"direct"},{label:"自营",value:"self"}];function Tl(t){v.supply_mode=t,W()}const Dl=[{label:"全部",value:""},{label:"顺丰",value:"sf"},{label:"京东",value:"jd"}];function $l(t){v.express_company=t,W()}const v=me({order_no:"",prescription_id:"",patient_keyword:"",express_keyword:"",express_company:"",doctor_id:"",assistant_id:"",assistant_dept_id:"",fulfillment_status:"",prescription_audit_status:"",payment_slip_audit_status:"",supply_mode:"",service_channel:"",has_aux_formula:"",exclude_fulfillment_cancelled:0,audit_admin_id:""}),Ul=[{label:"全部",value:""},{label:"待审核",value:0},{label:"已通过",value:1},{label:"已驳回",value:2}],Fl=[{label:"全部",value:""},{label:"待审核",value:0},{label:"已通过",value:1},{label:"已驳回",value:2}];function Ll(t){te.value="",v.exclude_fulfillment_cancelled=0,v.prescription_audit_status=t,W()}function Il(t){te.value="",v.exclude_fulfillment_cancelled=0,v.payment_slip_audit_status=t,W()}function nt(t){if(te.value===t){te.value="",v.prescription_audit_status="",v.payment_slip_audit_status="",v.fulfillment_status="",v.exclude_fulfillment_cancelled=0,W();return}te.value=t,v.prescription_audit_status="",v.payment_slip_audit_status="",v.fulfillment_status="",v.exclude_fulfillment_cancelled=0,t==="pendingRx"?(v.prescription_audit_status=0,v.exclude_fulfillment_cancelled=1):t==="pendingPay"?(v.prescription_audit_status=1,v.payment_slip_audit_status=0):t==="pendingShip"?v.fulfillment_status=2:t==="risk"&&(v.payment_slip_audit_status=2),W()}const{time_type:Ue,dateRange:$t,resolve:ga,handleTimeTypeChange:ql,handleCustomDateChange:zl,resetTimeFilter:jl,applyCustomRange:Ml}=fr("all"),ba=()=>{Y.page=1,$()},Bl=()=>ql(ba),Hl=()=>zl(ba);function xa(t){const e={...t};if(e.prescription_id===""||e.prescription_id===void 0?delete e.prescription_id:e.prescription_id=Number(e.prescription_id),e.fulfillment_status===""||e.fulfillment_status===void 0||e.fulfillment_status===null?delete e.fulfillment_status:e.fulfillment_status=Number(e.fulfillment_status),e.prescription_audit_status===""||e.prescription_audit_status===void 0||e.prescription_audit_status===null?delete e.prescription_audit_status:e.prescription_audit_status=Number(e.prescription_audit_status),e.payment_slip_audit_status===""||e.payment_slip_audit_status===void 0||e.payment_slip_audit_status===null?delete e.payment_slip_audit_status:e.payment_slip_audit_status=Number(e.payment_slip_audit_status),(!e.supply_mode||e.supply_mode==="")&&delete e.supply_mode,e.doctor_id===""||e.doctor_id===void 0||e.doctor_id===null?delete e.doctor_id:e.doctor_id=Number(e.doctor_id),e.assistant_id===""||e.assistant_id===void 0||e.assistant_id===null?delete e.assistant_id:e.assistant_id=Number(e.assistant_id),e.assistant_dept_id===""||e.assistant_dept_id===void 0||e.assistant_dept_id===null?delete e.assistant_dept_id:e.assistant_dept_id=Number(e.assistant_dept_id),e.order_no||delete e.order_no,String(e.patient_keyword||"").trim()||delete e.patient_keyword,e.audit_admin_id===""||e.audit_admin_id===void 0||e.audit_admin_id===null?delete e.audit_admin_id:e.audit_admin_id=Number(e.audit_admin_id),String(e.express_keyword||"").trim()||delete e.express_keyword,(!e.express_company||e.express_company==="")&&delete e.express_company,e.service_channel===""||e.service_channel===void 0||e.service_channel===null?delete e.service_channel:(e.service_channel=String(e.service_channel).trim(),e.service_channel===""&&delete e.service_channel),e.has_aux_formula===""||e.has_aux_formula===void 0||e.has_aux_formula===null?delete e.has_aux_formula:e.has_aux_formula=Number(e.has_aux_formula),Number(e.exclude_fulfillment_cancelled)!==1&&delete e.exclude_fulfillment_cancelled,!String(e.start_time||"").trim()||!String(e.end_time||"").trim())delete e.start_time,delete e.end_time;else{const s=String(e.start_time||"").trim(),i=String(e.end_time||"").trim();/^\d{4}-\d{2}-\d{2}$/.test(s)&&/^\d{4}-\d{2}-\d{2}$/.test(i)&&(e.start_time=`${s} 00:00:00`,e.end_time=`${i} 23:59:59`)}return e}async function Wl(t){const[e,s]=ga(),i=xa({...t,start_time:e,end_time:s});return Lr(i)}const Kl=R(()=>{const[t,e]=ga();return xa({...v,start_time:t,end_time:e})}),{pager:Y,getLists:$,resetPage:W,resetParams:Gl}=oi({fetchFun:Wl,params:v});ia(()=>{var t;return(t=Y.extend)==null?void 0:t.audit_admin_options},t=>{Array.isArray(t)&&(ma.value=t.map(e=>{if(e==null||typeof e!="object")return null;const s=e,i=Number(s.id),o=String(s.name??"").trim();return!Number.isFinite(i)||i<=0||o===""?null:{id:i,name:o}}).filter(e=>e!=null))},{immediate:!0});function Ql(){const t=ml.query,e=p=>{const k=p!=null?String(p).trim():"";return k?k.length>=10?k.slice(0,10):k:""},s=e(t.start_time),i=e(t.end_time);s&&i&&Ml(s,i);const o=t.assistant_dept_id;if(o!=null&&String(o)!==""){const p=Number(o);Number.isFinite(p)&&p>0&&(v.assistant_dept_id=p)}const d=t.assistant_id;if(d!=null&&String(d)!==""){const p=Number(d);Number.isFinite(p)&&p>0&&(v.assistant_id=p)}}const ka=R(()=>{const t=v.assistant_dept_id;if(t===""||t==null)return we.value;const e=Number(t);if(!Number.isFinite(e))return we.value;const s=new Set(Sl(e,st.value));return we.value.filter(i=>{const o=i.dept_ids;return!Array.isArray(o)||o.length===0?!1:o.map(Number).some(d=>s.has(d))})});function Jl(){const t=v.assistant_id;if(t!==""&&t!=null){const e=Number(t);ka.value.some(i=>Number(i.id)===e)||(v.assistant_id="")}W()}const ie=R(()=>{const t=Y.extend,e=(t==null?void 0:t.stats_order_amount)??(t==null?void 0:t.today_order_amount),s=(t==null?void 0:t.stats_linked_pay_amount)??(t==null?void 0:t.today_linked_pay_amount),i=ee=>{const X=Number(ee);return Number.isFinite(X)?Math.round(X*100)/100:0},o=ee=>ee.toFixed(2),d=(t==null?void 0:t.stats_order_amount_not_cancelled)!==void 0&&(t==null?void 0:t.stats_order_amount_cancelled)!==void 0,p=(t==null?void 0:t.stats_linked_pay_amount_not_cancelled)!==void 0&&(t==null?void 0:t.stats_linked_pay_amount_cancelled)!==void 0,k=i(d?t==null?void 0:t.stats_order_amount_not_cancelled:e),J=d?i(t==null?void 0:t.stats_order_amount_cancelled):0,x=i(p?t==null?void 0:t.stats_linked_pay_amount_not_cancelled:s),Re=p?i(t==null?void 0:t.stats_linked_pay_amount_cancelled):0,G=(t==null?void 0:t.stats_order_amount_performance)!==void 0?i(t==null?void 0:t.stats_order_amount_performance):k,P=(t==null?void 0:t.stats_linked_pay_amount_performance)!==void 0?i(t==null?void 0:t.stats_linked_pay_amount_performance):x,A=String((t==null?void 0:t.stats_time_start)??"").trim(),Vt=String((t==null?void 0:t.stats_time_end)??"").trim(),Xe=A&&Vt?`统计时间:${A} ~ ${Vt}`:"统计时间:—",Ye=String((t==null?void 0:t.stats_scope)??"restricted");let he="统计口径:与当前列表数据可见范围一致";Ye==="all"?he="统计口径:支付单审核白名单角色,按全量订单;与下方筛选项(医生/医助/医助部门/患者等,不含「创建时间」)一致":Ye==="assistant"?he="统计口径:仅计诊单医助为本人且满足下方其它筛选项的订单":Ye==="own_rx"&&(he="统计口径:本人创建的订单 + 关联处方开方人为本人的订单(含医助代建);与下方筛选项(不含「创建时间」)一致");const Ee=Ue.value==="all"?"全部":Ue.value==="today"?"今日":"区间";return{order:i(e),pay:i(s),orderStr:o(i(e)),payStr:o(i(s)),orderNotCancelledStr:o(k),orderCancelledStr:o(J),payNotCancelledStr:o(x),payCancelledStr:o(Re),orderPerformanceStr:o(G),payPerformanceStr:o(P),orderHeading:`${Ee}业绩(业务订单额)`,payHeading:`${Ee}业绩(关联实付)`,periodLine:Xe,scopeHint:he,orderSplitHint:"业绩 = 排除履约已取消(4)、拒收(9)、退款(10)后的订单金额;下方为合计与排除项明细"}}),rt=R(()=>{const t=Y.extend,e=p=>{const k=Number(p);return!Number.isFinite(k)||k<0?0:Math.trunc(k)},s=e(t==null?void 0:t.focus_pending_rx_count),i=e(t==null?void 0:t.focus_pending_pay_count),o=e(t==null?void 0:t.focus_pending_ship_count),d=e(t==null?void 0:t.focus_risk_count);return{pendingRx:s,pendingPay:i,pendingShip:o,risk:d}});function Ut(t,e){const s=Number(e==null?void 0:e.prescription_audit_status),i=Number(e==null?void 0:e.payment_slip_audit_status),o=Number(e==null?void 0:e.fulfillment_status);return t==="rx"&&s===0||t==="pay"&&s===1&&i===0||t==="fulfillment"&&o===2?"po-status-tag is-focus":t==="rx"&&s===2||t==="pay"&&i===2||t==="fulfillment"&&o===4?"po-status-tag is-risk":"po-status-tag"}function Xl({row:t}){const e=Number(t==null?void 0:t.prescription_audit_status),s=Number(t==null?void 0:t.payment_slip_audit_status),i=Number(t==null?void 0:t.fulfillment_status),o=da(t==null?void 0:t.recipient_phone,t==null?void 0:t.prescription_phone);return e===2||s===2||o?"po-row-risk":e===0||e===1&&s===0||i===2?"po-row-focus":i===3||i===6?"po-row-done":""}ia(tt,t=>{t||v.prescription_audit_status===""||v.prescription_audit_status===void 0||(v.prescription_audit_status="",v.exclude_fulfillment_cancelled=0,W())},{immediate:!0});function Yl(){te.value="",jl(),v.order_no="",v.prescription_id="",v.patient_keyword="",v.express_keyword="",v.express_company="",v.doctor_id="",v.assistant_id="",v.assistant_dept_id="",v.fulfillment_status="",v.prescription_audit_status="",v.payment_slip_audit_status="",v.supply_mode="",v.service_channel="",v.has_aux_formula="",v.audit_admin_id="",v.exclude_fulfillment_cancelled=0,Gl()}function ha(t){return t===1?"已通过":t===2?"已驳回":"待审核"}function wa(t){return t===1?"success":t===2?"danger":"info"}function Va(){const t=_e.userInfo;return t?Number(t.root)===1?!0:(Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[]).some(s=>_a.includes(s)):!1}function Sa(t){var s;const e=Number((s=_e.userInfo)==null?void 0:s.id);return e>0&&Number(t.creator_id)===e}function it(t){return Number(t.prescription_audit_status)===1&&Number(t.payment_slip_audit_status)===1}function Ca(t){const e=Number(t.fulfillment_status);return e===3||e===4||Sa(t)&&it(t)&&!Va()||Pt(t)?!1:e===1||e===2}function Zl(t){const e=Number(t.fulfillment_status);return e===3||e===4||e===6?!1:Number(t.prescription_audit_status)===0}function es(t){const e=Number(t.fulfillment_status);return e===3||e===4?!1:Number(t.prescription_audit_status)===1&&Number(t.payment_slip_audit_status)===0}function ts(t){if(Pt(t))return!1;const e=Number(t.fulfillment_status);if(e===3||e===4||e===6)return!1;const s=Number(t.prescription_audit_status),i=Number(t.payment_slip_audit_status);return(s===1||s===2)&&i===0}function as(t){const e=Number(t.fulfillment_status);if(e===3||e===4||e===6)return!1;const s=Number(t.prescription_audit_status),i=Number(t.payment_slip_audit_status);return s===1&&(i===1||i===2)}function ls(t){return Pt(t)?!1:Number(t.fulfillment_status)===1}function Ft(t){return Number(t.fulfillment_status)===2&&it(t)}const ss=R(()=>{const t=_e.perms||[];return t.includes("*")||t.includes("tcm.prescriptionOrder/setShipMode")});function Q(t){return String(t||"").toLowerCase()==="direct"?"direct":"gancao"}function ns(t){return Q(t)==="direct"?"洛阳药房":"甘草药房"}function Na(t){return Pt(t)}function Oa(t){const e=Number(t.fulfillment_status);return e!==3&&e!==4&&!Na(t)}const Lt=f(!1);function It(t,e){const s=Number(t),i=Number(e);return s>0&&s===i}const rs=R(()=>Q(H.ship_mode)==="direct"?"洛阳药房直发":"甘草药房直发");async function is(t){const e=D.value;if(!(e!=null&&e.id))return;const s=Q(t),i=Q(e.ship_mode);if(s!==i){if(!Oa(e)){w.msgWarning("当前订单状态不可修改发货类型");return}Lt.value=!0;try{await Ir({id:e.id,ship_mode:s}),D.value&&(D.value.ship_mode=s),ke.value&&It(Ne.value,e.id)&&(H.ship_mode=s),await dt(),w.msgSuccess("发货类型已保存"),$()}catch{}finally{Lt.value=!1}}}async function os(){await dt(),$()}function qt(t){const e=Number(t.fulfillment_status);if(e!==5&&e!==6)return!1;const s=Math.round((Number(t.amount)||0)*100)/100;return Math.round((Number(t.linked_pay_paid_total)||0)*100)/100{var t;return((t=M.value)==null?void 0:t.detail)??null}),ds=R(()=>{var e;const t=(e=D.value)==null?void 0:e.prescription;return t&&typeof t=="object"?t:null}),Ta=R(()=>`${c.dose_unit||"剂"}数`),Fe=f(!1),jt=f(!1),ot=f(),de=me({id:0,amount:void 0}),ps={amount:[{required:!0,message:"请输入订单金额",trigger:"blur"},{validator:(t,e,s)=>{const i=Number(e);if(!Number.isFinite(i)||i<0){s(new Error("订单金额不能为负数"));return}s()},trigger:"blur"}]},Ve=f(null),ut=f(!1),Le=R(()=>Or(Ve.value)),Ie=f(!1),Mt=f(!1),Bt=f(),ae=me({patient_name:"",phone:""}),cs={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],phone:[{required:!0,message:"请输入手机号",trigger:"blur"}]};function ms(){const t=ds.value,e=D.value;if(!t||!(e!=null&&e.id)||!e.prescription_id){w.msgWarning("无处方数据");return}ae.patient_name=String(t.patient_name??"").trim(),ae.phone=String(t.phone??"").trim(),Ie.value=!0,et(()=>{var s;return(s=Bt.value)==null?void 0:s.clearValidate()})}function _s(){ae.patient_name="",ae.phone=""}function fs(){var t;de.id=0,de.amount=void 0,(t=ot.value)==null||t.clearValidate()}function vs(){const t=D.value;if(!rl(t)){w.msgWarning("当前订单状态不允许修改金额");return}de.id=Number(t==null?void 0:t.id)||0;const e=Number(t==null?void 0:t.amount);de.amount=Number.isFinite(e)?e:void 0,Fe.value=!0,et(()=>{var s;return(s=ot.value)==null?void 0:s.clearValidate()})}async function dt(){var t;await((t=M.value)==null?void 0:t.refresh())}async function ys(){var s;const t=Bt.value;if(!t)return;try{await t.validate()}catch{return}const e=(s=D.value)==null?void 0:s.id;if(e){Mt.value=!0;try{await qr({id:e,patient_name:ae.patient_name.trim(),phone:ae.phone.trim()}),Ie.value=!1,await dt()}catch(i){console.error(i)}finally{Mt.value=!1}}}async function Da(){const t=ot.value;if(!t)return;try{await t.validate()}catch{return}if(!rl(D.value)){w.msgWarning("当前订单状态不允许修改金额");return}const e=de.id;jt.value=!0;try{await zr({id:e,amount:Number(de.amount)}),w.msgSuccess("修改成功"),Fe.value=!1,await dt(),$()}catch{}finally{jt.value=!1}}async function gs(t){var e;await((e=M.value)==null?void 0:e.open(t))}const be=f(!1),Ht=f(!1),Wt=f(!1),F=f(0),le=f(null),se=f(!1),pt=f(""),bs=R(()=>["请核对收货信息,便于发货与物流联系。","按需填写服务与物流,并选择本诊单下需要关联的支付单。","确认费用类别与订单金额;保存前请对照定金门槛是否已满足。"][F.value]??""),$a=R(()=>{const t=le.value,e=Pr(t==null?void 0:t.herbs);if(!e.length)return"暂无药材明细";const s=e.map(i=>`${i.name} ${i.dosage}g`).join("、");return s.length>120?`${s.slice(0,120)}…`:s}),xs=["recipient_name","recipient_phone","region","shipping_address"],xe=f(),c=me({id:0,prescription_id:0,diagnosis_id:0,recipient_name:"",recipient_phone:"",region:[],shipping_address:"",is_follow_up:0,medication_days:void 0,dose_count:1,dose_unit:"剂",prev_staff:"",service_channel:"",service_package:[],express_company:"auto",tracking_number:"",fee_type:3,amount:0,remark_extra:"",remark_assistant:"",pay_order_ids:[],internal_cost:void 0,assistant_id:0,diagnosis_creator_id:0,diagnosis_creator_name:"",diagnosis_creator_dept_path:""}),ks=R(()=>Ar(Tt.value,c.service_package)),Ua=R(()=>{const t=String(c.diagnosis_creator_dept_path||"").trim();return t?t.split(";").map(e=>e.trim()).filter(Boolean).map(e=>e.includes(" / ")?e.split(" / ").map(s=>s.trim()).filter(Boolean):e.split("/").map(s=>s.trim()).filter(Boolean)).filter(e=>e.length>0):[]}),qe=f([]),Kt=f(!1),I=f(0);function ct(t){return{1:"挂号费",2:"问诊费",3:"药品费用",4:"首付",5:"尾款",6:"其他"}[Number(t)]||"未知"}const Gt=R(()=>{const t=new Set(c.pay_order_ids.map(s=>Number(s)));let e=0;for(const s of qe.value)t.has(Number(s.id))&&(e+=Number(s.amount)||0);return Math.round(e*100)/100}),hs=R(()=>{const t=I.value;return t>0?Math.round(t*100)/100:0});async function ws(t,e){var s,i;if(!t){qe.value=[];return}try{Kt.value=!0;const o=await dl({diagnosis_id:t,...e?{prescription_order_id:e}:{}}),d=(o==null?void 0:o.lists)??((s=o==null?void 0:o.data)==null?void 0:s.lists)??[];qe.value=Array.isArray(d)?d:[];const p=Number((o==null?void 0:o.deposit_min_amount)??((i=o==null?void 0:o.data)==null?void 0:i.deposit_min_amount));!Number.isNaN(p)&&p>=0&&(I.value=p)}catch{qe.value=[]}finally{Kt.value=!1}}const Vs=R(()=>{const t={recipient_name:[{required:!0,message:"请输入收货人",trigger:"blur"}],recipient_phone:[{required:!0,message:"请输入收货手机",trigger:"blur"}],region:[{required:!0,message:"请选择省/市/区",trigger:"change",type:"array"}],shipping_address:[{required:!0,message:"请输入收货地址",trigger:"blur"}],fee_type:[{required:!0,message:"请选择费用类别",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"},{validator:(e,s,i)=>{const o=I.value,d=Number(s);if(o>0&&(!Number.isFinite(d)||d0){const e=`已开启关联支付门槛(¥${j(I.value)}),请至少选择一笔支付单`;t.pay_order_ids=[{type:"array",required:!0,min:1,message:e,trigger:"change"}]}return t});function Ss(){var t;F.value=0,le.value=null,se.value=!1,pt.value="",(t=xe.value)==null||t.clearValidate()}function Cs(){F.value>0&&(F.value-=1)}async function Ns(){const t=xe.value;if(t)try{F.value===0?await t.validateField([...xs]):F.value===1&&I.value>0&&await t.validateField(["pay_order_ids"]),F.value<2&&(F.value+=1)}catch{}}async function Os(t){if(!Ca(t)){Sa(t)&&it(t)&&!Va()&&w.msgWarning("处方与支付单均已审核通过,创建人不可再编辑");return}F.value=0,le.value=null,be.value=!0,Ht.value=!0;try{const e=await At({id:t.id}),s=(e==null?void 0:e.data)??e;if(!s){w.msgError("加载数据结构异常"),be.value=!1;return}const i=s.prescription;i&&typeof i=="object"?le.value=i:Number(s.prescription_id)>0?le.value={id:Number(s.prescription_id),sn:"",patient_name:String(s.recipient_name||""),herbs:[]}:le.value=null,c.id=s.id,c.prescription_id=Number(s.prescription_id)||0,c.diagnosis_id=Number(s.diagnosis_id)||0,c.assistant_id=Number(s.assistant_id)||0,c.diagnosis_creator_id=Number(s.diagnosis_creator_id)||0,c.diagnosis_creator_name=s.diagnosis_creator_name!=null&&s.diagnosis_creator_name!==""?String(s.diagnosis_creator_name):"",c.diagnosis_creator_dept_path=s.diagnosis_creator_dept_path!=null&&s.diagnosis_creator_dept_path!==""?String(s.diagnosis_creator_dept_path):"",c.recipient_name=s.recipient_name||"",c.recipient_phone=s.recipient_phone||"";const o=s.shipping_province||"",d=s.shipping_city||"",p=s.shipping_district||"";o||d||p?c.region=[o,d,p].filter(A=>A!==""):c.region=[],c.shipping_address=s.shipping_address||"",c.is_follow_up=s.is_follow_up?1:0,c.medication_days=s.medication_days>0?s.medication_days:void 0,c.dose_count=s.dose_count>0?s.dose_count:1,c.dose_unit=s.dose_unit||"剂",c.prev_staff=s.prev_staff||"",c.service_channel=s.service_channel||"",c.service_package=Rr(s.service_package),c.express_company=String(s.express_company||"auto")||"auto",c.tracking_number=s.tracking_number||"",c.fee_type=Number(s.fee_type)||3,I.value=Number(s.deposit_min_amount)||0;let k=Number(s.amount)||0;const J=Math.round((Number(s.linked_pay_paid_total)||0)*100)/100,x=I.value;if(x>0){const A=Math.round(x*100)/100;kNumber(A)).filter(A=>!Number.isNaN(A)):[],c.internal_cost=s.internal_cost!=null&&s.internal_cost!==""?Number(s.internal_cost):void 0;const G=String(s.gancao_reciperl_order_no||"").trim(),P=Number(s.gancao_submit_time||0);se.value=G!==""||P>0,pt.value=G||"",await ws(c.diagnosis_id,c.id),et(()=>{var A;(A=xe.value)==null||A.clearValidate()})}catch(e){w.msgError((e==null?void 0:e.message)||"加载异常"),be.value=!1}finally{Ht.value=!1}}async function Ps(){if(!xe.value)return;const t=se.value;if(!(!t&&F.value!==2)){t?xe.value.clearValidate():await xe.value.validate(),Wt.value=!0;try{const e={id:c.id,recipient_name:c.recipient_name,recipient_phone:c.recipient_phone,shipping_address:c.shipping_address,is_follow_up:c.is_follow_up,prev_staff:c.prev_staff||"",service_channel:c.service_channel||"",service_package:Array.isArray(c.service_package)?c.service_package.join(","):"",express_company:c.express_company||"auto",fee_type:c.fee_type,amount:c.amount,remark_extra:c.remark_extra||"",remark_assistant:c.remark_assistant||"",medication_days:c.medication_days!=null&&String(c.medication_days).trim()!==""?c.medication_days:"",dose_unit:c.dose_unit||"剂",dose_count:c.dose_count||1,internal_cost:c.internal_cost!=null&&String(c.internal_cost).trim()!==""?c.internal_cost:""};c.region&&c.region.length>0?(e.shipping_province=c.region[0]||"",e.shipping_city=c.region[1]||"",e.shipping_district=c.region[2]||""):(e.shipping_province="",e.shipping_city="",e.shipping_district=""),e.pay_order_ids=[...c.pay_order_ids],await il(e),w.msgSuccess("保存成功"),be.value=!1,$()}catch{}finally{Wt.value=!1}}}const ze=f(!1),Qt=f("prescription"),Jt=f(0),je=f(null),Se=f(""),mt=f(!1),As=R(()=>Qt.value==="prescription"?"处方业务审核":"关联支付单审核");function Fa(t,e){Qt.value=e,Jt.value=t.id,je.value=t,Se.value="",ze.value=!0}async function La(t){var e;if(t==="reject"&&!Se.value.trim()){w.msgError("驳回或阻止时必须填写明确的审核意见");return}mt.value=!0;try{const s={id:Jt.value,action:t,remark:Se.value.trim()};Qt.value==="prescription"?await jr(s):await Mr(s),w.msgSuccess(t==="approve"?"审核通过成功":"已成功驳回该单"),ze.value=!1,$(),await((e=M.value)==null?void 0:e.refreshIfCurrent(Jt.value))}catch{}finally{mt.value=!1}}async function Rs(t){try{await Nt.confirm("确认撤回该业务订单?撤回后状态为「已取消」,未双审通过或双审均驳回等场景下均可安全撤回。","撤回警告",{type:"warning",confirmButtonText:"确定撤回",cancelButtonText:"暂不处理"}),await Br({id:t.id}),w.msgSuccess("撤回成功"),$()}catch{}}const _t=f(0),ft=f(!1),Ce=f(!1),U=f(null);function Xt(t){if(!t)return"0.00";const e=Number(t.m_cost)||0,s=Number(t.proces_cost)||0,i=Number(t.lis_cost)||0;return(e+s+i).toFixed(2)}function Es(t,e){const s=parseFloat(Xt(t))||0,i=Number(e)||0;return i<=0?"—":(s/i*100).toFixed(2)}function Ts(t){return!Array.isArray(t)||t.length===0?"0":t.reduce((s,i)=>s+(Number(i.quantity)||0),0).toFixed(0)}async function Ds(){if(!c.id){w.msgError("请先保存订单");return}Ce.value=!0;try{const t=await ol({id:c.id,dose_count:c.dose_count||1,medication_days:c.medication_days||void 0}),e=(t==null?void 0:t.data)??t;e&&e.success&&(U.value=e,ft.value=!0,w.msgSuccess("预下单测试成功"))}catch{}finally{Ce.value=!1}}async function $s(){var t,e;if(!((t=D.value)!=null&&t.id)){w.msgError("订单数据不存在");return}Ce.value=!0;try{const s=await ol({id:D.value.id,dose_count:D.value.dose_count||1,medication_days:D.value.medication_days||void 0}),i=(s==null?void 0:s.data)??s;if(i&&i.success&&(U.value=i,ft.value=!0,Rt()&&i.fee)){const o=Xt(i.fee);try{const d=await At({id:D.value.id}),p=(d==null?void 0:d.data)??d;if(p!=null&&p.id){const k=p.service_package,J=Array.isArray(k)?k.join(","):String(k||"");await il({id:p.id,recipient_name:p.recipient_name||"",recipient_phone:p.recipient_phone||"",shipping_province:p.shipping_province||"",shipping_city:p.shipping_city||"",shipping_district:p.shipping_district||"",shipping_address:p.shipping_address||"",is_follow_up:p.is_follow_up?1:0,medication_days:p.medication_days!=null&&String(p.medication_days).trim()!==""?p.medication_days:"",dose_unit:p.dose_unit||"剂",dose_count:p.dose_count>0?p.dose_count:1,prev_staff:p.prev_staff||"",service_channel:p.service_channel||"",service_package:J,express_company:p.express_company||"auto",tracking_number:p.tracking_number||"",fee_type:Number(p.fee_type)||3,amount:Number(p.amount)||0,remark_extra:p.remark_extra||"",remark_assistant:p.remark_assistant||"",internal_cost:o,pay_order_ids:Array.isArray(p.pay_order_ids)?p.pay_order_ids:[]}),w.msgSuccess("内部成本已按预报价总计更新"),$(),await((e=M.value)==null?void 0:e.refreshIfCurrent(p.id))}}catch{}}}catch{}finally{Ce.value=!1}}async function Ia(t){var i;const s=Q(t.ship_mode)==="direct"?"洛阳药房":"甘草药房";try{await Nt.confirm(`将把本单关联处方提交至${s},提交成功后不可切换发货药房。确定继续?`,"上传药房",{type:"warning",confirmButtonText:"确定上传",cancelButtonText:"取消"}),_t.value=t.id;const o=await Hr({id:t.id}),d=(o==null?void 0:o.data)??o,p=(d==null?void 0:d.pharmacy_order_no)!=null?String(d.pharmacy_order_no):(d==null?void 0:d.recipel_order_no)!=null?String(d.recipel_order_no):"";w.msgSuccess(p?`上传成功,${s}单号:${p}`:"上传成功"),$(),await((i=M.value)==null?void 0:i.refreshIfCurrent(t.id))}catch{}finally{_t.value=0}}gn(async()=>{await Ol(),await Pl(),await Cl(),Ql(),await et(),$()});const Me=f(!1),vt=f(!1),Yt=f(0),pe=me({express_company:"auto",tracking_number:""});function Us(t){if(!Ra(t)){w.msgWarning("处方审核和支付单审核均通过后,才可填写或修改快递单号");return}Yt.value=t.id,pe.express_company=String(t.express_company||"auto")||"auto",pe.tracking_number=String(t.tracking_number||""),Me.value=!0}async function qa(){var t;if(!pe.tracking_number.trim()){w.msgError("请填写快递单号");return}vt.value=!0;try{await Wr({id:Yt.value,express_company:pe.express_company||"auto",tracking_number:pe.tracking_number.trim()}),w.msgSuccess("快递单号已保存"),Me.value=!1,$(),await((t=M.value)==null?void 0:t.refreshIfCurrent(Yt.value))}catch{}finally{vt.value=!1}}const ke=f(!1),yt=f(!1),Ne=f(0),H=me({ship_mode:"gancao",express_company:"auto",tracking_number:""});function Fs(t){var e;return It((e=D.value)==null?void 0:e.id,t.id)?Q(D.value.ship_mode):Q(t.ship_mode)}function za(t){if(!Ft(t)){w.msgWarning("仅处方审核和支付单审核均通过的履约中订单可填写单号并发货");return}Ne.value=Number(t.id),H.ship_mode=Fs(t),H.express_company=String(t.express_company||"auto")||"auto",H.tracking_number=String(t.tracking_number||""),ke.value=!0}ia(()=>{var t;return(t=D.value)==null?void 0:t.ship_mode},t=>{var e;!ke.value||!Ne.value||!It((e=D.value)==null?void 0:e.id,Ne.value)||(H.ship_mode=Q(t))});async function ja(){var t;if(!H.tracking_number.trim()){w.msgError("请先填写快递单号再确认发货");return}yt.value=!0;try{await Kr({id:Ne.value,ship_mode:Q(H.ship_mode),express_company:H.express_company||"auto",tracking_number:H.tracking_number.trim()}),w.msgSuccess("确认发货成功,订单已进入「已发货」状态"),ke.value=!1,$(),await((t=M.value)==null?void 0:t.refreshIfCurrent(Ne.value))}catch{}finally{yt.value=!1}}const Ls=[{value:3,label:"已完成"},{value:7,label:"进行中"},{value:8,label:"暂不制药"},{value:9,label:"拒收"},{value:10,label:"退款"},{value:11,label:"保留药方"},{value:12,label:"制药缓发"}],Oe=f(!1),Pe=f(0),ve=f(3),Be=f(!1),He=f(!1),oe=f([]),Zt=f(),Z=me({reason:"",refund_amount:void 0}),ye=f(0),Is=R(()=>ea(oe.value)),qs=R(()=>({refund_amount:[{required:!0,message:"请输入退款金额",trigger:"change"},{validator:(t,e,s)=>{const i=Number(e),o=ye.value;if(!Number.isFinite(i)||i<=0){s(new Error("退款金额须大于 0"));return}if(o>0&&i>o+.009){s(new Error(`不能超过可退上限 ¥${j(o)}`));return}s()},trigger:"change"}],reason:[{required:!0,message:"请填写退款原因",trigger:"blur"}]}));let We=0;function zs(){var t;Pe.value=0,oe.value=[],He.value=!1,Z.reason="",Z.refund_amount=void 0,ye.value=0,(t=Zt.value)==null||t.clearValidate(),We+=1,Ve.value=null,ut.value=!1}async function js(t){if(!t){oe.value=[];return}He.value=!0;try{const e=await At({id:t}),s=(e==null?void 0:e.data)??e??null,i=s==null?void 0:s.linked_pay_orders;oe.value=Array.isArray(i)?i:[];const o=ea(oe.value),d=Number(s==null?void 0:s.paid)||0;ye.value=o>0?o:d,Z.refund_amount=ye.value}catch{oe.value=[],ye.value=0}finally{He.value=!1}}async function Ms(t){const e=Number(t.id),s=String(t.tracking_number||"").trim();if(!e||!s)return;const i=++We;ut.value=!0,Ve.value=null;try{const o=String(t.recipient_phone||"").replace(/\D/g,""),d={id:e,express_company:String(t.express_company||"auto")||"auto"};o.length>=4&&(d.phone_tail=o);const p=await ti(d);if(i!==We||Pe.value!==e)return;Ve.value=Er(p,s,e)}catch{if(i!==We||Pe.value!==e)return;Ve.value=null}finally{i===We&&Pe.value===e&&(ut.value=!1)}}async function Bs(){var e,s,i;const t=Pe.value;if(t){if(ve.value===10){if(!await((e=Zt.value)==null?void 0:e.validate().catch(()=>!1)))return;Be.value=!0;try{await ul({id:t,reason:Z.reason.trim(),refund_amount:Number(Z.refund_amount)}),w.msgSuccess("退款成功"),Oe.value=!1,$(),await((s=M.value)==null?void 0:s.refreshIfCurrent(t))}catch{}finally{Be.value=!1}return}Be.value=!0;try{await Gr({id:t,fulfillment_status:ve.value}),w.msgSuccess("订单状态已更新"),Oe.value=!1,$(),await((i=M.value)==null?void 0:i.refreshIfCurrent(t))}catch{}finally{Be.value=!1}}}function ea(t){let e=0;for(const s of t||[]){const i=Number(s==null?void 0:s.status);(i===2||i===5)&&(e+=Number(s==null?void 0:s.amount)||0)}return Math.round(e*100)/100}const Ke=f(!1),ta=f(0),aa=f(!1),la=f(),ne=f(0),K=me({reason:"",refund_amount:void 0}),Hs=R(()=>{const t=j(ne.value),e=j(K.refund_amount);return Number(K.refund_amount)>=ne.value-.009?`确认全额退款 ¥${t}:关联收款将标记已退款,本单已付清零,且不可撤销。`:`确认部分退款 ¥${e}(可退上限 ¥${t}):将扣减本单已付,并按金额依次标记关联收款已退款。`}),Ws=R(()=>({refund_amount:[{required:!0,message:"请输入退款金额",trigger:"change"},{validator:(t,e,s)=>{const i=Number(e),o=ne.value;if(!Number.isFinite(i)||i<=0){s(new Error("退款金额须大于 0"));return}if(o>0&&i>o+.009){s(new Error(`不能超过可退上限 ¥${j(o)}`));return}s()},trigger:"change"}],reason:[{required:!0,message:"请填写退款原因",trigger:"blur"}]}));function Ks(){var t;ta.value=0,K.reason="",K.refund_amount=void 0,ne.value=0,(t=la.value)==null||t.clearValidate()}async function Ma(t){ta.value=t.id,K.reason="",K.refund_amount=void 0,ne.value=0,Ke.value=!0;try{const e=await At({id:t.id}),s=(e==null?void 0:e.data)??e??null,i=Array.isArray(s==null?void 0:s.linked_pay_orders)?s.linked_pay_orders:[],o=ea(i),d=Number(s==null?void 0:s.paid)||0;ne.value=o>0?o:d,K.refund_amount=ne.value}catch{ne.value=0}}async function Gs(){var s,i;const t=ta.value;if(!(!t||!await((s=la.value)==null?void 0:s.validate().catch(()=>!1)))){aa.value=!0;try{await ul({id:t,reason:K.reason.trim(),refund_amount:Number(K.refund_amount)}),w.msgSuccess("退款成功"),Ke.value=!1,$(),await((i=M.value)==null?void 0:i.refreshIfCurrent(t))}catch{}finally{aa.value=!1}}}const Ge=f(!1),gt=f(!1),Qe=f(0),bt=f(),sa=f(!1),xt=f([]),Qs=R(()=>V.add_mode==="completion_only"?"不创建或关联支付单,仅提交完单申请,由审核人员在支付审核时处理。":V.add_mode==="create_express"?"通过快递代收创建新支付单(流转同付呗),或关联已存在但未绑定的支付单。":"可以通过付呗创建新支付单,或关联已存在但未绑定的支付单。"),V=me({add_mode:"create",order_type:3,pay_amount:void 0,pay_remark:"",link_pay_order_ids:[],completion_request:0}),Js=R(()=>{const t={add_mode:[{required:!0,message:"请选择添加方式",trigger:"change"}]};return V.add_mode==="create"||V.add_mode==="create_express"?(t.order_type=[{required:!0,message:"请选择费用类别",trigger:"change"}],t.pay_amount=[{validator:(e,s,i)=>{if(s==null||s===""){i(new Error("请输入支付金额"));return}const o=Number(s);!Number.isFinite(o)||o<0?i(new Error("金额不能小于 0")):i()},trigger:"blur"}]):V.add_mode==="link"&&(t.link_pay_order_ids=[{required:!0,message:"请至少选择一个支付单",trigger:"change",validator:(e,s,i)=>{!Array.isArray(s)||s.length===0?i(new Error("请至少选择一个支付单")):i()}}]),t});async function Xs(t,e=[]){var s;if(!t){xt.value=[];return}try{sa.value=!0;const i=await dl({diagnosis_id:t}),o=(i==null?void 0:i.lists)??((s=i==null?void 0:i.data)==null?void 0:s.lists)??[],d=Array.isArray(o)?o.filter(p=>!e.includes(p.id)):[];xt.value=d}catch{xt.value=[]}finally{sa.value=!1}}function Ba(t){var i,o;if(!qt(t)){w.msgWarning("订单总金额与已付金额一致,无需补齐支付单");return}Qe.value=t.id,V.add_mode="create",V.order_type=3,V.pay_amount=void 0,V.pay_remark="",V.link_pay_order_ids=[],V.completion_request=0,Ge.value=!0;const e=t.diagnosis_id||((i=D.value)==null?void 0:i.diagnosis_id),s=t.pay_order_ids||((o=D.value)==null?void 0:o.pay_order_ids)||[];e&&Xs(e,s)}async function Ys(){var t;if(bt.value){await bt.value.validate(),gt.value=!0;try{if(V.add_mode==="completion_only")await Qr({id:Qe.value}),w.msgSuccess("完单申请已提交,请等待支付审核");else if(V.add_mode==="create"||V.add_mode==="create_express")await Jr({id:Qe.value,order_type:V.order_type,pay_amount:V.pay_amount,pay_remark:V.pay_remark||"",completion_request:V.completion_request,pay_create_type:V.add_mode==="create_express"?"express_cod":"fubei"}),w.msgSuccess("支付单已新增,请等待审核");else{const e=V.link_pay_order_ids;if(e.length===0){w.msgError("请至少选择一个支付单");return}await Xr({id:Qe.value,pay_order_ids:e,completion_request:V.completion_request}),w.msgSuccess(`已关联 ${e.length} 个支付单,请等待审核`)}Ge.value=!1,$(),await((t=M.value)==null?void 0:t.refreshIfCurrent(Qe.value))}catch{}finally{gt.value=!1}}}function Ha(t){Pe.value=t.id,ve.value=3,Z.reason="",Z.refund_amount=void 0,oe.value=[],Ve.value=null,Oe.value=!0,js(t.id),String(t.tracking_number||"").trim()&&Ms(t)}async function Zs(t){var e;try{await Nt.confirm("确认撤回处方审核?撤回后将重置为「待审核」状态。","撤回处方审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await Yr({id:t.id}),w.msgSuccess("处方审核已撤回"),$(),await((e=M.value)==null?void 0:e.refreshIfCurrent(t.id))}catch{}}async function en(t){var e;try{await Nt.confirm("确认撤回支付单审核?撤回后将重置为「待审核」状态。","撤回支付单审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await Zr({id:t.id}),w.msgSuccess("支付单审核已撤回"),$(),await((e=M.value)==null?void 0:e.refreshIfCurrent(t.id))}catch{}}const tn="成都双流甄养堂互联网医院 处方笺",kt=f(!1),ht=f(!1),C=f(null),Je=f(""),wt=f("internal"),Wa=f(null),Ae=f(!1);function Ka(t){if(!t)return"";const e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}function an(t){return t?Ka(t):"—"}function ln(){Qa(c)}function Ga(t){return t.map(e=>`${String(e.name??"").trim()}:${Number(e.dosage)||0}`).sort().join("|")}function sn(t,e){return!t.length||!e.length||t.length!==e.length?!1:Ga(t)===Ga(e)}function nn(t){if(!t||typeof t!="object")return"";const e=t;return String(e.prescription_name??e.library_name??"").trim()}async function rn(t){const e=nn(t.aux_usage);if(e)return e;const i=(Array.isArray(t.herbs)?t.herbs:[]).filter(d=>Tr(d==null?void 0:d.formula_type)==="辅方");if(!i.length)return"";const o=Number(t.creator_id)>0?Number(t.creator_id):0;if(!o)return"";try{const d=await ai({page_no:1,page_size:200,formula_type:"辅方",prescribing_creator_id:o}),p=Array.isArray(d==null?void 0:d.lists)?d.lists:[];for(const k of p){const J=Array.isArray(k==null?void 0:k.herbs)?k.herbs:[];if(sn(i,J))return String((k==null?void 0:k.prescription_name)??"").trim()}}catch{}return""}async function Qa(t){if(!t.prescription_id){w.msgWarning("该订单未关联处方");return}kt.value=!0,ht.value=!0,C.value=null,Je.value="",wt.value="internal";try{const e=await ei({id:t.prescription_id}),s=(e==null?void 0:e.data)??e??null;if(s){const i=t.medication_days,o={...s};i!=null&&String(i).trim()!==""&&(o.medication_days=i),t.order_no&&!o.order_no&&(o.order_no=t.order_no),t.recipient_name&&!o.recipient_name&&(o.recipient_name=t.recipient_name),t.recipient_phone&&!o.recipient_phone&&(o.recipient_phone=t.recipient_phone),t.shipping_address&&!o.shipping_address&&(o.shipping_address=t.shipping_address),t.amount!=null&&o.order_amount==null&&(o.order_amount=t.amount),t.dose_count!=null&&String(t.dose_count).trim()!==""&&Number(t.dose_count)>0&&(o.dose_count=Number(t.dose_count)),t.dose_unit!=null&&String(t.dose_unit).trim()!==""&&(o.dose_unit=String(t.dose_unit));const d=t.linked_appointment;(!o.appointment_id||Number(o.appointment_id)<=0)&&d&&typeof d=="object"&&Number(d.id)>0&&(o.appointment_id=Number(d.id)),C.value=o,Je.value=await rn(o)}else C.value=null,Je.value=""}catch(e){w.msgError((e==null?void 0:e.message)||"加载处方详情失败"),kt.value=!1,Je.value=""}finally{ht.value=!1}}async function on(t){const e=t.querySelectorAll('img[src^="http"]'),s=Array.from(e).map(async i=>{try{const o=await fetch(i.src,{mode:"cors"});if(!o.ok)return;const d=await o.blob(),p=await new Promise((k,J)=>{const x=new FileReader;x.onload=()=>k(x.result),x.onerror=J,x.readAsDataURL(d)});i.src=p}catch{}});await Promise.allSettled(s)}async function Ja(){var e;await et();const t=((e=Wa.value)==null?void 0:e.paperEl)??null;if(!t)throw new Error("未找到处方笺内容");return t.scrollIntoView({behavior:"instant",block:"nearest"}),await on(t),await new Promise(s=>requestAnimationFrame(()=>s(null))),await new Promise(s=>setTimeout(s,250)),pr(t,{scale:2,useCORS:!0,allowTaint:!1,logging:!1,backgroundColor:"#ffffff",windowWidth:t.scrollWidth,windowHeight:t.scrollHeight,width:t.scrollWidth,height:t.scrollHeight,ignoreElements:s=>s instanceof HTMLElement&&s.classList.contains("cf-slip-no-export"),onclone:(s,i)=>{i instanceof HTMLElement&&(i.querySelectorAll(".rx-notice, .rx-notice-text, .rx-notice-meta").forEach(o=>{o.style.lineHeight="1.95",o.style.overflow="visible"}),i.querySelectorAll(".rx-notice").forEach(o=>{o.style.padding="10px 12px"}),i.querySelectorAll(".rx-info-cell, .rx-info-cell .rx-key, .rx-info-cell .rx-val").forEach(o=>{o.style.lineHeight="1.95",o.style.overflow="visible"}),i.querySelectorAll(".rx-info-cell").forEach(o=>{o.style.padding="10px 12px"}),i.querySelectorAll(".rx-herb-cell").forEach(o=>{o.style.lineHeight="2.5"}),i.querySelectorAll(".rx-herbs").forEach(o=>{o.style.rowGap="12px"}),i.querySelectorAll(".rx-text").forEach(o=>{o.style.lineHeight="2.1"}),i.querySelectorAll(".rx-bot-meta-val, .rx-hospital-line, .rx-bot-cell").forEach(o=>{o.style.overflow="visible",o.style.lineHeight="1.85"}),i.querySelectorAll(".rx-hospital-row").forEach(o=>{o.style.paddingTop="12px",o.style.paddingBottom="14px"}))}})}function Xa(){var s;const t=(s=C.value)==null?void 0:s.patient_name;return`处方_${typeof t=="string"&&t.trim()?t.trim().replace(/[\\/:*?"<>|]/g,"_"):"未命名"}_${Date.now()}`}async function un(){if(C.value){Ae.value=!0;try{const t=await Ja(),e=document.createElement("a");e.download=`${Xa()}.png`,e.href=t.toDataURL("image/png"),e.click(),w.msgSuccess("图片已下载")}catch{w.msgError("下载图片失败")}finally{Ae.value=!1}}}async function dn(){if(C.value){Ae.value=!0;try{const t=await Ja(),e=t.toDataURL("image/jpeg",.95),s=new dr({orientation:"portrait",unit:"mm",format:"a4"}),i=210,o=297,d=i,p=t.height*d/t.width;if(p<=o)s.addImage(e,"JPEG",0,0,d,p);else{let k=p,J=0;for(;k>0;)s.addImage(e,"JPEG",0,J,d,p),k-=o,J-=o,k>0&&s.addPage()}s.save(`${Xa()}.pdf`),w.msgSuccess("PDF已下载")}catch{w.msgError("下载PDF失败")}finally{Ae.value=!1}}}return(t,e)=>{const s=xn,i=kn,o=Pn,d=On,p=Rn,k=An,J=En,x=Tn,Re=mr,G=Nn,P=$n,A=Un,Vt=Fn,St=In,Xe=Dn,Ye=cr,he=jn,Ee=zn,ee=Mn,X=Bn,ge=Hn,na=Gn,pn=Kn,L=Jn,Ze=Qn,cn=Xn,mn=er,_n=Zn,fn=tr,Te=ar,Ya=sr,vn=lr,Za=nr,ue=ir,ra=rr,ce=Cn,E=bn("perms");return u(),g("div",ui,[l(s,{class:"!border-none shadow-sm mb-4",shadow:"never"},{default:n(()=>[r("div",di,[tt.value?(u(),g("div",pi,[e[89]||(e[89]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"处方审核",-1)),(u(),g(T,null,z(Ul,a=>r("div",{key:a.value,class:B(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",v.prescription_audit_status===a.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:N=>Ll(a.value)},[r("span",mi,m(a.label),1)],10,ci)),64))])):b("",!0),r("div",_i,[e[90]||(e[90]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"支付单审核",-1)),(u(),g(T,null,z(Fl,a=>r("div",{key:a.value,class:B(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",v.payment_slip_audit_status===a.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:N=>Il(a.value)},[r("span",vi,m(a.label),1)],10,fi)),64))]),r("div",yi,[e[91]||(e[91]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"发货状态",-1)),(u(),g(T,null,z(Al,a=>r("div",{key:"fs-"+String(a.value),class:B(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",v.fulfillment_status===a.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:N=>Rl(a.value)},[r("span",bi,m(a.label),1)],10,gi)),64))]),r("div",xi,[e[92]||(e[92]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"供货方式",-1)),(u(),g(T,null,z(El,a=>r("div",{key:"sm-"+String(a.value),class:B(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",v.supply_mode===a.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:N=>Tl(a.value)},[r("span",hi,m(a.label),1)],10,ki)),64))]),r("div",wi,[e[93]||(e[93]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"快递方式",-1)),(u(),g(T,null,z(Dl,a=>r("div",{key:"ec-"+String(a.value),class:B(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",v.express_company===a.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:N=>$l(a.value)},[r("span",Si,m(a.label),1)],10,Vi)),64))])])]),_:1}),l(s,{class:"!border-none po-filter-card shadow-sm",shadow:"never"},{default:n(()=>[S((u(),g("div",Ci,[r("div",Ni,[e[94]||(e[94]=r("div",{class:"po-stat-deco po-stat-deco--o pointer-events-none absolute -right-6 -top-8 h-28 w-28 rounded-full opacity-40"},null,-1)),r("div",Oi,[r("div",null,[r("div",Pi,[l(i,{size:16,class:"text-sky-500"},{default:n(()=>[l(h(hn))]),_:1}),_(" "+m(ie.value.orderHeading),1)]),r("div",Ai,[r("div",Ri," ¥"+m(ie.value.orderPerformanceStr),1),r("div",Ei,[r("span",null,"合计 ¥"+m(ie.value.orderStr),1),r("span",Ti,"已取消 ¥"+m(ie.value.orderCancelledStr),1)])])]),r("div",Di,[l(i,{size:20},{default:n(()=>[l(h(wn))]),_:1})])]),r("p",$i,m(ie.value.periodLine),1)]),r("div",Ui,[e[95]||(e[95]=r("div",{class:"po-stat-deco po-stat-deco--p pointer-events-none absolute -right-6 -top-8 h-28 w-28 rounded-full opacity-40"},null,-1)),r("div",Fi,[r("div",null,[r("div",Li,[l(i,{size:16,class:"text-emerald-500"},{default:n(()=>[l(h(Vn))]),_:1}),_(" "+m(ie.value.payHeading),1)]),r("div",Ii,[r("div",qi," ¥"+m(ie.value.payPerformanceStr),1),r("div",zi,[r("span",null,"合计 ¥"+m(ie.value.payStr),1),r("span",ji,"已取消 ¥"+m(ie.value.payCancelledStr),1)])])]),r("div",Mi,[l(i,{size:20},{default:n(()=>[l(h(Sn))]),_:1})])]),r("p",Bi,m(ie.value.periodLine),1)])])),[[ce,h(Y).loading]]),l(G,{class:"ls-form",model:v,inline:""},{default:n(()=>[l(_r,{"time-type":h(Ue),"onUpdate:timeType":e[0]||(e[0]=a=>oa(Ue)?Ue.value=a:null),"date-range":h($t),"onUpdate:dateRange":e[1]||(e[1]=a=>oa($t)?$t.value=a:null),label:"创建时间",variant:"inline","show-all":"","picker-width":"230px",onTimeTypeChange:Bl,onCustomChange:Hl},null,8,["time-type","date-range"]),l(d,{class:"w-[260px]",label:"订单号"},{default:n(()=>[l(o,{modelValue:v.order_no,"onUpdate:modelValue":e[2]||(e[2]=a=>v.order_no=a),placeholder:"业务订单号",clearable:"",onKeyup:Ct(h(W),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(d,{class:"w-[140px]",label:"处方ID"},{default:n(()=>[l(o,{modelValue:v.prescription_id,"onUpdate:modelValue":e[3]||(e[3]=a=>v.prescription_id=a),placeholder:"处方ID",clearable:"",onKeyup:Ct(h(W),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(d,{class:"w-[220px]",label:"患者"},{default:n(()=>[l(o,{modelValue:v.patient_keyword,"onUpdate:modelValue":e[4]||(e[4]=a=>v.patient_keyword=a),placeholder:"姓名 / 手机号",clearable:"",onKeyup:Ct(h(W),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(d,{class:"w-[220px]",label:"快递"},{default:n(()=>[l(o,{modelValue:v.express_keyword,"onUpdate:modelValue":e[5]||(e[5]=a=>v.express_keyword=a),placeholder:"快递单号 / 公司",clearable:"",onKeyup:Ct(h(W),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),gl.value?(u(),y(d,{key:0,class:"w-[200px]",label:"下单人"},{default:n(()=>[l(k,{modelValue:v.audit_admin_id,"onUpdate:modelValue":e[6]||(e[6]=a=>v.audit_admin_id=a),clearable:"",filterable:"",placeholder:"全部下单人",class:"!w-full"},{default:n(()=>[(u(!0),g(T,null,z(ma.value,a=>(u(),y(p,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})):b("",!0),l(d,{class:"w-[200px]",label:"医生"},{default:n(()=>[l(k,{modelValue:v.doctor_id,"onUpdate:modelValue":e[7]||(e[7]=a=>v.doctor_id=a),clearable:"",filterable:"",placeholder:"开方医生",class:"!w-full"},{default:n(()=>[(u(!0),g(T,null,z(Dt.value,a=>(u(),y(p,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(d,{class:"w-[220px] min-w-[200px]",label:"医助部门"},{default:n(()=>[l(J,{modelValue:v.assistant_dept_id,"onUpdate:modelValue":e[8]||(e[8]=a=>v.assistant_dept_id=a),data:st.value,class:"!w-full",clearable:"",filterable:"","check-strictly":"","default-expand-all":!0,"node-key":"id",props:Vl,placeholder:"医助部门(选父级含子级)",onChange:Jl},null,8,["modelValue","data"])]),_:1}),l(d,{class:"w-[200px]",label:"医助"},{default:n(()=>[l(k,{modelValue:v.assistant_id,"onUpdate:modelValue":e[9]||(e[9]=a=>v.assistant_id=a),clearable:"",filterable:"",placeholder:"订单创建人",class:"!w-full"},{default:n(()=>[(u(!0),g(T,null,z(ka.value,a=>(u(),y(p,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(d,{class:"w-[160px]",label:"服务渠道"},{default:n(()=>[l(k,{modelValue:v.service_channel,"onUpdate:modelValue":e[10]||(e[10]=a=>v.service_channel=a),clearable:"",placeholder:"全部",class:"!w-full"},{default:n(()=>[l(p,{label:"未指派",value:"0"})]),_:1},8,["modelValue"])]),_:1}),l(d,{class:"w-[140px]",label:"辅方"},{default:n(()=>[l(k,{modelValue:v.has_aux_formula,"onUpdate:modelValue":e[11]||(e[11]=a=>v.has_aux_formula=a),clearable:"",placeholder:"全部",class:"!w-full"},{default:n(()=>[l(p,{label:"含辅方",value:"1"}),l(p,{label:"不含辅方",value:"0"})]),_:1},8,["modelValue"])]),_:1}),l(d,null,{default:n(()=>[l(x,{type:"primary",onClick:h(W)},{default:n(()=>[...e[96]||(e[96]=[_("查询",-1)])]),_:1},8,["onClick"]),l(x,{onClick:Yl},{default:n(()=>[...e[97]||(e[97]=[_("重置",-1)])]),_:1}),S(l(Re,{class:"ml-2.5","fetch-fun":h(Dr),params:Kl.value,"page-size":h(Y).size,"export-hint":"导出范围与上方筛选一致(履约状态、创建时间及其他条件均会生效)。含「自媒体渠道(挂号渠道来源)」:优先取该单关联处方登记的挂号;无则诊单下同患者挂号取 id 最大的一条(与前台挂号选择的记录一致);业绩侧栏带渠道筛选导出时与同页列表高亮挂号同源。「服务套餐」按字典 server_order 解析展示。「处方」导出主方/辅方药材明细;「主方/辅方服用方式、天数」与详情侧栏同口径(主方/辅方天数分别取处方 usage_days、辅方 aux_usage.usage_days;「天数」列为订单 medication_days)。「关联收款记录」与详情侧栏同源(已支付/已退款/待审核),每笔两行展示(摘要行+明细行),多笔空行分隔,单元格自动换行。「签收日期」与详情/业绩看板同源,仅读物流库(轨迹/签收时间):导出不再实时查快递100,速度只取决于数据库;签收时间由 `tcm:backfill-sign-time` 命令与物流自动更新定时任务落库,刚发货尚未同步的单子会暂时为空,待下次回填/定时任务刷新后显示。"},null,8,["fetch-fun","params","page-size"]),[[E,["tcm.prescriptionOrder/export"]]])]),_:1})]),_:1},8,["model"])]),_:1}),S((u(),y(s,{class:"!border-none mt-4 po-table-card shadow-sm",shadow:"never"},{default:n(()=>[r("div",Hi,[r("div",Wi,[e[98]||(e[98]=r("span",{class:"po-table-title text-gray-800"},"订单列表",-1)),r("span",Ki,"共 "+m(h(Y).count)+" 条",1),fa.value?(u(),y(x,{key:0,type:"primary",plain:"",size:"small",class:"ml-3",disabled:fe.value.length===0,onClick:hl},{default:n(()=>[_(" 批量改派医助"+m(fe.value.length?`(${fe.value.length})`:""),1)]),_:1},8,["disabled"])):b("",!0)]),r("div",Gi,[r("div",{class:B(["po-focus-board__item is-pending-rx",{"is-active":te.value==="pendingRx"}]),onClick:e[12]||(e[12]=a=>nt("pendingRx"))},[e[99]||(e[99]=r("span",{class:"po-focus-board__label"},"待处方审核",-1)),r("strong",Qi,m(rt.value.pendingRx),1)],2),r("div",{class:B(["po-focus-board__item is-pending-pay",{"is-active":te.value==="pendingPay"}]),onClick:e[13]||(e[13]=a=>nt("pendingPay"))},[e[100]||(e[100]=r("span",{class:"po-focus-board__label"},"待支付审核",-1)),r("strong",Ji,m(rt.value.pendingPay),1)],2),r("div",{class:B(["po-focus-board__item is-pending-ship",{"is-active":te.value==="pendingShip"}]),onClick:e[14]||(e[14]=a=>nt("pendingShip"))},[e[101]||(e[101]=r("span",{class:"po-focus-board__label"},"待发货",-1)),r("strong",Xi,m(rt.value.pendingShip),1)],2),r("div",{class:B(["po-focus-board__item is-risk",{"is-active":te.value==="risk"}]),onClick:e[15]||(e[15]=a=>nt("risk"))},[e[102]||(e[102]=r("span",{class:"po-focus-board__label"},"重点异常",-1)),r("strong",Yi,m(rt.value.risk),1)],2)])]),l(Xe,{data:h(Y).lists,size:"default",stripe:"",class:"po-data-table","row-class-name":Xl,onSelectionChange:kl},{default:n(()=>[fa.value?(u(),y(P,{key:0,type:"selection",width:"44",selectable:()=>!0})):b("",!0),l(P,{label:"订单号","min-width":"178","show-overflow-tooltip":""},{default:n(({row:a})=>[r("div",Zi,[r("div",eo,m(a.order_no||"—"),1),r("div",to,[l(A,{size:"small",effect:"plain",type:h(br)(a)},{default:n(()=>[_(m(h(xr)(a)),1)]),_:2},1032,["type"]),r("span",ao,"#"+m(a.id),1)])])]),_:1}),l(P,{label:"处方ID",prop:"prescription_id",width:"86"}),l(P,{label:"诊单ID",prop:"diagnosis_id",width:"86"}),l(P,{label:"收货人","min-width":"100"},{default:n(({row:a})=>[r("div",null,m(a.recipient_name||"—"),1),r("div",{class:B(["text-xs",h(da)(a.recipient_phone,a.prescription_phone)?"text-red-600 font-semibold":"text-gray-400"])},[_(m(a.recipient_phone||"—")+" ",1),h(da)(a.recipient_phone,a.prescription_phone)?(u(),g("span",lo,"(与处方手机不一致)")):b("",!0)],2)]),_:1}),l(P,{label:"费用类别",width:"96"},{default:n(({row:a})=>[_(m(h(sl)(a.fee_type)),1)]),_:1}),l(P,{label:"金额","min-width":"100"},{default:n(({row:a})=>[r("div",so,[r("span",no,"¥"+m(a.amount),1),l(Vt,{placement:"top",width:200,trigger:"hover"},{reference:n(()=>[l(i,{class:"text-gray-400 cursor-pointer hover:text-primary"},{default:n(()=>[l(h(Ln))]),_:1})]),default:n(()=>[r("div",ro,[r("div",io,[e[103]||(e[103]=r("span",{class:"text-gray-500"},"业务订单单据:",-1)),r("span",oo,"¥"+m(a.amount),1)]),r("div",uo,[e[104]||(e[104]=r("span",{class:"text-gray-500"},"定金下限:",-1)),r("span",null,"¥"+m(h(j)(a.deposit_min_amount)),1)]),r("div",po,[e[105]||(e[105]=r("span",{class:"text-gray-500"},"实付(关联):",-1)),r("span",co,"¥"+m(h(j)(a.linked_pay_paid_total)),1)]),Rt()&&a.internal_cost!=null&&a.internal_cost!==""?(u(),g("div",mo,[e[106]||(e[106]=r("span",{class:"text-gray-500"},"内部成本:",-1)),r("span",{class:B(["font-medium cursor-pointer select-none",re.value?"text-orange-600":"text-gray-400"]),title:"点击显示/隐藏",onClick:e[16]||(e[16]=De(N=>re.value=!re.value,["stop"]))},m(re.value?`¥${h(j)(a.internal_cost)}`:"****"),3)])):b("",!0)])]),_:2},1024)])]),_:1}),Rt()?(u(),y(P,{key:1,width:"100"},{header:n(()=>[r("span",{class:"cursor-pointer select-none hover:text-primary",title:"点击显示/隐藏内部成本",onClick:e[17]||(e[17]=De(a=>re.value=!re.value,["stop"]))}," 内部成本 ")]),default:n(({row:a})=>[a.internal_cost!=null&&a.internal_cost!==""?(u(),g("span",{key:0,class:B(["cursor-pointer select-none",re.value?"text-orange-600 font-medium":"text-gray-400"]),title:"点击显示/隐藏",onClick:e[18]||(e[18]=De(N=>re.value=!re.value,["stop"]))},m(re.value?`¥${a.internal_cost}`:"****"),3)):(u(),g("span",_o,"—"))]),_:1})):b("",!0),l(P,{label:"处方审核",width:"110"},{default:n(({row:a})=>[l(A,{type:wa(a.prescription_audit_status),size:"small",class:B(Ut("rx",a))},{default:n(()=>[_(m(ha(a.prescription_audit_status)),1)]),_:2},1032,["type","class"])]),_:1}),l(P,{label:"支付单审核",width:"110"},{default:n(({row:a})=>[l(A,{type:wa(a.payment_slip_audit_status),size:"small",class:B(Ut("pay",a))},{default:n(()=>[_(m(ha(a.payment_slip_audit_status)),1)]),_:2},1032,["type","class"])]),_:1}),l(P,{label:"履约",width:"108"},{default:n(({row:a})=>[l(A,{type:h(kr)(a.fulfillment_status),size:"small",class:B(Ut("fulfillment",a))},{default:n(()=>[_(m(h(hr)(a.fulfillment_status)),1)]),_:2},1032,["type","class"])]),_:1}),l(P,{label:"关联支付单",width:"100"},{default:n(({row:a})=>[Number(a.linked_pay_order_count)>0?(u(),g("span",{key:0,class:"text-primary cursor-default",title:a.linked_pay_order_id?`#${a.linked_pay_order_id}…`:""},m(a.linked_pay_order_count)+" 笔 ",9,fo)):(u(),g("span",vo,"—"))]),_:1}),l(P,{label:"创建时间","min-width":"144"},{default:n(({row:a})=>[_(m(h(nl)(a.create_time)),1)]),_:1}),l(P,{label:"开方人",prop:"doctor_name",width:"90","show-overflow-tooltip":""}),l(P,{label:"创建人",prop:"creator_name",width:"90","show-overflow-tooltip":""}),l(P,{"min-width":"128","show-overflow-tooltip":""},{header:n(()=>[e[107]||(e[107]=r("span",null,"二中心·指派",-1)),l(St,{placement:"top","max-width":"320",content:"与诊单「指派记录」快照一致:仅当本条业务单在操作瞬间为快照中的「关联业务单」(创建人+创建时间命中)时显示。绿色=新医助在名称含「二中心」的部门及其下级;灰色=系统自动释放诊单医助。"},{default:n(()=>[l(i,{class:"ml-0.5 align-middle text-gray-400 cursor-help"},{default:n(()=>[l(h(qn))]),_:1})]),_:1})]),default:n(({row:a})=>[Number(a.po_assign_snapshot_hit)?Number(a.po_assign_is_release)?(u(),y(A,{key:1,type:"info",size:"small"},{default:n(()=>[...e[108]||(e[108]=[_("已释放",-1)])]),_:1})):Number(a.po_assign_to_er_center)?(u(),y(A,{key:2,type:"success",size:"small"},{default:n(()=>[_(m(a.po_assign_to_assistant_name||"医助#"+a.po_assign_to_assistant_id),1)]),_:2},1024)):(u(),y(A,{key:3,type:"warning",size:"small",effect:"plain"},{default:n(()=>[_(" 非二中心 "+m(a.po_assign_to_assistant_name||"医助#"+a.po_assign_to_assistant_id),1)]),_:2},1024)):(u(),g("span",yo,"—"))]),_:1}),l(P,{label:"操作",width:"310",fixed:"right"},{default:n(({row:a})=>[r("div",go,[S((u(),y(x,{type:"primary",link:"",onClick:N=>gs(a.id)},{default:n(()=>[_(m(bl.value),1)]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/detail"]]]),Ca(a)?S((u(),y(x,{key:0,type:"primary",link:"",onClick:N=>Os(a)},{default:n(()=>[...e[109]||(e[109]=[_("编辑",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/edit"]]]):b("",!0),S((u(),y(x,{type:"primary",link:"",onClick:N=>{var O;return(O=zt.value)==null?void 0:O.open(a)}},{default:n(()=>[...e[110]||(e[110]=[_("修改创建时间",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/editTime"]]]),Ra(a)?S((u(),y(x,{key:1,type:"success",link:"",onClick:N=>Us(a)},{default:n(()=>[...e[111]||(e[111]=[_("修改单号",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/ddcode"]]]):b("",!0),Ft(a)?S((u(),y(x,{key:2,type:"primary",link:"",onClick:N=>za(a)},{default:n(()=>[...e[112]||(e[112]=[_("确认发货",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/ship"]]]):b("",!0),qt(a)?S((u(),y(x,{key:3,type:"success",link:"",onClick:N=>Ba(a)},{default:n(()=>[...e[113]||(e[113]=[_("补齐支付单",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/addPayOrder"]]]):b("",!0),Pa(a)?S((u(),y(x,{key:4,type:"primary",link:"",onClick:N=>Ha(a)},{default:n(()=>[...e[114]||(e[114]=[_("完成订单",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/complete"]]]):b("",!0),Aa(a)?S((u(),y(x,{key:5,type:"danger",link:"",onClick:N=>Ma(a)},{default:n(()=>[...e[115]||(e[115]=[_("退款",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/refund"]]]):b("",!0),ls(a)?S((u(),y(x,{key:6,type:"danger",link:"",onClick:N=>Rs(a)},{default:n(()=>[...e[116]||(e[116]=[_("撤回",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/withdraw"]]]):b("",!0),Ea(a)?S((u(),y(x,{key:7,type:"warning",link:"",loading:_t.value===a.id,onClick:N=>Ia(a)},{default:n(()=>[...e[117]||(e[117]=[_("上传药房",-1)])]),_:1},8,["loading","onClick"])),[[E,["tcm.prescriptionOrder/uploadToPharmacy"]]]):b("",!0)])]),_:1})]),_:1},8,["data"]),r("div",bo,[l(Ye,{modelValue:h(Y),"onUpdate:modelValue":e[19]||(e[19]=a=>oa(Y)?Y.value=a:null),"page-sizes":[15,20,30,40,100,150,200],onChange:h($)},null,8,["modelValue","onChange"])])]),_:1})),[[ce,h(Y).loading]]),l(vr,{ref_key:"detailDrawerRef",ref:M,"gancao-preview-loading":Ce.value,onUpdateAmount:vs,onPatchRxPatient:ms,onViewPrescription:e[20]||(e[20]=a=>D.value&&Qa(D.value)),onTestGancaoPreview:$s,onViewPatient:_l,onDetailChanged:h($)},{"header-extra":n(({detail:a})=>[r("div",xo,[e[120]||(e[120]=r("span",{class:"text-sm text-gray-500"},"发货类型",-1)),S((u(),y(Ee,{"model-value":Q(a.ship_mode),size:"small",disabled:Lt.value||!Oa(a),onChange:is},{default:n(()=>[l(he,{label:"gancao"},{default:n(()=>[...e[118]||(e[118]=[_("甘草药房",-1)])]),_:1}),l(he,{label:"direct",disabled:Na(a)},{default:n(()=>[...e[119]||(e[119]=[_("洛阳药房",-1)])]),_:1},8,["disabled"])]),_:2},1032,["model-value","disabled"])),[[E,["tcm.prescriptionOrder/setShipMode"]]]),ss.value?b("",!0):(u(),y(A,{key:0,type:Q(a.ship_mode)==="direct"?"warning":"success",effect:"plain",round:""},{default:n(()=>[_(m(ns(a.ship_mode)),1)]),_:2},1032,["type"]))])]),"header-actions":n(({detail:a})=>[S((u(),y(x,{size:"small",onClick:N=>{var O;return(O=zt.value)==null?void 0:O.open(a)}},{default:n(()=>[...e[121]||(e[121]=[_("修改创建时间",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/editTime"]]]),l(gr,{order:a,onResolved:os},null,8,["order"]),Ea(a)?S((u(),y(x,{key:0,type:"warning",size:"small",plain:"",loading:_t.value===a.id,onClick:N=>Ia(a)},{default:n(()=>[...e[122]||(e[122]=[_("上传药房",-1)])]),_:1},8,["loading","onClick"])),[[E,["tcm.prescriptionOrder/uploadToPharmacy"]]]):b("",!0),Zl(a)?S((u(),y(x,{key:1,type:"warning",size:"small",plain:"",onClick:N=>Fa(a,"prescription")},{default:n(()=>[...e[123]||(e[123]=[_(" 处方审核 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/auditPrescription"]]]):b("",!0),ts(a)?S((u(),y(x,{key:2,type:"info",size:"small",plain:"",onClick:N=>Zs(a)},{default:n(()=>[...e[124]||(e[124]=[_(" 撤回处方审核 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/auditPrescription"]]]):b("",!0),es(a)?S((u(),y(x,{key:3,type:"warning",size:"small",plain:"",onClick:N=>Fa(a,"payment")},{default:n(()=>[...e[125]||(e[125]=[_(" 支付审核 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/auditPayment"]]]):b("",!0),as(a)?S((u(),y(x,{key:4,type:"info",size:"small",plain:"",onClick:N=>en(a)},{default:n(()=>[...e[126]||(e[126]=[_(" 撤回支付审核 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/auditPayment"]]]):b("",!0),Ft(a)?S((u(),y(x,{key:5,type:"primary",size:"small",plain:"",onClick:N=>za(a)},{default:n(()=>[...e[127]||(e[127]=[_(" 确认发货 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/ship"]]]):b("",!0),qt(a)?S((u(),y(x,{key:6,type:"success",size:"small",plain:"",onClick:N=>Ba(a)},{default:n(()=>[...e[128]||(e[128]=[_(" 关联支付单 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/addPayOrder"]]]):b("",!0),Pa(a)?S((u(),y(x,{key:7,type:"primary",size:"small",plain:"",onClick:N=>Ha(a)},{default:n(()=>[...e[129]||(e[129]=[_(" 完成订单 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/complete"]]]):b("",!0),Aa(a)?S((u(),y(x,{key:8,type:"danger",size:"small",plain:"",onClick:N=>Ma(a)},{default:n(()=>[...e[130]||(e[130]=[_(" 退款 ",-1)])]),_:1},8,["onClick"])),[[E,["tcm.prescriptionOrder/refund"]]]):b("",!0)]),_:1},8,["gancao-preview-loading","onDetailChanged"]),l(X,{modelValue:Fe.value,"onUpdate:modelValue":e[23]||(e[23]=a=>Fe.value=a),title:"修改订单金额",width:"420px","destroy-on-close":"","close-on-click-modal":!1,onClosed:fs},{footer:n(()=>[l(x,{onClick:e[22]||(e[22]=a=>Fe.value=!1)},{default:n(()=>[...e[132]||(e[132]=[_("取消",-1)])]),_:1}),l(x,{type:"primary",loading:jt.value,onClick:Da},{default:n(()=>[...e[133]||(e[133]=[_(" 确认修改 ",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(G,{ref_key:"updateAmountFormRef",ref:ot,model:de,rules:ps,"label-width":"96px",class:"pr-2",onSubmit:De(Da,["prevent"])},{default:n(()=>[l(d,{label:"当前金额"},{default:n(()=>{var a;return[r("div",ko,"¥"+m(h(j)((a=D.value)==null?void 0:a.amount)),1)]}),_:1}),l(d,{label:"新金额",prop:"amount"},{default:n(()=>[l(ee,{modelValue:de.amount,"onUpdate:modelValue":e[21]||(e[21]=a=>de.amount=a),min:0,step:.01,precision:2,"controls-position":"right",class:"w-full",placeholder:"请输入新金额"},null,8,["modelValue"])]),_:1}),e[131]||(e[131]=r("div",{class:"text-xs text-gray-400 pl-[96px] -mt-1 leading-relaxed"}," 已完成或已取消订单不可修改。提交成功后会刷新详情与操作日志。 ",-1))]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(X,{modelValue:be.value,"onUpdate:modelValue":e[46]||(e[46]=a=>be.value=a),title:se.value?"修改物流信息(甘草订单)":"编辑业务订单",width:"940px",top:"4vh","close-on-click-modal":!1,"destroy-on-close":"",class:"create-order-dialog",onClosed:Ss},{footer:n(()=>[r("div",lu,[se.value?b("",!0):(u(),g("div",su,[r("span",nu,"第 "+m(F.value+1)+" / 3 步",1),F.value===2&&I.value>0?(u(),g("span",ru," 订单金额与关联支付单合计须 ≥ ¥"+m(h(j)(I.value)),1)):b("",!0)])),r("div",iu,[l(x,{size:"large",onClick:e[45]||(e[45]=a=>be.value=!1)},{default:n(()=>[...e[148]||(e[148]=[_("取消",-1)])]),_:1}),se.value?b("",!0):(u(),g(T,{key:0},[F.value>0?(u(),y(x,{key:0,size:"large",onClick:Cs},{default:n(()=>[...e[149]||(e[149]=[_("上一步",-1)])]),_:1})):b("",!0),F.value<2?(u(),y(x,{key:1,type:"primary",size:"large",onClick:Ns},{default:n(()=>[...e[150]||(e[150]=[_(" 下一步 ",-1)])]),_:1})):b("",!0)],64)),se.value||F.value===2?(u(),y(x,{key:1,type:"primary",size:"large",loading:Wt.value,onClick:Ps},{default:n(()=>[...e[151]||(e[151]=[_(" 确认保存 ",-1)])]),_:1},8,["loading"])):b("",!0)])])]),default:n(()=>[S((u(),g("div",ho,[le.value?(u(),g("div",wo,[r("div",Vo,[e[134]||(e[134]=r("span",{class:"create-order-rx-card__badge"},"关联处方",-1)),r("div",So,[r("span",Co,"#"+m(le.value.id),1),le.value.sn?(u(),g("span",No,m(le.value.sn),1)):b("",!0),r("span",Oo,m(le.value.patient_name||"—"),1)])]),l(St,{content:$a.value,placement:"bottom","show-after":300},{default:n(()=>[r("div",Po,m($a.value),1)]),_:1},8,["content"])])):b("",!0),se.value?(u(),y(ge,{key:1,type:"info",closable:!1,"show-icon":"",class:"mb-4",title:"订单已提交甘草,仅可修改快递单号与承运商;地址、金额等变更请先走取消流程。"},Wn({_:2},[pt.value?{name:"default",fn:n(()=>[r("div",Ao,"甘草处方单号:"+m(pt.value),1)]),key:"0"}:void 0]),1024)):b("",!0),se.value?b("",!0):(u(),g(T,{key:2},[l(pn,{active:F.value,"finish-status":"success","align-center":"",class:"create-order-steps"},{default:n(()=>[l(na,{title:"患者与收货",description:"诊单与物流地址"}),l(na,{title:"服务与支付单",description:"套餐与关联收款"}),l(na,{title:"金额与确认",description:"费用与备注"})]),_:1},8,["active"]),r("p",Ro,m(bs.value),1)],64)),l(G,{ref_key:"editFormRef",ref:xe,model:c,rules:Vs.value,"label-width":"108px",class:"create-order-form"},{default:n(()=>[se.value?(u(),y(Ze,{key:0,gutter:20},{default:n(()=>[l(L,{span:24},{default:n(()=>[l(d,{label:"物流设置"},{default:n(()=>[r("div",Eo,[l(k,{modelValue:c.express_company,"onUpdate:modelValue":e[24]||(e[24]=a=>c.express_company=a),placeholder:"承运商",class:"w-[140px] shrink-0"},{default:n(()=>[l(p,{label:"自动识别",value:"auto"}),l(p,{label:"顺丰速运",value:"sf"}),l(p,{label:"京东快递",value:"jd"}),l(p,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),l(o,{modelValue:c.tracking_number,"onUpdate:modelValue":e[25]||(e[25]=a=>c.tracking_number=a),disabled:"",maxlength:"80",placeholder:"快递单号",class:"flex-1 min-w-0"},null,8,["modelValue"])]),e[135]||(e[135]=r("div",{class:"text-xs text-gray-400 mt-1"}," 编辑订单后需重新审核;双审通过后,请通过列表的单号操作填写或修改 ",-1))]),_:1})]),_:1})]),_:1})):b("",!0),se.value?b("",!0):(u(),g(T,{key:1},[S(r("div",To,[l(Ze,{gutter:20},{default:n(()=>[l(L,{span:12},{default:n(()=>[l(d,{label:"收货人",prop:"recipient_name"},{default:n(()=>[l(o,{modelValue:c.recipient_name,"onUpdate:modelValue":e[26]||(e[26]=a=>c.recipient_name=a),maxlength:"50",placeholder:"姓名"},null,8,["modelValue"])]),_:1})]),_:1}),l(L,{span:12},{default:n(()=>[l(d,{label:"收货手机",prop:"recipient_phone"},{default:n(()=>[l(o,{modelValue:c.recipient_phone,"onUpdate:modelValue":e[27]||(e[27]=a=>c.recipient_phone=a),maxlength:"20",placeholder:"物流联系"},null,8,["modelValue"])]),_:1})]),_:1}),l(L,{span:24},{default:n(()=>[l(d,{label:"省市区",prop:"region"},{default:n(()=>[l(cn,{modelValue:c.region,"onUpdate:modelValue":e[28]||(e[28]=a=>c.region=a),options:lt.value,props:{emitPath:!0},placeholder:"省 / 市 / 区",clearable:"",filterable:"",class:"w-full"},null,8,["modelValue","options"])]),_:1})]),_:1}),l(L,{span:24},{default:n(()=>[l(d,{label:"详细地址",prop:"shipping_address"},{default:n(()=>[l(o,{modelValue:c.shipping_address,"onUpdate:modelValue":e[29]||(e[29]=a=>c.shipping_address=a),type:"textarea",rows:3,placeholder:"街道、小区、门牌号等详细地址",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[ua,F.value===0]]),S(r("div",Do,[tt.value?(u(),y(Ze,{key:0,gutter:20,class:"mb-1"},{default:n(()=>[l(L,{span:24},{default:n(()=>[r("div",$o,[e[138]||(e[138]=r("span",{class:"text-sm font-medium text-gray-700 mr-1"},"处方",-1)),c.prescription_id?(u(),y(x,{key:0,type:"primary",size:"small",link:"",onClick:ln},{default:n(()=>[...e[136]||(e[136]=[_(" 详细 ",-1)])]),_:1})):b("",!0),c.id?(u(),y(x,{key:1,type:"warning",size:"small",link:"",loading:Ce.value,icon:h(Yn),onClick:Ds},{default:n(()=>[...e[137]||(e[137]=[_(" 测试价格 ",-1)])]),_:1},8,["loading","icon"])):b("",!0),r("span",Uo,"ID: "+m(c.prescription_id||"—"),1)]),r("div",Fo,[Ua.value.length?(u(),g("div",Lo,[e[139]||(e[139]=r("div",{class:"text-gray-500"},"创建人所属部门",-1)),(u(!0),g(T,null,z(Ua.value,(a,N)=>(u(),g("div",{key:N,class:"pl-0 min-w-0"},[a.length?(u(),y(_n,{key:0,class:"po-diagnosis-creator-dept-breadcrumb text-[13px] leading-relaxed",separator:"/"},{default:n(()=>[(u(!0),g(T,null,z(a,(O,q)=>(u(),y(mn,{key:q},{default:n(()=>[r("span",Io,m(O),1)]),_:2},1024))),128))]),_:2},1024)):b("",!0)]))),128))])):(u(),g("div",qo,"创建人所属部门:—"))])]),_:1}),l(L,{xs:24,sm:8},{default:n(()=>[l(d,{label:"复诊"},{default:n(()=>[l(fn,{modelValue:c.is_follow_up,"onUpdate:modelValue":e[30]||(e[30]=a=>c.is_follow_up=a),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1}),l(L,{xs:24,sm:8},{default:n(()=>[l(d,{label:"服用天数",class:"create-order-form-item--inline-num"},{default:n(()=>[r("div",zo,[l(ee,{modelValue:c.medication_days,"onUpdate:modelValue":e[31]||(e[31]=a=>c.medication_days=a),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[140]||(e[140]=r("span",{class:"create-order-unit-suffix"},"天",-1))])]),_:1})]),_:1}),l(L,{xs:24,sm:8},{default:n(()=>[l(d,{label:"上次医生"},{default:n(()=>[l(o,{modelValue:c.prev_staff,"onUpdate:modelValue":e[32]||(e[32]=a=>c.prev_staff=a),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),l(L,{span:12},{default:n(()=>[l(d,{label:Ta.value,prop:"dose_count"},{default:n(()=>[l(ee,{modelValue:c.dose_count,"onUpdate:modelValue":e[33]||(e[33]=a=>c.dose_count=a),min:1,placeholder:Ta.value,class:"w-full"},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1}),l(L,{span:12},{default:n(()=>[l(d,{label:"剂量单位",prop:"dose_unit"},{default:n(()=>[l(k,{modelValue:c.dose_unit,"onUpdate:modelValue":e[34]||(e[34]=a=>c.dose_unit=a),placeholder:"请选择",class:"w-full"},{default:n(()=>[l(p,{label:"剂",value:"剂"}),l(p,{label:"丸",value:"丸"}),l(p,{label:"袋",value:"袋"}),l(p,{label:"盒",value:"盒"}),l(p,{label:"瓶",value:"瓶"}),l(p,{label:"膏",value:"膏"}),l(p,{label:"贴",value:"贴"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})):b("",!0),l(Ze,{gutter:20},{default:n(()=>[l(L,{span:12},{default:n(()=>[l(d,{label:"服务渠道"},{default:n(()=>[l(k,{modelValue:c.service_channel,"onUpdate:modelValue":e[35]||(e[35]=a=>c.service_channel=a),class:"w-full",filterable:"","allow-create":"","default-first-option":"",clearable:"",placeholder:"可选或自定义输入"},{default:n(()=>[l(p,{label:"未指派",value:"0"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(L,{span:12},{default:n(()=>[l(d,{label:"服务套餐"},{default:n(()=>[l(k,{modelValue:c.service_package,"onUpdate:modelValue":e[36]||(e[36]=a=>c.service_package=a),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"请选择服务套餐",clearable:"",class:"w-full"},{default:n(()=>[(u(!0),g(T,null,z(ks.value,a=>(u(),y(p,{key:a.value,label:a.name,value:a.value,disabled:a.status===0},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(L,{span:24},{default:n(()=>[l(d,{label:"物流设置"},{default:n(()=>[r("div",jo,[l(k,{modelValue:c.express_company,"onUpdate:modelValue":e[37]||(e[37]=a=>c.express_company=a),placeholder:"承运商",class:"w-[140px] shrink-0"},{default:n(()=>[l(p,{label:"自动识别",value:"auto"}),l(p,{label:"顺丰速运",value:"sf"}),l(p,{label:"京东快递",value:"jd"}),l(p,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),l(o,{modelValue:c.tracking_number,"onUpdate:modelValue":e[38]||(e[38]=a=>c.tracking_number=a),disabled:"",maxlength:"80",placeholder:"快递单号",class:"flex-1 min-w-0"},null,8,["modelValue"])]),e[141]||(e[141]=r("div",{class:"text-xs text-gray-400 mt-1"}," 编辑订单后需重新审核;双审通过后,请通过列表的单号操作填写或修改 ",-1))]),_:1})]),_:1}),l(L,{span:24},{default:n(()=>[l(d,{label:"关联支付单",prop:"pay_order_ids",required:I.value>0},{default:n(()=>[l(k,{modelValue:c.pay_order_ids,"onUpdate:modelValue":e[39]||(e[39]=a=>c.pay_order_ids=a),class:"w-full",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:I.value>0?"请至少选择一笔本诊单支付单(已开启门槛)":"多选本诊单支付单(可选)",loading:Kt.value},{default:n(()=>[(u(!0),g(T,null,z(qe.value,a=>(u(),y(p,{key:a.id,label:`${a.order_no} · ¥${a.amount} · ${ct(a.order_type)} · ${h(Ot)(a)}`,value:a.id,class:"!h-auto py-1.5"},{default:n(()=>[r("div",Mo,[r("div",Bo,[r("span",Ho,m(a.order_no),1),r("span",Wo,"¥"+m(a.amount),1)]),r("div",Ko,[r("span",Go,[_(m(ct(a.order_type))+" · "+m(h(Ot)(a)),1),a.remark?(u(),g(T,{key:0},[_(" · "+m(a.remark),1)],64)):b("",!0)]),r("span",Qo,m(String(a.create_time||"").substring(0,16)),1)])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","loading"]),r("div",Jo,[I.value>0?(u(),g(T,{key:0},[r("span",Xo,"当前已开启关联支付门槛(¥"+m(h(j)(I.value))+"),须至少选择一笔支付单。",1),e[142]||(e[142]=r("span",{class:"mx-1"},null,-1))],64)):b("",!0),e[144]||(e[144]=_(" 主管/本诊单医助可见全部支付单;否则仅本人收款单。已被占用的支付单不列出。 ",-1)),l(St,{content:"主管或本诊单医助可见该诊单全部支付单(待支付/已支付),否则仅本人创建的收款单。已被其他有效业务订单占用的支付单不会出现在此列表。",placement:"top"},{default:n(()=>[...e[143]||(e[143]=[r("span",{class:"text-primary cursor-help ml-0.5"},"详情",-1)])]),_:1})])]),_:1},8,["required"])]),_:1})]),_:1})],512),[[ua,F.value===1]]),S(r("div",Yo,[r("div",{class:B(["create-order-deposit-bar",Gt.value>=I.value?"is-ok":"is-warn"])},[r("div",Zo,[e[145]||(e[145]=r("span",{class:"create-order-deposit-bar__label"},"定金门槛",-1)),r("strong",null,"¥"+m(h(j)(I.value)),1),r("span",eu,m(I.value>0?"须 ≥ 此值":"未设置"),1)]),e[147]||(e[147]=r("div",{class:"create-order-deposit-bar__sep"},null,-1)),r("div",tu,[e[146]||(e[146]=r("span",{class:"create-order-deposit-bar__label"},"已选收款",-1)),r("strong",null,"¥"+m(h(j)(Gt.value)),1),r("span",au,m(Gt.value>=I.value?"已达标":"未达标"),1)])],2),l(Ze,{gutter:20,class:"create-order-step-panel__row-after-bar"},{default:n(()=>[l(L,{span:12},{default:n(()=>[l(d,{label:"费用类别",prop:"fee_type"},{default:n(()=>[l(k,{modelValue:c.fee_type,"onUpdate:modelValue":e[40]||(e[40]=a=>c.fee_type=a),placeholder:"请选择",class:"w-full"},{default:n(()=>[l(p,{label:"挂号费",value:1}),l(p,{label:"问诊费",value:2}),l(p,{label:"药品费用",value:3}),l(p,{label:"首付费用",value:4}),l(p,{label:"尾款费用",value:5}),l(p,{label:"其他费用",value:6}),l(p,{label:"全部费用",value:7}),l(p,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1})]),_:1}),l(L,{span:12},{default:n(()=>[l(d,{label:"总金额",prop:"amount"},{default:n(()=>[l(ee,{modelValue:c.amount,"onUpdate:modelValue":e[41]||(e[41]=a=>c.amount=a),min:hs.value,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"元"},null,8,["modelValue","min"])]),_:1})]),_:1}),S((u(),y(L,{span:12},{default:n(()=>[l(d,{label:"内部成本"},{default:n(()=>[l(ee,{modelValue:c.internal_cost,"onUpdate:modelValue":e[42]||(e[42]=a=>c.internal_cost=a),min:0,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"财务可见"},null,8,["modelValue"])]),_:1})]),_:1})),[[E,["finance.account_log/lists"]]]),l(L,{span:24},{default:n(()=>[S((u(),y(d,{label:"药房备注"},{default:n(()=>[l(o,{modelValue:c.remark_extra,"onUpdate:modelValue":e[43]||(e[43]=a=>c.remark_extra=a),type:"textarea",rows:3,placeholder:"选填,对内说明",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})),[[E,["tcm.prescriptionOrder/editRemarkExtra"]]]),l(d,{label:"医助备注"},{default:n(()=>[l(o,{modelValue:c.remark_assistant,"onUpdate:modelValue":e[44]||(e[44]=a=>c.remark_assistant=a),type:"textarea",rows:3,placeholder:"选填,医助对内说明",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[ua,F.value===2]])],64))]),_:1},8,["model","rules"])])),[[ce,Ht.value]])]),_:1},8,["modelValue","title"]),l(X,{modelValue:ze.value,"onUpdate:modelValue":e[51]||(e[51]=a=>ze.value=a),title:As.value,width:"480px","destroy-on-close":"",onClosed:e[52]||(e[52]=a=>Se.value="")},{footer:n(()=>[l(x,{onClick:e[48]||(e[48]=a=>ze.value=!1)},{default:n(()=>[...e[153]||(e[153]=[_("取消",-1)])]),_:1}),l(x,{type:"primary",loading:mt.value,onClick:e[49]||(e[49]=a=>La("approve"))},{default:n(()=>[...e[154]||(e[154]=[_("同意通过",-1)])]),_:1},8,["loading"]),l(x,{type:"danger",loading:mt.value,onClick:e[50]||(e[50]=a=>La("reject"))},{default:n(()=>[...e[155]||(e[155]=[_("驳回阻止",-1)])]),_:1},8,["loading"])]),default:n(()=>[je.value&&je.value.completion_request===1?(u(),y(ge,{key:0,title:"完单申请",type:"warning",closable:!1,"show-icon":"",class:"mb-3"},{default:n(()=>[r("div",ou,[e[152]||(e[152]=r("div",{class:"font-medium mb-1"},"该订单已申请完成",-1)),r("div",uu," 申请人:"+m(je.value.completion_request_by_name||"—"),1),r("div",du," 申请时间:"+m(h(nl)(je.value.completion_request_time)),1)])]),_:1})):b("",!0),e[156]||(e[156]=r("p",{class:"text-[13px] text-gray-500 mb-3 bg-gray-50/80 border border-gray-100 p-2 rounded"},"驳回时必须填写意见;通过时意见选填。",-1)),l(o,{modelValue:Se.value,"onUpdate:modelValue":e[47]||(e[47]=a=>Se.value=a),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"在此输入审核意见..."},null,8,["modelValue"])]),_:1},8,["modelValue","title"]),l(X,{modelValue:Me.value,"onUpdate:modelValue":e[56]||(e[56]=a=>Me.value=a),title:"修改快递单号",width:"420px","destroy-on-close":"","close-on-click-modal":!1},{footer:n(()=>[l(x,{onClick:e[55]||(e[55]=a=>Me.value=!1)},{default:n(()=>[...e[158]||(e[158]=[_("取消",-1)])]),_:1}),l(x,{type:"primary",loading:vt.value,onClick:qa},{default:n(()=>[...e[159]||(e[159]=[_("保存单号",-1)])]),_:1},8,["loading"])]),default:n(()=>[S((u(),y(G,{"label-width":"90px",class:"pr-2",onSubmit:De(qa,["prevent"])},{default:n(()=>[l(d,{label:"承运商"},{default:n(()=>[l(k,{modelValue:pe.express_company,"onUpdate:modelValue":e[53]||(e[53]=a=>pe.express_company=a),class:"w-full",placeholder:"选择承运商"},{default:n(()=>[l(p,{label:"自动识别",value:"auto"}),l(p,{label:"顺丰速运",value:"sf"}),l(p,{label:"京东快递",value:"jd"}),l(p,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"])]),_:1}),l(d,{label:"快递单号"},{default:n(()=>[l(o,{modelValue:pe.tracking_number,"onUpdate:modelValue":e[54]||(e[54]=a=>pe.tracking_number=a),maxlength:"80",placeholder:"请输入快递单号",clearable:"",autofocus:""},null,8,["modelValue"])]),_:1}),e[157]||(e[157]=r("div",{class:"text-xs text-gray-400 pl-[90px] -mt-1 leading-relaxed"}," 仅更新快递信息,其他字段不受影响。 ",-1))]),_:1})),[[ce,vt.value]])]),_:1},8,["modelValue"]),l(X,{modelValue:ke.value,"onUpdate:modelValue":e[60]||(e[60]=a=>ke.value=a),title:"确认发货",width:"440px","destroy-on-close":"","close-on-click-modal":!1},{footer:n(()=>[l(x,{onClick:e[59]||(e[59]=a=>ke.value=!1)},{default:n(()=>[...e[161]||(e[161]=[_("取消",-1)])]),_:1}),l(x,{type:"primary",loading:yt.value,onClick:ja},{default:n(()=>[...e[162]||(e[162]=[_(" 确认发货 ",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(ge,{title:"确认后订单状态将变更为「已发货」,请核对快递信息无误。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),S((u(),y(G,{"label-width":"90px",class:"pr-2",onSubmit:De(ja,["prevent"])},{default:n(()=>[l(d,{label:"发货方式"},{default:n(()=>[l(A,{type:Q(H.ship_mode)==="direct"?"warning":"success",effect:"plain",size:"default"},{default:n(()=>[_(m(rs.value),1)]),_:1},8,["type"]),e[160]||(e[160]=r("span",{class:"text-xs text-gray-400 ml-2"},"请在订单详情顶部「发货类型」中设置,此处不可修改",-1))]),_:1}),l(d,{label:"承运商"},{default:n(()=>[l(k,{modelValue:H.express_company,"onUpdate:modelValue":e[57]||(e[57]=a=>H.express_company=a),class:"w-full"},{default:n(()=>[l(p,{label:"自动识别",value:"auto"}),l(p,{label:"顺丰速运",value:"sf"}),l(p,{label:"京东快递",value:"jd"}),l(p,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"])]),_:1}),l(d,{label:"快递单号"},{default:n(()=>[l(o,{modelValue:H.tracking_number,"onUpdate:modelValue":e[58]||(e[58]=a=>H.tracking_number=a),maxlength:"80",placeholder:"请输入快递单号",clearable:""},null,8,["modelValue"])]),_:1})]),_:1})),[[ce,yt.value]])]),_:1},8,["modelValue"]),l(X,{modelValue:Oe.value,"onUpdate:modelValue":e[65]||(e[65]=a=>Oe.value=a),title:"完成订单",width:"480px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:zs},{footer:n(()=>[l(x,{onClick:e[64]||(e[64]=a=>Oe.value=!1)},{default:n(()=>[...e[166]||(e[166]=[_("取消",-1)])]),_:1}),l(x,{type:ve.value===10?"danger":"primary",loading:Be.value,onClick:Bs},{default:n(()=>[_(m(ve.value===10?"确认退款":"确定"),1)]),_:1},8,["type","loading"])]),default:n(()=>[S((u(),g("div",pu,[Le.value.show?(u(),y(ge,{key:0,type:"error",effect:"dark",closable:!1,"show-icon":"",class:"mb-3 !items-start ring-2 ring-red-600/70",title:"物流异常:轨迹含拒收/退回等,请先核实处理再结案"},{default:n(()=>[r("div",cu,[Le.value.keywords.length?(u(),g("div",mu,[e[163]||(e[163]=r("span",{class:"text-red-100/90"},"命中:",-1)),(u(!0),g(T,null,z(Le.value.keywords,a=>(u(),y(A,{key:a,type:"danger",effect:"plain",size:"small",class:"!border-white/35 !text-white"},{default:n(()=>[_(m(a),1)]),_:2},1024))),128))])):b("",!0),Le.value.lines.length?(u(),g("ul",_u,[(u(!0),g(T,null,z(Le.value.lines,(a,N)=>(u(),g("li",{key:N},m(a),1))),128))])):b("",!0),e[164]||(e[164]=r("div",{class:"text-red-100/85 border-t border-white/15 pt-1.5"}," 确认已协调拒收/退回后续(重发、退款、改址等)后再完成订单。 ",-1))])]),_:1})):b("",!0),e[165]||(e[165]=r("p",{class:"text-sm text-gray-600 mb-3"}," 请选择本单结案状态。选择「已完成」时,实付将按已关联的支付单金额汇总;选择「退款」时将关联收款单标记为已退款并清零本单已付。 ",-1)),l(k,{modelValue:ve.value,"onUpdate:modelValue":e[61]||(e[61]=a=>ve.value=a),class:"w-full",placeholder:"请选择"},{default:n(()=>[(u(),g(T,null,z(Ls,a=>l(p,{key:a.value,label:a.label,value:a.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),ve.value===10?(u(),g(T,{key:1},[l(ge,{type:"warning",closable:!1,"show-icon":"",class:"mt-3 !items-start",title:"退款将处理本单全部关联收款单,已付总额清零,且不可撤销。"}),S((u(),g("div",fu,[oe.value.length?(u(),g("div",vu,[r("div",yu," 将退款的关联收款("+m(oe.value.length)+" 笔 · 合计 ¥"+m(h(j)(Is.value))+") ",1),l(Xe,{data:oe.value,size:"small",border:"",stripe:"","max-height":"200"},{default:n(()=>[l(P,{prop:"order_no",label:"单号","min-width":"120","show-overflow-tooltip":""}),l(P,{label:"类型",width:"88"},{default:n(({row:a})=>[_(m(a.order_type_desc||h(sl)(a.order_type)),1)]),_:1}),l(P,{label:"金额",width:"88",align:"right"},{default:n(({row:a})=>[r("span",gu,"¥"+m(a.amount),1)]),_:1}),l(P,{label:"状态",width:"92",align:"center"},{default:n(({row:a})=>[l(A,{type:h(wr)(a.status),size:"small"},{default:n(()=>[_(m(a.status_desc||h(Vr)(a.status)),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])])):He.value?b("",!0):(u(),g("p",bu," 当前无已关联的收款单;提交后仍将本单标记为「退款」并清零已付。 "))])),[[ce,He.value]]),l(G,{ref_key:"completeRefundFormRef",ref:Zt,model:Z,rules:qs.value,"label-width":"88px",class:"mt-3"},{default:n(()=>[l(d,{label:"退款金额",prop:"refund_amount"},{default:n(()=>[l(ee,{modelValue:Z.refund_amount,"onUpdate:modelValue":e[62]||(e[62]=a=>Z.refund_amount=a),min:.01,max:ye.value>0?ye.value:void 0,step:.01,precision:2,class:"w-full","controls-position":"right"},null,8,["modelValue","max"]),r("div",xu," 可退上限 ¥"+m(h(j)(ye.value)),1)]),_:1}),l(d,{label:"退款原因",prop:"reason"},{default:n(()=>[l(o,{modelValue:Z.reason,"onUpdate:modelValue":e[63]||(e[63]=a=>Z.reason=a),type:"textarea",rows:3,maxlength:"500","show-word-limit":"",placeholder:"请填写退款原因(必填)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])],64)):b("",!0)])),[[ce,ut.value]])]),_:1},8,["modelValue"]),l(yr,{ref_key:"orderTimeDialogRef",ref:zt,onSaved:us},null,512),l(X,{modelValue:Ke.value,"onUpdate:modelValue":e[69]||(e[69]=a=>Ke.value=a),title:"订单退款",width:"480px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:Ks},{footer:n(()=>[l(x,{onClick:e[68]||(e[68]=a=>Ke.value=!1)},{default:n(()=>[...e[167]||(e[167]=[_("取消",-1)])]),_:1}),l(x,{type:"danger",loading:aa.value,onClick:Gs},{default:n(()=>[...e[168]||(e[168]=[_(" 确认退款 ",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(ge,{type:"warning",closable:!1,"show-icon":"",class:"mb-4 !items-start",title:Hs.value},null,8,["title"]),l(G,{ref_key:"refundOrderFormRef",ref:la,model:K,rules:Ws.value,"label-width":"88px"},{default:n(()=>[l(d,{label:"退款金额",prop:"refund_amount"},{default:n(()=>[l(ee,{modelValue:K.refund_amount,"onUpdate:modelValue":e[66]||(e[66]=a=>K.refund_amount=a),min:.01,max:ne.value>0?ne.value:void 0,step:.01,precision:2,class:"w-full","controls-position":"right"},null,8,["modelValue","max"]),r("div",ku," 可退上限 ¥"+m(h(j)(ne.value))+"(默认全额);部分退款时按金额从关联收款单依次标记已退款,并扣减本单已付。 ",1)]),_:1}),l(d,{label:"退款原因",prop:"reason"},{default:n(()=>[l(o,{modelValue:K.reason,"onUpdate:modelValue":e[67]||(e[67]=a=>K.reason=a),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"请填写退款原因(必填)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue"]),l(X,{modelValue:Ge.value,"onUpdate:modelValue":e[77]||(e[77]=a=>Ge.value=a),title:"补齐支付单",width:"600px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:e[78]||(e[78]=a=>{var N;return(N=bt.value)==null?void 0:N.clearValidate()})},{footer:n(()=>[l(x,{onClick:e[76]||(e[76]=a=>Ge.value=!1)},{default:n(()=>[...e[178]||(e[178]=[_("取消",-1)])]),_:1}),l(x,{type:"primary",loading:gt.value,onClick:Ys},{default:n(()=>[_(m(V.add_mode==="completion_only"?"提交申请":"确认新增"),1)]),_:1},8,["loading"])]),default:n(()=>[l(ge,{title:Qs.value,type:"info",closable:!1,"show-icon":"",class:"mb-4"},null,8,["title"]),S((u(),y(G,{ref_key:"addPayOrderFormRef",ref:bt,model:V,rules:Js.value,"label-width":"90px",class:"pr-2"},{default:n(()=>[l(d,{label:"添加方式",prop:"add_mode"},{default:n(()=>[l(Ee,{modelValue:V.add_mode,"onUpdate:modelValue":e[70]||(e[70]=a=>V.add_mode=a)},{default:n(()=>[l(Te,{value:"create"},{default:n(()=>[...e[169]||(e[169]=[_("付呗",-1)])]),_:1}),l(Te,{value:"create_express"},{default:n(()=>[...e[170]||(e[170]=[_("快递代收",-1)])]),_:1}),l(Te,{value:"link"},{default:n(()=>[...e[171]||(e[171]=[_("关联已有",-1)])]),_:1}),l(Te,{value:"completion_only"},{default:n(()=>[...e[172]||(e[172]=[_("直接完单申请",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),V.add_mode==="create"||V.add_mode==="create_express"?(u(),g(T,{key:0},[l(d,{label:"费用类别",prop:"order_type"},{default:n(()=>[l(k,{modelValue:V.order_type,"onUpdate:modelValue":e[71]||(e[71]=a=>V.order_type=a),class:"w-full"},{default:n(()=>[l(p,{label:"挂号费",value:1}),l(p,{label:"问诊费",value:2}),l(p,{label:"药品费用",value:3}),l(p,{label:"首付费用",value:4}),l(p,{label:"尾款费用",value:5}),l(p,{label:"其他费用",value:6}),l(p,{label:"全部费用",value:7}),l(p,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),l(d,{label:"支付金额",prop:"pay_amount"},{default:n(()=>[l(ee,{modelValue:V.pay_amount,"onUpdate:modelValue":e[72]||(e[72]=a=>V.pay_amount=a),min:0,step:.01,precision:2,class:"w-full",placeholder:"请输入支付金额(元,可为 0)"},null,8,["modelValue"])]),_:1}),l(d,{label:"备注",prop:"pay_remark"},{default:n(()=>[l(o,{modelValue:V.pay_remark,"onUpdate:modelValue":e[73]||(e[73]=a=>V.pay_remark=a),type:"textarea",rows:3,maxlength:"200","show-word-limit":"",placeholder:"支付说明(选填)"},null,8,["modelValue"])]),_:1})],64)):V.add_mode==="completion_only"?(u(),y(ge,{key:1,type:"warning",closable:!1,"show-icon":"",class:"!mb-0"},{title:n(()=>[...e[173]||(e[173]=[_(" 不新增或关联支付单,仅向审核人员提交「完成订单」申请;提交后支付审核将变为待审核,审核通过后将自动结案。 ",-1)])]),_:1})):(u(),y(d,{key:2,label:"选择支付单",prop:"link_pay_order_id"},{default:n(()=>[l(k,{modelValue:V.link_pay_order_ids,"onUpdate:modelValue":e[74]||(e[74]=a=>V.link_pay_order_ids=a),class:"w-full",placeholder:"选择未绑定的支付单(可多选)",loading:sa.value,multiple:"","collapse-tags":"","collapse-tags-tooltip":""},{default:n(()=>[(u(!0),g(T,null,z(xt.value,a=>(u(),y(p,{key:a.id,label:`${a.order_no} · ¥${a.amount} · ${ct(a.order_type)} · ${h(Ot)(a)}`,value:a.id},{default:n(()=>[r("div",hu,[r("div",wu,[r("span",Vu,m(a.order_no),1),r("span",Su,"¥"+m(a.amount),1)]),r("div",Cu,m(ct(a.order_type))+" · "+m(h(Ot)(a)),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","loading"]),e[174]||(e[174]=r("div",{class:"text-xs text-gray-500 mt-1.5"}," 仅显示本诊单下未被其他业务订单占用的支付单,可同时选择多个 ",-1))]),_:1})),V.add_mode!=="completion_only"?(u(),y(d,{key:3,label:"完单申请"},{default:n(()=>[l(Ee,{modelValue:V.completion_request,"onUpdate:modelValue":e[75]||(e[75]=a=>V.completion_request=a)},{default:n(()=>[l(Te,{value:0},{default:n(()=>[...e[175]||(e[175]=[_("不申请",-1)])]),_:1}),l(Te,{value:1},{default:n(()=>[...e[176]||(e[176]=[_("申请完成订单",-1)])]),_:1})]),_:1},8,["modelValue"]),e[177]||(e[177]=r("div",{class:"text-xs text-gray-400 mt-1"},' 选择"申请完成订单"后,审核人员可在支付审核时看到此申请 ',-1))]),_:1})):b("",!0)]),_:1},8,["model","rules"])),[[ce,gt.value]])]),_:1},8,["modelValue"]),l(X,{modelValue:Ie.value,"onUpdate:modelValue":e[82]||(e[82]=a=>Ie.value=a),title:"修改处方患者信息",width:"440px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:_s},{footer:n(()=>[l(x,{onClick:e[81]||(e[81]=a=>Ie.value=!1)},{default:n(()=>[...e[179]||(e[179]=[_("取消",-1)])]),_:1}),l(x,{type:"primary",loading:Mt.value,onClick:ys},{default:n(()=>[...e[180]||(e[180]=[_(" 保存 ",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(G,{ref_key:"patchRxPatientFormRef",ref:Bt,model:ae,rules:cs,"label-width":"96px"},{default:n(()=>[l(d,{label:"患者姓名",prop:"patient_name"},{default:n(()=>[l(o,{modelValue:ae.patient_name,"onUpdate:modelValue":e[79]||(e[79]=a=>ae.patient_name=a),maxlength:"50","show-word-limit":"",placeholder:"与处方笺一致",clearable:""},null,8,["modelValue"])]),_:1}),l(d,{label:"手机",prop:"phone"},{default:n(()=>[l(o,{modelValue:ae.phone,"onUpdate:modelValue":e[80]||(e[80]=a=>ae.phone=a),maxlength:"20",placeholder:"处方登记手机号",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),l(Za,{modelValue:kt.value,"onUpdate:modelValue":e[84]||(e[84]=a=>kt.value=a),size:"920px","close-on-click-modal":!1},{header:n(()=>[r("div",Nu,[e[183]||(e[183]=r("span",{class:"text-base font-medium text-gray-800"},"查看处方",-1)),C.value&&!ht.value?(u(),g("div",Ou,[l(x,{size:"small",loading:Ae.value,onClick:un},{default:n(()=>[...e[181]||(e[181]=[_(" 下载图片 ",-1)])]),_:1},8,["loading"]),l(x,{size:"small",loading:Ae.value,onClick:dn},{default:n(()=>[...e[182]||(e[182]=[_(" 下载PDF ",-1)])]),_:1},8,["loading"])])):b("",!0)])]),default:n(()=>[S((u(),g("div",Pu,[C.value?(u(),y(vn,{key:0,modelValue:wt.value,"onUpdate:modelValue":e[83]||(e[83]=a=>wt.value=a),class:"mx-4 mt-2",style:{"margin-bottom":"0","z-index":"1",position:"relative"}},{default:n(()=>[l(Ya,{label:"药房联",name:"internal"}),l(Ya,{label:"处方联",name:"user"})]),_:1},8,["modelValue"])):b("",!0),C.value?(u(),g("div",Au,[Number(C.value.void_status)===1?(u(),y(A,{key:0,type:"danger",size:"small"},{default:n(()=>[...e[184]||(e[184]=[_("已作废",-1)])]),_:1})):Number(C.value.business_prescription_audit_rejected)===1?(u(),y(A,{key:1,type:"danger",size:"small"},{default:n(()=>[...e[185]||(e[185]=[_("业务订单已驳回",-1)])]),_:1})):Number(C.value.audit_status)===1?(u(),y(A,{key:2,type:"success",size:"small"},{default:n(()=>[...e[186]||(e[186]=[_("已通过",-1)])]),_:1})):Number(C.value.audit_status)===0?(u(),y(A,{key:3,type:"warning",size:"small"},{default:n(()=>[...e[187]||(e[187]=[_("待审核",-1)])]),_:1})):(u(),y(A,{key:4,type:"danger",size:"small"},{default:n(()=>[...e[188]||(e[188]=[_("已驳回",-1)])]),_:1}))])):b("",!0),C.value&&Number(C.value.void_status)===1?(u(),g("div",Ru," 作废人:"+m(C.value.void_by_name||"—")+",作废时间:"+m(an(C.value.void_time)),1)):C.value&&Number(C.value.business_prescription_audit_rejected)===1?(u(),g("div",Eu,[e[189]||(e[189]=r("div",{class:"font-medium"},"审核状态:已驳回(业务订单·处方审核)",-1)),C.value.business_prescription_audit_remark?(u(),g("div",Tu," 驳回意见:"+m(C.value.business_prescription_audit_remark),1)):b("",!0)])):C.value&&Number(C.value.audit_status)===2?(u(),g("div",Du,[e[190]||(e[190]=r("div",{class:"font-medium"},"消费者处方审核:已驳回",-1)),C.value.audit_remark?(u(),g("div",$u,"驳回意见:"+m(C.value.audit_remark),1)):b("",!0)])):b("",!0),C.value?(u(),y(li,{key:5,ref_key:"rxSlipRef",ref:Wa,data:C.value,variant:wt.value,"aux-library-name":Je.value,title:tn},null,8,["data","variant","aux-library-name"])):b("",!0),C.value&&(C.value.audit_by_name||C.value.audit_remark)?(u(),g("div",Uu,[C.value.audit_by_name?(u(),g("div",Fu,[_(" 审核人:"+m(C.value.audit_by_name)+" ",1),C.value.audit_time?(u(),g("span",Lu,m(Ka(C.value.audit_time)),1)):b("",!0)])):b("",!0),C.value.audit_remark?(u(),g("div",Iu,"审核意见:"+m(C.value.audit_remark),1)):b("",!0)])):b("",!0)])),[[ce,ht.value]])]),_:1},8,["modelValue"]),l(Za,{modelValue:ft.value,"onUpdate:modelValue":e[85]||(e[85]=a=>ft.value=a),title:"甘草预下单测试结果",size:"800px","destroy-on-close":""},{default:n(()=>{var a,N;return[U.value?(u(),g("div",qu,[l(s,{shadow:"never",class:"mb-4"},{header:n(()=>[r("div",zu,[e[192]||(e[192]=r("span",{class:"font-semibold"},"价格信息",-1)),l(A,{type:"success"},{default:n(()=>[...e[191]||(e[191]=[_("预下单成功",-1)])]),_:1})])]),default:n(()=>[l(ra,{column:2,border:""},{default:n(()=>[l(ue,{label:"药材成本"},{default:n(()=>{var O;return[r("span",ju,"¥"+m(((O=U.value.fee)==null?void 0:O.m_cost)||"0.00"),1)]}),_:1}),l(ue,{label:"制作费"},{default:n(()=>{var O;return[r("span",Mu,"¥"+m((((O=U.value.fee)==null?void 0:O.proces_cost)||0).toFixed(2)),1)]}),_:1}),l(ue,{label:"物流费"},{default:n(()=>{var O;return[r("span",Bu,"¥"+m((((O=U.value.fee)==null?void 0:O.lis_cost)||0).toFixed(2)),1)]}),_:1}),l(ue,{label:"总计"},{default:n(()=>[r("div",null,[r("span",Hu," ¥"+m(Xt(U.value.fee)),1),S((u(),g("div",Wu,[e[193]||(e[193]=_(" 占订单总金额: ",-1)),r("span",Ku,m(Es(U.value.fee,U.value.amount)),1),U.value.amount>0?(u(),g("span",Gu,"%(预报价 ÷ 订单金额 × 100)")):b("",!0)])),[[E,["prescription.order/finance"]]])])]),_:1})]),_:1})]),_:1}),l(s,{shadow:"never",class:"mb-4"},{header:n(()=>[...e[194]||(e[194]=[r("span",{class:"font-semibold"},"配送信息",-1)])]),default:n(()=>[l(ra,{column:2,border:""},{default:n(()=>[l(ue,{label:"调配中心"},{default:n(()=>{var O;return[_(m(((O=U.value.result)==null?void 0:O.ds_name)||"—"),1)]}),_:1}),l(ue,{label:"调配中心ID"},{default:n(()=>{var O;return[_(m(((O=U.value.result)==null?void 0:O.ds_id)||"—"),1)]}),_:1}),l(ue,{label:"服用天数范围",span:2},{default:n(()=>{var O,q,el,tl,al,ll;return[_(m(((q=(O=U.value.result)==null?void 0:O.take_days)==null?void 0:q.min)||"—")+" - "+m(((tl=(el=U.value.result)==null?void 0:el.take_days)==null?void 0:tl.max)||"—")+" 天 (默认: "+m(((ll=(al=U.value.result)==null?void 0:al.take_days)==null?void 0:ll.default)||"—")+" 天) ",1)]}),_:1})]),_:1})]),_:1}),(N=(a=U.value.result)==null?void 0:a.rule_check)!=null&&N.length?(u(),y(s,{key:0,shadow:"never",class:"mb-4"},{header:n(()=>[...e[195]||(e[195]=[r("span",{class:"font-semibold"},"医嘱备注",-1)])]),default:n(()=>[r("div",Qu,m(U.value.result.rule_check.map(O=>O.msg).join(" ")),1)]),_:1})):b("",!0),l(s,{shadow:"never"},{header:n(()=>{var O,q;return[r("div",Ju,[e[196]||(e[196]=r("span",{class:"font-semibold"},"药材明细",-1)),r("span",Xu,"共 "+m(((q=(O=U.value.result)==null?void 0:O.m_list)==null?void 0:q.length)||0)+" 味药",1)])]}),default:n(()=>{var O;return[l(Xe,{data:((O=U.value.result)==null?void 0:O.m_list)||[],border:"",stripe:"","max-height":"400"},{default:n(()=>[l(P,{type:"index",label:"#",width:"50",align:"center"}),l(P,{prop:"title",label:"药材名称","min-width":"120","show-overflow-tooltip":""}),l(P,{prop:"quantity",label:"用量",width:"80",align:"right"},{default:n(({row:q})=>[_(m(q.quantity)+m(q.unit),1)]),_:1}),l(P,{prop:"price",label:"单价(元/克)",width:"110",align:"right"},{default:n(({row:q})=>[_(" ¥"+m(Number(q.price).toFixed(4)),1)]),_:1}),l(P,{label:"小计",width:"100",align:"right"},{default:n(({row:q})=>[r("span",Yu," ¥"+m((Number(q.price)*Number(q.quantity)).toFixed(2)),1)]),_:1}),l(P,{prop:"is_available",label:"库存状态",width:"100",align:"center"},{default:n(({row:q})=>[l(A,{type:q.is_available===1?"success":"danger",size:"small"},{default:n(()=>[_(m(q.is_available===1?"有货":"缺货"),1)]),_:2},1032,["type"])]),_:1}),l(P,{prop:"brief",label:"备注","min-width":"120","show-overflow-tooltip":""})]),_:1},8,["data"])]}),_:1}),l(s,{shadow:"never",class:"mt-4"},{header:n(()=>[...e[197]||(e[197]=[r("span",{class:"font-semibold"},"订单信息",-1)])]),default:n(()=>[l(ra,{column:2,border:""},{default:n(()=>[l(ue,{label:"订单号",span:2},{default:n(()=>[_(m(U.value.order_no||"—"),1)]),_:1}),l(ue,{label:"剂数"},{default:n(()=>[r("span",Zu,m(U.value.dose_count||"—")+"剂",1)]),_:1}),l(ue,{label:"单剂量"},{default:n(()=>{var O;return[r("span",ed,m(Ts((O=U.value.result)==null?void 0:O.m_list))+"克 ",1)]}),_:1})]),_:1})]),_:1})])):b("",!0)]}),_:1},8,["modelValue"]),l(X,{modelValue:$e.value,"onUpdate:modelValue":e[88]||(e[88]=a=>$e.value=a),title:"批量改派医助",width:"440px","append-to-body":""},{footer:n(()=>[l(x,{onClick:e[87]||(e[87]=a=>$e.value=!1)},{default:n(()=>[...e[200]||(e[200]=[_("取消",-1)])]),_:1}),l(x,{type:"primary",loading:Et.value,onClick:wl},{default:n(()=>[...e[201]||(e[201]=[_("确定改派",-1)])]),_:1},8,["loading"])]),default:n(()=>[r("div",td,[e[198]||(e[198]=_(" 已选 ",-1)),r("strong",ad,m(fe.value.length),1),e[199]||(e[199]=_(" 单,将订单「创建人(医助归属)」改派为: ",-1))]),l(k,{modelValue:at.value,"onUpdate:modelValue":e[86]||(e[86]=a=>at.value=a),clearable:"",filterable:"",placeholder:"选择目标医助",class:"!w-full"},{default:n(()=>[(u(!0),g(T,null,z(we.value,a=>(u(),y(p,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e[202]||(e[202]=r("p",{class:"text-xs text-gray-400 mt-2 leading-relaxed"}," 仅变更订单的业务归属(医助筛选 / 业绩口径),并写入操作日志;不影响处方、支付单及审核状态。已是该医助的订单会自动跳过。 ",-1))]),_:1},8,["modelValue"]),l(h(cl),{ref_key:"diagnosisViewRef",ref:pa},null,512)])}}}),kd=ri(sd,[["__scopeId","data-v-7b9e328c"]]);export{kd as default}; diff --git a/server/public/admin/assets/order_list_h5-B-ZXMOQL.js b/server/public/admin/assets/order_list_h5-B-ZXMOQL.js deleted file mode 100644 index 2ff032890..000000000 --- a/server/public/admin/assets/order_list_h5-B-ZXMOQL.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-DFFSwWxS.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-QAkeqQ9Q.js","assets/index-Dxvz9lb1.js","assets/index-B3vHLAW8.css","assets/perm-DOfZAzJJ.js","assets/DailyMatrix-BSZy3g0c.js","assets/picker-BDO86vcM.js","assets/index-BnfLT5cB.js","assets/index-B3imPWFk.css","assets/index-yD39j6dM.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-ClBYIwNX.js","assets/index-D0f1Mn00.css","assets/index-BU3OYnKm.js","assets/file-CefRfHD9.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-CE1isNg2.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-GXQTu6xF.js","assets/FollowupAudioReview-92Fgd7wW.js","assets/FollowupAudioField-BG0mRnT5.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-Bdp996ss.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-DFudUjln.js","assets/RecordingPlaybackBlock-GbWd6PMw.js","assets/RecordingVideoPlayer-grUPRDCj.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CafeXQX5.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-0TFZiCkF.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-C2wB-h-D.js","assets/doctor-8vo_5fa4.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-DDh0aI3_.js","assets/patient-Bz8-LT2R.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-BP2alDvZ.js","assets/PrescriptionOrderDetailDrawer-v90LlSLZ.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-B4rggqa1.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-Cis-_1uh.js","assets/index-Cf6ygfGC.js","assets/medicine-EUKQYFsM.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-DT7CSmCp.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]); -import{o as zl,R as Tl,ap as Gn,bp as Jn,q as o,r as _,s as r,v as a,D as l,F as T,G as W,ae as L,T as d,P as f,bj as Qn,ac as A,w as Yn,u as E,cg as Xn,L as p,bI as Zn,bJ as er,ch as tr,bn as ar,bB as Ra,O as v,bm as lr,cm as El,bd as sr,C as Ta,bb as nr,aA as rr,bc as dt,bh as ir,bi as or,bL as ur,K as dr,ad as Bt,bC as pr,ci as cr,aw as Wt,$ as mr,Z as _r,_ as fr,b_ as vr,bo as yr,b$ as gr,c0 as br,c1 as xr,c2 as kr,bk as hr,bl as wr,cn as Vr,bz as Sr,bt as Nr,ba as Cr,c4 as Pr,c5 as Or,B as Ar,J as Rr,aB as Tr,a1 as Er,c9 as Ur,ca as Dr,cc as $r,U as zr,S as Fr,I as jr,bf as qr,bq as Lr,Y as Ir,X as Mr,cd as Hr,al as Br,M as b,p as N,aC as _e,n as pt,e as Kt,cf as Wr,ce as Kr}from"./.pnpm-CyuAWpdG.js";import{_ as Gr}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{L as Jr,u as Qr}from"./useListTimeFilter-7kq30CnT.js";import{_ as Yr}from"./PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-DLSipsFu.js";import{_ as Xr}from"./GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-jSvDxDB9.js";import{g as Zr,o as ei,z as ti,i as ai,f as li,m as Q,G as si,H as ni,I as ri,J as ii,K as oi,L as ui,M as Ul,N as di,O as pi,P as ci,Q as Dl,R as mi,S as _i,T as fi,U as vi,V as yi,W as gi,r as bi,l as Ea,k as xi}from"./tcm-QAkeqQ9Q.js";import{z as ki,A as hi,n as wi,C as Ua,x as Vi,r as Si,v as $l,w as Ni,D as Ci,E as Pi}from"./prescription-order-utils-CXfs2Bra.js";import{P as Oi}from"./index-DT7CSmCp.js";import{u as Ai,j as C,n as Ri,_ as Ti}from"./index-Dxvz9lb1.js";import{d as Ei}from"./department-DToZNvdH.js";import{u as Ui}from"./usePaging-CghUEVfD.js";const Di={class:"prescription-order-page prescription-order-list prescription-order-h5 po-h5-app"},$i={class:"flex flex-col gap-3"},zi={key:0,class:"flex items-center gap-2 flex-wrap"},Fi=["onClick"],ji={class:"font-medium"},qi={class:"flex items-center gap-2 flex-wrap"},Li=["onClick"],Ii={class:"font-medium"},Mi={class:"flex items-center gap-2 flex-wrap"},Hi=["onClick"],Bi={class:"font-medium"},Wi={class:"flex items-center gap-2 flex-wrap"},Ki=["onClick"],Gi={class:"font-medium"},Ji={class:"flex items-center gap-2 flex-wrap"},Qi=["onClick"],Yi={class:"font-medium"},Xi={class:"po-list-stats grid grid-cols-1 sm:grid-cols-2 gap-4 mb-5"},Zi={class:"po-stat-surface po-stat-surface--order relative overflow-hidden rounded-xl border border-slate-200/90 px-5 py-4 shadow-sm"},eo={class:"relative flex items-start justify-between gap-3"},to={class:"flex items-center gap-2 text-slate-500 text-xs font-medium"},ao={class:"mt-2 space-y-1.5 min-w-0"},lo={class:"text-2xl sm:text-[28px] font-bold text-sky-700 tabular-nums leading-none"},so={class:"flex flex-wrap gap-x-3 gap-y-1 text-xs text-slate-500 tabular-nums"},no={class:"text-slate-400"},ro={class:"stat-icon-wrap h-10 w-10 shrink-0 rounded-lg bg-sky-500/10 flex items-center justify-center text-sky-600"},io={class:"relative mt-2 text-xs text-slate-500 leading-relaxed"},oo={class:"po-stat-surface po-stat-surface--pay relative overflow-hidden rounded-xl border border-slate-200/90 px-5 py-4 shadow-sm"},uo={class:"relative flex items-start justify-between gap-3"},po={class:"flex items-center gap-2 text-slate-500 text-xs font-medium"},co={class:"mt-2 space-y-1.5 min-w-0"},mo={class:"text-2xl sm:text-[28px] font-bold text-emerald-700 tabular-nums leading-none"},_o={class:"flex flex-wrap gap-x-3 gap-y-1 text-xs text-slate-500 tabular-nums"},fo={class:"text-slate-400"},vo={class:"stat-icon-wrap h-10 w-10 shrink-0 rounded-lg bg-emerald-500/10 flex items-center justify-center text-emerald-600"},yo={class:"relative mt-2 text-xs text-slate-500 leading-relaxed"},go={class:"po-filter-toggle__label"},bo={class:"po-h5-list-head"},xo={class:"po-table-toolbar"},ko={class:"po-table-toolbar__title-wrap"},ho={class:"po-table-hint text-gray-400"},wo={class:"po-focus-board"},Vo={class:"po-focus-board__value"},So={class:"po-focus-board__value"},No={class:"po-focus-board__value"},Co={class:"po-focus-board__value"},Po={class:"po-card-list"},Oo=["onClick"],Ao={class:"po-card__head"},Ro={class:"po-card__order-no"},To={class:"po-card__order-no-main"},Eo={class:"po-card__tags"},Uo={class:"po-card__id"},Do={key:0,class:"po-card__alert"},$o={class:"po-card__row"},zo={class:"po-card__field"},Fo={class:"po-card__value"},jo={class:"po-card__field po-card__field--right"},qo={class:"po-card__value po-card__amount"},Lo={class:"po-card__row"},Io={class:"po-card__field"},Mo={class:"po-card__field po-card__field--right"},Ho={class:"po-card__value"},Bo={class:"po-card__row"},Wo={class:"po-card__field"},Ko={class:"po-card__value"},Go={class:"po-card__field po-card__field--right"},Jo={class:"po-card__value"},Qo={key:1,class:"po-card__row"},Yo={class:"po-card__field"},Xo={class:"po-card__value text-orange-600 font-semibold"},Zo={class:"po-card__field po-card__field--right"},eu={class:"po-card__value"},tu={key:0,class:"text-primary"},au={key:1},lu={key:2,class:"po-card__row"},su={class:"po-card__field"},nu={class:"po-card__value"},ru={key:0,class:"text-primary"},iu={key:1},ou={class:"po-card__field po-card__field--right"},uu={class:"po-card__value po-card__time"},du={class:"po-card__tags-row"},pu={class:"po-card__meta"},cu={key:0},mu={key:1},_u={key:2,class:"po-card__meta-time"},fu={class:"flex justify-end mt-4"},vu={class:"po-detail-drawer-head flex w-full min-w-0 flex-col gap-2"},yu={class:"po-detail-drawer-head-main flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1"},gu={key:0,class:"po-detail-drawer-actions flex flex-wrap items-center gap-2"},bu={key:1,class:"po-detail-body px-6 pb-6 h-full overflow-y-auto"},xu={class:"min-w-0 break-words text-sm leading-relaxed"},ku={class:"font-mono font-semibold text-red-700"},hu={class:"font-mono font-semibold text-red-700"},wu={class:"po-workflow-steps-wrap bg-gray-50/80 border border-gray-100 rounded-lg p-5 mb-5 shadow-sm"},Vu={key:0,class:"text-red-500 font-medium"},Su={key:1},Nu={key:2,class:"text-green-600"},Cu={key:3,class:"text-gray-400"},Pu={key:0,class:"text-red-500 font-medium"},Ou={key:1},Au={key:2,class:"text-green-600"},Ru={key:3,class:"text-gray-400"},Tu={key:0,class:"text-amber-600 font-medium"},Eu={key:1,class:"text-primary font-medium"},Uu={key:2},Du={key:3,class:"text-green-600"},$u={key:4,class:"text-red-500 font-medium"},zu={class:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-4 mb-5"},Fu={class:"flex items-center justify-between mb-1"},ju={class:"stat-value text-red-500 font-bold text-xl"},qu={class:"stat-value text-green-600 font-bold text-xl"},Lu={class:"stat-value text-primary font-bold text-xl"},Iu={class:"grid grid-cols-1 md:grid-cols-2 gap-4 mb-4"},Mu={key:0,class:"audit-stamp stamp-pass"},Hu={key:1,class:"audit-stamp stamp-reject"},Bu={class:"po-panel-rx-header flex w-full min-w-0 flex-col gap-2"},Wu={class:"flex w-full min-w-0 flex-wrap items-center justify-between gap-x-2 gap-y-1"},Ku={class:"shrink-0 text-xs text-gray-400 tabular-nums"},Gu={key:0,class:"min-w-0 text-xs leading-snug text-gray-500"},Ju={class:"text-primary font-medium"},Qu={class:"flex w-full min-w-0 flex-wrap items-center gap-x-3 gap-y-1"},Yu={class:"text-red-500 font-medium"},Xu={class:"flex flex-col gap-1 text-sm leading-relaxed"},Zu={key:0,class:"text-gray-500 mr-1"},ed={key:1,class:"ml-2 text-gray-500"},td={key:0},ad={key:1,class:"ml-2 text-gray-500"},ld={class:"flex items-center gap-1 flex-wrap"},sd={class:"flex flex-col gap-1.5 text-sm leading-relaxed"},nd={key:0},rd={key:0,class:"mt-4"},id={class:"flex flex-col gap-4 h-full"},od={class:"text-red-500"},ud={key:0,class:"audit-stamp stamp-pass"},dd={key:1,class:"audit-stamp stamp-reject"},pd={class:"flex items-center justify-between"},cd={class:"flex items-center gap-3"},md={key:0,class:"text-xs text-gray-500"},_d={class:"text-primary font-medium"},fd={class:"text-red-500"},vd={class:"po-biz-diagnosis-id flex min-w-0 flex-col gap-3 rounded-2xl border border-slate-200/90 bg-gradient-to-br from-slate-50 to-white px-4 py-3.5 shadow-sm sm:flex-row sm:items-center sm:justify-between"},yd={class:"flex min-w-0 flex-col gap-1"},gd={class:"font-mono text-[1.125rem] font-semibold leading-tight tracking-tight text-slate-900 tabular-nums"},bd={class:"flex flex-wrap items-center gap-x-4 gap-y-1 text-[13px]"},xd={class:"font-mono text-primary"},kd={class:"text-gray-500"},hd={key:0},wd={key:1,class:"text-gray-500"},Vd={key:0,class:"text-xs text-gray-500 mt-1"},Sd={key:1,class:"text-gray-400"},Nd={class:"po-audit-remark"},Cd={class:"po-audit-remark"},Pd={class:"po-logistics-toolbar flex flex-wrap items-center gap-2 mb-4"},Od={class:"po-logistics-toolbar__links flex items-center gap-3 w-full pt-1"},Ad={key:1,class:"py-6 text-center text-sm text-gray-500"},Rd={key:2,class:"logistics-content bg-gray-50/50 p-4 rounded-md"},Td={key:0,class:"text-sm mb-4 font-medium flex items-center gap-2"},Ed={class:"text-gray-800"},Ud={key:1,class:"text-xs text-gray-400 ml-1"},Dd={key:2,class:"text-xs text-gray-400"},$d={class:"flex items-center gap-2 mb-1"},zd={class:"font-medium text-[13px]"},Fd={class:"text-sm text-gray-700 font-medium"},jd={class:"create-order-dialog__inner"},qd={key:0,class:"create-order-rx-card"},Ld={class:"create-order-rx-card__head"},Id={class:"create-order-rx-card__meta"},Md={class:"create-order-rx-card__id"},Hd={key:0,class:"create-order-rx-card__sn"},Bd={class:"create-order-rx-card__patient"},Wd={class:"create-order-rx-card__herbs"},Kd={class:"create-order-step-lead"},Gd={class:"create-order-step-panel"},Jd={class:"create-order-step-panel"},Qd={class:"flex flex-wrap items-center gap-2 pb-2 border-b border-gray-100"},Yd={class:"text-xs text-gray-400"},Xd={class:"mt-2 space-y-1.5 text-xs sm:text-sm"},Zd={key:0,class:"space-y-1.5"},ep={class:"text-gray-800 break-all"},tp={key:1,class:"text-gray-400"},ap={class:"flex items-center gap-1 w-full"},lp={class:"flex gap-2 w-full"},sp={class:"flex flex-col gap-0.5",style:{"line-height":"normal"}},np={class:"flex items-center justify-between"},rp={class:"font-medium text-[13px] text-gray-800"},ip={class:"text-orange-500 font-medium ml-4"},op={class:"flex items-center justify-between text-xs text-gray-400 mt-1"},up={class:"truncate pr-2"},dp={class:"shrink-0"},pp={class:"create-order-pay-hint text-gray-500"},cp={class:"text-amber-600 font-medium"},mp={class:"create-order-step-panel"},_p={class:"create-order-deposit-bar__cell"},fp={class:"create-order-deposit-bar__sub"},vp={class:"create-order-deposit-bar__cell"},yp={class:"create-order-deposit-bar__sub"},gp={class:"create-order-footer"},bp={class:"create-order-footer__hint"},xp={class:"create-order-footer__step"},kp={key:0,class:"create-order-footer__warn"},hp={class:"create-order-footer__actions"},wp={class:"text-sm"},Vp={class:"text-gray-600"},Sp={class:"text-gray-600"},Np={key:0,class:"text-xs text-amber-800 mt-2"},Cp={class:"text-xs text-gray-500 mt-1"},Pp={class:"text-xs text-gray-500 mt-1"},Op={class:"flex flex-col gap-0.5 py-0.5"},Ap={class:"flex items-center justify-between"},Rp={class:"text-sm"},Tp={class:"text-orange-500 font-medium ml-4"},Ep={class:"text-xs text-gray-400"},Up={key:0,class:"text-xs font-medium text-gray-500 mb-3"},Dp={class:"flex items-center gap-1 w-full"},$p={class:"flex items-center gap-1 w-full"},zp={class:"flex items-center gap-1 w-full"},Fp={class:"flex items-center justify-between w-full pr-2 gap-3"},jp={key:0,class:"flex items-center gap-2 shrink-0"},qp={class:"rx-wrap"},Lp={key:1,class:"rx-statusbar"},Ip={key:2,class:"rx-status rx-status-danger"},Mp={key:3,class:"rx-status rx-status-danger"},Hp={key:0,class:"mt-1"},Bp={key:4,class:"rx-status rx-status-danger"},Wp={key:0,class:"mt-1"},Kp={key:6,class:"rx-audit"},Gp={key:0},Jp={key:0,class:"ml-2 text-gray-400"},Qp={key:1,class:"mt-1"},Yp={key:0,class:"px-4"},Xp={class:"flex items-center justify-between"},Zp={class:"text-lg font-semibold text-orange-600"},ec={class:"text-lg font-semibold text-blue-600"},tc={class:"text-lg font-semibold text-green-600"},ac={class:"text-xl font-bold text-red-600"},lc={class:"text-sm text-gray-500 mt-1.5"},sc={class:"font-medium text-gray-700"},nc={key:0},rc={class:"text-sm text-gray-700 leading-relaxed"},ic={class:"flex items-center justify-between"},oc={class:"text-sm text-gray-500"},uc={class:"font-medium text-orange-600"},dc={class:"text-base font-medium"},pc={class:"text-base font-medium"},cc=zl({name:"prescriptionOrderListH5"}),mc=zl({...cc,setup(_c){const Fl=Hr(()=>Br(()=>import("./edit-DFFSwWxS.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),we=Ai(),Da=b(null);function jl(){var e,n;const t=Number((e=c.value)==null?void 0:e.diagnosis_id);if(!t){C.msgWarning("本订单未关联诊单,无法查看患者诊单信息");return}(n=Da.value)==null||n.openViewOnly(t)}const ql=2,Ll=6,$a=[3,8],Il=[0,3,6],Ml=N(()=>{const t=we.userInfo;if(!t||Number(t.root)===1)return!1;const e=Array.isArray(t.role_ids)?t.role_ids.map(n=>Number(n)):[];return e.includes(Ll)?!$a.some(n=>e.includes(n)):!1}),Hl=N(()=>{const t=we.userInfo;if(!t)return!1;if(Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(n=>Number(n)):[];return $a.some(n=>e.includes(n))}),Bl=N(()=>Ml.value||Hl.value),za=b([]),Ve=N(()=>{const t=we.userInfo;if(!t||Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(n=>Number(n)):[];return e.includes(ql)?e.some(n=>Il.includes(n)):!0}),Wl=N(()=>Ve.value?"详情/审核":"详情"),Kl=[0,3,6],Fa=()=>{const t=we.userInfo;if(!t)return!1;if(Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(n=>Number(n)):[];return Kl.some(n=>e.includes(n))},ct=b([]),mt=b([]),Gt=b([]),He=b([]),_t=b([]),Gl={value:"id",label:"name",children:"children"};function ja(t,e){for(const n of t||[]){if(n==null||typeof n!="object")continue;const i=n;if(Number(i.id)===e)return i;const u=ja(i.children||[],e);if(u)return u}return null}function qa(t){const e=Number(t.id),n=[];Number.isFinite(e)&&e>0&&n.push(e);for(const i of t.children||[])i&&typeof i=="object"&&n.push(...qa(i));return n}function Jl(t,e){const n=ja(e,t);return n?qa(n):[t]}async function Ql(){try{const[t,e,n]=await Promise.all([Zr(),ei(),Ei()]);Gt.value=Array.isArray(t)?t:[],He.value=Array.isArray(e)?e:[];const i=Array.isArray(n)?n:[];_t.value=i}catch{Gt.value=[],He.value=[],_t.value=[]}}const Yl=t=>t.map(e=>{var n;return{value:e.province,label:e.province,code:e.code,children:((n=e.citys)==null?void 0:n.map(i=>{var u;return{value:i.city,label:i.city,code:i.code,children:((u=i.areas)==null?void 0:u.map(g=>({value:g.area,label:g.area,code:g.code})))||[]}}))||[]}}),Xl=async()=>{try{console.log("开始加载省市区数据...");const e=await fetch("https://cos.zhenyangtang.com.cn/area/ChinaCitys.json");if(console.log("响应状态:",e.status),!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const n=await e.json();console.log("加载的数据条数:",n==null?void 0:n.length),ct.value=Yl(n),console.log("regionOptions 已设置,条数:",ct.value.length)}catch(t){console.error("加载省市区数据失败:",t),ct.value=[]}},Zl=async()=>{try{const t=await Ri({type:"server_order"});mt.value=wi(t==null?void 0:t.server_order)}catch(t){console.error("加载服务套餐选项失败:",t),mt.value=[]}},es=[{label:"全部",value:""},{label:"待双审通过",value:1},{label:"待发货",value:2},{label:"已发货",value:5},{label:"已签收",value:6},{label:"已完成",value:3},{label:"已取消",value:4},{label:"进行中",value:7},{label:"暂不制药",value:8},{label:"拒收",value:9},{label:"退款",value:10},{label:"保留药方",value:11},{label:"制药缓发",value:12}];function ts(t){re.value="",k.fulfillment_status=t,Y()}const re=b(""),as=[{label:"全部",value:""},{label:"甘草",value:"gancao"},{label:"洛阳直发",value:"direct"},{label:"自营",value:"self"}];function ls(t){k.supply_mode=t,Y()}const ss=[{label:"全部",value:""},{label:"顺丰",value:"sf"},{label:"京东",value:"jd"}];function ns(t){k.express_company=t,Y()}const k=_e({order_no:"",prescription_id:"",patient_keyword:"",express_keyword:"",express_company:"",doctor_id:"",assistant_id:"",assistant_dept_id:"",fulfillment_status:"",prescription_audit_status:"",payment_slip_audit_status:"",supply_mode:"",audit_admin_id:""}),rs=[{label:"全部",value:""},{label:"待审核",value:0},{label:"已通过",value:1},{label:"已驳回",value:2}],is=[{label:"全部",value:""},{label:"待审核",value:0},{label:"已通过",value:1},{label:"已驳回",value:2}];function os(t){re.value="",k.prescription_audit_status=t,Y()}function us(t){re.value="",k.payment_slip_audit_status=t,Y()}function ft(t){if(re.value===t){re.value="",k.prescription_audit_status="",k.payment_slip_audit_status="",k.fulfillment_status="",Y();return}re.value=t,k.prescription_audit_status="",k.payment_slip_audit_status="",k.fulfillment_status="",t==="pendingRx"?k.prescription_audit_status=0:t==="pendingPay"?(k.prescription_audit_status=1,k.payment_slip_audit_status=0):t==="pendingShip"?k.fulfillment_status=2:t==="risk"&&(k.payment_slip_audit_status=2),Y()}const{time_type:Re,dateRange:Jt,resolve:ds,handleTimeTypeChange:ps,handleCustomDateChange:cs,resetTimeFilter:ms}=Qr("all"),La=()=>{te.page=1,I()},_s=()=>ps(La),fs=()=>cs(La);async function vs(t){const[e,n]=ds(),i={...t,start_time:e,end_time:n};if(i.prescription_id===""||i.prescription_id===void 0?delete i.prescription_id:i.prescription_id=Number(i.prescription_id),(i.fulfillment_status===""||i.fulfillment_status===void 0)&&delete i.fulfillment_status,(i.prescription_audit_status===""||i.prescription_audit_status===void 0)&&delete i.prescription_audit_status,(i.payment_slip_audit_status===""||i.payment_slip_audit_status===void 0)&&delete i.payment_slip_audit_status,(!i.supply_mode||i.supply_mode==="")&&delete i.supply_mode,i.doctor_id===""||i.doctor_id===void 0||i.doctor_id===null?delete i.doctor_id:i.doctor_id=Number(i.doctor_id),i.assistant_id===""||i.assistant_id===void 0||i.assistant_id===null?delete i.assistant_id:i.assistant_id=Number(i.assistant_id),i.assistant_dept_id===""||i.assistant_dept_id===void 0||i.assistant_dept_id===null?delete i.assistant_dept_id:i.assistant_dept_id=Number(i.assistant_dept_id),i.order_no||delete i.order_no,String(i.patient_keyword||"").trim()||delete i.patient_keyword,i.audit_admin_id===""||i.audit_admin_id===void 0||i.audit_admin_id===null?delete i.audit_admin_id:i.audit_admin_id=Number(i.audit_admin_id),String(i.express_keyword||"").trim()||delete i.express_keyword,(!i.express_company||i.express_company==="")&&delete i.express_company,!String(i.start_time||"").trim()||!String(i.end_time||"").trim())delete i.start_time,delete i.end_time;else{const u=String(i.start_time||"").trim(),g=String(i.end_time||"").trim();/^\d{4}-\d{2}-\d{2}$/.test(u)&&/^\d{4}-\d{2}-\d{2}$/.test(g)&&(i.start_time=`${u} 00:00:00`,i.end_time=`${g} 23:59:59`)}return ti(i)}const{pager:te,getLists:I,resetPage:Y,resetParams:ys}=Ui({fetchFun:vs,params:k});Tl(()=>{var t;return(t=te.extend)==null?void 0:t.audit_admin_options},t=>{Array.isArray(t)&&(za.value=t.map(e=>{if(e==null||typeof e!="object")return null;const n=e,i=Number(n.id),u=String(n.name??"").trim();return!Number.isFinite(i)||i<=0||u===""?null:{id:i,name:u}}).filter(e=>e!=null))},{immediate:!0});const Ia=N(()=>{const t=k.assistant_dept_id;if(t===""||t==null)return He.value;const e=Number(t);if(!Number.isFinite(e))return He.value;const n=new Set(Jl(e,_t.value));return He.value.filter(i=>{const u=i.dept_ids;return!Array.isArray(u)||u.length===0?!1:u.map(Number).some(g=>n.has(g))})});function gs(){const t=k.assistant_id;if(t!==""&&t!=null){const e=Number(t);Ia.value.some(i=>Number(i.id)===e)||(k.assistant_id="")}Y()}const ce=N(()=>{const t=te.extend,e=(t==null?void 0:t.stats_order_amount)??(t==null?void 0:t.today_order_amount),n=(t==null?void 0:t.stats_linked_pay_amount)??(t==null?void 0:t.today_linked_pay_amount),i=Ie=>{const S=Number(Ie);return Number.isFinite(S)?Math.round(S*100)/100:0},u=Ie=>Ie.toFixed(2),g=(t==null?void 0:t.stats_order_amount_not_cancelled)!==void 0&&(t==null?void 0:t.stats_order_amount_cancelled)!==void 0,y=(t==null?void 0:t.stats_linked_pay_amount_not_cancelled)!==void 0&&(t==null?void 0:t.stats_linked_pay_amount_cancelled)!==void 0,x=i(g?t==null?void 0:t.stats_order_amount_not_cancelled:e),$=g?i(t==null?void 0:t.stats_order_amount_cancelled):0,se=i(y?t==null?void 0:t.stats_linked_pay_amount_not_cancelled:n),h=y?i(t==null?void 0:t.stats_linked_pay_amount_cancelled):0,j=(t==null?void 0:t.stats_order_amount_performance)!==void 0?i(t==null?void 0:t.stats_order_amount_performance):x,ge=(t==null?void 0:t.stats_linked_pay_amount_performance)!==void 0?i(t==null?void 0:t.stats_linked_pay_amount_performance):se,he=String((t==null?void 0:t.stats_time_start)??"").trim(),It=String((t==null?void 0:t.stats_time_end)??"").trim(),Pa=he&&It?`统计时间:${he} ~ ${It}`:"统计时间:—",rt=String((t==null?void 0:t.stats_scope)??"restricted");let ee="统计口径:与当前列表数据可见范围一致";rt==="all"?ee="统计口径:支付单审核白名单角色,按全量订单;与下方筛选项(医生/医助/医助部门/患者等,不含「创建时间」)一致":rt==="assistant"?ee="统计口径:仅计诊单医助为本人且满足下方其它筛选项的订单":rt==="own_rx"&&(ee="统计口径:本人创建的订单 + 关联处方开方人为本人的订单(含医助代建);与下方筛选项(不含「创建时间」)一致");const pe=Re.value==="all"?"全部":Re.value==="today"?"今日":"区间";return{order:i(e),pay:i(n),orderStr:u(i(e)),payStr:u(i(n)),orderNotCancelledStr:u(x),orderCancelledStr:u($),payNotCancelledStr:u(se),payCancelledStr:u(h),orderPerformanceStr:u(j),payPerformanceStr:u(ge),orderHeading:`${pe}业绩(业务订单额)`,payHeading:`${pe}业绩(关联实付)`,periodLine:Pa,scopeHint:ee,orderSplitHint:"业绩 = 除履约已取消(4)外全部订单金额;下方为合计与已取消明细"}}),vt=N(()=>{const t=te.extend,e=y=>{const x=Number(y);return!Number.isFinite(x)||x<0?0:Math.trunc(x)},n=e(t==null?void 0:t.focus_pending_rx_count),i=e(t==null?void 0:t.focus_pending_pay_count),u=e(t==null?void 0:t.focus_pending_ship_count),g=e(t==null?void 0:t.focus_risk_count);return{pendingRx:n,pendingPay:i,pendingShip:u,risk:g}});function Qt(t,e){const n=Number(e==null?void 0:e.prescription_audit_status),i=Number(e==null?void 0:e.payment_slip_audit_status),u=Number(e==null?void 0:e.fulfillment_status);return t==="rx"&&n===0||t==="pay"&&n===1&&i===0||t==="fulfillment"&&u===2?"po-status-tag is-focus":t==="rx"&&n===2||t==="pay"&&i===2||t==="fulfillment"&&u===4?"po-status-tag is-risk":"po-status-tag"}function yt({row:t}){const e=Number(t==null?void 0:t.prescription_audit_status),n=Number(t==null?void 0:t.payment_slip_audit_status),i=Number(t==null?void 0:t.fulfillment_status),u=St(t==null?void 0:t.recipient_phone,t==null?void 0:t.prescription_phone);return e===2||n===2||u?"po-row-risk":e===0||e===1&&n===0||i===2?"po-row-focus":i===3||i===6?"po-row-done":""}Tl(Ve,t=>{t||k.prescription_audit_status===""||k.prescription_audit_status===void 0||(k.prescription_audit_status="",Y())},{immediate:!0});function bs(){re.value="",ms(),k.order_no="",k.prescription_id="",k.patient_keyword="",k.express_keyword="",k.express_company="",k.doctor_id="",k.assistant_id="",k.assistant_dept_id="",k.fulfillment_status="",k.prescription_audit_status="",k.payment_slip_audit_status="",k.supply_mode="",k.audit_admin_id="",ys()}function gt(t){return{1:"挂号费",2:"问诊费",3:"药品费用",4:"首付费用",5:"尾款费用",6:"其他费用",7:"全部费用",8:"驼奶费用"}[Number(t)]??"—"}function Ma(t){return t===1?"已通过":t===2?"已驳回":"待审核"}function Ha(t){return t===1?"success":t===2?"danger":"info"}function Yt(t){return{1:"待双审通过",2:"待发货",3:"已完成",4:"已取消",5:"已发货",6:"已签收",7:"进行中",8:"暂不制药",9:"拒收",10:"退款",11:"保留药方",12:"制药缓发"}[Number(t)]??"—"}function xs(t){const e=Number(t);return e===3||e===6?"success":e===5?"primary":e===4?"danger":e===2||e===7?"warning":e===8||e===11||e===12?"info":e===9||e===10?"danger":"info"}function K(t){const e=Number(t);return Number.isNaN(e)?"—":e.toFixed(2)}function Se(t){if(t==null||t==="")return"—";if(typeof t=="number"&&t>1e9&&t<1e11){const e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}return String(t)}const ks=[0,3];function Ba(){const t=we.userInfo;return t?Number(t.root)===1?!0:(Array.isArray(t.role_ids)?t.role_ids.map(n=>Number(n)):[]).some(n=>ks.includes(n)):!1}function Wa(t){var n;const e=Number((n=we.userInfo)==null?void 0:n.id);return e>0&&Number(t.creator_id)===e}function bt(t){return Number(t.prescription_audit_status)===1&&Number(t.payment_slip_audit_status)===1}function Ka(t){const e=Number(t.fulfillment_status);return e===3||e===4||Wa(t)&&bt(t)&&!Ba()||Ua(t)?!1:e===1||e===2}function hs(t){const e=Number(t.fulfillment_status);return e===3||e===4||e===6?!1:Number(t.prescription_audit_status)===0}function ws(t){const e=Number(t.fulfillment_status);return e===3||e===4?!1:Number(t.prescription_audit_status)===1&&Number(t.payment_slip_audit_status)===0}function Vs(t){if(Ua(t))return!1;const e=Number(t.fulfillment_status);if(e===3||e===4||e===6)return!1;const n=Number(t.prescription_audit_status),i=Number(t.payment_slip_audit_status);return(n===1||n===2)&&i===0}function Ss(t){const e=Number(t.fulfillment_status);if(e===3||e===4||e===6)return!1;const n=Number(t.prescription_audit_status),i=Number(t.payment_slip_audit_status);return n===1&&(i===1||i===2)}function Ga(t){return Ua(t)?!1:Number(t.fulfillment_status)===1}function Xt(t){return Number(t.fulfillment_status)===2&&bt(t)}function Zt(t){const e=Number(t.fulfillment_status);return e===5||e===6}function ea(t){const e=Number(t.fulfillment_status);return(e===5||e===6)&&Number(t.payment_slip_audit_status)===1}function ta(t){const e=Number(t.fulfillment_status);return(e===5||e===6||e===3||e===9)&&Number(t.payment_slip_audit_status)===1}function Ja(t){return bt(t)}function Qa(t){if(t.can_upload_pharmacy===!1)return!1;const e=Number(t.prescription_audit_status),n=Number(t.fulfillment_status),i=String(t.gancao_reciperl_order_no||"").trim(),u=String(t.ej_pharmacy_order_no||"").trim(),g=String(t.ej_pharmacy_status||"").toUpperCase()==="REJECTED"||String(t.ej_pharmacy_review_status||"").toUpperCase()==="REJECTED";return e===1&&(![3,4,8,9,10,11,12].includes(n)||n===9&&g)&&i===""&&(u===""||g)}function Ya(t){return{1:"待支付",2:"已支付",3:"已取消",4:"已退款",5:"待审核"}[Number(t)]??"—"}const xt=b(!0),Xa=N(()=>{const t=k,e=["order_no","prescription_id","patient_keyword","express_keyword","doctor_id","assistant_dept_id","assistant_id"];let n=Re.value!=="all"?1:0;for(const i of e){const u=t[i];u!=null&&(typeof u=="string"&&u.trim()===""||Array.isArray(u)&&u.length===0||(n+=1))}return n});function Ns(t){return Zt(t)||ea(t)||ta(t)||Qa(t)||Ga(t)}function Cs(t,e){t==="addPayOrder"?bl(e):t==="complete"?xl(e):t==="refund"?gl(e):t==="uploadPharmacy"?yn(e):t==="withdraw"&&cn(e)}function aa(t){if(!(t!=null&&t.id))return!1;const e=Number(t.fulfillment_status);return e!==3&&e!==4}const J=b(!1),la=b(!1),c=b(null),sa=b();async function Ps(t){var e;I(),J.value&&Number((e=c.value)==null?void 0:e.id)===t&&await Pt(t)}const Os=N(()=>{var t;return Vi((t=c.value)==null?void 0:t.service_package,mt.value)}),kt=N(()=>{if(!c.value)return 0;const t=Number(c.value.fulfillment_status),e=Number(c.value.prescription_audit_status),n=Number(c.value.payment_slip_audit_status);return t===3||[8,9,10,11,12].includes(t)?5:t===6||t===5||t===7?4:t===4?e===2?1:n===2?2:3:t===2?3:e===0||e===2?1:n===0||n===2?2:3}),ht=N(()=>{var e;const t=Number((e=c.value)==null?void 0:e.prescription_audit_status);return t===1?"success":t===2?"error":kt.value===1?"process":"wait"}),wt=N(()=>{var e;const t=Number((e=c.value)==null?void 0:e.payment_slip_audit_status);return t===1?"success":t===2?"error":kt.value===2?"process":"wait"}),Te=N(()=>{var e;const t=Number((e=c.value)==null?void 0:e.fulfillment_status);return t===3||t===5||t===6||t===8||t===11||t===12?"success":t===4||t===9||t===10?"error":t===7||kt.value===3?"process":"wait"}),na=N(()=>{const t=c.value;if(!t)return[];const e=t.linked_pay_orders;return Array.isArray(e)?e:[]}),Za=N(()=>{const t=c.value;if(!t)return 0;const e=t.agency_collect_amount;if(e!=null&&e!=="")return Number(e)||0;const n=Number(t.amount)||0,i=Number(t.linked_pay_paid_total)||0;return Math.round((n-i)*100)/100}),Ee=b([]);async function As(t,e,n){var i;if(!t){Ee.value=[];return}try{const u=await Ea({diagnosis_id:t,prescription_order_id:e}),g=(u==null?void 0:u.lists)??((i=u==null?void 0:u.data)==null?void 0:i.lists)??[],y=Array.isArray(g)?g.filter(x=>!n.includes(x.id)):[];Ee.value=y}catch{Ee.value=[]}}function el(t){return t?Array.isArray(t)?t.map(e=>({name:String((e==null?void 0:e.name)??"").trim(),dosage:Number(e==null?void 0:e.dosage)||0})):[]:[]}const w=N(()=>{var e;const t=(e=c.value)==null?void 0:e.prescription;return t&&typeof t=="object"?t:null}),tl=N(()=>{var t;return Si((t=w.value)==null?void 0:t.dietary_taboo)});function Vt(t){return t==null?"":String(t).replace(/\s/g,"").trim()}function St(t,e){const n=Vt(t),i=Vt(e);return!n||!i?!1:n!==i}const Be=N(()=>{var n,i;const t=(n=w.value)==null?void 0:n.phone,e=(i=c.value)==null?void 0:i.recipient_phone;return St(e,t)}),Rs=N(()=>{var e;return Vt((e=w.value)==null?void 0:e.phone)||"—"}),Ts=N(()=>{var e;return Vt((e=c.value)==null?void 0:e.recipient_phone)||"—"}),X=N(()=>{var e;const t=(e=c.value)==null?void 0:e.linked_appointment;return t&&typeof t=="object"?t:null}),al=N(()=>{var e;const t=String(((e=X.value)==null?void 0:e.resolved_from)||"");return t==="prescription"?"处方绑定挂号":t==="diagnosis"?"诊单关联挂号":""}),ll=N(()=>{var t;return el((t=w.value)==null?void 0:t.herbs)}),Ne=N(()=>$l(w.value)),Z=N(()=>{const t=w.value;if(!t||!$l(t))return null;const e=t.aux_usage;return e==null||e===""||Array.isArray(e)&&e.length===0?null:Ni(e,t.prescription_type||"浓缩水丸")}),Es=N(()=>{var t;return((t=c.value)==null?void 0:t.prescription_detail_herbs_visible)!==!1}),Us=N(()=>{const t=c.value;if(!t)return"—";const e=[];return t.shipping_province&&e.push(t.shipping_province),t.shipping_city&&e.push(t.shipping_city),t.shipping_district&&e.push(t.shipping_district),t.shipping_address&&e.push(t.shipping_address),e.length>0?e.join(" "):"—"}),sl=N(()=>`${m.dose_unit||"剂"}数`);function Ds(t){const e=Number(t);return e===1?"已通过":e===2?"已驳回":"待审核"}function $s(t){const e=Number(t);return e===1?"success":e===2?"danger":"warning"}function nl(t){const e=Number(t);return e===2?"success":e===1?"warning":"info"}function rl(t){return t==null||t===""?"—":typeof t=="string"&&String(t).includes("-")?String(t):Se(t)}const We=b("auto"),Nt=b(!1),G=b(null),Ke=b("");let ra=0;function zs(){ra+=1,G.value=null}function ia(t){var e,n;return t.requestSeq!==ra||Number((e=c.value)==null?void 0:e.id)!==t.orderId?!1:String(((n=c.value)==null?void 0:n.tracking_number)||"").trim()===t.trackingNumber}function Fs(t,e,n){const i=(t==null?void 0:t.data)??t;if(!i||typeof i!="object")return null;const u=i,g=String(u.tracking_number||"").trim();if(g&&g!==e)return null;const y=Number(u.order_id);return y>0&&y!==n?null:u}const Ue=b([]),Ge=b(!1),oa=b(!1),Ct=b(),fe=_e({id:0,amount:void 0}),js={amount:[{required:!0,message:"请输入订单金额",trigger:"blur"},{validator:(t,e,n)=>{const i=Number(e);if(!Number.isFinite(i)||i<0){n(new Error("订单金额不能为负数"));return}n()},trigger:"blur"}]};function qs(){const t=we.perms||[];return t.includes("*")||t.includes("tcm.prescriptionOrder/logs")}async function Ce(t){if(!qs()){Ue.value=[];return}try{const e=await xi({id:t});Ue.value=(e==null?void 0:e.data)??e??[]}catch{Ue.value=[]}}function Ls(t){return{create:"创建",edit:"编辑",audit_rx_approve:"处方审核",audit_rx_reject:"处方审核",audit_pay_approve:"支付审核",audit_pay_reject:"支付审核",fill_tracking:"填快递单",ship:"确认发货",withdraw:"撤销",link_pay_order:"关联支付单",revoke_rx_audit:"撤回处方审核",revoke_pay_audit:"撤回支付审核",gancao_submit:"甘草下单",ej_pharmacy_submit:"洛阳药房下单",ej_pharmacy_callback:"洛阳药房状态",patch_rx_patient:"处方患者信息",update_amount:"修改订单金额",complete:"完成订单",refund:"退款",edit_time:"修改创建时间"}[t]||t}const ua=N(()=>{var n;const t=String(((n=c.value)==null?void 0:n.tracking_number)||"").trim();if(!t)return{sf:"javascript:void(0)",jd:"javascript:void(0)",jt:"javascript:void(0)"};const e=encodeURIComponent(t);return{sf:`https://www.sf-express.com/cn/sc/dynamic_function/waybill/#search/bill-number/${e}`,jd:`https://www.jdl.com/#/trackQuery?waybillCode=${e}`,jt:`https://www.jtexpress.com.cn/index/query/gzquery.html?bills=${e}`}}),il=N(()=>{const t=G.value;return!t||!Array.isArray(t.traces)?[]:t.traces});function Is(t){const e=String(t||"").toLowerCase();return e==="sf"?"顺丰速运":e==="jd"?"京东快递":e==="jt"||e==="jtexpress"?"极兔速递":"自动识别"}async function da(){var u,g;const t=Number((u=c.value)==null?void 0:u.id),e=String(((g=c.value)==null?void 0:g.tracking_number)||"").trim();if(!t||!e)return;const i={requestSeq:++ra,orderId:t,trackingNumber:e};Nt.value=!0;try{const y=String(Ke.value||"").replace(/\D/g,""),x={id:t,express_company:We.value};y.length>=4&&(x.phone_tail=y);const $=await ai(x);if(!ia(i))return;G.value=Fs($,e,t)}catch{if(!ia(i))return;G.value=null}finally{ia(i)&&(Nt.value=!1)}}const Je=b(!1),pa=b(!1),ca=b(),ie=_e({patient_name:"",phone:""}),Ms={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],phone:[{required:!0,message:"请输入手机号",trigger:"blur"}]},Qe=b(!1),ma=b(!1),_a=b(),U=_e({times_per_day:3,usage_days:7,aux_times_per_day:3,aux_usage_days:7,medication_days:void 0}),Hs=N(()=>{const t={times_per_day:[{required:!0,message:"请填写主方每天次数",trigger:"change"}],usage_days:[{required:!0,message:"请填写主方开立天数",trigger:"change"}],medication_days:[{required:!0,message:"请填写订单服用天数",trigger:"change"}]};return Ne.value&&(t.aux_times_per_day=[{required:!0,message:"请填写辅方每天次数",trigger:"change"}],t.aux_usage_days=[{required:!0,message:"请填写辅方开立天数",trigger:"change"}]),t});function Bs(){const t=w.value,e=c.value;if(!t||!(e!=null&&e.id)||!e.prescription_id){C.msgWarning("无处方数据");return}const n=Z.value;U.times_per_day=Number(t.times_per_day)>0?Number(t.times_per_day):3,U.usage_days=Number(t.usage_days)>0?Number(t.usage_days):7,U.aux_times_per_day=n&&Number(n.times_per_day)>0?Number(n.times_per_day):3,U.aux_usage_days=n&&Number(n.usage_days)>0?Number(n.usage_days):7;const i=Number(e.medication_days);U.medication_days=i>0?i:Number(t.usage_days)>0?Number(t.usage_days):7,Qe.value=!0,pt(()=>{var u;return(u=_a.value)==null?void 0:u.clearValidate()})}function Ws(){U.times_per_day=3,U.usage_days=7,U.aux_times_per_day=3,U.aux_usage_days=7,U.medication_days=void 0}async function Ks(){var n;const t=_a.value;if(!t)return;try{await t.validate()}catch{return}const e=(n=c.value)==null?void 0:n.id;if(e){ma.value=!0;try{const i={id:e,times_per_day:Number(U.times_per_day),usage_days:Number(U.usage_days),medication_days:Number(U.medication_days)};Ne.value&&(i.aux_times_per_day=Number(U.aux_times_per_day),i.aux_usage_days=Number(U.aux_usage_days)),await li(i),C.msgSuccess("保存成功"),Qe.value=!1,await fa(),await Ce(e),I()}catch{}finally{ma.value=!1}}}function Gs(){const t=w.value,e=c.value;if(!t||!(e!=null&&e.id)||!e.prescription_id){C.msgWarning("无处方数据");return}ie.patient_name=String(t.patient_name??"").trim(),ie.phone=String(t.phone??"").trim(),Je.value=!0,pt(()=>{var n;return(n=ca.value)==null?void 0:n.clearValidate()})}function Js(){ie.patient_name="",ie.phone=""}function Qs(){var t;fe.id=0,fe.amount=void 0,(t=Ct.value)==null||t.clearValidate()}function Ys(){const t=c.value;if(!aa(t)){C.msgWarning("当前订单状态不允许修改金额");return}fe.id=Number(t==null?void 0:t.id)||0;const e=Number(t==null?void 0:t.amount);fe.amount=Number.isFinite(e)?e:void 0,Ge.value=!0,pt(()=>{var n;return(n=Ct.value)==null?void 0:n.clearValidate()})}async function fa(){var e;const t=(e=c.value)==null?void 0:e.id;if(t)try{const n=await Q({id:t}),i=(n==null?void 0:n.data)??n??null;i&&(c.value=i)}catch{}}async function Xs(){var n;const t=ca.value;if(!t)return;try{await t.validate()}catch{return}const e=(n=c.value)==null?void 0:n.id;if(e){pa.value=!0;try{await si({id:e,patient_name:ie.patient_name.trim(),phone:ie.phone.trim()}),Je.value=!1,await fa(),await Ce(e)}catch(i){console.error(i)}finally{pa.value=!1}}}async function ol(){const t=Ct.value;if(!t)return;try{await t.validate()}catch{return}if(!aa(c.value)){C.msgWarning("当前订单状态不允许修改金额");return}const e=fe.id;oa.value=!0;try{await ni({id:e,amount:Number(fe.amount)}),C.msgSuccess("修改成功"),Ge.value=!1,await fa(),await Ce(e),I()}catch{}finally{oa.value=!1}}async function Pt(t){c.value=null,Ee.value=[],zs(),We.value="auto",Ke.value="",Ue.value=[],J.value=!0,la.value=!0;try{const e=await Q({id:t}),n=(e==null?void 0:e.data)??e??null;if(c.value=n,n){We.value=String(n.express_company||"auto")||"auto";const i=String(n.recipient_phone||"").replace(/\D/g,"");Ke.value=i.length>=4?i:"",String(n.tracking_number||"").trim()&&da(),Ce(t);const u=n.diagnosis_id,g=n.pay_order_ids||[];u&&As(u,t,g)}}catch(e){C.msgError((e==null?void 0:e.message)||"加载失败"),J.value=!1}finally{la.value=!1}}const Pe=b(!1),va=b(!1),ya=b(!1),M=b(0),oe=b(null),Zs=N(()=>["请核对收货信息,便于发货与物流联系。","按需填写服务与物流,并选择本诊单下需要关联的支付单。","确认费用类别与订单金额;保存前请对照定金门槛是否已满足。"][M.value]??""),ul=N(()=>{const t=oe.value,e=el(t==null?void 0:t.herbs);if(!e.length)return"暂无药材明细";const n=e.map(i=>`${i.name} ${i.dosage}g`).join("、");return n.length>120?`${n.slice(0,120)}…`:n}),en=["recipient_name","recipient_phone","region","shipping_address"],De=b(),m=_e({id:0,prescription_id:0,diagnosis_id:0,recipient_name:"",recipient_phone:"",region:[],shipping_address:"",is_follow_up:0,medication_days:void 0,dose_count:1,dose_unit:"剂",prev_staff:"",service_channel:"",service_package:[],express_company:"auto",tracking_number:"",fee_type:3,amount:0,remark_extra:"",remark_assistant:"",pay_order_ids:[],internal_cost:void 0,assistant_id:0,diagnosis_creator_id:0,diagnosis_creator_name:"",diagnosis_creator_dept_path:""}),tn=N(()=>Ci(mt.value,m.service_package)),dl=N(()=>{const t=String(m.diagnosis_creator_dept_path||"").trim();return t?t.split(";").map(e=>e.trim()).filter(Boolean).map(e=>e.includes(" / ")?e.split(" / ").map(n=>n.trim()).filter(Boolean):e.split("/").map(n=>n.trim()).filter(Boolean)).filter(e=>e.length>0):[]}),Ye=b([]),ga=b(!1),H=b(0);function Ot(t){return{1:"挂号费",2:"问诊费",3:"药品费用",4:"首付",5:"尾款",6:"其他"}[Number(t)]||"未知"}function $e(t){const e=String((t==null?void 0:t.create_type)||"");if(e==="wechat_work")return"企业微信对外收款";if(e==="fubei")return"付呗";if(e==="express_cod")return"快递代收";const n=String((t==null?void 0:t.payment_method)||""),i={alipay:"支付宝",wechat:"微信",wechat_work:"企业微信",fubei:"付呗",express_cod:"快递代收",manual:"手动确认到账"};return n&&i[n]?i[n]:"普通订单"}const ba=N(()=>{const t=new Set(m.pay_order_ids.map(n=>Number(n)));let e=0;for(const n of Ye.value)t.has(Number(n.id))&&(e+=Number(n.amount)||0);return Math.round(e*100)/100}),an=N(()=>{const t=H.value;return t>0?Math.round(t*100)/100:0});async function ln(t,e){var n,i;if(!t){Ye.value=[];return}try{ga.value=!0;const u=await Ea({diagnosis_id:t,...e?{prescription_order_id:e}:{}}),g=(u==null?void 0:u.lists)??((n=u==null?void 0:u.data)==null?void 0:n.lists)??[];Ye.value=Array.isArray(g)?g:[];const y=Number((u==null?void 0:u.deposit_min_amount)??((i=u==null?void 0:u.data)==null?void 0:i.deposit_min_amount));!Number.isNaN(y)&&y>=0&&(H.value=y)}catch{Ye.value=[]}finally{ga.value=!1}}const sn=N(()=>{const t={recipient_name:[{required:!0,message:"请输入收货人",trigger:"blur"}],recipient_phone:[{required:!0,message:"请输入收货手机",trigger:"blur"}],region:[{required:!0,message:"请选择省/市/区",trigger:"change",type:"array"}],shipping_address:[{required:!0,message:"请输入收货地址",trigger:"blur"}],fee_type:[{required:!0,message:"请选择费用类别",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"},{validator:(e,n,i)=>{const u=H.value,g=Number(n);if(u>0&&(!Number.isFinite(g)||g0){const e=`已开启关联支付门槛(¥${K(H.value)}),请至少选择一笔支付单`;t.pay_order_ids=[{type:"array",required:!0,min:1,message:e,trigger:"change"}]}return t});function nn(){var t;M.value=0,oe.value=null,(t=De.value)==null||t.clearValidate()}function rn(){M.value>0&&(M.value-=1)}async function on(){const t=De.value;if(t)try{M.value===0?await t.validateField([...en]):M.value===1&&H.value>0&&await t.validateField(["pay_order_ids"]),M.value<2&&(M.value+=1)}catch{}}async function un(t){if(!Ka(t)){Wa(t)&&bt(t)&&!Ba()&&C.msgWarning("处方与支付单均已审核通过,创建人不可再编辑");return}M.value=0,oe.value=null,Pe.value=!0,va.value=!0;try{const e=await Q({id:t.id}),n=(e==null?void 0:e.data)??e;if(!n){C.msgError("加载数据结构异常"),Pe.value=!1;return}const i=n.prescription;i&&typeof i=="object"?oe.value=i:Number(n.prescription_id)>0?oe.value={id:Number(n.prescription_id),sn:"",patient_name:String(n.recipient_name||""),herbs:[]}:oe.value=null,m.id=n.id,m.prescription_id=Number(n.prescription_id)||0,m.diagnosis_id=Number(n.diagnosis_id)||0,m.assistant_id=Number(n.assistant_id)||0,m.diagnosis_creator_id=Number(n.diagnosis_creator_id)||0,m.diagnosis_creator_name=n.diagnosis_creator_name!=null&&n.diagnosis_creator_name!==""?String(n.diagnosis_creator_name):"",m.diagnosis_creator_dept_path=n.diagnosis_creator_dept_path!=null&&n.diagnosis_creator_dept_path!==""?String(n.diagnosis_creator_dept_path):"",m.recipient_name=n.recipient_name||"",m.recipient_phone=n.recipient_phone||"";const u=n.shipping_province||"",g=n.shipping_city||"",y=n.shipping_district||"";u||g||y?m.region=[u,g,y].filter(j=>j!==""):m.region=[],m.shipping_address=n.shipping_address||"",m.is_follow_up=n.is_follow_up?1:0,m.medication_days=n.medication_days>0?n.medication_days:void 0,m.dose_count=n.dose_count>0?n.dose_count:1,m.dose_unit=n.dose_unit||"剂",m.prev_staff=n.prev_staff||"",m.service_channel=n.service_channel||"",m.service_package=Pi(n.service_package),m.express_company=String(n.express_company||"auto")||"auto",m.tracking_number=n.tracking_number||"",m.fee_type=Number(n.fee_type)||3,H.value=Number(n.deposit_min_amount)||0;let x=Number(n.amount)||0;const $=Math.round((Number(n.linked_pay_paid_total)||0)*100)/100,se=H.value;if(se>0){const j=Math.round(se*100)/100;xNumber(j)).filter(j=>!Number.isNaN(j)):[],m.internal_cost=n.internal_cost!=null&&n.internal_cost!==""?Number(n.internal_cost):void 0,await ln(m.diagnosis_id,m.id),pt(()=>{var j;(j=De.value)==null||j.clearValidate()})}catch(e){C.msgError((e==null?void 0:e.message)||"加载异常"),Pe.value=!1}finally{va.value=!1}}async function dn(){if(!(!De.value||M.value!==2)){await De.value.validate(),ya.value=!0;try{const t={id:m.id,recipient_name:m.recipient_name,recipient_phone:m.recipient_phone,shipping_address:m.shipping_address,is_follow_up:m.is_follow_up,prev_staff:m.prev_staff||"",service_channel:m.service_channel||"",service_package:Array.isArray(m.service_package)?m.service_package.join(","):"",express_company:m.express_company||"auto",fee_type:m.fee_type,amount:m.amount,remark_extra:m.remark_extra||"",remark_assistant:m.remark_assistant||"",medication_days:m.medication_days!=null&&String(m.medication_days).trim()!==""?m.medication_days:"",dose_unit:m.dose_unit||"剂",dose_count:m.dose_count||1,internal_cost:m.internal_cost!=null&&String(m.internal_cost).trim()!==""?m.internal_cost:""};m.region&&m.region.length>0?(t.shipping_province=m.region[0]||"",t.shipping_city=m.region[1]||"",t.shipping_district=m.region[2]||""):(t.shipping_province="",t.shipping_city="",t.shipping_district=""),t.pay_order_ids=[...m.pay_order_ids],await ri(t),C.msgSuccess("保存成功"),Pe.value=!1,I()}catch{}finally{ya.value=!1}}}const Xe=b(!1),xa=b("prescription"),At=b(0),Ze=b(null),ze=b(""),Rt=b(!1),pn=N(()=>xa.value==="prescription"?"处方业务审核":"关联支付单审核");function pl(t,e){xa.value=e,At.value=t.id,Ze.value=t,ze.value="",Xe.value=!0}async function cl(t){if(t==="reject"&&!ze.value.trim()){C.msgError("驳回或阻止时必须填写明确的审核意见");return}Rt.value=!0;try{const e={id:At.value,action:t,remark:ze.value.trim()};if(xa.value==="prescription"?await ii(e):await oi(e),C.msgSuccess(t==="approve"?"审核通过成功":"已成功驳回该单"),Xe.value=!1,I(),J.value&&At.value)try{const n=await Q({id:At.value}),i=(n==null?void 0:n.data)??n??null;i&&(c.value=i)}catch{}}catch{}finally{Rt.value=!1}}async function cn(t){try{await Kt.confirm("确认撤回该业务订单?撤回后状态为「已取消」,未双审通过或双审均驳回等场景下均可安全撤回。","撤回警告",{type:"warning",confirmButtonText:"确定撤回",cancelButtonText:"暂不处理"}),await ui({id:t.id}),C.msgSuccess("撤回成功"),I()}catch{}}const ml=b(0),Tt=b(!1),Fe=b(!1),q=b(null);function _l(t){if(!t)return"0.00";const e=Number(t.m_cost)||0,n=Number(t.proces_cost)||0,i=Number(t.lis_cost)||0;return(e+n+i).toFixed(2)}function mn(t,e){const n=parseFloat(_l(t))||0,i=Number(e)||0;return i<=0?"—":(n/i*100).toFixed(2)}function _n(t){return!Array.isArray(t)||t.length===0?"0":t.reduce((n,i)=>n+(Number(i.quantity)||0),0).toFixed(0)}async function fn(){if(!m.id){C.msgError("请先保存订单");return}Fe.value=!0;try{const t=await Ul({id:m.id,dose_count:m.dose_count||1,medication_days:m.medication_days||void 0}),e=(t==null?void 0:t.data)??t;e&&e.success&&(q.value=e,Tt.value=!0,C.msgSuccess("预下单测试成功"))}catch{}finally{Fe.value=!1}}async function vn(){var t;if(!((t=c.value)!=null&&t.id)){C.msgError("订单数据不存在");return}Fe.value=!0;try{const e=await Ul({id:c.value.id,dose_count:c.value.dose_count||1,medication_days:c.value.medication_days||void 0}),n=(e==null?void 0:e.data)??e;n&&n.success&&(q.value=n,Tt.value=!0)}catch{}finally{Fe.value=!1}}async function yn(t){var e;try{const n=String(t.ship_mode||"gancao")==="direct"?"洛阳药房":"甘草药房";await Kt.confirm(`确认将本单关联处方上传至${n}?`,"上传药房",{type:"warning",confirmButtonText:"确定上传",cancelButtonText:"取消"}),ml.value=t.id;const i=await di({id:t.id}),u=(i==null?void 0:i.data)??i,g=String((u==null?void 0:u.pharmacy_order_no)||(u==null?void 0:u.recipel_order_no)||"").trim();if(C.msgSuccess(g?`上传成功,药房单号:${g}`:"上传成功"),I(),J.value&&Number((e=c.value)==null?void 0:e.id)===t.id)try{const y=await Q({id:t.id}),x=(y==null?void 0:y.data)??y??null;x&&(c.value=x)}catch{}}catch{}finally{ml.value=0}}Gn(async()=>{await Xl(),await Zl(),await Ql(),I()});const et=b(!1),Et=b(!1),tt=b(0),ve=_e({express_company:"auto",tracking_number:""});function gn(t){if(!Ja(t)){C.msgWarning("处方审核和支付单审核均通过后,才可填写或修改快递单号");return}tt.value=t.id,ve.express_company=String(t.express_company||"auto")||"auto",ve.tracking_number=String(t.tracking_number||""),et.value=!0}async function fl(){var t;if(!ve.tracking_number.trim()){C.msgError("请填写快递单号");return}Et.value=!0;try{if(await pi({id:tt.value,express_company:ve.express_company||"auto",tracking_number:ve.tracking_number.trim()}),C.msgSuccess("快递单号已保存"),et.value=!1,I(),J.value&&((t=c.value)==null?void 0:t.id)===tt.value)try{const e=await Q({id:tt.value}),n=(e==null?void 0:e.data)??e??null;n&&(c.value=n),await Ce(tt.value)}catch{}}catch{}finally{Et.value=!1}}const at=b(!1),Ut=b(!1),Dt=b(0),ae=_e({ship_mode:"gancao",express_company:"auto",tracking_number:""}),bn=N(()=>ae.ship_mode==="direct"?"洛阳药房直发":"甘草药房直发");function vl(t){if(!Xt(t)){C.msgWarning("仅处方审核和支付单审核均通过的履约中订单可填写单号并发货");return}Dt.value=t.id,ae.ship_mode=String(t.ship_mode||"gancao")||"gancao",ae.express_company=String(t.express_company||"auto")||"auto",ae.tracking_number=String(t.tracking_number||""),at.value=!0}async function yl(){var t;if(!ae.tracking_number.trim()){C.msgError("请先填写快递单号再确认发货");return}Ut.value=!0;try{if(await ci({id:Dt.value,ship_mode:ae.ship_mode==="direct"?"direct":"gancao",express_company:ae.express_company||"auto",tracking_number:ae.tracking_number.trim()}),C.msgSuccess("确认发货成功,订单已进入「已发货」状态"),at.value=!1,I(),J.value&&((t=c.value)==null?void 0:t.id)===Dt.value)try{const e=await Q({id:Dt.value}),n=(e==null?void 0:e.data)??e??null;n&&(c.value=n)}catch{}}catch{}finally{Ut.value=!1}}async function xn(){var t;I(),(t=c.value)!=null&&t.id&&await Pt(Number(c.value.id))}const kn=[{value:3,label:"已完成"},{value:7,label:"进行中"},{value:8,label:"暂不制药"},{value:9,label:"拒收"},{value:10,label:"退款"},{value:11,label:"保留药方"},{value:12,label:"制药缓发"}],je=b(!1),ka=b(0),xe=b(3),lt=b(!1),ye=b([]),ha=b();function wa(t){let e=0;for(const n of t||[]){const i=Number(n==null?void 0:n.status);(i===2||i===5)&&(e+=Number(n==null?void 0:n.amount)||0)}return Math.round(e*100)/100}const ue=_e({reason:"",refund_amount:void 0}),ke=b(0),hn=N(()=>wa(ye.value)),wn=N(()=>({refund_amount:[{required:!0,message:"请输入退款金额",trigger:"change"},{validator:(t,e,n)=>{const i=Number(e),u=ke.value;if(!Number.isFinite(i)||i<=0)return n(new Error("退款金额须大于 0"));if(u>0&&i>u+.009)return n(new Error(`不能超过 ¥${K(u)}`));n()},trigger:"change"}],reason:[{required:!0,message:"请填写退款原因",trigger:"blur"}]}));function Vn(){var t;ka.value=0,ye.value=[],ue.reason="",ue.refund_amount=void 0,ke.value=0,(t=ha.value)==null||t.clearValidate()}async function Sn(t){if(!t){ye.value=[];return}try{const e=await Q({id:t}),n=(e==null?void 0:e.data)??e??null;ye.value=Array.isArray(n==null?void 0:n.linked_pay_orders)?n.linked_pay_orders:[];const i=wa(ye.value),u=Number(n==null?void 0:n.paid)||0;ke.value=i>0?i:u,ue.refund_amount=ke.value}catch{ye.value=[],ke.value=0}}async function Nn(){var e,n,i;const t=ka.value;if(t){if(xe.value===10){if(!await((e=ha.value)==null?void 0:e.validate().catch(()=>!1)))return;lt.value=!0;try{if(await Dl({id:t,reason:ue.reason.trim(),refund_amount:Number(ue.refund_amount)}),C.msgSuccess("退款成功"),je.value=!1,I(),J.value&&((n=c.value)==null?void 0:n.id)===t)try{const g=await Q({id:t}),y=(g==null?void 0:g.data)??g??null;y&&(c.value=y),await Ce(t)}catch{}}catch{}finally{lt.value=!1}return}lt.value=!0;try{if(await mi({id:t,fulfillment_status:xe.value}),C.msgSuccess("订单状态已更新"),je.value=!1,I(),J.value&&((i=c.value)==null?void 0:i.id)===t)try{const u=await Q({id:t}),g=(u==null?void 0:u.data)??u??null;g&&(c.value=g)}catch{}}catch{}finally{lt.value=!1}}}const st=b(!1),Va=b(0),Sa=b(!1),Na=b(),de=b(0),le=_e({reason:"",refund_amount:void 0}),Cn=N(()=>{const t=K(de.value),e=K(le.refund_amount);return Number(le.refund_amount)>=de.value-.009?`全额退款 ¥${t}:关联收款标记已退款,已付清零。`:`部分退款 ¥${e}(上限 ¥${t})`}),Pn=N(()=>({refund_amount:[{required:!0,message:"请输入退款金额",trigger:"change"},{validator:(t,e,n)=>{const i=Number(e),u=de.value;if(!Number.isFinite(i)||i<=0)return n(new Error("退款金额须大于 0"));if(u>0&&i>u+.009)return n(new Error(`不能超过 ¥${K(u)}`));n()},trigger:"change"}],reason:[{required:!0,message:"请填写退款原因",trigger:"blur"}]}));function On(){var t;Va.value=0,le.reason="",le.refund_amount=void 0,de.value=0,(t=Na.value)==null||t.clearValidate()}async function gl(t){Va.value=t.id,le.reason="",de.value=0,st.value=!0;try{const e=await Q({id:t.id}),n=(e==null?void 0:e.data)??e??null,i=Array.isArray(n==null?void 0:n.linked_pay_orders)?n.linked_pay_orders:[],u=wa(i),g=Number(n==null?void 0:n.paid)||0;de.value=u>0?u:g,le.refund_amount=de.value}catch{de.value=0}}async function An(){var n,i;const t=Va.value;if(!(!t||!await((n=Na.value)==null?void 0:n.validate().catch(()=>!1)))){Sa.value=!0;try{if(await Dl({id:t,reason:le.reason.trim(),refund_amount:Number(le.refund_amount)}),C.msgSuccess("退款成功"),st.value=!1,I(),J.value&&((i=c.value)==null?void 0:i.id)===t)try{const u=await Q({id:t}),g=(u==null?void 0:u.data)??u??null;g&&(c.value=g),await Ce(t)}catch{}}catch{}finally{Sa.value=!1}}}const nt=b(!1),$t=b(!1),qe=b(0),zt=b(),Ca=b(!1),Ft=b([]),Rn=N(()=>P.add_mode==="completion_only"?"不创建或关联支付单,仅提交完单申请,由审核人员在支付审核时处理。":P.add_mode==="create_express"?"通过快递代收创建新支付单(流转同付呗),或关联已存在但未绑定的支付单。":"可以通过付呗创建新支付单,或关联已存在但未绑定的支付单。"),P=_e({add_mode:"create",order_type:3,pay_amount:void 0,pay_remark:"",link_pay_order_ids:[],completion_request:0}),Tn=N(()=>{const t={add_mode:[{required:!0,message:"请选择添加方式",trigger:"change"}]};return P.add_mode==="create"||P.add_mode==="create_express"?(t.order_type=[{required:!0,message:"请选择费用类别",trigger:"change"}],t.pay_amount=[{required:!0,message:"请输入支付金额",trigger:"blur"},{validator:(e,n,i)=>{const u=Number(n);!Number.isFinite(u)||u<=0?i(new Error("金额须大于 0")):i()},trigger:"blur"}]):P.add_mode==="link"&&(t.link_pay_order_ids=[{required:!0,message:"请至少选择一个支付单",trigger:"change",validator:(e,n,i)=>{!Array.isArray(n)||n.length===0?i(new Error("请至少选择一个支付单")):i()}}]),t});async function En(t,e=[]){var n;if(!t){Ft.value=[];return}try{Ca.value=!0;const i=await Ea({diagnosis_id:t}),u=(i==null?void 0:i.lists)??((n=i==null?void 0:i.data)==null?void 0:n.lists)??[],g=Array.isArray(u)?u.filter(y=>!e.includes(y.id)):[];Ft.value=g}catch{Ft.value=[]}finally{Ca.value=!1}}function bl(t){var i,u;qe.value=t.id,P.add_mode="create",P.order_type=3,P.pay_amount=void 0,P.pay_remark="",P.link_pay_order_ids=[],P.completion_request=0,nt.value=!0;const e=t.diagnosis_id||((i=c.value)==null?void 0:i.diagnosis_id),n=t.pay_order_ids||((u=c.value)==null?void 0:u.pay_order_ids)||[];e&&En(e,n)}async function Un(){var t;if(zt.value){await zt.value.validate(),$t.value=!0;try{if(P.add_mode==="completion_only")await _i({id:qe.value}),C.msgSuccess("完单申请已提交,请等待支付审核");else if(P.add_mode==="create"||P.add_mode==="create_express")await fi({id:qe.value,order_type:P.order_type,pay_amount:P.pay_amount,pay_remark:P.pay_remark||"",completion_request:P.completion_request,pay_create_type:P.add_mode==="create_express"?"express_cod":"fubei"}),C.msgSuccess("支付单已新增,请等待审核");else{const e=P.link_pay_order_ids;if(e.length===0){C.msgError("请至少选择一个支付单");return}await vi({id:qe.value,pay_order_ids:e,completion_request:P.completion_request}),C.msgSuccess(`已关联 ${e.length} 个支付单,请等待审核`)}if(nt.value=!1,I(),J.value&&((t=c.value)==null?void 0:t.id)===qe.value)try{const e=await Q({id:qe.value}),n=(e==null?void 0:e.data)??e??null;n&&(c.value=n)}catch{}}catch{}finally{$t.value=!1}}}function xl(t){ka.value=t.id,xe.value=3,ue.reason="",ye.value=[],je.value=!0,Sn(t.id)}async function Dn(t){var e;try{if(await Kt.confirm("确认撤回处方审核?撤回后将重置为「待审核」状态。","撤回处方审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await yi({id:t.id}),C.msgSuccess("处方审核已撤回"),I(),J.value&&((e=c.value)==null?void 0:e.id)===t.id)try{const n=await Q({id:t.id}),i=(n==null?void 0:n.data)??n??null;i&&(c.value=i)}catch{}}catch{}}async function $n(t){var e;try{if(await Kt.confirm("确认撤回支付单审核?撤回后将重置为「待审核」状态。","撤回支付单审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await gi({id:t.id}),C.msgSuccess("支付单审核已撤回"),I(),J.value&&((e=c.value)==null?void 0:e.id)===t.id)try{const n=await Q({id:t.id}),i=(n==null?void 0:n.data)??n??null;i&&(c.value=i)}catch{}}catch{}}const zn="成都双流甄养堂互联网医院 处方笺",jt=b(!1),qt=b(!1),O=b(null),Lt=b("internal"),kl=b(null),Le=b(!1);function hl(t){if(!t)return"";const e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}function Fn(t){return t?hl(t):"—"}function jn(){wl(m)}async function wl(t){if(!t.prescription_id){C.msgWarning("该订单未关联处方");return}jt.value=!0,qt.value=!0,O.value=null,Lt.value="internal";try{const e=await bi({id:t.prescription_id}),n=(e==null?void 0:e.data)??e??null;if(n){const i=t.medication_days,u={...n};i!=null&&String(i).trim()!==""&&(u.medication_days=i),t.order_no&&!u.order_no&&(u.order_no=t.order_no),t.recipient_name&&!u.recipient_name&&(u.recipient_name=t.recipient_name),t.recipient_phone&&!u.recipient_phone&&(u.recipient_phone=t.recipient_phone),t.shipping_address&&!u.shipping_address&&(u.shipping_address=t.shipping_address),t.amount!=null&&u.order_amount==null&&(u.order_amount=t.amount),t.dose_count!=null&&String(t.dose_count).trim()!==""&&Number(t.dose_count)>0&&(u.dose_count=Number(t.dose_count)),t.dose_unit!=null&&String(t.dose_unit).trim()!==""&&(u.dose_unit=String(t.dose_unit));const g=t.linked_appointment;(!u.appointment_id||Number(u.appointment_id)<=0)&&g&&typeof g=="object"&&Number(g.id)>0&&(u.appointment_id=Number(g.id)),O.value=u}else O.value=null}catch(e){C.msgError((e==null?void 0:e.message)||"加载处方详情失败"),jt.value=!1}finally{qt.value=!1}}async function qn(t){const e=t.querySelectorAll('img[src^="http"]'),n=Array.from(e).map(async i=>{try{const u=await fetch(i.src,{mode:"cors"});if(!u.ok)return;const g=await u.blob(),y=await new Promise((x,$)=>{const se=new FileReader;se.onload=()=>x(se.result),se.onerror=$,se.readAsDataURL(g)});i.src=y}catch{}});await Promise.allSettled(n)}async function Vl(){var e;await pt();const t=((e=kl.value)==null?void 0:e.paperEl)??null;if(!t)throw new Error("未找到处方笺内容");return t.scrollIntoView({behavior:"instant",block:"nearest"}),await qn(t),await new Promise(n=>requestAnimationFrame(()=>n(null))),await new Promise(n=>setTimeout(n,250)),Kr(t,{scale:2,useCORS:!0,allowTaint:!1,logging:!1,backgroundColor:"#ffffff",windowWidth:t.scrollWidth,windowHeight:t.scrollHeight,width:t.scrollWidth,height:t.scrollHeight,ignoreElements:n=>n instanceof HTMLElement&&n.classList.contains("cf-slip-no-export"),onclone:(n,i)=>{i instanceof HTMLElement&&(i.querySelectorAll(".rx-notice, .rx-notice-text, .rx-notice-meta").forEach(u=>{u.style.lineHeight="1.95",u.style.overflow="visible"}),i.querySelectorAll(".rx-notice").forEach(u=>{u.style.padding="10px 12px"}),i.querySelectorAll(".rx-info-cell, .rx-info-cell .rx-key, .rx-info-cell .rx-val").forEach(u=>{u.style.lineHeight="1.95",u.style.overflow="visible"}),i.querySelectorAll(".rx-info-cell").forEach(u=>{u.style.padding="10px 12px"}),i.querySelectorAll(".rx-herb-cell").forEach(u=>{u.style.lineHeight="2.5"}),i.querySelectorAll(".rx-herbs").forEach(u=>{u.style.rowGap="12px"}),i.querySelectorAll(".rx-text").forEach(u=>{u.style.lineHeight="2.1"}),i.querySelectorAll(".rx-bot-meta-val, .rx-hospital-line, .rx-bot-cell").forEach(u=>{u.style.overflow="visible",u.style.lineHeight="1.85"}),i.querySelectorAll(".rx-hospital-row").forEach(u=>{u.style.paddingTop="12px",u.style.paddingBottom="14px"}))}})}function Sl(){var n;const t=(n=O.value)==null?void 0:n.patient_name;return`处方_${typeof t=="string"&&t.trim()?t.trim().replace(/[\\/:*?"<>|]/g,"_"):"未命名"}_${Date.now()}`}async function Ln(){if(O.value){Le.value=!0;try{const t=await Vl(),e=document.createElement("a");e.download=`${Sl()}.png`,e.href=t.toDataURL("image/png"),e.click(),C.msgSuccess("图片已下载")}catch{C.msgError("下载图片失败")}finally{Le.value=!1}}}async function In(){if(O.value){Le.value=!0;try{const t=await Vl(),e=t.toDataURL("image/jpeg",.95),n=new Wr({orientation:"portrait",unit:"mm",format:"a4"}),i=210,u=297,g=i,y=t.height*g/t.width;if(y<=u)n.addImage(e,"JPEG",0,0,g,y);else{let x=y,$=0;for(;x>0;)n.addImage(e,"JPEG",0,$,g,y),x-=u,$-=u,x>0&&n.addPage()}n.save(`${Sl()}.pdf`),C.msgSuccess("PDF已下载")}catch{C.msgError("下载PDF失败")}finally{Le.value=!1}}}return(t,e)=>{const n=Qn,i=Yn,u=lr,g=rr,y=nr,x=or,$=ir,se=ur,h=dr,j=sr,ge=pr,he=fr,It=_r,Nl=mr,Pa=Gr,rt=vr,ee=yr,pe=br,Ie=gr,S=kr,it=xr,D=wr,Mt=hr,Oa=Nr,Cl=Or,Pl=Pr,Aa=Ar,ne=Rr,me=Tr,Ol=Er,B=Dr,Mn=$r,Ht=Ur,Hn=Fr,Bn=zr,Wn=jr,Me=Lr,Al=qr,Rl=Mr,Kn=Ir,Oe=ar,z=Jn("perms");return o(),_("div",Di,[e[266]||(e[266]=r("header",{class:"po-h5-hero","aria-label":"页面概览"},[r("div",{class:"po-h5-hero__text"},[r("h1",{class:"po-h5-hero__title"},"业务订单"),r("p",{class:"po-h5-hero__sub"},"履约、双审与收款一览;点卡片进入详情")])],-1)),a(n,{class:"po-h5-surface po-h5-surface--chips !mb-3 !border-none shadow-none",shadow:"never"},{default:l(()=>[r("div",$i,[Ve.value?(o(),_("div",zi,[e[100]||(e[100]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"处方审核",-1)),(o(),_(T,null,W(rs,s=>r("div",{key:s.value,class:L(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",k.prescription_audit_status===s.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:R=>os(s.value)},[r("span",ji,d(s.label),1)],10,Fi)),64))])):f("",!0),r("div",qi,[e[101]||(e[101]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"支付单审核",-1)),(o(),_(T,null,W(is,s=>r("div",{key:s.value,class:L(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",k.payment_slip_audit_status===s.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:R=>us(s.value)},[r("span",Ii,d(s.label),1)],10,Li)),64))]),r("div",Mi,[e[102]||(e[102]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"发货状态",-1)),(o(),_(T,null,W(es,s=>r("div",{key:"fs-"+String(s.value),class:L(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",k.fulfillment_status===s.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:R=>ts(s.value)},[r("span",Bi,d(s.label),1)],10,Hi)),64))]),r("div",Wi,[e[103]||(e[103]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"供货方式",-1)),(o(),_(T,null,W(as,s=>r("div",{key:"sm-"+String(s.value),class:L(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",k.supply_mode===s.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:R=>ls(s.value)},[r("span",Gi,d(s.label),1)],10,Ki)),64))]),r("div",Ji,[e[104]||(e[104]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"快递方式",-1)),(o(),_(T,null,W(ss,s=>r("div",{key:"ec-"+String(s.value),class:L(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",k.express_company===s.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:R=>ns(s.value)},[r("span",Yi,d(s.label),1)],10,Qi)),64))])])]),_:1}),a(n,{class:"po-h5-surface po-filter-card !mb-3 !border-none shadow-none",shadow:"never"},{default:l(()=>[A((o(),_("div",Xi,[r("div",Zi,[e[105]||(e[105]=r("div",{class:"po-stat-deco po-stat-deco--o pointer-events-none absolute -right-6 -top-8 h-28 w-28 rounded-full opacity-40"},null,-1)),r("div",eo,[r("div",null,[r("div",to,[a(i,{size:16,class:"text-sky-500"},{default:l(()=>[a(E(Xn))]),_:1}),p(" "+d(ce.value.orderHeading),1)]),r("div",ao,[r("div",lo," ¥"+d(ce.value.orderPerformanceStr),1),r("div",so,[r("span",null,"合计 ¥"+d(ce.value.orderStr),1),r("span",no,"已取消 ¥"+d(ce.value.orderCancelledStr),1)])])]),r("div",ro,[a(i,{size:20},{default:l(()=>[a(E(Zn))]),_:1})])]),r("p",io,d(ce.value.periodLine),1)]),r("div",oo,[e[106]||(e[106]=r("div",{class:"po-stat-deco po-stat-deco--p pointer-events-none absolute -right-6 -top-8 h-28 w-28 rounded-full opacity-40"},null,-1)),r("div",uo,[r("div",null,[r("div",po,[a(i,{size:16,class:"text-emerald-500"},{default:l(()=>[a(E(er))]),_:1}),p(" "+d(ce.value.payHeading),1)]),r("div",co,[r("div",mo," ¥"+d(ce.value.payPerformanceStr),1),r("div",_o,[r("span",null,"合计 ¥"+d(ce.value.payStr),1),r("span",fo,"已取消 ¥"+d(ce.value.payCancelledStr),1)])])]),r("div",vo,[a(i,{size:20},{default:l(()=>[a(E(tr))]),_:1})])]),r("p",yo,d(ce.value.periodLine),1)])])),[[Oe,E(te).loading]]),e[110]||(e[110]=r("p",{class:"po-h5-stats-hint text-center text-[12px] leading-snug text-slate-500 px-1 -mt-2 mb-3"},[p(" 上方为接口返回的"),r("strong",{class:"text-slate-600 font-medium"},"业绩汇总"),p("(未选创建日期时为今日;选了则为该区间);下方列表是当前筛选条件下的订单,"),r("strong",{class:"text-slate-600 font-medium"},"条数与金额和上面不必相等"),p("。 ")],-1)),r("div",{class:"po-filter-toggle",onClick:e[0]||(e[0]=s=>xt.value=!xt.value)},[r("div",go,[a(i,null,{default:l(()=>[a(E(Ra))]),_:1}),e[107]||(e[107]=r("span",null,"筛选条件",-1)),Xa.value>0?(o(),v(u,{key:0,size:"small",type:"primary",effect:"dark",round:""},{default:l(()=>[p(d(Xa.value),1)]),_:1})):f("",!0)]),a(i,{class:L(["po-filter-toggle__arrow",{"is-open":!xt.value}])},{default:l(()=>[a(E(El))]),_:1},8,["class"])]),A(a(j,{class:"ls-form stats-filter-form",model:k,inline:""},{default:l(()=>[a(Jr,{"time-type":E(Re),"onUpdate:timeType":e[1]||(e[1]=s=>Ta(Re)?Re.value=s:null),"date-range":E(Jt),"onUpdate:dateRange":e[2]||(e[2]=s=>Ta(Jt)?Jt.value=s:null),label:"创建时间",variant:"inline","show-all":"","picker-width":"260px",onTimeTypeChange:_s,onCustomChange:fs},null,8,["time-type","date-range"]),a(y,{class:"w-[260px]",label:"订单号"},{default:l(()=>[a(g,{modelValue:k.order_no,"onUpdate:modelValue":e[3]||(e[3]=s=>k.order_no=s),placeholder:"业务订单号",clearable:"",onKeyup:dt(E(Y),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),a(y,{class:"w-[140px]",label:"处方ID"},{default:l(()=>[a(g,{modelValue:k.prescription_id,"onUpdate:modelValue":e[4]||(e[4]=s=>k.prescription_id=s),placeholder:"处方ID",clearable:"",onKeyup:dt(E(Y),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),a(y,{class:"w-[220px]",label:"患者"},{default:l(()=>[a(g,{modelValue:k.patient_keyword,"onUpdate:modelValue":e[5]||(e[5]=s=>k.patient_keyword=s),placeholder:"姓名 / 手机号",clearable:"",onKeyup:dt(E(Y),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),a(y,{class:"w-[220px]",label:"快递"},{default:l(()=>[a(g,{modelValue:k.express_keyword,"onUpdate:modelValue":e[6]||(e[6]=s=>k.express_keyword=s),placeholder:"快递单号 / 公司",clearable:"",onKeyup:dt(E(Y),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),Bl.value?(o(),v(y,{key:0,class:"w-[200px]",label:"下单人"},{default:l(()=>[a($,{modelValue:k.audit_admin_id,"onUpdate:modelValue":e[7]||(e[7]=s=>k.audit_admin_id=s),clearable:"",filterable:"",placeholder:"全部下单人",class:"!w-full"},{default:l(()=>[(o(!0),_(T,null,W(za.value,s=>(o(),v(x,{key:s.id,label:s.name,value:s.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})):f("",!0),a(y,{class:"w-[200px]",label:"医生"},{default:l(()=>[a($,{modelValue:k.doctor_id,"onUpdate:modelValue":e[8]||(e[8]=s=>k.doctor_id=s),clearable:"",filterable:"",placeholder:"开方医生",class:"!w-full"},{default:l(()=>[(o(!0),_(T,null,W(Gt.value,s=>(o(),v(x,{key:s.id,label:s.name,value:s.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(y,{class:"w-[220px] min-w-[200px]",label:"医助部门"},{default:l(()=>[a(se,{modelValue:k.assistant_dept_id,"onUpdate:modelValue":e[9]||(e[9]=s=>k.assistant_dept_id=s),data:_t.value,class:"!w-full",clearable:"",filterable:"","check-strictly":"","default-expand-all":!0,"node-key":"id",props:Gl,placeholder:"医助部门(选父级含子级)",onChange:gs},null,8,["modelValue","data"])]),_:1}),a(y,{class:"w-[200px]",label:"医助"},{default:l(()=>[a($,{modelValue:k.assistant_id,"onUpdate:modelValue":e[10]||(e[10]=s=>k.assistant_id=s),clearable:"",filterable:"",placeholder:"诊单医助",class:"!w-full"},{default:l(()=>[(o(!0),_(T,null,W(Ia.value,s=>(o(),v(x,{key:s.id,label:s.name,value:s.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(y,null,{default:l(()=>[a(h,{type:"primary",onClick:E(Y)},{default:l(()=>[...e[108]||(e[108]=[p("查询",-1)])]),_:1},8,["onClick"]),a(h,{onClick:bs},{default:l(()=>[...e[109]||(e[109]=[p("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"]),[[Bt,!xt.value]])]),_:1}),A((o(),v(n,{class:"po-h5-surface po-table-card !mt-0 !border-none shadow-none",shadow:"never"},{default:l(()=>[r("div",bo,[r("div",xo,[r("div",ko,[e[111]||(e[111]=r("span",{class:"po-table-title text-gray-800"},"订单列表",-1)),r("span",ho,"共 "+d(E(te).count)+" 条",1)]),r("div",wo,[r("div",{class:L(["po-focus-board__item is-pending-rx",{"is-active":re.value==="pendingRx"}]),onClick:e[11]||(e[11]=s=>ft("pendingRx"))},[e[112]||(e[112]=r("span",{class:"po-focus-board__label"},"待处方审核",-1)),r("strong",Vo,d(vt.value.pendingRx),1)],2),r("div",{class:L(["po-focus-board__item is-pending-pay",{"is-active":re.value==="pendingPay"}]),onClick:e[12]||(e[12]=s=>ft("pendingPay"))},[e[113]||(e[113]=r("span",{class:"po-focus-board__label"},"待支付审核",-1)),r("strong",So,d(vt.value.pendingPay),1)],2),r("div",{class:L(["po-focus-board__item is-pending-ship",{"is-active":re.value==="pendingShip"}]),onClick:e[13]||(e[13]=s=>ft("pendingShip"))},[e[114]||(e[114]=r("span",{class:"po-focus-board__label"},"待发货",-1)),r("strong",No,d(vt.value.pendingShip),1)],2),r("div",{class:L(["po-focus-board__item is-risk",{"is-active":re.value==="risk"}]),onClick:e[14]||(e[14]=s=>ft("risk"))},[e[115]||(e[115]=r("span",{class:"po-focus-board__label"},"重点异常",-1)),r("strong",Co,d(vt.value.risk),1)],2)])])]),r("div",Po,[!E(te).lists.length&&!E(te).loading?(o(),v(ge,{key:0,description:"暂无订单","image-size":88})):f("",!0),(o(!0),_(T,null,W(E(te).lists,s=>(o(),_("div",{key:s.id,class:L(["po-card",{"po-card--focus":yt&&yt({row:s})==="po-row-focus","po-card--risk":yt&&yt({row:s})==="po-row-risk"}]),onClick:R=>Pt(s.id)},[r("div",Ao,[r("div",Ro,[r("span",To,d(s.order_no||"—"),1)]),r("div",Eo,[a(u,{size:"small",effect:"plain",type:E(ki)(s)},{default:l(()=>[p(d(E(hi)(s)),1)]),_:2},1032,["type"]),r("span",Uo,"#"+d(s.id),1)])]),St(s.recipient_phone,s.prescription_phone)?(o(),_("div",Do,[a(i,null,{default:l(()=>[a(E(cr))]),_:1}),e[116]||(e[116]=r("span",null,"收货手机与处方手机不一致",-1))])):f("",!0),r("div",$o,[r("div",zo,[e[117]||(e[117]=r("span",{class:"po-card__label"},"收货人",-1)),r("span",Fo,d(s.recipient_name||"—"),1)]),r("div",jo,[e[118]||(e[118]=r("span",{class:"po-card__label"},"金额",-1)),r("span",qo,"¥"+d(s.amount),1)])]),r("div",Lo,[r("div",Io,[e[119]||(e[119]=r("span",{class:"po-card__label"},"手机",-1)),r("span",{class:L(["po-card__value",St(s.recipient_phone,s.prescription_phone)?"text-red-600 font-semibold":""])},d(s.recipient_phone||"—"),3)]),r("div",Mo,[e[120]||(e[120]=r("span",{class:"po-card__label"},"费用类别",-1)),r("span",Ho,d(gt(s.fee_type)),1)])]),r("div",Bo,[r("div",Wo,[e[121]||(e[121]=r("span",{class:"po-card__label"},"处方ID",-1)),r("span",Ko,d(s.prescription_id||"—"),1)]),r("div",Go,[e[122]||(e[122]=r("span",{class:"po-card__label"},"诊单ID",-1)),r("span",Jo,d(s.diagnosis_id||"—"),1)])]),Fa()&&s.internal_cost!=null&&s.internal_cost!==""?(o(),_("div",Qo,[r("div",Yo,[e[123]||(e[123]=r("span",{class:"po-card__label"},"内部成本",-1)),r("span",Xo,"¥"+d(s.internal_cost),1)]),r("div",Zo,[e[124]||(e[124]=r("span",{class:"po-card__label"},"关联支付",-1)),r("span",eu,[Number(s.linked_pay_order_count)>0?(o(),_("span",tu,d(s.linked_pay_order_count)+" 笔",1)):(o(),_("span",au,"—"))])])])):(o(),_("div",lu,[r("div",su,[e[125]||(e[125]=r("span",{class:"po-card__label"},"关联支付",-1)),r("span",nu,[Number(s.linked_pay_order_count)>0?(o(),_("span",ru,d(s.linked_pay_order_count)+" 笔",1)):(o(),_("span",iu,"—"))])]),r("div",ou,[e[126]||(e[126]=r("span",{class:"po-card__label"},"创建时间",-1)),r("span",uu,d(Se(s.create_time)),1)])])),r("div",du,[a(u,{type:Ha(s.prescription_audit_status),size:"small",class:L(Qt("rx",s))},{default:l(()=>[p(" 处方审: "+d(Ma(s.prescription_audit_status)),1)]),_:2},1032,["type","class"]),a(u,{type:Ha(s.payment_slip_audit_status),size:"small",class:L(Qt("pay",s))},{default:l(()=>[p(" 支付审: "+d(Ma(s.payment_slip_audit_status)),1)]),_:2},1032,["type","class"]),a(u,{type:xs(s.fulfillment_status),size:"small",class:L(Qt("fulfillment",s))},{default:l(()=>[p(d(Yt(s.fulfillment_status)),1)]),_:2},1032,["type","class"])]),r("div",pu,[s.doctor_name?(o(),_("span",cu,"医:"+d(s.doctor_name),1)):f("",!0),s.creator_name?(o(),_("span",mu,"建:"+d(s.creator_name),1)):f("",!0),Fa()&&s.internal_cost!=null&&s.internal_cost!==""?f("",!0):(o(),_("span",_u,d(Se(s.create_time)),1))]),r("div",{class:"po-card__actions",onClick:e[15]||(e[15]=Wt(()=>{},["stop"]))},[A((o(),v(h,{type:"primary",size:"small",onClick:R=>Pt(s.id)},{default:l(()=>[p(d(Wl.value),1)]),_:1},8,["onClick"])),[[z,["tcm.prescriptionOrder/detail"]]]),Ka(s)?A((o(),v(h,{key:0,size:"small",onClick:R=>un(s)},{default:l(()=>[...e[127]||(e[127]=[p("编辑",-1)])]),_:1},8,["onClick"])),[[z,["tcm.prescriptionOrder/edit"]]]):f("",!0),A((o(),v(h,{size:"small",onClick:R=>{var V;return(V=sa.value)==null?void 0:V.open(s)}},{default:l(()=>[...e[128]||(e[128]=[p("修改创建时间",-1)])]),_:1},8,["onClick"])),[[z,["tcm.prescriptionOrder/editTime"]]]),Ja(s)?A((o(),v(h,{key:1,type:"success",size:"small",onClick:R=>gn(s)},{default:l(()=>[...e[129]||(e[129]=[p("改单号",-1)])]),_:1},8,["onClick"])),[[z,["tcm.prescriptionOrder/ddcode"]]]):f("",!0),Xt(s)?A((o(),v(h,{key:2,type:"primary",size:"small",onClick:R=>vl(s)},{default:l(()=>[...e[130]||(e[130]=[p("发货",-1)])]),_:1},8,["onClick"])),[[z,["tcm.prescriptionOrder/ship"]]]):f("",!0),Ns(s)?(o(),v(Nl,{key:3,trigger:"click",onCommand:R=>Cs(R,s)},{dropdown:l(()=>[a(It,null,{default:l(()=>[Zt(s)?(o(),v(he,{key:0,command:"addPayOrder"},{default:l(()=>[...e[132]||(e[132]=[p("补齐支付单",-1)])]),_:1})):f("",!0),ea(s)?(o(),v(he,{key:1,command:"complete"},{default:l(()=>[...e[133]||(e[133]=[p("完成订单",-1)])]),_:1})):f("",!0),ta(s)?(o(),v(he,{key:2,command:"refund"},{default:l(()=>[...e[134]||(e[134]=[r("span",{class:"text-red-500"},"退款",-1)])]),_:1})):f("",!0),Qa(s)?A((o(),v(he,{key:3,command:"uploadPharmacy"},{default:l(()=>[...e[135]||(e[135]=[p("上传药房",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/uploadToPharmacy"]]]):f("",!0),Ga(s)?(o(),v(he,{key:4,command:"withdraw",divided:""},{default:l(()=>[...e[136]||(e[136]=[r("span",{class:"text-red-500"},"撤回订单",-1)])]),_:1})):f("",!0)]),_:2},1024)]),default:l(()=>[a(h,{size:"small"},{default:l(()=>[e[131]||(e[131]=p(" 更多",-1)),a(i,{class:"el-icon--right"},{default:l(()=>[a(E(El))]),_:1})]),_:1})]),_:2},1032,["onCommand"])):f("",!0)])],10,Oo))),128))]),r("div",fu,[a(Pa,{modelValue:E(te),"onUpdate:modelValue":e[16]||(e[16]=s=>Ta(te)?te.value=s:null),onChange:E(I)},null,8,["modelValue","onChange"])])]),_:1})),[[Oe,E(te).loading]]),a(Aa,{modelValue:J.value,"onUpdate:modelValue":e[29]||(e[29]=s=>J.value=s),class:"po-detail-drawer po-detail-drawer--h5",size:"100%",direction:"btt","destroy-on-close":"","close-on-click-modal":!1},{header:l(()=>{var s,R;return[r("div",vu,[r("div",yu,[e[137]||(e[137]=r("span",{class:"po-detail-drawer-title shrink-0 text-gray-800 font-semibold text-lg"},"业务订单详情",-1)),(s=c.value)!=null&&s.order_no?(o(),v(u,{key:0,type:"primary",effect:"plain",round:"",class:"max-w-full !whitespace-normal break-all text-left leading-snug"},{default:l(()=>[p(d(c.value.order_no),1)]),_:1})):f("",!0),(R=c.value)!=null&&R.gancao_reciperl_order_no?(o(),v(u,{key:1,type:"success",effect:"plain",round:"",class:"max-w-full !whitespace-normal break-all text-left leading-snug"},{default:l(()=>[p("甘草 "+d(c.value.gancao_reciperl_order_no),1)]),_:1})):f("",!0)]),c.value?(o(),_("div",gu,[a(Xr,{order:c.value,onResolved:xn},null,8,["order"]),hs(c.value)?A((o(),v(h,{key:0,type:"warning",size:"small",plain:"",onClick:e[17]||(e[17]=V=>pl(c.value,"prescription"))},{default:l(()=>[...e[138]||(e[138]=[p(" 处方审核 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/auditPrescription"]]]):f("",!0),Vs(c.value)?A((o(),v(h,{key:1,type:"info",size:"small",plain:"",onClick:e[18]||(e[18]=V=>Dn(c.value))},{default:l(()=>[...e[139]||(e[139]=[p(" 撤回处方审核 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/auditPrescription"]]]):f("",!0),ws(c.value)?A((o(),v(h,{key:2,type:"warning",size:"small",plain:"",onClick:e[19]||(e[19]=V=>pl(c.value,"payment"))},{default:l(()=>[...e[140]||(e[140]=[p(" 支付审核 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/auditPayment"]]]):f("",!0),Ss(c.value)?A((o(),v(h,{key:3,type:"info",size:"small",plain:"",onClick:e[20]||(e[20]=V=>$n(c.value))},{default:l(()=>[...e[141]||(e[141]=[p(" 撤回支付审核 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/auditPayment"]]]):f("",!0),A((o(),v(h,{size:"small",onClick:e[21]||(e[21]=V=>{var F;return(F=sa.value)==null?void 0:F.open(c.value)})},{default:l(()=>[...e[142]||(e[142]=[p("修改创建时间",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/editTime"]]]),Xt(c.value)?A((o(),v(h,{key:4,type:"primary",size:"small",plain:"",onClick:e[22]||(e[22]=V=>vl(c.value))},{default:l(()=>[...e[143]||(e[143]=[p(" 确认发货 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/ship"]]]):f("",!0),Zt(c.value)?A((o(),v(h,{key:5,type:"success",size:"small",plain:"",onClick:e[23]||(e[23]=V=>bl(c.value))},{default:l(()=>[...e[144]||(e[144]=[p(" 关联支付单 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/addPayOrder"]]]):f("",!0),ea(c.value)?A((o(),v(h,{key:6,type:"primary",size:"small",plain:"",onClick:e[24]||(e[24]=V=>xl(c.value))},{default:l(()=>[...e[145]||(e[145]=[p(" 完成订单 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/complete"]]]):f("",!0),ta(c.value)?A((o(),v(h,{key:7,type:"danger",size:"small",plain:"",onClick:e[25]||(e[25]=V=>gl(c.value))},{default:l(()=>[...e[146]||(e[146]=[p(" 退款 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/refund"]]]):f("",!0)])):f("",!0)])]}),default:l(()=>[la.value?(o(),v(rt,{key:0,rows:12,animated:"",class:"px-6 py-4"})):c.value?(o(),_("div",bu,[Be.value?(o(),v(ee,{key:0,type:"error",closable:!1,"show-icon":"",class:"mb-4 !items-start",title:"业务订单收货手机与处方登记手机不一致"},{default:l(()=>[r("div",xu,[r("div",null,[e[147]||(e[147]=p(" 处方手机: ",-1)),r("span",ku,d(Rs.value),1)]),r("div",null,[e[148]||(e[148]=p(" 订单收货手机: ",-1)),r("span",hu,d(Ts.value),1)]),e[149]||(e[149]=r("div",{class:"text-gray-600 mt-1"},"请核对是否代收货或录入错误,避免物流与回访联系错人。",-1))])]),_:1})):f("",!0),r("div",wu,[a(Ie,{class:"po-workflow-steps",direction:"vertical",active:kt.value,"finish-status":"success"},{default:l(()=>[a(pe,{title:"业务订单创建",description:Se(c.value.create_time)},null,8,["description"]),a(pe,{title:"处方单双审",status:ht.value},{description:l(()=>[ht.value==="error"?(o(),_("span",Vu,"处方被驳回")):ht.value==="wait"?(o(),_("span",Su,"等待审核")):ht.value==="success"?(o(),_("span",Nu,"双审通过")):(o(),_("span",Cu,"进行中"))]),_:1},8,["status"]),a(pe,{title:"支付单审核",status:wt.value},{description:l(()=>[wt.value==="error"?(o(),_("span",Pu,"支付审核驳回")):wt.value==="wait"?(o(),_("span",Ou,"等待审核")):wt.value==="success"?(o(),_("span",Au,"审核通过")):(o(),_("span",Ru,"进行中"))]),_:1},8,["status"]),a(pe,{title:"发货与履约",status:Te.value},{description:l(()=>{var s,R,V;return[Te.value==="process"&&Number((s=c.value)==null?void 0:s.fulfillment_status)===7?(o(),_("span",Tu,"进行中")):Te.value==="process"?(o(),_("span",Eu,"等待发货/补充单号")):Te.value==="wait"?(o(),_("span",Uu,"待转入履约")):Te.value==="success"?(o(),_("span",Du,d(Yt((R=c.value)==null?void 0:R.fulfillment_status)),1)):Te.value==="error"?(o(),_("span",$u,d(Yt((V=c.value)==null?void 0:V.fulfillment_status)),1)):f("",!0)]}),_:1},8,["status"]),a(pe,{title:"订单完成"})]),_:1},8,["active"])]),r("div",zu,[a(n,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[r("div",Fu,[e[151]||(e[151]=r("div",{class:"stat-title text-gray-500 text-xs"},"总金额",-1)),aa(c.value)?A((o(),v(h,{key:0,type:"primary",size:"small",link:"",onClick:Ys},{default:l(()=>[...e[150]||(e[150]=[p(" 修改 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/updateAmount"]]]):f("",!0)]),r("div",ju,"¥"+d(c.value.amount),1)]),_:1}),a(n,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[e[152]||(e[152]=r("div",{class:"stat-title text-gray-500 text-xs mb-1"},"已付总额",-1)),r("div",qu,"¥"+d(c.value.linked_pay_paid_total||0),1)]),_:1}),a(n,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[e[153]||(e[153]=r("div",{class:"stat-title text-gray-500 text-xs mb-1"},"退款金额",-1)),r("div",{class:L(["stat-value font-bold text-xl",Number(c.value.refund_amount)>0?"text-rose-500":"text-gray-400"])}," ¥"+d(K(c.value.refund_amount||0)),3)]),_:1}),a(n,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[e[154]||(e[154]=r("div",{class:"stat-title text-gray-500 text-xs mb-1"},"需代收",-1)),r("div",{class:L(["stat-value font-bold text-xl",Za.value>0?"text-amber-600":"text-gray-500"])}," ¥"+d(K(Za.value)),3)]),_:1}),a(n,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[e[155]||(e[155]=r("div",{class:"stat-title text-gray-500 text-xs mb-1"},"已付笔数",-1)),r("div",Lu,d(na.value.length)+" 笔",1)]),_:1})]),r("div",Iu,[a(n,{shadow:"never",class:"po-panel po-panel-rx border-gray-100 h-full relative overflow-hidden"},{header:l(()=>[r("div",Bu,[r("div",Wu,[e[158]||(e[158]=r("span",{class:"po-panel-rx-header__title font-medium text-[15px] leading-snug"},"处方详情",-1)),r("span",Ku," ID: "+d(c.value.prescription_id||"—"),1)]),c.value.doctor_name?(o(),_("div",Gu,[e[159]||(e[159]=p(" 开方人:",-1)),r("span",Ju,d(c.value.doctor_name),1)])):f("",!0),r("div",Qu,[c.value.prescription_id&&w.value&&!String(c.value.prescription_detail_error||"").trim()?A((o(),v(h,{key:0,type:"default",size:"small",link:"",onClick:Gs},{default:l(()=>[...e[160]||(e[160]=[p(" 改患者信息 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/patchPrescriptionPatient"]]]):f("",!0),c.value.prescription_id&&Ve.value?(o(),v(h,{key:1,type:"primary",size:"small",link:"",onClick:e[26]||(e[26]=s=>wl(c.value))},{default:l(()=>[...e[161]||(e[161]=[p(" 详细 ",-1)])]),_:1})):f("",!0),c.value.id&&Ve.value?(o(),v(h,{key:2,type:"warning",size:"small",link:"",loading:Fe.value,icon:E(Ra),onClick:vn},{default:l(()=>[...e[162]||(e[162]=[p(" 测试价格 ",-1)])]),_:1},8,["loading","icon"])):f("",!0)])])]),default:l(()=>[c.value.prescription_audit_status===1?(o(),_("div",Mu,[...e[156]||(e[156]=[r("div",{class:"stamp-inner"},"审核通过",-1)])])):f("",!0),c.value.prescription_audit_status===2?(o(),_("div",Hu,[...e[157]||(e[157]=[r("div",{class:"stamp-inner"},"已驳回",-1)])])):f("",!0),String(c.value.prescription_detail_error||"").trim()?(o(),v(ee,{key:2,title:c.value.prescription_detail_error,type:"warning",closable:!1,"show-icon":"",class:"mb-3"},null,8,["title"])):w.value?(o(),_(T,{key:3},[a(it,{column:1,border:"",size:"small",class:"po-desc bg-white"},{default:l(()=>[a(S,{label:"处方编号",span:2},{default:l(()=>[p(d(w.value.sn||"—"),1)]),_:1}),a(S,{label:"患者"},{default:l(()=>[p(d(w.value.patient_name||"—"),1)]),_:1}),a(S,{label:"性别 / 年龄"},{default:l(()=>[p(d(w.value.gender_desc||"—")+" · "+d(w.value.age??"—")+"岁 ",1)]),_:1}),a(S,{label:"手机"},{default:l(()=>[r("span",{class:L(Be.value?"rx-phone-mismatch text-red-600 font-bold":"")},d(w.value.phone||"—"),3),Be.value?(o(),v(u,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-2 align-middle"},{default:l(()=>[...e[163]||(e[163]=[p(" 与订单手机不一致 ",-1)])]),_:1})):f("",!0)]),_:1}),a(S,{label:"处方日期"},{default:l(()=>[p(d(w.value.prescription_date||"—"),1)]),_:1}),a(S,{label:"医师"},{default:l(()=>[p(d(w.value.doctor_name||"—"),1)]),_:1}),a(S,{label:"类型"},{default:l(()=>[p(d(w.value.prescription_type||"—"),1)]),_:1}),a(S,{label:"临床诊断",span:2},{default:l(()=>[p(d(w.value.clinical_diagnosis||"—"),1)]),_:1}),Ve.value?(o(),v(S,{key:0,label:"剂数 / 用法",span:2},{default:l(()=>[p(d(c.value.dose_count??w.value.dose_count??"—")+" "+d(c.value.dose_unit||"剂")+" · "+d(w.value.usage_instruction||w.value.usage_method||"—"),1)]),_:1})):f("",!0),a(S,{label:"处方金额"},{default:l(()=>[r("span",Yu,"¥"+d(w.value.amount??"—"),1)]),_:1}),a(S,{label:"消费者审核"},{default:l(()=>[a(u,{type:$s(w.value.audit_status),size:"small"},{default:l(()=>[p(d(Ds(w.value.audit_status)),1)]),_:1},8,["type"])]),_:1}),a(S,{label:"用量"},{default:l(()=>[r("div",Xu,[r("div",null,[Ne.value?(o(),_("span",Zu,"主方:")):f("",!0),w.value.dosage_amount?(o(),_(T,{key:1},[p(d(w.value.dosage_amount)+d(w.value.dosage_unit||"g")+" ",1),w.value.prescription_type==="浓缩水丸"?(o(),_(T,{key:0},[p(" · "+d(Number(w.value.dosage_bag_count)>0?Number(w.value.dosage_bag_count):1)+"袋 ",1)],64)):f("",!0),w.value.prescription_type==="饮片"&&w.value.need_decoction!==null?(o(),_("span",ed," ("+d(w.value.need_decoction?"代煎":"不代煎")+") ",1)):f("",!0)],64)):(o(),_(T,{key:2},[p("—")],64))]),Ne.value&&Z.value?(o(),_("div",td,[e[164]||(e[164]=r("span",{class:"text-gray-500 mr-1"},"辅方:",-1)),Z.value.dosage_amount!=null&&Z.value.dosage_amount!==0?(o(),_(T,{key:0},[p(d(Z.value.dosage_amount)+d(w.value.dosage_unit||"g")+" ",1),w.value.prescription_type==="浓缩水丸"?(o(),_(T,{key:0},[p(" · "+d(Number(Z.value.dosage_bag_count)>0?Number(Z.value.dosage_bag_count):1)+"袋 ",1)],64)):f("",!0),w.value.prescription_type==="饮片"?(o(),_("span",ad," ("+d(Z.value.need_decoction?"代煎":"不代煎")+") ",1)):f("",!0)],64)):(o(),_(T,{key:1},[p("—")],64))])):f("",!0)])]),_:1}),a(S,null,{label:l(()=>[r("div",ld,[e[166]||(e[166]=r("span",null,"服用方式",-1)),c.value.prescription_id&&w.value&&!String(c.value.prescription_detail_error||"").trim()?A((o(),v(h,{key:0,type:"primary",size:"small",link:"",onClick:Bs},{default:l(()=>[...e[165]||(e[165]=[p(" 修改 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/patchPrescriptionUsage"]]]):f("",!0)])]),default:l(()=>[r("div",sd,[Ne.value?(o(),_(T,{key:0},[r("div",null,[e[167]||(e[167]=r("span",{class:"text-gray-500 mr-1"},"主方:",-1)),p(" 每天 "+d(w.value.times_per_day?w.value.times_per_day+" 次":"— 次")+" · 处方开立 "+d(w.value.usage_days!=null&&w.value.usage_days!==""?w.value.usage_days+" 天":"— 天"),1)]),Z.value?(o(),_("div",nd,[e[168]||(e[168]=r("span",{class:"text-gray-500 mr-1"},"辅方:",-1)),p(" 每天 "+d(Z.value.times_per_day?Z.value.times_per_day+" 次":"— 次")+" · 处方开立 "+d(Z.value.usage_days!=null&&Number(Z.value.usage_days)>0?Z.value.usage_days+" 天":"— 天"),1)])):f("",!0)],64)):(o(),_(T,{key:1},[r("div",null,[e[169]||(e[169]=r("span",{class:"text-gray-500"},"每天次数:",-1)),p(" "+d(w.value.times_per_day?w.value.times_per_day+" 次":"—"),1)]),r("div",null,[e[170]||(e[170]=r("span",{class:"text-gray-500"},"处方开立:",-1)),p(" "+d(w.value.usage_days!=null&&w.value.usage_days!==""?w.value.usage_days+" 天":"—"),1)])],64)),r("div",null,[e[171]||(e[171]=r("span",{class:"text-gray-500"},"订单设置:",-1)),p(" "+d(c.value.medication_days!=null&&String(c.value.medication_days).trim()!==""?c.value.medication_days+" 天":"—"),1)])])]),_:1}),tl.value?(o(),v(S,{key:1,label:"忌口",span:2},{default:l(()=>[p(d(tl.value),1)]),_:1})):f("",!0),a(S,{label:"状态",span:2},{default:l(()=>[a(u,{type:Number(w.value.void_status)===1?"danger":"success",size:"small"},{default:l(()=>[p(d(Number(w.value.void_status)===1?"已作废":"正常"),1)]),_:1},8,["type"])]),_:1})]),_:1}),Es.value?(o(),_("div",rd,[e[172]||(e[172]=r("div",{class:"text-xs font-medium text-gray-500 mb-2 px-1"},"药材明细",-1)),ll.value.length?(o(),v(Mt,{key:0,data:ll.value,size:"small",border:"",stripe:"","max-height":"260"},{default:l(()=>[a(D,{type:"index",label:"#",width:"48",align:"center"}),a(D,{prop:"name",label:"药名","min-width":"120","show-overflow-tooltip":""}),a(D,{prop:"dosage",label:"用量(g)",width:"96",align:"right"})]),_:1},8,["data"])):(o(),v(ge,{key:1,description:"无处方药材明细","image-size":64}))])):f("",!0)],64)):(o(),v(ge,{key:4,description:"无处方数据","image-size":72}))]),_:1}),r("div",id,[a(n,{shadow:"never",class:"po-panel border-gray-100"},{header:l(()=>[...e[173]||(e[173]=[r("div",{class:"flex items-center justify-between"},[r("span",{class:"font-medium text-[15px]"},"未关联的收款记录"),r("span",{class:"text-xs text-gray-400"},"本诊单下未被占用的支付单")],-1)])]),default:l(()=>[Ee.value.length?(o(),v(Mt,{key:0,data:Ee.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:l(()=>[a(D,{prop:"id",label:"ID",width:"70"}),a(D,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),a(D,{label:"类型",width:"90"},{default:l(({row:s})=>[p(d(s.order_type_desc||gt(s.order_type)),1)]),_:1}),a(D,{label:"金额",width:"86",align:"right"},{default:l(({row:s})=>[r("span",od,"¥"+d(s.amount),1)]),_:1}),a(D,{label:"状态",width:"100",align:"center"},{default:l(({row:s})=>[a(u,{type:nl(s.status),size:"small"},{default:l(()=>[p(d(s.status_desc||Ya(s.status)),1)]),_:2},1032,["type"]),s.is_exempt===1?(o(),v(u,{key:0,type:"warning",size:"small",class:"ml-1"},{default:l(()=>[...e[174]||(e[174]=[p("豁免",-1)])]),_:1})):f("",!0)]),_:1}),a(D,{label:"方式","min-width":"120","show-overflow-tooltip":""},{default:l(({row:s})=>[p(d($e(s)),1)]),_:1}),a(D,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),a(D,{label:"创建时间","min-width":"136"},{default:l(({row:s})=>[p(d(rl(s.create_time)),1)]),_:1})]),_:1},8,["data"])):(o(),v(ge,{key:1,description:"无未关联的收款单","image-size":60}))]),_:1}),a(n,{shadow:"never",class:"po-panel po-panel-pay border-gray-100 relative overflow-hidden"},{header:l(()=>[r("div",pd,[r("div",cd,[e[178]||(e[178]=r("span",{class:"font-medium text-[15px]"},"关联收款记录",-1)),c.value.creator_name?(o(),_("span",md,[e[177]||(e[177]=p(" 创建人:",-1)),r("span",_d,d(c.value.creator_name),1)])):f("",!0)])])]),default:l(()=>[c.value.payment_slip_audit_status===1?(o(),_("div",ud,[...e[175]||(e[175]=[r("div",{class:"stamp-inner"},"审核通过",-1)])])):f("",!0),c.value.payment_slip_audit_status===2?(o(),_("div",dd,[...e[176]||(e[176]=[r("div",{class:"stamp-inner"},"已驳回",-1)])])):f("",!0),na.value.length?(o(),v(Mt,{key:2,data:na.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:l(()=>[a(D,{prop:"id",label:"ID",width:"70"}),a(D,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),a(D,{label:"类型",width:"90"},{default:l(({row:s})=>[p(d(s.order_type_desc||gt(s.order_type)),1)]),_:1}),a(D,{label:"金额",width:"86",align:"right"},{default:l(({row:s})=>[r("span",fd,"¥"+d(s.amount),1)]),_:1}),a(D,{label:"状态",width:"100",align:"center"},{default:l(({row:s})=>[a(u,{type:nl(s.status),size:"small"},{default:l(()=>[p(d(s.status_desc||Ya(s.status)),1)]),_:2},1032,["type"]),s.is_exempt===1?(o(),v(u,{key:0,type:"warning",size:"small",class:"ml-1"},{default:l(()=>[...e[179]||(e[179]=[p("豁免",-1)])]),_:1})):f("",!0)]),_:1}),a(D,{label:"方式","min-width":"120","show-overflow-tooltip":""},{default:l(({row:s})=>[p(d($e(s)),1)]),_:1}),a(D,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),a(D,{label:"创建时间","min-width":"136"},{default:l(({row:s})=>[p(d(rl(s.create_time)),1)]),_:1})]),_:1},8,["data"])):(o(),v(ge,{key:3,description:"未关联收款单","image-size":60}))]),_:1})])]),a(n,{shadow:"never",class:"po-panel po-panel-biz border-gray-100 mb-4"},{header:l(()=>[...e[180]||(e[180]=[r("span",{class:"font-medium text-[15px]"},"履约与收货信息",-1)])]),default:l(()=>[a(it,{column:1,border:"",size:"small",class:"po-desc"},{default:l(()=>[a(S,{label:"诊单ID"},{default:l(()=>[r("div",vd,[r("div",yd,[e[181]||(e[181]=r("span",{class:"text-[11px] font-semibold uppercase tracking-[0.06em] text-slate-500"},"关联诊单",-1)),r("span",gd,d(c.value.diagnosis_id||"—"),1),e[182]||(e[182]=r("span",{class:"text-[12px] leading-snug text-slate-500"},"病历与体征以诊单为准,可全屏查看",-1))]),Number(c.value.diagnosis_id)>0?(o(),v(h,{key:0,type:"primary",plain:"",round:"",size:"default",class:"po-biz-diagnosis-id__btn w-full shrink-0 touch-manipulation sm:w-auto !m-0",icon:E(Vr),"aria-label":"打开关联诊单详情(患者与病历)",onClick:jl},{default:l(()=>[...e[183]||(e[183]=[p(" 查看诊单详情 ",-1)])]),_:1},8,["icon"])):f("",!0)])]),_:1}),a(S,{label:"创建时间"},{default:l(()=>[p(d(Se(c.value.create_time)),1)]),_:1}),a(S,{label:"收货人"},{default:l(()=>[p(d(c.value.recipient_name),1)]),_:1}),a(S,{label:"挂号关联",span:3},{default:l(()=>[X.value?(o(),_(T,{key:0},[r("div",bd,[r("span",null,[e[184]||(e[184]=p("预约 ",-1)),r("span",xd,"#"+d(X.value.id),1)]),r("span",kd,"时间:"+d(X.value.appointment_date)+" "+d(X.value.period)+" "+d(X.value.appointment_time),1),a(u,{size:"small",type:"info"},{default:l(()=>[p(d(X.value.appointment_type_desc),1)]),_:1}),a(u,{size:"small"},{default:l(()=>[p(d(X.value.status_desc),1)]),_:1}),X.value.doctor_name?(o(),_("span",hd,"接诊:"+d(X.value.doctor_name),1)):f("",!0),X.value.channel_source?(o(),_("span",wd,"渠道:"+d(X.value.channel_source),1)):f("",!0),al.value?(o(),v(u,{key:2,size:"small",effect:"plain"},{default:l(()=>[p(d(al.value),1)]),_:1})):f("",!0)]),String(X.value.remark||"").trim()?(o(),_("p",Vd," 备注:"+d(X.value.remark),1)):f("",!0)],64)):(o(),_("span",Sd,"暂无挂号预约记录(未绑定或诊单下无预约)"))]),_:1}),a(S,{label:"收货手机"},{default:l(()=>[r("span",{class:L(Be.value?"text-red-600 font-bold font-mono":"font-mono")},d(c.value.recipient_phone||"—"),3),Be.value?(o(),v(u,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-2 align-middle"},{default:l(()=>[...e[185]||(e[185]=[p(" 与处方手机不一致 ",-1)])]),_:1})):f("",!0)]),_:1}),a(S,{label:"收货地址",span:2},{default:l(()=>[p(d(Us.value),1)]),_:1}),a(S,{label:"复诊"},{default:l(()=>[p(d(c.value.is_follow_up?"是":"否"),1)]),_:1}),a(S,{label:"用药疗程"},{default:l(()=>[p(d(c.value.medication_days?c.value.medication_days+" 天":"—"),1)]),_:1}),a(S,{label:"上次医护"},{default:l(()=>[p(d(c.value.prev_staff||"—"),1)]),_:1}),a(S,{label:"服务渠道"},{default:l(()=>[p(d(c.value.service_channel||"—"),1)]),_:1}),a(S,{label:"服务套餐"},{default:l(()=>[p(d(Os.value),1)]),_:1}),a(S,{label:"费用类别"},{default:l(()=>[p(d(gt(c.value.fee_type)),1)]),_:1}),c.value.internal_cost!=null&&c.value.internal_cost!==""?(o(),v(S,{key:0,label:"内部成本"},{default:l(()=>[p(" ¥"+d(c.value.internal_cost),1)]),_:1})):f("",!0),a(S,{label:"快递单号",span:c.value.internal_cost!=null&&c.value.internal_cost!==""?1:2},{default:l(()=>[p(d(c.value.tracking_number||"—"),1)]),_:1},8,["span"]),a(S,{label:"快递公司"},{default:l(()=>[p(d(Is(c.value.express_company)),1)]),_:1}),A((o(),v(S,{label:"备注",span:3},{default:l(()=>[p(d(c.value.remark_extra||"—"),1)]),_:1})),[[z,["tcm.prescriptionOrder/editRemarkExtra"]]]),a(S,{label:"医助备注",span:3},{default:l(()=>[p(d(c.value.remark_assistant||"—"),1)]),_:1}),a(S,{label:"处方审核意见",span:3},{default:l(()=>[r("span",Nd,d(c.value.prescription_audit_remark||"—"),1)]),_:1}),a(S,{label:"支付审核意见",span:3},{default:l(()=>[r("span",Cd,d(c.value.payment_slip_audit_remark||"—"),1)]),_:1})]),_:1})]),_:1}),String(c.value.tracking_number||"").trim()?(o(),v(n,{key:1,shadow:"never",class:"po-panel po-panel-logistics border-gray-100"},{header:l(()=>[...e[186]||(e[186]=[r("span",{class:"font-medium text-[15px]"},"物流轨迹",-1)])]),default:l(()=>{var s,R,V,F,ot,ut;return[e[192]||(e[192]=r("p",{class:"po-logistics-tip text-gray-400 text-xs mb-3 font-normal"}," 优先读库,无记录时走快递100。顺丰会校验单号+电话(快递100要求完整手机号更易通过);默认预填订单收货手机,若仍提示验证码错误请改成与顺丰面单一致的号码。 ",-1)),r("div",Pd,[a(g,{modelValue:Ke.value,"onUpdate:modelValue":e[27]||(e[27]=be=>Ke.value=be),clearable:"",maxlength:"20",placeholder:"收件手机(建议11位,与面单一致)",class:"po-logistics-toolbar__phone",onKeyup:dt(da,["enter"])},null,8,["modelValue"]),a($,{modelValue:We.value,"onUpdate:modelValue":e[28]||(e[28]=be=>We.value=be),placeholder:"承运商",class:"po-logistics-toolbar__carrier"},{default:l(()=>[a(x,{label:"自动识别",value:"auto"}),a(x,{label:"顺丰速运",value:"sf"}),a(x,{label:"京东快递",value:"jd"}),a(x,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),A((o(),v(h,{type:"primary",plain:"",size:"default",loading:Nt.value,class:"po-logistics-toolbar__btn",onClick:da},{icon:l(()=>[a(i,null,{default:l(()=>[a(E(Sr))]),_:1})]),default:l(()=>[e[187]||(e[187]=p(" 刷新轨迹 ",-1))]),_:1},8,["loading"])),[[z,["tcm.prescriptionOrder/logisticsTrace"]]]),r("div",Od,[a(Oa,{href:ua.value.sf,target:"_blank",type:"primary",underline:!1,class:"text-[12px]"},{default:l(()=>[...e[188]||(e[188]=[p("顺丰官网",-1)])]),_:1},8,["href"]),a(Oa,{href:ua.value.jd,target:"_blank",type:"primary",underline:!1,class:"text-[12px]"},{default:l(()=>[...e[189]||(e[189]=[p("京东物流",-1)])]),_:1},8,["href"]),a(Oa,{href:ua.value.jt,target:"_blank",type:"primary",underline:!1,class:"text-[12px]"},{default:l(()=>[...e[190]||(e[190]=[p("极兔",-1)])]),_:1},8,["href"])])]),String(((s=G.value)==null?void 0:s.hint)||"").trim()?(o(),v(ee,{key:0,title:String(((R=G.value)==null?void 0:R.hint)||""),type:"info",closable:!1,class:"mb-4","show-icon":""},null,8,["title"])):f("",!0),Nt.value&&!G.value?(o(),_("div",Ad,[a(i,{class:"is-loading mr-1"},{default:l(()=>[a(E(Cr))]),_:1}),e[191]||(e[191]=p("正在加载物流轨迹... ",-1))])):G.value?(o(),_("div",Rd,[(V=G.value)!=null&&V.state_text?(o(),_("div",Td,[r("span",Ed,"状态:"+d(G.value.state_text),1),(F=G.value)!=null&&F.carrier_label?(o(),v(u,{key:0,size:"small",type:"info"},{default:l(()=>[p(d(G.value.carrier_label),1)]),_:1})):f("",!0),(ot=G.value)!=null&&ot.source?(o(),_("span",Ud," ["+d(G.value.source==="database"?"数据库缓存":"API拉取")+"] ",1)):f("",!0),(ut=G.value)!=null&&ut.last_query_time?(o(),_("span",Dd," 更新时间:"+d(G.value.last_query_time),1)):f("",!0)])):f("",!0),il.value.length?(o(),v(Pl,{key:1,class:"mt-2 pl-2"},{default:l(()=>[(o(!0),_(T,null,W(il.value,(be,Ae)=>(o(),v(Cl,{key:Ae,type:Ae===0?"primary":"info",hollow:Ae!==0,timestamp:be.time,placement:"top"},{default:l(()=>[r("span",{class:L(Ae===0?"text-gray-800 font-medium":"text-gray-500")},d(be.context),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(o(),v(ge,{key:2,description:"暂无轨迹节点记录","image-size":64}))])):f("",!0)]}),_:1})):f("",!0),A((o(),v(n,{shadow:"never",class:"po-panel border-gray-100 mt-4"},{header:l(()=>[...e[193]||(e[193]=[r("span",{class:"font-medium text-[15px]"},"操作日志",-1)])]),default:l(()=>[Ue.value.length?(o(),v(Pl,{key:0,class:"mt-2 pl-2"},{default:l(()=>[(o(!0),_(T,null,W(Ue.value,(s,R)=>(o(),v(Cl,{key:s.id,type:R===0?"primary":"info",hollow:R!==0,timestamp:Se(s.create_time),placement:"top"},{default:l(()=>[r("div",$d,[r("span",zd,d(s.admin_name),1),a(u,{size:"small",type:"info"},{default:l(()=>[p(d(Ls(s.action)),1)]),_:2},1024)]),r("span",{class:L(R===0?"text-gray-800 font-medium":"text-gray-500")},d(s.summary),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(o(),v(ge,{key:1,description:"暂无操作日志","image-size":64}))]),_:1})),[[z,["tcm.prescriptionOrder/logs"]]])])):f("",!0)]),_:1},8,["modelValue"]),a(me,{modelValue:Ge.value,"onUpdate:modelValue":e[32]||(e[32]=s=>Ge.value=s),title:"修改订单金额",width:"92%","destroy-on-close":"","close-on-click-modal":!1,onClosed:Qs},{footer:l(()=>[a(h,{onClick:e[31]||(e[31]=s=>Ge.value=!1)},{default:l(()=>[...e[195]||(e[195]=[p("取消",-1)])]),_:1}),a(h,{type:"primary",loading:oa.value,onClick:ol},{default:l(()=>[...e[196]||(e[196]=[p(" 确认修改 ",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(j,{ref_key:"updateAmountFormRef",ref:Ct,model:fe,rules:js,"label-width":"84px",onSubmit:Wt(ol,["prevent"])},{default:l(()=>[a(y,{label:"当前金额"},{default:l(()=>{var s;return[r("div",Fd,"¥"+d(K((s=c.value)==null?void 0:s.amount)),1)]}),_:1}),a(y,{label:"新金额",prop:"amount"},{default:l(()=>[a(ne,{modelValue:fe.amount,"onUpdate:modelValue":e[30]||(e[30]=s=>fe.amount=s),min:0,step:.01,precision:2,"controls-position":"right",class:"w-full",placeholder:"请输入新金额"},null,8,["modelValue"])]),_:1}),e[194]||(e[194]=r("div",{class:"text-xs text-gray-400 pl-[84px] -mt-1 leading-relaxed"}," 已完成或已取消订单不可修改。提交成功后会刷新详情与操作日志。 ",-1))]),_:1},8,["model"])]),_:1},8,["modelValue"]),a(me,{modelValue:Pe.value,"onUpdate:modelValue":e[53]||(e[53]=s=>Pe.value=s),title:"编辑业务订单",width:"96%",top:"2vh","close-on-click-modal":!1,"destroy-on-close":"",class:"create-order-dialog create-order-dialog--h5",onClosed:nn},{footer:l(()=>[r("div",gp,[r("div",bp,[r("span",xp,"第 "+d(M.value+1)+" / 3 步",1),M.value===2&&H.value>0?(o(),_("span",kp," 订单金额与关联支付单合计须 ≥ ¥"+d(K(H.value)),1)):f("",!0)]),r("div",hp,[a(h,{size:"large",onClick:e[52]||(e[52]=s=>Pe.value=!1)},{default:l(()=>[...e[210]||(e[210]=[p("取消",-1)])]),_:1}),M.value>0?(o(),v(h,{key:0,size:"large",onClick:rn},{default:l(()=>[...e[211]||(e[211]=[p("上一步",-1)])]),_:1})):f("",!0),M.value<2?(o(),v(h,{key:1,type:"primary",size:"large",onClick:on},{default:l(()=>[...e[212]||(e[212]=[p(" 下一步 ",-1)])]),_:1})):f("",!0),M.value===2?(o(),v(h,{key:2,type:"primary",size:"large",loading:ya.value,onClick:dn},{default:l(()=>[...e[213]||(e[213]=[p(" 确认保存 ",-1)])]),_:1},8,["loading"])):f("",!0)])])]),default:l(()=>[A((o(),_("div",jd,[oe.value?(o(),_("div",qd,[r("div",Ld,[e[197]||(e[197]=r("span",{class:"create-order-rx-card__badge"},"关联处方",-1)),r("div",Id,[r("span",Md,"#"+d(oe.value.id),1),oe.value.sn?(o(),_("span",Hd,d(oe.value.sn),1)):f("",!0),r("span",Bd,d(oe.value.patient_name||"—"),1)])]),a(Ol,{content:ul.value,placement:"bottom","show-after":300},{default:l(()=>[r("div",Wd,d(ul.value),1)]),_:1},8,["content"])])):f("",!0),a(Ie,{active:M.value,"finish-status":"success","align-center":"",class:"create-order-steps"},{default:l(()=>[a(pe,{title:"患者与收货",description:"诊单与物流地址"}),a(pe,{title:"服务与支付单",description:"套餐与关联收款"}),a(pe,{title:"金额与确认",description:"费用与备注"})]),_:1},8,["active"]),r("p",Kd,d(Zs.value),1),a(j,{ref_key:"editFormRef",ref:De,model:m,rules:sn.value,"label-width":"108px",class:"create-order-form"},{default:l(()=>[A(r("div",Gd,[a(Ht,{gutter:20},{default:l(()=>[a(B,{span:12},{default:l(()=>[a(y,{label:"收货人",prop:"recipient_name"},{default:l(()=>[a(g,{modelValue:m.recipient_name,"onUpdate:modelValue":e[33]||(e[33]=s=>m.recipient_name=s),maxlength:"50",placeholder:"姓名"},null,8,["modelValue"])]),_:1})]),_:1}),a(B,{span:12},{default:l(()=>[a(y,{label:"收货手机",prop:"recipient_phone"},{default:l(()=>[a(g,{modelValue:m.recipient_phone,"onUpdate:modelValue":e[34]||(e[34]=s=>m.recipient_phone=s),maxlength:"20",placeholder:"物流联系"},null,8,["modelValue"])]),_:1})]),_:1}),a(B,{span:24},{default:l(()=>[a(y,{label:"省市区",prop:"region"},{default:l(()=>[a(Mn,{modelValue:m.region,"onUpdate:modelValue":e[35]||(e[35]=s=>m.region=s),options:ct.value,props:{emitPath:!0},placeholder:"省 / 市 / 区",clearable:"",filterable:"",class:"w-full"},null,8,["modelValue","options"])]),_:1})]),_:1}),a(B,{span:24},{default:l(()=>[a(y,{label:"详细地址",prop:"shipping_address"},{default:l(()=>[a(g,{modelValue:m.shipping_address,"onUpdate:modelValue":e[36]||(e[36]=s=>m.shipping_address=s),type:"textarea",rows:3,placeholder:"街道、小区、门牌号等详细地址",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[Bt,M.value===0]]),A(r("div",Jd,[Ve.value?(o(),v(Ht,{key:0,gutter:20,class:"mb-1"},{default:l(()=>[a(B,{span:24},{default:l(()=>[r("div",Qd,[e[200]||(e[200]=r("span",{class:"text-sm font-medium text-gray-700 mr-1"},"处方",-1)),m.prescription_id?(o(),v(h,{key:0,type:"primary",size:"small",link:"",onClick:jn},{default:l(()=>[...e[198]||(e[198]=[p(" 详细 ",-1)])]),_:1})):f("",!0),m.id?(o(),v(h,{key:1,type:"warning",size:"small",link:"",loading:Fe.value,icon:E(Ra),onClick:fn},{default:l(()=>[...e[199]||(e[199]=[p(" 测试价格 ",-1)])]),_:1},8,["loading","icon"])):f("",!0),r("span",Yd,"ID: "+d(m.prescription_id||"—"),1)]),r("div",Xd,[dl.value.length?(o(),_("div",Zd,[e[201]||(e[201]=r("div",{class:"text-gray-500"},"创建人所属部门",-1)),(o(!0),_(T,null,W(dl.value,(s,R)=>(o(),_("div",{key:R,class:"pl-0 min-w-0"},[s.length?(o(),v(Bn,{key:0,class:"po-diagnosis-creator-dept-breadcrumb text-[13px] leading-relaxed",separator:"/"},{default:l(()=>[(o(!0),_(T,null,W(s,(V,F)=>(o(),v(Hn,{key:F},{default:l(()=>[r("span",ep,d(V),1)]),_:2},1024))),128))]),_:2},1024)):f("",!0)]))),128))])):(o(),_("div",tp,"创建人所属部门:—"))])]),_:1}),a(B,{xs:24,sm:8},{default:l(()=>[a(y,{label:"复诊"},{default:l(()=>[a(Wn,{modelValue:m.is_follow_up,"onUpdate:modelValue":e[37]||(e[37]=s=>m.is_follow_up=s),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1}),a(B,{xs:24,sm:8},{default:l(()=>[a(y,{label:"服用天数",class:"create-order-form-item--inline-num"},{default:l(()=>[r("div",ap,[a(ne,{modelValue:m.medication_days,"onUpdate:modelValue":e[38]||(e[38]=s=>m.medication_days=s),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[202]||(e[202]=r("span",{class:"create-order-unit-suffix"},"天",-1))])]),_:1})]),_:1}),a(B,{xs:24,sm:8},{default:l(()=>[a(y,{label:"上次医生"},{default:l(()=>[a(g,{modelValue:m.prev_staff,"onUpdate:modelValue":e[39]||(e[39]=s=>m.prev_staff=s),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),a(B,{span:12},{default:l(()=>[a(y,{label:sl.value,prop:"dose_count"},{default:l(()=>[a(ne,{modelValue:m.dose_count,"onUpdate:modelValue":e[40]||(e[40]=s=>m.dose_count=s),min:1,placeholder:sl.value,class:"w-full"},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1}),a(B,{span:12},{default:l(()=>[a(y,{label:"剂量单位",prop:"dose_unit"},{default:l(()=>[a($,{modelValue:m.dose_unit,"onUpdate:modelValue":e[41]||(e[41]=s=>m.dose_unit=s),placeholder:"请选择",class:"w-full"},{default:l(()=>[a(x,{label:"剂",value:"剂"}),a(x,{label:"丸",value:"丸"}),a(x,{label:"袋",value:"袋"}),a(x,{label:"盒",value:"盒"}),a(x,{label:"瓶",value:"瓶"}),a(x,{label:"膏",value:"膏"}),a(x,{label:"贴",value:"贴"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})):f("",!0),a(Ht,{gutter:20},{default:l(()=>[a(B,{span:12},{default:l(()=>[a(y,{label:"服务渠道"},{default:l(()=>[a(g,{modelValue:m.service_channel,"onUpdate:modelValue":e[42]||(e[42]=s=>m.service_channel=s),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),a(B,{span:12},{default:l(()=>[a(y,{label:"服务套餐"},{default:l(()=>[a($,{modelValue:m.service_package,"onUpdate:modelValue":e[43]||(e[43]=s=>m.service_package=s),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"请选择服务套餐",clearable:"",class:"w-full"},{default:l(()=>[(o(!0),_(T,null,W(tn.value,s=>(o(),v(x,{key:s.value,label:s.name,value:s.value,disabled:s.status===0},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),a(B,{span:24},{default:l(()=>[a(y,{label:"物流设置"},{default:l(()=>[r("div",lp,[a($,{modelValue:m.express_company,"onUpdate:modelValue":e[44]||(e[44]=s=>m.express_company=s),placeholder:"承运商",class:"w-[140px] shrink-0"},{default:l(()=>[a(x,{label:"自动识别",value:"auto"}),a(x,{label:"顺丰速运",value:"sf"}),a(x,{label:"京东快递",value:"jd"}),a(x,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),a(g,{modelValue:m.tracking_number,"onUpdate:modelValue":e[45]||(e[45]=s=>m.tracking_number=s),disabled:"",maxlength:"80",placeholder:"快递单号",class:"flex-1 min-w-0"},null,8,["modelValue"])]),e[203]||(e[203]=r("div",{class:"text-xs text-gray-400 mt-1"}," 编辑订单后需重新审核;双审通过后,请通过列表的单号操作填写或修改 ",-1))]),_:1})]),_:1}),a(B,{span:24},{default:l(()=>[a(y,{label:"关联支付单",prop:"pay_order_ids",required:H.value>0},{default:l(()=>[a($,{modelValue:m.pay_order_ids,"onUpdate:modelValue":e[46]||(e[46]=s=>m.pay_order_ids=s),class:"w-full",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:H.value>0?"请至少选择一笔本诊单支付单(已开启门槛)":"多选本诊单支付单(可选)",loading:ga.value},{default:l(()=>[(o(!0),_(T,null,W(Ye.value,s=>(o(),v(x,{key:s.id,label:`${s.order_no} · ¥${s.amount} · ${Ot(s.order_type)} · ${$e(s)}`,value:s.id,class:"!h-auto py-1.5"},{default:l(()=>[r("div",sp,[r("div",np,[r("span",rp,d(s.order_no),1),r("span",ip,"¥"+d(s.amount),1)]),r("div",op,[r("span",up,[p(d(Ot(s.order_type))+" · "+d($e(s)),1),s.remark?(o(),_(T,{key:0},[p(" · "+d(s.remark),1)],64)):f("",!0)]),r("span",dp,d(String(s.create_time||"").substring(0,16)),1)])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","loading"]),r("div",pp,[H.value>0?(o(),_(T,{key:0},[r("span",cp,"当前已开启关联支付门槛(¥"+d(K(H.value))+"),须至少选择一笔支付单。",1),e[204]||(e[204]=r("span",{class:"mx-1"},null,-1))],64)):f("",!0),e[206]||(e[206]=p(" 主管/本诊单医助可见全部支付单;否则仅本人收款单。已被占用的支付单不列出。 ",-1)),a(Ol,{content:"主管或本诊单医助可见该诊单全部支付单(待支付/已支付),否则仅本人创建的收款单。已被其他有效业务订单占用的支付单不会出现在此列表。",placement:"top"},{default:l(()=>[...e[205]||(e[205]=[r("span",{class:"text-primary cursor-help ml-0.5"},"详情",-1)])]),_:1})])]),_:1},8,["required"])]),_:1})]),_:1})],512),[[Bt,M.value===1]]),A(r("div",mp,[r("div",{class:L(["create-order-deposit-bar",ba.value>=H.value?"is-ok":"is-warn"])},[r("div",_p,[e[207]||(e[207]=r("span",{class:"create-order-deposit-bar__label"},"定金门槛",-1)),r("strong",null,"¥"+d(K(H.value)),1),r("span",fp,d(H.value>0?"须 ≥ 此值":"未设置"),1)]),e[209]||(e[209]=r("div",{class:"create-order-deposit-bar__sep"},null,-1)),r("div",vp,[e[208]||(e[208]=r("span",{class:"create-order-deposit-bar__label"},"已选收款",-1)),r("strong",null,"¥"+d(K(ba.value)),1),r("span",yp,d(ba.value>=H.value?"已达标":"未达标"),1)])],2),a(Ht,{gutter:20,class:"create-order-step-panel__row-after-bar"},{default:l(()=>[a(B,{span:12},{default:l(()=>[a(y,{label:"费用类别",prop:"fee_type"},{default:l(()=>[a($,{modelValue:m.fee_type,"onUpdate:modelValue":e[47]||(e[47]=s=>m.fee_type=s),placeholder:"请选择",class:"w-full"},{default:l(()=>[a(x,{label:"挂号费",value:1}),a(x,{label:"问诊费",value:2}),a(x,{label:"药品费用",value:3}),a(x,{label:"首付费用",value:4}),a(x,{label:"尾款费用",value:5}),a(x,{label:"其他费用",value:6}),a(x,{label:"全部费用",value:7}),a(x,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1})]),_:1}),a(B,{span:12},{default:l(()=>[a(y,{label:"总金额",prop:"amount"},{default:l(()=>[a(ne,{modelValue:m.amount,"onUpdate:modelValue":e[48]||(e[48]=s=>m.amount=s),min:an.value,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"元"},null,8,["modelValue","min"])]),_:1})]),_:1}),A((o(),v(B,{span:12},{default:l(()=>[a(y,{label:"内部成本"},{default:l(()=>[a(ne,{modelValue:m.internal_cost,"onUpdate:modelValue":e[49]||(e[49]=s=>m.internal_cost=s),min:0,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"财务可见"},null,8,["modelValue"])]),_:1})]),_:1})),[[z,["finance.account_log/lists"]]]),a(B,{span:24},{default:l(()=>[A((o(),v(y,{label:"药房备注"},{default:l(()=>[a(g,{modelValue:m.remark_extra,"onUpdate:modelValue":e[50]||(e[50]=s=>m.remark_extra=s),type:"textarea",rows:3,placeholder:"选填,对内说明",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})),[[z,["tcm.prescriptionOrder/editRemarkExtra"]]]),a(y,{label:"医助备注"},{default:l(()=>[a(g,{modelValue:m.remark_assistant,"onUpdate:modelValue":e[51]||(e[51]=s=>m.remark_assistant=s),type:"textarea",rows:3,placeholder:"选填,医助对内说明",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[Bt,M.value===2]])]),_:1},8,["model","rules"])])),[[Oe,va.value]])]),_:1},8,["modelValue"]),a(me,{modelValue:Xe.value,"onUpdate:modelValue":e[58]||(e[58]=s=>Xe.value=s),title:pn.value,width:"92%","destroy-on-close":"",class:"po-h5-dialog",onClosed:e[59]||(e[59]=s=>ze.value="")},{footer:l(()=>[a(h,{onClick:e[55]||(e[55]=s=>Xe.value=!1)},{default:l(()=>[...e[215]||(e[215]=[p("取消",-1)])]),_:1}),a(h,{type:"primary",loading:Rt.value,onClick:e[56]||(e[56]=s=>cl("approve"))},{default:l(()=>[...e[216]||(e[216]=[p("同意通过",-1)])]),_:1},8,["loading"]),a(h,{type:"danger",loading:Rt.value,onClick:e[57]||(e[57]=s=>cl("reject"))},{default:l(()=>[...e[217]||(e[217]=[p("驳回阻止",-1)])]),_:1},8,["loading"])]),default:l(()=>[Ze.value&&Ze.value.completion_request===1?(o(),v(ee,{key:0,title:"完单申请",type:"warning",closable:!1,"show-icon":"",class:"mb-3"},{default:l(()=>[r("div",wp,[e[214]||(e[214]=r("div",{class:"font-medium mb-1"},"该订单已申请完成",-1)),r("div",Vp," 申请人:"+d(Ze.value.completion_request_by_name||"—"),1),r("div",Sp," 申请时间:"+d(Se(Ze.value.completion_request_time)),1)])]),_:1})):f("",!0),e[218]||(e[218]=r("p",{class:"text-[13px] text-gray-500 mb-3 bg-gray-50/80 border border-gray-100 p-2 rounded"},"驳回时必须填写意见;通过时意见选填。",-1)),a(g,{modelValue:ze.value,"onUpdate:modelValue":e[54]||(e[54]=s=>ze.value=s),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"在此输入审核意见..."},null,8,["modelValue"])]),_:1},8,["modelValue","title"]),a(me,{modelValue:et.value,"onUpdate:modelValue":e[63]||(e[63]=s=>et.value=s),title:"修改快递单号",width:"92%","destroy-on-close":"",class:"po-h5-dialog","close-on-click-modal":!1},{footer:l(()=>[a(h,{onClick:e[62]||(e[62]=s=>et.value=!1)},{default:l(()=>[...e[220]||(e[220]=[p("取消",-1)])]),_:1}),a(h,{type:"primary",loading:Et.value,onClick:fl},{default:l(()=>[...e[221]||(e[221]=[p("保存单号",-1)])]),_:1},8,["loading"])]),default:l(()=>[A((o(),v(j,{"label-width":"90px",class:"pr-2",onSubmit:Wt(fl,["prevent"])},{default:l(()=>[a(y,{label:"承运商"},{default:l(()=>[a($,{modelValue:ve.express_company,"onUpdate:modelValue":e[60]||(e[60]=s=>ve.express_company=s),class:"w-full",placeholder:"选择承运商"},{default:l(()=>[a(x,{label:"自动识别",value:"auto"}),a(x,{label:"顺丰速运",value:"sf"}),a(x,{label:"京东快递",value:"jd"}),a(x,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"])]),_:1}),a(y,{label:"快递单号"},{default:l(()=>[a(g,{modelValue:ve.tracking_number,"onUpdate:modelValue":e[61]||(e[61]=s=>ve.tracking_number=s),maxlength:"80",placeholder:"请输入快递单号",clearable:"",autofocus:""},null,8,["modelValue"])]),_:1}),e[219]||(e[219]=r("div",{class:"text-xs text-gray-400 pl-[90px] -mt-1 leading-relaxed"}," 仅更新快递信息,其他字段不受影响。 ",-1))]),_:1})),[[Oe,Et.value]])]),_:1},8,["modelValue"]),a(me,{modelValue:at.value,"onUpdate:modelValue":e[67]||(e[67]=s=>at.value=s),title:"确认发货",width:"92%","destroy-on-close":"",class:"po-h5-dialog","close-on-click-modal":!1},{footer:l(()=>[a(h,{onClick:e[66]||(e[66]=s=>at.value=!1)},{default:l(()=>[...e[223]||(e[223]=[p("取消",-1)])]),_:1}),a(h,{type:"primary",loading:Ut.value,onClick:yl},{default:l(()=>[...e[224]||(e[224]=[p(" 确认发货 ",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(ee,{title:"确认后订单状态将变更为「已发货」,请核对快递信息无误。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),A((o(),v(j,{"label-width":"90px",class:"pr-2",onSubmit:Wt(yl,["prevent"])},{default:l(()=>[a(y,{label:"发货方式"},{default:l(()=>[a(u,{type:ae.ship_mode==="direct"?"warning":"success",effect:"plain",size:"default"},{default:l(()=>[p(d(bn.value),1)]),_:1},8,["type"]),e[222]||(e[222]=r("span",{class:"text-xs text-gray-400 ml-2"},"请在订单详情顶部「发货类型」中设置,此处不可修改",-1))]),_:1}),a(y,{label:"承运商"},{default:l(()=>[a($,{modelValue:ae.express_company,"onUpdate:modelValue":e[64]||(e[64]=s=>ae.express_company=s),class:"w-full"},{default:l(()=>[a(x,{label:"自动识别",value:"auto"}),a(x,{label:"顺丰速运",value:"sf"}),a(x,{label:"京东快递",value:"jd"}),a(x,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"])]),_:1}),a(y,{label:"快递单号"},{default:l(()=>[a(g,{modelValue:ae.tracking_number,"onUpdate:modelValue":e[65]||(e[65]=s=>ae.tracking_number=s),maxlength:"80",placeholder:"请输入快递单号",clearable:""},null,8,["modelValue"])]),_:1})]),_:1})),[[Oe,Ut.value]])]),_:1},8,["modelValue"]),a(me,{modelValue:je.value,"onUpdate:modelValue":e[72]||(e[72]=s=>je.value=s),title:"完成订单",width:"92%","close-on-click-modal":!1,"destroy-on-close":"",class:"po-h5-dialog",onClosed:Vn},{footer:l(()=>[a(h,{onClick:e[71]||(e[71]=s=>je.value=!1)},{default:l(()=>[...e[225]||(e[225]=[p("取消",-1)])]),_:1}),a(h,{type:xe.value===10?"danger":"primary",loading:lt.value,onClick:Nn},{default:l(()=>[p(d(xe.value===10?"确认退款":"确定"),1)]),_:1},8,["type","loading"])]),default:l(()=>[e[226]||(e[226]=r("p",{class:"text-sm text-gray-600 mb-3"}," 选择「已完成」按关联收款汇总实付;选择「退款」将关联收款标记已退款并清零已付。 ",-1)),a($,{modelValue:xe.value,"onUpdate:modelValue":e[68]||(e[68]=s=>xe.value=s),class:"w-full",placeholder:"请选择"},{default:l(()=>[(o(),_(T,null,W(kn,s=>a(x,{key:s.value,label:s.label,value:s.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),xe.value===10?(o(),_(T,{key:0},[a(ee,{type:"warning",closable:!1,"show-icon":"",class:"mt-3",title:"关联收款将标记已退款,本单已付清零,不可撤销。"}),ye.value.length?(o(),_("p",Np," 将退款 "+d(ye.value.length)+" 笔关联收款,合计 ¥"+d(K(hn.value)),1)):f("",!0),a(j,{ref_key:"completeRefundFormRef",ref:ha,model:ue,rules:wn.value,"label-width":"80px",class:"mt-2"},{default:l(()=>[a(y,{label:"退款金额",prop:"refund_amount"},{default:l(()=>[a(ne,{modelValue:ue.refund_amount,"onUpdate:modelValue":e[69]||(e[69]=s=>ue.refund_amount=s),min:.01,max:ke.value>0?ke.value:void 0,step:.01,precision:2,class:"w-full"},null,8,["modelValue","max"]),r("div",Cp,"可退上限 ¥"+d(K(ke.value)),1)]),_:1}),a(y,{label:"退款原因",prop:"reason"},{default:l(()=>[a(g,{modelValue:ue.reason,"onUpdate:modelValue":e[70]||(e[70]=s=>ue.reason=s),type:"textarea",rows:3,maxlength:"500",placeholder:"必填"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])],64)):f("",!0)]),_:1},8,["modelValue"]),a(me,{modelValue:st.value,"onUpdate:modelValue":e[76]||(e[76]=s=>st.value=s),title:"订单退款",width:"92%","close-on-click-modal":!1,"destroy-on-close":"",class:"po-h5-dialog",onClosed:On},{footer:l(()=>[a(h,{onClick:e[75]||(e[75]=s=>st.value=!1)},{default:l(()=>[...e[227]||(e[227]=[p("取消",-1)])]),_:1}),a(h,{type:"danger",loading:Sa.value,onClick:An},{default:l(()=>[...e[228]||(e[228]=[p(" 确认退款 ",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(ee,{type:"warning",closable:!1,"show-icon":"",class:"mb-4 !items-start",title:Cn.value},null,8,["title"]),a(j,{ref_key:"refundOrderFormRef",ref:Na,model:le,rules:Pn.value,"label-width":"88px"},{default:l(()=>[a(y,{label:"退款金额",prop:"refund_amount"},{default:l(()=>[a(ne,{modelValue:le.refund_amount,"onUpdate:modelValue":e[73]||(e[73]=s=>le.refund_amount=s),min:.01,max:de.value>0?de.value:void 0,step:.01,precision:2,class:"w-full"},null,8,["modelValue","max"]),r("div",Pp,"可退上限 ¥"+d(K(de.value)),1)]),_:1}),a(y,{label:"退款原因",prop:"reason"},{default:l(()=>[a(g,{modelValue:le.reason,"onUpdate:modelValue":e[74]||(e[74]=s=>le.reason=s),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"请填写退款原因(必填)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue"]),a(me,{modelValue:nt.value,"onUpdate:modelValue":e[84]||(e[84]=s=>nt.value=s),title:"补齐支付单",width:"94%","close-on-click-modal":!1,"destroy-on-close":"",class:"po-h5-dialog",onClosed:e[85]||(e[85]=s=>{var R;return(R=zt.value)==null?void 0:R.clearValidate()})},{footer:l(()=>[a(h,{onClick:e[83]||(e[83]=s=>nt.value=!1)},{default:l(()=>[...e[238]||(e[238]=[p("取消",-1)])]),_:1}),a(h,{type:"primary",loading:$t.value,onClick:Un},{default:l(()=>[...e[239]||(e[239]=[p("确认新增",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(ee,{title:Rn.value,type:"info",closable:!1,"show-icon":"",class:"mb-4"},null,8,["title"]),A((o(),v(j,{ref_key:"addPayOrderFormRef",ref:zt,model:P,rules:Tn.value,"label-width":"90px",class:"pr-2"},{default:l(()=>[a(y,{label:"添加方式",prop:"add_mode"},{default:l(()=>[a(Al,{modelValue:P.add_mode,"onUpdate:modelValue":e[77]||(e[77]=s=>P.add_mode=s)},{default:l(()=>[a(Me,{value:"create"},{default:l(()=>[...e[229]||(e[229]=[p("付呗",-1)])]),_:1}),a(Me,{value:"create_express"},{default:l(()=>[...e[230]||(e[230]=[p("快递代收",-1)])]),_:1}),a(Me,{value:"link"},{default:l(()=>[...e[231]||(e[231]=[p("关联已有",-1)])]),_:1}),a(Me,{value:"completion_only"},{default:l(()=>[...e[232]||(e[232]=[p("直接完单申请",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),P.add_mode==="create"||P.add_mode==="create_express"?(o(),_(T,{key:0},[a(y,{label:"费用类别",prop:"order_type"},{default:l(()=>[a($,{modelValue:P.order_type,"onUpdate:modelValue":e[78]||(e[78]=s=>P.order_type=s),class:"w-full"},{default:l(()=>[a(x,{label:"挂号费",value:1}),a(x,{label:"问诊费",value:2}),a(x,{label:"药品费用",value:3}),a(x,{label:"首付费用",value:4}),a(x,{label:"尾款费用",value:5}),a(x,{label:"其他费用",value:6}),a(x,{label:"全部费用",value:7}),a(x,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),a(y,{label:"支付金额",prop:"pay_amount"},{default:l(()=>[a(ne,{modelValue:P.pay_amount,"onUpdate:modelValue":e[79]||(e[79]=s=>P.pay_amount=s),min:.01,step:.01,precision:2,class:"w-full",placeholder:"请输入支付金额(元)"},null,8,["modelValue"])]),_:1}),a(y,{label:"备注",prop:"pay_remark"},{default:l(()=>[a(g,{modelValue:P.pay_remark,"onUpdate:modelValue":e[80]||(e[80]=s=>P.pay_remark=s),type:"textarea",rows:3,maxlength:"200","show-word-limit":"",placeholder:"支付说明(选填)"},null,8,["modelValue"])]),_:1})],64)):P.add_mode==="completion_only"?(o(),v(ee,{key:1,type:"warning",closable:!1,"show-icon":"",class:"!mb-0"},{title:l(()=>[...e[233]||(e[233]=[p(" 不新增或关联支付单,仅向审核人员提交「完成订单」申请;提交后支付审核将变为待审核,审核通过后将自动结案。 ",-1)])]),_:1})):(o(),v(y,{key:2,label:"选择支付单",prop:"link_pay_order_id"},{default:l(()=>[a($,{modelValue:P.link_pay_order_ids,"onUpdate:modelValue":e[81]||(e[81]=s=>P.link_pay_order_ids=s),class:"w-full",placeholder:"选择未绑定的支付单(可多选)",loading:Ca.value,multiple:"","collapse-tags":"","collapse-tags-tooltip":""},{default:l(()=>[(o(!0),_(T,null,W(Ft.value,s=>(o(),v(x,{key:s.id,label:`${s.order_no} · ¥${s.amount} · ${Ot(s.order_type)} · ${$e(s)}`,value:s.id},{default:l(()=>[r("div",Op,[r("div",Ap,[r("span",Rp,d(s.order_no),1),r("span",Tp,"¥"+d(s.amount),1)]),r("div",Ep,d(Ot(s.order_type))+" · "+d($e(s)),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","loading"]),e[234]||(e[234]=r("div",{class:"text-xs text-gray-500 mt-1.5"}," 仅显示本诊单下未被其他业务订单占用的支付单,可同时选择多个 ",-1))]),_:1})),P.add_mode!=="completion_only"?(o(),v(y,{key:3,label:"完单申请"},{default:l(()=>[a(Al,{modelValue:P.completion_request,"onUpdate:modelValue":e[82]||(e[82]=s=>P.completion_request=s)},{default:l(()=>[a(Me,{value:0},{default:l(()=>[...e[235]||(e[235]=[p("不申请",-1)])]),_:1}),a(Me,{value:1},{default:l(()=>[...e[236]||(e[236]=[p("申请完成订单",-1)])]),_:1})]),_:1},8,["modelValue"]),e[237]||(e[237]=r("div",{class:"text-xs text-gray-400 mt-1"},' 选择"申请完成订单"后,审核人员可在支付审核时看到此申请 ',-1))]),_:1})):f("",!0)]),_:1},8,["model","rules"])),[[Oe,$t.value]])]),_:1},8,["modelValue"]),a(me,{modelValue:Je.value,"onUpdate:modelValue":e[89]||(e[89]=s=>Je.value=s),title:"修改处方患者信息",width:"92%","close-on-click-modal":!1,"destroy-on-close":"",class:"po-h5-dialog",onClosed:Js},{footer:l(()=>[a(h,{onClick:e[88]||(e[88]=s=>Je.value=!1)},{default:l(()=>[...e[240]||(e[240]=[p("取消",-1)])]),_:1}),a(h,{type:"primary",loading:pa.value,onClick:Xs},{default:l(()=>[...e[241]||(e[241]=[p(" 保存 ",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(j,{ref_key:"patchRxPatientFormRef",ref:ca,model:ie,rules:Ms,"label-width":"96px"},{default:l(()=>[a(y,{label:"患者姓名",prop:"patient_name"},{default:l(()=>[a(g,{modelValue:ie.patient_name,"onUpdate:modelValue":e[86]||(e[86]=s=>ie.patient_name=s),maxlength:"50","show-word-limit":"",placeholder:"与处方笺一致",clearable:""},null,8,["modelValue"])]),_:1}),a(y,{label:"手机",prop:"phone"},{default:l(()=>[a(g,{modelValue:ie.phone,"onUpdate:modelValue":e[87]||(e[87]=s=>ie.phone=s),maxlength:"20",placeholder:"处方登记手机号",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),a(me,{modelValue:Qe.value,"onUpdate:modelValue":e[96]||(e[96]=s=>Qe.value=s),title:"修改服用参数",width:"92%","close-on-click-modal":!1,"destroy-on-close":"",class:"po-h5-dialog",onClosed:Ws},{footer:l(()=>[a(h,{onClick:e[95]||(e[95]=s=>Qe.value=!1)},{default:l(()=>[...e[247]||(e[247]=[p("取消",-1)])]),_:1}),a(h,{type:"primary",loading:ma.value,onClick:Ks},{default:l(()=>[...e[248]||(e[248]=[p("保存",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(j,{ref_key:"patchUsageFormRef",ref:_a,model:U,rules:Hs.value,"label-width":"96px"},{default:l(()=>[Ne.value?(o(),_("div",Up,"主方")):f("",!0),a(y,{label:"每天次数",prop:"times_per_day"},{default:l(()=>[a(ne,{modelValue:U.times_per_day,"onUpdate:modelValue":e[90]||(e[90]=s=>U.times_per_day=s),min:1,max:6,step:1,"controls-position":"right",class:"w-full"},null,8,["modelValue"])]),_:1}),a(y,{label:"处方开立",prop:"usage_days"},{default:l(()=>[r("div",Dp,[a(ne,{modelValue:U.usage_days,"onUpdate:modelValue":e[91]||(e[91]=s=>U.usage_days=s),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[242]||(e[242]=r("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1}),Ne.value?(o(),_(T,{key:1},[e[244]||(e[244]=r("div",{class:"text-xs font-medium text-gray-500 mb-3 mt-2 pt-2 border-t border-gray-100"},"辅方",-1)),a(y,{label:"每天次数",prop:"aux_times_per_day"},{default:l(()=>[a(ne,{modelValue:U.aux_times_per_day,"onUpdate:modelValue":e[92]||(e[92]=s=>U.aux_times_per_day=s),min:1,max:6,step:1,"controls-position":"right",class:"w-full"},null,8,["modelValue"])]),_:1}),a(y,{label:"处方开立",prop:"aux_usage_days"},{default:l(()=>[r("div",$p,[a(ne,{modelValue:U.aux_usage_days,"onUpdate:modelValue":e[93]||(e[93]=s=>U.aux_usage_days=s),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[243]||(e[243]=r("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1})],64)):f("",!0),e[246]||(e[246]=r("div",{class:"text-xs font-medium text-gray-500 mb-3 mt-2 pt-2 border-t border-gray-100"},"订单设置",-1)),a(y,{label:"服用天数",prop:"medication_days"},{default:l(()=>[r("div",zp,[a(ne,{modelValue:U.medication_days,"onUpdate:modelValue":e[94]||(e[94]=s=>U.medication_days=s),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[245]||(e[245]=r("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue"]),a(Aa,{modelValue:jt.value,"onUpdate:modelValue":e[98]||(e[98]=s=>jt.value=s),size:"100%",direction:"btt",class:"po-h5-drawer","close-on-click-modal":!1},{header:l(()=>[r("div",Fp,[e[251]||(e[251]=r("span",{class:"text-base font-medium text-gray-800"},"查看处方",-1)),O.value&&!qt.value?(o(),_("div",jp,[a(h,{size:"small",loading:Le.value,onClick:Ln},{default:l(()=>[...e[249]||(e[249]=[p(" 下载图片 ",-1)])]),_:1},8,["loading"]),a(h,{size:"small",loading:Le.value,onClick:In},{default:l(()=>[...e[250]||(e[250]=[p(" 下载PDF ",-1)])]),_:1},8,["loading"])])):f("",!0)])]),default:l(()=>[A((o(),_("div",qp,[O.value?(o(),v(Kn,{key:0,modelValue:Lt.value,"onUpdate:modelValue":e[97]||(e[97]=s=>Lt.value=s),class:"mx-4 mt-2",style:{"margin-bottom":"0","z-index":"1",position:"relative"}},{default:l(()=>[a(Rl,{label:"药房联",name:"internal"}),a(Rl,{label:"处方联",name:"user"})]),_:1},8,["modelValue"])):f("",!0),O.value?(o(),_("div",Lp,[Number(O.value.void_status)===1?(o(),v(u,{key:0,type:"danger",size:"small"},{default:l(()=>[...e[252]||(e[252]=[p("已作废",-1)])]),_:1})):Number(O.value.business_prescription_audit_rejected)===1?(o(),v(u,{key:1,type:"danger",size:"small"},{default:l(()=>[...e[253]||(e[253]=[p("业务订单已驳回",-1)])]),_:1})):Number(O.value.audit_status)===1?(o(),v(u,{key:2,type:"success",size:"small"},{default:l(()=>[...e[254]||(e[254]=[p("已通过",-1)])]),_:1})):Number(O.value.audit_status)===0?(o(),v(u,{key:3,type:"warning",size:"small"},{default:l(()=>[...e[255]||(e[255]=[p("待审核",-1)])]),_:1})):(o(),v(u,{key:4,type:"danger",size:"small"},{default:l(()=>[...e[256]||(e[256]=[p("已驳回",-1)])]),_:1}))])):f("",!0),O.value&&Number(O.value.void_status)===1?(o(),_("div",Ip," 作废人:"+d(O.value.void_by_name||"—")+",作废时间:"+d(Fn(O.value.void_time)),1)):O.value&&Number(O.value.business_prescription_audit_rejected)===1?(o(),_("div",Mp,[e[257]||(e[257]=r("div",{class:"font-medium"},"审核状态:已驳回(业务订单·处方审核)",-1)),O.value.business_prescription_audit_remark?(o(),_("div",Hp," 驳回意见:"+d(O.value.business_prescription_audit_remark),1)):f("",!0)])):O.value&&Number(O.value.audit_status)===2?(o(),_("div",Bp,[e[258]||(e[258]=r("div",{class:"font-medium"},"消费者处方审核:已驳回",-1)),O.value.audit_remark?(o(),_("div",Wp,"驳回意见:"+d(O.value.audit_remark),1)):f("",!0)])):f("",!0),O.value?(o(),v(Oi,{key:5,ref_key:"rxSlipRef",ref:kl,data:O.value,variant:Lt.value,title:zn},null,8,["data","variant"])):f("",!0),O.value&&(O.value.audit_by_name||O.value.audit_remark)?(o(),_("div",Kp,[O.value.audit_by_name?(o(),_("div",Gp,[p(" 审核人:"+d(O.value.audit_by_name)+" ",1),O.value.audit_time?(o(),_("span",Jp,d(hl(O.value.audit_time)),1)):f("",!0)])):f("",!0),O.value.audit_remark?(o(),_("div",Qp,"审核意见:"+d(O.value.audit_remark),1)):f("",!0)])):f("",!0)])),[[Oe,qt.value]])]),_:1},8,["modelValue"]),a(Aa,{modelValue:Tt.value,"onUpdate:modelValue":e[99]||(e[99]=s=>Tt.value=s),title:"甘草预下单测试结果",size:"100%",direction:"btt",class:"po-h5-drawer","destroy-on-close":""},{default:l(()=>{var s,R;return[q.value?(o(),_("div",Yp,[a(n,{shadow:"never",class:"mb-4"},{header:l(()=>[r("div",Xp,[e[260]||(e[260]=r("span",{class:"font-semibold"},"价格信息",-1)),a(u,{type:"success"},{default:l(()=>[...e[259]||(e[259]=[p("预下单成功",-1)])]),_:1})])]),default:l(()=>[a(it,{column:2,border:""},{default:l(()=>[a(S,{label:"药材成本"},{default:l(()=>{var V;return[r("span",Zp,"¥"+d(((V=q.value.fee)==null?void 0:V.m_cost)||"0.00"),1)]}),_:1}),a(S,{label:"制作费"},{default:l(()=>{var V;return[r("span",ec,"¥"+d((((V=q.value.fee)==null?void 0:V.proces_cost)||0).toFixed(2)),1)]}),_:1}),a(S,{label:"物流费"},{default:l(()=>{var V;return[r("span",tc,"¥"+d((((V=q.value.fee)==null?void 0:V.lis_cost)||0).toFixed(2)),1)]}),_:1}),a(S,{label:"总计"},{default:l(()=>[r("div",null,[r("span",ac," ¥"+d(_l(q.value.fee)),1),A((o(),_("div",lc,[e[261]||(e[261]=p(" 占订单总金额: ",-1)),r("span",sc,d(mn(q.value.fee,q.value.amount)),1),q.value.amount>0?(o(),_("span",nc,"%(预报价 ÷ 订单金额 × 100)")):f("",!0)])),[[z,["prescription.order/finance"]]])])]),_:1})]),_:1})]),_:1}),a(n,{shadow:"never",class:"mb-4"},{header:l(()=>[...e[262]||(e[262]=[r("span",{class:"font-semibold"},"配送信息",-1)])]),default:l(()=>[a(it,{column:2,border:""},{default:l(()=>[a(S,{label:"调配中心"},{default:l(()=>{var V;return[p(d(((V=q.value.result)==null?void 0:V.ds_name)||"—"),1)]}),_:1}),a(S,{label:"调配中心ID"},{default:l(()=>{var V;return[p(d(((V=q.value.result)==null?void 0:V.ds_id)||"—"),1)]}),_:1}),a(S,{label:"服用天数范围",span:2},{default:l(()=>{var V,F,ot,ut,be,Ae;return[p(d(((F=(V=q.value.result)==null?void 0:V.take_days)==null?void 0:F.min)||"—")+" - "+d(((ut=(ot=q.value.result)==null?void 0:ot.take_days)==null?void 0:ut.max)||"—")+" 天 (默认: "+d(((Ae=(be=q.value.result)==null?void 0:be.take_days)==null?void 0:Ae.default)||"—")+" 天) ",1)]}),_:1})]),_:1})]),_:1}),(R=(s=q.value.result)==null?void 0:s.rule_check)!=null&&R.length?(o(),v(n,{key:0,shadow:"never",class:"mb-4"},{header:l(()=>[...e[263]||(e[263]=[r("span",{class:"font-semibold"},"医嘱备注",-1)])]),default:l(()=>[r("div",rc,d(q.value.result.rule_check.map(V=>V.msg).join(" ")),1)]),_:1})):f("",!0),a(n,{shadow:"never"},{header:l(()=>{var V,F;return[r("div",ic,[e[264]||(e[264]=r("span",{class:"font-semibold"},"药材明细",-1)),r("span",oc,"共 "+d(((F=(V=q.value.result)==null?void 0:V.m_list)==null?void 0:F.length)||0)+" 味药",1)])]}),default:l(()=>{var V;return[a(Mt,{data:((V=q.value.result)==null?void 0:V.m_list)||[],border:"",stripe:"","max-height":"400"},{default:l(()=>[a(D,{type:"index",label:"#",width:"50",align:"center"}),a(D,{prop:"title",label:"药材名称","min-width":"120","show-overflow-tooltip":""}),a(D,{prop:"quantity",label:"用量",width:"80",align:"right"},{default:l(({row:F})=>[p(d(F.quantity)+d(F.unit),1)]),_:1}),a(D,{prop:"price",label:"单价(元/克)",width:"110",align:"right"},{default:l(({row:F})=>[p(" ¥"+d(Number(F.price).toFixed(4)),1)]),_:1}),a(D,{label:"小计",width:"100",align:"right"},{default:l(({row:F})=>[r("span",uc," ¥"+d((Number(F.price)*Number(F.quantity)).toFixed(2)),1)]),_:1}),a(D,{prop:"is_available",label:"库存状态",width:"100",align:"center"},{default:l(({row:F})=>[a(u,{type:F.is_available===1?"success":"danger",size:"small"},{default:l(()=>[p(d(F.is_available===1?"有货":"缺货"),1)]),_:2},1032,["type"])]),_:1}),a(D,{prop:"brief",label:"备注","min-width":"120","show-overflow-tooltip":""})]),_:1},8,["data"])]}),_:1}),a(n,{shadow:"never",class:"mt-4"},{header:l(()=>[...e[265]||(e[265]=[r("span",{class:"font-semibold"},"订单信息",-1)])]),default:l(()=>[a(it,{column:2,border:""},{default:l(()=>[a(S,{label:"订单号",span:2},{default:l(()=>[p(d(q.value.order_no||"—"),1)]),_:1}),a(S,{label:"剂数"},{default:l(()=>[r("span",dc,d(q.value.dose_count||"—")+"剂",1)]),_:1}),a(S,{label:"单剂量"},{default:l(()=>{var V;return[r("span",pc,d(_n((V=q.value.result)==null?void 0:V.m_list))+"克 ",1)]}),_:1})]),_:1})]),_:1})])):f("",!0)]}),_:1},8,["modelValue"]),a(E(Fl),{ref_key:"diagnosisViewRef",ref:Da},null,512),a(Yr,{ref_key:"orderTimeDialogRef",ref:sa,onSaved:Ps},null,512)])}}}),Cc=Ti(mc,[["__scopeId","data-v-731df2ea"]]);export{Cc as default}; diff --git a/server/public/admin/assets/order_list_h5-BCVDZuh3.js b/server/public/admin/assets/order_list_h5-BCVDZuh3.js new file mode 100644 index 000000000..9e5821e13 --- /dev/null +++ b/server/public/admin/assets/order_list_h5-BCVDZuh3.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-BuMVMky1.js","assets/.pnpm-CyuAWpdG.js","assets/.pnpm-gju-uIcq.css","assets/tcm-BSADvQNg.js","assets/index-Bkarz3gO.js","assets/index-deCJ4ja-.css","assets/perm-CHCBwnFR.js","assets/DailyMatrix-BkYJBu_D.js","assets/picker-BTh9eW9u.js","assets/index-CS5Wg0xx.js","assets/index-B3imPWFk.css","assets/index-oRynN2pP.js","assets/index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js","assets/index-Cqk_cdo9.js","assets/index-D0f1Mn00.css","assets/index-BJZwRQXE.js","assets/file-BjbV-eNx.js","assets/index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js","assets/usePaging-CghUEVfD.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-VonOdKxB.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-QpDuElbH.js","assets/DailyMatrix-UrdT3nb4.css","assets/FollowupAudioPanel-BQogJqk-.js","assets/FollowupAudioReview-BDRNtxGL.js","assets/FollowupAudioField-Dz9Csp0b.js","assets/FollowupAudioField-CgGB4JHa.css","assets/FollowupAudioReview-FDacm0-w.css","assets/FollowupAudioPanel-DxwHebla.css","assets/CaseRecordList-2_yvVfnZ.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-PGnYdg0x.js","assets/RecordingPlaybackBlock-DDHsYga7.js","assets/RecordingVideoPlayer-B0kkGDId.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-CO99W60y.js","assets/dayjs-B2bPhvDy.js","assets/im-business-message-parse-DdA9BRrQ.js","assets/ImChatRecordPanel-CNRZQxnD.css","assets/AssignLogPanel-mqnmyStx.js","assets/AssignLogPanel-CZ6Lj7JU.css","assets/AppointmentRecordPanel-aR2VA9u1.js","assets/doctor-DBvYeWd3.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-D83GYvN5.js","assets/patient-B_ifBl-W.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-Dk7f29yf.js","assets/PrescriptionOrderDetailDrawer-CX7YbddA.js","assets/prescription-order-utils-CXfs2Bra.js","assets/PrescriptionOrderDetailDrawer-bXx-K7GP.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-C_PSjf1W.js","assets/index-DAIDDabA.js","assets/medicine-DPIOyHj8.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CTRSsggc.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-Cb_EuRyW.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]); +import{o as Fl,R as El,ap as Gn,bp as Jn,q as o,r as _,s as r,v as a,D as l,F as E,G as H,ae as L,T as d,P as f,bj as Qn,ac as O,w as Yn,u as U,cg as Xn,L as p,bI as Zn,bJ as er,ch as tr,bn as ar,bB as Ta,O as v,bm as lr,cm as Ul,bd as sr,C as Ea,bb as nr,aA as rr,bc as dt,bh as ir,bi as or,bL as ur,K as dr,ad as Bt,bC as pr,ci as cr,aw as Wt,$ as mr,Z as _r,_ as fr,b_ as vr,bo as gr,b$ as yr,c0 as br,c1 as xr,c2 as kr,bk as hr,bl as wr,cn as Vr,bz as Sr,bt as Nr,ba as Cr,c4 as Pr,c5 as Or,B as Ar,J as Rr,aB as Tr,a1 as Er,c9 as Ur,ca as Dr,cc as $r,U as zr,S as Fr,I as qr,bf as jr,bq as Lr,Y as Ir,X as Mr,cd as Hr,al as Br,M as b,p as N,aC as _e,n as pt,e as Kt,cf as Wr,ce as Kr}from"./.pnpm-CyuAWpdG.js";import{_ as Gr}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{L as Jr,u as Qr}from"./useListTimeFilter-F3VNdKVb.js";import{_ as Yr}from"./PrescriptionOrderTimeDialog.vue_vue_type_script_setup_true_lang-CJXWubSx.js";import{_ as Xr}from"./GancaoSubmissionReconcileButton.vue_vue_type_script_setup_true_lang-__KcsZHs.js";import{g as Zr,o as ei,z as ti,i as ai,f as li,m as Q,G as si,H as ni,I as ri,J as ii,K as oi,L as ui,M as Dl,N as di,O as pi,P as ci,Q as $l,R as mi,S as _i,T as fi,U as vi,V as gi,W as yi,r as bi,l as Ua,k as xi}from"./tcm-BSADvQNg.js";import{z as ki,A as hi,n as wi,C as Da,x as Vi,r as Si,v as zl,w as Ni,D as Ci,E as Pi}from"./prescription-order-utils-CXfs2Bra.js";import{P as Oi}from"./index-CTRSsggc.js";import{u as Ai,j as C,n as Ri,_ as Ti}from"./index-Bkarz3gO.js";import{d as Ei}from"./department-BeBGhsmA.js";import{u as Ui}from"./usePaging-CghUEVfD.js";const Di={class:"prescription-order-page prescription-order-list prescription-order-h5 po-h5-app"},$i={class:"flex flex-col gap-3"},zi={key:0,class:"flex items-center gap-2 flex-wrap"},Fi=["onClick"],qi={class:"font-medium"},ji={class:"flex items-center gap-2 flex-wrap"},Li=["onClick"],Ii={class:"font-medium"},Mi={class:"flex items-center gap-2 flex-wrap"},Hi=["onClick"],Bi={class:"font-medium"},Wi={class:"flex items-center gap-2 flex-wrap"},Ki=["onClick"],Gi={class:"font-medium"},Ji={class:"flex items-center gap-2 flex-wrap"},Qi=["onClick"],Yi={class:"font-medium"},Xi={class:"po-list-stats grid grid-cols-1 sm:grid-cols-2 gap-4 mb-5"},Zi={class:"po-stat-surface po-stat-surface--order relative overflow-hidden rounded-xl border border-slate-200/90 px-5 py-4 shadow-sm"},eo={class:"relative flex items-start justify-between gap-3"},to={class:"flex items-center gap-2 text-slate-500 text-xs font-medium"},ao={class:"mt-2 space-y-1.5 min-w-0"},lo={class:"text-2xl sm:text-[28px] font-bold text-sky-700 tabular-nums leading-none"},so={class:"flex flex-wrap gap-x-3 gap-y-1 text-xs text-slate-500 tabular-nums"},no={class:"text-slate-400"},ro={class:"stat-icon-wrap h-10 w-10 shrink-0 rounded-lg bg-sky-500/10 flex items-center justify-center text-sky-600"},io={class:"relative mt-2 text-xs text-slate-500 leading-relaxed"},oo={class:"po-stat-surface po-stat-surface--pay relative overflow-hidden rounded-xl border border-slate-200/90 px-5 py-4 shadow-sm"},uo={class:"relative flex items-start justify-between gap-3"},po={class:"flex items-center gap-2 text-slate-500 text-xs font-medium"},co={class:"mt-2 space-y-1.5 min-w-0"},mo={class:"text-2xl sm:text-[28px] font-bold text-emerald-700 tabular-nums leading-none"},_o={class:"flex flex-wrap gap-x-3 gap-y-1 text-xs text-slate-500 tabular-nums"},fo={class:"text-slate-400"},vo={class:"stat-icon-wrap h-10 w-10 shrink-0 rounded-lg bg-emerald-500/10 flex items-center justify-center text-emerald-600"},go={class:"relative mt-2 text-xs text-slate-500 leading-relaxed"},yo={class:"po-filter-toggle__label"},bo={class:"po-h5-list-head"},xo={class:"po-table-toolbar"},ko={class:"po-table-toolbar__title-wrap"},ho={class:"po-table-hint text-gray-400"},wo={class:"po-focus-board"},Vo={class:"po-focus-board__value"},So={class:"po-focus-board__value"},No={class:"po-focus-board__value"},Co={class:"po-focus-board__value"},Po={class:"po-card-list"},Oo=["onClick"],Ao={class:"po-card__head"},Ro={class:"po-card__order-no"},To={class:"po-card__order-no-main"},Eo={class:"po-card__tags"},Uo={class:"po-card__id"},Do={key:0,class:"po-card__alert"},$o={class:"po-card__row"},zo={class:"po-card__field"},Fo={class:"po-card__value"},qo={class:"po-card__field po-card__field--right"},jo={class:"po-card__value po-card__amount"},Lo={class:"po-card__row"},Io={class:"po-card__field"},Mo={class:"po-card__field po-card__field--right"},Ho={class:"po-card__value"},Bo={class:"po-card__row"},Wo={class:"po-card__field"},Ko={class:"po-card__value"},Go={class:"po-card__field po-card__field--right"},Jo={class:"po-card__value"},Qo={key:1,class:"po-card__row"},Yo={class:"po-card__field"},Xo={class:"po-card__value text-orange-600 font-semibold"},Zo={class:"po-card__field po-card__field--right"},eu={class:"po-card__value"},tu={key:0,class:"text-primary"},au={key:1},lu={key:2,class:"po-card__row"},su={class:"po-card__field"},nu={class:"po-card__value"},ru={key:0,class:"text-primary"},iu={key:1},ou={class:"po-card__field po-card__field--right"},uu={class:"po-card__value po-card__time"},du={class:"po-card__tags-row"},pu={class:"po-card__meta"},cu={key:0},mu={key:1},_u={key:2,class:"po-card__meta-time"},fu={class:"flex justify-end mt-4"},vu={class:"po-detail-drawer-head flex w-full min-w-0 flex-col gap-2"},gu={class:"po-detail-drawer-head-main flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1"},yu={key:0,class:"po-detail-drawer-actions flex flex-wrap items-center gap-2"},bu={key:1,class:"po-detail-body px-6 pb-6 h-full overflow-y-auto"},xu={class:"min-w-0 break-words text-sm leading-relaxed"},ku={class:"font-mono font-semibold text-red-700"},hu={class:"font-mono font-semibold text-red-700"},wu={class:"po-workflow-steps-wrap bg-gray-50/80 border border-gray-100 rounded-lg p-5 mb-5 shadow-sm"},Vu={key:0,class:"text-red-500 font-medium"},Su={key:1},Nu={key:2,class:"text-green-600"},Cu={key:3,class:"text-gray-400"},Pu={key:0,class:"text-red-500 font-medium"},Ou={key:1},Au={key:2,class:"text-green-600"},Ru={key:3,class:"text-gray-400"},Tu={key:0,class:"text-amber-600 font-medium"},Eu={key:1,class:"text-primary font-medium"},Uu={key:2},Du={key:3,class:"text-green-600"},$u={key:4,class:"text-red-500 font-medium"},zu={class:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-4 mb-5"},Fu={class:"flex items-center justify-between mb-1"},qu={class:"stat-value text-red-500 font-bold text-xl"},ju={class:"stat-value text-green-600 font-bold text-xl"},Lu={class:"stat-value text-primary font-bold text-xl"},Iu={class:"grid grid-cols-1 md:grid-cols-2 gap-4 mb-4"},Mu={key:0,class:"audit-stamp stamp-pass"},Hu={key:1,class:"audit-stamp stamp-reject"},Bu={class:"po-panel-rx-header flex w-full min-w-0 flex-col gap-2"},Wu={class:"flex w-full min-w-0 flex-wrap items-center justify-between gap-x-2 gap-y-1"},Ku={class:"shrink-0 text-xs text-gray-400 tabular-nums"},Gu={key:0,class:"min-w-0 text-xs leading-snug text-gray-500"},Ju={class:"text-primary font-medium"},Qu={class:"flex w-full min-w-0 flex-wrap items-center gap-x-3 gap-y-1"},Yu={class:"text-red-500 font-medium"},Xu={class:"flex flex-col gap-1 text-sm leading-relaxed"},Zu={key:0,class:"text-gray-500 mr-1"},ed={key:1,class:"ml-2 text-gray-500"},td={key:0},ad={key:1,class:"ml-2 text-gray-500"},ld={class:"flex items-center gap-1 flex-wrap"},sd={class:"flex flex-col gap-1.5 text-sm leading-relaxed"},nd={key:0},rd={key:0,class:"mt-4"},id={class:"flex flex-col gap-4 h-full"},od={class:"text-red-500"},ud={key:0,class:"audit-stamp stamp-pass"},dd={key:1,class:"audit-stamp stamp-reject"},pd={class:"flex items-center justify-between"},cd={class:"flex items-center gap-3"},md={key:0,class:"text-xs text-gray-500"},_d={class:"text-primary font-medium"},fd={class:"text-red-500"},vd={class:"po-biz-diagnosis-id flex min-w-0 flex-col gap-3 rounded-2xl border border-slate-200/90 bg-gradient-to-br from-slate-50 to-white px-4 py-3.5 shadow-sm sm:flex-row sm:items-center sm:justify-between"},gd={class:"flex min-w-0 flex-col gap-1"},yd={class:"font-mono text-[1.125rem] font-semibold leading-tight tracking-tight text-slate-900 tabular-nums"},bd={class:"flex flex-wrap items-center gap-x-4 gap-y-1 text-[13px]"},xd={class:"font-mono text-primary"},kd={class:"text-gray-500"},hd={key:0},wd={key:1,class:"text-gray-500"},Vd={key:0,class:"text-xs text-gray-500 mt-1"},Sd={key:1,class:"text-gray-400"},Nd={class:"po-audit-remark"},Cd={class:"po-audit-remark"},Pd={class:"po-logistics-toolbar flex flex-wrap items-center gap-2 mb-4"},Od={class:"po-logistics-toolbar__links flex items-center gap-3 w-full pt-1"},Ad={key:1,class:"py-6 text-center text-sm text-gray-500"},Rd={key:2,class:"logistics-content bg-gray-50/50 p-4 rounded-md"},Td={key:0,class:"text-sm mb-4 font-medium flex items-center gap-2"},Ed={class:"text-gray-800"},Ud={key:1,class:"text-xs text-gray-400 ml-1"},Dd={key:2,class:"text-xs text-gray-400"},$d={class:"flex items-center gap-2 mb-1"},zd={class:"font-medium text-[13px]"},Fd={class:"text-sm text-gray-700 font-medium"},qd={class:"create-order-dialog__inner"},jd={key:0,class:"create-order-rx-card"},Ld={class:"create-order-rx-card__head"},Id={class:"create-order-rx-card__meta"},Md={class:"create-order-rx-card__id"},Hd={key:0,class:"create-order-rx-card__sn"},Bd={class:"create-order-rx-card__patient"},Wd={class:"create-order-rx-card__herbs"},Kd={class:"create-order-step-lead"},Gd={class:"create-order-step-panel"},Jd={class:"create-order-step-panel"},Qd={class:"flex flex-wrap items-center gap-2 pb-2 border-b border-gray-100"},Yd={class:"text-xs text-gray-400"},Xd={class:"mt-2 space-y-1.5 text-xs sm:text-sm"},Zd={key:0,class:"space-y-1.5"},ep={class:"text-gray-800 break-all"},tp={key:1,class:"text-gray-400"},ap={class:"flex items-center gap-1 w-full"},lp={class:"flex gap-2 w-full"},sp={class:"flex flex-col gap-0.5",style:{"line-height":"normal"}},np={class:"flex items-center justify-between"},rp={class:"font-medium text-[13px] text-gray-800"},ip={class:"text-orange-500 font-medium ml-4"},op={class:"flex items-center justify-between text-xs text-gray-400 mt-1"},up={class:"truncate pr-2"},dp={class:"shrink-0"},pp={class:"create-order-pay-hint text-gray-500"},cp={class:"text-amber-600 font-medium"},mp={class:"create-order-step-panel"},_p={class:"create-order-deposit-bar__cell"},fp={class:"create-order-deposit-bar__sub"},vp={class:"create-order-deposit-bar__cell"},gp={class:"create-order-deposit-bar__sub"},yp={class:"create-order-footer"},bp={class:"create-order-footer__hint"},xp={class:"create-order-footer__step"},kp={key:0,class:"create-order-footer__warn"},hp={class:"create-order-footer__actions"},wp={class:"text-sm"},Vp={class:"text-gray-600"},Sp={class:"text-gray-600"},Np={key:0,class:"text-xs text-amber-800 mt-2"},Cp={class:"text-xs text-gray-500 mt-1"},Pp={class:"text-xs text-gray-500 mt-1"},Op={class:"flex flex-col gap-0.5 py-0.5"},Ap={class:"flex items-center justify-between"},Rp={class:"text-sm"},Tp={class:"text-orange-500 font-medium ml-4"},Ep={class:"text-xs text-gray-400"},Up={key:0,class:"text-xs font-medium text-gray-500 mb-3"},Dp={class:"flex items-center gap-1 w-full"},$p={class:"flex items-center gap-1 w-full"},zp={class:"flex items-center gap-1 w-full"},Fp={class:"flex items-center justify-between w-full pr-2 gap-3"},qp={key:0,class:"flex items-center gap-2 shrink-0"},jp={class:"rx-wrap"},Lp={key:1,class:"rx-statusbar"},Ip={key:2,class:"rx-status rx-status-danger"},Mp={key:3,class:"rx-status rx-status-danger"},Hp={key:0,class:"mt-1"},Bp={key:4,class:"rx-status rx-status-danger"},Wp={key:0,class:"mt-1"},Kp={key:6,class:"rx-audit"},Gp={key:0},Jp={key:0,class:"ml-2 text-gray-400"},Qp={key:1,class:"mt-1"},Yp={key:0,class:"px-4"},Xp={class:"flex items-center justify-between"},Zp={class:"text-lg font-semibold text-orange-600"},ec={class:"text-lg font-semibold text-blue-600"},tc={class:"text-lg font-semibold text-green-600"},ac={class:"text-xl font-bold text-red-600"},lc={class:"text-sm text-gray-500 mt-1.5"},sc={class:"font-medium text-gray-700"},nc={key:0},rc={class:"text-sm text-gray-700 leading-relaxed"},ic={class:"flex items-center justify-between"},oc={class:"text-sm text-gray-500"},uc={class:"font-medium text-orange-600"},dc={class:"text-base font-medium"},pc={class:"text-base font-medium"},cc=Fl({name:"prescriptionOrderListH5"}),mc=Fl({...cc,setup(_c){const ql=Hr(()=>Br(()=>import("./edit-BuMVMky1.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]))),we=Ai(),$a=b(null);function jl(){var e,s;const t=Number((e=c.value)==null?void 0:e.diagnosis_id);if(!t){C.msgWarning("本订单未关联诊单,无法查看患者诊单信息");return}(s=$a.value)==null||s.openViewOnly(t)}const Ll=2,Il=6,za=[3,8],Ml=[0,3,6],Hl=N(()=>{const t=we.userInfo;if(!t||Number(t.root)===1)return!1;const e=Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[];return e.includes(Il)?!za.some(s=>e.includes(s)):!1}),Bl=N(()=>{const t=we.userInfo;if(!t)return!1;if(Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[];return za.some(s=>e.includes(s))}),Wl=N(()=>Hl.value||Bl.value),Fa=b([]),Ve=N(()=>{const t=we.userInfo;if(!t||Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[];return e.includes(Ll)?e.some(s=>Ml.includes(s)):!0}),Kl=N(()=>Ve.value?"详情/审核":"详情"),Gl=[0,3,6],qa=()=>{const t=we.userInfo;if(!t)return!1;if(Number(t.root)===1)return!0;const e=Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[];return Gl.some(s=>e.includes(s))},ct=b([]),mt=b([]),Gt=b([]),He=b([]),_t=b([]),Jl={value:"id",label:"name",children:"children"};function ja(t,e){for(const s of t||[]){if(s==null||typeof s!="object")continue;const i=s;if(Number(i.id)===e)return i;const u=ja(i.children||[],e);if(u)return u}return null}function La(t){const e=Number(t.id),s=[];Number.isFinite(e)&&e>0&&s.push(e);for(const i of t.children||[])i&&typeof i=="object"&&s.push(...La(i));return s}function Ql(t,e){const s=ja(e,t);return s?La(s):[t]}async function Yl(){try{const[t,e,s]=await Promise.all([Zr(),ei(),Ei()]);Gt.value=Array.isArray(t)?t:[],He.value=Array.isArray(e)?e:[];const i=Array.isArray(s)?s:[];_t.value=i}catch{Gt.value=[],He.value=[],_t.value=[]}}const Xl=t=>t.map(e=>{var s;return{value:e.province,label:e.province,code:e.code,children:((s=e.citys)==null?void 0:s.map(i=>{var u;return{value:i.city,label:i.city,code:i.code,children:((u=i.areas)==null?void 0:u.map(g=>({value:g.area,label:g.area,code:g.code})))||[]}}))||[]}}),Zl=async()=>{try{console.log("开始加载省市区数据...");const e=await fetch("https://cos.zhenyangtang.com.cn/area/ChinaCitys.json");if(console.log("响应状态:",e.status),!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const s=await e.json();console.log("加载的数据条数:",s==null?void 0:s.length),ct.value=Xl(s),console.log("regionOptions 已设置,条数:",ct.value.length)}catch(t){console.error("加载省市区数据失败:",t),ct.value=[]}},es=async()=>{try{const t=await Ri({type:"server_order"});mt.value=wi(t==null?void 0:t.server_order)}catch(t){console.error("加载服务套餐选项失败:",t),mt.value=[]}},ts=[{label:"全部",value:""},{label:"待双审通过",value:1},{label:"待发货",value:2},{label:"已发货",value:5},{label:"已签收",value:6},{label:"已完成",value:3},{label:"已取消",value:4},{label:"进行中",value:7},{label:"暂不制药",value:8},{label:"拒收",value:9},{label:"退款",value:10},{label:"保留药方",value:11},{label:"制药缓发",value:12}];function as(t){re.value="",h.fulfillment_status=t,Y()}const re=b(""),ls=[{label:"全部",value:""},{label:"甘草",value:"gancao"},{label:"洛阳直发",value:"direct"},{label:"自营",value:"self"}];function ss(t){h.supply_mode=t,Y()}const ns=[{label:"全部",value:""},{label:"顺丰",value:"sf"},{label:"京东",value:"jd"}];function rs(t){h.express_company=t,Y()}const h=_e({order_no:"",prescription_id:"",patient_keyword:"",express_keyword:"",express_company:"",doctor_id:"",assistant_id:"",assistant_dept_id:"",fulfillment_status:"",prescription_audit_status:"",payment_slip_audit_status:"",supply_mode:"",audit_admin_id:""}),is=[{label:"全部",value:""},{label:"待审核",value:0},{label:"已通过",value:1},{label:"已驳回",value:2}],os=[{label:"全部",value:""},{label:"待审核",value:0},{label:"已通过",value:1},{label:"已驳回",value:2}];function us(t){re.value="",h.prescription_audit_status=t,Y()}function ds(t){re.value="",h.payment_slip_audit_status=t,Y()}function ft(t){if(re.value===t){re.value="",h.prescription_audit_status="",h.payment_slip_audit_status="",h.fulfillment_status="",Y();return}re.value=t,h.prescription_audit_status="",h.payment_slip_audit_status="",h.fulfillment_status="",t==="pendingRx"?h.prescription_audit_status=0:t==="pendingPay"?(h.prescription_audit_status=1,h.payment_slip_audit_status=0):t==="pendingShip"?h.fulfillment_status=2:t==="risk"&&(h.payment_slip_audit_status=2),Y()}const{time_type:Re,dateRange:Jt,resolve:ps,handleTimeTypeChange:cs,handleCustomDateChange:ms,resetTimeFilter:_s}=Qr("all"),Ia=()=>{te.page=1,I()},fs=()=>cs(Ia),vs=()=>ms(Ia);async function gs(t){const[e,s]=ps(),i={...t,start_time:e,end_time:s};if(i.prescription_id===""||i.prescription_id===void 0?delete i.prescription_id:i.prescription_id=Number(i.prescription_id),(i.fulfillment_status===""||i.fulfillment_status===void 0)&&delete i.fulfillment_status,(i.prescription_audit_status===""||i.prescription_audit_status===void 0)&&delete i.prescription_audit_status,(i.payment_slip_audit_status===""||i.payment_slip_audit_status===void 0)&&delete i.payment_slip_audit_status,(!i.supply_mode||i.supply_mode==="")&&delete i.supply_mode,i.doctor_id===""||i.doctor_id===void 0||i.doctor_id===null?delete i.doctor_id:i.doctor_id=Number(i.doctor_id),i.assistant_id===""||i.assistant_id===void 0||i.assistant_id===null?delete i.assistant_id:i.assistant_id=Number(i.assistant_id),i.assistant_dept_id===""||i.assistant_dept_id===void 0||i.assistant_dept_id===null?delete i.assistant_dept_id:i.assistant_dept_id=Number(i.assistant_dept_id),i.order_no||delete i.order_no,String(i.patient_keyword||"").trim()||delete i.patient_keyword,i.audit_admin_id===""||i.audit_admin_id===void 0||i.audit_admin_id===null?delete i.audit_admin_id:i.audit_admin_id=Number(i.audit_admin_id),String(i.express_keyword||"").trim()||delete i.express_keyword,(!i.express_company||i.express_company==="")&&delete i.express_company,!String(i.start_time||"").trim()||!String(i.end_time||"").trim())delete i.start_time,delete i.end_time;else{const u=String(i.start_time||"").trim(),g=String(i.end_time||"").trim();/^\d{4}-\d{2}-\d{2}$/.test(u)&&/^\d{4}-\d{2}-\d{2}$/.test(g)&&(i.start_time=`${u} 00:00:00`,i.end_time=`${g} 23:59:59`)}return ti(i)}const{pager:te,getLists:I,resetPage:Y,resetParams:ys}=Ui({fetchFun:gs,params:h});El(()=>{var t;return(t=te.extend)==null?void 0:t.audit_admin_options},t=>{Array.isArray(t)&&(Fa.value=t.map(e=>{if(e==null||typeof e!="object")return null;const s=e,i=Number(s.id),u=String(s.name??"").trim();return!Number.isFinite(i)||i<=0||u===""?null:{id:i,name:u}}).filter(e=>e!=null))},{immediate:!0});const Ma=N(()=>{const t=h.assistant_dept_id;if(t===""||t==null)return He.value;const e=Number(t);if(!Number.isFinite(e))return He.value;const s=new Set(Ql(e,_t.value));return He.value.filter(i=>{const u=i.dept_ids;return!Array.isArray(u)||u.length===0?!1:u.map(Number).some(g=>s.has(g))})});function bs(){const t=h.assistant_id;if(t!==""&&t!=null){const e=Number(t);Ma.value.some(i=>Number(i.id)===e)||(h.assistant_id="")}Y()}const ce=N(()=>{const t=te.extend,e=(t==null?void 0:t.stats_order_amount)??(t==null?void 0:t.today_order_amount),s=(t==null?void 0:t.stats_linked_pay_amount)??(t==null?void 0:t.today_linked_pay_amount),i=Ie=>{const S=Number(Ie);return Number.isFinite(S)?Math.round(S*100)/100:0},u=Ie=>Ie.toFixed(2),g=(t==null?void 0:t.stats_order_amount_not_cancelled)!==void 0&&(t==null?void 0:t.stats_order_amount_cancelled)!==void 0,y=(t==null?void 0:t.stats_linked_pay_amount_not_cancelled)!==void 0&&(t==null?void 0:t.stats_linked_pay_amount_cancelled)!==void 0,x=i(g?t==null?void 0:t.stats_order_amount_not_cancelled:e),D=g?i(t==null?void 0:t.stats_order_amount_cancelled):0,se=i(y?t==null?void 0:t.stats_linked_pay_amount_not_cancelled:s),w=y?i(t==null?void 0:t.stats_linked_pay_amount_cancelled):0,q=(t==null?void 0:t.stats_order_amount_performance)!==void 0?i(t==null?void 0:t.stats_order_amount_performance):x,ye=(t==null?void 0:t.stats_linked_pay_amount_performance)!==void 0?i(t==null?void 0:t.stats_linked_pay_amount_performance):se,he=String((t==null?void 0:t.stats_time_start)??"").trim(),It=String((t==null?void 0:t.stats_time_end)??"").trim(),Oa=he&&It?`统计时间:${he} ~ ${It}`:"统计时间:—",rt=String((t==null?void 0:t.stats_scope)??"restricted");let ee="统计口径:与当前列表数据可见范围一致";rt==="all"?ee="统计口径:支付单审核白名单角色,按全量订单;与下方筛选项(医生/医助/医助部门/患者等,不含「创建时间」)一致":rt==="assistant"?ee="统计口径:仅计诊单医助为本人且满足下方其它筛选项的订单":rt==="own_rx"&&(ee="统计口径:本人创建的订单 + 关联处方开方人为本人的订单(含医助代建);与下方筛选项(不含「创建时间」)一致");const pe=Re.value==="all"?"全部":Re.value==="today"?"今日":"区间";return{order:i(e),pay:i(s),orderStr:u(i(e)),payStr:u(i(s)),orderNotCancelledStr:u(x),orderCancelledStr:u(D),payNotCancelledStr:u(se),payCancelledStr:u(w),orderPerformanceStr:u(q),payPerformanceStr:u(ye),orderHeading:`${pe}业绩(业务订单额)`,payHeading:`${pe}业绩(关联实付)`,periodLine:Oa,scopeHint:ee,orderSplitHint:"业绩 = 除履约已取消(4)外全部订单金额;下方为合计与已取消明细"}}),vt=N(()=>{const t=te.extend,e=y=>{const x=Number(y);return!Number.isFinite(x)||x<0?0:Math.trunc(x)},s=e(t==null?void 0:t.focus_pending_rx_count),i=e(t==null?void 0:t.focus_pending_pay_count),u=e(t==null?void 0:t.focus_pending_ship_count),g=e(t==null?void 0:t.focus_risk_count);return{pendingRx:s,pendingPay:i,pendingShip:u,risk:g}});function Qt(t,e){const s=Number(e==null?void 0:e.prescription_audit_status),i=Number(e==null?void 0:e.payment_slip_audit_status),u=Number(e==null?void 0:e.fulfillment_status);return t==="rx"&&s===0||t==="pay"&&s===1&&i===0||t==="fulfillment"&&u===2?"po-status-tag is-focus":t==="rx"&&s===2||t==="pay"&&i===2||t==="fulfillment"&&u===4?"po-status-tag is-risk":"po-status-tag"}function gt({row:t}){const e=Number(t==null?void 0:t.prescription_audit_status),s=Number(t==null?void 0:t.payment_slip_audit_status),i=Number(t==null?void 0:t.fulfillment_status),u=St(t==null?void 0:t.recipient_phone,t==null?void 0:t.prescription_phone);return e===2||s===2||u?"po-row-risk":e===0||e===1&&s===0||i===2?"po-row-focus":i===3||i===6?"po-row-done":""}El(Ve,t=>{t||h.prescription_audit_status===""||h.prescription_audit_status===void 0||(h.prescription_audit_status="",Y())},{immediate:!0});function xs(){re.value="",_s(),h.order_no="",h.prescription_id="",h.patient_keyword="",h.express_keyword="",h.express_company="",h.doctor_id="",h.assistant_id="",h.assistant_dept_id="",h.fulfillment_status="",h.prescription_audit_status="",h.payment_slip_audit_status="",h.supply_mode="",h.audit_admin_id="",ys()}function yt(t){return{1:"挂号费",2:"问诊费",3:"药品费用",4:"首付费用",5:"尾款费用",6:"其他费用",7:"全部费用",8:"驼奶费用"}[Number(t)]??"—"}function Ha(t){return t===1?"已通过":t===2?"已驳回":"待审核"}function Ba(t){return t===1?"success":t===2?"danger":"info"}function Yt(t){return{1:"待双审通过",2:"待发货",3:"已完成",4:"已取消",5:"已发货",6:"已签收",7:"进行中",8:"暂不制药",9:"拒收",10:"退款",11:"保留药方",12:"制药缓发"}[Number(t)]??"—"}function ks(t){const e=Number(t);return e===3||e===6?"success":e===5?"primary":e===4?"danger":e===2||e===7?"warning":e===8||e===11||e===12?"info":e===9||e===10?"danger":"info"}function K(t){const e=Number(t);return Number.isNaN(e)?"—":e.toFixed(2)}function Se(t){if(t==null||t==="")return"—";if(typeof t=="number"&&t>1e9&&t<1e11){const e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}return String(t)}const hs=[0,3];function Wa(){const t=we.userInfo;return t?Number(t.root)===1?!0:(Array.isArray(t.role_ids)?t.role_ids.map(s=>Number(s)):[]).some(s=>hs.includes(s)):!1}function Ka(t){var s;const e=Number((s=we.userInfo)==null?void 0:s.id);return e>0&&Number(t.creator_id)===e}function bt(t){return Number(t.prescription_audit_status)===1&&Number(t.payment_slip_audit_status)===1}function Ga(t){const e=Number(t.fulfillment_status);return e===3||e===4||Ka(t)&&bt(t)&&!Wa()||Da(t)?!1:e===1||e===2}function ws(t){const e=Number(t.fulfillment_status);return e===3||e===4||e===6?!1:Number(t.prescription_audit_status)===0}function Vs(t){const e=Number(t.fulfillment_status);return e===3||e===4?!1:Number(t.prescription_audit_status)===1&&Number(t.payment_slip_audit_status)===0}function Ss(t){if(Da(t))return!1;const e=Number(t.fulfillment_status);if(e===3||e===4||e===6)return!1;const s=Number(t.prescription_audit_status),i=Number(t.payment_slip_audit_status);return(s===1||s===2)&&i===0}function Ns(t){const e=Number(t.fulfillment_status);if(e===3||e===4||e===6)return!1;const s=Number(t.prescription_audit_status),i=Number(t.payment_slip_audit_status);return s===1&&(i===1||i===2)}function Ja(t){return Da(t)?!1:Number(t.fulfillment_status)===1}function Xt(t){return Number(t.fulfillment_status)===2&&bt(t)}function Zt(t){const e=Number(t.fulfillment_status);return e===5||e===6}function ea(t){const e=Number(t.fulfillment_status);return(e===5||e===6)&&Number(t.payment_slip_audit_status)===1}function ta(t){const e=Number(t.fulfillment_status);return(e===5||e===6||e===3||e===9)&&Number(t.payment_slip_audit_status)===1}function Qa(t){return bt(t)}function Ya(t){if(t.can_upload_pharmacy===!1)return!1;const e=Number(t.prescription_audit_status),s=Number(t.fulfillment_status),i=String(t.gancao_reciperl_order_no||"").trim(),u=String(t.ej_pharmacy_order_no||"").trim(),g=String(t.ej_pharmacy_status||"").toUpperCase()==="REJECTED"||String(t.ej_pharmacy_review_status||"").toUpperCase()==="REJECTED";return e===1&&(![3,4,8,9,10,11,12].includes(s)||s===9&&g)&&i===""&&(u===""||g)}function Xa(t){return{1:"待支付",2:"已支付",3:"已取消",4:"已退款",5:"待审核"}[Number(t)]??"—"}const xt=b(!0),Za=N(()=>{const t=h,e=["order_no","prescription_id","patient_keyword","express_keyword","doctor_id","assistant_dept_id","assistant_id"];let s=Re.value!=="all"?1:0;for(const i of e){const u=t[i];u!=null&&(typeof u=="string"&&u.trim()===""||Array.isArray(u)&&u.length===0||(s+=1))}return s});function Cs(t){return Zt(t)||ea(t)||ta(t)||Ya(t)||Ja(t)}function Ps(t,e){t==="addPayOrder"?xl(e):t==="complete"?kl(e):t==="refund"?bl(e):t==="uploadPharmacy"?gn(e):t==="withdraw"&&cn(e)}function aa(t){if(!(t!=null&&t.id))return!1;const e=Number(t.fulfillment_status);return e!==3&&e!==4}const J=b(!1),la=b(!1),c=b(null),sa=b();async function Os(t){var e;I(),J.value&&Number((e=c.value)==null?void 0:e.id)===t&&await Pt(t)}const As=N(()=>{var t;return Vi((t=c.value)==null?void 0:t.service_package,mt.value)}),kt=N(()=>{if(!c.value)return 0;const t=Number(c.value.fulfillment_status),e=Number(c.value.prescription_audit_status),s=Number(c.value.payment_slip_audit_status);return t===3||[8,9,10,11,12].includes(t)?5:t===6||t===5||t===7?4:t===4?e===2?1:s===2?2:3:t===2?3:e===0||e===2?1:s===0||s===2?2:3}),ht=N(()=>{var e;const t=Number((e=c.value)==null?void 0:e.prescription_audit_status);return t===1?"success":t===2?"error":kt.value===1?"process":"wait"}),wt=N(()=>{var e;const t=Number((e=c.value)==null?void 0:e.payment_slip_audit_status);return t===1?"success":t===2?"error":kt.value===2?"process":"wait"}),Te=N(()=>{var e;const t=Number((e=c.value)==null?void 0:e.fulfillment_status);return t===3||t===5||t===6||t===8||t===11||t===12?"success":t===4||t===9||t===10?"error":t===7||kt.value===3?"process":"wait"}),na=N(()=>{const t=c.value;if(!t)return[];const e=t.linked_pay_orders;return Array.isArray(e)?e:[]}),el=N(()=>{const t=c.value;if(!t)return 0;const e=t.agency_collect_amount;if(e!=null&&e!=="")return Number(e)||0;const s=Number(t.amount)||0,i=Number(t.linked_pay_paid_total)||0;return Math.round((s-i)*100)/100}),Ee=b([]);async function Rs(t,e,s){var i;if(!t){Ee.value=[];return}try{const u=await Ua({diagnosis_id:t,prescription_order_id:e}),g=(u==null?void 0:u.lists)??((i=u==null?void 0:u.data)==null?void 0:i.lists)??[],y=Array.isArray(g)?g.filter(x=>!s.includes(x.id)):[];Ee.value=y}catch{Ee.value=[]}}function tl(t){return t?Array.isArray(t)?t.map(e=>({name:String((e==null?void 0:e.name)??"").trim(),dosage:Number(e==null?void 0:e.dosage)||0})):[]:[]}const V=N(()=>{var e;const t=(e=c.value)==null?void 0:e.prescription;return t&&typeof t=="object"?t:null}),al=N(()=>{var t;return Si((t=V.value)==null?void 0:t.dietary_taboo)});function Vt(t){return t==null?"":String(t).replace(/\s/g,"").trim()}function St(t,e){const s=Vt(t),i=Vt(e);return!s||!i?!1:s!==i}const Be=N(()=>{var s,i;const t=(s=V.value)==null?void 0:s.phone,e=(i=c.value)==null?void 0:i.recipient_phone;return St(e,t)}),Ts=N(()=>{var e;return Vt((e=V.value)==null?void 0:e.phone)||"—"}),Es=N(()=>{var e;return Vt((e=c.value)==null?void 0:e.recipient_phone)||"—"}),X=N(()=>{var e;const t=(e=c.value)==null?void 0:e.linked_appointment;return t&&typeof t=="object"?t:null}),ll=N(()=>{var e;const t=String(((e=X.value)==null?void 0:e.resolved_from)||"");return t==="prescription"?"处方绑定挂号":t==="diagnosis"?"诊单关联挂号":""}),sl=N(()=>{var t;return tl((t=V.value)==null?void 0:t.herbs)}),Ne=N(()=>zl(V.value)),Z=N(()=>{const t=V.value;if(!t||!zl(t))return null;const e=t.aux_usage;return e==null||e===""||Array.isArray(e)&&e.length===0?null:Ni(e,t.prescription_type||"浓缩水丸")}),Us=N(()=>{var t;return((t=c.value)==null?void 0:t.prescription_detail_herbs_visible)!==!1}),Ds=N(()=>{const t=c.value;if(!t)return"—";const e=[];return t.shipping_province&&e.push(t.shipping_province),t.shipping_city&&e.push(t.shipping_city),t.shipping_district&&e.push(t.shipping_district),t.shipping_address&&e.push(t.shipping_address),e.length>0?e.join(" "):"—"}),nl=N(()=>`${m.dose_unit||"剂"}数`);function $s(t){const e=Number(t);return e===1?"已通过":e===2?"已驳回":"待审核"}function zs(t){const e=Number(t);return e===1?"success":e===2?"danger":"warning"}function rl(t){const e=Number(t);return e===2?"success":e===1?"warning":"info"}function il(t){return t==null||t===""?"—":typeof t=="string"&&String(t).includes("-")?String(t):Se(t)}const We=b("auto"),Nt=b(!1),G=b(null),Ke=b("");let ra=0;function Fs(){ra+=1,G.value=null}function ia(t){var e,s;return t.requestSeq!==ra||Number((e=c.value)==null?void 0:e.id)!==t.orderId?!1:String(((s=c.value)==null?void 0:s.tracking_number)||"").trim()===t.trackingNumber}function qs(t,e,s){const i=(t==null?void 0:t.data)??t;if(!i||typeof i!="object")return null;const u=i,g=String(u.tracking_number||"").trim();if(g&&g!==e)return null;const y=Number(u.order_id);return y>0&&y!==s?null:u}const Ue=b([]),Ge=b(!1),oa=b(!1),Ct=b(),fe=_e({id:0,amount:void 0}),js={amount:[{required:!0,message:"请输入订单金额",trigger:"blur"},{validator:(t,e,s)=>{const i=Number(e);if(!Number.isFinite(i)||i<0){s(new Error("订单金额不能为负数"));return}s()},trigger:"blur"}]};function Ls(){const t=we.perms||[];return t.includes("*")||t.includes("tcm.prescriptionOrder/logs")}async function Ce(t){if(!Ls()){Ue.value=[];return}try{const e=await xi({id:t});Ue.value=(e==null?void 0:e.data)??e??[]}catch{Ue.value=[]}}function Is(t){return{create:"创建",edit:"编辑",audit_rx_approve:"处方审核",audit_rx_reject:"处方审核",audit_pay_approve:"支付审核",audit_pay_reject:"支付审核",fill_tracking:"填快递单",ship:"确认发货",withdraw:"撤销",link_pay_order:"关联支付单",revoke_rx_audit:"撤回处方审核",revoke_pay_audit:"撤回支付审核",gancao_submit:"甘草下单",ej_pharmacy_submit:"洛阳药房下单",ej_pharmacy_callback:"洛阳药房状态",patch_rx_patient:"处方患者信息",update_amount:"修改订单金额",complete:"完成订单",refund:"退款",edit_time:"修改创建时间"}[t]||t}const ua=N(()=>{var s;const t=String(((s=c.value)==null?void 0:s.tracking_number)||"").trim();if(!t)return{sf:"javascript:void(0)",jd:"javascript:void(0)",jt:"javascript:void(0)"};const e=encodeURIComponent(t);return{sf:`https://www.sf-express.com/cn/sc/dynamic_function/waybill/#search/bill-number/${e}`,jd:`https://www.jdl.com/#/trackQuery?waybillCode=${e}`,jt:`https://www.jtexpress.com.cn/index/query/gzquery.html?bills=${e}`}}),ol=N(()=>{const t=G.value;return!t||!Array.isArray(t.traces)?[]:t.traces});function Ms(t){const e=String(t||"").toLowerCase();return e==="sf"?"顺丰速运":e==="jd"?"京东快递":e==="jt"||e==="jtexpress"?"极兔速递":"自动识别"}async function da(){var u,g;const t=Number((u=c.value)==null?void 0:u.id),e=String(((g=c.value)==null?void 0:g.tracking_number)||"").trim();if(!t||!e)return;const i={requestSeq:++ra,orderId:t,trackingNumber:e};Nt.value=!0;try{const y=String(Ke.value||"").replace(/\D/g,""),x={id:t,express_company:We.value};y.length>=4&&(x.phone_tail=y);const D=await ai(x);if(!ia(i))return;G.value=qs(D,e,t)}catch{if(!ia(i))return;G.value=null}finally{ia(i)&&(Nt.value=!1)}}const Je=b(!1),pa=b(!1),ca=b(),ie=_e({patient_name:"",phone:""}),Hs={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],phone:[{required:!0,message:"请输入手机号",trigger:"blur"}]},Qe=b(!1),ma=b(!1),_a=b(),A=_e({dosage_bag_count:1,times_per_day:3,usage_days:7,aux_times_per_day:3,aux_usage_days:7,aux_dosage_bag_count:1,medication_days:void 0}),Bs=N(()=>{var e,s;const t={times_per_day:[{required:!0,message:"请填写主方每天次数",trigger:"change"}],usage_days:[{required:!0,message:"请填写主方开立天数",trigger:"change"}],medication_days:[{required:!0,message:"请填写订单服用天数",trigger:"change"}]};return((e=V.value)==null?void 0:e.prescription_type)==="浓缩水丸"&&(t.dosage_bag_count=[{required:!0,message:"请选择主方每次袋数",trigger:"change"}]),Ne.value&&(t.aux_times_per_day=[{required:!0,message:"请填写辅方每天次数",trigger:"change"}],t.aux_usage_days=[{required:!0,message:"请填写辅方开立天数",trigger:"change"}],((s=V.value)==null?void 0:s.prescription_type)==="浓缩水丸"&&(t.aux_dosage_bag_count=[{required:!0,message:"请选择辅方每次袋数",trigger:"change"}])),t});function fa(){const t=V.value,e=c.value;if(!t||!(e!=null&&e.id)||!e.prescription_id){C.msgWarning("无处方数据");return}const s=Z.value;A.dosage_bag_count=Number(t.dosage_bag_count)>0?Number(t.dosage_bag_count):1,A.times_per_day=Number(t.times_per_day)>0?Number(t.times_per_day):3,A.usage_days=Number(t.usage_days)>0?Number(t.usage_days):7,A.aux_times_per_day=s&&Number(s.times_per_day)>0?Number(s.times_per_day):3,A.aux_usage_days=s&&Number(s.usage_days)>0?Number(s.usage_days):7;const i=Number(e.medication_days);A.aux_dosage_bag_count=s&&Number(s.dosage_bag_count)>0?Number(s.dosage_bag_count):1,A.medication_days=i>0?i:Number(t.usage_days)>0?Number(t.usage_days):7,Qe.value=!0,pt(()=>{var u;return(u=_a.value)==null?void 0:u.clearValidate()})}function Ws(){A.dosage_bag_count=1,A.times_per_day=3,A.usage_days=7,A.aux_times_per_day=3,A.aux_usage_days=7,A.aux_dosage_bag_count=1,A.medication_days=void 0}async function Ks(){var s,i,u;const t=_a.value;if(!t)return;try{await t.validate()}catch{return}const e=(s=c.value)==null?void 0:s.id;if(e){ma.value=!0;try{const g={id:e,times_per_day:Number(A.times_per_day),usage_days:Number(A.usage_days),medication_days:Number(A.medication_days)};((i=V.value)==null?void 0:i.prescription_type)==="浓缩水丸"&&(g.dosage_bag_count=Number(A.dosage_bag_count)),Ne.value&&(g.aux_times_per_day=Number(A.aux_times_per_day),g.aux_usage_days=Number(A.aux_usage_days),((u=V.value)==null?void 0:u.prescription_type)==="浓缩水丸"&&(g.aux_dosage_bag_count=Number(A.aux_dosage_bag_count))),await li(g),C.msgSuccess("保存成功"),Qe.value=!1,await va(),await Ce(e),I()}catch{}finally{ma.value=!1}}}function Gs(){const t=V.value,e=c.value;if(!t||!(e!=null&&e.id)||!e.prescription_id){C.msgWarning("无处方数据");return}ie.patient_name=String(t.patient_name??"").trim(),ie.phone=String(t.phone??"").trim(),Je.value=!0,pt(()=>{var s;return(s=ca.value)==null?void 0:s.clearValidate()})}function Js(){ie.patient_name="",ie.phone=""}function Qs(){var t;fe.id=0,fe.amount=void 0,(t=Ct.value)==null||t.clearValidate()}function Ys(){const t=c.value;if(!aa(t)){C.msgWarning("当前订单状态不允许修改金额");return}fe.id=Number(t==null?void 0:t.id)||0;const e=Number(t==null?void 0:t.amount);fe.amount=Number.isFinite(e)?e:void 0,Ge.value=!0,pt(()=>{var s;return(s=Ct.value)==null?void 0:s.clearValidate()})}async function va(){var e;const t=(e=c.value)==null?void 0:e.id;if(t)try{const s=await Q({id:t}),i=(s==null?void 0:s.data)??s??null;i&&(c.value=i)}catch{}}async function Xs(){var s;const t=ca.value;if(!t)return;try{await t.validate()}catch{return}const e=(s=c.value)==null?void 0:s.id;if(e){pa.value=!0;try{await si({id:e,patient_name:ie.patient_name.trim(),phone:ie.phone.trim()}),Je.value=!1,await va(),await Ce(e)}catch(i){console.error(i)}finally{pa.value=!1}}}async function ul(){const t=Ct.value;if(!t)return;try{await t.validate()}catch{return}if(!aa(c.value)){C.msgWarning("当前订单状态不允许修改金额");return}const e=fe.id;oa.value=!0;try{await ni({id:e,amount:Number(fe.amount)}),C.msgSuccess("修改成功"),Ge.value=!1,await va(),await Ce(e),I()}catch{}finally{oa.value=!1}}async function Pt(t){c.value=null,Ee.value=[],Fs(),We.value="auto",Ke.value="",Ue.value=[],J.value=!0,la.value=!0;try{const e=await Q({id:t}),s=(e==null?void 0:e.data)??e??null;if(c.value=s,s){We.value=String(s.express_company||"auto")||"auto";const i=String(s.recipient_phone||"").replace(/\D/g,"");Ke.value=i.length>=4?i:"",String(s.tracking_number||"").trim()&&da(),Ce(t);const u=s.diagnosis_id,g=s.pay_order_ids||[];u&&Rs(u,t,g)}}catch(e){C.msgError((e==null?void 0:e.message)||"加载失败"),J.value=!1}finally{la.value=!1}}const Pe=b(!1),ga=b(!1),ya=b(!1),M=b(0),oe=b(null),Zs=N(()=>["请核对收货信息,便于发货与物流联系。","按需填写服务与物流,并选择本诊单下需要关联的支付单。","确认费用类别与订单金额;保存前请对照定金门槛是否已满足。"][M.value]??""),dl=N(()=>{const t=oe.value,e=tl(t==null?void 0:t.herbs);if(!e.length)return"暂无药材明细";const s=e.map(i=>`${i.name} ${i.dosage}g`).join("、");return s.length>120?`${s.slice(0,120)}…`:s}),en=["recipient_name","recipient_phone","region","shipping_address"],De=b(),m=_e({id:0,prescription_id:0,diagnosis_id:0,recipient_name:"",recipient_phone:"",region:[],shipping_address:"",is_follow_up:0,medication_days:void 0,dose_count:1,dose_unit:"剂",prev_staff:"",service_channel:"",service_package:[],express_company:"auto",tracking_number:"",fee_type:3,amount:0,remark_extra:"",remark_assistant:"",pay_order_ids:[],internal_cost:void 0,assistant_id:0,diagnosis_creator_id:0,diagnosis_creator_name:"",diagnosis_creator_dept_path:""}),tn=N(()=>Ci(mt.value,m.service_package)),pl=N(()=>{const t=String(m.diagnosis_creator_dept_path||"").trim();return t?t.split(";").map(e=>e.trim()).filter(Boolean).map(e=>e.includes(" / ")?e.split(" / ").map(s=>s.trim()).filter(Boolean):e.split("/").map(s=>s.trim()).filter(Boolean)).filter(e=>e.length>0):[]}),Ye=b([]),ba=b(!1),B=b(0);function Ot(t){return{1:"挂号费",2:"问诊费",3:"药品费用",4:"首付",5:"尾款",6:"其他"}[Number(t)]||"未知"}function $e(t){const e=String((t==null?void 0:t.create_type)||"");if(e==="wechat_work")return"企业微信对外收款";if(e==="fubei")return"付呗";if(e==="express_cod")return"快递代收";const s=String((t==null?void 0:t.payment_method)||""),i={alipay:"支付宝",wechat:"微信",wechat_work:"企业微信",fubei:"付呗",express_cod:"快递代收",manual:"手动确认到账"};return s&&i[s]?i[s]:"普通订单"}const xa=N(()=>{const t=new Set(m.pay_order_ids.map(s=>Number(s)));let e=0;for(const s of Ye.value)t.has(Number(s.id))&&(e+=Number(s.amount)||0);return Math.round(e*100)/100}),an=N(()=>{const t=B.value;return t>0?Math.round(t*100)/100:0});async function ln(t,e){var s,i;if(!t){Ye.value=[];return}try{ba.value=!0;const u=await Ua({diagnosis_id:t,...e?{prescription_order_id:e}:{}}),g=(u==null?void 0:u.lists)??((s=u==null?void 0:u.data)==null?void 0:s.lists)??[];Ye.value=Array.isArray(g)?g:[];const y=Number((u==null?void 0:u.deposit_min_amount)??((i=u==null?void 0:u.data)==null?void 0:i.deposit_min_amount));!Number.isNaN(y)&&y>=0&&(B.value=y)}catch{Ye.value=[]}finally{ba.value=!1}}const sn=N(()=>{const t={recipient_name:[{required:!0,message:"请输入收货人",trigger:"blur"}],recipient_phone:[{required:!0,message:"请输入收货手机",trigger:"blur"}],region:[{required:!0,message:"请选择省/市/区",trigger:"change",type:"array"}],shipping_address:[{required:!0,message:"请输入收货地址",trigger:"blur"}],fee_type:[{required:!0,message:"请选择费用类别",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"},{validator:(e,s,i)=>{const u=B.value,g=Number(s);if(u>0&&(!Number.isFinite(g)||g0){const e=`已开启关联支付门槛(¥${K(B.value)}),请至少选择一笔支付单`;t.pay_order_ids=[{type:"array",required:!0,min:1,message:e,trigger:"change"}]}return t});function nn(){var t;M.value=0,oe.value=null,(t=De.value)==null||t.clearValidate()}function rn(){M.value>0&&(M.value-=1)}async function on(){const t=De.value;if(t)try{M.value===0?await t.validateField([...en]):M.value===1&&B.value>0&&await t.validateField(["pay_order_ids"]),M.value<2&&(M.value+=1)}catch{}}async function un(t){if(!Ga(t)){Ka(t)&&bt(t)&&!Wa()&&C.msgWarning("处方与支付单均已审核通过,创建人不可再编辑");return}M.value=0,oe.value=null,Pe.value=!0,ga.value=!0;try{const e=await Q({id:t.id}),s=(e==null?void 0:e.data)??e;if(!s){C.msgError("加载数据结构异常"),Pe.value=!1;return}const i=s.prescription;i&&typeof i=="object"?oe.value=i:Number(s.prescription_id)>0?oe.value={id:Number(s.prescription_id),sn:"",patient_name:String(s.recipient_name||""),herbs:[]}:oe.value=null,m.id=s.id,m.prescription_id=Number(s.prescription_id)||0,m.diagnosis_id=Number(s.diagnosis_id)||0,m.assistant_id=Number(s.assistant_id)||0,m.diagnosis_creator_id=Number(s.diagnosis_creator_id)||0,m.diagnosis_creator_name=s.diagnosis_creator_name!=null&&s.diagnosis_creator_name!==""?String(s.diagnosis_creator_name):"",m.diagnosis_creator_dept_path=s.diagnosis_creator_dept_path!=null&&s.diagnosis_creator_dept_path!==""?String(s.diagnosis_creator_dept_path):"",m.recipient_name=s.recipient_name||"",m.recipient_phone=s.recipient_phone||"";const u=s.shipping_province||"",g=s.shipping_city||"",y=s.shipping_district||"";u||g||y?m.region=[u,g,y].filter(q=>q!==""):m.region=[],m.shipping_address=s.shipping_address||"",m.is_follow_up=s.is_follow_up?1:0,m.medication_days=s.medication_days>0?s.medication_days:void 0,m.dose_count=s.dose_count>0?s.dose_count:1,m.dose_unit=s.dose_unit||"剂",m.prev_staff=s.prev_staff||"",m.service_channel=s.service_channel||"",m.service_package=Pi(s.service_package),m.express_company=String(s.express_company||"auto")||"auto",m.tracking_number=s.tracking_number||"",m.fee_type=Number(s.fee_type)||3,B.value=Number(s.deposit_min_amount)||0;let x=Number(s.amount)||0;const D=Math.round((Number(s.linked_pay_paid_total)||0)*100)/100,se=B.value;if(se>0){const q=Math.round(se*100)/100;xNumber(q)).filter(q=>!Number.isNaN(q)):[],m.internal_cost=s.internal_cost!=null&&s.internal_cost!==""?Number(s.internal_cost):void 0,await ln(m.diagnosis_id,m.id),pt(()=>{var q;(q=De.value)==null||q.clearValidate()})}catch(e){C.msgError((e==null?void 0:e.message)||"加载异常"),Pe.value=!1}finally{ga.value=!1}}async function dn(){if(!(!De.value||M.value!==2)){await De.value.validate(),ya.value=!0;try{const t={id:m.id,recipient_name:m.recipient_name,recipient_phone:m.recipient_phone,shipping_address:m.shipping_address,is_follow_up:m.is_follow_up,prev_staff:m.prev_staff||"",service_channel:m.service_channel||"",service_package:Array.isArray(m.service_package)?m.service_package.join(","):"",express_company:m.express_company||"auto",fee_type:m.fee_type,amount:m.amount,remark_extra:m.remark_extra||"",remark_assistant:m.remark_assistant||"",medication_days:m.medication_days!=null&&String(m.medication_days).trim()!==""?m.medication_days:"",dose_unit:m.dose_unit||"剂",dose_count:m.dose_count||1,internal_cost:m.internal_cost!=null&&String(m.internal_cost).trim()!==""?m.internal_cost:""};m.region&&m.region.length>0?(t.shipping_province=m.region[0]||"",t.shipping_city=m.region[1]||"",t.shipping_district=m.region[2]||""):(t.shipping_province="",t.shipping_city="",t.shipping_district=""),t.pay_order_ids=[...m.pay_order_ids],await ri(t),C.msgSuccess("保存成功"),Pe.value=!1,I()}catch{}finally{ya.value=!1}}}const Xe=b(!1),ka=b("prescription"),At=b(0),Ze=b(null),ze=b(""),Rt=b(!1),pn=N(()=>ka.value==="prescription"?"处方业务审核":"关联支付单审核");function cl(t,e){ka.value=e,At.value=t.id,Ze.value=t,ze.value="",Xe.value=!0}async function ml(t){if(t==="reject"&&!ze.value.trim()){C.msgError("驳回或阻止时必须填写明确的审核意见");return}Rt.value=!0;try{const e={id:At.value,action:t,remark:ze.value.trim()};if(ka.value==="prescription"?await ii(e):await oi(e),C.msgSuccess(t==="approve"?"审核通过成功":"已成功驳回该单"),Xe.value=!1,I(),J.value&&At.value)try{const s=await Q({id:At.value}),i=(s==null?void 0:s.data)??s??null;i&&(c.value=i)}catch{}}catch{}finally{Rt.value=!1}}async function cn(t){try{await Kt.confirm("确认撤回该业务订单?撤回后状态为「已取消」,未双审通过或双审均驳回等场景下均可安全撤回。","撤回警告",{type:"warning",confirmButtonText:"确定撤回",cancelButtonText:"暂不处理"}),await ui({id:t.id}),C.msgSuccess("撤回成功"),I()}catch{}}const _l=b(0),Tt=b(!1),Fe=b(!1),j=b(null);function fl(t){if(!t)return"0.00";const e=Number(t.m_cost)||0,s=Number(t.proces_cost)||0,i=Number(t.lis_cost)||0;return(e+s+i).toFixed(2)}function mn(t,e){const s=parseFloat(fl(t))||0,i=Number(e)||0;return i<=0?"—":(s/i*100).toFixed(2)}function _n(t){return!Array.isArray(t)||t.length===0?"0":t.reduce((s,i)=>s+(Number(i.quantity)||0),0).toFixed(0)}async function fn(){if(!m.id){C.msgError("请先保存订单");return}Fe.value=!0;try{const t=await Dl({id:m.id,dose_count:m.dose_count||1,medication_days:m.medication_days||void 0}),e=(t==null?void 0:t.data)??t;e&&e.success&&(j.value=e,Tt.value=!0,C.msgSuccess("预下单测试成功"))}catch{}finally{Fe.value=!1}}async function vn(){var t;if(!((t=c.value)!=null&&t.id)){C.msgError("订单数据不存在");return}Fe.value=!0;try{const e=await Dl({id:c.value.id,dose_count:c.value.dose_count||1,medication_days:c.value.medication_days||void 0}),s=(e==null?void 0:e.data)??e;s&&s.success&&(j.value=s,Tt.value=!0)}catch{}finally{Fe.value=!1}}async function gn(t){var e;try{const s=String(t.ship_mode||"gancao")==="direct"?"洛阳药房":"甘草药房";await Kt.confirm(`确认将本单关联处方上传至${s}?`,"上传药房",{type:"warning",confirmButtonText:"确定上传",cancelButtonText:"取消"}),_l.value=t.id;const i=await di({id:t.id}),u=(i==null?void 0:i.data)??i,g=String((u==null?void 0:u.pharmacy_order_no)||(u==null?void 0:u.recipel_order_no)||"").trim();if(C.msgSuccess(g?`上传成功,药房单号:${g}`:"上传成功"),I(),J.value&&Number((e=c.value)==null?void 0:e.id)===t.id)try{const y=await Q({id:t.id}),x=(y==null?void 0:y.data)??y??null;x&&(c.value=x)}catch{}}catch{}finally{_l.value=0}}Gn(async()=>{await Zl(),await es(),await Yl(),I()});const et=b(!1),Et=b(!1),tt=b(0),ve=_e({express_company:"auto",tracking_number:""});function yn(t){if(!Qa(t)){C.msgWarning("处方审核和支付单审核均通过后,才可填写或修改快递单号");return}tt.value=t.id,ve.express_company=String(t.express_company||"auto")||"auto",ve.tracking_number=String(t.tracking_number||""),et.value=!0}async function vl(){var t;if(!ve.tracking_number.trim()){C.msgError("请填写快递单号");return}Et.value=!0;try{if(await pi({id:tt.value,express_company:ve.express_company||"auto",tracking_number:ve.tracking_number.trim()}),C.msgSuccess("快递单号已保存"),et.value=!1,I(),J.value&&((t=c.value)==null?void 0:t.id)===tt.value)try{const e=await Q({id:tt.value}),s=(e==null?void 0:e.data)??e??null;s&&(c.value=s),await Ce(tt.value)}catch{}}catch{}finally{Et.value=!1}}const at=b(!1),Ut=b(!1),Dt=b(0),ae=_e({ship_mode:"gancao",express_company:"auto",tracking_number:""}),bn=N(()=>ae.ship_mode==="direct"?"洛阳药房直发":"甘草药房直发");function gl(t){if(!Xt(t)){C.msgWarning("仅处方审核和支付单审核均通过的履约中订单可填写单号并发货");return}Dt.value=t.id,ae.ship_mode=String(t.ship_mode||"gancao")||"gancao",ae.express_company=String(t.express_company||"auto")||"auto",ae.tracking_number=String(t.tracking_number||""),at.value=!0}async function yl(){var t;if(!ae.tracking_number.trim()){C.msgError("请先填写快递单号再确认发货");return}Ut.value=!0;try{if(await ci({id:Dt.value,ship_mode:ae.ship_mode==="direct"?"direct":"gancao",express_company:ae.express_company||"auto",tracking_number:ae.tracking_number.trim()}),C.msgSuccess("确认发货成功,订单已进入「已发货」状态"),at.value=!1,I(),J.value&&((t=c.value)==null?void 0:t.id)===Dt.value)try{const e=await Q({id:Dt.value}),s=(e==null?void 0:e.data)??e??null;s&&(c.value=s)}catch{}}catch{}finally{Ut.value=!1}}async function xn(){var t;I(),(t=c.value)!=null&&t.id&&await Pt(Number(c.value.id))}const kn=[{value:3,label:"已完成"},{value:7,label:"进行中"},{value:8,label:"暂不制药"},{value:9,label:"拒收"},{value:10,label:"退款"},{value:11,label:"保留药方"},{value:12,label:"制药缓发"}],qe=b(!1),ha=b(0),xe=b(3),lt=b(!1),ge=b([]),wa=b();function Va(t){let e=0;for(const s of t||[]){const i=Number(s==null?void 0:s.status);(i===2||i===5)&&(e+=Number(s==null?void 0:s.amount)||0)}return Math.round(e*100)/100}const ue=_e({reason:"",refund_amount:void 0}),ke=b(0),hn=N(()=>Va(ge.value)),wn=N(()=>({refund_amount:[{required:!0,message:"请输入退款金额",trigger:"change"},{validator:(t,e,s)=>{const i=Number(e),u=ke.value;if(!Number.isFinite(i)||i<=0)return s(new Error("退款金额须大于 0"));if(u>0&&i>u+.009)return s(new Error(`不能超过 ¥${K(u)}`));s()},trigger:"change"}],reason:[{required:!0,message:"请填写退款原因",trigger:"blur"}]}));function Vn(){var t;ha.value=0,ge.value=[],ue.reason="",ue.refund_amount=void 0,ke.value=0,(t=wa.value)==null||t.clearValidate()}async function Sn(t){if(!t){ge.value=[];return}try{const e=await Q({id:t}),s=(e==null?void 0:e.data)??e??null;ge.value=Array.isArray(s==null?void 0:s.linked_pay_orders)?s.linked_pay_orders:[];const i=Va(ge.value),u=Number(s==null?void 0:s.paid)||0;ke.value=i>0?i:u,ue.refund_amount=ke.value}catch{ge.value=[],ke.value=0}}async function Nn(){var e,s,i;const t=ha.value;if(t){if(xe.value===10){if(!await((e=wa.value)==null?void 0:e.validate().catch(()=>!1)))return;lt.value=!0;try{if(await $l({id:t,reason:ue.reason.trim(),refund_amount:Number(ue.refund_amount)}),C.msgSuccess("退款成功"),qe.value=!1,I(),J.value&&((s=c.value)==null?void 0:s.id)===t)try{const g=await Q({id:t}),y=(g==null?void 0:g.data)??g??null;y&&(c.value=y),await Ce(t)}catch{}}catch{}finally{lt.value=!1}return}lt.value=!0;try{if(await mi({id:t,fulfillment_status:xe.value}),C.msgSuccess("订单状态已更新"),qe.value=!1,I(),J.value&&((i=c.value)==null?void 0:i.id)===t)try{const u=await Q({id:t}),g=(u==null?void 0:u.data)??u??null;g&&(c.value=g)}catch{}}catch{}finally{lt.value=!1}}}const st=b(!1),Sa=b(0),Na=b(!1),Ca=b(),de=b(0),le=_e({reason:"",refund_amount:void 0}),Cn=N(()=>{const t=K(de.value),e=K(le.refund_amount);return Number(le.refund_amount)>=de.value-.009?`全额退款 ¥${t}:关联收款标记已退款,已付清零。`:`部分退款 ¥${e}(上限 ¥${t})`}),Pn=N(()=>({refund_amount:[{required:!0,message:"请输入退款金额",trigger:"change"},{validator:(t,e,s)=>{const i=Number(e),u=de.value;if(!Number.isFinite(i)||i<=0)return s(new Error("退款金额须大于 0"));if(u>0&&i>u+.009)return s(new Error(`不能超过 ¥${K(u)}`));s()},trigger:"change"}],reason:[{required:!0,message:"请填写退款原因",trigger:"blur"}]}));function On(){var t;Sa.value=0,le.reason="",le.refund_amount=void 0,de.value=0,(t=Ca.value)==null||t.clearValidate()}async function bl(t){Sa.value=t.id,le.reason="",de.value=0,st.value=!0;try{const e=await Q({id:t.id}),s=(e==null?void 0:e.data)??e??null,i=Array.isArray(s==null?void 0:s.linked_pay_orders)?s.linked_pay_orders:[],u=Va(i),g=Number(s==null?void 0:s.paid)||0;de.value=u>0?u:g,le.refund_amount=de.value}catch{de.value=0}}async function An(){var s,i;const t=Sa.value;if(!(!t||!await((s=Ca.value)==null?void 0:s.validate().catch(()=>!1)))){Na.value=!0;try{if(await $l({id:t,reason:le.reason.trim(),refund_amount:Number(le.refund_amount)}),C.msgSuccess("退款成功"),st.value=!1,I(),J.value&&((i=c.value)==null?void 0:i.id)===t)try{const u=await Q({id:t}),g=(u==null?void 0:u.data)??u??null;g&&(c.value=g),await Ce(t)}catch{}}catch{}finally{Na.value=!1}}}const nt=b(!1),$t=b(!1),je=b(0),zt=b(),Pa=b(!1),Ft=b([]),Rn=N(()=>P.add_mode==="completion_only"?"不创建或关联支付单,仅提交完单申请,由审核人员在支付审核时处理。":P.add_mode==="create_express"?"通过快递代收创建新支付单(流转同付呗),或关联已存在但未绑定的支付单。":"可以通过付呗创建新支付单,或关联已存在但未绑定的支付单。"),P=_e({add_mode:"create",order_type:3,pay_amount:void 0,pay_remark:"",link_pay_order_ids:[],completion_request:0}),Tn=N(()=>{const t={add_mode:[{required:!0,message:"请选择添加方式",trigger:"change"}]};return P.add_mode==="create"||P.add_mode==="create_express"?(t.order_type=[{required:!0,message:"请选择费用类别",trigger:"change"}],t.pay_amount=[{required:!0,message:"请输入支付金额",trigger:"blur"},{validator:(e,s,i)=>{const u=Number(s);!Number.isFinite(u)||u<=0?i(new Error("金额须大于 0")):i()},trigger:"blur"}]):P.add_mode==="link"&&(t.link_pay_order_ids=[{required:!0,message:"请至少选择一个支付单",trigger:"change",validator:(e,s,i)=>{!Array.isArray(s)||s.length===0?i(new Error("请至少选择一个支付单")):i()}}]),t});async function En(t,e=[]){var s;if(!t){Ft.value=[];return}try{Pa.value=!0;const i=await Ua({diagnosis_id:t}),u=(i==null?void 0:i.lists)??((s=i==null?void 0:i.data)==null?void 0:s.lists)??[],g=Array.isArray(u)?u.filter(y=>!e.includes(y.id)):[];Ft.value=g}catch{Ft.value=[]}finally{Pa.value=!1}}function xl(t){var i,u;je.value=t.id,P.add_mode="create",P.order_type=3,P.pay_amount=void 0,P.pay_remark="",P.link_pay_order_ids=[],P.completion_request=0,nt.value=!0;const e=t.diagnosis_id||((i=c.value)==null?void 0:i.diagnosis_id),s=t.pay_order_ids||((u=c.value)==null?void 0:u.pay_order_ids)||[];e&&En(e,s)}async function Un(){var t;if(zt.value){await zt.value.validate(),$t.value=!0;try{if(P.add_mode==="completion_only")await _i({id:je.value}),C.msgSuccess("完单申请已提交,请等待支付审核");else if(P.add_mode==="create"||P.add_mode==="create_express")await fi({id:je.value,order_type:P.order_type,pay_amount:P.pay_amount,pay_remark:P.pay_remark||"",completion_request:P.completion_request,pay_create_type:P.add_mode==="create_express"?"express_cod":"fubei"}),C.msgSuccess("支付单已新增,请等待审核");else{const e=P.link_pay_order_ids;if(e.length===0){C.msgError("请至少选择一个支付单");return}await vi({id:je.value,pay_order_ids:e,completion_request:P.completion_request}),C.msgSuccess(`已关联 ${e.length} 个支付单,请等待审核`)}if(nt.value=!1,I(),J.value&&((t=c.value)==null?void 0:t.id)===je.value)try{const e=await Q({id:je.value}),s=(e==null?void 0:e.data)??e??null;s&&(c.value=s)}catch{}}catch{}finally{$t.value=!1}}}function kl(t){ha.value=t.id,xe.value=3,ue.reason="",ge.value=[],qe.value=!0,Sn(t.id)}async function Dn(t){var e;try{if(await Kt.confirm("确认撤回处方审核?撤回后将重置为「待审核」状态。","撤回处方审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await gi({id:t.id}),C.msgSuccess("处方审核已撤回"),I(),J.value&&((e=c.value)==null?void 0:e.id)===t.id)try{const s=await Q({id:t.id}),i=(s==null?void 0:s.data)??s??null;i&&(c.value=i)}catch{}}catch{}}async function $n(t){var e;try{if(await Kt.confirm("确认撤回支付单审核?撤回后将重置为「待审核」状态。","撤回支付单审核",{type:"warning",confirmButtonText:"确认撤回",cancelButtonText:"取消"}),await yi({id:t.id}),C.msgSuccess("支付单审核已撤回"),I(),J.value&&((e=c.value)==null?void 0:e.id)===t.id)try{const s=await Q({id:t.id}),i=(s==null?void 0:s.data)??s??null;i&&(c.value=i)}catch{}}catch{}}const zn="成都双流甄养堂互联网医院 处方笺",qt=b(!1),jt=b(!1),R=b(null),Lt=b("internal"),hl=b(null),Le=b(!1);function wl(t){if(!t)return"";const e=new Date(t*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}function Fn(t){return t?wl(t):"—"}function qn(){Vl(m)}async function Vl(t){if(!t.prescription_id){C.msgWarning("该订单未关联处方");return}qt.value=!0,jt.value=!0,R.value=null,Lt.value="internal";try{const e=await bi({id:t.prescription_id}),s=(e==null?void 0:e.data)??e??null;if(s){const i=t.medication_days,u={...s};i!=null&&String(i).trim()!==""&&(u.medication_days=i),t.order_no&&!u.order_no&&(u.order_no=t.order_no),t.recipient_name&&!u.recipient_name&&(u.recipient_name=t.recipient_name),t.recipient_phone&&!u.recipient_phone&&(u.recipient_phone=t.recipient_phone),t.shipping_address&&!u.shipping_address&&(u.shipping_address=t.shipping_address),t.amount!=null&&u.order_amount==null&&(u.order_amount=t.amount),t.dose_count!=null&&String(t.dose_count).trim()!==""&&Number(t.dose_count)>0&&(u.dose_count=Number(t.dose_count)),t.dose_unit!=null&&String(t.dose_unit).trim()!==""&&(u.dose_unit=String(t.dose_unit));const g=t.linked_appointment;(!u.appointment_id||Number(u.appointment_id)<=0)&&g&&typeof g=="object"&&Number(g.id)>0&&(u.appointment_id=Number(g.id)),R.value=u}else R.value=null}catch(e){C.msgError((e==null?void 0:e.message)||"加载处方详情失败"),qt.value=!1}finally{jt.value=!1}}async function jn(t){const e=t.querySelectorAll('img[src^="http"]'),s=Array.from(e).map(async i=>{try{const u=await fetch(i.src,{mode:"cors"});if(!u.ok)return;const g=await u.blob(),y=await new Promise((x,D)=>{const se=new FileReader;se.onload=()=>x(se.result),se.onerror=D,se.readAsDataURL(g)});i.src=y}catch{}});await Promise.allSettled(s)}async function Sl(){var e;await pt();const t=((e=hl.value)==null?void 0:e.paperEl)??null;if(!t)throw new Error("未找到处方笺内容");return t.scrollIntoView({behavior:"instant",block:"nearest"}),await jn(t),await new Promise(s=>requestAnimationFrame(()=>s(null))),await new Promise(s=>setTimeout(s,250)),Kr(t,{scale:2,useCORS:!0,allowTaint:!1,logging:!1,backgroundColor:"#ffffff",windowWidth:t.scrollWidth,windowHeight:t.scrollHeight,width:t.scrollWidth,height:t.scrollHeight,ignoreElements:s=>s instanceof HTMLElement&&s.classList.contains("cf-slip-no-export"),onclone:(s,i)=>{i instanceof HTMLElement&&(i.querySelectorAll(".rx-notice, .rx-notice-text, .rx-notice-meta").forEach(u=>{u.style.lineHeight="1.95",u.style.overflow="visible"}),i.querySelectorAll(".rx-notice").forEach(u=>{u.style.padding="10px 12px"}),i.querySelectorAll(".rx-info-cell, .rx-info-cell .rx-key, .rx-info-cell .rx-val").forEach(u=>{u.style.lineHeight="1.95",u.style.overflow="visible"}),i.querySelectorAll(".rx-info-cell").forEach(u=>{u.style.padding="10px 12px"}),i.querySelectorAll(".rx-herb-cell").forEach(u=>{u.style.lineHeight="2.5"}),i.querySelectorAll(".rx-herbs").forEach(u=>{u.style.rowGap="12px"}),i.querySelectorAll(".rx-text").forEach(u=>{u.style.lineHeight="2.1"}),i.querySelectorAll(".rx-bot-meta-val, .rx-hospital-line, .rx-bot-cell").forEach(u=>{u.style.overflow="visible",u.style.lineHeight="1.85"}),i.querySelectorAll(".rx-hospital-row").forEach(u=>{u.style.paddingTop="12px",u.style.paddingBottom="14px"}))}})}function Nl(){var s;const t=(s=R.value)==null?void 0:s.patient_name;return`处方_${typeof t=="string"&&t.trim()?t.trim().replace(/[\\/:*?"<>|]/g,"_"):"未命名"}_${Date.now()}`}async function Ln(){if(R.value){Le.value=!0;try{const t=await Sl(),e=document.createElement("a");e.download=`${Nl()}.png`,e.href=t.toDataURL("image/png"),e.click(),C.msgSuccess("图片已下载")}catch{C.msgError("下载图片失败")}finally{Le.value=!1}}}async function In(){if(R.value){Le.value=!0;try{const t=await Sl(),e=t.toDataURL("image/jpeg",.95),s=new Wr({orientation:"portrait",unit:"mm",format:"a4"}),i=210,u=297,g=i,y=t.height*g/t.width;if(y<=u)s.addImage(e,"JPEG",0,0,g,y);else{let x=y,D=0;for(;x>0;)s.addImage(e,"JPEG",0,D,g,y),x-=u,D-=u,x>0&&s.addPage()}s.save(`${Nl()}.pdf`),C.msgSuccess("PDF已下载")}catch{C.msgError("下载PDF失败")}finally{Le.value=!1}}}return(t,e)=>{const s=Qn,i=Yn,u=lr,g=rr,y=nr,x=or,D=ir,se=ur,w=dr,q=sr,ye=pr,he=fr,It=_r,Cl=mr,Oa=Gr,rt=vr,ee=gr,pe=br,Ie=yr,S=kr,it=xr,$=wr,Mt=hr,Aa=Nr,Pl=Or,Ol=Pr,Ra=Ar,ne=Rr,me=Tr,Al=Er,W=Dr,Mn=$r,Ht=Ur,Hn=Fr,Bn=zr,Wn=qr,Me=Lr,Rl=jr,Tl=Mr,Kn=Ir,Oe=ar,z=Jn("perms");return o(),_("div",Di,[e[270]||(e[270]=r("header",{class:"po-h5-hero","aria-label":"页面概览"},[r("div",{class:"po-h5-hero__text"},[r("h1",{class:"po-h5-hero__title"},"业务订单"),r("p",{class:"po-h5-hero__sub"},"履约、双审与收款一览;点卡片进入详情")])],-1)),a(s,{class:"po-h5-surface po-h5-surface--chips !mb-3 !border-none shadow-none",shadow:"never"},{default:l(()=>[r("div",$i,[Ve.value?(o(),_("div",zi,[e[102]||(e[102]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"处方审核",-1)),(o(),_(E,null,H(is,n=>r("div",{key:n.value,class:L(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",h.prescription_audit_status===n.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:T=>us(n.value)},[r("span",qi,d(n.label),1)],10,Fi)),64))])):f("",!0),r("div",ji,[e[103]||(e[103]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"支付单审核",-1)),(o(),_(E,null,H(os,n=>r("div",{key:n.value,class:L(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",h.payment_slip_audit_status===n.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:T=>ds(n.value)},[r("span",Ii,d(n.label),1)],10,Li)),64))]),r("div",Mi,[e[104]||(e[104]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"发货状态",-1)),(o(),_(E,null,H(ts,n=>r("div",{key:"fs-"+String(n.value),class:L(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",h.fulfillment_status===n.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:T=>as(n.value)},[r("span",Bi,d(n.label),1)],10,Hi)),64))]),r("div",Wi,[e[105]||(e[105]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"供货方式",-1)),(o(),_(E,null,H(ls,n=>r("div",{key:"sm-"+String(n.value),class:L(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",h.supply_mode===n.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:T=>ss(n.value)},[r("span",Gi,d(n.label),1)],10,Ki)),64))]),r("div",Ji,[e[106]||(e[106]=r("span",{class:"text-gray-500 text-sm font-medium w-20 shrink-0"},"快递方式",-1)),(o(),_(E,null,H(ns,n=>r("div",{key:"ec-"+String(n.value),class:L(["px-4 py-1.5 rounded-lg cursor-pointer transition-all duration-200 select-none text-sm",h.express_company===n.value?"bg-primary text-white shadow-md":"bg-gray-50 text-gray-600 hover:bg-gray-100"]),onClick:T=>rs(n.value)},[r("span",Yi,d(n.label),1)],10,Qi)),64))])])]),_:1}),a(s,{class:"po-h5-surface po-filter-card !mb-3 !border-none shadow-none",shadow:"never"},{default:l(()=>[O((o(),_("div",Xi,[r("div",Zi,[e[107]||(e[107]=r("div",{class:"po-stat-deco po-stat-deco--o pointer-events-none absolute -right-6 -top-8 h-28 w-28 rounded-full opacity-40"},null,-1)),r("div",eo,[r("div",null,[r("div",to,[a(i,{size:16,class:"text-sky-500"},{default:l(()=>[a(U(Xn))]),_:1}),p(" "+d(ce.value.orderHeading),1)]),r("div",ao,[r("div",lo," ¥"+d(ce.value.orderPerformanceStr),1),r("div",so,[r("span",null,"合计 ¥"+d(ce.value.orderStr),1),r("span",no,"已取消 ¥"+d(ce.value.orderCancelledStr),1)])])]),r("div",ro,[a(i,{size:20},{default:l(()=>[a(U(Zn))]),_:1})])]),r("p",io,d(ce.value.periodLine),1)]),r("div",oo,[e[108]||(e[108]=r("div",{class:"po-stat-deco po-stat-deco--p pointer-events-none absolute -right-6 -top-8 h-28 w-28 rounded-full opacity-40"},null,-1)),r("div",uo,[r("div",null,[r("div",po,[a(i,{size:16,class:"text-emerald-500"},{default:l(()=>[a(U(er))]),_:1}),p(" "+d(ce.value.payHeading),1)]),r("div",co,[r("div",mo," ¥"+d(ce.value.payPerformanceStr),1),r("div",_o,[r("span",null,"合计 ¥"+d(ce.value.payStr),1),r("span",fo,"已取消 ¥"+d(ce.value.payCancelledStr),1)])])]),r("div",vo,[a(i,{size:20},{default:l(()=>[a(U(tr))]),_:1})])]),r("p",go,d(ce.value.periodLine),1)])])),[[Oe,U(te).loading]]),e[112]||(e[112]=r("p",{class:"po-h5-stats-hint text-center text-[12px] leading-snug text-slate-500 px-1 -mt-2 mb-3"},[p(" 上方为接口返回的"),r("strong",{class:"text-slate-600 font-medium"},"业绩汇总"),p("(未选创建日期时为今日;选了则为该区间);下方列表是当前筛选条件下的订单,"),r("strong",{class:"text-slate-600 font-medium"},"条数与金额和上面不必相等"),p("。 ")],-1)),r("div",{class:"po-filter-toggle",onClick:e[0]||(e[0]=n=>xt.value=!xt.value)},[r("div",yo,[a(i,null,{default:l(()=>[a(U(Ta))]),_:1}),e[109]||(e[109]=r("span",null,"筛选条件",-1)),Za.value>0?(o(),v(u,{key:0,size:"small",type:"primary",effect:"dark",round:""},{default:l(()=>[p(d(Za.value),1)]),_:1})):f("",!0)]),a(i,{class:L(["po-filter-toggle__arrow",{"is-open":!xt.value}])},{default:l(()=>[a(U(Ul))]),_:1},8,["class"])]),O(a(q,{class:"ls-form stats-filter-form",model:h,inline:""},{default:l(()=>[a(Jr,{"time-type":U(Re),"onUpdate:timeType":e[1]||(e[1]=n=>Ea(Re)?Re.value=n:null),"date-range":U(Jt),"onUpdate:dateRange":e[2]||(e[2]=n=>Ea(Jt)?Jt.value=n:null),label:"创建时间",variant:"inline","show-all":"","picker-width":"260px",onTimeTypeChange:fs,onCustomChange:vs},null,8,["time-type","date-range"]),a(y,{class:"w-[260px]",label:"订单号"},{default:l(()=>[a(g,{modelValue:h.order_no,"onUpdate:modelValue":e[3]||(e[3]=n=>h.order_no=n),placeholder:"业务订单号",clearable:"",onKeyup:dt(U(Y),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),a(y,{class:"w-[140px]",label:"处方ID"},{default:l(()=>[a(g,{modelValue:h.prescription_id,"onUpdate:modelValue":e[4]||(e[4]=n=>h.prescription_id=n),placeholder:"处方ID",clearable:"",onKeyup:dt(U(Y),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),a(y,{class:"w-[220px]",label:"患者"},{default:l(()=>[a(g,{modelValue:h.patient_keyword,"onUpdate:modelValue":e[5]||(e[5]=n=>h.patient_keyword=n),placeholder:"姓名 / 手机号",clearable:"",onKeyup:dt(U(Y),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),a(y,{class:"w-[220px]",label:"快递"},{default:l(()=>[a(g,{modelValue:h.express_keyword,"onUpdate:modelValue":e[6]||(e[6]=n=>h.express_keyword=n),placeholder:"快递单号 / 公司",clearable:"",onKeyup:dt(U(Y),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),Wl.value?(o(),v(y,{key:0,class:"w-[200px]",label:"下单人"},{default:l(()=>[a(D,{modelValue:h.audit_admin_id,"onUpdate:modelValue":e[7]||(e[7]=n=>h.audit_admin_id=n),clearable:"",filterable:"",placeholder:"全部下单人",class:"!w-full"},{default:l(()=>[(o(!0),_(E,null,H(Fa.value,n=>(o(),v(x,{key:n.id,label:n.name,value:n.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})):f("",!0),a(y,{class:"w-[200px]",label:"医生"},{default:l(()=>[a(D,{modelValue:h.doctor_id,"onUpdate:modelValue":e[8]||(e[8]=n=>h.doctor_id=n),clearable:"",filterable:"",placeholder:"开方医生",class:"!w-full"},{default:l(()=>[(o(!0),_(E,null,H(Gt.value,n=>(o(),v(x,{key:n.id,label:n.name,value:n.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(y,{class:"w-[220px] min-w-[200px]",label:"医助部门"},{default:l(()=>[a(se,{modelValue:h.assistant_dept_id,"onUpdate:modelValue":e[9]||(e[9]=n=>h.assistant_dept_id=n),data:_t.value,class:"!w-full",clearable:"",filterable:"","check-strictly":"","default-expand-all":!0,"node-key":"id",props:Jl,placeholder:"医助部门(选父级含子级)",onChange:bs},null,8,["modelValue","data"])]),_:1}),a(y,{class:"w-[200px]",label:"医助"},{default:l(()=>[a(D,{modelValue:h.assistant_id,"onUpdate:modelValue":e[10]||(e[10]=n=>h.assistant_id=n),clearable:"",filterable:"",placeholder:"诊单医助",class:"!w-full"},{default:l(()=>[(o(!0),_(E,null,H(Ma.value,n=>(o(),v(x,{key:n.id,label:n.name,value:n.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(y,null,{default:l(()=>[a(w,{type:"primary",onClick:U(Y)},{default:l(()=>[...e[110]||(e[110]=[p("查询",-1)])]),_:1},8,["onClick"]),a(w,{onClick:xs},{default:l(()=>[...e[111]||(e[111]=[p("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"]),[[Bt,!xt.value]])]),_:1}),O((o(),v(s,{class:"po-h5-surface po-table-card !mt-0 !border-none shadow-none",shadow:"never"},{default:l(()=>[r("div",bo,[r("div",xo,[r("div",ko,[e[113]||(e[113]=r("span",{class:"po-table-title text-gray-800"},"订单列表",-1)),r("span",ho,"共 "+d(U(te).count)+" 条",1)]),r("div",wo,[r("div",{class:L(["po-focus-board__item is-pending-rx",{"is-active":re.value==="pendingRx"}]),onClick:e[11]||(e[11]=n=>ft("pendingRx"))},[e[114]||(e[114]=r("span",{class:"po-focus-board__label"},"待处方审核",-1)),r("strong",Vo,d(vt.value.pendingRx),1)],2),r("div",{class:L(["po-focus-board__item is-pending-pay",{"is-active":re.value==="pendingPay"}]),onClick:e[12]||(e[12]=n=>ft("pendingPay"))},[e[115]||(e[115]=r("span",{class:"po-focus-board__label"},"待支付审核",-1)),r("strong",So,d(vt.value.pendingPay),1)],2),r("div",{class:L(["po-focus-board__item is-pending-ship",{"is-active":re.value==="pendingShip"}]),onClick:e[13]||(e[13]=n=>ft("pendingShip"))},[e[116]||(e[116]=r("span",{class:"po-focus-board__label"},"待发货",-1)),r("strong",No,d(vt.value.pendingShip),1)],2),r("div",{class:L(["po-focus-board__item is-risk",{"is-active":re.value==="risk"}]),onClick:e[14]||(e[14]=n=>ft("risk"))},[e[117]||(e[117]=r("span",{class:"po-focus-board__label"},"重点异常",-1)),r("strong",Co,d(vt.value.risk),1)],2)])])]),r("div",Po,[!U(te).lists.length&&!U(te).loading?(o(),v(ye,{key:0,description:"暂无订单","image-size":88})):f("",!0),(o(!0),_(E,null,H(U(te).lists,n=>(o(),_("div",{key:n.id,class:L(["po-card",{"po-card--focus":gt&>({row:n})==="po-row-focus","po-card--risk":gt&>({row:n})==="po-row-risk"}]),onClick:T=>Pt(n.id)},[r("div",Ao,[r("div",Ro,[r("span",To,d(n.order_no||"—"),1)]),r("div",Eo,[a(u,{size:"small",effect:"plain",type:U(ki)(n)},{default:l(()=>[p(d(U(hi)(n)),1)]),_:2},1032,["type"]),r("span",Uo,"#"+d(n.id),1)])]),St(n.recipient_phone,n.prescription_phone)?(o(),_("div",Do,[a(i,null,{default:l(()=>[a(U(cr))]),_:1}),e[118]||(e[118]=r("span",null,"收货手机与处方手机不一致",-1))])):f("",!0),r("div",$o,[r("div",zo,[e[119]||(e[119]=r("span",{class:"po-card__label"},"收货人",-1)),r("span",Fo,d(n.recipient_name||"—"),1)]),r("div",qo,[e[120]||(e[120]=r("span",{class:"po-card__label"},"金额",-1)),r("span",jo,"¥"+d(n.amount),1)])]),r("div",Lo,[r("div",Io,[e[121]||(e[121]=r("span",{class:"po-card__label"},"手机",-1)),r("span",{class:L(["po-card__value",St(n.recipient_phone,n.prescription_phone)?"text-red-600 font-semibold":""])},d(n.recipient_phone||"—"),3)]),r("div",Mo,[e[122]||(e[122]=r("span",{class:"po-card__label"},"费用类别",-1)),r("span",Ho,d(yt(n.fee_type)),1)])]),r("div",Bo,[r("div",Wo,[e[123]||(e[123]=r("span",{class:"po-card__label"},"处方ID",-1)),r("span",Ko,d(n.prescription_id||"—"),1)]),r("div",Go,[e[124]||(e[124]=r("span",{class:"po-card__label"},"诊单ID",-1)),r("span",Jo,d(n.diagnosis_id||"—"),1)])]),qa()&&n.internal_cost!=null&&n.internal_cost!==""?(o(),_("div",Qo,[r("div",Yo,[e[125]||(e[125]=r("span",{class:"po-card__label"},"内部成本",-1)),r("span",Xo,"¥"+d(n.internal_cost),1)]),r("div",Zo,[e[126]||(e[126]=r("span",{class:"po-card__label"},"关联支付",-1)),r("span",eu,[Number(n.linked_pay_order_count)>0?(o(),_("span",tu,d(n.linked_pay_order_count)+" 笔",1)):(o(),_("span",au,"—"))])])])):(o(),_("div",lu,[r("div",su,[e[127]||(e[127]=r("span",{class:"po-card__label"},"关联支付",-1)),r("span",nu,[Number(n.linked_pay_order_count)>0?(o(),_("span",ru,d(n.linked_pay_order_count)+" 笔",1)):(o(),_("span",iu,"—"))])]),r("div",ou,[e[128]||(e[128]=r("span",{class:"po-card__label"},"创建时间",-1)),r("span",uu,d(Se(n.create_time)),1)])])),r("div",du,[a(u,{type:Ba(n.prescription_audit_status),size:"small",class:L(Qt("rx",n))},{default:l(()=>[p(" 处方审: "+d(Ha(n.prescription_audit_status)),1)]),_:2},1032,["type","class"]),a(u,{type:Ba(n.payment_slip_audit_status),size:"small",class:L(Qt("pay",n))},{default:l(()=>[p(" 支付审: "+d(Ha(n.payment_slip_audit_status)),1)]),_:2},1032,["type","class"]),a(u,{type:ks(n.fulfillment_status),size:"small",class:L(Qt("fulfillment",n))},{default:l(()=>[p(d(Yt(n.fulfillment_status)),1)]),_:2},1032,["type","class"])]),r("div",pu,[n.doctor_name?(o(),_("span",cu,"医:"+d(n.doctor_name),1)):f("",!0),n.creator_name?(o(),_("span",mu,"建:"+d(n.creator_name),1)):f("",!0),qa()&&n.internal_cost!=null&&n.internal_cost!==""?f("",!0):(o(),_("span",_u,d(Se(n.create_time)),1))]),r("div",{class:"po-card__actions",onClick:e[15]||(e[15]=Wt(()=>{},["stop"]))},[O((o(),v(w,{type:"primary",size:"small",onClick:T=>Pt(n.id)},{default:l(()=>[p(d(Kl.value),1)]),_:1},8,["onClick"])),[[z,["tcm.prescriptionOrder/detail"]]]),Ga(n)?O((o(),v(w,{key:0,size:"small",onClick:T=>un(n)},{default:l(()=>[...e[129]||(e[129]=[p("编辑",-1)])]),_:1},8,["onClick"])),[[z,["tcm.prescriptionOrder/edit"]]]):f("",!0),O((o(),v(w,{size:"small",onClick:T=>{var k;return(k=sa.value)==null?void 0:k.open(n)}},{default:l(()=>[...e[130]||(e[130]=[p("修改创建时间",-1)])]),_:1},8,["onClick"])),[[z,["tcm.prescriptionOrder/editTime"]]]),Qa(n)?O((o(),v(w,{key:1,type:"success",size:"small",onClick:T=>yn(n)},{default:l(()=>[...e[131]||(e[131]=[p("改单号",-1)])]),_:1},8,["onClick"])),[[z,["tcm.prescriptionOrder/ddcode"]]]):f("",!0),Xt(n)?O((o(),v(w,{key:2,type:"primary",size:"small",onClick:T=>gl(n)},{default:l(()=>[...e[132]||(e[132]=[p("发货",-1)])]),_:1},8,["onClick"])),[[z,["tcm.prescriptionOrder/ship"]]]):f("",!0),Cs(n)?(o(),v(Cl,{key:3,trigger:"click",onCommand:T=>Ps(T,n)},{dropdown:l(()=>[a(It,null,{default:l(()=>[Zt(n)?(o(),v(he,{key:0,command:"addPayOrder"},{default:l(()=>[...e[134]||(e[134]=[p("补齐支付单",-1)])]),_:1})):f("",!0),ea(n)?(o(),v(he,{key:1,command:"complete"},{default:l(()=>[...e[135]||(e[135]=[p("完成订单",-1)])]),_:1})):f("",!0),ta(n)?(o(),v(he,{key:2,command:"refund"},{default:l(()=>[...e[136]||(e[136]=[r("span",{class:"text-red-500"},"退款",-1)])]),_:1})):f("",!0),Ya(n)?O((o(),v(he,{key:3,command:"uploadPharmacy"},{default:l(()=>[...e[137]||(e[137]=[p("上传药房",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/uploadToPharmacy"]]]):f("",!0),Ja(n)?(o(),v(he,{key:4,command:"withdraw",divided:""},{default:l(()=>[...e[138]||(e[138]=[r("span",{class:"text-red-500"},"撤回订单",-1)])]),_:1})):f("",!0)]),_:2},1024)]),default:l(()=>[a(w,{size:"small"},{default:l(()=>[e[133]||(e[133]=p(" 更多",-1)),a(i,{class:"el-icon--right"},{default:l(()=>[a(U(Ul))]),_:1})]),_:1})]),_:2},1032,["onCommand"])):f("",!0)])],10,Oo))),128))]),r("div",fu,[a(Oa,{modelValue:U(te),"onUpdate:modelValue":e[16]||(e[16]=n=>Ea(te)?te.value=n:null),onChange:U(I)},null,8,["modelValue","onChange"])])]),_:1})),[[Oe,U(te).loading]]),a(Ra,{modelValue:J.value,"onUpdate:modelValue":e[29]||(e[29]=n=>J.value=n),class:"po-detail-drawer po-detail-drawer--h5",size:"100%",direction:"btt","destroy-on-close":"","close-on-click-modal":!1},{header:l(()=>{var n,T;return[r("div",vu,[r("div",gu,[e[139]||(e[139]=r("span",{class:"po-detail-drawer-title shrink-0 text-gray-800 font-semibold text-lg"},"业务订单详情",-1)),(n=c.value)!=null&&n.order_no?(o(),v(u,{key:0,type:"primary",effect:"plain",round:"",class:"max-w-full !whitespace-normal break-all text-left leading-snug"},{default:l(()=>[p(d(c.value.order_no),1)]),_:1})):f("",!0),(T=c.value)!=null&&T.gancao_reciperl_order_no?(o(),v(u,{key:1,type:"success",effect:"plain",round:"",class:"max-w-full !whitespace-normal break-all text-left leading-snug"},{default:l(()=>[p("甘草 "+d(c.value.gancao_reciperl_order_no),1)]),_:1})):f("",!0)]),c.value?(o(),_("div",yu,[a(Xr,{order:c.value,onResolved:xn},null,8,["order"]),ws(c.value)?O((o(),v(w,{key:0,type:"warning",size:"small",plain:"",onClick:e[17]||(e[17]=k=>cl(c.value,"prescription"))},{default:l(()=>[...e[140]||(e[140]=[p(" 处方审核 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/auditPrescription"]]]):f("",!0),Ss(c.value)?O((o(),v(w,{key:1,type:"info",size:"small",plain:"",onClick:e[18]||(e[18]=k=>Dn(c.value))},{default:l(()=>[...e[141]||(e[141]=[p(" 撤回处方审核 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/auditPrescription"]]]):f("",!0),Vs(c.value)?O((o(),v(w,{key:2,type:"warning",size:"small",plain:"",onClick:e[19]||(e[19]=k=>cl(c.value,"payment"))},{default:l(()=>[...e[142]||(e[142]=[p(" 支付审核 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/auditPayment"]]]):f("",!0),Ns(c.value)?O((o(),v(w,{key:3,type:"info",size:"small",plain:"",onClick:e[20]||(e[20]=k=>$n(c.value))},{default:l(()=>[...e[143]||(e[143]=[p(" 撤回支付审核 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/auditPayment"]]]):f("",!0),O((o(),v(w,{size:"small",onClick:e[21]||(e[21]=k=>{var F;return(F=sa.value)==null?void 0:F.open(c.value)})},{default:l(()=>[...e[144]||(e[144]=[p("修改创建时间",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/editTime"]]]),Xt(c.value)?O((o(),v(w,{key:4,type:"primary",size:"small",plain:"",onClick:e[22]||(e[22]=k=>gl(c.value))},{default:l(()=>[...e[145]||(e[145]=[p(" 确认发货 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/ship"]]]):f("",!0),Zt(c.value)?O((o(),v(w,{key:5,type:"success",size:"small",plain:"",onClick:e[23]||(e[23]=k=>xl(c.value))},{default:l(()=>[...e[146]||(e[146]=[p(" 关联支付单 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/addPayOrder"]]]):f("",!0),ea(c.value)?O((o(),v(w,{key:6,type:"primary",size:"small",plain:"",onClick:e[24]||(e[24]=k=>kl(c.value))},{default:l(()=>[...e[147]||(e[147]=[p(" 完成订单 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/complete"]]]):f("",!0),ta(c.value)?O((o(),v(w,{key:7,type:"danger",size:"small",plain:"",onClick:e[25]||(e[25]=k=>bl(c.value))},{default:l(()=>[...e[148]||(e[148]=[p(" 退款 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/refund"]]]):f("",!0)])):f("",!0)])]}),default:l(()=>[la.value?(o(),v(rt,{key:0,rows:12,animated:"",class:"px-6 py-4"})):c.value?(o(),_("div",bu,[Be.value?(o(),v(ee,{key:0,type:"error",closable:!1,"show-icon":"",class:"mb-4 !items-start",title:"业务订单收货手机与处方登记手机不一致"},{default:l(()=>[r("div",xu,[r("div",null,[e[149]||(e[149]=p(" 处方手机: ",-1)),r("span",ku,d(Ts.value),1)]),r("div",null,[e[150]||(e[150]=p(" 订单收货手机: ",-1)),r("span",hu,d(Es.value),1)]),e[151]||(e[151]=r("div",{class:"text-gray-600 mt-1"},"请核对是否代收货或录入错误,避免物流与回访联系错人。",-1))])]),_:1})):f("",!0),r("div",wu,[a(Ie,{class:"po-workflow-steps",direction:"vertical",active:kt.value,"finish-status":"success"},{default:l(()=>[a(pe,{title:"业务订单创建",description:Se(c.value.create_time)},null,8,["description"]),a(pe,{title:"处方单双审",status:ht.value},{description:l(()=>[ht.value==="error"?(o(),_("span",Vu,"处方被驳回")):ht.value==="wait"?(o(),_("span",Su,"等待审核")):ht.value==="success"?(o(),_("span",Nu,"双审通过")):(o(),_("span",Cu,"进行中"))]),_:1},8,["status"]),a(pe,{title:"支付单审核",status:wt.value},{description:l(()=>[wt.value==="error"?(o(),_("span",Pu,"支付审核驳回")):wt.value==="wait"?(o(),_("span",Ou,"等待审核")):wt.value==="success"?(o(),_("span",Au,"审核通过")):(o(),_("span",Ru,"进行中"))]),_:1},8,["status"]),a(pe,{title:"发货与履约",status:Te.value},{description:l(()=>{var n,T,k;return[Te.value==="process"&&Number((n=c.value)==null?void 0:n.fulfillment_status)===7?(o(),_("span",Tu,"进行中")):Te.value==="process"?(o(),_("span",Eu,"等待发货/补充单号")):Te.value==="wait"?(o(),_("span",Uu,"待转入履约")):Te.value==="success"?(o(),_("span",Du,d(Yt((T=c.value)==null?void 0:T.fulfillment_status)),1)):Te.value==="error"?(o(),_("span",$u,d(Yt((k=c.value)==null?void 0:k.fulfillment_status)),1)):f("",!0)]}),_:1},8,["status"]),a(pe,{title:"订单完成"})]),_:1},8,["active"])]),r("div",zu,[a(s,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[r("div",Fu,[e[153]||(e[153]=r("div",{class:"stat-title text-gray-500 text-xs"},"总金额",-1)),aa(c.value)?O((o(),v(w,{key:0,type:"primary",size:"small",link:"",onClick:Ys},{default:l(()=>[...e[152]||(e[152]=[p(" 修改 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/updateAmount"]]]):f("",!0)]),r("div",qu,"¥"+d(c.value.amount),1)]),_:1}),a(s,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[e[154]||(e[154]=r("div",{class:"stat-title text-gray-500 text-xs mb-1"},"已付总额",-1)),r("div",ju,"¥"+d(c.value.linked_pay_paid_total||0),1)]),_:1}),a(s,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[e[155]||(e[155]=r("div",{class:"stat-title text-gray-500 text-xs mb-1"},"退款金额",-1)),r("div",{class:L(["stat-value font-bold text-xl",Number(c.value.refund_amount)>0?"text-rose-500":"text-gray-400"])}," ¥"+d(K(c.value.refund_amount||0)),3)]),_:1}),a(s,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[e[156]||(e[156]=r("div",{class:"stat-title text-gray-500 text-xs mb-1"},"需代收",-1)),r("div",{class:L(["stat-value font-bold text-xl",el.value>0?"text-amber-600":"text-gray-500"])}," ¥"+d(K(el.value)),3)]),_:1}),a(s,{shadow:"never",class:"stat-card border border-gray-100 bg-gray-50/50"},{default:l(()=>[e[157]||(e[157]=r("div",{class:"stat-title text-gray-500 text-xs mb-1"},"已付笔数",-1)),r("div",Lu,d(na.value.length)+" 笔",1)]),_:1})]),r("div",Iu,[a(s,{shadow:"never",class:"po-panel po-panel-rx border-gray-100 h-full relative overflow-hidden"},{header:l(()=>[r("div",Bu,[r("div",Wu,[e[160]||(e[160]=r("span",{class:"po-panel-rx-header__title font-medium text-[15px] leading-snug"},"处方详情",-1)),r("span",Ku," ID: "+d(c.value.prescription_id||"—"),1)]),c.value.doctor_name?(o(),_("div",Gu,[e[161]||(e[161]=p(" 开方人:",-1)),r("span",Ju,d(c.value.doctor_name),1)])):f("",!0),r("div",Qu,[c.value.prescription_id&&V.value&&!String(c.value.prescription_detail_error||"").trim()?O((o(),v(w,{key:0,type:"default",size:"small",link:"",onClick:Gs},{default:l(()=>[...e[162]||(e[162]=[p(" 改患者信息 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/patchPrescriptionPatient"]]]):f("",!0),c.value.prescription_id&&Ve.value?(o(),v(w,{key:1,type:"primary",size:"small",link:"",onClick:e[26]||(e[26]=n=>Vl(c.value))},{default:l(()=>[...e[163]||(e[163]=[p(" 详细 ",-1)])]),_:1})):f("",!0),c.value.id&&Ve.value?(o(),v(w,{key:2,type:"warning",size:"small",link:"",loading:Fe.value,icon:U(Ta),onClick:vn},{default:l(()=>[...e[164]||(e[164]=[p(" 测试价格 ",-1)])]),_:1},8,["loading","icon"])):f("",!0)])])]),default:l(()=>[c.value.prescription_audit_status===1?(o(),_("div",Mu,[...e[158]||(e[158]=[r("div",{class:"stamp-inner"},"审核通过",-1)])])):f("",!0),c.value.prescription_audit_status===2?(o(),_("div",Hu,[...e[159]||(e[159]=[r("div",{class:"stamp-inner"},"已驳回",-1)])])):f("",!0),String(c.value.prescription_detail_error||"").trim()?(o(),v(ee,{key:2,title:c.value.prescription_detail_error,type:"warning",closable:!1,"show-icon":"",class:"mb-3"},null,8,["title"])):V.value?(o(),_(E,{key:3},[a(it,{column:1,border:"",size:"small",class:"po-desc bg-white"},{default:l(()=>[a(S,{label:"处方编号",span:2},{default:l(()=>[p(d(V.value.sn||"—"),1)]),_:1}),a(S,{label:"患者"},{default:l(()=>[p(d(V.value.patient_name||"—"),1)]),_:1}),a(S,{label:"性别 / 年龄"},{default:l(()=>[p(d(V.value.gender_desc||"—")+" · "+d(V.value.age??"—")+"岁 ",1)]),_:1}),a(S,{label:"手机"},{default:l(()=>[r("span",{class:L(Be.value?"rx-phone-mismatch text-red-600 font-bold":"")},d(V.value.phone||"—"),3),Be.value?(o(),v(u,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-2 align-middle"},{default:l(()=>[...e[165]||(e[165]=[p(" 与订单手机不一致 ",-1)])]),_:1})):f("",!0)]),_:1}),a(S,{label:"处方日期"},{default:l(()=>[p(d(V.value.prescription_date||"—"),1)]),_:1}),a(S,{label:"医师"},{default:l(()=>[p(d(V.value.doctor_name||"—"),1)]),_:1}),a(S,{label:"类型"},{default:l(()=>[p(d(V.value.prescription_type||"—"),1)]),_:1}),a(S,{label:"临床诊断",span:2},{default:l(()=>[p(d(V.value.clinical_diagnosis||"—"),1)]),_:1}),Ve.value?(o(),v(S,{key:0,label:"剂数 / 用法",span:2},{default:l(()=>[p(d(c.value.dose_count??V.value.dose_count??"—")+" "+d(c.value.dose_unit||"剂")+" · "+d(V.value.usage_instruction||V.value.usage_method||"—"),1)]),_:1})):f("",!0),a(S,{label:"处方金额"},{default:l(()=>[r("span",Yu,"¥"+d(V.value.amount??"—"),1)]),_:1}),a(S,{label:"消费者审核"},{default:l(()=>[a(u,{type:zs(V.value.audit_status),size:"small"},{default:l(()=>[p(d($s(V.value.audit_status)),1)]),_:1},8,["type"])]),_:1}),a(S,{label:"用量"},{default:l(()=>[r("div",Xu,[r("div",null,[Ne.value?(o(),_("span",Zu,"主方:")):f("",!0),V.value.dosage_amount?(o(),_(E,{key:1},[p(d(V.value.dosage_amount)+d(V.value.dosage_unit||"g")+" ",1),V.value.prescription_type==="浓缩水丸"?(o(),_(E,{key:0},[p(" · "+d(Number(V.value.dosage_bag_count)>0?Number(V.value.dosage_bag_count):1)+"袋 ",1),c.value.prescription_id&&!String(c.value.prescription_detail_error||"").trim()?O((o(),v(w,{key:0,type:"primary",size:"small",link:"",class:"ml-2",onClick:fa},{default:l(()=>[...e[166]||(e[166]=[p(" 修改 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/patchPrescriptionUsage"]]]):f("",!0)],64)):f("",!0),V.value.prescription_type==="饮片"&&V.value.need_decoction!==null?(o(),_("span",ed," ("+d(V.value.need_decoction?"代煎":"不代煎")+") ",1)):f("",!0)],64)):(o(),_(E,{key:2},[p("—")],64))]),Ne.value&&Z.value?(o(),_("div",td,[e[168]||(e[168]=r("span",{class:"text-gray-500 mr-1"},"辅方:",-1)),Z.value.dosage_amount!=null&&Z.value.dosage_amount!==0?(o(),_(E,{key:0},[p(d(Z.value.dosage_amount)+d(V.value.dosage_unit||"g")+" ",1),V.value.prescription_type==="浓缩水丸"?(o(),_(E,{key:0},[p(" · "+d(Number(Z.value.dosage_bag_count)>0?Number(Z.value.dosage_bag_count):1)+"袋 ",1),c.value.prescription_id&&!String(c.value.prescription_detail_error||"").trim()?O((o(),v(w,{key:0,type:"primary",size:"small",link:"",class:"ml-2",onClick:fa},{default:l(()=>[...e[167]||(e[167]=[p(" 修改 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/patchPrescriptionUsage"]]]):f("",!0)],64)):f("",!0),V.value.prescription_type==="饮片"?(o(),_("span",ad," ("+d(Z.value.need_decoction?"代煎":"不代煎")+") ",1)):f("",!0)],64)):(o(),_(E,{key:1},[p("—")],64))])):f("",!0)])]),_:1}),a(S,null,{label:l(()=>[r("div",ld,[e[170]||(e[170]=r("span",null,"服用方式",-1)),c.value.prescription_id&&V.value&&!String(c.value.prescription_detail_error||"").trim()?O((o(),v(w,{key:0,type:"primary",size:"small",link:"",onClick:fa},{default:l(()=>[...e[169]||(e[169]=[p(" 修改 ",-1)])]),_:1})),[[z,["tcm.prescriptionOrder/patchPrescriptionUsage"]]]):f("",!0)])]),default:l(()=>[r("div",sd,[Ne.value?(o(),_(E,{key:0},[r("div",null,[e[171]||(e[171]=r("span",{class:"text-gray-500 mr-1"},"主方:",-1)),p(" 每天 "+d(V.value.times_per_day?V.value.times_per_day+" 次":"— 次")+" · 处方开立 "+d(V.value.usage_days!=null&&V.value.usage_days!==""?V.value.usage_days+" 天":"— 天"),1)]),Z.value?(o(),_("div",nd,[e[172]||(e[172]=r("span",{class:"text-gray-500 mr-1"},"辅方:",-1)),p(" 每天 "+d(Z.value.times_per_day?Z.value.times_per_day+" 次":"— 次")+" · 处方开立 "+d(Z.value.usage_days!=null&&Number(Z.value.usage_days)>0?Z.value.usage_days+" 天":"— 天"),1)])):f("",!0)],64)):(o(),_(E,{key:1},[r("div",null,[e[173]||(e[173]=r("span",{class:"text-gray-500"},"每天次数:",-1)),p(" "+d(V.value.times_per_day?V.value.times_per_day+" 次":"—"),1)]),r("div",null,[e[174]||(e[174]=r("span",{class:"text-gray-500"},"处方开立:",-1)),p(" "+d(V.value.usage_days!=null&&V.value.usage_days!==""?V.value.usage_days+" 天":"—"),1)])],64)),r("div",null,[e[175]||(e[175]=r("span",{class:"text-gray-500"},"订单设置:",-1)),p(" "+d(c.value.medication_days!=null&&String(c.value.medication_days).trim()!==""?c.value.medication_days+" 天":"—"),1)])])]),_:1}),al.value?(o(),v(S,{key:1,label:"忌口",span:2},{default:l(()=>[p(d(al.value),1)]),_:1})):f("",!0),a(S,{label:"状态",span:2},{default:l(()=>[a(u,{type:Number(V.value.void_status)===1?"danger":"success",size:"small"},{default:l(()=>[p(d(Number(V.value.void_status)===1?"已作废":"正常"),1)]),_:1},8,["type"])]),_:1})]),_:1}),Us.value?(o(),_("div",rd,[e[176]||(e[176]=r("div",{class:"text-xs font-medium text-gray-500 mb-2 px-1"},"药材明细",-1)),sl.value.length?(o(),v(Mt,{key:0,data:sl.value,size:"small",border:"",stripe:"","max-height":"260"},{default:l(()=>[a($,{type:"index",label:"#",width:"48",align:"center"}),a($,{prop:"name",label:"药名","min-width":"120","show-overflow-tooltip":""}),a($,{prop:"dosage",label:"用量(g)",width:"96",align:"right"})]),_:1},8,["data"])):(o(),v(ye,{key:1,description:"无处方药材明细","image-size":64}))])):f("",!0)],64)):(o(),v(ye,{key:4,description:"无处方数据","image-size":72}))]),_:1}),r("div",id,[a(s,{shadow:"never",class:"po-panel border-gray-100"},{header:l(()=>[...e[177]||(e[177]=[r("div",{class:"flex items-center justify-between"},[r("span",{class:"font-medium text-[15px]"},"未关联的收款记录"),r("span",{class:"text-xs text-gray-400"},"本诊单下未被占用的支付单")],-1)])]),default:l(()=>[Ee.value.length?(o(),v(Mt,{key:0,data:Ee.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:l(()=>[a($,{prop:"id",label:"ID",width:"70"}),a($,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),a($,{label:"类型",width:"90"},{default:l(({row:n})=>[p(d(n.order_type_desc||yt(n.order_type)),1)]),_:1}),a($,{label:"金额",width:"86",align:"right"},{default:l(({row:n})=>[r("span",od,"¥"+d(n.amount),1)]),_:1}),a($,{label:"状态",width:"100",align:"center"},{default:l(({row:n})=>[a(u,{type:rl(n.status),size:"small"},{default:l(()=>[p(d(n.status_desc||Xa(n.status)),1)]),_:2},1032,["type"]),n.is_exempt===1?(o(),v(u,{key:0,type:"warning",size:"small",class:"ml-1"},{default:l(()=>[...e[178]||(e[178]=[p("豁免",-1)])]),_:1})):f("",!0)]),_:1}),a($,{label:"方式","min-width":"120","show-overflow-tooltip":""},{default:l(({row:n})=>[p(d($e(n)),1)]),_:1}),a($,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),a($,{label:"创建时间","min-width":"136"},{default:l(({row:n})=>[p(d(il(n.create_time)),1)]),_:1})]),_:1},8,["data"])):(o(),v(ye,{key:1,description:"无未关联的收款单","image-size":60}))]),_:1}),a(s,{shadow:"never",class:"po-panel po-panel-pay border-gray-100 relative overflow-hidden"},{header:l(()=>[r("div",pd,[r("div",cd,[e[182]||(e[182]=r("span",{class:"font-medium text-[15px]"},"关联收款记录",-1)),c.value.creator_name?(o(),_("span",md,[e[181]||(e[181]=p(" 创建人:",-1)),r("span",_d,d(c.value.creator_name),1)])):f("",!0)])])]),default:l(()=>[c.value.payment_slip_audit_status===1?(o(),_("div",ud,[...e[179]||(e[179]=[r("div",{class:"stamp-inner"},"审核通过",-1)])])):f("",!0),c.value.payment_slip_audit_status===2?(o(),_("div",dd,[...e[180]||(e[180]=[r("div",{class:"stamp-inner"},"已驳回",-1)])])):f("",!0),na.value.length?(o(),v(Mt,{key:2,data:na.value,size:"small",border:"",stripe:"",class:"po-pay-table","max-height":"280"},{default:l(()=>[a($,{prop:"id",label:"ID",width:"70"}),a($,{prop:"order_no",label:"单号","min-width":"135","show-overflow-tooltip":""}),a($,{label:"类型",width:"90"},{default:l(({row:n})=>[p(d(n.order_type_desc||yt(n.order_type)),1)]),_:1}),a($,{label:"金额",width:"86",align:"right"},{default:l(({row:n})=>[r("span",fd,"¥"+d(n.amount),1)]),_:1}),a($,{label:"状态",width:"100",align:"center"},{default:l(({row:n})=>[a(u,{type:rl(n.status),size:"small"},{default:l(()=>[p(d(n.status_desc||Xa(n.status)),1)]),_:2},1032,["type"]),n.is_exempt===1?(o(),v(u,{key:0,type:"warning",size:"small",class:"ml-1"},{default:l(()=>[...e[183]||(e[183]=[p("豁免",-1)])]),_:1})):f("",!0)]),_:1}),a($,{label:"方式","min-width":"120","show-overflow-tooltip":""},{default:l(({row:n})=>[p(d($e(n)),1)]),_:1}),a($,{prop:"creator_name",label:"创建人",width:"80","show-overflow-tooltip":""}),a($,{label:"创建时间","min-width":"136"},{default:l(({row:n})=>[p(d(il(n.create_time)),1)]),_:1})]),_:1},8,["data"])):(o(),v(ye,{key:3,description:"未关联收款单","image-size":60}))]),_:1})])]),a(s,{shadow:"never",class:"po-panel po-panel-biz border-gray-100 mb-4"},{header:l(()=>[...e[184]||(e[184]=[r("span",{class:"font-medium text-[15px]"},"履约与收货信息",-1)])]),default:l(()=>[a(it,{column:1,border:"",size:"small",class:"po-desc"},{default:l(()=>[a(S,{label:"诊单ID"},{default:l(()=>[r("div",vd,[r("div",gd,[e[185]||(e[185]=r("span",{class:"text-[11px] font-semibold uppercase tracking-[0.06em] text-slate-500"},"关联诊单",-1)),r("span",yd,d(c.value.diagnosis_id||"—"),1),e[186]||(e[186]=r("span",{class:"text-[12px] leading-snug text-slate-500"},"病历与体征以诊单为准,可全屏查看",-1))]),Number(c.value.diagnosis_id)>0?(o(),v(w,{key:0,type:"primary",plain:"",round:"",size:"default",class:"po-biz-diagnosis-id__btn w-full shrink-0 touch-manipulation sm:w-auto !m-0",icon:U(Vr),"aria-label":"打开关联诊单详情(患者与病历)",onClick:jl},{default:l(()=>[...e[187]||(e[187]=[p(" 查看诊单详情 ",-1)])]),_:1},8,["icon"])):f("",!0)])]),_:1}),a(S,{label:"创建时间"},{default:l(()=>[p(d(Se(c.value.create_time)),1)]),_:1}),a(S,{label:"收货人"},{default:l(()=>[p(d(c.value.recipient_name),1)]),_:1}),a(S,{label:"挂号关联",span:3},{default:l(()=>[X.value?(o(),_(E,{key:0},[r("div",bd,[r("span",null,[e[188]||(e[188]=p("预约 ",-1)),r("span",xd,"#"+d(X.value.id),1)]),r("span",kd,"时间:"+d(X.value.appointment_date)+" "+d(X.value.period)+" "+d(X.value.appointment_time),1),a(u,{size:"small",type:"info"},{default:l(()=>[p(d(X.value.appointment_type_desc),1)]),_:1}),a(u,{size:"small"},{default:l(()=>[p(d(X.value.status_desc),1)]),_:1}),X.value.doctor_name?(o(),_("span",hd,"接诊:"+d(X.value.doctor_name),1)):f("",!0),X.value.channel_source?(o(),_("span",wd,"渠道:"+d(X.value.channel_source),1)):f("",!0),ll.value?(o(),v(u,{key:2,size:"small",effect:"plain"},{default:l(()=>[p(d(ll.value),1)]),_:1})):f("",!0)]),String(X.value.remark||"").trim()?(o(),_("p",Vd," 备注:"+d(X.value.remark),1)):f("",!0)],64)):(o(),_("span",Sd,"暂无挂号预约记录(未绑定或诊单下无预约)"))]),_:1}),a(S,{label:"收货手机"},{default:l(()=>[r("span",{class:L(Be.value?"text-red-600 font-bold font-mono":"font-mono")},d(c.value.recipient_phone||"—"),3),Be.value?(o(),v(u,{key:0,type:"danger",size:"small",effect:"dark",class:"ml-2 align-middle"},{default:l(()=>[...e[189]||(e[189]=[p(" 与处方手机不一致 ",-1)])]),_:1})):f("",!0)]),_:1}),a(S,{label:"收货地址",span:2},{default:l(()=>[p(d(Ds.value),1)]),_:1}),a(S,{label:"复诊"},{default:l(()=>[p(d(c.value.is_follow_up?"是":"否"),1)]),_:1}),a(S,{label:"用药疗程"},{default:l(()=>[p(d(c.value.medication_days?c.value.medication_days+" 天":"—"),1)]),_:1}),a(S,{label:"上次医护"},{default:l(()=>[p(d(c.value.prev_staff||"—"),1)]),_:1}),a(S,{label:"服务渠道"},{default:l(()=>[p(d(c.value.service_channel||"—"),1)]),_:1}),a(S,{label:"服务套餐"},{default:l(()=>[p(d(As.value),1)]),_:1}),a(S,{label:"费用类别"},{default:l(()=>[p(d(yt(c.value.fee_type)),1)]),_:1}),c.value.internal_cost!=null&&c.value.internal_cost!==""?(o(),v(S,{key:0,label:"内部成本"},{default:l(()=>[p(" ¥"+d(c.value.internal_cost),1)]),_:1})):f("",!0),a(S,{label:"快递单号",span:c.value.internal_cost!=null&&c.value.internal_cost!==""?1:2},{default:l(()=>[p(d(c.value.tracking_number||"—"),1)]),_:1},8,["span"]),a(S,{label:"快递公司"},{default:l(()=>[p(d(Ms(c.value.express_company)),1)]),_:1}),O((o(),v(S,{label:"备注",span:3},{default:l(()=>[p(d(c.value.remark_extra||"—"),1)]),_:1})),[[z,["tcm.prescriptionOrder/editRemarkExtra"]]]),a(S,{label:"医助备注",span:3},{default:l(()=>[p(d(c.value.remark_assistant||"—"),1)]),_:1}),a(S,{label:"处方审核意见",span:3},{default:l(()=>[r("span",Nd,d(c.value.prescription_audit_remark||"—"),1)]),_:1}),a(S,{label:"支付审核意见",span:3},{default:l(()=>[r("span",Cd,d(c.value.payment_slip_audit_remark||"—"),1)]),_:1})]),_:1})]),_:1}),String(c.value.tracking_number||"").trim()?(o(),v(s,{key:1,shadow:"never",class:"po-panel po-panel-logistics border-gray-100"},{header:l(()=>[...e[190]||(e[190]=[r("span",{class:"font-medium text-[15px]"},"物流轨迹",-1)])]),default:l(()=>{var n,T,k,F,ot,ut;return[e[196]||(e[196]=r("p",{class:"po-logistics-tip text-gray-400 text-xs mb-3 font-normal"}," 优先读库,无记录时走快递100。顺丰会校验单号+电话(快递100要求完整手机号更易通过);默认预填订单收货手机,若仍提示验证码错误请改成与顺丰面单一致的号码。 ",-1)),r("div",Pd,[a(g,{modelValue:Ke.value,"onUpdate:modelValue":e[27]||(e[27]=be=>Ke.value=be),clearable:"",maxlength:"20",placeholder:"收件手机(建议11位,与面单一致)",class:"po-logistics-toolbar__phone",onKeyup:dt(da,["enter"])},null,8,["modelValue"]),a(D,{modelValue:We.value,"onUpdate:modelValue":e[28]||(e[28]=be=>We.value=be),placeholder:"承运商",class:"po-logistics-toolbar__carrier"},{default:l(()=>[a(x,{label:"自动识别",value:"auto"}),a(x,{label:"顺丰速运",value:"sf"}),a(x,{label:"京东快递",value:"jd"}),a(x,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),O((o(),v(w,{type:"primary",plain:"",size:"default",loading:Nt.value,class:"po-logistics-toolbar__btn",onClick:da},{icon:l(()=>[a(i,null,{default:l(()=>[a(U(Sr))]),_:1})]),default:l(()=>[e[191]||(e[191]=p(" 刷新轨迹 ",-1))]),_:1},8,["loading"])),[[z,["tcm.prescriptionOrder/logisticsTrace"]]]),r("div",Od,[a(Aa,{href:ua.value.sf,target:"_blank",type:"primary",underline:!1,class:"text-[12px]"},{default:l(()=>[...e[192]||(e[192]=[p("顺丰官网",-1)])]),_:1},8,["href"]),a(Aa,{href:ua.value.jd,target:"_blank",type:"primary",underline:!1,class:"text-[12px]"},{default:l(()=>[...e[193]||(e[193]=[p("京东物流",-1)])]),_:1},8,["href"]),a(Aa,{href:ua.value.jt,target:"_blank",type:"primary",underline:!1,class:"text-[12px]"},{default:l(()=>[...e[194]||(e[194]=[p("极兔",-1)])]),_:1},8,["href"])])]),String(((n=G.value)==null?void 0:n.hint)||"").trim()?(o(),v(ee,{key:0,title:String(((T=G.value)==null?void 0:T.hint)||""),type:"info",closable:!1,class:"mb-4","show-icon":""},null,8,["title"])):f("",!0),Nt.value&&!G.value?(o(),_("div",Ad,[a(i,{class:"is-loading mr-1"},{default:l(()=>[a(U(Cr))]),_:1}),e[195]||(e[195]=p("正在加载物流轨迹... ",-1))])):G.value?(o(),_("div",Rd,[(k=G.value)!=null&&k.state_text?(o(),_("div",Td,[r("span",Ed,"状态:"+d(G.value.state_text),1),(F=G.value)!=null&&F.carrier_label?(o(),v(u,{key:0,size:"small",type:"info"},{default:l(()=>[p(d(G.value.carrier_label),1)]),_:1})):f("",!0),(ot=G.value)!=null&&ot.source?(o(),_("span",Ud," ["+d(G.value.source==="database"?"数据库缓存":"API拉取")+"] ",1)):f("",!0),(ut=G.value)!=null&&ut.last_query_time?(o(),_("span",Dd," 更新时间:"+d(G.value.last_query_time),1)):f("",!0)])):f("",!0),ol.value.length?(o(),v(Ol,{key:1,class:"mt-2 pl-2"},{default:l(()=>[(o(!0),_(E,null,H(ol.value,(be,Ae)=>(o(),v(Pl,{key:Ae,type:Ae===0?"primary":"info",hollow:Ae!==0,timestamp:be.time,placement:"top"},{default:l(()=>[r("span",{class:L(Ae===0?"text-gray-800 font-medium":"text-gray-500")},d(be.context),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(o(),v(ye,{key:2,description:"暂无轨迹节点记录","image-size":64}))])):f("",!0)]}),_:1})):f("",!0),O((o(),v(s,{shadow:"never",class:"po-panel border-gray-100 mt-4"},{header:l(()=>[...e[197]||(e[197]=[r("span",{class:"font-medium text-[15px]"},"操作日志",-1)])]),default:l(()=>[Ue.value.length?(o(),v(Ol,{key:0,class:"mt-2 pl-2"},{default:l(()=>[(o(!0),_(E,null,H(Ue.value,(n,T)=>(o(),v(Pl,{key:n.id,type:T===0?"primary":"info",hollow:T!==0,timestamp:Se(n.create_time),placement:"top"},{default:l(()=>[r("div",$d,[r("span",zd,d(n.admin_name),1),a(u,{size:"small",type:"info"},{default:l(()=>[p(d(Is(n.action)),1)]),_:2},1024)]),r("span",{class:L(T===0?"text-gray-800 font-medium":"text-gray-500")},d(n.summary),3)]),_:2},1032,["type","hollow","timestamp"]))),128))]),_:1})):(o(),v(ye,{key:1,description:"暂无操作日志","image-size":64}))]),_:1})),[[z,["tcm.prescriptionOrder/logs"]]])])):f("",!0)]),_:1},8,["modelValue"]),a(me,{modelValue:Ge.value,"onUpdate:modelValue":e[32]||(e[32]=n=>Ge.value=n),title:"修改订单金额",width:"92%","destroy-on-close":"","close-on-click-modal":!1,onClosed:Qs},{footer:l(()=>[a(w,{onClick:e[31]||(e[31]=n=>Ge.value=!1)},{default:l(()=>[...e[199]||(e[199]=[p("取消",-1)])]),_:1}),a(w,{type:"primary",loading:oa.value,onClick:ul},{default:l(()=>[...e[200]||(e[200]=[p(" 确认修改 ",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(q,{ref_key:"updateAmountFormRef",ref:Ct,model:fe,rules:js,"label-width":"84px",onSubmit:Wt(ul,["prevent"])},{default:l(()=>[a(y,{label:"当前金额"},{default:l(()=>{var n;return[r("div",Fd,"¥"+d(K((n=c.value)==null?void 0:n.amount)),1)]}),_:1}),a(y,{label:"新金额",prop:"amount"},{default:l(()=>[a(ne,{modelValue:fe.amount,"onUpdate:modelValue":e[30]||(e[30]=n=>fe.amount=n),min:0,step:.01,precision:2,"controls-position":"right",class:"w-full",placeholder:"请输入新金额"},null,8,["modelValue"])]),_:1}),e[198]||(e[198]=r("div",{class:"text-xs text-gray-400 pl-[84px] -mt-1 leading-relaxed"}," 已完成或已取消订单不可修改。提交成功后会刷新详情与操作日志。 ",-1))]),_:1},8,["model"])]),_:1},8,["modelValue"]),a(me,{modelValue:Pe.value,"onUpdate:modelValue":e[53]||(e[53]=n=>Pe.value=n),title:"编辑业务订单",width:"96%",top:"2vh","close-on-click-modal":!1,"destroy-on-close":"",class:"create-order-dialog create-order-dialog--h5",onClosed:nn},{footer:l(()=>[r("div",yp,[r("div",bp,[r("span",xp,"第 "+d(M.value+1)+" / 3 步",1),M.value===2&&B.value>0?(o(),_("span",kp," 订单金额与关联支付单合计须 ≥ ¥"+d(K(B.value)),1)):f("",!0)]),r("div",hp,[a(w,{size:"large",onClick:e[52]||(e[52]=n=>Pe.value=!1)},{default:l(()=>[...e[214]||(e[214]=[p("取消",-1)])]),_:1}),M.value>0?(o(),v(w,{key:0,size:"large",onClick:rn},{default:l(()=>[...e[215]||(e[215]=[p("上一步",-1)])]),_:1})):f("",!0),M.value<2?(o(),v(w,{key:1,type:"primary",size:"large",onClick:on},{default:l(()=>[...e[216]||(e[216]=[p(" 下一步 ",-1)])]),_:1})):f("",!0),M.value===2?(o(),v(w,{key:2,type:"primary",size:"large",loading:ya.value,onClick:dn},{default:l(()=>[...e[217]||(e[217]=[p(" 确认保存 ",-1)])]),_:1},8,["loading"])):f("",!0)])])]),default:l(()=>[O((o(),_("div",qd,[oe.value?(o(),_("div",jd,[r("div",Ld,[e[201]||(e[201]=r("span",{class:"create-order-rx-card__badge"},"关联处方",-1)),r("div",Id,[r("span",Md,"#"+d(oe.value.id),1),oe.value.sn?(o(),_("span",Hd,d(oe.value.sn),1)):f("",!0),r("span",Bd,d(oe.value.patient_name||"—"),1)])]),a(Al,{content:dl.value,placement:"bottom","show-after":300},{default:l(()=>[r("div",Wd,d(dl.value),1)]),_:1},8,["content"])])):f("",!0),a(Ie,{active:M.value,"finish-status":"success","align-center":"",class:"create-order-steps"},{default:l(()=>[a(pe,{title:"患者与收货",description:"诊单与物流地址"}),a(pe,{title:"服务与支付单",description:"套餐与关联收款"}),a(pe,{title:"金额与确认",description:"费用与备注"})]),_:1},8,["active"]),r("p",Kd,d(Zs.value),1),a(q,{ref_key:"editFormRef",ref:De,model:m,rules:sn.value,"label-width":"108px",class:"create-order-form"},{default:l(()=>[O(r("div",Gd,[a(Ht,{gutter:20},{default:l(()=>[a(W,{span:12},{default:l(()=>[a(y,{label:"收货人",prop:"recipient_name"},{default:l(()=>[a(g,{modelValue:m.recipient_name,"onUpdate:modelValue":e[33]||(e[33]=n=>m.recipient_name=n),maxlength:"50",placeholder:"姓名"},null,8,["modelValue"])]),_:1})]),_:1}),a(W,{span:12},{default:l(()=>[a(y,{label:"收货手机",prop:"recipient_phone"},{default:l(()=>[a(g,{modelValue:m.recipient_phone,"onUpdate:modelValue":e[34]||(e[34]=n=>m.recipient_phone=n),maxlength:"20",placeholder:"物流联系"},null,8,["modelValue"])]),_:1})]),_:1}),a(W,{span:24},{default:l(()=>[a(y,{label:"省市区",prop:"region"},{default:l(()=>[a(Mn,{modelValue:m.region,"onUpdate:modelValue":e[35]||(e[35]=n=>m.region=n),options:ct.value,props:{emitPath:!0},placeholder:"省 / 市 / 区",clearable:"",filterable:"",class:"w-full"},null,8,["modelValue","options"])]),_:1})]),_:1}),a(W,{span:24},{default:l(()=>[a(y,{label:"详细地址",prop:"shipping_address"},{default:l(()=>[a(g,{modelValue:m.shipping_address,"onUpdate:modelValue":e[36]||(e[36]=n=>m.shipping_address=n),type:"textarea",rows:3,placeholder:"街道、小区、门牌号等详细地址",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[Bt,M.value===0]]),O(r("div",Jd,[Ve.value?(o(),v(Ht,{key:0,gutter:20,class:"mb-1"},{default:l(()=>[a(W,{span:24},{default:l(()=>[r("div",Qd,[e[204]||(e[204]=r("span",{class:"text-sm font-medium text-gray-700 mr-1"},"处方",-1)),m.prescription_id?(o(),v(w,{key:0,type:"primary",size:"small",link:"",onClick:qn},{default:l(()=>[...e[202]||(e[202]=[p(" 详细 ",-1)])]),_:1})):f("",!0),m.id?(o(),v(w,{key:1,type:"warning",size:"small",link:"",loading:Fe.value,icon:U(Ta),onClick:fn},{default:l(()=>[...e[203]||(e[203]=[p(" 测试价格 ",-1)])]),_:1},8,["loading","icon"])):f("",!0),r("span",Yd,"ID: "+d(m.prescription_id||"—"),1)]),r("div",Xd,[pl.value.length?(o(),_("div",Zd,[e[205]||(e[205]=r("div",{class:"text-gray-500"},"创建人所属部门",-1)),(o(!0),_(E,null,H(pl.value,(n,T)=>(o(),_("div",{key:T,class:"pl-0 min-w-0"},[n.length?(o(),v(Bn,{key:0,class:"po-diagnosis-creator-dept-breadcrumb text-[13px] leading-relaxed",separator:"/"},{default:l(()=>[(o(!0),_(E,null,H(n,(k,F)=>(o(),v(Hn,{key:F},{default:l(()=>[r("span",ep,d(k),1)]),_:2},1024))),128))]),_:2},1024)):f("",!0)]))),128))])):(o(),_("div",tp,"创建人所属部门:—"))])]),_:1}),a(W,{xs:24,sm:8},{default:l(()=>[a(y,{label:"复诊"},{default:l(()=>[a(Wn,{modelValue:m.is_follow_up,"onUpdate:modelValue":e[37]||(e[37]=n=>m.is_follow_up=n),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1}),a(W,{xs:24,sm:8},{default:l(()=>[a(y,{label:"服用天数",class:"create-order-form-item--inline-num"},{default:l(()=>[r("div",ap,[a(ne,{modelValue:m.medication_days,"onUpdate:modelValue":e[38]||(e[38]=n=>m.medication_days=n),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[206]||(e[206]=r("span",{class:"create-order-unit-suffix"},"天",-1))])]),_:1})]),_:1}),a(W,{xs:24,sm:8},{default:l(()=>[a(y,{label:"上次医生"},{default:l(()=>[a(g,{modelValue:m.prev_staff,"onUpdate:modelValue":e[39]||(e[39]=n=>m.prev_staff=n),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),a(W,{span:12},{default:l(()=>[a(y,{label:nl.value,prop:"dose_count"},{default:l(()=>[a(ne,{modelValue:m.dose_count,"onUpdate:modelValue":e[40]||(e[40]=n=>m.dose_count=n),min:1,placeholder:nl.value,class:"w-full"},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1}),a(W,{span:12},{default:l(()=>[a(y,{label:"剂量单位",prop:"dose_unit"},{default:l(()=>[a(D,{modelValue:m.dose_unit,"onUpdate:modelValue":e[41]||(e[41]=n=>m.dose_unit=n),placeholder:"请选择",class:"w-full"},{default:l(()=>[a(x,{label:"剂",value:"剂"}),a(x,{label:"丸",value:"丸"}),a(x,{label:"袋",value:"袋"}),a(x,{label:"盒",value:"盒"}),a(x,{label:"瓶",value:"瓶"}),a(x,{label:"膏",value:"膏"}),a(x,{label:"贴",value:"贴"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1})):f("",!0),a(Ht,{gutter:20},{default:l(()=>[a(W,{span:12},{default:l(()=>[a(y,{label:"服务渠道"},{default:l(()=>[a(g,{modelValue:m.service_channel,"onUpdate:modelValue":e[42]||(e[42]=n=>m.service_channel=n),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),a(W,{span:12},{default:l(()=>[a(y,{label:"服务套餐"},{default:l(()=>[a(D,{modelValue:m.service_package,"onUpdate:modelValue":e[43]||(e[43]=n=>m.service_package=n),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"请选择服务套餐",clearable:"",class:"w-full"},{default:l(()=>[(o(!0),_(E,null,H(tn.value,n=>(o(),v(x,{key:n.value,label:n.name,value:n.value,disabled:n.status===0},null,8,["label","value","disabled"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),a(W,{span:24},{default:l(()=>[a(y,{label:"物流设置"},{default:l(()=>[r("div",lp,[a(D,{modelValue:m.express_company,"onUpdate:modelValue":e[44]||(e[44]=n=>m.express_company=n),placeholder:"承运商",class:"w-[140px] shrink-0"},{default:l(()=>[a(x,{label:"自动识别",value:"auto"}),a(x,{label:"顺丰速运",value:"sf"}),a(x,{label:"京东快递",value:"jd"}),a(x,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"]),a(g,{modelValue:m.tracking_number,"onUpdate:modelValue":e[45]||(e[45]=n=>m.tracking_number=n),disabled:"",maxlength:"80",placeholder:"快递单号",class:"flex-1 min-w-0"},null,8,["modelValue"])]),e[207]||(e[207]=r("div",{class:"text-xs text-gray-400 mt-1"}," 编辑订单后需重新审核;双审通过后,请通过列表的单号操作填写或修改 ",-1))]),_:1})]),_:1}),a(W,{span:24},{default:l(()=>[a(y,{label:"关联支付单",prop:"pay_order_ids",required:B.value>0},{default:l(()=>[a(D,{modelValue:m.pay_order_ids,"onUpdate:modelValue":e[46]||(e[46]=n=>m.pay_order_ids=n),class:"w-full",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:B.value>0?"请至少选择一笔本诊单支付单(已开启门槛)":"多选本诊单支付单(可选)",loading:ba.value},{default:l(()=>[(o(!0),_(E,null,H(Ye.value,n=>(o(),v(x,{key:n.id,label:`${n.order_no} · ¥${n.amount} · ${Ot(n.order_type)} · ${$e(n)}`,value:n.id,class:"!h-auto py-1.5"},{default:l(()=>[r("div",sp,[r("div",np,[r("span",rp,d(n.order_no),1),r("span",ip,"¥"+d(n.amount),1)]),r("div",op,[r("span",up,[p(d(Ot(n.order_type))+" · "+d($e(n)),1),n.remark?(o(),_(E,{key:0},[p(" · "+d(n.remark),1)],64)):f("",!0)]),r("span",dp,d(String(n.create_time||"").substring(0,16)),1)])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","loading"]),r("div",pp,[B.value>0?(o(),_(E,{key:0},[r("span",cp,"当前已开启关联支付门槛(¥"+d(K(B.value))+"),须至少选择一笔支付单。",1),e[208]||(e[208]=r("span",{class:"mx-1"},null,-1))],64)):f("",!0),e[210]||(e[210]=p(" 主管/本诊单医助可见全部支付单;否则仅本人收款单。已被占用的支付单不列出。 ",-1)),a(Al,{content:"主管或本诊单医助可见该诊单全部支付单(待支付/已支付),否则仅本人创建的收款单。已被其他有效业务订单占用的支付单不会出现在此列表。",placement:"top"},{default:l(()=>[...e[209]||(e[209]=[r("span",{class:"text-primary cursor-help ml-0.5"},"详情",-1)])]),_:1})])]),_:1},8,["required"])]),_:1})]),_:1})],512),[[Bt,M.value===1]]),O(r("div",mp,[r("div",{class:L(["create-order-deposit-bar",xa.value>=B.value?"is-ok":"is-warn"])},[r("div",_p,[e[211]||(e[211]=r("span",{class:"create-order-deposit-bar__label"},"定金门槛",-1)),r("strong",null,"¥"+d(K(B.value)),1),r("span",fp,d(B.value>0?"须 ≥ 此值":"未设置"),1)]),e[213]||(e[213]=r("div",{class:"create-order-deposit-bar__sep"},null,-1)),r("div",vp,[e[212]||(e[212]=r("span",{class:"create-order-deposit-bar__label"},"已选收款",-1)),r("strong",null,"¥"+d(K(xa.value)),1),r("span",gp,d(xa.value>=B.value?"已达标":"未达标"),1)])],2),a(Ht,{gutter:20,class:"create-order-step-panel__row-after-bar"},{default:l(()=>[a(W,{span:12},{default:l(()=>[a(y,{label:"费用类别",prop:"fee_type"},{default:l(()=>[a(D,{modelValue:m.fee_type,"onUpdate:modelValue":e[47]||(e[47]=n=>m.fee_type=n),placeholder:"请选择",class:"w-full"},{default:l(()=>[a(x,{label:"挂号费",value:1}),a(x,{label:"问诊费",value:2}),a(x,{label:"药品费用",value:3}),a(x,{label:"首付费用",value:4}),a(x,{label:"尾款费用",value:5}),a(x,{label:"其他费用",value:6}),a(x,{label:"全部费用",value:7}),a(x,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1})]),_:1}),a(W,{span:12},{default:l(()=>[a(y,{label:"总金额",prop:"amount"},{default:l(()=>[a(ne,{modelValue:m.amount,"onUpdate:modelValue":e[48]||(e[48]=n=>m.amount=n),min:an.value,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"元"},null,8,["modelValue","min"])]),_:1})]),_:1}),O((o(),v(W,{span:12},{default:l(()=>[a(y,{label:"内部成本"},{default:l(()=>[a(ne,{modelValue:m.internal_cost,"onUpdate:modelValue":e[49]||(e[49]=n=>m.internal_cost=n),min:0,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"财务可见"},null,8,["modelValue"])]),_:1})]),_:1})),[[z,["finance.account_log/lists"]]]),a(W,{span:24},{default:l(()=>[O((o(),v(y,{label:"药房备注"},{default:l(()=>[a(g,{modelValue:m.remark_extra,"onUpdate:modelValue":e[50]||(e[50]=n=>m.remark_extra=n),type:"textarea",rows:3,placeholder:"选填,对内说明",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})),[[z,["tcm.prescriptionOrder/editRemarkExtra"]]]),a(y,{label:"医助备注"},{default:l(()=>[a(g,{modelValue:m.remark_assistant,"onUpdate:modelValue":e[51]||(e[51]=n=>m.remark_assistant=n),type:"textarea",rows:3,placeholder:"选填,医助对内说明",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[Bt,M.value===2]])]),_:1},8,["model","rules"])])),[[Oe,ga.value]])]),_:1},8,["modelValue"]),a(me,{modelValue:Xe.value,"onUpdate:modelValue":e[58]||(e[58]=n=>Xe.value=n),title:pn.value,width:"92%","destroy-on-close":"",class:"po-h5-dialog",onClosed:e[59]||(e[59]=n=>ze.value="")},{footer:l(()=>[a(w,{onClick:e[55]||(e[55]=n=>Xe.value=!1)},{default:l(()=>[...e[219]||(e[219]=[p("取消",-1)])]),_:1}),a(w,{type:"primary",loading:Rt.value,onClick:e[56]||(e[56]=n=>ml("approve"))},{default:l(()=>[...e[220]||(e[220]=[p("同意通过",-1)])]),_:1},8,["loading"]),a(w,{type:"danger",loading:Rt.value,onClick:e[57]||(e[57]=n=>ml("reject"))},{default:l(()=>[...e[221]||(e[221]=[p("驳回阻止",-1)])]),_:1},8,["loading"])]),default:l(()=>[Ze.value&&Ze.value.completion_request===1?(o(),v(ee,{key:0,title:"完单申请",type:"warning",closable:!1,"show-icon":"",class:"mb-3"},{default:l(()=>[r("div",wp,[e[218]||(e[218]=r("div",{class:"font-medium mb-1"},"该订单已申请完成",-1)),r("div",Vp," 申请人:"+d(Ze.value.completion_request_by_name||"—"),1),r("div",Sp," 申请时间:"+d(Se(Ze.value.completion_request_time)),1)])]),_:1})):f("",!0),e[222]||(e[222]=r("p",{class:"text-[13px] text-gray-500 mb-3 bg-gray-50/80 border border-gray-100 p-2 rounded"},"驳回时必须填写意见;通过时意见选填。",-1)),a(g,{modelValue:ze.value,"onUpdate:modelValue":e[54]||(e[54]=n=>ze.value=n),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"在此输入审核意见..."},null,8,["modelValue"])]),_:1},8,["modelValue","title"]),a(me,{modelValue:et.value,"onUpdate:modelValue":e[63]||(e[63]=n=>et.value=n),title:"修改快递单号",width:"92%","destroy-on-close":"",class:"po-h5-dialog","close-on-click-modal":!1},{footer:l(()=>[a(w,{onClick:e[62]||(e[62]=n=>et.value=!1)},{default:l(()=>[...e[224]||(e[224]=[p("取消",-1)])]),_:1}),a(w,{type:"primary",loading:Et.value,onClick:vl},{default:l(()=>[...e[225]||(e[225]=[p("保存单号",-1)])]),_:1},8,["loading"])]),default:l(()=>[O((o(),v(q,{"label-width":"90px",class:"pr-2",onSubmit:Wt(vl,["prevent"])},{default:l(()=>[a(y,{label:"承运商"},{default:l(()=>[a(D,{modelValue:ve.express_company,"onUpdate:modelValue":e[60]||(e[60]=n=>ve.express_company=n),class:"w-full",placeholder:"选择承运商"},{default:l(()=>[a(x,{label:"自动识别",value:"auto"}),a(x,{label:"顺丰速运",value:"sf"}),a(x,{label:"京东快递",value:"jd"}),a(x,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"])]),_:1}),a(y,{label:"快递单号"},{default:l(()=>[a(g,{modelValue:ve.tracking_number,"onUpdate:modelValue":e[61]||(e[61]=n=>ve.tracking_number=n),maxlength:"80",placeholder:"请输入快递单号",clearable:"",autofocus:""},null,8,["modelValue"])]),_:1}),e[223]||(e[223]=r("div",{class:"text-xs text-gray-400 pl-[90px] -mt-1 leading-relaxed"}," 仅更新快递信息,其他字段不受影响。 ",-1))]),_:1})),[[Oe,Et.value]])]),_:1},8,["modelValue"]),a(me,{modelValue:at.value,"onUpdate:modelValue":e[67]||(e[67]=n=>at.value=n),title:"确认发货",width:"92%","destroy-on-close":"",class:"po-h5-dialog","close-on-click-modal":!1},{footer:l(()=>[a(w,{onClick:e[66]||(e[66]=n=>at.value=!1)},{default:l(()=>[...e[227]||(e[227]=[p("取消",-1)])]),_:1}),a(w,{type:"primary",loading:Ut.value,onClick:yl},{default:l(()=>[...e[228]||(e[228]=[p(" 确认发货 ",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(ee,{title:"确认后订单状态将变更为「已发货」,请核对快递信息无误。",type:"warning",closable:!1,"show-icon":"",class:"mb-4"}),O((o(),v(q,{"label-width":"90px",class:"pr-2",onSubmit:Wt(yl,["prevent"])},{default:l(()=>[a(y,{label:"发货方式"},{default:l(()=>[a(u,{type:ae.ship_mode==="direct"?"warning":"success",effect:"plain",size:"default"},{default:l(()=>[p(d(bn.value),1)]),_:1},8,["type"]),e[226]||(e[226]=r("span",{class:"text-xs text-gray-400 ml-2"},"请在订单详情顶部「发货类型」中设置,此处不可修改",-1))]),_:1}),a(y,{label:"承运商"},{default:l(()=>[a(D,{modelValue:ae.express_company,"onUpdate:modelValue":e[64]||(e[64]=n=>ae.express_company=n),class:"w-full"},{default:l(()=>[a(x,{label:"自动识别",value:"auto"}),a(x,{label:"顺丰速运",value:"sf"}),a(x,{label:"京东快递",value:"jd"}),a(x,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"])]),_:1}),a(y,{label:"快递单号"},{default:l(()=>[a(g,{modelValue:ae.tracking_number,"onUpdate:modelValue":e[65]||(e[65]=n=>ae.tracking_number=n),maxlength:"80",placeholder:"请输入快递单号",clearable:""},null,8,["modelValue"])]),_:1})]),_:1})),[[Oe,Ut.value]])]),_:1},8,["modelValue"]),a(me,{modelValue:qe.value,"onUpdate:modelValue":e[72]||(e[72]=n=>qe.value=n),title:"完成订单",width:"92%","close-on-click-modal":!1,"destroy-on-close":"",class:"po-h5-dialog",onClosed:Vn},{footer:l(()=>[a(w,{onClick:e[71]||(e[71]=n=>qe.value=!1)},{default:l(()=>[...e[229]||(e[229]=[p("取消",-1)])]),_:1}),a(w,{type:xe.value===10?"danger":"primary",loading:lt.value,onClick:Nn},{default:l(()=>[p(d(xe.value===10?"确认退款":"确定"),1)]),_:1},8,["type","loading"])]),default:l(()=>[e[230]||(e[230]=r("p",{class:"text-sm text-gray-600 mb-3"}," 选择「已完成」按关联收款汇总实付;选择「退款」将关联收款标记已退款并清零已付。 ",-1)),a(D,{modelValue:xe.value,"onUpdate:modelValue":e[68]||(e[68]=n=>xe.value=n),class:"w-full",placeholder:"请选择"},{default:l(()=>[(o(),_(E,null,H(kn,n=>a(x,{key:n.value,label:n.label,value:n.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),xe.value===10?(o(),_(E,{key:0},[a(ee,{type:"warning",closable:!1,"show-icon":"",class:"mt-3",title:"关联收款将标记已退款,本单已付清零,不可撤销。"}),ge.value.length?(o(),_("p",Np," 将退款 "+d(ge.value.length)+" 笔关联收款,合计 ¥"+d(K(hn.value)),1)):f("",!0),a(q,{ref_key:"completeRefundFormRef",ref:wa,model:ue,rules:wn.value,"label-width":"80px",class:"mt-2"},{default:l(()=>[a(y,{label:"退款金额",prop:"refund_amount"},{default:l(()=>[a(ne,{modelValue:ue.refund_amount,"onUpdate:modelValue":e[69]||(e[69]=n=>ue.refund_amount=n),min:.01,max:ke.value>0?ke.value:void 0,step:.01,precision:2,class:"w-full"},null,8,["modelValue","max"]),r("div",Cp,"可退上限 ¥"+d(K(ke.value)),1)]),_:1}),a(y,{label:"退款原因",prop:"reason"},{default:l(()=>[a(g,{modelValue:ue.reason,"onUpdate:modelValue":e[70]||(e[70]=n=>ue.reason=n),type:"textarea",rows:3,maxlength:"500",placeholder:"必填"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])],64)):f("",!0)]),_:1},8,["modelValue"]),a(me,{modelValue:st.value,"onUpdate:modelValue":e[76]||(e[76]=n=>st.value=n),title:"订单退款",width:"92%","close-on-click-modal":!1,"destroy-on-close":"",class:"po-h5-dialog",onClosed:On},{footer:l(()=>[a(w,{onClick:e[75]||(e[75]=n=>st.value=!1)},{default:l(()=>[...e[231]||(e[231]=[p("取消",-1)])]),_:1}),a(w,{type:"danger",loading:Na.value,onClick:An},{default:l(()=>[...e[232]||(e[232]=[p(" 确认退款 ",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(ee,{type:"warning",closable:!1,"show-icon":"",class:"mb-4 !items-start",title:Cn.value},null,8,["title"]),a(q,{ref_key:"refundOrderFormRef",ref:Ca,model:le,rules:Pn.value,"label-width":"88px"},{default:l(()=>[a(y,{label:"退款金额",prop:"refund_amount"},{default:l(()=>[a(ne,{modelValue:le.refund_amount,"onUpdate:modelValue":e[73]||(e[73]=n=>le.refund_amount=n),min:.01,max:de.value>0?de.value:void 0,step:.01,precision:2,class:"w-full"},null,8,["modelValue","max"]),r("div",Pp,"可退上限 ¥"+d(K(de.value)),1)]),_:1}),a(y,{label:"退款原因",prop:"reason"},{default:l(()=>[a(g,{modelValue:le.reason,"onUpdate:modelValue":e[74]||(e[74]=n=>le.reason=n),type:"textarea",rows:4,maxlength:"500","show-word-limit":"",placeholder:"请填写退款原因(必填)"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue"]),a(me,{modelValue:nt.value,"onUpdate:modelValue":e[84]||(e[84]=n=>nt.value=n),title:"补齐支付单",width:"94%","close-on-click-modal":!1,"destroy-on-close":"",class:"po-h5-dialog",onClosed:e[85]||(e[85]=n=>{var T;return(T=zt.value)==null?void 0:T.clearValidate()})},{footer:l(()=>[a(w,{onClick:e[83]||(e[83]=n=>nt.value=!1)},{default:l(()=>[...e[242]||(e[242]=[p("取消",-1)])]),_:1}),a(w,{type:"primary",loading:$t.value,onClick:Un},{default:l(()=>[...e[243]||(e[243]=[p("确认新增",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(ee,{title:Rn.value,type:"info",closable:!1,"show-icon":"",class:"mb-4"},null,8,["title"]),O((o(),v(q,{ref_key:"addPayOrderFormRef",ref:zt,model:P,rules:Tn.value,"label-width":"90px",class:"pr-2"},{default:l(()=>[a(y,{label:"添加方式",prop:"add_mode"},{default:l(()=>[a(Rl,{modelValue:P.add_mode,"onUpdate:modelValue":e[77]||(e[77]=n=>P.add_mode=n)},{default:l(()=>[a(Me,{value:"create"},{default:l(()=>[...e[233]||(e[233]=[p("付呗",-1)])]),_:1}),a(Me,{value:"create_express"},{default:l(()=>[...e[234]||(e[234]=[p("快递代收",-1)])]),_:1}),a(Me,{value:"link"},{default:l(()=>[...e[235]||(e[235]=[p("关联已有",-1)])]),_:1}),a(Me,{value:"completion_only"},{default:l(()=>[...e[236]||(e[236]=[p("直接完单申请",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),P.add_mode==="create"||P.add_mode==="create_express"?(o(),_(E,{key:0},[a(y,{label:"费用类别",prop:"order_type"},{default:l(()=>[a(D,{modelValue:P.order_type,"onUpdate:modelValue":e[78]||(e[78]=n=>P.order_type=n),class:"w-full"},{default:l(()=>[a(x,{label:"挂号费",value:1}),a(x,{label:"问诊费",value:2}),a(x,{label:"药品费用",value:3}),a(x,{label:"首付费用",value:4}),a(x,{label:"尾款费用",value:5}),a(x,{label:"其他费用",value:6}),a(x,{label:"全部费用",value:7}),a(x,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1}),a(y,{label:"支付金额",prop:"pay_amount"},{default:l(()=>[a(ne,{modelValue:P.pay_amount,"onUpdate:modelValue":e[79]||(e[79]=n=>P.pay_amount=n),min:.01,step:.01,precision:2,class:"w-full",placeholder:"请输入支付金额(元)"},null,8,["modelValue"])]),_:1}),a(y,{label:"备注",prop:"pay_remark"},{default:l(()=>[a(g,{modelValue:P.pay_remark,"onUpdate:modelValue":e[80]||(e[80]=n=>P.pay_remark=n),type:"textarea",rows:3,maxlength:"200","show-word-limit":"",placeholder:"支付说明(选填)"},null,8,["modelValue"])]),_:1})],64)):P.add_mode==="completion_only"?(o(),v(ee,{key:1,type:"warning",closable:!1,"show-icon":"",class:"!mb-0"},{title:l(()=>[...e[237]||(e[237]=[p(" 不新增或关联支付单,仅向审核人员提交「完成订单」申请;提交后支付审核将变为待审核,审核通过后将自动结案。 ",-1)])]),_:1})):(o(),v(y,{key:2,label:"选择支付单",prop:"link_pay_order_id"},{default:l(()=>[a(D,{modelValue:P.link_pay_order_ids,"onUpdate:modelValue":e[81]||(e[81]=n=>P.link_pay_order_ids=n),class:"w-full",placeholder:"选择未绑定的支付单(可多选)",loading:Pa.value,multiple:"","collapse-tags":"","collapse-tags-tooltip":""},{default:l(()=>[(o(!0),_(E,null,H(Ft.value,n=>(o(),v(x,{key:n.id,label:`${n.order_no} · ¥${n.amount} · ${Ot(n.order_type)} · ${$e(n)}`,value:n.id},{default:l(()=>[r("div",Op,[r("div",Ap,[r("span",Rp,d(n.order_no),1),r("span",Tp,"¥"+d(n.amount),1)]),r("div",Ep,d(Ot(n.order_type))+" · "+d($e(n)),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","loading"]),e[238]||(e[238]=r("div",{class:"text-xs text-gray-500 mt-1.5"}," 仅显示本诊单下未被其他业务订单占用的支付单,可同时选择多个 ",-1))]),_:1})),P.add_mode!=="completion_only"?(o(),v(y,{key:3,label:"完单申请"},{default:l(()=>[a(Rl,{modelValue:P.completion_request,"onUpdate:modelValue":e[82]||(e[82]=n=>P.completion_request=n)},{default:l(()=>[a(Me,{value:0},{default:l(()=>[...e[239]||(e[239]=[p("不申请",-1)])]),_:1}),a(Me,{value:1},{default:l(()=>[...e[240]||(e[240]=[p("申请完成订单",-1)])]),_:1})]),_:1},8,["modelValue"]),e[241]||(e[241]=r("div",{class:"text-xs text-gray-400 mt-1"},' 选择"申请完成订单"后,审核人员可在支付审核时看到此申请 ',-1))]),_:1})):f("",!0)]),_:1},8,["model","rules"])),[[Oe,$t.value]])]),_:1},8,["modelValue"]),a(me,{modelValue:Je.value,"onUpdate:modelValue":e[89]||(e[89]=n=>Je.value=n),title:"修改处方患者信息",width:"92%","close-on-click-modal":!1,"destroy-on-close":"",class:"po-h5-dialog",onClosed:Js},{footer:l(()=>[a(w,{onClick:e[88]||(e[88]=n=>Je.value=!1)},{default:l(()=>[...e[244]||(e[244]=[p("取消",-1)])]),_:1}),a(w,{type:"primary",loading:pa.value,onClick:Xs},{default:l(()=>[...e[245]||(e[245]=[p(" 保存 ",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(q,{ref_key:"patchRxPatientFormRef",ref:ca,model:ie,rules:Hs,"label-width":"96px"},{default:l(()=>[a(y,{label:"患者姓名",prop:"patient_name"},{default:l(()=>[a(g,{modelValue:ie.patient_name,"onUpdate:modelValue":e[86]||(e[86]=n=>ie.patient_name=n),maxlength:"50","show-word-limit":"",placeholder:"与处方笺一致",clearable:""},null,8,["modelValue"])]),_:1}),a(y,{label:"手机",prop:"phone"},{default:l(()=>[a(g,{modelValue:ie.phone,"onUpdate:modelValue":e[87]||(e[87]=n=>ie.phone=n),maxlength:"20",placeholder:"处方登记手机号",clearable:""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),a(me,{modelValue:Qe.value,"onUpdate:modelValue":e[98]||(e[98]=n=>Qe.value=n),title:"修改服用参数",width:"92%","close-on-click-modal":!1,"destroy-on-close":"",class:"po-h5-dialog",onClosed:Ws},{footer:l(()=>[a(w,{onClick:e[97]||(e[97]=n=>Qe.value=!1)},{default:l(()=>[...e[251]||(e[251]=[p("取消",-1)])]),_:1}),a(w,{type:"primary",loading:ma.value,onClick:Ks},{default:l(()=>[...e[252]||(e[252]=[p("保存",-1)])]),_:1},8,["loading"])]),default:l(()=>[a(q,{ref_key:"patchUsageFormRef",ref:_a,model:A,rules:Bs.value,"label-width":"96px"},{default:l(()=>{var n,T;return[Ne.value?(o(),_("div",Up,"主方")):f("",!0),((n=V.value)==null?void 0:n.prescription_type)==="浓缩水丸"?(o(),v(y,{key:1,label:"每次袋数",prop:"dosage_bag_count"},{default:l(()=>[a(D,{modelValue:A.dosage_bag_count,"onUpdate:modelValue":e[90]||(e[90]=k=>A.dosage_bag_count=k),class:"w-full"},{default:l(()=>[(o(),_(E,null,H(5,k=>a(x,{key:k,label:`${k}袋`,value:k},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})):f("",!0),a(y,{label:"每天次数",prop:"times_per_day"},{default:l(()=>[a(ne,{modelValue:A.times_per_day,"onUpdate:modelValue":e[91]||(e[91]=k=>A.times_per_day=k),min:1,max:6,step:1,"controls-position":"right",class:"w-full"},null,8,["modelValue"])]),_:1}),a(y,{label:"处方开立",prop:"usage_days"},{default:l(()=>[r("div",Dp,[a(ne,{modelValue:A.usage_days,"onUpdate:modelValue":e[92]||(e[92]=k=>A.usage_days=k),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[246]||(e[246]=r("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1}),Ne.value?(o(),_(E,{key:2},[e[248]||(e[248]=r("div",{class:"text-xs font-medium text-gray-500 mb-3 mt-2 pt-2 border-t border-gray-100"},"辅方",-1)),((T=V.value)==null?void 0:T.prescription_type)==="浓缩水丸"?(o(),v(y,{key:0,label:"每次袋数",prop:"aux_dosage_bag_count"},{default:l(()=>[a(D,{modelValue:A.aux_dosage_bag_count,"onUpdate:modelValue":e[93]||(e[93]=k=>A.aux_dosage_bag_count=k),class:"w-full"},{default:l(()=>[(o(),_(E,null,H(5,k=>a(x,{key:k,label:`${k}袋`,value:k},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})):f("",!0),a(y,{label:"每天次数",prop:"aux_times_per_day"},{default:l(()=>[a(ne,{modelValue:A.aux_times_per_day,"onUpdate:modelValue":e[94]||(e[94]=k=>A.aux_times_per_day=k),min:1,max:6,step:1,"controls-position":"right",class:"w-full"},null,8,["modelValue"])]),_:1}),a(y,{label:"处方开立",prop:"aux_usage_days"},{default:l(()=>[r("div",$p,[a(ne,{modelValue:A.aux_usage_days,"onUpdate:modelValue":e[95]||(e[95]=k=>A.aux_usage_days=k),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[247]||(e[247]=r("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1})],64)):f("",!0),e[250]||(e[250]=r("div",{class:"text-xs font-medium text-gray-500 mb-3 mt-2 pt-2 border-t border-gray-100"},"订单设置",-1)),a(y,{label:"服用天数",prop:"medication_days"},{default:l(()=>[r("div",zp,[a(ne,{modelValue:A.medication_days,"onUpdate:modelValue":e[96]||(e[96]=k=>A.medication_days=k),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[249]||(e[249]=r("span",{class:"text-gray-500 shrink-0"},"天",-1))])]),_:1})]}),_:1},8,["model","rules"])]),_:1},8,["modelValue"]),a(Ra,{modelValue:qt.value,"onUpdate:modelValue":e[100]||(e[100]=n=>qt.value=n),size:"100%",direction:"btt",class:"po-h5-drawer","close-on-click-modal":!1},{header:l(()=>[r("div",Fp,[e[255]||(e[255]=r("span",{class:"text-base font-medium text-gray-800"},"查看处方",-1)),R.value&&!jt.value?(o(),_("div",qp,[a(w,{size:"small",loading:Le.value,onClick:Ln},{default:l(()=>[...e[253]||(e[253]=[p(" 下载图片 ",-1)])]),_:1},8,["loading"]),a(w,{size:"small",loading:Le.value,onClick:In},{default:l(()=>[...e[254]||(e[254]=[p(" 下载PDF ",-1)])]),_:1},8,["loading"])])):f("",!0)])]),default:l(()=>[O((o(),_("div",jp,[R.value?(o(),v(Kn,{key:0,modelValue:Lt.value,"onUpdate:modelValue":e[99]||(e[99]=n=>Lt.value=n),class:"mx-4 mt-2",style:{"margin-bottom":"0","z-index":"1",position:"relative"}},{default:l(()=>[a(Tl,{label:"药房联",name:"internal"}),a(Tl,{label:"处方联",name:"user"})]),_:1},8,["modelValue"])):f("",!0),R.value?(o(),_("div",Lp,[Number(R.value.void_status)===1?(o(),v(u,{key:0,type:"danger",size:"small"},{default:l(()=>[...e[256]||(e[256]=[p("已作废",-1)])]),_:1})):Number(R.value.business_prescription_audit_rejected)===1?(o(),v(u,{key:1,type:"danger",size:"small"},{default:l(()=>[...e[257]||(e[257]=[p("业务订单已驳回",-1)])]),_:1})):Number(R.value.audit_status)===1?(o(),v(u,{key:2,type:"success",size:"small"},{default:l(()=>[...e[258]||(e[258]=[p("已通过",-1)])]),_:1})):Number(R.value.audit_status)===0?(o(),v(u,{key:3,type:"warning",size:"small"},{default:l(()=>[...e[259]||(e[259]=[p("待审核",-1)])]),_:1})):(o(),v(u,{key:4,type:"danger",size:"small"},{default:l(()=>[...e[260]||(e[260]=[p("已驳回",-1)])]),_:1}))])):f("",!0),R.value&&Number(R.value.void_status)===1?(o(),_("div",Ip," 作废人:"+d(R.value.void_by_name||"—")+",作废时间:"+d(Fn(R.value.void_time)),1)):R.value&&Number(R.value.business_prescription_audit_rejected)===1?(o(),_("div",Mp,[e[261]||(e[261]=r("div",{class:"font-medium"},"审核状态:已驳回(业务订单·处方审核)",-1)),R.value.business_prescription_audit_remark?(o(),_("div",Hp," 驳回意见:"+d(R.value.business_prescription_audit_remark),1)):f("",!0)])):R.value&&Number(R.value.audit_status)===2?(o(),_("div",Bp,[e[262]||(e[262]=r("div",{class:"font-medium"},"消费者处方审核:已驳回",-1)),R.value.audit_remark?(o(),_("div",Wp,"驳回意见:"+d(R.value.audit_remark),1)):f("",!0)])):f("",!0),R.value?(o(),v(Oi,{key:5,ref_key:"rxSlipRef",ref:hl,data:R.value,variant:Lt.value,title:zn},null,8,["data","variant"])):f("",!0),R.value&&(R.value.audit_by_name||R.value.audit_remark)?(o(),_("div",Kp,[R.value.audit_by_name?(o(),_("div",Gp,[p(" 审核人:"+d(R.value.audit_by_name)+" ",1),R.value.audit_time?(o(),_("span",Jp,d(wl(R.value.audit_time)),1)):f("",!0)])):f("",!0),R.value.audit_remark?(o(),_("div",Qp,"审核意见:"+d(R.value.audit_remark),1)):f("",!0)])):f("",!0)])),[[Oe,jt.value]])]),_:1},8,["modelValue"]),a(Ra,{modelValue:Tt.value,"onUpdate:modelValue":e[101]||(e[101]=n=>Tt.value=n),title:"甘草预下单测试结果",size:"100%",direction:"btt",class:"po-h5-drawer","destroy-on-close":""},{default:l(()=>{var n,T;return[j.value?(o(),_("div",Yp,[a(s,{shadow:"never",class:"mb-4"},{header:l(()=>[r("div",Xp,[e[264]||(e[264]=r("span",{class:"font-semibold"},"价格信息",-1)),a(u,{type:"success"},{default:l(()=>[...e[263]||(e[263]=[p("预下单成功",-1)])]),_:1})])]),default:l(()=>[a(it,{column:2,border:""},{default:l(()=>[a(S,{label:"药材成本"},{default:l(()=>{var k;return[r("span",Zp,"¥"+d(((k=j.value.fee)==null?void 0:k.m_cost)||"0.00"),1)]}),_:1}),a(S,{label:"制作费"},{default:l(()=>{var k;return[r("span",ec,"¥"+d((((k=j.value.fee)==null?void 0:k.proces_cost)||0).toFixed(2)),1)]}),_:1}),a(S,{label:"物流费"},{default:l(()=>{var k;return[r("span",tc,"¥"+d((((k=j.value.fee)==null?void 0:k.lis_cost)||0).toFixed(2)),1)]}),_:1}),a(S,{label:"总计"},{default:l(()=>[r("div",null,[r("span",ac," ¥"+d(fl(j.value.fee)),1),O((o(),_("div",lc,[e[265]||(e[265]=p(" 占订单总金额: ",-1)),r("span",sc,d(mn(j.value.fee,j.value.amount)),1),j.value.amount>0?(o(),_("span",nc,"%(预报价 ÷ 订单金额 × 100)")):f("",!0)])),[[z,["prescription.order/finance"]]])])]),_:1})]),_:1})]),_:1}),a(s,{shadow:"never",class:"mb-4"},{header:l(()=>[...e[266]||(e[266]=[r("span",{class:"font-semibold"},"配送信息",-1)])]),default:l(()=>[a(it,{column:2,border:""},{default:l(()=>[a(S,{label:"调配中心"},{default:l(()=>{var k;return[p(d(((k=j.value.result)==null?void 0:k.ds_name)||"—"),1)]}),_:1}),a(S,{label:"调配中心ID"},{default:l(()=>{var k;return[p(d(((k=j.value.result)==null?void 0:k.ds_id)||"—"),1)]}),_:1}),a(S,{label:"服用天数范围",span:2},{default:l(()=>{var k,F,ot,ut,be,Ae;return[p(d(((F=(k=j.value.result)==null?void 0:k.take_days)==null?void 0:F.min)||"—")+" - "+d(((ut=(ot=j.value.result)==null?void 0:ot.take_days)==null?void 0:ut.max)||"—")+" 天 (默认: "+d(((Ae=(be=j.value.result)==null?void 0:be.take_days)==null?void 0:Ae.default)||"—")+" 天) ",1)]}),_:1})]),_:1})]),_:1}),(T=(n=j.value.result)==null?void 0:n.rule_check)!=null&&T.length?(o(),v(s,{key:0,shadow:"never",class:"mb-4"},{header:l(()=>[...e[267]||(e[267]=[r("span",{class:"font-semibold"},"医嘱备注",-1)])]),default:l(()=>[r("div",rc,d(j.value.result.rule_check.map(k=>k.msg).join(" ")),1)]),_:1})):f("",!0),a(s,{shadow:"never"},{header:l(()=>{var k,F;return[r("div",ic,[e[268]||(e[268]=r("span",{class:"font-semibold"},"药材明细",-1)),r("span",oc,"共 "+d(((F=(k=j.value.result)==null?void 0:k.m_list)==null?void 0:F.length)||0)+" 味药",1)])]}),default:l(()=>{var k;return[a(Mt,{data:((k=j.value.result)==null?void 0:k.m_list)||[],border:"",stripe:"","max-height":"400"},{default:l(()=>[a($,{type:"index",label:"#",width:"50",align:"center"}),a($,{prop:"title",label:"药材名称","min-width":"120","show-overflow-tooltip":""}),a($,{prop:"quantity",label:"用量",width:"80",align:"right"},{default:l(({row:F})=>[p(d(F.quantity)+d(F.unit),1)]),_:1}),a($,{prop:"price",label:"单价(元/克)",width:"110",align:"right"},{default:l(({row:F})=>[p(" ¥"+d(Number(F.price).toFixed(4)),1)]),_:1}),a($,{label:"小计",width:"100",align:"right"},{default:l(({row:F})=>[r("span",uc," ¥"+d((Number(F.price)*Number(F.quantity)).toFixed(2)),1)]),_:1}),a($,{prop:"is_available",label:"库存状态",width:"100",align:"center"},{default:l(({row:F})=>[a(u,{type:F.is_available===1?"success":"danger",size:"small"},{default:l(()=>[p(d(F.is_available===1?"有货":"缺货"),1)]),_:2},1032,["type"])]),_:1}),a($,{prop:"brief",label:"备注","min-width":"120","show-overflow-tooltip":""})]),_:1},8,["data"])]}),_:1}),a(s,{shadow:"never",class:"mt-4"},{header:l(()=>[...e[269]||(e[269]=[r("span",{class:"font-semibold"},"订单信息",-1)])]),default:l(()=>[a(it,{column:2,border:""},{default:l(()=>[a(S,{label:"订单号",span:2},{default:l(()=>[p(d(j.value.order_no||"—"),1)]),_:1}),a(S,{label:"剂数"},{default:l(()=>[r("span",dc,d(j.value.dose_count||"—")+"剂",1)]),_:1}),a(S,{label:"单剂量"},{default:l(()=>{var k;return[r("span",pc,d(_n((k=j.value.result)==null?void 0:k.m_list))+"克 ",1)]}),_:1})]),_:1})]),_:1})])):f("",!0)]}),_:1},8,["modelValue"]),a(U(ql),{ref_key:"diagnosisViewRef",ref:$a},null,512),a(Yr,{ref_key:"orderTimeDialogRef",ref:sa,onSaved:Os},null,512)])}}}),Cc=Ti(mc,[["__scopeId","data-v-72fba941"]]);export{Cc as default}; diff --git a/server/public/admin/assets/order_list_h5-CY8JpfnL.css b/server/public/admin/assets/order_list_h5-CY8JpfnL.css deleted file mode 100644 index 2abe79fa9..000000000 --- a/server/public/admin/assets/order_list_h5-CY8JpfnL.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.stats-filter-form[data-v-731df2ea] .el-form-item{margin-bottom:0}.prescription-order-page[data-v-731df2ea]{margin:0 auto}.po-page-title[data-v-731df2ea]{margin:0 0 6px;font-size:20px;font-weight:600;color:var(--el-text-color-primary);letter-spacing:.02em}.po-page-desc[data-v-731df2ea]{margin:0;font-size:13px;line-height:1.55;color:var(--el-text-color-secondary)}.po-filter-card[data-v-731df2ea]{border-radius:8px}.po-filter-card[data-v-731df2ea] .el-card__body{padding-bottom:12px}.po-list-stats[data-v-731df2ea]{--po-stat-order-a: color-mix(in srgb, var(--el-color-primary) 12%, white);--po-stat-order-b: color-mix(in srgb, var(--el-color-primary) 5%, transparent);--po-stat-pay-a: color-mix(in srgb, #10b981 10%, white);--po-stat-pay-b: color-mix(in srgb, #10b981 4%, transparent)}.po-stat-surface[data-v-731df2ea]{transition:box-shadow .2s ease,border-color .2s ease}.po-stat-surface[data-v-731df2ea]:hover{box-shadow:0 10px 28px -12px #0f172a2e;border-color:color-mix(in srgb,var(--el-color-primary) 22%,var(--el-border-color))}.po-stat-surface--order[data-v-731df2ea]{background:linear-gradient(135deg,var(--po-stat-order-a) 0%,#fff 48%,var(--po-stat-order-b) 100%)}.po-stat-surface--pay[data-v-731df2ea]{background:linear-gradient(135deg,var(--po-stat-pay-a) 0%,#fff 48%,var(--po-stat-pay-b) 100%)}.po-stat-deco--o[data-v-731df2ea]{background:radial-gradient(circle,color-mix(in srgb,var(--el-color-primary) 45%,transparent) 0%,transparent 70%)}.po-stat-deco--p[data-v-731df2ea]{background:radial-gradient(circle,color-mix(in srgb,#10b981 40%,transparent) 0%,transparent 70%)}.stat-icon-wrap[data-v-731df2ea]{box-shadow:inset 0 1px #ffffffb3}.po-table-card[data-v-731df2ea]{border-radius:8px}.po-table-card[data-v-731df2ea] .el-card__body{padding-top:16px}.po-table-toolbar[data-v-731df2ea]{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}.po-table-toolbar__title-wrap[data-v-731df2ea]{display:flex;align-items:baseline;gap:10px}.po-table-title[data-v-731df2ea]{font-size:16px;font-weight:600}.po-focus-board[data-v-731df2ea]{display:grid;grid-template-columns:repeat(4,minmax(106px,1fr));gap:8px;width:min(100%,520px)}.po-focus-board__item[data-v-731df2ea]{display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:8px;border:1px solid var(--el-border-color-lighter);background:#fff;padding:7px 10px;cursor:pointer;transition:all .18s ease}.po-focus-board__item[data-v-731df2ea]:hover{transform:translateY(-1px);box-shadow:0 8px 20px -14px #0f172a61}.po-focus-board__item.is-active[data-v-731df2ea]{box-shadow:0 0 0 2px color-mix(in srgb,var(--el-color-primary) 24%,transparent) inset;transform:translateY(-1px)}.po-focus-board__label[data-v-731df2ea]{font-size:12px;color:var(--el-text-color-secondary)}.po-focus-board__value[data-v-731df2ea]{font-size:18px;line-height:1;font-weight:700;color:var(--el-text-color-primary);font-variant-numeric:tabular-nums}.po-focus-board__item.is-pending-rx[data-v-731df2ea]{border-color:color-mix(in srgb,var(--el-color-warning) 34%,#fff);background:color-mix(in srgb,var(--el-color-warning-light-9) 66%,#fff)}.po-focus-board__item.is-pending-pay[data-v-731df2ea]{border-color:color-mix(in srgb,#2563eb 30%,#fff);background:color-mix(in srgb,#dbeafe 62%,#fff)}.po-focus-board__item.is-pending-ship[data-v-731df2ea]{border-color:color-mix(in srgb,var(--el-color-primary) 30%,#fff);background:color-mix(in srgb,var(--el-color-primary-light-9) 64%,#fff)}.po-focus-board__item.is-risk[data-v-731df2ea]{border-color:color-mix(in srgb,var(--el-color-danger) 34%,#fff);background:color-mix(in srgb,var(--el-color-danger-light-9) 66%,#fff)}@media (max-width: 1024px){.po-focus-board[data-v-731df2ea]{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}}.po-data-table[data-v-731df2ea] th.el-table__cell{font-weight:600;background:var(--el-fill-color-light)!important}.po-order-no-cell[data-v-731df2ea]{display:flex;flex-direction:column;gap:4px}.po-order-no-main[data-v-731df2ea]{font-weight:600;color:var(--el-text-color-primary);line-height:1.35}.po-order-no-sub[data-v-731df2ea]{display:inline-flex;align-items:center;gap:6px;font-size:12px}.po-status-tag[data-v-731df2ea]{font-weight:600}.po-status-tag.is-focus[data-v-731df2ea]{box-shadow:0 0 0 1px color-mix(in srgb,var(--el-color-warning) 24%,transparent) inset}.po-status-tag.is-risk[data-v-731df2ea]{box-shadow:0 0 0 1px color-mix(in srgb,var(--el-color-danger) 30%,transparent) inset}.po-data-table[data-v-731df2ea] .el-table__row.po-row-focus>td.el-table__cell{background:color-mix(in srgb,var(--el-color-warning-light-9) 38%,#fff)!important}.po-data-table[data-v-731df2ea] .el-table__row.po-row-risk>td.el-table__cell{background:color-mix(in srgb,var(--el-color-danger-light-9) 42%,#fff)!important}.po-data-table[data-v-731df2ea] .el-table__row.po-row-done>td.el-table__cell{background:color-mix(in srgb,var(--el-color-success-light-9) 24%,#fff)!important}.po-detail-drawer[data-v-731df2ea] .el-drawer__header{margin-bottom:0;padding:16px 24px;border-bottom:1px solid var(--el-border-color-lighter)}.stat-card[data-v-731df2ea]{border-radius:8px}.stat-title[data-v-731df2ea]{font-weight:500}.po-panel[data-v-731df2ea]{border-radius:8px;transition:all .3s}.po-panel[data-v-731df2ea] .el-card__header{padding:14px 16px;background-color:var(--el-bg-color-page);border-bottom:1px solid var(--el-border-color-lighter)}.po-panel[data-v-731df2ea] .el-card__body{padding:16px}.po-desc[data-v-731df2ea] .el-descriptions__label{width:120px;color:var(--el-text-color-regular)}.po-audit-remark[data-v-731df2ea]{color:var(--el-color-danger);font-weight:600;white-space:pre-wrap;word-break:break-word}.rx-wrap[data-v-731df2ea]{min-height:160px;background:#f5f6f8;padding:12px;margin:-20px}.rx-statusbar[data-v-731df2ea]{display:flex;align-items:center;gap:8px;padding:0 4px 8px}.rx-status[data-v-731df2ea]{margin-bottom:10px;padding:8px 12px;border-radius:4px;font-size:13px;line-height:1.6}.rx-status-danger[data-v-731df2ea]{background:#fef0f0;color:#b91c1c;border:1px solid #fecaca}.rx-paper[data-v-731df2ea]{width:210mm;min-height:297mm;margin:0 auto;background:#fff;box-sizing:border-box;padding:8mm 10mm;color:#1f1f1f;font-size:13px;line-height:1.5;font-family:Microsoft YaHei,PingFang SC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;box-shadow:0 0 0 1px #d6d6d6,0 6px 24px #0000000f;overflow:visible}.rx-notice[data-v-731df2ea]{display:flex;flex-direction:column;align-items:stretch;gap:10px;background:#f3f4f6;border:1px solid #e5e7eb;padding:14px 12px;border-radius:2px;font-size:12px;color:#1f1f1f;margin-bottom:6px}.rx-notice .rx-notice-text[data-v-731df2ea]{flex:none;width:100%;line-height:1.55;word-break:break-word}.rx-notice .rx-notice-meta[data-v-731df2ea]{display:flex;flex-flow:row nowrap;align-items:center;gap:4px 14px;width:100%;box-sizing:border-box;margin-top:4px;padding:8px 2px 2px;border-top:1px solid #e5e7eb;font-size:10px;line-height:2.35;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.rx-notice .rx-notice-meta .rx-meta-item[data-v-731df2ea]{display:inline-flex;flex:0 0 auto;align-items:baseline;gap:2px;min-width:0;padding:0;margin:0;background:transparent;border:none;border-radius:0;white-space:nowrap;line-height:2.35;height:20px}.rx-notice .rx-notice-meta .rx-meta-item[data-v-731df2ea]:not(:first-child){border-left:1px solid #d1d5db;padding-left:14px;margin-left:2px;line-height:2.35}.rx-notice .rx-notice-meta .rx-meta-label[data-v-731df2ea]{font-weight:600;color:#6b7280;line-height:1.35;flex-shrink:0}.rx-notice .rx-notice-meta .rx-meta-label[data-v-731df2ea]:after{content:":";font-weight:500;color:#9ca3af}.rx-notice .rx-notice-meta .rx-meta-value[data-v-731df2ea]{color:#111827;line-height:1.35;font-variant-numeric:tabular-nums}.rx-title[data-v-731df2ea]{text-align:center;font-size:28px;font-weight:700;line-height:1.2;margin:10px 0 35px;letter-spacing:.08em}.rx-info[data-v-731df2ea]{border:1px solid #c8c8c8;border-bottom:none}.rx-info-row[data-v-731df2ea]{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #c8c8c8}.rx-info-row-full[data-v-731df2ea]{grid-template-columns:1fr}.rx-info-cell[data-v-731df2ea]{display:flex;align-items:center;gap:6px;padding:16px 10px;font-size:13px;border-right:1px solid #c8c8c8;min-height:32px}.rx-info-cell[data-v-731df2ea]:last-child{border-right:none}.rx-info-cell .rx-key[data-v-731df2ea]{color:#1f1f1f;flex-shrink:0}.rx-info-cell .rx-val[data-v-731df2ea]{flex:1;min-width:0;word-break:break-all}.rx-rp[data-v-731df2ea]{position:relative;border-left:1px solid #c8c8c8;border-right:1px solid #c8c8c8;padding:8px 10px 16px;overflow:hidden;box-sizing:border-box;width:100%}.rx-watermark[data-v-731df2ea]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:88px;font-weight:700;color:#0000000f;transform:rotate(-22deg);letter-spacing:.18em;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:0}.rx-rp-head[data-v-731df2ea]{display:grid;grid-template-columns:36px 1fr;align-items:end;-moz-column-gap:8px;column-gap:8px;border-bottom:1px solid #d4d4d4;margin-bottom:6px;position:relative;z-index:1;width:100%;box-sizing:border-box;padding:10px}.rx-rp-label[data-v-731df2ea]{font-size:16px;font-weight:700;color:#1f1f1f;line-height:1;padding-bottom:15px}.rx-rp-cols-head[data-v-731df2ea]{display:grid;grid-template-columns:1fr 1fr;-moz-column-gap:24px;column-gap:24px;width:100%;box-sizing:border-box;min-width:0}.rx-rp-col-head[data-v-731df2ea]{display:grid;grid-template-columns:1fr 64px;-moz-column-gap:8px;column-gap:8px;font-size:13px;color:#1f1f1f;min-width:0;padding-bottom:15px}.rx-rp-col-head>span[data-v-731df2ea]:last-child{text-align:right}.rx-herbs[data-v-731df2ea]{padding-left:44px;display:grid;grid-template-columns:1fr 1fr;-moz-column-gap:24px;column-gap:24px;row-gap:6px;position:relative;z-index:1;width:100%;box-sizing:border-box}.rx-herb-cell[data-v-731df2ea]{display:grid;grid-template-columns:1fr 64px;-moz-column-gap:8px;column-gap:8px;font-size:13px;line-height:2.5;min-width:0}.rx-herb-name[data-v-731df2ea]{color:#1f1f1f;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rx-herb-total[data-v-731df2ea]{color:#1f1f1f;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.rx-text[data-v-731df2ea]{border:1px solid #c8c8c8;border-top:none;padding:10px 12px;font-size:13px;line-height:1.85}.rx-text p[data-v-731df2ea]{margin:0}.rx-text .rx-text-warn[data-v-731df2ea]{color:#d72424;font-weight:600}.rx-bottom[data-v-731df2ea]{border:1px solid #c8c8c8;border-top:none}.rx-bot-row[data-v-731df2ea]{display:grid;border-bottom:1px solid #c8c8c8}.rx-bot-row[data-v-731df2ea]:last-child{border-bottom:none}.rx-bot-row-1[data-v-731df2ea]{grid-template-columns:1.6fr .6fr .6fr .6fr .6fr 1.7fr .95fr 1.25fr;min-height:70px}.rx-bot-row-2[data-v-731df2ea]{grid-template-columns:repeat(6,1fr)}.rx-hospital-row[data-v-731df2ea]{display:flex;flex-direction:column;align-items:left;justify-content:left;gap:2px;padding:10px 12px;min-height:52px;text-align:left}.rx-hospital-line[data-v-731df2ea]{font-size:12px;color:#374151;line-height:1.6}.rx-bot-cell[data-v-731df2ea]{border-right:1px solid #c8c8c8;padding:6px 10px;font-size:12px;color:#1f1f1f;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;min-height:32px;box-sizing:border-box;line-height:2.5}.rx-bot-cell[data-v-731df2ea]:last-child{border-right:none}.rx-bot-stack[data-v-731df2ea]{flex-direction:column;align-items:flex-start;justify-content:flex-start}.rx-bot-label[data-v-731df2ea]{font-size:13px;color:#1f1f1f;margin-bottom:4px}.rx-bot-label--doctor[data-v-731df2ea]{flex-shrink:0;margin-bottom:0;margin-right:6px;line-height:1.2;align-self:center}.rx-bot-doctor[data-v-731df2ea]{flex-direction:row;align-items:center;flex-wrap:nowrap}.rx-bot-doctor .rx-bot-doctor-body[data-v-731df2ea]{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:8px;min-height:0}.rx-bot-doctor .rx-bot-doctor-name[data-v-731df2ea]{font-size:13px;color:#1f1f1f;line-height:1.2;white-space:nowrap}.rx-bot-doctor .rx-bot-sign-img[data-v-731df2ea]{flex-shrink:0;max-height:40px;max-width:110px;-o-object-fit:contain;object-fit:contain}.rx-bot-meta[data-v-731df2ea]{flex-wrap:nowrap}.rx-bot-meta .rx-bot-meta-key[data-v-731df2ea]{color:#1f1f1f;margin-right:6px;white-space:nowrap;flex-shrink:0;line-height:1.4}.rx-bot-meta .rx-bot-meta-val[data-v-731df2ea]{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;line-height:2.5}.rx-fee[data-v-731df2ea]{font-size:13px;line-height:1.4;padding:8px 10px}.rx-fee .rx-fee-key[data-v-731df2ea]{color:#1f1f1f;margin-right:6px;white-space:nowrap}.rx-fee .rx-fee-val[data-v-731df2ea]{font-variant-numeric:tabular-nums;white-space:nowrap}.rx-fee-total[data-v-731df2ea]{font-weight:700;background:#fafafa}.rx-fee-total .rx-fee-val[data-v-731df2ea]{font-weight:700}.rx-audit[data-v-731df2ea]{margin:12px auto 0;max-width:210mm;padding:8px 12px;background:#fafafa;border:1px dashed #d4d4d4;color:#6b7280;font-size:12px;line-height:1.6;border-radius:4px}.audit-stamp[data-v-731df2ea]{position:absolute;top:18px;right:-14px;width:72px;height:72px;border:3px solid currentColor;border-radius:50%;display:flex;align-items:center;justify-content:center;transform:rotate(20deg);opacity:.8;pointer-events:none;z-index:10;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-weight:700;font-size:13px;letter-spacing:1px;box-shadow:inset 0 0 0 1px #ffffff80}.audit-stamp[data-v-731df2ea]:after{content:"";position:absolute;top:4px;left:4px;right:4px;bottom:4px;border:1px double currentColor;border-radius:50%;opacity:.6}.audit-stamp .stamp-inner[data-v-731df2ea]{text-align:center;line-height:1.1}.stamp-pass[data-v-731df2ea]{color:var(--el-color-success)}.stamp-reject[data-v-731df2ea]{color:var(--el-color-danger)}.create-order-dialog[data-v-731df2ea] .el-dialog__header{padding:20px 24px 12px;margin-right:0}.create-order-dialog[data-v-731df2ea] .el-dialog__title{font-size:18px;font-weight:600;letter-spacing:.02em}.create-order-dialog[data-v-731df2ea] .el-dialog__body{padding:8px 24px 20px;max-height:calc(100vh - 200px);overflow:hidden}.create-order-dialog[data-v-731df2ea] .el-dialog__footer{padding:16px 24px 20px;border-top:1px solid var(--el-border-color-lighter);background:var(--el-fill-color-blank)}.create-order-dialog__inner[data-v-731df2ea]{display:flex;flex-direction:column;gap:0}.create-order-rx-card[data-v-731df2ea]{border-radius:10px;border:1px solid var(--el-color-primary-light-5);background:linear-gradient(135deg,var(--el-color-primary-light-9) 0%,var(--el-fill-color-blank) 100%);padding:16px 18px;margin-bottom:20px;box-shadow:0 1px 2px #0000000a}.create-order-rx-card__head[data-v-731df2ea]{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin-bottom:10px}.create-order-rx-card__badge[data-v-731df2ea]{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;color:#fff;background:var(--el-color-primary);letter-spacing:.04em}.create-order-rx-card__meta[data-v-731df2ea]{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:14px;color:var(--el-text-color-regular)}.create-order-rx-card__id[data-v-731df2ea]{font-weight:600;color:var(--el-text-color-primary)}.create-order-rx-card__sn[data-v-731df2ea]{padding:2px 8px;border-radius:4px;background:var(--el-fill-color);font-size:13px;color:var(--el-text-color-secondary)}.create-order-rx-card__patient[data-v-731df2ea]{font-weight:500;color:var(--el-text-color-primary)}.create-order-rx-card__herbs[data-v-731df2ea]{font-size:13px;line-height:1.55;color:var(--el-text-color-secondary);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;cursor:default;padding-top:2px}.create-order-steps[data-v-731df2ea]{margin-bottom:8px;padding:8px 12px 4px}.create-order-steps[data-v-731df2ea] .el-step__title{font-size:14px;font-weight:500;line-height:1.4}.create-order-steps[data-v-731df2ea] .el-step__description{font-size:12px;margin-top:4px;line-height:1.35;padding-right:6px}.create-order-steps[data-v-731df2ea] .el-step__head{padding-right:8px}.create-order-steps[data-v-731df2ea] .el-step.is-horizontal .el-step__line{top:14px}.create-order-step-lead[data-v-731df2ea]{margin:0 0 20px;padding:12px 16px;font-size:13px;line-height:1.6;color:var(--el-text-color-secondary);background:var(--el-fill-color-light);border-radius:8px;border-left:3px solid var(--el-color-primary-light-5)}.create-order-step-panel[data-v-731df2ea]{max-height:min(56vh,480px);overflow-y:auto;overflow-x:hidden;padding:4px 8px 12px 4px;margin-right:-4px}.create-order-step-panel__row-after-bar[data-v-731df2ea]{margin-top:20px}.create-order-unit-suffix[data-v-731df2ea]{flex-shrink:0;font-size:13px;color:var(--el-text-color-secondary);padding-left:4px}.create-order-footer[data-v-731df2ea]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;width:100%}.create-order-footer__hint[data-v-731df2ea]{flex:1;min-width:200px;display:flex;flex-direction:column;gap:6px;font-size:13px;line-height:1.5;color:var(--el-text-color-secondary)}.create-order-footer__step[data-v-731df2ea]{color:var(--el-text-color-placeholder)}.create-order-footer__warn[data-v-731df2ea]{color:var(--el-color-warning);font-weight:500}.create-order-footer__actions[data-v-731df2ea]{flex-shrink:0;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.create-order-deposit-bar[data-v-731df2ea]{display:flex;align-items:stretch;border-radius:10px;border:1px solid var(--el-border-color-lighter);overflow:hidden;font-size:13px;box-shadow:0 1px 2px #0000000a}.create-order-deposit-bar__cell[data-v-731df2ea]{flex:1;padding:16px 20px;display:flex;flex-direction:column;gap:6px;background:var(--el-fill-color-light)}.create-order-deposit-bar__cell strong[data-v-731df2ea]{font-size:20px;font-weight:600;color:var(--el-text-color-primary);letter-spacing:.02em}.create-order-deposit-bar__label[data-v-731df2ea]{font-size:13px;color:var(--el-text-color-secondary)}.create-order-deposit-bar__sub[data-v-731df2ea]{font-size:12px;color:var(--el-text-color-placeholder)}.create-order-deposit-bar__sep[data-v-731df2ea]{width:1px;background:var(--el-border-color-lighter);flex-shrink:0}.create-order-deposit-bar.is-ok .create-order-deposit-bar__cell:last-child strong[data-v-731df2ea]{color:var(--el-color-success)}.create-order-deposit-bar.is-warn .create-order-deposit-bar__cell:last-child strong[data-v-731df2ea]{color:var(--el-color-danger)}.create-order-pay-hint[data-v-731df2ea]{font-size:12px;line-height:1.55;margin-top:8px;color:var(--el-text-color-secondary)}.create-order-form[data-v-731df2ea] .el-form-item{margin-bottom:20px}.create-order-form[data-v-731df2ea] .el-form-item__label{font-size:14px;padding-right:12px}.create-order-form[data-v-731df2ea] .el-input__inner,.create-order-form[data-v-731df2ea] .el-textarea__inner{font-size:14px}.create-order-form-item--inline-num[data-v-731df2ea] .el-form-item__content{line-height:normal}.po-diagnosis-creator-dept-breadcrumb[data-v-731df2ea] .el-breadcrumb__item{display:inline-flex;float:none}.po-diagnosis-creator-dept-breadcrumb[data-v-731df2ea] .el-breadcrumb__separator{margin:0 2px 0 4px}.prescription-order-h5.po-h5-app[data-v-731df2ea]{--po-h5-ink: #0f172a;--po-h5-muted: #64748b;--po-h5-surface: rgba(255, 255, 255, .82);--po-h5-elevated: 0 14px 44px -18px rgba(15, 23, 42, .22), 0 4px 14px -6px rgba(15, 23, 42, .08);--po-h5-pill-idle: rgba(255, 255, 255, .72);box-sizing:border-box;min-height:100vh;min-height:100dvh;padding:max(10px,env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) max(28px,env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px));background:radial-gradient(100% 70% at 0% 0%,color-mix(in srgb,var(--el-color-primary) 16%,transparent),transparent 55%),radial-gradient(80% 50% at 100% 8%,rgba(45,212,191,.11),transparent 52%),radial-gradient(60% 40% at 50% 100%,rgba(251,191,36,.06),transparent 45%),linear-gradient(180deg,#f1f5f9,#e2e8f0 55%,#f8fafc);font-size:15px;line-height:1.5;color:var(--po-h5-ink);-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain}.po-h5-hero[data-v-731df2ea]{margin-bottom:14px;padding:4px 2px 2px}.po-h5-hero__title[data-v-731df2ea]{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.03em;line-height:1.2;color:var(--po-h5-ink)}.po-h5-hero__sub[data-v-731df2ea]{margin:6px 0 0;font-size:.8125rem;line-height:1.45;color:var(--po-h5-muted);max-width:42ch}.prescription-order-h5.po-h5-app .po-h5-surface[data-v-731df2ea]{border-radius:20px!important;border:1px solid rgba(255,255,255,.55)!important;background:var(--po-h5-surface)!important;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:var(--po-h5-elevated)!important}.prescription-order-h5.po-h5-app .po-h5-surface--list[data-v-731df2ea] .el-card__body{padding-top:14px!important}.prescription-order-h5.po-h5-app .po-h5-list-head[data-v-731df2ea]{margin-bottom:4px;padding-bottom:12px;border-bottom:1px solid rgba(15,23,42,.06)}.prescription-order-h5.po-h5-app[data-v-731df2ea] .el-card .flex.items-center.gap-2.flex-wrap>span:first-child{background:color-mix(in srgb,#fff 94%,var(--el-color-primary-light-9))!important;-webkit-backdrop-filter:none;backdrop-filter:none}.prescription-order-h5.po-h5-app .po-h5-surface--chips[data-v-731df2ea]{backdrop-filter:none;-webkit-backdrop-filter:none;background:color-mix(in srgb,#fff 94%,var(--el-color-primary-light-9))!important}.prescription-order-h5.po-h5-app[data-v-731df2ea] .el-card .flex.items-center.gap-2.flex-wrap>div{border-radius:9999px!important;padding:10px 16px!important;font-size:13px!important;font-weight:600;border:1px solid rgba(15,23,42,.1)!important;background:#ffffffeb!important;color:#334155!important;box-shadow:0 1px 3px #0f172a0f;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.prescription-order-h5.po-h5-app[data-v-731df2ea] .el-card .flex.items-center.gap-2.flex-wrap>div span{color:inherit!important}.prescription-order-h5.po-h5-app[data-v-731df2ea] .el-card .flex.items-center.gap-2.flex-wrap>div.bg-primary{border-color:transparent!important;background:var(--el-color-primary)!important;color:#fff!important;box-shadow:0 10px 26px -14px color-mix(in srgb,var(--el-color-primary) 62%,transparent)!important}.prescription-order-h5.po-h5-app .po-filter-toggle[data-v-731df2ea]{border-radius:16px!important;border:1px solid rgba(255,255,255,.55)!important;background:linear-gradient(140deg,color-mix(in srgb,#fff 78%,var(--el-color-primary-light-9)),color-mix(in srgb,var(--el-color-primary-light-9) 40%,#fff))!important;box-shadow:0 10px 28px -18px #0f172a38}.prescription-order-h5.po-h5-app .po-table-title[data-v-731df2ea]{font-size:1.125rem!important;font-weight:700!important;letter-spacing:-.02em;color:var(--po-h5-ink)!important}.prescription-order-h5.po-h5-app .po-table-hint[data-v-731df2ea]{font-size:13px!important;color:var(--po-h5-muted)!important}.prescription-order-h5.po-h5-app .po-focus-board__item[data-v-731df2ea]{flex-direction:column;align-items:flex-start;justify-content:center;min-height:4.5rem;padding:12px 14px!important;border-radius:18px!important;border:none!important;box-shadow:0 10px 28px -18px #0f172a40;gap:6px}.prescription-order-h5.po-h5-app .po-focus-board__label[data-v-731df2ea]{font-size:11px;font-weight:600;letter-spacing:.03em;color:var(--po-h5-muted)}.prescription-order-h5.po-h5-app .po-focus-board__value[data-v-731df2ea]{font-size:1.35rem}.prescription-order-h5.po-h5-app .po-focus-board__item.is-active[data-v-731df2ea]{box-shadow:0 0 0 2px color-mix(in srgb,var(--el-color-primary) 35%,transparent) inset,0 12px 32px -16px #0f172a47}.prescription-order-h5.po-h5-app .po-card[data-v-731df2ea]{border-radius:22px!important;border:1px solid rgba(255,255,255,.55)!important;background:color-mix(in srgb,#fff 92%,transparent)!important;backdrop-filter:blur(10px) saturate(1.15);-webkit-backdrop-filter:blur(10px) saturate(1.15);box-shadow:0 20px 44px -34px #0f172a73!important;padding:16px!important}.prescription-order-h5.po-h5-app .po-card__order-no-main[data-v-731df2ea]{font-size:15px!important}.prescription-order-h5.po-h5-app .po-card__label[data-v-731df2ea]{font-size:12px!important;color:var(--po-h5-muted)!important}.prescription-order-h5.po-h5-app .po-card__value[data-v-731df2ea]{font-size:15px!important}.prescription-order-h5.po-h5-app .po-stat-surface[data-v-731df2ea]{border-radius:18px!important;border:1px solid rgba(255,255,255,.45)!important;box-shadow:0 12px 36px -22px #0f172a47!important}.prescription-order-h5.po-h5-app .po-card__amount[data-v-731df2ea]{font-size:1.05rem!important}@media (prefers-reduced-motion: reduce){.prescription-order-h5.po-h5-app .po-card[data-v-731df2ea]:active{transform:none!important}.prescription-order-h5.po-h5-app[data-v-731df2ea] .el-card .flex.items-center.gap-2.flex-wrap>div{transition:none}}.prescription-order-h5[data-v-731df2ea] .el-card .flex.flex-col.gap-3{gap:10px}.prescription-order-h5[data-v-731df2ea] .el-card .flex.items-center.gap-2.flex-wrap{flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.prescription-order-h5[data-v-731df2ea] .el-card .flex.items-center.gap-2.flex-wrap::-webkit-scrollbar{display:none}.prescription-order-h5[data-v-731df2ea] .el-card .flex.items-center.gap-2.flex-wrap>span:first-child{position:sticky;left:0;background:#fff;z-index:2;padding-right:4px}.prescription-order-h5[data-v-731df2ea] .el-card .flex.items-center.gap-2.flex-wrap>div{flex-shrink:0;padding:6px 12px!important;font-size:12px!important}.prescription-order-h5[data-v-731df2ea] .el-card{border-radius:12px}.prescription-order-h5[data-v-731df2ea] .el-card__body{padding:12px!important}.prescription-order-h5 .po-list-stats[data-v-731df2ea]{grid-template-columns:1fr!important;gap:10px!important;margin-bottom:12px!important}.prescription-order-h5 .po-stat-surface[data-v-731df2ea]{padding:12px 14px!important}.prescription-order-h5 .po-stat-surface .text-2xl[data-v-731df2ea],.prescription-order-h5 .po-stat-surface .sm\:text-\[28px\][data-v-731df2ea]{font-size:22px!important}.prescription-order-h5 .ls-form[data-v-731df2ea]{display:flex;flex-direction:column;gap:10px}.prescription-order-h5[data-v-731df2ea] .ls-form .el-form-item{width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important}.prescription-order-h5[data-v-731df2ea] .ls-form .el-form-item__label{width:72px!important;font-size:12px!important;color:#6b7280;padding-right:6px!important}.prescription-order-h5[data-v-731df2ea] .ls-form .el-form-item__content{flex:1 1 0!important;min-width:0!important}.prescription-order-h5[data-v-731df2ea] .ls-form .el-form-item:last-child .el-form-item__content{justify-content:flex-end;gap:8px}.prescription-order-h5 .po-table-toolbar[data-v-731df2ea]{gap:10px;margin-bottom:10px}.prescription-order-h5 .po-table-title[data-v-731df2ea]{font-size:15px}.prescription-order-h5 .po-focus-board[data-v-731df2ea]{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.prescription-order-h5 .po-focus-board__item[data-v-731df2ea]{padding:8px 10px}.prescription-order-h5 .po-focus-board__value[data-v-731df2ea]{font-size:16px}.prescription-order-h5 .po-card-list[data-v-731df2ea]{display:flex;flex-direction:column;gap:12px}.prescription-order-h5 .po-card[data-v-731df2ea]{background:#fff;border-radius:12px;border:1px solid #edf0f4;padding:12px;box-shadow:0 2px 6px -3px #0f172a14;position:relative;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;cursor:pointer;overflow:hidden;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.prescription-order-h5 .po-card[data-v-731df2ea]:active{transform:scale(.995);box-shadow:0 4px 10px -4px #0f172a1f}.prescription-order-h5 .po-card[data-v-731df2ea]:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.prescription-order-h5 .po-card--focus[data-v-731df2ea]{border-color:color-mix(in srgb,var(--el-color-warning) 40%,#fff);background:linear-gradient(135deg,color-mix(in srgb,var(--el-color-warning-light-9) 50%,#fff),#fff 60%)}.prescription-order-h5 .po-card--risk[data-v-731df2ea]{border-color:color-mix(in srgb,var(--el-color-danger) 44%,#fff);background:linear-gradient(135deg,color-mix(in srgb,var(--el-color-danger-light-9) 55%,#fff),#fff 60%)}.prescription-order-h5 .po-card__head[data-v-731df2ea]{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px dashed #edf0f4}.prescription-order-h5 .po-card__order-no-main[data-v-731df2ea]{font-size:14px;font-weight:600;color:#0f172a;word-break:break-all;line-height:1.35}.prescription-order-h5 .po-card__tags[data-v-731df2ea]{display:flex;align-items:center;gap:6px;flex-shrink:0}.prescription-order-h5 .po-card__id[data-v-731df2ea]{font-size:11px;color:#9ca3af}.prescription-order-h5 .po-card__alert[data-v-731df2ea]{display:flex;align-items:center;gap:6px;background:color-mix(in srgb,var(--el-color-danger-light-9) 70%,#fff);color:#dc2626;font-size:12px;font-weight:600;border-radius:8px;padding:6px 10px;margin-bottom:8px}.prescription-order-h5 .po-card__row[data-v-731df2ea]{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px}.prescription-order-h5 .po-card__field[data-v-731df2ea]{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 0}.prescription-order-h5 .po-card__field--right[data-v-731df2ea]{text-align:right;align-items:flex-end}.prescription-order-h5 .po-card__label[data-v-731df2ea]{font-size:11px;color:#9ca3af;line-height:1.2}.prescription-order-h5 .po-card__value[data-v-731df2ea]{font-size:13px;color:#111827;font-weight:500;word-break:break-all;line-height:1.35}.prescription-order-h5 .po-card__amount[data-v-731df2ea]{color:#ef4444!important;font-size:15px!important;font-weight:700!important}.prescription-order-h5 .po-card__time[data-v-731df2ea]{font-size:12px!important;color:#6b7280!important;font-weight:400!important}.prescription-order-h5 .po-card__tags-row[data-v-731df2ea]{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding-top:8px;border-top:1px dashed #edf0f4}.prescription-order-h5 .po-card__meta[data-v-731df2ea]{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px;font-size:11px;color:#6b7280}.prescription-order-h5 .po-card__meta-time[data-v-731df2ea]{margin-left:auto}.prescription-order-h5 .po-card__actions[data-v-731df2ea]{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid #f1f3f6}.prescription-order-h5 .po-card__actions[data-v-731df2ea] .el-button{margin-left:0;font-size:13px;padding:8px 14px;min-height:36px;border-radius:8px;touch-action:manipulation}.prescription-order-h5 .po-card__actions[data-v-731df2ea] .el-button:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.prescription-order-h5 .flex.justify-end.mt-4[data-v-731df2ea]{justify-content:center!important}.prescription-order-h5[data-v-731df2ea] .el-pagination{--el-pagination-button-height: 30px;--el-pagination-button-width: 30px;font-size:12px;flex-wrap:wrap;justify-content:center}.prescription-order-h5[data-v-731df2ea] .el-pagination .el-pagination__sizes{display:none}.po-detail-drawer--h5[data-v-731df2ea] .el-drawer__header{display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;gap:6px!important;padding:10px 10px 10px 14px!important;margin-bottom:0!important;border-bottom:1px solid #edf0f4}.po-detail-drawer--h5[data-v-731df2ea] .el-drawer__header .po-detail-drawer-head{flex:1 1 auto;min-width:0;max-width:100%}.po-detail-drawer--h5[data-v-731df2ea] .el-drawer__header .el-drawer__close-btn{flex-shrink:0;margin-top:2px}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-drawer-head{flex-direction:column;align-items:stretch!important;gap:10px}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-drawer-actions{margin-right:0!important;flex-wrap:wrap;gap:6px;width:100%}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-drawer-head .el-button{padding:6px 10px;font-size:12px}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-drawer-title{font-size:16px!important}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-body{padding:12px!important}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-body .grid.grid-cols-1.md\:grid-cols-2,.po-detail-drawer--h5[data-v-731df2ea] .po-detail-body .grid.grid-cols-1.lg\:grid-cols-2{grid-template-columns:1fr!important;gap:12px!important}.po-detail-drawer--h5[data-v-731df2ea] .stat-card .stat-value{font-size:16px!important}.po-detail-drawer--h5[data-v-731df2ea] .stat-card .stat-title{font-size:11px!important}.po-detail-drawer--h5[data-v-731df2ea] .stat-card .el-card__body{padding:10px!important}.po-detail-drawer--h5[data-v-731df2ea] .po-workflow-steps.el-steps--vertical{padding-left:6px}.po-detail-drawer--h5[data-v-731df2ea] .po-workflow-steps .el-step__title{font-size:14px!important;font-weight:500;line-height:1.45!important;word-break:break-word}.po-detail-drawer--h5[data-v-731df2ea] .po-workflow-steps .el-step__description{font-size:12px!important;line-height:1.45!important;margin-top:4px!important;word-break:break-word;white-space:normal}.po-detail-drawer--h5[data-v-731df2ea] .po-workflow-steps .el-step__main{min-height:auto;padding-bottom:8px}.po-detail-drawer--h5[data-v-731df2ea] .po-workflow-steps .el-step:last-child .el-step__main{padding-bottom:0}.po-detail-drawer--h5[data-v-731df2ea] .el-descriptions{font-size:12px}.po-detail-drawer--h5[data-v-731df2ea] .el-descriptions__label{width:92px!important;font-size:12px!important}.po-detail-drawer--h5[data-v-731df2ea] .el-descriptions__cell{padding:8px 10px!important}.po-detail-drawer--h5[data-v-731df2ea] .po-biz-diagnosis-id__btn{min-height:44px;padding:10px 18px!important;font-size:14px!important;font-weight:600}.po-detail-drawer--h5[data-v-731df2ea] .po-biz-diagnosis-id__btn:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.po-detail-drawer--h5[data-v-731df2ea] .audit-stamp{transform:scale(.72) rotate(-12deg)!important}.po-detail-drawer--h5[data-v-731df2ea] .el-table{font-size:12px}.po-h5-dialog[data-v-731df2ea] .el-dialog__header{padding:12px 14px!important;margin-right:0!important}.po-h5-dialog[data-v-731df2ea] .el-dialog__title{font-size:15px!important}.po-h5-dialog[data-v-731df2ea] .el-dialog__body{padding:14px!important}.po-h5-dialog[data-v-731df2ea] .el-dialog__footer{padding:10px 14px!important}.po-h5-dialog[data-v-731df2ea] .el-form-item__label{font-size:12px!important}.po-h5-dialog[data-v-731df2ea] .el-button{font-size:13px}.create-order-dialog--h5[data-v-731df2ea] .el-dialog{margin:2vh auto!important;max-width:96vw}.create-order-dialog--h5[data-v-731df2ea] .el-dialog__body{padding:10px 12px!important;max-height:82vh;overflow-y:auto}.create-order-dialog--h5[data-v-731df2ea] .create-order-rx-card__head{flex-wrap:wrap;gap:6px}.create-order-dialog--h5[data-v-731df2ea] .create-order-rx-card__meta{flex-wrap:wrap;font-size:12px}.create-order-dialog--h5[data-v-731df2ea] .el-steps.is-simple{padding:0 4px!important}.create-order-dialog--h5[data-v-731df2ea] .el-form--inline .el-form-item{width:100%;margin-right:0!important}.create-order-dialog--h5[data-v-731df2ea] .el-col{flex:0 0 100%!important;max-width:100%!important}.po-h5-drawer[data-v-731df2ea] .el-drawer__header{padding:10px 14px!important;margin-bottom:0!important;border-bottom:1px solid #edf0f4}.po-h5-drawer[data-v-731df2ea] .el-drawer__title{font-size:15px}.po-h5-drawer[data-v-731df2ea] .el-drawer__body{padding:12px!important;overflow-y:auto}.po-h5-drawer[data-v-731df2ea] .el-table,.po-h5-drawer[data-v-731df2ea] .el-descriptions{font-size:12px}.po-h5-drawer[data-v-731df2ea] .el-descriptions__label{width:84px!important}.prescription-order-h5 .po-filter-toggle[data-v-731df2ea]{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;min-height:44px;background:linear-gradient(135deg,color-mix(in srgb,var(--el-color-primary-light-9) 60%,#fff),#fff);border:1px solid color-mix(in srgb,var(--el-color-primary) 18%,#fff);border-radius:10px;margin-bottom:12px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.prescription-order-h5 .po-filter-toggle[data-v-731df2ea]:active{transform:scale(.99);background:linear-gradient(135deg,color-mix(in srgb,var(--el-color-primary-light-9) 80%,#fff),#fff)}.prescription-order-h5 .po-filter-toggle[data-v-731df2ea]:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.prescription-order-h5 .po-filter-toggle__label[data-v-731df2ea]{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--el-color-primary)}.prescription-order-h5 .po-filter-toggle__arrow[data-v-731df2ea]{color:var(--el-color-primary);transition:transform .25s ease}.prescription-order-h5 .po-filter-toggle__arrow.is-open[data-v-731df2ea]{transform:rotate(180deg)}.prescription-order-h5[data-v-731df2ea] .ls-form .el-form-item:last-child{width:100%}.prescription-order-h5[data-v-731df2ea] .ls-form .el-form-item:last-child .el-form-item__content{display:flex;gap:8px;width:100%}.prescription-order-h5[data-v-731df2ea] .ls-form .el-form-item:last-child .el-form-item__content>.el-button{flex:1 1 0;margin:0!important}.prescription-order-h5 .po-table-toolbar[data-v-731df2ea]{flex-direction:column;align-items:stretch!important}.prescription-order-h5 .po-table-toolbar__title-wrap[data-v-731df2ea]{justify-content:space-between}.prescription-order-h5[data-v-731df2ea] .po-workflow-steps-wrap{padding:10px!important;margin-bottom:12px!important}.prescription-order-h5[data-v-731df2ea] .po-workflow-steps .el-step__title{font-size:13px!important;line-height:1.4!important}.prescription-order-h5[data-v-731df2ea] .po-workflow-steps .el-step__description{font-size:11px!important;padding-right:0!important;margin-top:4px!important}.prescription-order-h5[data-v-731df2ea] .po-workflow-steps .el-step__head{width:auto!important}.prescription-order-h5[data-v-731df2ea] .po-detail-body .el-row{margin-left:-4px!important;margin-right:-4px!important}.prescription-order-h5[data-v-731df2ea] .po-detail-body .el-row .el-col{padding-left:4px!important;padding-right:4px!important;margin-bottom:8px}.prescription-order-h5[data-v-731df2ea] .po-detail-drawer--h5 .el-drawer__close-btn{font-size:20px!important;padding:8px!important}.prescription-order-h5[data-v-731df2ea] .el-card .flex.items-center.gap-2.flex-wrap>div{min-height:36px;display:flex!important;align-items:center;gap:4px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.prescription-order-h5[data-v-731df2ea] .el-card .flex.items-center.gap-2.flex-wrap>div:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.prescription-order-h5 .po-focus-board__item[data-v-731df2ea]{min-height:56px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.prescription-order-h5 .po-focus-board__item[data-v-731df2ea]:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.prescription-order-h5 .po-card__amount[data-v-731df2ea],.prescription-order-h5 .po-card__id[data-v-731df2ea],.prescription-order-h5[data-v-731df2ea] .tabular-nums{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.prescription-order-h5[data-v-731df2ea] .el-dropdown-menu__item{min-height:40px;line-height:40px;font-size:13px}.prescription-order-h5[data-v-731df2ea] .el-input__wrapper,.prescription-order-h5[data-v-731df2ea] .el-select__wrapper,.prescription-order-h5[data-v-731df2ea] .el-date-editor.el-input{min-height:36px}@media (prefers-reduced-motion: reduce){.prescription-order-h5[data-v-731df2ea] *,.prescription-order-h5[data-v-731df2ea] *:before,.prescription-order-h5[data-v-731df2ea] *:after,.po-detail-drawer--h5[data-v-731df2ea] *,.po-detail-drawer--h5[data-v-731df2ea] *:before,.po-detail-drawer--h5[data-v-731df2ea] *:after,.po-h5-dialog[data-v-731df2ea] *,.po-h5-dialog[data-v-731df2ea] *:before,.po-h5-dialog[data-v-731df2ea] *:after,.po-h5-drawer[data-v-731df2ea] *,.po-h5-drawer[data-v-731df2ea] *:before,.po-h5-drawer[data-v-731df2ea] *:after,.create-order-dialog--h5[data-v-731df2ea] *,.create-order-dialog--h5[data-v-731df2ea] *:before,.create-order-dialog--h5[data-v-731df2ea] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.prescription-order-h5 .po-card[data-v-731df2ea],.prescription-order-h5 .po-filter-toggle[data-v-731df2ea],.prescription-order-h5 .po-focus-board__item[data-v-731df2ea],.po-detail-drawer--h5 .po-card[data-v-731df2ea],.po-detail-drawer--h5 .po-filter-toggle[data-v-731df2ea],.po-detail-drawer--h5 .po-focus-board__item[data-v-731df2ea],.po-h5-dialog .po-card[data-v-731df2ea],.po-h5-dialog .po-filter-toggle[data-v-731df2ea],.po-h5-dialog .po-focus-board__item[data-v-731df2ea],.po-h5-drawer .po-card[data-v-731df2ea],.po-h5-drawer .po-filter-toggle[data-v-731df2ea],.po-h5-drawer .po-focus-board__item[data-v-731df2ea],.create-order-dialog--h5 .po-card[data-v-731df2ea],.create-order-dialog--h5 .po-filter-toggle[data-v-731df2ea],.create-order-dialog--h5 .po-focus-board__item[data-v-731df2ea]{transition:none!important}.prescription-order-h5 .po-card[data-v-731df2ea]:active,.prescription-order-h5 .po-filter-toggle[data-v-731df2ea]:active,.po-detail-drawer--h5 .po-card[data-v-731df2ea]:active,.po-detail-drawer--h5 .po-filter-toggle[data-v-731df2ea]:active,.po-h5-dialog .po-card[data-v-731df2ea]:active,.po-h5-dialog .po-filter-toggle[data-v-731df2ea]:active,.po-h5-drawer .po-card[data-v-731df2ea]:active,.po-h5-drawer .po-filter-toggle[data-v-731df2ea]:active,.create-order-dialog--h5 .po-card[data-v-731df2ea]:active,.create-order-dialog--h5 .po-filter-toggle[data-v-731df2ea]:active{transform:none!important}}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-body{padding:10px!important}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-body .px-6,.po-detail-drawer--h5[data-v-731df2ea] .po-detail-body .px-5,.po-detail-drawer--h5[data-v-731df2ea] .po-detail-body .py-4,.po-detail-drawer--h5[data-v-731df2ea] .po-detail-body .pb-6{padding-left:10px!important;padding-right:10px!important}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-drawer-head{flex-direction:column;align-items:stretch!important;gap:8px;width:100%}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-drawer-head>.po-detail-drawer-head-main{flex-wrap:wrap;gap:6px;min-width:0}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-drawer-head-main .ml-2,.po-detail-drawer--h5[data-v-731df2ea] .po-detail-drawer-head-main .ml-3{margin-left:0!important}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-drawer-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px!important;margin-right:0!important;width:100%}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-drawer-actions .el-button{margin-left:0!important;width:100%;min-height:36px;font-size:12px!important;padding:6px 8px!important}.po-detail-drawer--h5[data-v-731df2ea] .stat-card{padding:0!important}.po-detail-drawer--h5[data-v-731df2ea] .stat-card .el-card__body{padding:8px 10px!important}.po-detail-drawer--h5[data-v-731df2ea] .stat-card .stat-title{font-size:10px!important;margin-bottom:2px!important}.po-detail-drawer--h5[data-v-731df2ea] .stat-card .stat-value{font-size:15px!important;line-height:1.2!important}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-body>.el-row{margin-left:-4px!important;margin-right:-4px!important}.po-detail-drawer--h5[data-v-731df2ea] .po-detail-body>.el-row .el-col{padding-left:4px!important;padding-right:4px!important;margin-bottom:6px}.po-detail-drawer--h5[data-v-731df2ea] .el-descriptions__body{width:100%}.po-detail-drawer--h5[data-v-731df2ea] .el-descriptions__table{table-layout:fixed;width:100%}.po-detail-drawer--h5[data-v-731df2ea] .el-descriptions__cell{padding:8px 10px!important;font-size:12px!important;word-break:break-all}.po-detail-drawer--h5[data-v-731df2ea] .el-descriptions__label{width:84px!important;min-width:84px!important;font-size:12px!important;color:#6b7280!important}.po-detail-drawer--h5[data-v-731df2ea] .el-descriptions__content{font-size:12px!important}.po-detail-drawer--h5[data-v-731df2ea] .po-panel-rx .el-card__header{padding:10px 12px!important}.po-detail-drawer--h5[data-v-731df2ea] .po-panel-rx-header{writing-mode:horizontal-tb}.po-detail-drawer--h5[data-v-731df2ea] .po-panel-rx-header__title{word-break:break-word;max-width:100%}.po-detail-drawer--h5[data-v-731df2ea] .po-panel-rx-header .el-button.is-link{padding:2px 0!important;margin:0!important;height:auto!important;min-height:0!important}.po-detail-drawer--h5[data-v-731df2ea] .po-panel .el-card__header,.po-detail-drawer--h5[data-v-731df2ea] .po-panel .el-card__body{padding:10px 12px!important}.po-detail-drawer--h5[data-v-731df2ea] .po-panel .el-card__header .flex.items-center.gap-3,.po-detail-drawer--h5[data-v-731df2ea] .po-panel .el-card__header .flex.items-center.justify-between{flex-wrap:wrap;gap:6px!important}.po-detail-drawer--h5[data-v-731df2ea] .po-panel .el-card__header .font-medium.text-\[15px\]{font-size:14px!important}.po-detail-drawer--h5[data-v-731df2ea] .po-panel .el-card__header .el-button{padding:4px 8px!important;font-size:12px!important}.po-detail-drawer--h5[data-v-731df2ea] .po-workflow-steps-wrap{padding:10px!important;margin-bottom:12px!important}.po-detail-drawer--h5[data-v-731df2ea] .po-workflow-steps .el-step__title{font-size:13px!important;line-height:1.45!important;word-break:break-word}.po-detail-drawer--h5[data-v-731df2ea] .po-workflow-steps .el-step__description{font-size:12px!important;padding-right:0!important;margin-top:4px!important;white-space:normal;line-height:1.45!important;word-break:break-word}.po-detail-drawer--h5[data-v-731df2ea] .po-pay-table{font-size:11px}.po-detail-drawer--h5[data-v-731df2ea] .po-pay-table .el-table__cell{padding:4px 6px!important}.po-detail-drawer--h5 .po-logistics-toolbar__phone[data-v-731df2ea]{flex:1 1 160px;min-width:140px}.po-detail-drawer--h5 .po-logistics-toolbar__carrier[data-v-731df2ea]{flex:1 1 120px;min-width:110px}.po-detail-drawer--h5 .po-logistics-toolbar__btn[data-v-731df2ea]{flex:1 1 100%;width:100%;min-height:40px}.po-detail-drawer--h5 .po-logistics-toolbar__links[data-v-731df2ea]{border-top:1px dashed #edf0f4;margin-top:6px;padding-top:8px;justify-content:space-around}.po-detail-drawer--h5[data-v-731df2ea] .audit-stamp{transform:scale(.6) rotate(-12deg)!important;transform-origin:top right;top:6px!important;right:6px!important}.po-detail-drawer--h5[data-v-731df2ea] .el-timeline{padding-left:6px!important}.po-detail-drawer--h5[data-v-731df2ea] .el-timeline-item__content{font-size:12px;line-height:1.5}.po-detail-drawer--h5[data-v-731df2ea] .el-timeline-item__timestamp{font-size:11px!important}.po-detail-drawer--h5[data-v-731df2ea] .el-alert--error{padding:8px 10px!important}.po-detail-drawer--h5[data-v-731df2ea] .el-alert__title{font-size:13px!important}.po-detail-drawer--h5[data-v-731df2ea] .el-alert__content .text-sm{font-size:12px!important}.create-order-dialog--h5[data-v-731df2ea] .create-order-steps{flex-wrap:wrap;gap:4px}.create-order-dialog--h5[data-v-731df2ea] .create-order-steps .el-step__title{font-size:11px!important}.create-order-dialog--h5[data-v-731df2ea] .create-order-dialog__inner .el-row{margin-left:0!important;margin-right:0!important}.create-order-dialog--h5[data-v-731df2ea] .create-order-dialog__inner .el-col{flex:0 0 100%!important;max-width:100%!important;padding:0!important;margin-bottom:8px}.create-order-dialog--h5[data-v-731df2ea] .create-order-dialog__inner .el-form-item__label{font-size:12px!important}.create-order-dialog--h5[data-v-731df2ea] .el-dialog__footer .el-button{padding:10px 16px!important;font-size:13px!important} diff --git a/server/public/admin/assets/order_list_h5-lx3Qci6J.css b/server/public/admin/assets/order_list_h5-lx3Qci6J.css new file mode 100644 index 000000000..195975c3a --- /dev/null +++ b/server/public/admin/assets/order_list_h5-lx3Qci6J.css @@ -0,0 +1 @@ +@charset "UTF-8";.stats-filter-form[data-v-72fba941] .el-form-item{margin-bottom:0}.prescription-order-page[data-v-72fba941]{margin:0 auto}.po-page-title[data-v-72fba941]{margin:0 0 6px;font-size:20px;font-weight:600;color:var(--el-text-color-primary);letter-spacing:.02em}.po-page-desc[data-v-72fba941]{margin:0;font-size:13px;line-height:1.55;color:var(--el-text-color-secondary)}.po-filter-card[data-v-72fba941]{border-radius:8px}.po-filter-card[data-v-72fba941] .el-card__body{padding-bottom:12px}.po-list-stats[data-v-72fba941]{--po-stat-order-a: color-mix(in srgb, var(--el-color-primary) 12%, white);--po-stat-order-b: color-mix(in srgb, var(--el-color-primary) 5%, transparent);--po-stat-pay-a: color-mix(in srgb, #10b981 10%, white);--po-stat-pay-b: color-mix(in srgb, #10b981 4%, transparent)}.po-stat-surface[data-v-72fba941]{transition:box-shadow .2s ease,border-color .2s ease}.po-stat-surface[data-v-72fba941]:hover{box-shadow:0 10px 28px -12px #0f172a2e;border-color:color-mix(in srgb,var(--el-color-primary) 22%,var(--el-border-color))}.po-stat-surface--order[data-v-72fba941]{background:linear-gradient(135deg,var(--po-stat-order-a) 0%,#fff 48%,var(--po-stat-order-b) 100%)}.po-stat-surface--pay[data-v-72fba941]{background:linear-gradient(135deg,var(--po-stat-pay-a) 0%,#fff 48%,var(--po-stat-pay-b) 100%)}.po-stat-deco--o[data-v-72fba941]{background:radial-gradient(circle,color-mix(in srgb,var(--el-color-primary) 45%,transparent) 0%,transparent 70%)}.po-stat-deco--p[data-v-72fba941]{background:radial-gradient(circle,color-mix(in srgb,#10b981 40%,transparent) 0%,transparent 70%)}.stat-icon-wrap[data-v-72fba941]{box-shadow:inset 0 1px #ffffffb3}.po-table-card[data-v-72fba941]{border-radius:8px}.po-table-card[data-v-72fba941] .el-card__body{padding-top:16px}.po-table-toolbar[data-v-72fba941]{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}.po-table-toolbar__title-wrap[data-v-72fba941]{display:flex;align-items:baseline;gap:10px}.po-table-title[data-v-72fba941]{font-size:16px;font-weight:600}.po-focus-board[data-v-72fba941]{display:grid;grid-template-columns:repeat(4,minmax(106px,1fr));gap:8px;width:min(100%,520px)}.po-focus-board__item[data-v-72fba941]{display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:8px;border:1px solid var(--el-border-color-lighter);background:#fff;padding:7px 10px;cursor:pointer;transition:all .18s ease}.po-focus-board__item[data-v-72fba941]:hover{transform:translateY(-1px);box-shadow:0 8px 20px -14px #0f172a61}.po-focus-board__item.is-active[data-v-72fba941]{box-shadow:0 0 0 2px color-mix(in srgb,var(--el-color-primary) 24%,transparent) inset;transform:translateY(-1px)}.po-focus-board__label[data-v-72fba941]{font-size:12px;color:var(--el-text-color-secondary)}.po-focus-board__value[data-v-72fba941]{font-size:18px;line-height:1;font-weight:700;color:var(--el-text-color-primary);font-variant-numeric:tabular-nums}.po-focus-board__item.is-pending-rx[data-v-72fba941]{border-color:color-mix(in srgb,var(--el-color-warning) 34%,#fff);background:color-mix(in srgb,var(--el-color-warning-light-9) 66%,#fff)}.po-focus-board__item.is-pending-pay[data-v-72fba941]{border-color:color-mix(in srgb,#2563eb 30%,#fff);background:color-mix(in srgb,#dbeafe 62%,#fff)}.po-focus-board__item.is-pending-ship[data-v-72fba941]{border-color:color-mix(in srgb,var(--el-color-primary) 30%,#fff);background:color-mix(in srgb,var(--el-color-primary-light-9) 64%,#fff)}.po-focus-board__item.is-risk[data-v-72fba941]{border-color:color-mix(in srgb,var(--el-color-danger) 34%,#fff);background:color-mix(in srgb,var(--el-color-danger-light-9) 66%,#fff)}@media (max-width: 1024px){.po-focus-board[data-v-72fba941]{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}}.po-data-table[data-v-72fba941] th.el-table__cell{font-weight:600;background:var(--el-fill-color-light)!important}.po-order-no-cell[data-v-72fba941]{display:flex;flex-direction:column;gap:4px}.po-order-no-main[data-v-72fba941]{font-weight:600;color:var(--el-text-color-primary);line-height:1.35}.po-order-no-sub[data-v-72fba941]{display:inline-flex;align-items:center;gap:6px;font-size:12px}.po-status-tag[data-v-72fba941]{font-weight:600}.po-status-tag.is-focus[data-v-72fba941]{box-shadow:0 0 0 1px color-mix(in srgb,var(--el-color-warning) 24%,transparent) inset}.po-status-tag.is-risk[data-v-72fba941]{box-shadow:0 0 0 1px color-mix(in srgb,var(--el-color-danger) 30%,transparent) inset}.po-data-table[data-v-72fba941] .el-table__row.po-row-focus>td.el-table__cell{background:color-mix(in srgb,var(--el-color-warning-light-9) 38%,#fff)!important}.po-data-table[data-v-72fba941] .el-table__row.po-row-risk>td.el-table__cell{background:color-mix(in srgb,var(--el-color-danger-light-9) 42%,#fff)!important}.po-data-table[data-v-72fba941] .el-table__row.po-row-done>td.el-table__cell{background:color-mix(in srgb,var(--el-color-success-light-9) 24%,#fff)!important}.po-detail-drawer[data-v-72fba941] .el-drawer__header{margin-bottom:0;padding:16px 24px;border-bottom:1px solid var(--el-border-color-lighter)}.stat-card[data-v-72fba941]{border-radius:8px}.stat-title[data-v-72fba941]{font-weight:500}.po-panel[data-v-72fba941]{border-radius:8px;transition:all .3s}.po-panel[data-v-72fba941] .el-card__header{padding:14px 16px;background-color:var(--el-bg-color-page);border-bottom:1px solid var(--el-border-color-lighter)}.po-panel[data-v-72fba941] .el-card__body{padding:16px}.po-desc[data-v-72fba941] .el-descriptions__label{width:120px;color:var(--el-text-color-regular)}.po-audit-remark[data-v-72fba941]{color:var(--el-color-danger);font-weight:600;white-space:pre-wrap;word-break:break-word}.rx-wrap[data-v-72fba941]{min-height:160px;background:#f5f6f8;padding:12px;margin:-20px}.rx-statusbar[data-v-72fba941]{display:flex;align-items:center;gap:8px;padding:0 4px 8px}.rx-status[data-v-72fba941]{margin-bottom:10px;padding:8px 12px;border-radius:4px;font-size:13px;line-height:1.6}.rx-status-danger[data-v-72fba941]{background:#fef0f0;color:#b91c1c;border:1px solid #fecaca}.rx-paper[data-v-72fba941]{width:210mm;min-height:297mm;margin:0 auto;background:#fff;box-sizing:border-box;padding:8mm 10mm;color:#1f1f1f;font-size:13px;line-height:1.5;font-family:Microsoft YaHei,PingFang SC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;box-shadow:0 0 0 1px #d6d6d6,0 6px 24px #0000000f;overflow:visible}.rx-notice[data-v-72fba941]{display:flex;flex-direction:column;align-items:stretch;gap:10px;background:#f3f4f6;border:1px solid #e5e7eb;padding:14px 12px;border-radius:2px;font-size:12px;color:#1f1f1f;margin-bottom:6px}.rx-notice .rx-notice-text[data-v-72fba941]{flex:none;width:100%;line-height:1.55;word-break:break-word}.rx-notice .rx-notice-meta[data-v-72fba941]{display:flex;flex-flow:row nowrap;align-items:center;gap:4px 14px;width:100%;box-sizing:border-box;margin-top:4px;padding:8px 2px 2px;border-top:1px solid #e5e7eb;font-size:10px;line-height:2.35;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.rx-notice .rx-notice-meta .rx-meta-item[data-v-72fba941]{display:inline-flex;flex:0 0 auto;align-items:baseline;gap:2px;min-width:0;padding:0;margin:0;background:transparent;border:none;border-radius:0;white-space:nowrap;line-height:2.35;height:20px}.rx-notice .rx-notice-meta .rx-meta-item[data-v-72fba941]:not(:first-child){border-left:1px solid #d1d5db;padding-left:14px;margin-left:2px;line-height:2.35}.rx-notice .rx-notice-meta .rx-meta-label[data-v-72fba941]{font-weight:600;color:#6b7280;line-height:1.35;flex-shrink:0}.rx-notice .rx-notice-meta .rx-meta-label[data-v-72fba941]:after{content:":";font-weight:500;color:#9ca3af}.rx-notice .rx-notice-meta .rx-meta-value[data-v-72fba941]{color:#111827;line-height:1.35;font-variant-numeric:tabular-nums}.rx-title[data-v-72fba941]{text-align:center;font-size:28px;font-weight:700;line-height:1.2;margin:10px 0 35px;letter-spacing:.08em}.rx-info[data-v-72fba941]{border:1px solid #c8c8c8;border-bottom:none}.rx-info-row[data-v-72fba941]{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #c8c8c8}.rx-info-row-full[data-v-72fba941]{grid-template-columns:1fr}.rx-info-cell[data-v-72fba941]{display:flex;align-items:center;gap:6px;padding:16px 10px;font-size:13px;border-right:1px solid #c8c8c8;min-height:32px}.rx-info-cell[data-v-72fba941]:last-child{border-right:none}.rx-info-cell .rx-key[data-v-72fba941]{color:#1f1f1f;flex-shrink:0}.rx-info-cell .rx-val[data-v-72fba941]{flex:1;min-width:0;word-break:break-all}.rx-rp[data-v-72fba941]{position:relative;border-left:1px solid #c8c8c8;border-right:1px solid #c8c8c8;padding:8px 10px 16px;overflow:hidden;box-sizing:border-box;width:100%}.rx-watermark[data-v-72fba941]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:88px;font-weight:700;color:#0000000f;transform:rotate(-22deg);letter-spacing:.18em;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:0}.rx-rp-head[data-v-72fba941]{display:grid;grid-template-columns:36px 1fr;align-items:end;-moz-column-gap:8px;column-gap:8px;border-bottom:1px solid #d4d4d4;margin-bottom:6px;position:relative;z-index:1;width:100%;box-sizing:border-box;padding:10px}.rx-rp-label[data-v-72fba941]{font-size:16px;font-weight:700;color:#1f1f1f;line-height:1;padding-bottom:15px}.rx-rp-cols-head[data-v-72fba941]{display:grid;grid-template-columns:1fr 1fr;-moz-column-gap:24px;column-gap:24px;width:100%;box-sizing:border-box;min-width:0}.rx-rp-col-head[data-v-72fba941]{display:grid;grid-template-columns:1fr 64px;-moz-column-gap:8px;column-gap:8px;font-size:13px;color:#1f1f1f;min-width:0;padding-bottom:15px}.rx-rp-col-head>span[data-v-72fba941]:last-child{text-align:right}.rx-herbs[data-v-72fba941]{padding-left:44px;display:grid;grid-template-columns:1fr 1fr;-moz-column-gap:24px;column-gap:24px;row-gap:6px;position:relative;z-index:1;width:100%;box-sizing:border-box}.rx-herb-cell[data-v-72fba941]{display:grid;grid-template-columns:1fr 64px;-moz-column-gap:8px;column-gap:8px;font-size:13px;line-height:2.5;min-width:0}.rx-herb-name[data-v-72fba941]{color:#1f1f1f;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rx-herb-total[data-v-72fba941]{color:#1f1f1f;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.rx-text[data-v-72fba941]{border:1px solid #c8c8c8;border-top:none;padding:10px 12px;font-size:13px;line-height:1.85}.rx-text p[data-v-72fba941]{margin:0}.rx-text .rx-text-warn[data-v-72fba941]{color:#d72424;font-weight:600}.rx-bottom[data-v-72fba941]{border:1px solid #c8c8c8;border-top:none}.rx-bot-row[data-v-72fba941]{display:grid;border-bottom:1px solid #c8c8c8}.rx-bot-row[data-v-72fba941]:last-child{border-bottom:none}.rx-bot-row-1[data-v-72fba941]{grid-template-columns:1.6fr .6fr .6fr .6fr .6fr 1.7fr .95fr 1.25fr;min-height:70px}.rx-bot-row-2[data-v-72fba941]{grid-template-columns:repeat(6,1fr)}.rx-hospital-row[data-v-72fba941]{display:flex;flex-direction:column;align-items:left;justify-content:left;gap:2px;padding:10px 12px;min-height:52px;text-align:left}.rx-hospital-line[data-v-72fba941]{font-size:12px;color:#374151;line-height:1.6}.rx-bot-cell[data-v-72fba941]{border-right:1px solid #c8c8c8;padding:6px 10px;font-size:12px;color:#1f1f1f;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;min-height:32px;box-sizing:border-box;line-height:2.5}.rx-bot-cell[data-v-72fba941]:last-child{border-right:none}.rx-bot-stack[data-v-72fba941]{flex-direction:column;align-items:flex-start;justify-content:flex-start}.rx-bot-label[data-v-72fba941]{font-size:13px;color:#1f1f1f;margin-bottom:4px}.rx-bot-label--doctor[data-v-72fba941]{flex-shrink:0;margin-bottom:0;margin-right:6px;line-height:1.2;align-self:center}.rx-bot-doctor[data-v-72fba941]{flex-direction:row;align-items:center;flex-wrap:nowrap}.rx-bot-doctor .rx-bot-doctor-body[data-v-72fba941]{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:8px;min-height:0}.rx-bot-doctor .rx-bot-doctor-name[data-v-72fba941]{font-size:13px;color:#1f1f1f;line-height:1.2;white-space:nowrap}.rx-bot-doctor .rx-bot-sign-img[data-v-72fba941]{flex-shrink:0;max-height:40px;max-width:110px;-o-object-fit:contain;object-fit:contain}.rx-bot-meta[data-v-72fba941]{flex-wrap:nowrap}.rx-bot-meta .rx-bot-meta-key[data-v-72fba941]{color:#1f1f1f;margin-right:6px;white-space:nowrap;flex-shrink:0;line-height:1.4}.rx-bot-meta .rx-bot-meta-val[data-v-72fba941]{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;line-height:2.5}.rx-fee[data-v-72fba941]{font-size:13px;line-height:1.4;padding:8px 10px}.rx-fee .rx-fee-key[data-v-72fba941]{color:#1f1f1f;margin-right:6px;white-space:nowrap}.rx-fee .rx-fee-val[data-v-72fba941]{font-variant-numeric:tabular-nums;white-space:nowrap}.rx-fee-total[data-v-72fba941]{font-weight:700;background:#fafafa}.rx-fee-total .rx-fee-val[data-v-72fba941]{font-weight:700}.rx-audit[data-v-72fba941]{margin:12px auto 0;max-width:210mm;padding:8px 12px;background:#fafafa;border:1px dashed #d4d4d4;color:#6b7280;font-size:12px;line-height:1.6;border-radius:4px}.audit-stamp[data-v-72fba941]{position:absolute;top:18px;right:-14px;width:72px;height:72px;border:3px solid currentColor;border-radius:50%;display:flex;align-items:center;justify-content:center;transform:rotate(20deg);opacity:.8;pointer-events:none;z-index:10;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-weight:700;font-size:13px;letter-spacing:1px;box-shadow:inset 0 0 0 1px #ffffff80}.audit-stamp[data-v-72fba941]:after{content:"";position:absolute;top:4px;left:4px;right:4px;bottom:4px;border:1px double currentColor;border-radius:50%;opacity:.6}.audit-stamp .stamp-inner[data-v-72fba941]{text-align:center;line-height:1.1}.stamp-pass[data-v-72fba941]{color:var(--el-color-success)}.stamp-reject[data-v-72fba941]{color:var(--el-color-danger)}.create-order-dialog[data-v-72fba941] .el-dialog__header{padding:20px 24px 12px;margin-right:0}.create-order-dialog[data-v-72fba941] .el-dialog__title{font-size:18px;font-weight:600;letter-spacing:.02em}.create-order-dialog[data-v-72fba941] .el-dialog__body{padding:8px 24px 20px;max-height:calc(100vh - 200px);overflow:hidden}.create-order-dialog[data-v-72fba941] .el-dialog__footer{padding:16px 24px 20px;border-top:1px solid var(--el-border-color-lighter);background:var(--el-fill-color-blank)}.create-order-dialog__inner[data-v-72fba941]{display:flex;flex-direction:column;gap:0}.create-order-rx-card[data-v-72fba941]{border-radius:10px;border:1px solid var(--el-color-primary-light-5);background:linear-gradient(135deg,var(--el-color-primary-light-9) 0%,var(--el-fill-color-blank) 100%);padding:16px 18px;margin-bottom:20px;box-shadow:0 1px 2px #0000000a}.create-order-rx-card__head[data-v-72fba941]{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin-bottom:10px}.create-order-rx-card__badge[data-v-72fba941]{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;color:#fff;background:var(--el-color-primary);letter-spacing:.04em}.create-order-rx-card__meta[data-v-72fba941]{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:14px;color:var(--el-text-color-regular)}.create-order-rx-card__id[data-v-72fba941]{font-weight:600;color:var(--el-text-color-primary)}.create-order-rx-card__sn[data-v-72fba941]{padding:2px 8px;border-radius:4px;background:var(--el-fill-color);font-size:13px;color:var(--el-text-color-secondary)}.create-order-rx-card__patient[data-v-72fba941]{font-weight:500;color:var(--el-text-color-primary)}.create-order-rx-card__herbs[data-v-72fba941]{font-size:13px;line-height:1.55;color:var(--el-text-color-secondary);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;cursor:default;padding-top:2px}.create-order-steps[data-v-72fba941]{margin-bottom:8px;padding:8px 12px 4px}.create-order-steps[data-v-72fba941] .el-step__title{font-size:14px;font-weight:500;line-height:1.4}.create-order-steps[data-v-72fba941] .el-step__description{font-size:12px;margin-top:4px;line-height:1.35;padding-right:6px}.create-order-steps[data-v-72fba941] .el-step__head{padding-right:8px}.create-order-steps[data-v-72fba941] .el-step.is-horizontal .el-step__line{top:14px}.create-order-step-lead[data-v-72fba941]{margin:0 0 20px;padding:12px 16px;font-size:13px;line-height:1.6;color:var(--el-text-color-secondary);background:var(--el-fill-color-light);border-radius:8px;border-left:3px solid var(--el-color-primary-light-5)}.create-order-step-panel[data-v-72fba941]{max-height:min(56vh,480px);overflow-y:auto;overflow-x:hidden;padding:4px 8px 12px 4px;margin-right:-4px}.create-order-step-panel__row-after-bar[data-v-72fba941]{margin-top:20px}.create-order-unit-suffix[data-v-72fba941]{flex-shrink:0;font-size:13px;color:var(--el-text-color-secondary);padding-left:4px}.create-order-footer[data-v-72fba941]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;width:100%}.create-order-footer__hint[data-v-72fba941]{flex:1;min-width:200px;display:flex;flex-direction:column;gap:6px;font-size:13px;line-height:1.5;color:var(--el-text-color-secondary)}.create-order-footer__step[data-v-72fba941]{color:var(--el-text-color-placeholder)}.create-order-footer__warn[data-v-72fba941]{color:var(--el-color-warning);font-weight:500}.create-order-footer__actions[data-v-72fba941]{flex-shrink:0;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}.create-order-deposit-bar[data-v-72fba941]{display:flex;align-items:stretch;border-radius:10px;border:1px solid var(--el-border-color-lighter);overflow:hidden;font-size:13px;box-shadow:0 1px 2px #0000000a}.create-order-deposit-bar__cell[data-v-72fba941]{flex:1;padding:16px 20px;display:flex;flex-direction:column;gap:6px;background:var(--el-fill-color-light)}.create-order-deposit-bar__cell strong[data-v-72fba941]{font-size:20px;font-weight:600;color:var(--el-text-color-primary);letter-spacing:.02em}.create-order-deposit-bar__label[data-v-72fba941]{font-size:13px;color:var(--el-text-color-secondary)}.create-order-deposit-bar__sub[data-v-72fba941]{font-size:12px;color:var(--el-text-color-placeholder)}.create-order-deposit-bar__sep[data-v-72fba941]{width:1px;background:var(--el-border-color-lighter);flex-shrink:0}.create-order-deposit-bar.is-ok .create-order-deposit-bar__cell:last-child strong[data-v-72fba941]{color:var(--el-color-success)}.create-order-deposit-bar.is-warn .create-order-deposit-bar__cell:last-child strong[data-v-72fba941]{color:var(--el-color-danger)}.create-order-pay-hint[data-v-72fba941]{font-size:12px;line-height:1.55;margin-top:8px;color:var(--el-text-color-secondary)}.create-order-form[data-v-72fba941] .el-form-item{margin-bottom:20px}.create-order-form[data-v-72fba941] .el-form-item__label{font-size:14px;padding-right:12px}.create-order-form[data-v-72fba941] .el-input__inner,.create-order-form[data-v-72fba941] .el-textarea__inner{font-size:14px}.create-order-form-item--inline-num[data-v-72fba941] .el-form-item__content{line-height:normal}.po-diagnosis-creator-dept-breadcrumb[data-v-72fba941] .el-breadcrumb__item{display:inline-flex;float:none}.po-diagnosis-creator-dept-breadcrumb[data-v-72fba941] .el-breadcrumb__separator{margin:0 2px 0 4px}.prescription-order-h5.po-h5-app[data-v-72fba941]{--po-h5-ink: #0f172a;--po-h5-muted: #64748b;--po-h5-surface: rgba(255, 255, 255, .82);--po-h5-elevated: 0 14px 44px -18px rgba(15, 23, 42, .22), 0 4px 14px -6px rgba(15, 23, 42, .08);--po-h5-pill-idle: rgba(255, 255, 255, .72);box-sizing:border-box;min-height:100vh;min-height:100dvh;padding:max(10px,env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) max(28px,env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px));background:radial-gradient(100% 70% at 0% 0%,color-mix(in srgb,var(--el-color-primary) 16%,transparent),transparent 55%),radial-gradient(80% 50% at 100% 8%,rgba(45,212,191,.11),transparent 52%),radial-gradient(60% 40% at 50% 100%,rgba(251,191,36,.06),transparent 45%),linear-gradient(180deg,#f1f5f9,#e2e8f0 55%,#f8fafc);font-size:15px;line-height:1.5;color:var(--po-h5-ink);-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain}.po-h5-hero[data-v-72fba941]{margin-bottom:14px;padding:4px 2px 2px}.po-h5-hero__title[data-v-72fba941]{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.03em;line-height:1.2;color:var(--po-h5-ink)}.po-h5-hero__sub[data-v-72fba941]{margin:6px 0 0;font-size:.8125rem;line-height:1.45;color:var(--po-h5-muted);max-width:42ch}.prescription-order-h5.po-h5-app .po-h5-surface[data-v-72fba941]{border-radius:20px!important;border:1px solid rgba(255,255,255,.55)!important;background:var(--po-h5-surface)!important;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:var(--po-h5-elevated)!important}.prescription-order-h5.po-h5-app .po-h5-surface--list[data-v-72fba941] .el-card__body{padding-top:14px!important}.prescription-order-h5.po-h5-app .po-h5-list-head[data-v-72fba941]{margin-bottom:4px;padding-bottom:12px;border-bottom:1px solid rgba(15,23,42,.06)}.prescription-order-h5.po-h5-app[data-v-72fba941] .el-card .flex.items-center.gap-2.flex-wrap>span:first-child{background:color-mix(in srgb,#fff 94%,var(--el-color-primary-light-9))!important;-webkit-backdrop-filter:none;backdrop-filter:none}.prescription-order-h5.po-h5-app .po-h5-surface--chips[data-v-72fba941]{backdrop-filter:none;-webkit-backdrop-filter:none;background:color-mix(in srgb,#fff 94%,var(--el-color-primary-light-9))!important}.prescription-order-h5.po-h5-app[data-v-72fba941] .el-card .flex.items-center.gap-2.flex-wrap>div{border-radius:9999px!important;padding:10px 16px!important;font-size:13px!important;font-weight:600;border:1px solid rgba(15,23,42,.1)!important;background:#ffffffeb!important;color:#334155!important;box-shadow:0 1px 3px #0f172a0f;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.prescription-order-h5.po-h5-app[data-v-72fba941] .el-card .flex.items-center.gap-2.flex-wrap>div span{color:inherit!important}.prescription-order-h5.po-h5-app[data-v-72fba941] .el-card .flex.items-center.gap-2.flex-wrap>div.bg-primary{border-color:transparent!important;background:var(--el-color-primary)!important;color:#fff!important;box-shadow:0 10px 26px -14px color-mix(in srgb,var(--el-color-primary) 62%,transparent)!important}.prescription-order-h5.po-h5-app .po-filter-toggle[data-v-72fba941]{border-radius:16px!important;border:1px solid rgba(255,255,255,.55)!important;background:linear-gradient(140deg,color-mix(in srgb,#fff 78%,var(--el-color-primary-light-9)),color-mix(in srgb,var(--el-color-primary-light-9) 40%,#fff))!important;box-shadow:0 10px 28px -18px #0f172a38}.prescription-order-h5.po-h5-app .po-table-title[data-v-72fba941]{font-size:1.125rem!important;font-weight:700!important;letter-spacing:-.02em;color:var(--po-h5-ink)!important}.prescription-order-h5.po-h5-app .po-table-hint[data-v-72fba941]{font-size:13px!important;color:var(--po-h5-muted)!important}.prescription-order-h5.po-h5-app .po-focus-board__item[data-v-72fba941]{flex-direction:column;align-items:flex-start;justify-content:center;min-height:4.5rem;padding:12px 14px!important;border-radius:18px!important;border:none!important;box-shadow:0 10px 28px -18px #0f172a40;gap:6px}.prescription-order-h5.po-h5-app .po-focus-board__label[data-v-72fba941]{font-size:11px;font-weight:600;letter-spacing:.03em;color:var(--po-h5-muted)}.prescription-order-h5.po-h5-app .po-focus-board__value[data-v-72fba941]{font-size:1.35rem}.prescription-order-h5.po-h5-app .po-focus-board__item.is-active[data-v-72fba941]{box-shadow:0 0 0 2px color-mix(in srgb,var(--el-color-primary) 35%,transparent) inset,0 12px 32px -16px #0f172a47}.prescription-order-h5.po-h5-app .po-card[data-v-72fba941]{border-radius:22px!important;border:1px solid rgba(255,255,255,.55)!important;background:color-mix(in srgb,#fff 92%,transparent)!important;backdrop-filter:blur(10px) saturate(1.15);-webkit-backdrop-filter:blur(10px) saturate(1.15);box-shadow:0 20px 44px -34px #0f172a73!important;padding:16px!important}.prescription-order-h5.po-h5-app .po-card__order-no-main[data-v-72fba941]{font-size:15px!important}.prescription-order-h5.po-h5-app .po-card__label[data-v-72fba941]{font-size:12px!important;color:var(--po-h5-muted)!important}.prescription-order-h5.po-h5-app .po-card__value[data-v-72fba941]{font-size:15px!important}.prescription-order-h5.po-h5-app .po-stat-surface[data-v-72fba941]{border-radius:18px!important;border:1px solid rgba(255,255,255,.45)!important;box-shadow:0 12px 36px -22px #0f172a47!important}.prescription-order-h5.po-h5-app .po-card__amount[data-v-72fba941]{font-size:1.05rem!important}@media (prefers-reduced-motion: reduce){.prescription-order-h5.po-h5-app .po-card[data-v-72fba941]:active{transform:none!important}.prescription-order-h5.po-h5-app[data-v-72fba941] .el-card .flex.items-center.gap-2.flex-wrap>div{transition:none}}.prescription-order-h5[data-v-72fba941] .el-card .flex.flex-col.gap-3{gap:10px}.prescription-order-h5[data-v-72fba941] .el-card .flex.items-center.gap-2.flex-wrap{flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.prescription-order-h5[data-v-72fba941] .el-card .flex.items-center.gap-2.flex-wrap::-webkit-scrollbar{display:none}.prescription-order-h5[data-v-72fba941] .el-card .flex.items-center.gap-2.flex-wrap>span:first-child{position:sticky;left:0;background:#fff;z-index:2;padding-right:4px}.prescription-order-h5[data-v-72fba941] .el-card .flex.items-center.gap-2.flex-wrap>div{flex-shrink:0;padding:6px 12px!important;font-size:12px!important}.prescription-order-h5[data-v-72fba941] .el-card{border-radius:12px}.prescription-order-h5[data-v-72fba941] .el-card__body{padding:12px!important}.prescription-order-h5 .po-list-stats[data-v-72fba941]{grid-template-columns:1fr!important;gap:10px!important;margin-bottom:12px!important}.prescription-order-h5 .po-stat-surface[data-v-72fba941]{padding:12px 14px!important}.prescription-order-h5 .po-stat-surface .text-2xl[data-v-72fba941],.prescription-order-h5 .po-stat-surface .sm\:text-\[28px\][data-v-72fba941]{font-size:22px!important}.prescription-order-h5 .ls-form[data-v-72fba941]{display:flex;flex-direction:column;gap:10px}.prescription-order-h5[data-v-72fba941] .ls-form .el-form-item{width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important}.prescription-order-h5[data-v-72fba941] .ls-form .el-form-item__label{width:72px!important;font-size:12px!important;color:#6b7280;padding-right:6px!important}.prescription-order-h5[data-v-72fba941] .ls-form .el-form-item__content{flex:1 1 0!important;min-width:0!important}.prescription-order-h5[data-v-72fba941] .ls-form .el-form-item:last-child .el-form-item__content{justify-content:flex-end;gap:8px}.prescription-order-h5 .po-table-toolbar[data-v-72fba941]{gap:10px;margin-bottom:10px}.prescription-order-h5 .po-table-title[data-v-72fba941]{font-size:15px}.prescription-order-h5 .po-focus-board[data-v-72fba941]{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.prescription-order-h5 .po-focus-board__item[data-v-72fba941]{padding:8px 10px}.prescription-order-h5 .po-focus-board__value[data-v-72fba941]{font-size:16px}.prescription-order-h5 .po-card-list[data-v-72fba941]{display:flex;flex-direction:column;gap:12px}.prescription-order-h5 .po-card[data-v-72fba941]{background:#fff;border-radius:12px;border:1px solid #edf0f4;padding:12px;box-shadow:0 2px 6px -3px #0f172a14;position:relative;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;cursor:pointer;overflow:hidden;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.prescription-order-h5 .po-card[data-v-72fba941]:active{transform:scale(.995);box-shadow:0 4px 10px -4px #0f172a1f}.prescription-order-h5 .po-card[data-v-72fba941]:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.prescription-order-h5 .po-card--focus[data-v-72fba941]{border-color:color-mix(in srgb,var(--el-color-warning) 40%,#fff);background:linear-gradient(135deg,color-mix(in srgb,var(--el-color-warning-light-9) 50%,#fff),#fff 60%)}.prescription-order-h5 .po-card--risk[data-v-72fba941]{border-color:color-mix(in srgb,var(--el-color-danger) 44%,#fff);background:linear-gradient(135deg,color-mix(in srgb,var(--el-color-danger-light-9) 55%,#fff),#fff 60%)}.prescription-order-h5 .po-card__head[data-v-72fba941]{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px dashed #edf0f4}.prescription-order-h5 .po-card__order-no-main[data-v-72fba941]{font-size:14px;font-weight:600;color:#0f172a;word-break:break-all;line-height:1.35}.prescription-order-h5 .po-card__tags[data-v-72fba941]{display:flex;align-items:center;gap:6px;flex-shrink:0}.prescription-order-h5 .po-card__id[data-v-72fba941]{font-size:11px;color:#9ca3af}.prescription-order-h5 .po-card__alert[data-v-72fba941]{display:flex;align-items:center;gap:6px;background:color-mix(in srgb,var(--el-color-danger-light-9) 70%,#fff);color:#dc2626;font-size:12px;font-weight:600;border-radius:8px;padding:6px 10px;margin-bottom:8px}.prescription-order-h5 .po-card__row[data-v-72fba941]{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px}.prescription-order-h5 .po-card__field[data-v-72fba941]{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 0}.prescription-order-h5 .po-card__field--right[data-v-72fba941]{text-align:right;align-items:flex-end}.prescription-order-h5 .po-card__label[data-v-72fba941]{font-size:11px;color:#9ca3af;line-height:1.2}.prescription-order-h5 .po-card__value[data-v-72fba941]{font-size:13px;color:#111827;font-weight:500;word-break:break-all;line-height:1.35}.prescription-order-h5 .po-card__amount[data-v-72fba941]{color:#ef4444!important;font-size:15px!important;font-weight:700!important}.prescription-order-h5 .po-card__time[data-v-72fba941]{font-size:12px!important;color:#6b7280!important;font-weight:400!important}.prescription-order-h5 .po-card__tags-row[data-v-72fba941]{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding-top:8px;border-top:1px dashed #edf0f4}.prescription-order-h5 .po-card__meta[data-v-72fba941]{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px;font-size:11px;color:#6b7280}.prescription-order-h5 .po-card__meta-time[data-v-72fba941]{margin-left:auto}.prescription-order-h5 .po-card__actions[data-v-72fba941]{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid #f1f3f6}.prescription-order-h5 .po-card__actions[data-v-72fba941] .el-button{margin-left:0;font-size:13px;padding:8px 14px;min-height:36px;border-radius:8px;touch-action:manipulation}.prescription-order-h5 .po-card__actions[data-v-72fba941] .el-button:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.prescription-order-h5 .flex.justify-end.mt-4[data-v-72fba941]{justify-content:center!important}.prescription-order-h5[data-v-72fba941] .el-pagination{--el-pagination-button-height: 30px;--el-pagination-button-width: 30px;font-size:12px;flex-wrap:wrap;justify-content:center}.prescription-order-h5[data-v-72fba941] .el-pagination .el-pagination__sizes{display:none}.po-detail-drawer--h5[data-v-72fba941] .el-drawer__header{display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;gap:6px!important;padding:10px 10px 10px 14px!important;margin-bottom:0!important;border-bottom:1px solid #edf0f4}.po-detail-drawer--h5[data-v-72fba941] .el-drawer__header .po-detail-drawer-head{flex:1 1 auto;min-width:0;max-width:100%}.po-detail-drawer--h5[data-v-72fba941] .el-drawer__header .el-drawer__close-btn{flex-shrink:0;margin-top:2px}.po-detail-drawer--h5[data-v-72fba941] .po-detail-drawer-head{flex-direction:column;align-items:stretch!important;gap:10px}.po-detail-drawer--h5[data-v-72fba941] .po-detail-drawer-actions{margin-right:0!important;flex-wrap:wrap;gap:6px;width:100%}.po-detail-drawer--h5[data-v-72fba941] .po-detail-drawer-head .el-button{padding:6px 10px;font-size:12px}.po-detail-drawer--h5[data-v-72fba941] .po-detail-drawer-title{font-size:16px!important}.po-detail-drawer--h5[data-v-72fba941] .po-detail-body{padding:12px!important}.po-detail-drawer--h5[data-v-72fba941] .po-detail-body .grid.grid-cols-1.md\:grid-cols-2,.po-detail-drawer--h5[data-v-72fba941] .po-detail-body .grid.grid-cols-1.lg\:grid-cols-2{grid-template-columns:1fr!important;gap:12px!important}.po-detail-drawer--h5[data-v-72fba941] .stat-card .stat-value{font-size:16px!important}.po-detail-drawer--h5[data-v-72fba941] .stat-card .stat-title{font-size:11px!important}.po-detail-drawer--h5[data-v-72fba941] .stat-card .el-card__body{padding:10px!important}.po-detail-drawer--h5[data-v-72fba941] .po-workflow-steps.el-steps--vertical{padding-left:6px}.po-detail-drawer--h5[data-v-72fba941] .po-workflow-steps .el-step__title{font-size:14px!important;font-weight:500;line-height:1.45!important;word-break:break-word}.po-detail-drawer--h5[data-v-72fba941] .po-workflow-steps .el-step__description{font-size:12px!important;line-height:1.45!important;margin-top:4px!important;word-break:break-word;white-space:normal}.po-detail-drawer--h5[data-v-72fba941] .po-workflow-steps .el-step__main{min-height:auto;padding-bottom:8px}.po-detail-drawer--h5[data-v-72fba941] .po-workflow-steps .el-step:last-child .el-step__main{padding-bottom:0}.po-detail-drawer--h5[data-v-72fba941] .el-descriptions{font-size:12px}.po-detail-drawer--h5[data-v-72fba941] .el-descriptions__label{width:92px!important;font-size:12px!important}.po-detail-drawer--h5[data-v-72fba941] .el-descriptions__cell{padding:8px 10px!important}.po-detail-drawer--h5[data-v-72fba941] .po-biz-diagnosis-id__btn{min-height:44px;padding:10px 18px!important;font-size:14px!important;font-weight:600}.po-detail-drawer--h5[data-v-72fba941] .po-biz-diagnosis-id__btn:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.po-detail-drawer--h5[data-v-72fba941] .audit-stamp{transform:scale(.72) rotate(-12deg)!important}.po-detail-drawer--h5[data-v-72fba941] .el-table{font-size:12px}.po-h5-dialog[data-v-72fba941] .el-dialog__header{padding:12px 14px!important;margin-right:0!important}.po-h5-dialog[data-v-72fba941] .el-dialog__title{font-size:15px!important}.po-h5-dialog[data-v-72fba941] .el-dialog__body{padding:14px!important}.po-h5-dialog[data-v-72fba941] .el-dialog__footer{padding:10px 14px!important}.po-h5-dialog[data-v-72fba941] .el-form-item__label{font-size:12px!important}.po-h5-dialog[data-v-72fba941] .el-button{font-size:13px}.create-order-dialog--h5[data-v-72fba941] .el-dialog{margin:2vh auto!important;max-width:96vw}.create-order-dialog--h5[data-v-72fba941] .el-dialog__body{padding:10px 12px!important;max-height:82vh;overflow-y:auto}.create-order-dialog--h5[data-v-72fba941] .create-order-rx-card__head{flex-wrap:wrap;gap:6px}.create-order-dialog--h5[data-v-72fba941] .create-order-rx-card__meta{flex-wrap:wrap;font-size:12px}.create-order-dialog--h5[data-v-72fba941] .el-steps.is-simple{padding:0 4px!important}.create-order-dialog--h5[data-v-72fba941] .el-form--inline .el-form-item{width:100%;margin-right:0!important}.create-order-dialog--h5[data-v-72fba941] .el-col{flex:0 0 100%!important;max-width:100%!important}.po-h5-drawer[data-v-72fba941] .el-drawer__header{padding:10px 14px!important;margin-bottom:0!important;border-bottom:1px solid #edf0f4}.po-h5-drawer[data-v-72fba941] .el-drawer__title{font-size:15px}.po-h5-drawer[data-v-72fba941] .el-drawer__body{padding:12px!important;overflow-y:auto}.po-h5-drawer[data-v-72fba941] .el-table,.po-h5-drawer[data-v-72fba941] .el-descriptions{font-size:12px}.po-h5-drawer[data-v-72fba941] .el-descriptions__label{width:84px!important}.prescription-order-h5 .po-filter-toggle[data-v-72fba941]{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;min-height:44px;background:linear-gradient(135deg,color-mix(in srgb,var(--el-color-primary-light-9) 60%,#fff),#fff);border:1px solid color-mix(in srgb,var(--el-color-primary) 18%,#fff);border-radius:10px;margin-bottom:12px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.prescription-order-h5 .po-filter-toggle[data-v-72fba941]:active{transform:scale(.99);background:linear-gradient(135deg,color-mix(in srgb,var(--el-color-primary-light-9) 80%,#fff),#fff)}.prescription-order-h5 .po-filter-toggle[data-v-72fba941]:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.prescription-order-h5 .po-filter-toggle__label[data-v-72fba941]{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--el-color-primary)}.prescription-order-h5 .po-filter-toggle__arrow[data-v-72fba941]{color:var(--el-color-primary);transition:transform .25s ease}.prescription-order-h5 .po-filter-toggle__arrow.is-open[data-v-72fba941]{transform:rotate(180deg)}.prescription-order-h5[data-v-72fba941] .ls-form .el-form-item:last-child{width:100%}.prescription-order-h5[data-v-72fba941] .ls-form .el-form-item:last-child .el-form-item__content{display:flex;gap:8px;width:100%}.prescription-order-h5[data-v-72fba941] .ls-form .el-form-item:last-child .el-form-item__content>.el-button{flex:1 1 0;margin:0!important}.prescription-order-h5 .po-table-toolbar[data-v-72fba941]{flex-direction:column;align-items:stretch!important}.prescription-order-h5 .po-table-toolbar__title-wrap[data-v-72fba941]{justify-content:space-between}.prescription-order-h5[data-v-72fba941] .po-workflow-steps-wrap{padding:10px!important;margin-bottom:12px!important}.prescription-order-h5[data-v-72fba941] .po-workflow-steps .el-step__title{font-size:13px!important;line-height:1.4!important}.prescription-order-h5[data-v-72fba941] .po-workflow-steps .el-step__description{font-size:11px!important;padding-right:0!important;margin-top:4px!important}.prescription-order-h5[data-v-72fba941] .po-workflow-steps .el-step__head{width:auto!important}.prescription-order-h5[data-v-72fba941] .po-detail-body .el-row{margin-left:-4px!important;margin-right:-4px!important}.prescription-order-h5[data-v-72fba941] .po-detail-body .el-row .el-col{padding-left:4px!important;padding-right:4px!important;margin-bottom:8px}.prescription-order-h5[data-v-72fba941] .po-detail-drawer--h5 .el-drawer__close-btn{font-size:20px!important;padding:8px!important}.prescription-order-h5[data-v-72fba941] .el-card .flex.items-center.gap-2.flex-wrap>div{min-height:36px;display:flex!important;align-items:center;gap:4px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.prescription-order-h5[data-v-72fba941] .el-card .flex.items-center.gap-2.flex-wrap>div:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.prescription-order-h5 .po-focus-board__item[data-v-72fba941]{min-height:56px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.prescription-order-h5 .po-focus-board__item[data-v-72fba941]:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.prescription-order-h5 .po-card__amount[data-v-72fba941],.prescription-order-h5 .po-card__id[data-v-72fba941],.prescription-order-h5[data-v-72fba941] .tabular-nums{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.prescription-order-h5[data-v-72fba941] .el-dropdown-menu__item{min-height:40px;line-height:40px;font-size:13px}.prescription-order-h5[data-v-72fba941] .el-input__wrapper,.prescription-order-h5[data-v-72fba941] .el-select__wrapper,.prescription-order-h5[data-v-72fba941] .el-date-editor.el-input{min-height:36px}@media (prefers-reduced-motion: reduce){.prescription-order-h5[data-v-72fba941] *,.prescription-order-h5[data-v-72fba941] *:before,.prescription-order-h5[data-v-72fba941] *:after,.po-detail-drawer--h5[data-v-72fba941] *,.po-detail-drawer--h5[data-v-72fba941] *:before,.po-detail-drawer--h5[data-v-72fba941] *:after,.po-h5-dialog[data-v-72fba941] *,.po-h5-dialog[data-v-72fba941] *:before,.po-h5-dialog[data-v-72fba941] *:after,.po-h5-drawer[data-v-72fba941] *,.po-h5-drawer[data-v-72fba941] *:before,.po-h5-drawer[data-v-72fba941] *:after,.create-order-dialog--h5[data-v-72fba941] *,.create-order-dialog--h5[data-v-72fba941] *:before,.create-order-dialog--h5[data-v-72fba941] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.prescription-order-h5 .po-card[data-v-72fba941],.prescription-order-h5 .po-filter-toggle[data-v-72fba941],.prescription-order-h5 .po-focus-board__item[data-v-72fba941],.po-detail-drawer--h5 .po-card[data-v-72fba941],.po-detail-drawer--h5 .po-filter-toggle[data-v-72fba941],.po-detail-drawer--h5 .po-focus-board__item[data-v-72fba941],.po-h5-dialog .po-card[data-v-72fba941],.po-h5-dialog .po-filter-toggle[data-v-72fba941],.po-h5-dialog .po-focus-board__item[data-v-72fba941],.po-h5-drawer .po-card[data-v-72fba941],.po-h5-drawer .po-filter-toggle[data-v-72fba941],.po-h5-drawer .po-focus-board__item[data-v-72fba941],.create-order-dialog--h5 .po-card[data-v-72fba941],.create-order-dialog--h5 .po-filter-toggle[data-v-72fba941],.create-order-dialog--h5 .po-focus-board__item[data-v-72fba941]{transition:none!important}.prescription-order-h5 .po-card[data-v-72fba941]:active,.prescription-order-h5 .po-filter-toggle[data-v-72fba941]:active,.po-detail-drawer--h5 .po-card[data-v-72fba941]:active,.po-detail-drawer--h5 .po-filter-toggle[data-v-72fba941]:active,.po-h5-dialog .po-card[data-v-72fba941]:active,.po-h5-dialog .po-filter-toggle[data-v-72fba941]:active,.po-h5-drawer .po-card[data-v-72fba941]:active,.po-h5-drawer .po-filter-toggle[data-v-72fba941]:active,.create-order-dialog--h5 .po-card[data-v-72fba941]:active,.create-order-dialog--h5 .po-filter-toggle[data-v-72fba941]:active{transform:none!important}}.po-detail-drawer--h5[data-v-72fba941] .po-detail-body{padding:10px!important}.po-detail-drawer--h5[data-v-72fba941] .po-detail-body .px-6,.po-detail-drawer--h5[data-v-72fba941] .po-detail-body .px-5,.po-detail-drawer--h5[data-v-72fba941] .po-detail-body .py-4,.po-detail-drawer--h5[data-v-72fba941] .po-detail-body .pb-6{padding-left:10px!important;padding-right:10px!important}.po-detail-drawer--h5[data-v-72fba941] .po-detail-drawer-head{flex-direction:column;align-items:stretch!important;gap:8px;width:100%}.po-detail-drawer--h5[data-v-72fba941] .po-detail-drawer-head>.po-detail-drawer-head-main{flex-wrap:wrap;gap:6px;min-width:0}.po-detail-drawer--h5[data-v-72fba941] .po-detail-drawer-head-main .ml-2,.po-detail-drawer--h5[data-v-72fba941] .po-detail-drawer-head-main .ml-3{margin-left:0!important}.po-detail-drawer--h5[data-v-72fba941] .po-detail-drawer-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px!important;margin-right:0!important;width:100%}.po-detail-drawer--h5[data-v-72fba941] .po-detail-drawer-actions .el-button{margin-left:0!important;width:100%;min-height:36px;font-size:12px!important;padding:6px 8px!important}.po-detail-drawer--h5[data-v-72fba941] .stat-card{padding:0!important}.po-detail-drawer--h5[data-v-72fba941] .stat-card .el-card__body{padding:8px 10px!important}.po-detail-drawer--h5[data-v-72fba941] .stat-card .stat-title{font-size:10px!important;margin-bottom:2px!important}.po-detail-drawer--h5[data-v-72fba941] .stat-card .stat-value{font-size:15px!important;line-height:1.2!important}.po-detail-drawer--h5[data-v-72fba941] .po-detail-body>.el-row{margin-left:-4px!important;margin-right:-4px!important}.po-detail-drawer--h5[data-v-72fba941] .po-detail-body>.el-row .el-col{padding-left:4px!important;padding-right:4px!important;margin-bottom:6px}.po-detail-drawer--h5[data-v-72fba941] .el-descriptions__body{width:100%}.po-detail-drawer--h5[data-v-72fba941] .el-descriptions__table{table-layout:fixed;width:100%}.po-detail-drawer--h5[data-v-72fba941] .el-descriptions__cell{padding:8px 10px!important;font-size:12px!important;word-break:break-all}.po-detail-drawer--h5[data-v-72fba941] .el-descriptions__label{width:84px!important;min-width:84px!important;font-size:12px!important;color:#6b7280!important}.po-detail-drawer--h5[data-v-72fba941] .el-descriptions__content{font-size:12px!important}.po-detail-drawer--h5[data-v-72fba941] .po-panel-rx .el-card__header{padding:10px 12px!important}.po-detail-drawer--h5[data-v-72fba941] .po-panel-rx-header{writing-mode:horizontal-tb}.po-detail-drawer--h5[data-v-72fba941] .po-panel-rx-header__title{word-break:break-word;max-width:100%}.po-detail-drawer--h5[data-v-72fba941] .po-panel-rx-header .el-button.is-link{padding:2px 0!important;margin:0!important;height:auto!important;min-height:0!important}.po-detail-drawer--h5[data-v-72fba941] .po-panel .el-card__header,.po-detail-drawer--h5[data-v-72fba941] .po-panel .el-card__body{padding:10px 12px!important}.po-detail-drawer--h5[data-v-72fba941] .po-panel .el-card__header .flex.items-center.gap-3,.po-detail-drawer--h5[data-v-72fba941] .po-panel .el-card__header .flex.items-center.justify-between{flex-wrap:wrap;gap:6px!important}.po-detail-drawer--h5[data-v-72fba941] .po-panel .el-card__header .font-medium.text-\[15px\]{font-size:14px!important}.po-detail-drawer--h5[data-v-72fba941] .po-panel .el-card__header .el-button{padding:4px 8px!important;font-size:12px!important}.po-detail-drawer--h5[data-v-72fba941] .po-workflow-steps-wrap{padding:10px!important;margin-bottom:12px!important}.po-detail-drawer--h5[data-v-72fba941] .po-workflow-steps .el-step__title{font-size:13px!important;line-height:1.45!important;word-break:break-word}.po-detail-drawer--h5[data-v-72fba941] .po-workflow-steps .el-step__description{font-size:12px!important;padding-right:0!important;margin-top:4px!important;white-space:normal;line-height:1.45!important;word-break:break-word}.po-detail-drawer--h5[data-v-72fba941] .po-pay-table{font-size:11px}.po-detail-drawer--h5[data-v-72fba941] .po-pay-table .el-table__cell{padding:4px 6px!important}.po-detail-drawer--h5 .po-logistics-toolbar__phone[data-v-72fba941]{flex:1 1 160px;min-width:140px}.po-detail-drawer--h5 .po-logistics-toolbar__carrier[data-v-72fba941]{flex:1 1 120px;min-width:110px}.po-detail-drawer--h5 .po-logistics-toolbar__btn[data-v-72fba941]{flex:1 1 100%;width:100%;min-height:40px}.po-detail-drawer--h5 .po-logistics-toolbar__links[data-v-72fba941]{border-top:1px dashed #edf0f4;margin-top:6px;padding-top:8px;justify-content:space-around}.po-detail-drawer--h5[data-v-72fba941] .audit-stamp{transform:scale(.6) rotate(-12deg)!important;transform-origin:top right;top:6px!important;right:6px!important}.po-detail-drawer--h5[data-v-72fba941] .el-timeline{padding-left:6px!important}.po-detail-drawer--h5[data-v-72fba941] .el-timeline-item__content{font-size:12px;line-height:1.5}.po-detail-drawer--h5[data-v-72fba941] .el-timeline-item__timestamp{font-size:11px!important}.po-detail-drawer--h5[data-v-72fba941] .el-alert--error{padding:8px 10px!important}.po-detail-drawer--h5[data-v-72fba941] .el-alert__title{font-size:13px!important}.po-detail-drawer--h5[data-v-72fba941] .el-alert__content .text-sm{font-size:12px!important}.create-order-dialog--h5[data-v-72fba941] .create-order-steps{flex-wrap:wrap;gap:4px}.create-order-dialog--h5[data-v-72fba941] .create-order-steps .el-step__title{font-size:11px!important}.create-order-dialog--h5[data-v-72fba941] .create-order-dialog__inner .el-row{margin-left:0!important;margin-right:0!important}.create-order-dialog--h5[data-v-72fba941] .create-order-dialog__inner .el-col{flex:0 0 100%!important;max-width:100%!important;padding:0!important;margin-bottom:8px}.create-order-dialog--h5[data-v-72fba941] .create-order-dialog__inner .el-form-item__label{font-size:12px!important}.create-order-dialog--h5[data-v-72fba941] .el-dialog__footer .el-button{padding:10px 16px!important;font-size:13px!important} diff --git a/server/public/admin/assets/overflow-VQTiVS2Y.js b/server/public/admin/assets/overflow-DAJqHFkX.js similarity index 87% rename from server/public/admin/assets/overflow-VQTiVS2Y.js rename to server/public/admin/assets/overflow-DAJqHFkX.js index d68804dbe..4ccbe9157 100644 --- a/server/public/admin/assets/overflow-VQTiVS2Y.js +++ b/server/public/admin/assets/overflow-DAJqHFkX.js @@ -1 +1 @@ -import{q as n,r as c,v as e,D as r,bj as s}from"./.pnpm-CyuAWpdG.js";import{_ as a,p as _}from"./index-Dxvz9lb1.js";const l={};function d(f,m){const o=_,t=s;return n(),c("div",null,[e(t,{header:"基础使用",shadow:"never",class:"!border-none"},{default:r(()=>[e(o,{class:"w-20 m-4",content:"超出自动打点,悬浮弹窗显示全部内容"}),e(o,{class:"w-60 m-4",content:"超出自动打点,悬浮弹窗显示全部内容"})]),_:1})])}const w=a(l,[["render",d]]);export{w as default}; +import{q as n,r as c,v as e,D as r,bj as s}from"./.pnpm-CyuAWpdG.js";import{_ as a,p as _}from"./index-Bkarz3gO.js";const l={};function d(f,m){const o=_,t=s;return n(),c("div",null,[e(t,{header:"基础使用",shadow:"never",class:"!border-none"},{default:r(()=>[e(o,{class:"w-20 m-4",content:"超出自动打点,悬浮弹窗显示全部内容"}),e(o,{class:"w-60 m-4",content:"超出自动打点,悬浮弹窗显示全部内容"})]),_:1})])}const w=a(l,[["render",d]]);export{w as default}; diff --git a/server/public/admin/assets/paiban-BlrBlFR2.js b/server/public/admin/assets/paiban-BvHPKhZ5.js similarity index 95% rename from server/public/admin/assets/paiban-BlrBlFR2.js rename to server/public/admin/assets/paiban-BvHPKhZ5.js index f0ddaf4e3..c5198cf95 100644 --- a/server/public/admin/assets/paiban-BlrBlFR2.js +++ b/server/public/admin/assets/paiban-BvHPKhZ5.js @@ -1 +1 @@ -import{o as W,ap as G,aq as U,q as c,r as m,v as b,D as u,bd as K,bb as O,s as v,bf as H,F as w,G as C,O as k,bq as J,L as B,T as Y,bC as Q,K as X,ae as R,P as Z,bj as ee,M as y,aC as ae,p as V,n as te}from"./.pnpm-CyuAWpdG.js";import{d,i as se}from"./dayjs-B2bPhvDy.js";import{g as oe}from"./tcm-QAkeqQ9Q.js";import{r as le,g as ne}from"./doctor-8vo_5fa4.js";import{j as h,_ as re}from"./index-Dxvz9lb1.js";const ie={class:"paiban-container"},ce={class:"doctor-list"},de={key:2,class:"paiban-time-container"},ue={class:"date-selector"},me={key:0,class:"time-slots-container"},ve={class:"time-slots-grid"},fe=["onClick"],_e={class:"slot-time"},pe=W({__name:"paiban",setup(be){d.extend(se);const f=y(!1),g=y([]),_=y([]),l=y(0),r=y([]);let D=null,T=!1;const s=ae({date:"",selectedTime:""}),$=V(()=>{if(!l.value||r.value.length===0)return[];const e=[],o=["日","一","二","三","四","五","六"],t=d().startOf("day");for(const n of r.value){const i=d(n);if(i.isBefore(t))continue;const p=`${i.format("MM月DD日")} (${o[i.day()]})`;e.push({date:n,label:p})}return e}),A=V(()=>{if(!s.date||_.value.length===0)return[];const e=d().format("YYYY-MM-DD");if(!(s.date===e))return _.value;const t=d();return _.value.map(n=>{const i=d(`${s.date} ${n.time}`);return i.isBefore(t)||i.isSame(t,"minute")?{...n,available:!1}:n})}),I=async()=>{try{f.value=!0;const e=await oe();g.value=e||[],g.value.length>0&&!l.value&&(l.value=g.value[0].id,await E())}catch(e){console.error("加载医生列表失败:",e),h.msgError("加载医生列表失败")}finally{f.value=!1}},E=async()=>{s.selectedTime="",s.date="",_.value=[],r.value=[],l.value&&await L()},L=async()=>{if(l.value)try{f.value=!0;const e=d().format("YYYY-MM-DD"),o=d().add(6,"day").format("YYYY-MM-DD"),t=await le({doctor_id:l.value,start_date:e,end_date:o,status:1});if(t!=null&&t.lists&&t.lists.length>0){if(r.value=[...new Set(t.lists.map(n=>n.date))],r.value.sort(),await te(),r.value.length>0){const n=d().format("YYYY-MM-DD"),i=r.value.includes(n)?n:r.value[0];M(i)}}else r.value=[],h.msgWarning("该医生暂无排班")}catch(e){console.error("加载医生排班失败:",e),h.msgError("加载医生排班失败"),r.value=[]}finally{f.value=!1}},M=e=>{s.date=e,s.selectedTime="",l.value&&S()},S=async(e=!1)=>{if(!(!l.value||!s.date)){if(T){console.log("正在加载中,跳过本次请求");return}try{T=!0,e||(f.value=!0);const o=await ne({doctor_id:l.value,appointment_date:s.date,period:"all"});_.value=((o==null?void 0:o.slots)||[]).map(t=>({time:t.time,available:t.available,hasAppointment:!!(t.has_appointment??t.available===!1),quota:t.available?1:0}))}catch(o){console.error("加载时间段失败:",o),e||h.msgError("加载时间段失败"),_.value=[]}finally{T=!1,e||(f.value=!1)}}},j=e=>{if(!e.available){h.msgWarning("该时间段不可预约");return}s.selectedTime=e.time},q=()=>{x(),D=window.setInterval(()=>{l.value&&s.date&&S(!0)},5e3)},x=()=>{D&&(clearInterval(D),D=null)};return G(()=>{I(),q()}),U(()=>{x()}),(e,o)=>{const t=J,n=H,i=O,p=Q,F=X,N=K,z=ee;return c(),m("div",ie,[b(z,{shadow:"never"},{header:u(()=>[...o[1]||(o[1]=[v("div",{class:"card-header"},[v("span",null,"医生排班管理")],-1)])]),default:u(()=>[b(N,{model:s,"label-width":"100px",class:"paiban-form"},{default:u(()=>[b(i,{label:"选择医生:"},{default:u(()=>[v("div",ce,[b(n,{modelValue:l.value,"onUpdate:modelValue":o[0]||(o[0]=a=>l.value=a),onChange:E},{default:u(()=>[(c(!0),m(w,null,C(g.value,a=>(c(),k(t,{key:a.id,value:a.id,class:"doctor-radio"},{default:u(()=>[B(Y(a.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])]),_:1}),b(i,{label:"排班时间:"},{default:u(()=>[l.value?l.value&&r.value.length===0?(c(),k(p,{key:1,description:"该医生暂无排班","image-size":80})):(c(),m("div",de,[v("div",ue,[(c(!0),m(w,null,C($.value,a=>(c(),k(F,{key:a.date,type:s.date===a.date?"primary":"",onClick:P=>M(a.date),class:"date-button"},{default:u(()=>[B(Y(a.label),1)]),_:2},1032,["type","onClick"]))),128))]),s.date?(c(),m("div",me,[v("div",ve,[(c(!0),m(w,null,C(A.value,a=>(c(),m("div",{key:a.time,class:R(["time-slot-item",{available:a.available,unavailable:!a.available,selected:s.selectedTime===a.time}]),onClick:P=>j(a)},[v("div",_e,Y(a.time),1),v("div",{class:R(["slot-status",{"status-available":a.available}])},Y(a.available?"可约":a.hasAppointment?"已约":"空号"),3)],10,fe))),128))])])):Z("",!0)])):(c(),k(p,{key:0,description:"请先选择医生","image-size":80}))]),_:1})]),_:1},8,["model"])]),_:1})])}}}),Ye=re(pe,[["__scopeId","data-v-48cf251c"]]);export{Ye as default}; +import{o as W,ap as G,aq as U,q as c,r as m,v as b,D as u,bd as K,bb as O,s as v,bf as H,F as w,G as C,O as k,bq as J,L as B,T as Y,bC as Q,K as X,ae as R,P as Z,bj as ee,M as y,aC as ae,p as V,n as te}from"./.pnpm-CyuAWpdG.js";import{d,i as se}from"./dayjs-B2bPhvDy.js";import{g as oe}from"./tcm-BSADvQNg.js";import{r as le,g as ne}from"./doctor-DBvYeWd3.js";import{j as h,_ as re}from"./index-Bkarz3gO.js";const ie={class:"paiban-container"},ce={class:"doctor-list"},de={key:2,class:"paiban-time-container"},ue={class:"date-selector"},me={key:0,class:"time-slots-container"},ve={class:"time-slots-grid"},fe=["onClick"],_e={class:"slot-time"},pe=W({__name:"paiban",setup(be){d.extend(se);const f=y(!1),g=y([]),_=y([]),l=y(0),r=y([]);let D=null,T=!1;const s=ae({date:"",selectedTime:""}),$=V(()=>{if(!l.value||r.value.length===0)return[];const e=[],o=["日","一","二","三","四","五","六"],t=d().startOf("day");for(const n of r.value){const i=d(n);if(i.isBefore(t))continue;const p=`${i.format("MM月DD日")} (${o[i.day()]})`;e.push({date:n,label:p})}return e}),A=V(()=>{if(!s.date||_.value.length===0)return[];const e=d().format("YYYY-MM-DD");if(!(s.date===e))return _.value;const t=d();return _.value.map(n=>{const i=d(`${s.date} ${n.time}`);return i.isBefore(t)||i.isSame(t,"minute")?{...n,available:!1}:n})}),I=async()=>{try{f.value=!0;const e=await oe();g.value=e||[],g.value.length>0&&!l.value&&(l.value=g.value[0].id,await E())}catch(e){console.error("加载医生列表失败:",e),h.msgError("加载医生列表失败")}finally{f.value=!1}},E=async()=>{s.selectedTime="",s.date="",_.value=[],r.value=[],l.value&&await L()},L=async()=>{if(l.value)try{f.value=!0;const e=d().format("YYYY-MM-DD"),o=d().add(6,"day").format("YYYY-MM-DD"),t=await le({doctor_id:l.value,start_date:e,end_date:o,status:1});if(t!=null&&t.lists&&t.lists.length>0){if(r.value=[...new Set(t.lists.map(n=>n.date))],r.value.sort(),await te(),r.value.length>0){const n=d().format("YYYY-MM-DD"),i=r.value.includes(n)?n:r.value[0];M(i)}}else r.value=[],h.msgWarning("该医生暂无排班")}catch(e){console.error("加载医生排班失败:",e),h.msgError("加载医生排班失败"),r.value=[]}finally{f.value=!1}},M=e=>{s.date=e,s.selectedTime="",l.value&&S()},S=async(e=!1)=>{if(!(!l.value||!s.date)){if(T){console.log("正在加载中,跳过本次请求");return}try{T=!0,e||(f.value=!0);const o=await ne({doctor_id:l.value,appointment_date:s.date,period:"all"});_.value=((o==null?void 0:o.slots)||[]).map(t=>({time:t.time,available:t.available,hasAppointment:!!(t.has_appointment??t.available===!1),quota:t.available?1:0}))}catch(o){console.error("加载时间段失败:",o),e||h.msgError("加载时间段失败"),_.value=[]}finally{T=!1,e||(f.value=!1)}}},j=e=>{if(!e.available){h.msgWarning("该时间段不可预约");return}s.selectedTime=e.time},q=()=>{x(),D=window.setInterval(()=>{l.value&&s.date&&S(!0)},5e3)},x=()=>{D&&(clearInterval(D),D=null)};return G(()=>{I(),q()}),U(()=>{x()}),(e,o)=>{const t=J,n=H,i=O,p=Q,F=X,N=K,z=ee;return c(),m("div",ie,[b(z,{shadow:"never"},{header:u(()=>[...o[1]||(o[1]=[v("div",{class:"card-header"},[v("span",null,"医生排班管理")],-1)])]),default:u(()=>[b(N,{model:s,"label-width":"100px",class:"paiban-form"},{default:u(()=>[b(i,{label:"选择医生:"},{default:u(()=>[v("div",ce,[b(n,{modelValue:l.value,"onUpdate:modelValue":o[0]||(o[0]=a=>l.value=a),onChange:E},{default:u(()=>[(c(!0),m(w,null,C(g.value,a=>(c(),k(t,{key:a.id,value:a.id,class:"doctor-radio"},{default:u(()=>[B(Y(a.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])]),_:1}),b(i,{label:"排班时间:"},{default:u(()=>[l.value?l.value&&r.value.length===0?(c(),k(p,{key:1,description:"该医生暂无排班","image-size":80})):(c(),m("div",de,[v("div",ue,[(c(!0),m(w,null,C($.value,a=>(c(),k(F,{key:a.date,type:s.date===a.date?"primary":"",onClick:P=>M(a.date),class:"date-button"},{default:u(()=>[B(Y(a.label),1)]),_:2},1032,["type","onClick"]))),128))]),s.date?(c(),m("div",me,[v("div",ve,[(c(!0),m(w,null,C(A.value,a=>(c(),m("div",{key:a.time,class:R(["time-slot-item",{available:a.available,unavailable:!a.available,selected:s.selectedTime===a.time}]),onClick:P=>j(a)},[v("div",_e,Y(a.time),1),v("div",{class:R(["slot-status",{"status-available":a.available}])},Y(a.available?"可约":a.hasAppointment?"已约":"空号"),3)],10,fe))),128))])])):Z("",!0)])):(c(),k(p,{key:0,description:"请先选择医生","image-size":80}))]),_:1})]),_:1},8,["model"])]),_:1})])}}}),Ye=re(pe,[["__scopeId","data-v-48cf251c"]]);export{Ye as default}; diff --git a/server/public/admin/assets/patient-Bz8-LT2R.js b/server/public/admin/assets/patient-B_ifBl-W.js similarity index 88% rename from server/public/admin/assets/patient-Bz8-LT2R.js rename to server/public/admin/assets/patient-B_ifBl-W.js index b2667750f..8468ddf8a 100644 --- a/server/public/admin/assets/patient-Bz8-LT2R.js +++ b/server/public/admin/assets/patient-B_ifBl-W.js @@ -1 +1 @@ -import{r as o}from"./index-Dxvz9lb1.js";function r(t){return o.get({url:"/doctor.appointment/lists",params:t})}function n(t){return o.get({url:"/doctor.appointment/reception",params:t})}function i(t){return o.post({url:"/doctor.appointment/notifyAssistant",params:t})}function a(t){return o.post({url:"/doctor.appointment/addDoctorNote",params:t})}function c(t){return o.get({url:"/doctor.appointment/doctorNotes",params:t})}function s(t){return o.post({url:"/doctor.appointment/deleteDoctorNoteImage",params:t})}export{a,r as b,s as d,c as g,i as n,n as r}; +import{r as o}from"./index-Bkarz3gO.js";function r(t){return o.get({url:"/doctor.appointment/lists",params:t})}function n(t){return o.get({url:"/doctor.appointment/reception",params:t})}function i(t){return o.post({url:"/doctor.appointment/notifyAssistant",params:t})}function a(t){return o.post({url:"/doctor.appointment/addDoctorNote",params:t})}function c(t){return o.get({url:"/doctor.appointment/doctorNotes",params:t})}function s(t){return o.post({url:"/doctor.appointment/deleteDoctorNoteImage",params:t})}export{a,r as b,s as d,c as g,i as n,n as r}; diff --git a/server/public/admin/assets/patient-call-DRgV1Jkm.js b/server/public/admin/assets/patient-call-DSml2oNK.js similarity index 99% rename from server/public/admin/assets/patient-call-DRgV1Jkm.js rename to server/public/admin/assets/patient-call-DSml2oNK.js index 86a330650..81fbc175d 100644 --- a/server/public/admin/assets/patient-call-DRgV1Jkm.js +++ b/server/public/admin/assets/patient-call-DSml2oNK.js @@ -1 +1 @@ -import{o as H,ap as J,E as a,dq as C,n as O,aq as Q,q as f,r as p,v as c,D as r,bo as X,s as n,L as d,T as w,O as P,K as Y,P as h,w as Z,ae as ee,u as L,dc as N,dr as V,bC as le,bj as te,p as oe,M as y,ds as k,dt as T,du as E,dv as ae,f as z,dw as A}from"./.pnpm-CyuAWpdG.js";import{u as ne,r as se,_ as ie}from"./index-Dxvz9lb1.js";const ce={class:"patient-test"},re={key:0,class:"init-section"},ue={key:1,class:"status"},ve={class:"flex items-center"},fe={class:"mt-2"},de={key:0},ge={key:0,class:"call-actions mt-4"},pe={key:2,id:"call-container",class:"call-container phone-call-shell"},me={key:3,class:"waiting-container"},Ie={key:4,class:"phone-call-kit-host phone-call-kit-host--offscreen","aria-hidden":"true"},_e=H({__name:"patient-call",setup(Ce){const B=ne(),S=oe(()=>B.userInfo),U=y(!1),m=y(!1),D=y(""),t=y(!1),s=y(!1),v=y(null),g=y(null);let I=null;J(()=>{M()});function b(l){try{const e=k.getData(T.CALL,E.CALL_STATUS),u=k.getData(T.CALL,E.CALL_ROLE),i=!!k.getData(T.CALL,E.IS_GROUP),_=t.value;if(e==="calling"&&u===ae.CALLEE){t.value=!0,v.value={isGroup:i,from:l},_||(a.info("检测到待接听的来电,请点击接听"),z({title:"来电提醒",message:"有待接听的视频通话",type:"warning",duration:0,position:"top-right"})),s.value=!1;return}if(e==="connected"){t.value=!1,v.value=null,s.value=!0;return}e==="idle"&&(t.value||s.value)&&(t.value=!1,s.value=!1,v.value=null)}catch(e){console.warn("syncIncomingFromTUIStore:",l,e)}}function x(){b("watch")}function G(){I&&(I(),I=null);const l={[E.CALL_STATUS]:x,[E.CALL_ROLE]:x};try{k.watch(T.CALL,l),I=()=>{try{k.unwatch(T.CALL,l)}catch{}}}catch(e){console.warn("TUIStore.watch 失败:",e)}}const R=()=>{g.value&&clearInterval(g.value);let l=0;const e=90;g.value=setInterval(()=>{l+=1,b("poll"),l>=e&&g.value&&(clearInterval(g.value),g.value=null)},500)},q=({oldStatus:l,newStatus:e})=>{console.log("========================================"),console.log("=== 通话状态变化回调触发 ==="),console.log("oldStatus:",l),console.log("newStatus:",e),console.log("STATUS 常量:",A),console.log("========================================"),e===A.BE_INVITED&&(console.log(">>> 收到来电邀请"),t.value=!0,v.value={oldStatus:l,newStatus:e},z({title:"来电提醒",message:"收到视频通话请求",type:"info",duration:0,position:"top-right"}),a.success("收到来电,请点击接听按钮")),(e===A.CALLING_C2C_VIDEO||e===A.CALLING_GROUP_VIDEO)&&(console.log(">>> 通话已接通"),a.success("通话已接通"),t.value=!1,s.value=!0),e===A.IDLE&&(t.value||s.value)&&(console.log(">>> 通话已结束"),t.value=!1,s.value=!1,v.value=null,a.info("通话已结束"))},M=async()=>{try{U.value=!0;const l=S.value.id;if(!l)throw new Error("未获取到当前用户ID,请重新登录");console.log("=== 开始初始化医疗助理端 ==="),console.log("当前用户ID:",l),a.info("正在获取签名...");const e=await se.get({url:"/tcm.diagnosis/getDoctorSignature",params:{patient_id:l}});if(!e)throw new Error("获取签名失败");const{sdkAppId:u,userId:i,userSig:_}=e;if(D.value=i,console.log("医疗助理签名获取成功:",{userId:i,sdkAppId:u,userSigLength:_.length}),console.log("完整签名信息:",e),a.info("正在初始化通话组件..."),console.log("=== 开始调用 TUICallKitServer.init ==="),!C||typeof C.init!="function")throw new Error("TUICallKitServer 未正确加载,请刷新页面重试");try{await C.init({userID:i,userSig:_,SDKAppID:Number(u)})}catch(o){console.warn("TUICallKitServer.init 出现错误,但继续执行:",o)}console.log("=== TUICallKitServer.init 完成 ===");const K={statusChanged:q,onError:o=>{console.error("=== TUICallKit 错误回调 ===",o),a.error(`通话错误: ${(o==null?void 0:o.message)||"未知错误"}`)},onInvited:o=>{console.log("=== 收到邀请回调 (onInvited) ===",o),a.info("收到通话邀请 (onInvited)")},afterCalling:()=>{console.log("=== afterCalling 回调 ===")}};try{C.setCallback(K)}catch(o){console.warn("设置回调时出现错误,但继续执行:",o)}console.log("回调设置完成"),a.info("等待初始化完成..."),await new Promise(o=>setTimeout(o,2e3)),m.value=!0,await O(),await new Promise(o=>setTimeout(o,300)),G(),b("post-init"),R(),a.success("医疗助理端初始化成功,等待来电..."),console.log("=== 医疗助理端初始化完成 ==="),console.log("userId:",i),console.log("等待来电中..."),console.log("请在医生端发起群组通话,目标用户ID应该是:",i)}catch(l){console.error("=== 初始化失败 ===",l),a.error(l.message||"初始化失败")}finally{U.value=!1}};async function F(){var l;await O(),await new Promise(e=>setTimeout(e,400));try{const e=C;if(typeof e.closeMicrophone=="function")return await e.closeMicrophone(),!0;const u=(l=e.getTUICallEngineInstance)==null?void 0:l.call(e);if(u&&typeof u.closeMicrophone=="function")return await u.closeMicrophone(),!0}catch(e){console.warn("接听后关闭麦克风失败(可在通话条手动关麦):",e)}return!1}const j=async()=>{try{console.log("接听来电"),await C.accept(),a.success("已接听通话"),t.value=!1,s.value=!0,await F()&&a.info("已关闭本地麦克风")}catch(l){console.error("接听失败:",l),a.error(l.message||"接听失败")}},W=async()=>{try{console.log("拒绝来电"),await C.reject(),a.info("已拒绝通话"),t.value=!1,v.value=null}catch(l){console.error("拒绝失败:",l),a.error(l.message||"拒绝失败")}},$=()=>{m.value=!1,D.value="",t.value=!1,s.value=!1,v.value=null};return Q(()=>{g.value&&(clearInterval(g.value),g.value=null),I&&(I(),I=null),m.value&&(t.value=!1,s.value=!1,v.value=null)}),(l,e)=>{const u=X,i=Y,_=Z,K=le,o=te;return f(),p("div",ce,[c(o,null,{header:r(()=>[...e[0]||(e[0]=[n("div",{class:"card-header"},[n("span",null,"医疗助理端 - 接听来电")],-1)])]),default:r(()=>[m.value?h("",!0):(f(),p("div",re,[c(u,{type:"info",closable:!1,class:"mb-4"},{default:r(()=>[n("p",null,[e[1]||(e[1]=n("strong",null,"当前登录用户:",-1)),d(" "+w(S.value.nickname||S.value.name||"未知"),1)]),n("p",null,[e[2]||(e[2]=n("strong",null,"用户ID:",-1)),d(" "+w(S.value.id||"未获取"),1)]),e[3]||(e[3]=n("p",null,[n("strong",null,"状态:"),d(" 正在初始化...")],-1))]),_:1}),U.value?h("",!0):(f(),P(i,{key:0,type:"primary",onClick:M,loading:U.value,size:"large"},{default:r(()=>[...e[4]||(e[4]=[d(" 重新初始化 ",-1)])]),_:1},8,["loading"]))])),m.value?(f(),p("div",ue,[c(u,{type:t.value?"warning":"success",closable:!1},{title:r(()=>[n("div",ve,[c(_,{class:ee(["mr-2",{"animate-pulse":t.value}])},{default:r(()=>[c(L(N))]),_:1},8,["class"]),n("span",null,w(t.value?"收到来电!":"医疗助理端已初始化,等待来电..."),1)])]),default:r(()=>[n("div",fe,[n("p",null,[e[5]||(e[5]=n("strong",null,"医疗助理ID:",-1)),d(" "+w(D.value),1)]),n("p",null,[e[6]||(e[6]=n("strong",null,"状态:",-1)),d(" "+w(t.value?"来电中":"在线"),1)]),t.value&&v.value?(f(),p("p",de,[e[7]||(e[7]=n("strong",null,"通话类型:",-1)),d(" "+w(v.value.isGroup?"群组视频通话":"视频通话"),1)])):h("",!0)])]),_:1},8,["type"]),t.value?(f(),p("div",ge,[c(i,{type:"success",size:"large",onClick:j,icon:L(N)},{default:r(()=>[...e[8]||(e[8]=[d(" 接听 ",-1)])]),_:1},8,["icon"]),c(i,{type:"danger",size:"large",onClick:W},{default:r(()=>[...e[9]||(e[9]=[d(" 拒绝 ",-1)])]),_:1})])):(f(),P(i,{key:1,type:"danger",onClick:$,class:"mt-4"},{default:r(()=>[...e[10]||(e[10]=[d(" 重置 ",-1)])]),_:1}))])):h("",!0),t.value||s.value?(f(),p("div",pe,[c(L(V),{class:"TUICallKit-mobile"})])):m.value?(f(),p("div",me,[c(K,{description:"等待来电中..."},{image:r(()=>[c(_,{size:80,color:"#909399"},{default:r(()=>[c(L(N))]),_:1})]),_:1})])):h("",!0),m.value&&!t.value&&!s.value?(f(),p("div",Ie,[c(L(V),{class:"TUICallKit-mobile"})])):h("",!0)]),_:1})])}}}),he=ie(_e,[["__scopeId","data-v-56c22385"]]);export{he as default}; +import{o as H,ap as J,E as a,dq as C,n as O,aq as Q,q as f,r as p,v as c,D as r,bo as X,s as n,L as d,T as w,O as P,K as Y,P as h,w as Z,ae as ee,u as L,dc as N,dr as V,bC as le,bj as te,p as oe,M as y,ds as k,dt as T,du as E,dv as ae,f as z,dw as A}from"./.pnpm-CyuAWpdG.js";import{u as ne,r as se,_ as ie}from"./index-Bkarz3gO.js";const ce={class:"patient-test"},re={key:0,class:"init-section"},ue={key:1,class:"status"},ve={class:"flex items-center"},fe={class:"mt-2"},de={key:0},ge={key:0,class:"call-actions mt-4"},pe={key:2,id:"call-container",class:"call-container phone-call-shell"},me={key:3,class:"waiting-container"},Ie={key:4,class:"phone-call-kit-host phone-call-kit-host--offscreen","aria-hidden":"true"},_e=H({__name:"patient-call",setup(Ce){const B=ne(),S=oe(()=>B.userInfo),U=y(!1),m=y(!1),D=y(""),t=y(!1),s=y(!1),v=y(null),g=y(null);let I=null;J(()=>{M()});function b(l){try{const e=k.getData(T.CALL,E.CALL_STATUS),u=k.getData(T.CALL,E.CALL_ROLE),i=!!k.getData(T.CALL,E.IS_GROUP),_=t.value;if(e==="calling"&&u===ae.CALLEE){t.value=!0,v.value={isGroup:i,from:l},_||(a.info("检测到待接听的来电,请点击接听"),z({title:"来电提醒",message:"有待接听的视频通话",type:"warning",duration:0,position:"top-right"})),s.value=!1;return}if(e==="connected"){t.value=!1,v.value=null,s.value=!0;return}e==="idle"&&(t.value||s.value)&&(t.value=!1,s.value=!1,v.value=null)}catch(e){console.warn("syncIncomingFromTUIStore:",l,e)}}function x(){b("watch")}function G(){I&&(I(),I=null);const l={[E.CALL_STATUS]:x,[E.CALL_ROLE]:x};try{k.watch(T.CALL,l),I=()=>{try{k.unwatch(T.CALL,l)}catch{}}}catch(e){console.warn("TUIStore.watch 失败:",e)}}const R=()=>{g.value&&clearInterval(g.value);let l=0;const e=90;g.value=setInterval(()=>{l+=1,b("poll"),l>=e&&g.value&&(clearInterval(g.value),g.value=null)},500)},q=({oldStatus:l,newStatus:e})=>{console.log("========================================"),console.log("=== 通话状态变化回调触发 ==="),console.log("oldStatus:",l),console.log("newStatus:",e),console.log("STATUS 常量:",A),console.log("========================================"),e===A.BE_INVITED&&(console.log(">>> 收到来电邀请"),t.value=!0,v.value={oldStatus:l,newStatus:e},z({title:"来电提醒",message:"收到视频通话请求",type:"info",duration:0,position:"top-right"}),a.success("收到来电,请点击接听按钮")),(e===A.CALLING_C2C_VIDEO||e===A.CALLING_GROUP_VIDEO)&&(console.log(">>> 通话已接通"),a.success("通话已接通"),t.value=!1,s.value=!0),e===A.IDLE&&(t.value||s.value)&&(console.log(">>> 通话已结束"),t.value=!1,s.value=!1,v.value=null,a.info("通话已结束"))},M=async()=>{try{U.value=!0;const l=S.value.id;if(!l)throw new Error("未获取到当前用户ID,请重新登录");console.log("=== 开始初始化医疗助理端 ==="),console.log("当前用户ID:",l),a.info("正在获取签名...");const e=await se.get({url:"/tcm.diagnosis/getDoctorSignature",params:{patient_id:l}});if(!e)throw new Error("获取签名失败");const{sdkAppId:u,userId:i,userSig:_}=e;if(D.value=i,console.log("医疗助理签名获取成功:",{userId:i,sdkAppId:u,userSigLength:_.length}),console.log("完整签名信息:",e),a.info("正在初始化通话组件..."),console.log("=== 开始调用 TUICallKitServer.init ==="),!C||typeof C.init!="function")throw new Error("TUICallKitServer 未正确加载,请刷新页面重试");try{await C.init({userID:i,userSig:_,SDKAppID:Number(u)})}catch(o){console.warn("TUICallKitServer.init 出现错误,但继续执行:",o)}console.log("=== TUICallKitServer.init 完成 ===");const K={statusChanged:q,onError:o=>{console.error("=== TUICallKit 错误回调 ===",o),a.error(`通话错误: ${(o==null?void 0:o.message)||"未知错误"}`)},onInvited:o=>{console.log("=== 收到邀请回调 (onInvited) ===",o),a.info("收到通话邀请 (onInvited)")},afterCalling:()=>{console.log("=== afterCalling 回调 ===")}};try{C.setCallback(K)}catch(o){console.warn("设置回调时出现错误,但继续执行:",o)}console.log("回调设置完成"),a.info("等待初始化完成..."),await new Promise(o=>setTimeout(o,2e3)),m.value=!0,await O(),await new Promise(o=>setTimeout(o,300)),G(),b("post-init"),R(),a.success("医疗助理端初始化成功,等待来电..."),console.log("=== 医疗助理端初始化完成 ==="),console.log("userId:",i),console.log("等待来电中..."),console.log("请在医生端发起群组通话,目标用户ID应该是:",i)}catch(l){console.error("=== 初始化失败 ===",l),a.error(l.message||"初始化失败")}finally{U.value=!1}};async function F(){var l;await O(),await new Promise(e=>setTimeout(e,400));try{const e=C;if(typeof e.closeMicrophone=="function")return await e.closeMicrophone(),!0;const u=(l=e.getTUICallEngineInstance)==null?void 0:l.call(e);if(u&&typeof u.closeMicrophone=="function")return await u.closeMicrophone(),!0}catch(e){console.warn("接听后关闭麦克风失败(可在通话条手动关麦):",e)}return!1}const j=async()=>{try{console.log("接听来电"),await C.accept(),a.success("已接听通话"),t.value=!1,s.value=!0,await F()&&a.info("已关闭本地麦克风")}catch(l){console.error("接听失败:",l),a.error(l.message||"接听失败")}},W=async()=>{try{console.log("拒绝来电"),await C.reject(),a.info("已拒绝通话"),t.value=!1,v.value=null}catch(l){console.error("拒绝失败:",l),a.error(l.message||"拒绝失败")}},$=()=>{m.value=!1,D.value="",t.value=!1,s.value=!1,v.value=null};return Q(()=>{g.value&&(clearInterval(g.value),g.value=null),I&&(I(),I=null),m.value&&(t.value=!1,s.value=!1,v.value=null)}),(l,e)=>{const u=X,i=Y,_=Z,K=le,o=te;return f(),p("div",ce,[c(o,null,{header:r(()=>[...e[0]||(e[0]=[n("div",{class:"card-header"},[n("span",null,"医疗助理端 - 接听来电")],-1)])]),default:r(()=>[m.value?h("",!0):(f(),p("div",re,[c(u,{type:"info",closable:!1,class:"mb-4"},{default:r(()=>[n("p",null,[e[1]||(e[1]=n("strong",null,"当前登录用户:",-1)),d(" "+w(S.value.nickname||S.value.name||"未知"),1)]),n("p",null,[e[2]||(e[2]=n("strong",null,"用户ID:",-1)),d(" "+w(S.value.id||"未获取"),1)]),e[3]||(e[3]=n("p",null,[n("strong",null,"状态:"),d(" 正在初始化...")],-1))]),_:1}),U.value?h("",!0):(f(),P(i,{key:0,type:"primary",onClick:M,loading:U.value,size:"large"},{default:r(()=>[...e[4]||(e[4]=[d(" 重新初始化 ",-1)])]),_:1},8,["loading"]))])),m.value?(f(),p("div",ue,[c(u,{type:t.value?"warning":"success",closable:!1},{title:r(()=>[n("div",ve,[c(_,{class:ee(["mr-2",{"animate-pulse":t.value}])},{default:r(()=>[c(L(N))]),_:1},8,["class"]),n("span",null,w(t.value?"收到来电!":"医疗助理端已初始化,等待来电..."),1)])]),default:r(()=>[n("div",fe,[n("p",null,[e[5]||(e[5]=n("strong",null,"医疗助理ID:",-1)),d(" "+w(D.value),1)]),n("p",null,[e[6]||(e[6]=n("strong",null,"状态:",-1)),d(" "+w(t.value?"来电中":"在线"),1)]),t.value&&v.value?(f(),p("p",de,[e[7]||(e[7]=n("strong",null,"通话类型:",-1)),d(" "+w(v.value.isGroup?"群组视频通话":"视频通话"),1)])):h("",!0)])]),_:1},8,["type"]),t.value?(f(),p("div",ge,[c(i,{type:"success",size:"large",onClick:j,icon:L(N)},{default:r(()=>[...e[8]||(e[8]=[d(" 接听 ",-1)])]),_:1},8,["icon"]),c(i,{type:"danger",size:"large",onClick:W},{default:r(()=>[...e[9]||(e[9]=[d(" 拒绝 ",-1)])]),_:1})])):(f(),P(i,{key:1,type:"danger",onClick:$,class:"mt-4"},{default:r(()=>[...e[10]||(e[10]=[d(" 重置 ",-1)])]),_:1}))])):h("",!0),t.value||s.value?(f(),p("div",pe,[c(L(V),{class:"TUICallKit-mobile"})])):m.value?(f(),p("div",me,[c(K,{description:"等待来电中..."},{image:r(()=>[c(_,{size:80,color:"#909399"},{default:r(()=>[c(L(N))]),_:1})]),_:1})])):h("",!0),m.value&&!t.value&&!s.value?(f(),p("div",Ie,[c(L(V),{class:"TUICallKit-mobile"})])):h("",!0)]),_:1})])}}}),he=ie(_e,[["__scopeId","data-v-56c22385"]]);export{he as default}; diff --git a/server/public/admin/assets/pay-Ia2pwkX0.js b/server/public/admin/assets/pay-BmHqMA5y.js similarity index 85% rename from server/public/admin/assets/pay-Ia2pwkX0.js rename to server/public/admin/assets/pay-BmHqMA5y.js index c0c10ab9a..cc02b61f8 100644 --- a/server/public/admin/assets/pay-Ia2pwkX0.js +++ b/server/public/admin/assets/pay-BmHqMA5y.js @@ -1 +1 @@ -import{r as a}from"./index-Dxvz9lb1.js";function e(){return a.get({url:"/setting.pay.pay_way/getPayWay"})}function s(t){return a.post({url:"/setting.pay.pay_way/setPayWay",params:t})}function y(){return a.get({url:"/setting.pay.pay_config/lists"})}function g(t){return a.post({url:"/setting.pay.pay_config/setConfig",params:t})}function i(t){return a.get({url:"/setting.pay.pay_config/getConfig",params:t})}export{y as a,e as b,s as c,i as g,g as s}; +import{r as a}from"./index-Bkarz3gO.js";function e(){return a.get({url:"/setting.pay.pay_way/getPayWay"})}function s(t){return a.post({url:"/setting.pay.pay_way/setPayWay",params:t})}function y(){return a.get({url:"/setting.pay.pay_config/lists"})}function g(t){return a.post({url:"/setting.pay.pay_config/setConfig",params:t})}function i(t){return a.get({url:"/setting.pay.pay_config/getConfig",params:t})}export{y as a,e as b,s as c,i as g,g as s}; diff --git a/server/public/admin/assets/pc-elPwo4i-.js b/server/public/admin/assets/pc-BYVrCORa.js similarity index 95% rename from server/public/admin/assets/pc-elPwo4i-.js rename to server/public/admin/assets/pc-BYVrCORa.js index 23af2b485..d30372f07 100644 --- a/server/public/admin/assets/pc-elPwo4i-.js +++ b/server/public/admin/assets/pc-BYVrCORa.js @@ -1 +1 @@ -import{o as p,x,bp as y,q as _,r as v,v as t,D as o,s as D,u as l,K as g,L as s,bd as w,bb as E,T as V,aA as k,ac as B,O as C,bj as N,M as P}from"./.pnpm-CyuAWpdG.js";import{b as q}from"./decoration-9ln5Pyvl.js";import"./index-Dxvz9lb1.js";const F={class:"decoration-pc min-w-[1100px]"},I=p({name:"decorationPc"}),L=p({...I,setup(T){const a=P({update_time:"",pc_url:""});return(async()=>{try{a.value=await q()}catch(r){console.log(r)}})(),(r,e)=>{const n=g,d=x("router-link"),c=E,i=k,u=w,m=N,f=y("copy");return _(),v("div",F,[t(m,{shadow:"never",class:"!border-none flex-1 flex"},{default:o(()=>[e[3]||(e[3]=D("div",{class:"text-xl font-medium"},"首页装修",-1)),t(d,{to:{path:"/decoration/pc_details",query:{url:l(a).pc_url}}},{default:o(()=>[t(n,{class:"m-5",type:"primary",size:"large"},{default:o(()=>[...e[1]||(e[1]=[s("去装修",-1)])]),_:1})]),_:1},8,["to"]),t(u,null,{default:o(()=>[t(c,{label:"最近更新"},{default:o(()=>[s(V(l(a).update_time),1)]),_:1}),t(c,{label:"PC端链接"},{default:o(()=>[t(i,{style:{width:"350px"},modelValue:l(a).pc_url,"onUpdate:modelValue":e[0]||(e[0]=b=>l(a).pc_url=b),disabled:""},null,8,["modelValue"]),B((_(),C(n,{type:"primary"},{default:o(()=>[...e[2]||(e[2]=[s("复制",-1)])]),_:1})),[[f,l(a).pc_url]])]),_:1})]),_:1})]),_:1})])}}});export{L as default}; +import{o as p,x,bp as y,q as _,r as v,v as t,D as o,s as D,u as l,K as g,L as s,bd as w,bb as E,T as V,aA as k,ac as B,O as C,bj as N,M as P}from"./.pnpm-CyuAWpdG.js";import{b as q}from"./decoration-BCfnNTDP.js";import"./index-Bkarz3gO.js";const F={class:"decoration-pc min-w-[1100px]"},I=p({name:"decorationPc"}),L=p({...I,setup(T){const a=P({update_time:"",pc_url:""});return(async()=>{try{a.value=await q()}catch(r){console.log(r)}})(),(r,e)=>{const n=g,d=x("router-link"),c=E,i=k,u=w,m=N,f=y("copy");return _(),v("div",F,[t(m,{shadow:"never",class:"!border-none flex-1 flex"},{default:o(()=>[e[3]||(e[3]=D("div",{class:"text-xl font-medium"},"首页装修",-1)),t(d,{to:{path:"/decoration/pc_details",query:{url:l(a).pc_url}}},{default:o(()=>[t(n,{class:"m-5",type:"primary",size:"large"},{default:o(()=>[...e[1]||(e[1]=[s("去装修",-1)])]),_:1})]),_:1},8,["to"]),t(u,null,{default:o(()=>[t(c,{label:"最近更新"},{default:o(()=>[s(V(l(a).update_time),1)]),_:1}),t(c,{label:"PC端链接"},{default:o(()=>[t(i,{style:{width:"350px"},modelValue:l(a).pc_url,"onUpdate:modelValue":e[0]||(e[0]=b=>l(a).pc_url=b),disabled:""},null,8,["modelValue"]),B((_(),C(n,{type:"primary"},{default:o(()=>[...e[2]||(e[2]=[s("复制",-1)])]),_:1})),[[f,l(a).pc_url]])]),_:1})]),_:1})]),_:1})])}}});export{L as default}; diff --git a/server/public/admin/assets/pc_details-uATI737f.js b/server/public/admin/assets/pc_details-C9ov4w14.js similarity index 50% rename from server/public/admin/assets/pc_details-uATI737f.js rename to server/public/admin/assets/pc_details-C9ov4w14.js index cf9cc6991..6f5f90027 100644 --- a/server/public/admin/assets/pc_details-uATI737f.js +++ b/server/public/admin/assets/pc_details-C9ov4w14.js @@ -1 +1 @@ -import{o as v,W as k,R as C,bp as B,q as d,r as P,v as s,D as p,s as u,K as V,u as n,cv as E,L as f,ac as N,O as h,bj as I,C as O,M as _,p as j,aC as M}from"./.pnpm-CyuAWpdG.js";import{a as R,s as S}from"./decoration-9ln5Pyvl.js";import{j as J,_ as T}from"./index-Dxvz9lb1.js";import W from"./preview-pc-ByidwxXs.js";import"./index-DdPJHEsY.js";import"./attr-BKcZmDiX.js";import"./index-ClBYIwNX.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./content.vue_vue_type_script_setup_true_lang-DVlBS5Y8.js";import"./decoration-img-DKpVnT4z.js";import"./attr.vue_vue_type_script_setup_true_lang-DQUc65nD.js";import"./content-CkQUB7ti.js";import"./attr.vue_vue_type_script_setup_true_lang-Co9N5gOC.js";import"./content.vue_vue_type_script_setup_true_lang-D3yhrH9m.js";import"./attr.vue_vue_type_script_setup_true_lang-BUrcLo0c.js";import"./add-nav.vue_vue_type_script_setup_true_lang-CaeukMqg.js";import"./content-BtlOdmdD.js";import"./attr.vue_vue_type_script_setup_true_lang-kgBs74gd.js";import"./content.vue_vue_type_script_setup_true_lang-CwwLmi2B.js";import"./attr.vue_vue_type_script_setup_true_lang-Bkj1p-jl.js";import"./content-DqDTOak9.js";import"./attr.vue_vue_type_script_setup_true_lang-BWENGozb.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./content-0LXu-5MK.js";import"./content.vue_vue_type_script_setup_true_lang-BlC3oWQE.js";import"./attr.vue_vue_type_script_setup_true_lang-jrtitgMf.js";import"./content-C5W1CaMe.js";import"./attr.vue_vue_type_script_setup_true_lang-CsV4MUsa.js";import"./content.vue_vue_type_script_setup_true_lang-Unv1Zxh1.js";import"./attr.vue_vue_type_script_setup_true_lang-ObQLkrtE.js";import"./content-DdjhpUgB.js";const q={class:"decoration-pages min-w-[1100px]"},H={class:"flex justify-between w-full"},K={class:"flex-1 h-full"},L=v({name:"decorationPc"}),U=v({...L,setup(z){const g=k();let m;(t=>{t.HOME="4"})(m||(m={}));const r=M({4:{id:4,type:4,name:"首页装修",pageData:[]}}),a=_("4"),o=_(0),i=j(()=>{var t;return((t=r[a.value])==null?void 0:t.pageData)??[]}),D=async()=>{await J.confirm("确定离开此页面?系统可能不会保存您所做的更改。"),g.back()},c=async()=>{const t=await R({id:a.value});r[String(t.id)].pageData=JSON.parse(t.data),o.value=i.value.findIndex(e=>!e.disabled)},w=async()=>{await S({...r[a.value],data:JSON.stringify(r[a.value].pageData)}),c()};return C(a,()=>{o.value=i.value.findIndex(t=>!t.disabled),c()},{immediate:!0}),(t,e)=>{const l=V,b=I,x=B("perms");return d(),P("div",q,[s(b,{shadow:"never",class:"!border-none !rounded-none !bg-primary"},{default:p(()=>[u("div",H,[s(l,{link:"",type:"primary",icon:n(E),style:{color:"#fff"},onClick:D},{default:p(()=>[...e[1]||(e[1]=[f(" 返回 ",-1)])]),_:1},8,["icon"]),N((d(),h(l,{onClick:w},{default:p(()=>[...e[2]||(e[2]=[f(" 保存 ",-1)])]),_:1})),[[x,["decorate:pages:save"]]])])]),_:1}),u("div",K,[s(W,{modelValue:n(o),"onUpdate:modelValue":e[0]||(e[0]=y=>O(o)?o.value=y:null),pageData:n(i)},null,8,["modelValue","pageData"])])])}}}),Ot=T(U,[["__scopeId","data-v-9bc87a24"]]);export{Ot as default}; +import{o as v,W as k,R as C,bp as B,q as d,r as P,v as s,D as p,s as u,K as V,u as n,cv as E,L as f,ac as N,O as h,bj as I,C as O,M as _,p as j,aC as M}from"./.pnpm-CyuAWpdG.js";import{a as R,s as S}from"./decoration-BCfnNTDP.js";import{j as J,_ as T}from"./index-Bkarz3gO.js";import W from"./preview-pc-C4HvW1pf.js";import"./index-BLw2qqEh.js";import"./attr-DWgf0zU2.js";import"./index-Cqk_cdo9.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./content.vue_vue_type_script_setup_true_lang-3GiNjvv7.js";import"./decoration-img-SoINHtbg.js";import"./attr.vue_vue_type_script_setup_true_lang-BoEBITiA.js";import"./content-BR-B7Y89.js";import"./attr.vue_vue_type_script_setup_true_lang-VLQINM6l.js";import"./content.vue_vue_type_script_setup_true_lang-DJb4aHFp.js";import"./attr.vue_vue_type_script_setup_true_lang-BsVB4T8K.js";import"./add-nav.vue_vue_type_script_setup_true_lang-ByQYZkB9.js";import"./content-CPrgdURU.js";import"./attr.vue_vue_type_script_setup_true_lang-DyWBgKkz.js";import"./content.vue_vue_type_script_setup_true_lang-DIToE7Db.js";import"./attr.vue_vue_type_script_setup_true_lang-Bkj1p-jl.js";import"./content-B1kkCzVQ.js";import"./attr.vue_vue_type_script_setup_true_lang-DEQz3dX_.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./content-DLUkNAW_.js";import"./content.vue_vue_type_script_setup_true_lang-D7k_-QjC.js";import"./attr.vue_vue_type_script_setup_true_lang-jrtitgMf.js";import"./content-C1VdJnCo.js";import"./attr.vue_vue_type_script_setup_true_lang-BPT_wucL.js";import"./content.vue_vue_type_script_setup_true_lang-_A_7DW4P.js";import"./attr.vue_vue_type_script_setup_true_lang-ObQLkrtE.js";import"./content-DraD2KOm.js";const q={class:"decoration-pages min-w-[1100px]"},H={class:"flex justify-between w-full"},K={class:"flex-1 h-full"},L=v({name:"decorationPc"}),U=v({...L,setup(z){const g=k();let m;(t=>{t.HOME="4"})(m||(m={}));const r=M({4:{id:4,type:4,name:"首页装修",pageData:[]}}),a=_("4"),o=_(0),i=j(()=>{var t;return((t=r[a.value])==null?void 0:t.pageData)??[]}),D=async()=>{await J.confirm("确定离开此页面?系统可能不会保存您所做的更改。"),g.back()},c=async()=>{const t=await R({id:a.value});r[String(t.id)].pageData=JSON.parse(t.data),o.value=i.value.findIndex(e=>!e.disabled)},w=async()=>{await S({...r[a.value],data:JSON.stringify(r[a.value].pageData)}),c()};return C(a,()=>{o.value=i.value.findIndex(t=>!t.disabled),c()},{immediate:!0}),(t,e)=>{const l=V,b=I,x=B("perms");return d(),P("div",q,[s(b,{shadow:"never",class:"!border-none !rounded-none !bg-primary"},{default:p(()=>[u("div",H,[s(l,{link:"",type:"primary",icon:n(E),style:{color:"#fff"},onClick:D},{default:p(()=>[...e[1]||(e[1]=[f(" 返回 ",-1)])]),_:1},8,["icon"]),N((d(),h(l,{onClick:w},{default:p(()=>[...e[2]||(e[2]=[f(" 保存 ",-1)])]),_:1})),[[x,["decorate:pages:save"]]])])]),_:1}),u("div",K,[s(W,{modelValue:n(o),"onUpdate:modelValue":e[0]||(e[0]=y=>O(o)?o.value=y:null),pageData:n(i)},null,8,["modelValue","pageData"])])])}}}),Ot=T(U,[["__scopeId","data-v-9bc87a24"]]);export{Ot as default}; diff --git a/server/public/admin/assets/perm-DOfZAzJJ.js b/server/public/admin/assets/perm-CHCBwnFR.js similarity index 67% rename from server/public/admin/assets/perm-DOfZAzJJ.js rename to server/public/admin/assets/perm-CHCBwnFR.js index b89fbcb4d..88d895bbe 100644 --- a/server/public/admin/assets/perm-DOfZAzJJ.js +++ b/server/public/admin/assets/perm-CHCBwnFR.js @@ -1 +1 @@ -import{u as i}from"./index-Dxvz9lb1.js";const l=s=>{const e=i().perms,o="*";if(s.length>0){let r=!0;return s.forEach(t=>{!e.includes(t)&&!e.includes(o)&&(r=!1)}),r}else return!0};export{l as h}; +import{u as i}from"./index-Bkarz3gO.js";const l=s=>{const e=i().perms,o="*";if(s.length>0){let r=!0;return s.forEach(t=>{!e.includes(t)&&!e.includes(o)&&(r=!1)}),r}else return!0};export{l as h}; diff --git a/server/public/admin/assets/picker-BDO86vcM.js b/server/public/admin/assets/picker-BTh9eW9u.js similarity index 95% rename from server/public/admin/assets/picker-BDO86vcM.js rename to server/public/admin/assets/picker-BTh9eW9u.js index 6185e9f21..1cdea3d33 100644 --- a/server/public/admin/assets/picker-BDO86vcM.js +++ b/server/public/admin/assets/picker-BTh9eW9u.js @@ -1 +1 @@ -import{_ as q}from"./index-BnfLT5cB.js";import{o as re,bR as se,bS as ue,aE as de,R as pe,bN as O,M as s,p as T,n as fe,x as I,q as ge,r as me,v as g,bO as ve,D as S,s as d,aw as h,ae as L,L as ce,ac as he,ah as ye,t as we,ad as De,a2 as Ce}from"./.pnpm-CyuAWpdG.js";import{_ as be,a as _,F as Te}from"./index-yD39j6dM.js";import{e as Se,j,_ as Pe,c as $e}from"./index-Dxvz9lb1.js";import{_ as ke}from"./index-ClBYIwNX.js";import{a as ze}from"./file-CefRfHD9.js";const Ve=re({components:{Popup:q,Draggable:se,FileItem:Te,Material:_,Preview:be},props:{modelValue:{type:[String,Array],default:()=>[]},type:{type:String,default:"image"},size:{type:String,default:"100px"},width:{type:String,default:""},height:{type:String,default:""},fileSize:{type:String,default:"100px"},limit:{type:Number,default:1},disabled:{type:Boolean,default:!1},hiddenUpload:{type:Boolean,default:!1},uploadClass:{type:String,default:""},excludeDomain:{type:Boolean,default:!1},uploadCid:{type:[Number,String],default:0}},emits:["change","update:modelValue"],setup(e,{emit:a}){const z=s(),V=s(),A=s(""),E=s(!1),o=s([]),P=s([]),c=s(!0),$=s(-1),m=s(0),y=s(!1),{disabled:v,limit:p,modelValue:i}=ue(e),w=Se(),D=t=>w.getImageUrl(t),C=T(()=>!e.hiddenUpload&&(e.type==="image"||e.type==="video"||e.type==="file")),G=T(()=>m.value>0);function R(t){if(!t)return!1;const n=Array.from(t.types);return n.includes("Files")||n.includes("application/x-moz-file")}function B(t,n){var r;if(n==="file")return!0;const l=t.includes(".")&&((r=t.split(".").pop())==null?void 0:r.toLowerCase())||"";return n==="image"?l?["jpg","jpeg","png","gif","ico"].includes(l):!0:n==="video"&&l?["wmv","avi","mpg","mpeg","3gp","mov","mp4","flv","rmvb","mkv"].includes(l):!0}function H(t){var r;if(!t||!t.startsWith("http"))return t;const n=String(((r=w.config)==null?void 0:r.oss_domain)||"").trim().replace(/\/$/,"");if(n&&t.startsWith(n))return t.slice(n.length).replace(/^\//,"");const l=typeof window<"u"?window.location.origin.replace(/\/$/,""):"";if(l&&t.startsWith(l))return t.slice(l.length).replace(/^\//,"");try{return new URL(t).pathname.replace(/^\//,"")}catch{return t}}function J(t){var b,k;const n=e.type,l=Array.from(((b=t.clipboardData)==null?void 0:b.files)||[]).filter(f=>B(f.name,n));if(l.length)return l;if(n!=="image")return[];const r=(k=t.clipboardData)==null?void 0:k.items;if(!r)return[];const u=[];for(let f=0;f{!C.value||v.value||R(t.dataTransfer)&&m.value++},Q=()=>{C.value&&(m.value=Math.max(0,m.value-1))},X=t=>{!C.value||v.value||R(t.dataTransfer)&&t.preventDefault()},Y=async t=>{var l;if(m.value=0,!C.value||v.value)return;const n=Array.from(((l=t.dataTransfer)==null?void 0:l.files)||[]).filter(r=>B(r.name,e.type));n.length&&await M(n)},Z=async t=>{if(!C.value||v.value)return;const n=J(t);n.length&&(t.preventDefault(),await M(n))},x=T(()=>{switch(e.type){case"image":return"图片";case"video":return"视频";default:return""}}),ee=T(()=>e.limit-o.value.length>0),te=T(()=>c.value?p.value==-1?null:p.value-o.value.length:1),ae=de(()=>{const t=P.value.map(n=>e.excludeDomain?n.uri:n.url);c.value?o.value=[...o.value,...t]:o.value.splice($.value,1,t.shift()),N()},1e3,!1),ne=t=>{var n;v.value||(t>=0?(c.value=!1,$.value=t):c.value=!0,(n=z.value)==null||n.open())},ie=t=>{P.value=t},N=()=>{const t=p.value!=1?o.value:o.value[0]||"";a("update:modelValue",t),a("change",t),U()},oe=t=>{o.value.splice(t,1),N()},le=t=>{A.value=e.excludeDomain?D(t):t,E.value=!0},U=()=>{fe(()=>{var t;e.hiddenUpload&&(o.value=[]),(t=V.value)==null||t.clearSelect()})};return pe(i,t=>{o.value=Array.isArray(t)?t:t==""?[]:[t]},{immediate:!0}),O("limit",e.limit),O("hiddenUpload",e.hiddenUpload),{popupRef:z,materialRef:V,fileList:o,tipsText:x,handleConfirm:ae,meterialLimit:te,showUpload:ee,showPopup:ne,selectChange:ie,deleteImg:oe,previewUrl:A,showPreview:E,handlePreview:le,handleClose:U,getImageUrl:D,dropActive:G,onTriggerDragEnter:K,onTriggerDragLeave:Q,onTriggerDragOver:X,onTriggerDrop:Y,onTriggerPaste:Z}}}),Ae={class:"material-select"},Ee=["onClick"],Ue={class:"operation-btns text-xs text-center"},Fe=["onClick"],Ie={class:"material-wrap"};function Le(e,a,z,V,A,E){const o=I("file-item"),P=ke,c=I("draggable"),$=$e,m=_,y=Ce,v=q,p=I("preview");return ge(),me("div",Ae,[g(v,{ref:"popupRef",width:"1050px","custom-class":"body-padding",title:`选择${e.tipsText}`,onConfirm:e.handleConfirm,onClose:e.handleClose},ve({default:S(()=>[g(y,null,{default:S(()=>[d("div",Ie,[g(m,{ref:"materialRef",type:e.type,"file-size":e.fileSize,limit:e.meterialLimit,onChange:e.selectChange},null,8,["type","file-size","limit","onChange"])])]),_:1})]),_:2},[e.hiddenUpload?void 0:{name:"trigger",fn:S(()=>[d("div",{class:L(["material-select__trigger clearfix",{"is-drop-hover":e.dropActive}]),tabindex:"0",onClick:a[2]||(a[2]=h(()=>{},["stop"])),onDragenter:a[3]||(a[3]=h((...i)=>e.onTriggerDragEnter&&e.onTriggerDragEnter(...i),["prevent","stop"])),onDragleave:a[4]||(a[4]=h((...i)=>e.onTriggerDragLeave&&e.onTriggerDragLeave(...i),["prevent","stop"])),onDragover:a[5]||(a[5]=h((...i)=>e.onTriggerDragOver&&e.onTriggerDragOver(...i),["prevent","stop"])),onDrop:a[6]||(a[6]=h((...i)=>e.onTriggerDrop&&e.onTriggerDrop(...i),["prevent","stop"])),onPaste:a[7]||(a[7]=(...i)=>e.onTriggerPaste&&e.onTriggerPaste(...i))},[g(c,{class:"draggable",modelValue:e.fileList,"onUpdate:modelValue":a[0]||(a[0]=i=>e.fileList=i),animation:"300","item-key":"id"},{item:S(({element:i,index:w})=>[d("div",{class:L(["material-preview",{"is-disabled":e.disabled,"is-one":e.limit==1}]),onClick:D=>e.showPopup(w)},[g(P,{onClose:D=>e.deleteImg(w)},{default:S(()=>[g(o,{uri:e.excludeDomain?e.getImageUrl(i):i,"file-size":e.size,width:e.width,height:e.height,type:e.type},null,8,["uri","file-size","width","height","type"])]),_:2},1032,["onClose"]),d("div",Ue,[a[9]||(a[9]=d("span",null,"修改",-1)),a[10]||(a[10]=ce(" | ",-1)),d("span",{onClick:h(D=>e.handlePreview(i),["stop"])},"查看",8,Fe)])],10,Ee)]),_:1},8,["modelValue"]),he(d("div",{class:L(["material-upload",{"is-disabled":e.disabled,"is-one":e.limit==1,[e.uploadClass]:!0}]),onClick:a[1]||(a[1]=i=>e.showPopup(-1))},[ye(e.$slots,"upload",{},()=>[d("div",{class:"upload-btn",style:we({width:e.width||e.size,height:e.height||e.size})},[g($,{size:25,name:"el-icon-Plus"}),a[11]||(a[11]=d("span",null,"添加",-1))],4)],!0)],2),[[De,e.showUpload]])],34)]),key:"0"}]),1032,["title","onConfirm","onClose"]),g(p,{modelValue:e.showPreview,"onUpdate:modelValue":a[8]||(a[8]=i=>e.showPreview=i),url:e.previewUrl,type:e.type},null,8,["modelValue","url","type"])])}const je=Pe(Ve,[["render",Le],["__scopeId","data-v-27e7e4cc"]]);export{je as _}; +import{_ as q}from"./index-CS5Wg0xx.js";import{o as re,bR as se,bS as ue,aE as de,R as pe,bN as O,M as s,p as T,n as fe,x as I,q as ge,r as me,v as g,bO as ve,D as S,s as d,aw as h,ae as L,L as ce,ac as he,ah as ye,t as we,ad as De,a2 as Ce}from"./.pnpm-CyuAWpdG.js";import{_ as be,a as _,F as Te}from"./index-oRynN2pP.js";import{e as Se,j,_ as Pe,c as $e}from"./index-Bkarz3gO.js";import{_ as ke}from"./index-Cqk_cdo9.js";import{a as ze}from"./file-BjbV-eNx.js";const Ve=re({components:{Popup:q,Draggable:se,FileItem:Te,Material:_,Preview:be},props:{modelValue:{type:[String,Array],default:()=>[]},type:{type:String,default:"image"},size:{type:String,default:"100px"},width:{type:String,default:""},height:{type:String,default:""},fileSize:{type:String,default:"100px"},limit:{type:Number,default:1},disabled:{type:Boolean,default:!1},hiddenUpload:{type:Boolean,default:!1},uploadClass:{type:String,default:""},excludeDomain:{type:Boolean,default:!1},uploadCid:{type:[Number,String],default:0}},emits:["change","update:modelValue"],setup(e,{emit:a}){const z=s(),V=s(),A=s(""),E=s(!1),o=s([]),P=s([]),c=s(!0),$=s(-1),m=s(0),y=s(!1),{disabled:v,limit:p,modelValue:i}=ue(e),w=Se(),D=t=>w.getImageUrl(t),C=T(()=>!e.hiddenUpload&&(e.type==="image"||e.type==="video"||e.type==="file")),G=T(()=>m.value>0);function R(t){if(!t)return!1;const n=Array.from(t.types);return n.includes("Files")||n.includes("application/x-moz-file")}function B(t,n){var r;if(n==="file")return!0;const l=t.includes(".")&&((r=t.split(".").pop())==null?void 0:r.toLowerCase())||"";return n==="image"?l?["jpg","jpeg","png","gif","ico"].includes(l):!0:n==="video"&&l?["wmv","avi","mpg","mpeg","3gp","mov","mp4","flv","rmvb","mkv"].includes(l):!0}function H(t){var r;if(!t||!t.startsWith("http"))return t;const n=String(((r=w.config)==null?void 0:r.oss_domain)||"").trim().replace(/\/$/,"");if(n&&t.startsWith(n))return t.slice(n.length).replace(/^\//,"");const l=typeof window<"u"?window.location.origin.replace(/\/$/,""):"";if(l&&t.startsWith(l))return t.slice(l.length).replace(/^\//,"");try{return new URL(t).pathname.replace(/^\//,"")}catch{return t}}function J(t){var b,k;const n=e.type,l=Array.from(((b=t.clipboardData)==null?void 0:b.files)||[]).filter(f=>B(f.name,n));if(l.length)return l;if(n!=="image")return[];const r=(k=t.clipboardData)==null?void 0:k.items;if(!r)return[];const u=[];for(let f=0;f{!C.value||v.value||R(t.dataTransfer)&&m.value++},Q=()=>{C.value&&(m.value=Math.max(0,m.value-1))},X=t=>{!C.value||v.value||R(t.dataTransfer)&&t.preventDefault()},Y=async t=>{var l;if(m.value=0,!C.value||v.value)return;const n=Array.from(((l=t.dataTransfer)==null?void 0:l.files)||[]).filter(r=>B(r.name,e.type));n.length&&await M(n)},Z=async t=>{if(!C.value||v.value)return;const n=J(t);n.length&&(t.preventDefault(),await M(n))},x=T(()=>{switch(e.type){case"image":return"图片";case"video":return"视频";default:return""}}),ee=T(()=>e.limit-o.value.length>0),te=T(()=>c.value?p.value==-1?null:p.value-o.value.length:1),ae=de(()=>{const t=P.value.map(n=>e.excludeDomain?n.uri:n.url);c.value?o.value=[...o.value,...t]:o.value.splice($.value,1,t.shift()),N()},1e3,!1),ne=t=>{var n;v.value||(t>=0?(c.value=!1,$.value=t):c.value=!0,(n=z.value)==null||n.open())},ie=t=>{P.value=t},N=()=>{const t=p.value!=1?o.value:o.value[0]||"";a("update:modelValue",t),a("change",t),U()},oe=t=>{o.value.splice(t,1),N()},le=t=>{A.value=e.excludeDomain?D(t):t,E.value=!0},U=()=>{fe(()=>{var t;e.hiddenUpload&&(o.value=[]),(t=V.value)==null||t.clearSelect()})};return pe(i,t=>{o.value=Array.isArray(t)?t:t==""?[]:[t]},{immediate:!0}),O("limit",e.limit),O("hiddenUpload",e.hiddenUpload),{popupRef:z,materialRef:V,fileList:o,tipsText:x,handleConfirm:ae,meterialLimit:te,showUpload:ee,showPopup:ne,selectChange:ie,deleteImg:oe,previewUrl:A,showPreview:E,handlePreview:le,handleClose:U,getImageUrl:D,dropActive:G,onTriggerDragEnter:K,onTriggerDragLeave:Q,onTriggerDragOver:X,onTriggerDrop:Y,onTriggerPaste:Z}}}),Ae={class:"material-select"},Ee=["onClick"],Ue={class:"operation-btns text-xs text-center"},Fe=["onClick"],Ie={class:"material-wrap"};function Le(e,a,z,V,A,E){const o=I("file-item"),P=ke,c=I("draggable"),$=$e,m=_,y=Ce,v=q,p=I("preview");return ge(),me("div",Ae,[g(v,{ref:"popupRef",width:"1050px","custom-class":"body-padding",title:`选择${e.tipsText}`,onConfirm:e.handleConfirm,onClose:e.handleClose},ve({default:S(()=>[g(y,null,{default:S(()=>[d("div",Ie,[g(m,{ref:"materialRef",type:e.type,"file-size":e.fileSize,limit:e.meterialLimit,onChange:e.selectChange},null,8,["type","file-size","limit","onChange"])])]),_:1})]),_:2},[e.hiddenUpload?void 0:{name:"trigger",fn:S(()=>[d("div",{class:L(["material-select__trigger clearfix",{"is-drop-hover":e.dropActive}]),tabindex:"0",onClick:a[2]||(a[2]=h(()=>{},["stop"])),onDragenter:a[3]||(a[3]=h((...i)=>e.onTriggerDragEnter&&e.onTriggerDragEnter(...i),["prevent","stop"])),onDragleave:a[4]||(a[4]=h((...i)=>e.onTriggerDragLeave&&e.onTriggerDragLeave(...i),["prevent","stop"])),onDragover:a[5]||(a[5]=h((...i)=>e.onTriggerDragOver&&e.onTriggerDragOver(...i),["prevent","stop"])),onDrop:a[6]||(a[6]=h((...i)=>e.onTriggerDrop&&e.onTriggerDrop(...i),["prevent","stop"])),onPaste:a[7]||(a[7]=(...i)=>e.onTriggerPaste&&e.onTriggerPaste(...i))},[g(c,{class:"draggable",modelValue:e.fileList,"onUpdate:modelValue":a[0]||(a[0]=i=>e.fileList=i),animation:"300","item-key":"id"},{item:S(({element:i,index:w})=>[d("div",{class:L(["material-preview",{"is-disabled":e.disabled,"is-one":e.limit==1}]),onClick:D=>e.showPopup(w)},[g(P,{onClose:D=>e.deleteImg(w)},{default:S(()=>[g(o,{uri:e.excludeDomain?e.getImageUrl(i):i,"file-size":e.size,width:e.width,height:e.height,type:e.type},null,8,["uri","file-size","width","height","type"])]),_:2},1032,["onClose"]),d("div",Ue,[a[9]||(a[9]=d("span",null,"修改",-1)),a[10]||(a[10]=ce(" | ",-1)),d("span",{onClick:h(D=>e.handlePreview(i),["stop"])},"查看",8,Fe)])],10,Ee)]),_:1},8,["modelValue"]),he(d("div",{class:L(["material-upload",{"is-disabled":e.disabled,"is-one":e.limit==1,[e.uploadClass]:!0}]),onClick:a[1]||(a[1]=i=>e.showPopup(-1))},[ye(e.$slots,"upload",{},()=>[d("div",{class:"upload-btn",style:we({width:e.width||e.size,height:e.height||e.size})},[g($,{size:25,name:"el-icon-Plus"}),a[11]||(a[11]=d("span",null,"添加",-1))],4)],!0)],2),[[De,e.showUpload]])],34)]),key:"0"}]),1032,["title","onConfirm","onClose"]),g(p,{modelValue:e.showPreview,"onUpdate:modelValue":a[8]||(a[8]=i=>e.showPreview=i),url:e.previewUrl,type:e.type},null,8,["modelValue","url","type"])])}const je=Pe(Ve,[["render",Le],["__scopeId","data-v-27e7e4cc"]]);export{je as _}; diff --git a/server/public/admin/assets/picker-BKygjDQE.js b/server/public/admin/assets/picker-CSWk6Vbk.js similarity index 98% rename from server/public/admin/assets/picker-BKygjDQE.js rename to server/public/admin/assets/picker-CSWk6Vbk.js index d77cb41b6..0ae1e6a25 100644 --- a/server/public/admin/assets/picker-BKygjDQE.js +++ b/server/public/admin/assets/picker-CSWk6Vbk.js @@ -1 +1 @@ -import{o as I,M as k,R as O,q as r,r as V,v as m,bd as F,u as o,D as x,bb as z,aA as L,bc as J,K as Q,bB as W,ac as X,bn as Y,O as P,bk as Z,bl as ee,s as l,bg as te,aa as le,a1 as ae,T as C,C as b,aC as ne,bf as se,bq as oe,L as T,F as H,G as $,ae as ie,ak as de,ai as me,aj as ue,P as A,p as M,aw as pe,a8 as re}from"./.pnpm-CyuAWpdG.js";import{_ as q,c as ce}from"./index-Dxvz9lb1.js";import{_ as _e}from"./index-BnfLT5cB.js";import{_ as fe}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{k as xe}from"./article-D_HL_wgA.js";import{u as ve}from"./usePaging-CghUEVfD.js";var w=(n=>(n.SHOP_PAGES="shop",n.APPTOOL="application_tool",n.OTHER_LINK="other_link",n))(w||{}),a=(n=>(n.SHOP_PAGES="shop",n.ARTICLE_LIST="article",n.CUSTOM_LINK="custom",n.MINI_PROGRAM="mini_program",n))(a||{});const ye={class:"article-list"},he={class:"flex row-center"},ge={class:"flex items-center"},Se={class:"ml-4 overflow-hidden"},Ve={class:"text-base line-clamp-2"},Pe={class:"flex justify-end mt-4"},we=I({__name:"article-list",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,d=k({path:"/pages/news_detail/news_detail",name:"",query:{},type:a.ARTICLE_LIST}),t=ne({name:"",is_show:1}),{pager:e,getLists:_,resetPage:s}=ve({fetchFun:xe,params:t}),i=f=>f==Number(d.value.id),p=f=>{d.value={id:f.id,name:f.title,path:"/pages/news_detail/news_detail",query:{id:f.id},type:a.ARTICLE_LIST},y("update:modelValue",d.value)};return O(()=>c.modelValue,f=>{if(f.type!=a.ARTICLE_LIST)return d.value={id:"",name:"",path:"/pages/news_detail/news_detail",type:a.SHOP_PAGES};d.value=f},{immediate:!0}),_(),(f,v)=>{const u=L,g=Q,E=z,G=F,N=te,R=ee,K=le,U=ae,j=Z,B=fe,D=Y;return r(),V("div",ye,[m(G,{ref:"formRef",model:o(t),inline:!0},{default:x(()=>[m(E,{class:"w-[280px]",label:"文章名称"},{default:x(()=>[m(u,{modelValue:o(t).name,"onUpdate:modelValue":v[0]||(v[0]=S=>o(t).name=S),placeholder:"请输入",clearable:"",onKeyup:J(o(s),["enter"])},null,8,["modelValue","onKeyup"]),m(g,{type:"primary",class:"ml-4",icon:o(W),onClick:o(s)},null,8,["icon","onClick"])]),_:1})]),_:1},8,["model"]),X((r(),P(j,{size:"large",data:o(e).lists,height:"432px",onRowClick:p},{default:x(()=>[m(R,{label:"选择","min-width":"50"},{default:x(({row:S})=>[l("div",he,[m(N,{"model-value":i(S.id),size:"large",onChange:Qe=>p(S)},null,8,["model-value","onChange"])])]),_:1}),m(R,{label:"文章名称","min-width":"180"},{default:x(({row:S})=>[l("div",ge,[m(K,{fit:"cover",src:S.image,class:"flex-none w-[58px] h-[58px]"},null,8,["src"]),l("div",Se,[m(U,{effect:"dark",content:S.title,placement:"top"},{default:x(()=>[l("div",Ve,C(S.title),1)]),_:2},1032,["content"])])])]),_:1}),m(R,{label:"创建时间",prop:"create_time","min-width":"140"})]),_:1},8,["data"])),[[D,o(e).loading]]),l("div",Pe,[m(B,{modelValue:o(e),"onUpdate:modelValue":v[1]||(v[1]=S=>b(e)?e.value=S:null),onChange:o(_)},null,8,["modelValue","onChange"])])])}}}),be=q(we,[["__scopeId","data-v-1686cf19"]]),Ie={class:"custom-link h-[530px]"},ke={class:"flex flex-wrap items-center mt-4"},Oe={class:"ml-4 flex-1 min-w-[100px]"},Ee=I({__name:"custom-link",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=h,y=d=>{c("update:modelValue",{path:"/pages/webview/webview",query:{url:d},type:a.CUSTOM_LINK})};return(d,t)=>{var _;const e=L;return r(),V("div",Ie,[t[1]||(t[1]=l("div",{class:"text-xl font-medium"},"自定义链接",-1)),l("div",ke,[t[0]||(t[0]=l("div",{class:"w-[86px] text-right"},"自定义链接",-1)),l("div",Oe,[m(e,{class:"max-w-[320px]","model-value":(_=n.modelValue.query)==null?void 0:_.url,placeholder:"请输入链接地址",onInput:y},null,8,["model-value"])])]),t[2]||(t[2]=l("div",{class:"form-tips ml-[101px] max-w-[320px]"}," 请填写完整的带有“https://”或“http://”的链接地址,链接的域名必须在微信公众平台设置业务域名 ",-1))])}}}),Ae={class:"mini-program h-[530px]"},Ce={class:"flex flex-wrap items-center mt-4"},Le={class:"ml-4 flex-1 min-w-[100px]"},Ge={class:"flex flex-wrap items-center mt-4"},Re={class:"ml-4 flex-1 min-w-[100px]"},Te={class:"flex flex-wrap items-center mt-4"},He={class:"ml-4 flex-1 min-w-[100px]"},$e={class:"flex flex-wrap items-center mt-4"},qe={class:"ml-4 flex-1 min-w-[100px]"},Me=I({__name:"mini-program",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,d=(t,e)=>{y("update:modelValue",{...c.modelValue,name:"小程序跳转",query:{...c.modelValue.query,[t]:e},type:a.MINI_PROGRAM})};return O(()=>c.modelValue,t=>{var e;(e=t.query)!=null&&e.env_version||d("env_version","release")},{immediate:!0}),(t,e)=>{var p,f,v,u;const _=L,s=oe,i=se;return r(),V("div",Ae,[e[11]||(e[11]=l("div",{class:"text-xl font-medium"},"跳转小程序",-1)),l("div",Ce,[e[4]||(e[4]=l("div",{class:"w-[86px] text-right"},"小程序APPID",-1)),l("div",Le,[m(_,{class:"max-w-[320px]","model-value":(p=n.modelValue.query)==null?void 0:p.appId,placeholder:"请输入小程序appId",onInput:e[0]||(e[0]=g=>d("appId",g))},null,8,["model-value"])])]),l("div",Ge,[e[5]||(e[5]=l("div",{class:"w-[86px] text-right"},"小程序路径",-1)),l("div",Re,[m(_,{class:"max-w-[320px]","model-value":(f=n.modelValue.query)==null?void 0:f.path,placeholder:"请输入小程序路径链接地址",onInput:e[1]||(e[1]=g=>d("path",g))},null,8,["model-value"])])]),l("div",Te,[e[6]||(e[6]=l("div",{class:"w-[86px] text-right"},"传递参数",-1)),l("div",He,[m(_,{class:"max-w-[320px]","model-value":(v=n.modelValue.query)==null?void 0:v.query,placeholder:"请输入小程序跳转参数(选填)",onInput:e[2]||(e[2]=g=>d("query",g))},null,8,["model-value"])])]),e[12]||(e[12]=l("div",{class:"form-tips ml-[100px] max-w-[320px]"},[l("div",null,"示例:id=2&ustm=jiny&name=234"),l("div",{class:"text-error"}," 注意:不允许输入中文、特殊字符等。如果出现对不起,当前页面无法访问,大概率是跳转参数的问题!! ")],-1)),l("div",$e,[e[10]||(e[10]=l("div",{class:"w-[86px] text-right"},"小程序版本",-1)),l("div",qe,[m(i,{"model-value":(u=n.modelValue.query)==null?void 0:u.env_version,onChange:e[3]||(e[3]=g=>d("env_version",g))},{default:x(()=>[m(s,{value:"release"},{default:x(()=>[...e[7]||(e[7]=[T("正式版",-1)])]),_:1}),m(s,{value:"trial"},{default:x(()=>[...e[8]||(e[8]=[T("体验版",-1)])]),_:1}),m(s,{value:"develop"},{default:x(()=>[...e[9]||(e[9]=[T("开发版",-1)])]),_:1})]),_:1},8,["model-value"])])]),e[13]||(e[13]=l("div",null,[l("div",{class:"form-tips ml-[100px] max-w-[320px]"},[l("div",{class:"mt-4"}," 1. 小程序APPID和小程序路径链接地址,小程序路径链接地址请填写小程序的页面路径,如:pages/index/index "),l("div",{class:"mt-2"},[l("span",null,"2. 如果是H5(浏览器)中需要跳转到小程序,则需要以下配置--->"),l("a",{href:"https://mp.weixin.qq.com/",class:"text-primary",target:"_blank",rel:"nofollow"}," 小程序管理后台 -> 设置 -> 隐私与安全 -> 明文 scheme 拉起此小程序 (点击跳转去配置) ")])])],-1))])}}}),Ne={class:"shop-pages h-[530px]"},Ke={class:"link-list flex flex-wrap"},Ue=["onClick"],je=I({__name:"shop-pages",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=h,y=k([{path:"/pages/index/index",name:"商城首页",type:a.SHOP_PAGES,canTab:!0},{path:"/pages/news/news",name:"文章资讯",type:a.SHOP_PAGES,canTab:!0},{path:"/pages/user/user",name:"个人中心",type:a.SHOP_PAGES,canTab:!0},{path:"/pages/collection/collection",name:"我的收藏",type:a.SHOP_PAGES},{path:"/pages/customer_service/customer_service",name:"联系客服",type:a.SHOP_PAGES},{path:"/pages/user_set/user_set",name:"个人设置",type:a.SHOP_PAGES},{path:"/pages/as_us/as_us",name:"关于我们",type:a.SHOP_PAGES},{path:"/pages/user_data/user_data",name:"个人资料",type:a.SHOP_PAGES},{path:"/pages/agreement/agreement",name:"隐私政策",query:{type:"privacy"},type:a.SHOP_PAGES},{path:"/pages/agreement/agreement",name:"服务协议",query:{type:"service"},type:a.SHOP_PAGES},{path:"/pages/search/search",name:"搜索",type:a.SHOP_PAGES},{path:"/packages/pages/user_wallet/user_wallet",name:"我的钱包",type:a.SHOP_PAGES}]),d=t=>{c("update:modelValue",t)};return(t,e)=>(r(),V("div",Ne,[l("div",Ke,[(r(!0),V(H,null,$(o(y),(_,s)=>(r(),V("div",{class:ie(["link-item border border-br px-5 py-[5px] rounded-[3px] cursor-pointer mr-[10px] mb-[10px]",{"border-primary text-primary":n.modelValue.path==_.path&&n.modelValue.name==_.name}]),key:s,onClick:i=>d(_)},C(_.name),11,Ue))),128))])]))}}),Be={class:"link flex"},De={class:"flex-1 ml-4 link-content"},Fe=I({__name:"index",props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,d=k([{name:"商城页面",type:w.SHOP_PAGES,children:[{name:"基础页面",type:a.SHOP_PAGES,link:{}}]},{name:"应用工具",type:w.APPTOOL,children:[{name:"文章资讯",type:a.ARTICLE_LIST,link:{}}]},{name:"其他",type:w.OTHER_LINK,children:[{name:"自定义链接",type:a.CUSTOM_LINK,link:{}},{name:"跳转小程序",type:a.MINI_PROGRAM,link:{}}]}]),t=M({get(){let s={};return d.value.forEach(i=>{const p=i.children.find(f=>f.type==e.value);p&&(s=p)}),s.link},set(s){d.value.forEach(i=>{i.children.forEach(p=>{p.type==e.value&&(p.link=s)})})}}),e=k(a.SHOP_PAGES),_=s=>{e.value=s};return O(t,s=>{s.type&&y("update:modelValue",s)},{deep:!0}),O(()=>c.modelValue,s=>{e.value=s.type,t.value=s},{immediate:!0}),(s,i)=>{const p=me,f=ue,v=de;return r(),V("div",Be,[m(v,{"default-active":o(e),class:"flex-none w-[180px] min-h-[350px] link-menu","default-openeds":[o(w).SHOP_PAGES,o(w).APPTOOL,o(w).OTHER_LINK],onSelect:_},{default:x(()=>[(r(!0),V(H,null,$(o(d),(u,g)=>(r(),P(f,{index:u.type,key:g},{title:x(()=>[l("span",null,C(u.name),1)]),default:x(()=>[(r(!0),V(H,null,$(u.children,(E,G)=>(r(),P(p,{index:E.type,key:G,style:{"min-width":"160px"}},{default:x(()=>[l("span",null,C(E.name),1)]),_:2},1032,["index"]))),128))]),_:2},1032,["index"]))),128))]),_:1},8,["default-active","default-openeds"]),l("div",De,[o(a).SHOP_PAGES==o(e)?(r(),P(je,{key:0,modelValue:o(t),"onUpdate:modelValue":i[0]||(i[0]=u=>b(t)?t.value=u:null)},null,8,["modelValue"])):A("",!0),o(a).ARTICLE_LIST==o(e)?(r(),P(be,{key:1,modelValue:o(t),"onUpdate:modelValue":i[1]||(i[1]=u=>b(t)?t.value=u:null)},null,8,["modelValue"])):A("",!0),o(a).CUSTOM_LINK==o(e)?(r(),P(Ee,{key:2,modelValue:o(t),"onUpdate:modelValue":i[2]||(i[2]=u=>b(t)?t.value=u:null)},null,8,["modelValue"])):A("",!0),o(a).MINI_PROGRAM==o(e)?(r(),P(Me,{key:3,modelValue:o(t),"onUpdate:modelValue":i[3]||(i[3]=u=>b(t)?t.value=u:null)},null,8,["modelValue"])):A("",!0)])])}}}),ze=q(Fe,[["__scopeId","data-v-e991fd93"]]),Je=I({__name:"picker",props:{modelValue:{type:Object},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,d=re(),t=k({path:"",type:a.SHOP_PAGES}),e=()=>{y("update:modelValue",t.value)},_=M(()=>{var s,i,p;switch((s=c.modelValue)==null?void 0:s.type){case a.SHOP_PAGES:return c.modelValue.name;case a.ARTICLE_LIST:return c.modelValue.name;case a.CUSTOM_LINK:return(i=c.modelValue.query)==null?void 0:i.url;default:return(p=c.modelValue)==null?void 0:p.name}});return O(()=>c.modelValue,s=>{s!=null&&s.type&&(t.value=s)},{immediate:!0}),(s,i)=>{const p=ce,f=L;return r(),V("div",{class:"link-picker flex-1",onClick:i[2]||(i[2]=v=>{var u;return!n.disabled&&((u=o(d))==null?void 0:u.open())})},[m(f,{"model-value":o(_),placeholder:"请选择链接",readonly:"",disabled:n.disabled},{suffix:x(()=>{var v;return[(v=n.modelValue)!=null&&v.path?(r(),P(p,{key:1,name:"el-icon-Close",onClick:i[0]||(i[0]=pe(u=>!n.disabled&&y("update:modelValue",{}),["stop"]))})):(r(),P(p,{key:0,name:"el-icon-ArrowRight"}))]}),_:1},8,["model-value","disabled"]),m(_e,{ref_key:"popupRef",ref:d,width:"1050px",title:"链接选择",onConfirm:e},{default:x(()=>[m(ze,{modelValue:o(t),"onUpdate:modelValue":i[1]||(i[1]=v=>b(t)?t.value=v:null)},null,8,["modelValue"])]),_:1},512)])}}}),lt=q(Je,[["__scopeId","data-v-84fe1e25"]]);export{lt as _}; +import{o as I,M as k,R as O,q as r,r as V,v as m,bd as F,u as o,D as x,bb as z,aA as L,bc as J,K as Q,bB as W,ac as X,bn as Y,O as P,bk as Z,bl as ee,s as l,bg as te,aa as le,a1 as ae,T as C,C as b,aC as ne,bf as se,bq as oe,L as T,F as H,G as $,ae as ie,ak as de,ai as me,aj as ue,P as A,p as M,aw as pe,a8 as re}from"./.pnpm-CyuAWpdG.js";import{_ as q,c as ce}from"./index-Bkarz3gO.js";import{_ as _e}from"./index-CS5Wg0xx.js";import{_ as fe}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{k as xe}from"./article-Cct6St-z.js";import{u as ve}from"./usePaging-CghUEVfD.js";var w=(n=>(n.SHOP_PAGES="shop",n.APPTOOL="application_tool",n.OTHER_LINK="other_link",n))(w||{}),a=(n=>(n.SHOP_PAGES="shop",n.ARTICLE_LIST="article",n.CUSTOM_LINK="custom",n.MINI_PROGRAM="mini_program",n))(a||{});const ye={class:"article-list"},he={class:"flex row-center"},ge={class:"flex items-center"},Se={class:"ml-4 overflow-hidden"},Ve={class:"text-base line-clamp-2"},Pe={class:"flex justify-end mt-4"},we=I({__name:"article-list",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,d=k({path:"/pages/news_detail/news_detail",name:"",query:{},type:a.ARTICLE_LIST}),t=ne({name:"",is_show:1}),{pager:e,getLists:_,resetPage:s}=ve({fetchFun:xe,params:t}),i=f=>f==Number(d.value.id),p=f=>{d.value={id:f.id,name:f.title,path:"/pages/news_detail/news_detail",query:{id:f.id},type:a.ARTICLE_LIST},y("update:modelValue",d.value)};return O(()=>c.modelValue,f=>{if(f.type!=a.ARTICLE_LIST)return d.value={id:"",name:"",path:"/pages/news_detail/news_detail",type:a.SHOP_PAGES};d.value=f},{immediate:!0}),_(),(f,v)=>{const u=L,g=Q,E=z,G=F,N=te,R=ee,K=le,U=ae,j=Z,B=fe,D=Y;return r(),V("div",ye,[m(G,{ref:"formRef",model:o(t),inline:!0},{default:x(()=>[m(E,{class:"w-[280px]",label:"文章名称"},{default:x(()=>[m(u,{modelValue:o(t).name,"onUpdate:modelValue":v[0]||(v[0]=S=>o(t).name=S),placeholder:"请输入",clearable:"",onKeyup:J(o(s),["enter"])},null,8,["modelValue","onKeyup"]),m(g,{type:"primary",class:"ml-4",icon:o(W),onClick:o(s)},null,8,["icon","onClick"])]),_:1})]),_:1},8,["model"]),X((r(),P(j,{size:"large",data:o(e).lists,height:"432px",onRowClick:p},{default:x(()=>[m(R,{label:"选择","min-width":"50"},{default:x(({row:S})=>[l("div",he,[m(N,{"model-value":i(S.id),size:"large",onChange:Qe=>p(S)},null,8,["model-value","onChange"])])]),_:1}),m(R,{label:"文章名称","min-width":"180"},{default:x(({row:S})=>[l("div",ge,[m(K,{fit:"cover",src:S.image,class:"flex-none w-[58px] h-[58px]"},null,8,["src"]),l("div",Se,[m(U,{effect:"dark",content:S.title,placement:"top"},{default:x(()=>[l("div",Ve,C(S.title),1)]),_:2},1032,["content"])])])]),_:1}),m(R,{label:"创建时间",prop:"create_time","min-width":"140"})]),_:1},8,["data"])),[[D,o(e).loading]]),l("div",Pe,[m(B,{modelValue:o(e),"onUpdate:modelValue":v[1]||(v[1]=S=>b(e)?e.value=S:null),onChange:o(_)},null,8,["modelValue","onChange"])])])}}}),be=q(we,[["__scopeId","data-v-1686cf19"]]),Ie={class:"custom-link h-[530px]"},ke={class:"flex flex-wrap items-center mt-4"},Oe={class:"ml-4 flex-1 min-w-[100px]"},Ee=I({__name:"custom-link",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=h,y=d=>{c("update:modelValue",{path:"/pages/webview/webview",query:{url:d},type:a.CUSTOM_LINK})};return(d,t)=>{var _;const e=L;return r(),V("div",Ie,[t[1]||(t[1]=l("div",{class:"text-xl font-medium"},"自定义链接",-1)),l("div",ke,[t[0]||(t[0]=l("div",{class:"w-[86px] text-right"},"自定义链接",-1)),l("div",Oe,[m(e,{class:"max-w-[320px]","model-value":(_=n.modelValue.query)==null?void 0:_.url,placeholder:"请输入链接地址",onInput:y},null,8,["model-value"])])]),t[2]||(t[2]=l("div",{class:"form-tips ml-[101px] max-w-[320px]"}," 请填写完整的带有“https://”或“http://”的链接地址,链接的域名必须在微信公众平台设置业务域名 ",-1))])}}}),Ae={class:"mini-program h-[530px]"},Ce={class:"flex flex-wrap items-center mt-4"},Le={class:"ml-4 flex-1 min-w-[100px]"},Ge={class:"flex flex-wrap items-center mt-4"},Re={class:"ml-4 flex-1 min-w-[100px]"},Te={class:"flex flex-wrap items-center mt-4"},He={class:"ml-4 flex-1 min-w-[100px]"},$e={class:"flex flex-wrap items-center mt-4"},qe={class:"ml-4 flex-1 min-w-[100px]"},Me=I({__name:"mini-program",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,d=(t,e)=>{y("update:modelValue",{...c.modelValue,name:"小程序跳转",query:{...c.modelValue.query,[t]:e},type:a.MINI_PROGRAM})};return O(()=>c.modelValue,t=>{var e;(e=t.query)!=null&&e.env_version||d("env_version","release")},{immediate:!0}),(t,e)=>{var p,f,v,u;const _=L,s=oe,i=se;return r(),V("div",Ae,[e[11]||(e[11]=l("div",{class:"text-xl font-medium"},"跳转小程序",-1)),l("div",Ce,[e[4]||(e[4]=l("div",{class:"w-[86px] text-right"},"小程序APPID",-1)),l("div",Le,[m(_,{class:"max-w-[320px]","model-value":(p=n.modelValue.query)==null?void 0:p.appId,placeholder:"请输入小程序appId",onInput:e[0]||(e[0]=g=>d("appId",g))},null,8,["model-value"])])]),l("div",Ge,[e[5]||(e[5]=l("div",{class:"w-[86px] text-right"},"小程序路径",-1)),l("div",Re,[m(_,{class:"max-w-[320px]","model-value":(f=n.modelValue.query)==null?void 0:f.path,placeholder:"请输入小程序路径链接地址",onInput:e[1]||(e[1]=g=>d("path",g))},null,8,["model-value"])])]),l("div",Te,[e[6]||(e[6]=l("div",{class:"w-[86px] text-right"},"传递参数",-1)),l("div",He,[m(_,{class:"max-w-[320px]","model-value":(v=n.modelValue.query)==null?void 0:v.query,placeholder:"请输入小程序跳转参数(选填)",onInput:e[2]||(e[2]=g=>d("query",g))},null,8,["model-value"])])]),e[12]||(e[12]=l("div",{class:"form-tips ml-[100px] max-w-[320px]"},[l("div",null,"示例:id=2&ustm=jiny&name=234"),l("div",{class:"text-error"}," 注意:不允许输入中文、特殊字符等。如果出现对不起,当前页面无法访问,大概率是跳转参数的问题!! ")],-1)),l("div",$e,[e[10]||(e[10]=l("div",{class:"w-[86px] text-right"},"小程序版本",-1)),l("div",qe,[m(i,{"model-value":(u=n.modelValue.query)==null?void 0:u.env_version,onChange:e[3]||(e[3]=g=>d("env_version",g))},{default:x(()=>[m(s,{value:"release"},{default:x(()=>[...e[7]||(e[7]=[T("正式版",-1)])]),_:1}),m(s,{value:"trial"},{default:x(()=>[...e[8]||(e[8]=[T("体验版",-1)])]),_:1}),m(s,{value:"develop"},{default:x(()=>[...e[9]||(e[9]=[T("开发版",-1)])]),_:1})]),_:1},8,["model-value"])])]),e[13]||(e[13]=l("div",null,[l("div",{class:"form-tips ml-[100px] max-w-[320px]"},[l("div",{class:"mt-4"}," 1. 小程序APPID和小程序路径链接地址,小程序路径链接地址请填写小程序的页面路径,如:pages/index/index "),l("div",{class:"mt-2"},[l("span",null,"2. 如果是H5(浏览器)中需要跳转到小程序,则需要以下配置--->"),l("a",{href:"https://mp.weixin.qq.com/",class:"text-primary",target:"_blank",rel:"nofollow"}," 小程序管理后台 -> 设置 -> 隐私与安全 -> 明文 scheme 拉起此小程序 (点击跳转去配置) ")])])],-1))])}}}),Ne={class:"shop-pages h-[530px]"},Ke={class:"link-list flex flex-wrap"},Ue=["onClick"],je=I({__name:"shop-pages",props:{modelValue:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(n,{emit:h}){const c=h,y=k([{path:"/pages/index/index",name:"商城首页",type:a.SHOP_PAGES,canTab:!0},{path:"/pages/news/news",name:"文章资讯",type:a.SHOP_PAGES,canTab:!0},{path:"/pages/user/user",name:"个人中心",type:a.SHOP_PAGES,canTab:!0},{path:"/pages/collection/collection",name:"我的收藏",type:a.SHOP_PAGES},{path:"/pages/customer_service/customer_service",name:"联系客服",type:a.SHOP_PAGES},{path:"/pages/user_set/user_set",name:"个人设置",type:a.SHOP_PAGES},{path:"/pages/as_us/as_us",name:"关于我们",type:a.SHOP_PAGES},{path:"/pages/user_data/user_data",name:"个人资料",type:a.SHOP_PAGES},{path:"/pages/agreement/agreement",name:"隐私政策",query:{type:"privacy"},type:a.SHOP_PAGES},{path:"/pages/agreement/agreement",name:"服务协议",query:{type:"service"},type:a.SHOP_PAGES},{path:"/pages/search/search",name:"搜索",type:a.SHOP_PAGES},{path:"/packages/pages/user_wallet/user_wallet",name:"我的钱包",type:a.SHOP_PAGES}]),d=t=>{c("update:modelValue",t)};return(t,e)=>(r(),V("div",Ne,[l("div",Ke,[(r(!0),V(H,null,$(o(y),(_,s)=>(r(),V("div",{class:ie(["link-item border border-br px-5 py-[5px] rounded-[3px] cursor-pointer mr-[10px] mb-[10px]",{"border-primary text-primary":n.modelValue.path==_.path&&n.modelValue.name==_.name}]),key:s,onClick:i=>d(_)},C(_.name),11,Ue))),128))])]))}}),Be={class:"link flex"},De={class:"flex-1 ml-4 link-content"},Fe=I({__name:"index",props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,d=k([{name:"商城页面",type:w.SHOP_PAGES,children:[{name:"基础页面",type:a.SHOP_PAGES,link:{}}]},{name:"应用工具",type:w.APPTOOL,children:[{name:"文章资讯",type:a.ARTICLE_LIST,link:{}}]},{name:"其他",type:w.OTHER_LINK,children:[{name:"自定义链接",type:a.CUSTOM_LINK,link:{}},{name:"跳转小程序",type:a.MINI_PROGRAM,link:{}}]}]),t=M({get(){let s={};return d.value.forEach(i=>{const p=i.children.find(f=>f.type==e.value);p&&(s=p)}),s.link},set(s){d.value.forEach(i=>{i.children.forEach(p=>{p.type==e.value&&(p.link=s)})})}}),e=k(a.SHOP_PAGES),_=s=>{e.value=s};return O(t,s=>{s.type&&y("update:modelValue",s)},{deep:!0}),O(()=>c.modelValue,s=>{e.value=s.type,t.value=s},{immediate:!0}),(s,i)=>{const p=me,f=ue,v=de;return r(),V("div",Be,[m(v,{"default-active":o(e),class:"flex-none w-[180px] min-h-[350px] link-menu","default-openeds":[o(w).SHOP_PAGES,o(w).APPTOOL,o(w).OTHER_LINK],onSelect:_},{default:x(()=>[(r(!0),V(H,null,$(o(d),(u,g)=>(r(),P(f,{index:u.type,key:g},{title:x(()=>[l("span",null,C(u.name),1)]),default:x(()=>[(r(!0),V(H,null,$(u.children,(E,G)=>(r(),P(p,{index:E.type,key:G,style:{"min-width":"160px"}},{default:x(()=>[l("span",null,C(E.name),1)]),_:2},1032,["index"]))),128))]),_:2},1032,["index"]))),128))]),_:1},8,["default-active","default-openeds"]),l("div",De,[o(a).SHOP_PAGES==o(e)?(r(),P(je,{key:0,modelValue:o(t),"onUpdate:modelValue":i[0]||(i[0]=u=>b(t)?t.value=u:null)},null,8,["modelValue"])):A("",!0),o(a).ARTICLE_LIST==o(e)?(r(),P(be,{key:1,modelValue:o(t),"onUpdate:modelValue":i[1]||(i[1]=u=>b(t)?t.value=u:null)},null,8,["modelValue"])):A("",!0),o(a).CUSTOM_LINK==o(e)?(r(),P(Ee,{key:2,modelValue:o(t),"onUpdate:modelValue":i[2]||(i[2]=u=>b(t)?t.value=u:null)},null,8,["modelValue"])):A("",!0),o(a).MINI_PROGRAM==o(e)?(r(),P(Me,{key:3,modelValue:o(t),"onUpdate:modelValue":i[3]||(i[3]=u=>b(t)?t.value=u:null)},null,8,["modelValue"])):A("",!0)])])}}}),ze=q(Fe,[["__scopeId","data-v-e991fd93"]]),Je=I({__name:"picker",props:{modelValue:{type:Object},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(n,{emit:h}){const c=n,y=h,d=re(),t=k({path:"",type:a.SHOP_PAGES}),e=()=>{y("update:modelValue",t.value)},_=M(()=>{var s,i,p;switch((s=c.modelValue)==null?void 0:s.type){case a.SHOP_PAGES:return c.modelValue.name;case a.ARTICLE_LIST:return c.modelValue.name;case a.CUSTOM_LINK:return(i=c.modelValue.query)==null?void 0:i.url;default:return(p=c.modelValue)==null?void 0:p.name}});return O(()=>c.modelValue,s=>{s!=null&&s.type&&(t.value=s)},{immediate:!0}),(s,i)=>{const p=ce,f=L;return r(),V("div",{class:"link-picker flex-1",onClick:i[2]||(i[2]=v=>{var u;return!n.disabled&&((u=o(d))==null?void 0:u.open())})},[m(f,{"model-value":o(_),placeholder:"请选择链接",readonly:"",disabled:n.disabled},{suffix:x(()=>{var v;return[(v=n.modelValue)!=null&&v.path?(r(),P(p,{key:1,name:"el-icon-Close",onClick:i[0]||(i[0]=pe(u=>!n.disabled&&y("update:modelValue",{}),["stop"]))})):(r(),P(p,{key:0,name:"el-icon-ArrowRight"}))]}),_:1},8,["model-value","disabled"]),m(_e,{ref_key:"popupRef",ref:d,width:"1050px",title:"链接选择",onConfirm:e},{default:x(()=>[m(ze,{modelValue:o(t),"onUpdate:modelValue":i[1]||(i[1]=v=>b(t)?t.value=v:null)},null,8,["modelValue"])]),_:1},512)])}}}),lt=q(Je,[["__scopeId","data-v-84fe1e25"]]);export{lt as _}; diff --git a/server/public/admin/assets/picker.vue_vue_type_script_setup_true_lang-r5jdEAJg.js b/server/public/admin/assets/picker.vue_vue_type_script_setup_true_lang-CMq9B6V2.js similarity index 97% rename from server/public/admin/assets/picker.vue_vue_type_script_setup_true_lang-r5jdEAJg.js rename to server/public/admin/assets/picker.vue_vue_type_script_setup_true_lang-CMq9B6V2.js index e2ff6e299..c91c1dd66 100644 --- a/server/public/admin/assets/picker.vue_vue_type_script_setup_true_lang-r5jdEAJg.js +++ b/server/public/admin/assets/picker.vue_vue_type_script_setup_true_lang-CMq9B6V2.js @@ -1 +1 @@ -import{o as L,a6 as W,R as $,n as _,ap as z,q as u,r as c,v as a,bZ as I,D as n,s as i,F as V,G as h,ae as T,u as k,T as R,a2 as D,K as O,aw as x,aA as P,a1 as U,O as j,L as q,M as A,a8 as G,aC as K,p as Z}from"./.pnpm-CyuAWpdG.js";import{c as H,z as J,B as Q}from"./index-Dxvz9lb1.js";const X={class:"icon-select"},Y={class:"flex justify-between"},ee=["onClick"],oe={class:"h-[280px]"},te={class:"flex flex-wrap"},se={key:0,class:"flex items-center"},ie=L({__name:"picker",props:{modelValue:{default:""},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(r,{emit:w}){const p=w,v=A(0),b=[{name:"element图标",icons:J()},{name:"本地图标",icons:Q()}],m=G(),e=K({inputValue:"",popoverVisible:!1,popoverWidth:0,mouseoverSelect:!1,inputFocus:!1}),C=()=>{e.inputFocus=e.popoverVisible=!0},y=()=>{e.inputFocus=!1,e.popoverVisible=e.mouseoverSelect},g=t=>{e.mouseoverSelect=e.popoverVisible=!1,p("update:modelValue",t),p("change",t)},B=()=>{p("update:modelValue",""),p("change","")},F=Z(()=>{var l;const t=((l=b[v.value])==null?void 0:l.icons)??[];if(!e.inputValue)return t;const o=e.inputValue.toLowerCase();return t.filter(d=>{if(d.toLowerCase().indexOf(o)!==-1)return d})}),S=()=>{_(()=>{var o;const t=(o=m.value)==null?void 0:o.$el.offsetWidth;e.popoverWidth=t<300?300:t})};return W(document.body,"click",()=>{e.popoverVisible=!!(e.inputFocus||e.mouseoverSelect)}),$(()=>e.popoverVisible,async t=>{var o,l;await _(),t?(o=m.value)==null||o.focus():(l=m.value)==null||l.blur()}),z(()=>{S()}),(t,o)=>{const l=H,d=O,E=D,M=U,N=I;return u(),c("div",X,[a(N,{trigger:"contextmenu",visible:e.popoverVisible,"onUpdate:visible":o[3]||(o[3]=s=>e.popoverVisible=s),width:e.popoverWidth},{reference:n(()=>[a(k(P),{ref_key:"inputRef",ref:m,modelValue:e.inputValue,"onUpdate:modelValue":o[2]||(o[2]=s=>e.inputValue=s),modelModifiers:{trim:!0},placeholder:"搜索图标",autofocus:!1,disabled:r.disabled,onFocus:C,onBlur:y,clearable:""},{prepend:n(()=>[r.modelValue?(u(),c("div",se,[a(M,{class:"flex-1 w-20",content:r.modelValue,placement:"top"},{default:n(()=>[(u(),j(l,{class:"mr-1",key:r.modelValue,name:r.modelValue,size:16},null,8,["name"]))]),_:1},8,["content"])])):(u(),c(V,{key:1},[q("无")],64))]),append:n(()=>[a(d,null,{default:n(()=>[a(l,{name:"el-icon-Close",size:18,onClick:B})]),_:1})]),_:1},8,["modelValue","disabled"])]),default:n(()=>[i("div",{onMouseover:o[0]||(o[0]=x(s=>e.mouseoverSelect=!0,["stop"])),onMouseout:o[1]||(o[1]=x(s=>e.mouseoverSelect=!1,["stop"]))},[i("div",null,[i("div",Y,[o[4]||(o[4]=i("div",{class:"mb-3"},"请选择图标",-1)),i("div",null,[(u(),c(V,null,h(b,(s,f)=>i("span",{key:f,class:T(["cursor-pointer text-sm ml-2",{"text-primary":f==k(v)}]),onClick:le=>v.value=f},R(s.name),11,ee)),64))])]),i("div",oe,[a(E,null,{default:n(()=>[i("div",te,[(u(!0),c(V,null,h(F.value,s=>(u(),c("div",{key:s,class:"m-1"},[a(d,{onClick:f=>g(s)},{default:n(()=>[a(l,{name:s,size:18},null,8,["name"])]),_:2},1032,["onClick"])]))),128))])]),_:1})])])],32)]),_:1},8,["visible","width"])])}}});export{ie as _}; +import{o as L,a6 as W,R as $,n as _,ap as z,q as u,r as c,v as a,bZ as I,D as n,s as i,F as V,G as h,ae as T,u as k,T as R,a2 as D,K as O,aw as x,aA as P,a1 as U,O as j,L as q,M as A,a8 as G,aC as K,p as Z}from"./.pnpm-CyuAWpdG.js";import{c as H,z as J,B as Q}from"./index-Bkarz3gO.js";const X={class:"icon-select"},Y={class:"flex justify-between"},ee=["onClick"],oe={class:"h-[280px]"},te={class:"flex flex-wrap"},se={key:0,class:"flex items-center"},ie=L({__name:"picker",props:{modelValue:{default:""},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(r,{emit:w}){const p=w,v=A(0),b=[{name:"element图标",icons:J()},{name:"本地图标",icons:Q()}],m=G(),e=K({inputValue:"",popoverVisible:!1,popoverWidth:0,mouseoverSelect:!1,inputFocus:!1}),C=()=>{e.inputFocus=e.popoverVisible=!0},y=()=>{e.inputFocus=!1,e.popoverVisible=e.mouseoverSelect},g=t=>{e.mouseoverSelect=e.popoverVisible=!1,p("update:modelValue",t),p("change",t)},B=()=>{p("update:modelValue",""),p("change","")},F=Z(()=>{var l;const t=((l=b[v.value])==null?void 0:l.icons)??[];if(!e.inputValue)return t;const o=e.inputValue.toLowerCase();return t.filter(d=>{if(d.toLowerCase().indexOf(o)!==-1)return d})}),S=()=>{_(()=>{var o;const t=(o=m.value)==null?void 0:o.$el.offsetWidth;e.popoverWidth=t<300?300:t})};return W(document.body,"click",()=>{e.popoverVisible=!!(e.inputFocus||e.mouseoverSelect)}),$(()=>e.popoverVisible,async t=>{var o,l;await _(),t?(o=m.value)==null||o.focus():(l=m.value)==null||l.blur()}),z(()=>{S()}),(t,o)=>{const l=H,d=O,E=D,M=U,N=I;return u(),c("div",X,[a(N,{trigger:"contextmenu",visible:e.popoverVisible,"onUpdate:visible":o[3]||(o[3]=s=>e.popoverVisible=s),width:e.popoverWidth},{reference:n(()=>[a(k(P),{ref_key:"inputRef",ref:m,modelValue:e.inputValue,"onUpdate:modelValue":o[2]||(o[2]=s=>e.inputValue=s),modelModifiers:{trim:!0},placeholder:"搜索图标",autofocus:!1,disabled:r.disabled,onFocus:C,onBlur:y,clearable:""},{prepend:n(()=>[r.modelValue?(u(),c("div",se,[a(M,{class:"flex-1 w-20",content:r.modelValue,placement:"top"},{default:n(()=>[(u(),j(l,{class:"mr-1",key:r.modelValue,name:r.modelValue,size:16},null,8,["name"]))]),_:1},8,["content"])])):(u(),c(V,{key:1},[q("无")],64))]),append:n(()=>[a(d,null,{default:n(()=>[a(l,{name:"el-icon-Close",size:18,onClick:B})]),_:1})]),_:1},8,["modelValue","disabled"])]),default:n(()=>[i("div",{onMouseover:o[0]||(o[0]=x(s=>e.mouseoverSelect=!0,["stop"])),onMouseout:o[1]||(o[1]=x(s=>e.mouseoverSelect=!1,["stop"]))},[i("div",null,[i("div",Y,[o[4]||(o[4]=i("div",{class:"mb-3"},"请选择图标",-1)),i("div",null,[(u(),c(V,null,h(b,(s,f)=>i("span",{key:f,class:T(["cursor-pointer text-sm ml-2",{"text-primary":f==k(v)}]),onClick:le=>v.value=f},R(s.name),11,ee)),64))])]),i("div",oe,[a(E,null,{default:n(()=>[i("div",te,[(u(!0),c(V,null,h(F.value,s=>(u(),c("div",{key:s,class:"m-1"},[a(d,{onClick:f=>g(s)},{default:n(()=>[a(l,{name:s,size:18},null,8,["name"])]),_:2},1032,["onClick"])]))),128))])]),_:1})])])],32)]),_:1},8,["visible","width"])])}}});export{ie as _}; diff --git a/server/public/admin/assets/post-B9rSvSIv.js b/server/public/admin/assets/post-DqkuJrmM.js similarity index 86% rename from server/public/admin/assets/post-B9rSvSIv.js rename to server/public/admin/assets/post-DqkuJrmM.js index 317822b74..181c7de76 100644 --- a/server/public/admin/assets/post-B9rSvSIv.js +++ b/server/public/admin/assets/post-DqkuJrmM.js @@ -1 +1 @@ -import{r as e}from"./index-Dxvz9lb1.js";function o(t){return e.get({url:"/dept.jobs/lists",params:t},{ignoreCancelToken:!0})}function r(t){return e.get({url:"/dept.jobs/all",params:t})}function n(t){return e.post({url:"/dept.jobs/add",params:t})}function u(t){return e.post({url:"/dept.jobs/edit",params:t})}function l(t){return e.post({url:"/dept.jobs/delete",params:t})}function d(t){return e.get({url:"/dept.jobs/detail",params:t})}export{u as a,n as b,d as c,o as d,l as e,r as j}; +import{r as e}from"./index-Bkarz3gO.js";function o(t){return e.get({url:"/dept.jobs/lists",params:t},{ignoreCancelToken:!0})}function r(t){return e.get({url:"/dept.jobs/all",params:t})}function n(t){return e.post({url:"/dept.jobs/add",params:t})}function u(t){return e.post({url:"/dept.jobs/edit",params:t})}function l(t){return e.post({url:"/dept.jobs/delete",params:t})}function d(t){return e.get({url:"/dept.jobs/detail",params:t})}export{u as a,n as b,d as c,o as d,l as e,r as j}; diff --git a/server/public/admin/assets/prescription-drawer-CSbFDlBk.js b/server/public/admin/assets/prescription-drawer-CS4uE7JJ.js similarity index 98% rename from server/public/admin/assets/prescription-drawer-CSbFDlBk.js rename to server/public/admin/assets/prescription-drawer-CS4uE7JJ.js index 0d67f5032..47406db0b 100644 --- a/server/public/admin/assets/prescription-drawer-CSbFDlBk.js +++ b/server/public/admin/assets/prescription-drawer-CS4uE7JJ.js @@ -1 +1 @@ -import{o as $,q as A,O as H,D as o,v as e,bd as L,u as n,bb as j,aA as G,bh as J,bi as K,c9 as P,ca as Q,bf as W,bq as X,L as _,J as Z,az as ee,s as k,K as le,bk as ae,bl as oe,I as te,C as ne,B as ue,M as x,aC as de}from"./.pnpm-CyuAWpdG.js";import{w as se}from"./tcm-QAkeqQ9Q.js";import{j as w,_ as ie}from"./index-Dxvz9lb1.js";import{M as re}from"./index-Cf6ygfGC.js";import"./medicine-EUKQYFsM.js";const pe={class:"w-full"},me=$({__name:"prescription-drawer",emits:["success"],setup(_e,{expose:C,emit:D}){const q=D,g=x(!1),f=x(),y=x(!1),l=de({appointment_id:0,diagnosis_id:0,prescription_name:"",prescription_type:"浓缩水丸",patient_name:"",gender:1,age:0,visit_no:"",prescription_date:"",tongue:"",tongue_image:"",pulse:"",pulse_condition:"",clinical_diagnosis:"",herbs:[],dose_count:7,dose_unit:"剂",usage_days:7,usage_instruction:"水煎服,一日二次",usage_time:"饭前",usage_way:"温水送服",dietary_taboo:[],usage_notes:"",doctor_name:"",is_shared:0,audit_status:1}),I={prescription_name:[{required:!0,message:"请输入处方名称",trigger:"blur"}],patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],prescription_date:[{required:!0,message:"请选择处方日期",trigger:"change"}],clinical_diagnosis:[{required:!0,message:"请输入临床诊断",trigger:"blur"}],dose_count:[{required:!0,message:"请输入剂数",trigger:"blur"}],doctor_name:[{required:!0,message:"请输入医师姓名",trigger:"blur"}]},S=()=>{l.herbs.push({name:"",dosage:0})},Y=s=>{l.herbs.splice(s,1)},M=()=>{l.appointment_id=0,l.diagnosis_id=0,l.prescription_name="",l.prescription_type="浓缩水丸",l.patient_name="",l.gender=1,l.age=0,l.visit_no="",l.prescription_date=new Date().toISOString().split("T")[0],l.tongue="",l.tongue_image="",l.pulse="",l.pulse_condition="",l.clinical_diagnosis="",l.herbs=[],l.dose_count=7,l.dose_unit="剂",l.usage_days=7,l.usage_instruction="水煎服,一日二次",l.usage_time="饭前",l.usage_way="温水送服",l.dietary_taboo=[],l.usage_notes="",l.doctor_name="",l.is_shared=0,l.audit_status=0},R=s=>{var a;M(),l.appointment_id=s.id||0,l.diagnosis_id=s.diagnosis_id||0,l.patient_name=s.patient_name||"",l.gender=s.patient_gender==="男"?1:0,l.age=parseInt(s.patient_age)||0,l.visit_no=((a=s.id)==null?void 0:a.toString())||"",l.prescription_date=s.appointment_date||new Date().toISOString().split("T")[0],l.doctor_name=s.doctor_name||"",g.value=!0},U=()=>{var s;g.value=!1,(s=f.value)==null||s.resetFields()},B=async()=>{if(f.value){if(await f.value.validate(),!l.herbs||l.herbs.length===0){w.msgError("请至少添加一味药材");return}for(let s=0;s{const r=G,d=j,u=K,b=J,i=Q,p=P,E=X,N=W,c=Z,T=ee,V=le,v=oe,h=ae,F=te,O=L,z=ue;return A(),H(z,{modelValue:n(g),"onUpdate:modelValue":a[22]||(a[22]=t=>ne(g)?g.value=t:null),title:"创建处方单",size:"90%","close-on-click-modal":!1,onClose:U},{footer:o(()=>[e(V,{onClick:U},{default:o(()=>[...a[28]||(a[28]=[_("取消",-1)])]),_:1}),e(V,{type:"primary",onClick:B,loading:n(y)},{default:o(()=>[...a[29]||(a[29]=[_("保存",-1)])]),_:1},8,["loading"])]),default:o(()=>[e(O,{ref_key:"formRef",ref:f,model:n(l),rules:I,"label-width":"120px",class:"prescription-form"},{default:o(()=>[e(d,{label:"处方名称",prop:"prescription_name"},{default:o(()=>[e(r,{modelValue:n(l).prescription_name,"onUpdate:modelValue":a[0]||(a[0]=t=>n(l).prescription_name=t),placeholder:"请输入处方名称",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(d,{label:"处方类型",prop:"prescription_type"},{default:o(()=>[e(b,{modelValue:n(l).prescription_type,"onUpdate:modelValue":a[1]||(a[1]=t=>n(l).prescription_type=t),placeholder:"请选择处方类型",class:"w-full"},{default:o(()=>[e(u,{label:"浓缩水丸",value:"浓缩水丸"}),e(u,{label:"饮片",value:"饮片"}),e(u,{label:"颗粒",value:"颗粒"}),e(u,{label:"丸剂",value:"丸剂"}),e(u,{label:"散剂",value:"散剂"}),e(u,{label:"膏方",value:"膏方"}),e(u,{label:"汤剂",value:"汤剂"})]),_:1},8,["modelValue"])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:12},{default:o(()=>[e(d,{label:"患者姓名",prop:"patient_name"},{default:o(()=>[e(r,{modelValue:n(l).patient_name,"onUpdate:modelValue":a[2]||(a[2]=t=>n(l).patient_name=t),placeholder:"请输入患者姓名"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:12},{default:o(()=>[e(d,{label:"门诊号",prop:"visit_no"},{default:o(()=>[e(r,{modelValue:n(l).visit_no,"onUpdate:modelValue":a[3]||(a[3]=t=>n(l).visit_no=t),placeholder:"自动生成或手动输入"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:8},{default:o(()=>[e(d,{label:"性别",prop:"gender"},{default:o(()=>[e(N,{modelValue:n(l).gender,"onUpdate:modelValue":a[4]||(a[4]=t=>n(l).gender=t)},{default:o(()=>[e(E,{label:1},{default:o(()=>[...a[23]||(a[23]=[_("男",-1)])]),_:1}),e(E,{label:0},{default:o(()=>[...a[24]||(a[24]=[_("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(i,{span:8},{default:o(()=>[e(d,{label:"年龄",prop:"age"},{default:o(()=>[e(c,{modelValue:n(l).age,"onUpdate:modelValue":a[5]||(a[5]=t=>n(l).age=t),min:0,max:150,placeholder:"请输入年龄",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:8},{default:o(()=>[e(d,{label:"处方日期",prop:"prescription_date"},{default:o(()=>[e(T,{modelValue:n(l).prescription_date,"onUpdate:modelValue":a[6]||(a[6]=t=>n(l).prescription_date=t),type:"date",placeholder:"选择日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:12},{default:o(()=>[e(d,{label:"面象",prop:"tongue"},{default:o(()=>[e(r,{modelValue:n(l).tongue,"onUpdate:modelValue":a[7]||(a[7]=t=>n(l).tongue=t),placeholder:"请输入面象"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:12},{default:o(()=>[e(d,{label:"舌象",prop:"tongue_image"},{default:o(()=>[e(r,{modelValue:n(l).tongue_image,"onUpdate:modelValue":a[8]||(a[8]=t=>n(l).tongue_image=t),placeholder:"请输入舌象"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:12},{default:o(()=>[e(d,{label:"脉象",prop:"pulse"},{default:o(()=>[e(r,{modelValue:n(l).pulse,"onUpdate:modelValue":a[9]||(a[9]=t=>n(l).pulse=t),placeholder:"请输入脉象"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:12},{default:o(()=>[e(d,{label:"脉象详情",prop:"pulse_condition"},{default:o(()=>[e(r,{modelValue:n(l).pulse_condition,"onUpdate:modelValue":a[10]||(a[10]=t=>n(l).pulse_condition=t),placeholder:"请输入脉象详情"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(d,{label:"临床诊断",prop:"clinical_diagnosis"},{default:o(()=>[e(r,{modelValue:n(l).clinical_diagnosis,"onUpdate:modelValue":a[11]||(a[11]=t=>n(l).clinical_diagnosis=t),type:"textarea",rows:3,placeholder:"请输入临床诊断",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(d,{label:"药材配方",prop:"herbs",required:""},{default:o(()=>[k("div",pe,[e(V,{type:"primary",size:"small",onClick:S},{default:o(()=>[...a[25]||(a[25]=[_(" 添加药材 ",-1)])]),_:1}),e(h,{data:n(l).herbs,class:"mt-2",border:""},{default:o(()=>[e(v,{label:"序号",type:"index",width:"60"}),e(v,{label:"药材名称","min-width":"220"},{default:o(({row:t})=>[e(re,{modelValue:t.name,"onUpdate:modelValue":m=>t.name=m,"medicine-id":t.medicine_id,"onUpdate:medicineId":m=>t.medicine_id=m},null,8,["modelValue","onUpdate:modelValue","medicine-id","onUpdate:medicineId"])]),_:1}),e(v,{label:"剂量(克)","min-width":"120"},{default:o(({row:t})=>[e(c,{modelValue:t.dosage,"onUpdate:modelValue":m=>t.dosage=m,min:0,precision:1,step:.5,placeholder:"剂量",class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),e(v,{label:"操作",width:"80"},{default:o(({$index:t})=>[e(V,{type:"danger",link:"",onClick:m=>Y(t)},{default:o(()=>[...a[26]||(a[26]=[_(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:8},{default:o(()=>[e(d,{label:"剂数",prop:"dose_count"},{default:o(()=>[e(c,{modelValue:n(l).dose_count,"onUpdate:modelValue":a[12]||(a[12]=t=>n(l).dose_count=t),min:1,placeholder:"剂数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:8},{default:o(()=>[e(d,{label:"剂量单位",prop:"dose_unit"},{default:o(()=>[e(b,{modelValue:n(l).dose_unit,"onUpdate:modelValue":a[13]||(a[13]=t=>n(l).dose_unit=t),placeholder:"请选择",class:"w-full"},{default:o(()=>[e(u,{label:"剂",value:"剂"}),e(u,{label:"丸",value:"丸"}),e(u,{label:"袋",value:"袋"}),e(u,{label:"盒",value:"盒"}),e(u,{label:"瓶",value:"瓶"}),e(u,{label:"膏",value:"膏"}),e(u,{label:"贴",value:"贴"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(i,{span:8},{default:o(()=>[e(d,{label:"服用天数",prop:"usage_days"},{default:o(()=>[e(c,{modelValue:n(l).usage_days,"onUpdate:modelValue":a[14]||(a[14]=t=>n(l).usage_days=t),min:1,max:365,placeholder:"服用天数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(d,{label:"用法",prop:"usage_instruction"},{default:o(()=>[e(r,{modelValue:n(l).usage_instruction,"onUpdate:modelValue":a[15]||(a[15]=t=>n(l).usage_instruction=t),placeholder:"例如:水煎服,一日二次",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:12},{default:o(()=>[e(d,{label:"服用时间",prop:"usage_time"},{default:o(()=>[e(b,{modelValue:n(l).usage_time,"onUpdate:modelValue":a[16]||(a[16]=t=>n(l).usage_time=t),placeholder:"请选择服用时间",class:"w-full"},{default:o(()=>[e(u,{label:"饭前",value:"饭前"}),e(u,{label:"饭后",value:"饭后"}),e(u,{label:"饭中",value:"饭中"}),e(u,{label:"空腹",value:"空腹"}),e(u,{label:"睡前",value:"睡前"}),e(u,{label:"晨起",value:"晨起"}),e(u,{label:"随时",value:"随时"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(i,{span:12},{default:o(()=>[e(d,{label:"服用方式",prop:"usage_way"},{default:o(()=>[e(b,{modelValue:n(l).usage_way,"onUpdate:modelValue":a[17]||(a[17]=t=>n(l).usage_way=t),placeholder:"请选择服用方式",class:"w-full"},{default:o(()=>[e(u,{label:"温水送服",value:"温水送服"}),e(u,{label:"开水冲服",value:"开水冲服"}),e(u,{label:"黄酒送服",value:"黄酒送服"}),e(u,{label:"淡盐水送服",value:"淡盐水送服"}),e(u,{label:"米汤送服",value:"米汤送服"}),e(u,{label:"嚼服",value:"嚼服"}),e(u,{label:"含化",value:"含化"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(d,{label:"忌口",prop:"dietary_taboo"},{default:o(()=>[e(b,{modelValue:n(l).dietary_taboo,"onUpdate:modelValue":a[18]||(a[18]=t=>n(l).dietary_taboo=t),multiple:"",placeholder:"请选择忌口内容(可多选)",class:"w-full"},{default:o(()=>[e(u,{label:"辛辣食物",value:"辛辣食物"}),e(u,{label:"生冷食物",value:"生冷食物"}),e(u,{label:"油腻食物",value:"油腻食物"}),e(u,{label:"海鲜",value:"海鲜"}),e(u,{label:"牛羊肉",value:"牛羊肉"}),e(u,{label:"鸡蛋",value:"鸡蛋"}),e(u,{label:"豆制品",value:"豆制品"}),e(u,{label:"酒类",value:"酒类"}),e(u,{label:"浓茶",value:"浓茶"}),e(u,{label:"咖啡",value:"咖啡"}),e(u,{label:"烟草",value:"烟草"}),e(u,{label:"萝卜",value:"萝卜"})]),_:1},8,["modelValue"])]),_:1}),e(d,{label:"其他说明",prop:"usage_notes"},{default:o(()=>[e(r,{modelValue:n(l).usage_notes,"onUpdate:modelValue":a[19]||(a[19]=t=>n(l).usage_notes=t),type:"textarea",rows:2,placeholder:"其他服用注意事项",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(d,{label:"医师姓名",prop:"doctor_name"},{default:o(()=>[e(r,{modelValue:n(l).doctor_name,"onUpdate:modelValue":a[20]||(a[20]=t=>n(l).doctor_name=t),placeholder:"请输入医师姓名"},null,8,["modelValue"])]),_:1}),e(d,{label:"是否共享",prop:"is_shared"},{default:o(()=>[e(F,{modelValue:n(l).is_shared,"onUpdate:modelValue":a[21]||(a[21]=t=>n(l).is_shared=t),"active-value":1,"inactive-value":0,"active-text":"所有人可见","inactive-text":"仅自己可见"},null,8,["modelValue"]),a[27]||(a[27]=k("div",{class:"text-xs text-gray-400 mt-1"}," 勾选后,所有医生都可以查看和使用此处方模板 ",-1))]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])}}}),ve=ie(me,[["__scopeId","data-v-687b0c23"]]);export{ve as default}; +import{o as $,q as A,O as H,D as o,v as e,bd as L,u as n,bb as j,aA as G,bh as J,bi as K,c9 as P,ca as Q,bf as W,bq as X,L as _,J as Z,az as ee,s as k,K as le,bk as ae,bl as oe,I as te,C as ne,B as ue,M as x,aC as de}from"./.pnpm-CyuAWpdG.js";import{w as se}from"./tcm-BSADvQNg.js";import{j as w,_ as ie}from"./index-Bkarz3gO.js";import{M as re}from"./index-DAIDDabA.js";import"./medicine-DPIOyHj8.js";const pe={class:"w-full"},me=$({__name:"prescription-drawer",emits:["success"],setup(_e,{expose:C,emit:D}){const q=D,g=x(!1),f=x(),y=x(!1),l=de({appointment_id:0,diagnosis_id:0,prescription_name:"",prescription_type:"浓缩水丸",patient_name:"",gender:1,age:0,visit_no:"",prescription_date:"",tongue:"",tongue_image:"",pulse:"",pulse_condition:"",clinical_diagnosis:"",herbs:[],dose_count:7,dose_unit:"剂",usage_days:7,usage_instruction:"水煎服,一日二次",usage_time:"饭前",usage_way:"温水送服",dietary_taboo:[],usage_notes:"",doctor_name:"",is_shared:0,audit_status:1}),I={prescription_name:[{required:!0,message:"请输入处方名称",trigger:"blur"}],patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],prescription_date:[{required:!0,message:"请选择处方日期",trigger:"change"}],clinical_diagnosis:[{required:!0,message:"请输入临床诊断",trigger:"blur"}],dose_count:[{required:!0,message:"请输入剂数",trigger:"blur"}],doctor_name:[{required:!0,message:"请输入医师姓名",trigger:"blur"}]},S=()=>{l.herbs.push({name:"",dosage:0})},Y=s=>{l.herbs.splice(s,1)},M=()=>{l.appointment_id=0,l.diagnosis_id=0,l.prescription_name="",l.prescription_type="浓缩水丸",l.patient_name="",l.gender=1,l.age=0,l.visit_no="",l.prescription_date=new Date().toISOString().split("T")[0],l.tongue="",l.tongue_image="",l.pulse="",l.pulse_condition="",l.clinical_diagnosis="",l.herbs=[],l.dose_count=7,l.dose_unit="剂",l.usage_days=7,l.usage_instruction="水煎服,一日二次",l.usage_time="饭前",l.usage_way="温水送服",l.dietary_taboo=[],l.usage_notes="",l.doctor_name="",l.is_shared=0,l.audit_status=0},R=s=>{var a;M(),l.appointment_id=s.id||0,l.diagnosis_id=s.diagnosis_id||0,l.patient_name=s.patient_name||"",l.gender=s.patient_gender==="男"?1:0,l.age=parseInt(s.patient_age)||0,l.visit_no=((a=s.id)==null?void 0:a.toString())||"",l.prescription_date=s.appointment_date||new Date().toISOString().split("T")[0],l.doctor_name=s.doctor_name||"",g.value=!0},U=()=>{var s;g.value=!1,(s=f.value)==null||s.resetFields()},B=async()=>{if(f.value){if(await f.value.validate(),!l.herbs||l.herbs.length===0){w.msgError("请至少添加一味药材");return}for(let s=0;s{const r=G,d=j,u=K,b=J,i=Q,p=P,E=X,N=W,c=Z,T=ee,V=le,v=oe,h=ae,F=te,O=L,z=ue;return A(),H(z,{modelValue:n(g),"onUpdate:modelValue":a[22]||(a[22]=t=>ne(g)?g.value=t:null),title:"创建处方单",size:"90%","close-on-click-modal":!1,onClose:U},{footer:o(()=>[e(V,{onClick:U},{default:o(()=>[...a[28]||(a[28]=[_("取消",-1)])]),_:1}),e(V,{type:"primary",onClick:B,loading:n(y)},{default:o(()=>[...a[29]||(a[29]=[_("保存",-1)])]),_:1},8,["loading"])]),default:o(()=>[e(O,{ref_key:"formRef",ref:f,model:n(l),rules:I,"label-width":"120px",class:"prescription-form"},{default:o(()=>[e(d,{label:"处方名称",prop:"prescription_name"},{default:o(()=>[e(r,{modelValue:n(l).prescription_name,"onUpdate:modelValue":a[0]||(a[0]=t=>n(l).prescription_name=t),placeholder:"请输入处方名称",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(d,{label:"处方类型",prop:"prescription_type"},{default:o(()=>[e(b,{modelValue:n(l).prescription_type,"onUpdate:modelValue":a[1]||(a[1]=t=>n(l).prescription_type=t),placeholder:"请选择处方类型",class:"w-full"},{default:o(()=>[e(u,{label:"浓缩水丸",value:"浓缩水丸"}),e(u,{label:"饮片",value:"饮片"}),e(u,{label:"颗粒",value:"颗粒"}),e(u,{label:"丸剂",value:"丸剂"}),e(u,{label:"散剂",value:"散剂"}),e(u,{label:"膏方",value:"膏方"}),e(u,{label:"汤剂",value:"汤剂"})]),_:1},8,["modelValue"])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:12},{default:o(()=>[e(d,{label:"患者姓名",prop:"patient_name"},{default:o(()=>[e(r,{modelValue:n(l).patient_name,"onUpdate:modelValue":a[2]||(a[2]=t=>n(l).patient_name=t),placeholder:"请输入患者姓名"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:12},{default:o(()=>[e(d,{label:"门诊号",prop:"visit_no"},{default:o(()=>[e(r,{modelValue:n(l).visit_no,"onUpdate:modelValue":a[3]||(a[3]=t=>n(l).visit_no=t),placeholder:"自动生成或手动输入"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:8},{default:o(()=>[e(d,{label:"性别",prop:"gender"},{default:o(()=>[e(N,{modelValue:n(l).gender,"onUpdate:modelValue":a[4]||(a[4]=t=>n(l).gender=t)},{default:o(()=>[e(E,{label:1},{default:o(()=>[...a[23]||(a[23]=[_("男",-1)])]),_:1}),e(E,{label:0},{default:o(()=>[...a[24]||(a[24]=[_("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(i,{span:8},{default:o(()=>[e(d,{label:"年龄",prop:"age"},{default:o(()=>[e(c,{modelValue:n(l).age,"onUpdate:modelValue":a[5]||(a[5]=t=>n(l).age=t),min:0,max:150,placeholder:"请输入年龄",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:8},{default:o(()=>[e(d,{label:"处方日期",prop:"prescription_date"},{default:o(()=>[e(T,{modelValue:n(l).prescription_date,"onUpdate:modelValue":a[6]||(a[6]=t=>n(l).prescription_date=t),type:"date",placeholder:"选择日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:12},{default:o(()=>[e(d,{label:"面象",prop:"tongue"},{default:o(()=>[e(r,{modelValue:n(l).tongue,"onUpdate:modelValue":a[7]||(a[7]=t=>n(l).tongue=t),placeholder:"请输入面象"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:12},{default:o(()=>[e(d,{label:"舌象",prop:"tongue_image"},{default:o(()=>[e(r,{modelValue:n(l).tongue_image,"onUpdate:modelValue":a[8]||(a[8]=t=>n(l).tongue_image=t),placeholder:"请输入舌象"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:12},{default:o(()=>[e(d,{label:"脉象",prop:"pulse"},{default:o(()=>[e(r,{modelValue:n(l).pulse,"onUpdate:modelValue":a[9]||(a[9]=t=>n(l).pulse=t),placeholder:"请输入脉象"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:12},{default:o(()=>[e(d,{label:"脉象详情",prop:"pulse_condition"},{default:o(()=>[e(r,{modelValue:n(l).pulse_condition,"onUpdate:modelValue":a[10]||(a[10]=t=>n(l).pulse_condition=t),placeholder:"请输入脉象详情"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(d,{label:"临床诊断",prop:"clinical_diagnosis"},{default:o(()=>[e(r,{modelValue:n(l).clinical_diagnosis,"onUpdate:modelValue":a[11]||(a[11]=t=>n(l).clinical_diagnosis=t),type:"textarea",rows:3,placeholder:"请输入临床诊断",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(d,{label:"药材配方",prop:"herbs",required:""},{default:o(()=>[k("div",pe,[e(V,{type:"primary",size:"small",onClick:S},{default:o(()=>[...a[25]||(a[25]=[_(" 添加药材 ",-1)])]),_:1}),e(h,{data:n(l).herbs,class:"mt-2",border:""},{default:o(()=>[e(v,{label:"序号",type:"index",width:"60"}),e(v,{label:"药材名称","min-width":"220"},{default:o(({row:t})=>[e(re,{modelValue:t.name,"onUpdate:modelValue":m=>t.name=m,"medicine-id":t.medicine_id,"onUpdate:medicineId":m=>t.medicine_id=m},null,8,["modelValue","onUpdate:modelValue","medicine-id","onUpdate:medicineId"])]),_:1}),e(v,{label:"剂量(克)","min-width":"120"},{default:o(({row:t})=>[e(c,{modelValue:t.dosage,"onUpdate:modelValue":m=>t.dosage=m,min:0,precision:1,step:.5,placeholder:"剂量",class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),e(v,{label:"操作",width:"80"},{default:o(({$index:t})=>[e(V,{type:"danger",link:"",onClick:m=>Y(t)},{default:o(()=>[...a[26]||(a[26]=[_(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:8},{default:o(()=>[e(d,{label:"剂数",prop:"dose_count"},{default:o(()=>[e(c,{modelValue:n(l).dose_count,"onUpdate:modelValue":a[12]||(a[12]=t=>n(l).dose_count=t),min:1,placeholder:"剂数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:8},{default:o(()=>[e(d,{label:"剂量单位",prop:"dose_unit"},{default:o(()=>[e(b,{modelValue:n(l).dose_unit,"onUpdate:modelValue":a[13]||(a[13]=t=>n(l).dose_unit=t),placeholder:"请选择",class:"w-full"},{default:o(()=>[e(u,{label:"剂",value:"剂"}),e(u,{label:"丸",value:"丸"}),e(u,{label:"袋",value:"袋"}),e(u,{label:"盒",value:"盒"}),e(u,{label:"瓶",value:"瓶"}),e(u,{label:"膏",value:"膏"}),e(u,{label:"贴",value:"贴"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(i,{span:8},{default:o(()=>[e(d,{label:"服用天数",prop:"usage_days"},{default:o(()=>[e(c,{modelValue:n(l).usage_days,"onUpdate:modelValue":a[14]||(a[14]=t=>n(l).usage_days=t),min:1,max:365,placeholder:"服用天数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(d,{label:"用法",prop:"usage_instruction"},{default:o(()=>[e(r,{modelValue:n(l).usage_instruction,"onUpdate:modelValue":a[15]||(a[15]=t=>n(l).usage_instruction=t),placeholder:"例如:水煎服,一日二次",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:12},{default:o(()=>[e(d,{label:"服用时间",prop:"usage_time"},{default:o(()=>[e(b,{modelValue:n(l).usage_time,"onUpdate:modelValue":a[16]||(a[16]=t=>n(l).usage_time=t),placeholder:"请选择服用时间",class:"w-full"},{default:o(()=>[e(u,{label:"饭前",value:"饭前"}),e(u,{label:"饭后",value:"饭后"}),e(u,{label:"饭中",value:"饭中"}),e(u,{label:"空腹",value:"空腹"}),e(u,{label:"睡前",value:"睡前"}),e(u,{label:"晨起",value:"晨起"}),e(u,{label:"随时",value:"随时"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(i,{span:12},{default:o(()=>[e(d,{label:"服用方式",prop:"usage_way"},{default:o(()=>[e(b,{modelValue:n(l).usage_way,"onUpdate:modelValue":a[17]||(a[17]=t=>n(l).usage_way=t),placeholder:"请选择服用方式",class:"w-full"},{default:o(()=>[e(u,{label:"温水送服",value:"温水送服"}),e(u,{label:"开水冲服",value:"开水冲服"}),e(u,{label:"黄酒送服",value:"黄酒送服"}),e(u,{label:"淡盐水送服",value:"淡盐水送服"}),e(u,{label:"米汤送服",value:"米汤送服"}),e(u,{label:"嚼服",value:"嚼服"}),e(u,{label:"含化",value:"含化"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(d,{label:"忌口",prop:"dietary_taboo"},{default:o(()=>[e(b,{modelValue:n(l).dietary_taboo,"onUpdate:modelValue":a[18]||(a[18]=t=>n(l).dietary_taboo=t),multiple:"",placeholder:"请选择忌口内容(可多选)",class:"w-full"},{default:o(()=>[e(u,{label:"辛辣食物",value:"辛辣食物"}),e(u,{label:"生冷食物",value:"生冷食物"}),e(u,{label:"油腻食物",value:"油腻食物"}),e(u,{label:"海鲜",value:"海鲜"}),e(u,{label:"牛羊肉",value:"牛羊肉"}),e(u,{label:"鸡蛋",value:"鸡蛋"}),e(u,{label:"豆制品",value:"豆制品"}),e(u,{label:"酒类",value:"酒类"}),e(u,{label:"浓茶",value:"浓茶"}),e(u,{label:"咖啡",value:"咖啡"}),e(u,{label:"烟草",value:"烟草"}),e(u,{label:"萝卜",value:"萝卜"})]),_:1},8,["modelValue"])]),_:1}),e(d,{label:"其他说明",prop:"usage_notes"},{default:o(()=>[e(r,{modelValue:n(l).usage_notes,"onUpdate:modelValue":a[19]||(a[19]=t=>n(l).usage_notes=t),type:"textarea",rows:2,placeholder:"其他服用注意事项",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(d,{label:"医师姓名",prop:"doctor_name"},{default:o(()=>[e(r,{modelValue:n(l).doctor_name,"onUpdate:modelValue":a[20]||(a[20]=t=>n(l).doctor_name=t),placeholder:"请输入医师姓名"},null,8,["modelValue"])]),_:1}),e(d,{label:"是否共享",prop:"is_shared"},{default:o(()=>[e(F,{modelValue:n(l).is_shared,"onUpdate:modelValue":a[21]||(a[21]=t=>n(l).is_shared=t),"active-value":1,"inactive-value":0,"active-text":"所有人可见","inactive-text":"仅自己可见"},null,8,["modelValue"]),a[27]||(a[27]=k("div",{class:"text-xs text-gray-400 mt-1"}," 勾选后,所有医生都可以查看和使用此处方模板 ",-1))]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])}}}),ve=ie(me,[["__scopeId","data-v-687b0c23"]]);export{ve as default}; diff --git a/server/public/admin/assets/preview-pEzQXats.js b/server/public/admin/assets/preview-D6ROnn0L.js similarity index 64% rename from server/public/admin/assets/preview-pEzQXats.js rename to server/public/admin/assets/preview-D6ROnn0L.js index 602872e88..09a2da046 100644 --- a/server/public/admin/assets/preview-pEzQXats.js +++ b/server/public/admin/assets/preview-D6ROnn0L.js @@ -1 +1 @@ -import{o as z,q as p,O as k,D as u,r as v,v as n,K as A,L as F,P as C,s as d,F as L,G as O,ae as V,ah as T,a4 as j,u as f,a1 as q,cr as G,cs as K,aw as D,ct as U,cu as W,a2 as g,p as b,co as H,M as J}from"./.pnpm-CyuAWpdG.js";import{e as Q}from"./index-DdPJHEsY.js";import{_ as R}from"./index-Dxvz9lb1.js";import"./attr-BKcZmDiX.js";import"./index-ClBYIwNX.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./content.vue_vue_type_script_setup_true_lang-DVlBS5Y8.js";import"./decoration-img-DKpVnT4z.js";import"./attr.vue_vue_type_script_setup_true_lang-DQUc65nD.js";import"./content-CkQUB7ti.js";import"./attr.vue_vue_type_script_setup_true_lang-Co9N5gOC.js";import"./content.vue_vue_type_script_setup_true_lang-D3yhrH9m.js";import"./attr.vue_vue_type_script_setup_true_lang-BUrcLo0c.js";import"./add-nav.vue_vue_type_script_setup_true_lang-CaeukMqg.js";import"./content-BtlOdmdD.js";import"./attr.vue_vue_type_script_setup_true_lang-kgBs74gd.js";import"./content.vue_vue_type_script_setup_true_lang-CwwLmi2B.js";import"./attr.vue_vue_type_script_setup_true_lang-Bkj1p-jl.js";import"./content-DqDTOak9.js";import"./decoration-9ln5Pyvl.js";import"./attr.vue_vue_type_script_setup_true_lang-BWENGozb.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./content-0LXu-5MK.js";import"./content.vue_vue_type_script_setup_true_lang-BlC3oWQE.js";import"./attr.vue_vue_type_script_setup_true_lang-jrtitgMf.js";import"./content-C5W1CaMe.js";import"./attr.vue_vue_type_script_setup_true_lang-CsV4MUsa.js";import"./content.vue_vue_type_script_setup_true_lang-Unv1Zxh1.js";import"./attr.vue_vue_type_script_setup_true_lang-ObQLkrtE.js";import"./content-DdjhpUgB.js";const X={class:"shadow mx-[30px] pages-preview"},Y=["onClick"],Z={key:0,class:"widget-btns py-[5px]"},x=z({__name:"preview",props:{pageMeta:{type:Object,default:()=>null},pageData:{type:Array,default:()=>[]},modelValue:{type:Number,default:0}},emits:["update:modelValue","updatePageData"],setup(c,{emit:M}){const r=c,i=M,y=J(-1),P=()=>{r.modelValue===-1?i("update:modelValue",y.value):(y.value=r.modelValue,i("update:modelValue",-1))},B=(e,o)=>{e.disabled||i("update:modelValue",o)},N=b(()=>e=>e===0),$=b(()=>e=>{var o;return((o=r.pageData)==null?void 0:o.length)===e+1}),_=b(()=>e=>(e==null?void 0:e.enabled)==0),E=e=>{e.enabled!==void 0&&(e.enabled=e.enabled?0:1)},h=(e,o)=>{if(e<0||e>=r.pageData.length||o<0||o>=r.pageData.length)return;const l=H(r.pageData),m=l.splice(e,1)[0];l.splice(o,0,m),i("updatePageData",l),i("update:modelValue",o)};return(e,o)=>{const l=A,m=q,S=g;return p(),k(S,{class:"pages-preview-container"},{default:u(()=>[c.pageMeta!==null?(p(),v("div",{key:0,class:"absolute right-4 top-4",onClick:P},[n(l,null,{default:u(()=>[...o[0]||(o[0]=[F("页面设置",-1)])]),_:1})])):C("",!0),d("div",X,[(p(!0),v(L,null,O(c.pageData,(t,a)=>(p(),v("div",{key:t.id,class:V(["relative",{"cursor-pointer":!(t!=null&&t.disabled)}]),onClick:s=>B(t,a)},[d("div",{class:V(["absolute w-full h-full z-[100] border-dashed",{select:a==c.modelValue,hide:_.value(t.content),"border-[#dcdfe6] border-2":!(t!=null&&t.disabled)}])},null,2),T(e.$slots,"default",{},()=>{var s;return[(p(),k(j((s=f(Q)[t==null?void 0:t.name])==null?void 0:s.content),{content:t.content,styles:t.styles,key:t.id},null,8,["content","styles"]))]},!0),a==c.modelValue?(p(),v("div",Z,[d("div",null,[n(m,{effect:"dark",content:_.value(t.content)?"显示":"隐藏",placement:"right"},{default:u(()=>[n(l,{class:"py-[5px]",type:"primary",icon:_.value(t.content)?f(G):f(K),onClick:s=>E(t.content)},null,8,["icon","onClick"])]),_:2},1032,["content"])]),d("div",null,[n(m,{effect:"dark",content:"上移",placement:"right"},{default:u(()=>[n(l,{class:"py-[5px]",type:"primary",icon:f(U),disabled:N.value(a),onClick:D(s=>h(a,a-1),["stop"])},null,8,["icon","disabled","onClick"])]),_:2},1024)]),d("div",null,[n(m,{effect:"dark",content:"下移",placement:"right"},{default:u(()=>[n(l,{class:"py-[5px]",type:"primary",icon:f(W),disabled:$.value(a),onClick:D(s=>h(a,a+1),["stop"])},null,8,["icon","disabled","onClick"])]),_:2},1024)])])):C("",!0)],10,Y))),128))])]),_:3})}}}),je=R(x,[["__scopeId","data-v-a459312e"]]);export{je as default}; +import{o as z,q as p,O as k,D as u,r as v,v as n,K as A,L as F,P as C,s as d,F as L,G as O,ae as V,ah as T,a4 as j,u as f,a1 as q,cr as G,cs as K,aw as D,ct as U,cu as W,a2 as g,p as b,co as H,M as J}from"./.pnpm-CyuAWpdG.js";import{e as Q}from"./index-BLw2qqEh.js";import{_ as R}from"./index-Bkarz3gO.js";import"./attr-DWgf0zU2.js";import"./index-Cqk_cdo9.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./content.vue_vue_type_script_setup_true_lang-3GiNjvv7.js";import"./decoration-img-SoINHtbg.js";import"./attr.vue_vue_type_script_setup_true_lang-BoEBITiA.js";import"./content-BR-B7Y89.js";import"./attr.vue_vue_type_script_setup_true_lang-VLQINM6l.js";import"./content.vue_vue_type_script_setup_true_lang-DJb4aHFp.js";import"./attr.vue_vue_type_script_setup_true_lang-BsVB4T8K.js";import"./add-nav.vue_vue_type_script_setup_true_lang-ByQYZkB9.js";import"./content-CPrgdURU.js";import"./attr.vue_vue_type_script_setup_true_lang-DyWBgKkz.js";import"./content.vue_vue_type_script_setup_true_lang-DIToE7Db.js";import"./attr.vue_vue_type_script_setup_true_lang-Bkj1p-jl.js";import"./content-B1kkCzVQ.js";import"./decoration-BCfnNTDP.js";import"./attr.vue_vue_type_script_setup_true_lang-DEQz3dX_.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./content-DLUkNAW_.js";import"./content.vue_vue_type_script_setup_true_lang-D7k_-QjC.js";import"./attr.vue_vue_type_script_setup_true_lang-jrtitgMf.js";import"./content-C1VdJnCo.js";import"./attr.vue_vue_type_script_setup_true_lang-BPT_wucL.js";import"./content.vue_vue_type_script_setup_true_lang-_A_7DW4P.js";import"./attr.vue_vue_type_script_setup_true_lang-ObQLkrtE.js";import"./content-DraD2KOm.js";const X={class:"shadow mx-[30px] pages-preview"},Y=["onClick"],Z={key:0,class:"widget-btns py-[5px]"},x=z({__name:"preview",props:{pageMeta:{type:Object,default:()=>null},pageData:{type:Array,default:()=>[]},modelValue:{type:Number,default:0}},emits:["update:modelValue","updatePageData"],setup(c,{emit:M}){const r=c,i=M,y=J(-1),P=()=>{r.modelValue===-1?i("update:modelValue",y.value):(y.value=r.modelValue,i("update:modelValue",-1))},B=(e,o)=>{e.disabled||i("update:modelValue",o)},N=b(()=>e=>e===0),$=b(()=>e=>{var o;return((o=r.pageData)==null?void 0:o.length)===e+1}),_=b(()=>e=>(e==null?void 0:e.enabled)==0),E=e=>{e.enabled!==void 0&&(e.enabled=e.enabled?0:1)},h=(e,o)=>{if(e<0||e>=r.pageData.length||o<0||o>=r.pageData.length)return;const l=H(r.pageData),m=l.splice(e,1)[0];l.splice(o,0,m),i("updatePageData",l),i("update:modelValue",o)};return(e,o)=>{const l=A,m=q,S=g;return p(),k(S,{class:"pages-preview-container"},{default:u(()=>[c.pageMeta!==null?(p(),v("div",{key:0,class:"absolute right-4 top-4",onClick:P},[n(l,null,{default:u(()=>[...o[0]||(o[0]=[F("页面设置",-1)])]),_:1})])):C("",!0),d("div",X,[(p(!0),v(L,null,O(c.pageData,(t,a)=>(p(),v("div",{key:t.id,class:V(["relative",{"cursor-pointer":!(t!=null&&t.disabled)}]),onClick:s=>B(t,a)},[d("div",{class:V(["absolute w-full h-full z-[100] border-dashed",{select:a==c.modelValue,hide:_.value(t.content),"border-[#dcdfe6] border-2":!(t!=null&&t.disabled)}])},null,2),T(e.$slots,"default",{},()=>{var s;return[(p(),k(j((s=f(Q)[t==null?void 0:t.name])==null?void 0:s.content),{content:t.content,styles:t.styles,key:t.id},null,8,["content","styles"]))]},!0),a==c.modelValue?(p(),v("div",Z,[d("div",null,[n(m,{effect:"dark",content:_.value(t.content)?"显示":"隐藏",placement:"right"},{default:u(()=>[n(l,{class:"py-[5px]",type:"primary",icon:_.value(t.content)?f(G):f(K),onClick:s=>E(t.content)},null,8,["icon","onClick"])]),_:2},1032,["content"])]),d("div",null,[n(m,{effect:"dark",content:"上移",placement:"right"},{default:u(()=>[n(l,{class:"py-[5px]",type:"primary",icon:f(U),disabled:N.value(a),onClick:D(s=>h(a,a-1),["stop"])},null,8,["icon","disabled","onClick"])]),_:2},1024)]),d("div",null,[n(m,{effect:"dark",content:"下移",placement:"right"},{default:u(()=>[n(l,{class:"py-[5px]",type:"primary",icon:f(W),disabled:$.value(a),onClick:D(s=>h(a,a+1),["stop"])},null,8,["icon","disabled","onClick"])]),_:2},1024)])])):C("",!0)],10,Y))),128))])]),_:3})}}}),je=R(x,[["__scopeId","data-v-a459312e"]]);export{je as default}; diff --git a/server/public/admin/assets/preview-pc-ByidwxXs.js b/server/public/admin/assets/preview-pc-C4HvW1pf.js similarity index 59% rename from server/public/admin/assets/preview-pc-ByidwxXs.js rename to server/public/admin/assets/preview-pc-C4HvW1pf.js index ff5d0f643..d4a63671a 100644 --- a/server/public/admin/assets/preview-pc-ByidwxXs.js +++ b/server/public/admin/assets/preview-pc-C4HvW1pf.js @@ -1 +1 @@ -import{o as $,q as r,r as s,s as a,P as y,F as B,G as S,ae as _,t as h,u as o,ah as q,O as D,a4 as N,v as m,D as v,K as R,cq as z,a1 as E,cr as P,cs as F,a8 as I,p as j}from"./.pnpm-CyuAWpdG.js";import{e as A}from"./index-DdPJHEsY.js";import{_ as G}from"./index-Dxvz9lb1.js";import"./attr-BKcZmDiX.js";import"./index-ClBYIwNX.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./content.vue_vue_type_script_setup_true_lang-DVlBS5Y8.js";import"./decoration-img-DKpVnT4z.js";import"./attr.vue_vue_type_script_setup_true_lang-DQUc65nD.js";import"./content-CkQUB7ti.js";import"./attr.vue_vue_type_script_setup_true_lang-Co9N5gOC.js";import"./content.vue_vue_type_script_setup_true_lang-D3yhrH9m.js";import"./attr.vue_vue_type_script_setup_true_lang-BUrcLo0c.js";import"./add-nav.vue_vue_type_script_setup_true_lang-CaeukMqg.js";import"./content-BtlOdmdD.js";import"./attr.vue_vue_type_script_setup_true_lang-kgBs74gd.js";import"./content.vue_vue_type_script_setup_true_lang-CwwLmi2B.js";import"./attr.vue_vue_type_script_setup_true_lang-Bkj1p-jl.js";import"./content-DqDTOak9.js";import"./decoration-9ln5Pyvl.js";import"./attr.vue_vue_type_script_setup_true_lang-BWENGozb.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./content-0LXu-5MK.js";import"./content.vue_vue_type_script_setup_true_lang-BlC3oWQE.js";import"./attr.vue_vue_type_script_setup_true_lang-jrtitgMf.js";import"./content-C5W1CaMe.js";import"./attr.vue_vue_type_script_setup_true_lang-CsV4MUsa.js";import"./content.vue_vue_type_script_setup_true_lang-Unv1Zxh1.js";import"./attr.vue_vue_type_script_setup_true_lang-ObQLkrtE.js";import"./content-DdjhpUgB.js";const K={class:"pages-preview"},L={class:"relative flex justify-center h-full mt-5 mx-10"},O=["src"],T={class:"max-w-[1200px] w-full absolute"},W=["onClick"],H=$({__name:"preview-pc",props:{pageData:{type:Array,default:()=>[]},modelValue:{type:Number,default:0}},emits:["update:modelValue"],setup(p,{emit:k}){const u=I(),b=k,i=j(()=>t=>(t==null?void 0:t.enabled)==0),C=t=>{var l;(l=u.value[t])==null||l.open()},V=t=>{t.enabled!==void 0&&(t.enabled=t.enabled?0:1)},x=(t,l)=>{t.disabled||b("update:modelValue",l)};return(t,l)=>{const f=R,d=E;return r(),s("div",K,[a("div",L,[t.$route.query.url?(r(),s("iframe",{key:0,ref:"previewIframeRef",class:"flex-1 h-full",width:"100%",height:"100%",scrolling:"no",src:t.$route.query.url},null,8,O)):y("",!0),a("div",T,[(r(!0),s(B,null,S(p.pageData,(e,c)=>(r(),s("div",{key:e.id,class:_(["absolute left-0 top-0",{"cursor-pointer":!(e!=null&&e.disabled)}]),onClick:n=>x(e,c)},[a("div",{class:_(["absolute w-full h-full z-[100] border-dashed",{select:c==p.modelValue,"border-[#dcdfe6] border-2":!(e!=null&&e.disabled),hide:o(i)(e.content)}]),style:h(e.styles)},null,6),q(t.$slots,"default",{},()=>{var n;return[(r(),D(N((n=o(A)[e==null?void 0:e.name])==null?void 0:n.content),{content:e.content,styles:e.styles,key:e.id,ref_for:!0,ref_key:"commonComponentRef",ref:u},null,8,["content","styles"]))]},!0),c==p.modelValue?(r(),s("div",{key:0,class:"widget-btns py-[5px]",style:h({top:e.styles.top,left:e.styles.width})},[a("div",null,[m(d,{effect:"dark",content:"编辑组件内容",placement:"right"},{default:v(()=>[m(f,{class:"py-[5px]",type:"primary",icon:o(z),onClick:n=>C(c)},null,8,["icon","onClick"])]),_:2},1024)]),a("div",null,[m(d,{effect:"dark",content:o(i)(e.content)?"显示":"隐藏",placement:"right"},{default:v(()=>[m(f,{class:"py-[5px]",type:"primary",icon:o(i)(e.content)?o(P):o(F),onClick:n=>V(e.content)},null,8,["icon","onClick"])]),_:2},1032,["content"])])],4)):y("",!0)],10,W))),128))])])])}}}),Re=G(H,[["__scopeId","data-v-ccf0ad8b"]]);export{Re as default}; +import{o as $,q as r,r as s,s as a,P as y,F as B,G as S,ae as _,t as h,u as o,ah as q,O as D,a4 as N,v as m,D as v,K as R,cq as z,a1 as E,cr as P,cs as F,a8 as I,p as j}from"./.pnpm-CyuAWpdG.js";import{e as A}from"./index-BLw2qqEh.js";import{_ as G}from"./index-Bkarz3gO.js";import"./attr-DWgf0zU2.js";import"./index-Cqk_cdo9.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./content.vue_vue_type_script_setup_true_lang-3GiNjvv7.js";import"./decoration-img-SoINHtbg.js";import"./attr.vue_vue_type_script_setup_true_lang-BoEBITiA.js";import"./content-BR-B7Y89.js";import"./attr.vue_vue_type_script_setup_true_lang-VLQINM6l.js";import"./content.vue_vue_type_script_setup_true_lang-DJb4aHFp.js";import"./attr.vue_vue_type_script_setup_true_lang-BsVB4T8K.js";import"./add-nav.vue_vue_type_script_setup_true_lang-ByQYZkB9.js";import"./content-CPrgdURU.js";import"./attr.vue_vue_type_script_setup_true_lang-DyWBgKkz.js";import"./content.vue_vue_type_script_setup_true_lang-DIToE7Db.js";import"./attr.vue_vue_type_script_setup_true_lang-Bkj1p-jl.js";import"./content-B1kkCzVQ.js";import"./decoration-BCfnNTDP.js";import"./attr.vue_vue_type_script_setup_true_lang-DEQz3dX_.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./content-DLUkNAW_.js";import"./content.vue_vue_type_script_setup_true_lang-D7k_-QjC.js";import"./attr.vue_vue_type_script_setup_true_lang-jrtitgMf.js";import"./content-C1VdJnCo.js";import"./attr.vue_vue_type_script_setup_true_lang-BPT_wucL.js";import"./content.vue_vue_type_script_setup_true_lang-_A_7DW4P.js";import"./attr.vue_vue_type_script_setup_true_lang-ObQLkrtE.js";import"./content-DraD2KOm.js";const K={class:"pages-preview"},L={class:"relative flex justify-center h-full mt-5 mx-10"},O=["src"],T={class:"max-w-[1200px] w-full absolute"},W=["onClick"],H=$({__name:"preview-pc",props:{pageData:{type:Array,default:()=>[]},modelValue:{type:Number,default:0}},emits:["update:modelValue"],setup(p,{emit:k}){const u=I(),b=k,i=j(()=>t=>(t==null?void 0:t.enabled)==0),C=t=>{var l;(l=u.value[t])==null||l.open()},V=t=>{t.enabled!==void 0&&(t.enabled=t.enabled?0:1)},x=(t,l)=>{t.disabled||b("update:modelValue",l)};return(t,l)=>{const f=R,d=E;return r(),s("div",K,[a("div",L,[t.$route.query.url?(r(),s("iframe",{key:0,ref:"previewIframeRef",class:"flex-1 h-full",width:"100%",height:"100%",scrolling:"no",src:t.$route.query.url},null,8,O)):y("",!0),a("div",T,[(r(!0),s(B,null,S(p.pageData,(e,c)=>(r(),s("div",{key:e.id,class:_(["absolute left-0 top-0",{"cursor-pointer":!(e!=null&&e.disabled)}]),onClick:n=>x(e,c)},[a("div",{class:_(["absolute w-full h-full z-[100] border-dashed",{select:c==p.modelValue,"border-[#dcdfe6] border-2":!(e!=null&&e.disabled),hide:o(i)(e.content)}]),style:h(e.styles)},null,6),q(t.$slots,"default",{},()=>{var n;return[(r(),D(N((n=o(A)[e==null?void 0:e.name])==null?void 0:n.content),{content:e.content,styles:e.styles,key:e.id,ref_for:!0,ref_key:"commonComponentRef",ref:u},null,8,["content","styles"]))]},!0),c==p.modelValue?(r(),s("div",{key:0,class:"widget-btns py-[5px]",style:h({top:e.styles.top,left:e.styles.width})},[a("div",null,[m(d,{effect:"dark",content:"编辑组件内容",placement:"right"},{default:v(()=>[m(f,{class:"py-[5px]",type:"primary",icon:o(z),onClick:n=>C(c)},null,8,["icon","onClick"])]),_:2},1024)]),a("div",null,[m(d,{effect:"dark",content:o(i)(e.content)?"显示":"隐藏",placement:"right"},{default:v(()=>[m(f,{class:"py-[5px]",type:"primary",icon:o(i)(e.content)?o(P):o(F),onClick:n=>V(e.content)},null,8,["icon","onClick"])]),_:2},1032,["content"])])],4)):y("",!0)],10,W))),128))])])])}}}),Re=G(H,[["__scopeId","data-v-ccf0ad8b"]]);export{Re as default}; diff --git a/server/public/admin/assets/progress-BVpNfzBl.js b/server/public/admin/assets/progress-DdRZUsPm.js similarity index 98% rename from server/public/admin/assets/progress-BVpNfzBl.js rename to server/public/admin/assets/progress-DdRZUsPm.js index 83dac5e4a..4a94da3ee 100644 --- a/server/public/admin/assets/progress-BVpNfzBl.js +++ b/server/public/admin/assets/progress-DdRZUsPm.js @@ -1 +1 @@ -import{o as at,W as Nt,M as $,ap as Et,aq as St,q as i,r as c,s as a,v as l,D as r,u as I,cg as Vt,w as xt,L as k,az as Ct,cy as Mt,bi as $t,bh as It,bB as et,bc as Tt,aA as Dt,K as At,cz as Rt,cn as Pt,F as U,G as nt,O as T,be as Yt,T as p,bf as zt,P as N,ac as Bt,bn as Ut,bl as Lt,ae as G,bm as Ft,bY as Ot,aC as qt,p as D,bk as Gt,bC as Kt}from"./.pnpm-CyuAWpdG.js";import{d as K}from"./dayjs-B2bPhvDy.js";import{f as jt,a as st}from"./doctor-8vo_5fa4.js";import{u as Wt,_ as Ht}from"./index-Dxvz9lb1.js";const Zt={class:"dp-page"},Jt={class:"dp-glass dp-toolbar"},Qt={class:"dp-toolbar-row"},Xt={class:"dp-field-label"},wt={class:"dp-field-label"},te={class:"dp-field-label"},ee={class:"dp-toolbar-actions"},ne={key:0,class:"dp-glass dp-doc-section"},se={class:"dp-section-head"},ae={class:"dp-glass dp-table-wrap"},le={class:"dp-table-head"},oe={class:"dp-table-head-left"},ie={key:0,class:"dp-table-range"},de={class:"dp-table-badges"},ue={key:0,class:"dp-chip dp-chip--account"},re={key:1,class:"dp-chip dp-chip--doc"},ce={key:2,class:"dp-chip dp-chip--count"},pe={key:3,class:"dp-chip dp-chip--muted"},me={class:"dp-my-patients-eta"},_e={class:"dp-cell-user-body"},fe={class:"dp-avatar"},ve={class:"dp-user-meta"},be={class:"dp-user-name"},ge={class:"dp-user-phone"},he={class:"dp-time"},ye={class:"dp-steps"},ke={class:"dp-step-dot"},Ne={class:"dp-step-text"},Ee={class:"dp-step-name"},Se={key:0,class:"dp-step-hint"},Ve={key:1,class:"dp-muted"},xe={key:1,class:"dp-muted"},Ce=at({name:"doctorProgress"}),Me=at({...Ce,setup($e){const lt=Nt(),j=Wt(),A=$(!1),E=$([]),f=$(void 0),S=$([]),R=()=>K().format("YYYY-MM-DD"),h=$([R(),R()]),v=qt({status:"",patient_name:""}),W=D(()=>{const e=f.value;if(e===void 0)return"";const t=E.value.find(n=>Number(n.id)===e);return t?String(t.name||t.account||""):""}),ot=D(()=>{var t;const e=(t=j.userInfo)==null?void 0:t.id;return e!=null&&e!==""?Number(e):NaN}),H=D(()=>{const e=j.userInfo||{};return String(e.name||e.account||"").trim()});function L(e){const t=ot.value;if(Number.isNaN(t))return!1;const n=e==null?void 0:e.assistant_id;return n==null||n===""?!1:Number(n)===t}const it=15,Z=$(0);let P=null;function J(e){const t=String(e.appointment_date||"");let n=e.appointment_time||"";return typeof n=="string"&&n.length>5&&(n=n.slice(0,5)),`${t} ${n}`.trim()}function dt(e){const t=e.appointment_date;if(!t)return null;let n=e.appointment_time||"00:00";typeof n=="string"&&n.length>5&&(n=n.slice(0,5));const o=K(`${t} ${n}`);return o.isValid()?o:null}function Q(e){const t=Math.max(0,Math.round(e));if(t===0)return"不到 1 分钟";if(t<60)return`${t} 分钟`;const n=Math.floor(t/60),o=t%60;return o===0?`${n} 小时`:`${n} 小时${o} 分钟`}function ut(e){if(Z.value,!L(e))return"";const t=Number(e.status);if(t===3)return"面诊已完成(医生已点完成)";if(t===4)return"已过号,无法按序预估";if(t!==1)return"";const n=K(),o=dt(e),d=o?o.isAfter(n):!1,m=d&&o?Math.max(0,o.diff(n,"minute")):0,y=S.value.filter(u=>u.appointment_date===e.appointment_date&&Number(u.status)===1).slice().sort((u,C)=>{const B=J(u).localeCompare(J(C));return B!==0?B:Number(u.id)-Number(C.id)}).findIndex(u=>Number(u.id)===Number(e.id)),b=y>=0?y:0,x=b*it,_=[];return d&&_.push(`距预约时段还有约 ${Q(m)}`),b===0?_.push(d?"到号后可优先安排面诊":"已到号,可尽快面诊"):_.push(`前面约 ${b} 人,按序粗估约 ${Q(x)}`),_.join(";")}function X(){const e=v.status;return e===""||e===void 0||e===null}const Y=D(()=>X()?S.value.filter(e=>Number(e.status)===3).length:0),F=D(()=>X()?S.value.filter(e=>Number(e.status)!==3):S.value),rt=D(()=>Y.value>0&&F.value.length===0?`本时段有 ${Y.value} 条「已完成」已隐藏,可在状态中选择「已完成」查看`:"该时段内暂无挂号");function ct(e){const t=String(e||"?").trim();return t?t[0]:"?"}function pt(e){const t=e.appointment_date||"";let n=e.appointment_time||"";return typeof n=="string"&&n.length>5&&(n=n.slice(0,5)),t?`${t} ${n}`.trim():"—"}function mt(e){return e===3?"success":e===4?"warning":e===2?"info":"primary"}function w(e){const t=Number(e.status)===2,n=!t&&[1,3,4].includes(Number(e.status)),o=!!e.diagnosis_confirmed,d=Number(e.status)===3,m=!!e.has_prescription;return[{label:"挂号",done:n,current:n&&!o&&Number(e.status)===1,hint:t?"已取消":Number(e.status)===4?"已过号":""},{label:"确认诊单",done:o,current:n&&!o,hint:""},{label:"就诊中",done:d,current:n&&o&&!d&&Number(e.status)===1,hint:Number(e.status)===1&&o?"待完诊":""},{label:"开方",done:m,current:d&&!m,hint:""}]}function _t(e){const n=w(e).filter(o=>o.done).length;return Math.round(n/4*100)}const O=2e3,ft=15e3;let z=null;async function vt(){const e=await jt({role_id:1,page_type:0,page_no:1,progress_board:1});if(E.value=(e==null?void 0:e.lists)||[],!E.value.length){f.value=void 0,S.value=[];return}const t=E.value.some(n=>Number(n.id)===f.value);(f.value===void 0||!t)&&(f.value=Number(E.value[0].id))}async function V(e){var n,o;if(f.value===void 0){S.value=[];return}const t=(e==null?void 0:e.silent)===!0;t||(A.value=!0);try{const d={doctor_id:f.value,page_type:1,page_no:1,page_size:O,prescription_today_only:1,exclude_cancelled:1,progress_board:1};((n=h.value)==null?void 0:n.length)===2&&(d.start_date=h.value[0],d.end_date=h.value[1]),v.status!==""&&(d.status=v.status),(o=v.patient_name)!=null&&o.trim()&&(d.patient_name=v.patient_name.trim());const m=await st(d);let g=(m==null?void 0:m.lists)||[];const y=Number((m==null?void 0:m.count)??g.length);if(y>g.length&&g.length>=O){const b=[],x=Math.min(Math.ceil(y/O),20);for(let _=2;_<=x;_++){const u=await st({...d,page_no:_}),C=(u==null?void 0:u.lists)||[];if(!C.length)break;b.push(...C)}g=[...g,...b]}S.value=[...g].sort((b,x)=>{const _=`${b.appointment_date||""} ${b.appointment_time||""}`,u=`${x.appointment_date||""} ${x.appointment_time||""}`;return _.localeCompare(u)})}catch(d){console.error(d),t||(S.value=[])}finally{t||(A.value=!1)}}function bt(){typeof document<"u"&&document.hidden||V({silent:!0}).catch(()=>{})}function gt(){v.status="",v.patient_name="",h.value=[R(),R()],V()}function ht(e){lt.push({path:"/tcm/diagnosis",query:{id:String(e)}})}return Et(async()=>{await vt(),await V(),z=setInterval(bt,ft),P=setInterval(()=>{Z.value+=1},6e4)}),St(()=>{z!=null&&(clearInterval(z),z=null),P!=null&&(clearInterval(P),P=null)}),(e,t)=>{var tt;const n=xt,o=Ct,d=$t,m=It,g=Dt,y=At,b=Yt,x=zt,_=Kt,u=Lt,C=Ft,B=Ot,yt=Gt,kt=Ut;return i(),c("div",Zt,[a("section",Jt,[a("div",Qt,[a("span",Xt,[l(n,null,{default:r(()=>[l(I(Vt))]),_:1}),t[9]||(t[9]=k(" 预约日期 ",-1))]),l(o,{modelValue:h.value,"onUpdate:modelValue":t[0]||(t[0]=s=>h.value=s),type:"daterange","range-separator":"—","start-placeholder":"开始","end-placeholder":"结束","value-format":"YYYY-MM-DD","unlink-panels":"",class:"dp-field-date",onChange:t[1]||(t[1]=()=>V())},null,8,["modelValue"]),a("span",wt,[l(n,null,{default:r(()=>[l(I(Mt))]),_:1}),t[10]||(t[10]=k(" 状态 ",-1))]),l(m,{modelValue:v.status,"onUpdate:modelValue":t[2]||(t[2]=s=>v.status=s),placeholder:"全部",clearable:"",class:"dp-field-select",onChange:t[3]||(t[3]=()=>V())},{default:r(()=>[l(d,{label:"全部状态",value:""}),l(d,{label:"已预约(待就诊)",value:"1"}),l(d,{label:"已完成",value:"3"}),l(d,{label:"已过号",value:"4"})]),_:1},8,["modelValue"]),a("span",te,[l(n,null,{default:r(()=>[l(I(et))]),_:1}),t[11]||(t[11]=k(" 患者 ",-1))]),l(g,{modelValue:v.patient_name,"onUpdate:modelValue":t[4]||(t[4]=s=>v.patient_name=s),placeholder:"姓名",clearable:"",class:"dp-field-search",onKeyup:t[5]||(t[5]=Tt(()=>V(),["enter"]))},null,8,["modelValue"]),a("div",ee,[l(y,{type:"primary",loading:A.value,icon:I(et),onClick:t[6]||(t[6]=()=>V())},{default:r(()=>[...t[12]||(t[12]=[k(" 查询 ",-1)])]),_:1},8,["loading","icon"]),l(y,{icon:I(Rt),onClick:gt},{default:r(()=>[...t[13]||(t[13]=[k("重置",-1)])]),_:1},8,["icon"])])])]),E.value.length?(i(),c("section",ne,[a("div",se,[l(n,{class:"dp-section-icon"},{default:r(()=>[l(I(Pt))]),_:1}),t[14]||(t[14]=a("span",{class:"dp-section-title"},"选择医生",-1)),t[15]||(t[15]=a("span",{class:"dp-section-hint"},"切换后自动加载该医生挂号",-1))]),l(x,{modelValue:f.value,"onUpdate:modelValue":t[7]||(t[7]=s=>f.value=s),class:"dp-doc-pills",onChange:t[8]||(t[8]=()=>V())},{default:r(()=>[(i(!0),c(U,null,nt(E.value,s=>(i(),T(b,{key:s.id,label:Number(s.id),class:"dp-doc-pill"},{default:r(()=>[k(p(s.name||s.account||"—"),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])])):N("",!0),Bt((i(),c("section",ae,[a("div",le,[a("div",oe,[t[16]||(t[16]=a("span",{class:"dp-table-title"},"患者列表",-1)),((tt=h.value)==null?void 0:tt.length)===2?(i(),c("span",ie,p(h.value[0])+" ~ "+p(h.value[1]),1)):N("",!0)]),a("div",de,[H.value?(i(),c("span",ue,"当前账号 "+p(H.value),1)):N("",!0),W.value?(i(),c("span",re,p(W.value),1)):N("",!0),f.value!==void 0&&!A.value?(i(),c("span",ce,p(F.value.length)+" 人",1)):N("",!0),Y.value>0?(i(),c("span",pe,"已隐藏已完成 "+p(Y.value),1)):N("",!0)])]),E.value.length?f.value===void 0?(i(),T(_,{key:1,description:"请选择医生"})):(i(),T(yt,{key:2,data:F.value,class:"dp-table",size:"default","empty-text":rt.value},{default:r(()=>[l(u,{label:"患者","min-width":"200",fixed:"left"},{default:r(({row:s})=>[a("div",{class:G(["dp-cell-user",{"is-my-patients":L(s)}])},[L(s)?(i(),c(U,{key:0},[t[17]||(t[17]=a("div",{class:"dp-my-patients-caption"},"我的患者",-1)),a("div",me,p(ut(s)),1)],64)):N("",!0),a("div",_e,[a("div",fe,p(ct(s.patient_name)),1),a("div",ve,[a("span",be,p(s.patient_name||"—"),1),a("span",ge,p(s.patient_phone||"—"),1)])])],2)]),_:1}),l(u,{label:"预约时间",width:"170"},{default:r(({row:s})=>[a("span",he,p(pt(s)),1)]),_:1}),l(u,{label:"挂号",width:"104",align:"center"},{default:r(({row:s})=>[l(C,{type:mt(s.status),effect:"light",round:"",size:"small"},{default:r(()=>[k(p(s.status_desc),1)]),_:2},1032,["type"])]),_:1}),l(u,{label:"面诊进度","min-width":"360"},{default:r(({row:s})=>[a("div",ye,[(i(!0),c(U,null,nt(w(s),(M,q)=>(i(),c(U,{key:q},[a("div",{class:G(["dp-step",{"is-done":M.done,"is-current":M.current&&!M.done}])},[a("div",ke,p(q+1),1),a("div",Ne,[a("span",Ee,p(M.label),1),M.hint?(i(),c("span",Se,p(M.hint),1)):N("",!0)])],2),q<3?(i(),c("div",{key:0,class:G(["dp-step-line",{"is-done":M.done}])},null,2)):N("",!0)],64))),128))]),l(B,{percentage:_t(s),"stroke-width":8,class:"dp-progress"},null,8,["percentage"])]),_:1}),l(u,{label:"处方",width:"92",align:"center"},{default:r(({row:s})=>[s.has_prescription?(i(),T(C,{key:0,type:"success",effect:"dark",round:"",size:"small"},{default:r(()=>[...t[18]||(t[18]=[k("已开",-1)])]),_:1})):(i(),c("span",Ve,"未开"))]),_:1}),l(u,{label:"操作",width:"96",fixed:"right",align:"center"},{default:r(({row:s})=>[s.diagnosis_id?(i(),T(y,{key:0,type:"primary",size:"small",round:"",plain:"",onClick:M=>ht(s.diagnosis_id)},{default:r(()=>[...t[19]||(t[19]=[k(" 诊单 ",-1)])]),_:1},8,["onClick"])):(i(),c("span",xe,"—"))]),_:1})]),_:1},8,["data","empty-text"])):(i(),T(_,{key:0,description:"暂无医生数据"}))])),[[kt,A.value]])])}}}),Re=Ht(Me,[["__scopeId","data-v-607f52e0"]]);export{Re as default}; +import{o as at,W as Nt,M as $,ap as Et,aq as St,q as i,r as c,s as a,v as l,D as r,u as I,cg as Vt,w as xt,L as k,az as Ct,cy as Mt,bi as $t,bh as It,bB as et,bc as Tt,aA as Dt,K as At,cz as Rt,cn as Pt,F as U,G as nt,O as T,be as Yt,T as p,bf as zt,P as N,ac as Bt,bn as Ut,bl as Lt,ae as G,bm as Ft,bY as Ot,aC as qt,p as D,bk as Gt,bC as Kt}from"./.pnpm-CyuAWpdG.js";import{d as K}from"./dayjs-B2bPhvDy.js";import{f as jt,a as st}from"./doctor-DBvYeWd3.js";import{u as Wt,_ as Ht}from"./index-Bkarz3gO.js";const Zt={class:"dp-page"},Jt={class:"dp-glass dp-toolbar"},Qt={class:"dp-toolbar-row"},Xt={class:"dp-field-label"},wt={class:"dp-field-label"},te={class:"dp-field-label"},ee={class:"dp-toolbar-actions"},ne={key:0,class:"dp-glass dp-doc-section"},se={class:"dp-section-head"},ae={class:"dp-glass dp-table-wrap"},le={class:"dp-table-head"},oe={class:"dp-table-head-left"},ie={key:0,class:"dp-table-range"},de={class:"dp-table-badges"},ue={key:0,class:"dp-chip dp-chip--account"},re={key:1,class:"dp-chip dp-chip--doc"},ce={key:2,class:"dp-chip dp-chip--count"},pe={key:3,class:"dp-chip dp-chip--muted"},me={class:"dp-my-patients-eta"},_e={class:"dp-cell-user-body"},fe={class:"dp-avatar"},ve={class:"dp-user-meta"},be={class:"dp-user-name"},ge={class:"dp-user-phone"},he={class:"dp-time"},ye={class:"dp-steps"},ke={class:"dp-step-dot"},Ne={class:"dp-step-text"},Ee={class:"dp-step-name"},Se={key:0,class:"dp-step-hint"},Ve={key:1,class:"dp-muted"},xe={key:1,class:"dp-muted"},Ce=at({name:"doctorProgress"}),Me=at({...Ce,setup($e){const lt=Nt(),j=Wt(),A=$(!1),E=$([]),f=$(void 0),S=$([]),R=()=>K().format("YYYY-MM-DD"),h=$([R(),R()]),v=qt({status:"",patient_name:""}),W=D(()=>{const e=f.value;if(e===void 0)return"";const t=E.value.find(n=>Number(n.id)===e);return t?String(t.name||t.account||""):""}),ot=D(()=>{var t;const e=(t=j.userInfo)==null?void 0:t.id;return e!=null&&e!==""?Number(e):NaN}),H=D(()=>{const e=j.userInfo||{};return String(e.name||e.account||"").trim()});function L(e){const t=ot.value;if(Number.isNaN(t))return!1;const n=e==null?void 0:e.assistant_id;return n==null||n===""?!1:Number(n)===t}const it=15,Z=$(0);let P=null;function J(e){const t=String(e.appointment_date||"");let n=e.appointment_time||"";return typeof n=="string"&&n.length>5&&(n=n.slice(0,5)),`${t} ${n}`.trim()}function dt(e){const t=e.appointment_date;if(!t)return null;let n=e.appointment_time||"00:00";typeof n=="string"&&n.length>5&&(n=n.slice(0,5));const o=K(`${t} ${n}`);return o.isValid()?o:null}function Q(e){const t=Math.max(0,Math.round(e));if(t===0)return"不到 1 分钟";if(t<60)return`${t} 分钟`;const n=Math.floor(t/60),o=t%60;return o===0?`${n} 小时`:`${n} 小时${o} 分钟`}function ut(e){if(Z.value,!L(e))return"";const t=Number(e.status);if(t===3)return"面诊已完成(医生已点完成)";if(t===4)return"已过号,无法按序预估";if(t!==1)return"";const n=K(),o=dt(e),d=o?o.isAfter(n):!1,m=d&&o?Math.max(0,o.diff(n,"minute")):0,y=S.value.filter(u=>u.appointment_date===e.appointment_date&&Number(u.status)===1).slice().sort((u,C)=>{const B=J(u).localeCompare(J(C));return B!==0?B:Number(u.id)-Number(C.id)}).findIndex(u=>Number(u.id)===Number(e.id)),b=y>=0?y:0,x=b*it,_=[];return d&&_.push(`距预约时段还有约 ${Q(m)}`),b===0?_.push(d?"到号后可优先安排面诊":"已到号,可尽快面诊"):_.push(`前面约 ${b} 人,按序粗估约 ${Q(x)}`),_.join(";")}function X(){const e=v.status;return e===""||e===void 0||e===null}const Y=D(()=>X()?S.value.filter(e=>Number(e.status)===3).length:0),F=D(()=>X()?S.value.filter(e=>Number(e.status)!==3):S.value),rt=D(()=>Y.value>0&&F.value.length===0?`本时段有 ${Y.value} 条「已完成」已隐藏,可在状态中选择「已完成」查看`:"该时段内暂无挂号");function ct(e){const t=String(e||"?").trim();return t?t[0]:"?"}function pt(e){const t=e.appointment_date||"";let n=e.appointment_time||"";return typeof n=="string"&&n.length>5&&(n=n.slice(0,5)),t?`${t} ${n}`.trim():"—"}function mt(e){return e===3?"success":e===4?"warning":e===2?"info":"primary"}function w(e){const t=Number(e.status)===2,n=!t&&[1,3,4].includes(Number(e.status)),o=!!e.diagnosis_confirmed,d=Number(e.status)===3,m=!!e.has_prescription;return[{label:"挂号",done:n,current:n&&!o&&Number(e.status)===1,hint:t?"已取消":Number(e.status)===4?"已过号":""},{label:"确认诊单",done:o,current:n&&!o,hint:""},{label:"就诊中",done:d,current:n&&o&&!d&&Number(e.status)===1,hint:Number(e.status)===1&&o?"待完诊":""},{label:"开方",done:m,current:d&&!m,hint:""}]}function _t(e){const n=w(e).filter(o=>o.done).length;return Math.round(n/4*100)}const O=2e3,ft=15e3;let z=null;async function vt(){const e=await jt({role_id:1,page_type:0,page_no:1,progress_board:1});if(E.value=(e==null?void 0:e.lists)||[],!E.value.length){f.value=void 0,S.value=[];return}const t=E.value.some(n=>Number(n.id)===f.value);(f.value===void 0||!t)&&(f.value=Number(E.value[0].id))}async function V(e){var n,o;if(f.value===void 0){S.value=[];return}const t=(e==null?void 0:e.silent)===!0;t||(A.value=!0);try{const d={doctor_id:f.value,page_type:1,page_no:1,page_size:O,prescription_today_only:1,exclude_cancelled:1,progress_board:1};((n=h.value)==null?void 0:n.length)===2&&(d.start_date=h.value[0],d.end_date=h.value[1]),v.status!==""&&(d.status=v.status),(o=v.patient_name)!=null&&o.trim()&&(d.patient_name=v.patient_name.trim());const m=await st(d);let g=(m==null?void 0:m.lists)||[];const y=Number((m==null?void 0:m.count)??g.length);if(y>g.length&&g.length>=O){const b=[],x=Math.min(Math.ceil(y/O),20);for(let _=2;_<=x;_++){const u=await st({...d,page_no:_}),C=(u==null?void 0:u.lists)||[];if(!C.length)break;b.push(...C)}g=[...g,...b]}S.value=[...g].sort((b,x)=>{const _=`${b.appointment_date||""} ${b.appointment_time||""}`,u=`${x.appointment_date||""} ${x.appointment_time||""}`;return _.localeCompare(u)})}catch(d){console.error(d),t||(S.value=[])}finally{t||(A.value=!1)}}function bt(){typeof document<"u"&&document.hidden||V({silent:!0}).catch(()=>{})}function gt(){v.status="",v.patient_name="",h.value=[R(),R()],V()}function ht(e){lt.push({path:"/tcm/diagnosis",query:{id:String(e)}})}return Et(async()=>{await vt(),await V(),z=setInterval(bt,ft),P=setInterval(()=>{Z.value+=1},6e4)}),St(()=>{z!=null&&(clearInterval(z),z=null),P!=null&&(clearInterval(P),P=null)}),(e,t)=>{var tt;const n=xt,o=Ct,d=$t,m=It,g=Dt,y=At,b=Yt,x=zt,_=Kt,u=Lt,C=Ft,B=Ot,yt=Gt,kt=Ut;return i(),c("div",Zt,[a("section",Jt,[a("div",Qt,[a("span",Xt,[l(n,null,{default:r(()=>[l(I(Vt))]),_:1}),t[9]||(t[9]=k(" 预约日期 ",-1))]),l(o,{modelValue:h.value,"onUpdate:modelValue":t[0]||(t[0]=s=>h.value=s),type:"daterange","range-separator":"—","start-placeholder":"开始","end-placeholder":"结束","value-format":"YYYY-MM-DD","unlink-panels":"",class:"dp-field-date",onChange:t[1]||(t[1]=()=>V())},null,8,["modelValue"]),a("span",wt,[l(n,null,{default:r(()=>[l(I(Mt))]),_:1}),t[10]||(t[10]=k(" 状态 ",-1))]),l(m,{modelValue:v.status,"onUpdate:modelValue":t[2]||(t[2]=s=>v.status=s),placeholder:"全部",clearable:"",class:"dp-field-select",onChange:t[3]||(t[3]=()=>V())},{default:r(()=>[l(d,{label:"全部状态",value:""}),l(d,{label:"已预约(待就诊)",value:"1"}),l(d,{label:"已完成",value:"3"}),l(d,{label:"已过号",value:"4"})]),_:1},8,["modelValue"]),a("span",te,[l(n,null,{default:r(()=>[l(I(et))]),_:1}),t[11]||(t[11]=k(" 患者 ",-1))]),l(g,{modelValue:v.patient_name,"onUpdate:modelValue":t[4]||(t[4]=s=>v.patient_name=s),placeholder:"姓名",clearable:"",class:"dp-field-search",onKeyup:t[5]||(t[5]=Tt(()=>V(),["enter"]))},null,8,["modelValue"]),a("div",ee,[l(y,{type:"primary",loading:A.value,icon:I(et),onClick:t[6]||(t[6]=()=>V())},{default:r(()=>[...t[12]||(t[12]=[k(" 查询 ",-1)])]),_:1},8,["loading","icon"]),l(y,{icon:I(Rt),onClick:gt},{default:r(()=>[...t[13]||(t[13]=[k("重置",-1)])]),_:1},8,["icon"])])])]),E.value.length?(i(),c("section",ne,[a("div",se,[l(n,{class:"dp-section-icon"},{default:r(()=>[l(I(Pt))]),_:1}),t[14]||(t[14]=a("span",{class:"dp-section-title"},"选择医生",-1)),t[15]||(t[15]=a("span",{class:"dp-section-hint"},"切换后自动加载该医生挂号",-1))]),l(x,{modelValue:f.value,"onUpdate:modelValue":t[7]||(t[7]=s=>f.value=s),class:"dp-doc-pills",onChange:t[8]||(t[8]=()=>V())},{default:r(()=>[(i(!0),c(U,null,nt(E.value,s=>(i(),T(b,{key:s.id,label:Number(s.id),class:"dp-doc-pill"},{default:r(()=>[k(p(s.name||s.account||"—"),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])])):N("",!0),Bt((i(),c("section",ae,[a("div",le,[a("div",oe,[t[16]||(t[16]=a("span",{class:"dp-table-title"},"患者列表",-1)),((tt=h.value)==null?void 0:tt.length)===2?(i(),c("span",ie,p(h.value[0])+" ~ "+p(h.value[1]),1)):N("",!0)]),a("div",de,[H.value?(i(),c("span",ue,"当前账号 "+p(H.value),1)):N("",!0),W.value?(i(),c("span",re,p(W.value),1)):N("",!0),f.value!==void 0&&!A.value?(i(),c("span",ce,p(F.value.length)+" 人",1)):N("",!0),Y.value>0?(i(),c("span",pe,"已隐藏已完成 "+p(Y.value),1)):N("",!0)])]),E.value.length?f.value===void 0?(i(),T(_,{key:1,description:"请选择医生"})):(i(),T(yt,{key:2,data:F.value,class:"dp-table",size:"default","empty-text":rt.value},{default:r(()=>[l(u,{label:"患者","min-width":"200",fixed:"left"},{default:r(({row:s})=>[a("div",{class:G(["dp-cell-user",{"is-my-patients":L(s)}])},[L(s)?(i(),c(U,{key:0},[t[17]||(t[17]=a("div",{class:"dp-my-patients-caption"},"我的患者",-1)),a("div",me,p(ut(s)),1)],64)):N("",!0),a("div",_e,[a("div",fe,p(ct(s.patient_name)),1),a("div",ve,[a("span",be,p(s.patient_name||"—"),1),a("span",ge,p(s.patient_phone||"—"),1)])])],2)]),_:1}),l(u,{label:"预约时间",width:"170"},{default:r(({row:s})=>[a("span",he,p(pt(s)),1)]),_:1}),l(u,{label:"挂号",width:"104",align:"center"},{default:r(({row:s})=>[l(C,{type:mt(s.status),effect:"light",round:"",size:"small"},{default:r(()=>[k(p(s.status_desc),1)]),_:2},1032,["type"])]),_:1}),l(u,{label:"面诊进度","min-width":"360"},{default:r(({row:s})=>[a("div",ye,[(i(!0),c(U,null,nt(w(s),(M,q)=>(i(),c(U,{key:q},[a("div",{class:G(["dp-step",{"is-done":M.done,"is-current":M.current&&!M.done}])},[a("div",ke,p(q+1),1),a("div",Ne,[a("span",Ee,p(M.label),1),M.hint?(i(),c("span",Se,p(M.hint),1)):N("",!0)])],2),q<3?(i(),c("div",{key:0,class:G(["dp-step-line",{"is-done":M.done}])},null,2)):N("",!0)],64))),128))]),l(B,{percentage:_t(s),"stroke-width":8,class:"dp-progress"},null,8,["percentage"])]),_:1}),l(u,{label:"处方",width:"92",align:"center"},{default:r(({row:s})=>[s.has_prescription?(i(),T(C,{key:0,type:"success",effect:"dark",round:"",size:"small"},{default:r(()=>[...t[18]||(t[18]=[k("已开",-1)])]),_:1})):(i(),c("span",Ve,"未开"))]),_:1}),l(u,{label:"操作",width:"96",fixed:"right",align:"center"},{default:r(({row:s})=>[s.diagnosis_id?(i(),T(y,{key:0,type:"primary",size:"small",round:"",plain:"",onClick:M=>ht(s.diagnosis_id)},{default:r(()=>[...t[19]||(t[19]=[k(" 诊单 ",-1)])]),_:1},8,["onClick"])):(i(),c("span",xe,"—"))]),_:1})]),_:1},8,["data","empty-text"])):(i(),T(_,{key:0,description:"暂无医生数据"}))])),[[kt,A.value]])])}}}),Re=Ht(Me,[["__scopeId","data-v-607f52e0"]]);export{Re as default}; diff --git a/server/public/admin/assets/protocol-Pb2ZZ0kB.js b/server/public/admin/assets/protocol-CY2h6GDn.js similarity index 89% rename from server/public/admin/assets/protocol-Pb2ZZ0kB.js rename to server/public/admin/assets/protocol-CY2h6GDn.js index 83a08f59c..e7dbf22e2 100644 --- a/server/public/admin/assets/protocol-Pb2ZZ0kB.js +++ b/server/public/admin/assets/protocol-CY2h6GDn.js @@ -1 +1 @@ -import{_ as h}from"./index-9qT8_5W1.js";import{o as f,bp as w,q as c,r as g,s,v as l,D as a,bd as y,u as o,bb as E,aA as U,bj as B,ac as k,O as C,K as D,L as F,F as P,M as N}from"./.pnpm-CyuAWpdG.js";import{_ as j}from"./index.vue_vue_type_style_index_0_lang-CduB--xp.js";import{c as A,d as I}from"./website-DRg8FnbB.js";import"./index-Dxvz9lb1.js";import"./picker-BDO86vcM.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const O={class:"xl:flex"},q={class:"xl:flex"},G=f({name:"webProtocol"}),ee=f({...G,setup(K){const t=N({service_title:"",service_content:"",privacy_title:"",privacy_content:"",health_title:"",health_content:""}),u=async()=>{const _=await A();Object.assign(t.value,_)},b=async()=>{await I({...t.value}),u()};return u(),(_,e)=>{const r=U,m=E,d=y,i=j,p=B,v=D,V=h,x=w("perms");return c(),g(P,null,[s("div",O,[l(p,{class:"!border-none flex-1 xl:mr-4 mb-4",shadow:"never"},{header:a(()=>[...e[6]||(e[6]=[s("span",{class:"font-medium"},"服务协议",-1)])]),default:a(()=>[l(d,{model:o(t),"label-width":"80px"},{default:a(()=>[l(m,{label:"协议名称"},{default:a(()=>[l(r,{modelValue:o(t).service_title,"onUpdate:modelValue":e[0]||(e[0]=n=>o(t).service_title=n)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),l(i,{class:"mb-10",modelValue:o(t).service_content,"onUpdate:modelValue":e[1]||(e[1]=n=>o(t).service_content=n),height:"500"},null,8,["modelValue"])]),_:1}),l(p,{class:"!border-none flex-1 mb-4",shadow:"never"},{header:a(()=>[...e[7]||(e[7]=[s("span",{class:"font-medium"},"隐私协议",-1)])]),default:a(()=>[l(d,{model:o(t),"label-width":"80px"},{default:a(()=>[l(m,{label:"协议名称"},{default:a(()=>[l(r,{modelValue:o(t).privacy_title,"onUpdate:modelValue":e[2]||(e[2]=n=>o(t).privacy_title=n)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),l(i,{class:"mb-10",modelValue:o(t).privacy_content,"onUpdate:modelValue":e[3]||(e[3]=n=>o(t).privacy_content=n),height:"500"},null,8,["modelValue"])]),_:1})]),s("div",q,[l(p,{class:"!border-none flex-1 mb-4",shadow:"never"},{header:a(()=>[...e[8]||(e[8]=[s("span",{class:"font-medium"},"卫健委备案信息",-1)])]),default:a(()=>[l(d,{model:o(t),"label-width":"80px"},{default:a(()=>[l(m,{label:"协议名称"},{default:a(()=>[l(r,{modelValue:o(t).health_title,"onUpdate:modelValue":e[4]||(e[4]=n=>o(t).health_title=n)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),l(i,{class:"mb-10",modelValue:o(t).health_content,"onUpdate:modelValue":e[5]||(e[5]=n=>o(t).health_content=n),height:"500"},null,8,["modelValue"])]),_:1})]),k((c(),C(V,null,{default:a(()=>[l(v,{type:"primary",onClick:b},{default:a(()=>[...e[9]||(e[9]=[F("保存",-1)])]),_:1})]),_:1})),[[x,["setting.web.web_setting/setAgreement"]]])],64)}}});export{ee as default}; +import{_ as h}from"./index-DIl3M8Wa.js";import{o as f,bp as w,q as c,r as g,s,v as l,D as a,bd as y,u as o,bb as E,aA as U,bj as B,ac as k,O as C,K as D,L as F,F as P,M as N}from"./.pnpm-CyuAWpdG.js";import{_ as j}from"./index.vue_vue_type_style_index_0_lang-D6-pu4qU.js";import{c as A,d as I}from"./website-Uj_9T8tc.js";import"./index-Bkarz3gO.js";import"./picker-BTh9eW9u.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const O={class:"xl:flex"},q={class:"xl:flex"},G=f({name:"webProtocol"}),ee=f({...G,setup(K){const t=N({service_title:"",service_content:"",privacy_title:"",privacy_content:"",health_title:"",health_content:""}),u=async()=>{const _=await A();Object.assign(t.value,_)},b=async()=>{await I({...t.value}),u()};return u(),(_,e)=>{const r=U,m=E,d=y,i=j,p=B,v=D,V=h,x=w("perms");return c(),g(P,null,[s("div",O,[l(p,{class:"!border-none flex-1 xl:mr-4 mb-4",shadow:"never"},{header:a(()=>[...e[6]||(e[6]=[s("span",{class:"font-medium"},"服务协议",-1)])]),default:a(()=>[l(d,{model:o(t),"label-width":"80px"},{default:a(()=>[l(m,{label:"协议名称"},{default:a(()=>[l(r,{modelValue:o(t).service_title,"onUpdate:modelValue":e[0]||(e[0]=n=>o(t).service_title=n)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),l(i,{class:"mb-10",modelValue:o(t).service_content,"onUpdate:modelValue":e[1]||(e[1]=n=>o(t).service_content=n),height:"500"},null,8,["modelValue"])]),_:1}),l(p,{class:"!border-none flex-1 mb-4",shadow:"never"},{header:a(()=>[...e[7]||(e[7]=[s("span",{class:"font-medium"},"隐私协议",-1)])]),default:a(()=>[l(d,{model:o(t),"label-width":"80px"},{default:a(()=>[l(m,{label:"协议名称"},{default:a(()=>[l(r,{modelValue:o(t).privacy_title,"onUpdate:modelValue":e[2]||(e[2]=n=>o(t).privacy_title=n)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),l(i,{class:"mb-10",modelValue:o(t).privacy_content,"onUpdate:modelValue":e[3]||(e[3]=n=>o(t).privacy_content=n),height:"500"},null,8,["modelValue"])]),_:1})]),s("div",q,[l(p,{class:"!border-none flex-1 mb-4",shadow:"never"},{header:a(()=>[...e[8]||(e[8]=[s("span",{class:"font-medium"},"卫健委备案信息",-1)])]),default:a(()=>[l(d,{model:o(t),"label-width":"80px"},{default:a(()=>[l(m,{label:"协议名称"},{default:a(()=>[l(r,{modelValue:o(t).health_title,"onUpdate:modelValue":e[4]||(e[4]=n=>o(t).health_title=n)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),l(i,{class:"mb-10",modelValue:o(t).health_content,"onUpdate:modelValue":e[5]||(e[5]=n=>o(t).health_content=n),height:"500"},null,8,["modelValue"])]),_:1})]),k((c(),C(V,null,{default:a(()=>[l(v,{type:"primary",onClick:b},{default:a(()=>[...e[9]||(e[9]=[F("保存",-1)])]),_:1})]),_:1})),[[x,["setting.web.web_setting/setAgreement"]]])],64)}}});export{ee as default}; diff --git a/server/public/admin/assets/qywx-CthffTyX.js b/server/public/admin/assets/qywx-CBTKxu_l.js similarity index 99% rename from server/public/admin/assets/qywx-CthffTyX.js rename to server/public/admin/assets/qywx-CBTKxu_l.js index 7f9e6d6e1..f8d9893b8 100644 --- a/server/public/admin/assets/qywx-CthffTyX.js +++ b/server/public/admin/assets/qywx-CBTKxu_l.js @@ -1,2 +1,2 @@ -import{o as fe,aC as O,ap as pe,aq as ge,bp as ye,q as d,r as c,v as a,D as l,bo as ve,s as n,bj as be,T as u,P as L,F as C,G as V,t as xe,ae as we,u as x,bm as Se,L as _,K as ke,cH as he,cI as Ce,bz as bt,cq as Ve,bd as Ae,bb as Ee,aA as Te,bc as Nt,bh as Ne,O as y,bi as $e,az as ze,a1 as De,cD as qe,ac as $t,bk as Ie,bl as Ue,a0 as Le,bn as je,C as Pe,I as Me,aB as Be,c4 as He,c5 as Oe,bC as Ke,B as Fe,cJ as Ge,cK as Re,c1 as We,c2 as Ye,M as A,p as dt}from"./.pnpm-CyuAWpdG.js";import{_ as Je}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{u as Qe}from"./usePaging-CghUEVfD.js";import{r as j,j as $,_ as Xe}from"./index-Dxvz9lb1.js";function Ze(P){return j.get({url:"/qywx.customer/lists",params:P})}function tl(P){return j.post({url:"/qywx.customer/delete",params:P})}function el(){return j.post({url:"/qywx.customer/sync"})}function ll(){return j.get({url:"/qywx.customer/stats"})}function al(){return j.get({url:"/qywx.customer/tagStats"})}function sl(){return j.get({url:"/qywx.customer/todayArrival"})}function nl(P){return j.get({url:"/qywx.customer/todayArrivalList",params:P})}function ol(){return j.get({url:"/qywx.customer/getSyncSettings"})}function il(P){return j.post({url:"/qywx.customer/saveSyncSettings",params:P})}const rl={class:"qywx-customer-page p-4"},dl={class:"flex items-center justify-between"},ul={class:"flex gap-2"},ml={class:"grid grid-cols-4 gap-4 mb-4"},_l={class:"text-2xl font-bold text-primary"},cl={class:"flex items-center justify-between mb-1"},fl={key:0,class:"text-xs text-gray-400"},pl={class:"flex items-end gap-2"},gl={class:"text-2xl font-bold text-success leading-none"},yl=["title"],vl={class:"mt-2 pt-2 border-t border-gray-100"},bl={class:"text-lg font-semibold text-gray-800"},xl={class:"text-sm font-medium"},wl={class:"flex items-center justify-between gap-3"},Sl={class:"text-xs text-gray-400"},kl={class:"flex items-center gap-2"},hl={class:"font-medium"},Cl={class:"text-xs text-gray-400"},Vl={key:0},Al={key:1,class:"text-gray-400"},El={key:0},Tl={key:0,class:"ml-1 text-gray-400 text-xs"},Nl={key:1,class:"text-gray-400"},$l={key:0,class:"flex items-center gap-1"},zl={class:"inline-block max-w-[150px] truncate align-middle"},Dl={class:"text-primary whitespace-nowrap cursor-help"},ql={key:1,class:"text-gray-400"},Il={class:"flex justify-end mt-4"},Ul={class:"flex items-center justify-between w-full pr-4"},Ll={class:"flex items-center gap-3"},jl={class:"px-1"},Pl={key:0,class:"mb-3"},Ml={class:"flex flex-wrap gap-1"},Bl={class:"flex items-start gap-2"},Hl={class:"flex-1 min-w-0"},Ol={class:"text-sm font-medium truncate"},Kl={class:"text-xs text-gray-500 mt-0.5"},Fl={key:0,class:"ml-2"},Gl={key:1,class:"ml-2 text-emerald-500"},Rl={key:3,class:"mt-3 text-center"},Wl={class:"flex items-center justify-between w-full pr-4"},Yl={class:"flex items-center gap-3"},Jl={class:"px-1"},Ql={class:"grid grid-cols-3 gap-2 mb-3"},Xl={class:"text-xl font-bold text-warning"},Zl={class:"text-xl font-bold"},ta={class:"text-xl font-bold"},ea={class:"flex items-center gap-2 w-full"},la={class:"font-medium"},aa={class:"ml-auto text-xs text-gray-500"},sa={class:"font-medium"},na={class:"text-xs text-gray-400 truncate"},oa={class:"text-warning font-bold"},ia={key:0,class:"flex flex-wrap gap-1"},ra={key:1,class:"text-gray-400"},da={key:0},ua={key:1,class:"text-gray-400"},ma={key:0},_a={key:0,class:"ml-1 text-gray-400 text-xs"},ca={key:1,class:"text-gray-400"},fa=fe({__name:"qywx",setup(P){const K=A(!1),F=A(!1),ut=A(!1),w=A(null),G=A(null),z=O({total:0,today:0,today_follow_staff:0,lastSync:"",syncStatus:"idle",syncStatusText:"未同步"}),zt=dt(()=>{switch(z.syncStatus){case"success":return"success";case"syncing":return"warning";case"failed":return"danger";default:return"info"}}),E=O({auto_sync:!1,interval:3600}),f=O({name:"",follow_user:"",add_way:"",tag_ids:[],add_time_start:"",add_time_end:"",dedupe_mode:"first"}),mt=A(null);function Dt(e){e&&e.length===2&&e[0]&&e[1]?(f.add_time_start=e[0],f.add_time_end=e[1]):(f.add_time_start="",f.add_time_end=""),U()}const h=O({total_tags:0,total_relations:0,total_tagged_customers:0,groups:[]}),R=A(!1),lt=A(!1),_t=A(""),ct=A([]),xt=dt(()=>{const e=_t.value.trim().toLowerCase();if(!e)return h.groups;const t=[];for(const o of h.groups){const m=(o.group_name||"").toLowerCase().includes(e),S=o.tags.filter(r=>m||(r.tag_name||"").toLowerCase().includes(e));S.length&&t.push({...o,tags:S})}return t});async function at(e=!1){R.value=!0;try{const t=await al();t&&typeof t=="object"&&(h.total_tags=Number(t.total_tags??0),h.total_relations=Number(t.total_relations??0),h.total_tagged_customers=Number(t.total_tagged_customers??0),h.groups=Array.isArray(t.groups)?t.groups:[]),e&&$.msgSuccess("已刷新")}catch(t){e&&$.msgError((t==null?void 0:t.message)||"加载标签统计失败"),console.error("加载标签统计失败",t)}finally{R.value=!1}}function qt(){var e;lt.value=!0,ct.value=(e=h.groups[0])!=null&&e.group_name?[h.groups[0].group_name]:[],h.groups.length===0&&at()}function It(e){e&&(f.tag_ids.includes(e)||(f.tag_ids.push(e),U()))}function Ut(e){e&&(f.tag_ids=[e],lt.value=!1,U())}const T=O({total:0,recent_time:0,hourly:new Array(24).fill(0),by_state:[]}),W=A(!1),st=A(!1),g=O({total:0,page_no:1,page_size:20,lists:[]}),Lt=new Date().getHours(),jt=dt(()=>Math.max(1,...T.hourly));function Pt(e){if(e<=0)return"2px";const t=e/jt.value;return Math.max(4,Math.round(t*32))+"px"}const Mt=dt(()=>{const e=[];return T.hourly.forEach((t,o)=>{t>0&&e.push(`${String(o).padStart(2,"0")}:00 · ${t}`)}),e.length?e.join(" "):"今天还没有人进入"});async function nt(e=!1){try{const t=await sl();t&&(T.total=Number(t.total??0),T.recent_time=Number(t.recent_time??0),T.hourly=Array.isArray(t.hourly)&&t.hourly.length===24?t.hourly.map(o=>Number(o)||0):new Array(24).fill(0),T.by_state=Array.isArray(t.by_state)?t.by_state:[])}catch(t){console.error("加载今日进入分布失败",t)}e&&W.value&&(g.page_no=1,g.lists=[],await ft())}async function ft(){st.value=!0;try{const e=await nl({page_no:g.page_no,page_size:g.page_size});if(e){g.total=Number(e.total??0);const t=Array.isArray(e.lists)?e.lists:[];g.page_no===1?g.lists=t:g.lists.push(...t)}}catch(e){console.error("加载今日进入明细失败",e)}finally{st.value=!1}}async function wt(){W.value=!0,g.page_no=1,g.lists=[],await Promise.all([nt(!1),ft()])}async function Bt(){g.lists.length>=g.total||(g.page_no+=1,await ft())}function Ht(e){if(!e||e<=0)return"";const t=new Date(e<1e12?e*1e3:e);return`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}function Ot(e){if(!e||e<=0)return"—";const t=new Date(e<1e12?e*1e3:e);return`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`}let Y=null,ot=null;function pt(){ot!==null&&(clearInterval(ot),ot=null)}async function Kt(e){return Ze(e)}const{pager:M,getLists:J,resetPage:U,resetParams:Ft}=Qe({fetchFun:Kt,params:f});function Gt(){f.name="",f.follow_user="",f.add_way="",f.tag_ids=[],f.add_time_start="",f.add_time_end="",f.dedupe_mode="first",mt.value=null,Ft()}function Rt(){pt();let e=0;ot=window.setInterval(async()=>{e+=1,await Q(),await J(),(z.syncStatus!=="syncing"||e>=120)&&(pt(),K.value=!1,e>=120&&z.syncStatus==="syncing"?$.msgWarning("长时间仍为「同步中」,请刷新页面或查看服务器 runtime/log/qywx_sync.log(可能未安装 CLI php 或禁用了 exec)"):z.syncStatus==="failed"&&$.msgError("同步失败,请查看服务器 runtime/log/qywx_sync.log 或后台同步状态"))},3e3)}async function St(e){const t=(e==null?void 0:e.silent)===!0;K.value=!0;try{const o=await el();t||$.msgSuccess((o==null?void 0:o.message)||"操作成功"),await Q(),await J(),o!=null&&o.background?Rt():K.value=!1}catch(o){const m=(o==null?void 0:o.message)||(o==null?void 0:o.msg)||"同步失败";(!t||!String(m).includes("正在执行"))&&$.msgError(m),K.value=!1}}async function Q(){try{const e=await ll();e&&typeof e=="object"&&Object.assign(z,e)}catch(e){console.error("加载统计失败",e)}}async function Wt(){try{const e=await ol();e&&typeof e=="object"&&Object.assign(E,e),E.auto_sync&&kt()}catch(e){console.error("加载同步设置失败",e)}}async function Yt(){try{await il(E),$.msgSuccess("保存成功"),F.value=!1,ht(),E.auto_sync&&kt()}catch(e){$.msgError((e==null?void 0:e.message)||"保存失败")}}function kt(){Y||(Y=window.setInterval(()=>{St({silent:!0})},E.interval*1e3))}function ht(){Y&&(clearInterval(Y),Y=null)}function Jt(e){w.value=e,ut.value=!0}async function Qt(e){const t=Number(e.id);if(!Number.isInteger(t)||t<=0||G.value!==null)return;const o=String(e.name||e.external_userid||"该客户");try{await $.confirm(`确定删除企业微信客户“${o}”吗?此操作仅删除系统内的同步记录,不会删除企业微信中的客户关系;后续重新同步时可能再次出现。`)}catch{return}G.value=t;try{await tl({id:t}),M.page>1&&M.lists.length===1&&(M.page-=1),await Promise.all([J(),Q(),at()]),$.msgSuccess("删除成功")}catch(m){$.msgError((m==null?void 0:m.message)||(m==null?void 0:m.msg)||"删除失败")}finally{G.value=null}}function gt(e){const t=String((e==null?void 0:e.admin_name)??"").trim(),o=String((e==null?void 0:e.userid)??"").trim(),m=String((e==null?void 0:e.name)??"").trim();return t||(m&&o?`${m}(${o})`:m||o||"—")}function it(e){const t=String((e==null?void 0:e.admin_name)??"").trim(),o=String((e==null?void 0:e.userid)??"").trim(),m=[];return t&&m.push("后台:"+t),o&&m.push("企微:"+o),m.join("|")}function Xt(e){return e?Array.isArray(e.add_channels)?e.add_channels.map(t=>({state:String((t==null?void 0:t.state)??"").trim(),label:String((t==null?void 0:t.label)??(t==null?void 0:t.state)??"").trim(),source_type:(t==null?void 0:t.source_type)==="promotion_pool"?"promotion_pool":"state",pool_id:Number((t==null?void 0:t.pool_id)??0),user_id:String((t==null?void 0:t.user_id)??"").trim(),event_time:Number((t==null?void 0:t.event_time)??0)})).filter(t=>t.state!==""):Array.isArray(e.add_channel_states)?e.add_channel_states.map(t=>String(t??"").trim()).filter(t=>t!=="").map(t=>({state:t,label:t,source_type:"state",pool_id:0,user_id:"",event_time:0})):[]:[]}const Ct={0:"未知添加方式",1:"通过扫描二维码添加",2:"通过搜索手机号添加",3:"通过名片分享添加",4:"通过群聊添加",5:"通过手机通讯录添加",6:"通过微信联系人添加",8:"安装第三方应用时自动添加",9:"通过搜索邮箱添加",10:"通过视频号添加",11:"通过日程参与人添加",12:"通过会议参与人添加",13:"通过微信好友添加",14:"通过智慧硬件专属客服添加",15:"通过上门服务客服添加",16:"通过获客链接添加",17:"通过定制开发添加",18:"通过需求回复添加",21:"通过第三方售前客服添加",22:"通过可能的商务伙伴添加",24:"通过接受微信好友申请添加",201:"通过内部成员共享添加",202:"通过管理员或负责人分配添加"},Zt=Object.entries(Ct).map(([e,t])=>({value:Number(e),label:t}));function te(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0?e:typeof e!="string"||!/^\d+$/.test(e.trim())?null:Number(e.trim())}function ee(e){return Ct[e]||`其他添加方式(${e})`}function H(e){if(!e)return[];const t=Xt(e),o=new Set,m=[];return(Array.isArray(e.follow_users)?e.follow_users:[]).forEach((r,D)=>{const k=String((r==null?void 0:r.userid)??(r==null?void 0:r.UserId)??"").trim(),v=String((r==null?void 0:r.state)??(r==null?void 0:r.State)??"").trim(),q=te((r==null?void 0:r.add_way)??(r==null?void 0:r.AddWay));let I=t.findIndex((b,B)=>!o.has(B)&&k!==""&&v!==""&&b.user_id===k&&b.state===v);I<0&&v!==""&&(I=t.findIndex((b,B)=>!o.has(B)&&b.state===v)),I<0&&k!==""&&(I=t.findIndex((b,B)=>!o.has(B)&&b.user_id===k));const p=I>=0?t[I]:void 0;if(I>=0&&o.add(I),q===null&&v===""&&!p)return;const vt=String((r==null?void 0:r.add_way_label)??"").trim(),tt=(p==null?void 0:p.source_type)??(/^zyt_pool:[1-9]\d*$/.test(v)?"promotion_pool":"state"),rt=vt||(q!==null?ee(q):tt==="promotion_pool"?"通过获客链接添加":"通过其他渠道添加");m.push({key:`follow:${D}:${k}:${q??"unknown"}:${v}`,add_way:q,label:rt,state:v||(p==null?void 0:p.state)||"",channel_label:(p==null?void 0:p.label)||"",source_type:tt,pool_id:(p==null?void 0:p.pool_id)||0,user_id:k||(p==null?void 0:p.user_id)||"",staff_name:gt(r),event_time:(p==null?void 0:p.event_time)||Number((r==null?void 0:r.createtime)??0)})}),t.forEach((r,D)=>{o.has(D)||m.push({...r,key:`channel:${D}:${r.user_id}:${r.state}`,add_way:r.source_type==="promotion_pool"?16:null,label:r.source_type==="promotion_pool"?"通过获客链接添加":"通过其他渠道添加",channel_label:r.label,staff_name:r.user_id||"—"})}),m.sort((r,D)=>D.event_time-r.event_time)}function yt(e){const t=[];return t.push(`添加方式:${e.label}`),e.source_type==="promotion_pool"&&e.channel_label&&t.push(`获客助手方案:${e.channel_label}`),e.staff_name&&e.staff_name!=="—"&&t.push(`跟进人:${e.staff_name}`),e.event_time>0&&t.push(`添加时间:${X(e.event_time)}`),e.state&&t.push(`渠道参数:${e.state}`),t.join("|")}function le(e){return H(e).slice(1).map(yt).join(` +import{o as fe,aC as O,ap as pe,aq as ge,bp as ye,q as d,r as c,v as a,D as l,bo as ve,s as n,bj as be,T as u,P as L,F as C,G as V,t as xe,ae as we,u as x,bm as Se,L as _,K as ke,cH as he,cI as Ce,bz as bt,cq as Ve,bd as Ae,bb as Ee,aA as Te,bc as Nt,bh as Ne,O as y,bi as $e,az as ze,a1 as De,cD as qe,ac as $t,bk as Ie,bl as Ue,a0 as Le,bn as je,C as Pe,I as Me,aB as Be,c4 as He,c5 as Oe,bC as Ke,B as Fe,cJ as Ge,cK as Re,c1 as We,c2 as Ye,M as A,p as dt}from"./.pnpm-CyuAWpdG.js";import{_ as Je}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{u as Qe}from"./usePaging-CghUEVfD.js";import{r as j,j as $,_ as Xe}from"./index-Bkarz3gO.js";function Ze(P){return j.get({url:"/qywx.customer/lists",params:P})}function tl(P){return j.post({url:"/qywx.customer/delete",params:P})}function el(){return j.post({url:"/qywx.customer/sync"})}function ll(){return j.get({url:"/qywx.customer/stats"})}function al(){return j.get({url:"/qywx.customer/tagStats"})}function sl(){return j.get({url:"/qywx.customer/todayArrival"})}function nl(P){return j.get({url:"/qywx.customer/todayArrivalList",params:P})}function ol(){return j.get({url:"/qywx.customer/getSyncSettings"})}function il(P){return j.post({url:"/qywx.customer/saveSyncSettings",params:P})}const rl={class:"qywx-customer-page p-4"},dl={class:"flex items-center justify-between"},ul={class:"flex gap-2"},ml={class:"grid grid-cols-4 gap-4 mb-4"},_l={class:"text-2xl font-bold text-primary"},cl={class:"flex items-center justify-between mb-1"},fl={key:0,class:"text-xs text-gray-400"},pl={class:"flex items-end gap-2"},gl={class:"text-2xl font-bold text-success leading-none"},yl=["title"],vl={class:"mt-2 pt-2 border-t border-gray-100"},bl={class:"text-lg font-semibold text-gray-800"},xl={class:"text-sm font-medium"},wl={class:"flex items-center justify-between gap-3"},Sl={class:"text-xs text-gray-400"},kl={class:"flex items-center gap-2"},hl={class:"font-medium"},Cl={class:"text-xs text-gray-400"},Vl={key:0},Al={key:1,class:"text-gray-400"},El={key:0},Tl={key:0,class:"ml-1 text-gray-400 text-xs"},Nl={key:1,class:"text-gray-400"},$l={key:0,class:"flex items-center gap-1"},zl={class:"inline-block max-w-[150px] truncate align-middle"},Dl={class:"text-primary whitespace-nowrap cursor-help"},ql={key:1,class:"text-gray-400"},Il={class:"flex justify-end mt-4"},Ul={class:"flex items-center justify-between w-full pr-4"},Ll={class:"flex items-center gap-3"},jl={class:"px-1"},Pl={key:0,class:"mb-3"},Ml={class:"flex flex-wrap gap-1"},Bl={class:"flex items-start gap-2"},Hl={class:"flex-1 min-w-0"},Ol={class:"text-sm font-medium truncate"},Kl={class:"text-xs text-gray-500 mt-0.5"},Fl={key:0,class:"ml-2"},Gl={key:1,class:"ml-2 text-emerald-500"},Rl={key:3,class:"mt-3 text-center"},Wl={class:"flex items-center justify-between w-full pr-4"},Yl={class:"flex items-center gap-3"},Jl={class:"px-1"},Ql={class:"grid grid-cols-3 gap-2 mb-3"},Xl={class:"text-xl font-bold text-warning"},Zl={class:"text-xl font-bold"},ta={class:"text-xl font-bold"},ea={class:"flex items-center gap-2 w-full"},la={class:"font-medium"},aa={class:"ml-auto text-xs text-gray-500"},sa={class:"font-medium"},na={class:"text-xs text-gray-400 truncate"},oa={class:"text-warning font-bold"},ia={key:0,class:"flex flex-wrap gap-1"},ra={key:1,class:"text-gray-400"},da={key:0},ua={key:1,class:"text-gray-400"},ma={key:0},_a={key:0,class:"ml-1 text-gray-400 text-xs"},ca={key:1,class:"text-gray-400"},fa=fe({__name:"qywx",setup(P){const K=A(!1),F=A(!1),ut=A(!1),w=A(null),G=A(null),z=O({total:0,today:0,today_follow_staff:0,lastSync:"",syncStatus:"idle",syncStatusText:"未同步"}),zt=dt(()=>{switch(z.syncStatus){case"success":return"success";case"syncing":return"warning";case"failed":return"danger";default:return"info"}}),E=O({auto_sync:!1,interval:3600}),f=O({name:"",follow_user:"",add_way:"",tag_ids:[],add_time_start:"",add_time_end:"",dedupe_mode:"first"}),mt=A(null);function Dt(e){e&&e.length===2&&e[0]&&e[1]?(f.add_time_start=e[0],f.add_time_end=e[1]):(f.add_time_start="",f.add_time_end=""),U()}const h=O({total_tags:0,total_relations:0,total_tagged_customers:0,groups:[]}),R=A(!1),lt=A(!1),_t=A(""),ct=A([]),xt=dt(()=>{const e=_t.value.trim().toLowerCase();if(!e)return h.groups;const t=[];for(const o of h.groups){const m=(o.group_name||"").toLowerCase().includes(e),S=o.tags.filter(r=>m||(r.tag_name||"").toLowerCase().includes(e));S.length&&t.push({...o,tags:S})}return t});async function at(e=!1){R.value=!0;try{const t=await al();t&&typeof t=="object"&&(h.total_tags=Number(t.total_tags??0),h.total_relations=Number(t.total_relations??0),h.total_tagged_customers=Number(t.total_tagged_customers??0),h.groups=Array.isArray(t.groups)?t.groups:[]),e&&$.msgSuccess("已刷新")}catch(t){e&&$.msgError((t==null?void 0:t.message)||"加载标签统计失败"),console.error("加载标签统计失败",t)}finally{R.value=!1}}function qt(){var e;lt.value=!0,ct.value=(e=h.groups[0])!=null&&e.group_name?[h.groups[0].group_name]:[],h.groups.length===0&&at()}function It(e){e&&(f.tag_ids.includes(e)||(f.tag_ids.push(e),U()))}function Ut(e){e&&(f.tag_ids=[e],lt.value=!1,U())}const T=O({total:0,recent_time:0,hourly:new Array(24).fill(0),by_state:[]}),W=A(!1),st=A(!1),g=O({total:0,page_no:1,page_size:20,lists:[]}),Lt=new Date().getHours(),jt=dt(()=>Math.max(1,...T.hourly));function Pt(e){if(e<=0)return"2px";const t=e/jt.value;return Math.max(4,Math.round(t*32))+"px"}const Mt=dt(()=>{const e=[];return T.hourly.forEach((t,o)=>{t>0&&e.push(`${String(o).padStart(2,"0")}:00 · ${t}`)}),e.length?e.join(" "):"今天还没有人进入"});async function nt(e=!1){try{const t=await sl();t&&(T.total=Number(t.total??0),T.recent_time=Number(t.recent_time??0),T.hourly=Array.isArray(t.hourly)&&t.hourly.length===24?t.hourly.map(o=>Number(o)||0):new Array(24).fill(0),T.by_state=Array.isArray(t.by_state)?t.by_state:[])}catch(t){console.error("加载今日进入分布失败",t)}e&&W.value&&(g.page_no=1,g.lists=[],await ft())}async function ft(){st.value=!0;try{const e=await nl({page_no:g.page_no,page_size:g.page_size});if(e){g.total=Number(e.total??0);const t=Array.isArray(e.lists)?e.lists:[];g.page_no===1?g.lists=t:g.lists.push(...t)}}catch(e){console.error("加载今日进入明细失败",e)}finally{st.value=!1}}async function wt(){W.value=!0,g.page_no=1,g.lists=[],await Promise.all([nt(!1),ft()])}async function Bt(){g.lists.length>=g.total||(g.page_no+=1,await ft())}function Ht(e){if(!e||e<=0)return"";const t=new Date(e<1e12?e*1e3:e);return`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}function Ot(e){if(!e||e<=0)return"—";const t=new Date(e<1e12?e*1e3:e);return`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}:${String(t.getSeconds()).padStart(2,"0")}`}let Y=null,ot=null;function pt(){ot!==null&&(clearInterval(ot),ot=null)}async function Kt(e){return Ze(e)}const{pager:M,getLists:J,resetPage:U,resetParams:Ft}=Qe({fetchFun:Kt,params:f});function Gt(){f.name="",f.follow_user="",f.add_way="",f.tag_ids=[],f.add_time_start="",f.add_time_end="",f.dedupe_mode="first",mt.value=null,Ft()}function Rt(){pt();let e=0;ot=window.setInterval(async()=>{e+=1,await Q(),await J(),(z.syncStatus!=="syncing"||e>=120)&&(pt(),K.value=!1,e>=120&&z.syncStatus==="syncing"?$.msgWarning("长时间仍为「同步中」,请刷新页面或查看服务器 runtime/log/qywx_sync.log(可能未安装 CLI php 或禁用了 exec)"):z.syncStatus==="failed"&&$.msgError("同步失败,请查看服务器 runtime/log/qywx_sync.log 或后台同步状态"))},3e3)}async function St(e){const t=(e==null?void 0:e.silent)===!0;K.value=!0;try{const o=await el();t||$.msgSuccess((o==null?void 0:o.message)||"操作成功"),await Q(),await J(),o!=null&&o.background?Rt():K.value=!1}catch(o){const m=(o==null?void 0:o.message)||(o==null?void 0:o.msg)||"同步失败";(!t||!String(m).includes("正在执行"))&&$.msgError(m),K.value=!1}}async function Q(){try{const e=await ll();e&&typeof e=="object"&&Object.assign(z,e)}catch(e){console.error("加载统计失败",e)}}async function Wt(){try{const e=await ol();e&&typeof e=="object"&&Object.assign(E,e),E.auto_sync&&kt()}catch(e){console.error("加载同步设置失败",e)}}async function Yt(){try{await il(E),$.msgSuccess("保存成功"),F.value=!1,ht(),E.auto_sync&&kt()}catch(e){$.msgError((e==null?void 0:e.message)||"保存失败")}}function kt(){Y||(Y=window.setInterval(()=>{St({silent:!0})},E.interval*1e3))}function ht(){Y&&(clearInterval(Y),Y=null)}function Jt(e){w.value=e,ut.value=!0}async function Qt(e){const t=Number(e.id);if(!Number.isInteger(t)||t<=0||G.value!==null)return;const o=String(e.name||e.external_userid||"该客户");try{await $.confirm(`确定删除企业微信客户“${o}”吗?此操作仅删除系统内的同步记录,不会删除企业微信中的客户关系;后续重新同步时可能再次出现。`)}catch{return}G.value=t;try{await tl({id:t}),M.page>1&&M.lists.length===1&&(M.page-=1),await Promise.all([J(),Q(),at()]),$.msgSuccess("删除成功")}catch(m){$.msgError((m==null?void 0:m.message)||(m==null?void 0:m.msg)||"删除失败")}finally{G.value=null}}function gt(e){const t=String((e==null?void 0:e.admin_name)??"").trim(),o=String((e==null?void 0:e.userid)??"").trim(),m=String((e==null?void 0:e.name)??"").trim();return t||(m&&o?`${m}(${o})`:m||o||"—")}function it(e){const t=String((e==null?void 0:e.admin_name)??"").trim(),o=String((e==null?void 0:e.userid)??"").trim(),m=[];return t&&m.push("后台:"+t),o&&m.push("企微:"+o),m.join("|")}function Xt(e){return e?Array.isArray(e.add_channels)?e.add_channels.map(t=>({state:String((t==null?void 0:t.state)??"").trim(),label:String((t==null?void 0:t.label)??(t==null?void 0:t.state)??"").trim(),source_type:(t==null?void 0:t.source_type)==="promotion_pool"?"promotion_pool":"state",pool_id:Number((t==null?void 0:t.pool_id)??0),user_id:String((t==null?void 0:t.user_id)??"").trim(),event_time:Number((t==null?void 0:t.event_time)??0)})).filter(t=>t.state!==""):Array.isArray(e.add_channel_states)?e.add_channel_states.map(t=>String(t??"").trim()).filter(t=>t!=="").map(t=>({state:t,label:t,source_type:"state",pool_id:0,user_id:"",event_time:0})):[]:[]}const Ct={0:"未知添加方式",1:"通过扫描二维码添加",2:"通过搜索手机号添加",3:"通过名片分享添加",4:"通过群聊添加",5:"通过手机通讯录添加",6:"通过微信联系人添加",8:"安装第三方应用时自动添加",9:"通过搜索邮箱添加",10:"通过视频号添加",11:"通过日程参与人添加",12:"通过会议参与人添加",13:"通过微信好友添加",14:"通过智慧硬件专属客服添加",15:"通过上门服务客服添加",16:"通过获客链接添加",17:"通过定制开发添加",18:"通过需求回复添加",21:"通过第三方售前客服添加",22:"通过可能的商务伙伴添加",24:"通过接受微信好友申请添加",201:"通过内部成员共享添加",202:"通过管理员或负责人分配添加"},Zt=Object.entries(Ct).map(([e,t])=>({value:Number(e),label:t}));function te(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0?e:typeof e!="string"||!/^\d+$/.test(e.trim())?null:Number(e.trim())}function ee(e){return Ct[e]||`其他添加方式(${e})`}function H(e){if(!e)return[];const t=Xt(e),o=new Set,m=[];return(Array.isArray(e.follow_users)?e.follow_users:[]).forEach((r,D)=>{const k=String((r==null?void 0:r.userid)??(r==null?void 0:r.UserId)??"").trim(),v=String((r==null?void 0:r.state)??(r==null?void 0:r.State)??"").trim(),q=te((r==null?void 0:r.add_way)??(r==null?void 0:r.AddWay));let I=t.findIndex((b,B)=>!o.has(B)&&k!==""&&v!==""&&b.user_id===k&&b.state===v);I<0&&v!==""&&(I=t.findIndex((b,B)=>!o.has(B)&&b.state===v)),I<0&&k!==""&&(I=t.findIndex((b,B)=>!o.has(B)&&b.user_id===k));const p=I>=0?t[I]:void 0;if(I>=0&&o.add(I),q===null&&v===""&&!p)return;const vt=String((r==null?void 0:r.add_way_label)??"").trim(),tt=(p==null?void 0:p.source_type)??(/^zyt_pool:[1-9]\d*$/.test(v)?"promotion_pool":"state"),rt=vt||(q!==null?ee(q):tt==="promotion_pool"?"通过获客链接添加":"通过其他渠道添加");m.push({key:`follow:${D}:${k}:${q??"unknown"}:${v}`,add_way:q,label:rt,state:v||(p==null?void 0:p.state)||"",channel_label:(p==null?void 0:p.label)||"",source_type:tt,pool_id:(p==null?void 0:p.pool_id)||0,user_id:k||(p==null?void 0:p.user_id)||"",staff_name:gt(r),event_time:(p==null?void 0:p.event_time)||Number((r==null?void 0:r.createtime)??0)})}),t.forEach((r,D)=>{o.has(D)||m.push({...r,key:`channel:${D}:${r.user_id}:${r.state}`,add_way:r.source_type==="promotion_pool"?16:null,label:r.source_type==="promotion_pool"?"通过获客链接添加":"通过其他渠道添加",channel_label:r.label,staff_name:r.user_id||"—"})}),m.sort((r,D)=>D.event_time-r.event_time)}function yt(e){const t=[];return t.push(`添加方式:${e.label}`),e.source_type==="promotion_pool"&&e.channel_label&&t.push(`获客助手方案:${e.channel_label}`),e.staff_name&&e.staff_name!=="—"&&t.push(`跟进人:${e.staff_name}`),e.event_time>0&&t.push(`添加时间:${X(e.event_time)}`),e.state&&t.push(`渠道参数:${e.state}`),t.join("|")}function le(e){return H(e).slice(1).map(yt).join(` `)}function Vt(e){if(!e)return null;const t=Number(e.external_first_add_time??0);if(t>0)return t;const o=e.follow_users;if(Array.isArray(o)&&o.length>0){let m=0;for(const S of o){const r=Number((S==null?void 0:S.createtime)??0);r>0&&(m===0||r0)return m}return e.create_time??null}function X(e){if(e===""||e===null||e===void 0)return"—";const t=Number(e),o=typeof e=="string"&&/^\d+$/.test(e.trim());let m;return typeof e=="number"?m=e<1e12?e*1e3:e:!Number.isNaN(t)&&o?m=t<1e12?t*1e3:t:m=new Date(e).getTime(),Number.isNaN(m)?"—":new Date(m).toLocaleString("zh-CN")}let Z=null;function ae(){Z===null&&(Z=window.setInterval(()=>{Q(),nt(W.value)},3e4))}function se(){Z!==null&&(clearInterval(Z),Z=null)}return pe(()=>{J(),Q(),Wt(),nt(!1),at(),ae()}),ge(()=>{ht(),pt(),se()}),(e,t)=>{const o=ke,m=ve,S=be,r=Se,D=Te,k=Ee,v=$e,q=Ne,I=ze,p=De,vt=qe,tt=Ae,rt=Le,b=Ue,B=Ie,ne=Je,oe=Me,At=Be,ie=Oe,re=He,Et=Ke,Tt=Fe,de=Re,ue=Ge,N=Ye,me=We,_e=ye("perms"),ce=je;return d(),c("div",rl,[a(S,{shadow:"never",class:"mb-4"},{header:l(()=>[n("div",dl,[t[24]||(t[24]=n("span",{class:"text-lg font-semibold"},"企业微信客户管理",-1)),n("div",ul,[a(o,{type:"success",plain:"",onClick:wt},{icon:l(()=>[a(x(he))]),default:l(()=>[t[20]||(t[20]=_(" 今日进入明细 ",-1))]),_:1}),a(o,{type:"warning",plain:"",onClick:qt},{icon:l(()=>[a(x(Ce))]),default:l(()=>[t[21]||(t[21]=_(" 标签维度 ",-1))]),_:1}),a(o,{type:"primary",loading:K.value,onClick:t[0]||(t[0]=s=>St())},{icon:l(()=>[a(x(bt))]),default:l(()=>[t[22]||(t[22]=_(" 立即同步 ",-1))]),_:1},8,["loading"]),a(o,{onClick:t[1]||(t[1]=s=>F.value=!0)},{icon:l(()=>[a(x(Ve))]),default:l(()=>[t[23]||(t[23]=_(" 同步设置 ",-1))]),_:1})])])]),default:l(()=>[a(m,{title:"功能说明",type:"info",closable:!1,class:"mb-4"},{default:l(()=>[...t[25]||(t[25]=[n("div",{class:"text-sm"},[n("p",null,"自动从企业微信同步外部联系人(客户)信息,包括客户基本信息、跟进人等。"),n("p",{class:"mt-1"},"同步后的数据可用于患者信息匹配和自动关联。")],-1)])]),_:1}),n("div",ml,[a(S,{shadow:"hover"},{default:l(()=>[t[26]||(t[26]=n("div",{class:"text-gray-500 text-sm mb-1"},"总客户数",-1)),n("div",_l,u(z.total),1)]),_:1}),a(S,{shadow:"hover",class:"today-arrival-card cursor-pointer",onClick:wt},{default:l(()=>[n("div",cl,[t[27]||(t[27]=n("span",{class:"text-gray-500 text-sm"},"今日新增",-1)),T.recent_time?(d(),c("span",fl," 最近 "+u(Ht(T.recent_time)),1)):L("",!0)]),n("div",pl,[n("div",gl,u(z.today),1),t[28]||(t[28]=n("div",{class:"text-xs text-gray-400 pb-1"},"人",-1))]),n("div",{class:"hourly-bars mt-2",title:Mt.value},[(d(!0),c(C,null,V(T.hourly,(s,i)=>(d(),c("div",{key:i,class:we(["hourly-bar",{"is-empty":s===0,"is-current":i===x(Lt)}]),style:xe({height:Pt(s)})},null,6))),128))],8,yl),n("div",vl,[t[29]||(t[29]=n("div",{class:"text-gray-500 text-xs mb-0.5"},"今日跟进人合计",-1)),n("div",bl,u(z.today_follow_staff),1)])]),_:1}),a(S,{shadow:"hover"},{default:l(()=>[t[30]||(t[30]=n("div",{class:"text-gray-500 text-sm mb-1"},"最后同步",-1)),n("div",xl,u(z.lastSync||"未同步"),1)]),_:1}),a(S,{shadow:"hover"},{default:l(()=>[t[31]||(t[31]=n("div",{class:"text-gray-500 text-sm mb-1"},"同步状态",-1)),a(r,{type:zt.value,size:"small"},{default:l(()=>[_(u(z.syncStatusText),1)]),_:1},8,["type"])]),_:1})])]),_:1}),a(S,{shadow:"never"},{default:l(()=>[a(tt,{model:f,inline:"",class:"mb-4"},{default:l(()=>[a(k,{label:"客户名称"},{default:l(()=>[a(D,{modelValue:f.name,"onUpdate:modelValue":t[2]||(t[2]=s=>f.name=s),placeholder:"搜索客户名称",clearable:"",onKeyup:Nt(x(U),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),a(k,{label:"跟进人"},{default:l(()=>[a(D,{modelValue:f.follow_user,"onUpdate:modelValue":t[3]||(t[3]=s=>f.follow_user=s),placeholder:"跟进人姓名(后台姓名或企微账号)",clearable:"",onKeyup:Nt(x(U),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),a(k,{label:"渠道"},{default:l(()=>[a(q,{modelValue:f.add_way,"onUpdate:modelValue":t[4]||(t[4]=s=>f.add_way=s),clearable:"",filterable:"",placeholder:"选择或搜索添加渠道",style:{width:"240px"},onChange:x(U)},{default:l(()=>[(d(!0),c(C,null,V(x(Zt),s=>(d(),y(v,{key:s.value,label:s.label,value:s.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","onChange"])]),_:1}),a(k,{label:"添加时间"},{default:l(()=>[a(I,{modelValue:mt.value,"onUpdate:modelValue":t[5]||(t[5]=s=>mt.value=s),type:"daterange","value-format":"YYYY-MM-DD","start-placeholder":"开始日期","end-placeholder":"结束日期",clearable:"",class:"!w-[280px]",onChange:Dt},null,8,["modelValue"])]),_:1}),a(k,{label:"去重筛选"},{default:l(()=>[a(q,{modelValue:f.dedupe_mode,"onUpdate:modelValue":t[6]||(t[6]=s=>f.dedupe_mode=s),style:{width:"220px"},onChange:x(U)},{default:l(()=>[a(v,{label:"客户去重(首次添加)",value:"first"}),a(v,{label:"含重加(对齐企微)",value:"any"})]),_:1},8,["modelValue","onChange"]),a(p,{content:"客户去重:按客户首次添加时间。含重加:当天任意员工添加过即计入(含老客被其他员工重加),与企微时间筛选更接近;可与跟进人、添加时间联用。",placement:"top"},{default:l(()=>[...t[32]||(t[32]=[n("span",{class:"ml-1 text-gray-400 text-xs cursor-help"},"说明",-1)])]),_:1})]),_:1}),a(k,{label:"标签"},{default:l(()=>[a(q,{modelValue:f.tag_ids,"onUpdate:modelValue":t[7]||(t[7]=s=>f.tag_ids=s),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",clearable:"",filterable:"",placeholder:"按标签筛选(可多选,命中任一即返回)",loading:R.value,style:{"min-width":"320px"},onChange:x(U)},{default:l(()=>[(d(!0),c(C,null,V(h.groups,s=>(d(),y(vt,{key:s.group_name||"_",label:(s.group_name||"(未分组)")+" · "+s.customer_count},{default:l(()=>[(d(!0),c(C,null,V(s.tags,i=>(d(),y(v,{key:i.tag_id,value:i.tag_id,label:i.tag_name},{default:l(()=>[n("span",wl,[n("span",null,u(i.tag_name),1),n("span",Sl,u(i.customer_count)+" 人",1)])]),_:2},1032,["value","label"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","loading","onChange"])]),_:1}),a(k,null,{default:l(()=>[a(o,{type:"primary",onClick:x(U)},{default:l(()=>[...t[33]||(t[33]=[_("查询",-1)])]),_:1},8,["onClick"]),a(o,{onClick:Gt},{default:l(()=>[...t[34]||(t[34]=[_("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"]),$t((d(),y(B,{data:x(M).lists,stripe:""},{default:l(()=>[a(b,{label:"客户信息","min-width":"200"},{default:l(({row:s})=>[n("div",kl,[a(rt,{size:40,src:s.avatar},null,8,["src"]),n("div",null,[n("div",hl,u(s.name),1),n("div",Cl,u(s.external_userid),1)])])]),_:1}),a(b,{label:"类型",width:"80"},{default:l(({row:s})=>[a(r,{size:"small"},{default:l(()=>[_(u(s.type===1?"微信":"企微"),1)]),_:2},1024)]),_:1}),a(b,{label:"性别",width:"60"},{default:l(({row:s})=>[_(u(s.gender===1?"男":s.gender===2?"女":"未知"),1)]),_:1}),a(b,{label:"跟进人","min-width":"150"},{default:l(({row:s})=>[s.follow_users&&s.follow_users.length?(d(),c("div",Vl,[(d(!0),c(C,null,V(s.follow_users,(i,et)=>(d(),y(p,{key:(i.userid||"")+"-"+et,disabled:!it(i),content:it(i),placement:"top"},{default:l(()=>[a(r,{size:"small",class:"mr-1 mb-1"},{default:l(()=>[_(u(gt(i)),1)]),_:2},1024)]),_:2},1032,["disabled","content"]))),128))])):(d(),c("span",Al,"—"))]),_:1}),a(b,{label:"标签","min-width":"180"},{default:l(({row:s})=>[s.tags&&s.tags.length?(d(),c("div",El,[(d(!0),c(C,null,V(s.tags,i=>(d(),y(r,{key:i.tag_id,size:"small",effect:"light",type:"warning",class:"mr-1 mb-1 cursor-pointer",onClick:et=>It(i.tag_id)},{default:l(()=>[_(u(i.tag_name)+" ",1),i.group_name?(d(),c("span",Tl,u(i.group_name),1)):L("",!0)]),_:2},1032,["onClick"]))),128))])):(d(),c("span",Nl,"—"))]),_:1}),a(b,{label:"添加渠道","min-width":"160"},{default:l(({row:s})=>[H(s).length?(d(),c("div",$l,[(d(!0),c(C,null,V(H(s).slice(0,1),i=>(d(),y(p,{key:i.key,content:yt(i),placement:"top"},{default:l(()=>[n("span",zl,u(i.label),1)]),_:2},1032,["content"]))),128)),H(s).length>1?(d(),y(p,{key:0,content:le(s),placement:"top"},{default:l(()=>[n("span",Dl," 另 "+u(H(s).length-1)+" 条 ",1)]),_:2},1032,["content"])):L("",!0)])):(d(),c("span",ql,"未记录"))]),_:1}),a(b,{label:"添加时间",width:"160"},{default:l(({row:s})=>[_(u(X(Vt(s))),1)]),_:1}),a(b,{label:"更新时间",width:"160"},{default:l(({row:s})=>[_(u(X(s.update_time)),1)]),_:1}),a(b,{label:"操作",width:"160",fixed:"right"},{default:l(({row:s})=>[a(o,{type:"primary",link:"",onClick:i=>Jt(s)},{default:l(()=>[...t[35]||(t[35]=[_("查看详情",-1)])]),_:1},8,["onClick"]),$t((d(),y(o,{type:"danger",link:"",loading:G.value===Number(s.id),disabled:G.value!==null,onClick:i=>Qt(s)},{default:l(()=>[...t[36]||(t[36]=[_(" 删除 ",-1)])]),_:1},8,["loading","disabled","onClick"])),[[_e,["qywx.customer/delete"]]])]),_:1})]),_:1},8,["data"])),[[ce,x(M).loading]]),n("div",Il,[a(ne,{modelValue:x(M),"onUpdate:modelValue":t[8]||(t[8]=s=>Pe(M)?M.value=s:null),onChange:x(J)},null,8,["modelValue","onChange"])])]),_:1}),a(At,{modelValue:F.value,"onUpdate:modelValue":t[12]||(t[12]=s=>F.value=s),title:"同步设置",width:"500px"},{footer:l(()=>[a(o,{onClick:t[11]||(t[11]=s=>F.value=!1)},{default:l(()=>[...t[38]||(t[38]=[_("取消",-1)])]),_:1}),a(o,{type:"primary",onClick:Yt},{default:l(()=>[...t[39]||(t[39]=[_("保存",-1)])]),_:1})]),default:l(()=>[a(tt,{model:E,"label-width":"120px"},{default:l(()=>[a(k,{label:"自动同步"},{default:l(()=>[a(oe,{modelValue:E.auto_sync,"onUpdate:modelValue":t[9]||(t[9]=s=>E.auto_sync=s)},null,8,["modelValue"]),t[37]||(t[37]=n("div",{class:"text-xs text-gray-400 mt-1"}," 开启后将定时自动同步企业微信客户数据 ",-1))]),_:1}),a(k,{label:"同步间隔"},{default:l(()=>[a(q,{modelValue:E.interval,"onUpdate:modelValue":t[10]||(t[10]=s=>E.interval=s),disabled:!E.auto_sync},{default:l(()=>[a(v,{label:"每小时",value:3600}),a(v,{label:"每2小时",value:7200}),a(v,{label:"每4小时",value:14400}),a(v,{label:"每6小时",value:21600}),a(v,{label:"每12小时",value:43200}),a(v,{label:"每天",value:86400})]),_:1},8,["modelValue","disabled"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),a(Tt,{modelValue:W.value,"onUpdate:modelValue":t[14]||(t[14]=s=>W.value=s),title:"今日进入明细",direction:"rtl",size:"520px","destroy-on-close":!1},{header:l(()=>[n("div",Ul,[n("div",Ll,[t[40]||(t[40]=n("span",{class:"text-base font-semibold"},"今日进入明细",-1)),a(r,{type:"success",effect:"plain"},{default:l(()=>[_("共 "+u(g.total)+" 人",1)]),_:1})]),a(o,{link:"",type:"primary",loading:st.value,onClick:t[13]||(t[13]=s=>nt(!0))},{icon:l(()=>[a(x(bt))]),default:l(()=>[t[41]||(t[41]=_(" 刷新 ",-1))]),_:1},8,["loading"])])]),default:l(()=>{var s;return[n("div",jl,[a(m,{type:"info",closable:!1,class:"mb-3","show-icon":""},{title:l(()=>[...t[42]||(t[42]=[n("span",{class:"text-xs"}," 一次推送 = 一个人进来;数据来源为企微回调流水表(INSERT IGNORE 幂等),与客户同步解耦,数字零误差。 ",-1)])]),_:1}),(s=T.by_state)!=null&&s.length?(d(),c("div",Pl,[t[43]||(t[43]=n("div",{class:"text-xs text-gray-500 mb-1"},"今日推广渠道 Top",-1)),n("div",Ml,[(d(!0),c(C,null,V(T.by_state,i=>(d(),y(r,{key:i.state||"_",size:"small",effect:"light",type:"success"},{default:l(()=>[_(u(i.state||"(无 state)")+" · "+u(i.count),1)]),_:2},1024))),128))])])):L("",!0),g.lists.length?(d(),y(re,{key:1,class:"mt-2"},{default:l(()=>[(d(!0),c(C,null,V(g.lists,i=>(d(),y(ie,{key:i.id,timestamp:Ot(i.event_time),placement:"top",type:"success",hollow:!1},{default:l(()=>[n("div",Bl,[a(rt,{size:32,src:i.customer_avatar||void 0},{default:l(()=>[_(u((i.customer_name||"?").slice(0,1)),1)]),_:2},1032,["src"]),n("div",Hl,[n("div",Ol,u(i.customer_name||i.external_userid||"(未知客户)"),1),n("div",Kl,[n("span",null,"接待:"+u(i.admin_name||i.user_id||"—"),1),i.state?(d(),c("span",Fl,[t[44]||(t[44]=_(" 渠道:",-1)),a(r,{size:"small",type:"info",effect:"plain"},{default:l(()=>[_(u(i.state),1)]),_:2},1024)])):L("",!0),i.welcome_code?(d(),c("span",Gl,"欢迎语")):L("",!0)])])])]),_:2},1032,["timestamp"]))),128))]),_:1})):(d(),y(Et,{key:2,description:"今天还没有人进入","image-size":80})),g.total>g.lists.length?(d(),c("div",Rl,[a(o,{loading:st.value,size:"small",onClick:Bt},{default:l(()=>[_(" 加载更多(还剩 "+u(g.total-g.lists.length)+") ",1)]),_:1},8,["loading"])])):L("",!0)])]}),_:1},8,["modelValue"]),a(Tt,{modelValue:lt.value,"onUpdate:modelValue":t[18]||(t[18]=s=>lt.value=s),title:"标签维度统计",direction:"rtl",size:"560px","destroy-on-close":!1},{header:l(()=>[n("div",Wl,[n("div",Yl,[t[45]||(t[45]=n("span",{class:"text-base font-semibold"},"标签维度统计",-1)),a(r,{type:"warning",effect:"plain"},{default:l(()=>[_(u(h.groups.length)+" 组 · "+u(h.total_tags)+" 标签 ",1)]),_:1})]),a(o,{link:"",type:"primary",loading:R.value,onClick:t[15]||(t[15]=s=>at(!0))},{icon:l(()=>[a(x(bt))]),default:l(()=>[t[46]||(t[46]=_(" 刷新 ",-1))]),_:1},8,["loading"])])]),default:l(()=>[n("div",Jl,[n("div",Ql,[a(S,{shadow:"never","body-class":"!p-3"},{default:l(()=>[t[47]||(t[47]=n("div",{class:"text-xs text-gray-500"},"已打标签客户",-1)),n("div",Xl,u(h.total_tagged_customers),1)]),_:1}),a(S,{shadow:"never","body-class":"!p-3"},{default:l(()=>[t[48]||(t[48]=n("div",{class:"text-xs text-gray-500"},"标签数",-1)),n("div",Zl,u(h.total_tags),1)]),_:1}),a(S,{shadow:"never","body-class":"!p-3"},{default:l(()=>[t[49]||(t[49]=n("div",{class:"text-xs text-gray-500"},"关系总数",-1)),n("div",ta,u(h.total_relations),1)]),_:1})]),a(D,{modelValue:_t.value,"onUpdate:modelValue":t[16]||(t[16]=s=>_t.value=s),placeholder:"筛选标签名 / 分组名",clearable:"",size:"small",class:"mb-3"},null,8,["modelValue"]),xt.value.length===0?(d(),y(Et,{key:0,description:R.value?"加载中…":"暂无标签数据","image-size":64},null,8,["description"])):(d(),y(ue,{key:1,modelValue:ct.value,"onUpdate:modelValue":t[17]||(t[17]=s=>ct.value=s)},{default:l(()=>[(d(!0),c(C,null,V(xt.value,s=>(d(),y(de,{key:s.group_name||"_",name:s.group_name||"_"},{title:l(()=>[n("div",ea,[n("span",la,u(s.group_name||"(未分组)"),1),a(r,{size:"small",effect:"plain"},{default:l(()=>[_(u(s.tags.length),1)]),_:2},1024),n("span",aa," 最热 "+u(s.customer_count)+" 人 ",1)])]),default:l(()=>[a(B,{data:s.tags,size:"small",stripe:""},{default:l(()=>[a(b,{label:"标签","min-width":"160"},{default:l(({row:i})=>[n("span",sa,u(i.tag_name),1),n("div",na,u(i.tag_id),1)]),_:1}),a(b,{label:"客户数",width:"100",align:"right"},{default:l(({row:i})=>[n("span",oa,u(i.customer_count),1)]),_:1}),a(b,{label:"操作",width:"80",align:"center"},{default:l(({row:i})=>[a(o,{link:"",type:"primary",size:"small",onClick:et=>Ut(i.tag_id)},{default:l(()=>[...t[50]||(t[50]=[_(" 筛选 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])]),_:2},1032,["name"]))),128))]),_:1},8,["modelValue"]))])]),_:1},8,["modelValue"]),a(At,{modelValue:ut.value,"onUpdate:modelValue":t[19]||(t[19]=s=>ut.value=s),title:"客户详情",width:"600px"},{default:l(()=>[w.value?(d(),y(me,{key:0,column:2,border:""},{default:l(()=>[a(N,{label:"客户名称"},{default:l(()=>[_(u(w.value.name),1)]),_:1}),a(N,{label:"External ID"},{default:l(()=>[_(u(w.value.external_userid),1)]),_:1}),a(N,{label:"性别"},{default:l(()=>[_(u(w.value.gender===1?"男":w.value.gender===2?"女":"未知"),1)]),_:1}),a(N,{label:"类型"},{default:l(()=>[_(u(w.value.type===1?"微信用户":"企业微信用户"),1)]),_:1}),a(N,{label:"企业名称",span:2},{default:l(()=>[_(u(w.value.corp_name||"—"),1)]),_:1}),a(N,{label:"职位",span:2},{default:l(()=>[_(u(w.value.position||"—"),1)]),_:1}),a(N,{label:"添加时间",span:2},{default:l(()=>[_(u(X(Vt(w.value))),1)]),_:1}),a(N,{label:"添加渠道",span:2},{default:l(()=>[H(w.value).length?(d(),c("div",ia,[(d(!0),c(C,null,V(H(w.value),s=>(d(),y(p,{key:s.key,content:yt(s),placement:"top"},{default:l(()=>[a(r,{size:"small",type:"info",effect:"plain"},{default:l(()=>[_(u(s.label),1)]),_:2},1024)]),_:2},1032,["content"]))),128))])):(d(),c("span",ra,"未记录"))]),_:1}),a(N,{label:"更新时间",span:2},{default:l(()=>[_(u(X(w.value.update_time)),1)]),_:1}),a(N,{label:"跟进人",span:2},{default:l(()=>{var s;return[(s=w.value.follow_users)!=null&&s.length?(d(),c("div",da,[(d(!0),c(C,null,V(w.value.follow_users,(i,et)=>(d(),y(p,{key:(i.userid||"")+"-"+et,disabled:!it(i),content:it(i),placement:"top"},{default:l(()=>[a(r,{size:"small",class:"mr-1 mb-1"},{default:l(()=>[_(u(gt(i)),1)]),_:2},1024)]),_:2},1032,["disabled","content"]))),128))])):(d(),c("span",ua,"—"))]}),_:1}),a(N,{label:"标签",span:2},{default:l(()=>{var s;return[(s=w.value.tags)!=null&&s.length?(d(),c("div",ma,[(d(!0),c(C,null,V(w.value.tags,i=>(d(),y(r,{key:i.tag_id,size:"small",effect:"light",type:"warning",class:"mr-1 mb-1"},{default:l(()=>[_(u(i.tag_name)+" ",1),i.group_name?(d(),c("span",_a,u(i.group_name),1)):L("",!0)]),_:2},1024))),128))])):(d(),c("span",ca,"—"))]}),_:1})]),_:1})):L("",!0)]),_:1},8,["modelValue"])])}}}),ba=Xe(fa,[["__scopeId","data-v-537c4308"]]);export{ba as default}; diff --git a/server/public/admin/assets/readonly-C-Pkqvus.js b/server/public/admin/assets/readonly-BfVwzFxn.js similarity index 82% rename from server/public/admin/assets/readonly-C-Pkqvus.js rename to server/public/admin/assets/readonly-BfVwzFxn.js index 815ccd0d0..e17ddecd9 100644 --- a/server/public/admin/assets/readonly-C-Pkqvus.js +++ b/server/public/admin/assets/readonly-BfVwzFxn.js @@ -1 +1 @@ -import{o as $,Q as H,W as J,ap as U,ac as X,bn as Y,q as a,r as l,s,v as g,D as k,w as Z,u as v,cv as ee,K as te,T as _,L as M,F as V,P as c,O as i,ae as z,M as h,p as n,a1 as ae,bC as se}from"./.pnpm-CyuAWpdG.js";import{ay as ie}from"./tcm-QAkeqQ9Q.js";import{g as oe}from"./patient-Bz8-LT2R.js";import{f as ne}from"./diag-display-DCz_VAqj.js";import{h as m}from"./perm-DOfZAzJJ.js";import{a8 as de,a9 as re,a1 as le,W as ce,_ as ue}from"./index-Dxvz9lb1.js";import ve from"./PatientInfoCard--7DLvgKR.js";import me from"./PatientCaseCard-BLq-W0if.js";import pe from"./DailyMatrix-BSZy3g0c.js";import ge from"./CallRecordPanel-DFudUjln.js";import _e from"./ImChatRecordPanel-CafeXQX5.js";import ye from"./AssignLogPanel-0TFZiCkF.js";import fe from"./AppointmentRecordPanel-C2wB-h-D.js";import be from"./PatientOrderList-BP2alDvZ.js";import ke from"./NoteTimeline-DDh0aI3_.js";import"./blood-thresholds-QpDuElbH.js";import"./diabetes-discovery-display-B_wmGXQJ.js";import"./picker-BDO86vcM.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";import"./DiagnosisTodoList-CE1isNg2.js";import"./RecordingPlaybackBlock-GbWd6PMw.js";import"./RecordingVideoPlayer-grUPRDCj.js";import"./dayjs-B2bPhvDy.js";import"./im-business-message-parse-DdA9BRrQ.js";import"./doctor-8vo_5fa4.js";import"./PrescriptionOrderDetailDrawer-v90LlSLZ.js";import"./prescription-order-utils-CXfs2Bra.js";const he={class:"readonly-page"},Ne={class:"readonly-hero"},Ce={class:"hero-left"},xe={key:0,class:"hero-right"},De={class:"patient-name"},Be={class:"patient-meta"},Pe={key:1,class:"unserved-badge unserved-muted"},we={key:0,class:"card tracking-card"},Re={class:"card-body"},Te={class:"card note-card"},Ie={class:"card-body card-body--matrix-align"},Le={key:1,class:"card section-card"},Ee={class:"card-body card-body--matrix-align"},Ae={key:2,class:"card section-card"},Me={class:"card-body card-body--matrix-align"},Ve={key:3,class:"card section-card"},ze={class:"card-body card-body--matrix-align"},Fe={key:4,class:"card section-card"},Oe={class:"card-body card-body--matrix-align"},qe={key:5,class:"card section-card"},Se={class:"card-body card-body--matrix-align"},We=$({__name:"readonly",setup(je){const F=H(),C=J(),x=n(()=>Number(F.query.id||0)),y=h(!1),f=h(""),d=h(null),p=h([]),D=n(()=>{var t;return((t=d.value)==null?void 0:t.appointment)||{}}),r=n(()=>{var t;return((t=d.value)==null?void 0:t.diagnosis)||{}}),O=n(()=>m(["tcm.diagnosis/dailyRecord"])),o=n(()=>{var t;return Number(((t=r.value)==null?void 0:t.id)??x.value??0)}),B=n(()=>{var t;return Number(((t=r.value)==null?void 0:t.patient_id)??0)}),P=n(()=>{var e;const t=(e=d.value)==null?void 0:e.unserved_days;return t==null?null:Number(t)}),w=n(()=>{var t;return((t=d.value)==null?void 0:t.last_blood_record_at)||""}),N=n(()=>{var t,e,b;return ce(((t=d.value)==null?void 0:t.revisit_due)??((b=(e=d.value)==null?void 0:e.diagnosis)==null?void 0:b.revisit_due))}),R=n(()=>de(N.value)),q=n(()=>{const t=N.value;return t?re(t.state):"unserved-muted"}),T=n(()=>le(N.value).join(";")),S=t=>{if(t==null)return"unserved-muted";const e=Number(t);return Number.isFinite(e)?e>=7?"unserved-red":e>=3?"unserved-orange":"unserved-green":"unserved-muted"},W=async()=>{const t=o.value;if(t)try{const e=await oe({diagnosis_id:t})||[];p.value=e}catch{}},j=async()=>{const t=x.value;if(!t||t<=0){f.value="诊单 id 缺失",d.value=null,p.value=[];return}y.value=!0,f.value="";try{const e=await ie({id:t});d.value=e||null,p.value=Array.isArray(e==null?void 0:e.doctor_notes)?e.doctor_notes:[],await W()}catch(e){f.value=(e==null?void 0:e.message)||"",d.value=null,p.value=[]}finally{y.value=!1}},G=()=>{window.history.length>1?C.back():C.push({path:"/tcm/diagnosis"})};return U(j),(t,e)=>{var L,E,A;const b=Z,K=te,I=ae,u=se,Q=Y;return X((a(),l("div",he,[s("div",Ne,[s("div",Ce,[g(K,{link:"",size:"default",onClick:G,class:"back-btn"},{default:k(()=>[g(b,null,{default:k(()=>[g(v(ee))]),_:1}),e[0]||(e[0]=s("span",null,"返回",-1))]),_:1}),e[1]||(e[1]=s("span",{class:"title"},"患者信息详情",-1))]),(L=r.value)!=null&&L.patient_name?(a(),l("div",xe,[s("span",De,_(r.value.patient_name),1),s("span",Be,[M(_(v(ne)(r.value.gender))+" ",1),r.value.age!=null?(a(),l(V,{key:0},[M(" · "+_(r.value.age)+"岁",1)],64)):c("",!0)]),w.value?(a(),i(I,{key:0,content:`最近一次健康打卡:${w.value}`,placement:"bottom"},{default:k(()=>[s("span",{class:z(["unserved-badge",S(P.value)])}," 未服务 "+_(P.value??"—")+" 天 ",3)]),_:1},8,["content"])):(a(),l("span",Pe,"从未打卡")),R.value?(a(),i(I,{key:2,placement:"bottom",disabled:!T.value,content:T.value},{default:k(()=>[s("span",{class:z(["unserved-badge","revisit-badge",q.value])},_(R.value),3)]),_:1},8,["disabled","content"])):c("",!0)])):c("",!0)]),!y.value&&!d.value?(a(),i(u,{key:0,description:f.value||"诊单不存在或无权访问",class:"empty-state"},null,8,["description"])):d.value?(a(),l(V,{key:1},[g(ve,{apt:D.value,diag:r.value},null,8,["apt","diag"]),g(me,{apt:D.value,diag:r.value},null,8,["apt","diag"]),O.value?(a(),l("div",we,[e[2]||(e[2]=s("div",{class:"card-title"},"日常记录",-1)),s("div",Re,[g(pe,{"diagnosis-id":o.value,"patient-id":B.value,age:((E=r.value)==null?void 0:E.age)??null,"patient-name":((A=r.value)==null?void 0:A.patient_name)||"","read-only":!0},null,8,["diagnosis-id","patient-id","age","patient-name"])])])):c("",!0),s("div",Te,[e[3]||(e[3]=s("div",{class:"card-title"},"医生备注 & 舌苔照片 & 检查报告",-1)),s("div",Ie,[o.value<=0?(a(),i(u,{key:0,description:"诊单数据不完整"})):p.value.length?(a(),i(ke,{key:2,notes:p.value,"diagnosis-id":o.value,readonly:!0},null,8,["notes","diagnosis-id"])):(a(),i(u,{key:1,description:"暂无医生备注"}))])]),v(m)(["tcm.diagnosis/patientOrders"])?(a(),l("div",Le,[e[4]||(e[4]=s("div",{class:"card-title"},"业务订单",-1)),s("div",Ee,[o.value>0?(a(),i(be,{key:0,"diagnosis-id":o.value,"patient-id":B.value||0},null,8,["diagnosis-id","patient-id"])):(a(),i(u,{key:1,description:"诊单数据不完整"}))])])):c("",!0),v(m)(["tcm.diagnosis/huifang"])?(a(),l("div",Ae,[e[5]||(e[5]=s("div",{class:"card-title"},"视频录制回放记录",-1)),s("div",Me,[o.value>0?(a(),i(ge,{key:0,"diagnosis-id":o.value,"read-only":!0},null,8,["diagnosis-id"])):(a(),i(u,{key:1,description:"诊单数据不完整"}))])])):c("",!0),v(m)(["tcm.diagnosis/chat"])?(a(),l("div",Ve,[e[6]||(e[6]=s("div",{class:"card-title"},"聊天记录",-1)),s("div",ze,[o.value>0?(a(),i(_e,{key:0,"diagnosis-id":o.value},null,8,["diagnosis-id"])):(a(),i(u,{key:1,description:"诊单数据不完整"}))])])):c("",!0),v(m)(["tcm.diagnosis/assign"])||v(m)(["tcm.diagnosis/detail"])?(a(),l("div",Fe,[e[7]||(e[7]=s("div",{class:"card-title"},"指派医助记录",-1)),s("div",Oe,[o.value>0?(a(),i(ye,{key:0,"diagnosis-id":o.value},null,8,["diagnosis-id"])):(a(),i(u,{key:1,description:"诊单数据不完整"}))])])):c("",!0),v(m)(["doctor.appointment/lists"])?(a(),l("div",qe,[e[8]||(e[8]=s("div",{class:"card-title"},"挂号记录",-1)),s("div",Se,[o.value>0?(a(),i(fe,{key:0,"diagnosis-id":o.value},null,8,["diagnosis-id"])):(a(),i(u,{key:1,description:"诊单数据不完整"}))])])):c("",!0)],64)):c("",!0)])),[[Q,y.value]])}}}),xt=ue(We,[["__scopeId","data-v-b15c6d0d"]]);export{xt as default}; +import{o as $,Q as H,W as J,ap as U,ac as X,bn as Y,q as a,r as l,s,v as g,D as k,w as Z,u as v,cv as ee,K as te,T as _,L as M,F as V,P as c,O as i,ae as z,M as h,p as n,a1 as ae,bC as se}from"./.pnpm-CyuAWpdG.js";import{ay as ie}from"./tcm-BSADvQNg.js";import{g as oe}from"./patient-B_ifBl-W.js";import{f as ne}from"./diag-display-DCz_VAqj.js";import{h as m}from"./perm-CHCBwnFR.js";import{a8 as de,a9 as re,a1 as le,W as ce,_ as ue}from"./index-Bkarz3gO.js";import ve from"./PatientInfoCard-Bzk8NUOz.js";import me from"./PatientCaseCard-NvDeQCIb.js";import pe from"./DailyMatrix-BkYJBu_D.js";import ge from"./CallRecordPanel-PGnYdg0x.js";import _e from"./ImChatRecordPanel-CO99W60y.js";import ye from"./AssignLogPanel-mqnmyStx.js";import fe from"./AppointmentRecordPanel-aR2VA9u1.js";import be from"./PatientOrderList-Dk7f29yf.js";import ke from"./NoteTimeline-D83GYvN5.js";import"./blood-thresholds-QpDuElbH.js";import"./diabetes-discovery-display-B_wmGXQJ.js";import"./picker-BTh9eW9u.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";import"./DiagnosisTodoList-VonOdKxB.js";import"./RecordingPlaybackBlock-DDHsYga7.js";import"./RecordingVideoPlayer-B0kkGDId.js";import"./dayjs-B2bPhvDy.js";import"./im-business-message-parse-DdA9BRrQ.js";import"./doctor-DBvYeWd3.js";import"./PrescriptionOrderDetailDrawer-CX7YbddA.js";import"./prescription-order-utils-CXfs2Bra.js";const he={class:"readonly-page"},Ne={class:"readonly-hero"},Ce={class:"hero-left"},xe={key:0,class:"hero-right"},De={class:"patient-name"},Be={class:"patient-meta"},Pe={key:1,class:"unserved-badge unserved-muted"},we={key:0,class:"card tracking-card"},Re={class:"card-body"},Te={class:"card note-card"},Ie={class:"card-body card-body--matrix-align"},Le={key:1,class:"card section-card"},Ee={class:"card-body card-body--matrix-align"},Ae={key:2,class:"card section-card"},Me={class:"card-body card-body--matrix-align"},Ve={key:3,class:"card section-card"},ze={class:"card-body card-body--matrix-align"},Fe={key:4,class:"card section-card"},Oe={class:"card-body card-body--matrix-align"},qe={key:5,class:"card section-card"},Se={class:"card-body card-body--matrix-align"},We=$({__name:"readonly",setup(je){const F=H(),C=J(),x=n(()=>Number(F.query.id||0)),y=h(!1),f=h(""),d=h(null),p=h([]),D=n(()=>{var t;return((t=d.value)==null?void 0:t.appointment)||{}}),r=n(()=>{var t;return((t=d.value)==null?void 0:t.diagnosis)||{}}),O=n(()=>m(["tcm.diagnosis/dailyRecord"])),o=n(()=>{var t;return Number(((t=r.value)==null?void 0:t.id)??x.value??0)}),B=n(()=>{var t;return Number(((t=r.value)==null?void 0:t.patient_id)??0)}),P=n(()=>{var e;const t=(e=d.value)==null?void 0:e.unserved_days;return t==null?null:Number(t)}),w=n(()=>{var t;return((t=d.value)==null?void 0:t.last_blood_record_at)||""}),N=n(()=>{var t,e,b;return ce(((t=d.value)==null?void 0:t.revisit_due)??((b=(e=d.value)==null?void 0:e.diagnosis)==null?void 0:b.revisit_due))}),R=n(()=>de(N.value)),q=n(()=>{const t=N.value;return t?re(t.state):"unserved-muted"}),T=n(()=>le(N.value).join(";")),S=t=>{if(t==null)return"unserved-muted";const e=Number(t);return Number.isFinite(e)?e>=7?"unserved-red":e>=3?"unserved-orange":"unserved-green":"unserved-muted"},W=async()=>{const t=o.value;if(t)try{const e=await oe({diagnosis_id:t})||[];p.value=e}catch{}},j=async()=>{const t=x.value;if(!t||t<=0){f.value="诊单 id 缺失",d.value=null,p.value=[];return}y.value=!0,f.value="";try{const e=await ie({id:t});d.value=e||null,p.value=Array.isArray(e==null?void 0:e.doctor_notes)?e.doctor_notes:[],await W()}catch(e){f.value=(e==null?void 0:e.message)||"",d.value=null,p.value=[]}finally{y.value=!1}},G=()=>{window.history.length>1?C.back():C.push({path:"/tcm/diagnosis"})};return U(j),(t,e)=>{var L,E,A;const b=Z,K=te,I=ae,u=se,Q=Y;return X((a(),l("div",he,[s("div",Ne,[s("div",Ce,[g(K,{link:"",size:"default",onClick:G,class:"back-btn"},{default:k(()=>[g(b,null,{default:k(()=>[g(v(ee))]),_:1}),e[0]||(e[0]=s("span",null,"返回",-1))]),_:1}),e[1]||(e[1]=s("span",{class:"title"},"患者信息详情",-1))]),(L=r.value)!=null&&L.patient_name?(a(),l("div",xe,[s("span",De,_(r.value.patient_name),1),s("span",Be,[M(_(v(ne)(r.value.gender))+" ",1),r.value.age!=null?(a(),l(V,{key:0},[M(" · "+_(r.value.age)+"岁",1)],64)):c("",!0)]),w.value?(a(),i(I,{key:0,content:`最近一次健康打卡:${w.value}`,placement:"bottom"},{default:k(()=>[s("span",{class:z(["unserved-badge",S(P.value)])}," 未服务 "+_(P.value??"—")+" 天 ",3)]),_:1},8,["content"])):(a(),l("span",Pe,"从未打卡")),R.value?(a(),i(I,{key:2,placement:"bottom",disabled:!T.value,content:T.value},{default:k(()=>[s("span",{class:z(["unserved-badge","revisit-badge",q.value])},_(R.value),3)]),_:1},8,["disabled","content"])):c("",!0)])):c("",!0)]),!y.value&&!d.value?(a(),i(u,{key:0,description:f.value||"诊单不存在或无权访问",class:"empty-state"},null,8,["description"])):d.value?(a(),l(V,{key:1},[g(ve,{apt:D.value,diag:r.value},null,8,["apt","diag"]),g(me,{apt:D.value,diag:r.value},null,8,["apt","diag"]),O.value?(a(),l("div",we,[e[2]||(e[2]=s("div",{class:"card-title"},"日常记录",-1)),s("div",Re,[g(pe,{"diagnosis-id":o.value,"patient-id":B.value,age:((E=r.value)==null?void 0:E.age)??null,"patient-name":((A=r.value)==null?void 0:A.patient_name)||"","read-only":!0},null,8,["diagnosis-id","patient-id","age","patient-name"])])])):c("",!0),s("div",Te,[e[3]||(e[3]=s("div",{class:"card-title"},"医生备注 & 舌苔照片 & 检查报告",-1)),s("div",Ie,[o.value<=0?(a(),i(u,{key:0,description:"诊单数据不完整"})):p.value.length?(a(),i(ke,{key:2,notes:p.value,"diagnosis-id":o.value,readonly:!0},null,8,["notes","diagnosis-id"])):(a(),i(u,{key:1,description:"暂无医生备注"}))])]),v(m)(["tcm.diagnosis/patientOrders"])?(a(),l("div",Le,[e[4]||(e[4]=s("div",{class:"card-title"},"业务订单",-1)),s("div",Ee,[o.value>0?(a(),i(be,{key:0,"diagnosis-id":o.value,"patient-id":B.value||0},null,8,["diagnosis-id","patient-id"])):(a(),i(u,{key:1,description:"诊单数据不完整"}))])])):c("",!0),v(m)(["tcm.diagnosis/huifang"])?(a(),l("div",Ae,[e[5]||(e[5]=s("div",{class:"card-title"},"视频录制回放记录",-1)),s("div",Me,[o.value>0?(a(),i(ge,{key:0,"diagnosis-id":o.value,"read-only":!0},null,8,["diagnosis-id"])):(a(),i(u,{key:1,description:"诊单数据不完整"}))])])):c("",!0),v(m)(["tcm.diagnosis/chat"])?(a(),l("div",Ve,[e[6]||(e[6]=s("div",{class:"card-title"},"聊天记录",-1)),s("div",ze,[o.value>0?(a(),i(_e,{key:0,"diagnosis-id":o.value},null,8,["diagnosis-id"])):(a(),i(u,{key:1,description:"诊单数据不完整"}))])])):c("",!0),v(m)(["tcm.diagnosis/assign"])||v(m)(["tcm.diagnosis/detail"])?(a(),l("div",Fe,[e[7]||(e[7]=s("div",{class:"card-title"},"指派医助记录",-1)),s("div",Oe,[o.value>0?(a(),i(ye,{key:0,"diagnosis-id":o.value},null,8,["diagnosis-id"])):(a(),i(u,{key:1,description:"诊单数据不完整"}))])])):c("",!0),v(m)(["doctor.appointment/lists"])?(a(),l("div",qe,[e[8]||(e[8]=s("div",{class:"card-title"},"挂号记录",-1)),s("div",Se,[o.value>0?(a(),i(fe,{key:0,"diagnosis-id":o.value},null,8,["diagnosis-id"])):(a(),i(u,{key:1,description:"诊单数据不完整"}))])])):c("",!0)],64)):c("",!0)])),[[Q,y.value]])}}}),xt=ue(We,[["__scopeId","data-v-b15c6d0d"]]);export{xt as default}; diff --git a/server/public/admin/assets/recharge_record-CeaGnc9A.js b/server/public/admin/assets/recharge_record-ByHIdiux.js similarity index 92% rename from server/public/admin/assets/recharge_record-CeaGnc9A.js rename to server/public/admin/assets/recharge_record-ByHIdiux.js index a595eaaf5..45b1c8cbc 100644 --- a/server/public/admin/assets/recharge_record-CeaGnc9A.js +++ b/server/public/admin/assets/recharge_record-ByHIdiux.js @@ -1 +1 @@ -import{o as C,bp as R,q as c,r as $,v as e,D as n,bo as F,bd as q,u as a,bb as A,aA as I,bc as v,bh as O,bi as S,K as G,L as d,bj as H,ac as V,O as x,bk as J,bl as M,s as f,T as h,ae as Q,P as W,bn as X,C as Y,aC as Z}from"./.pnpm-CyuAWpdG.js";import{_ as ee}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{h as ae,j as te}from"./index-Dxvz9lb1.js";import{_ as le}from"./index.vue_vue_type_script_setup_true_lang-98A4_fZW.js";import{_ as ne}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{j as k,k as oe}from"./finance-D9pJwZQS.js";import{u as se}from"./usePaging-CghUEVfD.js";import"./index-BnfLT5cB.js";const re={class:"flex items-center"},ie={class:"flex justify-end mt-4"},me=C({name:"rechargeRecord"}),ve=C({...me,setup(de){const o=Z({sn:"",user_info:"",pay_way:"",pay_status:"",start_time:"",end_time:""}),{pager:r,getLists:_,resetPage:p,resetParams:E}=se({fetchFun:k,params:o}),T=async b=>{await te.confirm("确认退款?"),await oe({recharge_id:b}),_()};return _(),(b,l)=>{const U=F,y=I,i=A,m=S,g=O,K=ne,u=G,z=le,B=q,w=H,P=ae,s=M,j=J,D=ee,L=R("perms"),N=X;return c(),$("div",null,[e(w,{class:"!border-none",shadow:"never"},{default:n(()=>[e(U,{type:"warning",title:"温馨提示:用户充值记录",closable:!1,"show-icon":""}),e(B,{ref:"formRef",class:"mb-[-16px] mt-[16px]",model:a(o),inline:!0},{default:n(()=>[e(i,{class:"w-[280px]",label:"充值单号"},{default:n(()=>[e(y,{modelValue:a(o).sn,"onUpdate:modelValue":l[0]||(l[0]=t=>a(o).sn=t),placeholder:"请输入充值单号",clearable:"",onKeyup:v(a(p),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(i,{class:"w-[280px]",label:"用户信息"},{default:n(()=>[e(y,{modelValue:a(o).user_info,"onUpdate:modelValue":l[1]||(l[1]=t=>a(o).user_info=t),placeholder:"请输入用户账号/昵称/手机号",clearable:"",onKeyup:v(a(p),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(i,{class:"w-[280px]",label:"支付方式"},{default:n(()=>[e(g,{modelValue:a(o).pay_way,"onUpdate:modelValue":l[2]||(l[2]=t=>a(o).pay_way=t)},{default:n(()=>[e(m,{label:"全部",value:""}),e(m,{label:"微信支付",value:2})]),_:1},8,["modelValue"])]),_:1}),e(i,{class:"w-[280px]",label:"支付状态"},{default:n(()=>[e(g,{modelValue:a(o).pay_status,"onUpdate:modelValue":l[3]||(l[3]=t=>a(o).pay_status=t)},{default:n(()=>[e(m,{label:"全部",value:""}),e(m,{label:"未支付",value:0}),e(m,{label:"已支付",value:1})]),_:1},8,["modelValue"])]),_:1}),e(i,{label:"下单时间"},{default:n(()=>[e(K,{startTime:a(o).start_time,"onUpdate:startTime":l[4]||(l[4]=t=>a(o).start_time=t),endTime:a(o).end_time,"onUpdate:endTime":l[5]||(l[5]=t=>a(o).end_time=t)},null,8,["startTime","endTime"])]),_:1}),e(i,null,{default:n(()=>[e(u,{type:"primary",onClick:a(p)},{default:n(()=>[...l[7]||(l[7]=[d("查询",-1)])]),_:1},8,["onClick"]),e(u,{onClick:a(E)},{default:n(()=>[...l[8]||(l[8]=[d("重置",-1)])]),_:1},8,["onClick"]),e(z,{class:"ml-2.5","fetch-fun":a(k),params:a(o),"page-size":a(r).size},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1},8,["model"])]),_:1}),e(w,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[V((c(),x(j,{size:"large",data:a(r).lists},{default:n(()=>[e(s,{label:"用户信息","min-width":"160"},{default:n(({row:t})=>[f("div",re,[e(P,{class:"flex-none mr-2",src:t.avatar,width:40,height:40,"preview-teleported":"",fit:"contain"},null,8,["src"]),d(" "+h(t.nickname),1)])]),_:1}),e(s,{label:"充值单号",prop:"sn","min-width":"190"}),e(s,{label:"充值金额",prop:"order_amount","min-width":"100"}),e(s,{label:"支付方式",prop:"pay_way_text","min-width":"100"}),e(s,{label:"支付状态",prop:"","min-width":"100"},{default:n(({row:t})=>[f("span",{class:Q({"text-error":t.pay_status==0})},h(t.pay_status_text),3)]),_:1}),e(s,{label:"提交时间",prop:"create_time","min-width":"180"}),e(s,{label:"支付时间",prop:"pay_time","min-width":"180"}),e(s,{label:"操作",width:"120",fixed:"right"},{default:n(({row:t})=>[t.pay_status==1?V((c(),x(u,{key:0,type:"primary",link:"",disabled:t.refund_status==1,onClick:_e=>T(t.id)},{default:n(()=>[...l[9]||(l[9]=[d(" 退款 ",-1)])]),_:1},8,["disabled","onClick"])),[[L,["recharge.recharge/refund"]]]):W("",!0)]),_:1})]),_:1},8,["data"])),[[N,a(r).loading]]),f("div",ie,[e(D,{modelValue:a(r),"onUpdate:modelValue":l[6]||(l[6]=t=>Y(r)?r.value=t:null),onChange:a(_)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{ve as default}; +import{o as C,bp as R,q as c,r as $,v as e,D as n,bo as F,bd as q,u as a,bb as A,aA as I,bc as v,bh as O,bi as S,K as G,L as d,bj as H,ac as V,O as x,bk as J,bl as M,s as f,T as h,ae as Q,P as W,bn as X,C as Y,aC as Z}from"./.pnpm-CyuAWpdG.js";import{_ as ee}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{h as ae,j as te}from"./index-Bkarz3gO.js";import{_ as le}from"./index.vue_vue_type_script_setup_true_lang-CQzUr1BT.js";import{_ as ne}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{j as k,k as oe}from"./finance-C684dcZP.js";import{u as se}from"./usePaging-CghUEVfD.js";import"./index-CS5Wg0xx.js";const re={class:"flex items-center"},ie={class:"flex justify-end mt-4"},me=C({name:"rechargeRecord"}),ve=C({...me,setup(de){const o=Z({sn:"",user_info:"",pay_way:"",pay_status:"",start_time:"",end_time:""}),{pager:r,getLists:_,resetPage:p,resetParams:E}=se({fetchFun:k,params:o}),T=async b=>{await te.confirm("确认退款?"),await oe({recharge_id:b}),_()};return _(),(b,l)=>{const U=F,y=I,i=A,m=S,g=O,K=ne,u=G,z=le,B=q,w=H,P=ae,s=M,j=J,D=ee,L=R("perms"),N=X;return c(),$("div",null,[e(w,{class:"!border-none",shadow:"never"},{default:n(()=>[e(U,{type:"warning",title:"温馨提示:用户充值记录",closable:!1,"show-icon":""}),e(B,{ref:"formRef",class:"mb-[-16px] mt-[16px]",model:a(o),inline:!0},{default:n(()=>[e(i,{class:"w-[280px]",label:"充值单号"},{default:n(()=>[e(y,{modelValue:a(o).sn,"onUpdate:modelValue":l[0]||(l[0]=t=>a(o).sn=t),placeholder:"请输入充值单号",clearable:"",onKeyup:v(a(p),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(i,{class:"w-[280px]",label:"用户信息"},{default:n(()=>[e(y,{modelValue:a(o).user_info,"onUpdate:modelValue":l[1]||(l[1]=t=>a(o).user_info=t),placeholder:"请输入用户账号/昵称/手机号",clearable:"",onKeyup:v(a(p),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(i,{class:"w-[280px]",label:"支付方式"},{default:n(()=>[e(g,{modelValue:a(o).pay_way,"onUpdate:modelValue":l[2]||(l[2]=t=>a(o).pay_way=t)},{default:n(()=>[e(m,{label:"全部",value:""}),e(m,{label:"微信支付",value:2})]),_:1},8,["modelValue"])]),_:1}),e(i,{class:"w-[280px]",label:"支付状态"},{default:n(()=>[e(g,{modelValue:a(o).pay_status,"onUpdate:modelValue":l[3]||(l[3]=t=>a(o).pay_status=t)},{default:n(()=>[e(m,{label:"全部",value:""}),e(m,{label:"未支付",value:0}),e(m,{label:"已支付",value:1})]),_:1},8,["modelValue"])]),_:1}),e(i,{label:"下单时间"},{default:n(()=>[e(K,{startTime:a(o).start_time,"onUpdate:startTime":l[4]||(l[4]=t=>a(o).start_time=t),endTime:a(o).end_time,"onUpdate:endTime":l[5]||(l[5]=t=>a(o).end_time=t)},null,8,["startTime","endTime"])]),_:1}),e(i,null,{default:n(()=>[e(u,{type:"primary",onClick:a(p)},{default:n(()=>[...l[7]||(l[7]=[d("查询",-1)])]),_:1},8,["onClick"]),e(u,{onClick:a(E)},{default:n(()=>[...l[8]||(l[8]=[d("重置",-1)])]),_:1},8,["onClick"]),e(z,{class:"ml-2.5","fetch-fun":a(k),params:a(o),"page-size":a(r).size},null,8,["fetch-fun","params","page-size"])]),_:1})]),_:1},8,["model"])]),_:1}),e(w,{class:"!border-none mt-4",shadow:"never"},{default:n(()=>[V((c(),x(j,{size:"large",data:a(r).lists},{default:n(()=>[e(s,{label:"用户信息","min-width":"160"},{default:n(({row:t})=>[f("div",re,[e(P,{class:"flex-none mr-2",src:t.avatar,width:40,height:40,"preview-teleported":"",fit:"contain"},null,8,["src"]),d(" "+h(t.nickname),1)])]),_:1}),e(s,{label:"充值单号",prop:"sn","min-width":"190"}),e(s,{label:"充值金额",prop:"order_amount","min-width":"100"}),e(s,{label:"支付方式",prop:"pay_way_text","min-width":"100"}),e(s,{label:"支付状态",prop:"","min-width":"100"},{default:n(({row:t})=>[f("span",{class:Q({"text-error":t.pay_status==0})},h(t.pay_status_text),3)]),_:1}),e(s,{label:"提交时间",prop:"create_time","min-width":"180"}),e(s,{label:"支付时间",prop:"pay_time","min-width":"180"}),e(s,{label:"操作",width:"120",fixed:"right"},{default:n(({row:t})=>[t.pay_status==1?V((c(),x(u,{key:0,type:"primary",link:"",disabled:t.refund_status==1,onClick:_e=>T(t.id)},{default:n(()=>[...l[9]||(l[9]=[d(" 退款 ",-1)])]),_:1},8,["disabled","onClick"])),[[L,["recharge.recharge/refund"]]]):W("",!0)]),_:1})]),_:1},8,["data"])),[[N,a(r).loading]]),f("div",ie,[e(D,{modelValue:a(r),"onUpdate:modelValue":l[6]||(l[6]=t=>Y(r)?r.value=t:null),onChange:a(_)},null,8,["modelValue","onChange"])])]),_:1})])}}});export{ve as default}; diff --git a/server/public/admin/assets/refund-log-Bk_wWwru.js b/server/public/admin/assets/refund-log-Bk_wWwru.js new file mode 100644 index 000000000..5afcd1e21 --- /dev/null +++ b/server/public/admin/assets/refund-log-Bk_wWwru.js @@ -0,0 +1 @@ +import{_ as o}from"./refund-log.vue_vue_type_script_setup_true_lang-D4IxYmay.js";import"./.pnpm-CyuAWpdG.js";import"./finance-C684dcZP.js";import"./index-Bkarz3gO.js";export{o as default}; diff --git a/server/public/admin/assets/refund-log-DhQiU08s.js b/server/public/admin/assets/refund-log-DhQiU08s.js deleted file mode 100644 index 2910d26b1..000000000 --- a/server/public/admin/assets/refund-log-DhQiU08s.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./refund-log.vue_vue_type_script_setup_true_lang-B1HyKUNn.js";import"./.pnpm-CyuAWpdG.js";import"./finance-D9pJwZQS.js";import"./index-Dxvz9lb1.js";export{o as default}; diff --git a/server/public/admin/assets/refund-log.vue_vue_type_script_setup_true_lang-B1HyKUNn.js b/server/public/admin/assets/refund-log.vue_vue_type_script_setup_true_lang-D4IxYmay.js similarity index 96% rename from server/public/admin/assets/refund-log.vue_vue_type_script_setup_true_lang-B1HyKUNn.js rename to server/public/admin/assets/refund-log.vue_vue_type_script_setup_true_lang-D4IxYmay.js index d3b60423c..902f98823 100644 --- a/server/public/admin/assets/refund-log.vue_vue_type_script_setup_true_lang-B1HyKUNn.js +++ b/server/public/admin/assets/refund-log.vue_vue_type_script_setup_true_lang-D4IxYmay.js @@ -1 +1 @@ -import{o as B,R as C,q as s,r as E,v as l,aB as L,C as T,u as m,D as a,ac as D,O as d,bk as N,bl as R,L as u,T as r,bm as I,P as p,bn as q,M as h,p as z}from"./.pnpm-CyuAWpdG.js";import{r as M}from"./finance-D9pJwZQS.js";const O={class:"code-preview"},U=B({__name:"refund-log",props:{modelValue:{type:Boolean},refundId:{}},emits:["update:modelValue"],setup(b,{emit:v}){const i=h(!1),_=h([]),f=b,V=v,n=z({get(){return f.modelValue},set(t){V("update:modelValue",t)}}),y=async()=>{i.value=!0,_.value=[];try{const t=await M({record_id:f.refundId});_.value=t}catch(t){console.log(t)}i.value=!1};return C(n,t=>{t&&y()}),(t,g)=>{const o=R,c=I,w=N,x=L,k=q;return s(),E("div",O,[l(x,{modelValue:m(n),"onUpdate:modelValue":g[0]||(g[0]=e=>T(n)?n.value=e:null),width:"760px",title:"退款日志"},{default:a(()=>[D((s(),d(w,{size:"large",data:m(_),height:"500"},{default:a(()=>[l(o,{label:"流水单号",prop:"sn","min-width":"190"}),l(o,{label:"退款金额","min-width":"110"},{default:a(({row:e})=>[u(" ¥"+r(e.refund_amount),1)]),_:1}),l(o,{label:"退款状态",prop:"","min-width":"100"},{default:a(({row:e})=>[e.refund_status==0?(s(),d(c,{key:0,type:"warning"},{default:a(()=>[u(r(e.refund_status_text),1)]),_:2},1024)):p("",!0),e.refund_status==1?(s(),d(c,{key:1},{default:a(()=>[u(r(e.refund_status_text),1)]),_:2},1024)):p("",!0),e.refund_status==2?(s(),d(c,{key:2,type:"danger"},{default:a(()=>[u(r(e.refund_status_text),1)]),_:2},1024)):p("",!0)]),_:1}),l(o,{label:"记录时间",prop:"create_time","min-width":"180"}),l(o,{label:"操作人",prop:"handler","min-width":"120"})]),_:1},8,["data"])),[[k,m(i)]])]),_:1},8,["modelValue"])])}}});export{U as _}; +import{o as B,R as C,q as s,r as E,v as l,aB as L,C as T,u as m,D as a,ac as D,O as d,bk as N,bl as R,L as u,T as r,bm as I,P as p,bn as q,M as h,p as z}from"./.pnpm-CyuAWpdG.js";import{r as M}from"./finance-C684dcZP.js";const O={class:"code-preview"},U=B({__name:"refund-log",props:{modelValue:{type:Boolean},refundId:{}},emits:["update:modelValue"],setup(b,{emit:v}){const i=h(!1),_=h([]),f=b,V=v,n=z({get(){return f.modelValue},set(t){V("update:modelValue",t)}}),y=async()=>{i.value=!0,_.value=[];try{const t=await M({record_id:f.refundId});_.value=t}catch(t){console.log(t)}i.value=!1};return C(n,t=>{t&&y()}),(t,g)=>{const o=R,c=I,w=N,x=L,k=q;return s(),E("div",O,[l(x,{modelValue:m(n),"onUpdate:modelValue":g[0]||(g[0]=e=>T(n)?n.value=e:null),width:"760px",title:"退款日志"},{default:a(()=>[D((s(),d(w,{size:"large",data:m(_),height:"500"},{default:a(()=>[l(o,{label:"流水单号",prop:"sn","min-width":"190"}),l(o,{label:"退款金额","min-width":"110"},{default:a(({row:e})=>[u(" ¥"+r(e.refund_amount),1)]),_:1}),l(o,{label:"退款状态",prop:"","min-width":"100"},{default:a(({row:e})=>[e.refund_status==0?(s(),d(c,{key:0,type:"warning"},{default:a(()=>[u(r(e.refund_status_text),1)]),_:2},1024)):p("",!0),e.refund_status==1?(s(),d(c,{key:1},{default:a(()=>[u(r(e.refund_status_text),1)]),_:2},1024)):p("",!0),e.refund_status==2?(s(),d(c,{key:2,type:"danger"},{default:a(()=>[u(r(e.refund_status_text),1)]),_:2},1024)):p("",!0)]),_:1}),l(o,{label:"记录时间",prop:"create_time","min-width":"180"}),l(o,{label:"操作人",prop:"handler","min-width":"120"})]),_:1},8,["data"])),[[k,m(i)]])]),_:1},8,["modelValue"])])}}});export{U as _}; diff --git a/server/public/admin/assets/refund_record-BcnFRQEG.js b/server/public/admin/assets/refund_record-CpIyohog.js similarity index 96% rename from server/public/admin/assets/refund_record-BcnFRQEG.js rename to server/public/admin/assets/refund_record-CpIyohog.js index 1c36cf19b..f22c8f63d 100644 --- a/server/public/admin/assets/refund_record-BcnFRQEG.js +++ b/server/public/admin/assets/refund_record-CpIyohog.js @@ -1 +1 @@ -import{o as j,bp as Z,q as r,r as F,v as t,D as a,s as d,T as i,u as n,bj as ee,bd as te,bb as ne,aA as ae,bc as E,bh as le,bi as se,K as oe,L as u,Y as de,C as K,F as re,G as ie,O as p,X as ue,ac as R,bk as me,bl as _e,bm as pe,P as x,bn as fe,aC as S,M as w}from"./.pnpm-CyuAWpdG.js";import{_ as ce}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{h as be,j as ge}from"./index-Dxvz9lb1.js";import{_ as ve}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{l as ye,m as xe,n as we}from"./finance-D9pJwZQS.js";import{u as Ve}from"./usePaging-CghUEVfD.js";import{_ as ke}from"./refund-log.vue_vue_type_script_setup_true_lang-B1HyKUNn.js";const Ce={class:"flex flex-wrap"},Te={class:"w-1/2 md:w-1/4"},he={class:"text-6xl"},Ee={class:"w-1/2 md:w-1/4"},Ke={class:"text-6xl"},Re={class:"w-1/2 md:w-1/4"},Ue={class:"text-6xl"},Le={class:"w-1/2 md:w-1/4"},$e={class:"text-6xl"},Pe={class:"flex items-center"},Be={class:"flex justify-end mt-4"},De=j({name:"refundRecord"}),ze=j({...De,setup(Fe){const s=S({sn:"",order_sn:"",user_info:"",refund_type:"",start_time:"",end_time:"",refund_status:""}),b=S({total:0,ing:0,success:0,error:0}),v=w(!1),U=w(0),V=w(0),L=w([{name:"全部",type:"",numKey:"total"},{name:"退款中",type:0,numKey:"ing"},{name:"退款成功",type:1,numKey:"success"},{name:"退款失败",type:2,numKey:"error"}]),{pager:f,getLists:k,resetPage:g,resetParams:N}=Ve({fetchFun:ye,params:s}),A=async m=>{await ge.confirm("确认重新退款?"),await xe({record_id:m}),k(),$()},I=async m=>{v.value=!0,U.value=m},O=m=>{s.refund_status=L.value[m].type,g()},$=async()=>{const m=await we();Object.assign(b,m)};return $(),k(),(m,e)=>{const C=ee,T=ae,c=ne,P=se,q=le,z=ve,y=oe,G=te,_=_e,M=be,h=pe,X=me,Y=ue,H=de,J=ce,B=Z("perms"),Q=fe;return r(),F("div",null,[t(C,{class:"!border-none mb-4",shadow:"never"},{default:a(()=>[d("div",Ce,[d("div",Te,[e[9]||(e[9]=d("div",{class:"leading-10"},"累计退款金额 (元)",-1)),d("div",he,i(n(b).total),1)]),d("div",Ee,[e[10]||(e[10]=d("div",{class:"leading-10"},"退款中金额 (元)",-1)),d("div",Ke,i(n(b).ing),1)]),d("div",Re,[e[11]||(e[11]=d("div",{class:"leading-10"},"退款成功金额 (元)",-1)),d("div",Ue,i(n(b).success),1)]),d("div",Le,[e[12]||(e[12]=d("div",{class:"leading-10"},"退款失败金额 (元)",-1)),d("div",$e,i(n(b).error),1)])])]),_:1}),t(C,{class:"!border-none",shadow:"never"},{default:a(()=>[t(G,{ref:"formRef",class:"mb-[-16px] mt-[16px]",model:n(s),inline:!0},{default:a(()=>[t(c,{class:"w-[280px]",label:"退款单号"},{default:a(()=>[t(T,{modelValue:n(s).sn,"onUpdate:modelValue":e[0]||(e[0]=l=>n(s).sn=l),placeholder:"请输入退款单号",clearable:"",onKeyup:E(n(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(c,{class:"w-[280px]",label:"来源单号"},{default:a(()=>[t(T,{modelValue:n(s).order_sn,"onUpdate:modelValue":e[1]||(e[1]=l=>n(s).order_sn=l),placeholder:"请输入来源单号",clearable:"",onKeyup:E(n(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(c,{class:"w-[280px]",label:"用户信息"},{default:a(()=>[t(T,{modelValue:n(s).user_info,"onUpdate:modelValue":e[2]||(e[2]=l=>n(s).user_info=l),placeholder:"请输入用户信息",clearable:"",onKeyup:E(n(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(c,{class:"w-[280px]",label:"退款类型"},{default:a(()=>[t(q,{modelValue:n(s).refund_type,"onUpdate:modelValue":e[3]||(e[3]=l=>n(s).refund_type=l)},{default:a(()=>[t(P,{label:"全部",value:""}),t(P,{label:"后台退款",value:1})]),_:1},8,["modelValue"])]),_:1}),t(c,{label:"记录时间"},{default:a(()=>[t(z,{startTime:n(s).start_time,"onUpdate:startTime":e[4]||(e[4]=l=>n(s).start_time=l),endTime:n(s).end_time,"onUpdate:endTime":e[5]||(e[5]=l=>n(s).end_time=l)},null,8,["startTime","endTime"])]),_:1}),t(c,null,{default:a(()=>[t(y,{type:"primary",onClick:n(g)},{default:a(()=>[...e[13]||(e[13]=[u("查询",-1)])]),_:1},8,["onClick"]),t(y,{onClick:n(N)},{default:a(()=>[...e[14]||(e[14]=[u("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),t(C,{class:"!border-none mt-4",shadow:"never"},{default:a(()=>[t(H,{modelValue:n(V),"onUpdate:modelValue":e[6]||(e[6]=l=>K(V)?V.value=l:null),onTabChange:O},{default:a(()=>[(r(!0),F(re,null,ie(n(L),(l,D)=>(r(),p(Y,{label:`${l.name}(${n(f).extend[l.numKey]??0})`,name:D,key:D},{default:a(()=>[R((r(),p(X,{size:"large",data:n(f).lists},{default:a(()=>[t(_,{label:"退款单号",prop:"sn","min-width":"190"}),t(_,{label:"用户信息","min-width":"160"},{default:a(({row:o})=>[d("div",Pe,[t(M,{class:"flex-none mr-2",src:o.avatar,width:40,height:40,"preview-teleported":"",fit:"contain"},null,8,["src"]),u(" "+i(o.nickname),1)])]),_:1}),t(_,{label:"来源单号",prop:"order_sn","min-width":"190"}),t(_,{label:"退款金额","min-width":"100"},{default:a(({row:o})=>[u(" ¥ "+i(o.refund_amount),1)]),_:1}),t(_,{label:"退款类型",prop:"refund_type_text","min-width":"100"}),t(_,{label:"退款状态",prop:"","min-width":"100"},{default:a(({row:o})=>[o.refund_status==0?(r(),p(h,{key:0,type:"warning"},{default:a(()=>[u(i(o.refund_status_text),1)]),_:2},1024)):x("",!0),o.refund_status==1?(r(),p(h,{key:1},{default:a(()=>[u(i(o.refund_status_text),1)]),_:2},1024)):x("",!0),o.refund_status==2?(r(),p(h,{key:2,type:"danger"},{default:a(()=>[u(i(o.refund_status_text),1)]),_:2},1024)):x("",!0)]),_:1}),t(_,{label:"记录时间",prop:"create_time","min-width":"180"}),t(_,{label:"操作",width:"180",fixed:"right"},{default:a(({row:o})=>[R((r(),p(y,{type:"primary",link:"",onClick:W=>I(o.id)},{default:a(()=>[...e[15]||(e[15]=[u(" 退款日志 ",-1)])]),_:1},8,["onClick"])),[[B,["finance.refund/log"]]]),o.refund_status==2?R((r(),p(y,{key:0,type:"primary",link:"",onClick:W=>A(o.id)},{default:a(()=>[...e[16]||(e[16]=[u(" 重新退款 ",-1)])]),_:1},8,["onClick"])),[[B,["recharge.recharge/refundAgain"]]]):x("",!0)]),_:1})]),_:1},8,["data"])),[[Q,n(f).loading]])]),_:1},8,["label","name"]))),128))]),_:1},8,["modelValue"]),d("div",Be,[t(J,{modelValue:n(f),"onUpdate:modelValue":e[7]||(e[7]=l=>K(f)?f.value=l:null),onChange:n(k)},null,8,["modelValue","onChange"])])]),_:1}),t(ke,{modelValue:n(v),"onUpdate:modelValue":e[8]||(e[8]=l=>K(v)?v.value=l:null),"refund-id":n(U)},null,8,["modelValue","refund-id"])])}}});export{ze as default}; +import{o as j,bp as Z,q as r,r as F,v as t,D as a,s as d,T as i,u as n,bj as ee,bd as te,bb as ne,aA as ae,bc as E,bh as le,bi as se,K as oe,L as u,Y as de,C as K,F as re,G as ie,O as p,X as ue,ac as R,bk as me,bl as _e,bm as pe,P as x,bn as fe,aC as S,M as w}from"./.pnpm-CyuAWpdG.js";import{_ as ce}from"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import{h as be,j as ge}from"./index-Bkarz3gO.js";import{_ as ve}from"./index.vue_vue_type_script_setup_true_lang-DO2j0LDx.js";import{l as ye,m as xe,n as we}from"./finance-C684dcZP.js";import{u as Ve}from"./usePaging-CghUEVfD.js";import{_ as ke}from"./refund-log.vue_vue_type_script_setup_true_lang-D4IxYmay.js";const Ce={class:"flex flex-wrap"},Te={class:"w-1/2 md:w-1/4"},he={class:"text-6xl"},Ee={class:"w-1/2 md:w-1/4"},Ke={class:"text-6xl"},Re={class:"w-1/2 md:w-1/4"},Ue={class:"text-6xl"},Le={class:"w-1/2 md:w-1/4"},$e={class:"text-6xl"},Pe={class:"flex items-center"},Be={class:"flex justify-end mt-4"},De=j({name:"refundRecord"}),ze=j({...De,setup(Fe){const s=S({sn:"",order_sn:"",user_info:"",refund_type:"",start_time:"",end_time:"",refund_status:""}),b=S({total:0,ing:0,success:0,error:0}),v=w(!1),U=w(0),V=w(0),L=w([{name:"全部",type:"",numKey:"total"},{name:"退款中",type:0,numKey:"ing"},{name:"退款成功",type:1,numKey:"success"},{name:"退款失败",type:2,numKey:"error"}]),{pager:f,getLists:k,resetPage:g,resetParams:N}=Ve({fetchFun:ye,params:s}),A=async m=>{await ge.confirm("确认重新退款?"),await xe({record_id:m}),k(),$()},I=async m=>{v.value=!0,U.value=m},O=m=>{s.refund_status=L.value[m].type,g()},$=async()=>{const m=await we();Object.assign(b,m)};return $(),k(),(m,e)=>{const C=ee,T=ae,c=ne,P=se,q=le,z=ve,y=oe,G=te,_=_e,M=be,h=pe,X=me,Y=ue,H=de,J=ce,B=Z("perms"),Q=fe;return r(),F("div",null,[t(C,{class:"!border-none mb-4",shadow:"never"},{default:a(()=>[d("div",Ce,[d("div",Te,[e[9]||(e[9]=d("div",{class:"leading-10"},"累计退款金额 (元)",-1)),d("div",he,i(n(b).total),1)]),d("div",Ee,[e[10]||(e[10]=d("div",{class:"leading-10"},"退款中金额 (元)",-1)),d("div",Ke,i(n(b).ing),1)]),d("div",Re,[e[11]||(e[11]=d("div",{class:"leading-10"},"退款成功金额 (元)",-1)),d("div",Ue,i(n(b).success),1)]),d("div",Le,[e[12]||(e[12]=d("div",{class:"leading-10"},"退款失败金额 (元)",-1)),d("div",$e,i(n(b).error),1)])])]),_:1}),t(C,{class:"!border-none",shadow:"never"},{default:a(()=>[t(G,{ref:"formRef",class:"mb-[-16px] mt-[16px]",model:n(s),inline:!0},{default:a(()=>[t(c,{class:"w-[280px]",label:"退款单号"},{default:a(()=>[t(T,{modelValue:n(s).sn,"onUpdate:modelValue":e[0]||(e[0]=l=>n(s).sn=l),placeholder:"请输入退款单号",clearable:"",onKeyup:E(n(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(c,{class:"w-[280px]",label:"来源单号"},{default:a(()=>[t(T,{modelValue:n(s).order_sn,"onUpdate:modelValue":e[1]||(e[1]=l=>n(s).order_sn=l),placeholder:"请输入来源单号",clearable:"",onKeyup:E(n(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(c,{class:"w-[280px]",label:"用户信息"},{default:a(()=>[t(T,{modelValue:n(s).user_info,"onUpdate:modelValue":e[2]||(e[2]=l=>n(s).user_info=l),placeholder:"请输入用户信息",clearable:"",onKeyup:E(n(g),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(c,{class:"w-[280px]",label:"退款类型"},{default:a(()=>[t(q,{modelValue:n(s).refund_type,"onUpdate:modelValue":e[3]||(e[3]=l=>n(s).refund_type=l)},{default:a(()=>[t(P,{label:"全部",value:""}),t(P,{label:"后台退款",value:1})]),_:1},8,["modelValue"])]),_:1}),t(c,{label:"记录时间"},{default:a(()=>[t(z,{startTime:n(s).start_time,"onUpdate:startTime":e[4]||(e[4]=l=>n(s).start_time=l),endTime:n(s).end_time,"onUpdate:endTime":e[5]||(e[5]=l=>n(s).end_time=l)},null,8,["startTime","endTime"])]),_:1}),t(c,null,{default:a(()=>[t(y,{type:"primary",onClick:n(g)},{default:a(()=>[...e[13]||(e[13]=[u("查询",-1)])]),_:1},8,["onClick"]),t(y,{onClick:n(N)},{default:a(()=>[...e[14]||(e[14]=[u("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),t(C,{class:"!border-none mt-4",shadow:"never"},{default:a(()=>[t(H,{modelValue:n(V),"onUpdate:modelValue":e[6]||(e[6]=l=>K(V)?V.value=l:null),onTabChange:O},{default:a(()=>[(r(!0),F(re,null,ie(n(L),(l,D)=>(r(),p(Y,{label:`${l.name}(${n(f).extend[l.numKey]??0})`,name:D,key:D},{default:a(()=>[R((r(),p(X,{size:"large",data:n(f).lists},{default:a(()=>[t(_,{label:"退款单号",prop:"sn","min-width":"190"}),t(_,{label:"用户信息","min-width":"160"},{default:a(({row:o})=>[d("div",Pe,[t(M,{class:"flex-none mr-2",src:o.avatar,width:40,height:40,"preview-teleported":"",fit:"contain"},null,8,["src"]),u(" "+i(o.nickname),1)])]),_:1}),t(_,{label:"来源单号",prop:"order_sn","min-width":"190"}),t(_,{label:"退款金额","min-width":"100"},{default:a(({row:o})=>[u(" ¥ "+i(o.refund_amount),1)]),_:1}),t(_,{label:"退款类型",prop:"refund_type_text","min-width":"100"}),t(_,{label:"退款状态",prop:"","min-width":"100"},{default:a(({row:o})=>[o.refund_status==0?(r(),p(h,{key:0,type:"warning"},{default:a(()=>[u(i(o.refund_status_text),1)]),_:2},1024)):x("",!0),o.refund_status==1?(r(),p(h,{key:1},{default:a(()=>[u(i(o.refund_status_text),1)]),_:2},1024)):x("",!0),o.refund_status==2?(r(),p(h,{key:2,type:"danger"},{default:a(()=>[u(i(o.refund_status_text),1)]),_:2},1024)):x("",!0)]),_:1}),t(_,{label:"记录时间",prop:"create_time","min-width":"180"}),t(_,{label:"操作",width:"180",fixed:"right"},{default:a(({row:o})=>[R((r(),p(y,{type:"primary",link:"",onClick:W=>I(o.id)},{default:a(()=>[...e[15]||(e[15]=[u(" 退款日志 ",-1)])]),_:1},8,["onClick"])),[[B,["finance.refund/log"]]]),o.refund_status==2?R((r(),p(y,{key:0,type:"primary",link:"",onClick:W=>A(o.id)},{default:a(()=>[...e[16]||(e[16]=[u(" 重新退款 ",-1)])]),_:1},8,["onClick"])),[[B,["recharge.recharge/refundAgain"]]]):x("",!0)]),_:1})]),_:1},8,["data"])),[[Q,n(f).loading]])]),_:1},8,["label","name"]))),128))]),_:1},8,["modelValue"]),d("div",Be,[t(J,{modelValue:n(f),"onUpdate:modelValue":e[7]||(e[7]=l=>K(f)?f.value=l:null),onChange:n(k)},null,8,["modelValue","onChange"])])]),_:1}),t(ke,{modelValue:n(v),"onUpdate:modelValue":e[8]||(e[8]=l=>K(v)?v.value=l:null),"refund-id":n(U)},null,8,["modelValue","refund-id"])])}}});export{ze as default}; diff --git a/server/public/admin/assets/relations-add-DjjFBfbM.js b/server/public/admin/assets/relations-add-DjjFBfbM.js new file mode 100644 index 000000000..9253f6ae3 --- /dev/null +++ b/server/public/admin/assets/relations-add-DjjFBfbM.js @@ -0,0 +1 @@ +import{_ as o}from"./relations-add.vue_vue_type_script_setup_true_lang-D1ua-rLJ.js";import"./.pnpm-CyuAWpdG.js";import"./code-C__TNCcp.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./useDictOptions-dnxxXBSU.js";export{o as default}; diff --git a/server/public/admin/assets/relations-add-JWGJyLSB.js b/server/public/admin/assets/relations-add-JWGJyLSB.js deleted file mode 100644 index ac3518888..000000000 --- a/server/public/admin/assets/relations-add-JWGJyLSB.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./relations-add.vue_vue_type_script_setup_true_lang-BwTVgg-3.js";import"./.pnpm-CyuAWpdG.js";import"./code-Bx-mc3Tz.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";import"./useDictOptions-ByJNOzqa.js";export{o as default}; diff --git a/server/public/admin/assets/relations-add.vue_vue_type_script_setup_true_lang-BwTVgg-3.js b/server/public/admin/assets/relations-add.vue_vue_type_script_setup_true_lang-D1ua-rLJ.js similarity index 95% rename from server/public/admin/assets/relations-add.vue_vue_type_script_setup_true_lang-BwTVgg-3.js rename to server/public/admin/assets/relations-add.vue_vue_type_script_setup_true_lang-D1ua-rLJ.js index 28bfaabb4..98349567e 100644 --- a/server/public/admin/assets/relations-add.vue_vue_type_script_setup_true_lang-BwTVgg-3.js +++ b/server/public/admin/assets/relations-add.vue_vue_type_script_setup_true_lang-D1ua-rLJ.js @@ -1 +1 @@ -import{o as B,q as s,r as d,v as t,D as n,bd as O,u as a,bb as I,bh as M,F as i,G as _,O as y,bi as S,aA as $,a8 as g,p as G,aC as L,M as N}from"./.pnpm-CyuAWpdG.js";import{a as T}from"./code-Bx-mc3Tz.js";import{_ as j}from"./index-BnfLT5cB.js";import{u as z}from"./useDictOptions-ByJNOzqa.js";const H={class:"edit-popup"},W=B({__name:"relations-add",props:{column:{type:Array,default:()=>[]},types:{type:Array,default:()=>[]}},emits:["add","close","edit"],setup(b,{expose:x,emit:q}){const k=q,v=g(),m=g(),p=N("add"),C=G(()=>p.value=="edit"?"编辑关联":"新增关联"),o=L({name:"",model:"",type:"",local_key:"",foreign_key:""}),E={name:[{required:!0,message:"请输入关联名称"}],type:[{required:!0,message:"请选择关联类型"}],model:[{required:!0,message:"请选择关联模型"}],local_key:[{required:!0,message:"请选择关联健"}],foreign_key:[{required:!0,message:"请输入外键"}]},{optionsData:R}=z({models:{api:T}}),w=async()=>{var u,e;await((u=v.value)==null?void 0:u.validate()),(e=m.value)==null||e.close(),k(p.value,o)},D=(u="add")=>{var e;p.value=u,(e=m.value)==null||e.open()},F=u=>{for(const e in o)u[e]!=null&&u[e]!=null&&(o[e]=u[e])},U=()=>{k("close")};return x({open:D,setFormData:F}),(u,e)=>{const c=S,f=M,r=I,V=$,h=O;return s(),d("div",H,[t(j,{ref_key:"popupRef",ref:m,title:a(C),async:!0,width:"550px",onConfirm:w,onClose:U},{default:n(()=>[t(h,{ref_key:"formRef",ref:v,model:a(o),"label-width":"84px",rules:E},{default:n(()=>[t(r,{label:"关联类型",prop:"type"},{default:n(()=>[t(f,{class:"flex-1",modelValue:a(o).type,"onUpdate:modelValue":e[0]||(e[0]=l=>a(o).type=l),placeholder:"请选择关联类型"},{default:n(()=>[(s(!0),d(i,null,_(b.types,(l,A)=>(s(),y(c,{key:A,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"关联名称",prop:"name"},{default:n(()=>[t(V,{modelValue:a(o).name,"onUpdate:modelValue":e[1]||(e[1]=l=>a(o).name=l),placeholder:"请输入关联名称"},null,8,["modelValue"])]),_:1}),t(r,{label:"关联模型",prop:"model"},{default:n(()=>[t(f,{class:"flex-1",modelValue:a(o).model,"onUpdate:modelValue":e[2]||(e[2]=l=>a(o).model=l),placeholder:"请选择关联模型"},{default:n(()=>[(s(!0),d(i,null,_(a(R).models,l=>(s(),y(c,{label:l,value:l,key:l},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"关联健",prop:"local_key"},{default:n(()=>[t(f,{class:"flex-1",modelValue:a(o).local_key,"onUpdate:modelValue":e[3]||(e[3]=l=>a(o).local_key=l),clearable:"",placeholder:"请选择关联健"},{default:n(()=>[(s(!0),d(i,null,_(b.column,l=>(s(),y(c,{key:l.id,value:l.column_name,label:`${l.column_name}:${l.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"外键",prop:"foreign_key"},{default:n(()=>[t(V,{modelValue:a(o).foreign_key,"onUpdate:modelValue":e[4]||(e[4]=l=>a(o).foreign_key=l),placeholder:"关联表外键或中间表的外键"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{W as _}; +import{o as B,q as s,r as d,v as t,D as n,bd as O,u as a,bb as I,bh as M,F as i,G as _,O as y,bi as S,aA as $,a8 as g,p as G,aC as L,M as N}from"./.pnpm-CyuAWpdG.js";import{a as T}from"./code-C__TNCcp.js";import{_ as j}from"./index-CS5Wg0xx.js";import{u as z}from"./useDictOptions-dnxxXBSU.js";const H={class:"edit-popup"},W=B({__name:"relations-add",props:{column:{type:Array,default:()=>[]},types:{type:Array,default:()=>[]}},emits:["add","close","edit"],setup(b,{expose:x,emit:q}){const k=q,v=g(),m=g(),p=N("add"),C=G(()=>p.value=="edit"?"编辑关联":"新增关联"),o=L({name:"",model:"",type:"",local_key:"",foreign_key:""}),E={name:[{required:!0,message:"请输入关联名称"}],type:[{required:!0,message:"请选择关联类型"}],model:[{required:!0,message:"请选择关联模型"}],local_key:[{required:!0,message:"请选择关联健"}],foreign_key:[{required:!0,message:"请输入外键"}]},{optionsData:R}=z({models:{api:T}}),w=async()=>{var u,e;await((u=v.value)==null?void 0:u.validate()),(e=m.value)==null||e.close(),k(p.value,o)},D=(u="add")=>{var e;p.value=u,(e=m.value)==null||e.open()},F=u=>{for(const e in o)u[e]!=null&&u[e]!=null&&(o[e]=u[e])},U=()=>{k("close")};return x({open:D,setFormData:F}),(u,e)=>{const c=S,f=M,r=I,V=$,h=O;return s(),d("div",H,[t(j,{ref_key:"popupRef",ref:m,title:a(C),async:!0,width:"550px",onConfirm:w,onClose:U},{default:n(()=>[t(h,{ref_key:"formRef",ref:v,model:a(o),"label-width":"84px",rules:E},{default:n(()=>[t(r,{label:"关联类型",prop:"type"},{default:n(()=>[t(f,{class:"flex-1",modelValue:a(o).type,"onUpdate:modelValue":e[0]||(e[0]=l=>a(o).type=l),placeholder:"请选择关联类型"},{default:n(()=>[(s(!0),d(i,null,_(b.types,(l,A)=>(s(),y(c,{key:A,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"关联名称",prop:"name"},{default:n(()=>[t(V,{modelValue:a(o).name,"onUpdate:modelValue":e[1]||(e[1]=l=>a(o).name=l),placeholder:"请输入关联名称"},null,8,["modelValue"])]),_:1}),t(r,{label:"关联模型",prop:"model"},{default:n(()=>[t(f,{class:"flex-1",modelValue:a(o).model,"onUpdate:modelValue":e[2]||(e[2]=l=>a(o).model=l),placeholder:"请选择关联模型"},{default:n(()=>[(s(!0),d(i,null,_(a(R).models,l=>(s(),y(c,{label:l,value:l,key:l},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"关联健",prop:"local_key"},{default:n(()=>[t(f,{class:"flex-1",modelValue:a(o).local_key,"onUpdate:modelValue":e[3]||(e[3]=l=>a(o).local_key=l),clearable:"",placeholder:"请选择关联健"},{default:n(()=>[(s(!0),d(i,null,_(b.column,l=>(s(),y(c,{key:l.id,value:l.column_name,label:`${l.column_name}:${l.column_comment}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"外键",prop:"foreign_key"},{default:n(()=>[t(V,{modelValue:a(o).foreign_key,"onUpdate:modelValue":e[4]||(e[4]=l=>a(o).foreign_key=l),placeholder:"关联表外键或中间表的外键"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{W as _}; diff --git a/server/public/admin/assets/rich_text-BsWHrwaA.js b/server/public/admin/assets/rich_text-bUxDz7Uf.js similarity index 70% rename from server/public/admin/assets/rich_text-BsWHrwaA.js rename to server/public/admin/assets/rich_text-bUxDz7Uf.js index 5571e1061..4f8b4adcb 100644 --- a/server/public/admin/assets/rich_text-BsWHrwaA.js +++ b/server/public/admin/assets/rich_text-bUxDz7Uf.js @@ -1 +1 @@ -import{o as s,q as p,r as d,v as t,D as n,u as a,bj as i,aC as u}from"./.pnpm-CyuAWpdG.js";import{_}from"./index.vue_vue_type_style_index_0_lang-CduB--xp.js";import"./picker-BDO86vcM.js";import"./index-BnfLT5cB.js";import"./index-Dxvz9lb1.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const j=s({__name:"rich_text",setup(c){const e=u({value1:"",value2:""});return(v,o)=>{const l=_,m=i;return p(),d("div",null,[t(m,{header:"基础使用",shadow:"never",class:"!border-none"},{default:n(()=>[t(l,{modelValue:a(e).value1,"onUpdate:modelValue":o[0]||(o[0]=r=>a(e).value1=r),height:"500px"},null,8,["modelValue"])]),_:1}),t(m,{header:"简洁模式",shadow:"never",class:"!border-none mt-4"},{default:n(()=>[t(l,{modelValue:a(e).value2,"onUpdate:modelValue":o[1]||(o[1]=r=>a(e).value2=r),height:"500px",mode:"simple"},null,8,["modelValue"])]),_:1})])}}});export{j as default}; +import{o as s,q as p,r as d,v as t,D as n,u as a,bj as i,aC as u}from"./.pnpm-CyuAWpdG.js";import{_}from"./index.vue_vue_type_style_index_0_lang-D6-pu4qU.js";import"./picker-BTh9eW9u.js";import"./index-CS5Wg0xx.js";import"./index-Bkarz3gO.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const j=s({__name:"rich_text",setup(c){const e=u({value1:"",value2:""});return(v,o)=>{const l=_,m=i;return p(),d("div",null,[t(m,{header:"基础使用",shadow:"never",class:"!border-none"},{default:n(()=>[t(l,{modelValue:a(e).value1,"onUpdate:modelValue":o[0]||(o[0]=r=>a(e).value1=r),height:"500px"},null,8,["modelValue"])]),_:1}),t(m,{header:"简洁模式",shadow:"never",class:"!border-none mt-4"},{default:n(()=>[t(l,{modelValue:a(e).value2,"onUpdate:modelValue":o[1]||(o[1]=r=>a(e).value2=r),height:"500px",mode:"simple"},null,8,["modelValue"])]),_:1})])}}});export{j as default}; diff --git a/server/public/admin/assets/role-B1hWAn9n.js b/server/public/admin/assets/role-fMbnnhKr.js similarity index 83% rename from server/public/admin/assets/role-B1hWAn9n.js rename to server/public/admin/assets/role-fMbnnhKr.js index 1206a7ad6..64b182bff 100644 --- a/server/public/admin/assets/role-B1hWAn9n.js +++ b/server/public/admin/assets/role-fMbnnhKr.js @@ -1 +1 @@ -import{r as t}from"./index-Dxvz9lb1.js";function l(r){return t.get({url:"/auth.role/lists",params:r})}function o(r){return t.get({url:"/auth.role/all",params:r})}function u(r){return t.post({url:"/auth.role/add",params:r})}function n(r){return t.post({url:"/auth.role/edit",params:r})}function a(r){return t.post({url:"/auth.role/delete",params:r})}export{n as a,u as b,l as c,a as d,o as r}; +import{r as t}from"./index-Bkarz3gO.js";function l(r){return t.get({url:"/auth.role/lists",params:r})}function o(r){return t.get({url:"/auth.role/all",params:r})}function u(r){return t.post({url:"/auth.role/add",params:r})}function n(r){return t.post({url:"/auth.role/edit",params:r})}function a(r){return t.post({url:"/auth.role/delete",params:r})}export{n as a,u as b,l as c,a as d,o as r}; diff --git a/server/public/admin/assets/roster-DzNk3SnU.js b/server/public/admin/assets/roster-BSnuvbfe.js similarity index 99% rename from server/public/admin/assets/roster-DzNk3SnU.js rename to server/public/admin/assets/roster-BSnuvbfe.js index 999e17355..74c48ded7 100644 --- a/server/public/admin/assets/roster-DzNk3SnU.js +++ b/server/public/admin/assets/roster-BSnuvbfe.js @@ -1 +1 @@ -import{o as le,M as p,ap as Ee,q as v,r as k,v as l,D as o,s as _,bd as Ue,bb as $e,aA as Se,K as Ie,L as s,bo as Me,T as Y,ac as Be,O as M,bk as We,bl as he,F as N,G as T,ae as Re,bn as Ne,bj as Te,aB as Le,cA as Fe,bh as je,bi as Ae,J as ze,bf as Oe,bq as Ge,P as te,az as Pe,cB as Je,bg as Ke,p as L,e as He}from"./.pnpm-CyuAWpdG.js";import{d as B,i as Qe}from"./dayjs-B2bPhvDy.js";import{j as m,_ as Xe}from"./index-Dxvz9lb1.js";import{h as Ze,i as et,f as tt,r as lt,j as at}from"./doctor-8vo_5fa4.js";const ot={class:"doctor-roster p-4"},st={class:"flex justify-between items-center"},nt={class:"mb-4"},ut={class:"text-center mb-4 text-gray-600"},dt=["onClick"],rt={key:0,class:"text-xs text-gray-400 text-center py-2"},it={key:1,class:"space-y-1"},mt={class:"flex items-center gap-2 flex-wrap"},ft={class:"w-full space-y-2"},pt=le({name:"doctorRoster"}),vt=le({...pt,setup(_t){B.extend(Qe);const F=p(""),b=p(B().startOf("isoWeek")),j=p(!1),W=p(!1),V=p(null),x=p(""),P=p([]),U=p(!1),A=p(!1),r=p({id:null,doctorId:0,date:"",start_time:"09:00",end_time:"12:00",shift_type:"",slot_minutes:15,status:1,quota:0,max_patients:0,remark:""}),$=p(!1),z=p(!1),J=()=>[{start_time:"09:00",end_time:"12:00",shift_type:"day",slot_minutes:15,quota:0},{start_time:"14:00",end_time:"18:00",shift_type:"day",slot_minutes:15,quota:0}],u=p({doctorIds:[],dateRange:[],weekdays:[1,2,3,4,5],status:1,remark:"",segments:J()}),E=p([]),ae=L(()=>{const t=F.value.trim();return t?E.value.filter(e=>e.doctorName.includes(t)):E.value}),oe=L(()=>!V.value||!x.value?"当日排班":`${V.value.doctorName} · ${x.value}`),se=L(()=>{const t=[],e=["周一","周二","周三","周四","周五","周六","周日"];for(let d=0;d<7;d++){const i=b.value.add(d,"day");t.push({date:i.format("YYYY-MM-DD"),label:`${e[d]} ${i.format("MM-DD")}`})}return t}),ne=L(()=>{const t=b.value.format("YYYY-MM-DD"),e=b.value.add(6,"day").format("YYYY-MM-DD");return`${t} 至 ${e}`});function K(t){return{1:"出诊",2:"停诊",3:"休息",4:"请假"}[t]??String(t)}function H(t){return t==="day"?"白班":t==="night"?"夜班":"—"}function ue(t){return t===1?"bg-emerald-50 text-emerald-800 border border-emerald-100":t===2?"bg-amber-50 text-amber-900 border border-amber-100":t===3?"bg-slate-100 text-slate-600 border border-slate-200":"bg-gray-100 text-gray-700 border border-gray-200"}function de(t){const e=`${t.start_time}-${t.end_time}`,d=H(t.shift_type),i=d!=="—"?` ${d}`:"";if(t.status===1){const n=t.quota>0?` 号源${t.quota}`:"";return`${e}${i} 出诊${n}`}return`${e}${i} ${K(t.status)}`}function Q(t,e){return t.rostersByDate[e]||[]}function h(){if(!V.value||!x.value)return;const t=E.value.find(e=>e.doctorId===V.value.doctorId);t&&(P.value=[...t.rostersByDate[x.value]||[]].sort((e,d)=>e.start_time.localeCompare(d.start_time)))}function re(t,e){V.value=t,x.value=e,h(),W.value=!0}function X(t){if(!V.value||!x.value){m.msgWarning("请先选择日期格子");return}t?r.value={id:t.id,doctorId:V.value.doctorId,date:x.value,start_time:t.start_time||"09:00",end_time:t.end_time||"12:00",shift_type:t.shift_type||"",slot_minutes:t.slot_minutes||15,status:t.status,quota:t.quota??0,max_patients:t.max_patients??0,remark:t.remark||""}:r.value={id:null,doctorId:V.value.doctorId,date:x.value,start_time:"09:00",end_time:"12:00",shift_type:"day",slot_minutes:15,status:1,quota:0,max_patients:0,remark:""},U.value=!0}async function ie(){const t=r.value;if(!t.start_time||!t.end_time){m.msgWarning("请填写接诊开始与结束时间");return}if(t.status===1&&t.start_time>=t.end_time){m.msgWarning("出诊时结束时间须晚于开始时间");return}if(t.start_time>=t.end_time){m.msgWarning("结束时间须晚于开始时间");return}A.value=!0;try{const e={doctor_id:t.doctorId,date:t.date,period:"segment",start_time:t.start_time,end_time:t.end_time,slot_minutes:t.slot_minutes||15,status:t.status,quota:t.status===1?t.quota:0,max_patients:t.status===1?t.max_patients:0,remark:t.remark||""};t.shift_type&&(e.shift_type=t.shift_type),t.id&&(e.id=t.id),await Ze(e),m.msgSuccess("保存成功"),U.value=!1,await c(),h()}catch{m.msgError("保存失败")}finally{A.value=!1}}async function me(t){try{await He.confirm("确定删除该时段?","提示",{type:"warning"})}catch{return}try{await et({id:t.id}),m.msgSuccess("已删除"),await c(),h()}catch{m.msgError("删除失败")}}const fe=async()=>{try{const t=await tt({page_no:1,page_size:1e3});E.value=((t==null?void 0:t.lists)||[]).map(e=>({doctorId:e.id,doctorName:e.name||e.account,rostersByDate:{}})),await c()}catch(t){console.error("加载医生列表失败:",t),m.msgError("加载医生列表失败")}},c=async()=>{j.value=!0;try{const t={start_date:b.value.format("YYYY-MM-DD"),end_date:b.value.add(6,"day").format("YYYY-MM-DD")},e=await lt(t),d=(e==null?void 0:e.lists)||[];E.value.forEach(i=>{i.rostersByDate={},d.forEach(n=>{if(n.doctor_id!==i.doctorId)return;const g=n.date;i.rostersByDate[g]||(i.rostersByDate[g]=[]),i.rostersByDate[g].push({id:n.id,status:n.status,quota:n.quota||0,max_patients:n.max_patients,start_time:n.start_time||pe(n.period),end_time:n.end_time||ve(n.period),shift_type:n.shift_type,slot_minutes:n.slot_minutes??15,remark:n.remark,period:n.period})})}),h()}catch(t){console.error("加载排班数据失败:",t),m.msgError("加载排班数据失败")}finally{j.value=!1}};function pe(t){return t==="morning"?"09:00":t==="afternoon"?"14:00":t==="night"?"18:00":"09:00"}function ve(t){return t==="morning"?"12:00":t==="afternoon"?"18:00":t==="night"?"22:00":"12:00"}const _e=()=>{c()},ye=()=>{b.value=b.value.subtract(1,"week"),c()},be=()=>{b.value=b.value.add(1,"week"),c()},ge=()=>{b.value=B().startOf("isoWeek"),c()},ke=()=>{u.value={doctorIds:[],dateRange:[],weekdays:[1,2,3,4,5],status:1,remark:"",segments:J()},$.value=!0},Ve=()=>{u.value.segments.push({start_time:"09:00",end_time:"12:00",shift_type:"day",slot_minutes:15,quota:0})},xe=()=>{u.value.segments.push({start_time:"18:00",end_time:"22:00",shift_type:"night",slot_minutes:15,quota:0})},ce=t=>{u.value.segments.length<=1||u.value.segments.splice(t,1)},we=async()=>{if(u.value.doctorIds.length===0){m.msgWarning("请选择医生");return}if(!u.value.dateRange||u.value.dateRange.length!==2){m.msgWarning("请选择日期范围");return}if(u.value.weekdays.length===0){m.msgWarning("请选择星期");return}for(const t of u.value.segments){if(!t.start_time||!t.end_time){m.msgWarning("请完善时段模板的开始与结束时间");return}if(t.start_time>=t.end_time){m.msgWarning("时段模板中结束时间须晚于开始时间");return}}z.value=!0;try{const t=[],e=B(u.value.dateRange[0]),d=B(u.value.dateRange[1]);let i=e;for(;i.isBefore(d)||i.isSame(d,"day");){const n=i.day();u.value.weekdays.includes(n)&&u.value.doctorIds.forEach(g=>{u.value.segments.forEach(w=>{const y={doctor_id:g,date:i.format("YYYY-MM-DD"),period:"segment",start_time:w.start_time,end_time:w.end_time,slot_minutes:w.slot_minutes||15,status:u.value.status,quota:u.value.status===1?w.quota:0,max_patients:0,remark:u.value.remark};w.shift_type&&(y.shift_type=w.shift_type),t.push(y)})}),i=i.add(1,"day")}if(t.length===0){m.msgWarning("没有符合条件的排班数据");return}await at({rosters:t}),m.msgSuccess(`批量保存成功!共处理 ${t.length} 条记录`),$.value=!1,await c()}catch(t){console.error("批量保存失败:",t),m.msgError("批量保存失败")}finally{z.value=!1}};return Ee(()=>{fe()}),(t,e)=>{const d=Ie,i=Se,n=$e,g=Ue,w=Me,y=he,Z=We,De=Te,O=Le,R=Fe,S=Ae,G=je,I=ze,D=Ge,ee=Oe,Ce=Pe,q=Ke,Ye=Je,qe=Ne;return v(),k("div",ot,[l(De,{shadow:"never"},{header:o(()=>[_("div",st,[e[25]||(e[25]=_("span",{class:"text-lg font-medium"},"医生排班管理",-1)),_("div",null,[l(d,{type:"success",onClick:ke},{default:o(()=>[...e[21]||(e[21]=[s("批量排班",-1)])]),_:1}),l(d,{onClick:ye},{default:o(()=>[...e[22]||(e[22]=[s("上一周",-1)])]),_:1}),l(d,{onClick:be},{default:o(()=>[...e[23]||(e[23]=[s("下一周",-1)])]),_:1}),l(d,{type:"primary",onClick:ge},{default:o(()=>[...e[24]||(e[24]=[s("本周",-1)])]),_:1})])])]),default:o(()=>[_("div",nt,[l(g,{inline:""},{default:o(()=>[l(n,{label:"医生"},{default:o(()=>[l(i,{modelValue:F.value,"onUpdate:modelValue":e[0]||(e[0]=a=>F.value=a),placeholder:"请输入医生姓名",clearable:"",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),l(n,null,{default:o(()=>[l(d,{type:"primary",onClick:_e},{default:o(()=>[...e[26]||(e[26]=[s("查询",-1)])]),_:1})]),_:1})]),_:1})]),l(w,{type:"info",closable:!1,class:"mb-4","show-icon":""},{default:o(()=>[...e[27]||(e[27]=[s(" 每条排班为一段连续可挂号时间;同一天可添加多段(如白班 + 夜班)。休息时段不添加出诊段即可。号源间隔默认 15 分钟;号源数填 0 表示按时段长度自动满号。 ",-1)])]),_:1}),_("div",ut,Y(ne.value),1),Be((v(),M(Z,{data:ae.value,border:""},{default:o(()=>[l(y,{prop:"doctorName",label:"医生",width:"120",fixed:""}),(v(!0),k(N,null,T(se.value,a=>(v(),M(y,{key:a.date,label:a.label,"min-width":"168"},{default:o(({row:C})=>[_("div",{class:"day-cell rounded border border-dashed border-gray-200 p-1 min-h-[56px] cursor-pointer hover:bg-gray-50",onClick:f=>re(C,a.date)},[Q(C,a.date).length===0?(v(),k("div",rt,"点击管理")):(v(),k("div",it,[(v(!0),k(N,null,T(Q(C,a.date),f=>(v(),k("div",{key:f.id,class:Re(["text-xs px-1 py-0.5 rounded leading-tight",ue(f.status)])},Y(de(f)),3))),128))]))],8,dt)]),_:2},1032,["label"]))),128))]),_:1},8,["data"])),[[qe,j.value]])]),_:1}),l(O,{modelValue:W.value,"onUpdate:modelValue":e[3]||(e[3]=a=>W.value=a),title:oe.value,width:"720px","destroy-on-close":""},{footer:o(()=>[l(d,{onClick:e[1]||(e[1]=a=>W.value=!1)},{default:o(()=>[...e[30]||(e[30]=[s("关闭",-1)])]),_:1}),l(d,{type:"primary",onClick:e[2]||(e[2]=a=>X())},{default:o(()=>[...e[31]||(e[31]=[s("添加时段",-1)])]),_:1})]),default:o(()=>[l(Z,{data:P.value,border:"",size:"small","max-height":"360"},{default:o(()=>[l(y,{label:"时间",width:"150"},{default:o(({row:a})=>[s(Y(a.start_time)+" - "+Y(a.end_time),1)]),_:1}),l(y,{label:"班次",width:"80"},{default:o(({row:a})=>[s(Y(H(a.shift_type)),1)]),_:1}),l(y,{label:"状态",width:"88"},{default:o(({row:a})=>[s(Y(K(a.status)),1)]),_:1}),l(y,{label:"间隔",width:"72"},{default:o(({row:a})=>[s(Y(a.slot_minutes||15)+" 分",1)]),_:1}),l(y,{label:"号源",width:"72"},{default:o(({row:a})=>[s(Y(a.status===1?a.quota||"不限":"-"),1)]),_:1}),l(y,{label:"备注",prop:"remark","min-width":"100","show-overflow-tooltip":""}),l(y,{label:"操作",width:"140",fixed:"right"},{default:o(({row:a})=>[l(d,{type:"primary",link:"",onClick:C=>X(a)},{default:o(()=>[...e[28]||(e[28]=[s("编辑",-1)])]),_:1},8,["onClick"]),l(d,{type:"danger",link:"",onClick:C=>me(a)},{default:o(()=>[...e[29]||(e[29]=[s("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])]),_:1},8,["modelValue","title"]),l(O,{modelValue:U.value,"onUpdate:modelValue":e[13]||(e[13]=a=>U.value=a),title:r.value.id?"编辑时段":"添加时段",width:"520px","destroy-on-close":""},{footer:o(()=>[l(d,{onClick:e[12]||(e[12]=a=>U.value=!1)},{default:o(()=>[...e[39]||(e[39]=[s("取消",-1)])]),_:1}),l(d,{type:"primary",loading:A.value,onClick:ie},{default:o(()=>[...e[40]||(e[40]=[s("保存",-1)])]),_:1},8,["loading"])]),default:o(()=>[l(g,{model:r.value,"label-width":"110px"},{default:o(()=>[l(n,{label:"接诊时间",required:""},{default:o(()=>[_("div",mt,[l(R,{modelValue:r.value.start_time,"onUpdate:modelValue":e[4]||(e[4]=a=>r.value.start_time=a),start:"00:00",step:"00:5",end:"23:45",placeholder:"开始",style:{width:"120px"}},null,8,["modelValue"]),e[32]||(e[32]=_("span",null,"至",-1)),l(R,{modelValue:r.value.end_time,"onUpdate:modelValue":e[5]||(e[5]=a=>r.value.end_time=a),start:"00:00",step:"00:5",end:"23:45",placeholder:"结束",style:{width:"120px"}},null,8,["modelValue"])])]),_:1}),l(n,{label:"班次标签"},{default:o(()=>[l(G,{modelValue:r.value.shift_type,"onUpdate:modelValue":e[6]||(e[6]=a=>r.value.shift_type=a),placeholder:"选填",clearable:"",style:{width:"200px"}},{default:o(()=>[l(S,{label:"白班",value:"day"}),l(S,{label:"夜班",value:"night"})]),_:1},8,["modelValue"])]),_:1}),l(n,{label:"号源间隔(分)"},{default:o(()=>[l(I,{modelValue:r.value.slot_minutes,"onUpdate:modelValue":e[7]||(e[7]=a=>r.value.slot_minutes=a),min:5,max:120,step:5},null,8,["modelValue"]),e[33]||(e[33]=_("span",{class:"ml-2 text-gray-500 text-sm"},"默认 15",-1))]),_:1}),l(n,{label:"状态"},{default:o(()=>[l(ee,{modelValue:r.value.status,"onUpdate:modelValue":e[8]||(e[8]=a=>r.value.status=a)},{default:o(()=>[l(D,{label:1},{default:o(()=>[...e[34]||(e[34]=[s("出诊",-1)])]),_:1}),l(D,{label:2},{default:o(()=>[...e[35]||(e[35]=[s("停诊",-1)])]),_:1}),l(D,{label:3},{default:o(()=>[...e[36]||(e[36]=[s("休息",-1)])]),_:1}),l(D,{label:4},{default:o(()=>[...e[37]||(e[37]=[s("请假",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),r.value.status===1?(v(),M(n,{key:0,label:"号源上限"},{default:o(()=>[l(I,{modelValue:r.value.quota,"onUpdate:modelValue":e[9]||(e[9]=a=>r.value.quota=a),min:0,max:200},null,8,["modelValue"]),e[38]||(e[38]=_("div",{class:"text-gray-500 text-xs mt-1"},"0 表示不限制(由时段÷间隔计算可约数)",-1))]),_:1})):te("",!0),r.value.status===1?(v(),M(n,{key:1,label:"最大接诊"},{default:o(()=>[l(I,{modelValue:r.value.max_patients,"onUpdate:modelValue":e[10]||(e[10]=a=>r.value.max_patients=a),min:0,max:500},null,8,["modelValue"])]),_:1})):te("",!0),l(n,{label:"备注"},{default:o(()=>[l(i,{modelValue:r.value.remark,"onUpdate:modelValue":e[11]||(e[11]=a=>r.value.remark=a),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(O,{modelValue:$.value,"onUpdate:modelValue":e[20]||(e[20]=a=>$.value=a),title:"批量排班",width:"780px","destroy-on-close":""},{footer:o(()=>[l(d,{onClick:e[19]||(e[19]=a=>$.value=!1)},{default:o(()=>[...e[58]||(e[58]=[s("取消",-1)])]),_:1}),l(d,{type:"primary",onClick:we,loading:z.value},{default:o(()=>[...e[59]||(e[59]=[s("确定",-1)])]),_:1},8,["loading"])]),default:o(()=>[l(g,{model:u.value,"label-width":"100px"},{default:o(()=>[l(n,{label:"选择医生",required:""},{default:o(()=>[l(G,{modelValue:u.value.doctorIds,"onUpdate:modelValue":e[14]||(e[14]=a=>u.value.doctorIds=a),multiple:"",placeholder:"请选择医生",class:"w-full",filterable:""},{default:o(()=>[(v(!0),k(N,null,T(E.value,a=>(v(),M(S,{key:a.doctorId,label:a.doctorName,value:a.doctorId},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(n,{label:"日期范围",required:""},{default:o(()=>[l(Ce,{modelValue:u.value.dateRange,"onUpdate:modelValue":e[15]||(e[15]=a=>u.value.dateRange=a),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),l(n,{label:"星期",required:""},{default:o(()=>[l(Ye,{modelValue:u.value.weekdays,"onUpdate:modelValue":e[16]||(e[16]=a=>u.value.weekdays=a)},{default:o(()=>[l(q,{label:1},{default:o(()=>[...e[41]||(e[41]=[s("周一",-1)])]),_:1}),l(q,{label:2},{default:o(()=>[...e[42]||(e[42]=[s("周二",-1)])]),_:1}),l(q,{label:3},{default:o(()=>[...e[43]||(e[43]=[s("周三",-1)])]),_:1}),l(q,{label:4},{default:o(()=>[...e[44]||(e[44]=[s("周四",-1)])]),_:1}),l(q,{label:5},{default:o(()=>[...e[45]||(e[45]=[s("周五",-1)])]),_:1}),l(q,{label:6},{default:o(()=>[...e[46]||(e[46]=[s("周六",-1)])]),_:1}),l(q,{label:0},{default:o(()=>[...e[47]||(e[47]=[s("周日",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(n,{label:"时段模板"},{default:o(()=>[_("div",ft,[(v(!0),k(N,null,T(u.value.segments,(a,C)=>(v(),k("div",{key:C,class:"flex flex-wrap items-center gap-2 p-2 bg-gray-50 rounded"},[l(R,{modelValue:a.start_time,"onUpdate:modelValue":f=>a.start_time=f,start:"00:00",step:"00:05",end:"23:45",placeholder:"开始",style:{width:"110px"}},null,8,["modelValue","onUpdate:modelValue"]),e[49]||(e[49]=_("span",null,"—",-1)),l(R,{modelValue:a.end_time,"onUpdate:modelValue":f=>a.end_time=f,start:"00:00",step:"00:05",end:"23:45",placeholder:"结束",style:{width:"110px"}},null,8,["modelValue","onUpdate:modelValue"]),l(G,{modelValue:a.shift_type,"onUpdate:modelValue":f=>a.shift_type=f,placeholder:"班次",clearable:"",style:{width:"100px"}},{default:o(()=>[l(S,{label:"白班",value:"day"}),l(S,{label:"夜班",value:"night"})]),_:1},8,["modelValue","onUpdate:modelValue"]),e[50]||(e[50]=_("span",{class:"text-sm text-gray-500"},"间隔",-1)),l(I,{modelValue:a.slot_minutes,"onUpdate:modelValue":f=>a.slot_minutes=f,min:5,max:120,step:5,style:{width:"100px"}},null,8,["modelValue","onUpdate:modelValue"]),e[51]||(e[51]=_("span",{class:"text-sm text-gray-500"},"号源0=不限",-1)),l(I,{modelValue:a.quota,"onUpdate:modelValue":f=>a.quota=f,min:0,max:200,style:{width:"100px"}},null,8,["modelValue","onUpdate:modelValue"]),l(d,{type:"danger",link:"",onClick:f=>ce(C),disabled:u.value.segments.length<=1},{default:o(()=>[...e[48]||(e[48]=[s("删除",-1)])]),_:1},8,["onClick","disabled"])]))),128)),l(d,{type:"primary",link:"",onClick:Ve},{default:o(()=>[...e[52]||(e[52]=[s("+ 增加一段",-1)])]),_:1}),l(d,{type:"success",link:"",onClick:xe},{default:o(()=>[...e[53]||(e[53]=[s("+ 夜班 18:00–22:00",-1)])]),_:1})])]),_:1}),l(n,{label:"排班状态",required:""},{default:o(()=>[l(ee,{modelValue:u.value.status,"onUpdate:modelValue":e[17]||(e[17]=a=>u.value.status=a)},{default:o(()=>[l(D,{label:1},{default:o(()=>[...e[54]||(e[54]=[s("出诊",-1)])]),_:1}),l(D,{label:2},{default:o(()=>[...e[55]||(e[55]=[s("停诊",-1)])]),_:1}),l(D,{label:3},{default:o(()=>[...e[56]||(e[56]=[s("休息",-1)])]),_:1}),l(D,{label:4},{default:o(()=>[...e[57]||(e[57]=[s("请假",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(n,{label:"备注"},{default:o(()=>[l(i,{modelValue:u.value.remark,"onUpdate:modelValue":e[18]||(e[18]=a=>u.value.remark=a),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),Vt=Xe(vt,[["__scopeId","data-v-8e605af4"]]);export{Vt as default}; +import{o as le,M as p,ap as Ee,q as v,r as k,v as l,D as o,s as _,bd as Ue,bb as $e,aA as Se,K as Ie,L as s,bo as Me,T as Y,ac as Be,O as M,bk as We,bl as he,F as N,G as T,ae as Re,bn as Ne,bj as Te,aB as Le,cA as Fe,bh as je,bi as Ae,J as ze,bf as Oe,bq as Ge,P as te,az as Pe,cB as Je,bg as Ke,p as L,e as He}from"./.pnpm-CyuAWpdG.js";import{d as B,i as Qe}from"./dayjs-B2bPhvDy.js";import{j as m,_ as Xe}from"./index-Bkarz3gO.js";import{h as Ze,i as et,f as tt,r as lt,j as at}from"./doctor-DBvYeWd3.js";const ot={class:"doctor-roster p-4"},st={class:"flex justify-between items-center"},nt={class:"mb-4"},ut={class:"text-center mb-4 text-gray-600"},dt=["onClick"],rt={key:0,class:"text-xs text-gray-400 text-center py-2"},it={key:1,class:"space-y-1"},mt={class:"flex items-center gap-2 flex-wrap"},ft={class:"w-full space-y-2"},pt=le({name:"doctorRoster"}),vt=le({...pt,setup(_t){B.extend(Qe);const F=p(""),b=p(B().startOf("isoWeek")),j=p(!1),W=p(!1),V=p(null),x=p(""),P=p([]),U=p(!1),A=p(!1),r=p({id:null,doctorId:0,date:"",start_time:"09:00",end_time:"12:00",shift_type:"",slot_minutes:15,status:1,quota:0,max_patients:0,remark:""}),$=p(!1),z=p(!1),J=()=>[{start_time:"09:00",end_time:"12:00",shift_type:"day",slot_minutes:15,quota:0},{start_time:"14:00",end_time:"18:00",shift_type:"day",slot_minutes:15,quota:0}],u=p({doctorIds:[],dateRange:[],weekdays:[1,2,3,4,5],status:1,remark:"",segments:J()}),E=p([]),ae=L(()=>{const t=F.value.trim();return t?E.value.filter(e=>e.doctorName.includes(t)):E.value}),oe=L(()=>!V.value||!x.value?"当日排班":`${V.value.doctorName} · ${x.value}`),se=L(()=>{const t=[],e=["周一","周二","周三","周四","周五","周六","周日"];for(let d=0;d<7;d++){const i=b.value.add(d,"day");t.push({date:i.format("YYYY-MM-DD"),label:`${e[d]} ${i.format("MM-DD")}`})}return t}),ne=L(()=>{const t=b.value.format("YYYY-MM-DD"),e=b.value.add(6,"day").format("YYYY-MM-DD");return`${t} 至 ${e}`});function K(t){return{1:"出诊",2:"停诊",3:"休息",4:"请假"}[t]??String(t)}function H(t){return t==="day"?"白班":t==="night"?"夜班":"—"}function ue(t){return t===1?"bg-emerald-50 text-emerald-800 border border-emerald-100":t===2?"bg-amber-50 text-amber-900 border border-amber-100":t===3?"bg-slate-100 text-slate-600 border border-slate-200":"bg-gray-100 text-gray-700 border border-gray-200"}function de(t){const e=`${t.start_time}-${t.end_time}`,d=H(t.shift_type),i=d!=="—"?` ${d}`:"";if(t.status===1){const n=t.quota>0?` 号源${t.quota}`:"";return`${e}${i} 出诊${n}`}return`${e}${i} ${K(t.status)}`}function Q(t,e){return t.rostersByDate[e]||[]}function h(){if(!V.value||!x.value)return;const t=E.value.find(e=>e.doctorId===V.value.doctorId);t&&(P.value=[...t.rostersByDate[x.value]||[]].sort((e,d)=>e.start_time.localeCompare(d.start_time)))}function re(t,e){V.value=t,x.value=e,h(),W.value=!0}function X(t){if(!V.value||!x.value){m.msgWarning("请先选择日期格子");return}t?r.value={id:t.id,doctorId:V.value.doctorId,date:x.value,start_time:t.start_time||"09:00",end_time:t.end_time||"12:00",shift_type:t.shift_type||"",slot_minutes:t.slot_minutes||15,status:t.status,quota:t.quota??0,max_patients:t.max_patients??0,remark:t.remark||""}:r.value={id:null,doctorId:V.value.doctorId,date:x.value,start_time:"09:00",end_time:"12:00",shift_type:"day",slot_minutes:15,status:1,quota:0,max_patients:0,remark:""},U.value=!0}async function ie(){const t=r.value;if(!t.start_time||!t.end_time){m.msgWarning("请填写接诊开始与结束时间");return}if(t.status===1&&t.start_time>=t.end_time){m.msgWarning("出诊时结束时间须晚于开始时间");return}if(t.start_time>=t.end_time){m.msgWarning("结束时间须晚于开始时间");return}A.value=!0;try{const e={doctor_id:t.doctorId,date:t.date,period:"segment",start_time:t.start_time,end_time:t.end_time,slot_minutes:t.slot_minutes||15,status:t.status,quota:t.status===1?t.quota:0,max_patients:t.status===1?t.max_patients:0,remark:t.remark||""};t.shift_type&&(e.shift_type=t.shift_type),t.id&&(e.id=t.id),await Ze(e),m.msgSuccess("保存成功"),U.value=!1,await c(),h()}catch{m.msgError("保存失败")}finally{A.value=!1}}async function me(t){try{await He.confirm("确定删除该时段?","提示",{type:"warning"})}catch{return}try{await et({id:t.id}),m.msgSuccess("已删除"),await c(),h()}catch{m.msgError("删除失败")}}const fe=async()=>{try{const t=await tt({page_no:1,page_size:1e3});E.value=((t==null?void 0:t.lists)||[]).map(e=>({doctorId:e.id,doctorName:e.name||e.account,rostersByDate:{}})),await c()}catch(t){console.error("加载医生列表失败:",t),m.msgError("加载医生列表失败")}},c=async()=>{j.value=!0;try{const t={start_date:b.value.format("YYYY-MM-DD"),end_date:b.value.add(6,"day").format("YYYY-MM-DD")},e=await lt(t),d=(e==null?void 0:e.lists)||[];E.value.forEach(i=>{i.rostersByDate={},d.forEach(n=>{if(n.doctor_id!==i.doctorId)return;const g=n.date;i.rostersByDate[g]||(i.rostersByDate[g]=[]),i.rostersByDate[g].push({id:n.id,status:n.status,quota:n.quota||0,max_patients:n.max_patients,start_time:n.start_time||pe(n.period),end_time:n.end_time||ve(n.period),shift_type:n.shift_type,slot_minutes:n.slot_minutes??15,remark:n.remark,period:n.period})})}),h()}catch(t){console.error("加载排班数据失败:",t),m.msgError("加载排班数据失败")}finally{j.value=!1}};function pe(t){return t==="morning"?"09:00":t==="afternoon"?"14:00":t==="night"?"18:00":"09:00"}function ve(t){return t==="morning"?"12:00":t==="afternoon"?"18:00":t==="night"?"22:00":"12:00"}const _e=()=>{c()},ye=()=>{b.value=b.value.subtract(1,"week"),c()},be=()=>{b.value=b.value.add(1,"week"),c()},ge=()=>{b.value=B().startOf("isoWeek"),c()},ke=()=>{u.value={doctorIds:[],dateRange:[],weekdays:[1,2,3,4,5],status:1,remark:"",segments:J()},$.value=!0},Ve=()=>{u.value.segments.push({start_time:"09:00",end_time:"12:00",shift_type:"day",slot_minutes:15,quota:0})},xe=()=>{u.value.segments.push({start_time:"18:00",end_time:"22:00",shift_type:"night",slot_minutes:15,quota:0})},ce=t=>{u.value.segments.length<=1||u.value.segments.splice(t,1)},we=async()=>{if(u.value.doctorIds.length===0){m.msgWarning("请选择医生");return}if(!u.value.dateRange||u.value.dateRange.length!==2){m.msgWarning("请选择日期范围");return}if(u.value.weekdays.length===0){m.msgWarning("请选择星期");return}for(const t of u.value.segments){if(!t.start_time||!t.end_time){m.msgWarning("请完善时段模板的开始与结束时间");return}if(t.start_time>=t.end_time){m.msgWarning("时段模板中结束时间须晚于开始时间");return}}z.value=!0;try{const t=[],e=B(u.value.dateRange[0]),d=B(u.value.dateRange[1]);let i=e;for(;i.isBefore(d)||i.isSame(d,"day");){const n=i.day();u.value.weekdays.includes(n)&&u.value.doctorIds.forEach(g=>{u.value.segments.forEach(w=>{const y={doctor_id:g,date:i.format("YYYY-MM-DD"),period:"segment",start_time:w.start_time,end_time:w.end_time,slot_minutes:w.slot_minutes||15,status:u.value.status,quota:u.value.status===1?w.quota:0,max_patients:0,remark:u.value.remark};w.shift_type&&(y.shift_type=w.shift_type),t.push(y)})}),i=i.add(1,"day")}if(t.length===0){m.msgWarning("没有符合条件的排班数据");return}await at({rosters:t}),m.msgSuccess(`批量保存成功!共处理 ${t.length} 条记录`),$.value=!1,await c()}catch(t){console.error("批量保存失败:",t),m.msgError("批量保存失败")}finally{z.value=!1}};return Ee(()=>{fe()}),(t,e)=>{const d=Ie,i=Se,n=$e,g=Ue,w=Me,y=he,Z=We,De=Te,O=Le,R=Fe,S=Ae,G=je,I=ze,D=Ge,ee=Oe,Ce=Pe,q=Ke,Ye=Je,qe=Ne;return v(),k("div",ot,[l(De,{shadow:"never"},{header:o(()=>[_("div",st,[e[25]||(e[25]=_("span",{class:"text-lg font-medium"},"医生排班管理",-1)),_("div",null,[l(d,{type:"success",onClick:ke},{default:o(()=>[...e[21]||(e[21]=[s("批量排班",-1)])]),_:1}),l(d,{onClick:ye},{default:o(()=>[...e[22]||(e[22]=[s("上一周",-1)])]),_:1}),l(d,{onClick:be},{default:o(()=>[...e[23]||(e[23]=[s("下一周",-1)])]),_:1}),l(d,{type:"primary",onClick:ge},{default:o(()=>[...e[24]||(e[24]=[s("本周",-1)])]),_:1})])])]),default:o(()=>[_("div",nt,[l(g,{inline:""},{default:o(()=>[l(n,{label:"医生"},{default:o(()=>[l(i,{modelValue:F.value,"onUpdate:modelValue":e[0]||(e[0]=a=>F.value=a),placeholder:"请输入医生姓名",clearable:"",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),l(n,null,{default:o(()=>[l(d,{type:"primary",onClick:_e},{default:o(()=>[...e[26]||(e[26]=[s("查询",-1)])]),_:1})]),_:1})]),_:1})]),l(w,{type:"info",closable:!1,class:"mb-4","show-icon":""},{default:o(()=>[...e[27]||(e[27]=[s(" 每条排班为一段连续可挂号时间;同一天可添加多段(如白班 + 夜班)。休息时段不添加出诊段即可。号源间隔默认 15 分钟;号源数填 0 表示按时段长度自动满号。 ",-1)])]),_:1}),_("div",ut,Y(ne.value),1),Be((v(),M(Z,{data:ae.value,border:""},{default:o(()=>[l(y,{prop:"doctorName",label:"医生",width:"120",fixed:""}),(v(!0),k(N,null,T(se.value,a=>(v(),M(y,{key:a.date,label:a.label,"min-width":"168"},{default:o(({row:C})=>[_("div",{class:"day-cell rounded border border-dashed border-gray-200 p-1 min-h-[56px] cursor-pointer hover:bg-gray-50",onClick:f=>re(C,a.date)},[Q(C,a.date).length===0?(v(),k("div",rt,"点击管理")):(v(),k("div",it,[(v(!0),k(N,null,T(Q(C,a.date),f=>(v(),k("div",{key:f.id,class:Re(["text-xs px-1 py-0.5 rounded leading-tight",ue(f.status)])},Y(de(f)),3))),128))]))],8,dt)]),_:2},1032,["label"]))),128))]),_:1},8,["data"])),[[qe,j.value]])]),_:1}),l(O,{modelValue:W.value,"onUpdate:modelValue":e[3]||(e[3]=a=>W.value=a),title:oe.value,width:"720px","destroy-on-close":""},{footer:o(()=>[l(d,{onClick:e[1]||(e[1]=a=>W.value=!1)},{default:o(()=>[...e[30]||(e[30]=[s("关闭",-1)])]),_:1}),l(d,{type:"primary",onClick:e[2]||(e[2]=a=>X())},{default:o(()=>[...e[31]||(e[31]=[s("添加时段",-1)])]),_:1})]),default:o(()=>[l(Z,{data:P.value,border:"",size:"small","max-height":"360"},{default:o(()=>[l(y,{label:"时间",width:"150"},{default:o(({row:a})=>[s(Y(a.start_time)+" - "+Y(a.end_time),1)]),_:1}),l(y,{label:"班次",width:"80"},{default:o(({row:a})=>[s(Y(H(a.shift_type)),1)]),_:1}),l(y,{label:"状态",width:"88"},{default:o(({row:a})=>[s(Y(K(a.status)),1)]),_:1}),l(y,{label:"间隔",width:"72"},{default:o(({row:a})=>[s(Y(a.slot_minutes||15)+" 分",1)]),_:1}),l(y,{label:"号源",width:"72"},{default:o(({row:a})=>[s(Y(a.status===1?a.quota||"不限":"-"),1)]),_:1}),l(y,{label:"备注",prop:"remark","min-width":"100","show-overflow-tooltip":""}),l(y,{label:"操作",width:"140",fixed:"right"},{default:o(({row:a})=>[l(d,{type:"primary",link:"",onClick:C=>X(a)},{default:o(()=>[...e[28]||(e[28]=[s("编辑",-1)])]),_:1},8,["onClick"]),l(d,{type:"danger",link:"",onClick:C=>me(a)},{default:o(()=>[...e[29]||(e[29]=[s("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])]),_:1},8,["modelValue","title"]),l(O,{modelValue:U.value,"onUpdate:modelValue":e[13]||(e[13]=a=>U.value=a),title:r.value.id?"编辑时段":"添加时段",width:"520px","destroy-on-close":""},{footer:o(()=>[l(d,{onClick:e[12]||(e[12]=a=>U.value=!1)},{default:o(()=>[...e[39]||(e[39]=[s("取消",-1)])]),_:1}),l(d,{type:"primary",loading:A.value,onClick:ie},{default:o(()=>[...e[40]||(e[40]=[s("保存",-1)])]),_:1},8,["loading"])]),default:o(()=>[l(g,{model:r.value,"label-width":"110px"},{default:o(()=>[l(n,{label:"接诊时间",required:""},{default:o(()=>[_("div",mt,[l(R,{modelValue:r.value.start_time,"onUpdate:modelValue":e[4]||(e[4]=a=>r.value.start_time=a),start:"00:00",step:"00:5",end:"23:45",placeholder:"开始",style:{width:"120px"}},null,8,["modelValue"]),e[32]||(e[32]=_("span",null,"至",-1)),l(R,{modelValue:r.value.end_time,"onUpdate:modelValue":e[5]||(e[5]=a=>r.value.end_time=a),start:"00:00",step:"00:5",end:"23:45",placeholder:"结束",style:{width:"120px"}},null,8,["modelValue"])])]),_:1}),l(n,{label:"班次标签"},{default:o(()=>[l(G,{modelValue:r.value.shift_type,"onUpdate:modelValue":e[6]||(e[6]=a=>r.value.shift_type=a),placeholder:"选填",clearable:"",style:{width:"200px"}},{default:o(()=>[l(S,{label:"白班",value:"day"}),l(S,{label:"夜班",value:"night"})]),_:1},8,["modelValue"])]),_:1}),l(n,{label:"号源间隔(分)"},{default:o(()=>[l(I,{modelValue:r.value.slot_minutes,"onUpdate:modelValue":e[7]||(e[7]=a=>r.value.slot_minutes=a),min:5,max:120,step:5},null,8,["modelValue"]),e[33]||(e[33]=_("span",{class:"ml-2 text-gray-500 text-sm"},"默认 15",-1))]),_:1}),l(n,{label:"状态"},{default:o(()=>[l(ee,{modelValue:r.value.status,"onUpdate:modelValue":e[8]||(e[8]=a=>r.value.status=a)},{default:o(()=>[l(D,{label:1},{default:o(()=>[...e[34]||(e[34]=[s("出诊",-1)])]),_:1}),l(D,{label:2},{default:o(()=>[...e[35]||(e[35]=[s("停诊",-1)])]),_:1}),l(D,{label:3},{default:o(()=>[...e[36]||(e[36]=[s("休息",-1)])]),_:1}),l(D,{label:4},{default:o(()=>[...e[37]||(e[37]=[s("请假",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),r.value.status===1?(v(),M(n,{key:0,label:"号源上限"},{default:o(()=>[l(I,{modelValue:r.value.quota,"onUpdate:modelValue":e[9]||(e[9]=a=>r.value.quota=a),min:0,max:200},null,8,["modelValue"]),e[38]||(e[38]=_("div",{class:"text-gray-500 text-xs mt-1"},"0 表示不限制(由时段÷间隔计算可约数)",-1))]),_:1})):te("",!0),r.value.status===1?(v(),M(n,{key:1,label:"最大接诊"},{default:o(()=>[l(I,{modelValue:r.value.max_patients,"onUpdate:modelValue":e[10]||(e[10]=a=>r.value.max_patients=a),min:0,max:500},null,8,["modelValue"])]),_:1})):te("",!0),l(n,{label:"备注"},{default:o(()=>[l(i,{modelValue:r.value.remark,"onUpdate:modelValue":e[11]||(e[11]=a=>r.value.remark=a),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),l(O,{modelValue:$.value,"onUpdate:modelValue":e[20]||(e[20]=a=>$.value=a),title:"批量排班",width:"780px","destroy-on-close":""},{footer:o(()=>[l(d,{onClick:e[19]||(e[19]=a=>$.value=!1)},{default:o(()=>[...e[58]||(e[58]=[s("取消",-1)])]),_:1}),l(d,{type:"primary",onClick:we,loading:z.value},{default:o(()=>[...e[59]||(e[59]=[s("确定",-1)])]),_:1},8,["loading"])]),default:o(()=>[l(g,{model:u.value,"label-width":"100px"},{default:o(()=>[l(n,{label:"选择医生",required:""},{default:o(()=>[l(G,{modelValue:u.value.doctorIds,"onUpdate:modelValue":e[14]||(e[14]=a=>u.value.doctorIds=a),multiple:"",placeholder:"请选择医生",class:"w-full",filterable:""},{default:o(()=>[(v(!0),k(N,null,T(E.value,a=>(v(),M(S,{key:a.doctorId,label:a.doctorName,value:a.doctorId},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(n,{label:"日期范围",required:""},{default:o(()=>[l(Ce,{modelValue:u.value.dateRange,"onUpdate:modelValue":e[15]||(e[15]=a=>u.value.dateRange=a),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1}),l(n,{label:"星期",required:""},{default:o(()=>[l(Ye,{modelValue:u.value.weekdays,"onUpdate:modelValue":e[16]||(e[16]=a=>u.value.weekdays=a)},{default:o(()=>[l(q,{label:1},{default:o(()=>[...e[41]||(e[41]=[s("周一",-1)])]),_:1}),l(q,{label:2},{default:o(()=>[...e[42]||(e[42]=[s("周二",-1)])]),_:1}),l(q,{label:3},{default:o(()=>[...e[43]||(e[43]=[s("周三",-1)])]),_:1}),l(q,{label:4},{default:o(()=>[...e[44]||(e[44]=[s("周四",-1)])]),_:1}),l(q,{label:5},{default:o(()=>[...e[45]||(e[45]=[s("周五",-1)])]),_:1}),l(q,{label:6},{default:o(()=>[...e[46]||(e[46]=[s("周六",-1)])]),_:1}),l(q,{label:0},{default:o(()=>[...e[47]||(e[47]=[s("周日",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(n,{label:"时段模板"},{default:o(()=>[_("div",ft,[(v(!0),k(N,null,T(u.value.segments,(a,C)=>(v(),k("div",{key:C,class:"flex flex-wrap items-center gap-2 p-2 bg-gray-50 rounded"},[l(R,{modelValue:a.start_time,"onUpdate:modelValue":f=>a.start_time=f,start:"00:00",step:"00:05",end:"23:45",placeholder:"开始",style:{width:"110px"}},null,8,["modelValue","onUpdate:modelValue"]),e[49]||(e[49]=_("span",null,"—",-1)),l(R,{modelValue:a.end_time,"onUpdate:modelValue":f=>a.end_time=f,start:"00:00",step:"00:05",end:"23:45",placeholder:"结束",style:{width:"110px"}},null,8,["modelValue","onUpdate:modelValue"]),l(G,{modelValue:a.shift_type,"onUpdate:modelValue":f=>a.shift_type=f,placeholder:"班次",clearable:"",style:{width:"100px"}},{default:o(()=>[l(S,{label:"白班",value:"day"}),l(S,{label:"夜班",value:"night"})]),_:1},8,["modelValue","onUpdate:modelValue"]),e[50]||(e[50]=_("span",{class:"text-sm text-gray-500"},"间隔",-1)),l(I,{modelValue:a.slot_minutes,"onUpdate:modelValue":f=>a.slot_minutes=f,min:5,max:120,step:5,style:{width:"100px"}},null,8,["modelValue","onUpdate:modelValue"]),e[51]||(e[51]=_("span",{class:"text-sm text-gray-500"},"号源0=不限",-1)),l(I,{modelValue:a.quota,"onUpdate:modelValue":f=>a.quota=f,min:0,max:200,style:{width:"100px"}},null,8,["modelValue","onUpdate:modelValue"]),l(d,{type:"danger",link:"",onClick:f=>ce(C),disabled:u.value.segments.length<=1},{default:o(()=>[...e[48]||(e[48]=[s("删除",-1)])]),_:1},8,["onClick","disabled"])]))),128)),l(d,{type:"primary",link:"",onClick:Ve},{default:o(()=>[...e[52]||(e[52]=[s("+ 增加一段",-1)])]),_:1}),l(d,{type:"success",link:"",onClick:xe},{default:o(()=>[...e[53]||(e[53]=[s("+ 夜班 18:00–22:00",-1)])]),_:1})])]),_:1}),l(n,{label:"排班状态",required:""},{default:o(()=>[l(ee,{modelValue:u.value.status,"onUpdate:modelValue":e[17]||(e[17]=a=>u.value.status=a)},{default:o(()=>[l(D,{label:1},{default:o(()=>[...e[54]||(e[54]=[s("出诊",-1)])]),_:1}),l(D,{label:2},{default:o(()=>[...e[55]||(e[55]=[s("停诊",-1)])]),_:1}),l(D,{label:3},{default:o(()=>[...e[56]||(e[56]=[s("休息",-1)])]),_:1}),l(D,{label:4},{default:o(()=>[...e[57]||(e[57]=[s("请假",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(n,{label:"备注"},{default:o(()=>[l(i,{modelValue:u.value.remark,"onUpdate:modelValue":e[18]||(e[18]=a=>u.value.remark=a),type:"textarea",rows:2},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),Vt=Xe(vt,[["__scopeId","data-v-8e605af4"]]);export{Vt as default}; diff --git a/server/public/admin/assets/self_input_stats-CIFG1oqD.js b/server/public/admin/assets/self_input_stats-DXFvDfvT.js similarity index 91% rename from server/public/admin/assets/self_input_stats-CIFG1oqD.js rename to server/public/admin/assets/self_input_stats-DXFvDfvT.js index ae5dc9551..a5894e919 100644 --- a/server/public/admin/assets/self_input_stats-CIFG1oqD.js +++ b/server/public/admin/assets/self_input_stats-DXFvDfvT.js @@ -1 +1 @@ -import{r as s}from"./index-Dxvz9lb1.js";function n(t){return s.get({url:"/stats.self_input/overview",params:t})}function o(){return s.get({url:"/stats.self_input/mediaSourceOptions"})}function r(t){return s.post({url:"/stats.personal_yeji/add",data:t})}function a(t){return s.post({url:"/stats.personal_yeji/edit",data:t})}function u(t){return s.post({url:"/stats.personal_yeji/delete",params:t})}function c(t){return s.get({url:"/stats.personal_account_cost/lists",params:t})}function l(t){return s.post({url:"/stats.personal_account_cost/add",data:t})}function i(t){return s.post({url:"/stats.personal_account_cost/edit",data:t})}function p(t){return s.post({url:"/stats.personal_account_cost/delete",params:t})}export{p as a,i as b,l as c,n as d,u as e,a as f,o as g,r as h,c as p}; +import{r as s}from"./index-Bkarz3gO.js";function n(t){return s.get({url:"/stats.self_input/overview",params:t})}function o(){return s.get({url:"/stats.self_input/mediaSourceOptions"})}function r(t){return s.post({url:"/stats.personal_yeji/add",data:t})}function a(t){return s.post({url:"/stats.personal_yeji/edit",data:t})}function u(t){return s.post({url:"/stats.personal_yeji/delete",params:t})}function c(t){return s.get({url:"/stats.personal_account_cost/lists",params:t})}function l(t){return s.post({url:"/stats.personal_account_cost/add",data:t})}function i(t){return s.post({url:"/stats.personal_account_cost/edit",data:t})}function p(t){return s.post({url:"/stats.personal_account_cost/delete",params:t})}export{p as a,i as b,l as c,n as d,u as e,a as f,o as g,r as h,c as p}; diff --git a/server/public/admin/assets/setting-DOvqZWBR.js b/server/public/admin/assets/setting-CGBCFQc2.js similarity index 93% rename from server/public/admin/assets/setting-DOvqZWBR.js rename to server/public/admin/assets/setting-CGBCFQc2.js index a5c750e85..f168f69d1 100644 --- a/server/public/admin/assets/setting-DOvqZWBR.js +++ b/server/public/admin/assets/setting-CGBCFQc2.js @@ -1 +1 @@ -import{o as L,ap as K,aq as H,q as u,r as m,v as s,D as t,bd as J,bb as X,s as i,aA as G,O as Q,F as B,bm as Y,w as Z,u as V,at as $,L as p,T as ee,K as oe,d6 as se,P as ae,bj as te,ba as re,aB as ne,M as w,aC as q,n as D,E as v}from"./.pnpm-CyuAWpdG.js";import{_ as le}from"./index-9qT8_5W1.js";import{_ as de}from"./picker-BDO86vcM.js";import{u as ie,a as ce,j as c,aa as ue,b as _e,ab as me,_ as pe}from"./index-Dxvz9lb1.js";import{a as we}from"./wecomOauthPostMessage-C_e6VGrO.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const fe={class:"user-setting"},ge={class:"w-80"},be={class:"w-80"},ke={class:"flex items-center gap-3"},ve={class:"w-80"},ye={class:"w-80"},he={class:"w-80"},xe={class:"bind-qrcode-wrap"},Ve={key:0,class:"text-center py-8"},Ue={key:1,id:"bind_wxwork_qrcode",class:"bind-qrcode"},Ee=L({name:"userSetting"}),Ie=L({...Ee,setup(Ce){const U=w(),f=ie(),o=q({avatar:"",account:"",name:"",work_wechat_userid:"",password_old:"",password:"",password_confirm:""}),M=q({avatar:[{required:!0,message:"头像不能为空",trigger:["change"]}],name:[{required:!0,message:"请输入名称",trigger:["blur"]}]}),g="like_admin_wx_bind_oauth",E=w(!1),y=w({corp_id:"",agent_id:""}),b=w(!1),k=w(!1);let l=null;const S=async()=>{const a=f.userInfo;for(const e in o)a[e]!==void 0&&(o[e]=a[e])},W=async()=>{if(o.password_old||o.password||o.password_confirm){if(!o.password_old)return c.msgError("请输入当前密码");if(!o.password)return c.msgError("请输入新的密码");if(!o.password_confirm)return c.msgError("请输入确定密码");if(o.password_confirm!=o.password)return c.msgError("两次输入的密码不一样")}if(o.password_old&&o.password&&o.password_confirm){if(o.password_old.length<6||o.password_old.length>32)return c.msgError("密码长度在6到32之间");if(o.password.length<6||o.password.length>32)return c.msgError("密码长度在6到32之间");if(o.password_confirm.length<6||o.password_confirm.length>32)return c.msgError("密码长度在6到32之间")}const{work_wechat_userid:a,...e}=o;await me(e),f.getUserInfo()},N=async()=>{var a;await((a=U.value)==null?void 0:a.validate()),W()},R=()=>window.location.origin+window.location.pathname+"?bind_wxwork=1",T=async()=>{b.value=!0,k.value=!0,window.WwLogin||await new Promise((e,_)=>{const r=document.createElement("script");r.src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js",r.onload=()=>e(),r.onerror=()=>_(new Error("加载企业微信JS失败")),document.head.appendChild(r)}),await D(),k.value=!1,await D(),l==null||l(),l=we({pathIncludes:"user/setting",lockKey:g,wxBindState:"bind_wxwork",onCode:e=>I(e)});const a=encodeURIComponent(R());new window.WwLogin({id:"bind_wxwork_qrcode",appid:y.value.corp_id,agentid:y.value.agent_id,redirect_uri:a,lang:"zh",state:"bind_wxwork",href:"",self_redirect:!1})},j=()=>{k.value=!1,l==null||l(),l=null},z=async()=>{await c.confirm("确定要解绑企业微信吗?解绑后将无法使用企业微信扫码登录。");try{await ue(),o.work_wechat_userid="",v.success("解绑成功"),f.getUserInfo()}catch(a){v.error((a==null?void 0:a.msg)||"解绑失败")}},I=async a=>{try{const e=await _e({code:a});o.work_wechat_userid=(e==null?void 0:e.work_wechat_userid)||"",b.value=!1,v.success("企业微信绑定成功"),f.getUserInfo()}catch(e){v.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"绑定失败")}finally{const e=window.location.pathname;window.history.replaceState({},"",e)}};return K(async()=>{try{const d=await ce();d!=null&&d.enabled&&(E.value=!0,y.value={corp_id:d.corp_id,agent_id:d.agent_id})}catch{}const a=new URLSearchParams(window.location.search),e=a.get("code"),_=a.get("state"),r=a.get("bind_wxwork");if(e&&(_==="bind_wxwork"||r==="1")){if(sessionStorage.getItem(g)===e)return;sessionStorage.setItem(g,e),I(e).finally(()=>{sessionStorage.removeItem(g)})}}),S(),H(()=>{l==null||l(),l=null}),(a,e)=>{const _=de,r=X,d=G,h=Z,C=Y,x=oe,F=J,O=te,P=le,A=ne;return u(),m("div",fe,[s(O,{class:"!border-none",shadow:"never"},{default:t(()=>[s(F,{ref_key:"formRef",ref:U,class:"ls-form",model:o,rules:M,"label-width":"100px"},{default:t(()=>[s(r,{label:"头像:",prop:"avatar"},{default:t(()=>[s(_,{modelValue:o.avatar,"onUpdate:modelValue":e[0]||(e[0]=n=>o.avatar=n),limit:1},null,8,["modelValue"])]),_:1}),s(r,{label:"账号:",prop:"account"},{default:t(()=>[i("div",ge,[s(d,{modelValue:o.account,"onUpdate:modelValue":e[1]||(e[1]=n=>o.account=n),disabled:""},null,8,["modelValue"])])]),_:1}),s(r,{label:"名称:",prop:"name"},{default:t(()=>[i("div",be,[s(d,{modelValue:o.name,"onUpdate:modelValue":e[2]||(e[2]=n=>o.name=n),placeholder:"请输入名称"},null,8,["modelValue"])])]),_:1}),E.value?(u(),Q(r,{key:0,label:"企业微信:"},{default:t(()=>[i("div",ke,[o.work_wechat_userid?(u(),m(B,{key:0},[s(C,{type:"success",size:"large"},{default:t(()=>[s(h,{class:"mr-1"},{default:t(()=>[s(V($))]),_:1}),p(" 已绑定("+ee(o.work_wechat_userid)+") ",1)]),_:1}),s(x,{type:"danger",link:"",onClick:z},{default:t(()=>[...e[7]||(e[7]=[p("解绑",-1)])]),_:1})],64)):(u(),m(B,{key:1},[s(C,{type:"info",size:"large"},{default:t(()=>[...e[8]||(e[8]=[p("未绑定",-1)])]),_:1}),s(x,{type:"primary",onClick:T},{default:t(()=>[s(h,{class:"mr-1"},{default:t(()=>[s(V(se))]),_:1}),e[9]||(e[9]=p(" 扫码绑定 ",-1))]),_:1})],64))])]),_:1})):ae("",!0),s(r,{label:"当前密码:",prop:"password_old"},{default:t(()=>[i("div",ve,[s(d,{modelValue:o.password_old,"onUpdate:modelValue":e[3]||(e[3]=n=>o.password_old=n),modelModifiers:{trim:!0},placeholder:"修改密码时必填, 不修改密码时留空",type:"password","show-password":""},null,8,["modelValue"])])]),_:1}),s(r,{label:"新的密码:",prop:"password"},{default:t(()=>[i("div",ye,[s(d,{modelValue:o.password,"onUpdate:modelValue":e[4]||(e[4]=n=>o.password=n),modelModifiers:{trim:!0},placeholder:"修改密码时必填, 不修改密码时留空",type:"password","show-password":""},null,8,["modelValue"])])]),_:1}),s(r,{label:"确定密码:",prop:"password_confirm"},{default:t(()=>[i("div",he,[s(d,{modelValue:o.password_confirm,"onUpdate:modelValue":e[5]||(e[5]=n=>o.password_confirm=n),modelModifiers:{trim:!0},placeholder:"修改密码时必填, 不修改密码时留空",type:"password","show-password":""},null,8,["modelValue"])])]),_:1})]),_:1},8,["model","rules"])]),_:1}),s(P,null,{default:t(()=>[s(x,{type:"primary",onClick:N},{default:t(()=>[...e[10]||(e[10]=[p("保存",-1)])]),_:1})]),_:1}),s(A,{modelValue:b.value,"onUpdate:modelValue":e[6]||(e[6]=n=>b.value=n),title:"扫码绑定企业微信",width:"440px","close-on-click-modal":!1,onClose:j},{default:t(()=>[i("div",xe,[k.value?(u(),m("div",Ve,[s(h,{class:"is-loading",size:36,color:"var(--el-color-primary)"},{default:t(()=>[s(V(re))]),_:1}),e[11]||(e[11]=i("div",{class:"mt-3 text-gray-400"},"加载企业微信扫码...",-1))])):(u(),m("div",Ue))]),e[12]||(e[12]=i("div",{class:"text-center text-sm text-gray-400 mt-2 mb-2"}," 请使用企业微信扫描二维码完成绑定 ",-1))]),_:1},8,["modelValue"])])}}}),Oe=pe(Ie,[["__scopeId","data-v-e7afb159"]]);export{Oe as default}; +import{o as L,ap as K,aq as H,q as u,r as m,v as s,D as t,bd as J,bb as X,s as i,aA as G,O as Q,F as B,bm as Y,w as Z,u as V,at as $,L as p,T as ee,K as oe,d6 as se,P as ae,bj as te,ba as re,aB as ne,M as w,aC as q,n as D,E as v}from"./.pnpm-CyuAWpdG.js";import{_ as le}from"./index-DIl3M8Wa.js";import{_ as de}from"./picker-BTh9eW9u.js";import{u as ie,a as ce,j as c,aa as ue,b as _e,ab as me,_ as pe}from"./index-Bkarz3gO.js";import{a as we}from"./wecomOauthPostMessage-C_e6VGrO.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const fe={class:"user-setting"},ge={class:"w-80"},be={class:"w-80"},ke={class:"flex items-center gap-3"},ve={class:"w-80"},ye={class:"w-80"},he={class:"w-80"},xe={class:"bind-qrcode-wrap"},Ve={key:0,class:"text-center py-8"},Ue={key:1,id:"bind_wxwork_qrcode",class:"bind-qrcode"},Ee=L({name:"userSetting"}),Ie=L({...Ee,setup(Ce){const U=w(),f=ie(),o=q({avatar:"",account:"",name:"",work_wechat_userid:"",password_old:"",password:"",password_confirm:""}),M=q({avatar:[{required:!0,message:"头像不能为空",trigger:["change"]}],name:[{required:!0,message:"请输入名称",trigger:["blur"]}]}),g="like_admin_wx_bind_oauth",E=w(!1),y=w({corp_id:"",agent_id:""}),b=w(!1),k=w(!1);let l=null;const S=async()=>{const a=f.userInfo;for(const e in o)a[e]!==void 0&&(o[e]=a[e])},W=async()=>{if(o.password_old||o.password||o.password_confirm){if(!o.password_old)return c.msgError("请输入当前密码");if(!o.password)return c.msgError("请输入新的密码");if(!o.password_confirm)return c.msgError("请输入确定密码");if(o.password_confirm!=o.password)return c.msgError("两次输入的密码不一样")}if(o.password_old&&o.password&&o.password_confirm){if(o.password_old.length<6||o.password_old.length>32)return c.msgError("密码长度在6到32之间");if(o.password.length<6||o.password.length>32)return c.msgError("密码长度在6到32之间");if(o.password_confirm.length<6||o.password_confirm.length>32)return c.msgError("密码长度在6到32之间")}const{work_wechat_userid:a,...e}=o;await me(e),f.getUserInfo()},N=async()=>{var a;await((a=U.value)==null?void 0:a.validate()),W()},R=()=>window.location.origin+window.location.pathname+"?bind_wxwork=1",T=async()=>{b.value=!0,k.value=!0,window.WwLogin||await new Promise((e,_)=>{const r=document.createElement("script");r.src="https://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js",r.onload=()=>e(),r.onerror=()=>_(new Error("加载企业微信JS失败")),document.head.appendChild(r)}),await D(),k.value=!1,await D(),l==null||l(),l=we({pathIncludes:"user/setting",lockKey:g,wxBindState:"bind_wxwork",onCode:e=>I(e)});const a=encodeURIComponent(R());new window.WwLogin({id:"bind_wxwork_qrcode",appid:y.value.corp_id,agentid:y.value.agent_id,redirect_uri:a,lang:"zh",state:"bind_wxwork",href:"",self_redirect:!1})},j=()=>{k.value=!1,l==null||l(),l=null},z=async()=>{await c.confirm("确定要解绑企业微信吗?解绑后将无法使用企业微信扫码登录。");try{await ue(),o.work_wechat_userid="",v.success("解绑成功"),f.getUserInfo()}catch(a){v.error((a==null?void 0:a.msg)||"解绑失败")}},I=async a=>{try{const e=await _e({code:a});o.work_wechat_userid=(e==null?void 0:e.work_wechat_userid)||"",b.value=!1,v.success("企业微信绑定成功"),f.getUserInfo()}catch(e){v.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"绑定失败")}finally{const e=window.location.pathname;window.history.replaceState({},"",e)}};return K(async()=>{try{const d=await ce();d!=null&&d.enabled&&(E.value=!0,y.value={corp_id:d.corp_id,agent_id:d.agent_id})}catch{}const a=new URLSearchParams(window.location.search),e=a.get("code"),_=a.get("state"),r=a.get("bind_wxwork");if(e&&(_==="bind_wxwork"||r==="1")){if(sessionStorage.getItem(g)===e)return;sessionStorage.setItem(g,e),I(e).finally(()=>{sessionStorage.removeItem(g)})}}),S(),H(()=>{l==null||l(),l=null}),(a,e)=>{const _=de,r=X,d=G,h=Z,C=Y,x=oe,F=J,O=te,P=le,A=ne;return u(),m("div",fe,[s(O,{class:"!border-none",shadow:"never"},{default:t(()=>[s(F,{ref_key:"formRef",ref:U,class:"ls-form",model:o,rules:M,"label-width":"100px"},{default:t(()=>[s(r,{label:"头像:",prop:"avatar"},{default:t(()=>[s(_,{modelValue:o.avatar,"onUpdate:modelValue":e[0]||(e[0]=n=>o.avatar=n),limit:1},null,8,["modelValue"])]),_:1}),s(r,{label:"账号:",prop:"account"},{default:t(()=>[i("div",ge,[s(d,{modelValue:o.account,"onUpdate:modelValue":e[1]||(e[1]=n=>o.account=n),disabled:""},null,8,["modelValue"])])]),_:1}),s(r,{label:"名称:",prop:"name"},{default:t(()=>[i("div",be,[s(d,{modelValue:o.name,"onUpdate:modelValue":e[2]||(e[2]=n=>o.name=n),placeholder:"请输入名称"},null,8,["modelValue"])])]),_:1}),E.value?(u(),Q(r,{key:0,label:"企业微信:"},{default:t(()=>[i("div",ke,[o.work_wechat_userid?(u(),m(B,{key:0},[s(C,{type:"success",size:"large"},{default:t(()=>[s(h,{class:"mr-1"},{default:t(()=>[s(V($))]),_:1}),p(" 已绑定("+ee(o.work_wechat_userid)+") ",1)]),_:1}),s(x,{type:"danger",link:"",onClick:z},{default:t(()=>[...e[7]||(e[7]=[p("解绑",-1)])]),_:1})],64)):(u(),m(B,{key:1},[s(C,{type:"info",size:"large"},{default:t(()=>[...e[8]||(e[8]=[p("未绑定",-1)])]),_:1}),s(x,{type:"primary",onClick:T},{default:t(()=>[s(h,{class:"mr-1"},{default:t(()=>[s(V(se))]),_:1}),e[9]||(e[9]=p(" 扫码绑定 ",-1))]),_:1})],64))])]),_:1})):ae("",!0),s(r,{label:"当前密码:",prop:"password_old"},{default:t(()=>[i("div",ve,[s(d,{modelValue:o.password_old,"onUpdate:modelValue":e[3]||(e[3]=n=>o.password_old=n),modelModifiers:{trim:!0},placeholder:"修改密码时必填, 不修改密码时留空",type:"password","show-password":""},null,8,["modelValue"])])]),_:1}),s(r,{label:"新的密码:",prop:"password"},{default:t(()=>[i("div",ye,[s(d,{modelValue:o.password,"onUpdate:modelValue":e[4]||(e[4]=n=>o.password=n),modelModifiers:{trim:!0},placeholder:"修改密码时必填, 不修改密码时留空",type:"password","show-password":""},null,8,["modelValue"])])]),_:1}),s(r,{label:"确定密码:",prop:"password_confirm"},{default:t(()=>[i("div",he,[s(d,{modelValue:o.password_confirm,"onUpdate:modelValue":e[5]||(e[5]=n=>o.password_confirm=n),modelModifiers:{trim:!0},placeholder:"修改密码时必填, 不修改密码时留空",type:"password","show-password":""},null,8,["modelValue"])])]),_:1})]),_:1},8,["model","rules"])]),_:1}),s(P,null,{default:t(()=>[s(x,{type:"primary",onClick:N},{default:t(()=>[...e[10]||(e[10]=[p("保存",-1)])]),_:1})]),_:1}),s(A,{modelValue:b.value,"onUpdate:modelValue":e[6]||(e[6]=n=>b.value=n),title:"扫码绑定企业微信",width:"440px","close-on-click-modal":!1,onClose:j},{default:t(()=>[i("div",xe,[k.value?(u(),m("div",Ve,[s(h,{class:"is-loading",size:36,color:"var(--el-color-primary)"},{default:t(()=>[s(V(re))]),_:1}),e[11]||(e[11]=i("div",{class:"mt-3 text-gray-400"},"加载企业微信扫码...",-1))])):(u(),m("div",Ue))]),e[12]||(e[12]=i("div",{class:"text-center text-sm text-gray-400 mt-2 mb-2"}," 请使用企业微信扫描二维码完成绑定 ",-1))]),_:1},8,["modelValue"])])}}}),Oe=pe(Ie,[["__scopeId","data-v-e7afb159"]]);export{Oe as default}; diff --git a/server/public/admin/assets/setup-twSmrQP7.js b/server/public/admin/assets/setup-CN5hIK9U.js similarity index 78% rename from server/public/admin/assets/setup-twSmrQP7.js rename to server/public/admin/assets/setup-CN5hIK9U.js index 05ff247d4..897fe0592 100644 --- a/server/public/admin/assets/setup-twSmrQP7.js +++ b/server/public/admin/assets/setup-CN5hIK9U.js @@ -1 +1 @@ -import{_ as y}from"./index-9qT8_5W1.js";import{o as p,bp as k,q as i,r as w,v as a,D as r,s,bd as C,u as n,bb as V,bj as x,ac as B,O as D,K as E,L as S,aC as j}from"./.pnpm-CyuAWpdG.js";import{_ as N}from"./picker-BDO86vcM.js";import{a as U,b as F}from"./user-6rizCW07.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";import"./index-yD39j6dM.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-ClBYIwNX.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const h={class:"user-setup"},q=p({name:"userSetup"}),W=p({...q,setup(I){const e=j({default_avatar:""}),l=async()=>{try{const o=await U();for(const t in e)e[t]=o[t]}catch(o){console.log("获取=>",o)}},_=async()=>{try{await F(e),l()}catch(o){console.log("保存=>",o)}};return l(),(o,t)=>{const u=N,m=V,c=C,d=x,f=E,v=y,b=k("perms");return i(),w("div",h,[a(d,{shadow:"never",class:"!border-none"},{default:r(()=>[t[2]||(t[2]=s("div",{class:"font-medium mb-7"},"基本设置",-1)),a(c,{ref:"formRef",model:n(e),"label-width":"120px"},{default:r(()=>[a(m,{label:"用户默认头像"},{default:r(()=>[s("div",null,[a(u,{modelValue:n(e).default_avatar,"onUpdate:modelValue":t[0]||(t[0]=g=>n(e).default_avatar=g),limit:1},null,8,["modelValue"])])]),_:1}),a(m,null,{default:r(()=>[...t[1]||(t[1]=[s("div",null,[s("div",{class:"form-tips"}," 用户注册时给的默认头像,建议尺寸:400*400像素,支持jpg,jpeg,png格式 ")],-1)])]),_:1})]),_:1},8,["model"])]),_:1}),B((i(),D(v,null,{default:r(()=>[a(f,{type:"primary",onClick:_},{default:r(()=>[...t[3]||(t[3]=[S("保存",-1)])]),_:1})]),_:1})),[[b,["setting.user.user/setConfig"]]])])}}});export{W as default}; +import{_ as y}from"./index-DIl3M8Wa.js";import{o as p,bp as k,q as i,r as w,v as a,D as r,s,bd as C,u as n,bb as V,bj as x,ac as B,O as D,K as E,L as S,aC as j}from"./.pnpm-CyuAWpdG.js";import{_ as N}from"./picker-BTh9eW9u.js";import{a as U,b as F}from"./user-DrLRwVd-.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const h={class:"user-setup"},q=p({name:"userSetup"}),W=p({...q,setup(I){const e=j({default_avatar:""}),l=async()=>{try{const o=await U();for(const t in e)e[t]=o[t]}catch(o){console.log("获取=>",o)}},_=async()=>{try{await F(e),l()}catch(o){console.log("保存=>",o)}};return l(),(o,t)=>{const u=N,m=V,c=C,d=x,f=E,v=y,b=k("perms");return i(),w("div",h,[a(d,{shadow:"never",class:"!border-none"},{default:r(()=>[t[2]||(t[2]=s("div",{class:"font-medium mb-7"},"基本设置",-1)),a(c,{ref:"formRef",model:n(e),"label-width":"120px"},{default:r(()=>[a(m,{label:"用户默认头像"},{default:r(()=>[s("div",null,[a(u,{modelValue:n(e).default_avatar,"onUpdate:modelValue":t[0]||(t[0]=g=>n(e).default_avatar=g),limit:1},null,8,["modelValue"])])]),_:1}),a(m,null,{default:r(()=>[...t[1]||(t[1]=[s("div",null,[s("div",{class:"form-tips"}," 用户注册时给的默认头像,建议尺寸:400*400像素,支持jpg,jpeg,png格式 ")],-1)])]),_:1})]),_:1},8,["model"])]),_:1}),B((i(),D(v,null,{default:r(()=>[a(f,{type:"primary",onClick:_},{default:r(()=>[...t[3]||(t[3]=[S("保存",-1)])]),_:1})]),_:1})),[[b,["setting.user.user/setConfig"]]])])}}});export{W as default}; diff --git a/server/public/admin/assets/statistics-D2hIl0ao.js b/server/public/admin/assets/statistics-CjBqOHNC.js similarity index 88% rename from server/public/admin/assets/statistics-D2hIl0ao.js rename to server/public/admin/assets/statistics-CjBqOHNC.js index 80303b5c8..f82811a95 100644 --- a/server/public/admin/assets/statistics-D2hIl0ao.js +++ b/server/public/admin/assets/statistics-CjBqOHNC.js @@ -1 +1 @@ -import{_ as g}from"./index-9qT8_5W1.js";import{o as _,ap as k,bp as D,q as m,r as h,v as s,D as a,bj as E,s as l,bb as V,aA as B,u as r,L as n,bd as I,ac as S,O as M,K as N,M as F,aC as R}from"./.pnpm-CyuAWpdG.js";import{e as j,f as q}from"./website-DRg8FnbB.js";import"./index-Dxvz9lb1.js";const A={class:"website-statistics"},K={class:"flex flex-col"},L={class:"w-80"},O=_({name:"webInformation"}),H=_({...O,setup(T){const i=F(),e=R({clarity_code:""}),d={},c=async()=>{const o=await j();for(const t in e)e[t]=o[t]},f=async()=>{var o;await((o=i.value)==null?void 0:o.validate()),await q(e),c()};return k(()=>{c()}),(o,t)=>{const p=B,u=V,b=E,y=I,v=N,w=g,x=D("perms");return m(),h("div",A,[s(y,{ref_key:"formRef",ref:i,rules:d,class:"ls-form",model:r(e),"scroll-to-error":"","label-width":"120px"},{default:a(()=>[s(b,{shadow:"never",class:"!border-none"},{default:a(()=>[t[2]||(t[2]=l("div",{class:"text-xl font-medium mb-[20px]"},"Clarity配置",-1)),s(u,{label:"应用ID",prop:"clarity_code"},{default:a(()=>[l("div",K,[l("div",L,[s(p,{modelValue:r(e).clarity_code,"onUpdate:modelValue":t[0]||(t[0]=C=>r(e).clarity_code=C),modelModifiers:{trim:!0},placeholder:"请填写应用ID",maxlength:"10","show-word-limit":""},null,8,["modelValue"])]),t[1]||(t[1]=l("div",{class:"form-tips"},[n(" 请前往"),l("a",{class:"text-primary",href:"https://clarity.microsoft.com",target:"_blank"}," 《Clarity官网》 "),n(" 创建Clarity统计应用 ")],-1))])]),_:1})]),_:1})]),_:1},8,["model"]),S((m(),M(w,null,{default:a(()=>[s(v,{type:"primary",onClick:f},{default:a(()=>[...t[3]||(t[3]=[n("保存",-1)])]),_:1})]),_:1})),[[x,["setting.web.web_setting/setWebsite"]]])])}}});export{H as default}; +import{_ as g}from"./index-DIl3M8Wa.js";import{o as _,ap as k,bp as D,q as m,r as h,v as s,D as a,bj as E,s as l,bb as V,aA as B,u as r,L as n,bd as I,ac as S,O as M,K as N,M as F,aC as R}from"./.pnpm-CyuAWpdG.js";import{e as j,f as q}from"./website-Uj_9T8tc.js";import"./index-Bkarz3gO.js";const A={class:"website-statistics"},K={class:"flex flex-col"},L={class:"w-80"},O=_({name:"webInformation"}),H=_({...O,setup(T){const i=F(),e=R({clarity_code:""}),d={},c=async()=>{const o=await j();for(const t in e)e[t]=o[t]},f=async()=>{var o;await((o=i.value)==null?void 0:o.validate()),await q(e),c()};return k(()=>{c()}),(o,t)=>{const p=B,u=V,b=E,y=I,v=N,w=g,x=D("perms");return m(),h("div",A,[s(y,{ref_key:"formRef",ref:i,rules:d,class:"ls-form",model:r(e),"scroll-to-error":"","label-width":"120px"},{default:a(()=>[s(b,{shadow:"never",class:"!border-none"},{default:a(()=>[t[2]||(t[2]=l("div",{class:"text-xl font-medium mb-[20px]"},"Clarity配置",-1)),s(u,{label:"应用ID",prop:"clarity_code"},{default:a(()=>[l("div",K,[l("div",L,[s(p,{modelValue:r(e).clarity_code,"onUpdate:modelValue":t[0]||(t[0]=C=>r(e).clarity_code=C),modelModifiers:{trim:!0},placeholder:"请填写应用ID",maxlength:"10","show-word-limit":""},null,8,["modelValue"])]),t[1]||(t[1]=l("div",{class:"form-tips"},[n(" 请前往"),l("a",{class:"text-primary",href:"https://clarity.microsoft.com",target:"_blank"}," 《Clarity官网》 "),n(" 创建Clarity统计应用 ")],-1))])]),_:1})]),_:1})]),_:1},8,["model"]),S((m(),M(w,null,{default:a(()=>[s(v,{type:"primary",onClick:f},{default:a(()=>[...t[3]||(t[3]=[n("保存",-1)])]),_:1})]),_:1})),[[x,["setting.web.web_setting/setWebsite"]]])])}}});export{H as default}; diff --git a/server/public/admin/assets/stats-Bao68QGi.js b/server/public/admin/assets/stats-B9TgZYZ_.js similarity index 97% rename from server/public/admin/assets/stats-Bao68QGi.js rename to server/public/admin/assets/stats-B9TgZYZ_.js index 1fbbf2b94..3b29cc7cc 100644 --- a/server/public/admin/assets/stats-Bao68QGi.js +++ b/server/public/admin/assets/stats-B9TgZYZ_.js @@ -1 +1 @@ -import{r as e}from"./index-Dxvz9lb1.js";function o(t){return e.get({url:"/stats.performanceDashboard/overview",params:t,timeout:12e4},{ignoreCancelToken:!0})}function a(t){return e.get({url:"/stats.conversion/overview",params:t})}function u(t){return e.get({url:"/stats.yejiStats/overview",params:t})}function c(t){return e.get({url:"/stats.yejiStats/multi",params:t})}function l(){return e.get({url:"/stats.yejiStats/deptOptions"})}function m(){return e.get({url:"/stats.yejiStats/channelOptions"})}function v(t){return e.get({url:"/stats.yejiStats/leaderboard",params:t})}function g(t){return e.get({url:"/stats.yejiStats/unassignedBreakdown",params:t})}function f(t){return e.get({url:"/stats.yejiStats/leadLines",params:t})}function S(t){return e.get({url:"/stats.yejiStats/appointmentLines",params:t})}function p(t){return e.get({url:"/stats.yejiStats/revisitBreakdown",params:t})}function O(t){return e.get({url:"/stats.yejiStats/assignLines",params:t})}function d(t){return e.get({url:"/stats.doctorDailyStats/overview",params:t})}const i=12e4;function L(t){return e.get({url:"/stats.commissionSettlement/overview",params:t,timeout:i},{ignoreCancelToken:!0})}function y(){return e.get({url:"/stats.commissionSettlement/deptOptions"})}function j(){return e.get({url:"/stats.commissionSettlement/channelOptions"})}function w(t){return e.get({url:"/stats.commissionSettlement/orderLines",params:t,timeout:i},{ignoreCancelToken:!0})}function R(t){return e.post({url:"/stats.commissionSettlement/saveReconcile",params:t})}function C(t){return e.post({url:"/stats.commissionSettlement/confirmFinalize",params:t,timeout:i},{ignoreCancelToken:!0})}function h(t){return e.post({url:"/stats.commissionSettlement/confirmRevoke",params:t})}function k(t){return e.get({url:"/stats.revisitRate/overview",params:t})}function A(){return e.get({url:"/stats.revisitRate/deptOptions"})}function D(t){return e.get({url:"/stats.revisitRate/assignLines",params:t})}function T(t){return e.get({url:"/stats.revisitRate/visitOrderLines",params:t})}function b(t){return e.get({url:"/stats.autoAssignLog/lists",params:t})}function M(t){return e.post({url:"/stats.autoAssignLog/rollback",data:t})}function B(t){return e.get({url:"/stats.assistantPerformance/overview",params:t})}function E(t){return e.get({url:"/stats.assistantPerformance/revisitRate",params:t})}const n=t=>t==="inherit"?"/stats.revisitInheritRate":"/stats.revisitAssignRate";function P(t,s){return e.get({url:`${n(s)}/overview`,params:t})}function I(t){return e.get({url:`${n(t)}/deptOptions`})}function $(t,s){return e.get({url:`${n(s)}/assignLines`,params:t})}function x(t,s){return e.get({url:`${n(s)}/visitOrderLines`,params:t})}export{$ as A,x as B,A as C,k as D,D as E,T as F,y as a,j as b,w as c,L as d,R as e,C as f,h as g,d as h,l as i,m as j,u as k,p as l,f as m,v as n,g as o,O as p,S as q,B as r,E as s,b as t,M as u,a as v,o as w,I as x,c as y,P as z}; +import{r as e}from"./index-Bkarz3gO.js";function o(t){return e.get({url:"/stats.performanceDashboard/overview",params:t,timeout:12e4},{ignoreCancelToken:!0})}function a(t){return e.get({url:"/stats.conversion/overview",params:t})}function u(t){return e.get({url:"/stats.yejiStats/overview",params:t})}function c(t){return e.get({url:"/stats.yejiStats/multi",params:t})}function l(){return e.get({url:"/stats.yejiStats/deptOptions"})}function m(){return e.get({url:"/stats.yejiStats/channelOptions"})}function v(t){return e.get({url:"/stats.yejiStats/leaderboard",params:t})}function g(t){return e.get({url:"/stats.yejiStats/unassignedBreakdown",params:t})}function f(t){return e.get({url:"/stats.yejiStats/leadLines",params:t})}function S(t){return e.get({url:"/stats.yejiStats/appointmentLines",params:t})}function p(t){return e.get({url:"/stats.yejiStats/revisitBreakdown",params:t})}function O(t){return e.get({url:"/stats.yejiStats/assignLines",params:t})}function d(t){return e.get({url:"/stats.doctorDailyStats/overview",params:t})}const i=12e4;function L(t){return e.get({url:"/stats.commissionSettlement/overview",params:t,timeout:i},{ignoreCancelToken:!0})}function y(){return e.get({url:"/stats.commissionSettlement/deptOptions"})}function j(){return e.get({url:"/stats.commissionSettlement/channelOptions"})}function w(t){return e.get({url:"/stats.commissionSettlement/orderLines",params:t,timeout:i},{ignoreCancelToken:!0})}function R(t){return e.post({url:"/stats.commissionSettlement/saveReconcile",params:t})}function C(t){return e.post({url:"/stats.commissionSettlement/confirmFinalize",params:t,timeout:i},{ignoreCancelToken:!0})}function h(t){return e.post({url:"/stats.commissionSettlement/confirmRevoke",params:t})}function k(t){return e.get({url:"/stats.revisitRate/overview",params:t})}function A(){return e.get({url:"/stats.revisitRate/deptOptions"})}function D(t){return e.get({url:"/stats.revisitRate/assignLines",params:t})}function T(t){return e.get({url:"/stats.revisitRate/visitOrderLines",params:t})}function b(t){return e.get({url:"/stats.autoAssignLog/lists",params:t})}function M(t){return e.post({url:"/stats.autoAssignLog/rollback",data:t})}function B(t){return e.get({url:"/stats.assistantPerformance/overview",params:t})}function E(t){return e.get({url:"/stats.assistantPerformance/revisitRate",params:t})}const n=t=>t==="inherit"?"/stats.revisitInheritRate":"/stats.revisitAssignRate";function P(t,s){return e.get({url:`${n(s)}/overview`,params:t})}function I(t){return e.get({url:`${n(t)}/deptOptions`})}function $(t,s){return e.get({url:`${n(s)}/assignLines`,params:t})}function x(t,s){return e.get({url:`${n(s)}/visitOrderLines`,params:t})}export{$ as A,x as B,A as C,k as D,D as E,T as F,y as a,j as b,w as c,L as d,R as e,C as f,h as g,d as h,l as i,m as j,u as k,p as l,f as m,v as n,g as o,O as p,S as q,B as r,E as s,b as t,M as u,a as v,o as w,I as x,c as y,P as z}; diff --git a/server/public/admin/assets/style-BpIFLEm4.js b/server/public/admin/assets/style-CKMgQxrx.js similarity index 84% rename from server/public/admin/assets/style-BpIFLEm4.js rename to server/public/admin/assets/style-CKMgQxrx.js index fffd50ec0..e111c9f27 100644 --- a/server/public/admin/assets/style-BpIFLEm4.js +++ b/server/public/admin/assets/style-CKMgQxrx.js @@ -1 +1 @@ -import{_ as x}from"./index-9qT8_5W1.js";import{o as k,M as u,cw as B,ap as D,q as s,r as c,v as l,D as t,s as T,Y as h,C as E,u as p,F as _,G as N,O as i,X as L,a4 as O,bj as P,K as U,L as F,p as I}from"./.pnpm-CyuAWpdG.js";import{a as J,s as M}from"./decoration-9ln5Pyvl.js";import{_ as R}from"./mobile-style.vue_vue_type_script_setup_true_lang-i-cAJJVM.js";import"./index-Dxvz9lb1.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./theme-picker-Bzh27A21.js";const S={class:"mt-[-10px]"},A=k({__name:"style",setup(j){const o=u(0),r=u([{name:"移动端",id:5,component:B(R),data:{themeColorId:1,topTextColor:"white",navigationBarColor:"",themeColor1:"",themeColor2:"",buttonColor:"white"}}]),e=I(()=>r.value[o.value]||{}),d=async()=>{const m=await J({id:e.value.id});e.value.data=JSON.parse(m.data)},f=async()=>{await M({id:e.value.id,type:e.value.id,data:JSON.stringify(e.value.data)}),d()};return D(async()=>{await d()}),(m,n)=>{const b=L,v=h,C=P,y=U,V=x;return s(),c(_,null,[l(C,{shadow:"never",class:"!border-none"},{default:t(()=>[T("div",S,[l(v,{modelValue:p(o),"onUpdate:modelValue":n[0]||(n[0]=a=>E(o)?o.value=a:null)},{default:t(()=>[(s(!0),c(_,null,N(p(r),(a,w)=>(s(),i(b,{key:a.id,label:a.name,name:w},{default:t(()=>[(s(),i(O(a.component),{modelValue:a.data,"onUpdate:modelValue":g=>a.data=g},null,8,["modelValue","onUpdate:modelValue"]))]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])])]),_:1}),l(V,{class:"mt-4",fixed:!0},{default:t(()=>[l(y,{type:"primary",onClick:f},{default:t(()=>[...n[1]||(n[1]=[F("保存",-1)])]),_:1})]),_:1})],64)}}});export{A as default}; +import{_ as x}from"./index-DIl3M8Wa.js";import{o as k,M as u,cw as B,ap as D,q as s,r as c,v as l,D as t,s as T,Y as h,C as E,u as p,F as _,G as N,O as i,X as L,a4 as O,bj as P,K as U,L as F,p as I}from"./.pnpm-CyuAWpdG.js";import{a as J,s as M}from"./decoration-BCfnNTDP.js";import{_ as R}from"./mobile-style.vue_vue_type_script_setup_true_lang-n-0g3y0b.js";import"./index-Bkarz3gO.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./theme-picker-BztxpFGq.js";const S={class:"mt-[-10px]"},A=k({__name:"style",setup(j){const o=u(0),r=u([{name:"移动端",id:5,component:B(R),data:{themeColorId:1,topTextColor:"white",navigationBarColor:"",themeColor1:"",themeColor2:"",buttonColor:"white"}}]),e=I(()=>r.value[o.value]||{}),d=async()=>{const m=await J({id:e.value.id});e.value.data=JSON.parse(m.data)},f=async()=>{await M({id:e.value.id,type:e.value.id,data:JSON.stringify(e.value.data)}),d()};return D(async()=>{await d()}),(m,n)=>{const b=L,v=h,C=P,y=U,V=x;return s(),c(_,null,[l(C,{shadow:"never",class:"!border-none"},{default:t(()=>[T("div",S,[l(v,{modelValue:p(o),"onUpdate:modelValue":n[0]||(n[0]=a=>E(o)?o.value=a:null)},{default:t(()=>[(s(!0),c(_,null,N(p(r),(a,w)=>(s(),i(b,{key:a.id,label:a.name,name:w},{default:t(()=>[(s(),i(O(a.component),{modelValue:a.data,"onUpdate:modelValue":g=>a.data=g},null,8,["modelValue","onUpdate:modelValue"]))]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])])]),_:1}),l(V,{class:"mt-4",fixed:!0},{default:t(()=>[l(y,{type:"primary",onClick:f},{default:t(()=>[...n[1]||(n[1]=[F("保存",-1)])]),_:1})]),_:1})],64)}}});export{A as default}; diff --git a/server/public/admin/assets/tabbar-CqrxLPr9.js b/server/public/admin/assets/tabbar-DWT0GTq1.js similarity index 73% rename from server/public/admin/assets/tabbar-CqrxLPr9.js rename to server/public/admin/assets/tabbar-DWT0GTq1.js index 2e9ff5eea..f93d44722 100644 --- a/server/public/admin/assets/tabbar-CqrxLPr9.js +++ b/server/public/admin/assets/tabbar-DWT0GTq1.js @@ -1 +1 @@ -import{_ as D}from"./index-9qT8_5W1.js";import{o as v,aC as B,cw as E,R as T,bp as k,q as i,r as M,s as r,v as l,D as c,bj as R,u as a,C as N,a2 as f,O as d,a4 as b,af as P,ag as I,ac as L,K as O,L as S,M as U,p as j}from"./.pnpm-CyuAWpdG.js";import{c as q,d as z}from"./decoration-9ln5Pyvl.js";import K from"./menu-DViiZPlx.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang-53z4NSmb.js";import A from"./content-Dq3aXIKw.js";import{_ as F}from"./index-Dxvz9lb1.js";import"./index-ClBYIwNX.js";import"./picker-BKygjDQE.js";import"./index-BnfLT5cB.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-D_HL_wgA.js";import"./usePaging-CghUEVfD.js";import"./picker-BDO86vcM.js";import"./index-yD39j6dM.js";import"./index-BU3OYnKm.js";import"./file-CefRfHD9.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./decoration-img-DKpVnT4z.js";const G={attr:$,content:A},H={class:"decoration-tabbar"},J={class:"flex-1 min-h-0 w-full"},Q={class:"h-full"},W={class:"flex min-w-[900px] scroll-view-content"},X={class:"flex-1 pages-preview-box"},Y={class:"pages-preview mx-[30px]"},Z={class:"px-5 pb-5"},tt=v({name:"decorationTabbar"}),et=v({...tt,setup(at){let p;(t=>{t.MOBILE="1",t.PC="2"})(p||(p={}));const o=U("1"),m=B({1:{id:1,type:1,name:"移动端导航栏",data:{style:{default_color:"",selected_color:""},list:[]},component:E(G)}}),s=j(()=>m[o.value]),_=async()=>{const t=await q({type:o.value});m[1].data=t},x=async()=>{const{data:t}=s.value;await z({...t}),_()};return T(o,()=>{_()},{immediate:!0}),(t,n)=>{const w=R,u=f,h=f,g=O,y=D,V=k("perms");return i(),M("div",H,[r("div",J,[r("div",Q,[l(h,null,{default:c(()=>[r("div",W,[l(w,{shadow:"never",class:"!border-none flex","body-style":{"padding-right":0}},{default:c(()=>[l(K,{class:"!h-full flex-none",modelValue:a(o),"onUpdate:modelValue":n[0]||(n[0]=e=>N(o)?o.value=e:null),menus:a(m)},null,8,["modelValue","menus"])]),_:1}),r("div",X,[r("div",Y,[l(u,{height:"100%"},{default:c(()=>{var e;return[(i(),d(b((e=a(s).component)==null?void 0:e.content),P(I(a(s).data)),null,16))]}),_:1})])]),l(u,{class:"attr-setting flex-none"},{default:c(()=>{var e;return[r("div",Z,[(i(),d(b((e=a(s).component)==null?void 0:e.attr),{modelValue:a(s).data,"onUpdate:modelValue":n[1]||(n[1]=C=>a(s).data=C)},null,8,["modelValue"]))])]}),_:1})])]),_:1})])]),L((i(),d(y,{fixed:!0},{default:c(()=>[l(g,{type:"primary",onClick:x},{default:c(()=>[...n[2]||(n[2]=[S("保存",-1)])]),_:1})]),_:1})),[[V,["decorate:tabbar:save"]]])])}}}),Vt=F(et,[["__scopeId","data-v-e8ac299a"]]);export{Vt as default}; +import{_ as D}from"./index-DIl3M8Wa.js";import{o as v,aC as B,cw as E,R as T,bp as k,q as i,r as M,s as r,v as l,D as c,bj as R,u as a,C as N,a2 as f,O as d,a4 as b,af as P,ag as I,ac as L,K as O,L as S,M as U,p as j}from"./.pnpm-CyuAWpdG.js";import{c as q,d as z}from"./decoration-BCfnNTDP.js";import K from"./menu-CC2IkBNA.js";import{_ as $}from"./attr.vue_vue_type_script_setup_true_lang-CYy_gUQo.js";import A from"./content-C0CugWwU.js";import{_ as F}from"./index-Bkarz3gO.js";import"./index-Cqk_cdo9.js";import"./picker-CSWk6Vbk.js";import"./index-CS5Wg0xx.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./article-Cct6St-z.js";import"./usePaging-CghUEVfD.js";import"./picker-BTh9eW9u.js";import"./index-oRynN2pP.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./index.vue_vue_type_script_setup_true_lang-BaZ2PwlC.js";import"./decoration-img-SoINHtbg.js";const G={attr:$,content:A},H={class:"decoration-tabbar"},J={class:"flex-1 min-h-0 w-full"},Q={class:"h-full"},W={class:"flex min-w-[900px] scroll-view-content"},X={class:"flex-1 pages-preview-box"},Y={class:"pages-preview mx-[30px]"},Z={class:"px-5 pb-5"},tt=v({name:"decorationTabbar"}),et=v({...tt,setup(at){let p;(t=>{t.MOBILE="1",t.PC="2"})(p||(p={}));const o=U("1"),m=B({1:{id:1,type:1,name:"移动端导航栏",data:{style:{default_color:"",selected_color:""},list:[]},component:E(G)}}),s=j(()=>m[o.value]),_=async()=>{const t=await q({type:o.value});m[1].data=t},x=async()=>{const{data:t}=s.value;await z({...t}),_()};return T(o,()=>{_()},{immediate:!0}),(t,n)=>{const w=R,u=f,h=f,g=O,y=D,V=k("perms");return i(),M("div",H,[r("div",J,[r("div",Q,[l(h,null,{default:c(()=>[r("div",W,[l(w,{shadow:"never",class:"!border-none flex","body-style":{"padding-right":0}},{default:c(()=>[l(K,{class:"!h-full flex-none",modelValue:a(o),"onUpdate:modelValue":n[0]||(n[0]=e=>N(o)?o.value=e:null),menus:a(m)},null,8,["modelValue","menus"])]),_:1}),r("div",X,[r("div",Y,[l(u,{height:"100%"},{default:c(()=>{var e;return[(i(),d(b((e=a(s).component)==null?void 0:e.content),P(I(a(s).data)),null,16))]}),_:1})])]),l(u,{class:"attr-setting flex-none"},{default:c(()=>{var e;return[r("div",Z,[(i(),d(b((e=a(s).component)==null?void 0:e.attr),{modelValue:a(s).data,"onUpdate:modelValue":n[1]||(n[1]=C=>a(s).data=C)},null,8,["modelValue"]))])]}),_:1})])]),_:1})])]),L((i(),d(y,{fixed:!0},{default:c(()=>[l(g,{type:"primary",onClick:x},{default:c(()=>[...n[2]||(n[2]=[S("保存",-1)])]),_:1})]),_:1})),[[V,["decorate:tabbar:save"]]])])}}}),Vt=F(et,[["__scopeId","data-v-e8ac299a"]]);export{Vt as default}; diff --git a/server/public/admin/assets/tcm-QAkeqQ9Q.js b/server/public/admin/assets/tcm-BSADvQNg.js similarity index 99% rename from server/public/admin/assets/tcm-QAkeqQ9Q.js rename to server/public/admin/assets/tcm-BSADvQNg.js index 8cf163d41..7df9743f3 100644 --- a/server/public/admin/assets/tcm-QAkeqQ9Q.js +++ b/server/public/admin/assets/tcm-BSADvQNg.js @@ -1 +1 @@ -import{r as t}from"./index-Dxvz9lb1.js";function s(r){return t.get({url:"/tcm.diagnosis/lists",params:r})}function o(r){return t.get({url:"/tcm.diagnosis/readonlyDetail",params:r})}function c(r){return t.get({url:"/tcm.diagnosis/trackingWindow",params:r})}function a(r){return t.post({url:"/tcm.diagnosis/addTrackingNote",params:r})}function u(r){return t.get({url:"/tcm.diagnosis/trackingNotes",params:r})}function d(r){return t.get({url:"/tcm.diagnosis/assistantDiagnosisStats",params:r})}function p(r){return t.post({url:"/tcm.diagnosis/add",params:r})}function l(r){return t.post({url:"/tcm.diagnosis/edit",params:r})}function g(r){return t.post({url:"/tcm.diagnosis/delete",params:r})}function m(r){return t.get({url:"/tcm.diagnosis/detail",params:r})}function f(r){return t.post({url:"/tcm.diagnosis/setRevisitSlotStartOffset",params:r})}function O(r){return t.get({url:"/tcm.diagnosis/guahaoLogList",params:r})}function R(r){return t.post({url:"/tcm.diagnosis/checkPhone",params:r})}function y(r){return t.post({url:"/tcm.diagnosis/checkIdCard",params:r})}function C(r){return t.post({url:"/tcm.diagnosis/fillIdCard",params:r})}function h(r){return t.post({url:"/tcm.diagnosis/assign",params:r})}function P(r){return t.get({url:"/tcm.diagnosis/assignLogList",params:r})}function A(){return t.get({url:"/tcm.diagnosis/getAssistants"})}function L(){return t.get({url:"/tcm.diagnosis/getDoctors"})}function b(r){return t.post({url:"/tcm.bloodRecord/add",params:r})}function T(r){return t.post({url:"/tcm.bloodRecord/edit",params:r})}function k(r){return t.post({url:"/tcm.bloodRecord/delete",params:r})}function D(r){return t.get({url:"/tcm.bloodRecord/getRecordsByPatient",params:r})}function S(r){return t.get({url:"/tcm.bloodRecord/getBloodSugarTrend",params:r})}function x(r){return t.post({url:"/tcm.dietRecord/add",params:r})}function E(r){return t.post({url:"/tcm.dietRecord/edit",params:r})}function w(r){return t.post({url:"/tcm.dietRecord/delete",params:r})}function B(r){return t.get({url:"/tcm.dietRecord/getRecordsByPatient",params:r})}function W(r){return t.post({url:"/tcm.exerciseRecord/add",params:r})}function v(r){return t.post({url:"/tcm.exerciseRecord/edit",params:r})}function I(r){return t.post({url:"/tcm.exerciseRecord/delete",params:r})}function M(r){return t.get({url:"/tcm.exerciseRecord/getRecordsByPatient",params:r})}function G(r){return t.post({url:"/tcm.diagnosis/getCallSignature",params:r},{ignoreCancelToken:!0,isOpenRetry:!1})}function U(r){return t.post({url:"/tcm.diagnosis/startCall",params:r})}function N(r){return t.post({url:"/tcm.diagnosis/endCall",params:r},{ignoreCancelToken:!0,isOpenRetry:!1})}function q(r){return t.get({url:"/tcm.diagnosis/getCallRecords",params:r})}function Q(r){return t.post({url:"/tcm.diagnosis/bindCallRoom",params:r})}function J(r){return t.post({url:"/tcm.diagnosis/attachLocalCallRecording",params:r},{ignoreCancelToken:!0,isOpenRetry:!1})}function j(r){return t.post({url:"/tcm.diagnosis/createManualCallRecord",params:r},{ignoreCancelToken:!0,isOpenRetry:!1})}function z(r){return t.get({url:"/tcm.diagnosis/watchCall",params:r})}function F(r){return t.post({url:"/tcm.diagnosis/generateMiniProgramQrcode",params:r})}function H(r){return t.post({url:"/tcm.diagnosis/generateOrderQrcode",params:r})}function i(r){if(Number(r==null?void 0:r.code)!==1){const e=r==null?void 0:r.data;throw new Error((r==null?void 0:r.msg)||(e==null?void 0:e.error)||(e==null?void 0:e.message)||"聊天记录请求失败")}return r.data}async function K(r){const e=await t.get({url:"/tcm.diagnosis/getImChatMessages",params:r,timeout:3e4},{isTransformResponse:!1,ignoreCancelToken:!0,isOpenRetry:!1,retryCount:0});return i(e)}async function V(r){const e=await t.post({url:"/tcm.diagnosis/triggerImChatSync",data:r,timeout:3e4},{isTransformResponse:!1,ignoreCancelToken:!0,isOpenRetry:!1,retryCount:0});return i(e)}function X(r){return t.get({url:"/tcm.diagnosis/getWechatChatRecords",params:r})}function Y(r){return t.post({url:"/tcm.diagnosis/addWechatChatRecord",params:r})}function Z(r){return t.post({url:"/tcm.diagnosis/deleteWechatChatRecord",params:r})}function _(r){return t.get({url:"/tcm.diagnosis/getWechatExternalContact",params:r})}function $(r){return t.get({url:"/tcm.prescription/lists",params:r})}function rr(r){return t.post({url:"/tcm.prescription/add",params:r})}function tr(r){return t.post({url:"/tcm.prescription/edit",params:r})}function er(r){return t.post({url:"/tcm.prescription/patchPatient",params:r})}function ir(r){return t.post({url:"/tcm.prescription/delete",params:r})}function nr(r){return t.get({url:"/tcm.prescription/detail",params:r})}function sr(r){return t.get({url:"/tcm.prescription/listByDiagnosis",params:r})}function or(r){return t.get({url:"/tcm.prescription/getByAppointment",params:r})}function cr(r){return t.post({url:"/tcm.prescription/void",params:r})}function ar(r){return t.post({url:"/tcm.prescription/audit",params:r})}function ur(r){return t.post({url:"/tcm.prescriptionOrder/create",params:r})}function dr(r){return t.get({url:"/tcm.prescriptionOrder/lists",params:r})}function pr(r){return t.get({url:"/tcm.prescriptionOrder/export",params:r})}function lr(r){return t.get({url:"/tcm.prescriptionOrder/paidPayOrders",params:r})}function gr(r){return t.post({url:"/tcm.prescriptionOrder/withdraw",params:r})}function mr(r){return t.get({url:"/tcm.prescriptionOrder/logisticsTrace",params:r})}function fr(r){return t.post({url:"/tcm.prescriptionOrder/logisticsJdUpdate",params:r})}function Or(r){return t.get({url:"/tcm.prescriptionOrder/detail",params:r})}function Rr(r){return t.post({url:"/tcm.prescriptionOrder/edit",params:r})}function yr(r){return t.post({url:"/tcm.prescriptionOrder/editTime",params:r})}function Cr(r){return t.post({url:"/tcm.prescriptionOrder/ddcode",params:r})}function hr(r){return t.post({url:"/tcm.prescriptionOrder/patchPrescriptionPatient",params:r})}function Pr(r){return t.post({url:"/tcm.prescriptionOrder/patchPrescriptionUsage",params:r})}function Ar(r){return t.post({url:"/tcm.prescriptionOrder/auditPrescription",params:r})}function Lr(r){return t.post({url:"/tcm.prescriptionOrder/auditPayment",params:r})}function br(r){return t.post({url:"/tcm.prescriptionOrder/revokeRxAudit",params:r})}function Tr(r){return t.post({url:"/tcm.prescriptionOrder/batchAssignAssistant",params:r})}function kr(r){return t.post({url:"/tcm.prescriptionOrder/revokePayAudit",params:r})}function Dr(r){return t.post({url:"/tcm.prescriptionOrder/ship",params:r})}function Sr(r){return t.post({url:"/tcm.prescriptionOrder/addPayOrder",params:r})}function xr(r){return t.post({url:"/tcm.prescriptionOrder/linkPayOrder",params:r})}function Er(r){return t.post({url:"/tcm.prescriptionOrder/requestCompletion",params:r})}function wr(r){return t.post({url:"/tcm.prescriptionOrder/complete",params:r})}function Br(r){return t.post({url:"/tcm.prescriptionOrder/refund",params:r})}function Wr(r){return t.post({url:"/tcm.prescriptionOrder/uploadToPharmacy",params:r})}function vr(r){return t.post({url:"/tcm.prescriptionOrder/confirmGancaoSubmission",params:r})}function Ir(r){return t.post({url:"/tcm.prescriptionOrder/previewGancaoRecipel",params:r})}function Mr(r){return t.get({url:"/tcm.prescriptionOrder/logs",params:r})}function Gr(r){return t.post({url:"/tcm.prescriptionOrder/addLog",params:r})}function Ur(r){return t.post({url:"/tcm.prescriptionOrder/unlinkPayOrder",params:r})}function Nr(r){return t.post({url:"/tcm.prescriptionOrder/updateAmount",params:r})}function qr(r){return t.post({url:"/tcm.prescriptionOrder/setShipMode",params:r})}function Qr(r){return t.get({url:"/tcm.prescriptionLibrary/lists",params:r})}function Jr(r){return t.post({url:"/tcm.prescriptionLibrary/add",params:r})}function jr(r){return t.post({url:"/tcm.prescriptionLibrary/edit",params:r})}function zr(r){return t.post({url:"/tcm.prescriptionLibrary/delete",params:r})}function Fr(r={}){return t.get({url:"/tcm.prescriptionLibrary/missingAiReports",params:r,timeout:3e4},{ignoreCancelToken:!0})}function Hr(r){return t.get({url:"/tcm.prescriptionLibrary/aiReports",params:r,timeout:3e4},{ignoreCancelToken:!0})}function Kr(r){return t.post({url:"/tcm.prescriptionLibrary/generateAiReports",params:r,timeout:21e4},{ignoreCancelToken:!0,isOpenRetry:!1})}function Vr(r){return t.post({url:"/tcm.prescriptionLibrary/editAiReport",params:r,timeout:3e4},{ignoreCancelToken:!0,isOpenRetry:!1})}function Xr(r){return t.get({url:"/tcm.diagnosisTodo/lists",params:r})}function Yr(r){return t.post({url:"/tcm.diagnosisTodo/add",params:r})}function Zr(r){return t.post({url:"/tcm.diagnosisTodo/cancel",params:r})}export{u as $,Jr as A,jr as B,zr as C,pr as D,Tr as E,qr as F,hr as G,Nr as H,Rr as I,Ar as J,Lr as K,gr as L,Ir as M,Wr as N,Cr as O,Dr as P,Br as Q,wr as R,Er as S,Sr as T,xr as U,br as V,kr as W,F as X,H as Y,G as Z,c as _,Fr as a,T as a0,b as a1,E as a2,x as a3,v as a4,W as a5,a as a6,Xr as a7,Yr as a8,Zr as a9,O as aA,C as aB,X as aC,Y as aD,Z as aE,g as aF,_ as aG,d as aH,N as aI,Q as aJ,U as aK,or as aa,m as ab,R as ac,y as ad,p as ae,l as af,P as ag,z as ah,S as ai,D as aj,k as ak,q as al,J as am,j as an,sr as ao,B as ap,w as aq,M as ar,I as as,V as at,K as au,f as av,cr as aw,s as ax,o as ay,h as az,Kr as b,Hr as c,Vr as d,Ur as e,Pr as f,L as g,Gr as h,mr as i,fr as j,Mr as k,lr as l,Or as m,yr as n,A as o,vr as p,er as q,nr as r,ur as s,$ as t,ar as u,Qr as v,rr as w,tr as x,ir as y,dr as z}; +import{r as t}from"./index-Bkarz3gO.js";function s(r){return t.get({url:"/tcm.diagnosis/lists",params:r})}function o(r){return t.get({url:"/tcm.diagnosis/readonlyDetail",params:r})}function c(r){return t.get({url:"/tcm.diagnosis/trackingWindow",params:r})}function a(r){return t.post({url:"/tcm.diagnosis/addTrackingNote",params:r})}function u(r){return t.get({url:"/tcm.diagnosis/trackingNotes",params:r})}function d(r){return t.get({url:"/tcm.diagnosis/assistantDiagnosisStats",params:r})}function p(r){return t.post({url:"/tcm.diagnosis/add",params:r})}function l(r){return t.post({url:"/tcm.diagnosis/edit",params:r})}function g(r){return t.post({url:"/tcm.diagnosis/delete",params:r})}function m(r){return t.get({url:"/tcm.diagnosis/detail",params:r})}function f(r){return t.post({url:"/tcm.diagnosis/setRevisitSlotStartOffset",params:r})}function O(r){return t.get({url:"/tcm.diagnosis/guahaoLogList",params:r})}function R(r){return t.post({url:"/tcm.diagnosis/checkPhone",params:r})}function y(r){return t.post({url:"/tcm.diagnosis/checkIdCard",params:r})}function C(r){return t.post({url:"/tcm.diagnosis/fillIdCard",params:r})}function h(r){return t.post({url:"/tcm.diagnosis/assign",params:r})}function P(r){return t.get({url:"/tcm.diagnosis/assignLogList",params:r})}function A(){return t.get({url:"/tcm.diagnosis/getAssistants"})}function L(){return t.get({url:"/tcm.diagnosis/getDoctors"})}function b(r){return t.post({url:"/tcm.bloodRecord/add",params:r})}function T(r){return t.post({url:"/tcm.bloodRecord/edit",params:r})}function k(r){return t.post({url:"/tcm.bloodRecord/delete",params:r})}function D(r){return t.get({url:"/tcm.bloodRecord/getRecordsByPatient",params:r})}function S(r){return t.get({url:"/tcm.bloodRecord/getBloodSugarTrend",params:r})}function x(r){return t.post({url:"/tcm.dietRecord/add",params:r})}function E(r){return t.post({url:"/tcm.dietRecord/edit",params:r})}function w(r){return t.post({url:"/tcm.dietRecord/delete",params:r})}function B(r){return t.get({url:"/tcm.dietRecord/getRecordsByPatient",params:r})}function W(r){return t.post({url:"/tcm.exerciseRecord/add",params:r})}function v(r){return t.post({url:"/tcm.exerciseRecord/edit",params:r})}function I(r){return t.post({url:"/tcm.exerciseRecord/delete",params:r})}function M(r){return t.get({url:"/tcm.exerciseRecord/getRecordsByPatient",params:r})}function G(r){return t.post({url:"/tcm.diagnosis/getCallSignature",params:r},{ignoreCancelToken:!0,isOpenRetry:!1})}function U(r){return t.post({url:"/tcm.diagnosis/startCall",params:r})}function N(r){return t.post({url:"/tcm.diagnosis/endCall",params:r},{ignoreCancelToken:!0,isOpenRetry:!1})}function q(r){return t.get({url:"/tcm.diagnosis/getCallRecords",params:r})}function Q(r){return t.post({url:"/tcm.diagnosis/bindCallRoom",params:r})}function J(r){return t.post({url:"/tcm.diagnosis/attachLocalCallRecording",params:r},{ignoreCancelToken:!0,isOpenRetry:!1})}function j(r){return t.post({url:"/tcm.diagnosis/createManualCallRecord",params:r},{ignoreCancelToken:!0,isOpenRetry:!1})}function z(r){return t.get({url:"/tcm.diagnosis/watchCall",params:r})}function F(r){return t.post({url:"/tcm.diagnosis/generateMiniProgramQrcode",params:r})}function H(r){return t.post({url:"/tcm.diagnosis/generateOrderQrcode",params:r})}function i(r){if(Number(r==null?void 0:r.code)!==1){const e=r==null?void 0:r.data;throw new Error((r==null?void 0:r.msg)||(e==null?void 0:e.error)||(e==null?void 0:e.message)||"聊天记录请求失败")}return r.data}async function K(r){const e=await t.get({url:"/tcm.diagnosis/getImChatMessages",params:r,timeout:3e4},{isTransformResponse:!1,ignoreCancelToken:!0,isOpenRetry:!1,retryCount:0});return i(e)}async function V(r){const e=await t.post({url:"/tcm.diagnosis/triggerImChatSync",data:r,timeout:3e4},{isTransformResponse:!1,ignoreCancelToken:!0,isOpenRetry:!1,retryCount:0});return i(e)}function X(r){return t.get({url:"/tcm.diagnosis/getWechatChatRecords",params:r})}function Y(r){return t.post({url:"/tcm.diagnosis/addWechatChatRecord",params:r})}function Z(r){return t.post({url:"/tcm.diagnosis/deleteWechatChatRecord",params:r})}function _(r){return t.get({url:"/tcm.diagnosis/getWechatExternalContact",params:r})}function $(r){return t.get({url:"/tcm.prescription/lists",params:r})}function rr(r){return t.post({url:"/tcm.prescription/add",params:r})}function tr(r){return t.post({url:"/tcm.prescription/edit",params:r})}function er(r){return t.post({url:"/tcm.prescription/patchPatient",params:r})}function ir(r){return t.post({url:"/tcm.prescription/delete",params:r})}function nr(r){return t.get({url:"/tcm.prescription/detail",params:r})}function sr(r){return t.get({url:"/tcm.prescription/listByDiagnosis",params:r})}function or(r){return t.get({url:"/tcm.prescription/getByAppointment",params:r})}function cr(r){return t.post({url:"/tcm.prescription/void",params:r})}function ar(r){return t.post({url:"/tcm.prescription/audit",params:r})}function ur(r){return t.post({url:"/tcm.prescriptionOrder/create",params:r})}function dr(r){return t.get({url:"/tcm.prescriptionOrder/lists",params:r})}function pr(r){return t.get({url:"/tcm.prescriptionOrder/export",params:r})}function lr(r){return t.get({url:"/tcm.prescriptionOrder/paidPayOrders",params:r})}function gr(r){return t.post({url:"/tcm.prescriptionOrder/withdraw",params:r})}function mr(r){return t.get({url:"/tcm.prescriptionOrder/logisticsTrace",params:r})}function fr(r){return t.post({url:"/tcm.prescriptionOrder/logisticsJdUpdate",params:r})}function Or(r){return t.get({url:"/tcm.prescriptionOrder/detail",params:r})}function Rr(r){return t.post({url:"/tcm.prescriptionOrder/edit",params:r})}function yr(r){return t.post({url:"/tcm.prescriptionOrder/editTime",params:r})}function Cr(r){return t.post({url:"/tcm.prescriptionOrder/ddcode",params:r})}function hr(r){return t.post({url:"/tcm.prescriptionOrder/patchPrescriptionPatient",params:r})}function Pr(r){return t.post({url:"/tcm.prescriptionOrder/patchPrescriptionUsage",params:r})}function Ar(r){return t.post({url:"/tcm.prescriptionOrder/auditPrescription",params:r})}function Lr(r){return t.post({url:"/tcm.prescriptionOrder/auditPayment",params:r})}function br(r){return t.post({url:"/tcm.prescriptionOrder/revokeRxAudit",params:r})}function Tr(r){return t.post({url:"/tcm.prescriptionOrder/batchAssignAssistant",params:r})}function kr(r){return t.post({url:"/tcm.prescriptionOrder/revokePayAudit",params:r})}function Dr(r){return t.post({url:"/tcm.prescriptionOrder/ship",params:r})}function Sr(r){return t.post({url:"/tcm.prescriptionOrder/addPayOrder",params:r})}function xr(r){return t.post({url:"/tcm.prescriptionOrder/linkPayOrder",params:r})}function Er(r){return t.post({url:"/tcm.prescriptionOrder/requestCompletion",params:r})}function wr(r){return t.post({url:"/tcm.prescriptionOrder/complete",params:r})}function Br(r){return t.post({url:"/tcm.prescriptionOrder/refund",params:r})}function Wr(r){return t.post({url:"/tcm.prescriptionOrder/uploadToPharmacy",params:r})}function vr(r){return t.post({url:"/tcm.prescriptionOrder/confirmGancaoSubmission",params:r})}function Ir(r){return t.post({url:"/tcm.prescriptionOrder/previewGancaoRecipel",params:r})}function Mr(r){return t.get({url:"/tcm.prescriptionOrder/logs",params:r})}function Gr(r){return t.post({url:"/tcm.prescriptionOrder/addLog",params:r})}function Ur(r){return t.post({url:"/tcm.prescriptionOrder/unlinkPayOrder",params:r})}function Nr(r){return t.post({url:"/tcm.prescriptionOrder/updateAmount",params:r})}function qr(r){return t.post({url:"/tcm.prescriptionOrder/setShipMode",params:r})}function Qr(r){return t.get({url:"/tcm.prescriptionLibrary/lists",params:r})}function Jr(r){return t.post({url:"/tcm.prescriptionLibrary/add",params:r})}function jr(r){return t.post({url:"/tcm.prescriptionLibrary/edit",params:r})}function zr(r){return t.post({url:"/tcm.prescriptionLibrary/delete",params:r})}function Fr(r={}){return t.get({url:"/tcm.prescriptionLibrary/missingAiReports",params:r,timeout:3e4},{ignoreCancelToken:!0})}function Hr(r){return t.get({url:"/tcm.prescriptionLibrary/aiReports",params:r,timeout:3e4},{ignoreCancelToken:!0})}function Kr(r){return t.post({url:"/tcm.prescriptionLibrary/generateAiReports",params:r,timeout:21e4},{ignoreCancelToken:!0,isOpenRetry:!1})}function Vr(r){return t.post({url:"/tcm.prescriptionLibrary/editAiReport",params:r,timeout:3e4},{ignoreCancelToken:!0,isOpenRetry:!1})}function Xr(r){return t.get({url:"/tcm.diagnosisTodo/lists",params:r})}function Yr(r){return t.post({url:"/tcm.diagnosisTodo/add",params:r})}function Zr(r){return t.post({url:"/tcm.diagnosisTodo/cancel",params:r})}export{u as $,Jr as A,jr as B,zr as C,pr as D,Tr as E,qr as F,hr as G,Nr as H,Rr as I,Ar as J,Lr as K,gr as L,Ir as M,Wr as N,Cr as O,Dr as P,Br as Q,wr as R,Er as S,Sr as T,xr as U,br as V,kr as W,F as X,H as Y,G as Z,c as _,Fr as a,T as a0,b as a1,E as a2,x as a3,v as a4,W as a5,a as a6,Xr as a7,Yr as a8,Zr as a9,O as aA,C as aB,X as aC,Y as aD,Z as aE,g as aF,_ as aG,d as aH,N as aI,Q as aJ,U as aK,or as aa,m as ab,R as ac,y as ad,p as ae,l as af,P as ag,z as ah,S as ai,D as aj,k as ak,q as al,J as am,j as an,sr as ao,B as ap,w as aq,M as ar,I as as,V as at,K as au,f as av,cr as aw,s as ax,o as ay,h as az,Kr as b,Hr as c,Vr as d,Ur as e,Pr as f,L as g,Gr as h,mr as i,fr as j,Mr as k,lr as l,Or as m,yr as n,A as o,vr as p,er as q,nr as r,ur as s,$ as t,ar as u,Qr as v,rr as w,tr as x,ir as y,dr as z}; diff --git a/server/public/admin/assets/theme-picker-Bzh27A21.js b/server/public/admin/assets/theme-picker-BztxpFGq.js similarity index 93% rename from server/public/admin/assets/theme-picker-Bzh27A21.js rename to server/public/admin/assets/theme-picker-BztxpFGq.js index c85c2ae17..8161bcc20 100644 --- a/server/public/admin/assets/theme-picker-Bzh27A21.js +++ b/server/public/admin/assets/theme-picker-BztxpFGq.js @@ -1 +1 @@ -import{o as m,cp as x,q as t,r as a,F as _,G as h,ae as f,u as r,s as c,t as g,T as k}from"./.pnpm-CyuAWpdG.js";import{_ as v}from"./index-Dxvz9lb1.js";const C={class:"flex flex-wrap"},y=["onClick"],V={class:"ml-[14px]"},w=m({__name:"theme-picker",props:{themeColors:{},modelValue:{}},emits:["update:modelValue","change"],setup(l,{emit:d}){const i=l,n=d,s=x(i,"modelValue",n),p=o=>{s.value=o.id,n("change",o)};return(o,B)=>(t(),a("div",C,[(t(!0),a(_,null,h(l.themeColors,(e,u)=>(t(),a("div",{class:f(["py-[18px] px-[20px] flex items-center text-[14px] shadow rounded-lg mr-[20px] mb-[20px] cursor-pointer",{"is-select":r(s)==e.id,unselect:r(s)!=e.id}]),key:u,onClick:S=>p(e)},[c("div",{class:"rounded-full h-[34px] w-[34px]",style:g(`background: linear-gradient(to right, ${e.color1}, ${e.color2})`)},null,4),c("div",V,k(e.name),1)],10,y))),128))]))}}),z=v(w,[["__scopeId","data-v-48f4aa49"]]);export{z as default}; +import{o as m,cp as x,q as t,r as a,F as _,G as h,ae as f,u as r,s as c,t as g,T as k}from"./.pnpm-CyuAWpdG.js";import{_ as v}from"./index-Bkarz3gO.js";const C={class:"flex flex-wrap"},y=["onClick"],V={class:"ml-[14px]"},w=m({__name:"theme-picker",props:{themeColors:{},modelValue:{}},emits:["update:modelValue","change"],setup(l,{emit:d}){const i=l,n=d,s=x(i,"modelValue",n),p=o=>{s.value=o.id,n("change",o)};return(o,B)=>(t(),a("div",C,[(t(!0),a(_,null,h(l.themeColors,(e,u)=>(t(),a("div",{class:f(["py-[18px] px-[20px] flex items-center text-[14px] shadow rounded-lg mr-[20px] mb-[20px] cursor-pointer",{"is-select":r(s)==e.id,unselect:r(s)!=e.id}]),key:u,onClick:S=>p(e)},[c("div",{class:"rounded-full h-[34px] w-[34px]",style:g(`background: linear-gradient(to right, ${e.color1}, ${e.color2})`)},null,4),c("div",V,k(e.name),1)],10,y))),128))]))}}),z=v(w,[["__scopeId","data-v-48f4aa49"]]);export{z as default}; diff --git a/server/public/admin/assets/tongji-Dqu7hvNU.js b/server/public/admin/assets/tongji-DslSaoYX.js similarity index 97% rename from server/public/admin/assets/tongji-Dqu7hvNU.js rename to server/public/admin/assets/tongji-DslSaoYX.js index 552388c8d..06b67a1f9 100644 --- a/server/public/admin/assets/tongji-Dqu7hvNU.js +++ b/server/public/admin/assets/tongji-DslSaoYX.js @@ -1 +1 @@ -import{o as K,ap as W,q as a,r as d,v as l,D as s,bd as $,bb as A,bh as H,F as f,G as v,O as y,bi as J,bf as Q,be as X,L as c,az as Z,P as tt,K as et,s as o,bj as st,ac as at,bn as lt,bk as ot,bl as nt,T as u,bm as dt,bC as it,M as E,aC as rt,E as _t}from"./.pnpm-CyuAWpdG.js";import{f as ct,k as ut}from"./doctor-8vo_5fa4.js";import{_ as pt}from"./index-Dxvz9lb1.js";const mt={class:"statistics-page"},ft={key:0},vt={class:"status-overview"},yt={class:"status-section"},gt={key:0},ht={class:"dept-grid"},bt={class:"dept-header"},kt={class:"dept-name"},Et={class:"dept-total"},Ct={class:"status-tags"},Vt={key:1,class:"text-gray-400"},wt={class:"status-section"},Tt={key:0},xt={class:"channel-grid"},Dt={class:"channel-header"},Mt={class:"channel-name"},Lt={class:"channel-total"},Bt={class:"status-tags"},St={key:1,class:"text-gray-400"},jt={key:1,class:"empty-data"},Nt=K({__name:"tongji",setup(Ft){const g=E(!1),x=E([]),h=E([]),_=E([]),i=rt({doctor_id:"",time_type:"today",start_date:"",end_date:""}),j=async()=>{try{const e=await ct({role_id:1});x.value=e.lists||[]}catch(e){console.error("获取医生列表失败:",e)}},C=async()=>{g.value=!0;try{const e={time_type:i.time_type};i.doctor_id&&(e.doctor_id=i.doctor_id),i.time_type==="custom"&&_.value&&_.value.length===2&&(e.start_date=_.value[0],e.end_date=_.value[1]);const t=await ut(e);h.value=t.lists||[],h.value.forEach(r=>{r.dept_status_details||(r.dept_status_details=[]),r.channel_status_details||(r.channel_status_details=[])})}catch(e){console.error("获取统计数据错误:",e),_t.error(e.msg||"获取统计数据失败")}finally{g.value=!1}},N=()=>{i.time_type!=="custom"&&(_.value=[])},F=()=>{i.doctor_id="",i.time_type="today",_.value=[],C()},O=e=>e.statuses?Object.values(e.statuses).reduce((t,r)=>t+r,0):0,R=e=>e.statuses?Object.values(e.statuses).reduce((t,r)=>t+r,0):0,D=e=>({1:"已挂号",2:"已取消",3:"已完成",4:"已过号"})[e]||`状态${e}`,M=e=>({1:"info",2:"danger",3:"success",4:"warning"})[e]||"default";return W(()=>{j(),C()}),(e,t)=>{const r=J,Y=H,b=A,k=X,z=Q,P=Z,L=et,U=$,B=st,V=nt,S=dt,q=ot,G=it,I=lt;return a(),d("div",mt,[l(B,{class:"mb-4",shadow:"hover"},{header:s(()=>[...t[3]||(t[3]=[o("div",{class:"card-header"},[o("span",{class:"card-title"},"筛选条件")],-1)])]),default:s(()=>[l(U,{inline:!0,model:i,class:"filter-form"},{default:s(()=>[l(b,{label:"医生"},{default:s(()=>[l(Y,{modelValue:i.doctor_id,"onUpdate:modelValue":t[0]||(t[0]=n=>i.doctor_id=n),placeholder:"全部医生",clearable:"",filterable:"",style:{width:"200px"}},{default:s(()=>[(a(!0),d(f,null,v(x.value,n=>(a(),y(r,{key:n.id,label:n.name,value:n.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(b,{label:"时间范围"},{default:s(()=>[l(z,{modelValue:i.time_type,"onUpdate:modelValue":t[1]||(t[1]=n=>i.time_type=n),onChange:N},{default:s(()=>[l(k,{label:"today"},{default:s(()=>[...t[4]||(t[4]=[c("今天",-1)])]),_:1}),l(k,{label:"week"},{default:s(()=>[...t[5]||(t[5]=[c("最近7天",-1)])]),_:1}),l(k,{label:"month"},{default:s(()=>[...t[6]||(t[6]=[c("最近30天",-1)])]),_:1}),l(k,{label:"custom"},{default:s(()=>[...t[7]||(t[7]=[c("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),i.time_type==="custom"?(a(),y(b,{key:0},{default:s(()=>[l(P,{modelValue:_.value,"onUpdate:modelValue":t[2]||(t[2]=n=>_.value=n),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"260px"}},null,8,["modelValue"])]),_:1})):tt("",!0),l(b,null,{default:s(()=>[l(L,{type:"primary",onClick:C,loading:g.value},{default:s(()=>[...t[8]||(t[8]=[c("查询",-1)])]),_:1},8,["loading"]),l(L,{onClick:F},{default:s(()=>[...t[9]||(t[9]=[c("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),at((a(),y(B,{class:"mb-4",shadow:"hover"},{header:s(()=>[...t[10]||(t[10]=[o("div",{class:"card-header"},[o("span",{class:"card-title"},"医生统计数据")],-1)])]),default:s(()=>[h.value.length>0?(a(),d("div",ft,[l(q,{data:h.value,style:{width:"100%"},"header-cell-style":{background:"#f5f7fa",color:"#606266",fontWeight:"600"}},{default:s(()=>[l(V,{prop:"doctor_name",label:"医生姓名",width:"120"}),l(V,{label:"状态明细","min-width":"700"},{default:s(({row:n})=>[o("div",vt,[o("div",yt,[t[11]||(t[11]=o("h4",{class:"section-title"},"部门状态",-1)),n.dept_status_details&&n.dept_status_details.length>0?(a(),d("div",gt,[o("div",ht,[(a(!0),d(f,null,v(n.dept_status_details,(p,w)=>(a(),d("div",{key:w,class:"dept-item"},[o("div",bt,[o("span",kt,u(p.dept_name),1),o("span",Et,"("+u(O(p))+")",1)]),o("div",Ct,[(a(!0),d(f,null,v(p.statuses,(T,m)=>(a(),y(S,{key:m,type:M(m),size:"small",class:"compact-tag"},{default:s(()=>[c(u(D(m))+": "+u(T),1)]),_:2},1032,["type"]))),128))])]))),128))])])):(a(),d("span",Vt,"暂无部门状态明细"))]),o("div",wt,[t[12]||(t[12]=o("h4",{class:"section-title"},"渠道状态",-1)),n.channel_status_details&&n.channel_status_details.length>0?(a(),d("div",Tt,[o("div",xt,[(a(!0),d(f,null,v(n.channel_status_details,(p,w)=>(a(),d("div",{key:w,class:"channel-item"},[o("div",Dt,[o("span",Mt,u(p.channel_name),1),o("span",Lt,"("+u(R(p))+")",1)]),o("div",Bt,[(a(!0),d(f,null,v(p.statuses,(T,m)=>(a(),y(S,{key:m,type:M(m),size:"small",class:"compact-tag"},{default:s(()=>[c(u(D(m))+": "+u(T),1)]),_:2},1032,["type"]))),128))])]))),128))])])):(a(),d("span",St,"暂无渠道状态明细"))])])]),_:1}),l(V,{prop:"time_range",label:"统计时间","min-width":"200"})]),_:1},8,["data"])])):(a(),d("div",jt,[l(G,{description:"暂无统计数据"})]))]),_:1})),[[I,g.value]])])}}}),zt=pt(Nt,[["__scopeId","data-v-aa7d2a93"]]);export{zt as default}; +import{o as K,ap as W,q as a,r as d,v as l,D as s,bd as $,bb as A,bh as H,F as f,G as v,O as y,bi as J,bf as Q,be as X,L as c,az as Z,P as tt,K as et,s as o,bj as st,ac as at,bn as lt,bk as ot,bl as nt,T as u,bm as dt,bC as it,M as E,aC as rt,E as _t}from"./.pnpm-CyuAWpdG.js";import{f as ct,k as ut}from"./doctor-DBvYeWd3.js";import{_ as pt}from"./index-Bkarz3gO.js";const mt={class:"statistics-page"},ft={key:0},vt={class:"status-overview"},yt={class:"status-section"},gt={key:0},ht={class:"dept-grid"},bt={class:"dept-header"},kt={class:"dept-name"},Et={class:"dept-total"},Ct={class:"status-tags"},Vt={key:1,class:"text-gray-400"},wt={class:"status-section"},Tt={key:0},xt={class:"channel-grid"},Dt={class:"channel-header"},Mt={class:"channel-name"},Lt={class:"channel-total"},Bt={class:"status-tags"},St={key:1,class:"text-gray-400"},jt={key:1,class:"empty-data"},Nt=K({__name:"tongji",setup(Ft){const g=E(!1),x=E([]),h=E([]),_=E([]),i=rt({doctor_id:"",time_type:"today",start_date:"",end_date:""}),j=async()=>{try{const e=await ct({role_id:1});x.value=e.lists||[]}catch(e){console.error("获取医生列表失败:",e)}},C=async()=>{g.value=!0;try{const e={time_type:i.time_type};i.doctor_id&&(e.doctor_id=i.doctor_id),i.time_type==="custom"&&_.value&&_.value.length===2&&(e.start_date=_.value[0],e.end_date=_.value[1]);const t=await ut(e);h.value=t.lists||[],h.value.forEach(r=>{r.dept_status_details||(r.dept_status_details=[]),r.channel_status_details||(r.channel_status_details=[])})}catch(e){console.error("获取统计数据错误:",e),_t.error(e.msg||"获取统计数据失败")}finally{g.value=!1}},N=()=>{i.time_type!=="custom"&&(_.value=[])},F=()=>{i.doctor_id="",i.time_type="today",_.value=[],C()},O=e=>e.statuses?Object.values(e.statuses).reduce((t,r)=>t+r,0):0,R=e=>e.statuses?Object.values(e.statuses).reduce((t,r)=>t+r,0):0,D=e=>({1:"已挂号",2:"已取消",3:"已完成",4:"已过号"})[e]||`状态${e}`,M=e=>({1:"info",2:"danger",3:"success",4:"warning"})[e]||"default";return W(()=>{j(),C()}),(e,t)=>{const r=J,Y=H,b=A,k=X,z=Q,P=Z,L=et,U=$,B=st,V=nt,S=dt,q=ot,G=it,I=lt;return a(),d("div",mt,[l(B,{class:"mb-4",shadow:"hover"},{header:s(()=>[...t[3]||(t[3]=[o("div",{class:"card-header"},[o("span",{class:"card-title"},"筛选条件")],-1)])]),default:s(()=>[l(U,{inline:!0,model:i,class:"filter-form"},{default:s(()=>[l(b,{label:"医生"},{default:s(()=>[l(Y,{modelValue:i.doctor_id,"onUpdate:modelValue":t[0]||(t[0]=n=>i.doctor_id=n),placeholder:"全部医生",clearable:"",filterable:"",style:{width:"200px"}},{default:s(()=>[(a(!0),d(f,null,v(x.value,n=>(a(),y(r,{key:n.id,label:n.name,value:n.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(b,{label:"时间范围"},{default:s(()=>[l(z,{modelValue:i.time_type,"onUpdate:modelValue":t[1]||(t[1]=n=>i.time_type=n),onChange:N},{default:s(()=>[l(k,{label:"today"},{default:s(()=>[...t[4]||(t[4]=[c("今天",-1)])]),_:1}),l(k,{label:"week"},{default:s(()=>[...t[5]||(t[5]=[c("最近7天",-1)])]),_:1}),l(k,{label:"month"},{default:s(()=>[...t[6]||(t[6]=[c("最近30天",-1)])]),_:1}),l(k,{label:"custom"},{default:s(()=>[...t[7]||(t[7]=[c("自定义",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),i.time_type==="custom"?(a(),y(b,{key:0},{default:s(()=>[l(P,{modelValue:_.value,"onUpdate:modelValue":t[2]||(t[2]=n=>_.value=n),type:"daterange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","value-format":"YYYY-MM-DD",style:{width:"260px"}},null,8,["modelValue"])]),_:1})):tt("",!0),l(b,null,{default:s(()=>[l(L,{type:"primary",onClick:C,loading:g.value},{default:s(()=>[...t[8]||(t[8]=[c("查询",-1)])]),_:1},8,["loading"]),l(L,{onClick:F},{default:s(()=>[...t[9]||(t[9]=[c("重置",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),at((a(),y(B,{class:"mb-4",shadow:"hover"},{header:s(()=>[...t[10]||(t[10]=[o("div",{class:"card-header"},[o("span",{class:"card-title"},"医生统计数据")],-1)])]),default:s(()=>[h.value.length>0?(a(),d("div",ft,[l(q,{data:h.value,style:{width:"100%"},"header-cell-style":{background:"#f5f7fa",color:"#606266",fontWeight:"600"}},{default:s(()=>[l(V,{prop:"doctor_name",label:"医生姓名",width:"120"}),l(V,{label:"状态明细","min-width":"700"},{default:s(({row:n})=>[o("div",vt,[o("div",yt,[t[11]||(t[11]=o("h4",{class:"section-title"},"部门状态",-1)),n.dept_status_details&&n.dept_status_details.length>0?(a(),d("div",gt,[o("div",ht,[(a(!0),d(f,null,v(n.dept_status_details,(p,w)=>(a(),d("div",{key:w,class:"dept-item"},[o("div",bt,[o("span",kt,u(p.dept_name),1),o("span",Et,"("+u(O(p))+")",1)]),o("div",Ct,[(a(!0),d(f,null,v(p.statuses,(T,m)=>(a(),y(S,{key:m,type:M(m),size:"small",class:"compact-tag"},{default:s(()=>[c(u(D(m))+": "+u(T),1)]),_:2},1032,["type"]))),128))])]))),128))])])):(a(),d("span",Vt,"暂无部门状态明细"))]),o("div",wt,[t[12]||(t[12]=o("h4",{class:"section-title"},"渠道状态",-1)),n.channel_status_details&&n.channel_status_details.length>0?(a(),d("div",Tt,[o("div",xt,[(a(!0),d(f,null,v(n.channel_status_details,(p,w)=>(a(),d("div",{key:w,class:"channel-item"},[o("div",Dt,[o("span",Mt,u(p.channel_name),1),o("span",Lt,"("+u(R(p))+")",1)]),o("div",Bt,[(a(!0),d(f,null,v(p.statuses,(T,m)=>(a(),y(S,{key:m,type:M(m),size:"small",class:"compact-tag"},{default:s(()=>[c(u(D(m))+": "+u(T),1)]),_:2},1032,["type"]))),128))])]))),128))])])):(a(),d("span",St,"暂无渠道状态明细"))])])]),_:1}),l(V,{prop:"time_range",label:"统计时间","min-width":"200"})]),_:1},8,["data"])])):(a(),d("div",jt,[l(G,{description:"暂无统计数据"})]))]),_:1})),[[I,g.value]])])}}}),zt=pt(Nt,[["__scopeId","data-v-aa7d2a93"]]);export{zt as default}; diff --git a/server/public/admin/assets/upload-Cf8IgR5h.js b/server/public/admin/assets/upload-Dz90sHG4.js similarity index 90% rename from server/public/admin/assets/upload-Cf8IgR5h.js rename to server/public/admin/assets/upload-Dz90sHG4.js index 18a5322bc..1419b38e2 100644 --- a/server/public/admin/assets/upload-Cf8IgR5h.js +++ b/server/public/admin/assets/upload-Dz90sHG4.js @@ -1 +1 @@ -import{o as u,q as m,r as c,v as o,D as e,s as r,K as f,L as p,bj as v}from"./.pnpm-CyuAWpdG.js";import{U as i}from"./index-BU3OYnKm.js";import"./index-Dxvz9lb1.js";import"./file-CefRfHD9.js";const y={class:"flex flex-wrap"},g={class:"m-4"},w={class:"m-4"},h={class:"m-4"},x={class:"m-4"},V=u({__name:"upload",setup(B){const a=t=>{console.log("上传文件的状态发生改变",t)},l=t=>{console.log("上传文件成功",t)},n=t=>{console.log("上传文件失败",t)};return(t,s)=>{const d=f,_=v;return m(),c("div",null,[o(_,{header:"基础使用",shadow:"never",class:"!border-none"},{default:e(()=>[r("div",y,[r("div",g,[o(i,{onChange:a,onSuccess:l,onError:n,"show-progress":!0},{default:e(()=>[o(d,{type:"primary"},{default:e(()=>[...s[0]||(s[0]=[p("上传图片",-1)])]),_:1})]),_:1})]),r("div",w,[o(i,{type:"video",onChange:a,onSuccess:l,onError:n,"show-progress":!0},{default:e(()=>[o(d,{type:"primary"},{default:e(()=>[...s[1]||(s[1]=[p("上传视频",-1)])]),_:1})]),_:1})]),r("div",h,[o(i,{multiple:!1,onChange:a,onSuccess:l,onError:n,"show-progress":!0},{default:e(()=>[o(d,{type:"primary"},{default:e(()=>[...s[2]||(s[2]=[p("取消多选",-1)])]),_:1})]),_:1})]),r("div",x,[o(i,{limit:2,onChange:a,onSuccess:l,onError:n,"show-progress":!0},{default:e(()=>[o(d,{type:"primary"},{default:e(()=>[...s[3]||(s[3]=[p("一次最多上传2张",-1)])]),_:1})]),_:1})])])]),_:1})])}}});export{V as default}; +import{o as u,q as m,r as c,v as o,D as e,s as r,K as f,L as p,bj as v}from"./.pnpm-CyuAWpdG.js";import{U as i}from"./index-BJZwRQXE.js";import"./index-Bkarz3gO.js";import"./file-BjbV-eNx.js";const y={class:"flex flex-wrap"},g={class:"m-4"},w={class:"m-4"},h={class:"m-4"},x={class:"m-4"},V=u({__name:"upload",setup(B){const a=t=>{console.log("上传文件的状态发生改变",t)},l=t=>{console.log("上传文件成功",t)},n=t=>{console.log("上传文件失败",t)};return(t,s)=>{const d=f,_=v;return m(),c("div",null,[o(_,{header:"基础使用",shadow:"never",class:"!border-none"},{default:e(()=>[r("div",y,[r("div",g,[o(i,{onChange:a,onSuccess:l,onError:n,"show-progress":!0},{default:e(()=>[o(d,{type:"primary"},{default:e(()=>[...s[0]||(s[0]=[p("上传图片",-1)])]),_:1})]),_:1})]),r("div",w,[o(i,{type:"video",onChange:a,onSuccess:l,onError:n,"show-progress":!0},{default:e(()=>[o(d,{type:"primary"},{default:e(()=>[...s[1]||(s[1]=[p("上传视频",-1)])]),_:1})]),_:1})]),r("div",h,[o(i,{multiple:!1,onChange:a,onSuccess:l,onError:n,"show-progress":!0},{default:e(()=>[o(d,{type:"primary"},{default:e(()=>[...s[2]||(s[2]=[p("取消多选",-1)])]),_:1})]),_:1})]),r("div",x,[o(i,{limit:2,onChange:a,onSuccess:l,onError:n,"show-progress":!0},{default:e(()=>[o(d,{type:"primary"},{default:e(()=>[...s[3]||(s[3]=[p("一次最多上传2张",-1)])]),_:1})]),_:1})])])]),_:1})])}}});export{V as default}; diff --git a/server/public/admin/assets/useDictOptions-ByJNOzqa.js b/server/public/admin/assets/useDictOptions-dnxxXBSU.js similarity index 84% rename from server/public/admin/assets/useDictOptions-ByJNOzqa.js rename to server/public/admin/assets/useDictOptions-dnxxXBSU.js index a7c4b3268..e5bf4fa68 100644 --- a/server/public/admin/assets/useDictOptions-ByJNOzqa.js +++ b/server/public/admin/assets/useDictOptions-dnxxXBSU.js @@ -1 +1 @@ -import"./index-Dxvz9lb1.js";import{bM as p,aC as f}from"./.pnpm-CyuAWpdG.js";function d(t){const s=f({}),e=Object.keys(t),i=e.map(o=>{const a=t[o];return s[o]=[],()=>a.api(p(a.params)||{})}),r=async()=>{(await Promise.allSettled(i.map(a=>a()))).forEach((a,u)=>{const n=e[u];if(a.status=="fulfilled"){const{transformData:c}=t[n],l=c?c(a.value):a.value;s[n]=l}})};return r(),{optionsData:s,refresh:r}}export{d as u}; +import"./index-Bkarz3gO.js";import{bM as p,aC as f}from"./.pnpm-CyuAWpdG.js";function d(t){const s=f({}),e=Object.keys(t),i=e.map(o=>{const a=t[o];return s[o]=[],()=>a.api(p(a.params)||{})}),r=async()=>{(await Promise.allSettled(i.map(a=>a()))).forEach((a,u)=>{const n=e[u];if(a.status=="fulfilled"){const{transformData:c}=t[n],l=c?c(a.value):a.value;s[n]=l}})};return r(),{optionsData:s,refresh:r}}export{d as u}; diff --git a/server/public/admin/assets/useListTimeFilter-7kq30CnT.js b/server/public/admin/assets/useListTimeFilter-F3VNdKVb.js similarity index 98% rename from server/public/admin/assets/useListTimeFilter-7kq30CnT.js rename to server/public/admin/assets/useListTimeFilter-F3VNdKVb.js index af1c93626..4e764aeaf 100644 --- a/server/public/admin/assets/useListTimeFilter-7kq30CnT.js +++ b/server/public/admin/assets/useListTimeFilter-F3VNdKVb.js @@ -1 +1 @@ -import{o as T,ck as D,q as g,r as M,F as Y,v as s,bb as z,ae as k,D as o,bf as F,O as p,L as m,be as R,P as v,az as x,t as w,s as B,cl as C,M as V}from"./.pnpm-CyuAWpdG.js";import{_ as $}from"./index-Dxvz9lb1.js";const E={class:"list-time-filter-inline"},L=T({__name:"index",props:C({label:{default:"时间范围"},variant:{default:"split"},pickerWidth:{default:"260px"},compact:{type:Boolean,default:!1},showAll:{type:Boolean,default:!1}},{timeType:{required:!0},timeTypeModifiers:{},dateRange:{default:()=>[]},dateRangeModifiers:{}}),emits:C(["time-type-change","custom-change"],["update:timeType","update:dateRange"]),setup(t,{emit:d}){const l=D(t,"timeType"),a=D(t,"dateRange"),n=d;return(c,e)=>{const u=R,i=F,f=z,b=x;return t.variant==="split"?(g(),M(Y,{key:0},[s(f,{label:t.label,class:k({"is-compact":t.compact})},{default:o(()=>[s(i,{modelValue:l.value,"onUpdate:modelValue":e[0]||(e[0]=r=>l.value=r),size:t.compact?"small":"default",onChange:e[1]||(e[1]=r=>n("time-type-change"))},{default:o(()=>[t.showAll?(g(),p(u,{key:0,label:"all"},{default:o(()=>[...e[8]||(e[8]=[m("全部",-1)])]),_:1})):v("",!0),s(u,{label:"today"},{default:o(()=>[...e[9]||(e[9]=[m("今天",-1)])]),_:1}),s(u,{label:"yesterday"},{default:o(()=>[...e[10]||(e[10]=[m("昨天",-1)])]),_:1}),s(u,{label:"week"},{default:o(()=>[...e[11]||(e[11]=[m("最近7天",-1)])]),_:1}),s(u,{label:"month"},{default:o(()=>[...e[12]||(e[12]=[m("本月",-1)])]),_:1}),s(u,{label:"custom"},{default:o(()=>[...e[13]||(e[13]=[m("自定义",-1)])]),_:1})]),_:1},8,["modelValue","size"])]),_:1},8,["label","class"]),l.value==="custom"?(g(),p(f,{key:0},{default:o(()=>[s(b,{modelValue:a.value,"onUpdate:modelValue":e[2]||(e[2]=r=>a.value=r),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",size:t.compact?"small":"default",style:w({width:t.pickerWidth}),onChange:e[3]||(e[3]=r=>n("custom-change"))},null,8,["modelValue","size","style"])]),_:1})):v("",!0)],64)):(g(),p(f,{key:1,label:t.label,class:k({"is-compact":t.compact})},{default:o(()=>[B("div",E,[s(i,{modelValue:l.value,"onUpdate:modelValue":e[4]||(e[4]=r=>l.value=r),size:t.compact?"small":"default",onChange:e[5]||(e[5]=r=>n("time-type-change"))},{default:o(()=>[t.showAll?(g(),p(u,{key:0,label:"all"},{default:o(()=>[...e[14]||(e[14]=[m("全部",-1)])]),_:1})):v("",!0),s(u,{label:"today"},{default:o(()=>[...e[15]||(e[15]=[m("今天",-1)])]),_:1}),s(u,{label:"yesterday"},{default:o(()=>[...e[16]||(e[16]=[m("昨天",-1)])]),_:1}),s(u,{label:"week"},{default:o(()=>[...e[17]||(e[17]=[m("最近7天",-1)])]),_:1}),s(u,{label:"month"},{default:o(()=>[...e[18]||(e[18]=[m("本月",-1)])]),_:1}),s(u,{label:"custom"},{default:o(()=>[...e[19]||(e[19]=[m("自定义",-1)])]),_:1})]),_:1},8,["modelValue","size"]),l.value==="custom"?(g(),p(b,{key:0,modelValue:a.value,"onUpdate:modelValue":e[6]||(e[6]=r=>a.value=r),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",size:t.compact?"small":"default",style:w({width:t.pickerWidth}),onChange:e[7]||(e[7]=r=>n("custom-change"))},null,8,["modelValue","size","style"])):v("",!0)])]),_:1},8,["label","class"]))}}}),A=$(L,[["__scopeId","data-v-4ca4604b"]]);function y(t){const d=t.getFullYear(),l=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0");return`${d}-${l}-${a}`}function S(t,d){const l=y(new Date);switch(t){case"all":return["",""];case"yesterday":{const a=new Date;a.setDate(a.getDate()-1);const n=y(a);return[n,n]}case"week":{const a=new Date,n=new Date;return n.setDate(n.getDate()-6),[y(n),y(a)]}case"month":{const a=new Date,n=new Date(a.getFullYear(),a.getMonth(),1),c=new Date(a.getFullYear(),a.getMonth()+1,0);return[y(n),y(c)]}case"custom":{let a=d[0]||l,n=d[1]||l;return a>n&&([a,n]=[n,a]),[a,n]}case"today":default:return[l,l]}}function W(t="today"){const d=V(t),l=V([]);return{time_type:d,dateRange:l,resolve:()=>S(d.value,l.value),handleTimeTypeChange:i=>{d.value!=="custom"&&(l.value=[],i())},handleCustomDateChange:i=>{l.value.length===2&&i()},resetTimeFilter:()=>{d.value=t,l.value=[]},applyCustomRange:(i,f)=>{!i||!f||(d.value="custom",l.value=[i,f])}}}export{A as L,W as u}; +import{o as T,ck as D,q as g,r as M,F as Y,v as s,bb as z,ae as k,D as o,bf as F,O as p,L as m,be as R,P as v,az as x,t as w,s as B,cl as C,M as V}from"./.pnpm-CyuAWpdG.js";import{_ as $}from"./index-Bkarz3gO.js";const E={class:"list-time-filter-inline"},L=T({__name:"index",props:C({label:{default:"时间范围"},variant:{default:"split"},pickerWidth:{default:"260px"},compact:{type:Boolean,default:!1},showAll:{type:Boolean,default:!1}},{timeType:{required:!0},timeTypeModifiers:{},dateRange:{default:()=>[]},dateRangeModifiers:{}}),emits:C(["time-type-change","custom-change"],["update:timeType","update:dateRange"]),setup(t,{emit:d}){const l=D(t,"timeType"),a=D(t,"dateRange"),n=d;return(c,e)=>{const u=R,i=F,f=z,b=x;return t.variant==="split"?(g(),M(Y,{key:0},[s(f,{label:t.label,class:k({"is-compact":t.compact})},{default:o(()=>[s(i,{modelValue:l.value,"onUpdate:modelValue":e[0]||(e[0]=r=>l.value=r),size:t.compact?"small":"default",onChange:e[1]||(e[1]=r=>n("time-type-change"))},{default:o(()=>[t.showAll?(g(),p(u,{key:0,label:"all"},{default:o(()=>[...e[8]||(e[8]=[m("全部",-1)])]),_:1})):v("",!0),s(u,{label:"today"},{default:o(()=>[...e[9]||(e[9]=[m("今天",-1)])]),_:1}),s(u,{label:"yesterday"},{default:o(()=>[...e[10]||(e[10]=[m("昨天",-1)])]),_:1}),s(u,{label:"week"},{default:o(()=>[...e[11]||(e[11]=[m("最近7天",-1)])]),_:1}),s(u,{label:"month"},{default:o(()=>[...e[12]||(e[12]=[m("本月",-1)])]),_:1}),s(u,{label:"custom"},{default:o(()=>[...e[13]||(e[13]=[m("自定义",-1)])]),_:1})]),_:1},8,["modelValue","size"])]),_:1},8,["label","class"]),l.value==="custom"?(g(),p(f,{key:0},{default:o(()=>[s(b,{modelValue:a.value,"onUpdate:modelValue":e[2]||(e[2]=r=>a.value=r),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",size:t.compact?"small":"default",style:w({width:t.pickerWidth}),onChange:e[3]||(e[3]=r=>n("custom-change"))},null,8,["modelValue","size","style"])]),_:1})):v("",!0)],64)):(g(),p(f,{key:1,label:t.label,class:k({"is-compact":t.compact})},{default:o(()=>[B("div",E,[s(i,{modelValue:l.value,"onUpdate:modelValue":e[4]||(e[4]=r=>l.value=r),size:t.compact?"small":"default",onChange:e[5]||(e[5]=r=>n("time-type-change"))},{default:o(()=>[t.showAll?(g(),p(u,{key:0,label:"all"},{default:o(()=>[...e[14]||(e[14]=[m("全部",-1)])]),_:1})):v("",!0),s(u,{label:"today"},{default:o(()=>[...e[15]||(e[15]=[m("今天",-1)])]),_:1}),s(u,{label:"yesterday"},{default:o(()=>[...e[16]||(e[16]=[m("昨天",-1)])]),_:1}),s(u,{label:"week"},{default:o(()=>[...e[17]||(e[17]=[m("最近7天",-1)])]),_:1}),s(u,{label:"month"},{default:o(()=>[...e[18]||(e[18]=[m("本月",-1)])]),_:1}),s(u,{label:"custom"},{default:o(()=>[...e[19]||(e[19]=[m("自定义",-1)])]),_:1})]),_:1},8,["modelValue","size"]),l.value==="custom"?(g(),p(b,{key:0,modelValue:a.value,"onUpdate:modelValue":e[6]||(e[6]=r=>a.value=r),type:"daterange","value-format":"YYYY-MM-DD","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期",size:t.compact?"small":"default",style:w({width:t.pickerWidth}),onChange:e[7]||(e[7]=r=>n("custom-change"))},null,8,["modelValue","size","style"])):v("",!0)])]),_:1},8,["label","class"]))}}}),A=$(L,[["__scopeId","data-v-4ca4604b"]]);function y(t){const d=t.getFullYear(),l=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0");return`${d}-${l}-${a}`}function S(t,d){const l=y(new Date);switch(t){case"all":return["",""];case"yesterday":{const a=new Date;a.setDate(a.getDate()-1);const n=y(a);return[n,n]}case"week":{const a=new Date,n=new Date;return n.setDate(n.getDate()-6),[y(n),y(a)]}case"month":{const a=new Date,n=new Date(a.getFullYear(),a.getMonth(),1),c=new Date(a.getFullYear(),a.getMonth()+1,0);return[y(n),y(c)]}case"custom":{let a=d[0]||l,n=d[1]||l;return a>n&&([a,n]=[n,a]),[a,n]}case"today":default:return[l,l]}}function W(t="today"){const d=V(t),l=V([]);return{time_type:d,dateRange:l,resolve:()=>S(d.value,l.value),handleTimeTypeChange:i=>{d.value!=="custom"&&(l.value=[],i())},handleCustomDateChange:i=>{l.value.length===2&&i()},resetTimeFilter:()=>{d.value=t,l.value=[]},applyCustomRange:(i,f)=>{!i||!f||(d.value="custom",l.value=[i,f])}}}export{A as L,W as u}; diff --git a/server/public/admin/assets/useMediaSourceOptions-CerfJKnV.js b/server/public/admin/assets/useMediaSourceOptions-DDX835sU.js similarity index 90% rename from server/public/admin/assets/useMediaSourceOptions-CerfJKnV.js rename to server/public/admin/assets/useMediaSourceOptions-DDX835sU.js index afba843ef..fe54364a1 100644 --- a/server/public/admin/assets/useMediaSourceOptions-CerfJKnV.js +++ b/server/public/admin/assets/useMediaSourceOptions-DDX835sU.js @@ -1 +1 @@ -import{g as f}from"./self_input_stats-CIFG1oqD.js";import{M as u}from"./.pnpm-CyuAWpdG.js";function m(){const o=u([]),s=u(!1),c=r=>{if(!Array.isArray(r))return[];const n=[],a=new Set;for(const t of r){if(typeof t=="string"){const e=t.trim();e&&!a.has(e)&&(a.add(e),n.push({name:e,value:""}));continue}if(t&&typeof t=="object"){const e=String(t.name??"").trim();e&&!a.has(e)&&(a.add(e),n.push({name:e,value:String(t.value??"")}))}}return n},i=async(r=!1)=>{if(!(!r&&o.value.length>0)){s.value=!0;try{const n=await f();o.value=c(n)}catch{o.value=[]}finally{s.value=!1}}};return{mediaSourceOptions:o,mediaSourceLoading:s,loadMediaSourceOptions:i,refreshMediaSourceOptions:()=>i(!0)}}export{m as u}; +import{g as f}from"./self_input_stats-DXFvDfvT.js";import{M as u}from"./.pnpm-CyuAWpdG.js";function m(){const o=u([]),s=u(!1),c=r=>{if(!Array.isArray(r))return[];const n=[],a=new Set;for(const t of r){if(typeof t=="string"){const e=t.trim();e&&!a.has(e)&&(a.add(e),n.push({name:e,value:""}));continue}if(t&&typeof t=="object"){const e=String(t.name??"").trim();e&&!a.has(e)&&(a.add(e),n.push({name:e,value:String(t.value??"")}))}}return n},i=async(r=!1)=>{if(!(!r&&o.value.length>0)){s.value=!0;try{const n=await f();o.value=c(n)}catch{o.value=[]}finally{s.value=!1}}};return{mediaSourceOptions:o,mediaSourceLoading:s,loadMediaSourceOptions:i,refreshMediaSourceOptions:()=>i(!0)}}export{m as u}; diff --git a/server/public/admin/assets/useMenuOa-8FDoUIjw.js b/server/public/admin/assets/useMenuOa-30Dq12UU.js similarity index 92% rename from server/public/admin/assets/useMenuOa-8FDoUIjw.js rename to server/public/admin/assets/useMenuOa-30Dq12UU.js index 16b730bbb..725762fa6 100644 --- a/server/public/admin/assets/useMenuOa-8FDoUIjw.js +++ b/server/public/admin/assets/useMenuOa-30Dq12UU.js @@ -1 +1 @@ -import{a as i,b as c,c as g}from"./wx_oa-vu-UopqS.js";import{j as o}from"./index-Dxvz9lb1.js";import{aC as h,a8 as d,M as l}from"./.pnpm-CyuAWpdG.js";const r=d(),u=l([]),n=l(0),O=h({name:[{required:!0,message:"必填项不能为空",trigger:["blur","change"]},{min:1,max:12,message:"长度限制12个字符",trigger:["blur","change"]}],menuType:[{required:!0,message:"必填项不能为空",trigger:["blur","change"]}],visitType:[{required:!0,message:"必填项不能为空",trigger:["blur","change"]}],url:[{required:!0,message:"必填项不能为空",trigger:["blur","change"]},{pattern:/(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/,message:"请输入合法的网址链接",trigger:["blur","change"]}],appId:[{required:!0,message:"必填项不能为空",trigger:["blur","change"]}],pagePath:[{required:!0,message:"必填项不能为空",trigger:["blur","change"]}]}),x=s=>(s&&(r.value=s),{menuList:u,menuIndex:n,handleAddMenu:()=>{u.value.push({name:"菜单名称",has_menu:!1,type:"view",url:"",appid:"",pagepath:"",sub_button:[]})},handleAddSubMenu:e=>{const a=n.value;if(u.value[a].sub_button.length>=5){o.msgError("已添加上限~");return}u.value[a].sub_button.push(e)},handleEditSubMenu:(e,a)=>{const t=n.value;u.value[t].sub_button[a]=e},handleDelMenu:e=>{e!=0&&n.value--,u.value.splice(e,1)},handleDelSubMenu:(e,a)=>{u.value[e].sub_button.splice(a,1)},getOaMenuFunc:async()=>{try{u.value=await g()}catch(e){console.log("获取菜单=>",e)}},handleSave:async()=>{const e=r.value.value;for(let a=0;a{const e=r.value.value;for(let a=0;a(s&&(r.value=s),{menuList:u,menuIndex:n,handleAddMenu:()=>{u.value.push({name:"菜单名称",has_menu:!1,type:"view",url:"",appid:"",pagepath:"",sub_button:[]})},handleAddSubMenu:e=>{const a=n.value;if(u.value[a].sub_button.length>=5){o.msgError("已添加上限~");return}u.value[a].sub_button.push(e)},handleEditSubMenu:(e,a)=>{const t=n.value;u.value[t].sub_button[a]=e},handleDelMenu:e=>{e!=0&&n.value--,u.value.splice(e,1)},handleDelSubMenu:(e,a)=>{u.value[e].sub_button.splice(a,1)},getOaMenuFunc:async()=>{try{u.value=await g()}catch(e){console.log("获取菜单=>",e)}},handleSave:async()=>{const e=r.value.value;for(let a=0;a{const e=r.value.value;for(let a=0;a{const v=await M();for(const e in o)o[e]=v[e]},k=async()=>{var v;await((v=w.value)==null?void 0:v.validate()),await O(o),V()};return V(),(v,e)=>{const q=S,b=B,i=R,n=F,A=L,p=j,I=N,U=C,f=x("copy"),y=x("perms");return m(),E("div",null,[s(b,{class:"!border-none",shadow:"never"},{default:t(()=>[s(q,{type:"warning",title:"温馨提示:填写微信小程序开发配置,请前往微信公众平台申请小程序并完成认证",closable:!1,"show-icon":""})]),_:1}),s(I,{ref_key:"formRef",ref:w,model:d(o),rules:D,"label-width":d(g).isMobile?"80px":"160px"},{default:t(()=>[s(b,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[e[12]||(e[12]=l("div",{class:"font-medium mb-7"},"微信小程序",-1)),s(n,{label:"小程序名称",prop:"name"},{default:t(()=>[l("div",z,[s(i,{modelValue:d(o).name,"onUpdate:modelValue":e[0]||(e[0]=a=>d(o).name=a),placeholder:"请输入小程序名称"},null,8,["modelValue"])])]),_:1}),s(n,{label:"原始ID",prop:"original_id"},{default:t(()=>[l("div",G,[s(i,{modelValue:d(o).original_id,"onUpdate:modelValue":e[1]||(e[1]=a=>d(o).original_id=a),placeholder:"请输入原始ID"},null,8,["modelValue"])])]),_:1}),s(n,{label:"小程序码",prop:"qr_code"},{default:t(()=>[l("div",H,[l("div",null,[s(A,{modelValue:d(o).qr_code,"onUpdate:modelValue":e[2]||(e[2]=a=>d(o).qr_code=a),limit:1},null,8,["modelValue"])]),e[11]||(e[11]=l("div",{class:"form-tips"},"建议尺寸:宽400px*高400px。jpg,jpeg,png格式",-1))])]),_:1})]),_:1}),s(b,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[e[14]||(e[14]=l("div",{class:"font-medium mb-7"},"开发者ID",-1)),s(n,{label:"AppID",prop:"app_id"},{default:t(()=>[l("div",J,[s(i,{modelValue:d(o).app_id,"onUpdate:modelValue":e[3]||(e[3]=a=>d(o).app_id=a),placeholder:"请输入AppID"},null,8,["modelValue"])])]),_:1}),s(n,{label:"AppSecret",prop:"app_secret"},{default:t(()=>[l("div",P,[s(i,{modelValue:d(o).app_secret,"onUpdate:modelValue":e[4]||(e[4]=a=>d(o).app_secret=a),placeholder:"请输入AppSecret"},null,8,["modelValue"])])]),_:1}),s(n,null,{default:t(()=>[...e[13]||(e[13]=[l("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->开发者ID,设置AppID和AppSecret ",-1)])]),_:1})]),_:1}),s(b,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[e[25]||(e[25]=l("div",{class:"font-medium mb-7"},"服务器域名",-1)),s(n,{label:"request合法域名",prop:"appId"},{default:t(()=>[l("div",Q,[l("div",X,[l("div",Y,[s(i,{modelValue:d(o).request_domain,"onUpdate:modelValue":e[5]||(e[5]=a=>d(o).request_domain=a),disabled:""},null,8,["modelValue"])]),r((m(),u(p,null,{default:t(()=>[...e[15]||(e[15]=[_("复制",-1)])]),_:1})),[[f,d(o).request_domain]])]),e[16]||(e[16]=l("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 ",-1))])]),_:1}),s(n,{label:"socket合法域名"},{default:t(()=>[l("div",Z,[l("div",$,[l("div",h,[s(i,{modelValue:d(o).socket_domain,"onUpdate:modelValue":e[6]||(e[6]=a=>d(o).socket_domain=a),disabled:""},null,8,["modelValue"])]),r((m(),u(p,null,{default:t(()=>[...e[17]||(e[17]=[_("复制",-1)])]),_:1})),[[f,d(o).socket_domain]])]),e[18]||(e[18]=l("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写wss协议域名 ",-1))])]),_:1}),s(n,{label:"uploadFile合法域名"},{default:t(()=>[l("div",ee,[l("div",le,[l("div",oe,[s(i,{modelValue:d(o).upload_file_domain,"onUpdate:modelValue":e[7]||(e[7]=a=>d(o).upload_file_domain=a),disabled:""},null,8,["modelValue"])]),r((m(),u(p,null,{default:t(()=>[...e[19]||(e[19]=[_("复制",-1)])]),_:1})),[[f,d(o).upload_file_domain]])]),e[20]||(e[20]=l("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 ",-1))])]),_:1}),s(n,{label:"downloadFile合法域名"},{default:t(()=>[l("div",se,[l("div",de,[l("div",te,[s(i,{modelValue:d(o).download_file_domain,"onUpdate:modelValue":e[8]||(e[8]=a=>d(o).download_file_domain=a),disabled:""},null,8,["modelValue"])]),r((m(),u(p,null,{default:t(()=>[...e[21]||(e[21]=[_("复制",-1)])]),_:1})),[[f,d(o).download_file_domain]])]),e[22]||(e[22]=l("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 ",-1))])]),_:1}),s(n,{label:"udp合法域名"},{default:t(()=>[l("div",ae,[l("div",ne,[l("div",ie,[s(i,{modelValue:d(o).udp_domain,"onUpdate:modelValue":e[9]||(e[9]=a=>d(o).udp_domain=a),disabled:""},null,8,["modelValue"])]),r((m(),u(p,null,{default:t(()=>[...e[23]||(e[23]=[_("复制",-1)])]),_:1})),[[f,d(o).udp_domain]])]),e[24]||(e[24]=l("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写udp协议域名 ",-1))])]),_:1})]),_:1}),s(b,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[e[28]||(e[28]=l("div",{class:"font-medium mb-7"},"业务域名",-1)),s(n,{label:"业务域名"},{default:t(()=>[l("div",me,[l("div",pe,[l("div",re,[s(i,{modelValue:d(o).business_domain,"onUpdate:modelValue":e[10]||(e[10]=a=>d(o).business_domain=a),disabled:""},null,8,["modelValue"])]),r((m(),u(p,null,{default:t(()=>[...e[26]||(e[26]=[_("复制",-1)])]),_:1})),[[f,d(o).business_domain]])]),e[27]||(e[27]=l("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->业务域名,填写业务域名 ",-1))])]),_:1})]),_:1})]),_:1},8,["model","label-width"]),r((m(),u(U,null,{default:t(()=>[s(p,{type:"primary",onClick:k},{default:t(()=>[...e[29]||(e[29]=[_("保存",-1)])]),_:1})]),_:1})),[[y,["channel.mnp_settings/setConfig"]]])])}}});export{Ue as default}; +import{_ as C}from"./index-DIl3M8Wa.js";import{o as c,bp as x,q as m,r as E,v as s,D as t,bo as S,bj as B,s as l,bb as F,aA as R,u as d,ac as r,O as u,K as j,L as _,bd as N,aC as W,a8 as K}from"./.pnpm-CyuAWpdG.js";import{_ as L}from"./picker-BTh9eW9u.js";import{g as M,s as O}from"./weapp-COeXC0ZY.js";import{e as T}from"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./index-oRynN2pP.js";import"./index.vue_vue_type_script_setup_true_lang-DHxCVAKu.js";import"./index-Cqk_cdo9.js";import"./index-BJZwRQXE.js";import"./file-BjbV-eNx.js";import"./index.vue_vue_type_script_setup_true_lang-jh5rtxiA.js";import"./usePaging-CghUEVfD.js";const z={class:"w-80"},G={class:"w-80"},H={class:"flex-1"},J={class:"w-80"},P={class:"w-80"},Q={class:"flex-1 min-w-0"},X={class:"sm:flex"},Y={class:"mr-4 sm:w-80 flex"},Z={class:"flex-1 min-w-0"},$={class:"sm:flex"},h={class:"mr-4 sm:w-80 flex"},ee={class:"flex-1 min-w-0"},le={class:"sm:flex"},oe={class:"mr-4 sm:w-80 flex"},se={class:"flex-1 min-w-0"},de={class:"sm:flex"},te={class:"mr-4 sm:w-80 flex"},ae={class:"flex-1 min-w-0"},ne={class:"sm:flex"},ie={class:"mr-4 sm:w-80 flex"},me={class:"flex-1 min-w-0"},pe={class:"sm:flex"},re={class:"mr-4 sm:w-80 flex"},ue=c({name:"weappConfig"}),Ue=c({...ue,setup(_e){const g=T(),o=W({name:"",original_id:"",qr_code:"",app_id:"",app_secret:"",business_domain:"",download_file_domain:"",request_domain:"",socket_domain:"",tcpDomain:"",udp_domain:"",upload_file_domain:""}),w=K(),D={app_id:[{required:!0,message:"请输入AppID",trigger:["blur","change"]}],app_secret:[{required:!0,message:"请输入AppSecret",trigger:["blur","change"]}]},V=async()=>{const v=await M();for(const e in o)o[e]=v[e]},k=async()=>{var v;await((v=w.value)==null?void 0:v.validate()),await O(o),V()};return V(),(v,e)=>{const q=S,b=B,i=R,n=F,A=L,p=j,I=N,U=C,f=x("copy"),y=x("perms");return m(),E("div",null,[s(b,{class:"!border-none",shadow:"never"},{default:t(()=>[s(q,{type:"warning",title:"温馨提示:填写微信小程序开发配置,请前往微信公众平台申请小程序并完成认证",closable:!1,"show-icon":""})]),_:1}),s(I,{ref_key:"formRef",ref:w,model:d(o),rules:D,"label-width":d(g).isMobile?"80px":"160px"},{default:t(()=>[s(b,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[e[12]||(e[12]=l("div",{class:"font-medium mb-7"},"微信小程序",-1)),s(n,{label:"小程序名称",prop:"name"},{default:t(()=>[l("div",z,[s(i,{modelValue:d(o).name,"onUpdate:modelValue":e[0]||(e[0]=a=>d(o).name=a),placeholder:"请输入小程序名称"},null,8,["modelValue"])])]),_:1}),s(n,{label:"原始ID",prop:"original_id"},{default:t(()=>[l("div",G,[s(i,{modelValue:d(o).original_id,"onUpdate:modelValue":e[1]||(e[1]=a=>d(o).original_id=a),placeholder:"请输入原始ID"},null,8,["modelValue"])])]),_:1}),s(n,{label:"小程序码",prop:"qr_code"},{default:t(()=>[l("div",H,[l("div",null,[s(A,{modelValue:d(o).qr_code,"onUpdate:modelValue":e[2]||(e[2]=a=>d(o).qr_code=a),limit:1},null,8,["modelValue"])]),e[11]||(e[11]=l("div",{class:"form-tips"},"建议尺寸:宽400px*高400px。jpg,jpeg,png格式",-1))])]),_:1})]),_:1}),s(b,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[e[14]||(e[14]=l("div",{class:"font-medium mb-7"},"开发者ID",-1)),s(n,{label:"AppID",prop:"app_id"},{default:t(()=>[l("div",J,[s(i,{modelValue:d(o).app_id,"onUpdate:modelValue":e[3]||(e[3]=a=>d(o).app_id=a),placeholder:"请输入AppID"},null,8,["modelValue"])])]),_:1}),s(n,{label:"AppSecret",prop:"app_secret"},{default:t(()=>[l("div",P,[s(i,{modelValue:d(o).app_secret,"onUpdate:modelValue":e[4]||(e[4]=a=>d(o).app_secret=a),placeholder:"请输入AppSecret"},null,8,["modelValue"])])]),_:1}),s(n,null,{default:t(()=>[...e[13]||(e[13]=[l("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->开发者ID,设置AppID和AppSecret ",-1)])]),_:1})]),_:1}),s(b,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[e[25]||(e[25]=l("div",{class:"font-medium mb-7"},"服务器域名",-1)),s(n,{label:"request合法域名",prop:"appId"},{default:t(()=>[l("div",Q,[l("div",X,[l("div",Y,[s(i,{modelValue:d(o).request_domain,"onUpdate:modelValue":e[5]||(e[5]=a=>d(o).request_domain=a),disabled:""},null,8,["modelValue"])]),r((m(),u(p,null,{default:t(()=>[...e[15]||(e[15]=[_("复制",-1)])]),_:1})),[[f,d(o).request_domain]])]),e[16]||(e[16]=l("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 ",-1))])]),_:1}),s(n,{label:"socket合法域名"},{default:t(()=>[l("div",Z,[l("div",$,[l("div",h,[s(i,{modelValue:d(o).socket_domain,"onUpdate:modelValue":e[6]||(e[6]=a=>d(o).socket_domain=a),disabled:""},null,8,["modelValue"])]),r((m(),u(p,null,{default:t(()=>[...e[17]||(e[17]=[_("复制",-1)])]),_:1})),[[f,d(o).socket_domain]])]),e[18]||(e[18]=l("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写wss协议域名 ",-1))])]),_:1}),s(n,{label:"uploadFile合法域名"},{default:t(()=>[l("div",ee,[l("div",le,[l("div",oe,[s(i,{modelValue:d(o).upload_file_domain,"onUpdate:modelValue":e[7]||(e[7]=a=>d(o).upload_file_domain=a),disabled:""},null,8,["modelValue"])]),r((m(),u(p,null,{default:t(()=>[...e[19]||(e[19]=[_("复制",-1)])]),_:1})),[[f,d(o).upload_file_domain]])]),e[20]||(e[20]=l("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 ",-1))])]),_:1}),s(n,{label:"downloadFile合法域名"},{default:t(()=>[l("div",se,[l("div",de,[l("div",te,[s(i,{modelValue:d(o).download_file_domain,"onUpdate:modelValue":e[8]||(e[8]=a=>d(o).download_file_domain=a),disabled:""},null,8,["modelValue"])]),r((m(),u(p,null,{default:t(()=>[...e[21]||(e[21]=[_("复制",-1)])]),_:1})),[[f,d(o).download_file_domain]])]),e[22]||(e[22]=l("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名 ",-1))])]),_:1}),s(n,{label:"udp合法域名"},{default:t(()=>[l("div",ae,[l("div",ne,[l("div",ie,[s(i,{modelValue:d(o).udp_domain,"onUpdate:modelValue":e[9]||(e[9]=a=>d(o).udp_domain=a),disabled:""},null,8,["modelValue"])]),r((m(),u(p,null,{default:t(()=>[...e[23]||(e[23]=[_("复制",-1)])]),_:1})),[[f,d(o).udp_domain]])]),e[24]||(e[24]=l("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写udp协议域名 ",-1))])]),_:1})]),_:1}),s(b,{class:"!border-none mt-4",shadow:"never"},{default:t(()=>[e[28]||(e[28]=l("div",{class:"font-medium mb-7"},"业务域名",-1)),s(n,{label:"业务域名"},{default:t(()=>[l("div",me,[l("div",pe,[l("div",re,[s(i,{modelValue:d(o).business_domain,"onUpdate:modelValue":e[10]||(e[10]=a=>d(o).business_domain=a),disabled:""},null,8,["modelValue"])]),r((m(),u(p,null,{default:t(()=>[...e[26]||(e[26]=[_("复制",-1)])]),_:1})),[[f,d(o).business_domain]])]),e[27]||(e[27]=l("div",{class:"form-tips"}," 小程序账号登录微信公众平台,点击开发>开发设置->业务域名,填写业务域名 ",-1))])]),_:1})]),_:1})]),_:1},8,["model","label-width"]),r((m(),u(U,null,{default:t(()=>[s(p,{type:"primary",onClick:k},{default:t(()=>[...e[29]||(e[29]=[_("保存",-1)])]),_:1})]),_:1})),[[y,["channel.mnp_settings/setConfig"]]])])}}});export{Ue as default}; diff --git a/server/public/admin/assets/website-DRg8FnbB.js b/server/public/admin/assets/website-Uj_9T8tc.js similarity index 91% rename from server/public/admin/assets/website-DRg8FnbB.js rename to server/public/admin/assets/website-Uj_9T8tc.js index 6c60ce5bb..03da2e1ea 100644 --- a/server/public/admin/assets/website-DRg8FnbB.js +++ b/server/public/admin/assets/website-Uj_9T8tc.js @@ -1 +1 @@ -import{r as t}from"./index-Dxvz9lb1.js";function i(){return t.get({url:"/setting.web.web_setting/getCopyright"})}function n(e){return t.post({url:"/setting.web.web_setting/setCopyright",params:e})}function r(){return t.get({url:"/setting.web.web_setting/getWebsite"})}function g(e){return t.post({url:"/setting.web.web_setting/setWebsite",params:e})}function o(){return t.get({url:"/setting.web.web_setting/getAgreement"})}function u(e){return t.post({url:"/setting.web.web_setting/setAgreement",params:e})}function b(){return t.get({url:"/setting.web.web_setting/getSiteStatistics"})}function w(e){return t.post({url:"/setting.web.web_setting/setSiteStatistics",params:e})}export{r as a,g as b,o as c,u as d,b as e,w as f,i as g,n as s}; +import{r as t}from"./index-Bkarz3gO.js";function i(){return t.get({url:"/setting.web.web_setting/getCopyright"})}function n(e){return t.post({url:"/setting.web.web_setting/setCopyright",params:e})}function r(){return t.get({url:"/setting.web.web_setting/getWebsite"})}function g(e){return t.post({url:"/setting.web.web_setting/setWebsite",params:e})}function o(){return t.get({url:"/setting.web.web_setting/getAgreement"})}function u(e){return t.post({url:"/setting.web.web_setting/setAgreement",params:e})}function b(){return t.get({url:"/setting.web.web_setting/getSiteStatistics"})}function w(e){return t.post({url:"/setting.web.web_setting/setSiteStatistics",params:e})}export{r as a,g as b,o as c,u as d,b as e,w as f,i as g,n as s}; diff --git a/server/public/admin/assets/wx_oa-vu-UopqS.js b/server/public/admin/assets/wx_oa-C-EoclSf.js similarity index 93% rename from server/public/admin/assets/wx_oa-vu-UopqS.js rename to server/public/admin/assets/wx_oa-C-EoclSf.js index 834d41983..b42ae392a 100644 --- a/server/public/admin/assets/wx_oa-vu-UopqS.js +++ b/server/public/admin/assets/wx_oa-C-EoclSf.js @@ -1 +1 @@ -import{r as t}from"./index-Dxvz9lb1.js";function a(n){return t.post({url:"/channel.official_account_setting/setConfig",params:n})}function c(){return t.get({url:"/channel.official_account_setting/getConfig"})}function u(){return t.get({url:"/channel.official_account_menu/detail"})}function l(n){return t.post({url:"/channel.official_account_menu/save",params:n})}function o(n){return t.post({url:"/channel.official_account_menu/saveAndPublish",params:n})}function i(n){return t.get({url:"/channel.official_account_reply/lists",params:n})}function r(n){return t.post({url:"/channel.official_account_reply/delete",params:n})}function f(n){return t.post({url:"/channel.official_account_reply/status",params:n})}function s(n){return t.post({url:"/channel.official_account_reply/add",params:n})}function _(n){return t.post({url:"/channel.official_account_reply/edit",params:n})}function p(n){return t.get({url:"/channel.official_account_reply/detail",params:n})}export{o as a,l as b,u as c,i as d,f as e,_ as f,c as g,s as h,p as i,r as o,a as s}; +import{r as t}from"./index-Bkarz3gO.js";function a(n){return t.post({url:"/channel.official_account_setting/setConfig",params:n})}function c(){return t.get({url:"/channel.official_account_setting/getConfig"})}function u(){return t.get({url:"/channel.official_account_menu/detail"})}function l(n){return t.post({url:"/channel.official_account_menu/save",params:n})}function o(n){return t.post({url:"/channel.official_account_menu/saveAndPublish",params:n})}function i(n){return t.get({url:"/channel.official_account_reply/lists",params:n})}function r(n){return t.post({url:"/channel.official_account_reply/delete",params:n})}function f(n){return t.post({url:"/channel.official_account_reply/status",params:n})}function s(n){return t.post({url:"/channel.official_account_reply/add",params:n})}function _(n){return t.post({url:"/channel.official_account_reply/edit",params:n})}function p(n){return t.get({url:"/channel.official_account_reply/detail",params:n})}export{o as a,l as b,u as c,i as d,f as e,_ as f,c as g,s as h,p as i,r as o,a as s}; diff --git a/server/public/admin/assets/yeji-D3z5z-ES.js b/server/public/admin/assets/yeji-BIcfCxwq.js similarity index 99% rename from server/public/admin/assets/yeji-D3z5z-ES.js rename to server/public/admin/assets/yeji-BIcfCxwq.js index b1f26f4d6..4f13c4c42 100644 --- a/server/public/admin/assets/yeji-D3z5z-ES.js +++ b/server/public/admin/assets/yeji-BIcfCxwq.js @@ -1,4 +1,4 @@ -import{o as rl,R as dl,ap as ul,q as o,r as u,s as a,v as i,D as _,bh as cl,bi as _l,F as k,G as V,O as j,cD as pl,T as r,ac as X,bL as ml,bn as vl,az as fl,K as yl,w as gl,u as D,bB as bl,L as c,cz as hl,bj as wl,Y as kl,X as jl,bk as xl,bl as Sl,a1 as Nl,ci as M,P as f,bC as Cl,aw as U,ae as bt,c9 as Dl,ca as Ll,cL as ee,bu as zl,B as $l,aB as Al,bc as Rl,M as v,p as C,i as te,E as ae}from"./.pnpm-CyuAWpdG.js";import{h as Pl,y as lt,i as Tl,j as Il,k as Ml,l as Ol,m as qt,n as El,o as Fl,p as Vl,q as Bl}from"./stats-Bao68QGi.js";import{d as Yl}from"./finance-D9pJwZQS.js";import{z as Aa}from"./tcm-QAkeqQ9Q.js";import{h as Ul}from"./perm-DOfZAzJJ.js";import{_ as Hl}from"./index-Dxvz9lb1.js";const Wl={class:"yeji-page"},ql={class:"filter-surface"},Gl={class:"filter-row filter-row--top"},Jl={class:"filter-field"},Xl={class:"channel-opt-row"},Zl={class:"opt-name"},Kl={class:"opt-count"},Ql={class:"filter-field filter-field--wide"},eo={class:"filter-select filter-select--dept filter-dept-tree-wrap"},to={class:"filter-field filter-field--date-top"},ao={class:"filter-actions"},no={class:"filter-quick"},lo={class:"date-pills",role:"group","aria-label":"快捷日期"},oo=["onClick"],so={class:"doctor-daily-card__head"},io={class:"doctor-daily-card__title-block"},ro={key:0,class:"doctor-daily-card__range"},uo={class:"doctor-daily-card__tools"},co={key:0,class:"leaderboards-wrap"},_o={class:"leaderboard-hint"},po={class:"muted"},mo={class:"tables-wrap"},vo={key:0,class:"yeji-table leaderboard-table"},fo={class:"yeji-table__header"},yo={key:0,class:"leaderboard-sub"},go={class:"yeji-table__scroll",tabindex:"0",role:"region","aria-label":"排行榜,可横向滚动"},bo={class:"yeji-table__body yeji-table__body--leaderboard"},ho=["onClick"],wo={class:"col-rank"},ko={class:"col-abbr"},jo={class:"col-name"},xo={class:"col-consult"},So={class:"col-deal"},No=["onClick"],Co={key:0,class:"yeji-lead-cell--link"},Do=["onClick"],Lo={key:0,class:"yeji-lead-cell--link"},zo=["onClick"],$o={key:0,class:"yeji-lead-cell--link"},Ao=["onClick"],Ro={key:0,class:"yeji-lead-cell--link"},Po={class:"yeji-table__foot yeji-table__foot--left"},To={key:0},Io={key:0,class:"empty-tip leaderboard-empty"},Mo={class:"tables-wrap"},Oo={key:0,class:"empty-tip"},Eo={class:"yeji-table__header"},Fo={class:"yeji-table__scroll",tabindex:"0",role:"region","aria-label":"业绩数据表,可横向滚动"},Vo={class:"yeji-table__body yeji-table__body--data"},Bo={style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},Yo={style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},Uo={style:{"max-width":"280px","line-height":"1.7","font-size":"12px"}},Ho={key:0,class:"col-completed col-narrow-head"},Wo={class:"yeji-th-label"},qo={style:{"max-width":"340px","line-height":"1.7","font-size":"12px"}},Go={key:1,class:"col-completed col-narrow-head"},Jo={class:"yeji-th-label"},Xo={style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},Zo={key:2,class:"col-completed col-narrow-head"},Ko={class:"yeji-th-label"},Qo={style:{"max-width":"280px","line-height":"1.7","font-size":"12px"}},es={style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},ts=["onClick"],as={class:"col-dept"},ns=["onClick"],ls={key:0,class:"yeji-lead-cell--link"},os=["onClick"],ss={key:0,class:"yeji-lead-cell--link"},is=["onClick"],rs={key:0,class:"yeji-lead-cell--link"},ds=["onClick"],us={key:0,class:"yeji-lead-cell--link"},cs=["onClick"],_s={key:0,class:"col-completed"},ps=["onClick"],ms=["onClick"],vs={key:0,class:"yeji-lead-cell--link"},fs={key:1,class:"col-completed"},ys={key:2,class:"col-completed"},gs={class:"total-row"},bs=["onClick"],hs={key:0,class:"col-completed"},ws=["onClick"],ks={key:1,class:"col-completed"},js={key:2,class:"col-completed"},xs={class:"yeji-table__foot"},Ss={key:0},Ns={key:1},Cs={class:"tp-matrix-wrap"},Ds={class:"tp-matrix__title"},Ls={class:"tp-matrix",role:"list"},zs={class:"tp-matrix-card__head"},$s={class:"tp-matrix-card__titles"},As={key:0,class:"tp-matrix-card__parent"},Rs={class:"tp-matrix-card__name"},Ps={class:"tp-matrix-card__target"},Ts={class:"tp-matrix-card__table"},Is={class:"tp-matrix-card__num"},Ms={key:0},Os={class:"tp-matrix-card__num"},Es={key:1},Fs={class:"tp-matrix-card__num"},Vs={class:"tp-matrix-card__num tp-matrix-card__num--hot"},Bs={class:"tp-matrix-card__num"},Ys={class:"yeji-charts-stack"},Us={key:0,class:"yeji-chart-block"},Hs={class:"yeji-chart-block__title"},Ws={key:0,class:"yeji-chart-block__sub"},qs={class:"yeji-chart-panel"},Gs={class:"yeji-chart-panel"},Js={class:"yeji-chart-panel"},Xs={class:"yeji-chart-panel"},Zs={class:"yeji-chart-panel"},Ks={key:0,class:"yeji-chart-block"},Qs={class:"yeji-chart-block__title"},ei={class:"yeji-chart-panel"},ti={class:"yeji-chart-panel"},ai={class:"yeji-chart-block__title"},ni={key:0,class:"yeji-chart-block__sub"},li={class:"yeji-chart-block__sub yeji-chart-block__sub--muted"},oi={class:"yeji-chart-panel"},si={class:"yeji-order-drawer__header"},ii={class:"yeji-order-drawer__heading"},ri={class:"yeji-order-drawer__sub"},di={class:"yeji-order-drawer__shell"},ui={class:"yeji-order-drawer__stats",role:"region","aria-label":"订单汇总"},ci={class:"yeji-order-drawer__stat-card"},_i={class:"yeji-order-drawer__stat-value"},pi={class:"yeji-order-drawer__stat-card"},mi={class:"yeji-order-drawer__stat-value"},vi={class:"yeji-order-drawer__stat-card yeji-order-drawer__stat-card--total"},fi={class:"yeji-order-drawer__stat-label"},yi={class:"yeji-order-drawer__stat-note"},gi={class:"yeji-order-drawer__stat-value yeji-order-drawer__stat-value--money"},bi={class:"yeji-order-drawer__stat-card yeji-order-drawer__stat-card--accent"},hi={class:"yeji-order-drawer__stat-label"},wi={class:"yeji-order-drawer__stat-note"},ki={class:"yeji-order-drawer__stat-value yeji-order-drawer__stat-value--money"},ji={key:1,class:"yeji-order-drawer__stat-card yeji-order-drawer__stat-card--accent"},xi={class:"yeji-order-drawer__stat-value yeji-order-drawer__stat-value--money"},Si={key:2,class:"yeji-order-drawer__stat-card yeji-order-drawer__stat-card--muted"},Ni={class:"yeji-order-drawer__stat-value"},Ci={class:"yeji-order-drawer__body"},Di={key:0,class:"yeji-order-appt-lines"},Li={class:"yeji-order-appt-line"},zi={class:"yeji-order-appt-line"},$i={key:0,class:"yeji-order-appt-sub"},Ai={class:"yeji-order-appt-line"},Ri={class:"yeji-order-appt-line yeji-order-appt-line--channel"},Pi={class:"yeji-order-appt-channel-text"},Ti={key:0,class:"yeji-order-appt-sub"},Ii={key:1,class:"yeji-order-appt-empty"},Mi={class:"yeji-order-amt"},Oi={class:"yeji-order-drawer__pager"},Ei={class:"yeji-unassigned-dialog__head"},Fi={class:"yeji-unassigned-dialog__sub"},Vi={key:0,class:"yeji-unassigned-dialog__note"},Bi={class:"yeji-unassigned-dialog__body"},Yi={class:"yeji-unassigned-dialog__head yeji-leadlines-dialog__head"},Ui={class:"yeji-leadlines-dialog__head-main"},Hi={class:"yeji-unassigned-dialog__sub"},Wi={key:0,class:"yeji-unassigned-dialog__note"},qi={class:"yeji-unassigned-dialog__body"},Gi={key:2,class:"yeji-leadlines-dialog__pager"},Ji={class:"yeji-unassigned-dialog__head"},Xi={class:"yeji-unassigned-dialog__sub"},Zi={key:0,class:"yeji-unassigned-dialog__note"},Ki={class:"yeji-unassigned-dialog__body"},Qi={key:2,class:"yeji-leadlines-dialog__pager"},er={class:"yeji-unassigned-dialog__head"},tr={class:"yeji-unassigned-dialog__sub"},ar={key:0,class:"yeji-unassigned-dialog__note"},nr={class:"yeji-unassigned-dialog__body"},lr=["onClick","onKeydown"],or={class:"yeji-unassigned-dialog__head"},sr={class:"yeji-unassigned-dialog__sub"},ir={key:0,class:"yeji-unassigned-dialog__note"},rr={class:"yeji-unassigned-dialog__body"},dr={key:2,class:"yeji-leadlines-dialog__pager"},Ra=30,ur="stats.yejiStats/tabDoctor",cr="stats.yejiStats/tabLeaderboard",_r="stats.yejiStats/tabZyyt",pr="stats.yejiStats/tabTargetMatrix",mr=rl({__name:"yeji",setup(vr){function ot(t){return t.some(e=>Ul([e]))}const Pa={value:"id",label:"name",children:"children"};function Ta(t){if(!t.length)return[];const e=new Map;for(const g of t)e.set(g.id,{...g,children:[]});const n=[];for(const g of t){const b=e.get(g.id),w=Number(g.pid);w>0&&e.has(w)?e.get(w).children.push(b):n.push(b)}const s=g=>{var b;(b=g.children)!=null&&b.length?g.children.forEach(s):delete g.children};n.forEach(s);const d=g=>{var b;g.sort((w,I)=>{const E=w.name.includes("中心")?-1:1,p=I.name.includes("中心")?-1:1;return E!==p?E-p:w.id-I.id});for(const w of g)(b=w.children)!=null&&b.length&&d(w.children)};return d(n),n}const ne=v(!1),Ce=v([]),ht=v(!1),Ia=C(()=>Ta(Ce.value)),z=v([]),st=v([]),wt=v(!1),x=v(""),H=v(null),re=v([]);function kt(t,e){if(!t||typeof t!="object")return e;for(const n of Object.keys(t)){const s=parseInt(n,10);!Number.isNaN(s)&&s>=2&&(e=Math.max(e,s))}return e}function Ma(t){var n;let e=0;for(const s of t){for(const d of s.rows)e=kt(d.revisit_slots,e);e=kt((n=s.total)==null?void 0:n.revisit_slots,e)}return e}const jt=C(()=>{const t=Math.min(Ma(re.value),Ra);return t<2?[]:Array.from({length:t-1},(e,n)=>n+2)});function Oa(t){if(!t.er_center_subtree)return 0;let e=0;for(const n of t.rows)e=kt(n.revisit_slots,e);return e}function Gt(t){const e=Math.min(Oa(t),Ra);return e<2?[]:Array.from({length:e-1},(n,s)=>s+2)}function it(t){if(t===2)return"复诊2";const e=["三","四","五","六","七","八","九","十"];return t>=3&&t<=10?`复诊${e[t-3]}`:`复诊${t}`}function le(t,e){const n=t==null?void 0:t.revisit_slots;if(!n||typeof n!="object")return 0;const s=n[e]??n[String(e)],d=Number(s);return Number.isFinite(d)?d:0}const S=v(null),de=v(!1),xt=v(!1),De=v(!1),Jt=v(""),qe=v(""),Le=v([]),St=v(!1),ze=v(!1),Xt=v(""),Ge=v(""),$e=v([]),Zt=v(null),Nt=v(!1),ue=v(!1),Je=v(!1),Kt=v(""),Xe=v(""),Ae=v([]),Re=v(0),Ze=v(1),rt=v(20),Ct=v(null),dt=v(!1),fe=v(!1),Dt=v(""),Pe=v(""),ce=v([]),Te=v(0),ye=v(1),Ie=v(20),Lt=v(null),ut=v(!1),ge=v(!1),zt=v(""),Me=v(""),be=v([]),Oe=v(0),he=v(1),Ee=v(20),$t=v(null),Ea=C(()=>ce.value.some(t=>String(t.channel_source??"")!=="")),_e=v("zyyt"),W=C(()=>ot([ur,"stats.doctorDailyStats/overview"])),oe=C(()=>ot([cr,"stats.yejiStats/leaderboard"])),Fe=C(()=>ot([_r,"stats.yejiStats/multi","stats.yejiStats/overview"])),Ke=C(()=>ot([pr,"stats.yejiStats/targetMatrix","stats.yejiStats/multi"])),Fa=C(()=>W.value||oe.value||Fe.value||Ke.value);function Qe(){return Fe.value?"zyyt":W.value?"doctor":oe.value?"leaderboard":Ke.value?"zyyt_matrix":"zyyt"}dl(_e,t=>{(t==="doctor"&&!W.value||t==="leaderboard"&&!oe.value||t==="zyyt"&&!Fe.value||t==="zyyt_matrix"&&!Ke.value)&&(_e.value=Qe())});const Qt=C(()=>{var t;return(((t=S.value)==null?void 0:t.leaderboards)??[]).filter(e=>e.rows.length>0)});function ea(t){return t.rows.some(e=>e.dept_id>0&&(Number(e.lead_count)>0||Number(e.consult_count)>0||Number(e.deal_order_count)>0||Number(e.performance_amount)>0||Number(e.completed_performance_amount)>0))}const Ve=v(!1),B=v([]),pe=v({}),Be=v(null),ct=C(()=>{const t=Be.value;return!(t!=null&&t.start)||!(t!=null&&t.end)?"":t.start===t.end?`区间 ${t.start}`:`区间 ${t.start} ~ ${t.end}`}),At=C(()=>B.value.some(t=>Number(t.deal_amount??0)>0)),Rt=C(()=>B.value.some(t=>Number(t.system_prescription_count??0)>0||Number(t.manual_prescription_count??0)>0)),Va=C(()=>W.value?At.value||Rt.value||Pt.value||Tt.value||It.value:!1),Ba=C(()=>{if(Va.value)return!0;if(Fe.value){for(const t of re.value)if(ea(t))return!0}return!!(oe.value&&Qt.value.length>0)}),Pt=C(()=>{const t=pe.value;return Number(t.appointment_completed??0)+Number(t.appointment_missed??0)+Number(t.appointment_cancelled??0)>0}),Ya=C(()=>{const t=pe.value,e=[{value:Number(t.appointment_completed??0),name:"挂号完成"},{value:Number(t.appointment_missed??0),name:"过号"},{value:Number(t.appointment_cancelled??0),name:"取消"}].filter(n=>n.value>0);return{color:["#0d9488","#d97706","#94a3b8"],tooltip:{trigger:"item",formatter:"{b}: {c} ({d}%)"},legend:{bottom:0,type:"scroll",textStyle:{fontSize:10}},series:[{name:"挂号",type:"pie",radius:["42%","68%"],center:["50%","46%"],avoidLabelOverlap:!0,itemStyle:{borderRadius:6,borderColor:"#fff",borderWidth:2},label:{formatter:`{b} +import{o as rl,R as dl,ap as ul,q as o,r as u,s as a,v as i,D as _,bh as cl,bi as _l,F as k,G as V,O as j,cD as pl,T as r,ac as X,bL as ml,bn as vl,az as fl,K as yl,w as gl,u as D,bB as bl,L as c,cz as hl,bj as wl,Y as kl,X as jl,bk as xl,bl as Sl,a1 as Nl,ci as M,P as f,bC as Cl,aw as U,ae as bt,c9 as Dl,ca as Ll,cL as ee,bu as zl,B as $l,aB as Al,bc as Rl,M as v,p as C,i as te,E as ae}from"./.pnpm-CyuAWpdG.js";import{h as Pl,y as lt,i as Tl,j as Il,k as Ml,l as Ol,m as qt,n as El,o as Fl,p as Vl,q as Bl}from"./stats-B9TgZYZ_.js";import{d as Yl}from"./finance-C684dcZP.js";import{z as Aa}from"./tcm-BSADvQNg.js";import{h as Ul}from"./perm-CHCBwnFR.js";import{_ as Hl}from"./index-Bkarz3gO.js";const Wl={class:"yeji-page"},ql={class:"filter-surface"},Gl={class:"filter-row filter-row--top"},Jl={class:"filter-field"},Xl={class:"channel-opt-row"},Zl={class:"opt-name"},Kl={class:"opt-count"},Ql={class:"filter-field filter-field--wide"},eo={class:"filter-select filter-select--dept filter-dept-tree-wrap"},to={class:"filter-field filter-field--date-top"},ao={class:"filter-actions"},no={class:"filter-quick"},lo={class:"date-pills",role:"group","aria-label":"快捷日期"},oo=["onClick"],so={class:"doctor-daily-card__head"},io={class:"doctor-daily-card__title-block"},ro={key:0,class:"doctor-daily-card__range"},uo={class:"doctor-daily-card__tools"},co={key:0,class:"leaderboards-wrap"},_o={class:"leaderboard-hint"},po={class:"muted"},mo={class:"tables-wrap"},vo={key:0,class:"yeji-table leaderboard-table"},fo={class:"yeji-table__header"},yo={key:0,class:"leaderboard-sub"},go={class:"yeji-table__scroll",tabindex:"0",role:"region","aria-label":"排行榜,可横向滚动"},bo={class:"yeji-table__body yeji-table__body--leaderboard"},ho=["onClick"],wo={class:"col-rank"},ko={class:"col-abbr"},jo={class:"col-name"},xo={class:"col-consult"},So={class:"col-deal"},No=["onClick"],Co={key:0,class:"yeji-lead-cell--link"},Do=["onClick"],Lo={key:0,class:"yeji-lead-cell--link"},zo=["onClick"],$o={key:0,class:"yeji-lead-cell--link"},Ao=["onClick"],Ro={key:0,class:"yeji-lead-cell--link"},Po={class:"yeji-table__foot yeji-table__foot--left"},To={key:0},Io={key:0,class:"empty-tip leaderboard-empty"},Mo={class:"tables-wrap"},Oo={key:0,class:"empty-tip"},Eo={class:"yeji-table__header"},Fo={class:"yeji-table__scroll",tabindex:"0",role:"region","aria-label":"业绩数据表,可横向滚动"},Vo={class:"yeji-table__body yeji-table__body--data"},Bo={style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},Yo={style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},Uo={style:{"max-width":"280px","line-height":"1.7","font-size":"12px"}},Ho={key:0,class:"col-completed col-narrow-head"},Wo={class:"yeji-th-label"},qo={style:{"max-width":"340px","line-height":"1.7","font-size":"12px"}},Go={key:1,class:"col-completed col-narrow-head"},Jo={class:"yeji-th-label"},Xo={style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},Zo={key:2,class:"col-completed col-narrow-head"},Ko={class:"yeji-th-label"},Qo={style:{"max-width":"280px","line-height":"1.7","font-size":"12px"}},es={style:{"max-width":"320px","line-height":"1.7","font-size":"12px"}},ts=["onClick"],as={class:"col-dept"},ns=["onClick"],ls={key:0,class:"yeji-lead-cell--link"},os=["onClick"],ss={key:0,class:"yeji-lead-cell--link"},is=["onClick"],rs={key:0,class:"yeji-lead-cell--link"},ds=["onClick"],us={key:0,class:"yeji-lead-cell--link"},cs=["onClick"],_s={key:0,class:"col-completed"},ps=["onClick"],ms=["onClick"],vs={key:0,class:"yeji-lead-cell--link"},fs={key:1,class:"col-completed"},ys={key:2,class:"col-completed"},gs={class:"total-row"},bs=["onClick"],hs={key:0,class:"col-completed"},ws=["onClick"],ks={key:1,class:"col-completed"},js={key:2,class:"col-completed"},xs={class:"yeji-table__foot"},Ss={key:0},Ns={key:1},Cs={class:"tp-matrix-wrap"},Ds={class:"tp-matrix__title"},Ls={class:"tp-matrix",role:"list"},zs={class:"tp-matrix-card__head"},$s={class:"tp-matrix-card__titles"},As={key:0,class:"tp-matrix-card__parent"},Rs={class:"tp-matrix-card__name"},Ps={class:"tp-matrix-card__target"},Ts={class:"tp-matrix-card__table"},Is={class:"tp-matrix-card__num"},Ms={key:0},Os={class:"tp-matrix-card__num"},Es={key:1},Fs={class:"tp-matrix-card__num"},Vs={class:"tp-matrix-card__num tp-matrix-card__num--hot"},Bs={class:"tp-matrix-card__num"},Ys={class:"yeji-charts-stack"},Us={key:0,class:"yeji-chart-block"},Hs={class:"yeji-chart-block__title"},Ws={key:0,class:"yeji-chart-block__sub"},qs={class:"yeji-chart-panel"},Gs={class:"yeji-chart-panel"},Js={class:"yeji-chart-panel"},Xs={class:"yeji-chart-panel"},Zs={class:"yeji-chart-panel"},Ks={key:0,class:"yeji-chart-block"},Qs={class:"yeji-chart-block__title"},ei={class:"yeji-chart-panel"},ti={class:"yeji-chart-panel"},ai={class:"yeji-chart-block__title"},ni={key:0,class:"yeji-chart-block__sub"},li={class:"yeji-chart-block__sub yeji-chart-block__sub--muted"},oi={class:"yeji-chart-panel"},si={class:"yeji-order-drawer__header"},ii={class:"yeji-order-drawer__heading"},ri={class:"yeji-order-drawer__sub"},di={class:"yeji-order-drawer__shell"},ui={class:"yeji-order-drawer__stats",role:"region","aria-label":"订单汇总"},ci={class:"yeji-order-drawer__stat-card"},_i={class:"yeji-order-drawer__stat-value"},pi={class:"yeji-order-drawer__stat-card"},mi={class:"yeji-order-drawer__stat-value"},vi={class:"yeji-order-drawer__stat-card yeji-order-drawer__stat-card--total"},fi={class:"yeji-order-drawer__stat-label"},yi={class:"yeji-order-drawer__stat-note"},gi={class:"yeji-order-drawer__stat-value yeji-order-drawer__stat-value--money"},bi={class:"yeji-order-drawer__stat-card yeji-order-drawer__stat-card--accent"},hi={class:"yeji-order-drawer__stat-label"},wi={class:"yeji-order-drawer__stat-note"},ki={class:"yeji-order-drawer__stat-value yeji-order-drawer__stat-value--money"},ji={key:1,class:"yeji-order-drawer__stat-card yeji-order-drawer__stat-card--accent"},xi={class:"yeji-order-drawer__stat-value yeji-order-drawer__stat-value--money"},Si={key:2,class:"yeji-order-drawer__stat-card yeji-order-drawer__stat-card--muted"},Ni={class:"yeji-order-drawer__stat-value"},Ci={class:"yeji-order-drawer__body"},Di={key:0,class:"yeji-order-appt-lines"},Li={class:"yeji-order-appt-line"},zi={class:"yeji-order-appt-line"},$i={key:0,class:"yeji-order-appt-sub"},Ai={class:"yeji-order-appt-line"},Ri={class:"yeji-order-appt-line yeji-order-appt-line--channel"},Pi={class:"yeji-order-appt-channel-text"},Ti={key:0,class:"yeji-order-appt-sub"},Ii={key:1,class:"yeji-order-appt-empty"},Mi={class:"yeji-order-amt"},Oi={class:"yeji-order-drawer__pager"},Ei={class:"yeji-unassigned-dialog__head"},Fi={class:"yeji-unassigned-dialog__sub"},Vi={key:0,class:"yeji-unassigned-dialog__note"},Bi={class:"yeji-unassigned-dialog__body"},Yi={class:"yeji-unassigned-dialog__head yeji-leadlines-dialog__head"},Ui={class:"yeji-leadlines-dialog__head-main"},Hi={class:"yeji-unassigned-dialog__sub"},Wi={key:0,class:"yeji-unassigned-dialog__note"},qi={class:"yeji-unassigned-dialog__body"},Gi={key:2,class:"yeji-leadlines-dialog__pager"},Ji={class:"yeji-unassigned-dialog__head"},Xi={class:"yeji-unassigned-dialog__sub"},Zi={key:0,class:"yeji-unassigned-dialog__note"},Ki={class:"yeji-unassigned-dialog__body"},Qi={key:2,class:"yeji-leadlines-dialog__pager"},er={class:"yeji-unassigned-dialog__head"},tr={class:"yeji-unassigned-dialog__sub"},ar={key:0,class:"yeji-unassigned-dialog__note"},nr={class:"yeji-unassigned-dialog__body"},lr=["onClick","onKeydown"],or={class:"yeji-unassigned-dialog__head"},sr={class:"yeji-unassigned-dialog__sub"},ir={key:0,class:"yeji-unassigned-dialog__note"},rr={class:"yeji-unassigned-dialog__body"},dr={key:2,class:"yeji-leadlines-dialog__pager"},Ra=30,ur="stats.yejiStats/tabDoctor",cr="stats.yejiStats/tabLeaderboard",_r="stats.yejiStats/tabZyyt",pr="stats.yejiStats/tabTargetMatrix",mr=rl({__name:"yeji",setup(vr){function ot(t){return t.some(e=>Ul([e]))}const Pa={value:"id",label:"name",children:"children"};function Ta(t){if(!t.length)return[];const e=new Map;for(const g of t)e.set(g.id,{...g,children:[]});const n=[];for(const g of t){const b=e.get(g.id),w=Number(g.pid);w>0&&e.has(w)?e.get(w).children.push(b):n.push(b)}const s=g=>{var b;(b=g.children)!=null&&b.length?g.children.forEach(s):delete g.children};n.forEach(s);const d=g=>{var b;g.sort((w,I)=>{const E=w.name.includes("中心")?-1:1,p=I.name.includes("中心")?-1:1;return E!==p?E-p:w.id-I.id});for(const w of g)(b=w.children)!=null&&b.length&&d(w.children)};return d(n),n}const ne=v(!1),Ce=v([]),ht=v(!1),Ia=C(()=>Ta(Ce.value)),z=v([]),st=v([]),wt=v(!1),x=v(""),H=v(null),re=v([]);function kt(t,e){if(!t||typeof t!="object")return e;for(const n of Object.keys(t)){const s=parseInt(n,10);!Number.isNaN(s)&&s>=2&&(e=Math.max(e,s))}return e}function Ma(t){var n;let e=0;for(const s of t){for(const d of s.rows)e=kt(d.revisit_slots,e);e=kt((n=s.total)==null?void 0:n.revisit_slots,e)}return e}const jt=C(()=>{const t=Math.min(Ma(re.value),Ra);return t<2?[]:Array.from({length:t-1},(e,n)=>n+2)});function Oa(t){if(!t.er_center_subtree)return 0;let e=0;for(const n of t.rows)e=kt(n.revisit_slots,e);return e}function Gt(t){const e=Math.min(Oa(t),Ra);return e<2?[]:Array.from({length:e-1},(n,s)=>s+2)}function it(t){if(t===2)return"复诊2";const e=["三","四","五","六","七","八","九","十"];return t>=3&&t<=10?`复诊${e[t-3]}`:`复诊${t}`}function le(t,e){const n=t==null?void 0:t.revisit_slots;if(!n||typeof n!="object")return 0;const s=n[e]??n[String(e)],d=Number(s);return Number.isFinite(d)?d:0}const S=v(null),de=v(!1),xt=v(!1),De=v(!1),Jt=v(""),qe=v(""),Le=v([]),St=v(!1),ze=v(!1),Xt=v(""),Ge=v(""),$e=v([]),Zt=v(null),Nt=v(!1),ue=v(!1),Je=v(!1),Kt=v(""),Xe=v(""),Ae=v([]),Re=v(0),Ze=v(1),rt=v(20),Ct=v(null),dt=v(!1),fe=v(!1),Dt=v(""),Pe=v(""),ce=v([]),Te=v(0),ye=v(1),Ie=v(20),Lt=v(null),ut=v(!1),ge=v(!1),zt=v(""),Me=v(""),be=v([]),Oe=v(0),he=v(1),Ee=v(20),$t=v(null),Ea=C(()=>ce.value.some(t=>String(t.channel_source??"")!=="")),_e=v("zyyt"),W=C(()=>ot([ur,"stats.doctorDailyStats/overview"])),oe=C(()=>ot([cr,"stats.yejiStats/leaderboard"])),Fe=C(()=>ot([_r,"stats.yejiStats/multi","stats.yejiStats/overview"])),Ke=C(()=>ot([pr,"stats.yejiStats/targetMatrix","stats.yejiStats/multi"])),Fa=C(()=>W.value||oe.value||Fe.value||Ke.value);function Qe(){return Fe.value?"zyyt":W.value?"doctor":oe.value?"leaderboard":Ke.value?"zyyt_matrix":"zyyt"}dl(_e,t=>{(t==="doctor"&&!W.value||t==="leaderboard"&&!oe.value||t==="zyyt"&&!Fe.value||t==="zyyt_matrix"&&!Ke.value)&&(_e.value=Qe())});const Qt=C(()=>{var t;return(((t=S.value)==null?void 0:t.leaderboards)??[]).filter(e=>e.rows.length>0)});function ea(t){return t.rows.some(e=>e.dept_id>0&&(Number(e.lead_count)>0||Number(e.consult_count)>0||Number(e.deal_order_count)>0||Number(e.performance_amount)>0||Number(e.completed_performance_amount)>0))}const Ve=v(!1),B=v([]),pe=v({}),Be=v(null),ct=C(()=>{const t=Be.value;return!(t!=null&&t.start)||!(t!=null&&t.end)?"":t.start===t.end?`区间 ${t.start}`:`区间 ${t.start} ~ ${t.end}`}),At=C(()=>B.value.some(t=>Number(t.deal_amount??0)>0)),Rt=C(()=>B.value.some(t=>Number(t.system_prescription_count??0)>0||Number(t.manual_prescription_count??0)>0)),Va=C(()=>W.value?At.value||Rt.value||Pt.value||Tt.value||It.value:!1),Ba=C(()=>{if(Va.value)return!0;if(Fe.value){for(const t of re.value)if(ea(t))return!0}return!!(oe.value&&Qt.value.length>0)}),Pt=C(()=>{const t=pe.value;return Number(t.appointment_completed??0)+Number(t.appointment_missed??0)+Number(t.appointment_cancelled??0)>0}),Ya=C(()=>{const t=pe.value,e=[{value:Number(t.appointment_completed??0),name:"挂号完成"},{value:Number(t.appointment_missed??0),name:"过号"},{value:Number(t.appointment_cancelled??0),name:"取消"}].filter(n=>n.value>0);return{color:["#0d9488","#d97706","#94a3b8"],tooltip:{trigger:"item",formatter:"{b}: {c} ({d}%)"},legend:{bottom:0,type:"scroll",textStyle:{fontSize:10}},series:[{name:"挂号",type:"pie",radius:["42%","68%"],center:["50%","46%"],avoidLabelOverlap:!0,itemStyle:{borderRadius:6,borderColor:"#fff",borderWidth:2},label:{formatter:`{b} {c}`,fontSize:11},data:e}]}}),Tt=C(()=>B.value.filter(t=>Number(t.deal_order_count??0)>0&&Number(t.deal_amount??0)>0).length>=2),Ua=C(()=>{const t=B.value.filter(s=>Number(s.deal_order_count??0)>0&&Number(s.deal_amount??0)>0),e=Math.max(...t.map(s=>Number(s.deal_amount)),1),n=t.map(s=>{const d=Number(s.deal_amount);return{name:String(s.doctor_name||"—"),value:[Number(s.deal_order_count),d],symbolSize:12+Math.sqrt(d/e)*26}});return{color:["#2563eb"],tooltip:{trigger:"item",formatter:s=>{var g;const d=(g=s.data)==null?void 0:g.value;return Array.isArray(d)?`${s.data.name}
接诊诊单:${d[0]}
金额:${Number(d[1]).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})} 元`:""}},grid:{left:48,right:24,top:28,bottom:32,containLabel:!0},xAxis:{type:"value",name:"接诊诊单",nameLocation:"middle",nameGap:28,splitLine:{lineStyle:{type:"dashed",opacity:.55}}},yAxis:{type:"value",name:"成交金额",nameLocation:"middle",nameGap:40,splitLine:{lineStyle:{type:"dashed",opacity:.55}}},series:[{type:"scatter",data:n}]}}),It=C(()=>B.value.filter(e=>Number(e.deal_amount??0)+Number(e.deal_order_count??0)+Number(e.system_prescription_count??0)+Number(e.manual_prescription_count??0)>0).length>=2),Ha=C(()=>{const t=[...B.value].filter(p=>Number(p.deal_amount??0)+Number(p.deal_order_count??0)+Number(p.system_prescription_count??0)+Number(p.manual_prescription_count??0)>0).sort((p,L)=>Number(L.deal_amount)-Number(p.deal_amount)).slice(0,5);if(t.length<2)return{radar:{indicator:[]},series:[{type:"radar",data:[]}]};const e=p=>{const L=String(p.doctor_name||"—");return L.length>7?`${L.slice(0,7)}…`:L},n=p=>Number(p.system_prescription_count??0)+Number(p.manual_prescription_count??0),s=p=>{const L=Number(p.avg_deal_amount);if(Number.isFinite(L)&&L>0)return L;const Y=Number(p.deal_order_count);return Y>0?Number(p.deal_amount)/Y:0},d=Math.max(...t.map(p=>Number(p.deal_amount)),1e-9),g=Math.max(...t.map(p=>Number(p.deal_order_count)),1e-9),b=Math.max(...t.map(n),1e-9),w=Math.max(...t.map(p=>Number(p.appointment_completed??0)),1e-9),I=Math.max(...t.map(s),1e-9),E=t.map(p=>({name:e(p),value:[Number(p.deal_amount)/d*100,Number(p.deal_order_count)/g*100,n(p)/b*100,Number(p.appointment_completed??0)/w*100,s(p)/I*100]}));return{color:["#2563eb","#0d9488","#d97706","#7c3aed","#64748b"],tooltip:{trigger:"item"},legend:{bottom:0,type:"scroll",textStyle:{fontSize:10}},radar:{indicator:[{name:"成交金额",max:100},{name:"接诊诊单",max:100},{name:"开方量",max:100},{name:"挂号完成",max:100},{name:"客单价",max:100}],radius:"58%",center:["50%","48%"],splitNumber:4,axisName:{fontSize:10,color:"#64748b"}},series:[{type:"radar",data:E,emphasis:{lineStyle:{width:3}}}]}}),Wa=C(()=>{const t=[...B.value].filter(s=>Number(s.deal_amount??0)>0).sort((s,d)=>Number(d.deal_amount)-Number(s.deal_amount)).slice(0,20),e=t.map(s=>{const d=String(s.doctor_name||"—");return d.length>10?`${d.slice(0,10)}…`:d}),n=t.map(s=>Number(s.deal_amount??0));return{color:["#2563eb"],tooltip:{trigger:"axis",axisPointer:{type:"shadow"},valueFormatter:s=>`${s.toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})} 元`},grid:{left:8,right:16,top:28,bottom:8,containLabel:!0},xAxis:{type:"value",axisLabel:{fontSize:11},splitLine:{lineStyle:{type:"dashed",opacity:.6}}},yAxis:{type:"category",data:[...e].reverse(),axisLabel:{fontSize:11}},series:[{name:"成交金额",type:"bar",data:[...n].reverse(),barMaxWidth:22,itemStyle:{borderRadius:[0,6,6,0]}}]}}),qa=C(()=>{const t=[...B.value].filter(n=>Number(n.system_prescription_count??0)+Number(n.manual_prescription_count??0)>0).sort((n,s)=>Number(s.system_prescription_count??0)+Number(s.manual_prescription_count??0)-(Number(n.system_prescription_count??0)+Number(n.manual_prescription_count??0))).slice(0,14),e=t.map(n=>{const s=String(n.doctor_name||"—");return s.length>6?`${s.slice(0,6)}…`:s});return{tooltip:{trigger:"axis",axisPointer:{type:"shadow"}},legend:{top:0,textStyle:{fontSize:11}},grid:{left:44,right:16,top:32,bottom:e.length>10?72:28},xAxis:{type:"category",data:e,axisLabel:{rotate:e.length>8?32:0,fontSize:10}},yAxis:{type:"value",splitLine:{lineStyle:{type:"dashed",opacity:.6}}},series:[{name:"系统开方",type:"bar",stack:"rx",barMaxWidth:18,data:t.map(n=>Number(n.system_prescription_count??0)),itemStyle:{color:"#2563eb"}},{name:"手动开方",type:"bar",stack:"rx",barMaxWidth:18,data:t.map(n=>Number(n.manual_prescription_count??0)),itemStyle:{color:"#d97706"}}]}});function Ga(){var e,n;const t={};if(x.value&&(t.channel_code=x.value),z.value.length>0&&(t.dept_ids=z.value.join(",")),(e=H.value)!=null&&e[0]&&((n=H.value)!=null&&n[1]))t.start_date=H.value[0],t.end_date=H.value[1];else{const s=gt(new Date);t.start_date=s,t.end_date=s}return t}function ta(t){return Number(t??0).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}function aa(t){if(t==null||t==="")return"—";const e=Number(t);return Number.isFinite(e)?`${e.toFixed(2)}%`:"—"}function Ja(t){const e=pe.value,n=[];return t.columns.forEach((s,d)=>{if(d===0){n[d]="合计";return}switch(s.property){case"system_prescription_count":n[d]=String(e.system_prescription_count??0);break;case"manual_prescription_count":n[d]=String(e.manual_prescription_count??0);break;case"deal_amount":n[d]=`¥ ${ta(e.deal_amount)}`;break;case"deal_order_count":n[d]=String(e.deal_order_count??0);break;case"appointment_total":n[d]=String(e.appointment_total??0);break;case"appointment_completed":n[d]=String(e.appointment_completed??0);break;case"appointment_missed":n[d]=String(e.appointment_missed??0);break;case"appointment_cancelled":n[d]=String(e.appointment_cancelled??0);break;case"appointment_conversion_rate":n[d]=aa(e.appointment_conversion_rate);break;default:n[d]=""}}),n}async function Mt(){if(!W.value){B.value=[],pe.value={},Be.value=null;return}Ve.value=!0;try{const t=await Pl(Ga());B.value=(t==null?void 0:t.rows)??[],pe.value=(t==null?void 0:t.total)??{},t!=null&&t.start_date&&(t!=null&&t.end_date)&&(Be.value={start:t.start_date,end:t.end_date})}catch(t){if(te.isCancel(t))return;B.value=[],pe.value={},Be.value=null}finally{Ve.value=!1}}const se=v(!1),we=v(!1),et=v(""),tt=v(""),ke=v([]),_t=v(0),K=v(1),pt=v(15),Z=v("channel"),q=v(null),at=v(null),ie=v(null),na=C(()=>{const t=ie.value;if(!t)return null;const e=t.stats_order_amount_performance??t.stats_order_amount_not_cancelled;if(e==null||e==="")return null;const n=Number(e);return Number.isFinite(n)?n:null}),la=C(()=>{const t=ie.value;if(!t||t.stats_yeji_consult_count===void 0||t.stats_yeji_consult_count===null)return null;const e=Number(t.stats_yeji_consult_count);return Number.isFinite(e)?e:null}),Xa=C(()=>ke.value.reduce((t,e)=>t+Number(e.amount??0),0)),oa=C(()=>!!x.value&&se.value),Ot=C(()=>{var e;const t=x.value;if(!t)return"";for(const n of st.value){const s=(e=n.channels)==null?void 0:e.find(d=>d.channel_code===t);if(s!=null&&s.channel_name)return String(s.channel_name)}return t}),Za=C(()=>{const t=q.value;return t&&Z.value==="total"?Number.isFinite(t.channelAmount)?t.channelAmount:null:na.value}),Ye=v(null),mt=v(!1);function Ka(){const t=new Date;return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}`}function Qa(t){const[e,n]=t.split("-").map(Number);return new Date(e,n,0).getDate()}async function en(){var t,e,n,s;if(!Ke.value){Ye.value=null;return}mt.value=!0,Ye.value=null;try{let d=function(y,$=0){const A=[];for(const R of y??[])A.push({node:R,depth:$}),A.push(...d(R.children??[],$+1));return A},g=function(y){const $=Ce.value.find(J=>Number(J.id)===y);if(!$)return"";const A=Number($.pid);if(!A)return"";const R=Ce.value.find(J=>Number(J.id)===A);return R!=null&&R.name?String(R.name):""},b=function(y){const $=[],A=[y];for(;A.length;){const R=A.shift();for(const J of Ce.value)Number(J.pid)===R&&($.push(J.id),A.push(J.id))}return $},w=function(y,$){const A=new Map;for(const R of(y==null?void 0:y.rows)??[])A.set(Number(R.dept_id),Number(R[$]??0));return A};const I=Ka(),E=await Yl({year_month:I}),p=(E==null?void 0:E.rows)??[];if(!p.length)return;const Y=d(p).filter(y=>y.depth>=1&&Number(y.node.target_amount)>0).map(y=>y.node);if(!Y.length)return;const P=new Set,me=Y.map(y=>{const $=Number(y.dept_id),A=b($),R=A.length?A:[$];return R.forEach(J=>P.add(J)),{dept_id:$,dept_name:String(y.dept_name),target_amount:Number(y.target_amount),totalIds:R}});if(!P.size)return;const He=st.value.flatMap(y=>y.channels),G=(t=He.find(y=>y.channel_name.includes("自媒体1")))==null?void 0:t.channel_code,Se=(e=He.find(y=>y.channel_name.includes("自媒体3")))==null?void 0:e.channel_code,Ne=(n=He.find(y=>y.channel_name.includes("自媒体4")))==null?void 0:n.channel_code,We=Array.from(P).join(","),[ve,F,l,h]=await Promise.all([lt({dept_ids:We}),G?lt({dept_ids:We,channel_code:G}):Promise.resolve(null),Se?lt({dept_ids:We,channel_code:Se}):Promise.resolve(null),Ne?lt({dept_ids:We,channel_code:Ne}):Promise.resolve(null)]),m=y=>{var $;return((y==null?void 0:y.tables)??[]).find(A=>String(A.label).includes("月"))??(($=y==null?void 0:y.tables)==null?void 0:$[0])},T=y=>{var $,A;return((y==null?void 0:y.tables)??[]).find(R=>String(R.label).includes("昨"))??((A=y==null?void 0:y.tables)==null?void 0:A[(($=y==null?void 0:y.tables)==null?void 0:$.length)-1])},Ca=w(m(ve),"performance_amount"),Qn=w(T(ve),"performance_amount"),Da=F?w(m(F),"completed_performance_amount"):null,La=l?w(m(l),"completed_performance_amount"):null,za=h?w(m(h),"completed_performance_amount"):null,nt=(y,$)=>$.reduce((A,R)=>A+(y.get(R)??0),0),Ht=new Date,el=Qa(I),tl=Ht.getDate(),al=me.map(y=>{const $=nt(Ca,y.totalIds),A=nt(Qn,y.totalIds),R=Da?nt(Da,y.totalIds):null,J=La?nt(La,y.totalIds):null,$a=za?nt(za,y.totalIds):null,Wt=J!==null||$a!==null?(J??0)+($a??0):null,sl=Math.round(y.target_amount*(tl/el)*100)/100,il=y.target_amount>0?$/y.target_amount:null;return{dept_id:y.dept_id,dept_name:y.dept_name,parent_dept_name:g(y.dept_id),target_amount:y.target_amount,total_amount:$,yesterday_amount:A,douyin_amount:R&&R>0?R:null,tuifen_amount:Wt&&Wt>0?Wt:null,target_progress:sl,completion_rate:il}}),nl=((s=p[0])==null?void 0:s.dept_name)??"",ll=Ht.getMonth()+1,ol=Ht.getDate();Ye.value={title:`${nl}诊金-${ll}.${ol}`,sections:al}}catch{}finally{mt.value=!1}}const tn=C(()=>{var e;const t=(e=S.value)==null?void 0:e.leaderboards;return t?t.filter(n=>n.rows.length>0).length:0}),sa=[{text:"昨天",value:()=>{const t=new Date;return t.setDate(t.getDate()-1),[t,t]}},{text:"最近七天",value:()=>{const t=new Date,e=new Date;return e.setDate(e.getDate()-6),[e,t]}},{text:"本月",value:()=>{const t=new Date;return[new Date(t.getFullYear(),t.getMonth(),1),t]}},{text:"今日",value:()=>{const t=new Date;return[t,t]}},{text:"本周",value:()=>{const t=new Date,e=new Date,n=e.getDay()||7;return e.setDate(e.getDate()-(n-1)),[e,t]}},{text:"上月",value:()=>{const t=new Date,e=new Date(t.getFullYear(),t.getMonth()-1,1),n=new Date(t.getFullYear(),t.getMonth(),0);return[e,n]}}];function an(t){const e=t.value();H.value=[gt(e[0]),gt(e[1])],Ue()}async function nn(){ht.value=!0;try{const t=await Tl();Ce.value=(t||[]).sort((e,n)=>{const s=e.name.includes("中心")?-1:1,d=n.name.includes("中心")?-1:1;return s!==d?s-d:e.id-n.id})}catch{}finally{ht.value=!1}}async function ln(){wt.value=!0;try{const t=await Il(),e=(t==null?void 0:t.groups)||[];st.value=e}catch{}finally{wt.value=!1}}async function ia(t){if(!oe.value){S.value=null;return}de.value=!0;try{const e={start_date:t.start,end_date:t.end};z.value.length>0&&(e.dept_ids=z.value.join(",")),x.value&&(e.channel_code=x.value);const n=await El(e);S.value={start_date:n.start_date,end_date:n.end_date,channel_code:n.channel_code||"",channel_name:n.channel_name||"",channel_filter_note:n.channel_filter_note||"",range_note:n.range_note||"",leaderboards:n.leaderboards||[]}}catch(e){if(te.isCancel(e))return;S.value=null}finally{de.value=!1}}async function Ue(){if(ne.value=!0,S.value=null,!Fe.value){re.value=[],ne.value=!1,W.value?Mt():(B.value=[],pe.value={},Be.value=null);return}try{const t={};if(z.value.length>0&&(t.dept_ids=z.value.join(",")),x.value&&(t.channel_code=x.value),H.value&&H.value[0]&&H.value[1]){const[s,d]=H.value,g={...t,start_date:s,end_date:d},b=await Ml(g);re.value=[{label:s===d?s:`${s} ~ ${d}`,start_date:b.start_date,end_date:b.end_date,channel_code:b.channel_code||"",channel_name:b.channel_name||"",channel_group:b.channel_group||"",channel_filter_note:b.channel_filter_note||"",rows:b.rows||[],total:b.total}],await ia({start:b.start_date,end:b.end_date});return}const e=await lt(t);re.value=((e==null?void 0:e.tables)||[]).map(s=>({label:s.label,start_date:s.start_date,end_date:s.end_date,channel_code:s.channel_code||"",channel_name:s.channel_name||"",channel_group:s.channel_group||"",channel_filter_note:s.channel_filter_note||"",rows:s.rows||[],total:s.total}));const n=gt(new Date);await ia({start:n,end:n})}catch(t){if(te.isCancel(t))return;const e=t;ae.error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"加载失败")}finally{ne.value=!1,W.value?Mt():(B.value=[],pe.value={},Be.value=null)}}function on(){z.value=[],H.value=null,x.value="",Ue()}function sn(t){return t<=0?!1:Ce.value.some(e=>Number(e.pid)===t)}function rn(t){return{1:"待双审通过",2:"待发货",3:"已完成",4:"已取消",5:"已发货",6:"已签收",7:"进行中",8:"暂不制药",9:"拒收",10:"退款",11:"保留药方",12:"制药缓发"}[Number(t)]??"—"}function vt(t){return t==null||!Number.isFinite(Number(t))?"—":Number(t).toLocaleString("zh-CN",{minimumFractionDigits:2,maximumFractionDigits:2})}function dn(t){return(K.value-1)*pt.value+t+1}function un(t){const e=(t==null?void 0:t.appointment_date)!=null&&String(t.appointment_date)!==""?String(t.appointment_date):"",n=(t==null?void 0:t.period)!=null&&String(t.period)!==""?String(t.period):"",s=(t==null?void 0:t.appointment_time)!=null&&String(t.appointment_time)!==""?String(t.appointment_time):"",d=[n,s].filter(Boolean).join(" ");return e&&d?`${e} ${d}`:e||d||"—"}function ra(t){if(!t)return"";const e=t.channel_dict_value;if(e!=null&&e!==""){const d=Number(e);if(Number.isFinite(d))return String(Math.trunc(d))}const n=t.channel_source;if(n==null)return"";const s=String(n).trim();return s===""||!/^\d+$/.test(s)?"":String(parseInt(s,10))}function cn(t){if(t==null||t==="")return"—";const e=Number(t);if(Number.isFinite(e)&&e>=1e9&&e<1e15){const s=e<1e12?e*1e3:e,d=new Date(s);if(!Number.isNaN(d.getTime())){const g=d.getFullYear(),b=String(d.getMonth()+1).padStart(2,"0"),w=String(d.getDate()).padStart(2,"0"),I=String(d.getHours()).padStart(2,"0"),E=String(d.getMinutes()).padStart(2,"0");return`${g}-${b}-${w} ${I}:${E}`}}const n=String(t);return n.length>=16?n.slice(0,16):n}function da(){const t=at.value;if(!t)return null;const e={start_time:`${t.start} 00:00:00`,end_time:`${t.end} 23:59:59`,exclude_fulfillment_cancelled:1,yeji_order_drawer:1};return t.mode==="dept"?(e.assistant_dept_id=t.deptId,z.value.length>0&&(e.dept_ids=z.value.join(",")),t.yejiTableRowDeptIds&&t.yejiTableRowDeptIds.length>0&&(e.yeji_table_row_dept_ids=t.yejiTableRowDeptIds.join(","))):(e.assistant_id=t.assistantId,t.erCenterRevisitSlot!==void 0&&(e.yeji_er_center_revisit_only=1,e.yeji_er_center_revisit_slot=t.erCenterRevisitSlot)),x.value&&se.value&&Z.value==="channel"&&(e.channel_code=x.value),e}async function _n(){const t=da();if(!t||!x.value)return;const e={...t,channel_code:x.value,page_no:1,page_size:1};try{const n=await Aa(e),s=n!=null&&n.extend&&typeof n.extend=="object"?n.extend:null;s&&s.stats_yeji_drawer_total_performance_amount!=null&&(q.value={totalAmount:Number(s.stats_yeji_drawer_total_performance_amount),totalOrderCount:Number(s.stats_yeji_drawer_total_performance_order_count??0),channelAmount:Number(s.stats_order_amount_performance??0),channelOrderCount:Number((n==null?void 0:n.count)??0)})}catch{}}async function je(){const t=da();if(t){x.value&&Z.value==="total"&&(q.value=null),we.value=!0;try{const e={...t,page_no:K.value,page_size:pt.value},n=await Aa(e);ke.value=Array.isArray(n==null?void 0:n.lists)?n.lists:[],_t.value=Number((n==null?void 0:n.count)??0),ie.value=n!=null&&n.extend&&typeof n.extend=="object"?n.extend:null,x.value&&Z.value==="channel"&&ie.value&&ie.value.stats_yeji_drawer_total_performance_amount!=null&&(q.value={totalAmount:Number(ie.value.stats_yeji_drawer_total_performance_amount),totalOrderCount:Number(ie.value.stats_yeji_drawer_total_performance_order_count??0),channelAmount:Number(ie.value.stats_order_amount_performance??0),channelOrderCount:Number((n==null?void 0:n.count)??0)}),x.value&&se.value&&Z.value==="total"&&await _n()}catch(e){if(te.isCancel(e))return;const n=e;ae.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"加载业务订单失败"),ke.value=[],_t.value=0,ie.value=null}finally{we.value=!1}}}function ua(t,e,n){const s=!!(x.value&&t.channel_name);Z.value=s?(n==null?void 0:n.listTab)??"channel":"channel",q.value=null,at.value={mode:"dept",deptId:e.dept_id,deptName:e.dept_name,start:t.start_date,end:t.end_date,yejiTableRowDeptIds:t.rows.map(d=>d.dept_id).filter(d=>typeof d=="number"&&d>0)},et.value=`业务订单 · ${e.dept_name}`,tt.value=`创建时间:${t.start_date} ~ ${t.end_date} · 与「合计业绩 / 接诊诊单」同口径:订单创建人人事部门 ∈ 本部门子树 · 不含履约 4/9/10`,K.value=1,se.value=!0,je()}function pn(t,e,n){const s=!!(x.value&&t.channel_name);Z.value=s?n:"channel",q.value=null,at.value={mode:"dept",deptId:e,deptName:"当前展示合计",start:t.start_date,end:t.end_date,yejiTableRowDeptIds:t.rows.map(d=>d.dept_id).filter(d=>typeof d=="number"&&d>0)},et.value="业务订单 · 当前展示合计",tt.value=`创建时间:${t.start_date} ~ ${t.end_date} · 已选展示部门 1 个根节点(含其下全部展示行)· 不含履约 4/9/10`,K.value=1,se.value=!0,je()}function Et(t,e,n){return!(xe(e)||e.dept_id<=0||n==="channel"&&!t.channel_name)}function Ft(t,e){return!(z.value.length!==1||e==="channel"&&!t.channel_name)}function ca(t,e,n){if(!Et(t,e,n))return;ua(t,e,{listTab:n==="total"?"total":"channel"})}function _a(t,e){if(!Ft(t,e))return;const n=z.value[0];if(!n)return;pn(t,n,e==="total"?"total":"channel")}function mn(t,e,n){Z.value="channel",q.value=null,at.value={mode:"assistant",assistantId:t.admin_id,assistantName:t.name,start:e,end:n},et.value=`业务订单 · ${t.name}`,tt.value=`创建时间:${e} ~ ${n} · 创建人=${t.name}(与排行榜诊金同口径)· 不含履约 4/9/10`,K.value=1,se.value=!0,je()}function Vt(t,e,n,s){Z.value="channel",q.value=null,at.value={mode:"assistant",assistantId:t.admin_id,assistantName:t.name,start:e,end:n,erCenterRevisitSlot:s};const d=s===0?"复诊合计":it(s);et.value=`业务订单 · ${t.name} · ${d}`,tt.value=`创建时间:${e} ~ ${n} · 创建人=${t.name}(与部门表 / 排行榜复诊同口径)· 仅二中心复诊口径 · ${d} · 不含履约 4/9/10`,K.value=1,se.value=!0,je()}function vn(t){if(!t||t.admin_id<=0||!S.value||Number(t.revisit_count??0)<=0)return;const{start_date:e,end_date:n}=S.value;Vt({admin_id:t.admin_id,name:t.name},e,n,0)}function fn(t,e){if(!t||t.admin_id<=0||!S.value||le(t,e)<=0)return;const{start_date:n,end_date:s}=S.value;Vt({admin_id:t.admin_id,name:t.name},n,s,e)}function yn(){K.value=1,je()}function gn(t){K.value=t,je()}function bn(t){pt.value=t,K.value=1,je()}function xe(t){return t.dept_id<=0&&t.dept_name==="未归属中心"}function hn(t,e){e.dept_id<=0||xe(e)||Number(e.revisit_count??0)<=0||ma(t,e,0)}function wn(t,e,n){e.dept_id<=0||xe(e)||le(e,n)<=0||ma(t,e,n)}function pa(t){const e=Zt.value;!e||Number(t.order_count)<=0||Vt({admin_id:t.admin_id,name:t.name},e.start,e.end,e.revisitSlot)}async function ma(t,e,n){const s=n===0?"复诊合计":it(n);Xt.value=`${e.dept_name} · ${s} · ${t.start_date} ~ ${t.end_date}`,Zt.value={start:t.start_date,end:t.end_date,revisitSlot:n},Ge.value="",$e.value=[],St.value=!0,ze.value=!0;try{const d={start_date:t.start_date,end_date:t.end_date,dept_id:e.dept_id,revisit_slot:n};z.value.length>0&&(d.dept_ids=z.value.join(",")),x.value&&(d.channel_code=x.value);const g=await Ol(d);$e.value=Array.isArray(g==null?void 0:g.rows)?g.rows:[],Ge.value=typeof(g==null?void 0:g.note)=="string"?g.note:""}catch(d){if(te.isCancel(d))return;const g=d;ae.error((g==null?void 0:g.msg)||(g==null?void 0:g.message)||"加载复诊拆解失败"),$e.value=[],Ge.value=""}finally{ze.value=!1}}function va(t){const e=[`区间:${t.start_date} ~ ${t.end_date}`];return x.value&&e.push(`渠道:${t.channel_name||x.value}`),z.value.length>0&&e.push(`已选展示部门 ${z.value.length} 个`),e.join(" · ")}async function kn(t){Jt.value=va(t),qe.value="",Le.value=[],xt.value=!0,De.value=!0;try{const e={start_date:t.start_date,end_date:t.end_date};z.value.length>0&&(e.dept_ids=z.value.join(",")),x.value&&(e.channel_code=x.value);const n=await Fl(e);Le.value=Array.isArray(n==null?void 0:n.rows)?n.rows:[],qe.value=typeof(n==null?void 0:n.note)=="string"?n.note:""}catch(e){if(te.isCancel(e))return;const n=e;ae.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"加载未归属拆解失败"),Le.value=[],qe.value=""}finally{De.value=!1}}function jn(t,e,n){n.dept_id<=0||Number(n.lead_count)<=0||(t.stopPropagation(),Pn(e,n))}function fa(t){return t.dept_id>0&&Number(t.assign_count??0)>0}function xn(t,e,n){fa(n)&&(t.stopPropagation(),Cn(e,n))}function Sn(t){return(he.value-1)*Ee.value+t+1}function Nn(t,e){const n=$t.value;if(!n)return null;const s={start_date:n.start_date,end_date:n.end_date,page:t,page_size:e};return n.mode==="dept"?s.dept_id=n.dept_id:s.assistant_id=n.assistant_id,z.value.length>0&&(s.dept_ids=z.value.join(",")),x.value&&(s.channel_code=x.value),s}async function ft(){const t=Nn(he.value,Ee.value);if(t){ge.value=!0;try{const e=await Vl(t);be.value=Array.isArray(e==null?void 0:e.lists)?e.lists:[],Oe.value=Number((e==null?void 0:e.count)??0),Me.value=typeof(e==null?void 0:e.note)=="string"?e.note:""}catch(e){if(te.isCancel(e))return;const n=e;ae.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"加载被指派明细失败"),be.value=[],Oe.value=0,Me.value=""}finally{ge.value=!1}}}async function Cn(t,e){$t.value={mode:"dept",dept_id:e.dept_id,dept_name:e.dept_name,start_date:t.start_date,end_date:t.end_date},zt.value=`${e.dept_name} · ${t.start_date} ~ ${t.end_date}`,Me.value="",be.value=[],Oe.value=0,he.value=1,Ee.value=20,ut.value=!0,await ft()}function Dn(t){if(!t||t.admin_id<=0||!S.value||Number(t.assign_count??0)<=0)return;const e=S.value;$t.value={mode:"assistant",assistant_id:t.admin_id,name:t.name,start_date:e.start_date,end_date:e.end_date},zt.value=`${t.name} · 医助 · ${e.start_date} ~ ${e.end_date}`,Me.value="",be.value=[],Oe.value=0,he.value=1,Ee.value=20,ut.value=!0,ft()}function Ln(t){he.value=t,ft()}function zn(t){Ee.value=t,he.value=1,ft()}const ya=[{key:"event_time_text",label:"进线时间"},{key:"reception_admin_name",label:"接待"},{key:"external_contact_name",label:"客户"},{key:"external_userid",label:"外部联系人ID"},{key:"user_id",label:"企微成员ID"},{key:"state",label:"渠道参数"}];function Bt(t,e,n){const{tb:s,row:d}=t,g={start_date:s.start_date,end_date:s.end_date,dept_id:d.dept_id,page:e,page_size:n};return z.value.length>0&&(g.dept_ids=z.value.join(",")),x.value&&(g.channel_code=x.value),g}function ga(t){const e=t==null?"":String(t);return/[",\n\r]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function $n(t){const e=ya.map(s=>ga(s.label)).join(","),n=t.map(s=>ya.map(d=>ga(s[d.key])).join(",")).join(` `);return`\uFEFF${e} ${n}`}function An(t,e){const n=new Blob([e],{type:"text/csv;charset=utf-8;"}),s=URL.createObjectURL(n),d=document.createElement("a");d.href=s,d.download=t,d.click(),URL.revokeObjectURL(s)}function Rn(t){const{tb:e,row:n}=t;return`进线数据明细_${(n.dept_name||`dept${n.dept_id}`).replace(/[\\/:*?"<>|]/g,"_")}_${e.start_date}_${e.end_date}.csv`}async function Yt(){const t=Ct.value;if(t){ue.value=!0;try{const e=await qt(Bt(t,Ze.value,rt.value));Ae.value=Array.isArray(e==null?void 0:e.lists)?e.lists:[],Re.value=Number((e==null?void 0:e.count)??0),Xe.value=typeof(e==null?void 0:e.note)=="string"?e.note:""}catch(e){if(te.isCancel(e))return;const n=e;ae.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"加载进线明细失败"),Ae.value=[],Re.value=0,Xe.value=""}finally{ue.value=!1}}}async function Pn(t,e){Ct.value={tb:t,row:e},Kt.value=`${e.dept_name} · ${va(t)}`,Xe.value="",Ae.value=[],Re.value=0,Ze.value=1,rt.value=20,Nt.value=!0,await Yt()}function Tn(t){Ze.value=t,Yt()}function In(t){rt.value=t,Ze.value=1,Yt()}async function Mn(){const t=Ct.value;if(!(!t||Je.value)){Je.value=!0;try{const n=await qt(Bt(t,1,100)),s=Number((n==null?void 0:n.count)??0);if(s<=0){ae.warning("暂无进线明细可导出");return}const d=Array.isArray(n==null?void 0:n.lists)?[...n.lists]:[],g=Math.ceil(s/100);for(let b=2;b<=g;b++){const w=await qt(Bt(t,b,100)),I=Array.isArray(w==null?void 0:w.lists)?w.lists:[];d.push(...I)}An(Rn(t),$n(d)),ae.success(`已导出 ${d.length} 条进线明细`)}catch(e){if(te.isCancel(e))return;const n=e;ae.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"导出进线明细失败")}finally{Je.value=!1}}}function On(t){return(ye.value-1)*Ie.value+t+1}function ba(t){return xe(t)?!0:t.dept_id>0}async function yt(){const t=Lt.value;if(t){fe.value=!0;try{const e={start_date:t.start_date,end_date:t.end_date,page:ye.value,page_size:Ie.value};t.mode==="dept"?e.dept_id=t.dept_id:e.assistant_id=t.assistant_id,z.value.length>0&&(e.dept_ids=z.value.join(",")),x.value&&(e.channel_code=x.value);const n=await Bl(e);ce.value=Array.isArray(n==null?void 0:n.lists)?n.lists:[],Te.value=Number((n==null?void 0:n.count)??0),Pe.value=typeof(n==null?void 0:n.note)=="string"?n.note:""}catch(e){if(te.isCancel(e))return;const n=e;ae.error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"加载挂号明细失败"),ce.value=[],Te.value=0,Pe.value=""}finally{fe.value=!1}}}function En(t){if(!t||t.admin_id<=0||!S.value||Number(t.appointment_count??0)<=0)return;const e=S.value;Lt.value={mode:"assistant",assistant_id:t.admin_id,name:t.name,start_date:e.start_date,end_date:e.end_date},Dt.value=`${t.name} · 医助 · ${e.start_date} ~ ${e.end_date}`,Pe.value="",ce.value=[],Te.value=0,ye.value=1,Ie.value=20,dt.value=!0,yt()}function Fn(t,e){!ba(e)||Number(e.appointment_booked_count??0)<=0||(Lt.value={mode:"dept",dept_id:e.dept_id,dept_name:e.dept_name,start_date:t.start_date,end_date:t.end_date},Dt.value=`${e.dept_name} · ${t.start_date} ~ ${t.end_date}`,Pe.value="",ce.value=[],Te.value=0,ye.value=1,Ie.value=20,dt.value=!0,yt())}function Vn(t){ye.value=t,yt()}function Bn(t){Ie.value=t,ye.value=1,yt()}function Yn(t,e){if(xe(e)){kn(t);return}if(!(e.dept_id<=0)){if(sn(e.dept_id)){z.value=[e.dept_id],Ue();return}ua(t,e)}}function Un(t){if(!t||t.admin_id<=0||!S.value)return;const{start_date:e,end_date:n}=S.value;mn(t,e,n)}function ha(t){const e=t.channel_name?` · ${t.channel_name}`:"";return`${t.label}${e}`}function Hn(t){const e=t.rows.filter(b=>b.dept_id>0),n=e.map(b=>b.dept_name.length>10?`${b.dept_name.slice(0,10)}…`:b.dept_name),s=["#64748b","#38bdf8","#6366f1"],d=[{name:"进线",type:"bar",data:e.map(b=>b.lead_count),yAxisIndex:0,barMaxWidth:16},{name:"接诊",type:"bar",data:e.map(b=>b.consult_count),yAxisIndex:0,barMaxWidth:16},{name:"成交单",type:"bar",data:e.map(b=>b.deal_order_count),yAxisIndex:0,barMaxWidth:16},{name:"合计业绩",type:"bar",data:e.map(b=>b.performance_amount),yAxisIndex:1,barMaxWidth:14,itemStyle:{color:"#d97706"}}];t.channel_name&&d.push({name:`${t.channel_name}业绩`,type:"bar",data:e.map(b=>b.completed_performance_amount),yAxisIndex:1,barMaxWidth:14,itemStyle:{color:"#0d9488"}});const g=e.length>10;return{color:[...s,"#d97706","#0d9488"],tooltip:{trigger:"axis",axisPointer:{type:"cross"}},legend:{top:8,type:"scroll",textStyle:{fontSize:11}},grid:{left:52,right:52,top:48,bottom:g?56:28,containLabel:!1},dataZoom:g?[{type:"slider",bottom:4,start:0,end:Math.min(100,Math.ceil(12/Math.max(e.length,1)*100))}]:[],xAxis:{type:"category",data:n,axisLabel:{rotate:n.length>8?28:0,fontSize:10}},yAxis:[{type:"value",name:"数量",splitLine:{lineStyle:{type:"dashed",opacity:.55}}},{type:"value",name:"金额",splitLine:{show:!1}}],series:d}}function Wn(t,e){const n=[...t.rows].sort((s,d)=>Number(d.fee_amount)-Number(s.fee_amount)).slice(0,15);return{color:["#2563eb"],tooltip:{trigger:"axis",axisPointer:{type:"shadow"},valueFormatter:s=>`${Number(s).toLocaleString("zh-CN")} 元`},grid:{left:8,right:20,top:12,bottom:8,containLabel:!0},xAxis:{type:"value",splitLine:{lineStyle:{type:"dashed",opacity:.6}}},yAxis:{type:"category",data:n.map(s=>s.name.length>8?`${s.name.slice(0,8)}…`:s.name).reverse(),axisLabel:{fontSize:11}},series:[{name:"诊金",type:"bar",data:n.map(s=>Number(s.fee_amount??0)).reverse(),barMaxWidth:20,itemStyle:{borderRadius:[0,6,6,0]}}]}}function wa(t){return t.rows.some(e=>Number(e.fee_amount)>0)}function qn(t,e){const s=[...t.rows].filter(d=>Number(d.fee_amount)>0).sort((d,g)=>Number(g.fee_amount)-Number(d.fee_amount)).slice(0,10).map(d=>({name:d.name.length>6?`${d.name.slice(0,6)}…`:d.name,value:Number(d.fee_amount)}));return{color:["#2563eb","#0d9488","#d97706","#7c3aed","#64748b","#0891b2","#65a30d","#c026d3","#ea580c","#4f46e5"],tooltip:{trigger:"item",formatter:"{b}: {c} 元 ({d}%)"},legend:{type:"scroll",bottom:0,textStyle:{fontSize:9}},series:[{name:"诊金",type:"pie",radius:["38%","64%"],center:["50%","42%"],data:s,itemStyle:{borderRadius:5,borderColor:"#fff",borderWidth:2},label:{formatter:`{b} diff --git a/server/public/admin/assets/yeji-edit-BEFhRUaj.js b/server/public/admin/assets/yeji-edit-BEFhRUaj.js deleted file mode 100644 index 3ae8e0943..000000000 --- a/server/public/admin/assets/yeji-edit-BEFhRUaj.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as o}from"./yeji-edit.vue_vue_type_script_setup_true_lang-9szyzbBz.js";import"./.pnpm-CyuAWpdG.js";import"./self_input_stats-CIFG1oqD.js";import"./index-Dxvz9lb1.js";import"./index-BnfLT5cB.js";import"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-NXWg0oJL.js";export{o as default}; diff --git a/server/public/admin/assets/yeji-edit-hxROz88q.js b/server/public/admin/assets/yeji-edit-hxROz88q.js new file mode 100644 index 000000000..4a8f8ce1e --- /dev/null +++ b/server/public/admin/assets/yeji-edit-hxROz88q.js @@ -0,0 +1 @@ +import{_ as o}from"./yeji-edit.vue_vue_type_script_setup_true_lang-CJg4Mu-Y.js";import"./.pnpm-CyuAWpdG.js";import"./self_input_stats-DXFvDfvT.js";import"./index-Bkarz3gO.js";import"./index-CS5Wg0xx.js";import"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-NXWg0oJL.js";export{o as default}; diff --git a/server/public/admin/assets/yeji-edit.vue_vue_type_script_setup_true_lang-9szyzbBz.js b/server/public/admin/assets/yeji-edit.vue_vue_type_script_setup_true_lang-CJg4Mu-Y.js similarity index 98% rename from server/public/admin/assets/yeji-edit.vue_vue_type_script_setup_true_lang-9szyzbBz.js rename to server/public/admin/assets/yeji-edit.vue_vue_type_script_setup_true_lang-CJg4Mu-Y.js index fb8a8631e..41680f66a 100644 --- a/server/public/admin/assets/yeji-edit.vue_vue_type_script_setup_true_lang-9szyzbBz.js +++ b/server/public/admin/assets/yeji-edit.vue_vue_type_script_setup_true_lang-CJg4Mu-Y.js @@ -1 +1 @@ -import{o as C,q as D,r as Y,v as o,D as n,bd as S,u as l,bb as q,az as F,c9 as B,ca as I,J as M,aA as z,a8 as f,M as A,p as L,aC as O}from"./.pnpm-CyuAWpdG.js";import{f as J,h as P}from"./self_input_stats-CIFG1oqD.js";import{_ as T}from"./index-BnfLT5cB.js";import{_ as $}from"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-NXWg0oJL.js";const G={class:"edit-popup"},X=C({__name:"yeji-edit",props:{mediaSourceOptions:{default:()=>[]},mediaSourceLoading:{type:Boolean,default:!1}},emits:["success","close"],setup(s,{expose:V,emit:b}){const i=b,c=f(),m=f(),_=A("add"),w=L(()=>_.value==="edit"?"编辑业绩":"新增业绩"),e=O({id:"",yeji_date:"",media_source:"",add_fans_count:0,total_open_count:0,unreplied_count:0,paid_appointment_count:0,free_appointment_count:0,interview_count:0,order_amount:0,completed_order_count:0,remark:""}),g={yeji_date:[{required:!0,message:"请选择业绩日期",trigger:["change"]}],media_source:[{required:!0,message:"请填写自媒体来源",trigger:["blur"]}],add_fans_count:[{required:!0,message:"请填写加粉数",trigger:["blur","change"]}]},v=()=>{e.id="",e.yeji_date="",e.media_source="",e.add_fans_count=0,e.total_open_count=0,e.unreplied_count=0,e.paid_appointment_count=0,e.free_appointment_count=0,e.interview_count=0,e.order_amount=0,e.completed_order_count=0,e.remark=""},y=async()=>{var u,t;await((u=c.value)==null?void 0:u.validate()),_.value==="edit"?await J(e):await P(e),(t=m.value)==null||t.close(),i("success")},k=(u="add")=>{var t;_.value=u,v(),(t=m.value)==null||t.open()},j=u=>{e.id=u.id??"",e.yeji_date=u.yeji_date??"",e.media_source=u.media_source??"",e.add_fans_count=Number(u.add_fans_count??0),e.total_open_count=Number(u.total_open_count??0),e.unreplied_count=Number(u.unreplied_count??0),e.paid_appointment_count=Number(u.paid_appointment_count??0),e.free_appointment_count=Number(u.free_appointment_count??0),e.interview_count=Number(u.interview_count??0),e.order_amount=Number(u.order_amount??0),e.completed_order_count=Number(u.completed_order_count??0),e.remark=u.remark??""},U=()=>{i("close")};return V({open:k,setFormData:j}),(u,t)=>{const N=F,d=q,r=M,p=I,x=B,E=z,R=S;return D(),Y("div",G,[o(T,{ref_key:"popupRef",ref:m,title:l(w),async:!0,width:"640px",onConfirm:y,onClose:U},{default:n(()=>[o(R,{ref_key:"formRef",ref:c,model:l(e),"label-width":"110px",rules:g},{default:n(()=>[o(d,{label:"业绩日期",prop:"yeji_date"},{default:n(()=>[o(N,{modelValue:l(e).yeji_date,"onUpdate:modelValue":t[0]||(t[0]=a=>l(e).yeji_date=a),type:"date","value-format":"YYYY-MM-DD",placeholder:"请选择日期",disabled:l(_)==="edit",class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),o(d,{label:"自媒体来源",prop:"media_source"},{default:n(()=>[o($,{modelValue:l(e).media_source,"onUpdate:modelValue":t[1]||(t[1]=a=>l(e).media_source=a),options:s.mediaSourceOptions,loading:s.mediaSourceLoading,placeholder:"请选择自媒体来源","allow-create":!1,disabled:l(_)==="edit","select-class":"w-full"},null,8,["modelValue","options","loading","disabled"])]),_:1}),o(x,{gutter:16},{default:n(()=>[o(p,{span:12},{default:n(()=>[o(d,{label:"加粉数",prop:"add_fans_count"},{default:n(()=>[o(r,{modelValue:l(e).add_fans_count,"onUpdate:modelValue":t[2]||(t[2]=a=>l(e).add_fans_count=a),min:0,step:1,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(p,{span:12},{default:n(()=>[o(d,{label:"总开口",prop:"total_open_count"},{default:n(()=>[o(r,{modelValue:l(e).total_open_count,"onUpdate:modelValue":t[3]||(t[3]=a=>l(e).total_open_count=a),min:0,step:1,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(p,{span:12},{default:n(()=>[o(d,{label:"未回复",prop:"unreplied_count"},{default:n(()=>[o(r,{modelValue:l(e).unreplied_count,"onUpdate:modelValue":t[4]||(t[4]=a=>l(e).unreplied_count=a),min:0,step:1,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(p,{span:12},{default:n(()=>[o(d,{label:"付费挂号",prop:"paid_appointment_count"},{default:n(()=>[o(r,{modelValue:l(e).paid_appointment_count,"onUpdate:modelValue":t[5]||(t[5]=a=>l(e).paid_appointment_count=a),min:0,step:1,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(p,{span:12},{default:n(()=>[o(d,{label:"免费挂号",prop:"free_appointment_count"},{default:n(()=>[o(r,{modelValue:l(e).free_appointment_count,"onUpdate:modelValue":t[6]||(t[6]=a=>l(e).free_appointment_count=a),min:0,step:1,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(p,{span:12},{default:n(()=>[o(d,{label:"面诊",prop:"interview_count"},{default:n(()=>[o(r,{modelValue:l(e).interview_count,"onUpdate:modelValue":t[7]||(t[7]=a=>l(e).interview_count=a),min:0,step:1,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(p,{span:12},{default:n(()=>[o(d,{label:"订单金额",prop:"order_amount"},{default:n(()=>[o(r,{modelValue:l(e).order_amount,"onUpdate:modelValue":t[8]||(t[8]=a=>l(e).order_amount=a),min:0,step:.01,precision:2,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(p,{span:12},{default:n(()=>[o(d,{label:"接诊诊单",prop:"completed_order_count"},{default:n(()=>[o(r,{modelValue:l(e).completed_order_count,"onUpdate:modelValue":t[9]||(t[9]=a=>l(e).completed_order_count=a),min:0,step:1,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(d,{label:"备注",prop:"remark"},{default:n(()=>[o(E,{modelValue:l(e).remark,"onUpdate:modelValue":t[10]||(t[10]=a=>l(e).remark=a),type:"textarea",autosize:{minRows:3,maxRows:5},maxlength:"255","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{X as _}; +import{o as C,q as D,r as Y,v as o,D as n,bd as S,u as l,bb as q,az as F,c9 as B,ca as I,J as M,aA as z,a8 as f,M as A,p as L,aC as O}from"./.pnpm-CyuAWpdG.js";import{f as J,h as P}from"./self_input_stats-DXFvDfvT.js";import{_ as T}from"./index-CS5Wg0xx.js";import{_ as $}from"./MediaSourceSelect.vue_vue_type_script_setup_true_lang-NXWg0oJL.js";const G={class:"edit-popup"},X=C({__name:"yeji-edit",props:{mediaSourceOptions:{default:()=>[]},mediaSourceLoading:{type:Boolean,default:!1}},emits:["success","close"],setup(s,{expose:V,emit:b}){const i=b,c=f(),m=f(),_=A("add"),w=L(()=>_.value==="edit"?"编辑业绩":"新增业绩"),e=O({id:"",yeji_date:"",media_source:"",add_fans_count:0,total_open_count:0,unreplied_count:0,paid_appointment_count:0,free_appointment_count:0,interview_count:0,order_amount:0,completed_order_count:0,remark:""}),g={yeji_date:[{required:!0,message:"请选择业绩日期",trigger:["change"]}],media_source:[{required:!0,message:"请填写自媒体来源",trigger:["blur"]}],add_fans_count:[{required:!0,message:"请填写加粉数",trigger:["blur","change"]}]},v=()=>{e.id="",e.yeji_date="",e.media_source="",e.add_fans_count=0,e.total_open_count=0,e.unreplied_count=0,e.paid_appointment_count=0,e.free_appointment_count=0,e.interview_count=0,e.order_amount=0,e.completed_order_count=0,e.remark=""},y=async()=>{var u,t;await((u=c.value)==null?void 0:u.validate()),_.value==="edit"?await J(e):await P(e),(t=m.value)==null||t.close(),i("success")},k=(u="add")=>{var t;_.value=u,v(),(t=m.value)==null||t.open()},j=u=>{e.id=u.id??"",e.yeji_date=u.yeji_date??"",e.media_source=u.media_source??"",e.add_fans_count=Number(u.add_fans_count??0),e.total_open_count=Number(u.total_open_count??0),e.unreplied_count=Number(u.unreplied_count??0),e.paid_appointment_count=Number(u.paid_appointment_count??0),e.free_appointment_count=Number(u.free_appointment_count??0),e.interview_count=Number(u.interview_count??0),e.order_amount=Number(u.order_amount??0),e.completed_order_count=Number(u.completed_order_count??0),e.remark=u.remark??""},U=()=>{i("close")};return V({open:k,setFormData:j}),(u,t)=>{const N=F,d=q,r=M,p=I,x=B,E=z,R=S;return D(),Y("div",G,[o(T,{ref_key:"popupRef",ref:m,title:l(w),async:!0,width:"640px",onConfirm:y,onClose:U},{default:n(()=>[o(R,{ref_key:"formRef",ref:c,model:l(e),"label-width":"110px",rules:g},{default:n(()=>[o(d,{label:"业绩日期",prop:"yeji_date"},{default:n(()=>[o(N,{modelValue:l(e).yeji_date,"onUpdate:modelValue":t[0]||(t[0]=a=>l(e).yeji_date=a),type:"date","value-format":"YYYY-MM-DD",placeholder:"请选择日期",disabled:l(_)==="edit",class:"w-full"},null,8,["modelValue","disabled"])]),_:1}),o(d,{label:"自媒体来源",prop:"media_source"},{default:n(()=>[o($,{modelValue:l(e).media_source,"onUpdate:modelValue":t[1]||(t[1]=a=>l(e).media_source=a),options:s.mediaSourceOptions,loading:s.mediaSourceLoading,placeholder:"请选择自媒体来源","allow-create":!1,disabled:l(_)==="edit","select-class":"w-full"},null,8,["modelValue","options","loading","disabled"])]),_:1}),o(x,{gutter:16},{default:n(()=>[o(p,{span:12},{default:n(()=>[o(d,{label:"加粉数",prop:"add_fans_count"},{default:n(()=>[o(r,{modelValue:l(e).add_fans_count,"onUpdate:modelValue":t[2]||(t[2]=a=>l(e).add_fans_count=a),min:0,step:1,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(p,{span:12},{default:n(()=>[o(d,{label:"总开口",prop:"total_open_count"},{default:n(()=>[o(r,{modelValue:l(e).total_open_count,"onUpdate:modelValue":t[3]||(t[3]=a=>l(e).total_open_count=a),min:0,step:1,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(p,{span:12},{default:n(()=>[o(d,{label:"未回复",prop:"unreplied_count"},{default:n(()=>[o(r,{modelValue:l(e).unreplied_count,"onUpdate:modelValue":t[4]||(t[4]=a=>l(e).unreplied_count=a),min:0,step:1,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(p,{span:12},{default:n(()=>[o(d,{label:"付费挂号",prop:"paid_appointment_count"},{default:n(()=>[o(r,{modelValue:l(e).paid_appointment_count,"onUpdate:modelValue":t[5]||(t[5]=a=>l(e).paid_appointment_count=a),min:0,step:1,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(p,{span:12},{default:n(()=>[o(d,{label:"免费挂号",prop:"free_appointment_count"},{default:n(()=>[o(r,{modelValue:l(e).free_appointment_count,"onUpdate:modelValue":t[6]||(t[6]=a=>l(e).free_appointment_count=a),min:0,step:1,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(p,{span:12},{default:n(()=>[o(d,{label:"面诊",prop:"interview_count"},{default:n(()=>[o(r,{modelValue:l(e).interview_count,"onUpdate:modelValue":t[7]||(t[7]=a=>l(e).interview_count=a),min:0,step:1,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(p,{span:12},{default:n(()=>[o(d,{label:"订单金额",prop:"order_amount"},{default:n(()=>[o(r,{modelValue:l(e).order_amount,"onUpdate:modelValue":t[8]||(t[8]=a=>l(e).order_amount=a),min:0,step:.01,precision:2,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),o(p,{span:12},{default:n(()=>[o(d,{label:"接诊诊单",prop:"completed_order_count"},{default:n(()=>[o(r,{modelValue:l(e).completed_order_count,"onUpdate:modelValue":t[9]||(t[9]=a=>l(e).completed_order_count=a),min:0,step:1,class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),o(d,{label:"备注",prop:"remark"},{default:n(()=>[o(E,{modelValue:l(e).remark,"onUpdate:modelValue":t[10]||(t[10]=a=>l(e).remark=a),type:"textarea",autosize:{minRows:3,maxRows:5},maxlength:"255","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])])}}});export{X as _}; diff --git a/server/public/admin/index.html b/server/public/admin/index.html index 758505921..d7bf7d79e 100644 --- a/server/public/admin/index.html +++ b/server/public/admin/index.html @@ -163,10 +163,10 @@ z-index: 2147483641; } - + - +