Files
zyt/server/public/admin/assets/index-CwT2yH6u.js
T
2026-08-24 16:56:37 +08:00

8 lines
86 KiB
JavaScript
Raw 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-JVjFAZno.js","assets/.pnpm-Dwh6tNxD.js","assets/.pnpm-B3v8nGpq.css","assets/tcm-RVDaIW5j.js","assets/index-C9ilrjDr.js","assets/index-D2fz263J.css","assets/perm-3ZlDfnJ_.js","assets/DailyMatrix-ClyiTpYg.js","assets/picker-DYD_beSt.js","assets/index-BM6NmNnG.js","assets/index-B3imPWFk.css","assets/index-DB4KfTa0.js","assets/index.vue_vue_type_script_setup_true_lang-D0KAQf1t.js","assets/index-4fo3NoYp.js","assets/index-D0f1Mn00.css","assets/index-DBhmZUba.js","assets/file-CNQVkxcM.js","assets/index.vue_vue_type_script_setup_true_lang-Cxx3Fcm2.js","assets/usePaging-DOuAwzL9.js","assets/index-BYOmK9R5.css","assets/picker-XZbUgFct.css","assets/DiagnosisTodoList-B1vihU9y.js","assets/DiagnosisTodoList-D0SBmTHG.css","assets/blood-thresholds-CJ1fqMjh.js","assets/DailyMatrix-DCZnxI8i.css","assets/CaseRecordList-tTJqonuB.js","assets/CaseRecordList-Cl-c3q7S.css","assets/CallRecordPanel-DT9mpmDT.js","assets/RecordingPlaybackBlock-3c8TG8YE.js","assets/RecordingVideoPlayer-NZrEWtaq.js","assets/RecordingVideoPlayer-4DegHAwm.css","assets/RecordingPlaybackBlock-B3KYFgvg.css","assets/CallRecordPanel-TsjZtTO8.css","assets/ImChatRecordPanel-BZpb3qXC.js","assets/dayjs-Cbxn44tS.js","assets/im-business-message-parse-CVnz1EnV.js","assets/ImChatRecordPanel-aX8zpWRQ.css","assets/AssignLogPanel-Bwng4Swe.js","assets/AssignLogPanel-DkQMoEkX.css","assets/AppointmentRecordPanel-DENGC1pb.js","assets/doctor-DZ47WohD.js","assets/AppointmentRecordPanel-DC22GDgn.css","assets/NoteTimeline-GQfgsv_b.js","assets/patient-SYRPmtkf.js","assets/NoteTimeline-I2FSxX4s.css","assets/PatientOrderList-IEq2vNFy.js","assets/PrescriptionOrderDetailDrawer-BOwa5E6W.js","assets/prescription-order-utils-B0fYlULc.js","assets/PrescriptionOrderDetailDrawer-DnrTcbh_.css","assets/PatientOrderList-D8-uh2iu.css","assets/index-DU4Km830.js","assets/index-DYoTWNUV.js","assets/medicine-uuzYOmgD.js","assets/index-C_LxAEkS.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/index-CYxzFO2X.js","assets/index-AnyUcdTT.css","assets/index-DV5JwFnL.css","assets/edit-DOd7Lhrw.css","assets/TrackingNoteTimeline-B9T8pFso.css"])))=>i.map(i=>d[i]);
import{o as Tt,W as il,R as ze,ap as rl,be as ul,q as _,r as h,v as t,D as s,s as d,bc as dl,bb as pl,L as f,b9 as ml,b6 as _l,b7 as fl,b8 as ut,u as j,bm as cl,F as I,G as Z,O as c,bn as gl,K as bl,bg as vl,ac as O,bi as yl,bj as xl,bk as Vl,T as b,br as kl,P as v,C as hl,c6 as wl,bz as Sl,bh as Cl,c7 as Nl,c8 as Ul,bf as Pl,J as $l,bp as El,c9 as Dl,aw as we,B as Rl,bt as Al,b_ as Ol,b$ as Ll,ca as zl,ad as dt,I as Tl,a1 as Il,ae as Fl,bA as jl,bs as Ml,cb as Hl,al as ql,ba as Se,M as g,p as Y,n as se,cc as Wl,cd as Bl}from"./.pnpm-Dwh6tNxD.js";import{_ as Yl}from"./index.vue_vue_type_script_setup_true_lang-D0KAQf1t.js";import{u as Gl,c as Kl,i as w,m as Jl,_ as Ql}from"./index-C9ilrjDr.js";import{g as Xl,n as Zl,k as es,o as pt,q as ts,r as as,s as ls,t as ss,u as ns,v as os,w as is,x as rs}from"./tcm-RVDaIW5j.js";import{m as us}from"./medicine-uuzYOmgD.js";import{r as ds}from"./role-C1NLqyir.js";import{u as ps}from"./usePaging-DOuAwzL9.js";import{h as ms}from"./perm-3ZlDfnJ_.js";import{_ as _s}from"./index.vue_vue_type_script_setup_true_lang-C9hPqHM6.js";import{M as zt}from"./index-DYoTWNUV.js";import{P as fs}from"./index-CYxzFO2X.js";const cs={class:"prescription-list"},gs={class:"pl-toolbar"},bs={class:"pl-toolbar__line"},vs={class:"pl-toolbar__line pl-toolbar__line--second"},ys={class:"pl-toolbar__actions"},xs={class:"pl-table-head"},Vs={class:"flex items-center gap-2"},ks={class:"mt-3"},hs={class:"font-medium"},ws={class:"text-xs text-gray-400 mt-0.5"},Ss={key:1,class:"text-gray-400 text-sm"},Cs={class:"font-medium"},Ns={class:"text-xs text-gray-500 mt-0.5"},Us={class:"flex flex-col gap-1"},Ps={class:"flex flex-wrap items-center gap-1"},$s={key:0,class:"text-xs text-gray-500"},Es=["title"],Ds={key:1,class:"text-gray-400"},Rs={class:"font-medium"},As={class:"text-xs text-gray-500 mt-0.5"},Os={class:"text-sm"},Ls={class:"flex mt-2 justify-end"},zs={key:0,class:"rx-wrap"},Ts={class:"rx-toolbar"},Is={key:0,class:"rx-status rx-status-danger"},Fs={key:1,class:"rx-status rx-status-danger"},js={key:0,class:"mt-1"},Ms={key:2,class:"rx-status rx-status-danger"},Hs={key:0,class:"mt-1"},qs={key:4,class:"rx-audit"},Ws={key:0},Bs={key:0,class:"ml-2 text-gray-400"},Ys={key:1,class:"mt-1"},Gs={class:"text-sm mt-1"},Ks={key:0,class:"text-sm mt-2 text-gray-800 font-medium"},Js={key:5,class:"mb-3 flex flex-wrap items-center gap-2 pl-[120px]"},Qs={class:"text-xs text-gray-400"},Xs={class:"w-full"},Zs={class:"flex flex-wrap items-center gap-2"},en={key:0,class:"flex items-center gap-2 flex-wrap mt-2 text-xs text-[var(--el-color-danger)]"},tn={class:"herb-formula-block mt-3"},an={class:"herb-formula-block__head"},ln={key:1,class:"text-gray-400 text-xs"},sn={class:"herb-formula-block mt-4"},nn={class:"herb-formula-block__head"},on={key:1,class:"text-gray-400 text-xs"},rn={class:"text-sm mt-1 leading-relaxed"},un={key:0,class:"mb-1.5"},dn={class:"font-mono text-primary"},pn={class:"mb-1.5"},mn={class:"whitespace-pre-wrap"},_n={key:1,class:"text-gray-600"},fn={class:"signature-pad-wrap"},cn={class:"signature-actions"},gn={class:"text-gray-700"},bn={class:"create-order-dialog__inner"},vn={key:0,class:"create-order-rx-card"},yn={class:"create-order-rx-card__head"},xn={class:"create-order-rx-card__meta"},Vn={class:"create-order-rx-card__id"},kn={key:0,class:"create-order-rx-card__sn"},hn={class:"create-order-rx-card__patient"},wn={class:"create-order-step-lead"},Sn={class:"create-order-step-panel"},Cn={class:"create-order-step-panel"},Nn={class:"flex items-center gap-1 w-full"},Un={class:"flex flex-col gap-0.5",style:{"line-height":"normal"}},Pn={class:"flex items-center justify-between"},$n={class:"font-medium text-[13px] text-gray-800"},En={class:"text-orange-500 font-medium ml-4"},Dn={class:"flex items-center justify-between text-xs text-gray-400 mt-1"},Rn={class:"truncate pr-2"},An={class:"shrink-0"},On={class:"create-order-pay-hint text-gray-500"},Ln={class:"text-amber-600 font-medium"},zn={class:"create-order-step-panel"},Tn={class:"create-order-deposit-bar__cell"},In={class:"create-order-deposit-bar__sub"},Fn={class:"create-order-deposit-bar__cell"},jn={class:"create-order-deposit-bar__sub"},Mn={class:"create-order-footer"},Hn={class:"create-order-footer__hint"},qn={class:"create-order-footer__step"},Wn={key:0,class:"create-order-footer__warn"},Bn={class:"create-order-footer__actions"},Yn={class:"mb-4 flex gap-3"},Gn={class:"mb-3 flex flex-wrap items-center gap-x-4 gap-y-2"},Kn={key:0},Jn={key:1,class:"text-gray-400"},Qn={class:"flex justify-end mt-4"},Xn={class:"mt-3 flex flex-wrap items-center gap-x-4 gap-y-2"},Zn=Tt({name:"prescriptionList"}),eo=Tt({...Zn,setup(to){const It=Hl(()=>ql(()=>import("./edit-JVjFAZno.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])));function Ce(a="浓缩水丸"){return a==="饮片"?{dosage_amount:50,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:a==="浓缩水丸"?{dosage_amount:5,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}:{dosage_amount:1,dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,times_per_day:3,usage_days:7}}function Ft(a,e){const o=Ce(e);if(!a||typeof a!="object")return{...o};const r=a;return{dosage_amount:r.dosage_amount!==null&&r.dosage_amount!==void 0&&r.dosage_amount!==""?Number(r.dosage_amount):o.dosage_amount,dosage_bag_count:r.dosage_bag_count!=null?Number(r.dosage_bag_count)||1:o.dosage_bag_count,need_decoction:r.need_decoction===1||r.need_decoction===!0,bags_per_dose:r.bags_per_dose!=null?Number(r.bags_per_dose)||1:o.bags_per_dose,times_per_day:r.times_per_day!=null?Number(r.times_per_day)||3:o.times_per_day,usage_days:r.usage_days!=null?Number(r.usage_days)||7:o.usage_days,prescription_name:String(r.prescription_name??"").trim()}}function J(a){return a==="辅方"?"辅方":"主方"}function Te(a){const e={name:String((a==null?void 0:a.name)??"").trim(),dosage:Number(a==null?void 0:a.dosage)||0,formula_type:J(a==null?void 0:a.formula_type)},o=Number((a==null?void 0:a.medicine_id)??(a==null?void 0:a.id)??0);return Number.isInteger(o)&&o>0&&(e.medicine_id=o),((a==null?void 0:a.locked)===!0||(a==null?void 0:a.locked)===1)&&(e.locked=!0),e}function Ie(a){return a?Array.isArray(a)?a.map(e=>Te(e)):[]:[]}const de=Gl(),mt=il();function jt(){const a=mt.getRoutes().find(e=>{var o;return((o=e.meta)==null?void 0:o.perms)==="tcm.prescriptionOrder/lists"});a!=null&&a.path?mt.push(a.path):w.msgWarning("未配置「处方业务订单」菜单,请在权限管理中执行菜单 SQL 或手动添加路由")}const S=Se({sn:"",patient_name:"",creator_ids:[],audit_filter:"all",source_filter:"all",start_time:"",end_time:""}),Fe=g([]),G=g("all"),Q=g(!1),D=g("add"),je=g(!1),ee=g(),K=g(),pe=g(null),ne=560,oe=168,k=g(null),Me=g(!1),_t=g([]),me=g(!1),ft=g(0),ie=g(""),Ne=g(!1),_e=g(!1),He=g(!1),qe=g(),$=Se({id:0,patient_name:"",gender:1,phone:""}),Mt={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],phone:[{required:!0,message:"请输入手机号",trigger:"blur"}]};function Ht(a){$.id=Number(a.id)||0,$.patient_name=String(a.patient_name??"").trim();const e=Number(a.gender);$.gender=e===0||e===1?e:1,$.phone=String(a.phone??"").trim(),_e.value=!0}function qt(){var a;$.id=0,$.patient_name="",$.gender=1,$.phone="",(a=qe.value)==null||a.clearValidate()}async function Wt(){const a=qe.value;if(a){try{await a.validate()}catch{return}He.value=!0;try{await Zl({id:$.id,patient_name:$.patient_name.trim(),phone:$.phone.trim(),gender:$.gender}),w.msgSuccess("已保存"),_e.value=!1,te()}catch(e){const o=e&&typeof e=="object"&&"msg"in e?String(e.msg):"";w.msgError(o||"保存失败")}finally{He.value=!1}}}const fe=g(!1),R=g(0),Bt=Y(()=>["请核对诊单患者并填写完整收货信息,便于发货与物流联系。","按需填写服务相关信息,并选择本诊单下需要关联的支付单。","确认费用类别与订单金额;提交前请对照定金门槛是否已满足。"][R.value]??""),Yt=["patient_id","recipient_name","recipient_phone","region","shipping_address"],B=g(null),ce=g(),We=g(!1),Be=g(!1),X=g([]),re=g([]),Ye=g(!1),E=g(0);function ue(a){const e=Number(a);return Number.isNaN(e)?"—":e.toFixed(2)}function ct(a){return{1:"挂号费",2:"问诊费",3:"药品费用",4:"首付",5:"尾款",6:"其他"}[Number(a)]||"未知"}const p=Se({patient_id:"",recipient_name:"",recipient_phone:"",region:[],shipping_address:"",is_follow_up:0,medication_days:void 0,prev_staff:"",service_channel:"",service_package:[],express_company:"auto",tracking_number:"",ship_mode:"gancao",fee_type:3,amount:0,internal_cost:void 0,remark_extra:"",remark_assistant:"",pay_order_ids:[]}),Gt=Y(()=>ms(["tcm.prescriptionOrder/setShipMode"])),ge=g([]),Ge=g([]),Kt=a=>a.map(e=>{var o;return{name:e.province,code:e.code,children:((o=e.citys)==null?void 0:o.map(r=>{var m;return{name:r.city,code:r.code,children:((m=r.areas)==null?void 0:m.map(u=>({name:u.area,code:u.code})))||[]}}))||[]}}),Jt=async()=>{try{console.log("开始加载省市区数据...");const e=await fetch("https://cos.zhenyangtang.com.cn/area/ChinaCitys.json");if(console.log("响应状态:",e.status),!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const o=await e.json();console.log("加载的数据条数:",o==null?void 0:o.length),ge.value=Kt(o),console.log("regionOptions 已设置,条数:",ge.value.length)}catch(a){console.error("加载省市区数据失败:",a),ge.value=[{name:"四川省",children:[{name:"成都市",children:[{name:"锦江区"},{name:"青羊区"},{name:"金牛区"},{name:"武侯区"},{name:"成华区"},{name:"龙泉驿区"},{name:"青白江区"},{name:"新都区"},{name:"温江区"},{name:"双流区"}]},{name:"绵阳市",children:[{name:"涪城区"},{name:"游仙区"},{name:"安州区"}]}]},{name:"北京市",children:[{name:"北京市",children:[{name:"东城区"},{name:"西城区"},{name:"朝阳区"},{name:"丰台区"},{name:"海淀区"}]}]},{name:"上海市",children:[{name:"上海市",children:[{name:"黄浦区"},{name:"徐汇区"},{name:"长宁区"},{name:"静安区"},{name:"普陀区"}]}]},{name:"广东省",children:[{name:"广州市",children:[{name:"荔湾区"},{name:"越秀区"},{name:"海珠区"},{name:"天河区"},{name:"白云区"}]},{name:"深圳市",children:[{name:"罗湖区"},{name:"福田区"},{name:"南山区"},{name:"宝安区"}]}]}],console.log("使用后备数据,条数:",ge.value.length)}},Qt=async()=>{try{const a=await Jl({type:"server_order"});Ge.value=((a==null?void 0:a.server_order)||[]).filter(e=>e.status!==0)}catch{Ge.value=[]}},Xt=a=>{console.log("选择的省市区:",a)},Ke=Y(()=>{const a=new Set(p.pay_order_ids.map(o=>Number(o)));let e=0;for(const o of re.value)a.has(Number(o.id))&&(e+=Number(o.amount)||0);return Math.round(e*100)/100}),Zt=Y(()=>{const a=E.value;return a>0?Math.round(a*100)/100:0}),ea=Y(()=>{const a={patient_id:[{required:!0,message:"请选择诊单患者",trigger:"change"}],recipient_name:[{required:!0,message:"请输入收货人",trigger:"blur"}],recipient_phone:[{required:!0,message:"请输入收货手机",trigger:"blur"}],region:[{required:!0,message:"请选择省/市/区",trigger:"change",type:"array"}],shipping_address:[{required:!0,message:"请输入收货地址",trigger:"blur"}],fee_type:[{required:!0,message:"请选择费用类别",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"},{validator:(e,o,r)=>{const m=E.value,u=Number(o);if(m>0&&(!Number.isFinite(u)||u<m)){r(new Error(`订单金额须大于等于定金门槛 ¥${ue(m)}`));return}r()},trigger:"blur"}]};if(E.value>0){const e=`已开启关联支付门槛(¥${ue(E.value)}),请至少选择一笔支付单`;a.pay_order_ids=[{type:"array",required:!0,min:1,message:e,trigger:"change"}]}return a});function gt(){var a;R.value=0,p.patient_id="",p.recipient_name="",p.recipient_phone="",p.shipping_address="",p.is_follow_up=0,p.medication_days=void 0,p.prev_staff="",p.service_channel="",p.service_package=[],p.express_company="auto",p.tracking_number="",p.ship_mode="gancao",p.fee_type=3,p.amount=0,p.internal_cost=void 0,p.remark_extra="",p.remark_assistant="",p.pay_order_ids=[],X.value=[],re.value=[],E.value=0,B.value=null,(a=ce.value)==null||a.clearValidate()}function ta(){const a=E.value;if(a<=0)return;const e=Math.round(a*100)/100;Number(p.amount)<e&&(p.amount=e)}async function bt(){var e,o;const a=Number(p.patient_id);if(!a){re.value=[],E.value=0;return}try{Ye.value=!0;const r=await es({diagnosis_id:a}),m=(r==null?void 0:r.lists)??((e=r==null?void 0:r.data)==null?void 0:e.lists)??[];re.value=Array.isArray(m)?m:[];const u=Number((r==null?void 0:r.deposit_min_amount)??((o=r==null?void 0:r.data)==null?void 0:o.deposit_min_amount))||0;E.value=u,ta()}catch{re.value=[],E.value=0}finally{Ye.value=!1}}ze(()=>p.patient_id,()=>{p.pay_order_ids=[],bt()});async function aa(a){var m;if(Number(a==null?void 0:a.void_status)===1){w.msgWarning("已作废处方不可创建业务订单");return}gt(),B.value=a;const e=Number(a.diagnosis_id)||0;e>0&&(p.patient_id=e,p.recipient_name=a.patient_name||"",p.recipient_phone=String(a.phone||"").trim(),X.value=[{id:e,patient_name:a.patient_name||"",phone:String(a.phone||"").trim()}]);const o=Number(a.usage_days);o>0&&(p.medication_days=o),fe.value=!0,bt();const r=a.id;if(r&&!p.recipient_phone)try{const u=await pt({id:r}),i=u&&typeof u.phone=="string"?u.phone.trim():"";if(i&&((m=B.value)==null?void 0:m.id)===r){p.recipient_phone=i;const x=X.value[0];x&&Number(x.id)===e&&(x.phone=i)}}catch{}}async function la(a){if(!a){X.value=[];return}try{Be.value=!0;const e=await searchPatientsAPI({keyword:a,page_no:1,page_size:10});X.value=(e==null?void 0:e.lists)||[]}catch{X.value=[]}finally{Be.value=!1}}function sa(a){const e=X.value.find(o=>Number(o.id)===Number(a));e&&(p.recipient_name=e.patient_name||"",p.recipient_phone=e.phone||"")}function na(){R.value>0&&(R.value-=1)}async function oa(){const a=ce.value;if(a)try{R.value===0?await a.validateField([...Yt]):R.value===1&&E.value>0&&await a.validateField(["pay_order_ids"]),R.value<2&&(R.value+=1)}catch{}}async function ia(){if(!(!ce.value||!B.value)&&R.value===2)try{await ce.value.validate(),We.value=!0;const a=Number(p.patient_id),e={prescription_id:B.value.id,diagnosis_id:a,recipient_name:p.recipient_name,recipient_phone:p.recipient_phone,shipping_address:p.shipping_address,is_follow_up:p.is_follow_up,prev_staff:p.prev_staff||"",service_channel:p.service_channel||"",service_package:Array.isArray(p.service_package)&&p.service_package.length>0?p.service_package.join(","):"",express_company:p.express_company||"auto",tracking_number:p.tracking_number||"",ship_mode:p.ship_mode,fee_type:p.fee_type,amount:p.amount,remark_extra:p.remark_extra||"",remark_assistant:p.remark_assistant||""};p.region&&p.region.length>=3&&(e.shipping_province=p.region[0],e.shipping_city=p.region[1],e.shipping_district=p.region[2]),p.medication_days!=null&&p.medication_days>0&&(e.medication_days=p.medication_days),p.internal_cost!=null&&p.internal_cost>0&&(e.internal_cost=p.internal_cost),p.pay_order_ids.length&&(e.pay_order_ids=[...p.pay_order_ids]);const o=await ts(e),r=(o==null?void 0:o.data)??o,m=r==null?void 0:r.order_no;w.msgSuccess(m?`业务订单已创建,单号:${m}`:"业务订单已创建"),fe.value=!1,te()}catch(a){console.error(a)}finally{We.value=!1}}const Ue=g(!1),Pe=g(!1),vt=Y(()=>{const a=Ue.value,e=Pe.value;return!a&&!e?"":a&&e?"当前处方已作废且已驳回。保存后将取消作废、清除驳回,并重新进入待审核。":a?"当前为已作废处方。保存后将取消作废,并重新进入待审核。":"当前为已驳回处方。保存后将清除驳回,并重新进入待审核。"}),ra=Y(()=>n.herbs.map((a,e)=>({herb:a,index:e})).filter(({herb:a})=>J(a.formula_type)==="主方")),yt=Y(()=>n.herbs.map((a,e)=>({herb:a,index:e})).filter(({herb:a})=>J(a.formula_type)==="辅方")),M=Y(()=>n.herbs.some(a=>a.locked===!0)),xt=g(null),Je=g(!1);function ua(){const a=xt.value;return(a==null?void 0:a.paperEl)??null}function da(){k.value&&se(()=>{try{window.print()}catch(a){console.error(a)}})}async function pa(){var e,o,r;const a=ua();if(!a){w.msgWarning("处方笺尚未渲染完成");return}Je.value=!0;try{await se(),await new Promise(z=>requestAnimationFrame(()=>z(null))),await new Promise(z=>setTimeout(z,250));const m=await Wl(a,{scale:2,backgroundColor:"#ffffff",useCORS:!0,allowTaint:!1,logging:!1,windowWidth:a.scrollWidth,windowHeight:a.scrollHeight,width:a.scrollWidth,height:a.scrollHeight,onclone:(z,L)=>{L instanceof HTMLElement&&(L.querySelectorAll(".rx-notice, .rx-notice-text, .rx-notice-meta").forEach(U=>{U.style.lineHeight="1.95",U.style.overflow="visible"}),L.querySelectorAll(".rx-notice").forEach(U=>{U.style.padding="10px 12px"}),L.querySelectorAll(".rx-info-cell, .rx-info-cell .rx-key, .rx-info-cell .rx-val").forEach(U=>{U.style.lineHeight="1.95",U.style.overflow="visible"}),L.querySelectorAll(".rx-info-cell").forEach(U=>{U.style.padding="10px 12px"}),L.querySelectorAll(".rx-herb-cell").forEach(U=>{U.style.lineHeight="2.5"}),L.querySelectorAll(".rx-herbs").forEach(U=>{U.style.rowGap="12px"}),L.querySelectorAll(".rx-text").forEach(U=>{U.style.lineHeight="2.1"}),L.querySelectorAll(".rx-bot-meta-val, .rx-hospital-line, .rx-bot-cell").forEach(U=>{U.style.overflow="visible",U.style.lineHeight="1.85"}),L.querySelectorAll(".rx-hospital-row").forEach(U=>{U.style.paddingTop="12px",U.style.paddingBottom="14px"}))}}),u=m.toDataURL("image/jpeg",.95),i=new Bl({unit:"mm",format:"a4",orientation:"portrait"}),x=210,H=297,y=x,le=m.height*y/m.width;if(le<=H)i.addImage(u,"JPEG",0,0,y,le);else{let z=le,L=0;for(;z>0;)i.addImage(u,"JPEG",0,L,y,le),z-=H,L-=H,z>0&&i.addPage()}const ot=((e=k.value)==null?void 0:e.patient_name)||"处方",N=((o=k.value)==null?void 0:o.id)||"",A=((r=k.value)==null?void 0:r.prescription_date)||"";i.save(`处方-${ot}${A?"-"+A:""}${N?"-"+N:""}.pdf`)}catch(m){console.error("下载处方 PDF 失败:",m),w.msgError((m==null?void 0:m.message)||"下载失败,请重试")}finally{Je.value=!1}}const n=Se({id:0,prescription_type:"浓缩水丸",dosage_amount:1,dosage_unit:"g",dosage_bag_count:1,need_decoction:!1,bags_per_dose:1,patient_name:"",gender:1,age:0,visit_no:"",prescription_date:"",tongue:"",tongue_image:"",pulse:"",pulse_condition:"",clinical_diagnosis:"",herbs:[],dose_count:7,dose_unit:"剂",usage_days:7,usage_instruction:"",usage_time:"饭后",usage_way:"温水送服",dietary_taboo:[],usage_notes:"",doctor_name:"",doctor_signature:"",is_shared:0,visible_role_ids:[],audit_status:1,audit_time:null,audit_by_name:"",audit_remark:"",diagnosis_id:0,creator_id:0,is_system_auto:0,business_prescription_audit_rejected:0,business_prescription_audit_remark:"",times_per_day:2,aux_usage:Ce("浓缩水丸")}),P=Se({loading:!1,orderNo:"",medicationDays:null,remarkAssistant:""});function ma(){P.loading=!1,P.orderNo="",P.medicationDays=null,P.remarkAssistant=""}async function _a(a){if(P.orderNo="",P.medicationDays=null,P.remarkAssistant="",!a){P.loading=!1;return}P.loading=!0;try{const e=await rs({page_no:1,page_size:5,prescription_id:a}),o=e==null?void 0:e.lists,r=Array.isArray(o)&&o.length?o[0]:null;if(r){P.orderNo=String(r.order_no||"").trim();const m=r.medication_days,u=m!=null&&String(m).trim()!==""?Number(m):NaN;P.medicationDays=Number.isFinite(u)&&u>0?u:null,P.remarkAssistant=String(r.remark_assistant||"").trim()}}catch{}finally{P.loading=!1}}const Vt=g(null);function fa(){var e;const a=Number(n.diagnosis_id);if(!a){w.msgWarning("本处方未关联诊单,无法查看诊单患者信息");return}(e=Vt.value)==null||e.openViewOnly(a)}const $e=g(!1);ze(()=>n.prescription_type,a=>{$e.value||(a==="浓缩水丸"?(n.dosage_unit="g",n.dosage_amount=1,n.dosage_bag_count=1,n.need_decoction=!1,n.bags_per_dose=1):a==="饮片"?(n.dosage_unit="ml",n.dosage_amount=50,n.dosage_bag_count=1,n.bags_per_dose=1):(n.dosage_unit="g",n.dosage_amount=void 0,n.dosage_bag_count=1,n.need_decoction=!1,n.bags_per_dose=1),Object.assign(n.aux_usage,Ce(a)))});const ca={patient_name:[{required:!0,message:"请输入患者姓名",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],prescription_date:[{required:!0,message:"请选择处方日期",trigger:"change"}],clinical_diagnosis:[{required:!0,message:"请输入临床诊断",trigger:"blur"}],dose_count:[{required:!0,message:"请输入剂数",trigger:"blur"}],doctor_name:[{required:!0,message:"请输入医师姓名",trigger:"blur"}],doctor_signature:[{required:!0,validator:(a,e,o)=>{!e||!String(e).trim()?o(new Error("请使用电子签名板手写医师签名")):o()},trigger:"change"}]};async function ga(a){const{audit_filter:e,source_filter:o,creator_ids:r,...m}=a,u={...m,audit_filter:e==="all"||e===""?"":e,source_filter:o==="all"||o===""||o===void 0?"":o};return Array.isArray(r)&&r.length>0&&(u.creator_ids=r),as(u)}const{pager:be,getLists:te,resetPage:ae}=ps({fetchFun:ga,params:S});function kt(a){return String(a).padStart(2,"0")}function ht(a){const e=a.getFullYear(),o=kt(a.getMonth()+1),r=kt(a.getDate()),m=`${e}-${o}-${r}`;return{start:`${m} 00:00:00`,end:`${m} 23:59:59`}}function ba(a){const e=String(a??"all");if(e==="all")S.start_time="",S.end_time="";else{const o=new Date,r=new Date(o.getFullYear(),o.getMonth(),o.getDate());e==="yesterday"?r.setDate(r.getDate()-1):e==="before_yesterday"&&r.setDate(r.getDate()-2);const{start:m,end:u}=ht(r);S.start_time=m,S.end_time=u}ae()}function va(){ae()}function ya(){ae()}let Qe=!1;ze(()=>[S.start_time,S.end_time],()=>{if(Qe)return;const a=S.start_time,e=S.end_time;if(!a&&!e){G.value="all";return}if(!a||!e){G.value="";return}const o=new Date,r=m=>{const u=new Date(o.getFullYear(),o.getMonth(),o.getDate()-m),{start:i,end:x}=ht(u);return a===i&&e===x};r(0)?G.value="today":r(1)?G.value="yesterday":r(2)?G.value="before_yesterday":G.value=""});function xa(a){if(a==null||a==="")return"—";if(typeof a=="number"&&a>=1e9&&a<1e11)return Ee(a);const e=String(a).trim();return/^\d{10}$/.test(e)?Ee(parseInt(e,10)):e}function Va(){Qe=!0,G.value="all",S.sn="",S.patient_name="",S.creator_ids=[],S.audit_filter="all",S.source_filter="all",S.start_time="",S.end_time="",Qe=!1,ae()}function ka(a){return a===0?"待审核":a===2?"已驳回":"已通过"}function ha(a){return a===0?"warning":a===2?"danger":"success"}function wa(a){return Number(a.business_prescription_audit_rejected)===1?"已驳回":ka(a.audit_status)}function Sa(a){return Number(a.business_prescription_audit_rejected)===1?"danger":ha(a.audit_status)}function wt(a){const e=[];if(Number(a.business_prescription_audit_rejected)===1){const o=String(a.business_prescription_audit_remark||"").trim();e.push(o?`业务订单审核驳回意见:${o}`:"业务订单审核驳回意见:—")}if(Number(a.audit_status)===2){const o=String(a.audit_remark||"").trim();e.push(o?`消费者处方审核驳回意见:${o}`:"消费者处方审核驳回意见:—")}return e}function St(a){return Number(a.audit_status)===1&&Number(a.void_status)!==1}function Ee(a){if(!a)return"";const e=new Date(a*1e3);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`}function Ca(a){return a?Ee(a):"—"}function Na(a){var m;const e=n.herbs[a];if(!e)return`第${a+1}味`;const o=J(e.formula_type);let r=0;for(let u=0;u<=a;u++)J((m=n.herbs[u])==null?void 0:m.formula_type)===o&&r++;return`${o}${r}味`}function Ua(a){if(Number(a==null?void 0:a.has_prescription_order)!==1)return[];const o=Ie(a==null?void 0:a.herbs).map(i=>String((i==null?void 0:i.name)||"").trim()).filter(Boolean),r=[];if(!o.length)return r.push("请开方,当前处方药材为空白"),r;const m=new Set,u=new Set;for(const i of o){const x=i.replace(/\s+/g,"").toLowerCase();x&&(m.has(x)?u.add(i):m.add(x))}return u.size>0&&r.push(`已有关联业务订单,当前处方存在重复药材:${Array.from(u).join("、")}`),r}function Pa(a){return{...a,herbs:Ie(a==null?void 0:a.herbs)}}function $a(){k.value=null,pe.value=null}function Ct(a){const e=K.value;if(!e)return{x:0,y:0};const o=e.getBoundingClientRect();if(o.width<=0||o.height<=0)return{x:0,y:0};const r=(a.clientX-o.left)/o.width*ne,m=(a.clientY-o.top)/o.height*oe;return{x:Math.max(0,Math.min(ne,r)),y:Math.max(0,Math.min(oe,m))}}function Xe(){const a=K.value;a&&(n.doctor_signature=a.toDataURL("image/png")),se(()=>{var e;(e=ee.value)==null||e.validateField("doctor_signature").catch(()=>{})})}function Ea(a){if(a.pointerType==="mouse"&&a.button!==0)return;const e=K.value,o=e==null?void 0:e.getContext("2d");if(!e||!o)return;e.setPointerCapture(a.pointerId),pe.value=a.pointerId;const{x:r,y:m}=Ct(a);o.beginPath(),o.moveTo(r,m)}function Da(a){var m;if(pe.value!==a.pointerId)return;const e=(m=K.value)==null?void 0:m.getContext("2d");if(!e)return;const{x:o,y:r}=Ct(a);e.lineTo(o,r),e.stroke(),e.beginPath(),e.moveTo(o,r)}function Nt(a){if(pe.value!==a.pointerId)return;pe.value=null;const e=K.value;if(e)try{e.releasePointerCapture(a.pointerId)}catch{}Xe()}function Ra(){Ut(),n.doctor_signature="",se(()=>{var a;(a=ee.value)==null||a.validateField("doctor_signature").catch(()=>{})})}function Ut(){const a=K.value;if(!a)return;const e=Math.min(typeof window<"u"&&window.devicePixelRatio||1,2.5);a.style.width=`${ne}px`,a.style.height=`${oe}px`,a.width=Math.round(ne*e),a.height=Math.round(oe*e);const o=a.getContext("2d");o&&(o.setTransform(1,0,0,1,0,0),o.scale(e,e),o.fillStyle="#fff",o.fillRect(0,0,ne,oe),o.strokeStyle="#333",o.lineWidth=2.5,o.lineCap="round",o.lineJoin="round")}function Pt(){D.value!=="view"&&se(()=>{setTimeout(()=>{Ut();const a=n.doctor_signature;if(a&&String(a).trim().startsWith("data:image")&&K.value){const e=new Image;e.onload=()=>{const o=K.value,r=o==null?void 0:o.getContext("2d");!o||!r||(r.drawImage(e,0,0,ne,oe),Xe())},e.onerror=()=>{Xe()},e.src=a}},100)})}function Aa(a){const e=a==null?void 0:a.visible_role_ids;return Array.isArray(e)?e.map(o=>Number(o)).filter(o=>!Number.isNaN(o)):typeof e=="string"&&e?e.split(",").map(o=>parseInt(o.trim(),10)).filter(o=>!Number.isNaN(o)):[]}function Oa(a){ft.value=a.id,ie.value="",me.value=!0}async function $t(a){if(a==="reject"&&!ie.value.trim()){w.msgError("驳回时请填写审核意见");return}Ne.value=!0;try{const e=await ls({id:ft.value,action:a,remark:ie.value.trim()});w.msgSuccess(a==="reject"?"已驳回并作废处方":"审核通过"),e&&e.wecom_notify_ok===!1&&e.wecom_notify_hint&&w.msgWarning(e.wecom_notify_hint),me.value=!1,te()}catch{}finally{Ne.value=!1}}async function La(){try{const a=await ds({});_t.value=Array.isArray(a)?a:[]}catch{_t.value=[]}}const ve=g(!1),Ze=g(!1),et=g([]),De=g(""),Re=g(""),ye=g("replace"),xe=g(1),tt=g(15),at=g(0),Et=Y(()=>{var o;const a=Number(n.creator_id);if(a>0)return a;const e=Number((o=de.userInfo)==null?void 0:o.id);return e>0?e:0});function za(a){return String(a||"").trim().toLowerCase()}function Dt(){const a=new Map;for(const e of n.herbs){const o=za(e==null?void 0:e.name);o&&a.set(o,(a.get(o)??0)+1)}return[...a.entries()].filter(([,e])=>e>1).map(([e])=>e)}const Ae=async()=>{const a=Et.value;if(!a){w.msgWarning("无法确定开方医师,无法加载处方库"),et.value=[],at.value=0;return}Ze.value=!0;try{const e=await ss({page_no:xe.value,page_size:tt.value,prescription_name:De.value,formula_type:Re.value,prescribing_creator_id:a});et.value=(e==null?void 0:e.lists)||[],at.value=(e==null?void 0:e.count)||0}catch(e){console.error(e),w.msgError("加载处方库失败")}finally{Ze.value=!1}},Oe=()=>{xe.value=1,Ae()},Ta=()=>{if(!Et.value){w.msgWarning("无法确定开方医师,无法从处方库导入");return}ve.value=!0},Ia=a=>{Rt(a)},Rt=a=>{if(!a.herbs||a.herbs.length===0){w.msgWarning("该处方没有药材信息");return}const e=J(a.formula_type),o=Number(a==null?void 0:a.disable_edit)===1,r=JSON.parse(JSON.stringify(a.herbs)).map(u=>{const i=Te(u);return i.formula_type=e,o?i.locked=!0:delete i.locked,i});if(ye.value==="replace"){const u=n.herbs.filter(i=>J(i.formula_type)!==e);n.herbs=[...u,...r]}else n.herbs.push(...r);e==="辅方"&&(n.aux_usage.prescription_name=String(a.prescription_name??"").trim());const m=ye.value==="append"?"(已追加)":"";Dt().length?w.msgWarning(`已导入处方「${a.prescription_name}${m},共${r.length}味药材。存在重复药名,请合并剂量或删除多余行`):w.msgSuccess(`已导入处方「${a.prescription_name}${m},共${r.length}味药材`),ve.value=!1};ze(ve,a=>{a&&(De.value="",Re.value="",ye.value="replace",xe.value=1,Ae())});const Ve=g(!1),ke=g(""),lt=g("replace"),st=g(!1),Fa=/^(用法|用量|医嘱|忌口|水煎服|空腹|饭后|温水|内服|外用|备注|顿服|分服|ml|毫升|[×xX]\s*\d)/;function ja(a){let e=a.replace(/\r\n/g,`
`).replace(/\r/g,`
`);return e=e.replace(/[-]/g,o=>String.fromCharCode(o.charCodeAt(0)-65296+48)),e.trim()}function Ma(a){return a.replace(/^\s*Rp[::**\s]*/i,"").replace(/^\s*处方[:\s]*/,"").replace(/^\s*中药处方[:\s]*/,"").trimStart()}function nt(a){return a.replace(/[^]*$/u,"").replace(/\([^)]*\)$/u,"").trim()}function At(a){const e=a.trim();if(!e||Fa.test(e)||/^\d/.test(e)||/^\d+\s*剂$/.test(e))return null;const o=e.match(/^(.+)\s*各\s*(\d+(?:\.\d+)?)\s*(?:克|g|G)?$/i);if(o){const u=parseFloat(o[2]);if(!Number.isFinite(u)||u<=0)return null;const i=o[1].split(/[、,,\s]+/).map(x=>x.trim()).filter(Boolean);return i.length?i.map(x=>({name:nt(x),dosage:u})):null}const r=e.match(/^(.+?)\s*(\d+(?:\.\d+)?)\s*(?:克|g|G|钱)?$/i);if(r){const u=nt(r[1].trim()),i=parseFloat(r[2]);return!u||!Number.isFinite(i)||i<=0?null:[{name:u,dosage:i}]}const m=nt(e);return m.length>=2&&m.length<=16?[{name:m,dosage:6}]:null}function Ha(a){const e=Ma(ja(a)),o=[];for(const r of e.split(/\n+/)){const m=r.trim();if(m)for(const u of m.split(/[、,,;]/)){const i=u.trim();if(i)if(/\s/.test(i)&&!At(i)){const x=i.split(/\s+(?=[\u4e00-\u9fff]{2,})/);for(const H of x){const y=H.trim();y&&o.push(y)}}else o.push(i)}}return o}function qa(a){const e=[];for(const o of Ha(a)){const r=At(o);r&&e.push(...r)}return e}async function Wa(a){const e=a.trim();if(!e)return null;try{const m=((await us({name:e,page_no:1,page_size:200,status:1})).lists||[]).filter(u=>(u.name??"").trim()===e);return m.length===1?{medicine_id:Number(m[0].id),name:m[0].name.trim()}:null}catch{return null}}function Ba(){Ve.value=!0}async function Ya(){const a=qa(ke.value);if(!a.length){w.msgWarning("未能从文本中解析出药材,请检查格式(药名 + 剂量,或用顿号/换行分隔)");return}st.value=!0;try{const e=[],o=[];for(const i of a){const x=await Wa(i.name);if(!x){o.push(i.name.trim());continue}e.push({...x,dosage:i.dosage,formula_type:"主方"})}const r=[...new Set(o.filter(Boolean))];if(e.length===0){w.msgWarning(r.length?`药品库中无以下完全同名药材,未录入:${r.join("、")}`:"未能匹配到药品库中的药材");return}if(lt.value==="replace"){const i=n.herbs.filter(x=>J(x.formula_type)==="辅方");n.herbs=[...i,...e]}else n.herbs.push(...e);const m=Dt(),u=r.length>0?`;药品库未收录已跳过:${r.join("、")}`:"";m.length?w.msgWarning(`已导入 ${e.length} 味药材${u}。存在重复药名:${m.join("、")},请合并剂量或删除多余行`):r.length?w.msgSuccess(`已导入 ${e.length} 味药材${u},请核对剂量`):w.msgSuccess(`已导入 ${e.length} 味药材,请核对药名与剂量`),Ve.value=!1,ke.value=""}finally{st.value=!1}}const Ot=(a="主方")=>{if(M.value){w.msgWarning("该处方含「禁用修改」模板,药材已锁定,请重新从处方库导入覆盖");return}n.herbs.push({name:"",dosage:0,formula_type:a})},Lt=a=>{if(M.value){w.msgWarning("该处方含「禁用修改」模板,药材已锁定,不可删除");return}n.herbs.splice(a,1)},Ga=()=>{var a;n.id=0,n.prescription_type="浓缩水丸",n.dosage_amount=1,n.dosage_unit="g",n.dosage_bag_count=1,n.need_decoction=!1,n.bags_per_dose=1,n.patient_name="",n.gender=1,n.age=0,n.visit_no="",n.prescription_date=new Date().toISOString().split("T")[0],n.tongue="",n.tongue_image="",n.pulse="",n.pulse_condition="",n.clinical_diagnosis="",n.herbs=[],n.dose_count=7,n.dose_unit="剂",n.usage_days=7,n.usage_instruction="",n.usage_time="饭后",n.usage_way="温水送服",n.dietary_taboo=[],n.usage_notes="",n.doctor_name="",n.doctor_signature="",n.is_shared=0,n.visible_role_ids=[],n.audit_status=1,n.audit_time=null,n.audit_by_name="",n.audit_remark="",n.diagnosis_id=0,n.creator_id=Number((a=de.userInfo)==null?void 0:a.id)||0,n.is_system_auto=0,n.business_prescription_audit_rejected=0,n.business_prescription_audit_remark="",n.times_per_day=2,Object.assign(n.aux_usage,Ce("浓缩水丸")),ma()},Ka=()=>{var a;Ga(),n.doctor_name=String(((a=de.userInfo)==null?void 0:a.name)||""),Ue.value=!1,Pe.value=!1,D.value="add",$e.value=!1,Q.value=!0,se(()=>{var e;(e=ee.value)==null||e.clearValidate(),Pt()})},Ja=async a=>{Ue.value=!1,Pe.value=!1,D.value="view",k.value=Pa(a),Q.value=!0,Me.value=!0;try{const e=await pt({id:a.id});e&&typeof e=="object"&&(k.value={...e,herbs:Ie(e.herbs)})}catch(e){w.msgError((e==null?void 0:e.msg)||"加载处方详情失败")}finally{Me.value=!1}},Qa=async a=>{Ue.value=Number(a.void_status)===1,Pe.value=Number(a.audit_status)===2,D.value="edit",$e.value=!0;let e=a;if(a!=null&&a.id&&!a.doctor_signature)try{const o=await pt({id:a.id});o&&typeof o=="object"&&(e={...a,...o})}catch{}n.id=e.id,n.prescription_type=e.prescription_type||"浓缩水丸",e.dosage_amount!==null&&e.dosage_amount!==void 0&&e.dosage_amount!==""?n.dosage_amount=Number(e.dosage_amount):n.dosage_amount=void 0,e.dosage_unit?n.dosage_unit=e.dosage_unit:n.prescription_type==="饮片"?n.dosage_unit="ml":n.dosage_unit="g",n.dosage_bag_count=e.dosage_bag_count?Number(e.dosage_bag_count):1,n.need_decoction=e.need_decoction===1||e.need_decoction===!0,n.bags_per_dose=e.bags_per_dose?Number(e.bags_per_dose):1,n.patient_name=e.patient_name||"",n.gender=e.gender??1,n.age=e.age??0,n.visit_no=e.visit_no||"",n.prescription_date=e.prescription_date||"",n.tongue=e.tongue||"",n.tongue_image=e.tongue_image||"",n.pulse=e.pulse||"",n.pulse_condition=e.pulse_condition||"",n.clinical_diagnosis=e.clinical_diagnosis||"",n.herbs=e.herbs?e.herbs.map(o=>Te(o)):[],n.dose_count=e.dose_count??7,n.dose_unit=e.dose_unit||"剂",n.usage_days=e.usage_days??7,n.times_per_day=e.times_per_day??2,n.usage_instruction=e.usage_instruction||"",n.usage_time=e.usage_time||"饭后",n.usage_way=e.usage_way||"温水送服",n.dietary_taboo=e.dietary_taboo?Array.isArray(e.dietary_taboo)?e.dietary_taboo:String(e.dietary_taboo).split(",").filter(o=>o):[],n.usage_notes=e.usage_notes||"",n.doctor_name=e.doctor_name||"",n.doctor_signature=String(e.doctor_signature||""),n.is_shared=e.is_shared??0,n.visible_role_ids=Aa(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,Ft(e.aux_usage,n.prescription_type)),setTimeout(()=>{$e.value=!1},0),Q.value=!0,_a(Number(n.id)),se(()=>{var o;(o=ee.value)==null||o.clearValidate(),Pt()})},Xa=async()=>{if(ee.value){try{await ee.value.validate()}catch{return}if(!n.herbs||n.herbs.length===0){w.msgError("请至少添加一味药材");return}for(let a=0;a<n.herbs.length;a++){const e=n.herbs[a],o=Na(a);if(!e.name||!e.name.trim()){w.msgError(`${o}药材名称不能为空`);return}if(!e.dosage||e.dosage<=0){w.msgError(`${o}药材剂量必须大于0`);return}}je.value=!0;try{const a={...n};D.value==="add"?(a.audit_status=0,await ns(a),w.msgSuccess("添加成功,已提交审核")):(await os(a),w.msgSuccess("保存成功,处方已重新进入待审核")),Q.value=!1,te()}catch(a){console.error(a)}finally{je.value=!1}}},Za=async a=>{await w.confirm("确定要删除该处方吗?"),await is({id:a}),w.msgSuccess("删除成功"),te()};return rl(async()=>{var a;await La(),await Jt(),await Qt();try{const e=await Xl();Fe.value=Array.isArray(e)?e:[]}catch{Fe.value=[]}try{(a=de.userInfo)!=null&&a.id||await de.getUserInfo()}catch{}te()}),(a,e)=>{const o=pl,r=dl,m=fl,u=_l,i=gl,x=cl,H=ml,y=bl,le=vl,ot=Kl,N=Vl,A=kl,z=xl,L=Yl,U=Cl,V=Ul,q=Nl,F=Pl,T=$l,el=El,tl=Rl,he=Al,it=Ll,al=Ol,ll=zl,sl=Tl,nl=Il,ol=Ml,W=ul("perms"),Le=yl;return _(),h("div",cs,[t(le,{class:"filter-toolbar",shadow:"never","body-style":{padding:"10px 14px"}},{default:s(()=>[d("div",gs,[d("div",bs,[e[102]||(e[102]=d("span",{class:"pl-toolbar__k",title:"按处方创建时间"},"创建时间",-1)),t(r,{modelValue:G.value,"onUpdate:modelValue":e[0]||(e[0]=l=>G.value=l),size:"small",class:"pl-toolbar__rg",onChange:ba},{default:s(()=>[t(o,{label:"all"},{default:s(()=>[...e[90]||(e[90]=[f("全部",-1)])]),_:1}),t(o,{label:"today"},{default:s(()=>[...e[91]||(e[91]=[f("今日",-1)])]),_:1}),t(o,{label:"yesterday"},{default:s(()=>[...e[92]||(e[92]=[f("昨日",-1)])]),_:1}),t(o,{label:"before_yesterday"},{default:s(()=>[...e[93]||(e[93]=[f("前天",-1)])]),_:1})]),_:1},8,["modelValue"]),t(_s,{class:"pl-toolbar__range",startTime:S.start_time,"onUpdate:startTime":e[1]||(e[1]=l=>S.start_time=l),endTime:S.end_time,"onUpdate:endTime":e[2]||(e[2]=l=>S.end_time=l)},null,8,["startTime","endTime"]),e[103]||(e[103]=d("span",{class:"pl-toolbar__sep","aria-hidden":"true"},null,-1)),e[104]||(e[104]=d("span",{class:"pl-toolbar__k",title:"「未通过」含待审核与已驳回"},"审核",-1)),t(r,{modelValue:S.audit_filter,"onUpdate:modelValue":e[3]||(e[3]=l=>S.audit_filter=l),size:"small",class:"pl-toolbar__rg pl-toolbar__rg--audit",onChange:va},{default:s(()=>[t(o,{label:"pending",class:"pl-audit-pending-btn"},{default:s(()=>[...e[94]||(e[94]=[f("待审核",-1)])]),_:1}),t(o,{label:"all"},{default:s(()=>[...e[95]||(e[95]=[f("全部",-1)])]),_:1}),t(o,{label:"passed"},{default:s(()=>[...e[96]||(e[96]=[f("已通过",-1)])]),_:1}),t(o,{label:"not_passed"},{default:s(()=>[...e[97]||(e[97]=[f("未通过",-1)])]),_:1}),t(o,{label:"rejected"},{default:s(()=>[...e[98]||(e[98]=[f("驳回",-1)])]),_:1})]),_:1},8,["modelValue"]),e[105]||(e[105]=d("span",{class:"pl-toolbar__sep","aria-hidden":"true"},null,-1)),e[106]||(e[106]=d("span",{class:"pl-toolbar__k",title:"与列表「来源」列一致:空白处方 / 手工"},"来源",-1)),t(r,{modelValue:S.source_filter,"onUpdate:modelValue":e[4]||(e[4]=l=>S.source_filter=l),size:"small",class:"pl-toolbar__rg pl-toolbar__rg--source",onChange:ya},{default:s(()=>[t(o,{label:"all"},{default:s(()=>[...e[99]||(e[99]=[f("全部",-1)])]),_:1}),t(o,{label:"manual"},{default:s(()=>[...e[100]||(e[100]=[f("手工",-1)])]),_:1}),t(o,{label:"system"},{default:s(()=>[...e[101]||(e[101]=[f("空白处方",-1)])]),_:1})]),_:1},8,["modelValue"])]),d("div",vs,[t(H,{model:S,inline:"",class:"pl-toolbar__form"},{default:s(()=>[t(u,{label:"处方编号",class:"!mb-0"},{default:s(()=>[t(m,{modelValue:S.sn,"onUpdate:modelValue":e[5]||(e[5]=l=>S.sn=l),placeholder:"编号",clearable:"",class:"pl-toolbar__input",onKeyup:ut(j(ae),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(u,{label:"患者",class:"!mb-0"},{default:s(()=>[t(m,{modelValue:S.patient_name,"onUpdate:modelValue":e[6]||(e[6]=l=>S.patient_name=l),placeholder:"姓名",clearable:"",class:"pl-toolbar__input",onKeyup:ut(j(ae),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(u,{label:"医师",class:"!mb-0"},{default:s(()=>[t(x,{modelValue:S.creator_ids,"onUpdate:modelValue":e[7]||(e[7]=l=>S.creator_ids=l),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",filterable:"",clearable:"",placeholder:"全部医师",class:"pl-toolbar__select pl-toolbar__select--doctors"},{default:s(()=>[(_(!0),h(I,null,Z(Fe.value,l=>(_(),c(i,{key:l.id,label:l.name,value:Number(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"]),d("div",ys,[t(y,{type:"primary",onClick:j(ae)},{default:s(()=>[...e[107]||(e[107]=[f("查询",-1)])]),_:1},8,["onClick"]),t(y,{onClick:Va},{default:s(()=>[...e[108]||(e[108]=[f("重置",-1)])]),_:1})])])])]),_:1}),O((_(),c(le,{class:"mt-3 table-card",shadow:"never"},{default:s(()=>[d("div",xs,[e[111]||(e[111]=d("span",{class:"pl-table-head__title"},"处方列表",-1)),d("div",Vs,[O((_(),c(y,{onClick:jt},{default:s(()=>[...e[109]||(e[109]=[f(" 业务订单 ",-1)])]),_:1})),[[W,["tcm.prescriptionOrder/lists"]]]),O((_(),c(y,{type:"primary",onClick:Ka},{icon:s(()=>[t(ot,{name:"el-icon-Plus"})]),default:s(()=>[e[110]||(e[110]=f(" 新增处方 ",-1))]),_:1})),[[W,["cf.prescription/add"]]])])]),d("div",ks,[t(z,{data:j(be).lists,size:"default",stripe:""},{default:s(()=>[t(N,{label:"处方编号","min-width":"160"},{default:s(({row:l})=>[d("span",hs,b(l.sn||"—"),1),d("div",ws,"ID: "+b(l.id),1),(_(!0),h(I,null,Z(Ua(l),(C,rt)=>(_(),h("div",{key:`rx-order-warn-${l.id}-${rt}`,class:"text-xs text-red-600 mt-0.5 leading-snug"},b(C),1))),128))]),_:1}),t(N,{label:"处方类型","min-width":"100"},{default:s(({row:l})=>[t(A,{type:"info",size:"small"},{default:s(()=>[f(b(l.prescription_type||"—"),1)]),_:2},1024)]),_:1}),t(N,{label:"来源","min-width":"92",align:"center"},{default:s(({row:l})=>[Number(l.is_system_auto)===1?(_(),c(A,{key:0,type:"warning",size:"small",effect:"plain"},{default:s(()=>[...e[112]||(e[112]=[f(" 空白处方 ",-1)])]),_:1})):(_(),h("span",Ss,"手工"))]),_:1}),t(N,{label:"患者信息","min-width":"110"},{default:s(({row:l})=>[d("div",Cs,b(l.patient_name||"—"),1),d("div",Ns,b(l.gender===1?"男":l.gender===0?"女":"未知")+" · "+b(l.age?l.age+"岁":"—"),1)]),_:1}),t(N,{label:"审核状态","min-width":"200"},{default:s(({row:l})=>[d("div",Us,[d("div",Ps,[t(A,{type:Sa(l)},{default:s(()=>[f(b(wa(l)),1)]),_:2},1032,["type"]),Number(l.business_prescription_audit_rejected)===1?(_(),h("span",$s," (业务订单审核) ")):v("",!0)]),wt(l).length?(_(!0),h(I,{key:0},Z(wt(l),(C,rt)=>(_(),h("div",{key:rt,class:"text-xs text-red-600 leading-snug line-clamp-3",title:C},b(C),9,Es))),128)):v("",!0)])]),_:1}),t(N,{label:"作废","min-width":"80",align:"center"},{default:s(({row:l})=>[l.void_status===1?(_(),c(A,{key:0,type:"danger",size:"small"},{default:s(()=>[...e[113]||(e[113]=[f("作废",-1)])]),_:1})):(_(),h("span",Ds,"—"))]),_:1}),t(N,{label:"医师信息","min-width":"120"},{default:s(({row:l})=>[d("div",Rs,b(l.doctor_name||"—"),1),d("div",As,b(l.prescription_date||"—"),1)]),_:1}),t(N,{label:"医助","min-width":"90"},{default:s(({row:l})=>[d("div",Os,b(l.assistant_name||"—"),1)]),_:1}),t(N,{label:"创建时间","min-width":"160"},{default:s(({row:l})=>[f(b(xa(l.create_time)),1)]),_:1}),t(N,{label:"操作",width:"300",fixed:"right"},{default:s(({row:l})=>[O((_(),c(y,{type:"primary",link:"",onClick:C=>Ja(l)},{default:s(()=>[...e[114]||(e[114]=[f(" 查看 ",-1)])]),_:1},8,["onClick"])),[[W,["cf.prescription/read"]]]),Number(l.void_status)!==1?O((_(),c(y,{key:0,type:"primary",link:"",onClick:C=>Ht(l)},{default:s(()=>[...e[115]||(e[115]=[f(" 改姓名手机 ",-1)])]),_:1},8,["onClick"])),[[W,["tcm.prescription/patchPatient"]]]):v("",!0),!Number(l.has_prescription_order)&&Number(l.void_status)!==1?O((_(),c(y,{key:1,type:"success",link:"",onClick:C=>aa(l)},{default:s(()=>[...e[116]||(e[116]=[f(" 创建订单 ",-1)])]),_:1},8,["onClick"])),[[W,["tcm.prescriptionOrder/create"]]]):v("",!0),St(l)?v("",!0):O((_(),c(y,{key:2,type:"primary",link:"",onClick:C=>Qa(l)},{default:s(()=>[...e[117]||(e[117]=[f(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[W,["cf.prescription/edit"]]]),l.audit_status===0&&l.void_status!==1?O((_(),c(y,{key:3,type:"warning",link:"",onClick:C=>Oa(l)},{default:s(()=>[...e[118]||(e[118]=[f(" 审核 ",-1)])]),_:1},8,["onClick"])),[[W,["cf.prescription/audit"]]]):v("",!0),St(l)?v("",!0):O((_(),c(y,{key:4,type:"danger",link:"",onClick:C=>Za(l.id)},{default:s(()=>[...e[119]||(e[119]=[f(" 删除 ",-1)])]),_:1},8,["onClick"])),[[W,["cf.prescription/del"]]])]),_:1})]),_:1},8,["data"])]),d("div",Ls,[t(L,{modelValue:j(be),"onUpdate:modelValue":e[8]||(e[8]=l=>hl(be)?be.value=l:null),onChange:j(te)},null,8,["modelValue","onChange"])])]),_:1})),[[Le,j(be).loading]]),t(tl,{modelValue:Q.value,"onUpdate:modelValue":e[48]||(e[48]=l=>Q.value=l),title:D.value==="add"?"新增处方":D.value==="edit"?"编辑处方":"查看处方",size:D.value==="view"?"920px":"860px",class:"cf-prescription-drawer","close-on-click-modal":!1,"destroy-on-close":"",onClosed:$a},{footer:s(()=>[D.value==="view"?(_(),c(y,{key:0,onClick:e[46]||(e[46]=l=>Q.value=!1)},{default:s(()=>[...e[162]||(e[162]=[f("关闭",-1)])]),_:1})):(_(),h(I,{key:1},[t(y,{onClick:e[47]||(e[47]=l=>Q.value=!1)},{default:s(()=>[...e[163]||(e[163]=[f("取消",-1)])]),_:1}),t(y,{type:"primary",onClick:Xa,loading:je.value},{default:s(()=>[...e[164]||(e[164]=[f(" 确定 ",-1)])]),_:1},8,["loading"])],64))]),default:s(()=>[D.value==="view"?O((_(),h("div",zs,[d("div",Ts,[k.value&&Number(k.value.is_system_auto)===1?(_(),c(A,{key:0,type:"warning",size:"small",effect:"plain"},{default:s(()=>[...e[120]||(e[120]=[f("空白处方",-1)])]),_:1})):v("",!0),k.value&&Number(k.value.void_status)===1?(_(),c(A,{key:1,type:"danger",size:"small"},{default:s(()=>[...e[121]||(e[121]=[f("已作废",-1)])]),_:1})):k.value&&Number(k.value.business_prescription_audit_rejected)===1?(_(),c(A,{key:2,type:"danger",size:"small"},{default:s(()=>[...e[122]||(e[122]=[f("业务订单已驳回",-1)])]),_:1})):k.value&&Number(k.value.audit_status)===1?(_(),c(A,{key:3,type:"success",size:"small"},{default:s(()=>[...e[123]||(e[123]=[f("已通过",-1)])]),_:1})):k.value&&Number(k.value.audit_status)===0?(_(),c(A,{key:4,type:"warning",size:"small"},{default:s(()=>[...e[124]||(e[124]=[f("待审核",-1)])]),_:1})):k.value?(_(),c(A,{key:5,type:"danger",size:"small"},{default:s(()=>[...e[125]||(e[125]=[f("已驳回",-1)])]),_:1})):v("",!0),e[128]||(e[128]=d("div",{class:"flex-1"},null,-1)),t(y,{icon:j(wl),size:"small",onClick:da},{default:s(()=>[...e[126]||(e[126]=[f("打印",-1)])]),_:1},8,["icon"]),t(y,{type:"primary",icon:j(Sl),size:"small",loading:Je.value,onClick:pa},{default:s(()=>[...e[127]||(e[127]=[f(" 下载 PDF (A4) ",-1)])]),_:1},8,["icon","loading"])]),k.value&&Number(k.value.void_status)===1?(_(),h("div",Is," 作废人:"+b(k.value.void_by_name||"—")+",作废时间:"+b(Ca(k.value.void_time)),1)):k.value&&Number(k.value.business_prescription_audit_rejected)===1?(_(),h("div",Fs,[e[129]||(e[129]=d("div",{class:"font-medium"},"审核状态:已驳回(业务订单·处方审核)",-1)),k.value.business_prescription_audit_remark?(_(),h("div",js," 驳回意见:"+b(k.value.business_prescription_audit_remark),1)):v("",!0)])):k.value&&Number(k.value.audit_status)===2?(_(),h("div",Ms,[e[130]||(e[130]=d("div",{class:"font-medium"},"消费者处方审核:已驳回",-1)),k.value.audit_remark?(_(),h("div",Hs,"驳回意见:"+b(k.value.audit_remark),1)):v("",!0)])):v("",!0),k.value?(_(),c(fs,{key:3,ref_key:"rxSlipRef",ref:xt,data:k.value},null,8,["data"])):v("",!0),k.value&&(k.value.audit_by_name||k.value.audit_remark)?(_(),h("div",qs,[k.value.audit_by_name?(_(),h("div",Ws,[f(" 审核人:"+b(k.value.audit_by_name)+" ",1),k.value.audit_time?(_(),h("span",Bs,b(Ee(k.value.audit_time)),1)):v("",!0)])):v("",!0),k.value.audit_remark?(_(),h("div",Ys,"审核意见:"+b(k.value.audit_remark),1)):v("",!0)])):v("",!0)])),[[Le,Me.value]]):(_(),c(H,{key:1,ref_key:"formRef",ref:ee,model:n,rules:ca,"label-width":"120px"},{default:s(()=>[D.value==="edit"&&Number(n.is_system_auto)===1?(_(),c(U,{key:0,type:"warning",closable:!1,"show-icon":"",class:"mb-4",title:"本处方为系统自动生成(如挂号完成),默认无药材配方,请补充药材与诊断等信息后再保存。"})):v("",!0),D.value==="edit"?(_(),c(U,{key:1,type:"info",closable:!1,"show-icon":"",class:"mb-4",title:"保存修改后,该处方将重新进入「待审核」,需审核人员再次通过后方可生效。"})):v("",!0),D.value==="edit"&&Number(n.audit_status)===2?(_(),c(U,{key:2,type:"error",closable:!1,"show-icon":"",class:"mb-4"},{title:s(()=>[...e[131]||(e[131]=[f("当前消费者处方为「已驳回」",-1)])]),default:s(()=>[d("div",Gs," 保存修改后将清除驳回并变为「待审核」。"+b(n.audit_remark?`上次意见:${n.audit_remark}`:""),1)]),_:1})):v("",!0),D.value==="edit"&&Number(n.business_prescription_audit_rejected)===1&&Number(n.audit_status)===1?(_(),c(U,{key:3,type:"warning",closable:!1,"show-icon":"",class:"mb-4"},{title:s(()=>[...e[132]||(e[132]=[f("业务订单侧「处方审核」已驳回",-1)])]),default:s(()=>[e[133]||(e[133]=d("div",{class:"text-sm mt-1"}," 消费者处方仍为「已通过」;您修改并保存后,将重置关联业务订单的处方/支付单审核为「待审」,请在「处方业务订单」中继续处理。 ",-1)),String(n.business_prescription_audit_remark||"").trim()?(_(),h("div",Ks," 驳回意见:"+b(n.business_prescription_audit_remark),1)):v("",!0)]),_:1})):v("",!0),D.value==="edit"&&vt.value?(_(),c(U,{key:4,type:"warning",closable:!1,"show-icon":"",class:"mb-4",title:vt.value},null,8,["title"])):v("",!0),Number(n.diagnosis_id)>0?(_(),h("div",Js,[t(y,{type:"primary",size:"small",onClick:fa},{default:s(()=>[...e[134]||(e[134]=[f(" 查看患者诊单详情 ",-1)])]),_:1}),d("span",Qs,"关联诊单 #"+b(n.diagnosis_id),1)])):v("",!0),t(q,{gutter:20},{default:s(()=>[t(V,{span:12},{default:s(()=>[t(u,{label:"患者姓名",prop:"patient_name"},{default:s(()=>[t(m,{modelValue:n.patient_name,"onUpdate:modelValue":e[9]||(e[9]=l=>n.patient_name=l),placeholder:"请输入患者姓名",disabled:D.value==="edit"},null,8,["modelValue","disabled"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"门诊号",prop:"visit_no"},{default:s(()=>[t(m,{modelValue:n.visit_no,"onUpdate:modelValue":e[10]||(e[10]=l=>n.visit_no=l),placeholder:"自动生成或手动输入",disabled:D.value==="edit"},null,8,["modelValue","disabled"])]),_:1})]),_:1})]),_:1}),t(q,{gutter:20},{default:s(()=>[t(V,{span:8},{default:s(()=>[t(u,{label:"性别",prop:"gender"},{default:s(()=>[t(r,{modelValue:n.gender,"onUpdate:modelValue":e[11]||(e[11]=l=>n.gender=l)},{default:s(()=>[t(F,{label:1},{default:s(()=>[...e[135]||(e[135]=[f("男",-1)])]),_:1}),t(F,{label:0},{default:s(()=>[...e[136]||(e[136]=[f("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(V,{span:8},{default:s(()=>[t(u,{label:"年龄",prop:"age"},{default:s(()=>[t(T,{modelValue:n.age,"onUpdate:modelValue":e[12]||(e[12]=l=>n.age=l),min:0,max:150,placeholder:"请输入年龄",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:8},{default:s(()=>[t(u,{label:"处方日期",prop:"prescription_date"},{default:s(()=>[t(el,{modelValue:n.prescription_date,"onUpdate:modelValue":e[13]||(e[13]=l=>n.prescription_date=l),type:"date",placeholder:"选择日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(q,{gutter:20},{default:s(()=>[t(V,{span:12},{default:s(()=>[t(u,{label:"面象",prop:"tongue"},{default:s(()=>[t(m,{modelValue:n.tongue,"onUpdate:modelValue":e[14]||(e[14]=l=>n.tongue=l),placeholder:"请输入面象"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"舌象",prop:"tongue_image"},{default:s(()=>[t(m,{modelValue:n.tongue_image,"onUpdate:modelValue":e[15]||(e[15]=l=>n.tongue_image=l),placeholder:"请输入舌象"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(q,{gutter:20},{default:s(()=>[t(V,{span:12},{default:s(()=>[t(u,{label:"脉象",prop:"pulse"},{default:s(()=>[t(m,{modelValue:n.pulse,"onUpdate:modelValue":e[16]||(e[16]=l=>n.pulse=l),placeholder:"请输入脉象"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"脉象详情",prop:"pulse_condition"},{default:s(()=>[t(m,{modelValue:n.pulse_condition,"onUpdate:modelValue":e[17]||(e[17]=l=>n.pulse_condition=l),placeholder:"请输入脉象详情"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(u,{label:"临床诊断",prop:"clinical_diagnosis"},{default:s(()=>[t(m,{modelValue:n.clinical_diagnosis,"onUpdate:modelValue":e[18]||(e[18]=l=>n.clinical_diagnosis=l),type:"textarea",rows:3,placeholder:"请输入临床诊断",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(u,{label:"药材配方",prop:"herbs",required:""},{default:s(()=>[d("div",Xs,[d("div",Zs,[O((_(),c(y,{type:"success",size:"small",onClick:Ta},{default:s(()=>[...e[137]||(e[137]=[f(" 从处方库导入 ",-1)])]),_:1})),[[W,["cf.prescription/add","cf.prescription/edit","tcm.prescriptionLibrary/lists"]]]),t(y,{type:"warning",size:"small",plain:"",icon:j(Dl),onClick:Ba},{default:s(()=>[...e[138]||(e[138]=[f(" 导入药方 ",-1)])]),_:1},8,["icon"]),e[139]||(e[139]=d("span",{class:"text-xs text-gray-500"}," 粘贴文本解析药名与剂量;须与药品库名称完全一致才录入(导入至主方) ",-1))]),M.value?(_(),h("div",en,[t(A,{type:"danger",size:"small",effect:"plain"},{default:s(()=>[...e[140]||(e[140]=[f("禁用修改",-1)])]),_:1}),e[141]||(e[141]=f(" 含「禁用修改」处方库模板,药材已锁定,不可增删改,如需调整请重新「从处方库导入」覆盖 ",-1))])):v("",!0),d("div",tn,[d("div",an,[t(A,{type:"primary",size:"small"},{default:s(()=>[...e[142]||(e[142]=[f("主方",-1)])]),_:1}),t(y,{type:"primary",size:"small",disabled:M.value,onClick:e[19]||(e[19]=l=>Ot("主方"))},{default:s(()=>[...e[143]||(e[143]=[f("添加主方药材",-1)])]),_:1},8,["disabled"])]),t(z,{data:ra.value,class:"mt-2",border:"","empty-text":"暂无主方药材"},{default:s(()=>[t(N,{label:"序号",type:"index",width:"60"}),t(N,{label:"药材名称","min-width":"220"},{default:s(({row:l})=>[t(zt,{modelValue:n.herbs[l.index].name,"onUpdate:modelValue":C=>n.herbs[l.index].name=C,"medicine-id":n.herbs[l.index].medicine_id,"onUpdate:medicineId":C=>n.herbs[l.index].medicine_id=C,disabled:M.value,class:"w-full"},null,8,["modelValue","onUpdate:modelValue","medicine-id","onUpdate:medicineId","disabled"])]),_:1}),t(N,{label:"剂量(克)","min-width":"120"},{default:s(({row:l})=>[t(T,{modelValue:n.herbs[l.index].dosage,"onUpdate:modelValue":C=>n.herbs[l.index].dosage=C,min:0,precision:1,step:.5,disabled:M.value,placeholder:"剂量",class:"w-full"},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:1}),t(N,{label:"操作",width:"80"},{default:s(({row:l})=>[M.value?(_(),h("span",ln,"已锁定")):(_(),c(y,{key:0,type:"danger",link:"",onClick:C=>Lt(l.index)},{default:s(()=>[...e[144]||(e[144]=[f("删除",-1)])]),_:1},8,["onClick"]))]),_:1})]),_:1},8,["data"])]),d("div",sn,[d("div",nn,[t(A,{type:"warning",size:"small"},{default:s(()=>[...e[145]||(e[145]=[f("辅方",-1)])]),_:1}),t(y,{type:"primary",size:"small",plain:"",disabled:M.value,onClick:e[20]||(e[20]=l=>Ot("辅方"))},{default:s(()=>[...e[146]||(e[146]=[f(" 添加辅方药材 ",-1)])]),_:1},8,["disabled"])]),t(z,{data:yt.value,class:"mt-2",border:"","empty-text":"暂无辅方药材"},{default:s(()=>[t(N,{label:"序号",type:"index",width:"60"}),t(N,{label:"药材名称","min-width":"220"},{default:s(({row:l})=>[t(zt,{modelValue:n.herbs[l.index].name,"onUpdate:modelValue":C=>n.herbs[l.index].name=C,"medicine-id":n.herbs[l.index].medicine_id,"onUpdate:medicineId":C=>n.herbs[l.index].medicine_id=C,disabled:M.value,class:"w-full"},null,8,["modelValue","onUpdate:modelValue","medicine-id","onUpdate:medicineId","disabled"])]),_:1}),t(N,{label:"剂量(克)","min-width":"120"},{default:s(({row:l})=>[t(T,{modelValue:n.herbs[l.index].dosage,"onUpdate:modelValue":C=>n.herbs[l.index].dosage=C,min:0,precision:1,step:.5,disabled:M.value,placeholder:"剂量",class:"w-full"},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:1}),t(N,{label:"操作",width:"80"},{default:s(({row:l})=>[M.value?(_(),h("span",on,"已锁定")):(_(),c(y,{key:0,type:"danger",link:"",onClick:C=>Lt(l.index)},{default:s(()=>[...e[147]||(e[147]=[f("删除",-1)])]),_:1},8,["onClick"]))]),_:1})]),_:1},8,["data"])]),D.value==="edit"?O((_(),c(U,{key:1,type:"warning",closable:!1,"show-icon":"",class:"mt-3"},{title:s(()=>[...e[148]||(e[148]=[f("业务订单要求(请与本处方保持一致)",-1)])]),default:s(()=>[d("div",rn,[P.orderNo||P.medicationDays!=null||P.remarkAssistant?(_(),h(I,{key:0},[P.orderNo?(_(),h("p",un,[e[149]||(e[149]=f(" 最近关联订单(按创建倒序): ",-1)),d("span",dn,b(P.orderNo),1)])):v("",!0),d("p",pn,[e[150]||(e[150]=d("span",{class:"font-semibold"},"服用天数(订单)",-1)),f(" "+b(P.medicationDays!=null?`${P.medicationDays} 天`:"— 订单未填写"),1)]),d("p",null,[e[151]||(e[151]=d("span",{class:"font-semibold"},"医助备注(订单)",-1)),e[152]||(e[152]=f(" ",-1)),d("span",mn,b(P.remarkAssistant||"— 无"),1)])],64)):P.loading?v("",!0):(_(),h("p",_n,[...e[153]||(e[153]=[f(" 当前处方暂无关联业务订单,或您无订单列表权限;若有订单,将在此处显示订单内 ",-1),d("span",{class:"font-semibold"},"服用天数",-1),f("与 ",-1),d("span",{class:"font-semibold"},"医助备注",-1),f("。 ",-1)])]))])]),_:1})),[[Le,P.loading]]):v("",!0)])]),_:1}),t(q,{gutter:20},{default:s(()=>[t(V,{span:8},{default:s(()=>[t(u,{label:"剂数",prop:"dose_count"},{default:s(()=>[t(T,{modelValue:n.dose_count,"onUpdate:modelValue":e[21]||(e[21]=l=>n.dose_count=l),min:1,placeholder:"剂数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:8},{default:s(()=>[t(u,{label:"剂量单位",prop:"dose_unit"},{default:s(()=>[t(x,{modelValue:n.dose_unit,"onUpdate:modelValue":e[22]||(e[22]=l=>n.dose_unit=l),placeholder:"请选择",class:"w-full"},{default:s(()=>[t(i,{label:"剂",value:"剂"}),t(i,{label:"丸",value:"丸"}),t(i,{label:"袋",value:"袋"}),t(i,{label:"盒",value:"盒"}),t(i,{label:"瓶",value:"瓶"}),t(i,{label:"膏",value:"膏"}),t(i,{label:"贴",value:"贴"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(V,{span:8},{default:s(()=>[t(u,{label:"处方类型",prop:"prescription_type"},{default:s(()=>[t(x,{modelValue:n.prescription_type,"onUpdate:modelValue":e[23]||(e[23]=l=>n.prescription_type=l),placeholder:"请选择处方类型",class:"w-full"},{default:s(()=>[t(i,{label:"浓缩水丸",value:"浓缩水丸"}),t(i,{label:"饮片",value:"饮片"}),t(i,{label:"颗粒",value:"颗粒"}),t(i,{label:"丸剂",value:"丸剂"}),t(i,{label:"散剂",value:"散剂"}),t(i,{label:"膏方",value:"膏方"}),t(i,{label:"汤剂",value:"汤剂"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),e[161]||(e[161]=d("div",{class:"usage-formula-title usage-formula-title--main"},"主方用法",-1)),t(q,{gutter:20},{default:s(()=>[t(V,{span:8},{default:s(()=>[t(u,{label:"用量",prop:"dosage_amount"},{default:s(()=>[n.prescription_type==="浓缩水丸"?(_(),c(x,{key:0,modelValue:n.dosage_amount,"onUpdate:modelValue":e[24]||(e[24]=l=>n.dosage_amount=l),placeholder:"请选择用量",class:"w-full"},{default:s(()=>[t(i,{label:"1g",value:1}),t(i,{label:"2g",value:2}),t(i,{label:"3g",value:3}),t(i,{label:"4g",value:4}),t(i,{label:"5g",value:5}),t(i,{label:"6g",value:6}),t(i,{label:"7g",value:7}),t(i,{label:"8g",value:8}),t(i,{label:"9g",value:9}),t(i,{label:"10g",value:10})]),_:1},8,["modelValue"])):n.prescription_type==="饮片"?(_(),c(x,{key:1,modelValue:n.dosage_amount,"onUpdate:modelValue":e[25]||(e[25]=l=>n.dosage_amount=l),placeholder:"请选择用量",class:"w-full"},{default:s(()=>[t(i,{label:"50ml",value:50}),t(i,{label:"100ml",value:100}),t(i,{label:"120ml",value:120}),t(i,{label:"150ml",value:150}),t(i,{label:"180ml",value:180}),t(i,{label:"200ml",value:200}),t(i,{label:"250ml",value:250})]),_:1},8,["modelValue"])):(_(),c(T,{key:2,modelValue:n.dosage_amount,"onUpdate:modelValue":e[26]||(e[26]=l=>n.dosage_amount=l),min:0,precision:2,class:"w-full"},null,8,["modelValue"]))]),_:1})]),_:1}),n.prescription_type==="浓缩水丸"?(_(),c(V,{key:0,span:8},{default:s(()=>[t(u,{label:" ",prop:"dosage_bag_count","label-width":"12px"},{default:s(()=>[t(x,{modelValue:n.dosage_bag_count,"onUpdate:modelValue":e[27]||(e[27]=l=>n.dosage_bag_count=l),placeholder:"请选择袋数",class:"w-[120px]"},{default:s(()=>[t(i,{label:"1袋",value:1}),t(i,{label:"2袋",value:2}),t(i,{label:"3袋",value:3}),t(i,{label:"4袋",value:4}),t(i,{label:"5袋",value:5})]),_:1},8,["modelValue"])]),_:1})]),_:1})):v("",!0),n.prescription_type==="饮片"?(_(),c(V,{key:1,span:8},{default:s(()=>[t(u,{label:"是否代煎",prop:"need_decoction"},{default:s(()=>[t(r,{modelValue:n.need_decoction,"onUpdate:modelValue":e[28]||(e[28]=l=>n.need_decoction=l)},{default:s(()=>[t(F,{label:!0},{default:s(()=>[...e[154]||(e[154]=[f("代煎",-1)])]),_:1}),t(F,{label:!1},{default:s(()=>[...e[155]||(e[155]=[f("不代煎",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})):v("",!0),n.prescription_type==="饮片"?(_(),c(V,{key:2,span:8},{default:s(()=>[t(u,{label:"每贴出包数",prop:"bags_per_dose"},{default:s(()=>[t(x,{modelValue:n.bags_per_dose,"onUpdate:modelValue":e[29]||(e[29]=l=>n.bags_per_dose=l),placeholder:"请选择",class:"w-full"},{default:s(()=>[t(i,{label:"1包",value:1}),t(i,{label:"2包",value:2}),t(i,{label:"3包",value:3}),t(i,{label:"4包",value:4}),t(i,{label:"5包",value:5}),t(i,{label:"6包",value:6}),t(i,{label:"7包",value:7}),t(i,{label:"8包",value:8}),t(i,{label:"9包",value:9})]),_:1},8,["modelValue"])]),_:1})]),_:1})):v("",!0),t(V,{span:8},{default:s(()=>[t(u,{label:"每天几次",prop:"times_per_day"},{default:s(()=>[t(T,{modelValue:n.times_per_day,"onUpdate:modelValue":e[30]||(e[30]=l=>n.times_per_day=l),min:1,max:6,class:"!w-full",placeholder:"每天服用次数"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:8},{default:s(()=>[t(u,{label:"服用天数",prop:"usage_days"},{default:s(()=>[t(T,{modelValue:n.usage_days,"onUpdate:modelValue":e[31]||(e[31]=l=>n.usage_days=l),min:1,max:365,placeholder:"服用天数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),yt.value.length>0?(_(),h(I,{key:6},[e[158]||(e[158]=d("div",{class:"usage-formula-title usage-formula-title--aux"},"辅方用法",-1)),t(q,{gutter:20},{default:s(()=>[t(V,{span:8},{default:s(()=>[t(u,{label:"用量"},{default:s(()=>[n.prescription_type==="浓缩水丸"?(_(),c(x,{key:0,modelValue:n.aux_usage.dosage_amount,"onUpdate:modelValue":e[32]||(e[32]=l=>n.aux_usage.dosage_amount=l),placeholder:"请选择用量",class:"w-full"},{default:s(()=>[(_(),h(I,null,Z(10,l=>t(i,{key:l,label:l+"g",value:l},null,8,["label","value"])),64))]),_:1},8,["modelValue"])):n.prescription_type==="饮片"?(_(),c(x,{key:1,modelValue:n.aux_usage.dosage_amount,"onUpdate:modelValue":e[33]||(e[33]=l=>n.aux_usage.dosage_amount=l),placeholder:"请选择用量",class:"w-full"},{default:s(()=>[t(i,{label:"50ml",value:50}),t(i,{label:"100ml",value:100}),t(i,{label:"120ml",value:120}),t(i,{label:"150ml",value:150}),t(i,{label:"180ml",value:180}),t(i,{label:"200ml",value:200}),t(i,{label:"250ml",value:250})]),_:1},8,["modelValue"])):(_(),c(T,{key:2,modelValue:n.aux_usage.dosage_amount,"onUpdate:modelValue":e[34]||(e[34]=l=>n.aux_usage.dosage_amount=l),min:0,precision:2,class:"w-full"},null,8,["modelValue"]))]),_:1})]),_:1}),n.prescription_type==="浓缩水丸"?(_(),c(V,{key:0,span:8},{default:s(()=>[t(u,{label:" ","label-width":"12px"},{default:s(()=>[t(x,{modelValue:n.aux_usage.dosage_bag_count,"onUpdate:modelValue":e[35]||(e[35]=l=>n.aux_usage.dosage_bag_count=l),placeholder:"请选择袋数",class:"w-[120px]"},{default:s(()=>[t(i,{label:"1袋",value:1}),t(i,{label:"2袋",value:2}),t(i,{label:"3袋",value:3}),t(i,{label:"4袋",value:4}),t(i,{label:"5袋",value:5})]),_:1},8,["modelValue"])]),_:1})]),_:1})):v("",!0),n.prescription_type==="饮片"?(_(),c(V,{key:1,span:8},{default:s(()=>[t(u,{label:"是否代煎"},{default:s(()=>[t(r,{modelValue:n.aux_usage.need_decoction,"onUpdate:modelValue":e[36]||(e[36]=l=>n.aux_usage.need_decoction=l)},{default:s(()=>[t(F,{label:!0},{default:s(()=>[...e[156]||(e[156]=[f("代煎",-1)])]),_:1}),t(F,{label:!1},{default:s(()=>[...e[157]||(e[157]=[f("不代煎",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})):v("",!0),n.prescription_type==="饮片"?(_(),c(V,{key:2,span:8},{default:s(()=>[t(u,{label:"每贴出包数"},{default:s(()=>[t(x,{modelValue:n.aux_usage.bags_per_dose,"onUpdate:modelValue":e[37]||(e[37]=l=>n.aux_usage.bags_per_dose=l),placeholder:"请选择",class:"w-full"},{default:s(()=>[(_(),h(I,null,Z(9,l=>t(i,{key:l,label:l+"包",value:l},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),_:1})]),_:1})):v("",!0),t(V,{span:8},{default:s(()=>[t(u,{label:"每天几次"},{default:s(()=>[t(T,{modelValue:n.aux_usage.times_per_day,"onUpdate:modelValue":e[38]||(e[38]=l=>n.aux_usage.times_per_day=l),min:1,max:6,class:"!w-full",placeholder:"每天服用次数"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:8},{default:s(()=>[t(u,{label:"服用天数"},{default:s(()=>[t(T,{modelValue:n.aux_usage.usage_days,"onUpdate:modelValue":e[39]||(e[39]=l=>n.aux_usage.usage_days=l),min:1,max:365,placeholder:"服用天数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],64)):v("",!0),t(u,{label:"用法",prop:"usage_instruction"},{default:s(()=>[t(m,{modelValue:n.usage_instruction,"onUpdate:modelValue":e[40]||(e[40]=l=>n.usage_instruction=l),placeholder:"例如:水煎服,一日二次",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(q,{gutter:20},{default:s(()=>[t(V,{span:12},{default:s(()=>[t(u,{label:"服用时间",prop:"usage_time"},{default:s(()=>[t(x,{modelValue:n.usage_time,"onUpdate:modelValue":e[41]||(e[41]=l=>n.usage_time=l),placeholder:"请选择服用时间",class:"w-full"},{default:s(()=>[t(i,{label:"饭前",value:"饭前"}),t(i,{label:"饭后",value:"饭后"}),t(i,{label:"饭中",value:"饭中"}),t(i,{label:"空腹",value:"空腹"}),t(i,{label:"睡前",value:"睡前"}),t(i,{label:"晨起",value:"晨起"}),t(i,{label:"随时",value:"随时"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"服用方式",prop:"usage_way"},{default:s(()=>[t(x,{modelValue:n.usage_way,"onUpdate:modelValue":e[42]||(e[42]=l=>n.usage_way=l),placeholder:"请选择服用方式",class:"w-full"},{default:s(()=>[t(i,{label:"温水送服",value:"温水送服"}),t(i,{label:"开水冲服",value:"开水冲服"}),t(i,{label:"黄酒送服",value:"黄酒送服"}),t(i,{label:"淡盐水送服",value:"淡盐水送服"}),t(i,{label:"米汤送服",value:"米汤送服"}),t(i,{label:"嚼服",value:"嚼服"}),t(i,{label:"含化",value:"含化"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(u,{label:"忌口",prop:"dietary_taboo"},{default:s(()=>[t(x,{modelValue:n.dietary_taboo,"onUpdate:modelValue":e[43]||(e[43]=l=>n.dietary_taboo=l),multiple:"",placeholder:"请选择忌口内容(可多选)",class:"w-full"},{default:s(()=>[t(i,{label:"辛辣食物",value:"辛辣食物"}),t(i,{label:"生冷食物",value:"生冷食物"}),t(i,{label:"油腻食物",value:"油腻食物"}),t(i,{label:"海鲜",value:"海鲜"}),t(i,{label:"牛羊肉",value:"牛羊肉"}),t(i,{label:"鸡蛋",value:"鸡蛋"}),t(i,{label:"豆制品",value:"豆制品"}),t(i,{label:"酒类",value:"酒类"}),t(i,{label:"浓茶",value:"浓茶"}),t(i,{label:"咖啡",value:"咖啡"}),t(i,{label:"烟草",value:"烟草"}),t(i,{label:"萝卜",value:"萝卜"})]),_:1},8,["modelValue"])]),_:1}),t(u,{label:"其他说明",prop:"usage_notes"},{default:s(()=>[t(m,{modelValue:n.usage_notes,"onUpdate:modelValue":e[44]||(e[44]=l=>n.usage_notes=l),type:"textarea",rows:2,placeholder:"其他服用注意事项",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(u,{label:"医师姓名",prop:"doctor_name"},{default:s(()=>[t(m,{modelValue:n.doctor_name,"onUpdate:modelValue":e[45]||(e[45]=l=>n.doctor_name=l),placeholder:"请输入医师姓名"},null,8,["modelValue"])]),_:1}),t(u,{label:"医师签名",prop:"doctor_signature",required:""},{default:s(()=>[d("div",fn,[d("canvas",{ref_key:"signatureCanvasRef",ref:K,class:"signature-canvas",onPointerdown:we(Ea,["prevent"]),onPointermove:we(Da,["prevent"]),onPointerup:we(Nt,["prevent"]),onPointercancel:we(Nt,["prevent"])},null,544),d("div",cn,[t(y,{size:"small",onClick:Ra},{default:s(()=>[...e[159]||(e[159]=[f("清空签名",-1)])]),_:1})])]),e[160]||(e[160]=d("div",{class:"text-xs text-amber-600 mt-1"},"* 必填,请在框内手写医师签名",-1))]),_:1})]),_:1},8,["model"]))]),_:1},8,["modelValue","title","size"]),t(he,{modelValue:_e.value,"onUpdate:modelValue":e[53]||(e[53]=l=>_e.value=l),title:"修正姓名、性别与手机号",width:"440px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:qt},{footer:s(()=>[t(y,{onClick:e[52]||(e[52]=l=>_e.value=!1)},{default:s(()=>[...e[167]||(e[167]=[f("取消",-1)])]),_:1}),t(y,{type:"primary",loading:He.value,onClick:Wt},{default:s(()=>[...e[168]||(e[168]=[f(" 保存 ",-1)])]),_:1},8,["loading"])]),default:s(()=>[t(H,{ref_key:"patchPatientFormRef",ref:qe,model:$,rules:Mt,"label-width":"88px"},{default:s(()=>[t(u,{label:"处方编号"},{default:s(()=>[d("span",gn,"#"+b($.id||"—"),1)]),_:1}),t(u,{label:"患者姓名",prop:"patient_name"},{default:s(()=>[t(m,{modelValue:$.patient_name,"onUpdate:modelValue":e[49]||(e[49]=l=>$.patient_name=l),maxlength:"50","show-word-limit":"",placeholder:"处方笺展示姓名"},null,8,["modelValue"])]),_:1}),t(u,{label:"性别",prop:"gender"},{default:s(()=>[t(r,{modelValue:$.gender,"onUpdate:modelValue":e[50]||(e[50]=l=>$.gender=l)},{default:s(()=>[t(F,{label:1},{default:s(()=>[...e[165]||(e[165]=[f("男",-1)])]),_:1}),t(F,{label:0},{default:s(()=>[...e[166]||(e[166]=[f("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(u,{label:"手机号",prop:"phone"},{default:s(()=>[t(m,{modelValue:$.phone,"onUpdate:modelValue":e[51]||(e[51]=l=>$.phone=l),maxlength:"20",placeholder:"处方笺展示手机号"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),e[169]||(e[169]=d("p",{class:"text-xs text-gray-500 -mt-2 mb-2"}," 仅更新处方表 patient_name、gender、phone,不改变审核状态;记录写入业务订单操作日志(有关联订单时可在此订单日志中查看)。 ",-1))]),_:1},8,["modelValue"]),t(he,{modelValue:fe.value,"onUpdate:modelValue":e[72]||(e[72]=l=>fe.value=l),title:"创建业务订单",width:"940px",top:"4vh","close-on-click-modal":!1,onClosed:gt,class:"create-order-dialog"},{footer:s(()=>[d("div",Mn,[d("div",Hn,[d("span",qn,"第 "+b(R.value+1)+" / 3 步",1),R.value===2&&E.value>0?(_(),h("span",Wn," 订单金额与关联支付单合计须 ≥ ¥"+b(ue(E.value)),1)):v("",!0)]),d("div",Bn,[t(y,{size:"large",onClick:e[71]||(e[71]=l=>fe.value=!1)},{default:s(()=>[...e[180]||(e[180]=[f("取消",-1)])]),_:1}),R.value>0?(_(),c(y,{key:0,size:"large",onClick:na},{default:s(()=>[...e[181]||(e[181]=[f("上一步",-1)])]),_:1})):v("",!0),R.value<2?(_(),c(y,{key:1,type:"primary",size:"large",onClick:oa},{default:s(()=>[...e[182]||(e[182]=[f(" 下一步 ",-1)])]),_:1})):v("",!0),R.value===2?(_(),c(y,{key:2,type:"primary",size:"large",loading:We.value,onClick:ia},{default:s(()=>[...e[183]||(e[183]=[f(" 创建业务订单 ",-1)])]),_:1},8,["loading"])):v("",!0)])])]),default:s(()=>[d("div",bn,[B.value?(_(),h("div",vn,[d("div",yn,[e[170]||(e[170]=d("span",{class:"create-order-rx-card__badge"},"关联处方",-1)),d("div",xn,[d("span",Vn,"#"+b(B.value.id),1),B.value.sn?(_(),h("span",kn,b(B.value.sn),1)):v("",!0),d("span",hn,b(B.value.patient_name||"—"),1)])])])):v("",!0),t(al,{active:R.value,"finish-status":"success","align-center":"",class:"create-order-steps"},{default:s(()=>[t(it,{title:"患者与收货",description:"诊单与物流地址"}),t(it,{title:"服务与支付单",description:"套餐与关联收款"}),t(it,{title:"金额与确认",description:"费用与备注"})]),_:1},8,["active"]),d("p",wn,b(Bt.value),1),t(H,{ref_key:"createOrderFormRef",ref:ce,model:p,rules:ea.value,"label-width":"108px",class:"create-order-form"},{default:s(()=>[O(d("div",Sn,[t(q,{gutter:20},{default:s(()=>[t(V,{span:24},{default:s(()=>[t(u,{label:"诊单患者",prop:"patient_id"},{default:s(()=>[t(x,{modelValue:p.patient_id,"onUpdate:modelValue":e[54]||(e[54]=l=>p.patient_id=l),class:"w-full",placeholder:"搜索姓名/手机/身份证",filterable:"",remote:"","remote-method":la,loading:Be.value,onChange:sa},{default:s(()=>[(_(!0),h(I,null,Z(X.value,l=>(_(),c(i,{key:l.id,label:`${l.patient_name} (${l.phone||"无手机"})`,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"收货人",prop:"recipient_name"},{default:s(()=>[t(m,{modelValue:p.recipient_name,"onUpdate:modelValue":e[55]||(e[55]=l=>p.recipient_name=l),placeholder:"姓名",maxlength:"50"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"收货手机",prop:"recipient_phone"},{default:s(()=>[t(m,{modelValue:p.recipient_phone,"onUpdate:modelValue":e[56]||(e[56]=l=>p.recipient_phone=l),placeholder:"物流联系",maxlength:"20"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:24},{default:s(()=>[t(u,{label:"省市区",prop:"region"},{default:s(()=>[t(ll,{modelValue:p.region,"onUpdate:modelValue":e[57]||(e[57]=l=>p.region=l),options:ge.value,props:{value:"name",label:"name",children:"children",emitPath:!0,checkStrictly:!1},placeholder:"省 / 市 / 区",clearable:"",filterable:"",class:"w-full",onChange:Xt},null,8,["modelValue","options"])]),_:1})]),_:1}),t(V,{span:24},{default:s(()=>[t(u,{label:"详细地址",prop:"shipping_address"},{default:s(()=>[t(m,{modelValue:p.shipping_address,"onUpdate:modelValue":e[58]||(e[58]=l=>p.shipping_address=l),type:"textarea",rows:3,placeholder:"街道、小区、门牌号等详细地址",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[dt,R.value===0]]),O(d("div",Cn,[t(q,{gutter:20},{default:s(()=>[Gt.value?(_(),c(V,{key:0,span:24},{default:s(()=>[t(u,{label:"发货药房",prop:"ship_mode"},{default:s(()=>[t(r,{modelValue:p.ship_mode,"onUpdate:modelValue":e[59]||(e[59]=l=>p.ship_mode=l)},{default:s(()=>[t(o,{label:"gancao"},{default:s(()=>[...e[171]||(e[171]=[f("甘草药房",-1)])]),_:1}),t(o,{label:"direct"},{default:s(()=>[...e[172]||(e[172]=[f("洛阳药房",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})):v("",!0),t(V,{xs:24,sm:8},{default:s(()=>[t(u,{label:"复诊"},{default:s(()=>[t(sl,{modelValue:p.is_follow_up,"onUpdate:modelValue":e[60]||(e[60]=l=>p.is_follow_up=l),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{xs:24,sm:8},{default:s(()=>[t(u,{label:"服用天数",class:"create-order-form-item--inline-num"},{default:s(()=>[d("div",Nn,[t(T,{modelValue:p.medication_days,"onUpdate:modelValue":e[61]||(e[61]=l=>p.medication_days=l),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[173]||(e[173]=d("span",{class:"create-order-unit-suffix"},"天",-1))])]),_:1})]),_:1}),t(V,{xs:24,sm:8},{default:s(()=>[t(u,{label:"上次医生"},{default:s(()=>[t(m,{modelValue:p.prev_staff,"onUpdate:modelValue":e[62]||(e[62]=l=>p.prev_staff=l),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"服务渠道"},{default:s(()=>[t(m,{modelValue:p.service_channel,"onUpdate:modelValue":e[63]||(e[63]=l=>p.service_channel=l),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"服务套餐"},{default:s(()=>[t(x,{modelValue:p.service_package,"onUpdate:modelValue":e[64]||(e[64]=l=>p.service_package=l),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"请选择服务套餐",clearable:"",class:"w-full"},{default:s(()=>[(_(!0),h(I,null,Z(Ge.value,l=>(_(),c(i,{key:l.value,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(V,{span:24},{default:s(()=>[t(u,{label:"关联支付单",prop:"pay_order_ids"},{default:s(()=>[t(x,{modelValue:p.pay_order_ids,"onUpdate:modelValue":e[65]||(e[65]=l=>p.pay_order_ids=l),class:"w-full",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:E.value>0?"请至少选择一笔本诊单支付单(已开启门槛)":"多选本诊单支付单(可选)",loading:Ye.value},{default:s(()=>[(_(!0),h(I,null,Z(re.value,l=>(_(),c(i,{key:l.id,label:`${l.order_no} · ¥${l.amount} · ${ct(l.order_type)}`,value:l.id,class:"!h-auto py-1.5"},{default:s(()=>[d("div",Un,[d("div",Pn,[d("span",$n,b(l.order_no),1),d("span",En,"¥"+b(l.amount),1)]),d("div",Dn,[d("span",Rn,[f(b(ct(l.order_type)),1),l.remark?(_(),h(I,{key:0},[f(" · "+b(l.remark),1)],64)):v("",!0)]),d("span",An,b(String(l.create_time||"").substring(0,16)),1)])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","loading"]),d("div",On,[E.value>0?(_(),h(I,{key:0},[d("span",Ln,"当前已开启关联支付门槛(¥"+b(ue(E.value))+"),须至少选择一笔支付单。",1),e[174]||(e[174]=d("span",{class:"mx-1"},null,-1))],64)):v("",!0),e[176]||(e[176]=f(" 主管/本诊单医助可见全部支付单;否则仅本人收款单。已被占用的支付单不列出。 ",-1)),t(nl,{content:"主管或本诊单医助可见该诊单全部支付单(待支付/已支付),否则仅本人创建的收款单。已被其他有效业务订单占用的支付单不会出现在此列表。",placement:"top"},{default:s(()=>[...e[175]||(e[175]=[d("span",{class:"text-primary cursor-help ml-0.5"},"详情",-1)])]),_:1})])]),_:1})]),_:1})]),_:1})],512),[[dt,R.value===1]]),O(d("div",zn,[d("div",{class:Fl(["create-order-deposit-bar",Ke.value>=E.value?"is-ok":"is-warn"])},[d("div",Tn,[e[177]||(e[177]=d("span",{class:"create-order-deposit-bar__label"},"定金门槛",-1)),d("strong",null,"¥"+b(ue(E.value)),1),d("span",In,b(E.value>0?"须 ≥ 此值":"未设置"),1)]),e[179]||(e[179]=d("div",{class:"create-order-deposit-bar__sep"},null,-1)),d("div",Fn,[e[178]||(e[178]=d("span",{class:"create-order-deposit-bar__label"},"已选收款",-1)),d("strong",null,"¥"+b(ue(Ke.value)),1),d("span",jn,b(Ke.value>=E.value?"已达标":"未达标"),1)])],2),t(q,{gutter:20,class:"create-order-step-panel__row-after-bar"},{default:s(()=>[t(V,{span:12},{default:s(()=>[t(u,{label:"费用类别",prop:"fee_type"},{default:s(()=>[t(x,{modelValue:p.fee_type,"onUpdate:modelValue":e[66]||(e[66]=l=>p.fee_type=l),placeholder:"请选择",class:"w-full"},{default:s(()=>[t(i,{label:"挂号费",value:1}),t(i,{label:"问诊费",value:2}),t(i,{label:"药品费用",value:3}),t(i,{label:"首付费用",value:4}),t(i,{label:"尾款费用",value:5}),t(i,{label:"其他费用",value:6}),t(i,{label:"全部费用",value:7}),t(i,{label:"驼奶费用",value:8})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(V,{span:12},{default:s(()=>[t(u,{label:"总金额",prop:"amount"},{default:s(()=>[t(T,{modelValue:p.amount,"onUpdate:modelValue":e[67]||(e[67]=l=>p.amount=l),min:Zt.value,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"元"},null,8,["modelValue","min"])]),_:1})]),_:1}),O((_(),c(V,{span:12},{default:s(()=>[t(u,{label:"内部成本"},{default:s(()=>[t(T,{modelValue:p.internal_cost,"onUpdate:modelValue":e[68]||(e[68]=l=>p.internal_cost=l),min:0,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"财务可见"},null,8,["modelValue"])]),_:1})]),_:1})),[[W,["finance.account_log/lists"]]]),t(V,{span:24},{default:s(()=>[O((_(),c(u,{label:"药房备注"},{default:s(()=>[t(m,{modelValue:p.remark_extra,"onUpdate:modelValue":e[69]||(e[69]=l=>p.remark_extra=l),type:"textarea",rows:3,placeholder:"选填,对内说明",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})),[[W,["tcm.prescriptionOrder/editRemarkExtra"]]]),t(u,{label:"医助备注"},{default:s(()=>[t(m,{modelValue:p.remark_assistant,"onUpdate:modelValue":e[70]||(e[70]=l=>p.remark_assistant=l),type:"textarea",rows:3,placeholder:"选填,医助对内说明",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[dt,R.value===2]])]),_:1},8,["model","rules"])])]),_:1},8,["modelValue"]),t(he,{modelValue:ve.value,"onUpdate:modelValue":e[78]||(e[78]=l=>ve.value=l),title:"从处方库导入",width:"800px","close-on-click-modal":!1},{default:s(()=>[d("div",Yn,[t(m,{modelValue:De.value,"onUpdate:modelValue":e[73]||(e[73]=l=>De.value=l),class:"flex-1",placeholder:"请输入处方名称搜索",clearable:"",onKeyup:ut(Oe,["enter"]),onClear:Oe},{append:s(()=>[t(y,{icon:j(jl),onClick:Oe},null,8,["icon"])]),_:1},8,["modelValue"]),t(x,{modelValue:Re.value,"onUpdate:modelValue":e[74]||(e[74]=l=>Re.value=l),placeholder:"处方类型",clearable:"",class:"w-[140px]",onChange:Oe},{default:s(()=>[t(i,{label:"全部",value:""}),t(i,{label:"主方",value:"主方"}),t(i,{label:"辅方",value:"辅方"})]),_:1},8,["modelValue"])]),d("div",Gn,[e[186]||(e[186]=d("span",{class:"text-sm text-gray-600 shrink-0"},"导入方式",-1)),t(r,{modelValue:ye.value,"onUpdate:modelValue":e[75]||(e[75]=l=>ye.value=l)},{default:s(()=>[t(F,{label:"replace"},{default:s(()=>[...e[184]||(e[184]=[f("覆盖现有药材",-1)])]),_:1}),t(F,{label:"append"},{default:s(()=>[...e[185]||(e[185]=[f("追加到末尾",-1)])]),_:1})]),_:1},8,["modelValue"])]),O((_(),c(z,{data:et.value,height:"400",style:{cursor:"pointer"},onRowClick:Ia},{default:s(()=>[t(N,{label:"处方名称",prop:"prescription_name","min-width":"150","show-overflow-tooltip":""}),t(N,{label:"处方类型",width:"90"},{default:s(({row:l})=>[t(A,{type:l.formula_type==="辅方"?"warning":"primary",size:"small"},{default:s(()=>[f(b(l.formula_type||"主方"),1)]),_:2},1032,["type"])]),_:1}),t(N,{label:"药材数量",width:"100"},{default:s(({row:l})=>{var C;return[f(b(((C=l.herbs)==null?void 0:C.length)||0)+"味 ",1)]}),_:1}),t(N,{label:"药材明细","min-width":"300","show-overflow-tooltip":""},{default:s(({row:l})=>[l.herbs&&l.herbs.length>0?(_(),h("span",Kn,b(l.herbs.map(C=>`${C.name} ${C.dosage}g`).join("、")),1)):(_(),h("span",Jn,"暂无药材"))]),_:1}),t(N,{label:"是否公开",width:"110"},{default:s(({row:l})=>[t(A,{type:l.is_public?"success":"info",size:"small"},{default:s(()=>[f(b(l.is_public?"所有人可见":"仅自己可见"),1)]),_:2},1032,["type"])]),_:1}),t(N,{label:"创建人",prop:"creator_name",width:"100"}),t(N,{label:"操作",width:"100",fixed:"right"},{default:s(({row:l})=>[t(y,{type:"primary",link:"",onClick:we(C=>Rt(l),["stop"])},{default:s(()=>[...e[187]||(e[187]=[f("导入",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[Le,Ze.value]]),d("div",Qn,[t(ol,{"current-page":xe.value,"onUpdate:currentPage":e[76]||(e[76]=l=>xe.value=l),"page-size":tt.value,"onUpdate:pageSize":e[77]||(e[77]=l=>tt.value=l),total:at.value,"page-sizes":[10,15,20,50],layout:"total, sizes, prev, pager, next",onCurrentChange:Ae,onSizeChange:Ae},null,8,["current-page","page-size","total"])])]),_:1},8,["modelValue"]),t(he,{modelValue:Ve.value,"onUpdate:modelValue":e[82]||(e[82]=l=>Ve.value=l),title:"导入药方(识别药材)",width:"560px","close-on-click-modal":!1,"destroy-on-close":"",onClosed:e[83]||(e[83]=l=>ke.value="")},{footer:s(()=>[t(y,{onClick:e[81]||(e[81]=l=>Ve.value=!1)},{default:s(()=>[...e[191]||(e[191]=[f("取消",-1)])]),_:1}),t(y,{type:"primary",loading:st.value,onClick:Ya},{default:s(()=>[...e[192]||(e[192]=[f(" 识别并导入 ",-1)])]),_:1},8,["loading"])]),default:s(()=>[e[193]||(e[193]=d("p",{class:"text-gray-500 text-sm mb-2 leading-relaxed"}," 粘贴整张药方文本,系统按「药名 + 剂量」解析;药名须与药品库中名称完全一致才会录入,否则跳过。支持顿号/逗号/换行分隔;单行可用空格分味(如「黄芪15g 白术10g」);「黄芪、党参各10克」等同剂量写法亦可识别。 ",-1)),t(m,{modelValue:ke.value,"onUpdate:modelValue":e[79]||(e[79]=l=>ke.value=l),type:"textarea",rows:10,placeholder:`示例:
黄芪15 党参12 茯苓10
柴胡10g、黄芩10、半夏12克
黄芪、白术、茯苓各15克`},null,8,["modelValue"]),d("div",Xn,[e[190]||(e[190]=d("span",{class:"text-sm text-gray-600 shrink-0"},"导入方式",-1)),t(r,{modelValue:lt.value,"onUpdate:modelValue":e[80]||(e[80]=l=>lt.value=l)},{default:s(()=>[t(F,{label:"replace"},{default:s(()=>[...e[188]||(e[188]=[f("覆盖现有药材",-1)])]),_:1}),t(F,{label:"append"},{default:s(()=>[...e[189]||(e[189]=[f("追加到末尾",-1)])]),_:1})]),_:1},8,["modelValue"])])]),_:1},8,["modelValue"]),t(he,{modelValue:me.value,"onUpdate:modelValue":e[88]||(e[88]=l=>me.value=l),title:"处方审核",width:"480px","destroy-on-close":"",onClosed:e[89]||(e[89]=l=>ie.value="")},{footer:s(()=>[t(y,{onClick:e[85]||(e[85]=l=>me.value=!1)},{default:s(()=>[...e[194]||(e[194]=[f("取消",-1)])]),_:1}),t(y,{type:"primary",loading:Ne.value,onClick:e[86]||(e[86]=l=>$t("approve"))},{default:s(()=>[...e[195]||(e[195]=[f("审核通过",-1)])]),_:1},8,["loading"]),t(y,{type:"danger",loading:Ne.value,onClick:e[87]||(e[87]=l=>$t("reject"))},{default:s(()=>[...e[196]||(e[196]=[f("驳回处方",-1)])]),_:1},8,["loading"])]),default:s(()=>[e[197]||(e[197]=d("p",{class:"text-sm text-gray-600 mb-3"}," 通过:处方保持有效。驳回:将同时作废此处方(与诊间「驳回/作废处方」一致)。 ",-1)),t(H,{"label-width":"80px"},{default:s(()=>[t(u,{label:"审核意见"},{default:s(()=>[t(m,{modelValue:ie.value,"onUpdate:modelValue":e[84]||(e[84]=l=>ie.value=l),type:"textarea",rows:3,maxlength:"500","show-word-limit":"",placeholder:"通过可简要说明;驳回必填"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(j(It),{ref_key:"diagnosisViewRef",ref:Vt},null,512)])}}}),fo=Ql(eo,[["__scopeId","data-v-c1f4600c"]]);export{fo as default};