2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
import{o as z,q as H,O as L,D as o,v as e,b9 as j,u as n,b6 as A,b7 as G,bm as J,bn as K,c7 as P,c8 as Q,bc as W,bf as X,L as _,J as Z,bp as ee,s as k,K as le,bj as ae,bk as oe,I as te,C as ne,B as ue,M as x,ba as de}from"./.pnpm-9dA1PEvN.js";import{q as se}from"./tcm-DOD9_1Um.js";import{i as w,_ as ie}from"./index-CJvXnF8Y.js";import{M as re}from"./index-BANIMLkY.js";import"./medicine-CQDW2OUZ.js";const pe={class:"w-full"},me=z({__name:"prescription-drawer",emits:["success"],setup(_e,{expose:C,emit:D}){const q=D,g=x(!1),f=x(),y=x(!1),l=de({appointment_id:0,diagnosis_id:0,prescription_name:"",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,audit_status:1}),I={prescription_name:[{required:!0,message:"请输入处方名称",trigger:"blur"}],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"}]},S=()=>{l.herbs.push({name:"",dosage:0})},Y=s=>{l.herbs.splice(s,1)},M=()=>{l.appointment_id=0,l.diagnosis_id=0,l.prescription_name="",l.prescription_type="浓缩水丸",l.patient_name="",l.gender=1,l.age=0,l.visit_no="",l.prescription_date=new Date().toISOString().split("T")[0],l.tongue="",l.tongue_image="",l.pulse="",l.pulse_condition="",l.clinical_diagnosis="",l.herbs=[],l.dose_count=7,l.dose_unit="剂",l.usage_days=7,l.usage_instruction="水煎服,一日二次",l.usage_time="饭前",l.usage_way="温水送服",l.dietary_taboo=[],l.usage_notes="",l.doctor_name="",l.is_shared=0,l.audit_status=0},R=s=>{var a;M(),l.appointment_id=s.id||0,l.diagnosis_id=s.diagnosis_id||0,l.patient_name=s.patient_name||"",l.gender=s.patient_gender==="男"?1:0,l.age=parseInt(s.patient_age)||0,l.visit_no=((a=s.id)==null?void 0:a.toString())||"",l.prescription_date=s.appointment_date||new Date().toISOString().split("T")[0],l.doctor_name=s.doctor_name||"",g.value=!0},U=()=>{var s;g.value=!1,(s=f.value)==null||s.resetFields()},B=async()=>{if(f.value){if(await f.value.validate(),!l.herbs||l.herbs.length===0){w.msgError("请至少添加一味药材");return}for(let s=0;s<l.herbs.length;s++){const a=l.herbs[s];if(!a.name||!a.name.trim()){w.msgError(`第${s+1}味药材名称不能为空`);return}if(!a.dosage||a.dosage<=0){w.msgError(`第${s+1}味药材剂量必须大于0`);return}}y.value=!0;try{await se(l),w.msgSuccess("处方单创建成功"),U(),q("success")}catch(s){console.error(s)}finally{y.value=!1}}};return C({open:R}),(s,a)=>{const r=G,d=A,u=K,b=J,i=Q,p=P,E=X,N=W,c=Z,T=ee,V=le,v=oe,F=ae,O=te,h=j,$=ue;return H(),L($,{modelValue:n(g),"onUpdate:modelValue":a[22]||(a[22]=t=>ne(g)?g.value=t:null),title:"创建处方单",size:"90%","close-on-click-modal":!1,onClose:U},{footer:o(()=>[e(V,{onClick:U},{default:o(()=>[...a[28]||(a[28]=[_("取消",-1)])]),_:1}),e(V,{type:"primary",onClick:B,loading:n(y)},{default:o(()=>[...a[29]||(a[29]=[_("保存",-1)])]),_:1},8,["loading"])]),default:o(()=>[e(h,{ref_key:"formRef",ref:f,model:n(l),rules:I,"label-width":"120px",class:"prescription-form"},{default:o(()=>[e(d,{label:"处方名称",prop:"prescription_name"},{default:o(()=>[e(r,{modelValue:n(l).prescription_name,"onUpdate:modelValue":a[0]||(a[0]=t=>n(l).prescription_name=t),placeholder:"请输入处方名称",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(d,{label:"处方类型",prop:"prescription_type"},{default:o(()=>[e(b,{modelValue:n(l).prescription_type,"onUpdate:modelValue":a[1]||(a[1]=t=>n(l).prescription_type=t),placeholder:"请选择处方类型",class:"w-full"},{default:o(()=>[e(u,{label:"浓缩水丸",value:"浓缩水丸"}),e(u,{label:"饮片",value:"饮片"}),e(u,{label:"颗粒",value:"颗粒"}),e(u,{label:"丸剂",value:"丸剂"}),e(u,{label:"散剂",value:"散剂"}),e(u,{label:"膏方",value:"膏方"}),e(u,{label:"汤剂",value:"汤剂"})]),_:1},8,["modelValue"])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:12},{default:o(()=>[e(d,{label:"患者姓名",prop:"patient_name"},{default:o(()=>[e(r,{modelValue:n(l).patient_name,"onUpdate:modelValue":a[2]||(a[2]=t=>n(l).patient_name=t),placeholder:"请输入患者姓名"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:12},{default:o(()=>[e(d,{label:"门诊号",prop:"visit_no"},{default:o(()=>[e(r,{modelValue:n(l).visit_no,"onUpdate:modelValue":a[3]||(a[3]=t=>n(l).visit_no=t),placeholder:"自动生成或手动输入"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:8},{default:o(()=>[e(d,{label:"性别",prop:"gender"},{default:o(()=>[e(N,{modelValue:n(l).gender,"onUpdate:modelValue":a[4]||(a[4]=t=>n(l).gender=t)},{default:o(()=>[e(E,{label:1},{default:o(()=>[...a[23]||(a[23]=[_("男",-1)])]),_:1}),e(E,{label:0},{default:o(()=>[...a[24]||(a[24]=[_("女",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(i,{span:8},{default:o(()=>[e(d,{label:"年龄",prop:"age"},{default:o(()=>[e(c,{modelValue:n(l).age,"onUpdate:modelValue":a[5]||(a[5]=t=>n(l).age=t),min:0,max:150,placeholder:"请输入年龄",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:8},{default:o(()=>[e(d,{label:"处方日期",prop:"prescription_date"},{default:o(()=>[e(T,{modelValue:n(l).prescription_date,"onUpdate:modelValue":a[6]||(a[6]=t=>n(l).prescription_date=t),type:"date",placeholder:"选择日期",format:"YYYY-MM-DD","value-format":"YYYY-MM-DD",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:12},{default:o(()=>[e(d,{label:"面象",prop:"tongue"},{default:o(()=>[e(r,{modelValue:n(l).tongue,"onUpdate:modelValue":a[7]||(a[7]=t=>n(l).tongue=t),placeholder:"请输入面象"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:12},{default:o(()=>[e(d,{label:"舌象",prop:"tongue_image"},{default:o(()=>[e(r,{modelValue:n(l).tongue_image,"onUpdate:modelValue":a[8]||(a[8]=t=>n(l).tongue_image=t),placeholder:"请输入舌象"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:12},{default:o(()=>[e(d,{label:"脉象",prop:"pulse"},{default:o(()=>[e(r,{modelValue:n(l).pulse,"onUpdate:modelValue":a[9]||(a[9]=t=>n(l).pulse=t),placeholder:"请输入脉象"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:12},{default:o(()=>[e(d,{label:"脉象详情",prop:"pulse_condition"},{default:o(()=>[e(r,{modelValue:n(l).pulse_condition,"onUpdate:modelValue":a[10]||(a[10]=t=>n(l).pulse_condition=t),placeholder:"请输入脉象详情"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(d,{label:"临床诊断",prop:"clinical_diagnosis"},{default:o(()=>[e(r,{modelValue:n(l).clinical_diagnosis,"onUpdate:modelValue":a[11]||(a[11]=t=>n(l).clinical_diagnosis=t),type:"textarea",rows:3,placeholder:"请输入临床诊断",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(d,{label:"药材配方",prop:"herbs",required:""},{default:o(()=>[k("div",pe,[e(V,{type:"primary",size:"small",onClick:S},{default:o(()=>[...a[25]||(a[25]=[_(" 添加药材 ",-1)])]),_:1}),e(F,{data:n(l).herbs,class:"mt-2",border:""},{default:o(()=>[e(v,{label:"序号",type:"index",width:"60"}),e(v,{label:"药材名称","min-width":"220"},{default:o(({row:t})=>[e(re,{modelValue:t.name,"onUpdate:modelValue":m=>t.name=m,"medicine-id":t.medicine_id,"onUpdate:medicineId":m=>t.medicine_id=m},null,8,["modelValue","onUpdate:modelValue","medicine-id","onUpdate:medicineId"])]),_:1}),e(v,{label:"剂量(克)","min-width":"120"},{default:o(({row:t})=>[e(c,{modelValue:t.dosage,"onUpdate:modelValue":m=>t.dosage=m,min:0,precision:1,step:.5,placeholder:"剂量",class:"w-full"},null,8,["modelValue","onUpdate:modelValue"])]),_:1}),e(v,{label:"操作",width:"80"},{default:o(({$index:t})=>[e(V,{type:"danger",link:"",onClick:m=>Y(t)},{default:o(()=>[...a[26]||(a[26]=[_(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:8},{default:o(()=>[e(d,{label:"剂数",prop:"dose_count"},{default:o(()=>[e(c,{modelValue:n(l).dose_count,"onUpdate:modelValue":a[12]||(a[12]=t=>n(l).dose_count=t),min:1,placeholder:"剂数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1}),e(i,{span:8},{default:o(()=>[e(d,{label:"剂量单位",prop:"dose_unit"},{default:o(()=>[e(b,{modelValue:n(l).dose_unit,"onUpdate:modelValue":a[13]||(a[13]=t=>n(l).dose_unit=t),placeholder:"请选择",class:"w-full"},{default:o(()=>[e(u,{label:"剂",value:"剂"}),e(u,{label:"丸",value:"丸"}),e(u,{label:"袋",value:"袋"}),e(u,{label:"盒",value:"盒"}),e(u,{label:"瓶",value:"瓶"}),e(u,{label:"膏",value:"膏"}),e(u,{label:"贴",value:"贴"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(i,{span:8},{default:o(()=>[e(d,{label:"服用天数",prop:"usage_days"},{default:o(()=>[e(c,{modelValue:n(l).usage_days,"onUpdate:modelValue":a[14]||(a[14]=t=>n(l).usage_days=t),min:1,max:365,placeholder:"服用天数",class:"w-full"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(d,{label:"用法",prop:"usage_instruction"},{default:o(()=>[e(r,{modelValue:n(l).usage_instruction,"onUpdate:modelValue":a[15]||(a[15]=t=>n(l).usage_instruction=t),placeholder:"例如:水煎服,一日二次",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(p,{gutter:20},{default:o(()=>[e(i,{span:12},{default:o(()=>[e(d,{label:"服用时间",prop:"usage_time"},{default:o(()=>[e(b,{modelValue:n(l).usage_time,"onUpdate:modelValue":a[16]||(a[16]=t=>n(l).usage_time=t),placeholder:"请选择服用时间",class:"w-full"},{default:o(()=>[e(u,{label:"饭前",value:"饭前"}),e(u,{label:"饭后",value:"饭后"}),e(u,{label:"饭中",value:"饭中"}),e(u,{label:"空腹",value:"空腹"}),e(u,{label:"睡前",value:"睡前"}),e(u,{label:"晨起",value:"晨起"}),e(u,{label:"随时",value:"随时"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),e(i,{span:12},{default:o(()=>[e(d,{label:"服用方式",prop:"usage_way"},{default:o(()=>[e(b,{modelValue:n(l).usage_way,"onUpdate:modelValue":a[17]||(a[17]=t=>n(l).usage_way=t),placeholder:"请选择服用方式",class:"w-full"},{default:o(()=>[e(u,{label:"温水送服",value:"温水送服"}),e(u,{label:"开水冲服",value:"开水冲服"}),e(u,{label:"黄酒送服",value:"黄酒送服"}),e(u,{label:"淡盐水送服",value:"淡盐水送服"}),e(u,{label:"米汤送服",value:"米汤送服"}),e(u,{label:"嚼服",value:"嚼服"}),e(u,{label:"含化",value:"含化"})]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),e(d,{label:"忌口",prop:"dietary_taboo"},{default:o(()=>[e(b,{modelValue:n(l).dietary_taboo,"onUpdate:modelValue":a[18]||(a[18]=t=>n(l).dietary_taboo=t),multiple:"",placeholder:"请选择忌口内容(可多选)",class:"w-full"},{default:o(()=>[e(u,{label:"辛辣食物",value:"辛辣食物"}),e(u,{label:"生冷食物",value:"生冷食物"}),e(u,{label:"油腻食物",value:"油腻食物"}),e(u,{label:"海鲜",value:"海鲜"}),e(u,{label:"牛羊肉",value:"牛羊肉"}),e(u,{label:"鸡蛋",value:"鸡蛋"}),e(u,{label:"豆制品",value:"豆制品"}),e(u,{label:"酒类",value:"酒类"}),e(u,{label:"浓茶",value:"浓茶"}),e(u,{label:"咖啡",value:"咖啡"}),e(u,{label:"烟草",value:"烟草"}),e(u,{label:"萝卜",value:"萝卜"})]),_:1},8,["modelValue"])]),_:1}),e(d,{label:"其他说明",prop:"usage_notes"},{default:o(()=>[e(r,{modelValue:n(l).usage_notes,"onUpdate:modelValue":a[19]||(a[19]=t=>n(l).usage_notes=t),type:"textarea",rows:2,placeholder:"其他服用注意事项",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(d,{label:"医师姓名",prop:"doctor_name"},{default:o(()=>[e(r,{modelValue:n(l).doctor_name,"onUpdate:modelValue":a[20]||(a[20]=t=>n(l).doctor_name=t),placeholder:"请输入医师姓名"},null,8,["modelValue"])]),_:1}),e(d,{label:"是否共享",prop:"is_shared"},{default:o(()=>[e(O,{modelValue:n(l).is_shared,"onUpdate:modelValue":a[21]||(a[21]=t=>n(l).is_shared=t),"active-value":1,"inactive-value":0,"active-text":"所有人可见","inactive-text":"仅自己可见"},null,8,["modelValue"]),a[27]||(a[27]=k("div",{class:"text-xs text-gray-400 mt-1"}," 勾选后,所有医生都可以查看和使用此处方模板 ",-1))]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])}}}),ve=ie(me,[["__scopeId","data-v-687b0c23"]]);export{ve as default};
|