6 天以前 6a234d4aeeb2f63bc7477b00de3c23896c9d001a
src/views/collaborativeApproval/approvalProcess/index.vue
@@ -70,7 +70,7 @@
          <el-button
            type="primary"
            @click="openForm('add')"
            v-if="currentApproveType !== 5 && currentApproveType !== 6 && currentApproveType !== 7"
            v-if="currentApproveType !== 5 && currentApproveType !== 6 && currentApproveType !== 7 && currentApproveType !== 9"
            class="action-btn primary"
          >
            <el-icon><Plus /></el-icon>
@@ -84,7 +84,7 @@
            type="danger"
            plain
            @click="handleDelete"
            v-if="currentApproveType !== 5 && currentApproveType !== 6 && currentApproveType !== 7"
            v-if="currentApproveType !== 5 && currentApproveType !== 6 && currentApproveType !== 7 && currentApproveType !== 9"
            class="action-btn danger"
          >
            <el-icon><Delete /></el-icon>
@@ -142,6 +142,10 @@
import useUserStore from "@/store/modules/user";
const userStore = useUserStore();
// 当前用户是否为管理员(角色 普通2/admin/最高1),可不受审批人限制审批
const isAdminUser = computed(() =>
  ["admin", "普通2", "最高1"].some(r => (userStore.roles || []).includes(r))
);
const route = useRoute();
// 当前选中的标签页,默认为公出管理
@@ -159,6 +163,7 @@
  { value: '5', label: '采购审批', icon: 'ShoppingCart', color: '#909399' },
  { value: '6', label: '报价审批', icon: 'DocumentChecked', color: '#9B59B6' },
  { value: '7', label: '发货审批', icon: 'Van', color: '#1ABC9C' },
  { value: '9', label: '用印审批', icon: 'Stamp', color: '#7D3C98' },
];
// 当前审批类型信息
@@ -286,11 +291,11 @@
    }
  );
  
  // 当前审批人列
  // 当前审批人列(支持同节点多审批人)
  baseColumns.push({
    label: "当前审批人",
    prop: "approveUserCurrentName",
    width: 120
    prop: "currentApproverNames",
    width: 180
  });
  
  // 操作列
@@ -305,6 +310,7 @@
        currentApproveType.value === 5 ||
        currentApproveType.value === 6 ||
        currentApproveType.value === 7 ||
        currentApproveType.value === 9 ||
        row.approveStatus == 2 ||
        row.approveStatus == 1 ||
        row.approveStatus == 4
@@ -316,11 +322,10 @@
        openApprovalDia("approval", row);
      },
      disabled: (row) =>
        row.approveUserCurrentId == null ||
        row.approveStatus == 2 ||
        row.approveStatus == 3 ||
        row.approveStatus == 4 ||
        row.approveUserCurrentId !== userStore.id
        !row._canApprove
    },
    {
      name: "详情",
@@ -331,8 +336,8 @@
    },
  ];
  // 报价审批(类型 6)不展示"附件"操作
  if (!isQuotationType) {
  // 报价审批(类型 6)、用印审批(类型 9)不展示"附件"操作(附件走 common_file,不走 storage_attachment)
  if (!isQuotationType && currentApproveType.value !== 9) {
    actionOperations.push({
      name: "附件",
      type: "text",
@@ -385,7 +390,12 @@
  tableLoading.value = true;
  approveProcessListPage({...page, ...searchForm.value, approveType: currentApproveType.value}).then(res => {
    tableLoading.value = false;
    tableData.value = res.data.records
    // 富化行数据:当前审批人显示(多值兜底旧单值)+ 当前用户是否可审核
    tableData.value = (res.data.records || []).map(r => ({
      ...r,
      currentApproverNames: r.approveUserCurrentNames || r.approveUserCurrentName || '-',
      _canApprove: isAdminUser.value || String(r.approveUserCurrentIds ?? '').split(',').filter(Boolean).includes(String(userStore.id)) || r.approveUserCurrentId === userStore.id
    }));
    page.total = res.data.total;
    // 更新当前类型数量
    typeCounts.value[activeTab.value] = res.data.total;
@@ -405,6 +415,7 @@
    5: "/approveProcess/exportFive",
    6: "/approveProcess/exportSix",
    7: "/approveProcess/exportSeven",
    9: "/approveProcess/exportNine",
  }
  const url = urlMap[type] || urlMap[0]
  const nameMap = {
@@ -416,6 +427,7 @@
    5: "采购申请审批表",
    6: "报价审批表",
    7: "发货审批表",
    9: "用印审批表",
  }
  const fileName = nameMap[type] || nameMap[0]
  proxy.download(url, {}, `${fileName}.xlsx`)