|  | const navigationBarHeight = (getApp().statusBarHeight + 50) + 'px'
var config = require("../../config/config.js");
var app = getApp();
const Http = require("../../utils/HttpBasics");
const util = require("../../utils/util");
const imgurl = require("../../utils/imgurl");
Page({
  data: {
    isGetUser: true, //判断是否授权抖音
    mouldType: 0,
    navigationBarHeight,
    homeSelectedO: imgurl.homeSelectedO.url,
    isshowposter: false, //是否显示分享弹框 
    fenxiang: imgurl.fenxiang1.url,
    fenxiangUrl: imgurl.fenxiang.url,
    clockUrl: imgurl.clock.url,
    yushouUrl: imgurl.yushou.url,
    teljpgUrl: imgurl.teljpg.url,
    closedUrl: imgurl.closed.url,
    quesGouUrl: imgurl.ques_gou.url,
    headbgUrl: imgurl.headbg.url,
    quesBgUrl: imgurl.ques_bg.url,
    close02: imgurl.close02.url,
    share01: imgurl.share01.url,
    fail: imgurl.fail.url,
    wmhome: imgurl.wmhome.url,
    swiperCurrent: 0,
    detailPicture: [],
    coverPicture: [],
    couponList: [],
    data: {
      title: null
    },
    showPage: false,
    questions1: null,
    questions2: null,
    carList: [],
    couponChannelId: null,
    orderId: "",
    hour: null,
    day: null,
    month: null,
    year: null,
    minute: "",
    tempFilePaths: null,
    userInfo: {},
    hasUserInfo: false,
    id: null,
    result: [],
    end_time: null,
    checked: false,
    questionnaire: {},
    questionId: null,
    widthScreen: null,
    moveData: null,
    rotateData: null,
    alphaData: null,
    scaleData: null,
    skewData: null,
    matrixData: null,
    opacity: 0,
    queueData: null,
    zIndex: 11,
    display: "none",
    showbutton: false,
    cardData: null,
    showCardOffer: false,
    isSamePeople: true,
    statusText: '',
    isReceived: false,
    receivedDisabled: false,
    clock: "结束",
    day: "00",
    hour: "00",
    min: "00",
    sec: "00",
    clock02: "00",
    day02: "00",
    hour02: "00",
    min02: "00",
    sec02: "00",
    countdown: "",
    showbutton1: false,
    limitCondition: "",
    minLimit: 0,
    maxLimit: 0,
    dispressEndDate: false,
    barTitle: "",
    activityStatus: "",
    //图文混排
    curHtml: '',
    contentType: 0,
    page: 1, //查询商户优惠券page
    idList: [],
    showBox: false, //手机号授权框
  },
  /**
   * 显示分享弹框
   */
  showshare: function () {
    this.setData({
      isshowposter: true,
    })
  },
  setPhone(paramData) { //子组件调用这个方法说明手机号已经授权成功
    this.setData({
      showBox: paramData.detail,
    })
    tt.showToast({
      title: '授权成功', // 内容
      icon: 'none', // 图标
      success: (res) => {
      },
      fail: (res) => {
      },
    });
  },
  setBox(paramData) {
    this.setData({
      showBox: paramData.detail
    })
    tt.showToast({
      title: '取消授权', // 内容
      icon: 'none', // 图标
      success: (res) => {
      },
      fail: (res) => {
      },
    });
  },
  /**
   * 隐藏分享弹框
   */
  hidemodal: function () {
    this.setData({
      isshowposter: false,
    })
  },
  /**
   * 显示分享海报
   */
  /* showPoster: function() {
    //跳转到海报生成页
    console.log(this.data.canIUse)
    // return;
    tt.navigateTo({
      url: `/pages/canvas/index?couponChannelId=${this.data.data.id}`
    })
  }, */
  showPoster: function () {
    //跳转到海报生成页
    let that = this;
    Http.get({
      url: config.api.checkUserStatus,
      data: {
        token: app.globalData.token
      }
    }).then(res => {
      tt.navigateTo({
        url: `/pages/canvas/index?couponChannelId=${that.data.data.id}`
      })
    }).catch(err => {
      console.log(err)
      if (err.code == 11004) {
        // 用户昵称未授权
        tt.redirectTo({
          url: `/pages/getuserinfo/index?couponChannelId=${that.data.data.id}&fromflag=poster`
        })
      }
    })
  },
  swiperChange: function (e) {
    this.setData({
      swiperCurrent: e.detail.current
    });
  },
  gohome(e) {
    console.log(e.currentTarget.dataset.id, "123")
    tt.navigateTo({
      url: `/pages/fillIndent/fillIndent?couponChannelId=${e.currentTarget.dataset.couponchannelid}&couponId=${e.currentTarget.dataset.couponid}&shippingtype=${e.currentTarget.dataset.shippingtype}`,
    })
  },
  gochild(e) {
    let id = e.currentTarget.dataset.id
    tt.navigateTo({
      url: `/pages/coupon/childDetail/childDetail?couponIds=${id}`,
    })
  },
  //获取当前登录用户信息
  getUserInfo: function () {
    let that = this;
    // 获取用户信息
    Http.get({
        url: config.api.getScore,
        data: {}
      })
      .then(res => {
        console.log(res)
        that.getQueryCardStatus()
        if (that.data.cardData.cuserId != res.data.id) {
          console.log(2222, 6666)
          that.setData({
            isSamePeople: false
          })
        }
      })
  },
  //获取卡转赠状态
  getQueryCardStatus() {
    let that = this;
    let param = {
      id: this.data.cardData.couponOrderId,
      cUserId: this.data.cardData.cuserId,
      updateDate: util.formatTime(Number(that.data.cardData.updateDate), "yyyy-MM-dd hh:mm:ss")
    }
    Http.get({
        url: config.api.queryCardStatus,
        data: param
      })
      .then(res => {
        console.log(res, 333333333333)
      })
      .catch(err => {
        that.setData({
          isReceived: true,
          statusText: err.message
        })
      })
  },
  receiveCard() {
    let that = this;
    let param = {
      id: this.data.cardData.couponOrderId,
      cUserId: this.data.cardData.cuserId,
      updateDate: util.formatTime(Number(this.data.cardData.updateDate), "yyyy-MM-dd hh:mm:ss")
    }
    this.setData({
      receivedDisabled: true
    })
    Http.post({
        url: config.api.cardAccept,
        data: param
      })
      .then(res => {
        tt.showToast({
          title: '领取成功!',
          icon: 'none',
          duration: 2000,
          mask: false
        });
        tt.reLaunch({
          url: '/pages/complete/index?couponOrderId=' + this.data.cardData.couponOrderId,
        })
      })
      .catch(err => {
        tt.showToast({
          title: err.message,
          icon: 'none',
          duration: 2000,
          mask: false
        });
        that.setData({
          receivedDisabled: false
        })
      })
  },
  closeAlert() {
    this.setData({
      showCardOffer: false
    })
  },
  goback: function () {
    tt.reLaunch({
      url: '/index/index',
    })
  },
  /**
   * 点击提交问题单选
   */
  formSubmit: function (e) {
    console.log(e);
    let that = this;
    /**
     * 多选
     */
    if (e.currentTarget.dataset.flags == 'multi') {
      if (that.data.anwserId.length == 0) {
        var answserIs = null
      } else {
        var answserIs = that.data.anwserId.join(",");
      }
    } else if (e.currentTarget.dataset.flags == 'single') {
      var answserIs = e.detail.value;
    }
    console.log(answserIs)
    console.log(e.currentTarget.dataset.questionid)
    Http.post({
        url: config.api.answerQuestion,
        data: {
          answer: answserIs,
          questionId: e.currentTarget.dataset.questionid
        }
      })
      .then(res => {
        that.closeQuestion();
      })
      .catch(err => {
        tt.showToast({
          title: err.message,
          icon: 'none',
          duration: 2000,
          mask: false
        });
      })
  },
  /**
   * 多选
   */
  checkboxChange: function (e) {
    console.log(e)
    this.setData({
      anwserId: e.detail.value
    })
  },
  closeQuestion: function () {
    let that = this;
    that.setData({
      display: "none",
      zIndex: 11,
      opacity: 0
    })
    setTimeout(function () {
      that.orderFunc();
    }, 500)
  },
  ifGetUser() {
    Http.get({
      url: config.api.checkUserStatus,
      data: {
        token: app.globalData.token
      }
    }).then(res => {}).catch(err => {
      if (err.code == 11004) {
        this.setData({
          isGetUser: false
        })
      }
    })
  },
  setIntervalTime(end_time) {
    let that = this;
    var EndTime = end_time;
    var NowTime = new Date().getTime();
    var total_micro_second = EndTime - NowTime || [];
    // 渲染倒计时时钟
    let obj = that.dateformat(total_micro_second);
    if (total_micro_second > 0) {
      that.setData({
        clock: obj,
        day: obj.a1,
        hour: obj.b1,
        min: obj.c1,
        sec: obj.d1,
      })
    } else {
      that.setData({
        clock: "00",
        day: "00",
        hour: "00",
        min: "00",
        sec: "00",
      })
      //如果倒计时结束,需要重新查询一下券的状态
      // 给getDetail一个标识 
      that.getDetail(that.data.id, 'endclock');
    }
    total_micro_second -= 1000;
  },
  countdown: function (end_time) {
    let that = this;
    that.setIntervalTime(end_time);
    that.data.setInterval = setInterval(function () {
      that.setIntervalTime(end_time);
    }, 1000)
  },
  // 时间格式化输出,如11:03 25:19 每1s都会调用一次
  dateformat(micro_second) {
    // 总秒数
    var second = Math.floor(micro_second / 1000);
    // 天数
    var day = Math.floor(second / 3600 / 24) < 10 ? "0" + Math.floor(second / 3600 / 24) : Math.floor(second / 3600 / 24);
    // 小时
    var hr = Math.floor(second / 3600 % 24) < 10 ? "0" + Math.floor(second / 3600 % 24) : Math.floor(second / 3600 % 24);
    // 分钟
    var min = Math.floor(second / 60 % 60) < 10 ? "0" + Math.floor(second / 60 % 60) : Math.floor(second / 60 % 60);
    // 秒
    var sec = Math.floor(second % 60) < 10 ? "0" + Math.floor(second % 60) : Math.floor(second % 60);
    // return day + "天" + hr + "小时" + min + "分钟" + sec + "秒";
    return {
      a1: day,
      b1: hr,
      c1: min,
      d1: sec
    }
  },
  /**
   * 获取用户信息
   */
  onLoad(options) {
    console.log(options);
    this.setData({
      mouldType: app.globalData.mouldType,
    })
    let that = this;
    if (options.g) {
      app.globalData.havePlayEd1 = true;
    }
    tt.showLoading({
      title: "加载中..."
    });
    that.setData({
      onshow: false
    })
    if (options && (options.id || options.couponIds)) {
      that.getDetail(options.id, 'notendclock');
    }
    that.setData({
      couponChannelId: options.id,
    });
    this.getCouponMerchant(options.id)
  },
  getCouponMerchant(couponChannelId) { //获取适用门店
    Http.get({
      url: config.api.couponMerchant,
      data: {
        couponChannelId: couponChannelId
      }
    }).then(res => {
      const keys = Object.keys(res.data)
      const mallList = []
      let i = 0
      keys.forEach(item => {
        const arr = item.split('|')
        const obj = {
          tenantId: arr[0],
          mallName: arr[1],
          merchantVoList: res.data[item],
          expand: false
        }
        if (i == 0) {
          obj.expand = true
        }
        mallList.push(obj)
        i++
      })
      this.setData({
        mallList: mallList
      })
    })
  },
  getHtml(couponChannelId) {
    Http.get({
      url: config.api.couponHtmlDetail,
      data: {
        couponChannelId: couponChannelId
      }
    }).then(res => {
      console.log(res)
      if (res.code == 200 && res.data.html) {
        this.setData({
          curHtml: decodeURI(res.data.html)
        })
        app.globalData.curHtml = this.data.curHtml;
        console.log(app.globalData.curHtml)
      }
    })
  },
  getDetail: function (couponChannelId, flag) {
    let that = this;
    var parmer = {
      url: config.api.getSnapshot,
      data: {
        orderId: couponChannelId
      }
    };
    Http.get(parmer)
      .then(res => {
        //aaa
        if (res.data.contentType != undefined && res.data.contentType == 1) {
          //获取图文展示详情html
          this.setData({
            contentType: res.data.contentType
          })
          this.getHtml(couponChannelId);
        }
        that.setData({
          couponId: res.data.couponId
        })
        that.setData({
          showPage: true
        })
        if (res && res.data && res.data.detailPicture) {
          that.setData({
            detailPicture: JSON.parse(res.data.detailPicture)
          })
        }
        if (res && res.data && res.data.coverPicture) {
          that.setData({
            coverPicture: JSON.parse(res.data.coverPicture)
          })
        }
        if (res && res.data && res.data.conditions) {
          that.setData({
            limitCondition: JSON.parse(res.data.conditions).type
          })
          if (JSON.parse(res.data.conditions).type == 2 && (JSON.parse(res.data.conditions).min || JSON.parse(res.data.conditions).min == 0)) {
            that.setData({
              minLimit: JSON.parse(res.data.conditions).min
            })
          }
          if (JSON.parse(res.data.conditions).type == 2 && (JSON.parse(res.data.conditions).max) || JSON.parse(res.data.conditions).max == 0) {
            that.setData({
              maxLimit: JSON.parse(res.data.conditions).max
            })
          }
        }
        /**
         * 将优惠券优惠卡的详情的BarTitle
         * 设置成券的名称
         */
        // tt.setNavigationBarTitle({
        //   title: res.data.title
        // })
        that.setData({
          barTitle: res.data.title
        })
        var EndTime = res.data.validStartDate;
        var NowTime = new Date().getTime();
        /**
         * activityStatus==0 活动未开始
         * activityStatus==1 活动已开始
         * flag == endclock 说明倒计时已经结束
         */
        if (res.data.endTime && res.data.beginTime) {
          that.setData({
            begin_time: res.data.beginTime,
            end_time: res.data.endTime,
            activityStatus: res.data.activityStatus ? res.data.activityStatus : ''
          })
          if (res.data.activityStatus == 0 && flag != 'endclock') {
            that.countdown(res.data.beginTime);
          } else if (res.data.activityStatus != 0 && flag != 'endclock') {
            that.countdown(res.data.endTime);
          } else {
            clearInterval(that.data.setInterval)
          }
          if (res.data.activityStatus == 0) {
            var beginTime = util.formatTime(res.data.beginTime, "yyyy-MM-dd hh:mm:ss");
            if (util.timechuo(beginTime).indexOf('-') == 0) {
              that.setData({
                beginTime: "活动已结束",
              });
            } else {
              that.setData({
                beginTime: util.timechuo(beginTime)
              });
            }
          } else {
            var endTime = util.formatTime(res.data.endTime, "yyyy-MM-dd hh:mm:ss");
            if (util.timechuo(endTime).indexOf('-') == 0) {
              that.setData({
                endtime: "活动已结束",
              });
            } else {
              that.setData({
                endtime: util.timechuo(endTime)
              });
            }
          }
        }
        tt.hideLoading();
        that.setData({
          data: res.data,
          merchantVoList: res.data.merchantVoList
        });
        if (res.data.type == 10) {
          that.setData({
            salePriceStr: res.data.salePriceStr,
            pickEndDate: util.formatTime(res.data.pickEndDate, "yyyy-MM-dd"),
            pickStartDate: util.formatTime(res.data.pickStartDate, "yyyy-MM-dd"),
            priceStr: res.data.priceStr,
            tailPriceStr: res.data.tailPriceStr,
            origPriceStr: res.data.origPriceStr
          })
        }
        if (res.data.validType == 1) {
          that.setData({
            validStartDate: util.formatTime(res.data.validStartDate, "yyyy-MM-dd"),
            validEndDate: util.formatTime(res.data.validEndDate, "yyyy-MM-dd"),
            pickStartDate: util.formatTime(res.data.pickStartDate, "yyyy-MM-dd"),
            pickEndDate: util.formatTime(res.data.pickEndDate, "yyyy-MM-dd"),
          });
        } else {
          if (res.data.validDays) {
            that.setData({
              validDays: res.data.validDays
            });
          }
        }
        if (res.data.itemGroup) {
          let tempObj = that.data.data
          tempObj.itemGroup = JSON.parse(tempObj.itemGroup)
          that.setData({
            data: tempObj
          })
          console.log(that.data.data, "data");
        }
        if (res.data.productAttrs && res.data.skuAttrs) {
          let tempObj = that.data.data
          tempObj.productAttrs = JSON.parse(tempObj.productAttrs)
          tempObj.skuAttrs = JSON.parse(tempObj.skuAttrs)
          tempObj.productAttrs.map(item => {
            if (item.key == "appointment") {
              let tempAppoinObj = JSON.parse(item.data)
              if (tempAppoinObj.need_appointment) {
                let subscribeSing = "";
                if (tempAppoinObj.ahead_time_type == 1) {
                  subscribeSing = `需提前${tempAppoinObj.ahead_day_num}天致电商家预约`
                } else if (tempAppoinObj.ahead_time_type == 2) {
                  subscribeSing = `需提前${tempAppoinObj.ahead_hour_num}小时致电商家预约`
                } else if (tempAppoinObj.ahead_time_type == 3) {
                  subscribeSing = `需提前${tempAppoinObj.ahead_minute_num}分钟致电商家预约`
                }
                tempObj.subscribeSing = subscribeSing
              }
            }
            if (item.key == "Notification") {
              if (item.data != '') {
                tempObj.curLsit = JSON.parse(item.data)
              }
            }
            if (item.key == "bring_out_meal") {
              tempObj.besides = item.data
            }
            if (item.key == "free_pack") {
              tempObj.pack = item.data
            }
            if (item.key == "superimposed_discounts") {
              tempObj.superimposed_discounts = item.data
            }
            if (item.key == "private_room") {
              tempObj.private_room = item.data
            }
            if (item.key == "rec_person_num_max") {
              tempObj.rec_person_num_max = item.data
            }
            if (item.key == 'Description' && item.isRequired) {
              tempObj.Description = JSON.parse(item.data)
            }
            if (item.key == "can_no_use_date") {
              tempObj.can_no_use_date = JSON.parse(item.data)
            }
          })
          tempObj.skuAttrs.map(item => {
            if (item.key == "commodity") {
              if (item.data != '') {
                tempObj.itemGroup = JSON.parse(item.data)
              }
            }
          })
          this.setData({
            data: tempObj
          })
        }
      }).catch(err => {
        tt.showToast({
          title: err.message,
          icon: 'none',
          duration: 2000,
          mask: false
        });
      })
  },
  onShow() {
    this.ifGetUser() //判断是否授权抖音
    this.setData({
      mouldType: app.globalData.mouldType,
      showbutton: false,
      showbutton1: false
    })
    if (this.data.end_time && this.data.activityStatus != 0) {
      this.countdown(this.data.end_time)
    } else if (this.data.begin_time && this.data.activityStatus == 0) {
      this.countdown(this.data.begin_time)
    }
  },
  onUnload: function () {
    let that = this;
    clearInterval(that.data.setInterval)
  },
  onHide: function () {
    let that = this;
    clearInterval(that.data.setInterval)
  },
  // 下拉刷新
  onPullDownRefresh: function () {
    this.getDetail(this.data.couponChannelId);
    tt.stopPullDownRefresh()
  },
  onReachBottom: function () {
    this.setData({
      page: this.data.page + 1
    })
  }
});
 |