优化消息

bak
Dragon 1 year ago
parent a0f22b6127
commit ea8258e973

@ -36,6 +36,14 @@ const routes: Array<RouteRecordRaw> = [
}, },
component: () => import('@/views/message/index.vue'), component: () => import('@/views/message/index.vue'),
}, },
{
path: 'message-detail',
name: 'message-detail',
meta: {
title: 'message',
},
component: () => import('@/views/message/content/Detail.vue'),
},
], ],
}, },
] ]

@ -2,7 +2,7 @@
import { reactive, ref, toRefs } from 'vue' import { reactive, ref, toRefs } from 'vue'
import { useMessage } from 'naive-ui' import { useMessage } from 'naive-ui'
import { format } from 'date-fns' import { format } from 'date-fns'
import { useRoute } from 'vue-router'
import { msgOne, readMsg } from '@/api/message/message' import { msgOne, readMsg } from '@/api/message/message'
const props = defineProps({ const props = defineProps({
@ -11,33 +11,34 @@ const props = defineProps({
default: '', default: '',
}, },
}) })
const route = useRoute()
const message = useMessage() const message = useMessage()
const state: any = reactive({ const state: any = reactive({
detail: {}, detail: null,
}) })
const { detail } = toRefs(state) const { detail } = toRefs(state)
async function getDetail() { async function getDetail() {
const res = await msgOne({ id: props.id }) const res = await msgOne({ id: route.query.id })
if (!state.detail.readFlag)
clearMsg()
if (res.code === 'OK') if (res.code === 'OK')
state.detail = res.data state.detail = res.data
if (!state.detail.readFlag)
clearMsg()
else else
message.error(res.message) message.error(res.message)
} }
async function clearMsg() { async function clearMsg() {
const res = await readMsg({ msgid: props.id }) const res = await readMsg({ msgid: route.query.id })
} }
getDetail() getDetail()
</script> </script>
<template> <template>
<div class="wrapper-message"> <div v-if="detail" class="wrapper-message">
<div class="left-card"> <div class="left-card">
<div class="title"> <div class="title">
{{ detail.titile }} {{ detail.titile }}

@ -1,6 +1,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, ref, toRefs } from 'vue' import { reactive, ref, toRefs } from 'vue'
import { format } from 'date-fns' import { format } from 'date-fns'
import { useRoute, useRouter } from 'vue-router'
import { getMessageList, readAllMsg, readMsg } from '@/api/message/message' import { getMessageList, readAllMsg, readMsg } from '@/api/message/message'
import iconApproveActive from '@/assets/images/message/approve-active.png' import iconApproveActive from '@/assets/images/message/approve-active.png'
import iconApprove from '@/assets/images/message/approve.png' import iconApprove from '@/assets/images/message/approve.png'
@ -12,7 +13,8 @@ import iconClear from '@/assets/images/message/clear.png'
import iconArrowDown from '@/assets/images/message/arrow-down.png' import iconArrowDown from '@/assets/images/message/arrow-down.png'
const emit = defineEmits(['goDetail']) const emit = defineEmits(['goDetail'])
const router = useRouter()
const route = useRoute()
const hasNextPage = ref(false) const hasNextPage = ref(false)
const state = reactive({ const state = reactive({
@ -73,7 +75,8 @@ function goDetail(item) {
clearMsgOne(item.id) clearMsgOne(item.id)
else else
emit('goDetail', item.id) // emit('goDetail', item.id)
router.push({ name: 'message-detail', query: { id: item.id } })
} }
async function clearMsgOne(id) { async function clearMsgOne(id) {
@ -198,7 +201,6 @@ function getMore() {
.content{ .content{
display: flex; display: flex;
padding-right: 24px;
.slider{ .slider{
.icon{ .icon{
width: 17px; width: 17px;
@ -262,6 +264,7 @@ function getMore() {
padding-bottom: 97px; padding-bottom: 97px;
box-sizing: border-box; box-sizing: border-box;
height: calc(100vh - 88px - 76px); height: calc(100vh - 88px - 76px);
padding-right: 24px;
.more{ .more{
display: flex; display: flex;

Loading…
Cancel
Save