2 lines
10 KiB
JavaScript
2 lines
10 KiB
JavaScript
import{j as ee,h as w,c as C,a,w as t,k as N,F as k,i as x,r as n,o as d,m as U,n as p,d as F,f as i,p as B,t as z,E as V,v as le,l as ae,x as te}from"./index-CeNpw27z.js";import{c as $}from"./perm-DCTK2KrM.js";import{b as oe,P as de}from"./help-92MqPoF4.js";import{l as ne}from"./stations-DTFB--m9.js";const ue={key:2,style:{color:"#909399"}},fe={__name:"Bom",setup(se){const f=x(""),c=x(""),S=x([]),R=x([]),h=x([]),P=x([]),o=ae({show:!1,productCode:"",materialCode:"",materialName:"",spec:"",unit:"",manageMode:"2",processCode:0,unitQty:1,lossRate:0,relatedStandard:""}),A=te(()=>o.unitQty?`${o.unitQty} × 计划数量 × ${(1+(o.lossRate||0)/100).toFixed(2)}`:"0");async function M(){if(!f.value){S.value=[];return}S.value=await w.get("/bom/names",{params:{productCode:f.value}})||[],!c.value&&S.value.length&&(c.value=S.value[0].bomName)}async function I(){c.value="",await M(),_()}async function _(){if(!f.value)return V.warning("请选择产品编号");P.value=await w.get("/bom",{params:{productCode:f.value,bomName:c.value||"ALL"}})||[]}function W(){Object.assign(o,{show:!0,productCode:f.value||"",materialCode:"",materialName:"",spec:"",unit:"",manageMode:"2",processCode:0,unitQty:1,lossRate:0,relatedStandard:""})}async function H(){if(!o.productCode)return V.warning("请选择产品编号");if(!o.materialCode)return V.warning("请填写图号");const{requiredQty:r,...e}=o;e.processCode||(e.processCode=0),await w.put("/bom",{productCode:o.productCode,bomName:c.value,items:[{...e}]}),V.success("保存成功"),o.show=!1,f.value=o.productCode,await M(),_()}async function O(r){await le.confirm("确认移除该物料?","提示",{type:"warning"}),await w.post("/bom/item/delete",{id:r.id}),V.success("已移除"),await M(),await _()}async function T(r){const{processCode:e}=r,{materialCode:m,materialName:v,spec:u,unit:b,manageMode:E,unitQty:q,lossRate:Q,relatedStandard:s}=r;await w.put("/bom",{productCode:r.productCode||f.value,bomName:r.bomName||c.value,items:[{materialCode:m,materialName:v,spec:u,unit:b,manageMode:E,processCode:e||0,unitQty:q,lossRate:Q,relatedStandard:s}]}),V.success("已更新装配工位"),await _()}async function G(r){const e=new FormData;e.append("file",r.file);try{const m=await w.post("/bom/import",e);V.success(`导入成功,共 ${(m==null?void 0:m.count)||0} 行`),r.onSuccess&&r.onSuccess(),await M(),_()}catch(m){r.onError&&r.onError(m)}}return ee(async()=>{R.value=await w.get("/product-types")||[],h.value=await ne()}),(r,e)=>{const m=n("el-option"),v=n("el-select"),u=n("el-form-item"),b=n("el-button"),E=n("el-upload"),q=n("el-tooltip"),Q=n("el-form"),s=n("el-table-column"),D=n("el-tag"),J=n("el-table"),K=n("el-alert"),g=n("el-input"),L=n("el-radio"),X=n("el-radio-group"),j=n("el-input-number"),Y=n("el-dialog"),Z=n("el-card");return d(),C(k,null,[a(Z,null,{default:t(()=>[a(Q,{inline:""},{default:t(()=>[a(u,{label:"产品编号"},{default:t(()=>[a(v,{modelValue:f.value,"onUpdate:modelValue":e[0]||(e[0]=l=>f.value=l),filterable:"",clearable:"",placeholder:"选择产品编号查看其产品物料清单",style:{width:"240px"},onChange:I},{default:t(()=>[(d(!0),C(k,null,U(R.value,l=>(d(),p(m,{key:l.code,label:`${l.code} ${l.name||""}`,value:l.code},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(u,{label:"物料清单名称"},{default:t(()=>[a(v,{modelValue:c.value,"onUpdate:modelValue":e[1]||(e[1]=l=>c.value=l),filterable:"","allow-create":"","default-first-option":"",placeholder:"同一型号多份物料清单按名称区分",style:{width:"220px"},onChange:_},{default:t(()=>[(d(!0),C(k,null,U(S.value,l=>(d(),p(m,{key:l.bomName,label:`${l.bomName}(${l.itemCount}料)`,value:l.bomName},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),e[14]||(e[14]=F("div",{style:{color:"#909399","font-size":"12px","line-height":"1.4",width:"100%"}},"同一型号可并存多份产品物料清单(不同厂家/含半成品),可输入新名称创建;工单建单时按名选用。",-1))]),_:1}),a(u,null,{default:t(()=>[a(b,{type:"primary",onClick:_},{default:t(()=>[...e[15]||(e[15]=[i("查
|