coop.js 4.57 KB
import {
  getBindtapData,
  getObjByListKeyValue
} from '../../utils/util';

import {
  productMap
} from '../../const/custom-data';

let app = getApp();
Page({
  data: {
    groupMemberCoopVisible: false,
    tipsCommonVisible: false,
    authorizeVisible: false,
    tipsInnerText: "",
    options: null,
    wishInfo: {},
    wishList: [],
    coopInfo: {},
    userInfo: {},
    canShake: true,
    status: 0,
    animationShake:{}, // 摇一摇动画
  },
  onShareAppMessage() {},
  showAuth() {
    this.setData({
      authorizeVisible: true
    })
  },
  onLoad(options) {
    this.setData({
      options
    })
    console.log("onLoad");
  },
  onHide() {

  },
  onShow() {
    console.log("onShow");
    this.initData();
  },
  initData() {
    app.queryIndex().then((result) => {
      this.setData({
        userInfo: app.globalData.userInfo
      })
      this.queryWishbillDetail();
      this.initShake();
    })
  },
  // 添加摇一摇
  initShake() {
    let _this = this;
    wx.onAccelerometerChange(function (res) {
      if (!_this.data.canShake) {
        return
      }
      if (res.x > 1) { //偏移量为2时触发,有的使用1

        // 触发摇一摇
        _this.queryWishbillAssist();
      }
    });
  },
  // 我也要玩
  onPlayTooHandler() {
    app.router.push({
      openType: "reLaunch",
      path: "index"
    })
  },
  // 助力
  queryWishbillAssist() {
    if (!this.data.canShake || this.data.tipsCommonVisible) {
      return;
    }
    this.setData({
      canShake: false
    })
    app.post({
      url: app.api.wishbillAssist,
      data: {
        billCode: this.data.options.code
      }
    }).then((result) => {
      let status = result.status;
      this.setData({
        status: status
      })
      if (status == 1) {
        // 助力成功
        // 合并数据
        let wishList = result.elasticValueList;
        wishList.forEach(element => {
          let product = productMap[element.prizeDefineCode + ""];
          console.log("product:", product);
          element = Object.assign(element, product);
          let progress = element.elasticValue / element.conditionElasticValue * 100;
          if (progress > 100) progress = 100;
          // 直接计算坐标
          let progressLeft = progress * 3.22 - 51;
          element.progress = progress;
          element.progressLeft = progressLeft;
        });
        console.log("wishList:", wishList);
        this.setData({
          coopInfo: result,
          wishList: wishList
        })
      } else if (status == 2) {
        // 助力失败
        this.setData({
          tipsCommonVisible: true,
          tipsInnerText: "已经为好友助力过啦~"
        })
      } else if (status == 3) {
        this.setData({
          tipsCommonVisible: true,
          tipsInnerText: "不能为自己助力哦~"
        })
      } else {
        // 助力失败
        this.setData({
          groupMemberCoopVisible: true
        })
      }

      this.setData({
        canShake: true
      })

    })
  },
  // 获取心愿单详情
  queryWishbillDetail() {
    console.log("queryWishbillDetail code:", this.data.options.code);
    return new Promise((resolve, reject) => {
      app.post({
        url: app.api.wishbillDetail,
        data: {
          billCode: this.data.options.code
        }
      }).then((result) => {
        // let status = result.isAssist;
        // this.setData({
        //   status
        // })
        let wishList = result.wishGifts;
        wishList.forEach(element => {
          let product = productMap[element.prizeDefineCode + ""];
          element = Object.assign(element, product);
          let progress = element.elasticValue / element.conditionElasticValue * 100;
          if (progress > 100) progress = 100;
          // 直接计算坐标
          let progressLeft = progress * 3.22 - 51;
          element.progress = progress;
          element.progressLeft = progressLeft;
        });
        this.setData({
          wishInfo: result,
          wishList: wishList
        })
        console.log("wishInfo:", this.data.wishInfo);
        console.log("wishList:", this.data.wishList);
        resolve();
      })
    });
  },
  hideMask() {
    this.setData({
      groupMemberCoopVisible: false,
      tipsCommonVisible: false,
      authorizeVisible: false,
    })
  },
  // 子组件事件
  evtcomp(evt) {
    let {
      name,
      data
    } = evt.detail;
    switch (name) {

      case "_evt_hide_mask":
        this.hideMask();
        break;

      case "_evt_auth_complete:":
        this.initData();
        break;

      default:
        break;
    }
  },
})