src/views/officeProcessAutomation/ApproveManage/approve-list/useApproveList.js
@@ -13,6 +13,7 @@
import { getQuotationList } from "@/api/salesManagement/salesQuotation.js";
import { getPurchaseByCode } from "@/api/procurementManagement/procurementLedger.js";
import { getDeliveryDetailByShippingNo } from "@/api/salesManagement/deliveryLedger.js";
import { ledgerListPage } from "@/api/salesManagement/salesLedger.js";
import useUserStore from "@/store/modules/user";
import { Search } from "@element-plus/icons-vue";
import { ElMessage, ElMessageBox } from "element-plus";
@@ -120,6 +121,18 @@
    return hit?.label || "";
  }
  // 列表「业务单号」:按业务类型取对应的单号(19=销售台账审批)
  function businessNoOf(row) {
    return (
      row?.salesContractNo ||
      row?.quotationNo ||
      row?.purchaseContractNumber ||
      row?.shippingNo ||
      row?.bizId ||
      ""
    );
  }
  function countTemplatesByBusinessType(type) {
    return allSubmitTemplates.value.filter((card) => matchBusinessTypeValue(card.businessType, type)).length;
  }
@@ -140,8 +153,15 @@
  const tableColumn = ref([
    // { label: "申请人编号", prop: "applicantNo", width: 110 },
    { label: "申请人名称", prop: "applicantName", minWidth: 100 },
    { label: "发起人", prop: "applicantName", minWidth: 100 },
    { label: "模板类型", prop: "businessName", minWidth: 120 },
    {
      label: "业务单号",
      prop: "businessNo",
      minWidth: 170,
      dataType: "slot",
      slot: "bizNo",
    },
    {
      label: "审批类型",
      prop: "approvalType",
@@ -154,7 +174,9 @@
      prop: "unread",
      width: 90,
      align: "center",
      dataType: "tag",
      formatData: (v) => (v ? "是" : "否"),
      formatType: (v) => (v ? "success" : "danger"),
    },
    {
      label: "审批状态",
@@ -190,11 +212,11 @@
          disabled: (row) => row.approvalStatus !== "pending" || !row.isApprove,
          clickFun: (row) => openApprove(row),
        },
        {
          name: "删除",
          type: "danger",
          clickFun: (row) => removeInstance(row),
        },
        // {
        //   name: "删除",
        //   type: "danger",
        //   clickFun: (row) => removeInstance(row),
        // },
      ],
    },
  ]);
@@ -308,7 +330,10 @@
    else if (row.businessType === 5) {
      const purchaseContractNumber = row?.purchaseContractNumber;
      if (purchaseContractNumber) {
        const res = await getPurchaseByCode({ purchaseContractNumber });
        const res = await getPurchaseByCode({
          purchaseContractNumber,
          approvalInstanceId: row?.id,
        });
        detailData.value = res || {};
      }
    }
@@ -321,13 +346,29 @@
        detailData.value = res?.data || res || {};
      }
    }
    // 销售台账审批:用审批事由字段承载的"销售合同号"去查台账列表
    else if (row.businessType === 19) {
      detailData.value = await fetchSalesLedgerByContractNo(row?.salesContractNo);
    }
    // 其他审批类型
    else {
      detailData.value = {};
    }
    detailDialog.visible = true;
  }
  async function fetchSalesLedgerByContractNo(salesContractNo) {
    if (!salesContractNo) return {};
    // /sales/ledger/listPage 直接返回 IPage(顶层 records),没有 code/msg 外层
    const res = await ledgerListPage({
      salesContractNo,
      pageNum: 1,
      pageSize: 1,
    });
    return res?.records?.[0] || {};
  }
  async function openApprove(row) {
@@ -353,7 +394,10 @@
    else if (row.businessType === 5) {
      const purchaseContractNumber = row?.purchaseContractNumber;
      if (purchaseContractNumber) {
        const res = await getPurchaseByCode({ purchaseContractNumber });
        const res = await getPurchaseByCode({
          purchaseContractNumber,
          approvalInstanceId: row?.id,
        });
        detailData.value = res || {};
      }
    }
@@ -365,6 +409,11 @@
        const res = await getDeliveryDetailByShippingNo({ shippingNo });
        detailData.value = res?.data || res || {};
      }
    }
    // 销售台账审批:用审批事由字段承载的"销售合同号"去查台账列表
    else if (row.businessType === 19) {
      detailData.value = await fetchSalesLedgerByContractNo(row?.salesContractNo);
    }
    // 其他审批类型
@@ -678,6 +727,7 @@
    selectedBusinessType,
    selectedBusinessTypeLabel,
    businessTypeLabel,
    businessNoOf,
    countTemplatesByBusinessType,
    submitTemplatesLoading,
    handleQuery,
@@ -697,4 +747,4 @@
    openApprove,
    fetchApprovalList,
  };
}
}