// 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(/ { 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) => {}, }); }, }); } } }); } });