From a8d60580be4fb5fc2898a0e6b3d850fde3f6f3a2 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 29 May 2026 22:13:57 +0800 Subject: [PATCH] =?UTF-8?q?refactor(mes/wm/barcode):=20=E6=B8=85=E7=90=86?= =?UTF-8?q?=20TODO=20@AI=E3=80=81=E7=AE=80=E5=8C=96=20onBizChange=E3=80=81?= =?UTF-8?q?=E5=AF=B9=E9=BD=90=E5=8B=BE=E9=80=89=E5=86=99=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 data.ts / config/data.ts / index.vue 里残留的 TODO @AI 注释 - applyBizSelected 改名 syncBizDetail(对齐 mes/qc/ipqc 的 syncUnqualified), 函数内置 formApi 空判断,去掉中间变量 onBizChange,14 处 onChange 直接调用 - config/data.ts 的 dependencies 单行展开为多行 - index.vue 勾选写法对齐 system/user:records.map((item) => item.id!) --- .../src/views/mes/wm/barcode/config/data.ts | 9 ++- .../web-antd/src/views/mes/wm/barcode/data.ts | 39 +++++----- .../src/views/mes/wm/barcode/index.vue | 8 +- .../src/views/mes/wm/materialstock/index.vue | 74 ++++++++++--------- apps/web-ele/src/views/mes/wm/barcode/data.ts | 38 +++++----- .../src/views/mes/wm/barcode/index.vue | 2 +- 6 files changed, 87 insertions(+), 83 deletions(-) diff --git a/apps/web-antd/src/views/mes/wm/barcode/config/data.ts b/apps/web-antd/src/views/mes/wm/barcode/config/data.ts index dc715da79..5174336bd 100644 --- a/apps/web-antd/src/views/mes/wm/barcode/config/data.ts +++ b/apps/web-antd/src/views/mes/wm/barcode/config/data.ts @@ -5,14 +5,16 @@ import { getDictOptions } from '@vben/hooks'; import { z } from '#/adapter/form'; -// TODO @AI:这里的代码风格不对; /** 表单 */ export function useFormSchema(): VbenFormSchema[] { return [ { fieldName: 'id', component: 'Input', - dependencies: { triggerFields: [''], show: () => false }, + dependencies: { + triggerFields: [''], + show: () => false, + }, }, { fieldName: 'format', @@ -35,8 +37,7 @@ export function useFormSchema(): VbenFormSchema[] { dependencies: { triggerFields: ['id'], componentProps: (values) => ({ - // 编辑时业务类型不允许变更 TODO @AI:这种简单的注释,可以考虑放到 disabled 后面;写到 style 里; - disabled: !!values.id, + disabled: !!values.id, // 编辑时业务类型不允许变更 }), }, rules: 'required', diff --git a/apps/web-antd/src/views/mes/wm/barcode/data.ts b/apps/web-antd/src/views/mes/wm/barcode/data.ts index 6e20264cc..1d0f41c1d 100644 --- a/apps/web-antd/src/views/mes/wm/barcode/data.ts +++ b/apps/web-antd/src/views/mes/wm/barcode/data.ts @@ -28,7 +28,13 @@ import { } from './../warehouse/components'; /** 业务对象选中后回填业务编码、业务名称、条码内容 */ -async function applyBizSelected(formApi: VbenFormApi, item: any) { +async function syncBizDetail( + formApi: undefined | VbenFormApi, + item: any, +) { + if (!formApi) { + return; + } const values = await formApi.getValues(); const bizType = values.bizType as number | undefined; if (!item) { @@ -61,13 +67,6 @@ async function applyBizSelected(formApi: VbenFormApi, item: any) { /** 新增/修改条码的表单 */ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { - // TODO @AI:是不是可以去掉 onBizChange,直接搞个 handleBizTypeChange 函数? - const onBizChange = (item: any) => { - if (formApi) { - void applyBizSelected(formApi, item); - } - }; - return [ { fieldName: 'bizType', @@ -96,7 +95,7 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { label: '仓库', component: markRaw(WmWarehouseSelect), componentProps: { - onChange: onBizChange, + onChange: (item: any) => syncBizDetail(formApi, item), }, dependencies: { triggerFields: ['bizType'], @@ -133,7 +132,7 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { componentProps: (values) => ({ placeholder: '请选择库区', warehouseId: values.locationWarehouseId, - onChange: onBizChange, + onChange: (item: any) => syncBizDetail(formApi, item), }), }, rules: 'required', @@ -188,7 +187,7 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { componentProps: (values) => ({ placeholder: '请选择库位', locationId: values.areaLocationId, - onChange: onBizChange, + onChange: (item: any) => syncBizDetail(formApi, item), }), }, rules: 'required', @@ -198,7 +197,7 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { label: '工单', component: markRaw(ProWorkOrderSelect), componentProps: { - onChange: onBizChange, + onChange: (item: any) => syncBizDetail(formApi, item), }, dependencies: { triggerFields: ['bizType'], @@ -211,7 +210,7 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { label: '设备', component: markRaw(DvMachinerySelect), componentProps: { - onChange: onBizChange, + onChange: (item: any) => syncBizDetail(formApi, item), }, dependencies: { triggerFields: ['bizType'], @@ -224,7 +223,7 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { label: '产品物料', component: markRaw(MdItemSelect), componentProps: { - onChange: onBizChange, + onChange: (item: any) => syncBizDetail(formApi, item), }, dependencies: { triggerFields: ['bizType'], @@ -237,7 +236,7 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { label: '供应商', component: markRaw(MdVendorSelect), componentProps: { - onChange: onBizChange, + onChange: (item: any) => syncBizDetail(formApi, item), }, dependencies: { triggerFields: ['bizType'], @@ -250,7 +249,7 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { label: '工作站', component: markRaw(MdWorkstationSelect), componentProps: { - onChange: onBizChange, + onChange: (item: any) => syncBizDetail(formApi, item), }, dependencies: { triggerFields: ['bizType'], @@ -263,7 +262,7 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { label: '车间', component: markRaw(MdWorkshopSelect), componentProps: { - onChange: onBizChange, + onChange: (item: any) => syncBizDetail(formApi, item), }, dependencies: { triggerFields: ['bizType'], @@ -276,7 +275,7 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { label: '客户', component: markRaw(MdClientSelect), componentProps: { - onChange: onBizChange, + onChange: (item: any) => syncBizDetail(formApi, item), }, dependencies: { triggerFields: ['bizType'], @@ -289,7 +288,7 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { label: '工具', component: markRaw(TmToolSelect), componentProps: { - onChange: onBizChange, + onChange: (item: any) => syncBizDetail(formApi, item), }, dependencies: { triggerFields: ['bizType'], @@ -302,7 +301,7 @@ export function useFormSchema(formApi?: VbenFormApi): VbenFormSchema[] { label: '库存', component: markRaw(WmMaterialStockSelect), componentProps: { - onChange: onBizChange, + onChange: (item: any) => syncBizDetail(formApi, item), }, dependencies: { triggerFields: ['bizType'], diff --git a/apps/web-antd/src/views/mes/wm/barcode/index.vue b/apps/web-antd/src/views/mes/wm/barcode/index.vue index 0e64bb09f..1e1b9d34d 100644 --- a/apps/web-antd/src/views/mes/wm/barcode/index.vue +++ b/apps/web-antd/src/views/mes/wm/barcode/index.vue @@ -31,18 +31,14 @@ const [FormModal, formModalApi] = useVbenModal({ const barcodeDetailRef = ref>(); -// TODO @AI:这里的 checkedIds,是不是拿到 handleRowCheckboxChange 代码块里?更简洁一点? -// TODO @AI:这里的代码风格,要和 system user index 保持一致,批量选择; -/** 已选条码 ID */ -const checkedIds = ref([]); - /** 处理勾选变化 */ +const checkedIds = ref([]); function handleRowCheckboxChange({ records, }: { records: MesWmBarcodeApi.Barcode[]; }) { - checkedIds.value = records.map((row) => row.id!).filter(Boolean); + checkedIds.value = records.map((item) => item.id!); } /** 刷新表格 */ diff --git a/apps/web-antd/src/views/mes/wm/materialstock/index.vue b/apps/web-antd/src/views/mes/wm/materialstock/index.vue index ad87860a1..d24ecaf3e 100644 --- a/apps/web-antd/src/views/mes/wm/materialstock/index.vue +++ b/apps/web-antd/src/views/mes/wm/materialstock/index.vue @@ -1,5 +1,4 @@