[add] 消息详情和动态详情页面

This commit is contained in:
lideqin
2024-09-18 11:51:36 +08:00
parent 02511dc019
commit a0ca364d32
3 changed files with 144 additions and 1 deletions
+6 -1
View File
@@ -264,6 +264,9 @@ const queryFileInfoByEditId = (params) => getAction('/onlyOffice/queryById', par
// 获取taskName
const queryTaskNameByTaskId = (params) => getAction('/workCenter/getByTaskId', params)
// 我的消息-详情
const getMsgDetail = (params) => getAction('/sys/sysAnnouncementSend/getDetailsById', params)
export {
queryPermissionsByUser,
getFormDictTreeList,
@@ -390,5 +393,7 @@ export {
queryFileInfoByEditId,
queryTaskNameByTaskId
queryTaskNameByTaskId,
getMsgDetail
}
+11
View File
@@ -70,6 +70,17 @@ const routes = [
},
component: () => import('@/views/exception/NoMobile')
},
{ // 消息详情
path: '/messageDetail',
name: 'messageDetail',
component: () => import('@/views/messageDetail/MessageDetail'),
meta: {
hasNavBar: true,
title: '消息详情',
pageTitle: 'messageDetail',
hasBack: true
}
},
...workCenter,
{
path: '*',
+127
View File
@@ -0,0 +1,127 @@
<template>
<div class="message-page">
<van-overlay :show="loading" :z-index="99999">
<van-loading />
</van-overlay>
<div v-if="!isDynamic">
<p class="message-page-title">{{ title }}</p>
<p class="message-page-sub-title">发布时间{{ model.sendTime }}</p>
<div class="message-page-content" v-html="model.msgContent"></div>
</div>
<div v-else>
<p class="message-page-title">动态详情{{ model.dynamicHeading }}</p>
<div class="message-page-sub-title">
<!--浏览量-->
<div>
<van-icon name="eye-o" />
{{ model.readCount }}
</div>
<!--编辑人-->
<div>
<label>编辑人</label>
<span>{{ model.writer_dictText }}</span>
</div>
<!--发布时间-->
<div>
<label>发布时间</label>
<span>{{ model.releaseTime }}</span>
</div>
</div>
<div class="message-page-content">
<div v-html="model.dynamicDetails"></div>
<file-display :file-ids="model.dataText" />
</div>
</div>
</div>
</template>
<script>
import { getMsgDetail } from '@/api/api'
import { getDynamicMessageById } from '@/api/standardRegulationLibraryApi'
import FileDisplay from '@/components/FileDisplay'
export default {
name: 'MessageDetail',
components: { FileDisplay },
data () {
return {
loading: false,
model: {},
title: '',
isDynamic: false // 是动态消息
}
},
mounted () {
console.log('-----------openPage', this.$route.query.openPage)
if (this.$route.query.openType === 'url' && this.$route.query.openPage.includes('/standardRegulationLibrary/DynamicMessageDetail')) {
this.isDynamic = true
// 是动态消息,获取动态消息详情
this.initDynamicDetail()
} else {
this.initPage()
}
},
methods: {
// 获取消息详情
initPage () {
this.loading = true
getMsgDetail({ id: this.$route.query.id }).then(res => {
if (res.success) {
const data = res.result || {}
this.model = data
this.title = data.titile
} else {
this.$message(res.message)
}
}).catch((err) => {
this.$message(err)
}).finally(() => {
this.loading = false
})
},
// 获取动态消息详情
initDynamicDetail () {
this.loading = true
const id = this.$route.query.openPage.split('=')[1]
getDynamicMessageById({ id: id, type: 'query' }).then(res => {
if (res.success) {
this.model = Object.assign({}, res.result || {})
} else {
this.$message(res.message)
}
}).finally(() => {
this.loading = false
})
}
}
}
</script>
<style scoped lang="less">
.van-overlay {
display: flex;
justify-content: center;
align-items: center;
background-color: rgba(0, 0, 0, 0.3);
}
.message-page {
&-title {
text-align: center;
font-size: 0.34rem;
font-weight: 600;
line-height: 0.4rem;
margin: 0.3rem 0.32rem 0.24rem;
}
&-sub-title {
text-align: center;
font-size: 0.26rem;
font-weight: 400;
line-height: 0.4rem;
margin: 0.3rem 0.32rem 0.24rem;
}
&-content {
padding: 0 0.3rem;
}
}
</style>