yyb
11 小时以前 4ab0be7d4441f378add1f242b168d80fb27e65fe
src/views/officeProcessAutomation/ApproveManage/approve-shared/approvalInstanceFormConfigTable.js
@@ -5,9 +5,46 @@
  formatFieldDisplayValue,
  resolveInstanceFormFields,
} from "../approve-list/approveListConstants.js";
import {
  INSTANCE_NO_SEARCH_MODULE_KEYS,
  INSTANCE_NO_TABLE_COLUMN,
} from "./approvalInstanceListSearch.js";
/** 列表/详情不回显为独立列的填报项 key */
const DEFAULT_EXCLUDE_KEYS = new Set(["summary"]);
/** 列表/详情不回显为独立列的填报项 key(避免覆盖实例系统字段) */
const DEFAULT_EXCLUDE_KEYS = new Set([
  "summary",
  "status",
  "approvalStatus",
  "approvalstatus",
  "instanceStatus",
  "publishStatus",
  "newsStatus",
]);
/** enrich 后必须保留的实例字段(不被 formConfig 铺平覆盖) */
const PRESERVE_INSTANCE_FIELDS = [
  "id",
  "approvalStatus",
  "statusRaw",
  "status",
  "instanceNo",
  "templateId",
  "templateName",
  "businessType",
  "businessId",
  "businessName",
  "applicantId",
  "applicantNo",
  "applicantName",
  "createTime",
  "applyTime",
  "finishTime",
  "title",
  "isApprove",
  "unread",
  "currentLevel",
  "newsStatus",
];
/**
 * 从行数据 formConfig 解析字段定义与填报值,并铺平到行上供主表 prop 绑定(展示用格式化值)
@@ -41,6 +78,10 @@
    displayRow[f.key] = text;
  }
  for (const key of PRESERVE_INSTANCE_FIELDS) {
    if (row[key] !== undefined) displayRow[key] = row[key];
  }
  return displayRow;
}
@@ -64,6 +105,7 @@
 */
export function buildInstanceTableColumns(tableDataRef, buildTableActions, options = {}) {
  const {
    moduleKey,
    excludeKeys = DEFAULT_EXCLUDE_KEYS,
    beforeFormColumns = [],
    extraColumns = [],
@@ -71,9 +113,15 @@
    actionWidth = 260,
  } = options;
  const leadingCols =
    moduleKey && INSTANCE_NO_SEARCH_MODULE_KEYS.has(moduleKey)
      ? [INSTANCE_NO_TABLE_COLUMN]
      : [];
  return computed(() => {
    const formCols = getFormConfigFieldColumns(tableDataRef.value?.[0], { excludeKeys });
    return [
      ...leadingCols,
      ...beforeFormColumns,
      ...formCols,
      ...extraColumns,