You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
3.0 KiB
124 lines
3.0 KiB
<template>
|
|
<view class="messageDetail">
|
|
<global-loading />
|
|
<h3 class="detailTit">{{messageDateils.noticeTitle}}</h3>
|
|
<view class="detailTime" v-if="messageDateils.createTime">{{$t('common.time')}}:{{messageDateils.createTime}}</view>
|
|
<view class="detailInfo">
|
|
<rich-text :nodes="htmlData"></rich-text>
|
|
<img :src="messageDateils.image" alt="">
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import parse from 'mini-html-parser2';
|
|
import GlobalLoading from "../../components/diyLoading";
|
|
const NET = require('../../utils/request')
|
|
const API = require('../../config/api')
|
|
export default {
|
|
name: "messageDetail",
|
|
components: {GlobalLoading},
|
|
data() {
|
|
return {
|
|
onlyid: 0,
|
|
messageDateils: {},
|
|
htmlData: []
|
|
}
|
|
},
|
|
onShow() {
|
|
this.getNotice()
|
|
},
|
|
onLoad(options) {
|
|
this.onlyid = options.noticeId
|
|
this.getNotice()
|
|
},
|
|
methods: {
|
|
formatRichText(html) {
|
|
let newContent = html.replace(/<img[^>]*>/gi, function(match, capture) {
|
|
match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '');
|
|
match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '');
|
|
match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '');
|
|
return match;
|
|
});
|
|
newContent = newContent.replace(/style="[^"]+"/gi, function(match, capture) {
|
|
match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi,
|
|
'max-width:100%;');
|
|
return match;
|
|
});
|
|
newContent = newContent.replace(/<br[^>]*\/>/gi, '');
|
|
newContent = newContent.replace(/\<img/gi,
|
|
'<img style="max-width:100%;height:auto;display:block;margin-top:0;margin-bottom:0;"');
|
|
return newContent;
|
|
},
|
|
gitMassageDateils() {
|
|
NET.request(API.getMessageDateils, {
|
|
noticeId: this.onlyid
|
|
}, 'GET').then(res => {
|
|
this.messageDateils = res.data
|
|
this.messageDateils.noticeContent = this.formatRichText(this.messageDateils.noticeContent)
|
|
parse(this.messageDateils.noticeContent, (err, htmlData) => {
|
|
this.htmlData = htmlData
|
|
})
|
|
uni.hideLoading()
|
|
}).catch(res => {
|
|
uni.hideLoading()
|
|
uni.showToast({
|
|
title: '失败',
|
|
icon: "none"
|
|
})
|
|
})
|
|
},
|
|
getNotice() {
|
|
// uni.showLoading({
|
|
// title: '加载中...',
|
|
// })
|
|
NET.request(API.readNotice, {
|
|
noticeId: this.onlyid
|
|
}, 'POST').then(res => {
|
|
uni.hideLoading()
|
|
this.gitMassageDateils()
|
|
}).catch(res => {
|
|
uni.hideLoading()
|
|
uni.showToast({
|
|
title: '失败',
|
|
icon: "none"
|
|
})
|
|
})
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.messageDetail {
|
|
padding: 30upx;
|
|
|
|
h3 {
|
|
font-size: 36upx;
|
|
color: #333333;
|
|
margin-bottom: 40upx;
|
|
}
|
|
|
|
.detailTime {
|
|
font-size: 28upx;
|
|
color: #666666;
|
|
margin-bottom: 50upx;
|
|
}
|
|
|
|
.detailInfo {
|
|
word-wrap: break-word;
|
|
|
|
p {
|
|
font-size: 28upx;
|
|
color: #333333;
|
|
line-height: 48upx;
|
|
text-indent: 1em;
|
|
margin-bottom: 50upx;
|
|
}
|
|
|
|
img {
|
|
width: 100%;
|
|
}
|
|
}
|
|
}
|
|
</style>
|