liu
昨天 18340ebdeb405be3ba01eb4d1600d9b26cee7ccd
fix(erp): 查看审批明细时明细表格取消固定列

采购订单、销售订单的审批详情弹窗较窄,明细表格右侧连续冻结了 7 列
(是否质检、数量、产品单价、金额、税率、税额、税额合计),加上左侧序号列,
固定列占满可视区,把产品名称、单位、备注等列挤掉。

新增 withoutFixedColumns 工具方法,在只读(disabled=true)场景下移除列的
fixed 配置;新增/编辑单据时仍保留原有固定列。

Co-Authored-By: Claude <noreply@anthropic.com>
已修改3个文件
27 ■■■■ 文件已修改
src/utils/index.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/erp/purchase/order/data.ts 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/erp/sale/order/data.ts 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/index.ts
@@ -30,3 +30,18 @@
  });
  return index;
};
/**
 * 去掉表格列的固定(fixed)配置
 *
 * 用于「查看审批明细 / 详情」等只读场景:此时表格容器较窄,
 * 固定列会挤占可视宽度,把产品名称、单位、备注等列遮住。
 *
 * @param columns 原始表格列配置
 */
export function withoutFixedColumns<T>(columns?: null | T[]): T[] {
  return (columns ?? []).map((column) => {
    const { fixed: _fixed, ...rest } = column as Recordable<any>;
    return rest as unknown as T;
  });
}
src/views/erp/purchase/order/data.ts
@@ -12,7 +12,7 @@
import { getSupplierSimpleList } from '#/api/srm/supplier';
import { getSimpleUserList } from '#/api/system/user';
import { MdmItemSelect } from '#/views/basicData/mdm/components';
import { getRangePickerDefaultProps } from '#/utils';
import { getRangePickerDefaultProps, withoutFixedColumns } from '#/utils';
/** 表单类型 */
export type FormType = 'create' | 'detail' | 'edit';
@@ -175,7 +175,7 @@
export function useFormItemColumns(
  disabled: boolean,
): VxeTableGridOptions['columns'] {
  return [
  const columns: VxeTableGridOptions['columns'] = [
    { type: 'seq', title: '序号', minWidth: 50, fixed: 'left' },
    {
      field: 'productId',
@@ -251,6 +251,8 @@
      visible: !disabled,
    },
  ];
  // 查看审批明细(只读)时取消固定列,避免窄弹窗里挤掉产品名称、单位、备注等列
  return disabled ? withoutFixedColumns(columns) : columns;
}
/** 列表的搜索表单 */
src/views/erp/sale/order/data.ts
@@ -7,7 +7,7 @@
import { getAccountSimpleList } from '#/api/erp/finance/account';
import { getItemPage } from '#/api/mdm/item';
import { getSimpleUserList } from '#/api/system/user';
import { getRangePickerDefaultProps } from '#/utils';
import { getRangePickerDefaultProps, withoutFixedColumns } from '#/utils';
import CrmCustomerSelect from '#/components/crm-customer-select.vue';
import { markRaw } from 'vue';
@@ -211,7 +211,7 @@
export function useFormItemColumns(
  disabled: boolean,
): VxeTableGridOptions['columns'] {
  return [
  const columns: VxeTableGridOptions['columns'] = [
    { type: 'seq', title: '序号', minWidth: 50, fixed: 'left' },
    {
      field: 'productId',
@@ -311,6 +311,8 @@
      visible: !disabled,
    },
  ];
  // 查看审批明细(只读)时取消固定列,避免窄弹窗里挤掉产品名称、单位、备注等列
  return disabled ? withoutFixedColumns(columns) : columns;
}
/** 列表的搜索表单 */