2 lines
52 KiB
JavaScript
2 lines
52 KiB
JavaScript
import{G as At,F as Et,D as Mt,B as jt,C as Pt,P as Lt,Q as Tt,i as It,J as Rt,L as zt,M as Ft,N as Bt,U as Ht,K as Yt,V as qt,W as Qt,I as Wt,h as Gt,X as Jt,g as Kt,e as Xt,Y as Zt}from"./element-plus-Dmpg6ayE.js";import{_ as el}from"./index.vue_vue_type_script_setup_true_lang-pXicZ9qy.js";import{u as tl,c as ll,i as S,_ as al}from"./index-DWk_b8Nv.js";import{w as sl}from"./@vue/runtime-dom-iFk_KP8y.js";import{g as il,p as nl,a as Ie,b as ol,c as rl,d as dl,e as ul,f as pl,h as ml}from"./tcm-BCaX4wIV.js";import{s as _l}from"./order-D8LIXVNB.js";import{r as fl}from"./role-BIezdAsx.js";import{u as cl}from"./usePaging-B_C_SZ2Z.js";import{_ as vl}from"./index.vue_vue_type_script_setup_true_lang-BzILDzNF.js";import{a as gl}from"./vue-router-CYz6RFzi.js";import{f as Fe,w as ge,b as bl,as as yl,ak as d,I as g,a as t,aN as s,J as i,O as p,F as M,ap as F,G as V,aP as A,H as y,A as B,n as Re}from"./@vue/runtime-core-C0pg79pw.js";import{y as H,a as kl,r as be,o as x}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as m,o as ze}from"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-DsycZ37q.js";import"./lodash-es-BADexyn7.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-DYKKs4Al.js";import"./tslib-BDyQ-Jie.js";import"./zrender-CTTuYiLF.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-BVMzZUvF.js";const Vl={class:"prescription-list"},xl={class:"pl-toolbar"},hl={class:"pl-toolbar__line"},wl={class:"pl-toolbar__line pl-toolbar__line--second"},Nl={class:"pl-toolbar__actions"},Cl={class:"pl-table-head"},Ul={class:"flex items-center gap-2"},Sl={class:"mt-3"},Dl={class:"font-medium"},Ol={class:"text-xs text-gray-400 mt-0.5"},$l={class:"font-medium"},Al={class:"text-xs text-gray-500 mt-0.5"},El={class:"flex flex-col gap-1"},Ml={class:"flex flex-wrap items-center gap-1"},jl={key:0,class:"text-xs text-gray-500"},Pl=["title"],Ll={key:1,class:"text-gray-400"},Tl={class:"font-medium"},Il={class:"text-xs text-gray-500 mt-0.5"},Rl={class:"text-sm"},zl={class:"flex mt-2 justify-end"},Fl={key:0,class:"cf-slip-wrap"},Bl={key:0,class:"cf-slip-print"},Hl={class:"cf-slip-header"},Yl={class:"cf-slip-type"},ql={key:0,class:"cf-slip-void"},Ql={key:1,class:"rounded border border-red-200 bg-red-50 text-red-800 text-sm px-3 py-2 mb-3"},Wl={key:0,class:"mt-1"},Gl={key:1,class:"mt-1 text-red-600/80"},Jl={key:2,class:"rounded border border-red-200 bg-red-50 text-red-800 text-sm px-3 py-2 mb-3"},Kl={key:0,class:"mt-1"},Xl={key:1,class:"mt-1 text-red-600/80"},Zl={class:"cf-slip-info"},ea={class:"cf-slip-row"},ta={class:"cf-slip-item"},la={class:"cf-slip-item"},aa={class:"cf-slip-item"},sa={class:"cf-slip-row"},ia={class:"cf-slip-item"},na={class:"cf-slip-item"},oa={class:"cf-slip-item"},ra={key:0,class:"cf-slip-row"},da={key:0,class:"cf-slip-item"},ua={key:1,class:"cf-slip-item"},pa={class:"cf-slip-row cf-slip-row-full"},ma={class:"cf-slip-item"},_a={class:"cf-slip-rp"},fa={class:"cf-slip-herbs"},ca={class:"cf-slip-footer"},va={class:"cf-slip-footer-left"},ga={key:0,class:"cf-slip-dietary"},ba={key:1,class:"cf-slip-notes"},ya={class:"cf-slip-footer-right"},ka={class:"cf-slip-sign"},Va=["src"],xa={key:1},ha={key:3,class:"cf-slip-audit text-sm text-gray-600 mt-4 pt-3 border-t border-dashed border-gray-200"},wa={key:0},Na={key:0,class:"ml-2 text-gray-400"},Ca={key:1,class:"mt-1"},Ua={class:"text-sm mt-1"},Sa={key:0,class:"text-sm mt-2 text-gray-800 font-medium"},Da={class:"w-full"},Oa={key:0,class:"mb-4 rounded-lg border border-blue-100 bg-blue-50 p-3"},$a={class:"flex items-start gap-2"},Aa={class:"flex-1 min-w-0"},Ea={class:"text-xs text-blue-700"},Ma={key:0},ja={class:"text-xs text-blue-600 mt-1 line-clamp-1"},Pa={class:"form-section"},La={class:"section-content"},Ta={class:"form-section"},Ia={class:"section-content"},Ra={class:"form-section"},za={class:"section-content"},Fa={class:"form-section"},Ba={class:"section-content"},Ha={class:"flex flex-col gap-0.5",style:{"line-height":"normal"}},Ya={class:"flex items-center justify-between"},qa={class:"font-medium text-[13px] text-gray-800"},Qa={class:"text-orange-500 font-medium ml-4"},Wa={class:"flex items-center justify-between text-xs text-gray-400 mt-1"},Ga={class:"truncate pr-2"},Ja={class:"shrink-0"},Ka={class:"form-section"},Xa={class:"section-content"},Za={class:"mb-3 rounded-lg border border-gray-200 bg-gray-50 p-3"},es={class:"grid grid-cols-2 gap-3"},ts={class:"text-base font-semibold text-gray-900"},ls={class:"text-xs text-gray-400 mt-0.5"},as={class:"form-section"},ss={class:"section-content"},is={class:"flex items-center justify-between"},ns={class:"text-xs text-gray-500"},os={key:0,class:"text-amber-600"},rs={class:"flex gap-2"},ds=Fe({name:"prescriptionList"}),us=Fe({...ds,setup(ps){const Be=[0,3],He="成都双流甄养堂互联网医院",Ye="成都双流甄养堂互联网医院有限公司 联系方式:4001667339",qe="地址:四川省成都市双流区黄甲街道黄龙大道二段280号",oe=tl(),ye=gl();function Qe(){const l=ye.getRoutes().find(e=>{var r;return((r=e.meta)==null?void 0:r.perms)==="tcm.prescriptionOrder/lists"});l!=null&&l.path?ye.push(l.path):S.msgWarning("未配置「处方业务订单」菜单,请在权限管理中执行菜单 SQL 或手动添加路由")}const k=be({patient_name:"",creator_ids:[],audit_filter:"all",start_time:"",end_time:""}),re=x([]),E=x("all"),j=x(!1),C=x("add"),de=x(!1),Y=x(),_=x(null),ue=x(!1),pe=x([]),q=x(!1),ke=x(0),R=x(""),Z=x(!1),Q=x(!1),O=x(null),ee=x(),me=x(!1),_e=x(!1),P=x([]),z=x([]),fe=x(!1),N=x(0);function te(l){const e=Number(l);return Number.isNaN(e)?"—":e.toFixed(2)}function Ve(l){return{1:"挂号费",2:"问诊费",3:"药品费用",4:"首付",5:"尾款",6:"其他"}[Number(l)]||"未知"}const o=be({patient_id:"",recipient_name:"",recipient_phone:"",shipping_address:"",is_follow_up:0,medication_days:void 0,prev_staff:"",service_channel:"",service_package:"",express_company:"auto",tracking_number:"",fee_type:3,amount:0,internal_cost:void 0,remark_extra:"",pay_order_ids:[]}),W=B(()=>{const l=new Set(o.pay_order_ids.map(r=>Number(r)));let e=0;for(const r of z.value)l.has(Number(r.id))&&(e+=Number(r.amount)||0);return Math.round(e*100)/100}),We=B(()=>{const l=N.value;return l>0?Math.round(l*100)/100:0}),Ge={patient_id:[{required:!0,message:"请选择诊单患者",trigger:"change"}],recipient_name:[{required:!0,message:"请输入收货人",trigger:"blur"}],recipient_phone:[{required:!0,message:"请输入收货手机",trigger:"blur"}],shipping_address:[{required:!0,message:"请输入收货地址",trigger:"blur"}],fee_type:[{required:!0,message:"请选择费用类别",trigger:"change"}],amount:[{required:!0,message:"请输入订单金额",trigger:"blur"},{validator:(l,e,r)=>{const f=N.value,v=Number(e);if(f>0&&(!Number.isFinite(v)||v<f)){r(new Error(`订单金额须大于等于定金门槛 ¥${te(f)}`));return}r()},trigger:"blur"}]},Je=B(()=>{const l=O.value,e=ve(l==null?void 0:l.herbs);if(!e.length)return"暂无药材明细";const r=e.map(f=>`${f.name} ${f.dosage}g`).join("、");return r.length>120?`${r.slice(0,120)}…`:r});function xe(){var l;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=[],P.value=[],z.value=[],N.value=0,O.value=null,(l=ee.value)==null||l.clearValidate()}function he(){const l=N.value,e=W.value,r=l>0?Math.round(l*100)/100:0,f=l>0?Math.max(e,r):e>0?e:0;f>0&&Number(o.amount)<f&&(o.amount=Math.round(f*100)/100)}async function we(){var e,r;const l=Number(o.patient_id);if(!l){z.value=[],N.value=0;return}try{fe.value=!0;const f=await nl({diagnosis_id:l}),v=(f==null?void 0:f.lists)??((e=f==null?void 0:f.data)==null?void 0:e.lists)??[];z.value=Array.isArray(v)?v:[];const c=Number((f==null?void 0:f.deposit_min_amount)??((r=f==null?void 0:f.data)==null?void 0:r.deposit_min_amount))||0;N.value=c,he()}catch{z.value=[],N.value=0}finally{fe.value=!1}}ge(()=>o.patient_id,()=>{o.pay_order_ids=[],we()}),ge(()=>[...o.pay_order_ids],()=>{he()},{deep:!0});async function Ke(l){var v;xe(),O.value=l;const e=Number(l.diagnosis_id)||0;e>0&&(o.patient_id=e,o.recipient_name=l.patient_name||"",o.recipient_phone=String(l.phone||"").trim(),P.value=[{id:e,patient_name:l.patient_name||"",phone:String(l.phone||"").trim()}]);const r=Number(l.usage_days);r>0&&(o.medication_days=r),Q.value=!0,we();const f=l.id;if(f&&!o.recipient_phone)try{const c=await Ie({id:f}),u=c&&typeof c.phone=="string"?c.phone.trim():"";if(u&&((v=O.value)==null?void 0:v.id)===f){o.recipient_phone=u;const w=P.value[0];w&&Number(w.id)===e&&(w.phone=u)}}catch{}}async function Xe(l){if(!l){P.value=[];return}try{_e.value=!0;const e=await _l({keyword:l,page_no:1,page_size:10});P.value=(e==null?void 0:e.lists)||[]}catch{P.value=[]}finally{_e.value=!1}}function Ze(l){const e=P.value.find(r=>Number(r.id)===Number(l));e&&(o.recipient_name=e.patient_name||"",o.recipient_phone=e.phone||"")}async function et(){if(!(!ee.value||!O.value))try{await ee.value.validate(),me.value=!0;const l=Number(o.patient_id),e={prescription_id:O.value.id,diagnosis_id:l,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:o.service_package||"",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.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 r=await ol(e),f=(r==null?void 0:r.data)??r,v=f==null?void 0:f.order_no;S.msgSuccess(v?`业务订单已创建,单号:${v}`:"业务订单已创建"),Q.value=!1}catch(l){console.error(l)}finally{me.value=!1}}const le=x(!1),ae=x(!1),Ne=B(()=>{const l=le.value,e=ae.value;return!l&&!e?"":l&&e?"当前处方已作废且已驳回。保存后将取消作废、清除驳回,并重新进入待审核。":l?"当前为已作废处方。保存后将取消作废,并重新进入待审核。":"当前为已驳回处方。保存后将清除驳回,并重新进入待审核。"}),tt=B(()=>{var e;const l=(e=_.value)==null?void 0:e.herbs;return Array.isArray(l)?l:[]}),Ce=B(()=>{var e;const l=(e=_.value)==null?void 0:e.dietary_taboo;return Array.isArray(l)?l.filter(Boolean).join("、"):typeof l=="string"&&l.trim()?l.trim():""}),n=be({id:0,prescription_type:"浓缩水丸",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,business_prescription_audit_rejected:0,business_prescription_audit_remark:""}),lt={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 at(l){const{audit_filter:e,creator_ids:r,...f}=l,v={...f,audit_filter:e==="all"||e===""?"":e};return Array.isArray(r)&&r.length>0&&(v.creator_ids=r),rl(v)}const{pager:G,getLists:J,resetPage:K}=cl({fetchFun:at,params:k});function Ue(l){return String(l).padStart(2,"0")}function Se(l){const e=l.getFullYear(),r=Ue(l.getMonth()+1),f=Ue(l.getDate()),v=`${e}-${r}-${f}`;return{start:`${v} 00:00:00`,end:`${v} 23:59:59`}}function st(l){const e=String(l??"all");if(e==="all")k.start_time="",k.end_time="";else{const r=new Date,f=new Date(r.getFullYear(),r.getMonth(),r.getDate());e==="yesterday"?f.setDate(f.getDate()-1):e==="before_yesterday"&&f.setDate(f.getDate()-2);const{start:v,end:c}=Se(f);k.start_time=v,k.end_time=c}K()}function it(){K()}let ce=!1;ge(()=>[k.start_time,k.end_time],()=>{if(ce)return;const l=k.start_time,e=k.end_time;if(!l&&!e){E.value="all";return}if(!l||!e){E.value="";return}const r=new Date,f=v=>{const c=new Date(r.getFullYear(),r.getMonth(),r.getDate()-v),{start:u,end:w}=Se(c);return l===u&&e===w};f(0)?E.value="today":f(1)?E.value="yesterday":f(2)?E.value="before_yesterday":E.value=""});function nt(l){if(l==null||l==="")return"—";if(typeof l=="number"&&l>=1e9&&l<1e11)return se(l);const e=String(l).trim();return/^\d{10}$/.test(e)?se(parseInt(e,10)):e}function ot(){ce=!0,E.value="all",k.patient_name="",k.creator_ids=[],k.audit_filter=De()?"pending":"all",k.start_time="",k.end_time="",ce=!1,K()}function De(){const l=oe.userInfo;if(!l)return!1;if(Number(l.root)===1)return!0;const e=l.role_ids??l.role_id,r=Array.isArray(e)?e.map(f=>Number(f)):[];return Be.some(f=>r.includes(f))}function rt(l){return l===0?"待审核":l===2?"已驳回":"已通过"}function dt(l){return l===0?"warning":l===2?"danger":"success"}function ut(l){return Number(l.business_prescription_audit_rejected)===1?"已驳回":rt(l.audit_status)}function pt(l){return Number(l.business_prescription_audit_rejected)===1?"danger":dt(l.audit_status)}function Oe(l){const e=[];if(Number(l.business_prescription_audit_rejected)===1){const r=String(l.business_prescription_audit_remark||"").trim();e.push(r?`业务订单审核驳回意见:${r}`:"业务订单审核驳回意见:—")}if(Number(l.audit_status)===2){const r=String(l.audit_remark||"").trim();e.push(r?`消费者处方审核驳回意见:${r}`:"消费者处方审核驳回意见:—")}return e}function $e(l){return Number(l.audit_status)===1&&Number(l.void_status)!==1}function se(l){if(!l)return"";const e=new Date(l*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 mt(l){return l?se(l):"—"}function _t(l){return l===1||l==="1"?"男":l===0||l==="0"?"女":"—"}function ft(l){return l==null||l===""?"—":`${l}岁`}function ve(l){return l?Array.isArray(l)?l.map(e=>({name:String((e==null?void 0:e.name)??"").trim(),dosage:Number(e==null?void 0:e.dosage)||0})):[]:[]}function ct(l){return{...l,herbs:ve(l==null?void 0:l.herbs)}}function vt(){_.value=null}function gt(l){const e=l==null?void 0:l.visible_role_ids;return Array.isArray(e)?e.map(r=>Number(r)).filter(r=>!Number.isNaN(r)):typeof e=="string"&&e?e.split(",").map(r=>parseInt(r.trim(),10)).filter(r=>!Number.isNaN(r)):[]}function bt(l){ke.value=l.id,R.value="",q.value=!0}async function Ae(l){if(l==="reject"&&!R.value.trim()){S.msgError("驳回时请填写审核意见");return}Z.value=!0;try{const e=await dl({id:ke.value,action:l,remark:R.value.trim()});S.msgSuccess(l==="reject"?"已驳回并作废处方":"审核通过"),e&&e.wecom_notify_ok===!1&&e.wecom_notify_hint&&S.msgWarning(e.wecom_notify_hint),q.value=!1,J()}catch{}finally{Z.value=!1}}async function yt(){try{const l=await fl({});pe.value=Array.isArray(l)?l:[]}catch{pe.value=[]}}const kt=()=>{n.herbs.push({name:"",dosage:0})},Vt=l=>{n.herbs.splice(l,1)},xt=()=>{n.id=0,n.prescription_type="浓缩水丸",n.patient_name="",n.gender=1,n.age=0,n.visit_no="",n.prescription_date=new Date().toISOString().split("T")[0],n.tongue="",n.tongue_image="",n.pulse="",n.pulse_condition="",n.clinical_diagnosis="",n.herbs=[],n.dose_count=7,n.dose_unit="剂",n.usage_days=7,n.usage_instruction="水煎服,一日二次",n.usage_time="饭前",n.usage_way="温水送服",n.dietary_taboo=[],n.usage_notes="",n.doctor_name="",n.is_shared=0,n.visible_role_ids=[],n.audit_status=1,n.audit_time=null,n.audit_by_name="",n.audit_remark="",n.diagnosis_id=0,n.business_prescription_audit_rejected=0,n.business_prescription_audit_remark=""},ht=()=>{xt(),le.value=!1,ae.value=!1,C.value="add",j.value=!0,Re(()=>{var l;(l=Y.value)==null||l.clearValidate()})},wt=async l=>{le.value=!1,ae.value=!1,C.value="view",_.value=ct(l),j.value=!0,ue.value=!0;try{const e=await Ie({id:l.id});e&&typeof e=="object"&&(_.value={...e,herbs:ve(e.herbs)})}catch(e){S.msgError((e==null?void 0:e.msg)||"加载处方详情失败")}finally{ue.value=!1}},Nt=l=>{le.value=Number(l.void_status)===1,ae.value=Number(l.audit_status)===2,C.value="edit",n.id=l.id,n.prescription_type=l.prescription_type||"浓缩水丸",n.patient_name=l.patient_name||"",n.gender=l.gender??1,n.age=l.age??0,n.visit_no=l.visit_no||"",n.prescription_date=l.prescription_date||"",n.tongue=l.tongue||"",n.tongue_image=l.tongue_image||"",n.pulse=l.pulse||"",n.pulse_condition=l.pulse_condition||"",n.clinical_diagnosis=l.clinical_diagnosis||"",n.herbs=l.herbs?JSON.parse(JSON.stringify(l.herbs)):[],n.dose_count=l.dose_count??7,n.dose_unit=l.dose_unit||"剂",n.usage_days=l.usage_days??7,n.usage_instruction=l.usage_instruction||"水煎服,一日二次",n.usage_time=l.usage_time||"饭前",n.usage_way=l.usage_way||"温水送服",n.dietary_taboo=l.dietary_taboo?Array.isArray(l.dietary_taboo)?l.dietary_taboo:l.dietary_taboo.split(",").filter(e=>e):[],n.usage_notes=l.usage_notes||"",n.doctor_name=l.doctor_name||"",n.is_shared=l.is_shared??0,n.visible_role_ids=gt(l),n.audit_status=l.audit_status??1,n.audit_time=l.audit_time??null,n.audit_by_name=l.audit_by_name||"",n.audit_remark=l.audit_remark||"",n.diagnosis_id=l.diagnosis_id??0,n.business_prescription_audit_rejected=Number(l.business_prescription_audit_rejected)===1?1:0,n.business_prescription_audit_remark=String(l.business_prescription_audit_remark||""),j.value=!0,Re(()=>{var e;(e=Y.value)==null||e.clearValidate()})},Ct=async()=>{if(Y.value){if(await Y.value.validate(),!n.herbs||n.herbs.length===0){S.msgError("请至少添加一味药材");return}for(let l=0;l<n.herbs.length;l++){const e=n.herbs[l];if(!e.name||!e.name.trim()){S.msgError(`第${l+1}味药材名称不能为空`);return}if(!e.dosage||e.dosage<=0){S.msgError(`第${l+1}味药材剂量必须大于0`);return}}de.value=!0;try{const l={...n};C.value==="add"?(l.audit_status=0,await ul(l),S.msgSuccess("添加成功,已提交审核")):(await pl(l),S.msgSuccess("保存成功,处方已重新进入待审核")),j.value=!1,J()}catch(l){console.error(l)}finally{de.value=!1}}},Ut=async l=>{await S.confirm("确定要删除该处方吗?"),await ml({id:l}),S.msgSuccess("删除成功"),J()};return bl(async()=>{var l;await yt();try{const e=await il();re.value=Array.isArray(e)?e:[]}catch{re.value=[]}try{(l=oe.userInfo)!=null&&l.id||await oe.getUserInfo()}catch{}De()&&(k.audit_filter="pending"),J()}),(l,e)=>{const r=Et,f=At,v=Pt,c=jt,u=Tt,w=Lt,ie=Mt,h=It,Ee=Rt,St=ll,U=Bt,L=Ht,Me=Ft,Dt=el,ne=Yt,b=Qt,$=qt,je=Wt,I=Gt,Ot=Jt,Pe=Kt,$t=Xt,Le=Zt,T=yl("perms"),Te=zt;return d(),g("div",Vl,[t(Ee,{class:"filter-toolbar",shadow:"never","body-style":{padding:"10px 14px"}},{default:s(()=>[i("div",xl,[i("div",hl,[e[65]||(e[65]=i("span",{class:"pl-toolbar__k",title:"按处方创建时间"},"创建时间",-1)),t(f,{modelValue:E.value,"onUpdate:modelValue":e[0]||(e[0]=a=>E.value=a),size:"small",class:"pl-toolbar__rg",onChange:st},{default:s(()=>[t(r,{label:"all"},{default:s(()=>[...e[56]||(e[56]=[p("全部",-1)])]),_:1}),t(r,{label:"today"},{default:s(()=>[...e[57]||(e[57]=[p("今日",-1)])]),_:1}),t(r,{label:"yesterday"},{default:s(()=>[...e[58]||(e[58]=[p("昨日",-1)])]),_:1}),t(r,{label:"before_yesterday"},{default:s(()=>[...e[59]||(e[59]=[p("前天",-1)])]),_:1})]),_:1},8,["modelValue"]),t(vl,{class:"pl-toolbar__range",startTime:k.start_time,"onUpdate:startTime":e[1]||(e[1]=a=>k.start_time=a),endTime:k.end_time,"onUpdate:endTime":e[2]||(e[2]=a=>k.end_time=a)},null,8,["startTime","endTime"]),e[66]||(e[66]=i("span",{class:"pl-toolbar__sep","aria-hidden":"true"},null,-1)),e[67]||(e[67]=i("span",{class:"pl-toolbar__k",title:"「未通过」含待审核与已驳回"},"审核",-1)),t(f,{modelValue:k.audit_filter,"onUpdate:modelValue":e[3]||(e[3]=a=>k.audit_filter=a),size:"small",class:"pl-toolbar__rg pl-toolbar__rg--audit",onChange:it},{default:s(()=>[t(r,{label:"pending",class:"pl-audit-pending-btn"},{default:s(()=>[...e[60]||(e[60]=[p("待审核",-1)])]),_:1}),t(r,{label:"all"},{default:s(()=>[...e[61]||(e[61]=[p("全部",-1)])]),_:1}),t(r,{label:"passed"},{default:s(()=>[...e[62]||(e[62]=[p("已通过",-1)])]),_:1}),t(r,{label:"not_passed"},{default:s(()=>[...e[63]||(e[63]=[p("未通过",-1)])]),_:1}),t(r,{label:"rejected"},{default:s(()=>[...e[64]||(e[64]=[p("驳回",-1)])]),_:1})]),_:1},8,["modelValue"])]),i("div",wl,[t(ie,{model:k,inline:"",class:"pl-toolbar__form"},{default:s(()=>[t(c,{label:"患者",class:"!mb-0"},{default:s(()=>[t(v,{modelValue:k.patient_name,"onUpdate:modelValue":e[4]||(e[4]=a=>k.patient_name=a),placeholder:"姓名",clearable:"",class:"pl-toolbar__input",onKeyup:sl(H(K),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),t(c,{label:"医师",class:"!mb-0"},{default:s(()=>[t(w,{modelValue:k.creator_ids,"onUpdate:modelValue":e[5]||(e[5]=a=>k.creator_ids=a),multiple:"","collapse-tags":"","collapse-tags-tooltip":"",filterable:"",clearable:"",placeholder:"全部医师",class:"pl-toolbar__select pl-toolbar__select--doctors"},{default:s(()=>[(d(!0),g(M,null,F(re.value,a=>(d(),V(u,{key:a.id,label:a.name,value:Number(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"]),i("div",Nl,[t(h,{type:"primary",onClick:H(K)},{default:s(()=>[...e[68]||(e[68]=[p("查询",-1)])]),_:1},8,["onClick"]),t(h,{onClick:ot},{default:s(()=>[...e[69]||(e[69]=[p("重置",-1)])]),_:1})])])])]),_:1}),A((d(),V(Ee,{class:"mt-3 table-card",shadow:"never"},{default:s(()=>[i("div",Cl,[e[72]||(e[72]=i("span",{class:"pl-table-head__title"},"处方列表",-1)),i("div",Ul,[A((d(),V(h,{onClick:Qe},{default:s(()=>[...e[70]||(e[70]=[p(" 业务订单 ",-1)])]),_:1})),[[T,["tcm.prescriptionOrder/lists"]]]),A((d(),V(h,{type:"primary",onClick:ht},{icon:s(()=>[t(St,{name:"el-icon-Plus"})]),default:s(()=>[e[71]||(e[71]=p(" 新增处方 ",-1))]),_:1})),[[T,["cf.prescription/add"]]])])]),i("div",Sl,[t(Me,{data:H(G).lists,size:"default",stripe:""},{default:s(()=>[t(U,{label:"处方编号","min-width":"160"},{default:s(({row:a})=>[i("span",Dl,m(a.sn||"—"),1),i("div",Ol,"ID: "+m(a.id),1)]),_:1}),t(U,{label:"处方类型","min-width":"100"},{default:s(({row:a})=>[t(L,{type:"info",size:"small"},{default:s(()=>[p(m(a.prescription_type||"—"),1)]),_:2},1024)]),_:1}),t(U,{label:"患者信息","min-width":"110"},{default:s(({row:a})=>[i("div",$l,m(a.patient_name||"—"),1),i("div",Al,m(a.gender===1?"男":a.gender===0?"女":"未知")+" · "+m(a.age?a.age+"岁":"—"),1)]),_:1}),t(U,{label:"审核状态","min-width":"200"},{default:s(({row:a})=>[i("div",El,[i("div",Ml,[t(L,{type:pt(a)},{default:s(()=>[p(m(ut(a)),1)]),_:2},1032,["type"]),Number(a.business_prescription_audit_rejected)===1?(d(),g("span",jl," (业务订单审核) ")):y("",!0)]),Oe(a).length?(d(!0),g(M,{key:0},F(Oe(a),(D,X)=>(d(),g("div",{key:X,class:"text-xs text-red-600 leading-snug line-clamp-3",title:D},m(D),9,Pl))),128)):y("",!0)])]),_:1}),t(U,{label:"作废","min-width":"80",align:"center"},{default:s(({row:a})=>[a.void_status===1?(d(),V(L,{key:0,type:"danger",size:"small"},{default:s(()=>[...e[73]||(e[73]=[p("作废",-1)])]),_:1})):(d(),g("span",Ll,"—"))]),_:1}),t(U,{label:"医师信息","min-width":"120"},{default:s(({row:a})=>[i("div",Tl,m(a.doctor_name||"—"),1),i("div",Il,m(a.prescription_date||"—"),1)]),_:1}),t(U,{label:"医助","min-width":"90"},{default:s(({row:a})=>[i("div",Rl,m(a.assistant_name||"—"),1)]),_:1}),t(U,{label:"创建时间","min-width":"160"},{default:s(({row:a})=>[p(m(nt(a.create_time)),1)]),_:1}),t(U,{label:"操作",width:"300",fixed:"right"},{default:s(({row:a})=>[A((d(),V(h,{type:"primary",link:"",onClick:D=>wt(a)},{default:s(()=>[...e[74]||(e[74]=[p(" 查看 ",-1)])]),_:1},8,["onClick"])),[[T,["cf.prescription/read"]]]),Number(a.has_prescription_order)?y("",!0):A((d(),V(h,{key:0,type:"success",link:"",onClick:D=>Ke(a)},{default:s(()=>[...e[75]||(e[75]=[p(" 创建订单 ",-1)])]),_:1},8,["onClick"])),[[T,["tcm.prescriptionOrder/create"]]]),$e(a)?y("",!0):A((d(),V(h,{key:1,type:"primary",link:"",onClick:D=>Nt(a)},{default:s(()=>[...e[76]||(e[76]=[p(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[T,["cf.prescription/edit"]]]),a.audit_status===0&&a.void_status!==1?A((d(),V(h,{key:2,type:"warning",link:"",onClick:D=>bt(a)},{default:s(()=>[...e[77]||(e[77]=[p(" 审核 ",-1)])]),_:1},8,["onClick"])),[[T,["cf.prescription/audit"]]]):y("",!0),$e(a)?y("",!0):A((d(),V(h,{key:3,type:"danger",link:"",onClick:D=>Ut(a.id)},{default:s(()=>[...e[78]||(e[78]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])),[[T,["cf.prescription/del"]]])]),_:1})]),_:1},8,["data"])]),i("div",zl,[t(Dt,{modelValue:H(G),"onUpdate:modelValue":e[6]||(e[6]=a=>kl(G)?G.value=a:null),onChange:H(J)},null,8,["modelValue","onChange"])])]),_:1})),[[Te,H(G).loading]]),t($t,{modelValue:j.value,"onUpdate:modelValue":e[31]||(e[31]=a=>j.value=a),title:C.value==="add"?"新增处方":C.value==="edit"?"编辑处方":"查看处方",size:C.value==="view"?"920px":"860px",class:"cf-prescription-drawer","close-on-click-modal":!1,"destroy-on-close":"",onClosed:vt},{footer:s(()=>[C.value==="view"?(d(),V(h,{key:0,onClick:e[29]||(e[29]=a=>j.value=!1)},{default:s(()=>[...e[109]||(e[109]=[p("关闭",-1)])]),_:1})):(d(),g(M,{key:1},[t(h,{onClick:e[30]||(e[30]=a=>j.value=!1)},{default:s(()=>[...e[110]||(e[110]=[p("取消",-1)])]),_:1}),t(h,{type:"primary",onClick:Ct,loading:de.value},{default:s(()=>[...e[111]||(e[111]=[p(" 确定 ",-1)])]),_:1},8,["loading"])],64))]),default:s(()=>[C.value==="view"?A((d(),g("div",Fl,[_.value?(d(),g("div",Bl,[i("div",Hl,[i("h2",{class:"cf-slip-title"},m(He)+"处方笺"),i("div",Yl,[Number(_.value.void_status)===1?(d(),V(L,{key:0,type:"danger",size:"small"},{default:s(()=>[...e[79]||(e[79]=[p("已作废",-1)])]),_:1})):Number(_.value.business_prescription_audit_rejected)===1?(d(),V(L,{key:1,type:"danger",size:"small",class:"mr-1"},{default:s(()=>[...e[80]||(e[80]=[p("已驳回",-1)])]),_:1})):Number(_.value.audit_status)===1?(d(),V(L,{key:2,type:"success",size:"small",class:"mr-1"},{default:s(()=>[...e[81]||(e[81]=[p("已通过",-1)])]),_:1})):Number(_.value.audit_status)===0?(d(),V(L,{key:3,type:"warning",size:"small",class:"mr-1"},{default:s(()=>[...e[82]||(e[82]=[p("待审核",-1)])]),_:1})):(d(),V(L,{key:4,type:"danger",size:"small",class:"mr-1"},{default:s(()=>[...e[83]||(e[83]=[p("已驳回",-1)])]),_:1})),Number(_.value.void_status)!==1?(d(),g(M,{key:5},[e[84]||(e[84]=i("div",null,"普通处方",-1)),e[85]||(e[85]=i("div",{class:"text-sm"},"当日有效",-1))],64)):y("",!0)])]),Number(_.value.void_status)===1?(d(),g("div",ql," 作废人:"+m(_.value.void_by_name||"—")+",作废时间:"+m(mt(_.value.void_time)),1)):Number(_.value.business_prescription_audit_rejected)===1?(d(),g("div",Ql,[e[86]||(e[86]=i("div",{class:"font-medium"},"审核状态:已驳回(业务订单·处方审核)",-1)),_.value.business_prescription_audit_remark?(d(),g("div",Wl," 驳回意见:"+m(_.value.business_prescription_audit_remark),1)):(d(),g("div",Gl,"暂无驳回意见说明。"))])):Number(_.value.audit_status)===2?(d(),g("div",Jl,[e[87]||(e[87]=i("div",{class:"font-medium"},"消费者处方审核:已驳回",-1)),_.value.audit_remark?(d(),g("div",Kl,"驳回意见:"+m(_.value.audit_remark),1)):(d(),g("div",Xl,"暂无文字意见,请联系审核人员。"))])):y("",!0),i("div",Zl,[i("div",ea,[i("span",ta,[e[88]||(e[88]=i("em",null,"日期",-1)),p(m(_.value.prescription_date||"—"),1)]),i("span",la,[e[89]||(e[89]=i("em",null,"电话",-1)),p(m(_.value.phone||"—"),1)]),i("span",aa,[e[90]||(e[90]=i("em",null,"门诊号",-1)),p(m(_.value.visit_no||"—"),1)])]),i("div",sa,[i("span",ia,[e[91]||(e[91]=i("em",null,"姓名",-1)),p(m(_.value.patient_name||"—"),1)]),i("span",na,[e[92]||(e[92]=i("em",null,"性别",-1)),p(m(_t(_.value.gender)),1)]),i("span",oa,[e[93]||(e[93]=i("em",null,"年龄",-1)),p(m(ft(_.value.age)),1)])]),_.value.pulse||_.value.tongue?(d(),g("div",ra,[_.value.pulse?(d(),g("span",da,[e[94]||(e[94]=i("em",null,"面象",-1)),p(m(_.value.pulse),1)])):y("",!0),_.value.tongue?(d(),g("span",ua,[e[95]||(e[95]=i("em",null,"舌象",-1)),p(m(_.value.tongue),1)])):y("",!0)])):y("",!0),i("div",pa,[i("span",ma,[e[96]||(e[96]=i("em",null,"临床诊断",-1)),p(m(_.value.clinical_diagnosis||"—"),1)])])]),i("div",_a,[e[97]||(e[97]=i("div",{class:"cf-slip-rp-label"},"RP",-1)),i("div",fa,[(d(!0),g(M,null,F(tt.value,(a,D)=>(d(),g("div",{key:D,class:"cf-slip-herb"},m(a.name)+" "+m(a.dosage)+"克 ",1))),128))])]),i("div",ca,[i("div",va,[i("div",null," 服用"+m(_.value.usage_days??_.value.dose_count)+"天, "+m(_.value.prescription_type||"浓缩水丸")+" "+m(_.value.usage_instruction||""),1),i("div",null,[p(" 服用时间: "+m(_.value.usage_time?" "+_.value.usage_time:"")+" ",1),e[98]||(e[98]=i("span",{class:"cf-slip-inline-gap"},null,-1)),p(" 服用方式: "+m(_.value.usage_way?" "+_.value.usage_way:""),1)]),Ce.value?(d(),g("div",ga,"忌口:"+m(Ce.value),1)):y("",!0),_.value.usage_notes?(d(),g("div",ba,m(_.value.usage_notes),1)):y("",!0)]),i("div",ya,[i("span",ka,[e[99]||(e[99]=p(" 医师 ",-1)),_.value.doctor_signature?(d(),g("img",{key:0,src:_.value.doctor_signature,alt:"医师签名",class:"cf-slip-sign-img"},null,8,Va)):(d(),g("span",xa,m(_.value.doctor_name||"—"),1))])])]),i("div",{class:"cf-slip-hospital"},[i("div",null,m(Ye)),i("div",null,m(qe))]),_.value.audit_by_name||_.value.audit_remark?(d(),g("div",ha,[_.value.audit_by_name?(d(),g("div",wa,[p(" 审核人:"+m(_.value.audit_by_name)+" ",1),_.value.audit_time?(d(),g("span",Na,m(se(_.value.audit_time)),1)):y("",!0)])):y("",!0),_.value.audit_remark?(d(),g("div",Ca,"审核意见:"+m(_.value.audit_remark),1)):y("",!0)])):y("",!0)])):y("",!0)])),[[Te,ue.value]]):(d(),V(ie,{key:1,ref_key:"formRef",ref:Y,model:n,rules:lt,"label-width":"120px"},{default:s(()=>[C.value==="edit"?(d(),V(ne,{key:0,type:"info",closable:!1,"show-icon":"",class:"mb-4",title:"保存修改后,该处方将重新进入「待审核」,需审核人员再次通过后方可生效。"})):y("",!0),C.value==="edit"&&Number(n.audit_status)===2?(d(),V(ne,{key:1,type:"error",closable:!1,"show-icon":"",class:"mb-4"},{title:s(()=>[...e[100]||(e[100]=[p("当前消费者处方为「已驳回」",-1)])]),default:s(()=>[i("div",Ua," 保存修改后将清除驳回并变为「待审核」。"+m(n.audit_remark?`上次意见:${n.audit_remark}`:""),1)]),_:1})):y("",!0),C.value==="edit"&&Number(n.business_prescription_audit_rejected)===1&&Number(n.audit_status)===1?(d(),V(ne,{key:2,type:"warning",closable:!1,"show-icon":"",class:"mb-4"},{title:s(()=>[...e[101]||(e[101]=[p("业务订单侧「处方审核」已驳回",-1)])]),default:s(()=>[e[102]||(e[102]=i("div",{class:"text-sm mt-1"}," 消费者处方仍为「已通过」;您修改并保存后,将重置关联业务订单的处方/支付单审核为「待审」,请在「处方业务订单」中继续处理。 ",-1)),String(n.business_prescription_audit_remark||"").trim()?(d(),g("div",Sa," 驳回意见:"+m(n.business_prescription_audit_remark),1)):y("",!0)]),_:1})):y("",!0),C.value==="edit"&&Ne.value?(d(),V(ne,{key:3,type:"warning",closable:!1,"show-icon":"",class:"mb-4",title:Ne.value},null,8,["title"])):y("",!0),t($,{gutter:20},{default:s(()=>[t(b,{span:12},{default:s(()=>[t(c,{label:"患者姓名",prop:"patient_name"},{default:s(()=>[t(v,{modelValue:n.patient_name,"onUpdate:modelValue":e[7]||(e[7]=a=>n.patient_name=a),placeholder:"请输入患者姓名"},null,8,["modelValue"])]),_:1})]),_:1}),t(b,{span:12},{default:s(()=>[t(c,{label:"门诊号",prop:"visit_no"},{default:s(()=>[t(v,{modelValue:n.visit_no,"onUpdate:modelValue":e[8]||(e[8]=a=>n.visit_no=a),placeholder:"自动生成或手动输入"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t($,{gutter:20},{default:s(()=>[t(b,{span:8},{default:s(()=>[t(c,{label:"性别",prop:"gender"},{default:s(()=>[t(f,{modelValue:n.gender,"onUpdate:modelValue":e[9]||(e[9]=a=>n.gender=a)},{default:s(()=>[t(je,{label:1},{default:s(()=>[...e[103]||(e[103]=[p("男",-1)])]),_:1}),t(je,{label:0},{default:s(()=>[...e[104]||(e[104]=[p("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(b,{span:8},{default:s(()=>[t(c,{label:"年龄",prop:"age"},{default:s(()=>[t(I,{modelValue:n.age,"onUpdate:modelValue":e[10]||(e[10]=a=>n.age=a),min:0,max:150,placeholder:"请输入年龄",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),t(b,{span:8},{default:s(()=>[t(c,{label:"处方日期",prop:"prescription_date"},{default:s(()=>[t(Ot,{modelValue:n.prescription_date,"onUpdate:modelValue":e[11]||(e[11]=a=>n.prescription_date=a),type:"date",placeholder:"选择日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t($,{gutter:20},{default:s(()=>[t(b,{span:12},{default:s(()=>[t(c,{label:"面象",prop:"tongue"},{default:s(()=>[t(v,{modelValue:n.tongue,"onUpdate:modelValue":e[12]||(e[12]=a=>n.tongue=a),placeholder:"请输入面象"},null,8,["modelValue"])]),_:1})]),_:1}),t(b,{span:12},{default:s(()=>[t(c,{label:"舌象",prop:"tongue_image"},{default:s(()=>[t(v,{modelValue:n.tongue_image,"onUpdate:modelValue":e[13]||(e[13]=a=>n.tongue_image=a),placeholder:"请输入舌象"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t($,{gutter:20},{default:s(()=>[t(b,{span:12},{default:s(()=>[t(c,{label:"脉象",prop:"pulse"},{default:s(()=>[t(v,{modelValue:n.pulse,"onUpdate:modelValue":e[14]||(e[14]=a=>n.pulse=a),placeholder:"请输入脉象"},null,8,["modelValue"])]),_:1})]),_:1}),t(b,{span:12},{default:s(()=>[t(c,{label:"脉象详情",prop:"pulse_condition"},{default:s(()=>[t(v,{modelValue:n.pulse_condition,"onUpdate:modelValue":e[15]||(e[15]=a=>n.pulse_condition=a),placeholder:"请输入脉象详情"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(c,{label:"临床诊断",prop:"clinical_diagnosis"},{default:s(()=>[t(v,{modelValue:n.clinical_diagnosis,"onUpdate:modelValue":e[16]||(e[16]=a=>n.clinical_diagnosis=a),type:"textarea",rows:3,placeholder:"请输入临床诊断",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(c,{label:"药材配方",prop:"herbs",required:""},{default:s(()=>[i("div",Da,[t(h,{type:"primary",size:"small",onClick:kt},{default:s(()=>[...e[105]||(e[105]=[p(" 添加药材 ",-1)])]),_:1}),t(Me,{data:n.herbs,class:"mt-2",border:""},{default:s(()=>[t(U,{label:"序号",type:"index",width:"60"}),t(U,{label:"药材名称","min-width":"150"},{default:s(({row:a,$index:D})=>[t(v,{modelValue:a.name,"onUpdate:modelValue":X=>a.name=X,placeholder:"请输入药材名称"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(U,{label:"剂量(克)","min-width":"120"},{default:s(({row:a,$index:D})=>[t(I,{modelValue:a.dosage,"onUpdate:modelValue":X=>a.dosage=X,min:0,precision:1,step:.5,placeholder:"剂量",class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),t(U,{label:"操作",width:"80"},{default:s(({$index:a})=>[t(h,{type:"danger",link:"",onClick:D=>Vt(a)},{default:s(()=>[...e[106]||(e[106]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])])]),_:1}),t($,{gutter:20},{default:s(()=>[t(b,{span:8},{default:s(()=>[t(c,{label:"剂数",prop:"dose_count"},{default:s(()=>[t(I,{modelValue:n.dose_count,"onUpdate:modelValue":e[17]||(e[17]=a=>n.dose_count=a),min:1,placeholder:"剂数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),t(b,{span:8},{default:s(()=>[t(c,{label:"剂量单位",prop:"dose_unit"},{default:s(()=>[t(w,{modelValue:n.dose_unit,"onUpdate:modelValue":e[18]||(e[18]=a=>n.dose_unit=a),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(b,{span:8},{default:s(()=>[t(c,{label:"处方类型",prop:"prescription_type"},{default:s(()=>[t(w,{modelValue:n.prescription_type,"onUpdate:modelValue":e[19]||(e[19]=a=>n.prescription_type=a),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(b,{span:8},{default:s(()=>[t(c,{label:"服用天数",prop:"usage_days"},{default:s(()=>[t(I,{modelValue:n.usage_days,"onUpdate:modelValue":e[20]||(e[20]=a=>n.usage_days=a),min:1,max:365,placeholder:"服用天数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),t(c,{label:"用法",prop:"usage_instruction"},{default:s(()=>[t(v,{modelValue:n.usage_instruction,"onUpdate:modelValue":e[21]||(e[21]=a=>n.usage_instruction=a),placeholder:"例如:水煎服,一日二次",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),t($,{gutter:20},{default:s(()=>[t(b,{span:12},{default:s(()=>[t(c,{label:"服用时间",prop:"usage_time"},{default:s(()=>[t(w,{modelValue:n.usage_time,"onUpdate:modelValue":e[22]||(e[22]=a=>n.usage_time=a),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(b,{span:12},{default:s(()=>[t(c,{label:"服用方式",prop:"usage_way"},{default:s(()=>[t(w,{modelValue:n.usage_way,"onUpdate:modelValue":e[23]||(e[23]=a=>n.usage_way=a),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(c,{label:"忌口",prop:"dietary_taboo"},{default:s(()=>[t(w,{modelValue:n.dietary_taboo,"onUpdate:modelValue":e[24]||(e[24]=a=>n.dietary_taboo=a),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(c,{label:"其他说明",prop:"usage_notes"},{default:s(()=>[t(v,{modelValue:n.usage_notes,"onUpdate:modelValue":e[25]||(e[25]=a=>n.usage_notes=a),type:"textarea",rows:2,placeholder:"其他服用注意事项",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),t(c,{label:"医师姓名",prop:"doctor_name"},{default:s(()=>[t(v,{modelValue:n.doctor_name,"onUpdate:modelValue":e[26]||(e[26]=a=>n.doctor_name=a),placeholder:"请输入医师姓名"},null,8,["modelValue"])]),_:1}),t(c,{label:"是否共享",prop:"is_shared"},{default:s(()=>[t(Pe,{modelValue:n.is_shared,"onUpdate:modelValue":e[27]||(e[27]=a=>n.is_shared=a),"active-value":1,"inactive-value":0,"active-text":"所有人可见","inactive-text":"仅自己可见"},null,8,["modelValue"]),e[107]||(e[107]=i("div",{class:"text-xs text-gray-400 mt-1"}," 勾选后,所有医生都可以查看和使用此处方模板 ",-1))]),_:1}),t(c,{label:"指定可见角色",prop:"visible_role_ids"},{default:s(()=>[t(w,{modelValue:n.visible_role_ids,"onUpdate:modelValue":e[28]||(e[28]=a=>n.visible_role_ids=a),multiple:"",filterable:"",clearable:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"不选则除创建者外仅按「是否共享」规则;可多选角色",class:"w-full"},{default:s(()=>[(d(!0),g(M,null,F(pe.value,a=>(d(),V(u,{key:a.id,label:a.name,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e[108]||(e[108]=i("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[49]||(e[49]=a=>Q.value=a),title:"创建业务订单",width:"850px","close-on-click-modal":!1,onClosed:xe,class:"create-order-dialog"},{footer:s(()=>[i("div",is,[i("div",ns,[N.value>0?(d(),g("span",os," 提示:订单金额和关联支付单总金额须 ≥ ¥"+m(te(N.value)),1)):y("",!0)]),i("div",rs,[t(h,{onClick:e[48]||(e[48]=a=>Q.value=!1)},{default:s(()=>[...e[123]||(e[123]=[p("取消",-1)])]),_:1}),t(h,{type:"primary",loading:me.value,onClick:et},{default:s(()=>[...e[124]||(e[124]=[p(" 创建业务订单 ",-1)])]),_:1},8,["loading"])])])]),default:s(()=>[O.value?(d(),g("div",Oa,[i("div",$a,[e[113]||(e[113]=i("div",{class:"flex-shrink-0 mt-0.5"},[i("svg",{class:"w-4 h-4 text-blue-600",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})])],-1)),i("div",Aa,[e[112]||(e[112]=i("div",{class:"text-xs font-medium text-blue-900 mb-0.5"},"关联处方",-1)),i("div",Ea,[p(" ID "+m(O.value.id)+" ",1),O.value.sn?(d(),g("span",Ma," · "+m(O.value.sn),1)):y("",!0),p(" · "+m(O.value.patient_name||"—"),1)]),i("div",ja,m(Je.value),1)])])])):y("",!0),t(ie,{ref_key:"createOrderFormRef",ref:ee,model:o,rules:Ge,"label-width":"90px",class:"create-order-form"},{default:s(()=>[i("div",Pa,[e[114]||(e[114]=i("div",{class:"section-title"},[i("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"})]),i("span",null,"患者与收货")],-1)),i("div",La,[t($,{gutter:16},{default:s(()=>[t(b,{span:24},{default:s(()=>[t(c,{label:"诊单患者",prop:"patient_id"},{default:s(()=>[t(w,{modelValue:o.patient_id,"onUpdate:modelValue":e[32]||(e[32]=a=>o.patient_id=a),class:"w-full",placeholder:"搜索姓名/手机/身份证",filterable:"",remote:"","remote-method":Xe,loading:_e.value,onChange:Ze},{default:s(()=>[(d(!0),g(M,null,F(P.value,a=>(d(),V(u,{key:a.id,label:`${a.patient_name} (${a.phone||"无手机"})`,value:a.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"])]),_:1})]),_:1}),t(b,{span:12},{default:s(()=>[t(c,{label:"收货人",prop:"recipient_name"},{default:s(()=>[t(v,{modelValue:o.recipient_name,"onUpdate:modelValue":e[33]||(e[33]=a=>o.recipient_name=a),placeholder:"收货人姓名",maxlength:"50"},null,8,["modelValue"])]),_:1})]),_:1}),t(b,{span:12},{default:s(()=>[t(c,{label:"收货手机",prop:"recipient_phone"},{default:s(()=>[t(v,{modelValue:o.recipient_phone,"onUpdate:modelValue":e[34]||(e[34]=a=>o.recipient_phone=a),placeholder:"用于物流联系",maxlength:"20"},null,8,["modelValue"])]),_:1})]),_:1}),t(b,{span:24},{default:s(()=>[t(c,{label:"收货地址",prop:"shipping_address"},{default:s(()=>[t(v,{modelValue:o.shipping_address,"onUpdate:modelValue":e[35]||(e[35]=a=>o.shipping_address=a),type:"textarea",rows:2,placeholder:"完整收货地址",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})])]),i("div",Ta,[e[115]||(e[115]=i("div",{class:"section-title"},[i("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"})]),i("span",null,"服务信息")],-1)),i("div",Ia,[t($,{gutter:16},{default:s(()=>[t(b,{span:8},{default:s(()=>[t(c,{label:"是否复诊"},{default:s(()=>[t(Pe,{modelValue:o.is_follow_up,"onUpdate:modelValue":e[36]||(e[36]=a=>o.is_follow_up=a),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),_:1}),t(b,{span:8},{default:s(()=>[t(c,{label:"用药疗程"},{default:s(()=>[t(I,{modelValue:o.medication_days,"onUpdate:modelValue":e[37]||(e[37]=a=>o.medication_days=a),min:1,max:999,step:1,placeholder:"天数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),t(b,{span:8},{default:s(()=>[t(c,{label:"上次医生"},{default:s(()=>[t(v,{modelValue:o.prev_staff,"onUpdate:modelValue":e[38]||(e[38]=a=>o.prev_staff=a),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),t(b,{span:12},{default:s(()=>[t(c,{label:"服务渠道"},{default:s(()=>[t(v,{modelValue:o.service_channel,"onUpdate:modelValue":e[39]||(e[39]=a=>o.service_channel=a),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1}),t(b,{span:12},{default:s(()=>[t(c,{label:"服务套餐"},{default:s(()=>[t(v,{modelValue:o.service_package,"onUpdate:modelValue":e[40]||(e[40]=a=>o.service_package=a),placeholder:"可选",maxlength:"100"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})])]),i("div",Ra,[e[116]||(e[116]=i("div",{class:"section-title"},[i("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4"})]),i("span",null,"物流信息")],-1)),i("div",za,[t($,{gutter:16},{default:s(()=>[t(b,{span:12},{default:s(()=>[t(c,{label:"快递公司"},{default:s(()=>[t(w,{modelValue:o.express_company,"onUpdate:modelValue":e[41]||(e[41]=a=>o.express_company=a),placeholder:"查物流用",class:"w-full"},{default:s(()=>[t(u,{label:"自动识别",value:"auto"}),t(u,{label:"顺丰速运",value:"sf"}),t(u,{label:"京东快递",value:"jd"}),t(u,{label:"极兔速递",value:"jt"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),t(b,{span:12},{default:s(()=>[t(c,{label:"快递单号"},{default:s(()=>[t(v,{modelValue:o.tracking_number,"onUpdate:modelValue":e[42]||(e[42]=a=>o.tracking_number=a),placeholder:"可创建后补录",maxlength:"80"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1})])]),i("div",Fa,[e[118]||(e[118]=i("div",{class:"section-title"},[i("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M17 9V7a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2m2 4h10a2 2 0 002-2v-6a2 2 0 00-2-2H9a2 2 0 00-2 2v6a2 2 0 002 2zm7-5a2 2 0 11-4 0 2 2 0 014 0z"})]),i("span",null,"关联收款")],-1)),i("div",Ba,[t(c,{label:"关联支付单"},{default:s(()=>[t(w,{modelValue:o.pay_order_ids,"onUpdate:modelValue":e[43]||(e[43]=a=>o.pay_order_ids=a),class:"w-full",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",placeholder:"多选本诊单下的支付单",loading:fe.value},{default:s(()=>[(d(!0),g(M,null,F(z.value,a=>(d(),V(u,{key:a.id,label:`${a.order_no} · ¥${a.amount} · ${Ve(a.order_type)}`,value:a.id,class:"!h-auto py-1.5"},{default:s(()=>[i("div",Ha,[i("div",Ya,[i("span",qa,m(a.order_no),1),i("span",Qa,"¥"+m(a.amount),1)]),i("div",Wa,[i("span",Ga,[p(m(Ve(a.order_type)),1),a.remark?(d(),g(M,{key:0},[p(" · "+m(a.remark),1)],64)):y("",!0)]),i("span",Ja,m(String(a.create_time||"").substring(0,16)),1)])])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","loading"]),e[117]||(e[117]=i("div",{class:"text-xs text-gray-500 mt-1.5 leading-relaxed"}," 主管或本诊单医助可见该诊单全部支付单(待支付/已支付),否则仅本人创建的收款单。已被其他有效业务订单占用的支付单不会出现在此列表。 ",-1))]),_:1})])]),i("div",Ka,[e[121]||(e[121]=i("div",{class:"section-title"},[i("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})]),i("span",null,"金额信息")],-1)),i("div",Xa,[i("div",Za,[i("div",es,[i("div",null,[e[119]||(e[119]=i("div",{class:"text-xs text-gray-500 mb-0.5"},"定金门槛",-1)),i("div",ts," ¥"+m(te(N.value)),1),i("div",ls,m(N.value>0?"订单和支付单总金额须 ≥ 此值":"未设置"),1)]),i("div",null,[e[120]||(e[120]=i("div",{class:"text-xs text-gray-500 mb-0.5"},"已选收款单",-1)),i("div",{class:ze(["text-base font-semibold",W.value>=N.value?"text-green-600":"text-red-600"])}," ¥"+m(te(W.value)),3),i("div",{class:ze(["text-xs mt-0.5",W.value>=N.value?"text-green-600":"text-red-600"])},m(W.value>=N.value?"✓ 已达标":"✗ 未达标"),3)])])]),t($,{gutter:16},{default:s(()=>[t(b,{span:12},{default:s(()=>[t(c,{label:"费用类别",prop:"fee_type"},{default:s(()=>[t(w,{modelValue:o.fee_type,"onUpdate:modelValue":e[44]||(e[44]=a=>o.fee_type=a),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(b,{span:12},{default:s(()=>[t(c,{label:"订单金额",prop:"amount"},{default:s(()=>[t(I,{modelValue:o.amount,"onUpdate:modelValue":e[45]||(e[45]=a=>o.amount=a),min:We.value,step:.01,precision:2,class:"w-full",placeholder:"业务订单金额(元)"},null,8,["modelValue","min"])]),_:1})]),_:1}),A((d(),V(b,{span:12},{default:s(()=>[t(c,{label:"内部成本"},{default:s(()=>[t(I,{modelValue:o.internal_cost,"onUpdate:modelValue":e[46]||(e[46]=a=>o.internal_cost=a),min:0,step:.01,precision:2,class:"w-full",placeholder:"仅财务角色可见"},null,8,["modelValue"])]),_:1})]),_:1})),[[T,["finance.account_log/lists"]]])]),_:1})])]),i("div",as,[e[122]||(e[122]=i("div",{class:"section-title"},[i("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[i("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"})]),i("span",null,"备注说明")],-1)),i("div",ss,[t(c,{label:"备注补充"},{default:s(()=>[t(v,{modelValue:o.remark_extra,"onUpdate:modelValue":e[47]||(e[47]=a=>o.remark_extra=a),type:"textarea",rows:2,placeholder:"其他说明(可选)",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})])])]),_:1},8,["model"])]),_:1},8,["modelValue"]),t(Le,{modelValue:q.value,"onUpdate:modelValue":e[54]||(e[54]=a=>q.value=a),title:"处方审核",width:"480px","destroy-on-close":"",onClosed:e[55]||(e[55]=a=>R.value="")},{footer:s(()=>[t(h,{onClick:e[51]||(e[51]=a=>q.value=!1)},{default:s(()=>[...e[125]||(e[125]=[p("取消",-1)])]),_:1}),t(h,{type:"primary",loading:Z.value,onClick:e[52]||(e[52]=a=>Ae("approve"))},{default:s(()=>[...e[126]||(e[126]=[p("审核通过",-1)])]),_:1},8,["loading"]),t(h,{type:"danger",loading:Z.value,onClick:e[53]||(e[53]=a=>Ae("reject"))},{default:s(()=>[...e[127]||(e[127]=[p("驳回处方",-1)])]),_:1},8,["loading"])]),default:s(()=>[e[128]||(e[128]=i("p",{class:"text-sm text-gray-600 mb-3"}," 通过:处方保持有效。驳回:将同时作废此处方(与诊间「驳回/作废处方」一致)。 ",-1)),t(ie,{"label-width":"80px"},{default:s(()=>[t(c,{label:"审核意见"},{default:s(()=>[t(v,{modelValue:R.value,"onUpdate:modelValue":e[50]||(e[50]=a=>R.value=a),type:"textarea",rows:3,maxlength:"500","show-word-limit":"",placeholder:"通过可简要说明;驳回必填"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"])])}}}),ti=al(us,[["__scopeId","data-v-87f3bd5b"]]);export{ti as default};
|