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