149 lines
3.9 KiB
Vue
149 lines
3.9 KiB
Vue
<template>
|
||
<view>
|
||
<!-- 公共组件-每个页面必须引入 -->
|
||
<public-module></public-module>
|
||
<z-nav-bar title="新闻详情"></z-nav-bar>
|
||
<view class="box">
|
||
<view class="title">
|
||
{{news.title}}
|
||
</view>
|
||
<!-- <view class="content" v-html="news.content"></view> -->
|
||
<rich-text v-if="news.content" class="content"
|
||
:nodes="formatRichText(news.content)"></rich-text>
|
||
</view>
|
||
<!-- <music-play :playData="playData"></music-play> -->
|
||
<z-navigation></z-navigation>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
// import musicPlay from '@/components/music.vue'
|
||
import $http from '@/config/requestConfig.js';
|
||
var clear;
|
||
import {
|
||
mapState
|
||
} from 'vuex';
|
||
export default {
|
||
data() {
|
||
return {
|
||
playData: {},
|
||
newsObj: null,
|
||
news: {
|
||
content: '',
|
||
title: ''
|
||
},
|
||
source:'',
|
||
urlVisible:false,
|
||
surl:'',
|
||
type:null,
|
||
webviewStyles: {
|
||
progress: {
|
||
color: '#FF3333'
|
||
}
|
||
},
|
||
};
|
||
},
|
||
//第一次加载
|
||
onLoad(e) {
|
||
// 隐藏原生的tabbar
|
||
uni.hideTabBar();
|
||
this.newsId = e.newsId
|
||
this.type = e.type
|
||
this.surl = e.url
|
||
this.source = e.source
|
||
console.log(e, '------')
|
||
},
|
||
computed: {
|
||
...mapState(['userInfo'])
|
||
},
|
||
//页面显示
|
||
onShow() {
|
||
// 隐藏原生的tabbar
|
||
uni.hideTabBar();
|
||
// if(this.type == 1 && this.surl != ''){
|
||
// // this.surl = this.newsObj.url
|
||
// this.urlVisible = true
|
||
// this.news = {}
|
||
// }else{
|
||
this.getData();
|
||
this.urlVisible = false
|
||
// }
|
||
|
||
},
|
||
onPullDownRefresh() {
|
||
uni.stopPullDownRefresh()
|
||
},
|
||
components: {
|
||
// musicPlay
|
||
},
|
||
//方法
|
||
methods: {
|
||
getData() {
|
||
var _url = "common/message/getMessageById"
|
||
if(this.source = 'taihuzhiguang'){ // 太湖之光
|
||
_url = "common/taihuWelfare/getTaihuWelfareArticleDetail"
|
||
$http.request({
|
||
url: `${_url}`,
|
||
method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
||
data: {
|
||
id: this.newsId
|
||
},
|
||
header: { //默认 无 说明:请求头
|
||
'Content-Type': 'application/json'
|
||
},
|
||
}).then(res => {
|
||
if (res.code == 0) {
|
||
this.news.content = res.result.content
|
||
this.news.title = res.result.title
|
||
}
|
||
}).catch(e => {
|
||
console.log(e, '获取新闻详情报错')
|
||
});
|
||
}else{
|
||
this.$http
|
||
.post(`${_url}?id=${this.newsId}`)
|
||
.then(res => {
|
||
if (res.code == 0) {
|
||
this.news.content = res.result.content
|
||
this.news.title = res.result.title
|
||
}
|
||
}).catch(e => {
|
||
console.log(e, '获取新闻详情报错')
|
||
});
|
||
}
|
||
},
|
||
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(/<img[^>]*>/gi, function(match, capture) {
|
||
// match = match.replace(/<img[^>]*>/gi, "@click='1111'").replace(/<img[^>]*>/gi, "@click='1111'");
|
||
// return match;
|
||
// });
|
||
newContent = newContent.replace(/<br[^>]*\/>/gi, '');
|
||
newContent = newContent.replace(/\<img/gi,
|
||
'<img style="max-width:100%;height:auto;display:inline-block;margin:10rpx auto;"');
|
||
return newContent;
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
<style lang="scss" scoped>
|
||
@import '@/style/mixin.scss';
|
||
|
||
.box {
|
||
background-color: #fff;
|
||
@include pleft_right(10px);
|
||
min-height: calc(100vh - 270rpx);
|
||
}
|
||
.title{font-size: 32rpx; font-weight: bold; display: block; text-align: center;}
|
||
.content { font-size: 26rpx; line-height: 48rpx; margin-top: 10rpx;}
|
||
</style> |