2 lines
9.0 KiB
JavaScript
2 lines
9.0 KiB
JavaScript
import{i as ae,E as U,_ as te,u as oe,j as ne,c as S,a as x,b as e,w as a,k as ie,v as ue,l as se,m as g,g as p,r as m,o as b,h as u,n as D,t as c,e as z,p as re}from"./index-BKY3gHB2.js";import{u as de}from"./materials-CCO44TCM.js";import{_ as me}from"./BaseTable-BUsuzGI9.js";import{_ as pe}from"./DeleteConfirm-D3Hh604n.js";const ce={__name:"AlertTip",props:{message:String,type:{type:String,default:"success"},duration:{type:Number,default:3e3}},setup(I){const s=I;return ae(()=>s.message,V=>{V&&U({message:V,type:s.type,duration:s.duration})},{immediate:!0}),()=>{}}},ve={class:"materials-page"},_e={class:"page-header"},fe={class:"search-bar"},ge={key:1},be=["src"],ye={key:1},Ve={__name:"Materials",setup(I){const s=de(),V=oe(),M=m(""),k=m(!1),F=m(!1),$=m(!1),A=m("新增物料"),j=m(!1),B=m(null),P=m(null),r=m(null),R=m(""),O=m("success"),C=m(""),w=m(null);function K(n){const l=n.target.files[0];l&&(C.value=URL.createObjectURL(l))}const i=re({material_code:"",name:"",spec:"",category:"",unit:"pcs",warning_stock:0,material_image:""});ne(()=>{s.fetchMaterials()});function L(){s.fetchMaterials(1,M.value)}function q(n){s.fetchMaterials(n,M.value)}function G(){B.value=null,A.value="新增物料",Object.assign(i,{material_code:"",name:"",spec:"",category:"",unit:"pcs",warning_stock:0,material_image:""}),C.value="",w.value&&(w.value.value=""),k.value=!0}function H(n){r.value=n,F.value=!0}function J(n){B.value=n.id,A.value="编辑物料",Object.assign(i,{material_code:n.material_code,name:n.name,spec:n.spec||"",category:n.category||"",unit:n.unit,warning_stock:n.warning_stock,material_image:n.material_image||""}),C.value="",w.value&&(w.value.value=""),k.value=!0}async function Q(){var n;j.value=!0;try{const l={...i},v=(n=w.value)==null?void 0:n.files[0];if(v){const d=new FormData;d.append("image",v);const h=await fetch("/api/upload",{method:"POST",headers:{Authorization:`Bearer ${V.token}`},body:d});if(!h.ok)throw new Error("图片上传失败");const f=await h.json();l.material_image=f.data&&f.data.url?f.data.url:""}B.value?(await s.updateMaterial(B.value,l),U.success("物料更新成功")):(await s.createMaterial(l),U.success("物料创建成功")),k.value=!1}catch(l){U.error(l.message||"保存失败")}finally{j.value=!1}}function W(n){P.value=n,$.value=!0}async function X(){try{await s.deleteMaterial(P.value),U.success("物料删除成功")}catch{}}function E(n){return n?new Date(n).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):"-"}return(n,l)=>{const v=p("el-button"),d=p("el-table-column"),h=p("el-image"),f=p("el-input"),y=p("el-form-item"),o=p("el-option"),Y=p("el-select"),Z=p("el-input-number"),ee=p("el-form"),N=p("el-dialog"),_=p("el-descriptions-item"),le=p("el-descriptions");return b(),S("div",ve,[x("div",_e,[l[13]||(l[13]=x("h2",null,"物料管理",-1)),e(v,{type:"primary",onClick:G},{default:a(()=>[...l[12]||(l[12]=[u("新增物料",-1)])]),_:1})]),x("div",fe,[ie(x("input",{"onUpdate:modelValue":l[0]||(l[0]=t=>M.value=t),type:"text",class:"search-native-input",placeholder:"搜索物料编码或名称",onKeyup:se(L,["enter"])},null,544),[[ue,M.value]]),e(v,{type:"primary",onClick:L},{default:a(()=>[...l[14]||(l[14]=[u("搜索",-1)])]),_:1})]),e(me,{data:g(s).materials,loading:g(s).loading,"current-page":g(s).pagination.currentPage,"page-size":g(s).pagination.pageSize,total:g(s).pagination.total,onPageChange:q},{default:a(()=>[e(d,{type:"index",label:"ID",width:"60"}),e(d,{prop:"material_code",label:"物料编码"}),e(d,{prop:"name",label:"名称"}),e(d,{prop:"material_image",label:"物料图片",width:"80"},{default:a(({row:t})=>[t.material_image?(b(),D(h,{key:0,src:t.material_image,style:{width:"40px",height:"40px","object-fit":"contain"},"preview-src-list":[t.material_image],fit:"contain"},null,8,["src","preview-src-list"])):(b(),S("span",ge,"-"))]),_:1}),e(d,{prop:"spec",label:"规格"}),e(d,{prop:"category",label:"分类"},{default:a(({row:t})=>[u(c(g(s).getCategoryDisplay(t.category)),1)]),_:1}),e(d,{prop:"unit",label:"单位",width:"60"}),e(d,{prop:"warning_stock",label:"预警库存",width:"100"}),e(d,{prop:"created_at",label:"创建时间",width:"160"},{default:a(({row:t})=>[u(c(E(t.created_at)),1)]),_:1}),e(d,{label:"操作",width:"240",fixed:"right"},{default:a(({row:t})=>[e(v,{size:"small",onClick:T=>H(t)},{default:a(()=>[...l[15]||(l[15]=[u("详情",-1)])]),_:1},8,["onClick"]),g(V).isAdmin?(b(),D(v,{key:0,size:"small",type:"primary",onClick:T=>J(t)},{default:a(()=>[...l[16]||(l[16]=[u("编辑",-1)])]),_:1},8,["onClick"])):z("",!0),g(V).isAdmin?(b(),D(v,{key:1,size:"small",type:"danger",onClick:T=>W(t.id)},{default:a(()=>[...l[17]||(l[17]=[u("删除",-1)])]),_:1},8,["onClick"])):z("",!0)]),_:1})]),_:1},8,["data","loading","current-page","page-size","total"]),e(N,{modelValue:k.value,"onUpdate:modelValue":l[9]||(l[9]=t=>k.value=t),title:A.value,width:"600px"},{footer:a(()=>[e(v,{onClick:l[8]||(l[8]=t=>k.value=!1)},{default:a(()=>[...l[18]||(l[18]=[u("取消",-1)])]),_:1}),e(v,{type:"primary",onClick:Q,loading:j.value},{default:a(()=>[...l[19]||(l[19]=[u("保存",-1)])]),_:1},8,["loading"])]),default:a(()=>[e(ee,{model:i,"label-width":"100px"},{default:a(()=>[e(y,{label:"物料编码"},{default:a(()=>[e(f,{modelValue:i.material_code,"onUpdate:modelValue":l[1]||(l[1]=t=>i.material_code=t),readonly:A.value!=="新增物料"},null,8,["modelValue","readonly"])]),_:1}),e(y,{label:"名称"},{default:a(()=>[e(f,{modelValue:i.name,"onUpdate:modelValue":l[2]||(l[2]=t=>i.name=t)},null,8,["modelValue"])]),_:1}),e(y,{label:"规格"},{default:a(()=>[e(f,{modelValue:i.spec,"onUpdate:modelValue":l[3]||(l[3]=t=>i.spec=t)},null,8,["modelValue"])]),_:1}),e(y,{label:"分类"},{default:a(()=>[e(Y,{modelValue:i.category,"onUpdate:modelValue":l[4]||(l[4]=t=>i.category=t),style:{width:"100%"}},{default:a(()=>[e(o,{label:"标准件",value:"A01"}),e(o,{label:"成品件",value:"A02"}),e(o,{label:"简易加工件",value:"A03"}),e(o,{label:"精密加工件",value:"A04"}),e(o,{label:"钣金件",value:"A05"}),e(o,{label:"塑胶件",value:"A06"}),e(o,{label:"其他",value:"A07"}),e(o,{label:"成品件",value:"B01"}),e(o,{label:"简易加工件",value:"B02"}),e(o,{label:"PCB硬板",value:"B03"}),e(o,{label:"FPC软板",value:"B04"}),e(o,{label:"线束",value:"B05"}),e(o,{label:"组装组件",value:"B06"}),e(o,{label:"其他",value:"B07"}),e(o,{label:"连接耗材",value:"C01"}),e(o,{label:"密封耗材",value:"C02"}),e(o,{label:"其他",value:"C03"}),e(o,{label:"自研程序固件",value:"D01"}),e(o,{label:"外购软件授权",value:"D02"}),e(o,{label:"授权介质",value:"D03"}),e(o,{label:"其他",value:"D04"}),e(o,{label:"成品",value:"E01"}),e(o,{label:"半成品",value:"E02"}),e(o,{label:"资料文档",value:"F01"}),e(o,{label:"标识标牌",value:"F02"}),e(o,{label:"包装物料",value:"F03"}),e(o,{label:"随机工具配件",value:"F04"}),e(o,{label:"其他",value:"F05"})]),_:1},8,["modelValue"])]),_:1}),e(y,{label:"单位"},{default:a(()=>[e(f,{modelValue:i.unit,"onUpdate:modelValue":l[5]||(l[5]=t=>i.unit=t)},null,8,["modelValue"])]),_:1}),e(y,{label:"预警库存"},{default:a(()=>[e(Z,{modelValue:i.warning_stock,"onUpdate:modelValue":l[6]||(l[6]=t=>i.warning_stock=t),min:0},null,8,["modelValue"])]),_:1}),e(y,{label:"图片URL"},{default:a(()=>[e(f,{modelValue:i.material_image,"onUpdate:modelValue":l[7]||(l[7]=t=>i.material_image=t),placeholder:"图片URL"},null,8,["modelValue"])]),_:1}),e(y,{label:"图片上传"},{default:a(()=>[x("input",{type:"file",accept:"image/*",onChange:K,ref_key:"imageInput",ref:w},null,544),C.value?(b(),S("img",{key:0,src:C.value,style:{"max-width":"200px","margin-top":"10px"}},null,8,be)):z("",!0)]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),e(N,{modelValue:F.value,"onUpdate:modelValue":l[10]||(l[10]=t=>F.value=t),title:"物料详情",width:"600px"},{default:a(()=>[r.value?(b(),D(le,{key:0,column:2,border:""},{default:a(()=>[e(_,{label:"物料编码"},{default:a(()=>[u(c(r.value.material_code),1)]),_:1}),e(_,{label:"名称"},{default:a(()=>[u(c(r.value.name),1)]),_:1}),e(_,{label:"规格"},{default:a(()=>[u(c(r.value.spec||"-"),1)]),_:1}),e(_,{label:"分类"},{default:a(()=>[u(c(g(s).getCategoryDisplay(r.value.category)),1)]),_:1}),e(_,{label:"单位"},{default:a(()=>[u(c(r.value.unit),1)]),_:1}),e(_,{label:"预警库存"},{default:a(()=>[u(c(r.value.warning_stock),1)]),_:1}),e(_,{label:"当前库存"},{default:a(()=>[u(c(r.value.current_stock),1)]),_:1}),e(_,{label:"创建时间"},{default:a(()=>[u(c(E(r.value.created_at)),1)]),_:1}),e(_,{label:"更新时间",span:2},{default:a(()=>[u(c(E(r.value.updated_at)),1)]),_:1}),e(_,{label:"物料图片",span:2},{default:a(()=>[r.value.material_image?(b(),D(h,{key:0,src:r.value.material_image,style:{width:"100px",height:"100px","object-fit":"contain"},"preview-src-list":[r.value.material_image],fit:"contain"},null,8,["src","preview-src-list"])):(b(),S("span",ye,"-"))]),_:1})]),_:1})):z("",!0)]),_:1},8,["modelValue"]),e(pe,{modelValue:$.value,"onUpdate:modelValue":l[11]||(l[11]=t=>$.value=t),onConfirm:X},null,8,["modelValue"]),e(ce,{message:R.value,type:O.value},null,8,["message","type"])])}}},xe=te(Ve,[["__scopeId","data-v-48b64e29"]]);export{xe as default};
|