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

2 lines
9.5 KiB
JavaScript

import{o as N,ap as ie,q as _,r as U,v as l,D as a,b9 as re,b6 as ue,b7 as de,K as pe,L as r,ac as me,O as h,bj as ce,bk as ge,aa as fe,s as m,T as V,br as _e,bi as ve,bs as be,w as ye,u as L,cv as M,bg as we,bm as Ve,bn as ke,J as xe,bW as Ee,bc as Ce,bf as Ue,bt as he,M as g,ba as ze,p as z,e as Te}from"./.pnpm-BGZW0UGg.js";import{g as Be,i as p,_ as De}from"./index-CeIwrh_6.js";import{a as Se,b as qe,c as Ie,m as Le}from"./medicine-BaUOPlgY.js";const Me={class:"medicine-library"},Ne={class:"flex justify-between items-center"},Re={key:1,class:"text-gray-400"},je={class:"text-blue-600"},Fe={class:"text-green-600 font-medium"},Pe={class:"flex justify-end mt-4"},Ae=["src"],$e=N({name:"medicineLibrary"}),Oe=N({...$e,setup(We){const k=g(!1),x=g(!1),f=g(!1),y=g(),n=ze({page_no:1,page_size:20,name:"",supplier:""}),T=g([]),B=g(0),s=g({name:"",supplier:"",unit:"克",settlement_price:0,retail_price:0,stock:0,image:"",status:1,remark:""}),R={name:[{required:!0,message:"请输入药材名称",trigger:"blur"}],supplier:[{required:!0,message:"请输入供应商名称",trigger:"blur"}],unit:[{required:!0,message:"请选择单位",trigger:"change"}],settlement_price:[{required:!0,message:"请输入结算价",trigger:"blur"}],retail_price:[{required:!0,message:"请输入零售价",trigger:"blur"}]},j=z(()=>s.value.id?"编辑药品":"添加药品"),F=z(()=>"undefined/api/upload/image"),P=z(()=>({token:Be()})),D=o=>{if(o==null||o==="")return"0.00";const e=typeof o=="string"?parseFloat(o):o;return isNaN(e)?"0.00":e.toFixed(2)},A=o=>o===0?"danger":o<10?"warning":"success",E=()=>{v()},$=()=>{n.name="",n.supplier="",n.page_no=1,v()},O=()=>{s.value={name:"",supplier:"",unit:"克",settlement_price:0,retail_price:0,stock:0,image:"",status:1,remark:""},f.value=!0},W=o=>{s.value={...o},f.value=!0},G=async o=>{try{await Te.confirm("确定要删除该药品吗?","提示",{type:"warning",confirmButtonText:"确定",cancelButtonText:"取消"}),await Se({id:o.id}),p.msgSuccess("删除成功"),v()}catch(e){e!=="cancel"&&p.msgError("删除失败")}},H=async()=>{y.value&&await y.value.validate(async o=>{if(o){x.value=!0;try{s.value.id?await qe(s.value):await Ie(s.value),p.msgSuccess("保存成功"),f.value=!1,v()}catch{p.msgError("保存失败")}finally{x.value=!1}}})},J=()=>{var o;(o=y.value)==null||o.resetFields()},K=o=>{const e=o.type.startsWith("image/"),w=o.size/1024/1024<2;return e?w?!0:(p.msgError("图片大小不能超过 2MB!"),!1):(p.msgError("只能上传图片文件!"),!1)},Q=o=>{var e;o.code===1&&((e=o.data)!=null&&e.url)?(s.value.image=o.data.url,p.msgSuccess("上传成功")):p.msgError(o.msg||"上传失败")},v=async()=>{k.value=!0;try{const o=await Le(n);T.value=o.lists||[],B.value=o.count||0}catch(o){console.error("加载数据失败:",o),p.msgError("加载数据失败")}finally{k.value=!1}};return ie(()=>{v()}),(o,e)=>{const w=ye,c=pe,b=de,i=ue,S=re,u=ge,X=fe,q=_e,Y=ce,Z=be,ee=we,d=ke,le=Ve,C=xe,te=Ee,I=Ue,ae=Ce,oe=he,se=ve;return _(),U("div",Me,[l(ee,{shadow:"never"},{header:a(()=>[m("div",Ne,[e[15]||(e[15]=m("span",{class:"text-lg font-medium"},"药品库管理",-1)),l(c,{type:"primary",onClick:O},{default:a(()=>[l(w,{class:"mr-1"},{default:a(()=>[l(L(M))]),_:1}),e[14]||(e[14]=r(" 添加药品 ",-1))]),_:1})])]),default:a(()=>[l(S,{inline:"",class:"mb-4"},{default:a(()=>[l(i,{label:"药材名称"},{default:a(()=>[l(b,{modelValue:n.name,"onUpdate:modelValue":e[0]||(e[0]=t=>n.name=t),placeholder:"请输入药材名称",clearable:"",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),l(i,{label:"供应商"},{default:a(()=>[l(b,{modelValue:n.supplier,"onUpdate:modelValue":e[1]||(e[1]=t=>n.supplier=t),placeholder:"请输入供应商名称",clearable:"",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),l(i,null,{default:a(()=>[l(c,{type:"primary",onClick:E},{default:a(()=>[...e[16]||(e[16]=[r("查询",-1)])]),_:1}),l(c,{onClick:$},{default:a(()=>[...e[17]||(e[17]=[r("重置",-1)])]),_:1})]),_:1})]),_:1}),me((_(),h(Y,{data:T.value,border:"",stripe:""},{default:a(()=>[l(u,{type:"index",label:"序号",width:"60",align:"center"}),l(u,{prop:"image",label:"图片",width:"100",align:"center"},{default:a(({row:t})=>[t.image?(_(),h(X,{key:0,src:t.image,"preview-src-list":[t.image],fit:"cover",class:"w-16 h-16 rounded"},null,8,["src","preview-src-list"])):(_(),U("span",Re,"暂无图片"))]),_:1}),l(u,{prop:"name",label:"药材名称","min-width":"120","show-overflow-tooltip":""}),l(u,{prop:"supplier",label:"供应商","min-width":"120","show-overflow-tooltip":""}),l(u,{prop:"unit",label:"单位",width:"80",align:"center"}),l(u,{prop:"settlement_price",label:"结算价(元)",width:"110",align:"right"},{default:a(({row:t})=>[m("span",je,V(D(t.settlement_price)),1)]),_:1}),l(u,{prop:"retail_price",label:"零售价(元)",width:"110",align:"right"},{default:a(({row:t})=>[m("span",Fe,V(D(t.retail_price)),1)]),_:1}),l(u,{prop:"stock",label:"库存",width:"100",align:"center"},{default:a(({row:t})=>[l(q,{type:A(t.stock),size:"small"},{default:a(()=>[r(V(t.stock||0),1)]),_:2},1032,["type"])]),_:1}),l(u,{prop:"status",label:"状态",width:"80",align:"center"},{default:a(({row:t})=>[l(q,{type:t.status===1?"success":"info",size:"small"},{default:a(()=>[r(V(t.status===1?"启用":"停用"),1)]),_:2},1032,["type"])]),_:1}),l(u,{label:"操作",width:"160",fixed:"right",align:"center"},{default:a(({row:t})=>[l(c,{type:"primary",link:"",onClick:ne=>W(t)},{default:a(()=>[...e[18]||(e[18]=[r("编辑",-1)])]),_:1},8,["onClick"]),l(c,{type:"danger",link:"",onClick:ne=>G(t)},{default:a(()=>[...e[19]||(e[19]=[r("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[se,k.value]]),m("div",Pe,[l(Z,{"current-page":n.page_no,"onUpdate:currentPage":e[2]||(e[2]=t=>n.page_no=t),"page-size":n.page_size,"onUpdate:pageSize":e[3]||(e[3]=t=>n.page_size=t),total:B.value,"page-sizes":[10,20,50,100],layout:"total, sizes, prev, pager, next, jumper",onSizeChange:E,onCurrentChange:E},null,8,["current-page","page-size","total"])])]),_:1}),l(oe,{modelValue:f.value,"onUpdate:modelValue":e[13]||(e[13]=t=>f.value=t),title:j.value,width:"600px","destroy-on-close":"",onClose:J},{footer:a(()=>[l(c,{onClick:e[12]||(e[12]=t=>f.value=!1)},{default:a(()=>[...e[25]||(e[25]=[r("取消",-1)])]),_:1}),l(c,{type:"primary",loading:x.value,onClick:H},{default:a(()=>[...e[26]||(e[26]=[r("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[l(S,{ref_key:"formRef",ref:y,model:s.value,rules:R,"label-width":"100px"},{default:a(()=>[l(i,{label:"药材名称",prop:"name"},{default:a(()=>[l(b,{modelValue:s.value.name,"onUpdate:modelValue":e[4]||(e[4]=t=>s.value.name=t),placeholder:"请输入药材名称",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"供应商",prop:"supplier"},{default:a(()=>[l(b,{modelValue:s.value.supplier,"onUpdate:modelValue":e[5]||(e[5]=t=>s.value.supplier=t),placeholder:"请输入供应商名称",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(i,{label:"单位",prop:"unit"},{default:a(()=>[l(le,{modelValue:s.value.unit,"onUpdate:modelValue":e[6]||(e[6]=t=>s.value.unit=t),placeholder:"请选择单位",clearable:"",style:{width:"100%"}},{default:a(()=>[l(d,{label:"克",value:"克"}),l(d,{label:"千克",value:"千克"}),l(d,{label:"斤",value:"斤"}),l(d,{label:"盒",value:"盒"}),l(d,{label:"瓶",value:"瓶"}),l(d,{label:"袋",value:"袋"}),l(d,{label:"包",value:"包"}),l(d,{label:"片",value:"片"}),l(d,{label:"粒",value:"粒"}),l(d,{label:"支",value:"支"})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"结算价",prop:"settlement_price"},{default:a(()=>[l(C,{modelValue:s.value.settlement_price,"onUpdate:modelValue":e[7]||(e[7]=t=>s.value.settlement_price=t),min:0,precision:2,step:.1,"controls-position":"right",style:{width:"100%"}},null,8,["modelValue"]),e[20]||(e[20]=m("span",{class:"ml-2 text-gray-500 text-sm"},"元",-1))]),_:1}),l(i,{label:"零售价",prop:"retail_price"},{default:a(()=>[l(C,{modelValue:s.value.retail_price,"onUpdate:modelValue":e[8]||(e[8]=t=>s.value.retail_price=t),min:0,precision:2,step:.1,"controls-position":"right",style:{width:"100%"}},null,8,["modelValue"]),e[21]||(e[21]=m("span",{class:"ml-2 text-gray-500 text-sm"},"元",-1))]),_:1}),l(i,{label:"库存",prop:"stock"},{default:a(()=>[l(C,{modelValue:s.value.stock,"onUpdate:modelValue":e[9]||(e[9]=t=>s.value.stock=t),min:0,step:1,"controls-position":"right",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),l(i,{label:"药品图片",prop:"image"},{default:a(()=>[l(te,{class:"medicine-uploader",action:F.value,headers:P.value,"show-file-list":!1,"on-success":Q,"before-upload":K,accept:"image/*"},{default:a(()=>[s.value.image?(_(),U("img",{key:0,src:s.value.image,class:"medicine-image"},null,8,Ae)):(_(),h(w,{key:1,class:"medicine-uploader-icon"},{default:a(()=>[l(L(M))]),_:1}))]),_:1},8,["action","headers"]),e[22]||(e[22]=m("div",{class:"text-gray-500 text-xs mt-1"},"建议尺寸:300x300像素,支持jpg、png格式,大小不超过2MB",-1))]),_:1}),l(i,{label:"状态",prop:"status"},{default:a(()=>[l(ae,{modelValue:s.value.status,"onUpdate:modelValue":e[10]||(e[10]=t=>s.value.status=t)},{default:a(()=>[l(I,{label:1},{default:a(()=>[...e[23]||(e[23]=[r("启用",-1)])]),_:1}),l(I,{label:0},{default:a(()=>[...e[24]||(e[24]=[r("停用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"备注"},{default:a(()=>[l(b,{modelValue:s.value.remark,"onUpdate:modelValue":e[11]||(e[11]=t=>s.value.remark=t),type:"textarea",rows:3,placeholder:"请输入备注信息",maxlength:"500","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),Ke=De(Oe,[["__scopeId","data-v-26913840"]]);export{Ke as default};