syshxcx/pages/news/newsDetail.js
dong_bo0602 a1f9e23f6d 0607
2022-06-07 15:43:05 +08:00

295 lines
6.5 KiB
JavaScript

// pages/news/newsDetail.js
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
token: app.globalData.token,
sourceUrl: app.baseUrls.sourceUrl,
newsId: '',
newsDetail: {},
reply: '',
userIcon: '',
userName: '',
replyList: [],
isCollect: 'no',
isGetFocus: false,
placeholder: '写评论',
replyTo: '',
replyUserName: '',
isLoading: false
},
// 获取新闻详情
getNewsDetail: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.getNewsDetail, [app.baseUrls.requestUrl, self.data.newsId]), {}, {
headers: {
token: self.data.token
}
}, function (code, data) {
self.setData({
newsDetail: data
})
}, function (code, data) {
console.log(data)
})
},
// 发布评论
doReplyNews: function () {
var self = this
if (!self.data.isLoading) {
if (!self.data.reply) {
wx.showToast({
title: '评论不能为空',
icon: 'error'
})
return
}
var info = {
content: self.data.reply,
headPortrait: self.data.userIcon,
userName: self.data.userName,
newsId: self.data.newsId
}
self.setData({
isLoading: true
})
app.restAjax.post(app.restAjax.path(app.apis.submitNewsReply, [app.baseUrls.requestUrl]), info, {
headers: {
token: self.data.token
}
}, function (code, data) {
if (code == '200') {
self.getReplyList()
self.setData({
reply: '',
isLoading: false
})
}
}, function (code, data) {
console.log(data)
self.setData({
isLoading: false
})
})
}
},
// 获取评论列表
getReplyList: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.getNewsReplyList, [app.baseUrls.requestUrl]), {
newsId: self.data.newsId
}, {
headers: {
token: self.data.token
}
}, function (code, data) {
self.setData({
replyList: data
})
}, function (code, data) {
console.log(data)
})
},
// 获取我是否收藏此新闻
getIsCollect: function () {
var self = this
app.restAjax.get(app.restAjax.path(app.apis.isCollectNews, [app.baseUrls.requestUrl, self.data.newsId]), {}, {
headers: {
token: self.data.token
}
}, function (code, data) {
self.setData({
isCollect: data
})
}, function (code, data) {
console.log(data)
})
},
// 收藏/取消收藏
toggleCollect: function () {
if (this.data.isCollect == 'no') {
this.collectNews()
} else {
this.cancelCollect()
}
},
// 收藏
collectNews: function () {
var self = this
app.restAjax.post(app.restAjax.path(app.apis.doCollectNews, [app.baseUrls.requestUrl]), {
newsId: self.data.newsId
}, {
headers: {
token: self.data.token
}
}, function (code, data) {
if (code == '200') {
wx.showToast({
title: '收藏成功!',
icon: 'success'
})
self.getIsCollect()
}
}, function (code, data) {
console.log(data)
})
},
// 取消收藏
cancelCollect: function () {
var self = this
app.restAjax.delete(app.restAjax.path(app.apis.cancelCollectNews, [app.baseUrls.requestUrl, self.data.newsId]), {}, {
headers: {
token: self.data.token
}
}, function (code, data) {
if (code == '200') {
wx.showToast({
title: '已取消收藏!',
icon: 'success'
})
self.getIsCollect()
}
}, function (code, data) {
console.log(data)
})
},
// 输入评论
getFocus: function (e) {
var user = e.currentTarget.dataset.user
var replyTo = e.currentTarget.dataset.id
var name = e.currentTarget.dataset.name
this.setData({
isGetFocus: true,
placeholder: '回复' + user + ':',
replyTo: replyTo,
replyUserName: name
})
},
// 输入框失去焦点判断文字
inputBlur: function () {
if (!this.data.reply) {
this.setData({
placeholder: '讨论一下',
isGetFocus: false
})
}
},
// 确认回复
doReply: function () {
if (!this.data.replyTo) {
this.doReplyNews()
} else {
this.doReplyReply()
}
},
// 回复
doReplyReply: function () {
var self = this
if (!self.data.isLoading) {
var info = {
content: self.data.reply,
headPortrait: self.data.userIcon,
userName: self.data.userName,
// trifleMyselfId: self.data.trifleMyselfId,
newsId: self.data.newsId,
commentId: self.data.replyTo,
replyCommentId: self.data.replyTo,
replyNewsCommentId: self.data.replyTo,
replyUserName: self.data.replyUserName
}
self.setData({
isLoading: true
})
app.restAjax.post(app.restAjax.path(app.apis.submitNewsReply, [app.baseUrls.requestUrl]), info, {
headers: {
token: self.data.token
}
}, function (code, data) {
if (code == '200') {
wx.showToast({
title: '评论成功!',
icon: 'success'
})
self.getReplyList()
self.setData({
reply: '',
replyTo: '',
replyUserName: '',
placeholder: '讨论一下',
isLoading: false
})
}
}, function (code, data) {
console.log(data)
self.setData({
isLoading: false
})
})
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.setData({
newsId: options.newsId,
userIcon: wx.getStorageSync('userIcon'),
userName: wx.getStorageSync('name')
})
this.getNewsDetail()
this.getReplyList()
this.getIsCollect()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})