Files
zyt/server/public/admin/assets/list-DyfsKmsb.js
T
2026-05-26 18:15:56 +08:00

2 lines
10 KiB
JavaScript

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