Files
2026-05-14 16:26:27 +08:00

8 lines
81 KiB
JavaScript
Raw Permalink Blame History

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