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') { 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 }) } });