YunaiV
|
61172b9a68
|
fix(mes): 修复 MES 迁移 review 发现的问题(B001-B032)
系统性修复 MES migration review(INDEX.md,MES-R001~R042)发现的迁移问题,
覆盖 web-antd 与 web-ele 两端,按严重级别从 P0 到 P3。
P0
- B001: DICT_TYPE/BarcodeBizTypeEnum 等常量从 'vue' 误导入致 TS2305/运行时崩溃,
改从 @vben/constants 导入(20 个文件)。
P1
- B002 itemreceipt 入库单名称误必填;B003 条码工单选择补 CONFIRMED 过滤;
B004 库存台账冻结开关补更新权限禁用;B005 returnsales 上架明细批次号误必填;
B006 checkrecord/maintenrecord 计划/执行人误必填;B007 returnsales 退货行
rqcCheckFlag 默认改回 false;B019 OQC 预填 checkQuantity 缺省取 outQuantity;
B024 repair 完成维修态放开 finishDate 录入;B025 tool 编码管理类型库存数量锁定为 1;
B027 详情态自动编码按钮隐藏/禁用(md/cal/dv/tm 13 模块)。
P2
- B008 IPQC 废品数量补 0 默认值;B009 共享选择器去掉 catch+console.error 吞错;
B011 route 自定义 SFC 改 markRaw;B012 ele 自动编码按钮去 type:'default';
B014 md 编辑态编码字段误禁用;B015 dv/subject 选择器仅展示启用项(保留历史回显);
B016 盘点结果回填 batchId;B017 源 vue3 miscissue 业务类型字典误用 getStrDictOptions;
B018 stocktaking/plan 盘点条件表单 schema 化;B020 清理 TODO @AI;
B026 repair 验收信息字段按状态门控只读。
P3
- B010 QcIndicatorSelect 去吞错;B013/B019/B030/B031 componentProps、列对象多行化等
code style;B021 自动编码循环方式列条件展示;B022 盘点结果选中清单行后字段禁用;
B023 质检指标 resultSpecification 抽 ResultSpecificationInput 消除重复 fieldName;
B032 barcode/batch/sn API 字段补注释。
风格统一
- getTitle 统一为「特殊态 if 提前 return + create/update 三元」(pro/card、
stocktaking/task、repair);headerReadonly 抽 isHeaderReadonly 辅助函数对齐
pro/workorder/transfer 写法;computed 解释注释移入 computed 内部。
验证:
- 两端 pnpm exec eslint 改动文件通过
- 两端 pnpm -F @vben/web-antd / @vben/web-ele exec vue-tsc 过滤 src/views/mes、
api/mes 无报错
- git diff --check 通过
备注:R037(defectrecord 命名漂移)经复核为原 finding 前提有误(两端本就一致),
已 rejected,未占 MES-B 编号。R008/R009 为 disputed 待裁决。
本提交仅含 src/views/mes 与 src/api/mes 下文件,排除 .env.development、vite.config.ts、
infra/codegen、docs changelog 等无关旁支改动。
|
2026-05-31 10:21:23 +08:00 |
YunaiV
|
0fe9607302
|
fix(mes): 修复迁移 review 第三批 finding(B019-B023)+ schema/风格清理
修复 MES migration review 的 1 个 P1 + 多个 P2/P3 finding,覆盖 web-antd
和 web-ele 两端。
- MES-B019 (P1, R020): OQC 从待检任务预填时,checkQuantity 缺省取
outQuantity,避免必填的检测数量为空被校验拦截。
- MES-B020 (P2, R012): 清理 pro/card、stocktaking/task 残留的 TODO @AI
临时注释,taskId 补正式业务尾注释。
- MES-B021 (P2, R017): 自动编码分段"循环方式"列改 slot + DictTag,仅
cycleFlag 为真才渲染(非循环行留空,对齐源 v-if 行为)。
- MES-B022 (P3, R035): 盘点结果选中盘点清单行后,物料/批次/仓储位置字段
按 lineId 禁用,避免改成与清单不一致的值。
- MES-B023 (P3, R038): 抽出 QcIndicatorResultSpecificationInput 组件,
schema 仅保留单个 resultSpecification 字段,组件内按 resultType 切
RadioGroup(FILE)/Select(DICT),消除重复 fieldName 的双 FormField/重复 key。
附带代码风格对齐:
- pro/card、stocktaking/task 的 getTitle 改为「特殊态 if 提前 return +
create/update 三元收尾」,对齐 oqc/returnvendor 等主流模块写法。
验证:
- pnpm exec eslint <本批改动文件>(antd + ele)通过
- pnpm -F @vben/web-antd / @vben/web-ele exec vue-tsc 过滤
qc/indicator、qc/oqc、md/autocode、wm/stocktaking/task、pro/card 无报错
Ref: project_duibiao/mes/review_vben/INDEX.md (MES-R012/R017/R020/R035/R038)
|
2026-05-30 23:14:21 +08:00 |
YunaiV
|
3007539f0e
|
refactor(mes): update comments and improve code readability in condition matchers
|
2026-05-30 20:38:05 +08:00 |
YunaiV
|
22e9081a45
|
refactor(mes): 统一 antd 和 ele 选择组件代码风格
- 规范 select 空值判断和回显逻辑
- 统一物料、供应商、客户选择弹窗的单选/多选行为
- 清理 components 内 TODO 并修复相关 DICT_TYPE 导入
|
2026-05-30 19:03:57 +08:00 |
YunaiV
|
b3154ef87a
|
feat(mes): 增加 componnents 评审的建议
|
2026-05-30 18:10:14 +08:00 |
YunaiV
|
51e633f6c9
|
refactor: 规范 MES/WMS 组件文件命名和导出引用
|
2026-05-30 17:29:05 +08:00 |
YunaiV
|
c9a32ba780
|
```text
refactor: 迁移模块 constants 到共享常量包
- 新增 MES/WMS 共享业务常量导出
- 将 Mall 客服、IoT 缺失常量合并到 @vben/constants
- 替换各模块本地 constants 引用
- 删除模块内重复 constants 文件
```
|
2026-05-30 16:51:13 +08:00 |
YunaiV
|
b4e7573d10
|
feat(mes): 优化 generateAutoCode 的调用,减少 try catch
|
2026-05-29 21:22:14 +08:00 |
YunaiV
|
d3233c4bb4
|
refactor: 统一表单 schema 挂载与 resetForm 处理
|
2026-05-29 11:40:28 +08:00 |
YunaiV
|
e9cb162aea
|
refactor: 统一确认弹窗调用并优化开发代理配置
|
2026-05-28 10:53:24 +08:00 |
YunaiV
|
59cc3bbd61
|
feat(mes): 新增 md workstation 的迁移
|
2026-05-28 01:08:05 +08:00 |
YunaiV
|
44b62e14ac
|
refactor: 统一 Vben 表单弹窗模式为 formType 并更新规范
|
2026-05-26 12:36:01 +08:00 |
YunaiV
|
3c592887b9
|
feat(mes):统一 dv、cal、md 的代码规范
|
2026-05-24 23:11:02 +08:00 |
YunaiV
|
8ab0c53011
|
Merge remote-tracking branch 'origin/master' into migration
# Conflicts:
# apps/web-antd/src/views/iot/home/modules/message-trend-card.vue
# apps/web-antd/src/views/iot/rule/data/sink/config/redis-stream-config-form.vue
# apps/web-antd/src/views/mes/md/client/components/md-client-select-dialog.vue
# apps/web-ele/src/views/iot/home/modules/message-trend-card.vue
# apps/web-ele/src/views/iot/rule/data/sink/config/redis-stream-config-form.vue
# apps/web-ele/src/views/iot/thingmodel/modules/input-output-param.vue
# pnpm-lock.yaml
# pnpm-workspace.yaml
|
2026-05-24 22:20:36 +08:00 |
YunaiV
|
19911a19c0
|
feat(mes):统一代码规范,form.vue 的
|
2026-05-24 21:38:08 +08:00 |
YunaiV
|
aeff25209d
|
fix(iot): 修复 13 处 bug 并完成 codex 三轮收口
按 codex 两轮 review 分批处理 IoT 模块 13 处 bug,对第二轮反馈中
B42/B47 的类型/字段问题做最终收尾,所有修复 web-antd / web-ele 两端同步。
主要修复:
- B91 设备分组:删除前校验 deviceCount,分组下有设备时弹警告
- B40 物模型 array 数据规格:从 Radio.Group @change 事件正确取值(antd)
- B42 物模型属性历史:list 写入时按 idx 生成 _rowKey,模板 row-key="_rowKey"
list 类型改 IotDeviceApi.DeviceProperty & { _rowKey: string }
匹配后端 IotDevicePropertyMapper.xml 实际返回的字段
(修掉 codex 指出的 antd row-key TS2322 与 ele 同毫秒撞键)
- B119 物模型表单:edit 模式禁用 identifier 编辑
- B47 场景规则主条件:产品/设备切换时清 deviceId/identifier/operator/value
(修掉 codex 指出的 condition.value.param TS2339,Trigger 无 param)
- B44 数据目的数据库配置:SQL 复制按钮 setTimeout 在 onBeforeUnmount 中清理
- B51 场景规则首页统计:total 取接口 result.total,其余基于当前页
- B29 产品卡片视图:图标为 URL 时改用 <img> 渲染,复用 @vben/utils 的 isHttpUrl
- B43 首页设备地图:移除过度设计的 AbortController,回归 vue3 源项目同款
InfoWindow 监听写法,querySelector 限定到 .BMap_bubble_content 子树
- B105 场景规则设备选择器:productId 变化后旧 deviceId 不在新列表则清空
- B45 通用 key-value 编辑器:v-for key 改用递增的 _uid,避免编辑/删除时 DOM 复用错乱
- B132 设备导入表单:beforeUpload 校验 .xls/.xlsx
- B126 设备详情:四个 tab 子组件 v-if 增加 device.id 守卫
附带工具收敛:
- @vben-core/shared/utils 新增 formatDayjs,统一 antd TimePicker/DatePicker
value-format 后回传的 Dayjs|string 归一
- 场景规则首页 updateStatistics 补回 JSDoc,对齐文件内其他 function 风格
验证:
- 改动文件 pnpm exec eslint 0 error
- pnpm -F @vben/web-antd / @vben/web-ele exec vue-tsc --noEmit --skipLibCheck
过滤 src/views/iot/|src/api/iot/ 均 0 hit
|
2026-05-24 10:11:43 +08:00 |
YunaiV
|
241cf76788
|
fix(iot): 修复 21 处 bug(P1×15 + P2×6)
经 codex 4 轮复评定稿,antd / ele 两端同步。
P1(场景规则 / 物模型 / Modbus / Redis sink / 路由):
- B7/B8 隐藏路由 path 与 activePath 对齐 vue3 源(产品 / OTA 固件详情)
- B9 移除后端不存在的 deleteSceneRuleList 封装
- B10 物模型 number specs 恢复 min/max/step/unit 校验
- B11 物模型新增枚举项补 dataType: ENUM
- B12 物模型 struct 非空校验绑 fieldPath,array 嵌套显式覆盖
property.dataSpecs.dataSpecsList,确保父表单 validate 触发
- B13 struct 与 input-output-param 编辑回填 cloneDeep,取消不污染原对象
- B14 Modbus Client 模式 ip/port/timeout/retryInterval 改 dependencies 条件必填
- B19 Redis sink 补 dataStructure(默认 Stream)+ Hash/ZSet 条件字段
- B20 仅 ALERT_RECOVER 强校验 alertConfigId,ALERT_TRIGGER 放行
- B21 conditionGroups 递归校验
· 设备状态/属性 param 必填
· CURRENT_TIME 按 operator 区分:TODAY 免、BETWEEN_TIME 双段、其它单段
· 触发器 / 条件 / 执行器 deviceId 改显式 null/undefined 判断,
保留「全部设备 = 0」(后端 action 支持广播执行)
- B22 事件上报条件改回普通 Input,允许标量值或留空
- B23 antd 当前时间条件 :value / @update:value 绑定 + Dayjs 类型 normalize;
归一逻辑抽到 @vben/utils.formatDayjs(packages/@core/base/shared/utils/date.ts),
供所有 app 复用
- B24 设备控制动作切换无条件清依赖,去掉 isInitialized 冗余守卫
- B26 JSON 参数输入先全部校验通过后再写入父表单
P2(产品 / 设备 / 物模型展示 / 数据源):
- B28 产品 deviceType 去默认值,强制用户显式选择
- B30 设备列表 DeviceName 加点击详情 slot
- B31 设备卡片显示备注名称(nickname || deviceName)
- B32 设备详情 hasLocation 改用 != null,合法 0 坐标不再判空
- B41 物模型数据定义展示顺序改为 name-value
- B46 数据源 getData() 剔除仅 UI 用的 identifierLoading 临时字段
|
2026-05-24 00:32:35 +08:00 |
xingyu4j
|
fb2595ef90
|
Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin
|
2026-05-23 18:39:12 +08:00 |
YunaiV
|
f8c869f1ff
|
feat(mes):md client select 迁移
|
2026-05-22 08:41:54 +08:00 |
YunaiV
|
e7361a60ec
|
feat(iot):md 模块,支持生成
|
2026-05-21 18:48:57 +08:00 |
YunaiV
|
2a97bed546
|
feat(mes): 移除多余 defineOptions
|
2026-05-21 17:36:30 +08:00 |
YunaiV
|
33cdfcac3c
|
✨ feat(im): 修管理端 3 处:群消息 atUserNicknames 类型允许 null、移除前端无效的「消息内容」查询入口、表情包宽高加表单校验
|
2026-05-21 15:10:22 +08:00 |
YunaiV
|
d207e3b82c
|
feat(mes): 优化 md 基础模块的迁移
|
2026-05-21 13:23:33 +08:00 |
YunaiV
|
751ba2c782
|
feat(mes): 迁移工作站管理及设备、工具、人员关联
|
2026-05-21 11:10:21 +08:00 |
YunaiV
|
e6e15ca4ef
|
feat(mes): 迁移客户、供应商、车间管理到 vben
|
2026-05-21 10:35:54 +08:00 |
YunaiV
|
f02a5975b8
|
feat(wms): 优化 md unit 的迁移代码(优化代码)
|
2026-05-21 09:15:57 +08:00 |
YunaiV
|
b35ce18c6e
|
feat(wms): 优化 md unit 的迁移代码
|
2026-05-21 09:11:58 +08:00 |
YunaiV
|
9cc52f128c
|
feat(wms): 优化 md item 的迁移代码(继续)
|
2026-05-21 08:45:48 +08:00 |
YunaiV
|
67997bd44d
|
feat(wms): 优化 md item 的迁移代码
|
2026-05-21 08:09:29 +08:00 |
YunaiV
|
6b1425d541
|
feat(mes): 新增 md item 的迁移
|
2026-05-21 00:58:45 +08:00 |
YunaiV
|
1bdc0d992f
|
feat(mes): 新增 md item type 的迁移
|
2026-05-19 22:20:13 +08:00 |