浏览代码

feat(Header): 更新消息列表跳转逻辑

- 修改跳转逻辑,使用item对象代替id进行跳转
- 增加对'todoList'标签的处理,跳转至特定审批页面
- 优化跳转逻辑,根据activeTabName决定跳转路径
luoyali 9 月之前
父节点
当前提交
c6ffb05ac9
共有 2 个文件被更改,包括 28 次插入23 次删除
  1. 8 3
      src/layout/components/Header/components/Message.vue
  2. 20 20
      src/views/approve/components/approvedItem.vue

+ 8 - 3
src/layout/components/Header/components/Message.vue

@@ -37,7 +37,7 @@
 			<div class="mt-2">
 				<template v-if="tabsConfig[activeTab].list.length">
 					<div class="message-list">
-						<div v-for="item of tabsConfig[activeTab].list" :key="item.id" class="message-item" @click="jumpMessageDetail(item.id)">
+						<div v-for="item of tabsConfig[activeTab].list" :key="item.id" class="message-item" @click="jumpMessageDetail(item)">
 							<div>
 								<el-avatar :style="{ backgroundColor: 'var(--el-color-primary)', color: 'var(--el-color-white)' }">
 									<span style="transform: scale(0.8)">
@@ -120,8 +120,13 @@ const jumpMessageInfo = () => {
 	router.push('/message/list')
 }
 
-const jumpMessageDetail = (id: any) => {
-	router.push('/message/list?id=' + id)
+const jumpMessageDetail = (item: any) => {
+	const activeTabName = activeTab.value
+	if (activeTabName === 'todoList') {
+		router.push({ path: '/approve/pending-approval', query: { id: item.businessId } })
+		return
+	}
+	router.push('/message/list?id=' + item.id)
 }
 
 const handleReadAll = async () => {

+ 20 - 20
src/views/approve/components/approvedItem.vue

@@ -127,6 +127,7 @@
 </template>
 
 <script setup>
+import { useRoute } from 'vue-router'
 import useTaskProcessStore from '@/store/modules/taskProcess'
 import FlowNodeAvatar from '@/components/Flow/FlowNodeAvatar.vue'
 // import { Search, Filter, Refresh } from '@element-plus/icons-vue'
@@ -187,12 +188,7 @@ const instanceStateOps = [
 		label: '强制终止'
 	}
 ]
-// const processName = ref('') // 流程名称
-// const createId = ref(null) // 发起人
-// const createBy = ref(null) // 创建人
-// const instanceState = ref(null) // 流程状态
-// const beginTime = ref(null) // 开始时间
-// const endTime = ref(null) // 结束时间
+const routeId = ref(null)
 const searchMoreVisible = ref(false)
 const isCollapsed = ref(false)
 // store值
@@ -269,6 +265,11 @@ const loadList = () => {
 	getPagedSatellites()
 }
 
+// 点击当前实例的具体
+const getTaskDetail = item => {
+	taskProcessInfo.setCurrentTaskRow(item)
+}
+
 // 获取分页数据
 const getPagedSatellites = async isInit => {
 	loading.value = true
@@ -277,14 +278,7 @@ const getPagedSatellites = async isInit => {
 		const { currentTaskType } = props
 		const params = {
 			...condition,
-			data: searchParams
-			/*data: {
-				processName: processName.value,
-				createBy: createBy.value,
-				instanceState: instanceState.value,
-				beginTime: beginTime.value,
-				endTime: endTime.value
-			}*/
+			data: { ...searchParams, instanceId: routeId.value }
 		}
 		if (currentTaskType === 'pendingApproval') {
 			responseData = await processTaskPagePendingApprovalApi(params)
@@ -313,6 +307,12 @@ const getPagedSatellites = async isInit => {
 			}
 		})
 
+		// 只针对从通知中心代办跳转进入待审核页面使用
+		if (routeId.value && currentTaskType === 'pendingApproval') {
+			const item = records.find(item => item.instanceId === routeId.value)
+			getTaskDetail(item)
+		}
+
 		if (isInit) {
 			listData.value.list = records
 			// list.value = records
@@ -334,11 +334,6 @@ const getPagedSatellites = async isInit => {
 	}
 }
 
-// 点击当前实例的具体
-const getTaskDetail = item => {
-	taskProcessInfo.setCurrentTaskRow(item)
-}
-
 // 开始时间的禁用
 const disabledDateStart = time => {
 	if (!searchParams.endTime) return false
@@ -360,13 +355,18 @@ const resetSearch = type => {
 	if (type === 'external') {
 		// processName.value = ''
 		searchParams.processName = undefined
+		routeId.value = undefined
 		initList()
 	}
 }
 
 onMounted(() => {
+	const route = useRoute()
+	routeId.value = route.query.id
 	taskProcessInfo.refresh = true
-	taskProcessInfo.setCurrentTaskRow({})
+	if (!routeId.value) {
+		taskProcessInfo.setCurrentTaskRow({})
+	}
 })
 
 /**