articleDetail.js 3.7 KB
// pages/attract/articleDetail/articleDetail.js
const A = getApp();
const wxParse = require('../../../wxParse/wxParse.js')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    comments:[],
    noMore:!0,
    page:1
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let t = this;
    t.setData({
      id: options.id
    }), t.d(options.id),t.c();
  },
  d(id){
    let url = '/api/Article/detail',params={
      id: id
    },t = this;
    A.post(url,params).then((r)=>{
      t.setData({
        detail: r
      })
      wxParse.wxParse('contentHtml', 'html', r.content, t, 5);
    })
  },

  comment() {
    this.setData({
      startComment: true
    })
  },
  outFocus() {
    this.setData({
      startComment: false
    })
  },
  c() {
    let url = '/api/Article/getArticleCommentList', t = this, params = {
      id: t.data.id,
      page: t.data.page
    };
    A.post(url, params).then((r) => {
      t.setData({
        comments: t.data.comments.concat(r.data),
        total: r.total,  
        noMore: r.last_page == r.current_page ? !0 : !1
      })
    })
  },
  s() {
    let t = this, params = {
      id: t.data.id,
      content: t.data.content
    }, url = '/api/article/setArticleComment';
    t.data.parent_id ? params.parent_id = t.data.parent_id : '';
    
    !t.data.subing ? (params.content ? (t.setData({ subing: true }),A.post(url, params, false).then((r) => {
      t.setData({
        content: '',
        parent_id: '',
        comments: [],
        page: 1,
        startComment: false,
        subing: false
      })
      t.c();
    }).catch(()=>{
      t.setData({ subing: false })
    })) : wx.showToast({
      title: '请输入评论',
      icon: 'none'
    })):""
  },
  zan(e) {
    let url = '/api/interact/setLike', params = {
      object_id: e.currentTarget.id,
      type: e.currentTarget.dataset.type
    }, index = e.currentTarget.dataset.indx, t = this, type = e.currentTarget.dataset.type;
    A.post(url, params).then((r) => {
      r.is_like==1?wx.showToast({
        title: '点赞成功',
        icon:'none'
      }) : wx.showToast({
        title: '已取消点赞',
        icon: 'none'
      })

      console.log(t.data.comments)
      type == '2'?(
      t.data.comments[index].is_like = r.is_like,
      t.data.comments[index].likes = r.likes,
      t.setData({
        comments: t.data.comments
      })): t.setData({
        'detail.is_like': r.is_like
      })
    })
  },
  subComments(e) {
    this.setData({
      content: e.detail.value
    })
  },
  parentSet(e) {
    this.setData({
      parent_id: e.currentTarget.id,
      startComment: true
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    let t = this;
    !t.data.noMore?(t.setData({
      page: t.data.page+1
    }),t.c()):""
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    let that = this;
    return {
      title: that.data.detail.title, // 转发后 所显示的title
      path: '/pages/attract/articleDetail/articleDetail?id='+that.data.id, // 相对的路径
      success: (res) => {   
      },
      fail: function (res) {
        // 分享失败
        console.log(res)
      }
    }
  }
})