From 86484f1eaaedf0ca567f6aaa5064be924daa0c76 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期五, 28 八月 2026 21:59:30 +0800
Subject: [PATCH] feat: 审批详情携带附件
---
src/views/collaborativeApproval/approvalProcess/index.vue | 74 +++++++++++++++++++++++++++++--------
1 files changed, 58 insertions(+), 16 deletions(-)
diff --git a/src/views/collaborativeApproval/approvalProcess/index.vue b/src/views/collaborativeApproval/approvalProcess/index.vue
index 11a2869..b3c6daa 100644
--- a/src/views/collaborativeApproval/approvalProcess/index.vue
+++ b/src/views/collaborativeApproval/approvalProcess/index.vue
@@ -124,8 +124,9 @@
</el-card>
<!-- 寮圭獥缁勪欢 -->
- <info-form-dia ref="infoFormDia" @close="handleQuery" :approveType="currentApproveType"></info-form-dia>
- <approval-dia ref="approvalDia" @close="handleQuery" :approveType="currentApproveType"></approval-dia>
+ <info-form-dia ref="infoFormDia" @close="handleDialogClose" :approveType="currentApproveType"></info-form-dia>
+ <approval-dia ref="approvalDia" @close="handleDialogClose" :approveType="currentApproveType"></approval-dia>
+ <view-detail-dia ref="viewDetailDia" @close="handleDialogClose" :approveType="currentApproveType"></view-detail-dia>
<FileList v-if="fileDialogVisible"
v-model:visible="fileDialogVisible"
record-type="approve_process"
@@ -140,6 +141,7 @@
import { useRoute } from 'vue-router';
import InfoFormDia from "@/views/collaborativeApproval/approvalProcess/components/infoFormDia.vue";
import ApprovalDia from "@/views/collaborativeApproval/approvalProcess/components/approvalDia.vue";
+import ViewDetailDia from "@/views/collaborativeApproval/approvalProcess/components/viewDetailDia.vue";
import {approveProcessDelete, approveProcessListPage} from "@/api/collaborativeApproval/approvalProcess.js";
import useUserStore from "@/store/modules/user";
const FileList = defineAsyncComponent(() => import("@/components/Dialog/FileList.vue"));
@@ -207,6 +209,7 @@
// 鍔ㄦ�佽〃鏍煎垪閰嶇疆锛屾牴鎹鎵圭被鍨嬬敓鎴愬垪
const tableColumnCopy = computed(() => {
const isLeaveType = currentApproveType.value === 2; // 璇峰亣绠$悊
+ const isBusinessTripType = currentApproveType.value === 3; // 鍑哄樊绠$悊
const isReimburseType = currentApproveType.value === 4; // 鎶ラ攢绠$悊
const isQuotationType = currentApproveType.value === 6; // 鎶ヤ环瀹℃壒
const isPurchaseType = currentApproveType.value === 5; // 閲囪喘瀹℃壒
@@ -274,26 +277,52 @@
width: 120
});
}
+
+ // 璇峰亣绠$悊锛氬紑濮嬫棩鏈� / 缁撴潫鏃ユ湡
+ if (isLeaveType) {
+ baseColumns.push(
+ { label: "寮�濮嬫棩鏈�", prop: "startDate", width: 120 },
+ { label: "缁撴潫鏃ユ湡", prop: "endDate", width: 120 }
+ );
+ }
- // 鏃ユ湡鍒楋紙鏍规嵁绫诲瀷鍔ㄦ�侀厤缃級
- baseColumns.push(
- {
- label: isLeaveType ? "寮�濮嬫棩鏈�" : "鐢宠鏃ユ湡",
- prop: isLeaveType ? "startDate" : "approveTime",
- width: 200
- },
- {
- label: "缁撴潫鏃ユ湡",
- prop: isLeaveType ? "endDate" : "approveOverTime",
- width: 120
- }
- );
+ // 鍑哄樊绠$悊锛氬紑濮嬫椂闂� / 缁撴潫鏃堕棿锛堜笉鍚锛�
+ if (isBusinessTripType) {
+ baseColumns.push(
+ {
+ label: "寮�濮嬫椂闂�",
+ prop: "startDateTime",
+ width: 180,
+ formatData: (val) => val ? val.substring(0, 16) : ''
+ },
+ {
+ label: "缁撴潫鏃堕棿",
+ prop: "endDateTime",
+ width: 180,
+ formatData: (val) => val ? val.substring(0, 16) : ''
+ }
+ );
+ }
// 褰撳墠瀹℃壒浜哄垪
baseColumns.push({
label: "褰撳墠瀹℃壒浜�",
prop: "approveUserCurrentName",
width: 120
+ });
+
+ // 鐢宠鏃堕棿 - 鎵�鏈夌被鍨嬮兘鏄剧ず
+ baseColumns.push({
+ label: "鐢宠鏃堕棿",
+ prop: "approveTime",
+ width: 180,
+ });
+
+ // 瀹℃壒鏃堕棿 - 鎵�鏈夌被鍨嬮兘鏄剧ず
+ baseColumns.push({
+ label: "瀹℃壒鏃堕棿",
+ prop: "approveOverTime",
+ width: 180,
});
// 鎿嶄綔鍒�
@@ -366,12 +395,17 @@
});
const infoFormDia = ref()
const approvalDia = ref()
+const viewDetailDia = ref()
const { proxy } = getCurrentInstance()
// 鏌ヨ鍒楄〃
/** 鎼滅储鎸夐挳鎿嶄綔 */
const handleQuery = () => {
page.current = 1;
+ getList();
+};
+
+const handleDialogClose = () => {
getList();
};
@@ -398,6 +432,10 @@
page.total = res.data.total;
// 鏇存柊褰撳墠绫诲瀷鏁伴噺
typeCounts.value[activeTab.value] = res.data.total;
+ if (res.data.records.length === 0 && page.current > 1) {
+ page.current = Math.max(1, Math.ceil(res.data.total / page.size));
+ getList();
+ }
}).catch(err => {
tableLoading.value = false;
})
@@ -443,7 +481,11 @@
// 鎵撳紑鏂板妫�楠屽脊妗�
const openApprovalDia = (type, row) => {
nextTick(() => {
- approvalDia.value?.openDialog(type, row)
+ if (type === 'view') {
+ viewDetailDia.value?.openDialog(type, row)
+ } else {
+ approvalDia.value?.openDialog(type, row)
+ }
})
};
--
Gitblit v1.9.3