1
1
<script setup lang="ts">
2
2
import routeLinks from " @/router/routeLinks" ;
3
3
import Message , { MessageStatus } from " @/resources/Message" ;
4
- import { defineProps } from " vue" ;
4
+ import { computed , defineProps } from " vue" ;
5
5
import { formatDotNetTimespan } from " @/composables/formatUtils" ;
6
- import { useRoute , useRouter } from " vue-router" ;
6
+ import { useRouter , RouterLink } from " vue-router" ;
7
7
import MessageStatusIcon from " @/components/audit/MessageStatusIcon.vue" ;
8
8
9
- const route = useRoute ();
10
9
const router = useRouter ();
11
10
12
11
const props = defineProps <{
13
12
message: Message ;
14
13
}>();
15
-
16
- function navigateToMessage(message : Message ) {
14
+ const link = computed (() => {
17
15
const query = router .currentRoute .value .query ;
18
16
19
- router .push ({
20
- path: message .status === MessageStatus .Successful || message .status === MessageStatus .ResolvedSuccessfully ? routeLinks .messages .successMessage .link (message .message_id , message .id ) : routeLinks .messages .failedMessage .link (message .id ),
21
- query: { ... query , ... { back: route .path } },
17
+ const route = router .resolve ({
18
+ path:
19
+ props .message .status === MessageStatus .Successful || props .message .status === MessageStatus .ResolvedSuccessfully
20
+ ? routeLinks .messages .successMessage .link (props .message .message_id , props .message .id )
21
+ : routeLinks .messages .failedMessage .link (props .message .id ),
22
+ query: { ... query , ... { back: router .currentRoute .value .path } },
22
23
});
23
- }
24
+
25
+ return route ;
26
+ });
24
27
</script >
25
28
26
29
<template >
27
- <div class =" item" @click = " navigateToMessage(props.message) " >
30
+ <RouterLink class =" item" :to = " link " >
28
31
<div class =" status" >
29
32
<MessageStatusIcon :message =" props.message" />
30
33
</div >
@@ -34,11 +37,13 @@ function navigateToMessage(message: Message) {
34
37
<div class =" critical-time" ><span class =" label-name" >Critical Time:</span >{{ formatDotNetTimespan(props.message.critical_time) }}</div >
35
38
<div class =" processing-time" ><span class =" label-name" >Processing Time:</span >{{ formatDotNetTimespan(props.message.processing_time) }}</div >
36
39
<div class =" delivery-time" ><span class =" label-name" >Delivery Time:</span >{{ formatDotNetTimespan(props.message.delivery_time) }}</div >
37
- </div >
40
+ </RouterLink >
38
41
</template >
39
42
40
43
<style scoped>
41
44
.item {
45
+ color : inherit ;
46
+ text-decoration : none ;
42
47
padding : 0.3rem 0.2rem ;
43
48
border : 1px solid #ffffff ;
44
49
border-bottom : 1px solid #eee ;
@@ -56,7 +61,6 @@ function navigateToMessage(message: Message) {
56
61
.item :hover {
57
62
border-color : var (--sp-blue );
58
63
background-color : #edf6f7 ;
59
- cursor : pointer ;
60
64
}
61
65
.label-name {
62
66
margin-right : 0.25rem ;
0 commit comments