From 7250934a41d78d2d38e329aaeafadba6c9bf5e14 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 4 Oct 2025 17:07:58 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E3=80=90antd=E3=80=91=E3=80=90erp?= =?UTF-8?q?=20=E7=B3=BB=E7=BB=9F=E3=80=91sale=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=A3=8E=E6=A0=BC=EF=BC=88=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=B7=B2=E5=87=BA=E5=BA=93=E7=AD=89=E5=8A=A8=E6=80=81=E5=88=97?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/views/erp/sale/out/data.ts | 20 ++++++++++++++++++- .../views/erp/sale/out/modules/item-form.vue | 3 +++ .../src/views/erp/sale/return/data.ts | 8 +++++--- .../erp/sale/return/modules/item-form.vue | 5 ++++- 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/apps/web-antd/src/views/erp/sale/out/data.ts b/apps/web-antd/src/views/erp/sale/out/data.ts index 50c353560..7e66cd053 100644 --- a/apps/web-antd/src/views/erp/sale/out/data.ts +++ b/apps/web-antd/src/views/erp/sale/out/data.ts @@ -214,7 +214,9 @@ export function useFormSchema(formType: string): VbenFormSchema[] { } /** 表单的明细表格列 */ -export function useFormItemColumns(): VxeTableGridOptions['columns'] { +export function useFormItemColumns( + formData?: any[], +): VxeTableGridOptions['columns'] { return [ { type: 'seq', title: '序号', minWidth: 50, fixed: 'left' }, { @@ -250,6 +252,22 @@ export function useFormItemColumns(): VxeTableGridOptions['columns'] { minWidth: 150, slots: { default: 'remark' }, }, + { + field: 'totalCount', + title: '原数量', + formatter: 'formatAmount3', + minWidth: 120, + fixed: 'right', + visible: formData && formData[0]?.outCount !== undefined, + }, + { + field: 'outCount', + title: '已出库', + formatter: 'formatAmount3', + minWidth: 120, + fixed: 'right', + visible: formData && formData[0]?.returnCount !== undefined, + }, { field: 'count', title: '数量', diff --git a/apps/web-antd/src/views/erp/sale/out/modules/item-form.vue b/apps/web-antd/src/views/erp/sale/out/modules/item-form.vue index 1174a69a3..b3db88255 100644 --- a/apps/web-antd/src/views/erp/sale/out/modules/item-form.vue +++ b/apps/web-antd/src/views/erp/sale/out/modules/item-form.vue @@ -94,6 +94,9 @@ watch( tableData.value = [...items]; await nextTick(); // 特殊:保证 gridApi 已经初始化 await gridApi.grid.reloadData(tableData.value); + // 更新表格列配置(目的:原数量、已出库动态列) + const columns = useFormItemColumns(tableData.value); + await gridApi.grid.reloadColumn(columns); }, { immediate: true, diff --git a/apps/web-antd/src/views/erp/sale/return/data.ts b/apps/web-antd/src/views/erp/sale/return/data.ts index 7f6b4d9f9..428c14e16 100644 --- a/apps/web-antd/src/views/erp/sale/return/data.ts +++ b/apps/web-antd/src/views/erp/sale/return/data.ts @@ -213,7 +213,9 @@ export function useFormSchema(formType: string): VbenFormSchema[] { } /** 表单的明细表格列 */ -export function useFormItemColumns(): VxeTableGridOptions['columns'] { +export function useFormItemColumns( + formData?: any[], +): VxeTableGridOptions['columns'] { return [ { type: 'seq', title: '序号', minWidth: 50, fixed: 'left' }, { @@ -249,21 +251,21 @@ export function useFormItemColumns(): VxeTableGridOptions['columns'] { minWidth: 150, slots: { default: 'remark' }, }, - // TODO @AI:formData[0]?.outCount != null { field: 'totalCount', title: '已出库', formatter: 'formatAmount3', minWidth: 120, fixed: 'right', + visible: formData && formData[0]?.outCount !== undefined, }, - // TODO @AI:formData[0]?.returnCount != null { field: 'returnCount', title: '已退货', formatter: 'formatAmount3', minWidth: 120, fixed: 'right', + visible: formData && formData[0]?.returnCount !== undefined, }, { field: 'count', diff --git a/apps/web-antd/src/views/erp/sale/return/modules/item-form.vue b/apps/web-antd/src/views/erp/sale/return/modules/item-form.vue index 01e86e1b5..2ad54238a 100644 --- a/apps/web-antd/src/views/erp/sale/return/modules/item-form.vue +++ b/apps/web-antd/src/views/erp/sale/return/modules/item-form.vue @@ -65,7 +65,7 @@ const summaries = computed(() => { /** 表格配置 */ const [Grid, gridApi] = useVbenVxeGrid({ gridOptions: { - columns: useFormItemColumns(), + columns: useFormItemColumns(tableData.value), data: tableData.value, minHeight: 250, autoResize: true, @@ -94,6 +94,9 @@ watch( tableData.value = [...items]; await nextTick(); // 特殊:保证 gridApi 已经初始化 await gridApi.grid.reloadData(tableData.value); + // 更新表格列配置(目的:已出库、已出库动态列) + const columns = useFormItemColumns(tableData.value); + await gridApi.grid.reloadColumn(columns); }, { immediate: true,