build: 更新生产构建的静态资源文件
更新了index.html引入的资源哈希文件名,替换了旧的业务模块js文件,删除了过期的静态资源包
This commit is contained in:
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
import{_ as C,i as B,c as s,a as t,w as a,r as o,h as _,u as D,o as l,F as u,k as p,d as n,t as c,p as f,q as N,v as S,x as I,y as T,z as V,A as q,B as h,C as z,D as F,G as Q,H as A,f as E}from"./index-gIYCKXT9.js";import{r as G}from"./request-Dn-Ij3HI.js";import{f as H}from"./format-C9Ok6skr.js";const L={class:"kpi-label"},M={class:"kpi-value"},R={class:"entries"},$={__name:"Dashboard",setup(j){const k=D(),i=_({}),r=_(!1);async function m(){i.value=await G.get("/display/overview"),r.value=!0}B(m);const y=[{key:"totalQty",label:"在库总量"},{key:"lockedQty",label:"锁定量"},{key:"snInStock",label:"SN 在库数"},{key:"semiInStock",label:"半成品在库"},{key:"packageCount",label:"包装箱数"},{key:"batchCount",label:"批次数"},{key:"inToday",label:"今日入库单"},{key:"outToday",label:"今日出库单"}],v=[{path:"/inbound",title:"入库管理",icon:N},{path:"/outbound",title:"备料出库",icon:S},{path:"/inventory",title:"库存查询",icon:I},{path:"/inspection",title:"质量检验",icon:T},{path:"/stocktake",title:"库存盘点",icon:V},{path:"/semi",title:"半成品/成品",icon:q},{path:"/package",title:"包装绑定",icon:h},{path:"/ledger",title:"备料台账",icon:h},{path:"/base-data",title:"基础数据",icon:z},{path:"/display",title:"免登录大屏",icon:F}];return(J,K)=>{const d=o("el-card"),b=o("el-col"),g=o("el-row"),w=o("el-icon"),x=o("el-button");return l(),s("div",null,[t(g,{gutter:12},{default:a(()=>[(l(),s(u,null,p(y,e=>t(b,{key:e.key,xs:12,sm:8,md:6,style:{"margin-bottom":"12px"}},{default:a(()=>[t(d,{shadow:"hover"},{default:a(()=>[n("div",L,c(e.label),1),n("div",M,c(r.value?f(H)(i.value[e.key]):"—"),1)]),_:2},1024)]),_:2},1024)),64))]),_:1}),t(d,{shadow:"never",header:"快捷入口"},{default:a(()=>[n("div",R,[(l(),s(u,null,p(v,e=>t(x,{key:e.path,size:"large",onClick:O=>f(k).push(e.path)},{default:a(()=>[t(w,{style:{"margin-right":"6px"}},{default:a(()=>[(l(),Q(A(e.icon)))]),_:2},1024),E(c(e.title),1)]),_:2},1032,["onClick"])),64))])]),_:1})])}}},X=C($,[["__scopeId","data-v-483d2fd9"]]);export{X as default};
|
||||
import{_ as C,i as B,c as s,a as t,w as a,r as o,h as _,u as D,o as l,F as u,k as p,d as n,t as c,p as f,q as N,v as S,x as I,y as T,z as V,A as q,B as h,C as z,D as F,G as Q,H as A,f as E}from"./index-C_gZ2k2u.js";import{r as G}from"./request-DwGAFJaQ.js";import{f as H}from"./format-C9Ok6skr.js";const L={class:"kpi-label"},M={class:"kpi-value"},R={class:"entries"},$={__name:"Dashboard",setup(j){const k=D(),i=_({}),r=_(!1);async function m(){i.value=await G.get("/display/overview"),r.value=!0}B(m);const y=[{key:"totalQty",label:"在库总量"},{key:"lockedQty",label:"锁定量"},{key:"snInStock",label:"SN 在库数"},{key:"semiInStock",label:"半成品在库"},{key:"packageCount",label:"包装箱数"},{key:"batchCount",label:"批次数"},{key:"inToday",label:"今日入库单"},{key:"outToday",label:"今日出库单"}],v=[{path:"/inbound",title:"入库管理",icon:N},{path:"/outbound",title:"备料出库",icon:S},{path:"/inventory",title:"库存查询",icon:I},{path:"/inspection",title:"质量检验",icon:T},{path:"/stocktake",title:"库存盘点",icon:V},{path:"/semi",title:"半成品/成品",icon:q},{path:"/package",title:"包装绑定",icon:h},{path:"/ledger",title:"备料台账",icon:h},{path:"/base-data",title:"基础数据",icon:z},{path:"/display",title:"免登录大屏",icon:F}];return(J,K)=>{const d=o("el-card"),b=o("el-col"),g=o("el-row"),w=o("el-icon"),x=o("el-button");return l(),s("div",null,[t(g,{gutter:12},{default:a(()=>[(l(),s(u,null,p(y,e=>t(b,{key:e.key,xs:12,sm:8,md:6,style:{"margin-bottom":"12px"}},{default:a(()=>[t(d,{shadow:"hover"},{default:a(()=>[n("div",L,c(e.label),1),n("div",M,c(r.value?f(H)(i.value[e.key]):"—"),1)]),_:2},1024)]),_:2},1024)),64))]),_:1}),t(d,{shadow:"never",header:"快捷入口"},{default:a(()=>[n("div",R,[(l(),s(u,null,p(v,e=>t(x,{key:e.path,size:"large",onClick:O=>f(k).push(e.path)},{default:a(()=>[t(w,{style:{"margin-right":"6px"}},{default:a(()=>[(l(),Q(A(e.icon)))]),_:2},1024),E(c(e.title),1)]),_:2},1032,["onClick"])),64))])]),_:1})])}}},X=C($,[["__scopeId","data-v-483d2fd9"]]);export{X as default};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{r as w}from"./request-Dn-Ij3HI.js";import{f as o}from"./format-C9Ok6skr.js";import{_ as S,i as z,j as I,c as i,d as t,t as n,F as _,k,l as q,h,m as r,o as c,n as D}from"./index-gIYCKXT9.js";const $={class:"screen"},N={class:"head"},T={class:"side right"},x={class:"date"},M={class:"time"},Q={class:"kpi-grid"},B={class:"kpi-value"},C={class:"kpi-label"},j={class:"zones"},F={class:"zone-list"},L={class:"zone-name"},O={class:"bar-wrap"},V={class:"zone-qty"},E={key:0,class:"empty"},H={__name:"Display",setup(U){const v=h(new Date);let y=null,m=null;const l=h({}),g=r(()=>{const a=Object.values(u.value).map(e=>Number(e.qty)||0);return Math.max(...a,1)}),u=r(()=>{const a=l.value.zoneDetail||{};return Object.entries(a).map(([e,s])=>({zone:e,qty:Number(s)||0})).sort((e,s)=>s.qty-e.qty)}),b=r(()=>[{key:"totalQty",label:"在库总量",value:o(l.value.totalQty)},{key:"lockedQty",label:"锁定量",value:o(l.value.lockedQty)},{key:"snInStock",label:"SN 在库",value:o(l.value.snInStock)},{key:"semiInStock",label:"半成品在库",value:o(l.value.semiInStock)},{key:"packageCount",label:"包装箱数",value:o(l.value.packageCount)},{key:"inToday",label:"今日入库单",value:o(l.value.inToday)},{key:"outToday",label:"今日出库单",value:o(l.value.outToday)}]),f=["周日","周一","周二","周三","周四","周五","周六"],d=r(()=>{const a=v.value,e=s=>String(s).padStart(2,"0");return{date:`${a.getFullYear()}-${e(a.getMonth()+1)}-${e(a.getDate())}`,time:`${e(a.getHours())}:${e(a.getMinutes())}:${e(a.getSeconds())}`,week:`星期${f[a.getDay()].replace("周","")}`}});async function p(){try{l.value=await w.get("/display/overview")}catch{}}return z(()=>{y=setInterval(()=>{v.value=new Date},1e3),p(),m=setInterval(p,5e3)}),I(()=>{clearInterval(y),clearInterval(m)}),(a,e)=>(c(),i("div",$,[t("header",N,[e[0]||(e[0]=t("div",{class:"side left"},"库房监控",-1)),e[1]||(e[1]=t("h1",{class:"title"},"库存动态大屏",-1)),t("div",T,[t("span",x,n(d.value.date),1),t("span",M,n(d.value.time),1),t("span",null,n(d.value.week),1)])]),t("section",Q,[(c(!0),i(_,null,k(b.value,s=>(c(),i("div",{key:s.key,class:"kpi"},[t("div",B,n(s.value),1),t("div",C,n(s.label),1)]))),128))]),t("section",j,[e[2]||(e[2]=t("div",{class:"zone-title"},"区域明细(区域 / 质量状态)",-1)),t("div",F,[(c(!0),i(_,null,k(u.value,s=>(c(),i("div",{key:s.zone,class:"zone-row"},[t("div",L,n(s.zone),1),t("div",O,[t("div",{class:"bar",style:D({width:`${s.qty/g.value*100}%`})},null,4)]),t("div",V,n(s.qty.toLocaleString("zh-CN")),1)]))),128)),u.value.length?q("",!0):(c(),i("div",E,"暂无区域数据…"))])]),e[3]||(e[3]=t("footer",{class:"foot"},"数据来源:WMS 后端 · 每 5 秒自动刷新",-1))]))}},A=S(H,[["__scopeId","data-v-e0ddabf0"]]);export{A as default};
|
||||
import{r as w}from"./request-DwGAFJaQ.js";import{f as o}from"./format-C9Ok6skr.js";import{_ as S,i as z,j as I,c as i,d as t,t as n,F as _,k,l as q,h,m as r,o as c,n as D}from"./index-C_gZ2k2u.js";const $={class:"screen"},N={class:"head"},T={class:"side right"},x={class:"date"},M={class:"time"},Q={class:"kpi-grid"},B={class:"kpi-value"},C={class:"kpi-label"},j={class:"zones"},F={class:"zone-list"},L={class:"zone-name"},O={class:"bar-wrap"},V={class:"zone-qty"},E={key:0,class:"empty"},H={__name:"Display",setup(U){const v=h(new Date);let y=null,m=null;const l=h({}),g=r(()=>{const a=Object.values(u.value).map(e=>Number(e.qty)||0);return Math.max(...a,1)}),u=r(()=>{const a=l.value.zoneDetail||{};return Object.entries(a).map(([e,s])=>({zone:e,qty:Number(s)||0})).sort((e,s)=>s.qty-e.qty)}),b=r(()=>[{key:"totalQty",label:"在库总量",value:o(l.value.totalQty)},{key:"lockedQty",label:"锁定量",value:o(l.value.lockedQty)},{key:"snInStock",label:"SN 在库",value:o(l.value.snInStock)},{key:"semiInStock",label:"半成品在库",value:o(l.value.semiInStock)},{key:"packageCount",label:"包装箱数",value:o(l.value.packageCount)},{key:"inToday",label:"今日入库单",value:o(l.value.inToday)},{key:"outToday",label:"今日出库单",value:o(l.value.outToday)}]),f=["周日","周一","周二","周三","周四","周五","周六"],d=r(()=>{const a=v.value,e=s=>String(s).padStart(2,"0");return{date:`${a.getFullYear()}-${e(a.getMonth()+1)}-${e(a.getDate())}`,time:`${e(a.getHours())}:${e(a.getMinutes())}:${e(a.getSeconds())}`,week:`星期${f[a.getDay()].replace("周","")}`}});async function p(){try{l.value=await w.get("/display/overview")}catch{}}return z(()=>{y=setInterval(()=>{v.value=new Date},1e3),p(),m=setInterval(p,5e3)}),I(()=>{clearInterval(y),clearInterval(m)}),(a,e)=>(c(),i("div",$,[t("header",N,[e[0]||(e[0]=t("div",{class:"side left"},"库房监控",-1)),e[1]||(e[1]=t("h1",{class:"title"},"库存动态大屏",-1)),t("div",T,[t("span",x,n(d.value.date),1),t("span",M,n(d.value.time),1),t("span",null,n(d.value.week),1)])]),t("section",Q,[(c(!0),i(_,null,k(b.value,s=>(c(),i("div",{key:s.key,class:"kpi"},[t("div",B,n(s.value),1),t("div",C,n(s.label),1)]))),128))]),t("section",j,[e[2]||(e[2]=t("div",{class:"zone-title"},"区域明细(区域 / 质量状态)",-1)),t("div",F,[(c(!0),i(_,null,k(u.value,s=>(c(),i("div",{key:s.zone,class:"zone-row"},[t("div",L,n(s.zone),1),t("div",O,[t("div",{class:"bar",style:D({width:`${s.qty/g.value*100}%`})},null,4)]),t("div",V,n(s.qty.toLocaleString("zh-CN")),1)]))),128)),u.value.length?q("",!0):(c(),i("div",E,"暂无区域数据…"))])]),e[3]||(e[3]=t("footer",{class:"foot"},"数据来源:WMS 后端 · 每 5 秒自动刷新",-1))]))}},A=S(H,[["__scopeId","data-v-e0ddabf0"]]);export{A as default};
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
import{_ as U,h as s,I as $,i as A,O as C,c as E,a as t,w as l,p as R,F,r as n,o as K,f as u,e as M,d as P,t as q,E as p}from"./index-gIYCKXT9.js";import{r as I}from"./request-Dn-Ij3HI.js";import{c as D,P as O}from"./help-2sGNjKzn.js";const j={class:"tip"},z={__name:"Inspection",setup(G){const i=s("BATCH"),f=s("合格"),d=s($()),_=s(),v=s(""),g=s(!1);A(()=>C(()=>{var a;return(a=_.value)==null?void 0:a.focus()}));async function V(){const a=v.value.trim();if(!a){p.warning("请扫入或输入目标编号");return}if(!d.value.trim()){p.warning("请填写检验员");return}g.value=!0;try{await I.post("/inspection/create",{targetType:i.value,targetId:a,status:f.value,inspector:d.value.trim()}),p.success(`检验已记录:${i.value} ${a} → ${f.value}`),v.value="",C(()=>{var e;return(e=_.value)==null?void 0:e.focus()})}finally{g.value=!1}}const m=s(""),c=s(!1);function N(){return[...new Set(String(m.value).split(/\s+/).map(a=>a.trim()).filter(Boolean))]}async function S(){const a=N();if(!a.length){p.warning("请录入待检编号(每行一个)");return}if(!d.value.trim()){p.warning("请填写检验员");return}c.value=!0;try{const e=await I.post("/inspection/batch-flip",{targetType:i.value,targetIds:a,status:f.value,inspector:d.value.trim()});p.success(`批量检验完成:共处理 ${(e==null?void 0:e.flipped)??a.length} 条`),m.value=""}finally{c.value=!1}}return(a,e)=>{const w=n("el-radio-button"),x=n("el-radio-group"),r=n("el-form-item"),T=n("el-radio"),y=n("el-input"),B=n("el-divider"),b=n("el-button"),k=n("el-form"),H=n("el-card");return K(),E(F,null,[t(H,{shadow:"never",style:{"max-width":"760px",margin:"0 auto"}},{default:l(()=>[t(k,{"label-width":"110px"},{default:l(()=>[t(r,{label:"目标类型"},{default:l(()=>[t(x,{modelValue:i.value,"onUpdate:modelValue":e[0]||(e[0]=o=>i.value=o)},{default:l(()=>[t(w,{value:"BATCH"},{default:l(()=>[...e[6]||(e[6]=[u("批次 BATCH",-1)])]),_:1}),t(w,{value:"SN"},{default:l(()=>[...e[7]||(e[7]=[u("序列号 SN",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"检验结论"},{default:l(()=>[t(x,{modelValue:f.value,"onUpdate:modelValue":e[1]||(e[1]=o=>f.value=o)},{default:l(()=>[t(T,{value:"合格"},{default:l(()=>[...e[8]||(e[8]=[u("合格",-1)])]),_:1}),t(T,{value:"不合格"},{default:l(()=>[...e[9]||(e[9]=[u("不合格",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"检验员"},{default:l(()=>[t(y,{modelValue:d.value,"onUpdate:modelValue":e[2]||(e[2]=o=>d.value=o),placeholder:"检验员姓名",clearable:"",style:{width:"260px"}},null,8,["modelValue"])]),_:1}),t(B,{"content-position":"left"},{default:l(()=>[...e[10]||(e[10]=[u("单个录入(扫码)",-1)])]),_:1}),t(r,{label:"扫码输入"},{default:l(()=>[t(y,{ref_key:"scanRef",ref:_,modelValue:v.value,"onUpdate:modelValue":e[3]||(e[3]=o=>v.value=o),autofocus:"",clearable:"",placeholder:"扫入批次号或 SN,回车提交",style:{width:"420px"},onKeyup:M(V,["enter"])},null,8,["modelValue"]),P("span",j,"当前目标:"+q(i.value==="BATCH"?"批次号":"SN 序列号"),1)]),_:1}),t(r,null,{default:l(()=>[t(b,{type:"primary",loading:g.value,onClick:V},{default:l(()=>[...e[11]||(e[11]=[u("提交检验",-1)])]),_:1},8,["loading"])]),_:1}),t(B,{"content-position":"left"},{default:l(()=>[...e[12]||(e[12]=[u("批量翻转",-1)])]),_:1}),t(r,{label:"批量编号"},{default:l(()=>[t(y,{modelValue:m.value,"onUpdate:modelValue":e[4]||(e[4]=o=>m.value=o),type:"textarea",rows:6,placeholder:"每行一个编号,支持扫码枪连续录入"},null,8,["modelValue"])]),_:1}),t(r,null,{default:l(()=>[t(b,{type:"primary",loading:c.value,onClick:S},{default:l(()=>[...e[13]||(e[13]=[u("批量提交",-1)])]),_:1},8,["loading"]),t(b,{onClick:e[5]||(e[5]=o=>m.value="")},{default:l(()=>[...e[14]||(e[14]=[u("清空",-1)])]),_:1})]),_:1})]),_:1})]),_:1}),t(O,{data:R(D)},null,8,["data"])],64)}}},W=U(z,[["__scopeId","data-v-c4d8daa0"]]);export{W as default};
|
||||
import{_ as U,h as s,I as $,i as A,O as C,c as E,a as t,w as l,p as R,F,r as n,o as K,f as u,e as M,d as P,t as q,E as p}from"./index-C_gZ2k2u.js";import{r as I}from"./request-DwGAFJaQ.js";import{c as D,P as O}from"./help-BKBuziS-.js";const j={class:"tip"},z={__name:"Inspection",setup(G){const i=s("BATCH"),f=s("合格"),d=s($()),_=s(),v=s(""),g=s(!1);A(()=>C(()=>{var a;return(a=_.value)==null?void 0:a.focus()}));async function V(){const a=v.value.trim();if(!a){p.warning("请扫入或输入目标编号");return}if(!d.value.trim()){p.warning("请填写检验员");return}g.value=!0;try{await I.post("/inspection/create",{targetType:i.value,targetId:a,status:f.value,inspector:d.value.trim()}),p.success(`检验已记录:${i.value} ${a} → ${f.value}`),v.value="",C(()=>{var e;return(e=_.value)==null?void 0:e.focus()})}finally{g.value=!1}}const m=s(""),c=s(!1);function N(){return[...new Set(String(m.value).split(/\s+/).map(a=>a.trim()).filter(Boolean))]}async function S(){const a=N();if(!a.length){p.warning("请录入待检编号(每行一个)");return}if(!d.value.trim()){p.warning("请填写检验员");return}c.value=!0;try{const e=await I.post("/inspection/batch-flip",{targetType:i.value,targetIds:a,status:f.value,inspector:d.value.trim()});p.success(`批量检验完成:共处理 ${(e==null?void 0:e.flipped)??a.length} 条`),m.value=""}finally{c.value=!1}}return(a,e)=>{const w=n("el-radio-button"),x=n("el-radio-group"),r=n("el-form-item"),T=n("el-radio"),y=n("el-input"),B=n("el-divider"),b=n("el-button"),k=n("el-form"),H=n("el-card");return K(),E(F,null,[t(H,{shadow:"never",style:{"max-width":"760px",margin:"0 auto"}},{default:l(()=>[t(k,{"label-width":"110px"},{default:l(()=>[t(r,{label:"目标类型"},{default:l(()=>[t(x,{modelValue:i.value,"onUpdate:modelValue":e[0]||(e[0]=o=>i.value=o)},{default:l(()=>[t(w,{value:"BATCH"},{default:l(()=>[...e[6]||(e[6]=[u("批次 BATCH",-1)])]),_:1}),t(w,{value:"SN"},{default:l(()=>[...e[7]||(e[7]=[u("序列号 SN",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"检验结论"},{default:l(()=>[t(x,{modelValue:f.value,"onUpdate:modelValue":e[1]||(e[1]=o=>f.value=o)},{default:l(()=>[t(T,{value:"合格"},{default:l(()=>[...e[8]||(e[8]=[u("合格",-1)])]),_:1}),t(T,{value:"不合格"},{default:l(()=>[...e[9]||(e[9]=[u("不合格",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(r,{label:"检验员"},{default:l(()=>[t(y,{modelValue:d.value,"onUpdate:modelValue":e[2]||(e[2]=o=>d.value=o),placeholder:"检验员姓名",clearable:"",style:{width:"260px"}},null,8,["modelValue"])]),_:1}),t(B,{"content-position":"left"},{default:l(()=>[...e[10]||(e[10]=[u("单个录入(扫码)",-1)])]),_:1}),t(r,{label:"扫码输入"},{default:l(()=>[t(y,{ref_key:"scanRef",ref:_,modelValue:v.value,"onUpdate:modelValue":e[3]||(e[3]=o=>v.value=o),autofocus:"",clearable:"",placeholder:"扫入批次号或 SN,回车提交",style:{width:"420px"},onKeyup:M(V,["enter"])},null,8,["modelValue"]),P("span",j,"当前目标:"+q(i.value==="BATCH"?"批次号":"SN 序列号"),1)]),_:1}),t(r,null,{default:l(()=>[t(b,{type:"primary",loading:g.value,onClick:V},{default:l(()=>[...e[11]||(e[11]=[u("提交检验",-1)])]),_:1},8,["loading"])]),_:1}),t(B,{"content-position":"left"},{default:l(()=>[...e[12]||(e[12]=[u("批量翻转",-1)])]),_:1}),t(r,{label:"批量编号"},{default:l(()=>[t(y,{modelValue:m.value,"onUpdate:modelValue":e[4]||(e[4]=o=>m.value=o),type:"textarea",rows:6,placeholder:"每行一个编号,支持扫码枪连续录入"},null,8,["modelValue"])]),_:1}),t(r,null,{default:l(()=>[t(b,{type:"primary",loading:c.value,onClick:S},{default:l(()=>[...e[13]||(e[13]=[u("批量提交",-1)])]),_:1},8,["loading"]),t(b,{onClick:e[5]||(e[5]=o=>m.value="")},{default:l(()=>[...e[14]||(e[14]=[u("清空",-1)])]),_:1})]),_:1})]),_:1})]),_:1}),t(O,{data:R(D)},null,8,["data"])],64)}}},W=U(z,[["__scopeId","data-v-c4d8daa0"]]);export{W as default};
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1 +1 @@
|
||||
import{_ as K,c as S,d as x,a as e,w as a,G as g,p as F,F as M,r as o,h as u,J as P,o as _,K as T,e as E,f as c,L as G,t as p,g as H}from"./index-gIYCKXT9.js";import{r as I}from"./request-Dn-Ij3HI.js";import{g as J,P as O}from"./help-2sGNjKzn.js";const U={class:"pager"},j={__name:"Ledger",setup(A){const i=u(""),d=u(!1),v=u(!1),y=u([]),m=u(0),r=H({current:1,size:20});function N(t){return Math.max((t.totalQty||0)-(t.outQty||0),0)}async function b(){if(i.value.trim()){d.value=!0;try{const t=await I.get("/ledger/query",{params:{orderNo:i.value.trim(),page:r.current,pageSize:r.size}});y.value=(t==null?void 0:t.list)||[],m.value=(t==null?void 0:t.total)||0,v.value=!0}finally{d.value=!1}}}function f(){r.current=1,b()}function k(t){return t==="领料完结"?"success":t==="进行中"?"primary":"info"}return(t,s)=>{const z=o("el-input"),h=o("el-form-item"),C=o("el-button"),V=o("el-form"),w=o("el-card"),n=o("el-table-column"),B=o("el-tag"),L=o("el-table"),Q=o("el-pagination"),q=o("el-empty"),D=P("loading");return _(),S(M,null,[x("div",null,[e(w,{shadow:"never",class:"mb12"},{default:a(()=>[e(V,{inline:"",onSubmit:T(f,["prevent"])},{default:a(()=>[e(h,{label:"工单号"},{default:a(()=>[e(z,{modelValue:i.value,"onUpdate:modelValue":s[0]||(s[0]=l=>i.value=l),placeholder:"输入工单号查询物料台账",clearable:"",autofocus:"",style:{width:"280px"},onKeyup:E(f,["enter"])},null,8,["modelValue"])]),_:1}),e(h,null,{default:a(()=>[e(C,{type:"primary",loading:d.value,onClick:f},{default:a(()=>[...s[2]||(s[2]=[c("查询",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1}),v.value?(_(),g(w,{key:0,shadow:"never"},{header:a(()=>[c("工单 "+p(i.value)+" 备料台账(共 "+p(m.value)+" 条)",1)]),default:a(()=>[G((_(),g(L,{data:y.value,border:"","empty-text":"暂无台账数据"},{default:a(()=>[e(n,{prop:"orderNo",label:"工单号","min-width":"140"}),e(n,{prop:"materialCode",label:"物料编码","min-width":"150"}),e(n,{prop:"materialName",label:"物料名称","min-width":"150"},{default:a(({row:l})=>[c(p(l.materialName||"-"),1)]),_:1}),e(n,{prop:"totalQty",label:"需求总量",width:"100",align:"center"}),e(n,{prop:"outQty",label:"已出库",width:"90",align:"center"}),e(n,{label:"缺口",width:"90",align:"center"},{default:a(({row:l})=>[c(p(N(l)),1)]),_:1}),e(n,{label:"状态",width:"110",align:"center"},{default:a(({row:l})=>[e(B,{type:k(l.status),size:"small"},{default:a(()=>[c(p(l.status),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])),[[D,d.value]]),x("div",U,[e(Q,{background:"",layout:"total, prev, pager, next",total:m.value,"current-page":r.current,"page-size":r.size,onCurrentChange:s[1]||(s[1]=l=>{r.current=l,b()})},null,8,["total","current-page","page-size"])])]),_:1})):(_(),g(q,{key:1,description:"请输入工单号查询"}))]),e(O,{data:F(J)},null,8,["data"])],64)}}},Y=K(j,[["__scopeId","data-v-0a6b9e76"]]);export{Y as default};
|
||||
import{_ as K,c as S,d as x,a as e,w as a,G as g,p as F,F as M,r as o,h as u,J as P,o as _,K as T,e as E,f as c,L as G,t as p,g as H}from"./index-C_gZ2k2u.js";import{r as I}from"./request-DwGAFJaQ.js";import{g as J,P as O}from"./help-BKBuziS-.js";const U={class:"pager"},j={__name:"Ledger",setup(A){const i=u(""),d=u(!1),v=u(!1),y=u([]),m=u(0),r=H({current:1,size:20});function N(t){return Math.max((t.totalQty||0)-(t.outQty||0),0)}async function b(){if(i.value.trim()){d.value=!0;try{const t=await I.get("/ledger/query",{params:{orderNo:i.value.trim(),page:r.current,pageSize:r.size}});y.value=(t==null?void 0:t.list)||[],m.value=(t==null?void 0:t.total)||0,v.value=!0}finally{d.value=!1}}}function f(){r.current=1,b()}function k(t){return t==="领料完结"?"success":t==="进行中"?"primary":"info"}return(t,s)=>{const z=o("el-input"),h=o("el-form-item"),C=o("el-button"),V=o("el-form"),w=o("el-card"),n=o("el-table-column"),B=o("el-tag"),L=o("el-table"),Q=o("el-pagination"),q=o("el-empty"),D=P("loading");return _(),S(M,null,[x("div",null,[e(w,{shadow:"never",class:"mb12"},{default:a(()=>[e(V,{inline:"",onSubmit:T(f,["prevent"])},{default:a(()=>[e(h,{label:"工单号"},{default:a(()=>[e(z,{modelValue:i.value,"onUpdate:modelValue":s[0]||(s[0]=l=>i.value=l),placeholder:"输入工单号查询物料台账",clearable:"",autofocus:"",style:{width:"280px"},onKeyup:E(f,["enter"])},null,8,["modelValue"])]),_:1}),e(h,null,{default:a(()=>[e(C,{type:"primary",loading:d.value,onClick:f},{default:a(()=>[...s[2]||(s[2]=[c("查询",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1}),v.value?(_(),g(w,{key:0,shadow:"never"},{header:a(()=>[c("工单 "+p(i.value)+" 备料台账(共 "+p(m.value)+" 条)",1)]),default:a(()=>[G((_(),g(L,{data:y.value,border:"","empty-text":"暂无台账数据"},{default:a(()=>[e(n,{prop:"orderNo",label:"工单号","min-width":"140"}),e(n,{prop:"materialCode",label:"物料编码","min-width":"150"}),e(n,{prop:"materialName",label:"物料名称","min-width":"150"},{default:a(({row:l})=>[c(p(l.materialName||"-"),1)]),_:1}),e(n,{prop:"totalQty",label:"需求总量",width:"100",align:"center"}),e(n,{prop:"outQty",label:"已出库",width:"90",align:"center"}),e(n,{label:"缺口",width:"90",align:"center"},{default:a(({row:l})=>[c(p(N(l)),1)]),_:1}),e(n,{label:"状态",width:"110",align:"center"},{default:a(({row:l})=>[e(B,{type:k(l.status),size:"small"},{default:a(()=>[c(p(l.status),1)]),_:2},1032,["type"])]),_:1})]),_:1},8,["data"])),[[D,d.value]]),x("div",U,[e(Q,{background:"",layout:"total, prev, pager, next",total:m.value,"current-page":r.current,"page-size":r.size,onCurrentChange:s[1]||(s[1]=l=>{r.current=l,b()})},null,8,["total","current-page","page-size"])])]),_:1})):(_(),g(q,{key:1,description:"请输入工单号查询"}))]),e(O,{data:F(J)},null,8,["data"])],64)}}},Y=K(j,[["__scopeId","data-v-0a6b9e76"]]);export{Y as default};
|
||||
+1
-1
@@ -1 +1 @@
|
||||
import{_ as v,c as V,a as s,w as r,r as a,u as k,b as h,o as x,d as u,e as q,f as E,s as R,E as B,g as C,h as c}from"./index-gIYCKXT9.js";import{r as N}from"./request-Dn-Ij3HI.js";const S={class:"login-page"},K={__name:"Login",setup(L){const f=k(),_=h(),d=c(),l=c(!1),o=C({username:"",password:""}),g={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}]};async function p(){await d.value.validate(),l.value=!0;try{const t=await N.post("/auth/login",{username:o.username,password:o.password});if(!(t!=null&&t.token))throw new Error("登录响应缺少 token");R(t.token,t.user||{}),B.success("登录成功");const e=_.query.redirect;f.push(e&&typeof e=="string"?e:"/")}finally{l.value=!1}}return(t,e)=>{const m=a("el-input"),i=a("el-form-item"),w=a("el-button"),b=a("el-form"),y=a("el-card");return x(),V("div",S,[s(y,{class:"card"},{default:r(()=>[e[3]||(e[3]=u("div",{class:"head"},[u("h2",null,"库房客户端"),u("p",null,"请使用 WMS 账号登录")],-1)),s(b,{ref_key:"formRef",ref:d,model:o,rules:g,"label-position":"top",onKeyup:q(p,["enter"])},{default:r(()=>[s(i,{label:"用户名",prop:"username"},{default:r(()=>[s(m,{modelValue:o.username,"onUpdate:modelValue":e[0]||(e[0]=n=>o.username=n),placeholder:"用户名",autofocus:""},null,8,["modelValue"])]),_:1}),s(i,{label:"密码",prop:"password"},{default:r(()=>[s(m,{modelValue:o.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.password=n),type:"password","show-password":"",placeholder:"密码"},null,8,["modelValue"])]),_:1}),s(w,{type:"primary",class:"btn",loading:l.value,onClick:p},{default:r(()=>[...e[2]||(e[2]=[E("登 录",-1)])]),_:1},8,["loading"])]),_:1},8,["model"])]),_:1})])}}},I=v(K,[["__scopeId","data-v-1dbd5754"]]);export{I as default};
|
||||
import{_ as v,c as V,a as s,w as r,r as a,u as k,b as h,o as x,d as u,e as q,f as E,s as R,E as B,g as C,h as c}from"./index-C_gZ2k2u.js";import{r as N}from"./request-DwGAFJaQ.js";const S={class:"login-page"},K={__name:"Login",setup(L){const f=k(),_=h(),d=c(),l=c(!1),o=C({username:"",password:""}),g={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}]};async function p(){await d.value.validate(),l.value=!0;try{const t=await N.post("/auth/login",{username:o.username,password:o.password});if(!(t!=null&&t.token))throw new Error("登录响应缺少 token");R(t.token,t.user||{}),B.success("登录成功");const e=_.query.redirect;f.push(e&&typeof e=="string"?e:"/")}finally{l.value=!1}}return(t,e)=>{const m=a("el-input"),i=a("el-form-item"),w=a("el-button"),b=a("el-form"),y=a("el-card");return x(),V("div",S,[s(y,{class:"card"},{default:r(()=>[e[3]||(e[3]=u("div",{class:"head"},[u("h2",null,"库房客户端"),u("p",null,"请使用 WMS 账号登录")],-1)),s(b,{ref_key:"formRef",ref:d,model:o,rules:g,"label-position":"top",onKeyup:q(p,["enter"])},{default:r(()=>[s(i,{label:"用户名",prop:"username"},{default:r(()=>[s(m,{modelValue:o.username,"onUpdate:modelValue":e[0]||(e[0]=n=>o.username=n),placeholder:"用户名",autofocus:""},null,8,["modelValue"])]),_:1}),s(i,{label:"密码",prop:"password"},{default:r(()=>[s(m,{modelValue:o.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.password=n),type:"password","show-password":"",placeholder:"密码"},null,8,["modelValue"])]),_:1}),s(w,{type:"primary",class:"btn",loading:l.value,onClick:p},{default:r(()=>[...e[2]||(e[2]=[E("登 录",-1)])]),_:1},8,["loading"])]),_:1},8,["model"])]),_:1})])}}},I=v(K,[["__scopeId","data-v-1dbd5754"]]);export{I as default};
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
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(`
|
||||
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-C_gZ2k2u.js";import{r as k}from"./request-DwGAFJaQ.js";import{a as L,P as W}from"./help-BKBuziS-.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}
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,4 +1,4 @@
|
||||
import{_ as k,o,c as i,a as f,w as m,f as n,d as e,t,l as r,F as v,k as S,G as y,r as c,h as M}from"./index-gIYCKXT9.js";const E={class:"page-help"},x={class:"ph-inner"},C={class:"ph-banner"},Z={class:"ph-banner-title"},O={key:0,class:"ph-overview"},V={key:1,class:"ph-section"},T={class:"ph-fname"},B={class:"ph-fsource"},F={class:"ph-fpurpose"},I={class:"ph-ffill"},D={key:0,class:"ph-sec-title"},W={key:1,class:"ph-sec-overview"},H={class:"ph-fname"},P={class:"ph-fsource"},A={class:"ph-fpurpose"},G={class:"ph-ffill"},K={__name:"PageHelp",props:{data:{type:Object,default:()=>({title:"操作说明",overview:"",fields:[]})}},setup(s){const u=M(!1);function h(){u.value=!0}return(z,a)=>{const N=c("el-button"),w=c("el-tooltip"),_=c("el-empty"),g=c("el-drawer");return o(),i("div",E,[f(w,{content:"本页操作说明",placement:"left"},{default:m(()=>[f(N,{class:"help-fab",circle:"",onClick:h},{default:m(()=>[...a[1]||(a[1]=[n("?",-1)])]),_:1})]),_:1}),f(g,{modelValue:u.value,"onUpdate:modelValue":a[0]||(a[0]=l=>u.value=l),title:s.data.title||"操作说明",size:"520px","append-to-body":"",class:"ph-drawer"},{default:m(()=>[e("div",x,[e("div",C,[e("div",Z,t(s.data.title||"操作说明"),1),a[2]||(a[2]=e("div",{class:"ph-banner-sub"},"页面整体说明",-1))]),s.data.overview?(o(),i("div",O,t(s.data.overview),1)):r("",!0),a[3]||(a[3]=e("div",{class:"ph-legend"},[e("span",{class:"lg"},[e("i",{class:"ic lg-source"}),n("来源:这个字段从哪来、谁填")]),e("span",{class:"lg"},[e("i",{class:"ic lg-purpose"}),n("用途:它起什么作用")]),e("span",{class:"lg"},[e("i",{class:"ic lg-fill"}),n("怎么填:具体填什么")])],-1)),s.data.fields&&s.data.fields.length?(o(),i("div",V,[(o(!0),i(v,null,S(s.data.fields,(l,d)=>(o(),i("div",{class:"ph-field",key:"top"+d},[e("div",T,[n(t(l.name)+" ",1),e("span",B,t(l.source),1)]),e("div",F,t(l.purpose),1),e("div",I,"👉 "+t(l.fill),1)]))),128))])):r("",!0),s.data.sections&&s.data.sections.length?(o(!0),i(v,{key:2},S(s.data.sections,(l,d)=>(o(),i("div",{key:d,class:"ph-section"},[l.title?(o(),i("div",D,t(l.title),1)):r("",!0),l.overview?(o(),i("div",W,t(l.overview),1)):r("",!0),(o(!0),i(v,null,S(l.fields,(p,b)=>(o(),i("div",{class:"ph-field",key:b},[e("div",H,[n(t(p.name)+" ",1),e("span",P,t(p.source),1)]),e("div",A,t(p.purpose),1),e("div",G,"👉 "+t(p.fill),1)]))),128))]))),128)):r("",!0),!s.data.fields&&!(s.data.sections&&s.data.sections.length)?(o(),y(_,{key:3,description:"暂无说明","image-size":70})):r("",!0)])]),_:1},8,["modelValue","title"])])}}},R=k(K,[["__scopeId","data-v-e02e7155"]]),j={title:"入库(来料入账)",overview:`把到货的来料记入 WMS 库存。按物料类型分两种入库方式:
|
||||
import{_ as k,o,c as i,a as f,w as m,f as n,d as e,t,l as r,F as v,k as S,G as y,r as c,h as M}from"./index-C_gZ2k2u.js";const E={class:"page-help"},x={class:"ph-inner"},C={class:"ph-banner"},Z={class:"ph-banner-title"},O={key:0,class:"ph-overview"},V={key:1,class:"ph-section"},T={class:"ph-fname"},B={class:"ph-fsource"},F={class:"ph-fpurpose"},I={class:"ph-ffill"},D={key:0,class:"ph-sec-title"},W={key:1,class:"ph-sec-overview"},H={class:"ph-fname"},P={class:"ph-fsource"},A={class:"ph-fpurpose"},G={class:"ph-ffill"},K={__name:"PageHelp",props:{data:{type:Object,default:()=>({title:"操作说明",overview:"",fields:[]})}},setup(s){const u=M(!1);function h(){u.value=!0}return(z,a)=>{const N=c("el-button"),w=c("el-tooltip"),_=c("el-empty"),g=c("el-drawer");return o(),i("div",E,[f(w,{content:"本页操作说明",placement:"left"},{default:m(()=>[f(N,{class:"help-fab",circle:"",onClick:h},{default:m(()=>[...a[1]||(a[1]=[n("?",-1)])]),_:1})]),_:1}),f(g,{modelValue:u.value,"onUpdate:modelValue":a[0]||(a[0]=l=>u.value=l),title:s.data.title||"操作说明",size:"520px","append-to-body":"",class:"ph-drawer"},{default:m(()=>[e("div",x,[e("div",C,[e("div",Z,t(s.data.title||"操作说明"),1),a[2]||(a[2]=e("div",{class:"ph-banner-sub"},"页面整体说明",-1))]),s.data.overview?(o(),i("div",O,t(s.data.overview),1)):r("",!0),a[3]||(a[3]=e("div",{class:"ph-legend"},[e("span",{class:"lg"},[e("i",{class:"ic lg-source"}),n("来源:这个字段从哪来、谁填")]),e("span",{class:"lg"},[e("i",{class:"ic lg-purpose"}),n("用途:它起什么作用")]),e("span",{class:"lg"},[e("i",{class:"ic lg-fill"}),n("怎么填:具体填什么")])],-1)),s.data.fields&&s.data.fields.length?(o(),i("div",V,[(o(!0),i(v,null,S(s.data.fields,(l,d)=>(o(),i("div",{class:"ph-field",key:"top"+d},[e("div",T,[n(t(l.name)+" ",1),e("span",B,t(l.source),1)]),e("div",F,t(l.purpose),1),e("div",I,"👉 "+t(l.fill),1)]))),128))])):r("",!0),s.data.sections&&s.data.sections.length?(o(!0),i(v,{key:2},S(s.data.sections,(l,d)=>(o(),i("div",{key:d,class:"ph-section"},[l.title?(o(),i("div",D,t(l.title),1)):r("",!0),l.overview?(o(),i("div",W,t(l.overview),1)):r("",!0),(o(!0),i(v,null,S(l.fields,(p,b)=>(o(),i("div",{class:"ph-field",key:b},[e("div",H,[n(t(p.name)+" ",1),e("span",P,t(p.source),1)]),e("div",A,t(p.purpose),1),e("div",G,"👉 "+t(p.fill),1)]))),128))]))),128)):r("",!0),!s.data.fields&&!(s.data.sections&&s.data.sections.length)?(o(),y(_,{key:3,description:"暂无说明","image-size":70})):r("",!0)])]),_:1},8,["modelValue","title"])])}}},R=k(K,[["__scopeId","data-v-e02e7155"]]),j={title:"入库(来料入账)",overview:`把到货的来料记入 WMS 库存。按物料类型分两种入库方式:
|
||||
· 结构件(螺丝/机加工件) → 按【批次】入库,一批多件;
|
||||
· 精密件(芯片/器件) → 按【SN 序列号】逐件扫码,可单件追溯。
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+2
-2
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
@@ -4,8 +4,8 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>库房客户端</title>
|
||||
<script type="module" crossorigin src="/assets/index-gIYCKXT9.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-CwCKb6AA.css">
|
||||
<script type="module" crossorigin src="/assets/index-C_gZ2k2u.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-Bi2AMikI.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
Reference in New Issue
Block a user