Files
zyt/server/public/admin/assets/list-pc5B-heC.js
T
2026-04-17 13:50:31 +08:00

2 lines
9.3 KiB
JavaScript

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