build: update frontend build asset hashes

this commit updates all the static asset file hashes in index.html templates, and adds/removes the corresponding chunk files, which is typical after a frontend project rebuild to deploy updated static resources.
This commit is contained in:
SunYF
2026-08-29 08:11:44 +08:00
parent 940c2ea0c5
commit e82b744bbd
38 changed files with 253 additions and 195 deletions
+69 -56
View File
@@ -1,34 +1,38 @@
// 库房客户端(WMS Client) 页面级操作说明:整体介绍 + 各字段 来源/用途/怎么填
// WMS 库房客户端 页面级操作说明:整体流程 + 各字段 数据来源/用途/怎么填
// 由 components/PageHelp.vue 在左下角 "?" 按钮弹出展示。
// 说明:这里的"数据来源"特指该字段数据由谁产生、从哪个系统/页面来,帮助跑通真实流程。
export const helpInbound = {
title: '入库',
overview: '把来料记入 WMS 库存。按物料类型分两种方式:\n· 结构件(螺丝/机加工件)→ 按【批次】入库,一进多件;\n· 精密件(芯片/器件)→ 按【SN 序列号】逐件扫码入库,单件可追溯。\n入库先选“物料模板”,否则需要手工填大量信息;支持连续扫码与 Excel 批量导入。',
title: '入库(来料入账)',
overview:
'把到货的来料记入 WMS 库存。按物料类型分两种入库方式:\n· 结构件(螺丝/机加工件) → 按【批次】入库,一批多件;\n· 精密件(芯片/器件) → 按【SN 序列号】逐件扫码,可单件追溯。\n\n物料类型由 WMS 的"物料档案"决定(精密件/结构件),入库方式随之自动给出。\n入库是整个库存链路的第一环:入库(Held) → 质量检验(合格Z02) → 之后才能被出库锁定。',
sections: [
{
title: 'Tab1 结构件入库(批次)',
title: 'Tab1 结构件入库(批次)',
overview: '适用于螺丝、机加工件等标准件,一次到货入一批。',
fields: [
{ name: '物料', source: '下拉选择(来自物料档案)', purpose: '入库的是什么物料;必须先有物料档案', fill: '选择物料编码,如 SCREW-M3' },
{ name: '批次号', source: '留空自动生成', purpose: '区到货批次,实现先进先出', fill: '留空系统按日期+序号自动生成,或手工填' },
{ name: '数量', source: '手填写', purpose: '本批到货数量', fill: '整数≥1' },
{ name: '区域', source: '下拉选择库区字典', purpose: '放到哪个库区待检/合格/不合格等)', fill: '通常先放待检区,检验后转合格区' },
{ name: '生产日期', source: '手动选择', purpose: '生产时间,用于时效/批次管理', fill: '选择日期' },
{ name: '供应商', source: '手填写', purpose: '来料来源', fill: '供应商名称,可空' }
{ name: '物料', source: '下拉选择。数据来自 WMS"物料档案"里类型为"结构件"的物料。', purpose: '入库的是什么物料;档案里必须存在才能选到', fill: '选择物料编码,如 SCREW-M3;选不到=还没建该物料档案' },
{ name: '批次号', source: '留空系统自动生成(日期+序号);也可手工填。', purpose: '区别不同到货批次,实现先进先出(FIFO)', fill: '默认留空自动生成;供应商自带批号时可手填' },
{ name: '数量', source: '手填写整数。', purpose: '本批到货数量', fill: '整数 ≥1' },
{ name: '区域', source: '下拉选择。数据来自库区字典', purpose: '放到哪个库区(待检/合格/不合格…)', fill: '新到货一般先放"待检"区,检验合格后再转"合格"区(Z02)' },
{ name: '生产日期', source: '手动选择日期。', purpose: '生产时间,用于时效批次管理', fill: '选择日期' },
{ name: '供应商', source: '手填写', purpose: '来料来源', fill: '供应商名称,可空' }
]
},
{
title: 'Tab2 精密件 SN 入库',
title: 'Tab2 精密件 SN 入库(逐件)',
overview: '适用于芯片、器件等需要单件追溯的来料,一件一个 SN。',
fields: [
{ name: '物料', source: '下拉选择', purpose: '入库的精密件物料', fill: '选择物料编码' },
{ name: '区域', source: '下拉选择', purpose: '放到哪个库区', fill: '可选,空则默认' },
{ name: '扫码录入', source: '扫码枪连续扫码', purpose: '逐件登记 SN,实现单件追溯', fill: '扫入/粘贴 SN 后回车追加,可一次多条' }
{ name: '物料', source: '下拉选择。来自"物料档案"类型为"精密件"的物料。', purpose: '入库的精密件物料', fill: '选择物料编码' },
{ name: '区域', source: '下拉选择。来自库区字典。', purpose: '放到哪个库区', fill: '可选,空则默认待检区' },
{ name: '扫码录入', source: '扫码枪连续扫码。来自每颗器件自带的 SN 条码。', purpose: '逐件登记 SN,实现单件追溯', fill: '扫入/粘贴 SN 后回车追加,可一次连续多条' }
]
},
{
title: 'Tab3 Excel 导入',
overview: '用于大批量结构件入库。列头顺序首行忽略:物料编码 | 批次号(空自动生成) | 数量 | 生产日期 | 供应商 | 区域。',
title: 'Tab3 Excel 批量导入',
overview: '用于大批量结构件入库。列头顺序(首行忽略):物料编码 | 批次号(空自动生成) | 数量 | 生产日期 | 供应商 | 区域。',
fields: [
{ name: '文件', source: '选择 .xlsx', purpose: '批量导入的物料清单', fill: '按列头顺序准备好 Excel选择上传' }
{ name: '文件', source: '选择本地 .xlsx 文件。', purpose: '批量导入的物料清单', fill: '按列头顺序准备好 Excel选择上传' }
]
}
]
@@ -36,78 +40,86 @@ export const helpInbound = {
export const helpOutbound = {
title: '出库(按工单领料)',
overview: '仓库按工单台账为生产备料出库。系统强约束:单物料累计出库 ≤ 工单需求总量,超发走补料流程。\n可一次出完,也可分多次、分批由 AGV 配送到各 DOCK(决策权在仓库)。',
overview:
'仓库按工单台账为生产备料出库。系统强约束:单物料累计出库 ≤ 工单需求总量,超发走补料流程。\n可一次出完,也可分多次、分批由 AGV 配送到各 DOCK(配送节奏由仓库决定)。\n\n前置条件:必须先有"工单物料台账"(GOMES 工单+物料清单导入),且该物料在【合格区Z02】有足够库存。',
fields: [
{ name: '工单号', source: '输入(来自 MES', purpose: '出库挂靠的工单,决定可领料总量', fill: '输入工单号回车查询台账' },
{ name: '操作人', source: '登录账号自动带出', purpose: '本次出库执行人,便于追溯', fill: '自动,无需填' },
{ name: '目标工位', source: '手动填写', purpose: '本次配送送达的接驳台/DOCK', fill: '如 DOCK-A,可空' },
{ name: '一键分配出库', source: '系统自动按 FIFO 分配', purpose: '从合格区(Z02)按批次先进先出凑够缺口并出库', fill: '点按钮,系统自动算批次并二次确认' }
{ name: '工单号', source: '手动输入。数据来自 MES 已建的工单及导入的物料台账。', purpose: '出库挂靠的工单,决定可领料总量与需求缺口', fill: '输入工单号回车查询该工单的物料台账' },
{ name: '操作人', source: '登录账号自动带出', purpose: '本次出库执行人,追溯', fill: '自动,无需填' },
{ name: '目标工位', source: '手动填写', purpose: '本次配送送达的接驳台/DOCK', fill: '如 DOCK-A,可空' },
{ name: '一键分配出库', source: '系统自动按 FIFO 分配。数据来自合格区Z02的批次库存。', purpose: '从合格区先进先出凑够缺口并出库', fill: '点按钮,系统自动算批次并二次确认' }
]
}
export const helpInventory = {
title: '库存查询',
overview: '查看当前库存:结构件按批次台账(数量/锁定/区域),精密件按 SN 序列号(状态/区域)。',
overview:
'查看当前库存:结构件按批次台账(数量/锁定/区域),精密件按 SN 序列号(状态/区域)。\n数据由入库、出库、盘点等业务实时维护,本页只读查询。',
fields: [
{ name: '物料编码', source: '筛选条件', purpose: '只看某物料', fill: '输入编码,可空=全部' },
{ name: '库存类型', source: '单选', purpose: '看批次还是 SN 序列', fill: '全部 / 批次 / SN 序列' },
{ name: '关键字', source: '筛选条件', purpose: '按批次号/物料名称/SN 模糊过滤', fill: '输入关键字,可空' }
{ name: '物料编码', source: '筛选条件', purpose: '只看某物料', fill: '输入编码,可空=全部' },
{ name: '库存类型', source: '单选', purpose: '看批次台账还是 SN 序列', fill: '全部 / 批次 / SN 序列' },
{ name: '关键字', source: '筛选条件', purpose: '按批次号/物料名称/SN 模糊过滤', fill: '输入关键字,可空' }
]
}
export const helpInspection = {
title: '质量检验',
overview: '对到货物料或 SN 做来料检:把“未检”翻转为【合格】或【不合格】。支持单条扫码录入与批量翻转。合格后才能被出库锁定(出库自动分配只取合格区)。',
title: '质量检验(来料检)',
overview:
'对入库的未检物料/SN 做检验:把"未检"翻转为【合格】或【不合格】。\n合格后才能被出库锁定(出库自动分配只取合格区Z02)。\n\n数据链路:入库(状态=未检) → 本页检验翻转 → 合格Z02 / 不合格隔离。',
fields: [
{ name: '目标类型', source: '单选', purpose: '检验对象是批次还是 SN', fill: '批次 BATCH / 序列号 SN' },
{ name: '检验结论', source: '单选', purpose: '判定结果', fill: '合格 / 不合格' },
{ name: '检验员', source: '手动填写默认当前用户', purpose: '谁检验的,用于追溯', fill: '检验员姓名' },
{ name: '扫码输入', source: '扫码枪', purpose: '单个目标编号', fill: '扫批次号或 SN,回车提交' },
{ name: '批量编号', source: '扫码枪连续录入', purpose: '一次性翻转多个目标的检验状态', fill: '每行一个编号' }
{ name: '目标类型', source: '单选', purpose: '检验对象是批次还是 SN', fill: '批次 BATCH / 序列号 SN' },
{ name: '检验结论', source: '单选', purpose: '判定结果', fill: '合格 / 不合格' },
{ name: '检验员', source: '手动填写(默认当前用户)。', purpose: '谁检验的,追溯', fill: '检验员姓名' },
{ name: '扫码输入', source: '扫码枪。来自批次号/SN条码。', purpose: '单个待检目标编号', fill: '扫批次号或 SN,回车提交' },
{ name: '批量编号', source: '扫码枪连续录入', purpose: '一次性翻转多个目标的检验状态', fill: '每行一个编号' }
]
}
export const helpStocktake = {
title: '盘点',
overview: '核对账面与实际库存,支持扫码快速盘点,完成时按差异修正库存。\n步骤:发起盘点(冻结快照)→ 扫码录入实盘数(入库)→ 完成并生成差异(可选:差异写回库存)。',
title: '盘点(库存核对)',
overview:
'核对账面与实际库存,支持扫码快速盘点,完成时按差异修正库存。\n流程:发起盘点(冻结快照) → 扫码录入实盘数(入库) → 完成并生成差异(可选:差异写回库存)。',
fields: [
{ name: '操作人', source: '登录账号', purpose: '发起盘点人', fill: '自动' },
{ name: '发起盘点', source: '按钮', purpose: '冻结当前库存快照,生成盘点单', fill: '点按钮发起' },
{ name: '差异写回库存', source: '开关', purpose: '完成后是否用实盘差异修正库存', fill: '开=写回,关闭=仅记录差异' },
{ name: '目标编号', source: '扫码枪', purpose: '要盘点的批次号或 SN', fill: '扫批次号/SN,回车提交' },
{ name: '实盘数量', source: '扫码/手输', purpose: '实际数到数量', fill: '非负整数;0 表示盘亏为零' }
{ name: '操作人', source: '登录账号自动带出。', purpose: '发起盘点人', fill: '自动' },
{ name: '发起盘点', source: '按钮操作。', purpose: '冻结当前库存快照,生成盘点单', fill: '点按钮发起' },
{ name: '差异写回库存', source: '开关', purpose: '完成后是否用实盘差异修正账面库存', fill: '开=写回;关=仅记录差异' },
{ name: '目标编号', source: '扫码枪。来自批次号/SN条码。', purpose: '要盘点的批次号或 SN', fill: '扫批次号/SN,回车提交' },
{ name: '实盘数量', source: '扫码/手输', purpose: '实际数到数量', fill: '非负整数;0=盘亏为零' }
]
}
export const helpPackage = {
title: '包装绑定(箱号 ↔ SN',
overview: '把若干精密件 SN 绑定到一个箱号,形成包装箱。用于发货/入库整箱追溯。',
overview:
'把若干精密件 SN 绑定到一个箱号,形成包装箱,用于发货/入库整箱追溯。\n数据链路:拣选出的 SN → 绑到箱号 → 一个箱号代表一箱货。',
fields: [
{ name: '箱号', source: '扫码/手输', purpose: '包装箱唯一号', fill: '扫描或手输箱号' },
{ name: '物料', source: '下拉选择可空', purpose: '箱内物料类型', fill: '可选' },
{ name: '操作人', source: '登录账号', purpose: '绑定人', fill: '自动' },
{ name: 'SN 录入', source: '扫码枪连续扫码', purpose: '装箱的 SN 序列号清单', fill: '扫入 SN 回车追加' }
{ name: '箱号', source: '扫码/手输', purpose: '包装箱唯一号', fill: '扫描或手输箱号' },
{ name: '物料', source: '下拉选择(可空)。来自物料档案。', purpose: '箱内物料类型', fill: '可选' },
{ name: '操作人', source: '登录账号自动带出。', purpose: '绑定人', fill: '自动' },
{ name: 'SN 录入', source: '扫码枪连续扫码。来自器件 SN 条码。', purpose: '装箱的 SN 清单', fill: '扫入 SN 回车追加' }
]
}
export const helpSemi = {
title: '半成品/成品(流转)',
overview: '产线工位“暂存/退回”的半成品或完工成品可在此入库(记录已完成工序),需要时再出库(重上线),MES 从下一工序继续。',
overview:
'产线工位"暂存/退回"的半成品或完工成品可在此入库(记录已完成工序),需要时再出库(重上线),MES 从下一工序继续。\n\n半成品生命周期:工位暂存退库 → 本页入库(记已完成工序) → 需要时本页出库→ MES 下发下一工序 → 工位继续装配。',
sections: [
{
title: '半成品/成品入库',
overview: '把产线退回的半成品或成品收进库房。',
fields: [
{ name: '物料', source: '下拉选择', purpose: '入库物料', fill: '选择物料编码' },
{ name: '已完成工序', source: '工位终端上报', purpose: '该件做到第几道工序,重上线时 MES 从这里继续', fill: '如 135,可空' },
{ name: '工单号', source: '手动填写(可空)', purpose: '来源工单', fill: '输入工单号' },
{ name: '区域', source: '手动填写可空', purpose: '存放库区', fill: '如 Z05' },
{ name: '扫码录入', source: '扫码枪连续扫码', purpose: '半成品 SN 清单', fill: '扫入 SN 回车追加' }
{ name: '物料', source: '下拉选择。来自物料档案。', purpose: '入库物料', fill: '选择物料编码' },
{ name: '已完成工序', source: '自动带出/手工填写。数据来自工位终端的"已完成工序"上报', purpose: '该件做到第几道工序,重上线时 MES 从这里继续', fill: '如 135,可空' },
{ name: '工单号', source: '自动带出/手工填写。来自工单。', purpose: '来源工单', fill: '输入工单号' },
{ name: '区域', source: '手动填写(可空)。', purpose: '存放库区', fill: '如 Z05' },
{ name: '扫码录入', source: '扫码枪连续扫码。来自工件 SN 条码。', purpose: '半成品 SN 清单', fill: '扫入 SN 回车追加' }
]
},
{
title: '半成品出库(重上线)',
overview: '把半成品重新送上线,MES 会从记录的下一个工序继续。',
fields: [
{ name: 'SN', source: '扫码枪/手输', purpose: '要重上线的半成品 SN', fill: '扫描或输入 SN,回车出库' }
{ name: 'SN', source: '扫码枪/手输。来自工件 SN 条码。', purpose: '要重上线的半成品 SN', fill: '扫描或输入 SN,回车出库' }
]
}
]
@@ -115,20 +127,21 @@ export const helpSemi = {
export const helpLedger = {
title: '工单物料台账',
overview: '实时展示每个物料:需求总量、累计已出库、剩余缺口。系统强约束累计出库 ≤ 需求总量,达到即“领料完结”。',
overview:
'实时展示每个物料:需求总量、累计已出库、剩余缺口。\n系统强约束累计出库 ≤ 需求总量,达到即"领料完结"。\n数据链路:MES 工单+物料清单 → 导入本台账 → 出库时自动扣减累计,形成缺口/完结。',
fields: [
{ name: '工单号', source: '输入', purpose: '查看哪个工单的领料台账', fill: '输入工单号查询' }
{ name: '工单号', source: '手动输入。来自 MES 工单。', purpose: '查看哪个工单的领料台账', fill: '输入工单号查询' }
]
}
export const helpDisplay = {
title: '库房总览显示',
overview: '给库房显示器用的只读总览页,展示库存与出入库概况。',
overview: '给库房显示器用的只读总览页,展示库存与出入库概况。\n数据实时读取库存统计,本页不可编辑。',
fields: []
}
export const helpDashboard = {
title: '库房看板',
overview: '只读看板:库存总量、物料种类、出入库动态等。',
overview: '只读看板:库存总量、物料种类、出入库动态等。\n数据实时读取统计接口,本页不可编辑。',
fields: []
}