提交代码

This commit is contained in:
zlwu committed 2025-09-09 00:09:23 +08:00
1 parent 21856615db
commit 8ddd3a0d09
2 files changed
+174 -15

No files matched your search

+77 -4
View File
@@ -12,10 +12,19 @@
<el-table-column prop="nodeName" label="任务名称" sortable align="center"></el-table-column>
<el-table-column prop="approveName" :show-overflow-tooltip="true" label="办理人" sortable align="center">
<template #default="scope">
<template v-if="scope.row.approveName">
<template v-if="scope.row.approveUserDetails && scope.row.approveUserDetails.length > 0">
<div v-for="(userDetail, index) in scope.row.approveUserDetails" :key="index" style="margin-bottom: 4px">
<el-tag type="success">
{{ `${userDetail.nickName}/${userDetail.userName}/${userDetail.phonenumber || '无'}` }}
</el-tag>
</div>
</template>
<template v-else-if="scope.row.approveName">
<el-tag v-for="(item, index) in scope.row.approveName.split(',')" :key="index" type="success">{{ item }}</el-tag>
</template>
<template v-else> <el-tag type="success">无</el-tag></template>
<template v-else>
<el-tag type="success">无</el-tag>
</template>
</template>
</el-table-column>
<el-table-column prop="flowStatus" label="状态" width="80" sortable align="center">
@@ -62,6 +71,8 @@
import { flowHisTaskList } from '@/api/workflow/instance';
import { propTypes } from '@/utils/propTypes';
import { listByIds } from '@/api/system/oss';
import { optionSelect } from '@/api/system/user';
import { UserVO } from '@/api/system/user/types';
import FlowChart from '@/components/Process/flowChart.vue';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { wf_task_status } = toRefs<any>(proxy?.useDict('wf_task_status'));
@@ -81,11 +92,15 @@ const init = async (businessId: string | number) => {
loading.value = true;
tabActiveName.value = 'image';
historyList.value = [];
flowHisTaskList(businessId).then((resp) => {
try {
const resp = await flowHisTaskList(businessId);
if (resp.data) {
historyList.value = resp.data.list;
insId.value = resp.data.instanceId;
if (historyList.value.length > 0) {
// 获取附件信息
historyList.value.forEach((item) => {
if (item.ext) {
getIds(item.ext).then((res) => {
@@ -95,16 +110,74 @@ const init = async (businessId: string | number) => {
item.attachmentList = [];
}
});
// 获取所有办理人的详细信息
await getUserDetails();
}
loading.value = false;
}
});
} catch (error) {
console.error('获取审批记录失败:', error);
loading.value = false;
}
};
const getIds = async (ids: string | number) => {
const res = await listByIds(ids);
return res;
};
// 获取所有办理人的详细信息
const getUserDetails = async () => {
try {
// 收集所有办理人的用户ID
const allUserIds = new Set<string>();
historyList.value.forEach((item) => {
if (item.approver) {
const approverIds = item.approver.split(',').filter((id) => id.trim());
approverIds.forEach((id) => allUserIds.add(id.trim()));
}
});
if (allUserIds.size > 0) {
// 批量获取用户详细信息
const userIds = Array.from(allUserIds);
const userResponse = await optionSelect(userIds);
if (userResponse.data && userResponse.data.length > 0) {
// 创建用户ID到用户详细信息的映射
const userMap = new Map();
userResponse.data.forEach((user: UserVO) => {
userMap.set(String(user.userId), user);
});
// 为每个审批记录项添加办理人详细信息
historyList.value.forEach((item) => {
if (item.approver) {
const approverIds = item.approver.split(',').filter((id) => id.trim());
item.approveUserDetails = approverIds.map((id) => {
const userId = id.trim();
return (
userMap.get(userId) || {
userId: userId,
nickName: '未知用户',
userName: userId,
phonenumber: ''
}
);
});
} else {
item.approveUserDetails = [];
}
});
}
}
} catch (error) {
console.error('获取用户详细信息失败:', error);
// 如果获取用户详细信息失败,保持原有显示方式
}
};
/** 下载按钮操作 */
const handleDownload = (ossId: string, originalName: string) => {
console.log(ossId);