const pages = require('../../mixin/pages') const { postFollowUser, postAddComment, postGood } = require('./api/index') Page({ /** * 页面的初始数据 */ data: { ...pages.data(), listUrl: '/api/user/track/list', searchForm: { 'key_words': '' // 'follow_type': 1 }, nav: [ { name: '推荐', value: '1' }, { name: '关注', value: '2' } ], active: '1', booLock: false, autoFocus: false, inputBoxStyle: 'bottom:0;', form: { track_comment: '' // 评论内容 }, placeholderText: '评论', booPopop: false }, currentItem: {}, // 当前选中的动态 ...pages.methods, /** * 生命周期函数--监听页面加载 */ onLoad(options) { this.fetchOrderList() }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { this.getTabBar().init() }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { if (this.data.freshing) { return } this.setData({ freshing: true }) this.bindCallBack() }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { this.fetchOrderList() }, bindCallBack() { this.refreshOrderList() }, handleNav(e) { const { value } = e.detail const searchForm = JSON.parse(JSON.stringify(this.data.searchForm)) if (value === '1' && searchForm.hasOwnProperty('follow_type')) { delete searchForm.follow_type } else if (value === '2') { searchForm.follow_type = 1 } this.setData({ active: value, searchForm: searchForm }, () => { this.refreshOrderList() }) }, // 关注 async followUser(e) { const { item, index } = e.target.dataset this.setData({ booLock: true }) try { const { status, msg } = await postFollowUser(item.shop_id) if (status) { wx.showToast({ title: '已关注', icon: 'none' }) this.setData({ ['listData[' + index + '].follow_status']: 1 }) } else { wx.showToast({ title: msg, icon: 'none' }) } } catch (err) {} this.setData({ booLock: false }) }, showPopop(e) { const { item, index } = e.currentTarget.dataset this.currentItem = { ...item, _index: index } this.setData({ booPopop: true }) const timer = setTimeout(() => { clearTimeout(timer) this.setData({ autoFocus: true }) }, 500) }, hidePopop() { this.setData({ booPopop: false }) }, handleFocus(event) { const height = event.detail.height this.setData({ inputBoxStyle: `bottom:${height}px;` }) }, handleBlur() { this.setData({ inputBoxStyle: `bottom:0;` }) }, setComment(event) { const { value } = event.detail this.setData({ 'form.track_comment': value.trim() }) }, // 评论 async addComment() { const { track_comment } = this.data.form const postData = { 'track_id': this.currentItem.id, 'track_comment': track_comment } if (!track_comment) { wx.showToast({ title: '请输入评论内容', icon: 'none' }) return } if (this.data.booLock) { return } this.setData({ booLock: true }) try { const { status, msg } = await postAddComment(postData) if (status) { wx.showToast({ title: '已评论', icon: 'none' }) this.refreshOrderList() this.setData({ 'form.track_comment': '', booPopop: false }) } else { wx.showToast({ title: msg, icon: 'none' }) } } catch (err) {} this.setData({ booLock: false }) }, // 点赞、取消点赞 async trackGood(e) { const { item, index } = e.currentTarget.dataset const postData = { 'track_id': item.id, 'type': item.good_status === 0 ? 1 : 2 // 类型(1点赞2取消点赞) } if (this.data.booLock) { return } this.setData({ booLock: true }) try { const { status, msg } = await postGood(postData) if (status) { wx.showToast({ title: item.good_status === 0 ? '已点赞' : '已取消点赞', icon: 'none' }) this.setData({ ['listData[' + index + '].good_status']: item.good_status === 0 ? 1 : 0, ['listData[' + index + '].good_count']: item.good_status === 0 ? item.good_count + 1 : item.good_count - 1 }) } else { wx.showToast({ title: msg, icon: 'none' }) } } catch (err) {} this.setData({ booLock: false }) }, jumpAddNews() { wx.navigateTo({ url: '/pages/addNews/addNews' }) } })