Files
zyt/server/public/admin/assets/medicine-C1J1v1MQ.js
T
2026-07-16 09:04:40 +08:00

2 lines
11 KiB
JavaScript

import{D as ie,B as ne,C as ue,i as pe,M as de,N as me,v as ce,T as ge,L as fe,U as _e,d as ve,J as be,P as ye,Q as we,h as Ve,a0 as ke,G as xe,I as Ee,V as Ce,a as he}from"./element-plus-Bolc0EfP.js";import{A as q}from"./@element-plus/icons-vue-B0jSCQ-G.js";import{g as Ue,i as d,_ as ze}from"./index-DsiMl32K.js";import{a as Be,b as Te,c as De,m as Se}from"./medicine-CMKT-iir.js";import{f as M,b as Ie,ak as _,I as h,a as l,aN as a,O as n,aP as Ne,G as U,J as m,A as z}from"./@vue/runtime-core-C6bnekPw.js";import{Q as V}from"./@vue/shared-mAAVTE9n.js";import{y as L,n as g,r as qe}from"./@vue/reactivity-DiY1c2vO.js";import"./@vue/runtime-dom-DDAG46FW.js";import"./lodash-D3kF6u-c.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.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";const Le={class:"medicine-library"},Me={class:"flex justify-between items-center"},Pe={key:1,class:"text-gray-400"},Re={class:"text-blue-600"},Ae={class:"text-green-600 font-medium"},Fe={class:"flex justify-end mt-4"},je=["src"],Ge=M({name:"medicineLibrary"}),Qe=M({...Ge,setup($e){const k=g(!1),x=g(!1),f=g(!1),y=g(),r=qe({page_no:1,page_size:20,name:"",supplier:""}),B=g([]),T=g(0),s=g({name:"",supplier:"",unit:"克",settlement_price:0,retail_price:0,stock:0,image:"",status:1,remark:""}),P={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"}]},R=z(()=>s.value.id?"编辑药品":"添加药品"),A=z(()=>"https://admin.zhenyangtang.com.cn//api/upload/image"),F=z(()=>({token:Ue()})),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)},j=o=>o===0?"danger":o<10?"warning":"success",E=()=>{v()},G=()=>{r.name="",r.supplier="",r.page_no=1,v()},Q=()=>{s.value={name:"",supplier:"",unit:"克",settlement_price:0,retail_price:0,stock:0,image:"",status:1,remark:""},f.value=!0},$=o=>{s.value={...o},f.value=!0},J=async o=>{try{await he.confirm("确定要删除该药品吗?","提示",{type:"warning",confirmButtonText:"确定",cancelButtonText:"取消"}),await Be({id:o.id}),d.msgSuccess("删除成功"),v()}catch(e){e!=="cancel"&&d.msgError("删除失败")}},O=async()=>{y.value&&await y.value.validate(async o=>{if(o){x.value=!0;try{s.value.id?await Te(s.value):await De(s.value),d.msgSuccess("保存成功"),f.value=!1,v()}catch{d.msgError("保存失败")}finally{x.value=!1}}})},H=()=>{var o;(o=y.value)==null||o.resetFields()},W=o=>{const e=o.type.startsWith("image/"),w=o.size/1024/1024<2;return e?w?!0:(d.msgError("图片大小不能超过 2MB!"),!1):(d.msgError("只能上传图片文件!"),!1)},K=o=>{var e;o.code===1&&((e=o.data)!=null&&e.url)?(s.value.image=o.data.url,d.msgSuccess("上传成功")):d.msgError(o.msg||"上传失败")},v=async()=>{k.value=!0;try{const o=await Se(r);B.value=o.lists||[],T.value=o.count||0}catch(o){console.error("加载数据失败:",o),d.msgError("加载数据失败")}finally{k.value=!1}};return Ie(()=>{v()}),(o,e)=>{const w=ve,c=pe,b=ue,i=ne,S=ie,u=me,X=ce,I=ge,Y=de,Z=_e,ee=be,p=we,le=ye,C=Ve,te=ke,N=Ee,ae=xe,oe=Ce,se=fe;return _(),h("div",Le,[l(ee,{shadow:"never"},{header:a(()=>[m("div",Me,[e[15]||(e[15]=m("span",{class:"text-lg font-medium"},"药品库管理",-1)),l(c,{type:"primary",onClick:Q},{default:a(()=>[l(w,{class:"mr-1"},{default:a(()=>[l(L(q))]),_:1}),e[14]||(e[14]=n(" 添加药品 ",-1))]),_:1})])]),default:a(()=>[l(S,{inline:"",class:"mb-4"},{default:a(()=>[l(i,{label:"药材名称"},{default:a(()=>[l(b,{modelValue:r.name,"onUpdate:modelValue":e[0]||(e[0]=t=>r.name=t),placeholder:"请输入药材名称",clearable:"",style:{width:"200px"}},null,8,["modelValue"])]),_:1}),l(i,{label:"供应商"},{default:a(()=>[l(b,{modelValue:r.supplier,"onUpdate:modelValue":e[1]||(e[1]=t=>r.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]=[n("查询",-1)])]),_:1}),l(c,{onClick:G},{default:a(()=>[...e[17]||(e[17]=[n("重置",-1)])]),_:1})]),_:1})]),_:1}),Ne((_(),U(Y,{data:B.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?(_(),U(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"])):(_(),h("span",Pe,"暂无图片"))]),_: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",Re,V(D(t.settlement_price)),1)]),_:1}),l(u,{prop:"retail_price",label:"零售价(元)",width:"110",align:"right"},{default:a(({row:t})=>[m("span",Ae,V(D(t.retail_price)),1)]),_:1}),l(u,{prop:"stock",label:"库存",width:"100",align:"center"},{default:a(({row:t})=>[l(I,{type:j(t.stock),size:"small"},{default:a(()=>[n(V(t.stock||0),1)]),_:2},1032,["type"])]),_:1}),l(u,{prop:"status",label:"状态",width:"80",align:"center"},{default:a(({row:t})=>[l(I,{type:t.status===1?"success":"info",size:"small"},{default:a(()=>[n(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:re=>$(t)},{default:a(()=>[...e[18]||(e[18]=[n("编辑",-1)])]),_:1},8,["onClick"]),l(c,{type:"danger",link:"",onClick:re=>J(t)},{default:a(()=>[...e[19]||(e[19]=[n("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[se,k.value]]),m("div",Fe,[l(Z,{"current-page":r.page_no,"onUpdate:currentPage":e[2]||(e[2]=t=>r.page_no=t),"page-size":r.page_size,"onUpdate:pageSize":e[3]||(e[3]=t=>r.page_size=t),total:T.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:R.value,width:"600px","destroy-on-close":"",onClose:H},{footer:a(()=>[l(c,{onClick:e[12]||(e[12]=t=>f.value=!1)},{default:a(()=>[...e[25]||(e[25]=[n("取消",-1)])]),_:1}),l(c,{type:"primary",loading:x.value,onClick:O},{default:a(()=>[...e[26]||(e[26]=[n("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[l(S,{ref_key:"formRef",ref:y,model:s.value,rules:P,"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(p,{label:"克",value:"克"}),l(p,{label:"千克",value:"千克"}),l(p,{label:"斤",value:"斤"}),l(p,{label:"盒",value:"盒"}),l(p,{label:"瓶",value:"瓶"}),l(p,{label:"袋",value:"袋"}),l(p,{label:"包",value:"包"}),l(p,{label:"片",value:"片"}),l(p,{label:"粒",value:"粒"}),l(p,{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:A.value,headers:F.value,"show-file-list":!1,"on-success":K,"before-upload":W,accept:"image/*"},{default:a(()=>[s.value.image?(_(),h("img",{key:0,src:s.value.image,class:"medicine-image"},null,8,je)):(_(),U(w,{key:1,class:"medicine-uploader-icon"},{default:a(()=>[l(L(q))]),_: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(N,{label:1},{default:a(()=>[...e[23]||(e[23]=[n("启用",-1)])]),_:1}),l(N,{label:0},{default:a(()=>[...e[24]||(e[24]=[n("停用",-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"])])}}}),Tl=ze(Qe,[["__scopeId","data-v-ff8ad457"]]);export{Tl as default};