personal-list.js 5.2 KB
import {
  getBindtapData
} from '../../utils/util'

let app = getApp();
Page({
  data: {
    isOverShare: true,
    authorizeVisible: false,
    total: 0,
    page: 1,
    size: 10,
    dataList: [],
    options: {},
    personInfo: {},
    // adConfigure: {}, //广告位配置
  },
  onShareAppMessage(res) {
    if (res.from === 'button') {
      // 来自页面内转发按钮
    } else {
      // 打点
      app.stat({
        classify: "share",
        action: "account_page_share",
        primaryCode: this.data.options.c,
      });
    }
    let opts = this.data.options;
    let path = `pages/personal-list/personal-list?c=${opts.c}`;
    if (app.globalData.adConfigure && app.globalData.adConfigure.ad_config_01 == 1) {
      this.showInterstitialAd();
    }

    return {
      path,
    }
  },
  showAuth() {
    this.setData({
      authorizeVisible: true
    })
  },
  onLoad(options) {
    let tempOptions = JSON.parse(decodeURIComponent(JSON.stringify(options)));
    this.setData({
      options: tempOptions
    });
    console.log("tempOptions:", tempOptions);
    this.initData();
    wx.aldstat.sendEvent('进入页面', {
      '页面名字': '个人列表页'
    });
    this.addInterstitialAd();
  },

  addInterstitialAd() {
    if (wx.createInterstitialAd) {
      interstitialAd = wx.createInterstitialAd({
        adUnitId: 'adunit-1ffb5a60bc3f7f55'
      })
      interstitialAd.onLoad(() => {})
      interstitialAd.onError((err) => {})
      interstitialAd.onClose(() => {})
    }
  },

  showInterstitialAd() {
    if (interstitialAd) {
      interstitialAd.show().catch((err) => {
        console.error(err)
      })
    }
  },

  initData() {
    this.resetPage();
    this.queryAccountDetail();
    this.queryVideoList();
  },
  /**
   * 到达底部
   * 做加载更多操作
   */
  onReachBottom() {
    if (this.data.dataList.length < this.data.total) {
      this.setData({
        page: this.data.page + 1
      });
      this.queryVideoList();
    }
  },

  // 重置页面列表 点击搜索条件时需要
  resetPage() {
    this.setData({
      page: 1,
      dataList: [],
      queueCode: "",
    })
  },
  onDetailHandler(evt) {
    let curItem = getBindtapData(evt);
    app.router.push({
      path: "detail",
      query: {
        c: curItem.videoCode || ""
      }
    })
  },


  onShareItem(evt) {
    let curItem = getBindtapData(evt);
    app.stat({
      classify: "share",
      action: "account_page_button_share",
      primaryCode: curItem.videoCode
    });
  },

  /**
   * 账号星期
   */
  queryAccountDetail() {
    return new Promise((resolve, reject) => {
      app.post({
        url: app.api.accountDetail,
        data: {
          accountCode: this.data.options.c
        }
      }).then((result) => {
        this.setData({
          personInfo: result
        })
        resolve(result);
      }).catch((err) => {
        reject(err)
      });
    });
  },

  /**
   * 获取视频列表
   */
  queryVideoList() {
    return new Promise((resolve, reject) => {
      app.post({
        url: app.api.videoAcccout,
        data: {
          page: this.data.page,
          size: this.data.size,
          accountCode: this.data.options.c
        }
      }).then((result) => {
        let dataList = result.list;
        dataList = this.data.dataList.concat(dataList);

        // 带广告的格式
        let dataListResult = [];

        let adConfigure = app.globalData.adConfigure;

        // 广告步进
        let adStep = adConfigure.configureM || 0;

        // 视频广告第一次出现条目
        let firstAdIndex = adConfigure.configureX || 0;
        // 视频广告第一条是否已经出现
        let isFirstAdshow = false;

        // 广告步数
        let adStepIndex = 0;

        dataList.forEach(element => {
          // 视频祝福
          if (isFirstAdshow) {
            // 第一个视频出现过
            if (adStepIndex > adStep && adStep != 0) {
              adStepIndex = 0;
              dataListResult.push({
                type: "ad",
                adType: "banner"
              })
            }
          } else {
            // 第一个视频出现
            if (adStepIndex == firstAdIndex && firstAdIndex > 0) {
              isFirstAdshow = true;
              adStepIndex = 0;
              dataListResult.push({
                type: "ad",
                adType: "banner"
              })
            }
          }

          adStepIndex++;

          dataListResult.push(element);

        });



        this.setData({
          dataList: dataListResult,
          total: result.total,
        })
        resolve(result);
      }).catch((err) => {
        reject(err)
      });
    });
  },
  /**
   * 隐藏蒙层
   */
  hideMask() {
    this.setData({
      productDetailVisible: false,
      authorizeVisible: false,
    })
  },
  /**
   * 子组件事件
   * @param {*} evt
   */
  evtcomp(evt) {
    let {
      name,
      data
    } = evt.detail;
    switch (name) {

      // 隐藏蒙层
      case "_evt_hide_mask":
        this.hideMask();
        break;

        /**
         * 重拉数据已在
         */
      case "_evt_auth_complete":
        // this.initData();
        this.hideMask();
        break;

      default:
        break;
    }
  },
})