多租户商城-商户小程序端
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

<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>