yuminge-app/yun-min-program-plugin-master/packageA/member/article/articleContent/articleContent.js

722 lines
19 KiB
JavaScript

// pages/member/article/articleContent/articleContent.js
//var WxParse = require('../../../../wxParse/wxParse');
var app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
article_id: "",
articleData: {},
is_liked: 0,
like_num: "",
read_num: "",
article_content: "",
codeUrl: "",
// 评论功能
replyName: "",
commentPage: 1,
commentList: [],
last_page: 1,
commenMember: [],
keyInd: 0,
comment_id: 0,
// commentOn: false,
comment: false,
commentNum: 0,
imgList: [],
maincomment: "",
replyContent: "",
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
if (options.mid) {
app._setMid(options.mid);
}
this.setData({
article_id: options.article_id,
});
this._getData();
// this._getQrCode();
},
_getData: function (success) {
var that = this;
// 初次获取数据
let urlStr = app.getNetAddresss("plugin.article.api.article.get-article");
urlStr += "&article_id=" + that.data.article_id;
app._getNetWork({
url: urlStr,
success: function (res) {
if (res.data.result == 1) {
let _data = res.data.data;
_data.content = _data.content.replace(/<img/gi, '<img style="max-width:100%;height:auto;display:block" ');
if (_data.has_one_article_pay) {
if (!_data.has_one_record) {
wx.showToast({
title: '您尚未购买该文章内容,无法观看',
icon: 'none',
duration: 1000,
success: function (res) {
setTimeout(() => {
wx.navigateTo({
url: '/packageD/article/articleList/articleList?article_id=' + that.data.article_id
});
}, 500);
}
});
return;
}
}
that.setData({
articleData: _data,
article_content: _data.content,
is_liked: _data.liked,
like_num: _data.like_num + _data.virtual_like_num,
read_num: _data.read_num + _data.virtual_read_num,
miQrCodeUrl: _data.miQrCodeUrl,
qr: _data.qr,
});
if (_data.comment) {
// 文章评论功能有开启才请求
that.setData({
comment: _data.comment
});
that.getComment();
}
// 设置页面标题
wx.setNavigationBarTitle({
title: _data.title,
});
if (success != undefined) {
success(res);
}
} else {
if (res.data.msg == "您尚未购买该文章内容,无法观看") {
wx.showToast({
title: res.data.msg,
icon: "none",
duration: 1500,
success: function () {
setTimeout(function () {
//要延时执行的代码
wx.redirectTo({
url: "/packageD/article/articleList/articleList?article_id=" + that.data.article_id,
});
}, 1500); //延迟时间
},
});
} else {
wx.showToast({
title: res.data.msg,
icon: "none",
duration: 1500,
success: function () {
setTimeout(function () {
//要延时执行的代码
wx.navigateBack({
delta: 1,
});
}, 1500); //延迟时间
},
});
}
}
},
fail: function (res) {
console.error(res);
},
});
},
_getQrCode: function (success) {
var that = this;
// 获取二维码
app._getNetWork({
url: app.getNetAddresss("member.member.getArticleQr"),
success: function (res) {
if (res.data.result == 1) {
let _data = res.data.data;
that.setData({
codeUrl: _data,
});
if (success != undefined) {
success(res);
}
} else {
console.error(res);
}
},
fail: function (res) {
console.error(res);
},
});
},
_toLike: function (success) {
var that = this;
// 点赞
app._getNetWork({
url: app.getNetAddresss("plugin.article.api.article.like"),
data: {
article_id: that.data.article_id,
},
success: function (res) {
if (res.data.result == 1) {
let _data = res.data.data;
if (_data.liked == 1) {
that.setData({
is_liked: true,
like_num: that.data.like_num + 1,
});
wx.showToast({
title: "点赞成功",
});
} else {
that.setData({
is_liked: false,
like_num: that.data.like_num - 1,
});
if (that.data.like_num < 0) {
that.setData({
like_num: 0,
});
}
wx.showToast({
title: "取消点赞",
icon: "none",
});
}
success && success(res);
} else {
console.error(res);
}
},
fail: function (res) {
console.error(res);
},
});
},
clickLike: function () {
this._toLike();
},
toAdv: function () {
console.log("跳转到广告");
if (!app._isTextEmpty(this.data.articleData) && app._isTextEmpty(this.data.articleData.min_app_advs_link)) {
return;
}
wx.navigateTo({
url: this.data.articleData.min_app_advs_link,
});
},
toLink: function (e) {
let url = e.currentTarget.dataset.link;
wx.navigateTo({
url: url,
});
},
toReport: function () {
wx.navigateTo({
url: "/packageA/member/article/noticeReport/noticeReport?article_id=" + this.data.article_id,
});
},
previewImage: function (e) {
var current = e.target.dataset.src; //这里获取到的是一张本地的图片
wx.previewImage({
current: current, //需要预览的图片链接列表
urls: [current], //当前显示图片的链接
});
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
wx.showShareMenu({
withShareTicket: false,
menus: ["shareAppMessage", "shareTimeline"],
});
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {},
/**
* 用户点击右上角分享
*/
onShareTimeline() {
var value = wx.getStorageSync("yz_uid");
var mid = "";
if (value) {
mid = value;
}
return {
title: this.data.articleData.desc,
query: `mid=${mid}&article_id=${this.data.article_id}`,
imageUrl: this.data.articleData.thumb ? this.data.articleData.thumb : "",
};
},
onShareAppMessage: function () {
var value = wx.getStorageSync("yz_uid");
var mid = "";
if (value) {
mid = value;
}
return {
path: "/packageA/member/article/articleContent/articleContent?article_id=" + this.data.article_id + "&mid=" + mid,
title: this.data.articleData.desc,
imageUrl: this.data.articleData.thumb ? this.data.articleData.thumb : "",
};
},
// ============================== 文章评论二开 ===============================
// commentOpen(){
// this.setData({
// commentOn:!this.data.commentOn
// });
// },
// 上传图片
uploaderFun(e) {
wx.showLoading({
title: "加载中",
});
let that = this;
let urlStr = app.getNetAddresss("upload.uploadPic");
wx.chooseImage({
count: 1,
sizeType: ["original", "compressed"],
sourceType: ["album", "camera"],
success(res) {
const tempFilePaths = res.tempFilePaths;
let photourl = tempFilePaths[0];
wx.uploadFile({
url: urlStr,
filePath: photourl,
name: "file",
success(resdata) {
var res = JSON.parse(resdata.data);
wx.hideLoading();
if (res.result == 1) {
let imgList = that.data.imgList;
imgList.push(res.data.img_url);
that.setData({
imgList,
});
} else {
wx.showToast({
icon: "none",
title: res.msg,
duration: 1500,
});
}
},
});
},
fail: function (res) {
wx.hideLoading({
success: (res) => {},
});
}
});
},
delCommentIMg(e) {
let val = e.target.dataset.index;
this.data.imgList.splice(val, 1);
this.setData({
imgList: this.data.imgList,
});
},
getComment() {
let that = this;
app._getNetWork({
url: app.getNetAddresss("plugin.article.api.comment.comment-list"),
data: {
page: this.data.commentPage,
article_id: this.data.article_id,
},
success: function (res) {
if (res.data.result == 1) {
let list = res.data.data.list.data;
for (let i = 0; i < list.length; i++) {
if (list[i].reply_num > 0) {
list[i].commentShow = true;
} else {
list[i].commentShow = false;
}
list[i].commenMorePage = 1;
list[i].child = [];
}
that.setData({
last_page: res.data.data.list.last_page,
commenMember: res.data.data.member,
commentList: res.data.data.list.data,
commentNum: res.data.data.num
});
} else {
console.error(res);
}
},
fail: function (res) {
console.error(res);
},
});
},
watchImg(e) {
// 评论图片预览
let item = e.currentTarget.dataset.item;
wx.previewImage({
current: item[0], // 当前显示图片的http链接
urls: item // 需要预览的图片http链接列表
});
},
getMore() {
let that = this;
this.setData({
commentPage: this.data.commentPage + 1,
});
wx.showLoading({
title: '加载中',
duration: 1000,
icon: 'none'
});
app._getNetWork({
url: app.getNetAddresss("plugin.article.api.comment.comment-list"),
data: {
page: this.data.commentPage,
article_id: this.data.article_id,
},
success: function (res) {
if (res.data.result == 1) {
let dataMore = res.data.data.list.data;
for (let i = 0; i < dataMore.length; i++) {
if (dataMore[i].reply_num > 0) {
dataMore[i].commentShow = true;
} else {
dataMore[i].commentShow = false;
}
dataMore[i].commenMorePage = 1;
dataMore[i].child = [];
}
that.setData({
commentList: that.data.commentList.concat(dataMore),
last_page: res.data.data.list.last_page,
});
} else {
console.error(res);
}
wx.hideLoading({
success: (res) => {},
});
},
fail: function (res) {
console.error(res);
wx.hideLoading({
success: (res) => {},
});
},
});
},
// 评论功能
subMainCommentBtn() {
this.setData({
maincomment: "",
mainCommentShow: true,
});
},
// 遮罩关闭
mainCommentShowClose() {
this.setData({
mainCommentShow: false,
});
},
replyshowClose() {
this.setData({
replyshow: false,
});
},
// 输入框事件 主评论文字
maincommentinp(e) {
let val = e.detail.value;
this.setData({
maincomment: val,
});
},
replyContentinp(e) {
let val = e.detail.value;
this.setData({
replyContent: val,
});
},
// 回复
replyBtn(e) {
let item = e.currentTarget.dataset.item;
let name = item.nick_name;
this.setData({
keyInd: e.currentTarget.dataset.kind,
replyshow: true,
replyId: item.id,
comment_id: item.comment_id == 0 ? item.comment_id : item.id,
replyName: name,
commentManagement: false,
});
},
// 发送按钮
subMainBtn(e) {
let type = e.currentTarget.dataset.type;
this.getReplyComments(type);
},
// 发送请求
getReplyComments(type) {
let that = this;
let urlStr;
let dataJson = {
images: that.data.imgList,
content: "",
};
console.log(type);
if (type == "main") {
if (app._isTextEmpty(this.data.maincomment)) {
wx.showToast({
title: "请输入评论内容",
icon: "none",
duration: 1000,
});
return;
}
urlStr = "plugin.article.api.comment.create-comment";
dataJson.article_id = that.data.article_id;
dataJson.content = that.data.maincomment;
} else if (type == "reply") {
if (app._isTextEmpty(this.data.replyContent)) {
wx.showToast({
title: "请输入评论内容",
icon: "none",
duration: 1000,
});
return;
}
urlStr = "plugin.article.api.comment.reply-comment";
dataJson.content = that.data.replyContent;
dataJson.comment_id = that.data.replyId;
}
wx.showLoading({
title: '加载中',
duration: 1000,
icon: 'none'
});
app._getNetWork({
url: app.getNetAddresss(urlStr),
data: dataJson,
success: function (res) {
if (res.data.result == 1) {
if (type == "main") {
that.setData({
commentPage: 1,
mainCommentShow: false,
replyshow: false,
maincomment: ''
});
that.getComment();
} else if (type == 'reply') {
that.updateInfo(res.data.data, that.data.keyInd);
}
} else {
console.error(res);
}
wx.hideLoading({
success: (res) => {},
});
},
fail: function (res) {
wx.hideLoading({
success: (res) => {},
});
console.error(res);
},
});
},
// 回复后更新数据
updateInfo(data, ind) {
console.log(data, ind);
let arr = [];
arr.push(data);
if (this.data.commentList[ind].child) {
this.data.commentList[ind].child.unshift(arr[0]);
} else {
this.data.commentList[ind].child = arr;
}
this.setData({
commentList: this.data.commentList,
mainCommentShow: false,
replyshow: false,
replyContent: ''
});
},
// 加载子评论
moreCommentLis(e) {
console.log(e);
wx.showLoading({
title: '加载中',
icon: 'none',
duration: 1000
});
let that = this;
let id = e.currentTarget.dataset.item.id;
let ind = e.currentTarget.dataset.ind;
let urlStr = "plugin.article.api.comment.get-replys";
console.log(this.data.commentList);
let is_page = Number(this.data.commentList[ind].commenMorePage);
let dataJson = {
page: is_page,
comment_id: id,
};
app._getNetWork({
url: app.getNetAddresss(urlStr),
data: dataJson,
success: function (res) {
if (res.data.result == 1) {
let resdata = res.data.data;
console.log(resdata);
let childs = resdata.data;
let num = that.data.commentList[ind].reply_num - resdata.data.length;
that.data.commentList[ind].reply_num = num;
let arr = that.data.commentList[ind].child.concat(childs);
that.data.commentList[ind].child = arr;
let moreLast_page = resdata.data.last_page;
if (is_page >= moreLast_page) {
is_page = 1;
} else {
is_page = is_page + 1;
}
that.data.commentList[ind].commenMorePage = is_page;
that.setData({
commentList: that.data.commentList,
});
} else {
console.error(res);
}
wx.hideLoading({
success: (res) => {},
});
},
fail: function (res) {
wx.hideLoading({
success: (res) => {},
});
console.error(res);
},
});
},
// 删除评论
delComment(e) {
console.log(e);
let myUid;
try {
myUid = wx.getStorageSync('uid');
} catch (error) {
myUid = '';
}
let item = e.currentTarget.dataset.item;
let ind = e.currentTarget.dataset.ind;
let index;
try {
index = e.currentTarget.dataset.index;
} catch (error) {
index = null;
}
console.log(item, ind, index);
if (this.data.commentList[ind].child.length > 0) {
if (item.uid == myUid) {
console.log('子评论是我的,可以删');
this.delRequst(item.id, ind, index, 'child');
}
} else {
if (myUid == item.uid) {
console.log('主评论是我的,可以删');
this.delRequst(item.id, ind, index, 'list');
}
}
},
delRequst(id, ind, index, key) {
let that = this;
wx.showModal({
content: '是否删除评论',
success: function (res) {
if (res.confirm) {
console.log('删除');
wx.showLoading({
title: '加载中',
duration: 1000,
icon: 'none'
});
app._getNetWork({
url: app.getNetAddresss("plugin.article.api.comment.del"),
data: {
comment_id: id,
},
success: function (res) {
if (res.data.result == 1) {
if (key == 'child') {
that.data.commentList[ind].child.splice(index, 1);
} else {
that.data.commentList.splice(ind, 1);
}
that.setData({
commentList: that.data.commentList
});
wx.showToast({
title: res.data.data,
icon: 'none',
duration: 1000
});
} else {
console.error(res);
}
wx.hideLoading({
success: (res) => {},
});
},
fail: function (res) {
console.error(res);
wx.hideLoading({
success: (res) => {},
});
},
});
}
}
});
}
});