Files
bj_power/bj_power_wms_client/web/static/assets/Inbound-Ca37RE5a.js
T
SunYF ebf901ad16 chore: 完成多系统功能迭代与优化
1. 通用优化:
   - 统一系统标题为"库房客户端"/"MES产线控制",移除北自所前缀
   - 调整内置账号密码为统一123456,优化密码校验逻辑
   - 新增数据库自动创建逻辑,简化部署流程
   - 修复日志时间格式配置,优化日志输出
   - 新增纯数字密码安全提示

2. MES系统优化:
   - 新增日排产管理功能,支持增删改查与自动算料生成备料单
   - 重构BOM模块,改为按产品编码维护而非工单维度
   - 新增工艺参数模板配置与手动报工页面
   - 新增产品类型自动编码功能
   - 优化菜单结构,调整工单管理、扫码报工等页面名称与路由
   - 新增删除日排产接口与权限保护
   - 修复物料清单查询逻辑,适配新BOM结构
   - 新增refreshToken支持,优化登录会话管理

3. WMS系统优化:
   - 新增基础数据维护页面,支持区域与物料档案管理
   - 新增工单列表下拉接口,对接MES获取未完成工单优先展示
   - 优化入库管理提示文案,替换英文提示为中文
   - 修复精密件入库校验逻辑,优化错误提示
   - 优化Excel导入功能,新增备注字段支持
   - 优化登录页面与菜单文案,统一备料台账名称
   - 新增自动打开浏览器功能,优化客户端启动体验
   - 修复备料出库页面查询提示文案
   - 新增WMS与MES对接配置,完善内部API调用逻辑

4. 其他优化:
   - 删除冗余的旧版静态资源文件,更新资源引用路径
   - 新增帮助文档,完善基础数据模块说明
   - 修复多处文案不统一、英文残留问题
2026-08-29 15:30:25 +08:00

2 lines
9.6 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{_ as re,i as ie,c as k,a as l,w as a,p as de,F as N,h as s,r as u,o as i,k as q,G as x,f as c,l as G,d as y,t as $,g as H,E as w,I as j}from"./index-gIYCKXT9.js";import{r as z}from"./request-Dn-Ij3HI.js";import{h as se,P as pe}from"./help-2sGNjKzn.js";const me={style:{width:"100%"}},ce={style:{"margin-bottom":"8px"}},fe={style:{"margin-top":"12px"}},be={style:{"margin-top":"12px"}},ve={__name:"Inbound",setup(ye){const S=s([]),U=s([]);ie(async()=>{const[o,e]=await Promise.all([z.get("/material/list"),z.get("/zone/list")]);S.value=Array.isArray(o)?o:(o==null?void 0:o.list)||[],U.value=Array.isArray(e)?e:(e==null?void 0:e.list)||[]});const A=s(),D=s(!1),E=s(""),n=H({materialCode:"",batchNo:"",quantity:1,zoneCode:"",productionDate:"",supplier:"",remark:""}),J={materialCode:[{required:!0,message:"请选择物料",trigger:"change"}],quantity:[{required:!0,message:"请输入数量",trigger:"blur"}]};async function K(){if(await A.value.validate(),!n.quantity||n.quantity<=0){w.warning("数量必须大于 0");return}D.value=!0;try{const o=await z.post("/inbound/create",{inboundType:"purchase",materialCode:n.materialCode,batchNo:n.batchNo.trim(),quantity:n.quantity,zoneCode:n.zoneCode,productionDate:n.productionDate,supplier:n.supplier.trim(),remark:n.remark.trim(),operator:j()});E.value=(o==null?void 0:o.inboundNo)||"",w.success(`入库成功:入库单号 ${(o==null?void 0:o.inboundNo)||""},数量 ${(o==null?void 0:o.quantity)??n.quantity}`),n.batchNo="",n.quantity=1}finally{D.value=!1}}const C=s(""),F=s(!1),d=s([]),m=H({materialCode:"",zoneCode:"",remark:""}),O=/[,.。;;、\s]+/;function Q(){const o=String(C.value).split(O);for(let e of o){const p=e.trim();p&&(d.value.includes(p)||d.value.push(p))}C.value=""}function W(o){d.value.splice(o,1)}async function X(){if(!m.materialCode){w.warning("请选择物料");return}if(!d.value.length){w.warning("请先扫码录入 SN(输入后回车追加)");return}F.value=!0;try{const o=await z.post("/inbound/create",{inboundType:"purchase",materialCode:m.materialCode,zoneCode:m.zoneCode,snList:[...d.value],remark:m.remark.trim(),operator:j()});w.success(`入库成功:入库单号 ${(o==null?void 0:o.inboundNo)||""}SN 共 ${d.value.length} 条`),d.value=[],C.value=""}finally{F.value=!1}}const h=s(),I=s([]),R=s(!1),_=s(null);function Z(o,e){I.value=e.slice(-1)}function ee(o){h.value.clearFiles();const e=o[0];e&&h.value.handleStart(e)}async function le(){var g,r,b;const o=I.value[0]||((r=(g=h.value)==null?void 0:g.uploadFiles)==null?void 0:r[0]),e=o==null?void 0:o.raw;if(!e){w.warning("请先选择 .xlsx 文件");return}const p=new FormData;p.append("file",e),R.value=!0;try{const f=await z.post("/inbound/batch-excel",p);_.value=f||{},w.success(`导入完成:共 ${(f==null?void 0:f.total)??0} 行,成功 ${(f==null?void 0:f.success)??0} 行`),(b=h.value)==null||b.clearFiles(),I.value=[]}finally{R.value=!1}}return(o,e)=>{const p=u("el-option"),g=u("el-select"),r=u("el-form-item"),b=u("el-input"),f=u("el-input-number"),te=u("el-date-picker"),V=u("el-button"),L=u("el-form"),M=u("el-alert"),B=u("el-tab-pane"),v=u("el-table-column"),P=u("el-table"),ae=u("el-upload"),oe=u("el-divider"),Y=u("el-tag"),ne=u("el-tabs"),ue=u("el-card");return i(),k(N,null,[l(ue,{shadow:"never"},{default:a(()=>[l(ne,null,{default:a(()=>[l(B,{label:"结构件入库"},{default:a(()=>[l(L,{ref_key:"batchRef",ref:A,model:n,rules:J,"label-width":"110px",style:{"max-width":"560px"}},{default:a(()=>[l(r,{label:"物料",prop:"materialCode"},{default:a(()=>[l(g,{modelValue:n.materialCode,"onUpdate:modelValue":e[0]||(e[0]=t=>n.materialCode=t),filterable:"",placeholder:"选择物料编码",style:{width:"100%"}},{default:a(()=>[(i(!0),k(N,null,q(S.value,t=>(i(),x(p,{key:t.id,value:t.code,label:`${t.code} ${t.name||""}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"批次号"},{default:a(()=>[l(b,{modelValue:n.batchNo,"onUpdate:modelValue":e[1]||(e[1]=t=>n.batchNo=t),placeholder:"留空则自动生成",clearable:""},null,8,["modelValue"])]),_:1}),l(r,{label:"数量",prop:"quantity"},{default:a(()=>[l(f,{modelValue:n.quantity,"onUpdate:modelValue":e[2]||(e[2]=t=>n.quantity=t),min:1,step:1,"step-strictly":"",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),l(r,{label:"区域"},{default:a(()=>[l(g,{modelValue:n.zoneCode,"onUpdate:modelValue":e[3]||(e[3]=t=>n.zoneCode=t),placeholder:"选择库区",clearable:"",style:{width:"100%"}},{default:a(()=>[(i(!0),k(N,null,q(U.value,t=>(i(),x(p,{key:t.id,value:t.zoneCode,label:`${t.zoneCode} ${t.zoneName||""}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"生产日期"},{default:a(()=>[l(te,{modelValue:n.productionDate,"onUpdate:modelValue":e[4]||(e[4]=t=>n.productionDate=t),type:"date","value-format":"YYYY-MM-DD",placeholder:"选择生产日期",style:{width:"100%"}},null,8,["modelValue"])]),_:1}),l(r,{label:"供应商"},{default:a(()=>[l(b,{modelValue:n.supplier,"onUpdate:modelValue":e[5]||(e[5]=t=>n.supplier=t),placeholder:"供应商名称",clearable:""},null,8,["modelValue"])]),_:1}),l(r,{label:"备注"},{default:a(()=>[l(b,{modelValue:n.remark,"onUpdate:modelValue":e[6]||(e[6]=t=>n.remark=t),placeholder:"备注(可空)",clearable:""},null,8,["modelValue"])]),_:1}),l(r,null,{default:a(()=>[l(V,{type:"primary",loading:D.value,onClick:K},{default:a(()=>[...e[12]||(e[12]=[c("提交入库",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"]),E.value?(i(),x(M,{key:0,type:"success",closable:!1,title:`最近入库单号:${E.value}`,style:{"max-width":"560px"}},null,8,["title"])):G("",!0)]),_:1}),l(B,{label:`精密件 SN 入库${d.value.length?`(已扫 ${d.value.length}`:""}`},{default:a(()=>[l(L,{"label-width":"110px",style:{"max-width":"680px"}},{default:a(()=>[l(r,{label:"物料"},{default:a(()=>[l(g,{modelValue:m.materialCode,"onUpdate:modelValue":e[7]||(e[7]=t=>m.materialCode=t),filterable:"",placeholder:"选择物料编码",style:{width:"100%"}},{default:a(()=>[(i(!0),k(N,null,q(S.value,t=>(i(),x(p,{key:t.id,value:t.code,label:`${t.code} ${t.name||""}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"区域"},{default:a(()=>[l(g,{modelValue:m.zoneCode,"onUpdate:modelValue":e[8]||(e[8]=t=>m.zoneCode=t),placeholder:"选择库区(可空)",clearable:"",style:{width:"100%"}},{default:a(()=>[(i(!0),k(N,null,q(U.value,t=>(i(),x(p,{key:t.id,value:t.zoneCode,label:`${t.zoneCode} ${t.zoneName||""}`},null,8,["value","label"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(r,{label:"扫码录入"},{default:a(()=>[y("div",me,[l(b,{modelValue:C.value,"onUpdate:modelValue":e[9]||(e[9]=t=>C.value=t),type:"textarea",rows:4,placeholder:"扫入或粘贴 SN,可用 逗号/分号/顿号/空格/回车 分隔,一次可录入多条"},null,8,["modelValue"]),l(V,{type:"primary",plain:"",style:{"margin-top":"6px"},disabled:!C.value.trim(),onClick:Q},{default:a(()=>[...e[13]||(e[13]=[c("录入到列表",-1)])]),_:1},8,["disabled"]),e[14]||(e[14]=y("span",{style:{"margin-left":"8px",color:"#909399","font-size":"12px"}},"点【录入到列表】加入下方清单,回车只是换行",-1))])]),_:1}),l(r,{label:"备注"},{default:a(()=>[l(b,{modelValue:m.remark,"onUpdate:modelValue":e[10]||(e[10]=t=>m.remark=t),type:"textarea",rows:2,placeholder:"本批 SN 的统一备注(可空)"},null,8,["modelValue"])]),_:1})]),_:1}),y("div",ce,[e[15]||(e[15]=c(" 已录入 ",-1)),y("b",null,$(d.value.length),1),e[16]||(e[16]=c(" 条 SN ",-1))]),l(P,{data:d.value.map((t,T)=>({i:T,v:t})),size:"small",border:"","max-height":"320","empty-text":"暂无 SN"},{default:a(()=>[l(v,{type:"index",label:"#",width:"56",align:"center"}),l(v,{prop:"v",label:"SN 序列号","min-width":"220"}),l(v,{label:"操作",width:"80",align:"center"},{default:a(({row:t})=>[l(V,{link:"",type:"danger",size:"small",onClick:T=>W(t.i)},{default:a(()=>[...e[17]||(e[17]=[c("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"]),y("div",fe,[l(V,{type:"primary",loading:F.value,onClick:X},{default:a(()=>[...e[18]||(e[18]=[c("提交入库",-1)])]),_:1},8,["loading"]),l(V,{onClick:e[11]||(e[11]=t=>d.value=[])},{default:a(()=>[...e[19]||(e[19]=[c("清空列表",-1)])]),_:1})])]),_:1},8,["label"]),l(B,{label:"Excel 导入"},{default:a(()=>[l(M,{type:"info",closable:!1,title:"列头顺序(首行忽略):物料编码 | 批次号(可空自动生成) | 数量 | 生产日期 | 供应商 | 区域 | 备注",style:{"max-width":"760px","margin-bottom":"14px"}}),l(ae,{ref_key:"uploadRef",ref:h,drag:"",accept:".xlsx",limit:1,"auto-upload":!1,"on-change":Z,"on-exceed":ee},{default:a(()=>[...e[20]||(e[20]=[y("div",{class:"dropzone"},"将 .xlsx 文件拖到此处,或点击选择文件",-1)])]),_:1},512),y("div",be,[l(V,{type:"primary",loading:R.value,onClick:le},{default:a(()=>[...e[21]||(e[21]=[c("开始导入",-1)])]),_:1},8,["loading"])]),_.value?(i(),k(N,{key:0},[l(oe),y("h4",null,"导入结果:共 "+$(_.value.total)+" 行,成功 "+$(_.value.success)+" 行,失败 "+$(_.value.total-_.value.success)+" 行",1),l(P,{data:_.value.rows||[],size:"small",border:"","max-height":"360"},{default:a(()=>[l(v,{prop:"row",label:"行号",width:"70",align:"center"}),l(v,{prop:"materialCode",label:"物料编码","min-width":"140"}),l(v,{prop:"batchNo",label:"批次号","min-width":"160"}),l(v,{prop:"quantity",label:"数量",width:"90",align:"center"}),l(v,{label:"结果","min-width":"200"},{default:a(({row:t})=>[t.error?(i(),x(Y,{key:1,type:"danger",size:"small"},{default:a(()=>[c($(t.error),1)]),_:2},1024)):(i(),x(Y,{key:0,type:"success",size:"small"},{default:a(()=>[...e[22]||(e[22]=[c("成功",-1)])]),_:1}))]),_:1})]),_:1},8,["data"])],64)):G("",!0)]),_:1})]),_:1})]),_:1}),l(pe,{data:de(se)},null,8,["data"])],64)}}},we=re(ve,[["__scopeId","data-v-527961dc"]]);export{we as default};