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.
237 lines
8.3 KiB
237 lines
8.3 KiB
<template>
|
|
<view>
|
|
<block v-if="isload">
|
|
<view class="container">
|
|
<view class="header">
|
|
<text class="title" v-if="detail.showname==1">{{detail.name}}</text>
|
|
<view class="artinfo" v-if="detail.showsendtime==1 || detail.showauthor==1 || detail.showreadcount==1">
|
|
<text class="t1" v-if="detail.showsendtime==1">{{detail.createtime}}</text>
|
|
<text class="t2" v-if="detail.showauthor==1">{{detail.author}}</text>
|
|
<text class="t3" v-if="detail.showreadcount==1">阅读:{{detail.readcount}}</text>
|
|
</view>
|
|
<view style="padding:8rpx 0">
|
|
<dp :pagecontent="pagecontent"></dp>
|
|
</view>
|
|
</view>
|
|
|
|
<!--评论-->
|
|
<block v-if="detail.canpl==1">
|
|
<view class="plbox">
|
|
<view class="plbox_title"><text class="t1">评论</text><text>({{plcount}})</text></view>
|
|
<view class="plbox_content">
|
|
<block v-for="(item, idx) in datalist" :key="item.id">
|
|
<view class="item1 flex">
|
|
<view class="f1 flex0"><image :src="item.headimg"></image></view>
|
|
<view class="f2 flex-col">
|
|
<text class="t1">{{item.nickname}}</text>
|
|
<view class="t2 plcontent"><rich-text :nodes="item.content"></rich-text></view>
|
|
<block v-if="item.replylist.length>0">
|
|
<view class="relist">
|
|
<block v-for="(hfitem, index) in item.replylist" :key="index">
|
|
<view class="item2">
|
|
<view>{{hfitem.nickname}}:</view>
|
|
<view class="f2 plcontent"> <rich-text :nodes="hfitem.content"></rich-text></view>
|
|
</view>
|
|
</block>
|
|
</view>
|
|
</block>
|
|
<view class="t3 flex">
|
|
<text>{{item.createtime}}</text>
|
|
<view class="flex1"><text v-if="detail.canplrp==1" class="phuifu" style="cursor:pointer" @tap="goto" :data-url="'pinglun?type=1&id=' + detail.id + '&hfid=' + item.id">回复</text></view>
|
|
<view class="flex-y-center pzan" @tap="pzan" :data-id="item.id" :data-index="idx"><image :src="event_rul +'/static/img/static/img/zan-' + (item.iszan==1?'2':'1') + '.png'"></image>{{item.zan}}</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</block>
|
|
</view>
|
|
<!-- <nodata v-if="nodata"></nodata> -->
|
|
<!-- <nomore v-if="nomore"></nomore> -->
|
|
<loading v-if="loading"></loading>
|
|
</view>
|
|
<view style="height:160rpx"></view>
|
|
<view class="pinglun notabbarbot">
|
|
<view class="pinput" @tap="goto" :data-url="'pinglun?type=0&id=' + detail.id">发表评论</view>
|
|
<view class="zan flex-y-center" @tap="zan" :data-id="detail.id">
|
|
<image :src="event_rul +'/static/img/static/img/zan-' + (iszan?'2':'1') + '.png'"/><text style="padding-left:2px">{{detail.zan}}</text>
|
|
</view>
|
|
<block v-if="detail.btntxt && detail.btnurl">
|
|
<view class="buybtn" style="cursor:pointer" :onclick="'location.href=' + detail.btnurl">{{detail.btntxt}}</view>
|
|
</block>
|
|
</view>
|
|
</block>
|
|
</view>
|
|
</block>
|
|
<loading v-if="loading"></loading>
|
|
<dp-tabbar :opt="opt"></dp-tabbar>
|
|
<popmsg ref="popmsg"></popmsg>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
var app = getApp();
|
|
export default {
|
|
data() {
|
|
return {
|
|
opt:{},
|
|
loading:false,
|
|
isload: false,
|
|
menuindex:-1,
|
|
|
|
detail:[],
|
|
datalist: [],
|
|
pagenum: 1,
|
|
id: 0,
|
|
pagecontent: "",
|
|
title: "",
|
|
sharepic: "",
|
|
nodata:false,
|
|
nomore:false,
|
|
iszan: "",
|
|
plcount:0,
|
|
|
|
event_rul: app.globalData.event_url,
|
|
};
|
|
},
|
|
onLoad: function (opt) {
|
|
this.opt = app.getopts(opt);
|
|
this.getdata();
|
|
},
|
|
onPullDownRefresh: function () {
|
|
this.getdata();
|
|
},
|
|
onShareAppMessage:function(){
|
|
return this._sharewx({title:this.detail.name,desc:this.detail.subname,pic:this.detail.pic});
|
|
},
|
|
onShareTimeline:function(){
|
|
var sharewxdata = this._sharewx({title:this.detail.name,desc:this.detail.subname,pic:this.detail.pic});
|
|
var query = (sharewxdata.path).split('?')[1];
|
|
return {
|
|
title: sharewxdata.title,
|
|
imageUrl: sharewxdata.imageUrl,
|
|
query: query
|
|
}
|
|
},
|
|
onReachBottom: function () {
|
|
if (!this.nodata && !this.nomore && this.detail.canpl==1) {
|
|
this.pagenum = this.pagenum + 1
|
|
this.getpllist();
|
|
}
|
|
},
|
|
methods: {
|
|
getdata:function(){
|
|
var that = this;
|
|
var id = that.opt.id;
|
|
that.loading = true;
|
|
app.get('ApiArticle/detail', {id: id}, function (res) {
|
|
that.loading = false;
|
|
if (res.status == 1){
|
|
that.detail = res.detail;
|
|
that.pagecontent = res.pagecontent;
|
|
that.plcount = res.plcount;
|
|
that.iszan = res.iszan;
|
|
that.title = res.detail.name;
|
|
that.sharepic = res.detail.pic;
|
|
uni.setNavigationBarTitle({
|
|
title: res.detail.name
|
|
});
|
|
} else {
|
|
app.alert(res.msg);
|
|
}
|
|
that.pagenum = 1;
|
|
that.datalist = [];
|
|
that.getpllist();
|
|
that.loaded({title:res.detail.name,desc:res.detail.subname,pic:res.detail.pic});
|
|
});
|
|
},
|
|
getpllist: function () {
|
|
var that = this;
|
|
var pagenum = that.pagenum;
|
|
that.loading = true;
|
|
that.nodata = false;
|
|
that.nomore = false;
|
|
app.post('ApiArticle/getpllist', {pagenum: pagenum,id: that.detail.id}, function (res) {
|
|
that.loading = false;
|
|
var data = res.data;
|
|
if (data.length == 0) {
|
|
if(pagenum == 1){
|
|
that.nodata = true;
|
|
}else{
|
|
that.nomore = true;
|
|
}
|
|
}
|
|
var datalist = that.datalist;
|
|
var newdata = datalist.concat(data);
|
|
that.datalist = newdata;
|
|
});
|
|
},
|
|
zan: function (e) {
|
|
var that = this;
|
|
var id = e.currentTarget.dataset.id;
|
|
app.post("ApiArticle/zan", {id: id}, function (res) {
|
|
if (res.type == 0) {
|
|
//取消点赞
|
|
var iszan = 0;
|
|
} else {
|
|
var iszan = 1;
|
|
}
|
|
that.iszan = iszan;
|
|
that.detail.zan = res.zancount;
|
|
});
|
|
},
|
|
pzan: function (e) {
|
|
var that = this;
|
|
var id = e.currentTarget.dataset.id;
|
|
var index = e.currentTarget.dataset.index;
|
|
var datalist = that.datalist;
|
|
app.post("ApiArticle/pzan", {id: id}, function (res) {
|
|
if (res.type == 0) {
|
|
//取消点赞
|
|
var iszan = 0;
|
|
} else {
|
|
var iszan = 1;
|
|
}
|
|
|
|
datalist[index].iszan = iszan;
|
|
datalist[index].zan = res.zancount;
|
|
that.datalist = datalist;
|
|
});
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
<style>
|
|
.header{ background-color: #fff;padding: 10rpx 20rpx 0 20rpx;position: relative;display:flex;flex-direction:column;}
|
|
.header .title{width:100%;font-size: 36rpx;color:#333;line-height: 1.4;margin:10rpx 0;margin-top:20rpx;font-weight:bold}
|
|
.header .artinfo{width:100%;font-size:28rpx;color: #8c8c8c;font-style: normal;overflow: hidden;display:flex;margin:10rpx 0;}
|
|
.header .artinfo .t1{padding-right:8rpx}
|
|
.header .artinfo .t2{color:#777;padding-right:8rpx}
|
|
.header .artinfo .t3{text-align:right;flex:1;}
|
|
.header .subname{width:100%;font-size:28rpx;color: #888;border:1px dotted #ddd;border-radius:10rpx;margin:10rpx 0;padding:10rpx}
|
|
|
|
|
|
.pinglun{ width:96%;max-width:750px;margin:0 auto;position:fixed;display:flex;align-items:center;bottom:0;left:0;right:0;height:100rpx;background:#fff;z-index:995;border-top:1px solid #f7f7f7;padding:0 2%;box-sizing:content-box}
|
|
.pinglun .pinput{flex:1;color:#a5adb5;font-size:32rpx;padding:0;line-height:100rpx}
|
|
.pinglun .zan{padding:0 12rpx;line-height:100rpx}
|
|
.pinglun .zan image{width:48rpx;height:48rpx}
|
|
.pinglun .zan span{height:40rpx;line-height:50rpx;font-size:32rpx}
|
|
.pinglun .buybtn{margin-left:0.08rpx;background:#31C88E;height:72rpx;line-height:72rpx;padding:0 20rpx;color:#fff;border-radius:6rpx}
|
|
|
|
.plbox{width:100%;padding:40rpx 20rpx;background:#fff;margin-top:10px}
|
|
.plbox_title{font-size:28rpx;height:60rpx;line-height:60rpx;margin-bottom:20rpx}
|
|
.plbox_title .t1{color:#000;font-weight:bold}
|
|
.plbox_content .plcontent{vertical-align: middle;color:#111}
|
|
.plbox_content .plcontent image{ width:44rpx;height:44rpx;vertical-align: inherit;}
|
|
.plbox_content .item1{width:100%;margin-bottom:20rpx}
|
|
.plbox_content .item1 .f1{width:80rpx;}
|
|
.plbox_content .item1 .f1 image{width:60rpx;height:60rpx;border-radius:50%}
|
|
.plbox_content .item1 .f2{flex:1}
|
|
.plbox_content .item1 .f2 .t1{}
|
|
.plbox_content .item1 .f2 .t2{color:#000;margin:10rpx 0;line-height:60rpx;}
|
|
.plbox_content .item1 .f2 .t3{color:#999;font-size:20rpx}
|
|
.plbox_content .item1 .f2 .pzan image{width:32rpx;height:32rpx;margin-right:2px}
|
|
.plbox_content .item1 .f2 .phuifu{margin-left:6px;color:#507DAF}
|
|
.plbox_content .relist{width:100%;background:#f5f5f5;padding:4rpx 20rpx;margin-bottom:20rpx}
|
|
.plbox_content .relist .item2{font-size:24rpx;margin-bottom:10rpx}
|
|
|
|
.copyright{display:none}
|
|
</style>
|