2 lines
8.7 KiB
JavaScript
2 lines
8.7 KiB
JavaScript
import{G as Z,D as ee,F as le,P as te,Q as ae,i as oe,J as ie,L as se,M as ne,N as re,U as de,h as pe,g as me,Y as ue}from"./element-plus-CFxTwCZ2.js";import{_ as ce}from"./index.vue_vue_type_script_setup_true_lang-CaamePaH.js";import{b as _e,f as c,d as fe}from"./index-DqzX0p3J.js";import{w as be}from"./@vue/runtime-dom-iFk_KP8y.js";import{d as ve,e as ge,f as ye,h as he}from"./tcm-CEDF0dA_.js";import{u as ke}from"./usePaging-D4wPHtKU.js";import{f as I,b as we,ak as v,I as x,a as e,aN as t,O as p,aP as Ve,G as L,J as y,M as Ce,H as xe}from"./@vue/runtime-core-C0pg79pw.js";import{y as o,a as D,r as F,o as h}from"./@vue/reactivity-BIbyPIZJ.js";import{Q as E}from"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-cboVPb4D.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"./vue-router-CYz6RFzi.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 Ee={class:"prescription-library"},Se={class:"mt-4"},Ne={key:0},Ue={key:1,class:"text-gray-400"},$e={class:"flex mt-4 justify-end"},Le={class:"w-full"},De=I({name:"prescriptionLibrary"}),Fe=I({...De,setup(Ie){const _=F({prescription_name:"",is_public:""}),u=h(!1),r=h("add"),k=h(!1),w=h(),s=F({id:0,prescription_name:"",herbs:[],is_public:0}),J={prescription_name:[{required:!0,message:"请输入处方名称",trigger:"blur"}]},{pager:b,getLists:g,resetParams:O,resetPage:S}=ke({fetchFun:ve,params:_}),P=()=>{s.herbs.push({name:"",dosage:0})},B=i=>{s.herbs.splice(i,1)},M=()=>{s.id=0,s.prescription_name="",s.herbs=[],s.is_public=0},T=()=>{M(),r.value="add",u.value=!0},H=i=>{r.value="view",s.id=i.id,s.prescription_name=i.prescription_name||"",s.herbs=i.herbs?JSON.parse(JSON.stringify(i.herbs)):[],s.is_public=i.is_public??0,u.value=!0},K=i=>{r.value="edit",s.id=i.id,s.prescription_name=i.prescription_name||"",s.herbs=i.herbs?JSON.parse(JSON.stringify(i.herbs)):[],s.is_public=i.is_public??0,u.value=!0},R=async()=>{if(w.value){if(await w.value.validate(),!s.herbs||s.herbs.length===0){c.msgError("请至少添加一味药材");return}for(let i=0;i<s.herbs.length;i++){const l=s.herbs[i];if(!l.name||!l.name.trim()){c.msgError(`第${i+1}味药材名称不能为空`);return}if(!l.dosage||l.dosage<=0){c.msgError(`第${i+1}味药材剂量必须大于0`);return}}k.value=!0;try{const i={...s};r.value==="add"?(await ge(i),c.msgSuccess("添加成功")):(await ye(i),c.msgSuccess("编辑成功")),u.value=!1,g()}catch(i){console.error(i)}finally{k.value=!1}}},j=async i=>{await c.confirm("确定要删除该处方吗?"),await he({id:i}),c.msgSuccess("删除成功"),g()};return we(()=>{g()}),(i,l)=>{const V=le,f=ee,C=ae,q=te,m=oe,N=Z,U=ie,z=_e,d=re,A=de,$=ne,G=ce,Q=pe,Y=me,W=ue,X=se;return v(),x("div",Ee,[e(U,{class:"!border-none",shadow:"never"},{default:t(()=>[e(N,{class:"mb-[-16px]",model:o(_),inline:""},{default:t(()=>[e(f,{class:"w-[280px]",label:"处方名称"},{default:t(()=>[e(V,{modelValue:o(_).prescription_name,"onUpdate:modelValue":l[0]||(l[0]=a=>o(_).prescription_name=a),placeholder:"请输入处方名称",clearable:"",onKeyup:be(o(S),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),e(f,{class:"w-[200px]",label:"是否公开"},{default:t(()=>[e(q,{modelValue:o(_).is_public,"onUpdate:modelValue":l[1]||(l[1]=a=>o(_).is_public=a),placeholder:"全部",clearable:""},{default:t(()=>[e(C,{label:"全部",value:""}),e(C,{label:"仅自己可见",value:0}),e(C,{label:"所有人可见",value:1})]),_:1},8,["modelValue"])]),_:1}),e(f,null,{default:t(()=>[e(m,{type:"primary",onClick:o(S)},{default:t(()=>[...l[7]||(l[7]=[p("查询",-1)])]),_:1},8,["onClick"]),e(m,{onClick:o(O)},{default:t(()=>[...l[8]||(l[8]=[p("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),Ve((v(),L(U,{class:"mt-4 !border-none",shadow:"never"},{default:t(()=>[e(m,{type:"primary",onClick:T},{icon:t(()=>[e(z,{name:"el-icon-Plus"})]),default:t(()=>[l[9]||(l[9]=p(" 新增处方 ",-1))]),_:1}),y("div",Se,[e($,{data:o(b).lists,size:"large"},{default:t(()=>[e(d,{label:"ID",prop:"id","min-width":"60"}),e(d,{label:"处方名称",prop:"prescription_name","min-width":"200","show-overflow-tooltip":""}),e(d,{label:"药材数量","min-width":"100"},{default:t(({row:a})=>{var n;return[p(E(((n=a.herbs)==null?void 0:n.length)||0)+"味 ",1)]}),_:1}),e(d,{label:"药材明细","min-width":"300","show-overflow-tooltip":""},{default:t(({row:a})=>[a.herbs&&a.herbs.length>0?(v(),x("span",Ne,E(a.herbs.map(n=>`${n.name} ${n.dosage}g`).join("、")),1)):(v(),x("span",Ue,"暂无药材"))]),_:1}),e(d,{label:"是否公开","min-width":"120"},{default:t(({row:a})=>[e(A,{type:a.is_public?"success":"info"},{default:t(()=>[p(E(a.is_public?"所有人可见":"仅自己可见"),1)]),_:2},1032,["type"])]),_:1}),e(d,{label:"创建人",prop:"creator_name","min-width":"100"}),e(d,{label:"创建时间",prop:"create_time","min-width":"160"}),e(d,{label:"操作",width:"180",fixed:"right"},{default:t(({row:a})=>[e(m,{type:"primary",link:"",onClick:n=>H(a)},{default:t(()=>[...l[10]||(l[10]=[p(" 查看 ",-1)])]),_:1},8,["onClick"]),e(m,{type:"primary",link:"",onClick:n=>K(a)},{default:t(()=>[...l[11]||(l[11]=[p(" 编辑 ",-1)])]),_:1},8,["onClick"]),e(m,{type:"danger",link:"",onClick:n=>j(a.id)},{default:t(()=>[...l[12]||(l[12]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])]),y("div",$e,[e(G,{modelValue:o(b),"onUpdate:modelValue":l[2]||(l[2]=a=>D(b)?b.value=a:null),onChange:o(g)},null,8,["modelValue","onChange"])])]),_:1})),[[X,o(b).loading]]),e(W,{modelValue:o(u),"onUpdate:modelValue":l[6]||(l[6]=a=>D(u)?u.value=a:null),title:o(r)==="add"?"新增处方":o(r)==="edit"?"编辑处方":"查看处方",width:"800px","close-on-click-modal":!1},Ce({default:t(()=>[e(N,{ref_key:"formRef",ref:w,model:o(s),rules:J,"label-width":"120px",disabled:o(r)==="view"},{default:t(()=>[e(f,{label:"处方名称",prop:"prescription_name"},{default:t(()=>[e(V,{modelValue:o(s).prescription_name,"onUpdate:modelValue":l[3]||(l[3]=a=>o(s).prescription_name=a),placeholder:"请输入处方名称,例如:六味地黄丸、补中益气汤",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(f,{label:"药材配方",prop:"herbs",required:""},{default:t(()=>[y("div",Le,[e(m,{type:"primary",size:"small",onClick:P,disabled:o(r)==="view"},{default:t(()=>[...l[13]||(l[13]=[p(" 添加药材 ",-1)])]),_:1},8,["disabled"]),e($,{data:o(s).herbs,class:"mt-2",border:""},{default:t(()=>[e(d,{label:"序号",type:"index",width:"60"}),e(d,{label:"药材名称","min-width":"200"},{default:t(({row:a})=>[e(V,{modelValue:a.name,"onUpdate:modelValue":n=>a.name=n,placeholder:"请输入药材名称",disabled:o(r)==="view"},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:1}),e(d,{label:"剂量(克)","min-width":"150"},{default:t(({row:a})=>[e(Q,{modelValue:a.dosage,"onUpdate:modelValue":n=>a.dosage=n,min:0,precision:1,step:.5,placeholder:"剂量",class:"w-full",disabled:o(r)==="view"},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:1}),o(r)!=="view"?(v(),L(d,{key:0,label:"操作",width:"80"},{default:t(({$index:a})=>[e(m,{type:"danger",link:"",onClick:n=>B(a)},{default:t(()=>[...l[14]||(l[14]=[p(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})):xe("",!0)]),_:1},8,["data"])])]),_:1}),e(f,{label:"是否公开",prop:"is_public"},{default:t(()=>[e(Y,{modelValue:o(s).is_public,"onUpdate:modelValue":l[4]||(l[4]=a=>o(s).is_public=a),"active-value":1,"inactive-value":0,"active-text":"所有人可见","inactive-text":"仅自己可见"},null,8,["modelValue"]),l[15]||(l[15]=y("div",{class:"text-xs text-gray-400 mt-1"}," 勾选后,所有医生都可以查看和使用此处方模板 ",-1))]),_:1})]),_:1},8,["model","disabled"])]),_:2},[o(r)!=="view"?{name:"footer",fn:t(()=>[e(m,{onClick:l[5]||(l[5]=a=>u.value=!1)},{default:t(()=>[...l[16]||(l[16]=[p("取消",-1)])]),_:1}),e(m,{type:"primary",onClick:R,loading:o(k)},{default:t(()=>[...l[17]||(l[17]=[p(" 确定 ",-1)])]),_:1},8,["loading"])]),key:"0"}:void 0]),1032,["modelValue","title"])])}}}),kl=fe(Fe,[["__scopeId","data-v-2e3f22e8"]]);export{kl as default};
|