Files
zyt/server/public/admin/assets/list-ClVIpdsg.js
T
2026-07-03 12:07:34 +08:00

2 lines
10 KiB
JavaScript

import{o as K,ap as ue,be as pe,q as _,r as L,v as l,D as a,b9 as me,u as o,b6 as _e,b7 as ce,b8 as be,bm as fe,bn as ve,K as ye,L as n,bg as ge,ac as w,bi as Ve,O as g,s as V,bj as ke,bk as we,br as xe,T as x,P as D,C as F,bM as he,bc as Ce,bf as Ee,J as Se,I as Ne,bt as Ue,ba as J,M as E}from"./.pnpm-BGZW0UGg.js";import{_ as Le}from"./index.vue_vue_type_script_setup_true_lang-ByFSC-yR.js";import{u as De,c as Ie,i as f,_ as Pe}from"./index-CeIwrh_6.js";import{l as $e,r as Oe,s as Ae,t as Me}from"./tcm-o2aZele6.js";import{u as Re}from"./usePaging-C4oc3vBq.js";import{M as Te}from"./index-scNAcif5.js";import"./medicine-BaUOPlgY.js";const Be={class:"prescription-library"},Fe={class:"mt-4"},Je={key:0},Ke={key:1,class:"text-gray-400"},je={class:"flex mt-4 justify-end"},qe={class:"w-full"},ze={class:"flex flex-col gap-1 leading-none"},Ge=K({name:"prescriptionLibrary"}),He=K({...Ge,setup(Qe){const c=J({prescription_name:"",formula_type:"",is_public:""}),b=E(!1),u=E("add"),S=E(!1),N=E(),s=J({id:0,prescription_name:"",formula_type:"主方",herbs:[],is_public:0,disable_edit:0}),j={prescription_name:[{required:!0,message:"请输入处方名称",trigger:"blur"}]},I=De(),q=[0,3],{pager:k,getLists:h,resetParams:z,resetPage:P}=Re({fetchFun:$e,params:c}),G=i=>{var e;return Number(i.creator_id)===Number((e=I.userInfo)==null?void 0:e.id)},H=()=>{const i=I.userInfo;if(!i)return!1;if(Number(i.root)===1)return!0;const e=Array.isArray(i.role_ids)?i.role_ids.map(v=>Number(v)):[];return q.some(v=>e.includes(v))},$=i=>H()||G(i),Q=$,W=()=>{s.herbs.push({name:"",dosage:0})},X=i=>{s.herbs.splice(i,1)},Y=()=>{s.id=0,s.prescription_name="",s.formula_type="主方",s.herbs=[],s.is_public=0,s.disable_edit=0},Z=()=>{Y(),u.value="add",b.value=!0},ee=i=>{u.value="view",s.id=i.id,s.prescription_name=i.prescription_name||"",s.formula_type=i.formula_type||"主方",s.herbs=i.herbs?JSON.parse(JSON.stringify(i.herbs)):[],s.is_public=i.is_public??0,s.disable_edit=i.disable_edit??0,b.value=!0},le=i=>{u.value="edit",s.id=i.id,s.prescription_name=i.prescription_name||"",s.formula_type=i.formula_type||"主方",s.herbs=i.herbs?JSON.parse(JSON.stringify(i.herbs)):[],s.is_public=i.is_public??0,s.disable_edit=i.disable_edit??0,b.value=!0},te=async()=>{if(N.value){if(await N.value.validate(),!s.herbs||s.herbs.length===0){f.msgError("请至少添加一味药材");return}for(let i=0;i<s.herbs.length;i++){const e=s.herbs[i];if(!e.name||!e.name.trim()){f.msgError(`第${i+1}味药材名称不能为空`);return}if(!e.dosage||e.dosage<=0){f.msgError(`第${i+1}味药材剂量必须大于0`);return}}S.value=!0;try{const i={...s};u.value==="add"?(await Oe(i),f.msgSuccess("添加成功")):(await Ae(i),f.msgSuccess("编辑成功")),b.value=!1,h()}catch(i){console.error(i)}finally{S.value=!1}}},ae=async i=>{await f.confirm("确定要删除该处方吗?"),await Me({id:i}),f.msgSuccess("删除成功"),h()};return ue(()=>{h()}),(i,e)=>{const v=ce,m=_e,y=ve,O=fe,p=ye,A=me,M=ge,ie=Ie,r=we,U=xe,R=ke,se=Le,T=Ee,oe=Ce,ne=Se,B=Ne,re=Ue,C=pe("perms"),de=Ve;return _(),L("div",Be,[l(M,{class:"!border-none",shadow:"never"},{default:a(()=>[l(A,{class:"mb-[-16px]",model:o(c),inline:""},{default:a(()=>[l(m,{class:"w-[280px]",label:"处方名称"},{default:a(()=>[l(v,{modelValue:o(c).prescription_name,"onUpdate:modelValue":e[0]||(e[0]=t=>o(c).prescription_name=t),placeholder:"请输入处方名称",clearable:"",onKeyup:be(o(P),["enter"])},null,8,["modelValue","onKeyup"])]),_:1}),l(m,{class:"w-[200px]",label:"处方类型"},{default:a(()=>[l(O,{modelValue:o(c).formula_type,"onUpdate:modelValue":e[1]||(e[1]=t=>o(c).formula_type=t),placeholder:"全部",clearable:""},{default:a(()=>[l(y,{label:"全部",value:""}),l(y,{label:"主方",value:"主方"}),l(y,{label:"辅方",value:"辅方"})]),_:1},8,["modelValue"])]),_:1}),l(m,{class:"w-[200px]",label:"是否公开"},{default:a(()=>[l(O,{modelValue:o(c).is_public,"onUpdate:modelValue":e[2]||(e[2]=t=>o(c).is_public=t),placeholder:"全部",clearable:""},{default:a(()=>[l(y,{label:"全部",value:""}),l(y,{label:"仅自己可见",value:0}),l(y,{label:"所有人可见",value:1})]),_:1},8,["modelValue"])]),_:1}),l(m,null,{default:a(()=>[l(p,{type:"primary",onClick:o(P)},{default:a(()=>[...e[10]||(e[10]=[n("查询",-1)])]),_:1},8,["onClick"]),l(p,{onClick:o(z)},{default:a(()=>[...e[11]||(e[11]=[n("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["model"])]),_:1}),w((_(),g(M,{class:"mt-4 !border-none",shadow:"never"},{default:a(()=>[w((_(),g(p,{type:"primary",onClick:Z},{icon:a(()=>[l(ie,{name:"el-icon-Plus"})]),default:a(()=>[e[12]||(e[12]=n(" 新增处方 ",-1))]),_:1})),[[C,["wcf.prescription/add"]]]),V("div",Fe,[l(R,{data:o(k).lists,size:"large"},{default:a(()=>[l(r,{label:"ID",prop:"id","min-width":"60"}),l(r,{label:"处方名称",prop:"prescription_name","min-width":"200","show-overflow-tooltip":""}),l(r,{label:"处方类型","min-width":"100"},{default:a(({row:t})=>[l(U,{type:t.formula_type==="辅方"?"warning":"primary",size:"small"},{default:a(()=>[n(x(t.formula_type||"主方"),1)]),_:2},1032,["type"])]),_:1}),l(r,{label:"药材数量","min-width":"100"},{default:a(({row:t})=>{var d;return[n(x(((d=t.herbs)==null?void 0:d.length)||0)+"味 ",1)]}),_:1}),l(r,{label:"药材明细","min-width":"300","show-overflow-tooltip":""},{default:a(({row:t})=>[t.herbs&&t.herbs.length>0?(_(),L("span",Je,x(t.herbs.map(d=>`${d.name} ${d.dosage}g`).join("、")),1)):(_(),L("span",Ke,"暂无药材"))]),_:1}),l(r,{label:"是否公开","min-width":"120"},{default:a(({row:t})=>[l(U,{type:t.is_public?"success":"info"},{default:a(()=>[n(x(t.is_public?"所有人可见":"仅自己可见"),1)]),_:2},1032,["type"])]),_:1}),l(r,{label:"禁用修改","min-width":"100"},{default:a(({row:t})=>[l(U,{type:t.disable_edit?"danger":"info"},{default:a(()=>[n(x(t.disable_edit?"已禁用":"可修改"),1)]),_:2},1032,["type"])]),_:1}),l(r,{label:"创建人",prop:"creator_name","min-width":"100"}),l(r,{label:"创建时间",prop:"create_time","min-width":"160"}),l(r,{label:"操作",width:"180",fixed:"right"},{default:a(({row:t})=>[w((_(),g(p,{type:"primary",link:"",onClick:d=>ee(t)},{default:a(()=>[...e[13]||(e[13]=[n(" 查看 ",-1)])]),_:1},8,["onClick"])),[[C,["wcf.prescription/read"]]]),$(t)?w((_(),g(p,{key:0,type:"primary",link:"",onClick:d=>le(t)},{default:a(()=>[...e[14]||(e[14]=[n(" 编辑 ",-1)])]),_:1},8,["onClick"])),[[C,["wcf.prescription/edit"]]]):D("",!0),o(Q)(t)?w((_(),g(p,{key:1,type:"danger",link:"",onClick:d=>ae(t.id)},{default:a(()=>[...e[15]||(e[15]=[n(" 删除 ",-1)])]),_:1},8,["onClick"])),[[C,["wcf.prescription/delete"]]]):D("",!0)]),_:1})]),_:1},8,["data"])]),V("div",je,[l(se,{modelValue:o(k),"onUpdate:modelValue":e[3]||(e[3]=t=>F(k)?k.value=t:null),onChange:o(h)},null,8,["modelValue","onChange"])])]),_:1})),[[de,o(k).loading]]),l(re,{modelValue:o(b),"onUpdate:modelValue":e[9]||(e[9]=t=>F(b)?b.value=t:null),title:o(u)==="add"?"新增处方":o(u)==="edit"?"编辑处方":"查看处方",width:"800px","close-on-click-modal":!1},he({default:a(()=>[l(A,{ref_key:"formRef",ref:N,model:o(s),rules:j,"label-width":"120px",disabled:o(u)==="view"},{default:a(()=>[l(m,{label:"处方名称",prop:"prescription_name"},{default:a(()=>[l(v,{modelValue:o(s).prescription_name,"onUpdate:modelValue":e[4]||(e[4]=t=>o(s).prescription_name=t),placeholder:"请输入处方名称,例如:六味地黄丸、补中益气汤",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(m,{label:"处方类型",prop:"formula_type"},{default:a(()=>[l(oe,{modelValue:o(s).formula_type,"onUpdate:modelValue":e[5]||(e[5]=t=>o(s).formula_type=t)},{default:a(()=>[l(T,{value:"主方"},{default:a(()=>[...e[16]||(e[16]=[n("主方",-1)])]),_:1}),l(T,{value:"辅方"},{default:a(()=>[...e[17]||(e[17]=[n("辅方",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(m,{label:"药材配方",prop:"herbs",required:""},{default:a(()=>[V("div",qe,[l(p,{type:"primary",size:"small",onClick:W,disabled:o(u)==="view"},{default:a(()=>[...e[18]||(e[18]=[n(" 添加药材 ",-1)])]),_:1},8,["disabled"]),l(R,{data:o(s).herbs,class:"mt-2",border:""},{default:a(()=>[l(r,{label:"序号",type:"index",width:"60"}),l(r,{label:"药材名称","min-width":"220"},{default:a(({row:t})=>[l(Te,{modelValue:t.name,"onUpdate:modelValue":d=>t.name=d,disabled:o(u)==="view"},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:1}),l(r,{label:"剂量(克)","min-width":"150"},{default:a(({row:t})=>[l(ne,{modelValue:t.dosage,"onUpdate:modelValue":d=>t.dosage=d,min:0,precision:1,step:.5,placeholder:"剂量",class:"w-full",disabled:o(u)==="view"},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:1}),o(u)!=="view"?(_(),g(r,{key:0,label:"操作",width:"80"},{default:a(({$index:t})=>[l(p,{type:"danger",link:"",onClick:d=>X(t)},{default:a(()=>[...e[19]||(e[19]=[n(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})):D("",!0)]),_:1},8,["data"])])]),_:1}),l(m,{label:"是否公开",prop:"is_public"},{default:a(()=>[l(B,{modelValue:o(s).is_public,"onUpdate:modelValue":e[6]||(e[6]=t=>o(s).is_public=t),"active-value":1,"inactive-value":0,"active-text":"所有人可见","inactive-text":"仅自己可见"},null,8,["modelValue"]),e[20]||(e[20]=V("div",{class:"text-xs text-gray-400 mt-1"}," 勾选后,所有医生都可以查看和使用此处方模板 ",-1))]),_:1}),l(m,{label:"禁用修改",prop:"disable_edit"},{default:a(()=>[V("div",ze,[l(B,{modelValue:o(s).disable_edit,"onUpdate:modelValue":e[7]||(e[7]=t=>o(s).disable_edit=t),"active-value":1,"inactive-value":0,"active-text":"开启","inactive-text":"关闭"},null,8,["modelValue"]),e[21]||(e[21]=V("div",{class:"text-xs text-gray-400 leading-relaxed"}," 开启后,导入此模板到处方时将锁定整张处方的药材,不可增删改,只能再次导入覆盖 ",-1))])]),_:1})]),_:1},8,["model","disabled"])]),_:2},[o(u)!=="view"?{name:"footer",fn:a(()=>[l(p,{onClick:e[8]||(e[8]=t=>b.value=!1)},{default:a(()=>[...e[22]||(e[22]=[n("取消",-1)])]),_:1}),l(p,{type:"primary",onClick:te,loading:o(S)},{default:a(()=>[...e[23]||(e[23]=[n(" 确定 ",-1)])]),_:1},8,["loading"])]),key:"0"}:void 0]),1032,["modelValue","title"])])}}}),al=Pe(He,[["__scopeId","data-v-fa64169d"]]);export{al as default};