feat:【antd】【erp 系统】sale 重构代码风格(增加已出库等动态列)

This commit is contained in:
YunaiV
2025-10-04 17:07:58 +08:00
parent dd9fd6e284
commit 7250934a41
4 changed files with 31 additions and 5 deletions

View File

@@ -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: '数量',

View File

@@ -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,

View File

@@ -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 @AIformData[0]?.outCount != null
{
field: 'totalCount',
title: '已出库',
formatter: 'formatAmount3',
minWidth: 120,
fixed: 'right',
visible: formData && formData[0]?.outCount !== undefined,
},
// TODO @AIformData[0]?.returnCount != null
{
field: 'returnCount',
title: '已退货',
formatter: 'formatAmount3',
minWidth: 120,
fixed: 'right',
visible: formData && formData[0]?.returnCount !== undefined,
},
{
field: 'count',

View File

@@ -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,