Files
bj_power/bj_power_wms_client/web/static/assets/Outbound-fb2umd-H.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

8 lines
5.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
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 E,I as K,i as T,c as M,d as D,a as t,w as n,G as $,p as O,F as I,h as y,r as i,J as Z,o as m,K as j,e as P,f as b,L as R,t as h,M as U,E as v,g as G,N as H,m as J}from"./index-gIYCKXT9.js";import{r as k}from"./request-Dn-Ij3HI.js";import{a as L,P as W}from"./help-2sGNjKzn.js";const X={key:1,style:{color:"#67c23a"}},Y={__name:"Outbound",setup(ee){const N=G({orderNo:""}),x=K(),f=y(""),w=y(!1),V=y(!1),_=y([]),B=y([]);T(async()=>{try{const e=await k.get("/orders",{params:{page:1,pageSize:200}});B.value=Array.isArray(e)?e:(e==null?void 0:e.list)||[]}catch{B.value=[]}});const F=J(()=>_.value.filter(e=>e.status!=="领料完结"));function q(e){return Math.max((e.totalQty||0)-(e.outQty||0),0)}async function Q(e){const l=q(e);if(l<=0)return;const d=await k.get("/stock/query",{params:{type:"batch",materialCode:e.materialCode,page:1,pageSize:200}}),p=((d==null?void 0:d.batch)||[]).filter(a=>a.qualityStatus==="合格"&&a.zoneCode==="Z02").sort((a,r)=>String(a.batchNo).localeCompare(String(r.batchNo))),c=[];let u=l;for(const a of p){if(u<=0)break;const r=(a.quantity||0)-(a.lockedQty||0);if(r<=0)continue;const o=Math.min(r,u);c.push({batchNo:a.batchNo,qty:o,zoneCode:a.zoneCode}),u-=o}if(!c.length){v.warning(`物料 ${e.materialCode} 在合格区(Z02)无可用批次库存`);return}if(u>0){v.error(`可用量不足:缺口 ${l}Z02 仅可凑 ${l-u},还差 ${u}`);return}const C=c.map(a=>`· 批次 ${a.batchNo} 出库 ${a.qty}`).join(`
`);await H.confirm(`工单 ${e.orderNo} 物料 ${e.materialCode}
缺口 ${l},按 FIFO 分配如下:
${C}
操作人:${x}${f.value?`
目标口:${f.value}`:""}`,"确认自动分配出库",{type:"warning",confirmButtonText:"确认出库",cancelButtonText:"取消"});const s=[];let g="";for(const a of c){const r=await k.post("/outbound/create",{orderNo:e.orderNo,materialCode:e.materialCode,batchNo:a.batchNo,qty:a.qty,operator:x,targetDock:f.value.trim()||void 0});r!=null&&r.outboundNo&&s.push(r.outboundNo),g=(r==null?void 0:r.status)||g}const S=g==="领料完结";v.success(`出库完成:出库单号 ${s.join("、")};该物料${S?"已":"未"}领料完结`),await z()}function A(e){return e==="领料完结"?"success":e==="进行中"?"primary":"info"}async function z(){if(!N.orderNo.trim()){v.warning("请输入工单号");return}w.value=!0;try{const e=await k.get("/ledger/query",{params:{orderNo:N.orderNo.trim(),page:1,pageSize:100}});_.value=(e==null?void 0:e.list)||[],V.value=!0,_.value.length||v.info("该工单暂无台账记录")}finally{w.value=!1}}return(e,l)=>{const d=i("el-input"),p=i("el-form-item"),c=i("el-button"),u=i("el-form"),C=i("el-card"),s=i("el-table-column"),g=i("el-tag"),S=i("el-table"),a=i("el-empty"),r=Z("loading");return m(),M(I,null,[D("div",null,[t(C,{shadow:"never",class:"mb12"},{default:n(()=>[t(u,{inline:"","label-width":"90px",onSubmit:l[2]||(l[2]=j(()=>{},["prevent"]))},{default:n(()=>[t(p,{label:"工单号"},{default:n(()=>[t(d,{modelValue:N.orderNo,"onUpdate:modelValue":l[0]||(l[0]=o=>N.orderNo=o),placeholder:"输入工单号回车查询",clearable:"",autofocus:"",style:{width:"260px"},onKeyup:P(z,["enter"])},null,8,["modelValue"])]),_:1}),t(p,{label:"操作人"},{default:n(()=>[t(d,{"model-value":O(x),disabled:"",style:{width:"160px"}},null,8,["model-value"])]),_:1}),t(p,{label:"目标工位"},{default:n(()=>[t(d,{modelValue:f.value,"onUpdate:modelValue":l[1]||(l[1]=o=>f.value=o),placeholder:"可选,如 DOCK-A",clearable:"",style:{width:"180px"}},null,8,["modelValue"])]),_:1}),t(p,null,{default:n(()=>[t(c,{type:"primary",loading:w.value,onClick:z},{default:n(()=>[...l[3]||(l[3]=[b("查询备料台账",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1}),V.value?(m(),$(C,{key:0,shadow:"never"},{header:n(()=>[b(" 台账明细(共 "+h(_.value.length)+" 行,待补 "+h(F.value.length)+" 行) ",1)]),default:n(()=>[R((m(),$(S,{data:_.value,border:""},{default:n(()=>[t(s,{prop:"orderNo",label:"工单号","min-width":"140"}),t(s,{prop:"materialCode",label:"物料编码","min-width":"150"}),t(s,{prop:"materialName",label:"物料名称","min-width":"140"},{default:n(({row:o})=>[b(h(o.materialName||"-"),1)]),_:1}),t(s,{prop:"totalQty",label:"需求总量",width:"100",align:"center"}),t(s,{prop:"outQty",label:"已出库",width:"90",align:"center"}),t(s,{label:"缺口",width:"90",align:"center"},{default:n(({row:o})=>[D("span",{class:U({gap:q(o)>0})},h(q(o)),3)]),_:1}),t(s,{label:"状态",width:"110",align:"center"},{default:n(({row:o})=>[t(g,{type:A(o.status),size:"small"},{default:n(()=>[b(h(o.status),1)]),_:2},1032,["type"])]),_:1}),t(s,{label:"操作",width:"140",align:"center"},{default:n(({row:o})=>[o.status!=="领料完结"?(m(),$(c,{key:0,type:"primary",size:"small",onClick:te=>Q(o)},{default:n(()=>[...l[4]||(l[4]=[b("一键分配出库",-1)])]),_:1},8,["onClick"])):(m(),M("span",X,"已完结"))]),_:1})]),_:1},8,["data"])),[[r,w.value]])]),_:1})):(m(),$(a,{key:1,description:"请先按工单号查询备料台账"}))]),t(W,{data:O(L)},null,8,["data"])],64)}}},ne=E(Y,[["__scopeId","data-v-3f1b75c7"]]);export{ne as default};