8 lines
84 KiB
JavaScript
8 lines
84 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-C9XXoLwn.js","assets/element-plus-DFTWCWyi.js","assets/@vue/runtime-dom-DDAG46FW.js","assets/lodash-D3kF6u-c.js","assets/@vue/runtime-core-C6bnekPw.js","assets/@vue/reactivity-DiY1c2vO.js","assets/@vue/shared-mAAVTE9n.js","assets/@element-plus/icons-vue-HOEUG8sr.js","assets/lodash-es-C2A-Pj28.js","assets/@popperjs/core-C5az9QE8.js","assets/dayjs-DG77mNTn.js","assets/@ctrl/tinycolor-BuyEbX8F.js","assets/async-validator-CFA_igpM.js","assets/normalize-wheel-es-BQoi3Ox2.js","assets/element-plus-C_YxM8bk.css","assets/tcm-9A3wrTHx.js","assets/index-O9YFYqBD.js","assets/jspdf-BsthCvR5.js","assets/@babel/runtime-BanGtE2-.js","assets/fflate-_ayOYiT1.js","assets/vue-router-QlpZ4wdW.js","assets/pinia-B8cvXbiZ.js","assets/axios-C80V62Fs.js","assets/@vueuse/core-1S4fJlii.js","assets/@vueuse/shared-Cl3lVqjz.js","assets/css-color-function-DI01JAaZ.js","assets/balanced-match-BdS7OldZ.js","assets/color-B2zxaWkI.js","assets/clone-DBZ6_OiU.js","assets/color-convert-OrFsTA_V.js","assets/color-name-Dju3oUBS.js","assets/color-string-pUQDDJII.js","assets/ms-CzQ2E3wO.js","assets/vue-clipboard3-DByT_rEQ.js","assets/clipboard-CHgxszqY.js","assets/echarts-CNLwa9wG.js","assets/tslib-BDyQ-Jie.js","assets/zrender-DRNXw7y3.js","assets/highlight.js-Bxt7hFFy.js","assets/highlight-BfC0goYb.css","assets/@highlightjs/vue-plugin-C4onkBvW.js","assets/index-DWUT2gCy.css","assets/perm-C0KRSyvh.js","assets/DailyMatrix-DJC0Pbe7.js","assets/picker-CWjmJU2M.js","assets/index-C-IFJUaT.js","assets/index-B3imPWFk.css","assets/index-q6nlk2vn.js","assets/index.vue_vue_type_script_setup_true_lang-CcvIuIWy.js","assets/index-MtUVSLCS.js","assets/index-D0f1Mn00.css","assets/index-D-TDk56t.js","assets/cos-js-sdk-v5-DSMN0LUT.js","assets/file-DDNHCGBU.js","assets/index.vue_vue_type_script_setup_true_lang-x0oL2ShL.js","assets/usePaging-VsbTxSU0.js","assets/index-BYOmK9R5.css","assets/vuedraggable-5bKFmC7X.js","assets/vue-BVs68q8v.js","assets/@vue/compiler-dom-CqayqxS7.js","assets/@vue/compiler-core-CvbQOXIO.js","assets/sortablejs-dsEAUXlE.js","assets/picker-XZbUgFct.css","assets/vue-echarts-BNtg2q_G.js","assets/resize-detector-G6vbKCU7.js","assets/DiagnosisTodoList-hDoFuEYl.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-CJ1fqMjh.js","assets/DailyMatrix-BODQibyb.css","assets/CaseRecordList-CqHn4ERC.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-BXyuhR-2.js","assets/RecordingPlaybackBlock-D94Tyn5g.js","assets/RecordingVideoPlayer-Czf2dqcv.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-39tS-6RF.js","assets/im-business-message-parse-QKjFLn3X.js","assets/ImChatRecordPanel-aX8zpWRQ.css","assets/AssignLogPanel-DYpgqj5-.js","assets/AssignLogPanel-BdKOtd2m.css","assets/AppointmentRecordPanel-CfFR7sAl.js","assets/doctor-JwrjgeNP.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-DrrdWsqR.js","assets/patient-cOf-3Emc.js","assets/NoteTimeline-CCWIpEBQ.css","assets/PatientOrderList-BtC-Q3dI.js","assets/PatientOrderList-CNDUDncc.css","assets/index-Cnle3eBS.js","assets/index-7XKUbICI.js","assets/medicine-QGAXBjyU.js","assets/index-tfEElgYq.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/html2canvas-QH1iLAAe.js","assets/index-DGbIWVjL.css","assets/edit-z2mn_utb.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]);
|
||
import{_ as ml,E as _l}from"./jspdf-BsthCvR5.js";import{G as cl,F as fl,D as gl,B as vl,C as bl,P as yl,Q as xl,i as kl,J as Vl,L as hl,M as wl,N as Nl,T as Sl,K as Cl,a4 as Pl,a5 as $l,I as Ul,h as Dl,a2 as Rl,e as Tl,V as El,a6 as Ol,a7 as Al,a8 as Ll,g as Fl,r as Il,X as zl}from"./element-plus-DFTWCWyi.js";import{_ as jl}from"./index.vue_vue_type_script_setup_true_lang-CcvIuIWy.js";import{u as Ml,c as Hl,i as N,m as Wl,_ as ql}from"./index-O9YFYqBD.js";import{w as ot,s as Ve,q as rt}from"./@vue/runtime-dom-DDAG46FW.js";import{g as Yl,p as Bl,b as Gl,c as it,d as Jl,e as Kl,f as Ql,h as Xl,i as Zl,j as es,k as ts,l as as}from"./tcm-9A3wrTHx.js";import{m as ls}from"./medicine-QGAXBjyU.js";import{r as ss}from"./role-BLiT0tLk.js";import{u as ns}from"./usePaging-VsbTxSU0.js";import{_ as os}from"./index.vue_vue_type_script_setup_true_lang-DPC_NOWM.js";import{M as rs}from"./index-7XKUbICI.js";import{T as is,M as us,U as ds,N as ps}from"./@element-plus/icons-vue-HOEUG8sr.js";import{a as ms}from"./vue-router-QlpZ4wdW.js";import _s from"./html2canvas-QH1iLAAe.js";import{f as At,w as Oe,b as cs,as as fs,ak as _,I as b,a,aN as s,J as r,O as c,F as I,ap as Z,G as k,aP as E,H as y,P as gs,A as T,n as ee}from"./@vue/runtime-core-C6bnekPw.js";import{y as A,a as vs,r as he,n as v}from"./@vue/reactivity-DiY1c2vO.js";import{Q as f,o as bs}from"./@vue/shared-mAAVTE9n.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";const ys={class:"prescription-list"},xs={class:"pl-toolbar"},ks={class:"pl-toolbar__line"},Vs={class:"pl-toolbar__line pl-toolbar__line--second"},hs={class:"pl-toolbar__actions"},ws={class:"pl-table-head"},Ns={class:"flex items-center gap-2"},Ss={class:"mt-3"},Cs={class:"font-medium"},Ps={class:"text-xs text-gray-400 mt-0.5"},$s={key:1,class:"text-gray-400 text-sm"},Us={class:"font-medium"},Ds={class:"text-xs text-gray-500 mt-0.5"},Rs={class:"flex flex-col gap-1"},Ts={class:"flex flex-wrap items-center gap-1"},Es={key:0,class:"text-xs text-gray-500"},Os=["title"],As={key:1,class:"text-gray-400"},Ls={class:"font-medium"},Fs={class:"text-xs text-gray-500 mt-0.5"},Is={class:"text-sm"},zs={class:"flex mt-2 justify-end"},js={key:0,class:"rx-wrap"},Ms={class:"rx-toolbar"},Hs={key:0,class:"rx-status rx-status-danger"},Ws={key:1,class:"rx-status rx-status-danger"},qs={key:0,class:"mt-1"},Ys={key:2,class:"rx-status rx-status-danger"},Bs={key:0,class:"mt-1"},Gs={class:"rx-notice"},Js={class:"rx-notice-meta"},Ks={class:"rx-info"},Qs={class:"rx-info-row"},Xs={class:"rx-info-cell"},Zs={class:"rx-val"},en={class:"rx-info-cell"},tn={class:"rx-val"},an={class:"rx-info-cell"},ln={class:"rx-val"},sn={class:"rx-info-cell"},nn={class:"rx-val"},on={class:"rx-info-row rx-info-row-full"},rn={class:"rx-info-cell"},un={class:"rx-val"},dn={class:"rx-info-row rx-info-row-full"},pn={class:"rx-info-cell"},mn={class:"rx-val"},_n={class:"rx-rp"},cn={class:"rx-herbs"},fn={class:"rx-herb-name"},gn={class:"rx-herb-total"},vn={class:"rx-text"},bn={key:0},yn={key:1},xn={key:2,class:"rx-text-warn"},kn={key:3,class:"rx-text-warn"},Vn={class:"rx-bottom"},hn={class:"rx-bot-row rx-bot-row-1"},wn={class:"rx-bot-cell rx-bot-stack rx-bot-doctor"},Nn={class:"rx-bot-doctor-body"},Sn=["src"],Cn={class:"rx-bot-doctor-name"},Pn={class:"rx-bot-cell rx-bot-meta"},$n={class:"rx-bot-meta-val"},Un={class:"rx-bot-cell rx-bot-meta"},Dn={class:"rx-bot-meta-val"},Rn={class:"rx-bot-cell rx-bot-meta"},Tn={class:"rx-bot-meta-val"},En={key:4,class:"rx-audit"},On={key:0},An={key:0,class:"ml-2 text-gray-400"},Ln={key:1,class:"mt-1"},Fn={class:"text-sm mt-1"},In={key:0,class:"text-sm mt-2 text-gray-800 font-medium"},zn={key:5,class:"mb-3 flex flex-wrap items-center gap-2 pl-[120px]"},jn={class:"text-xs text-gray-400"},Mn={class:"w-full"},Hn={class:"flex flex-wrap items-center gap-2"},Wn={class:"mt-2"},qn={class:"text-sm mt-1 leading-relaxed"},Yn={key:0,class:"mb-1.5"},Bn={class:"font-mono text-primary"},Gn={class:"mb-1.5"},Jn={class:"whitespace-pre-wrap"},Kn={key:1,class:"text-gray-600"},Qn={class:"signature-pad-wrap"},Xn={class:"signature-actions"},Zn={class:"text-gray-700"},eo={class:"create-order-dialog__inner"},to={key:0,class:"create-order-rx-card"},ao={class:"create-order-rx-card__head"},lo={class:"create-order-rx-card__meta"},so={class:"create-order-rx-card__id"},no={key:0,class:"create-order-rx-card__sn"},oo={class:"create-order-rx-card__patient"},ro={class:"create-order-step-lead"},io={class:"create-order-step-panel"},uo={class:"create-order-step-panel"},po={class:"flex items-center gap-1 w-full"},mo={class:"flex flex-col gap-0.5",style:{"line-height":"normal"}},_o={class:"flex items-center justify-between"},co={class:"font-medium text-[13px] text-gray-800"},fo={class:"text-orange-500 font-medium ml-4"},go={class:"flex items-center justify-between text-xs text-gray-400 mt-1"},vo={class:"truncate pr-2"},bo={class:"shrink-0"},yo={class:"create-order-pay-hint text-gray-500"},xo={class:"text-amber-600 font-medium"},ko={class:"create-order-step-panel"},Vo={class:"create-order-deposit-bar__cell"},ho={class:"create-order-deposit-bar__sub"},wo={class:"create-order-deposit-bar__cell"},No={class:"create-order-deposit-bar__sub"},So={class:"create-order-footer"},Co={class:"create-order-footer__hint"},Po={class:"create-order-footer__step"},$o={key:0,class:"create-order-footer__warn"},Uo={class:"create-order-footer__actions"},Do={class:"mb-4"},Ro={key:0},To={key:1,class:"text-gray-400"},Eo={class:"flex justify-end mt-4"},Oo={class:"mt-3 flex flex-wrap items-center gap-x-4 gap-y-2"},Ao=At({name:"prescriptionList"}),Lo=At({...Ao,setup(Fo){const Lt=gs(()=>ml(()=>import("./edit-C9XXoLwn.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,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98]))),re=Ml(),ut=ms();function Ft(){const t=ut.getRoutes().find(e=>{var o;return((o=e.meta)==null?void 0:o.perms)==="tcm.prescriptionOrder/lists"});t!=null&&t.path?ut.push(t.path):N.msgWarning("未配置「处方业务订单」菜单,请在权限管理中执行菜单 SQL 或手动添加路由")}const w=he({sn:"",patient_name:"",creator_ids:[],audit_filter:"all",source_filter:"all",start_time:"",end_time:""}),Ae=v([]),M=v("all"),Y=v(!1),D=v("add"),Le=v(!1),J=v(),H=v(),ie=v(null),te=560,ae=168,g=v(null),Fe=v(!1),dt=v([]),ue=v(!1),pt=v(0),le=v(""),we=v(!1),de=v(!1),Ie=v(!1),ze=v(),$=he({id:0,patient_name:"",gender:1,phone:""}),It={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],phone:[{required:!0,message:"请输入手机号",trigger:"blur"}]};function zt(t){$.id=Number(t.id)||0,$.patient_name=String(t.patient_name??"").trim();const e=Number(t.gender);$.gender=e===0||e===1?e:1,$.phone=String(t.phone??"").trim(),de.value=!0}function jt(){var t;$.id=0,$.patient_name="",$.gender=1,$.phone="",(t=ze.value)==null||t.clearValidate()}async function Mt(){const t=ze.value;if(t){try{await t.validate()}catch{return}Ie.value=!0;try{await Bl({id:$.id,patient_name:$.patient_name.trim(),phone:$.phone.trim(),gender:$.gender}),N.msgSuccess("已保存"),de.value=!1,K()}catch(e){const o=e&&typeof e=="object"&&"msg"in e?String(e.msg):"";N.msgError(o||"保存失败")}finally{Ie.value=!1}}}const pe=v(!1),R=v(0),Ht=T(()=>["请核对诊单患者并填写完整收货信息,便于发货与物流联系。","按需填写服务相关信息,并选择本诊单下需要关联的支付单。","确认费用类别与订单金额;提交前请对照定金门槛是否已满足。"][R.value]??""),Wt=["patient_id","recipient_name","recipient_phone","region","shipping_address"],z=v(null),me=v(),je=v(!1),Me=v(!1),B=v([]),se=v([]),He=v(!1),U=v(0);function ne(t){const e=Number(t);return Number.isNaN(e)?"—":e.toFixed(2)}function mt(t){return{1:"挂号费",2:"问诊费",3:"药品费用",4:"首付",5:"尾款",6:"其他"}[Number(t)]||"未知"}const m=he({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:"",fee_type:3,amount:0,internal_cost:void 0,remark_extra:"",remark_assistant:"",pay_order_ids:[]}),_e=v([]),We=v([]),qt=t=>t.map(e=>{var o;return{name:e.province,code:e.code,children:((o=e.citys)==null?void 0:o.map(u=>{var p;return{name:u.city,code:u.code,children:((p=u.areas)==null?void 0:p.map(d=>({name:d.area,code:d.code})))||[]}}))||[]}}),Yt=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),_e.value=qt(o),console.log("regionOptions 已设置,条数:",_e.value.length)}catch(t){console.error("加载省市区数据失败:",t),_e.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("使用后备数据,条数:",_e.value.length)}},Bt=async()=>{try{const t=await Wl({type:"server_order"});We.value=((t==null?void 0:t.server_order)||[]).filter(e=>e.status!==0)}catch{We.value=[]}},Gt=t=>{console.log("选择的省市区:",t)},qe=T(()=>{const t=new Set(m.pay_order_ids.map(o=>Number(o)));let e=0;for(const o of se.value)t.has(Number(o.id))&&(e+=Number(o.amount)||0);return Math.round(e*100)/100}),Jt=T(()=>{const t=U.value;return t>0?Math.round(t*100)/100:0}),Kt=T(()=>{const t={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,u)=>{const p=U.value,d=Number(o);if(p>0&&(!Number.isFinite(d)||d<p)){u(new Error(`订单金额须大于等于定金门槛 ¥${ne(p)}`));return}u()},trigger:"blur"}]};if(U.value>0){const e=`已开启关联支付门槛(¥${ne(U.value)}),请至少选择一笔支付单`;t.pay_order_ids=[{type:"array",required:!0,min:1,message:e,trigger:"change"}]}return t});function _t(){var t;R.value=0,m.patient_id="",m.recipient_name="",m.recipient_phone="",m.shipping_address="",m.is_follow_up=0,m.medication_days=void 0,m.prev_staff="",m.service_channel="",m.service_package=[],m.express_company="auto",m.tracking_number="",m.fee_type=3,m.amount=0,m.internal_cost=void 0,m.remark_extra="",m.remark_assistant="",m.pay_order_ids=[],B.value=[],se.value=[],U.value=0,z.value=null,(t=me.value)==null||t.clearValidate()}function Qt(){const t=U.value;if(t<=0)return;const e=Math.round(t*100)/100;Number(m.amount)<e&&(m.amount=e)}async function ct(){var e,o;const t=Number(m.patient_id);if(!t){se.value=[],U.value=0;return}try{He.value=!0;const u=await Gl({diagnosis_id:t}),p=(u==null?void 0:u.lists)??((e=u==null?void 0:u.data)==null?void 0:e.lists)??[];se.value=Array.isArray(p)?p:[];const d=Number((u==null?void 0:u.deposit_min_amount)??((o=u==null?void 0:u.data)==null?void 0:o.deposit_min_amount))||0;U.value=d,Qt()}catch{se.value=[],U.value=0}finally{He.value=!1}}Oe(()=>m.patient_id,()=>{m.pay_order_ids=[],ct()});async function Xt(t){var p;if(Number(t==null?void 0:t.void_status)===1){N.msgWarning("已作废处方不可创建业务订单");return}_t(),z.value=t;const e=Number(t.diagnosis_id)||0;e>0&&(m.patient_id=e,m.recipient_name=t.patient_name||"",m.recipient_phone=String(t.phone||"").trim(),B.value=[{id:e,patient_name:t.patient_name||"",phone:String(t.phone||"").trim()}]);const o=Number(t.usage_days);o>0&&(m.medication_days=o),pe.value=!0,ct();const u=t.id;if(u&&!m.recipient_phone)try{const d=await it({id:u}),i=d&&typeof d.phone=="string"?d.phone.trim():"";if(i&&((p=z.value)==null?void 0:p.id)===u){m.recipient_phone=i;const V=B.value[0];V&&Number(V.id)===e&&(V.phone=i)}}catch{}}async function Zt(t){if(!t){B.value=[];return}try{Me.value=!0;const e=await searchPatientsAPI({keyword:t,page_no:1,page_size:10});B.value=(e==null?void 0:e.lists)||[]}catch{B.value=[]}finally{Me.value=!1}}function ea(t){const e=B.value.find(o=>Number(o.id)===Number(t));e&&(m.recipient_name=e.patient_name||"",m.recipient_phone=e.phone||"")}function ta(){R.value>0&&(R.value-=1)}async function aa(){const t=me.value;if(t)try{R.value===0?await t.validateField([...Wt]):R.value===1&&U.value>0&&await t.validateField(["pay_order_ids"]),R.value<2&&(R.value+=1)}catch{}}async function la(){if(!(!me.value||!z.value)&&R.value===2)try{await me.value.validate(),je.value=!0;const t=Number(m.patient_id),e={prescription_id:z.value.id,diagnosis_id:t,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.length>0?m.service_package.join(","):"",express_company:m.express_company||"auto",tracking_number:m.tracking_number||"",fee_type:m.fee_type,amount:m.amount,remark_extra:m.remark_extra||"",remark_assistant:m.remark_assistant||""};m.region&&m.region.length>=3&&(e.shipping_province=m.region[0],e.shipping_city=m.region[1],e.shipping_district=m.region[2]),m.medication_days!=null&&m.medication_days>0&&(e.medication_days=m.medication_days),m.internal_cost!=null&&m.internal_cost>0&&(e.internal_cost=m.internal_cost),m.pay_order_ids.length&&(e.pay_order_ids=[...m.pay_order_ids]);const o=await Jl(e),u=(o==null?void 0:o.data)??o,p=u==null?void 0:u.order_no;N.msgSuccess(p?`业务订单已创建,单号:${p}`:"业务订单已创建"),pe.value=!1,K()}catch(t){console.error(t)}finally{je.value=!1}}const Ne=v(!1),Se=v(!1),ft=T(()=>{const t=Ne.value,e=Se.value;return!t&&!e?"":t&&e?"当前处方已作废且已驳回。保存后将取消作废、清除驳回,并重新进入待审核。":t?"当前为已作废处方。保存后将取消作废,并重新进入待审核。":"当前为已驳回处方。保存后将清除驳回,并重新进入待审核。"}),Ce=T(()=>{var e;const t=(e=g.value)==null?void 0:e.herbs;return Array.isArray(t)?t:[]}),gt=v(null),Ye=v(!1),Pe=t=>String(t).padStart(2,"0"),sa=T(()=>{const t=g.value;if(!t)return"—";const e=t.create_time??t.update_time??null;if(e){const o=String(e).length===10?Number(e)*1e3:Number(e),u=new Date(o);if(!isNaN(u.getTime()))return`${u.getFullYear()}-${Pe(u.getMonth()+1)}-${Pe(u.getDate())} ${Pe(u.getHours())}:${Pe(u.getMinutes())}`}return t.prescription_date||"—"}),na=T(()=>{const t=g.value;return t?t.order_no||t.serial_no||t.serial_number||t.no||t.prescription_no||t.visit_no||(t.id?`G${t.id}`:"—"):"—"}),oa=T(()=>{const t=g.value;if(!t)return"—";if(t.recipient_text)return t.recipient_text;const e=[];(t.recipient_name||t.patient_name)&&e.push(t.recipient_name||t.patient_name),(t.recipient_phone||t.phone)&&e.push(t.recipient_phone||t.phone);let o=t.region;return Array.isArray(o)&&(o=o.filter(Boolean).join("")),o&&e.push(String(o)),t.shipping_address?e.push(String(t.shipping_address)):t.address&&e.push(String(t.address)),e.length?e.join(","):"—"}),vt=T(()=>{var e;const t=Number((e=g.value)==null?void 0:e.dose_count);return Number.isFinite(t)&&t>0?t:1}),ra=T(()=>{const e=Ce.value.reduce((o,u)=>o+(Number(u==null?void 0:u.dosage)||0),0);return ce(e)}),ia=t=>{const e=Number(t)||0;return ce(e*vt.value)},ua=T(()=>{const t=g.value;if(!t)return"—";const e=t.prescription_type||"浓缩水丸";return/丸|散|膏|片/.test(e)?`浓缩丸-${e}`:e}),da=T(()=>{const t=g.value;if(!t)return"—";if(t.usage_text)return t.usage_text;const e=Number(t.times_per_day)>0?Number(t.times_per_day):3,o=t.dosage_amount!=null?Number(t.dosage_amount):10,u=t.dosage_unit||"g",p=t.usage_way||"温水送服",d=t.usage_time||"",i=[];if(i.push(`每天${e}次`),(t.prescription_type||"浓缩水丸")==="浓缩水丸"){const V=Number(t.dosage_bag_count)>0?Number(t.dosage_bag_count):1;i.push(`一次${V}袋`),i.push(`每袋${o}${u}`)}else i.push(`一次${o}${u}`);return i.push(p),d&&i.push(d),i.join(", ")}),bt=T(()=>{const t=g.value;return t&&t.medical_advice||""}),yt=T(()=>{const t=g.value;if(!t)return"";const e=[];return e.push(`共${Ce.value.length}味药`),t.usage_notes&&e.push(String(t.usage_notes)),t.remark&&e.push(String(t.remark)),e.join(" ")}),xt=T(()=>{const t=g.value;return t&&(t.pharmacy_remark||t.pharmacy_note)||""}),kt=T(()=>{const t=g.value;if(!t)return"";const e=pa(t);return e?`${e}克`:""});function pa(t){if(!t)return"";if((t.prescription_type||"浓缩水丸")==="浓缩水丸"){const p=Number(t.medication_days??t.usage_days??t.dose_count),d=Number(t.times_per_day),i=Number(t.dosage_amount),V=Number(t.dosage_bag_count)>0?Number(t.dosage_bag_count):1;if(Number.isFinite(p)&&Number.isFinite(d)&&Number.isFinite(i)&&p>0&&d>0&&i>0)return ce(p*d*i*V)}const e=t.out_pellet||t.total_weight;if(e&&Number(e)>0)return ce(Number(e));const o=Ce.value;if(!o.length)return"";const u=o.reduce((p,d)=>p+(Number(d==null?void 0:d.dosage)||0),0);return ce(u*vt.value)}function ce(t){return isFinite(t)?Number.isInteger(t)?String(t):t.toFixed(2).replace(/\.?0+$/,""):"0"}function ma(){g.value&&ee(()=>{try{window.print()}catch(t){console.error(t)}})}async function _a(){var e,o,u;const t=gt.value;if(!t){N.msgWarning("处方笺尚未渲染完成");return}Ye.value=!0;try{await ee(),await new Promise(F=>requestAnimationFrame(()=>F(null))),await new Promise(F=>setTimeout(F,250));const p=await _s(t,{scale:2,backgroundColor:"#ffffff",useCORS:!0,allowTaint:!1,logging:!1,windowWidth:t.scrollWidth,windowHeight:t.scrollHeight,width:t.scrollWidth,height:t.scrollHeight}),d=p.toDataURL("image/jpeg",.95),i=new _l({unit:"mm",format:"a4",orientation:"portrait"}),V=210,L=297,x=V,X=p.height*x/p.width;if(X<=L)i.addImage(d,"JPEG",0,0,x,X);else{let F=X,Te=0;for(;F>0;)i.addImage(d,"JPEG",0,Te,x,X),F-=L,Te-=L,F>0&&i.addPage()}const st=((e=g.value)==null?void 0:e.patient_name)||"处方",P=((o=g.value)==null?void 0:o.id)||"",O=((u=g.value)==null?void 0:u.prescription_date)||"";i.save(`处方-${st}${O?"-"+O:""}${P?"-"+P:""}.pdf`)}catch(p){console.error("下载处方 PDF 失败:",p),N.msgError((p==null?void 0:p.message)||"下载失败,请重试")}finally{Ye.value=!1}}const n=he({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}),S=he({loading:!1,orderNo:"",medicationDays:null,remarkAssistant:""});function ca(){S.loading=!1,S.orderNo="",S.medicationDays=null,S.remarkAssistant=""}async function fa(t){if(S.orderNo="",S.medicationDays=null,S.remarkAssistant="",!t){S.loading=!1;return}S.loading=!0;try{const e=await as({page_no:1,page_size:5,prescription_id:t}),o=e==null?void 0:e.lists,u=Array.isArray(o)&&o.length?o[0]:null;if(u){S.orderNo=String(u.order_no||"").trim();const p=u.medication_days,d=p!=null&&String(p).trim()!==""?Number(p):NaN;S.medicationDays=Number.isFinite(d)&&d>0?d:null,S.remarkAssistant=String(u.remark_assistant||"").trim()}}catch{}finally{S.loading=!1}}const Vt=v(null);function ga(){var e;const t=Number(n.diagnosis_id);if(!t){N.msgWarning("本处方未关联诊单,无法查看诊单患者信息");return}(e=Vt.value)==null||e.openViewOnly(t)}const $e=v(!1);Oe(()=>n.prescription_type,t=>{$e.value||(t==="浓缩水丸"?(n.dosage_unit="g",n.dosage_amount=1,n.dosage_bag_count=1,n.need_decoction=!1,n.bags_per_dose=1):t==="饮片"?(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))});const va={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:(t,e,o)=>{!e||!String(e).trim()?o(new Error("请使用电子签名板手写医师签名")):o()},trigger:"change"}]};async function ba(t){const{audit_filter:e,source_filter:o,creator_ids:u,...p}=t,d={...p,audit_filter:e==="all"||e===""?"":e,source_filter:o==="all"||o===""||o===void 0?"":o};return Array.isArray(u)&&u.length>0&&(d.creator_ids=u),Kl(d)}const{pager:fe,getLists:K,resetPage:Q}=ns({fetchFun:ba,params:w});function ht(t){return String(t).padStart(2,"0")}function wt(t){const e=t.getFullYear(),o=ht(t.getMonth()+1),u=ht(t.getDate()),p=`${e}-${o}-${u}`;return{start:`${p} 00:00:00`,end:`${p} 23:59:59`}}function ya(t){const e=String(t??"all");if(e==="all")w.start_time="",w.end_time="";else{const o=new Date,u=new Date(o.getFullYear(),o.getMonth(),o.getDate());e==="yesterday"?u.setDate(u.getDate()-1):e==="before_yesterday"&&u.setDate(u.getDate()-2);const{start:p,end:d}=wt(u);w.start_time=p,w.end_time=d}Q()}function xa(){Q()}function ka(){Q()}let Be=!1;Oe(()=>[w.start_time,w.end_time],()=>{if(Be)return;const t=w.start_time,e=w.end_time;if(!t&&!e){M.value="all";return}if(!t||!e){M.value="";return}const o=new Date,u=p=>{const d=new Date(o.getFullYear(),o.getMonth(),o.getDate()-p),{start:i,end:V}=wt(d);return t===i&&e===V};u(0)?M.value="today":u(1)?M.value="yesterday":u(2)?M.value="before_yesterday":M.value=""});function Va(t){if(t==null||t==="")return"—";if(typeof t=="number"&&t>=1e9&&t<1e11)return Ue(t);const e=String(t).trim();return/^\d{10}$/.test(e)?Ue(parseInt(e,10)):e}function ha(){Be=!0,M.value="all",w.sn="",w.patient_name="",w.creator_ids=[],w.audit_filter="all",w.source_filter="all",w.start_time="",w.end_time="",Be=!1,Q()}function wa(t){return t===0?"待审核":t===2?"已驳回":"已通过"}function Na(t){return t===0?"warning":t===2?"danger":"success"}function Sa(t){return Number(t.business_prescription_audit_rejected)===1?"已驳回":wa(t.audit_status)}function Ca(t){return Number(t.business_prescription_audit_rejected)===1?"danger":Na(t.audit_status)}function Nt(t){const e=[];if(Number(t.business_prescription_audit_rejected)===1){const o=String(t.business_prescription_audit_remark||"").trim();e.push(o?`业务订单审核驳回意见:${o}`:"业务订单审核驳回意见:—")}if(Number(t.audit_status)===2){const o=String(t.audit_remark||"").trim();e.push(o?`消费者处方审核驳回意见:${o}`:"消费者处方审核驳回意见:—")}return e}function St(t){return Number(t.audit_status)===1&&Number(t.void_status)!==1}function Ue(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 Pa(t){return t?Ue(t):"—"}function $a(t){return t===1||t==="1"?"男":t===0||t==="0"?"女":"—"}function Ua(t){return t==null||t===""?"—":`${t}岁`}function Ge(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})):[]:[]}function Da(t){if(Number(t==null?void 0:t.has_prescription_order)!==1)return[];const o=Ge(t==null?void 0:t.herbs).map(i=>String((i==null?void 0:i.name)||"").trim()).filter(Boolean),u=[];if(!o.length)return u.push("请开方,当前处方药材为空白"),u;const p=new Set,d=new Set;for(const i of o){const V=i.replace(/\s+/g,"").toLowerCase();V&&(p.has(V)?d.add(i):p.add(V))}return d.size>0&&u.push(`已有关联业务订单,当前处方存在重复药材:${Array.from(d).join("、")}`),u}function Ra(t){return{...t,herbs:Ge(t==null?void 0:t.herbs)}}function Ta(){g.value=null,ie.value=null}function Ct(t){const e=H.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 u=(t.clientX-o.left)/o.width*te,p=(t.clientY-o.top)/o.height*ae;return{x:Math.max(0,Math.min(te,u)),y:Math.max(0,Math.min(ae,p))}}function Je(){const t=H.value;t&&(n.doctor_signature=t.toDataURL("image/png")),ee(()=>{var e;(e=J.value)==null||e.validateField("doctor_signature").catch(()=>{})})}function Ea(t){if(t.pointerType==="mouse"&&t.button!==0)return;const e=H.value,o=e==null?void 0:e.getContext("2d");if(!e||!o)return;e.setPointerCapture(t.pointerId),ie.value=t.pointerId;const{x:u,y:p}=Ct(t);o.beginPath(),o.moveTo(u,p)}function Oa(t){var p;if(ie.value!==t.pointerId)return;const e=(p=H.value)==null?void 0:p.getContext("2d");if(!e)return;const{x:o,y:u}=Ct(t);e.lineTo(o,u),e.stroke(),e.beginPath(),e.moveTo(o,u)}function Pt(t){if(ie.value!==t.pointerId)return;ie.value=null;const e=H.value;if(e)try{e.releasePointerCapture(t.pointerId)}catch{}Je()}function Aa(){$t(),n.doctor_signature="",ee(()=>{var t;(t=J.value)==null||t.validateField("doctor_signature").catch(()=>{})})}function $t(){const t=H.value;if(!t)return;const e=Math.min(typeof window<"u"&&window.devicePixelRatio||1,2.5);t.style.width=`${te}px`,t.style.height=`${ae}px`,t.width=Math.round(te*e),t.height=Math.round(ae*e);const o=t.getContext("2d");o&&(o.setTransform(1,0,0,1,0,0),o.scale(e,e),o.fillStyle="#fff",o.fillRect(0,0,te,ae),o.strokeStyle="#333",o.lineWidth=2.5,o.lineCap="round",o.lineJoin="round")}function Ut(){D.value!=="view"&&ee(()=>{setTimeout(()=>{$t();const t=n.doctor_signature;if(t&&String(t).trim().startsWith("data:image")&&H.value){const e=new Image;e.onload=()=>{const o=H.value,u=o==null?void 0:o.getContext("2d");!o||!u||(u.drawImage(e,0,0,te,ae),Je())},e.onerror=()=>{Je()},e.src=t}},100)})}function La(t){const e=t==null?void 0:t.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 Fa(t){pt.value=t.id,le.value="",ue.value=!0}async function Dt(t){if(t==="reject"&&!le.value.trim()){N.msgError("驳回时请填写审核意见");return}we.value=!0;try{const e=await Ql({id:pt.value,action:t,remark:le.value.trim()});N.msgSuccess(t==="reject"?"已驳回并作废处方":"审核通过"),e&&e.wecom_notify_ok===!1&&e.wecom_notify_hint&&N.msgWarning(e.wecom_notify_hint),ue.value=!1,K()}catch{}finally{we.value=!1}}async function Ia(){try{const t=await ss({});dt.value=Array.isArray(t)?t:[]}catch{dt.value=[]}}const ge=v(!1),Ke=v(!1),Qe=v([]),De=v(""),ve=v(1),Xe=v(15),Ze=v(0),Rt=T(()=>{var o;const t=Number(n.creator_id);if(t>0)return t;const e=Number((o=re.userInfo)==null?void 0:o.id);return e>0?e:0});function za(t){return String(t||"").trim().toLowerCase()}function Tt(){const t=new Map;for(const e of n.herbs){const o=za(e==null?void 0:e.name);o&&t.set(o,(t.get(o)??0)+1)}return[...t.entries()].filter(([,e])=>e>1).map(([e])=>e)}const Re=async()=>{const t=Rt.value;if(!t){N.msgWarning("无法确定开方医师,无法加载处方库"),Qe.value=[],Ze.value=0;return}Ke.value=!0;try{const e=await Xl({page_no:ve.value,page_size:Xe.value,prescription_name:De.value,is_public:"",creator_id:t});Qe.value=(e==null?void 0:e.lists)||[],Ze.value=(e==null?void 0:e.count)||0}catch(e){console.error(e),N.msgError("加载处方库失败")}finally{Ke.value=!1}},et=()=>{ve.value=1,Re()},ja=()=>{if(!Rt.value){N.msgWarning("无法确定开方医师,无法从处方库导入");return}ge.value=!0},Ma=t=>{Et(t)},Et=t=>{if(!t.herbs||t.herbs.length===0){N.msgWarning("该处方没有药材信息");return}const e=JSON.parse(JSON.stringify(t.herbs));n.herbs=e,Tt().length&&N.msgWarning("导入的处方中存在重复药名,请合并剂量或删除多余行"),N.msgSuccess(`已导入处方「${t.prescription_name}」,共${e.length}味药材`),ge.value=!1};Oe(ge,t=>{t&&(De.value="",ve.value=1,Re())});const be=v(!1),ye=v(""),tt=v("replace"),at=v(!1),Ha=/^(用法|用量|医嘱|忌口|水煎服|空腹|饭后|温水|内服|外用|备注|顿服|分服|ml|毫升|[×xX]\s*\d)/;function Wa(t){let e=t.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(t){return t.replace(/^\s*Rp[::**\s]*/i,"").replace(/^\s*处方[::\s]*/,"").replace(/^\s*中药处方[::\s]*/,"").trimStart()}function lt(t){return t.replace(/([^)]*)$/u,"").replace(/\([^)]*\)$/u,"").trim()}function Ot(t){const e=t.trim();if(!e||Ha.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 d=parseFloat(o[2]);if(!Number.isFinite(d)||d<=0)return null;const i=o[1].split(/[、,,\s]+/).map(V=>V.trim()).filter(Boolean);return i.length?i.map(V=>({name:lt(V),dosage:d})):null}const u=e.match(/^(.+?)\s*(\d+(?:\.\d+)?)\s*(?:克|g|G|钱)?$/i);if(u){const d=lt(u[1].trim()),i=parseFloat(u[2]);return!d||!Number.isFinite(i)||i<=0?null:[{name:d,dosage:i}]}const p=lt(e);return p.length>=2&&p.length<=16?[{name:p,dosage:6}]:null}function Ya(t){const e=qa(Wa(t)),o=[];for(const u of e.split(/\n+/)){const p=u.trim();if(p)for(const d of p.split(/[、,,;;]/)){const i=d.trim();if(i)if(/\s/.test(i)&&!Ot(i)){const V=i.split(/\s+(?=[\u4e00-\u9fff]{2,})/);for(const L of V){const x=L.trim();x&&o.push(x)}}else o.push(i)}}return o}function Ba(t){const e=[];for(const o of Ya(t)){const u=Ot(o);u&&e.push(...u)}return e}async function Ga(t){const e=t.trim();if(!e)return null;try{const p=((await ls({name:e,page_no:1,page_size:200,status:1})).lists||[]).find(d=>(d.name??"").trim()===e);return p?p.name.trim():null}catch{return null}}function Ja(){be.value=!0}async function Ka(){const t=Ba(ye.value);if(!t.length){N.msgWarning("未能从文本中解析出药材,请检查格式(药名 + 剂量,或用顿号/换行分隔)");return}at.value=!0;try{const e=[],o=[];for(const i of t){const V=await Ga(i.name);if(!V){o.push(i.name.trim());continue}e.push({name:V,dosage:i.dosage})}const u=[...new Set(o.filter(Boolean))];if(e.length===0){N.msgWarning(u.length?`药品库中无以下完全同名药材,未录入:${u.join("、")}`:"未能匹配到药品库中的药材");return}tt.value==="replace"?n.herbs=e:n.herbs.push(...e);const p=Tt(),d=u.length>0?`;药品库未收录已跳过:${u.join("、")}`:"";p.length?N.msgWarning(`已导入 ${e.length} 味药材${d}。存在重复药名:${p.join("、")},请合并剂量或删除多余行`):u.length?N.msgSuccess(`已导入 ${e.length} 味药材${d},请核对剂量`):N.msgSuccess(`已导入 ${e.length} 味药材,请核对药名与剂量`),be.value=!1,ye.value=""}finally{at.value=!1}}const Qa=()=>{n.herbs.push({name:"",dosage:0})},Xa=t=>{n.herbs.splice(t,1)},Za=()=>{var t;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((t=re.userInfo)==null?void 0:t.id)||0,n.is_system_auto=0,n.business_prescription_audit_rejected=0,n.business_prescription_audit_remark="",ca()},el=()=>{var t;Za(),n.doctor_name=String(((t=re.userInfo)==null?void 0:t.name)||""),Ne.value=!1,Se.value=!1,D.value="add",$e.value=!1,Y.value=!0,ee(()=>{var e;(e=J.value)==null||e.clearValidate(),Ut()})},tl=async t=>{Ne.value=!1,Se.value=!1,D.value="view",g.value=Ra(t),Y.value=!0,Fe.value=!0;try{const e=await it({id:t.id});e&&typeof e=="object"&&(g.value={...e,herbs:Ge(e.herbs)})}catch(e){N.msgError((e==null?void 0:e.msg)||"加载处方详情失败")}finally{Fe.value=!1}},al=async t=>{Ne.value=Number(t.void_status)===1,Se.value=Number(t.audit_status)===2,D.value="edit",$e.value=!0;let e=t;if(t!=null&&t.id&&!t.doctor_signature)try{const o=await it({id:t.id});o&&typeof o=="object"&&(e={...t,...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?JSON.parse(JSON.stringify(e.herbs)):[],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=La(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||""),setTimeout(()=>{$e.value=!1},0),Y.value=!0,fa(Number(n.id)),ee(()=>{var o;(o=J.value)==null||o.clearValidate(),Ut()})},ll=async()=>{if(J.value){try{await J.value.validate()}catch{return}if(!n.herbs||n.herbs.length===0){N.msgError("请至少添加一味药材");return}for(let t=0;t<n.herbs.length;t++){const e=n.herbs[t];if(!e.name||!e.name.trim()){N.msgError(`第${t+1}味药材名称不能为空`);return}if(!e.dosage||e.dosage<=0){N.msgError(`第${t+1}味药材剂量必须大于0`);return}}Le.value=!0;try{const t={...n};D.value==="add"?(t.audit_status=0,await Zl(t),N.msgSuccess("添加成功,已提交审核")):(await es(t),N.msgSuccess("保存成功,处方已重新进入待审核")),Y.value=!1,K()}catch(t){console.error(t)}finally{Le.value=!1}}},sl=async t=>{await N.confirm("确定要删除该处方吗?"),await ts({id:t}),N.msgSuccess("删除成功"),K()};return cs(async()=>{var t;await Ia(),await Yt(),await Bt();try{const e=await Yl();Ae.value=Array.isArray(e)?e:[]}catch{Ae.value=[]}try{(t=re.userInfo)!=null&&t.id||await re.getUserInfo()}catch{}K()}),(t,e)=>{const o=fl,u=cl,p=bl,d=vl,i=xl,V=yl,L=gl,x=kl,X=Vl,st=Hl,P=Nl,O=Sl,F=wl,Te=jl,oe=Cl,h=$l,W=Pl,G=Ul,q=Dl,nl=Rl,ol=Tl,xe=El,nt=Al,rl=Ol,il=Ll,ul=Fl,dl=Il,pl=zl,j=fs("perms"),Ee=hl;return _(),b("div",ys,[a(X,{class:"filter-toolbar",shadow:"never","body-style":{padding:"10px 14px"}},{default:s(()=>[r("div",xs,[r("div",ks,[e[89]||(e[89]=r("span",{class:"pl-toolbar__k",title:"按处方创建时间"},"创建时间",-1)),a(u,{modelValue:M.value,"onUpdate:modelValue":e[0]||(e[0]=l=>M.value=l),size:"small",class:"pl-toolbar__rg",onChange:ya},{default:s(()=>[a(o,{label:"all"},{default:s(()=>[...e[77]||(e[77]=[c("全部",-1)])]),_:1}),a(o,{label:"today"},{default:s(()=>[...e[78]||(e[78]=[c("今日",-1)])]),_:1}),a(o,{label:"yesterday"},{default:s(()=>[...e[79]||(e[79]=[c("昨日",-1)])]),_:1}),a(o,{label:"before_yesterday"},{default:s(()=>[...e[80]||(e[80]=[c("前天",-1)])]),_:1})]),_:1},8,["modelValue"]),a(os,{class:"pl-toolbar__range",startTime:w.start_time,"onUpdate:startTime":e[1]||(e[1]=l=>w.start_time=l),endTime:w.end_time,"onUpdate:endTime":e[2]||(e[2]=l=>w.end_time=l)},null,8,["startTime","endTime"]),e[90]||(e[90]=r("span",{class:"pl-toolbar__sep","aria-hidden":"true"},null,-1)),e[91]||(e[91]=r("span",{class:"pl-toolbar__k",title:"「未通过」含待审核与已驳回"},"审核",-1)),a(u,{modelValue:w.audit_filter,"onUpdate:modelValue":e[3]||(e[3]=l=>w.audit_filter=l),size:"small",class:"pl-toolbar__rg pl-toolbar__rg--audit",onChange:xa},{default:s(()=>[a(o,{label:"pending",class:"pl-audit-pending-btn"},{default:s(()=>[...e[81]||(e[81]=[c("待审核",-1)])]),_:1}),a(o,{label:"all"},{default:s(()=>[...e[82]||(e[82]=[c("全部",-1)])]),_:1}),a(o,{label:"passed"},{default:s(()=>[...e[83]||(e[83]=[c("已通过",-1)])]),_:1}),a(o,{label:"not_passed"},{default:s(()=>[...e[84]||(e[84]=[c("未通过",-1)])]),_:1}),a(o,{label:"rejected"},{default:s(()=>[...e[85]||(e[85]=[c("驳回",-1)])]),_:1})]),_:1},8,["modelValue"]),e[92]||(e[92]=r("span",{class:"pl-toolbar__sep","aria-hidden":"true"},null,-1)),e[93]||(e[93]=r("span",{class:"pl-toolbar__k",title:"与列表「来源」列一致:系统代开 / 手工"},"来源",-1)),a(u,{modelValue:w.source_filter,"onUpdate:modelValue":e[4]||(e[4]=l=>w.source_filter=l),size:"small",class:"pl-toolbar__rg pl-toolbar__rg--source",onChange:ka},{default:s(()=>[a(o,{label:"all"},{default:s(()=>[...e[86]||(e[86]=[c("全部",-1)])]),_:1}),a(o,{label:"manual"},{default:s(()=>[...e[87]||(e[87]=[c("手工",-1)])]),_:1}),a(o,{label:"system"},{default:s(()=>[...e[88]||(e[88]=[c("系统代开",-1)])]),_:1})]),_:1},8,["modelValue"])]),r("div",Vs,[a(L,{model:w,inline:"",class:"pl-toolbar__form"},{default:s(()=>[a(d,{label:"处方编号",class:"!mb-0"},{default:s(()=>[a(p,{modelValue:w.sn,"onUpdate:modelValue":e[5]||(e[5]=l=>w.sn=l),placeholder:"编号",clearable:"",class:"pl-toolbar__input",onKeyup:ot(A(Q),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),a(d,{label:"患者",class:"!mb-0"},{default:s(()=>[a(p,{modelValue:w.patient_name,"onUpdate:modelValue":e[6]||(e[6]=l=>w.patient_name=l),placeholder:"姓名",clearable:"",class:"pl-toolbar__input",onKeyup:ot(A(Q),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),a(d,{label:"医师",class:"!mb-0"},{default:s(()=>[a(V,{modelValue:w.creator_ids,"onUpdate:modelValue":e[7]||(e[7]=l=>w.creator_ids=l),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",filterable:"",clearable:"",placeholder:"全部医师",class:"pl-toolbar__select pl-toolbar__select--doctors"},{default:s(()=>[(_(!0),b(I,null,Z(Ae.value,l=>(_(),k(i,{key:l.id,label:l.name,value:Number(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"]),r("div",hs,[a(x,{type:"primary",onClick:A(Q)},{default:s(()=>[...e[94]||(e[94]=[c("查询",-1)])]),_:1},8,["onClick"]),a(x,{onClick:ha},{default:s(()=>[...e[95]||(e[95]=[c("重置",-1)])]),_:1})])])])]),_:1}),E((_(),k(X,{class:"mt-3 table-card",shadow:"never"},{default:s(()=>[r("div",ws,[e[98]||(e[98]=r("span",{class:"pl-table-head__title"},"处方列表",-1)),r("div",Ns,[E((_(),k(x,{onClick:Ft},{default:s(()=>[...e[96]||(e[96]=[c(" 业务订单 ",-1)])]),_:1})),[[j,["tcm.prescriptionOrder/lists"]]]),E((_(),k(x,{type:"primary",onClick:el},{icon:s(()=>[a(st,{name:"el-icon-Plus"})]),default:s(()=>[e[97]||(e[97]=c(" 新增处方 ",-1))]),_:1})),[[j,["cf.prescription/add"]]])])]),r("div",Ss,[a(F,{data:A(fe).lists,size:"default",stripe:""},{default:s(()=>[a(P,{label:"处方编号","min-width":"160"},{default:s(({row:l})=>[r("span",Cs,f(l.sn||"—"),1),r("div",Ps,"ID: "+f(l.id),1),(_(!0),b(I,null,Z(Da(l),(C,ke)=>(_(),b("div",{key:`rx-order-warn-${l.id}-${ke}`,class:"text-xs text-red-600 mt-0.5 leading-snug"},f(C),1))),128))]),_:1}),a(P,{label:"处方类型","min-width":"100"},{default:s(({row:l})=>[a(O,{type:"info",size:"small"},{default:s(()=>[c(f(l.prescription_type||"—"),1)]),_:2},1024)]),_:1}),a(P,{label:"来源","min-width":"92",align:"center"},{default:s(({row:l})=>[Number(l.is_system_auto)===1?(_(),k(O,{key:0,type:"warning",size:"small",effect:"plain"},{default:s(()=>[...e[99]||(e[99]=[c(" 系统代开 ",-1)])]),_:1})):(_(),b("span",$s,"手工"))]),_:1}),a(P,{label:"患者信息","min-width":"110"},{default:s(({row:l})=>[r("div",Us,f(l.patient_name||"—"),1),r("div",Ds,f(l.gender===1?"男":l.gender===0?"女":"未知")+" · "+f(l.age?l.age+"岁":"—"),1)]),_:1}),a(P,{label:"审核状态","min-width":"200"},{default:s(({row:l})=>[r("div",Rs,[r("div",Ts,[a(O,{type:Ca(l)},{default:s(()=>[c(f(Sa(l)),1)]),_:2},1032,["type"]),Number(l.business_prescription_audit_rejected)===1?(_(),b("span",Es," (业务订单审核) ")):y("",!0)]),Nt(l).length?(_(!0),b(I,{key:0},Z(Nt(l),(C,ke)=>(_(),b("div",{key:ke,class:"text-xs text-red-600 leading-snug line-clamp-3",title:C},f(C),9,Os))),128)):y("",!0)])]),_:1}),a(P,{label:"作废","min-width":"80",align:"center"},{default:s(({row:l})=>[l.void_status===1?(_(),k(O,{key:0,type:"danger",size:"small"},{default:s(()=>[...e[100]||(e[100]=[c("作废",-1)])]),_:1})):(_(),b("span",As,"—"))]),_:1}),a(P,{label:"医师信息","min-width":"120"},{default:s(({row:l})=>[r("div",Ls,f(l.doctor_name||"—"),1),r("div",Fs,f(l.prescription_date||"—"),1)]),_:1}),a(P,{label:"医助","min-width":"90"},{default:s(({row:l})=>[r("div",Is,f(l.assistant_name||"—"),1)]),_:1}),a(P,{label:"创建时间","min-width":"160"},{default:s(({row:l})=>[c(f(Va(l.create_time)),1)]),_:1}),a(P,{label:"操作",width:"300",fixed:"right"},{default:s(({row:l})=>[E((_(),k(x,{type:"primary",link:"",onClick:C=>tl(l)},{default:s(()=>[...e[101]||(e[101]=[c(" 查看 ",-1)])]),_:1},8,["onClick"])),[[j,["cf.prescription/read"]]]),Number(l.void_status)!==1?E((_(),k(x,{key:0,type:"primary",link:"",onClick:C=>zt(l)},{default:s(()=>[...e[102]||(e[102]=[c(" 改姓名手机 ",-1)])]),_:1},8,["onClick"])),[[j,["tcm.prescription/patchPatient"]]]):y("",!0),!Number(l.has_prescription_order)&&Number(l.void_status)!==1?E((_(),k(x,{key:1,type:"success",link:"",onClick:C=>Xt(l)},{default:s(()=>[...e[103]||(e[103]=[c(" 创建订单 ",-1)])]),_:1},8,["onClick"])),[[j,["tcm.prescriptionOrder/create"]]]):y("",!0),St(l)?y("",!0):E((_(),k(x,{key:2,type:"primary",link:"",onClick:C=>al(l)},{default:s(()=>[...e[104]||(e[104]=[c(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[j,["cf.prescription/edit"]]]),l.audit_status===0&&l.void_status!==1?E((_(),k(x,{key:3,type:"warning",link:"",onClick:C=>Fa(l)},{default:s(()=>[...e[105]||(e[105]=[c(" 审核 ",-1)])]),_:1},8,["onClick"])),[[j,["cf.prescription/audit"]]]):y("",!0),St(l)?y("",!0):E((_(),k(x,{key:4,type:"danger",link:"",onClick:C=>sl(l.id)},{default:s(()=>[...e[106]||(e[106]=[c(" 删除 ",-1)])]),_:1},8,["onClick"])),[[j,["cf.prescription/del"]]])]),_:1})]),_:1},8,["data"])]),r("div",zs,[a(Te,{modelValue:A(fe),"onUpdate:modelValue":e[8]||(e[8]=l=>vs(fe)?fe.value=l:null),onChange:A(K)},null,8,["modelValue","onChange"])])]),_:1})),[[Ee,A(fe).loading]]),a(ol,{modelValue:Y.value,"onUpdate:modelValue":e[38]||(e[38]=l=>Y.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:Ta},{footer:s(()=>[D.value==="view"?(_(),k(x,{key:0,onClick:e[36]||(e[36]=l=>Y.value=!1)},{default:s(()=>[...e[152]||(e[152]=[c("关闭",-1)])]),_:1})):(_(),b(I,{key:1},[a(x,{onClick:e[37]||(e[37]=l=>Y.value=!1)},{default:s(()=>[...e[153]||(e[153]=[c("取消",-1)])]),_:1}),a(x,{type:"primary",onClick:ll,loading:Le.value},{default:s(()=>[...e[154]||(e[154]=[c(" 确定 ",-1)])]),_:1},8,["loading"])],64))]),default:s(()=>[D.value==="view"?E((_(),b("div",js,[r("div",Ms,[g.value&&Number(g.value.is_system_auto)===1?(_(),k(O,{key:0,type:"warning",size:"small",effect:"plain"},{default:s(()=>[...e[107]||(e[107]=[c("系统代开",-1)])]),_:1})):y("",!0),g.value&&Number(g.value.void_status)===1?(_(),k(O,{key:1,type:"danger",size:"small"},{default:s(()=>[...e[108]||(e[108]=[c("已作废",-1)])]),_:1})):g.value&&Number(g.value.business_prescription_audit_rejected)===1?(_(),k(O,{key:2,type:"danger",size:"small"},{default:s(()=>[...e[109]||(e[109]=[c("业务订单已驳回",-1)])]),_:1})):g.value&&Number(g.value.audit_status)===1?(_(),k(O,{key:3,type:"success",size:"small"},{default:s(()=>[...e[110]||(e[110]=[c("已通过",-1)])]),_:1})):g.value&&Number(g.value.audit_status)===0?(_(),k(O,{key:4,type:"warning",size:"small"},{default:s(()=>[...e[111]||(e[111]=[c("待审核",-1)])]),_:1})):g.value?(_(),k(O,{key:5,type:"danger",size:"small"},{default:s(()=>[...e[112]||(e[112]=[c("已驳回",-1)])]),_:1})):y("",!0),e[115]||(e[115]=r("div",{class:"flex-1"},null,-1)),a(x,{icon:A(is),size:"small",onClick:ma},{default:s(()=>[...e[113]||(e[113]=[c("打印",-1)])]),_:1},8,["icon"]),a(x,{type:"primary",icon:A(us),size:"small",loading:Ye.value,onClick:_a},{default:s(()=>[...e[114]||(e[114]=[c(" 下载 PDF (A4) ",-1)])]),_:1},8,["icon","loading"])]),g.value&&Number(g.value.void_status)===1?(_(),b("div",Hs," 作废人:"+f(g.value.void_by_name||"—")+",作废时间:"+f(Pa(g.value.void_time)),1)):g.value&&Number(g.value.business_prescription_audit_rejected)===1?(_(),b("div",Ws,[e[116]||(e[116]=r("div",{class:"font-medium"},"审核状态:已驳回(业务订单·处方审核)",-1)),g.value.business_prescription_audit_remark?(_(),b("div",qs," 驳回意见:"+f(g.value.business_prescription_audit_remark),1)):y("",!0)])):g.value&&Number(g.value.audit_status)===2?(_(),b("div",Ys,[e[117]||(e[117]=r("div",{class:"font-medium"},"消费者处方审核:已驳回",-1)),g.value.audit_remark?(_(),b("div",Bs,"驳回意见:"+f(g.value.audit_remark),1)):y("",!0)])):y("",!0),g.value?(_(),b("div",{key:3,ref_key:"rxPaperRef",ref:gt,class:"rx-paper"},[r("div",Gs,[e[118]||(e[118]=r("span",{class:"rx-notice-text"}," 服药前请核对姓名、电话、医生等信息以及服法、医嘱等要点 ",-1)),r("span",Js,[r("span",null,"日期:"+f(sa.value),1),r("span",null,"编号:"+f(na.value),1)])]),r("div",Ks,[r("div",Qs,[r("div",Xs,[e[119]||(e[119]=r("span",{class:"rx-key"},"姓名",-1)),r("span",Zs,f(g.value.patient_name||"—"),1)]),r("div",en,[e[120]||(e[120]=r("span",{class:"rx-key"},"性别",-1)),r("span",tn,f($a(g.value.gender)),1)]),r("div",an,[e[121]||(e[121]=r("span",{class:"rx-key"},"年龄",-1)),r("span",ln,f(Ua(g.value.age)),1)]),r("div",sn,[e[122]||(e[122]=r("span",{class:"rx-key"},"电话",-1)),r("span",nn,f(g.value.phone||"—"),1)])]),r("div",on,[r("div",rn,[e[123]||(e[123]=r("span",{class:"rx-key"},"收件信息",-1)),r("span",un,f(oa.value),1)])]),r("div",dn,[r("div",pn,[e[124]||(e[124]=r("span",{class:"rx-key"},"临床诊断",-1)),r("span",mn,f(g.value.clinical_diagnosis||"—"),1)])])]),r("div",_n,[e[125]||(e[125]=r("div",{class:"rx-watermark"},"药房联",-1)),e[126]||(e[126]=r("div",{class:"rx-rp-head"},[r("div",{class:"rx-rp-label"},"Rp."),r("div",{class:"rx-rp-cols-head"},[r("div",{class:"rx-rp-col-head"},[r("span",null,"用药 (单剂)"),r("span",null,"总量")]),r("div",{class:"rx-rp-col-head"},[r("span",null,"用药 (单剂)"),r("span",null,"总量")])])],-1)),r("div",cn,[(_(!0),b(I,null,Z(Ce.value,(l,C)=>(_(),b("div",{key:C,class:"rx-herb-cell"},[r("span",fn,f(l.name)+" ("+f(l.dosage)+"克)",1),r("span",gn,f(ia(l.dosage))+"克",1)]))),128))])]),r("div",vn,[r("p",null,"服法:"+f(da.value),1),bt.value?(_(),b("p",bn,"医嘱:"+f(bt.value),1)):y("",!0),yt.value?(_(),b("p",yn,"备注:"+f(yt.value),1)):y("",!0),xt.value?(_(),b("p",xn," 药房备注:"+f(xt.value),1)):y("",!0),kt.value?(_(),b("p",kn," 出丸:"+f(kt.value),1)):y("",!0)]),r("div",Vn,[r("div",hn,[r("div",wn,[e[127]||(e[127]=r("div",{class:"rx-bot-label"},"医师",-1)),r("div",Nn,[g.value.doctor_signature?(_(),b("img",{key:0,src:g.value.doctor_signature,alt:"医师签名",class:"rx-bot-sign-img"},null,8,Sn)):y("",!0),r("div",Cn,f(g.value.doctor_name||"—"),1)])]),r("div",Pn,[e[128]||(e[128]=r("span",{class:"rx-bot-meta-key"},"类型:",-1)),r("span",$n,f(ua.value),1)]),r("div",Un,[e[129]||(e[129]=r("span",{class:"rx-bot-meta-key"},"天数:",-1)),r("span",Dn,f(g.value.dose_count||"—")+"剂",1)]),r("div",Rn,[e[130]||(e[130]=r("span",{class:"rx-bot-meta-key"},"单剂量:",-1)),r("span",Tn,f(ra.value)+"克",1)])])])],512)):y("",!0),g.value&&(g.value.audit_by_name||g.value.audit_remark)?(_(),b("div",En,[g.value.audit_by_name?(_(),b("div",On,[c(" 审核人:"+f(g.value.audit_by_name)+" ",1),g.value.audit_time?(_(),b("span",An,f(Ue(g.value.audit_time)),1)):y("",!0)])):y("",!0),g.value.audit_remark?(_(),b("div",Ln,"审核意见:"+f(g.value.audit_remark),1)):y("",!0)])):y("",!0)])),[[Ee,Fe.value]]):(_(),k(L,{key:1,ref_key:"formRef",ref:J,model:n,rules:va,"label-width":"120px"},{default:s(()=>[D.value==="edit"&&Number(n.is_system_auto)===1?(_(),k(oe,{key:0,type:"warning",closable:!1,"show-icon":"",class:"mb-4",title:"本处方为系统自动生成(如挂号完成),默认无药材配方,请补充药材与诊断等信息后再保存。"})):y("",!0),D.value==="edit"?(_(),k(oe,{key:1,type:"info",closable:!1,"show-icon":"",class:"mb-4",title:"保存修改后,该处方将重新进入「待审核」,需审核人员再次通过后方可生效。"})):y("",!0),D.value==="edit"&&Number(n.audit_status)===2?(_(),k(oe,{key:2,type:"error",closable:!1,"show-icon":"",class:"mb-4"},{title:s(()=>[...e[131]||(e[131]=[c("当前消费者处方为「已驳回」",-1)])]),default:s(()=>[r("div",Fn," 保存修改后将清除驳回并变为「待审核」。"+f(n.audit_remark?`上次意见:${n.audit_remark}`:""),1)]),_:1})):y("",!0),D.value==="edit"&&Number(n.business_prescription_audit_rejected)===1&&Number(n.audit_status)===1?(_(),k(oe,{key:3,type:"warning",closable:!1,"show-icon":"",class:"mb-4"},{title:s(()=>[...e[132]||(e[132]=[c("业务订单侧「处方审核」已驳回",-1)])]),default:s(()=>[e[133]||(e[133]=r("div",{class:"text-sm mt-1"}," 消费者处方仍为「已通过」;您修改并保存后,将重置关联业务订单的处方/支付单审核为「待审」,请在「处方业务订单」中继续处理。 ",-1)),String(n.business_prescription_audit_remark||"").trim()?(_(),b("div",In," 驳回意见:"+f(n.business_prescription_audit_remark),1)):y("",!0)]),_:1})):y("",!0),D.value==="edit"&&ft.value?(_(),k(oe,{key:4,type:"warning",closable:!1,"show-icon":"",class:"mb-4",title:ft.value},null,8,["title"])):y("",!0),Number(n.diagnosis_id)>0?(_(),b("div",zn,[a(x,{type:"primary",size:"small",onClick:ga},{default:s(()=>[...e[134]||(e[134]=[c(" 查看患者诊单详情 ",-1)])]),_:1}),r("span",jn,"关联诊单 #"+f(n.diagnosis_id),1)])):y("",!0),a(W,{gutter:20},{default:s(()=>[a(h,{span:12},{default:s(()=>[a(d,{label:"患者姓名",prop:"patient_name"},{default:s(()=>[a(p,{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}),a(h,{span:12},{default:s(()=>[a(d,{label:"门诊号",prop:"visit_no"},{default:s(()=>[a(p,{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}),a(W,{gutter:20},{default:s(()=>[a(h,{span:8},{default:s(()=>[a(d,{label:"性别",prop:"gender"},{default:s(()=>[a(u,{modelValue:n.gender,"onUpdate:modelValue":e[11]||(e[11]=l=>n.gender=l)},{default:s(()=>[a(G,{label:1},{default:s(()=>[...e[135]||(e[135]=[c("男",-1)])]),_:1}),a(G,{label:0},{default:s(()=>[...e[136]||(e[136]=[c("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),a(h,{span:8},{default:s(()=>[a(d,{label:"年龄",prop:"age"},{default:s(()=>[a(q,{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}),a(h,{span:8},{default:s(()=>[a(d,{label:"处方日期",prop:"prescription_date"},{default:s(()=>[a(nl,{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}),a(W,{gutter:20},{default:s(()=>[a(h,{span:12},{default:s(()=>[a(d,{label:"面象",prop:"tongue"},{default:s(()=>[a(p,{modelValue:n.tongue,"onUpdate:modelValue":e[14]||(e[14]=l=>n.tongue=l),placeholder:"请输入面象"},null,8,["modelValue"])]),_:1})]),_:1}),a(h,{span:12},{default:s(()=>[a(d,{label:"舌象",prop:"tongue_image"},{default:s(()=>[a(p,{modelValue:n.tongue_image,"onUpdate:modelValue":e[15]||(e[15]=l=>n.tongue_image=l),placeholder:"请输入舌象"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),a(W,{gutter:20},{default:s(()=>[a(h,{span:12},{default:s(()=>[a(d,{label:"脉象",prop:"pulse"},{default:s(()=>[a(p,{modelValue:n.pulse,"onUpdate:modelValue":e[16]||(e[16]=l=>n.pulse=l),placeholder:"请输入脉象"},null,8,["modelValue"])]),_:1})]),_:1}),a(h,{span:12},{default:s(()=>[a(d,{label:"脉象详情",prop:"pulse_condition"},{default:s(()=>[a(p,{modelValue:n.pulse_condition,"onUpdate:modelValue":e[17]||(e[17]=l=>n.pulse_condition=l),placeholder:"请输入脉象详情"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),a(d,{label:"临床诊断",prop:"clinical_diagnosis"},{default:s(()=>[a(p,{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}),a(d,{label:"药材配方",prop:"herbs",required:""},{default:s(()=>[r("div",Mn,[r("div",Hn,[a(x,{type:"primary",size:"small",onClick:Qa},{default:s(()=>[...e[137]||(e[137]=[c(" 添加药材 ",-1)])]),_:1}),a(x,{type:"success",size:"small",onClick:ja},{default:s(()=>[...e[138]||(e[138]=[c(" 从处方库导入 ",-1)])]),_:1})]),r("div",Wn,[a(x,{type:"warning",size:"small",plain:"",icon:A(ds),onClick:Ja},{default:s(()=>[...e[139]||(e[139]=[c(" 导入药方 ",-1)])]),_:1},8,["icon"]),e[140]||(e[140]=r("span",{class:"text-xs text-gray-500 ml-2 align-middle"}," 粘贴文本解析药名与剂量;须与药品库名称完全一致才录入 ",-1))]),a(F,{data:n.herbs,class:"mt-2",border:""},{default:s(()=>[a(P,{label:"序号",type:"index",width:"60"}),a(P,{label:"药材名称","min-width":"220"},{default:s(({row:l})=>[a(rs,{modelValue:l.name,"onUpdate:modelValue":C=>l.name=C,class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),a(P,{label:"剂量(克)","min-width":"120"},{default:s(({row:l,$index:C})=>[a(q,{modelValue:l.dosage,"onUpdate:modelValue":ke=>l.dosage=ke,min:0,precision:1,step:.5,placeholder:"剂量",class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),a(P,{label:"操作",width:"80"},{default:s(({$index:l})=>[a(x,{type:"danger",link:"",onClick:C=>Xa(l)},{default:s(()=>[...e[141]||(e[141]=[c(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"]),D.value==="edit"?E((_(),k(oe,{key:0,type:"warning",closable:!1,"show-icon":"",class:"mt-3"},{title:s(()=>[...e[142]||(e[142]=[c("业务订单要求(请与本处方保持一致)",-1)])]),default:s(()=>[r("div",qn,[S.orderNo||S.medicationDays!=null||S.remarkAssistant?(_(),b(I,{key:0},[S.orderNo?(_(),b("p",Yn,[e[143]||(e[143]=c(" 最近关联订单(按创建倒序): ",-1)),r("span",Bn,f(S.orderNo),1)])):y("",!0),r("p",Gn,[e[144]||(e[144]=r("span",{class:"font-semibold"},"服用天数(订单)",-1)),c(": "+f(S.medicationDays!=null?`${S.medicationDays} 天`:"— 订单未填写"),1)]),r("p",null,[e[145]||(e[145]=r("span",{class:"font-semibold"},"医助备注(订单)",-1)),e[146]||(e[146]=c(": ",-1)),r("span",Jn,f(S.remarkAssistant||"— 无"),1)])],64)):S.loading?y("",!0):(_(),b("p",Kn,[...e[147]||(e[147]=[c(" 当前处方暂无关联业务订单,或您无订单列表权限;若有订单,将在此处显示订单内 ",-1),r("span",{class:"font-semibold"},"服用天数",-1),c("与 ",-1),r("span",{class:"font-semibold"},"医助备注",-1),c("。 ",-1)])]))])]),_:1})),[[Ee,S.loading]]):y("",!0)])]),_:1}),a(W,{gutter:20},{default:s(()=>[a(h,{span:8},{default:s(()=>[a(d,{label:"剂数",prop:"dose_count"},{default:s(()=>[a(q,{modelValue:n.dose_count,"onUpdate:modelValue":e[19]||(e[19]=l=>n.dose_count=l),min:1,placeholder:"剂数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),a(h,{span:8},{default:s(()=>[a(d,{label:"剂量单位",prop:"dose_unit"},{default:s(()=>[a(V,{modelValue:n.dose_unit,"onUpdate:modelValue":e[20]||(e[20]=l=>n.dose_unit=l),placeholder:"请选择",class:"w-full"},{default:s(()=>[a(i,{label:"剂",value:"剂"}),a(i,{label:"丸",value:"丸"}),a(i,{label:"袋",value:"袋"}),a(i,{label:"盒",value:"盒"}),a(i,{label:"瓶",value:"瓶"}),a(i,{label:"膏",value:"膏"}),a(i,{label:"贴",value:"贴"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),a(h,{span:8},{default:s(()=>[a(d,{label:"处方类型",prop:"prescription_type"},{default:s(()=>[a(V,{modelValue:n.prescription_type,"onUpdate:modelValue":e[21]||(e[21]=l=>n.prescription_type=l),placeholder:"请选择处方类型",class:"w-full"},{default:s(()=>[a(i,{label:"浓缩水丸",value:"浓缩水丸"}),a(i,{label:"饮片",value:"饮片"}),a(i,{label:"颗粒",value:"颗粒"}),a(i,{label:"丸剂",value:"丸剂"}),a(i,{label:"散剂",value:"散剂"}),a(i,{label:"膏方",value:"膏方"}),a(i,{label:"汤剂",value:"汤剂"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),a(h,{span:8},{default:s(()=>[a(d,{label:"用量",prop:"dosage_amount"},{default:s(()=>[n.prescription_type==="浓缩水丸"?(_(),k(V,{key:0,modelValue:n.dosage_amount,"onUpdate:modelValue":e[22]||(e[22]=l=>n.dosage_amount=l),placeholder:"请选择用量",class:"w-full"},{default:s(()=>[a(i,{label:"1g",value:1}),a(i,{label:"2g",value:2}),a(i,{label:"3g",value:3}),a(i,{label:"4g",value:4}),a(i,{label:"5g",value:5}),a(i,{label:"6g",value:6}),a(i,{label:"7g",value:7}),a(i,{label:"8g",value:8}),a(i,{label:"9g",value:9}),a(i,{label:"10g",value:10})]),_:1},8,["modelValue"])):n.prescription_type==="饮片"?(_(),k(V,{key:1,modelValue:n.dosage_amount,"onUpdate:modelValue":e[23]||(e[23]=l=>n.dosage_amount=l),placeholder:"请选择用量",class:"w-full"},{default:s(()=>[a(i,{label:"50ml",value:50}),a(i,{label:"100ml",value:100}),a(i,{label:"120ml",value:120}),a(i,{label:"150ml",value:150}),a(i,{label:"180ml",value:180}),a(i,{label:"200ml",value:200}),a(i,{label:"250ml",value:250})]),_:1},8,["modelValue"])):(_(),k(q,{key:2,modelValue:n.dosage_amount,"onUpdate:modelValue":e[24]||(e[24]=l=>n.dosage_amount=l),min:0,precision:2,class:"w-full"},null,8,["modelValue"]))]),_:1})]),_:1}),n.prescription_type==="浓缩水丸"?(_(),k(h,{key:0,span:8},{default:s(()=>[a(d,{label:" ",prop:"dosage_bag_count","label-width":"12px"},{default:s(()=>[a(V,{modelValue:n.dosage_bag_count,"onUpdate:modelValue":e[25]||(e[25]=l=>n.dosage_bag_count=l),placeholder:"请选择袋数",class:"w-[120px]"},{default:s(()=>[a(i,{label:"1袋",value:1}),a(i,{label:"2袋",value:2}),a(i,{label:"3袋",value:3}),a(i,{label:"4袋",value:4}),a(i,{label:"5袋",value:5})]),_:1},8,["modelValue"])]),_:1})]),_:1})):y("",!0),n.prescription_type==="饮片"?(_(),k(h,{key:1,span:8},{default:s(()=>[a(d,{label:"是否代煎",prop:"need_decoction"},{default:s(()=>[a(u,{modelValue:n.need_decoction,"onUpdate:modelValue":e[26]||(e[26]=l=>n.need_decoction=l)},{default:s(()=>[a(G,{label:!0},{default:s(()=>[...e[148]||(e[148]=[c("代煎",-1)])]),_:1}),a(G,{label:!1},{default:s(()=>[...e[149]||(e[149]=[c("不代煎",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})):y("",!0),n.prescription_type==="饮片"?(_(),k(h,{key:2,span:8},{default:s(()=>[a(d,{label:"每贴出包数",prop:"bags_per_dose"},{default:s(()=>[a(V,{modelValue:n.bags_per_dose,"onUpdate:modelValue":e[27]||(e[27]=l=>n.bags_per_dose=l),placeholder:"请选择",class:"w-full"},{default:s(()=>[a(i,{label:"1包",value:1}),a(i,{label:"2包",value:2}),a(i,{label:"3包",value:3}),a(i,{label:"4包",value:4}),a(i,{label:"5包",value:5}),a(i,{label:"6包",value:6}),a(i,{label:"7包",value:7}),a(i,{label:"8包",value:8}),a(i,{label:"9包",value:9})]),_:1},8,["modelValue"])]),_:1})]),_:1})):y("",!0),a(h,{span:8},{default:s(()=>[a(d,{label:"每天几次",prop:"times_per_day"},{default:s(()=>[a(q,{modelValue:n.times_per_day,"onUpdate:modelValue":e[28]||(e[28]=l=>n.times_per_day=l),min:1,max:6,class:"!w-full",placeholder:"每天服用次数"},null,8,["modelValue"])]),_:1})]),_:1}),a(h,{span:8},{default:s(()=>[a(d,{label:"服用天数",prop:"usage_days"},{default:s(()=>[a(q,{modelValue:n.usage_days,"onUpdate:modelValue":e[29]||(e[29]=l=>n.usage_days=l),min:1,max:365,placeholder:"服用天数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),a(d,{label:"用法",prop:"usage_instruction"},{default:s(()=>[a(p,{modelValue:n.usage_instruction,"onUpdate:modelValue":e[30]||(e[30]=l=>n.usage_instruction=l),placeholder:"例如:水煎服,一日二次",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),a(W,{gutter:20},{default:s(()=>[a(h,{span:12},{default:s(()=>[a(d,{label:"服用时间",prop:"usage_time"},{default:s(()=>[a(V,{modelValue:n.usage_time,"onUpdate:modelValue":e[31]||(e[31]=l=>n.usage_time=l),placeholder:"请选择服用时间",class:"w-full"},{default:s(()=>[a(i,{label:"饭前",value:"饭前"}),a(i,{label:"饭后",value:"饭后"}),a(i,{label:"饭中",value:"饭中"}),a(i,{label:"空腹",value:"空腹"}),a(i,{label:"睡前",value:"睡前"}),a(i,{label:"晨起",value:"晨起"}),a(i,{label:"随时",value:"随时"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),a(h,{span:12},{default:s(()=>[a(d,{label:"服用方式",prop:"usage_way"},{default:s(()=>[a(V,{modelValue:n.usage_way,"onUpdate:modelValue":e[32]||(e[32]=l=>n.usage_way=l),placeholder:"请选择服用方式",class:"w-full"},{default:s(()=>[a(i,{label:"温水送服",value:"温水送服"}),a(i,{label:"开水冲服",value:"开水冲服"}),a(i,{label:"黄酒送服",value:"黄酒送服"}),a(i,{label:"淡盐水送服",value:"淡盐水送服"}),a(i,{label:"米汤送服",value:"米汤送服"}),a(i,{label:"嚼服",value:"嚼服"}),a(i,{label:"含化",value:"含化"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),a(d,{label:"忌口",prop:"dietary_taboo"},{default:s(()=>[a(V,{modelValue:n.dietary_taboo,"onUpdate:modelValue":e[33]||(e[33]=l=>n.dietary_taboo=l),multiple:"",placeholder:"请选择忌口内容(可多选)",class:"w-full"},{default:s(()=>[a(i,{label:"辛辣食物",value:"辛辣食物"}),a(i,{label:"生冷食物",value:"生冷食物"}),a(i,{label:"油腻食物",value:"油腻食物"}),a(i,{label:"海鲜",value:"海鲜"}),a(i,{label:"牛羊肉",value:"牛羊肉"}),a(i,{label:"鸡蛋",value:"鸡蛋"}),a(i,{label:"豆制品",value:"豆制品"}),a(i,{label:"酒类",value:"酒类"}),a(i,{label:"浓茶",value:"浓茶"}),a(i,{label:"咖啡",value:"咖啡"}),a(i,{label:"烟草",value:"烟草"}),a(i,{label:"萝卜",value:"萝卜"})]),_:1},8,["modelValue"])]),_:1}),a(d,{label:"其他说明",prop:"usage_notes"},{default:s(()=>[a(p,{modelValue:n.usage_notes,"onUpdate:modelValue":e[34]||(e[34]=l=>n.usage_notes=l),type:"textarea",rows:2,placeholder:"其他服用注意事项",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),a(d,{label:"医师姓名",prop:"doctor_name"},{default:s(()=>[a(p,{modelValue:n.doctor_name,"onUpdate:modelValue":e[35]||(e[35]=l=>n.doctor_name=l),placeholder:"请输入医师姓名"},null,8,["modelValue"])]),_:1}),a(d,{label:"医师签名",prop:"doctor_signature",required:""},{default:s(()=>[r("div",Qn,[r("canvas",{ref_key:"signatureCanvasRef",ref:H,class:"signature-canvas",onPointerdown:Ve(Ea,["prevent"]),onPointermove:Ve(Oa,["prevent"]),onPointerup:Ve(Pt,["prevent"]),onPointercancel:Ve(Pt,["prevent"])},null,544),r("div",Xn,[a(x,{size:"small",onClick:Aa},{default:s(()=>[...e[150]||(e[150]=[c("清空签名",-1)])]),_:1})])]),e[151]||(e[151]=r("div",{class:"text-xs text-amber-600 mt-1"},"* 必填,请在框内手写医师签名",-1))]),_:1})]),_:1},8,["model"]))]),_:1},8,["modelValue","title","size"]),a(xe,{modelValue:de.value,"onUpdate:modelValue":e[43]||(e[43]=l=>de.value=l),title:"修正姓名、性别与手机号",width:"440px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:jt},{footer:s(()=>[a(x,{onClick:e[42]||(e[42]=l=>de.value=!1)},{default:s(()=>[...e[157]||(e[157]=[c("取消",-1)])]),_:1}),a(x,{type:"primary",loading:Ie.value,onClick:Mt},{default:s(()=>[...e[158]||(e[158]=[c(" 保存 ",-1)])]),_:1},8,["loading"])]),default:s(()=>[a(L,{ref_key:"patchPatientFormRef",ref:ze,model:$,rules:It,"label-width":"88px"},{default:s(()=>[a(d,{label:"处方编号"},{default:s(()=>[r("span",Zn,"#"+f($.id||"—"),1)]),_:1}),a(d,{label:"患者姓名",prop:"patient_name"},{default:s(()=>[a(p,{modelValue:$.patient_name,"onUpdate:modelValue":e[39]||(e[39]=l=>$.patient_name=l),maxlength:"50","show-word-limit":"",placeholder:"处方笺展示姓名"},null,8,["modelValue"])]),_:1}),a(d,{label:"性别",prop:"gender"},{default:s(()=>[a(u,{modelValue:$.gender,"onUpdate:modelValue":e[40]||(e[40]=l=>$.gender=l)},{default:s(()=>[a(G,{label:1},{default:s(()=>[...e[155]||(e[155]=[c("男",-1)])]),_:1}),a(G,{label:0},{default:s(()=>[...e[156]||(e[156]=[c("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(d,{label:"手机号",prop:"phone"},{default:s(()=>[a(p,{modelValue:$.phone,"onUpdate:modelValue":e[41]||(e[41]=l=>$.phone=l),maxlength:"20",placeholder:"处方笺展示手机号"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),e[159]||(e[159]=r("p",{class:"text-xs text-gray-500 -mt-2 mb-2"}," 仅更新处方表 patient_name、gender、phone,不改变审核状态;记录写入业务订单操作日志(有关联订单时可在此订单日志中查看)。 ",-1))]),_:1},8,["modelValue"]),a(xe,{modelValue:pe.value,"onUpdate:modelValue":e[61]||(e[61]=l=>pe.value=l),title:"创建业务订单",width:"940px",top:"4vh","close-on-click-modal":!1,onClosed:_t,class:"create-order-dialog"},{footer:s(()=>[r("div",So,[r("div",Co,[r("span",Po,"第 "+f(R.value+1)+" / 3 步",1),R.value===2&&U.value>0?(_(),b("span",$o," 订单金额与关联支付单合计须 ≥ ¥"+f(ne(U.value)),1)):y("",!0)]),r("div",Uo,[a(x,{size:"large",onClick:e[60]||(e[60]=l=>pe.value=!1)},{default:s(()=>[...e[168]||(e[168]=[c("取消",-1)])]),_:1}),R.value>0?(_(),k(x,{key:0,size:"large",onClick:ta},{default:s(()=>[...e[169]||(e[169]=[c("上一步",-1)])]),_:1})):y("",!0),R.value<2?(_(),k(x,{key:1,type:"primary",size:"large",onClick:aa},{default:s(()=>[...e[170]||(e[170]=[c(" 下一步 ",-1)])]),_:1})):y("",!0),R.value===2?(_(),k(x,{key:2,type:"primary",size:"large",loading:je.value,onClick:la},{default:s(()=>[...e[171]||(e[171]=[c(" 创建业务订单 ",-1)])]),_:1},8,["loading"])):y("",!0)])])]),default:s(()=>[r("div",eo,[z.value?(_(),b("div",to,[r("div",ao,[e[160]||(e[160]=r("span",{class:"create-order-rx-card__badge"},"关联处方",-1)),r("div",lo,[r("span",so,"#"+f(z.value.id),1),z.value.sn?(_(),b("span",no,f(z.value.sn),1)):y("",!0),r("span",oo,f(z.value.patient_name||"—"),1)])])])):y("",!0),a(rl,{active:R.value,"finish-status":"success","align-center":"",class:"create-order-steps"},{default:s(()=>[a(nt,{title:"患者与收货",description:"诊单与物流地址"}),a(nt,{title:"服务与支付单",description:"套餐与关联收款"}),a(nt,{title:"金额与确认",description:"费用与备注"})]),_:1},8,["active"]),r("p",ro,f(Ht.value),1),a(L,{ref_key:"createOrderFormRef",ref:me,model:m,rules:Kt.value,"label-width":"108px",class:"create-order-form"},{default:s(()=>[E(r("div",io,[a(W,{gutter:20},{default:s(()=>[a(h,{span:24},{default:s(()=>[a(d,{label:"诊单患者",prop:"patient_id"},{default:s(()=>[a(V,{modelValue:m.patient_id,"onUpdate:modelValue":e[44]||(e[44]=l=>m.patient_id=l),class:"w-full",placeholder:"搜索姓名/手机/身份证",filterable:"",remote:"","remote-method":Zt,loading:Me.value,onChange:ea},{default:s(()=>[(_(!0),b(I,null,Z(B.value,l=>(_(),k(i,{key:l.id,label:`${l.patient_name} (${l.phone||"无手机"})`,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1})]),_:1}),a(h,{span:12},{default:s(()=>[a(d,{label:"收货人",prop:"recipient_name"},{default:s(()=>[a(p,{modelValue:m.recipient_name,"onUpdate:modelValue":e[45]||(e[45]=l=>m.recipient_name=l),placeholder:"姓名",maxlength:"50"},null,8,["modelValue"])]),_:1})]),_:1}),a(h,{span:12},{default:s(()=>[a(d,{label:"收货手机",prop:"recipient_phone"},{default:s(()=>[a(p,{modelValue:m.recipient_phone,"onUpdate:modelValue":e[46]||(e[46]=l=>m.recipient_phone=l),placeholder:"物流联系",maxlength:"20"},null,8,["modelValue"])]),_:1})]),_:1}),a(h,{span:24},{default:s(()=>[a(d,{label:"省市区",prop:"region"},{default:s(()=>[a(il,{modelValue:m.region,"onUpdate:modelValue":e[47]||(e[47]=l=>m.region=l),options:_e.value,props:{value:"name",label:"name",children:"children",emitPath:!0,checkStrictly:!1},placeholder:"省 / 市 / 区",clearable:"",filterable:"",class:"w-full",onChange:Gt},null,8,["modelValue","options"])]),_:1})]),_:1}),a(h,{span:24},{default:s(()=>[a(d,{label:"详细地址",prop:"shipping_address"},{default:s(()=>[a(p,{modelValue:m.shipping_address,"onUpdate:modelValue":e[48]||(e[48]=l=>m.shipping_address=l),type:"textarea",rows:3,placeholder:"街道、小区、门牌号等详细地址",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[rt,R.value===0]]),E(r("div",uo,[a(W,{gutter:20},{default:s(()=>[a(h,{xs:24,sm:8},{default:s(()=>[a(d,{label:"复诊"},{default:s(()=>[a(ul,{modelValue:m.is_follow_up,"onUpdate:modelValue":e[49]||(e[49]=l=>m.is_follow_up=l),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1}),a(h,{xs:24,sm:8},{default:s(()=>[a(d,{label:"服用天数",class:"create-order-form-item--inline-num"},{default:s(()=>[r("div",po,[a(q,{modelValue:m.medication_days,"onUpdate:modelValue":e[50]||(e[50]=l=>m.medication_days=l),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[161]||(e[161]=r("span",{class:"create-order-unit-suffix"},"天",-1))])]),_:1})]),_:1}),a(h,{xs:24,sm:8},{default:s(()=>[a(d,{label:"上次医生"},{default:s(()=>[a(p,{modelValue:m.prev_staff,"onUpdate:modelValue":e[51]||(e[51]=l=>m.prev_staff=l),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),a(h,{span:12},{default:s(()=>[a(d,{label:"服务渠道"},{default:s(()=>[a(p,{modelValue:m.service_channel,"onUpdate:modelValue":e[52]||(e[52]=l=>m.service_channel=l),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),a(h,{span:12},{default:s(()=>[a(d,{label:"服务套餐"},{default:s(()=>[a(V,{modelValue:m.service_package,"onUpdate:modelValue":e[53]||(e[53]=l=>m.service_package=l),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"请选择服务套餐",clearable:"",class:"w-full"},{default:s(()=>[(_(!0),b(I,null,Z(We.value,l=>(_(),k(i,{key:l.value,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),a(h,{span:24},{default:s(()=>[a(d,{label:"关联支付单",prop:"pay_order_ids"},{default:s(()=>[a(V,{modelValue:m.pay_order_ids,"onUpdate:modelValue":e[54]||(e[54]=l=>m.pay_order_ids=l),class:"w-full",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:U.value>0?"请至少选择一笔本诊单支付单(已开启门槛)":"多选本诊单支付单(可选)",loading:He.value},{default:s(()=>[(_(!0),b(I,null,Z(se.value,l=>(_(),k(i,{key:l.id,label:`${l.order_no} · ¥${l.amount} · ${mt(l.order_type)}`,value:l.id,class:"!h-auto py-1.5"},{default:s(()=>[r("div",mo,[r("div",_o,[r("span",co,f(l.order_no),1),r("span",fo,"¥"+f(l.amount),1)]),r("div",go,[r("span",vo,[c(f(mt(l.order_type)),1),l.remark?(_(),b(I,{key:0},[c(" · "+f(l.remark),1)],64)):y("",!0)]),r("span",bo,f(String(l.create_time||"").substring(0,16)),1)])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","loading"]),r("div",yo,[U.value>0?(_(),b(I,{key:0},[r("span",xo,"当前已开启关联支付门槛(¥"+f(ne(U.value))+"),须至少选择一笔支付单。",1),e[162]||(e[162]=r("span",{class:"mx-1"},null,-1))],64)):y("",!0),e[164]||(e[164]=c(" 主管/本诊单医助可见全部支付单;否则仅本人收款单。已被占用的支付单不列出。 ",-1)),a(dl,{content:"主管或本诊单医助可见该诊单全部支付单(待支付/已支付),否则仅本人创建的收款单。已被其他有效业务订单占用的支付单不会出现在此列表。",placement:"top"},{default:s(()=>[...e[163]||(e[163]=[r("span",{class:"text-primary cursor-help ml-0.5"},"详情",-1)])]),_:1})])]),_:1})]),_:1})]),_:1})],512),[[rt,R.value===1]]),E(r("div",ko,[r("div",{class:bs(["create-order-deposit-bar",qe.value>=U.value?"is-ok":"is-warn"])},[r("div",Vo,[e[165]||(e[165]=r("span",{class:"create-order-deposit-bar__label"},"定金门槛",-1)),r("strong",null,"¥"+f(ne(U.value)),1),r("span",ho,f(U.value>0?"须 ≥ 此值":"未设置"),1)]),e[167]||(e[167]=r("div",{class:"create-order-deposit-bar__sep"},null,-1)),r("div",wo,[e[166]||(e[166]=r("span",{class:"create-order-deposit-bar__label"},"已选收款",-1)),r("strong",null,"¥"+f(ne(qe.value)),1),r("span",No,f(qe.value>=U.value?"已达标":"未达标"),1)])],2),a(W,{gutter:20,class:"create-order-step-panel__row-after-bar"},{default:s(()=>[a(h,{span:12},{default:s(()=>[a(d,{label:"费用类别",prop:"fee_type"},{default:s(()=>[a(V,{modelValue:m.fee_type,"onUpdate:modelValue":e[55]||(e[55]=l=>m.fee_type=l),placeholder:"请选择",class:"w-full"},{default:s(()=>[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})]),_:1},8,["modelValue"])]),_:1})]),_:1}),a(h,{span:12},{default:s(()=>[a(d,{label:"总金额",prop:"amount"},{default:s(()=>[a(q,{modelValue:m.amount,"onUpdate:modelValue":e[56]||(e[56]=l=>m.amount=l),min:Jt.value,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"元"},null,8,["modelValue","min"])]),_:1})]),_:1}),E((_(),k(h,{span:12},{default:s(()=>[a(d,{label:"内部成本"},{default:s(()=>[a(q,{modelValue:m.internal_cost,"onUpdate:modelValue":e[57]||(e[57]=l=>m.internal_cost=l),min:0,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"财务可见"},null,8,["modelValue"])]),_:1})]),_:1})),[[j,["finance.account_log/lists"]]]),a(h,{span:24},{default:s(()=>[E((_(),k(d,{label:"药房备注"},{default:s(()=>[a(p,{modelValue:m.remark_extra,"onUpdate:modelValue":e[58]||(e[58]=l=>m.remark_extra=l),type:"textarea",rows:3,placeholder:"选填,对内说明",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})),[[j,["tcm.prescriptionOrder/editRemarkExtra"]]]),a(d,{label:"医助备注"},{default:s(()=>[a(p,{modelValue:m.remark_assistant,"onUpdate:modelValue":e[59]||(e[59]=l=>m.remark_assistant=l),type:"textarea",rows:3,placeholder:"选填,医助对内说明",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[rt,R.value===2]])]),_:1},8,["model","rules"])])]),_:1},8,["modelValue"]),a(xe,{modelValue:ge.value,"onUpdate:modelValue":e[65]||(e[65]=l=>ge.value=l),title:"从处方库导入",width:"800px","close-on-click-modal":!1},{default:s(()=>[r("div",Do,[a(p,{modelValue:De.value,"onUpdate:modelValue":e[62]||(e[62]=l=>De.value=l),placeholder:"请输入处方名称搜索",clearable:"",onKeyup:ot(et,["enter"]),onClear:et},{append:s(()=>[a(x,{icon:A(ps),onClick:et},null,8,["icon"])]),_:1},8,["modelValue"])]),E((_(),k(F,{data:Qe.value,height:"400",style:{cursor:"pointer"},onRowClick:Ma},{default:s(()=>[a(P,{label:"处方名称",prop:"prescription_name","min-width":"150","show-overflow-tooltip":""}),a(P,{label:"药材数量",width:"100"},{default:s(({row:l})=>{var C;return[c(f(((C=l.herbs)==null?void 0:C.length)||0)+"味 ",1)]}),_:1}),a(P,{label:"药材明细","min-width":"300","show-overflow-tooltip":""},{default:s(({row:l})=>[l.herbs&&l.herbs.length>0?(_(),b("span",Ro,f(l.herbs.map(C=>`${C.name} ${C.dosage}g`).join("、")),1)):(_(),b("span",To,"暂无药材"))]),_:1}),a(P,{label:"创建人",prop:"creator_name",width:"100"}),a(P,{label:"操作",width:"100",fixed:"right"},{default:s(({row:l})=>[a(x,{type:"primary",link:"",onClick:Ve(C=>Et(l),["stop"])},{default:s(()=>[...e[172]||(e[172]=[c("导入",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[Ee,Ke.value]]),r("div",Eo,[a(pl,{"current-page":ve.value,"onUpdate:currentPage":e[63]||(e[63]=l=>ve.value=l),"page-size":Xe.value,"onUpdate:pageSize":e[64]||(e[64]=l=>Xe.value=l),total:Ze.value,"page-sizes":[10,15,20,50],layout:"total, sizes, prev, pager, next",onCurrentChange:Re,onSizeChange:Re},null,8,["current-page","page-size","total"])])]),_:1},8,["modelValue"]),a(xe,{modelValue:be.value,"onUpdate:modelValue":e[69]||(e[69]=l=>be.value=l),title:"导入药方(识别药材)",width:"560px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:e[70]||(e[70]=l=>ye.value="")},{footer:s(()=>[a(x,{onClick:e[68]||(e[68]=l=>be.value=!1)},{default:s(()=>[...e[176]||(e[176]=[c("取消",-1)])]),_:1}),a(x,{type:"primary",loading:at.value,onClick:Ka},{default:s(()=>[...e[177]||(e[177]=[c(" 识别并导入 ",-1)])]),_:1},8,["loading"])]),default:s(()=>[e[178]||(e[178]=r("p",{class:"text-gray-500 text-sm mb-2 leading-relaxed"}," 粘贴整张药方文本,系统按「药名 + 剂量」解析;药名须与药品库中名称完全一致才会录入,否则跳过。支持顿号/逗号/换行分隔;单行可用空格分味(如「黄芪15g 白术10g」);「黄芪、党参各10克」等同剂量写法亦可识别。 ",-1)),a(p,{modelValue:ye.value,"onUpdate:modelValue":e[66]||(e[66]=l=>ye.value=l),type:"textarea",rows:10,placeholder:`示例:
|
||
黄芪15 党参12 茯苓10
|
||
柴胡10g、黄芩10、半夏12克
|
||
黄芪、白术、茯苓各15克`},null,8,["modelValue"]),r("div",Oo,[e[175]||(e[175]=r("span",{class:"text-sm text-gray-600 shrink-0"},"导入方式",-1)),a(u,{modelValue:tt.value,"onUpdate:modelValue":e[67]||(e[67]=l=>tt.value=l)},{default:s(()=>[a(G,{label:"replace"},{default:s(()=>[...e[173]||(e[173]=[c("覆盖现有药材",-1)])]),_:1}),a(G,{label:"append"},{default:s(()=>[...e[174]||(e[174]=[c("追加到末尾",-1)])]),_:1})]),_:1},8,["modelValue"])])]),_:1},8,["modelValue"]),a(xe,{modelValue:ue.value,"onUpdate:modelValue":e[75]||(e[75]=l=>ue.value=l),title:"处方审核",width:"480px","destroy-on-close":"",onClosed:e[76]||(e[76]=l=>le.value="")},{footer:s(()=>[a(x,{onClick:e[72]||(e[72]=l=>ue.value=!1)},{default:s(()=>[...e[179]||(e[179]=[c("取消",-1)])]),_:1}),a(x,{type:"primary",loading:we.value,onClick:e[73]||(e[73]=l=>Dt("approve"))},{default:s(()=>[...e[180]||(e[180]=[c("审核通过",-1)])]),_:1},8,["loading"]),a(x,{type:"danger",loading:we.value,onClick:e[74]||(e[74]=l=>Dt("reject"))},{default:s(()=>[...e[181]||(e[181]=[c("驳回处方",-1)])]),_:1},8,["loading"])]),default:s(()=>[e[182]||(e[182]=r("p",{class:"text-sm text-gray-600 mb-3"}," 通过:处方保持有效。驳回:将同时作废此处方(与诊间「驳回/作废处方」一致)。 ",-1)),a(L,{"label-width":"80px"},{default:s(()=>[a(d,{label:"审核意见"},{default:s(()=>[a(p,{modelValue:le.value,"onUpdate:modelValue":e[71]||(e[71]=l=>le.value=l),type:"textarea",rows:3,maxlength:"500","show-word-limit":"",placeholder:"通过可简要说明;驳回必填"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),a(A(Lt),{ref_key:"diagnosisViewRef",ref:Vt},null,512)])}}}),Ur=ql(Lo,[["__scopeId","data-v-2a9faf2a"]]);export{Ur as default};
|