Files
zyt/server/public/admin/assets/index-CMRiS67k.js
T
2026-04-27 10:31:26 +08:00

3 lines
68 KiB
JavaScript

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-k0Sa2CWT.js","assets/element-plus-Uuzrfxfo.js","assets/@vue/runtime-dom-iFk_KP8y.js","assets/lodash-D3kF6u-c.js","assets/@vue/runtime-core-C0pg79pw.js","assets/@vue/reactivity-BIbyPIZJ.js","assets/@vue/shared-mAAVTE9n.js","assets/@element-plus/icons-vue-CRomrsQH.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-B1rSRs3z.css","assets/picker-CgoauV7D.js","assets/index-BAnDNdJu.js","assets/index-DVjedbgb.js","assets/jspdf-BsthCvR5.js","assets/@babel/runtime-BanGtE2-.js","assets/fflate-_ayOYiT1.js","assets/vue-router-CYz6RFzi.js","assets/pinia-Ba_jX6-d.js","assets/axios-C80V62Fs.js","assets/@vueuse/core-DIKi2bJB.js","assets/@vueuse/shared-D8934tfB.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-CZvD9OL_.js","assets/tslib-BDyQ-Jie.js","assets/zrender-BQyIY4j9.js","assets/highlight.js-Bxt7hFFy.js","assets/highlight-BfC0goYb.css","assets/@highlightjs/vue-plugin-BVMzZUvF.js","assets/index-BoOH446d.css","assets/index-B3imPWFk.css","assets/index-DY73_i2n.js","assets/index.vue_vue_type_script_setup_true_lang-DHyWBn5F.js","assets/index-CRDELoHJ.js","assets/index-D0f1Mn00.css","assets/index-CS9Onm8f.js","assets/index.vue_vue_type_script_setup_true_lang-BWR36OeO.js","assets/file-DhjMLLff.js","assets/usePaging-B_C_SZ2Z.js","assets/index-BYOmK9R5.css","assets/vuedraggable-C3E4D3Yv.js","assets/vue-tI-HfQaQ.js","assets/@vue/compiler-dom-CqayqxS7.js","assets/@vue/compiler-core-CvbQOXIO.js","assets/sortablejs-dsEAUXlE.js","assets/picker-CIDrzFI6.css","assets/tcm-CANUDsWd.js","assets/perm-tnYXDcWn.js","assets/BloodRecordList-CuHRmZrL.js","assets/BloodRecordList-BylWvD3v.css","assets/DietRecordList-DqhF2rgl.js","assets/DietRecordList-jaIK4Ffo.css","assets/ExerciseRecordList-BJwfqger.js","assets/ExerciseRecordList-JgQlmrdS.css","assets/CaseRecordList-BvXjjKAg.js","assets/CaseRecordList-otngLobo.css","assets/CallRecordPanel-DStdN-dO.js","assets/CallRecordPanel-D1yS2Ki-.css","assets/ImChatRecordPanel-msMdT0ID.js","assets/im-business-message-parse-ClZDqEhB.js","assets/ImChatRecordPanel-CO1Juvf9.css","assets/AssignLogPanel.vue_vue_type_script_setup_true_lang-C1ZDn-zs.js","assets/AppointmentRecordPanel-Dm8YJQzJ.js","assets/doctor-CCtIjrE-.js","assets/AppointmentRecordPanel-5TL68rh2.css","assets/index-IuLljAI8.js","assets/index-HWmRElvc.js","assets/medicine-CttNyC5l.js","assets/index-tfEElgYq.css","assets/diabetes-discovery-display-B_wmGXQJ.js","assets/html2canvas-QH1iLAAe.js","assets/index-7dVF45mm.css","assets/diagnosis-sync-events-Bb57o6Fi.js","assets/edit-C7VFeGlL.css"])))=>i.map(i=>d[i]);
import{_ as Ca}from"./jspdf-BsthCvR5.js";import{G as Sa,F as Na,D as Ua,B as Da,C as Pa,P as Ea,Q as Oa,i as $a,J as La,L as Aa,M as Ia,N as Ta,T as Ra,K as za,a3 as Ma,a4 as ja,I as Fa,h as qa,a2 as Ya,e as Wa,a5 as Ha,a6 as Ba,a7 as Ja,g as Ka,r as Ga,V as Qa,X as Xa}from"./element-plus-Uuzrfxfo.js";import{_ as Za}from"./index.vue_vue_type_script_setup_true_lang-DHyWBn5F.js";import{u as el,c as tl,i as w,m as al,_ as ll}from"./index-DVjedbgb.js";import{w as je,s as ue,q as Fe}from"./@vue/runtime-dom-iFk_KP8y.js";import{g as sl,p as il,a as qe,b as nl,c as ol,d as rl,e as ul,f as dl,h as pl,i as ml}from"./tcm-CANUDsWd.js";import{s as _l}from"./order-y6aJhQPp.js";import{r as cl}from"./role-C3HIxNsi.js";import{u as fl}from"./usePaging-B_C_SZ2Z.js";import{_ as gl}from"./index.vue_vue_type_script_setup_true_lang-D-3n-sHu.js";import{M as vl}from"./index-HWmRElvc.js";import{M as bl}from"./@element-plus/icons-vue-CRomrsQH.js";import{a as yl}from"./vue-router-CYz6RFzi.js";import{f as _t,w as Ve,b as Vl,as as kl,ak as d,I as v,a as t,aN as s,J as o,O as p,F as L,ap as X,G as y,aP as E,H as V,P as xl,A as q,n as de}from"./@vue/runtime-core-C0pg79pw.js";import{y as z,a as hl,r as Ye,o as b}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as _,o as wl}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-Ba_jX6-d.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-DIKi2bJB.js";import"./@vueuse/shared-D8934tfB.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-CZvD9OL_.js";import"./tslib-BDyQ-Jie.js";import"./zrender-BQyIY4j9.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";import"./medicine-CttNyC5l.js";const Cl={class:"prescription-list"},Sl={class:"pl-toolbar"},Nl={class:"pl-toolbar__line"},Ul={class:"pl-toolbar__line pl-toolbar__line--second"},Dl={class:"pl-toolbar__actions"},Pl={class:"pl-table-head"},El={class:"flex items-center gap-2"},Ol={class:"mt-3"},$l={class:"font-medium"},Ll={class:"text-xs text-gray-400 mt-0.5"},Al={key:1,class:"text-gray-400 text-sm"},Il={class:"font-medium"},Tl={class:"text-xs text-gray-500 mt-0.5"},Rl={class:"flex flex-col gap-1"},zl={class:"flex flex-wrap items-center gap-1"},Ml={key:0,class:"text-xs text-gray-500"},jl=["title"],Fl={key:1,class:"text-gray-400"},ql={class:"font-medium"},Yl={class:"text-xs text-gray-500 mt-0.5"},Wl={class:"text-sm"},Hl={class:"flex mt-2 justify-end"},Bl={key:0,class:"cf-slip-wrap"},Jl={key:0,class:"cf-slip-print"},Kl={class:"cf-slip-header"},Gl={class:"cf-slip-type"},Ql={key:0,class:"cf-slip-void"},Xl={key:1,class:"rounded border border-red-200 bg-red-50 text-red-800 text-sm px-3 py-2 mb-3"},Zl={key:0,class:"mt-1"},es={key:1,class:"mt-1 text-red-600/80"},ts={key:2,class:"rounded border border-red-200 bg-red-50 text-red-800 text-sm px-3 py-2 mb-3"},as={key:0,class:"mt-1"},ls={key:1,class:"mt-1 text-red-600/80"},ss={class:"cf-slip-info"},is={class:"cf-slip-row"},ns={class:"cf-slip-item"},os={class:"cf-slip-item"},rs={class:"cf-slip-item"},us={class:"cf-slip-row"},ds={class:"cf-slip-item"},ps={class:"cf-slip-item"},ms={class:"cf-slip-item"},_s={key:0,class:"cf-slip-row"},cs={key:0,class:"cf-slip-item"},fs={key:1,class:"cf-slip-item"},gs={class:"cf-slip-row cf-slip-row-full"},vs={class:"cf-slip-item"},bs={class:"cf-slip-rp"},ys={class:"cf-slip-herbs"},Vs={class:"cf-slip-footer"},ks={class:"cf-slip-footer-left"},xs={key:0,class:"cf-slip-dietary"},hs={key:1,class:"cf-slip-notes"},ws={class:"cf-slip-footer-right"},Cs={class:"cf-slip-sign"},Ss=["src"],Ns={key:1},Us={key:3,class:"cf-slip-audit text-sm text-gray-600 mt-4 pt-3 border-t border-dashed border-gray-200"},Ds={key:0},Ps={key:0,class:"ml-2 text-gray-400"},Es={key:1,class:"mt-1"},Os={class:"text-sm mt-1"},$s={key:0,class:"text-sm mt-2 text-gray-800 font-medium"},Ls={key:5,class:"mb-3 flex flex-wrap items-center gap-2 pl-[120px]"},As={class:"text-xs text-gray-400"},Is={class:"w-full"},Ts={class:"signature-pad-wrap"},Rs={class:"signature-actions"},zs={class:"create-order-dialog__inner"},Ms={key:0,class:"create-order-rx-card"},js={class:"create-order-rx-card__head"},Fs={class:"create-order-rx-card__meta"},qs={class:"create-order-rx-card__id"},Ys={key:0,class:"create-order-rx-card__sn"},Ws={class:"create-order-rx-card__patient"},Hs={class:"create-order-step-lead"},Bs={class:"create-order-step-panel"},Js={class:"create-order-step-panel"},Ks={class:"flex items-center gap-1 w-full"},Gs={class:"flex flex-col gap-0.5",style:{"line-height":"normal"}},Qs={class:"flex items-center justify-between"},Xs={class:"font-medium text-[13px] text-gray-800"},Zs={class:"text-orange-500 font-medium ml-4"},ei={class:"flex items-center justify-between text-xs text-gray-400 mt-1"},ti={class:"truncate pr-2"},ai={class:"shrink-0"},li={class:"create-order-pay-hint text-gray-500"},si={class:"text-amber-600 font-medium"},ii={class:"create-order-step-panel"},ni={class:"create-order-deposit-bar__cell"},oi={class:"create-order-deposit-bar__sub"},ri={class:"create-order-deposit-bar__cell"},ui={class:"create-order-deposit-bar__sub"},di={class:"create-order-footer"},pi={class:"create-order-footer__hint"},mi={class:"create-order-footer__step"},_i={key:0,class:"create-order-footer__warn"},ci={class:"create-order-footer__actions"},fi={class:"mb-4"},gi={key:0},vi={key:1,class:"text-gray-400"},bi={class:"flex justify-end mt-4"},yi=_t({name:"prescriptionList"}),Vi=_t({...yi,setup(ki){const ct=xl(()=>Ca(()=>import("./edit-k0Sa2CWT.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]))),ft="成都双流甄养堂互联网医院",gt="成都双流甄养堂互联网医院有限公司 联系方式:4001667339",vt="地址:四川省成都市双流区黄甲街道黄龙大道二段280号",Z=el(),We=yl();function bt(){const a=We.getRoutes().find(e=>{var n;return((n=e.meta)==null?void 0:n.perms)==="tcm.prescriptionOrder/lists"});a!=null&&a.path?We.push(a.path):w.msgWarning("未配置「处方业务订单」菜单,请在权限管理中执行菜单 SQL 或手动添加路由")}const x=Ye({sn:"",patient_name:"",creator_ids:[],audit_filter:"all",source_filter:"all",start_time:"",end_time:""}),ke=b([]),A=b("all"),M=b(!1),P=b("add"),xe=b(!1),Y=b(),I=b(),ee=b(null),H=560,B=168,f=b(null),he=b(!1),He=b([]),te=b(!1),Be=b(0),J=b(""),pe=b(!1),ae=b(!1),D=b(0),yt=q(()=>["请核对诊单患者并填写完整收货信息,便于发货与物流联系。","按需填写服务相关信息,并选择本诊单下需要关联的支付单。","确认费用类别与订单金额;提交前请对照定金门槛是否已满足。"][D.value]??""),Vt=["patient_id","recipient_name","recipient_phone","region","shipping_address"],O=b(null),le=b(),we=b(!1),Ce=b(!1),j=b([]),K=b([]),Se=b(!1),S=b(0);function G(a){const e=Number(a);return Number.isNaN(e)?"—":e.toFixed(2)}function Je(a){return{1:"挂号费",2:"问诊费",3:"药品费用",4:"首付",5:"尾款",6:"其他"}[Number(a)]||"未知"}const r=Ye({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:"",pay_order_ids:[]}),se=b([]),Ne=b([]),kt=a=>a.map(e=>{var n;return{name:e.province,code:e.code,children:((n=e.citys)==null?void 0:n.map(c=>{var g;return{name:c.city,code:c.code,children:((g=c.areas)==null?void 0:g.map(m=>({name:m.area,code:m.code})))||[]}}))||[]}}),xt=async()=>{try{console.log("开始加载省市区数据...");const e=await fetch("https://cos.zhenyangtang.com.cn/area/ChinaCitys.json");if(console.log("响应状态:",e.status),!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const n=await e.json();console.log("加载的数据条数:",n==null?void 0:n.length),se.value=kt(n),console.log("regionOptions 已设置,条数:",se.value.length)}catch(a){console.error("加载省市区数据失败:",a),se.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("使用后备数据,条数:",se.value.length)}},ht=async()=>{try{const a=await al({type:"server_order"});Ne.value=((a==null?void 0:a.server_order)||[]).filter(e=>e.status!==0)}catch{Ne.value=[]}},wt=a=>{console.log("选择的省市区:",a)},Ue=q(()=>{const a=new Set(r.pay_order_ids.map(n=>Number(n)));let e=0;for(const n of K.value)a.has(Number(n.id))&&(e+=Number(n.amount)||0);return Math.round(e*100)/100}),Ct=q(()=>{const a=S.value;return a>0?Math.round(a*100)/100:0}),St=q(()=>{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,n,c)=>{const g=S.value,m=Number(n);if(g>0&&(!Number.isFinite(m)||m<g)){c(new Error(`订单金额须大于等于定金门槛 ¥${G(g)}`));return}c()},trigger:"blur"}]};if(S.value>0){const e=`已开启关联支付门槛(¥${G(S.value)}),请至少选择一笔支付单`;a.pay_order_ids=[{type:"array",required:!0,min:1,message:e,trigger:"change"}]}return a});function Ke(){var a;D.value=0,r.patient_id="",r.recipient_name="",r.recipient_phone="",r.shipping_address="",r.is_follow_up=0,r.medication_days=void 0,r.prev_staff="",r.service_channel="",r.service_package=[],r.express_company="auto",r.tracking_number="",r.fee_type=3,r.amount=0,r.internal_cost=void 0,r.remark_extra="",r.pay_order_ids=[],j.value=[],K.value=[],S.value=0,O.value=null,(a=le.value)==null||a.clearValidate()}function Nt(){const a=S.value;if(a<=0)return;const e=Math.round(a*100)/100;Number(r.amount)<e&&(r.amount=e)}async function Ge(){var e,n;const a=Number(r.patient_id);if(!a){K.value=[],S.value=0;return}try{Se.value=!0;const c=await il({diagnosis_id:a}),g=(c==null?void 0:c.lists)??((e=c==null?void 0:c.data)==null?void 0:e.lists)??[];K.value=Array.isArray(g)?g:[];const m=Number((c==null?void 0:c.deposit_min_amount)??((n=c==null?void 0:c.data)==null?void 0:n.deposit_min_amount))||0;S.value=m,Nt()}catch{K.value=[],S.value=0}finally{Se.value=!1}}Ve(()=>r.patient_id,()=>{r.pay_order_ids=[],Ge()});async function Ut(a){var g;if(Number(a==null?void 0:a.void_status)===1){w.msgWarning("已作废处方不可创建业务订单");return}Ke(),O.value=a;const e=Number(a.diagnosis_id)||0;e>0&&(r.patient_id=e,r.recipient_name=a.patient_name||"",r.recipient_phone=String(a.phone||"").trim(),j.value=[{id:e,patient_name:a.patient_name||"",phone:String(a.phone||"").trim()}]);const n=Number(a.usage_days);n>0&&(r.medication_days=n),ae.value=!0,Ge();const c=a.id;if(c&&!r.recipient_phone)try{const m=await qe({id:c}),u=m&&typeof m.phone=="string"?m.phone.trim():"";if(u&&((g=O.value)==null?void 0:g.id)===c){r.recipient_phone=u;const N=j.value[0];N&&Number(N.id)===e&&(N.phone=u)}}catch{}}async function Dt(a){if(!a){j.value=[];return}try{Ce.value=!0;const e=await _l({keyword:a,page_no:1,page_size:10});j.value=(e==null?void 0:e.lists)||[]}catch{j.value=[]}finally{Ce.value=!1}}function Pt(a){const e=j.value.find(n=>Number(n.id)===Number(a));e&&(r.recipient_name=e.patient_name||"",r.recipient_phone=e.phone||"")}function Et(){D.value>0&&(D.value-=1)}async function Ot(){const a=le.value;if(a)try{D.value===0?await a.validateField([...Vt]):D.value===1&&S.value>0&&await a.validateField(["pay_order_ids"]),D.value<2&&(D.value+=1)}catch{}}async function $t(){if(!(!le.value||!O.value)&&D.value===2)try{await le.value.validate(),we.value=!0;const a=Number(r.patient_id),e={prescription_id:O.value.id,diagnosis_id:a,recipient_name:r.recipient_name,recipient_phone:r.recipient_phone,shipping_address:r.shipping_address,is_follow_up:r.is_follow_up,prev_staff:r.prev_staff||"",service_channel:r.service_channel||"",service_package:Array.isArray(r.service_package)&&r.service_package.length>0?r.service_package.join(","):"",express_company:r.express_company||"auto",tracking_number:r.tracking_number||"",fee_type:r.fee_type,amount:r.amount,remark_extra:r.remark_extra||""};r.region&&r.region.length>=3&&(e.shipping_province=r.region[0],e.shipping_city=r.region[1],e.shipping_district=r.region[2]),r.medication_days!=null&&r.medication_days>0&&(e.medication_days=r.medication_days),r.internal_cost!=null&&r.internal_cost>0&&(e.internal_cost=r.internal_cost),r.pay_order_ids.length&&(e.pay_order_ids=[...r.pay_order_ids]);const n=await nl(e),c=(n==null?void 0:n.data)??n,g=c==null?void 0:c.order_no;w.msgSuccess(g?`业务订单已创建,单号:${g}`:"业务订单已创建"),ae.value=!1,Q()}catch(a){console.error(a)}finally{we.value=!1}}const me=b(!1),_e=b(!1),Qe=q(()=>{const a=me.value,e=_e.value;return!a&&!e?"":a&&e?"当前处方已作废且已驳回。保存后将取消作废、清除驳回,并重新进入待审核。":a?"当前为已作废处方。保存后将取消作废,并重新进入待审核。":"当前为已驳回处方。保存后将清除驳回,并重新进入待审核。"}),Lt=q(()=>{var e;const a=(e=f.value)==null?void 0:e.herbs;return Array.isArray(a)?a:[]}),Xe=q(()=>{var e;const a=(e=f.value)==null?void 0:e.dietary_taboo;return Array.isArray(a)?a.filter(Boolean).join("、"):typeof a=="string"&&a.trim()?a.trim():""}),i=Ye({id:0,prescription_type:"浓缩水丸",dosage_amount:1,dosage_unit:"g",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}),Ze=b(null);function At(){var e;const a=Number(i.diagnosis_id);if(!a){w.msgWarning("本处方未关联诊单,无法查看诊单患者信息");return}(e=Ze.value)==null||e.openViewOnly(a)}const ce=b(!1);Ve(()=>i.prescription_type,a=>{ce.value||(a==="浓缩水丸"?(i.dosage_unit="g",i.dosage_amount=1,i.need_decoction=!1,i.bags_per_dose=1):a==="饮片"?(i.dosage_unit="ml",i.dosage_amount=50,i.bags_per_dose=1):(i.dosage_unit="g",i.dosage_amount=void 0,i.need_decoction=!1,i.bags_per_dose=1))});const It={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,n)=>{!e||!String(e).trim()?n(new Error("请使用电子签名板手写医师签名")):n()},trigger:"change"}]};async function Tt(a){const{audit_filter:e,source_filter:n,creator_ids:c,...g}=a,m={...g,audit_filter:e==="all"||e===""?"":e,source_filter:n==="all"||n===""||n===void 0?"":n};return Array.isArray(c)&&c.length>0&&(m.creator_ids=c),ol(m)}const{pager:ie,getLists:Q,resetPage:W}=fl({fetchFun:Tt,params:x});function et(a){return String(a).padStart(2,"0")}function tt(a){const e=a.getFullYear(),n=et(a.getMonth()+1),c=et(a.getDate()),g=`${e}-${n}-${c}`;return{start:`${g} 00:00:00`,end:`${g} 23:59:59`}}function Rt(a){const e=String(a??"all");if(e==="all")x.start_time="",x.end_time="";else{const n=new Date,c=new Date(n.getFullYear(),n.getMonth(),n.getDate());e==="yesterday"?c.setDate(c.getDate()-1):e==="before_yesterday"&&c.setDate(c.getDate()-2);const{start:g,end:m}=tt(c);x.start_time=g,x.end_time=m}W()}function zt(){W()}function Mt(){W()}let De=!1;Ve(()=>[x.start_time,x.end_time],()=>{if(De)return;const a=x.start_time,e=x.end_time;if(!a&&!e){A.value="all";return}if(!a||!e){A.value="";return}const n=new Date,c=g=>{const m=new Date(n.getFullYear(),n.getMonth(),n.getDate()-g),{start:u,end:N}=tt(m);return a===u&&e===N};c(0)?A.value="today":c(1)?A.value="yesterday":c(2)?A.value="before_yesterday":A.value=""});function jt(a){if(a==null||a==="")return"—";if(typeof a=="number"&&a>=1e9&&a<1e11)return fe(a);const e=String(a).trim();return/^\d{10}$/.test(e)?fe(parseInt(e,10)):e}function Ft(){De=!0,A.value="all",x.sn="",x.patient_name="",x.creator_ids=[],x.audit_filter="all",x.source_filter="all",x.start_time="",x.end_time="",De=!1,W()}function qt(a){return a===0?"待审核":a===2?"已驳回":"已通过"}function Yt(a){return a===0?"warning":a===2?"danger":"success"}function Wt(a){return Number(a.business_prescription_audit_rejected)===1?"已驳回":qt(a.audit_status)}function Ht(a){return Number(a.business_prescription_audit_rejected)===1?"danger":Yt(a.audit_status)}function at(a){const e=[];if(Number(a.business_prescription_audit_rejected)===1){const n=String(a.business_prescription_audit_remark||"").trim();e.push(n?`业务订单审核驳回意见:${n}`:"业务订单审核驳回意见:—")}if(Number(a.audit_status)===2){const n=String(a.audit_remark||"").trim();e.push(n?`消费者处方审核驳回意见:${n}`:"消费者处方审核驳回意见:—")}return e}function lt(a){return Number(a.audit_status)===1&&Number(a.void_status)!==1}function fe(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 Bt(a){return a?fe(a):"—"}function Jt(a){return a===1||a==="1"?"男":a===0||a==="0"?"女":"—"}function Kt(a){return a==null||a===""?"—":`${a}岁`}function st(a){return a?Array.isArray(a)?a.map(e=>({name:String((e==null?void 0:e.name)??"").trim(),dosage:Number(e==null?void 0:e.dosage)||0})):[]:[]}function Gt(a){return{...a,herbs:st(a==null?void 0:a.herbs)}}function Qt(){f.value=null,ee.value=null}function it(a){const e=I.value;if(!e)return{x:0,y:0};const n=e.getBoundingClientRect();if(n.width<=0||n.height<=0)return{x:0,y:0};const c=(a.clientX-n.left)/n.width*H,g=(a.clientY-n.top)/n.height*B;return{x:Math.max(0,Math.min(H,c)),y:Math.max(0,Math.min(B,g))}}function Pe(){const a=I.value;a&&(i.doctor_signature=a.toDataURL("image/png")),de(()=>{var e;(e=Y.value)==null||e.validateField("doctor_signature").catch(()=>{})})}function Xt(a){if(a.pointerType==="mouse"&&a.button!==0)return;const e=I.value,n=e==null?void 0:e.getContext("2d");if(!e||!n)return;e.setPointerCapture(a.pointerId),ee.value=a.pointerId;const{x:c,y:g}=it(a);n.beginPath(),n.moveTo(c,g)}function Zt(a){var g;if(ee.value!==a.pointerId)return;const e=(g=I.value)==null?void 0:g.getContext("2d");if(!e)return;const{x:n,y:c}=it(a);e.lineTo(n,c),e.stroke(),e.beginPath(),e.moveTo(n,c)}function nt(a){if(ee.value!==a.pointerId)return;ee.value=null;const e=I.value;if(e)try{e.releasePointerCapture(a.pointerId)}catch{}Pe()}function ea(){ot(),i.doctor_signature="",de(()=>{var a;(a=Y.value)==null||a.validateField("doctor_signature").catch(()=>{})})}function ot(){const a=I.value;if(!a)return;const e=Math.min(typeof window<"u"&&window.devicePixelRatio||1,2.5);a.style.width=`${H}px`,a.style.height=`${B}px`,a.width=Math.round(H*e),a.height=Math.round(B*e);const n=a.getContext("2d");n&&(n.setTransform(1,0,0,1,0,0),n.scale(e,e),n.fillStyle="#fff",n.fillRect(0,0,H,B),n.strokeStyle="#333",n.lineWidth=2.5,n.lineCap="round",n.lineJoin="round")}function rt(){P.value!=="view"&&de(()=>{setTimeout(()=>{ot();const a=i.doctor_signature;if(a&&String(a).trim().startsWith("data:image")&&I.value){const e=new Image;e.onload=()=>{const n=I.value,c=n==null?void 0:n.getContext("2d");!n||!c||(c.drawImage(e,0,0,H,B),Pe())},e.onerror=()=>{Pe()},e.src=a}},100)})}function ta(a){const e=a==null?void 0:a.visible_role_ids;return Array.isArray(e)?e.map(n=>Number(n)).filter(n=>!Number.isNaN(n)):typeof e=="string"&&e?e.split(",").map(n=>parseInt(n.trim(),10)).filter(n=>!Number.isNaN(n)):[]}function aa(a){Be.value=a.id,J.value="",te.value=!0}async function ut(a){if(a==="reject"&&!J.value.trim()){w.msgError("驳回时请填写审核意见");return}pe.value=!0;try{const e=await rl({id:Be.value,action:a,remark:J.value.trim()});w.msgSuccess(a==="reject"?"已驳回并作废处方":"审核通过"),e&&e.wecom_notify_ok===!1&&e.wecom_notify_hint&&w.msgWarning(e.wecom_notify_hint),te.value=!1,Q()}catch{}finally{pe.value=!1}}async function la(){try{const a=await cl({});He.value=Array.isArray(a)?a:[]}catch{He.value=[]}}const ne=b(!1),Ee=b(!1),Oe=b([]),ge=b(""),oe=b(1),$e=b(15),Le=b(0),dt=q(()=>{var n;const a=Number(i.creator_id);if(a>0)return a;const e=Number((n=Z.userInfo)==null?void 0:n.id);return e>0?e:0});function sa(a){return String(a||"").trim().toLowerCase()}function ia(){const a=new Map;for(const e of i.herbs){const n=sa(e==null?void 0:e.name);n&&a.set(n,(a.get(n)??0)+1)}return[...a.entries()].filter(([,e])=>e>1).map(([e])=>e)}const ve=async()=>{const a=dt.value;if(!a){w.msgWarning("无法确定开方医师,无法加载处方库"),Oe.value=[],Le.value=0;return}Ee.value=!0;try{const e=await ul({page_no:oe.value,page_size:$e.value,prescription_name:ge.value,is_public:"",creator_id:a});Oe.value=(e==null?void 0:e.lists)||[],Le.value=(e==null?void 0:e.count)||0}catch(e){console.error(e),w.msgError("加载处方库失败")}finally{Ee.value=!1}},Ae=()=>{oe.value=1,ve()},na=()=>{if(!dt.value){w.msgWarning("无法确定开方医师,无法从处方库导入");return}ne.value=!0},oa=a=>{pt(a)},pt=a=>{if(!a.herbs||a.herbs.length===0){w.msgWarning("该处方没有药材信息");return}const e=JSON.parse(JSON.stringify(a.herbs));i.herbs=e,ia().length&&w.msgWarning("导入的处方中存在重复药名,请合并剂量或删除多余行"),w.msgSuccess(`已导入处方「${a.prescription_name}」,共${e.length}味药材`),ne.value=!1};Ve(ne,a=>{a&&(ge.value="",oe.value=1,ve())});const ra=()=>{i.herbs.push({name:"",dosage:0})},ua=a=>{i.herbs.splice(a,1)},da=()=>{var a;i.id=0,i.prescription_type="浓缩水丸",i.patient_name="",i.gender=1,i.age=0,i.visit_no="",i.prescription_date=new Date().toISOString().split("T")[0],i.tongue="",i.tongue_image="",i.pulse="",i.pulse_condition="",i.clinical_diagnosis="",i.herbs=[],i.dose_count=7,i.dose_unit="剂",i.usage_days=7,i.usage_instruction="",i.usage_time="饭后",i.usage_way="温水送服",i.dietary_taboo=[],i.usage_notes="",i.doctor_name="",i.doctor_signature="",i.is_shared=0,i.visible_role_ids=[],i.audit_status=1,i.audit_time=null,i.audit_by_name="",i.audit_remark="",i.diagnosis_id=0,i.creator_id=Number((a=Z.userInfo)==null?void 0:a.id)||0,i.is_system_auto=0,i.business_prescription_audit_rejected=0,i.business_prescription_audit_remark=""},pa=()=>{var a;da(),i.doctor_name=String(((a=Z.userInfo)==null?void 0:a.name)||""),me.value=!1,_e.value=!1,P.value="add",ce.value=!1,M.value=!0,de(()=>{var e;(e=Y.value)==null||e.clearValidate(),rt()})},ma=async a=>{me.value=!1,_e.value=!1,P.value="view",f.value=Gt(a),M.value=!0,he.value=!0;try{const e=await qe({id:a.id});e&&typeof e=="object"&&(f.value={...e,herbs:st(e.herbs)})}catch(e){w.msgError((e==null?void 0:e.msg)||"加载处方详情失败")}finally{he.value=!1}},_a=async a=>{me.value=Number(a.void_status)===1,_e.value=Number(a.audit_status)===2,P.value="edit",ce.value=!0;let e=a;if(a!=null&&a.id&&!a.doctor_signature)try{const n=await qe({id:a.id});n&&typeof n=="object"&&(e={...a,...n})}catch{}i.id=e.id,i.prescription_type=e.prescription_type||"浓缩水丸",e.dosage_amount!==null&&e.dosage_amount!==void 0&&e.dosage_amount!==""?i.dosage_amount=Number(e.dosage_amount):i.dosage_amount=void 0,e.dosage_unit?i.dosage_unit=e.dosage_unit:i.prescription_type==="饮片"?i.dosage_unit="ml":i.dosage_unit="g",i.need_decoction=e.need_decoction===1||e.need_decoction===!0,i.bags_per_dose=e.bags_per_dose?Number(e.bags_per_dose):1,i.patient_name=e.patient_name||"",i.gender=e.gender??1,i.age=e.age??0,i.visit_no=e.visit_no||"",i.prescription_date=e.prescription_date||"",i.tongue=e.tongue||"",i.tongue_image=e.tongue_image||"",i.pulse=e.pulse||"",i.pulse_condition=e.pulse_condition||"",i.clinical_diagnosis=e.clinical_diagnosis||"",i.herbs=e.herbs?JSON.parse(JSON.stringify(e.herbs)):[],i.dose_count=e.dose_count??7,i.dose_unit=e.dose_unit||"剂",i.usage_days=e.usage_days??7,i.times_per_day=e.times_per_day??2,i.usage_instruction=e.usage_instruction||"",i.usage_time=e.usage_time||"饭后",i.usage_way=e.usage_way||"温水送服",i.dietary_taboo=e.dietary_taboo?Array.isArray(e.dietary_taboo)?e.dietary_taboo:String(e.dietary_taboo).split(",").filter(n=>n):[],i.usage_notes=e.usage_notes||"",i.doctor_name=e.doctor_name||"",i.doctor_signature=String(e.doctor_signature||""),i.is_shared=e.is_shared??0,i.visible_role_ids=ta(e),i.audit_status=e.audit_status??1,i.audit_time=e.audit_time??null,i.audit_by_name=e.audit_by_name||"",i.audit_remark=e.audit_remark||"",i.diagnosis_id=e.diagnosis_id??0,i.creator_id=Number(e.creator_id)>0?Number(e.creator_id):0,i.is_system_auto=Number(e.is_system_auto)===1?1:0,i.business_prescription_audit_rejected=Number(e.business_prescription_audit_rejected)===1?1:0,i.business_prescription_audit_remark=String(e.business_prescription_audit_remark||""),setTimeout(()=>{ce.value=!1},0),M.value=!0,de(()=>{var n;(n=Y.value)==null||n.clearValidate(),rt()})},ca=async()=>{if(Y.value){if(await Y.value.validate(),!i.herbs||i.herbs.length===0){w.msgError("请至少添加一味药材");return}for(let a=0;a<i.herbs.length;a++){const e=i.herbs[a];if(!e.name||!e.name.trim()){w.msgError(`第${a+1}味药材名称不能为空`);return}if(!e.dosage||e.dosage<=0){w.msgError(`第${a+1}味药材剂量必须大于0`);return}}xe.value=!0;try{const a={...i};P.value==="add"?(a.audit_status=0,await dl(a),w.msgSuccess("添加成功,已提交审核")):(await pl(a),w.msgSuccess("保存成功,处方已重新进入待审核")),M.value=!1,Q()}catch(a){console.error(a)}finally{xe.value=!1}}},fa=async a=>{await w.confirm("确定要删除该处方吗?"),await ml({id:a}),w.msgSuccess("删除成功"),Q()};return Vl(async()=>{var a;await la(),await xt(),await ht();try{const e=await sl();ke.value=Array.isArray(e)?e:[]}catch{ke.value=[]}try{(a=Z.userInfo)!=null&&a.id||await Z.getUserInfo()}catch{}Q()}),(a,e)=>{const n=Na,c=Sa,g=Pa,m=Da,u=Oa,N=Ea,be=Ua,h=$a,mt=La,ga=tl,U=Ta,$=Ra,Ie=Ia,va=Za,re=za,k=ja,T=Ma,ye=Fa,R=qa,ba=Ya,ya=Wa,Te=Ba,Va=Ha,ka=Ja,xa=Ka,ha=Ga,Re=Qa,wa=Xa,F=kl("perms"),ze=Aa;return d(),v("div",Cl,[t(mt,{class:"filter-toolbar",shadow:"never","body-style":{padding:"10px 14px"}},{default:s(()=>[o("div",Sl,[o("div",Nl,[e[77]||(e[77]=o("span",{class:"pl-toolbar__k",title:"按处方创建时间"},"创建时间",-1)),t(c,{modelValue:A.value,"onUpdate:modelValue":e[0]||(e[0]=l=>A.value=l),size:"small",class:"pl-toolbar__rg",onChange:Rt},{default:s(()=>[t(n,{label:"all"},{default:s(()=>[...e[65]||(e[65]=[p("全部",-1)])]),_:1}),t(n,{label:"today"},{default:s(()=>[...e[66]||(e[66]=[p("今日",-1)])]),_:1}),t(n,{label:"yesterday"},{default:s(()=>[...e[67]||(e[67]=[p("昨日",-1)])]),_:1}),t(n,{label:"before_yesterday"},{default:s(()=>[...e[68]||(e[68]=[p("前天",-1)])]),_:1})]),_:1},8,["modelValue"]),t(gl,{class:"pl-toolbar__range",startTime:x.start_time,"onUpdate:startTime":e[1]||(e[1]=l=>x.start_time=l),endTime:x.end_time,"onUpdate:endTime":e[2]||(e[2]=l=>x.end_time=l)},null,8,["startTime","endTime"]),e[78]||(e[78]=o("span",{class:"pl-toolbar__sep","aria-hidden":"true"},null,-1)),e[79]||(e[79]=o("span",{class:"pl-toolbar__k",title:"「未通过」含待审核与已驳回"},"审核",-1)),t(c,{modelValue:x.audit_filter,"onUpdate:modelValue":e[3]||(e[3]=l=>x.audit_filter=l),size:"small",class:"pl-toolbar__rg pl-toolbar__rg--audit",onChange:zt},{default:s(()=>[t(n,{label:"pending",class:"pl-audit-pending-btn"},{default:s(()=>[...e[69]||(e[69]=[p("待审核",-1)])]),_:1}),t(n,{label:"all"},{default:s(()=>[...e[70]||(e[70]=[p("全部",-1)])]),_:1}),t(n,{label:"passed"},{default:s(()=>[...e[71]||(e[71]=[p("已通过",-1)])]),_:1}),t(n,{label:"not_passed"},{default:s(()=>[...e[72]||(e[72]=[p("未通过",-1)])]),_:1}),t(n,{label:"rejected"},{default:s(()=>[...e[73]||(e[73]=[p("驳回",-1)])]),_:1})]),_:1},8,["modelValue"]),e[80]||(e[80]=o("span",{class:"pl-toolbar__sep","aria-hidden":"true"},null,-1)),e[81]||(e[81]=o("span",{class:"pl-toolbar__k",title:"与列表「来源」列一致:系统代开 / 手工"},"来源",-1)),t(c,{modelValue:x.source_filter,"onUpdate:modelValue":e[4]||(e[4]=l=>x.source_filter=l),size:"small",class:"pl-toolbar__rg pl-toolbar__rg--source",onChange:Mt},{default:s(()=>[t(n,{label:"all"},{default:s(()=>[...e[74]||(e[74]=[p("全部",-1)])]),_:1}),t(n,{label:"manual"},{default:s(()=>[...e[75]||(e[75]=[p("手工",-1)])]),_:1}),t(n,{label:"system"},{default:s(()=>[...e[76]||(e[76]=[p("系统代开",-1)])]),_:1})]),_:1},8,["modelValue"])]),o("div",Ul,[t(be,{model:x,inline:"",class:"pl-toolbar__form"},{default:s(()=>[t(m,{label:"处方编号",class:"!mb-0"},{default:s(()=>[t(g,{modelValue:x.sn,"onUpdate:modelValue":e[5]||(e[5]=l=>x.sn=l),placeholder:"编号",clearable:"",class:"pl-toolbar__input",onKeyup:je(z(W),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(m,{label:"患者",class:"!mb-0"},{default:s(()=>[t(g,{modelValue:x.patient_name,"onUpdate:modelValue":e[6]||(e[6]=l=>x.patient_name=l),placeholder:"姓名",clearable:"",class:"pl-toolbar__input",onKeyup:je(z(W),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(m,{label:"医师",class:"!mb-0"},{default:s(()=>[t(N,{modelValue:x.creator_ids,"onUpdate:modelValue":e[7]||(e[7]=l=>x.creator_ids=l),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",filterable:"",clearable:"",placeholder:"全部医师",class:"pl-toolbar__select pl-toolbar__select--doctors"},{default:s(()=>[(d(!0),v(L,null,X(ke.value,l=>(d(),y(u,{key:l.id,label:l.name,value:Number(l.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"]),o("div",Dl,[t(h,{type:"primary",onClick:z(W)},{default:s(()=>[...e[82]||(e[82]=[p("查询",-1)])]),_:1},8,["onClick"]),t(h,{onClick:Ft},{default:s(()=>[...e[83]||(e[83]=[p("重置",-1)])]),_:1})])])])]),_:1}),E((d(),y(mt,{class:"mt-3 table-card",shadow:"never"},{default:s(()=>[o("div",Pl,[e[86]||(e[86]=o("span",{class:"pl-table-head__title"},"处方列表",-1)),o("div",El,[E((d(),y(h,{onClick:bt},{default:s(()=>[...e[84]||(e[84]=[p(" 业务订单 ",-1)])]),_:1})),[[F,["tcm.prescriptionOrder/lists"]]]),E((d(),y(h,{type:"primary",onClick:pa},{icon:s(()=>[t(ga,{name:"el-icon-Plus"})]),default:s(()=>[e[85]||(e[85]=p(" 新增处方 ",-1))]),_:1})),[[F,["cf.prescription/add"]]])])]),o("div",Ol,[t(Ie,{data:z(ie).lists,size:"default",stripe:""},{default:s(()=>[t(U,{label:"处方编号","min-width":"160"},{default:s(({row:l})=>[o("span",$l,_(l.sn||"—"),1),o("div",Ll,"ID: "+_(l.id),1)]),_:1}),t(U,{label:"处方类型","min-width":"100"},{default:s(({row:l})=>[t($,{type:"info",size:"small"},{default:s(()=>[p(_(l.prescription_type||"—"),1)]),_:2},1024)]),_:1}),t(U,{label:"来源","min-width":"92",align:"center"},{default:s(({row:l})=>[Number(l.is_system_auto)===1?(d(),y($,{key:0,type:"warning",size:"small",effect:"plain"},{default:s(()=>[...e[87]||(e[87]=[p(" 系统代开 ",-1)])]),_:1})):(d(),v("span",Al,"手工"))]),_:1}),t(U,{label:"患者信息","min-width":"110"},{default:s(({row:l})=>[o("div",Il,_(l.patient_name||"—"),1),o("div",Tl,_(l.gender===1?"男":l.gender===0?"女":"未知")+" · "+_(l.age?l.age+"岁":"—"),1)]),_:1}),t(U,{label:"审核状态","min-width":"200"},{default:s(({row:l})=>[o("div",Rl,[o("div",zl,[t($,{type:Ht(l)},{default:s(()=>[p(_(Wt(l)),1)]),_:2},1032,["type"]),Number(l.business_prescription_audit_rejected)===1?(d(),v("span",Ml," (业务订单审核) ")):V("",!0)]),at(l).length?(d(!0),v(L,{key:0},X(at(l),(C,Me)=>(d(),v("div",{key:Me,class:"text-xs text-red-600 leading-snug line-clamp-3",title:C},_(C),9,jl))),128)):V("",!0)])]),_:1}),t(U,{label:"作废","min-width":"80",align:"center"},{default:s(({row:l})=>[l.void_status===1?(d(),y($,{key:0,type:"danger",size:"small"},{default:s(()=>[...e[88]||(e[88]=[p("作废",-1)])]),_:1})):(d(),v("span",Fl,"—"))]),_:1}),t(U,{label:"医师信息","min-width":"120"},{default:s(({row:l})=>[o("div",ql,_(l.doctor_name||"—"),1),o("div",Yl,_(l.prescription_date||"—"),1)]),_:1}),t(U,{label:"医助","min-width":"90"},{default:s(({row:l})=>[o("div",Wl,_(l.assistant_name||"—"),1)]),_:1}),t(U,{label:"创建时间","min-width":"160"},{default:s(({row:l})=>[p(_(jt(l.create_time)),1)]),_:1}),t(U,{label:"操作",width:"300",fixed:"right"},{default:s(({row:l})=>[E((d(),y(h,{type:"primary",link:"",onClick:C=>ma(l)},{default:s(()=>[...e[89]||(e[89]=[p(" 查看 ",-1)])]),_:1},8,["onClick"])),[[F,["cf.prescription/read"]]]),!Number(l.has_prescription_order)&&Number(l.void_status)!==1?E((d(),y(h,{key:0,type:"success",link:"",onClick:C=>Ut(l)},{default:s(()=>[...e[90]||(e[90]=[p(" 创建订单 ",-1)])]),_:1},8,["onClick"])),[[F,["tcm.prescriptionOrder/create"]]]):V("",!0),lt(l)?V("",!0):E((d(),y(h,{key:1,type:"primary",link:"",onClick:C=>_a(l)},{default:s(()=>[...e[91]||(e[91]=[p(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[F,["cf.prescription/edit"]]]),l.audit_status===0&&l.void_status!==1?E((d(),y(h,{key:2,type:"warning",link:"",onClick:C=>aa(l)},{default:s(()=>[...e[92]||(e[92]=[p(" 审核 ",-1)])]),_:1},8,["onClick"])),[[F,["cf.prescription/audit"]]]):V("",!0),lt(l)?V("",!0):E((d(),y(h,{key:3,type:"danger",link:"",onClick:C=>fa(l.id)},{default:s(()=>[...e[93]||(e[93]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])),[[F,["cf.prescription/del"]]])]),_:1})]),_:1},8,["data"])]),o("div",Hl,[t(va,{modelValue:z(ie),"onUpdate:modelValue":e[8]||(e[8]=l=>hl(ie)?ie.value=l:null),onChange:z(Q)},null,8,["modelValue","onChange"])])]),_:1})),[[ze,z(ie).loading]]),t(ya,{modelValue:M.value,"onUpdate:modelValue":e[37]||(e[37]=l=>M.value=l),title:P.value==="add"?"新增处方":P.value==="edit"?"编辑处方":"查看处方",size:P.value==="view"?"920px":"860px",class:"cf-prescription-drawer","close-on-click-modal":!1,"destroy-on-close":"",onClosed:Qt},{footer:s(()=>[P.value==="view"?(d(),y(h,{key:0,onClick:e[35]||(e[35]=l=>M.value=!1)},{default:s(()=>[...e[129]||(e[129]=[p("关闭",-1)])]),_:1})):(d(),v(L,{key:1},[t(h,{onClick:e[36]||(e[36]=l=>M.value=!1)},{default:s(()=>[...e[130]||(e[130]=[p("取消",-1)])]),_:1}),t(h,{type:"primary",onClick:ca,loading:xe.value},{default:s(()=>[...e[131]||(e[131]=[p(" 确定 ",-1)])]),_:1},8,["loading"])],64))]),default:s(()=>[P.value==="view"?E((d(),v("div",Bl,[f.value?(d(),v("div",Jl,[o("div",Kl,[o("h2",{class:"cf-slip-title"},_(ft)+"处方笺"),o("div",Gl,[Number(f.value.is_system_auto)===1?(d(),y($,{key:0,type:"warning",size:"small",class:"mr-1",effect:"plain"},{default:s(()=>[...e[94]||(e[94]=[p("系统代开",-1)])]),_:1})):V("",!0),Number(f.value.void_status)===1?(d(),y($,{key:1,type:"danger",size:"small"},{default:s(()=>[...e[95]||(e[95]=[p("已作废",-1)])]),_:1})):Number(f.value.business_prescription_audit_rejected)===1?(d(),y($,{key:2,type:"danger",size:"small",class:"mr-1"},{default:s(()=>[...e[96]||(e[96]=[p("已驳回",-1)])]),_:1})):Number(f.value.audit_status)===1?(d(),y($,{key:3,type:"success",size:"small",class:"mr-1"},{default:s(()=>[...e[97]||(e[97]=[p("已通过",-1)])]),_:1})):Number(f.value.audit_status)===0?(d(),y($,{key:4,type:"warning",size:"small",class:"mr-1"},{default:s(()=>[...e[98]||(e[98]=[p("待审核",-1)])]),_:1})):(d(),y($,{key:5,type:"danger",size:"small",class:"mr-1"},{default:s(()=>[...e[99]||(e[99]=[p("已驳回",-1)])]),_:1})),Number(f.value.void_status)!==1?(d(),v(L,{key:6},[e[100]||(e[100]=o("div",null,"普通处方",-1)),e[101]||(e[101]=o("div",{class:"text-sm"},"当日有效",-1))],64)):V("",!0)])]),Number(f.value.void_status)===1?(d(),v("div",Ql," 作废人:"+_(f.value.void_by_name||"—")+",作废时间:"+_(Bt(f.value.void_time)),1)):Number(f.value.business_prescription_audit_rejected)===1?(d(),v("div",Xl,[e[102]||(e[102]=o("div",{class:"font-medium"},"审核状态:已驳回(业务订单·处方审核)",-1)),f.value.business_prescription_audit_remark?(d(),v("div",Zl," 驳回意见:"+_(f.value.business_prescription_audit_remark),1)):(d(),v("div",es,"暂无驳回意见说明。"))])):Number(f.value.audit_status)===2?(d(),v("div",ts,[e[103]||(e[103]=o("div",{class:"font-medium"},"消费者处方审核:已驳回",-1)),f.value.audit_remark?(d(),v("div",as,"驳回意见:"+_(f.value.audit_remark),1)):(d(),v("div",ls,"暂无文字意见,请联系审核人员。"))])):V("",!0),o("div",ss,[o("div",is,[o("span",ns,[e[104]||(e[104]=o("em",null,"日期",-1)),p(_(f.value.prescription_date||"—"),1)]),o("span",os,[e[105]||(e[105]=o("em",null,"电话",-1)),p(_(f.value.phone||"—"),1)]),o("span",rs,[e[106]||(e[106]=o("em",null,"门诊号",-1)),p(_(f.value.visit_no||"—"),1)])]),o("div",us,[o("span",ds,[e[107]||(e[107]=o("em",null,"姓名",-1)),p(_(f.value.patient_name||"—"),1)]),o("span",ps,[e[108]||(e[108]=o("em",null,"性别",-1)),p(_(Jt(f.value.gender)),1)]),o("span",ms,[e[109]||(e[109]=o("em",null,"年龄",-1)),p(_(Kt(f.value.age)),1)])]),f.value.pulse||f.value.tongue?(d(),v("div",_s,[f.value.pulse?(d(),v("span",cs,[e[110]||(e[110]=o("em",null,"面象",-1)),p(_(f.value.pulse),1)])):V("",!0),f.value.tongue?(d(),v("span",fs,[e[111]||(e[111]=o("em",null,"舌象",-1)),p(_(f.value.tongue),1)])):V("",!0)])):V("",!0),o("div",gs,[o("span",vs,[e[112]||(e[112]=o("em",null,"临床诊断",-1)),p(_(f.value.clinical_diagnosis||"—"),1)])])]),o("div",bs,[e[113]||(e[113]=o("div",{class:"cf-slip-rp-label"},"RP",-1)),o("div",ys,[(d(!0),v(L,null,X(Lt.value,(l,C)=>(d(),v("div",{key:C,class:"cf-slip-herb"},_(l.name)+" "+_(l.dosage)+"克 ",1))),128))])]),o("div",Vs,[o("div",ks,[o("div",null," 服用"+_(f.value.usage_days??f.value.dose_count)+"天, "+_(f.value.prescription_type||"浓缩水丸")+" "+_(f.value.usage_instruction||""),1),o("div",null,[p(" 服用时间: "+_(f.value.usage_time?" "+f.value.usage_time:"")+" ",1),e[114]||(e[114]=o("span",{class:"cf-slip-inline-gap"},null,-1)),p(" 服用方式: "+_(f.value.usage_way?" "+f.value.usage_way:""),1)]),Xe.value?(d(),v("div",xs,"忌口:"+_(Xe.value),1)):V("",!0),f.value.usage_notes?(d(),v("div",hs,_(f.value.usage_notes),1)):V("",!0)]),o("div",ws,[o("span",Cs,[e[115]||(e[115]=p(" 医师 ",-1)),f.value.doctor_signature?(d(),v("img",{key:0,src:f.value.doctor_signature,alt:"医师签名",class:"cf-slip-sign-img"},null,8,Ss)):(d(),v("span",Ns,_(f.value.doctor_name||"—"),1))])])]),o("div",{class:"cf-slip-hospital"},[o("div",null,_(gt)),o("div",null,_(vt))]),f.value.audit_by_name||f.value.audit_remark?(d(),v("div",Us,[f.value.audit_by_name?(d(),v("div",Ds,[p(" 审核人:"+_(f.value.audit_by_name)+" ",1),f.value.audit_time?(d(),v("span",Ps,_(fe(f.value.audit_time)),1)):V("",!0)])):V("",!0),f.value.audit_remark?(d(),v("div",Es,"审核意见:"+_(f.value.audit_remark),1)):V("",!0)])):V("",!0)])):V("",!0)])),[[ze,he.value]]):(d(),y(be,{key:1,ref_key:"formRef",ref:Y,model:i,rules:It,"label-width":"120px"},{default:s(()=>[P.value==="edit"&&Number(i.is_system_auto)===1?(d(),y(re,{key:0,type:"warning",closable:!1,"show-icon":"",class:"mb-4",title:"本处方为系统自动生成(如挂号完成),默认无药材配方,请补充药材与诊断等信息后再保存。"})):V("",!0),P.value==="edit"?(d(),y(re,{key:1,type:"info",closable:!1,"show-icon":"",class:"mb-4",title:"保存修改后,该处方将重新进入「待审核」,需审核人员再次通过后方可生效。"})):V("",!0),P.value==="edit"&&Number(i.audit_status)===2?(d(),y(re,{key:2,type:"error",closable:!1,"show-icon":"",class:"mb-4"},{title:s(()=>[...e[116]||(e[116]=[p("当前消费者处方为「已驳回」",-1)])]),default:s(()=>[o("div",Os," 保存修改后将清除驳回并变为「待审核」。"+_(i.audit_remark?`上次意见:${i.audit_remark}`:""),1)]),_:1})):V("",!0),P.value==="edit"&&Number(i.business_prescription_audit_rejected)===1&&Number(i.audit_status)===1?(d(),y(re,{key:3,type:"warning",closable:!1,"show-icon":"",class:"mb-4"},{title:s(()=>[...e[117]||(e[117]=[p("业务订单侧「处方审核」已驳回",-1)])]),default:s(()=>[e[118]||(e[118]=o("div",{class:"text-sm mt-1"}," 消费者处方仍为「已通过」;您修改并保存后,将重置关联业务订单的处方/支付单审核为「待审」,请在「处方业务订单」中继续处理。 ",-1)),String(i.business_prescription_audit_remark||"").trim()?(d(),v("div",$s," 驳回意见:"+_(i.business_prescription_audit_remark),1)):V("",!0)]),_:1})):V("",!0),P.value==="edit"&&Qe.value?(d(),y(re,{key:4,type:"warning",closable:!1,"show-icon":"",class:"mb-4",title:Qe.value},null,8,["title"])):V("",!0),Number(i.diagnosis_id)>0?(d(),v("div",Ls,[t(h,{type:"primary",size:"small",onClick:At},{default:s(()=>[...e[119]||(e[119]=[p(" 查看患者诊单详情 ",-1)])]),_:1}),o("span",As,"关联诊单 #"+_(i.diagnosis_id),1)])):V("",!0),t(T,{gutter:20},{default:s(()=>[t(k,{span:12},{default:s(()=>[t(m,{label:"患者姓名",prop:"patient_name"},{default:s(()=>[t(g,{modelValue:i.patient_name,"onUpdate:modelValue":e[9]||(e[9]=l=>i.patient_name=l),placeholder:"请输入患者姓名"},null,8,["modelValue"])]),_:1})]),_:1}),t(k,{span:12},{default:s(()=>[t(m,{label:"门诊号",prop:"visit_no"},{default:s(()=>[t(g,{modelValue:i.visit_no,"onUpdate:modelValue":e[10]||(e[10]=l=>i.visit_no=l),placeholder:"自动生成或手动输入"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(T,{gutter:20},{default:s(()=>[t(k,{span:8},{default:s(()=>[t(m,{label:"性别",prop:"gender"},{default:s(()=>[t(c,{modelValue:i.gender,"onUpdate:modelValue":e[11]||(e[11]=l=>i.gender=l)},{default:s(()=>[t(ye,{label:1},{default:s(()=>[...e[120]||(e[120]=[p("男",-1)])]),_:1}),t(ye,{label:0},{default:s(()=>[...e[121]||(e[121]=[p("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(k,{span:8},{default:s(()=>[t(m,{label:"年龄",prop:"age"},{default:s(()=>[t(R,{modelValue:i.age,"onUpdate:modelValue":e[12]||(e[12]=l=>i.age=l),min:0,max:150,placeholder:"请输入年龄",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),t(k,{span:8},{default:s(()=>[t(m,{label:"处方日期",prop:"prescription_date"},{default:s(()=>[t(ba,{modelValue:i.prescription_date,"onUpdate:modelValue":e[13]||(e[13]=l=>i.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(T,{gutter:20},{default:s(()=>[t(k,{span:12},{default:s(()=>[t(m,{label:"面象",prop:"tongue"},{default:s(()=>[t(g,{modelValue:i.tongue,"onUpdate:modelValue":e[14]||(e[14]=l=>i.tongue=l),placeholder:"请输入面象"},null,8,["modelValue"])]),_:1})]),_:1}),t(k,{span:12},{default:s(()=>[t(m,{label:"舌象",prop:"tongue_image"},{default:s(()=>[t(g,{modelValue:i.tongue_image,"onUpdate:modelValue":e[15]||(e[15]=l=>i.tongue_image=l),placeholder:"请输入舌象"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(T,{gutter:20},{default:s(()=>[t(k,{span:12},{default:s(()=>[t(m,{label:"脉象",prop:"pulse"},{default:s(()=>[t(g,{modelValue:i.pulse,"onUpdate:modelValue":e[16]||(e[16]=l=>i.pulse=l),placeholder:"请输入脉象"},null,8,["modelValue"])]),_:1})]),_:1}),t(k,{span:12},{default:s(()=>[t(m,{label:"脉象详情",prop:"pulse_condition"},{default:s(()=>[t(g,{modelValue:i.pulse_condition,"onUpdate:modelValue":e[17]||(e[17]=l=>i.pulse_condition=l),placeholder:"请输入脉象详情"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(m,{label:"临床诊断",prop:"clinical_diagnosis"},{default:s(()=>[t(g,{modelValue:i.clinical_diagnosis,"onUpdate:modelValue":e[18]||(e[18]=l=>i.clinical_diagnosis=l),type:"textarea",rows:3,placeholder:"请输入临床诊断",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(m,{label:"药材配方",prop:"herbs",required:""},{default:s(()=>[o("div",Is,[t(h,{type:"primary",size:"small",onClick:ra},{default:s(()=>[...e[122]||(e[122]=[p(" 添加药材 ",-1)])]),_:1}),t(h,{type:"success",size:"small",class:"ml-2",onClick:na},{default:s(()=>[...e[123]||(e[123]=[p(" 从处方库导入 ",-1)])]),_:1}),t(Ie,{data:i.herbs,class:"mt-2",border:""},{default:s(()=>[t(U,{label:"序号",type:"index",width:"60"}),t(U,{label:"药材名称","min-width":"220"},{default:s(({row:l})=>[t(vl,{modelValue:l.name,"onUpdate:modelValue":C=>l.name=C,class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(U,{label:"剂量(克)","min-width":"120"},{default:s(({row:l,$index:C})=>[t(R,{modelValue:l.dosage,"onUpdate:modelValue":Me=>l.dosage=Me,min:0,precision:1,step:.5,placeholder:"剂量",class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(U,{label:"操作",width:"80"},{default:s(({$index:l})=>[t(h,{type:"danger",link:"",onClick:C=>ua(l)},{default:s(()=>[...e[124]||(e[124]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])])]),_:1}),t(T,{gutter:20},{default:s(()=>[t(k,{span:8},{default:s(()=>[t(m,{label:"剂数",prop:"dose_count"},{default:s(()=>[t(R,{modelValue:i.dose_count,"onUpdate:modelValue":e[19]||(e[19]=l=>i.dose_count=l),min:1,placeholder:"剂数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),t(k,{span:8},{default:s(()=>[t(m,{label:"剂量单位",prop:"dose_unit"},{default:s(()=>[t(N,{modelValue:i.dose_unit,"onUpdate:modelValue":e[20]||(e[20]=l=>i.dose_unit=l),placeholder:"请选择",class:"w-full"},{default:s(()=>[t(u,{label:"剂",value:"剂"}),t(u,{label:"丸",value:"丸"}),t(u,{label:"袋",value:"袋"}),t(u,{label:"盒",value:"盒"}),t(u,{label:"瓶",value:"瓶"}),t(u,{label:"膏",value:"膏"}),t(u,{label:"贴",value:"贴"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(k,{span:8},{default:s(()=>[t(m,{label:"处方类型",prop:"prescription_type"},{default:s(()=>[t(N,{modelValue:i.prescription_type,"onUpdate:modelValue":e[21]||(e[21]=l=>i.prescription_type=l),placeholder:"请选择处方类型",class:"w-full"},{default:s(()=>[t(u,{label:"浓缩水丸",value:"浓缩水丸"}),t(u,{label:"饮片",value:"饮片"}),t(u,{label:"颗粒",value:"颗粒"}),t(u,{label:"丸剂",value:"丸剂"}),t(u,{label:"散剂",value:"散剂"}),t(u,{label:"膏方",value:"膏方"}),t(u,{label:"汤剂",value:"汤剂"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(k,{span:8},{default:s(()=>[t(m,{label:"用量",prop:"dosage_amount"},{default:s(()=>[i.prescription_type==="浓缩水丸"?(d(),y(N,{key:0,modelValue:i.dosage_amount,"onUpdate:modelValue":e[22]||(e[22]=l=>i.dosage_amount=l),placeholder:"请选择用量",class:"w-full"},{default:s(()=>[t(u,{label:"1g",value:1}),t(u,{label:"2g",value:2}),t(u,{label:"3g",value:3}),t(u,{label:"4g",value:4}),t(u,{label:"5g",value:5}),t(u,{label:"6g",value:6}),t(u,{label:"7g",value:7}),t(u,{label:"8g",value:8}),t(u,{label:"9g",value:9}),t(u,{label:"10g",value:10})]),_:1},8,["modelValue"])):i.prescription_type==="饮片"?(d(),y(N,{key:1,modelValue:i.dosage_amount,"onUpdate:modelValue":e[23]||(e[23]=l=>i.dosage_amount=l),placeholder:"请选择用量",class:"w-full"},{default:s(()=>[t(u,{label:"50ml",value:50}),t(u,{label:"100ml",value:100}),t(u,{label:"120ml",value:120}),t(u,{label:"150ml",value:150}),t(u,{label:"180ml",value:180}),t(u,{label:"200ml",value:200}),t(u,{label:"250ml",value:250})]),_:1},8,["modelValue"])):(d(),y(R,{key:2,modelValue:i.dosage_amount,"onUpdate:modelValue":e[24]||(e[24]=l=>i.dosage_amount=l),min:0,precision:2,class:"w-full"},null,8,["modelValue"]))]),_:1})]),_:1}),i.prescription_type==="饮片"?(d(),y(k,{key:0,span:8},{default:s(()=>[t(m,{label:"是否代煎",prop:"need_decoction"},{default:s(()=>[t(c,{modelValue:i.need_decoction,"onUpdate:modelValue":e[25]||(e[25]=l=>i.need_decoction=l)},{default:s(()=>[t(ye,{label:!0},{default:s(()=>[...e[125]||(e[125]=[p("代煎",-1)])]),_:1}),t(ye,{label:!1},{default:s(()=>[...e[126]||(e[126]=[p("不代煎",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1})):V("",!0),i.prescription_type==="饮片"?(d(),y(k,{key:1,span:8},{default:s(()=>[t(m,{label:"每贴出包数",prop:"bags_per_dose"},{default:s(()=>[t(N,{modelValue:i.bags_per_dose,"onUpdate:modelValue":e[26]||(e[26]=l=>i.bags_per_dose=l),placeholder:"请选择",class:"w-full"},{default:s(()=>[t(u,{label:"1包",value:1}),t(u,{label:"2包",value:2}),t(u,{label:"3包",value:3}),t(u,{label:"4包",value:4}),t(u,{label:"5包",value:5}),t(u,{label:"6包",value:6}),t(u,{label:"7包",value:7}),t(u,{label:"8包",value:8}),t(u,{label:"9包",value:9})]),_:1},8,["modelValue"])]),_:1})]),_:1})):V("",!0),t(k,{span:8},{default:s(()=>[t(m,{label:"每天几次",prop:"times_per_day"},{default:s(()=>[t(R,{modelValue:i.times_per_day,"onUpdate:modelValue":e[27]||(e[27]=l=>i.times_per_day=l),min:1,max:6,class:"!w-full",placeholder:"每天服用次数"},null,8,["modelValue"])]),_:1})]),_:1}),t(k,{span:8},{default:s(()=>[t(m,{label:"服用天数",prop:"usage_days"},{default:s(()=>[t(R,{modelValue:i.usage_days,"onUpdate:modelValue":e[28]||(e[28]=l=>i.usage_days=l),min:1,max:365,placeholder:"服用天数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(m,{label:"用法",prop:"usage_instruction"},{default:s(()=>[t(g,{modelValue:i.usage_instruction,"onUpdate:modelValue":e[29]||(e[29]=l=>i.usage_instruction=l),placeholder:"例如:水煎服,一日二次",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(T,{gutter:20},{default:s(()=>[t(k,{span:12},{default:s(()=>[t(m,{label:"服用时间",prop:"usage_time"},{default:s(()=>[t(N,{modelValue:i.usage_time,"onUpdate:modelValue":e[30]||(e[30]=l=>i.usage_time=l),placeholder:"请选择服用时间",class:"w-full"},{default:s(()=>[t(u,{label:"饭前",value:"饭前"}),t(u,{label:"饭后",value:"饭后"}),t(u,{label:"饭中",value:"饭中"}),t(u,{label:"空腹",value:"空腹"}),t(u,{label:"睡前",value:"睡前"}),t(u,{label:"晨起",value:"晨起"}),t(u,{label:"随时",value:"随时"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(k,{span:12},{default:s(()=>[t(m,{label:"服用方式",prop:"usage_way"},{default:s(()=>[t(N,{modelValue:i.usage_way,"onUpdate:modelValue":e[31]||(e[31]=l=>i.usage_way=l),placeholder:"请选择服用方式",class:"w-full"},{default:s(()=>[t(u,{label:"温水送服",value:"温水送服"}),t(u,{label:"开水冲服",value:"开水冲服"}),t(u,{label:"黄酒送服",value:"黄酒送服"}),t(u,{label:"淡盐水送服",value:"淡盐水送服"}),t(u,{label:"米汤送服",value:"米汤送服"}),t(u,{label:"嚼服",value:"嚼服"}),t(u,{label:"含化",value:"含化"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(m,{label:"忌口",prop:"dietary_taboo"},{default:s(()=>[t(N,{modelValue:i.dietary_taboo,"onUpdate:modelValue":e[32]||(e[32]=l=>i.dietary_taboo=l),multiple:"",placeholder:"请选择忌口内容(可多选)",class:"w-full"},{default:s(()=>[t(u,{label:"辛辣食物",value:"辛辣食物"}),t(u,{label:"生冷食物",value:"生冷食物"}),t(u,{label:"油腻食物",value:"油腻食物"}),t(u,{label:"海鲜",value:"海鲜"}),t(u,{label:"牛羊肉",value:"牛羊肉"}),t(u,{label:"鸡蛋",value:"鸡蛋"}),t(u,{label:"豆制品",value:"豆制品"}),t(u,{label:"酒类",value:"酒类"}),t(u,{label:"浓茶",value:"浓茶"}),t(u,{label:"咖啡",value:"咖啡"}),t(u,{label:"烟草",value:"烟草"}),t(u,{label:"萝卜",value:"萝卜"})]),_:1},8,["modelValue"])]),_:1}),t(m,{label:"其他说明",prop:"usage_notes"},{default:s(()=>[t(g,{modelValue:i.usage_notes,"onUpdate:modelValue":e[33]||(e[33]=l=>i.usage_notes=l),type:"textarea",rows:2,placeholder:"其他服用注意事项",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(m,{label:"医师姓名",prop:"doctor_name"},{default:s(()=>[t(g,{modelValue:i.doctor_name,"onUpdate:modelValue":e[34]||(e[34]=l=>i.doctor_name=l),placeholder:"请输入医师姓名"},null,8,["modelValue"])]),_:1}),t(m,{label:"医师签名",prop:"doctor_signature",required:""},{default:s(()=>[o("div",Ts,[o("canvas",{ref_key:"signatureCanvasRef",ref:I,class:"signature-canvas",onPointerdown:ue(Xt,["prevent"]),onPointermove:ue(Zt,["prevent"]),onPointerup:ue(nt,["prevent"]),onPointercancel:ue(nt,["prevent"])},null,544),o("div",Rs,[t(h,{size:"small",onClick:ea},{default:s(()=>[...e[127]||(e[127]=[p("清空签名",-1)])]),_:1})])]),e[128]||(e[128]=o("div",{class:"text-xs text-amber-600 mt-1"},"* 必填,请在框内手写医师签名",-1))]),_:1})]),_:1},8,["model"]))]),_:1},8,["modelValue","title","size"]),t(Re,{modelValue:ae.value,"onUpdate:modelValue":e[54]||(e[54]=l=>ae.value=l),title:"创建业务订单",width:"940px",top:"4vh","close-on-click-modal":!1,onClosed:Ke,class:"create-order-dialog"},{footer:s(()=>[o("div",di,[o("div",pi,[o("span",mi,"第 "+_(D.value+1)+" / 3 步",1),D.value===2&&S.value>0?(d(),v("span",_i," 订单金额与关联支付单合计须 ≥ ¥"+_(G(S.value)),1)):V("",!0)]),o("div",ci,[t(h,{size:"large",onClick:e[53]||(e[53]=l=>ae.value=!1)},{default:s(()=>[...e[140]||(e[140]=[p("取消",-1)])]),_:1}),D.value>0?(d(),y(h,{key:0,size:"large",onClick:Et},{default:s(()=>[...e[141]||(e[141]=[p("上一步",-1)])]),_:1})):V("",!0),D.value<2?(d(),y(h,{key:1,type:"primary",size:"large",onClick:Ot},{default:s(()=>[...e[142]||(e[142]=[p(" 下一步 ",-1)])]),_:1})):V("",!0),D.value===2?(d(),y(h,{key:2,type:"primary",size:"large",loading:we.value,onClick:$t},{default:s(()=>[...e[143]||(e[143]=[p(" 创建业务订单 ",-1)])]),_:1},8,["loading"])):V("",!0)])])]),default:s(()=>[o("div",zs,[O.value?(d(),v("div",Ms,[o("div",js,[e[132]||(e[132]=o("span",{class:"create-order-rx-card__badge"},"关联处方",-1)),o("div",Fs,[o("span",qs,"#"+_(O.value.id),1),O.value.sn?(d(),v("span",Ys,_(O.value.sn),1)):V("",!0),o("span",Ws,_(O.value.patient_name||"—"),1)])])])):V("",!0),t(Va,{active:D.value,"finish-status":"success","align-center":"",class:"create-order-steps"},{default:s(()=>[t(Te,{title:"患者与收货",description:"诊单与物流地址"}),t(Te,{title:"服务与支付单",description:"套餐与关联收款"}),t(Te,{title:"金额与确认",description:"费用与备注"})]),_:1},8,["active"]),o("p",Hs,_(yt.value),1),t(be,{ref_key:"createOrderFormRef",ref:le,model:r,rules:St.value,"label-width":"108px",class:"create-order-form"},{default:s(()=>[E(o("div",Bs,[t(T,{gutter:20},{default:s(()=>[t(k,{span:24},{default:s(()=>[t(m,{label:"诊单患者",prop:"patient_id"},{default:s(()=>[t(N,{modelValue:r.patient_id,"onUpdate:modelValue":e[38]||(e[38]=l=>r.patient_id=l),class:"w-full",placeholder:"搜索姓名/手机/身份证",filterable:"",remote:"","remote-method":Dt,loading:Ce.value,onChange:Pt},{default:s(()=>[(d(!0),v(L,null,X(j.value,l=>(d(),y(u,{key:l.id,label:`${l.patient_name} (${l.phone||"无手机"})`,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1})]),_:1}),t(k,{span:12},{default:s(()=>[t(m,{label:"收货人",prop:"recipient_name"},{default:s(()=>[t(g,{modelValue:r.recipient_name,"onUpdate:modelValue":e[39]||(e[39]=l=>r.recipient_name=l),placeholder:"姓名",maxlength:"50"},null,8,["modelValue"])]),_:1})]),_:1}),t(k,{span:12},{default:s(()=>[t(m,{label:"收货手机",prop:"recipient_phone"},{default:s(()=>[t(g,{modelValue:r.recipient_phone,"onUpdate:modelValue":e[40]||(e[40]=l=>r.recipient_phone=l),placeholder:"物流联系",maxlength:"20"},null,8,["modelValue"])]),_:1})]),_:1}),t(k,{span:24},{default:s(()=>[t(m,{label:"省市区",prop:"region"},{default:s(()=>[t(ka,{modelValue:r.region,"onUpdate:modelValue":e[41]||(e[41]=l=>r.region=l),options:se.value,props:{value:"name",label:"name",children:"children",emitPath:!0,checkStrictly:!1},placeholder:"省 / 市 / 区",clearable:"",filterable:"",class:"w-full",onChange:wt},null,8,["modelValue","options"])]),_:1})]),_:1}),t(k,{span:24},{default:s(()=>[t(m,{label:"详细地址",prop:"shipping_address"},{default:s(()=>[t(g,{modelValue:r.shipping_address,"onUpdate:modelValue":e[42]||(e[42]=l=>r.shipping_address=l),type:"textarea",rows:3,placeholder:"街道、小区、门牌号等详细地址",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[Fe,D.value===0]]),E(o("div",Js,[t(T,{gutter:20},{default:s(()=>[t(k,{xs:24,sm:8},{default:s(()=>[t(m,{label:"复诊"},{default:s(()=>[t(xa,{modelValue:r.is_follow_up,"onUpdate:modelValue":e[43]||(e[43]=l=>r.is_follow_up=l),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1}),t(k,{xs:24,sm:8},{default:s(()=>[t(m,{label:"服用天数",class:"create-order-form-item--inline-num"},{default:s(()=>[o("div",Ks,[t(R,{modelValue:r.medication_days,"onUpdate:modelValue":e[44]||(e[44]=l=>r.medication_days=l),min:1,max:999,step:1,"controls-position":"right",class:"flex-1 min-w-0"},null,8,["modelValue"]),e[133]||(e[133]=o("span",{class:"create-order-unit-suffix"},"天",-1))])]),_:1})]),_:1}),t(k,{xs:24,sm:8},{default:s(()=>[t(m,{label:"上次医生"},{default:s(()=>[t(g,{modelValue:r.prev_staff,"onUpdate:modelValue":e[45]||(e[45]=l=>r.prev_staff=l),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),t(k,{span:12},{default:s(()=>[t(m,{label:"服务渠道"},{default:s(()=>[t(g,{modelValue:r.service_channel,"onUpdate:modelValue":e[46]||(e[46]=l=>r.service_channel=l),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),t(k,{span:12},{default:s(()=>[t(m,{label:"服务套餐"},{default:s(()=>[t(N,{modelValue:r.service_package,"onUpdate:modelValue":e[47]||(e[47]=l=>r.service_package=l),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"请选择服务套餐",clearable:"",class:"w-full"},{default:s(()=>[(d(!0),v(L,null,X(Ne.value,l=>(d(),y(u,{key:l.value,label:l.name,value:l.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(k,{span:24},{default:s(()=>[t(m,{label:"关联支付单",prop:"pay_order_ids"},{default:s(()=>[t(N,{modelValue:r.pay_order_ids,"onUpdate:modelValue":e[48]||(e[48]=l=>r.pay_order_ids=l),class:"w-full",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:S.value>0?"请至少选择一笔本诊单支付单(已开启门槛)":"多选本诊单支付单(可选)",loading:Se.value},{default:s(()=>[(d(!0),v(L,null,X(K.value,l=>(d(),y(u,{key:l.id,label:`${l.order_no} · ¥${l.amount} · ${Je(l.order_type)}`,value:l.id,class:"!h-auto py-1.5"},{default:s(()=>[o("div",Gs,[o("div",Qs,[o("span",Xs,_(l.order_no),1),o("span",Zs,"¥"+_(l.amount),1)]),o("div",ei,[o("span",ti,[p(_(Je(l.order_type)),1),l.remark?(d(),v(L,{key:0},[p(" · "+_(l.remark),1)],64)):V("",!0)]),o("span",ai,_(String(l.create_time||"").substring(0,16)),1)])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","loading"]),o("div",li,[S.value>0?(d(),v(L,{key:0},[o("span",si,"当前已开启关联支付门槛(¥"+_(G(S.value))+"),须至少选择一笔支付单。",1),e[134]||(e[134]=o("span",{class:"mx-1"},null,-1))],64)):V("",!0),e[136]||(e[136]=p(" 主管/本诊单医助可见全部支付单;否则仅本人收款单。已被占用的支付单不列出。 ",-1)),t(ha,{content:"主管或本诊单医助可见该诊单全部支付单(待支付/已支付),否则仅本人创建的收款单。已被其他有效业务订单占用的支付单不会出现在此列表。",placement:"top"},{default:s(()=>[...e[135]||(e[135]=[o("span",{class:"text-primary cursor-help ml-0.5"},"详情",-1)])]),_:1})])]),_:1})]),_:1})]),_:1})],512),[[Fe,D.value===1]]),E(o("div",ii,[o("div",{class:wl(["create-order-deposit-bar",Ue.value>=S.value?"is-ok":"is-warn"])},[o("div",ni,[e[137]||(e[137]=o("span",{class:"create-order-deposit-bar__label"},"定金门槛",-1)),o("strong",null,"¥"+_(G(S.value)),1),o("span",oi,_(S.value>0?"须 ≥ 此值":"未设置"),1)]),e[139]||(e[139]=o("div",{class:"create-order-deposit-bar__sep"},null,-1)),o("div",ri,[e[138]||(e[138]=o("span",{class:"create-order-deposit-bar__label"},"已选收款",-1)),o("strong",null,"¥"+_(G(Ue.value)),1),o("span",ui,_(Ue.value>=S.value?"已达标":"未达标"),1)])],2),t(T,{gutter:20,class:"create-order-step-panel__row-after-bar"},{default:s(()=>[t(k,{span:12},{default:s(()=>[t(m,{label:"费用类别",prop:"fee_type"},{default:s(()=>[t(N,{modelValue:r.fee_type,"onUpdate:modelValue":e[49]||(e[49]=l=>r.fee_type=l),placeholder:"请选择",class:"w-full"},{default:s(()=>[t(u,{label:"挂号费",value:1}),t(u,{label:"问诊费",value:2}),t(u,{label:"药品费用",value:3}),t(u,{label:"首付费用",value:4}),t(u,{label:"尾款费用",value:5}),t(u,{label:"其他费用",value:6}),t(u,{label:"全部费用",value:7})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(k,{span:12},{default:s(()=>[t(m,{label:"总金额",prop:"amount"},{default:s(()=>[t(R,{modelValue:r.amount,"onUpdate:modelValue":e[50]||(e[50]=l=>r.amount=l),min:Ct.value,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"元"},null,8,["modelValue","min"])]),_:1})]),_:1}),E((d(),y(k,{span:12},{default:s(()=>[t(m,{label:"内部成本"},{default:s(()=>[t(R,{modelValue:r.internal_cost,"onUpdate:modelValue":e[51]||(e[51]=l=>r.internal_cost=l),min:0,step:.01,precision:2,class:"w-full","controls-position":"right",placeholder:"财务可见"},null,8,["modelValue"])]),_:1})]),_:1})),[[F,["finance.account_log/lists"]]]),t(k,{span:24},{default:s(()=>[t(m,{label:"备注"},{default:s(()=>[t(g,{modelValue:r.remark_extra,"onUpdate:modelValue":e[52]||(e[52]=l=>r.remark_extra=l),type:"textarea",rows:3,placeholder:"选填,对内说明",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})],512),[[Fe,D.value===2]])]),_:1},8,["model","rules"])])]),_:1},8,["modelValue"]),t(Re,{modelValue:ne.value,"onUpdate:modelValue":e[58]||(e[58]=l=>ne.value=l),title:"从处方库导入",width:"800px","close-on-click-modal":!1},{default:s(()=>[o("div",fi,[t(g,{modelValue:ge.value,"onUpdate:modelValue":e[55]||(e[55]=l=>ge.value=l),placeholder:"请输入处方名称搜索",clearable:"",onKeyup:je(Ae,["enter"]),onClear:Ae},{append:s(()=>[t(h,{icon:z(bl),onClick:Ae},null,8,["icon"])]),_:1},8,["modelValue"])]),E((d(),y(Ie,{data:Oe.value,height:"400",style:{cursor:"pointer"},onRowClick:oa},{default:s(()=>[t(U,{label:"处方名称",prop:"prescription_name","min-width":"150","show-overflow-tooltip":""}),t(U,{label:"药材数量",width:"100"},{default:s(({row:l})=>{var C;return[p(_(((C=l.herbs)==null?void 0:C.length)||0)+"味 ",1)]}),_:1}),t(U,{label:"药材明细","min-width":"300","show-overflow-tooltip":""},{default:s(({row:l})=>[l.herbs&&l.herbs.length>0?(d(),v("span",gi,_(l.herbs.map(C=>`${C.name} ${C.dosage}g`).join("、")),1)):(d(),v("span",vi,"暂无药材"))]),_:1}),t(U,{label:"创建人",prop:"creator_name",width:"100"}),t(U,{label:"操作",width:"100",fixed:"right"},{default:s(({row:l})=>[t(h,{type:"primary",link:"",onClick:ue(C=>pt(l),["stop"])},{default:s(()=>[...e[144]||(e[144]=[p("导入",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[ze,Ee.value]]),o("div",bi,[t(wa,{"current-page":oe.value,"onUpdate:currentPage":e[56]||(e[56]=l=>oe.value=l),"page-size":$e.value,"onUpdate:pageSize":e[57]||(e[57]=l=>$e.value=l),total:Le.value,"page-sizes":[10,15,20,50],layout:"total, sizes, prev, pager, next",onCurrentChange:ve,onSizeChange:ve},null,8,["current-page","page-size","total"])])]),_:1},8,["modelValue"]),t(Re,{modelValue:te.value,"onUpdate:modelValue":e[63]||(e[63]=l=>te.value=l),title:"处方审核",width:"480px","destroy-on-close":"",onClosed:e[64]||(e[64]=l=>J.value="")},{footer:s(()=>[t(h,{onClick:e[60]||(e[60]=l=>te.value=!1)},{default:s(()=>[...e[145]||(e[145]=[p("取消",-1)])]),_:1}),t(h,{type:"primary",loading:pe.value,onClick:e[61]||(e[61]=l=>ut("approve"))},{default:s(()=>[...e[146]||(e[146]=[p("审核通过",-1)])]),_:1},8,["loading"]),t(h,{type:"danger",loading:pe.value,onClick:e[62]||(e[62]=l=>ut("reject"))},{default:s(()=>[...e[147]||(e[147]=[p("驳回处方",-1)])]),_:1},8,["loading"])]),default:s(()=>[e[148]||(e[148]=o("p",{class:"text-sm text-gray-600 mb-3"}," 通过:处方保持有效。驳回:将同时作废此处方(与诊间「驳回/作废处方」一致)。 ",-1)),t(be,{"label-width":"80px"},{default:s(()=>[t(m,{label:"审核意见"},{default:s(()=>[t(g,{modelValue:J.value,"onUpdate:modelValue":e[59]||(e[59]=l=>J.value=l),type:"textarea",rows:3,maxlength:"500","show-word-limit":"",placeholder:"通过可简要说明;驳回必填"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),t(z(ct),{ref_key:"diagnosisViewRef",ref:Ze},null,512)])}}}),cn=ll(Vi,[["__scopeId","data-v-0176247d"]]);export{cn as default};