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