diff --git a/app.json b/app.json index c1b1e8d..d911c84 100644 --- a/app.json +++ b/app.json @@ -33,7 +33,9 @@ "pages/grade/grade", "pages/game/index", "pages/index/gameentry/gentry", - "pages/specialcourtesy/specialcourtesy" + "pages/specialcourtesy/specialcourtesy", + "pages/discountCardList/discountCardList", + "pages/cardListDetail/cardListDetail" ], "navigateToMiniProgramAppIdList": [ "wx192b7d2e8dcbefd0", diff --git a/assets/img/discountcard.png b/assets/img/discountcard.png new file mode 100644 index 0000000..c96ba50 Binary files /dev/null and b/assets/img/discountcard.png differ diff --git a/components/discountCard/index.js b/components/discountCard/index.js new file mode 100644 index 0000000..450422a --- /dev/null +++ b/components/discountCard/index.js @@ -0,0 +1,31 @@ +// pages/index/sw/index.js +Component({ + /** + * 组件的属性列表 + */ + properties: { + list: { + value: [], + type: Array + } + }, + + /** + * 组件的初始数据 + */ + data: { + swiperCurrent: 0 + }, + + /** + * 组件的方法列表 + */ + ready() {}, + methods: { + gotoDiscountCardList:function(){ + wx.navigateTo({ + url: '/pages/discountCardList/discountCardList', + }) + } + } +}); diff --git a/components/discountCard/index.json b/components/discountCard/index.json new file mode 100644 index 0000000..3bd5dd3 --- /dev/null +++ b/components/discountCard/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + + } +} \ No newline at end of file diff --git a/components/discountCard/index.wxml b/components/discountCard/index.wxml new file mode 100644 index 0000000..2b872e5 --- /dev/null +++ b/components/discountCard/index.wxml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/components/discountCard/index.wxss b/components/discountCard/index.wxss new file mode 100644 index 0000000..a361325 --- /dev/null +++ b/components/discountCard/index.wxss @@ -0,0 +1,5 @@ +.content image{ + display: block; + margin: 30rpx auto 0; + border: 1px solid red; +} \ No newline at end of file diff --git a/pages/cardListDetail/CardListDetail.js b/pages/cardListDetail/CardListDetail.js new file mode 100644 index 0000000..227e94f --- /dev/null +++ b/pages/cardListDetail/CardListDetail.js @@ -0,0 +1,540 @@ +var config = require("../../../config/config.js"); +var app = getApp(); +const Http = require("../../../utils/HttpBasics"); +const util = require("../../../utils/util"); + +Page({ + data: { + data: { + title: null + }, + showPage: false, + questions1: null, + questions2: null, + carList: [], + couponChannelId: null, + couponId: null, + orderId: "", + hour: null, + minute: "", + tempFilePaths: null, + userInfo: {}, + hasUserInfo: false, + canIUse: wx.canIUse('button.open-type.getUserInfo'), + id: null, + result: [], + end_time: null, + checked: false, + clock: "已经截止", + 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 + }, + phone: function (e) { + let that = this; + wx.makePhoneCall({ + phoneNumber: e.target.dataset.merchantlinkphone + }); + }, + /** + * 点击提交问题单选 + */ + 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 => { + wx.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) + }, + /** + * gotopay + */ + gotopay: function () { + let that = this; + that.setData({ + queueData: null, + showbutton: true + }) + Http.get({ + url: config.api.getQuestion, + data: { + couponType: JSON.stringify(that.data.data.type) + } + }) + .then(res => { + console.log(res); + if (res.data == undefined) { + that.orderFunc(); + that.setData({ + flag: false + }) + } else if (res.data) { + var animation = wx.createAnimation({}); + animation.translate((that.data.widthScreen - that.data.widthScreen), 0).scale(1).opacity(1).step({ + duration: 500 + }) + that.setData({ + queueData: animation.export(), + zIndex: 9, + opacity: 1, + display: "block", + questionnaire: JSON.parse(res.data.content), + questionId: res.data.id + }); + } + }) + .catch(err => { + wx.showToast({ + title: err.message, + icon: 'none', + duration: 2000, + mask: false + }); + }) + }, + + countdown(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", + }) + } + setTimeout(function () { + total_micro_second -= 1000; + that.countdown(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) { + let that = this; + wx.showLoading({ + title: "加载中..." + }); + that.setData({ + couponChannelId: options.couponChannelId, + couponId: options.couponId, + title: that.data.data.title ? that.data.data.title : '', + }); + var parmer = { + url: config.api.couponDetail, + data: { + couponChannelId: options.couponChannelId + } + }; + Http.get(parmer) + .then(res => { + if (res.code == 200) { + that.setData({ + showPage: true + }) + } + if (res.data.endTime) { + that.countdown(res.data.endTime); + //当前时间与优惠券下架时间做计算 + 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) + }); + } + } + wx.hideLoading(); + that.setData({ + data: res.data + }); + + 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"), + }); + } else { + that.setData({ + validDays: res.data.validDays + }); + } + }).catch(err => { + wx.showToast({ + title: err.message, + icon: 'none', + duration: 2000, + mask: false + }); + }) + }, + /** + * 支付订单更新 + */ + payOrderUpdate: (orderId, payOrderId, status, reason, type, _this) => { + let that = this; + // 支付成功 + Http.post({ + url: config.api.payOrderUpdate, + data: { + payOrderId: payOrderId, + orderId: orderId, + status: status, + reason: reason + } + }) + .then(res => { + wx.hideLoading() + // 有价券 + if (!type && type != 'free') { + wx.navigateTo({ + url: `/pages/order/detail/index?orderId=${ + orderId + }` + }); + } else if (type == 'free') { + wx.navigateTo({ + url: `/pages/order/detail/index?orderId=${ + orderId + }` + }); + } + }) + .catch(err => { + console.log(err); + if (!type) { + setTimeout(function () { + _this.payOrderUpdate(orderId, payOrderId, status, reason, type, _this); + }, 2000) + } + }) + }, + /** + * 发起支付 + */ + orderFunc(flag) { + var that = this; + // wx.showLoading({ + // title: "加载中..." + // }); + Http.post({ + url: config.api.checkPhoneStatus, + data: {} + }) + .then(res => { + var data = { + couponChannelId: "" + that.data.couponChannelId, + couponId: "" + that.data.couponId + }; + if (that.data.couponChannelId == null) { + var data = { + couponId: "" + that.data.couponId + }; + } + /** + * orderSave 下单 + */ + return Http.post({ + url: config.api.orderSave, + data: data + }); + }) + .catch(err => { + if (err.code == "2011") { + wx.showToast({ + title: "商户信息没找到", + image: "./../../../assets/img/fail.png", + duration: 2000, + mask: false + }); + } else if (err.code == "2013") { + wx.showToast({ + title: "商户信息禁用", + image: "./../../../assets/img/fail.png", + duration: 2000, + mask: false + }); + } else if (err.code == "3000") { + wx.showToast({ + title: "库存不足", + image: "./../../../assets/img/fail.png", + duration: 2000, + mask: false + }); + } else if (err.code == "3001") { + wx.showToast({ + title: "领取达到上限", + image: "./../../../assets/img/fail.png", + duration: 2000, + mask: false + }); + } else if (err.code == "3002") { + wx.showToast({ + title: "订单失败", + image: "./../../../assets/img/fail.png", + duration: 2000, + mask: false + }); + } else if (err.code == "3003") { + wx.showToast({ + title: "订单不存在", + image: "./../../../assets/img/fail.png", + duration: 2000, + mask: false + }); + } else if (err.code == "3004") { + wx.showToast({ + title: "订单不存在", + image: "./../../../assets/img/fail.png", + duration: 2000, + mask: false + }); + } else if (err.code == "4003") { + wx.showToast({ + title: "卡券已作废", + image: "./../../../assets/img/fail.png", + duration: 2000, + mask: false + }); + } else if (err.code == 11005) { + /** + * 将值传到用户手机号授权的页面 + * + */ + wx.redirectTo({ + url: "/pages/getphoneInfo/index?couponChannelId=" + + that.data.couponChannelId + + "&couponId=" + + that.data.couponId + }); + } else if (err.code == 11006) { + // 用户手机已加密 + wx.redirectTo({ + url: "/pages/phoneinput/phoneinput?couponChannelId=" + + that.data.couponChannelId + + "&couponId=" + + that.data.couponId + }); + } else { + wx.showToast({ + title: err.message, + icon: 'none', + duration: 2000, + mask: false + }); + } + }) + .then(res => { + if (typeof (res) != "undefined") { + let orderId = "" + res.data.id; + that.setData({ + orderId: orderId + }); + if (res.data.payment > 0) { + // 支付金额不为0 + /** + * 支付订单创建 + */ + Http.post({ + url: config.api.payOrderCreate, + data: { + orderId: orderId + } + }).then(res => { + var payOrderId = "" + res.data.payOrderId; + wx.hideLoading(); + wx.requestPayment({ + timeStamp: res.data.timeStamp, + nonceStr: res.data.nonceStr, + package: res.data.package, + signType: (res.data.signType) ? res.data.signType : "MD5", + paySign: res.data.paySign, + success: res => { + wx.showLoading({ + title: '订单正在处理中...', + }) + setTimeout(function () { + wx.hideLoading() + }, 5000) + that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', '', that); + if (res.errMsg == "requestPayment:ok") { + setTimeout(function () { + wx.hideLoading(); + }, 2000); + /** + * 用户支付成功以后跳转到券包列表 + */ + wx.setStorage({ + key: 'couponNum', + data: "couponNum", + }) + } + }, + fail: res => { + /** + * 支付失败,需要更新订单的状态 + */ + that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', 'fail', that); + that.setData({ + showbutton: false + }) + return; + }, + complete: res => { } + }); + /// End payment -------- + }) + .catch(err => { + wx.showToast({ + title: err.message, + icon: 'none', + duration: 2000, + mask: false + }); + }) + } else { + // 免费券 + that.payOrderUpdate(orderId, "0", 1, '', 'free'); + wx.setStorage({ + key: 'couponNum', + data: "couponNum" + }) + } + } + }) + .catch(err => { + wx.showToast({ + title: err.message, + icon: 'none', + duration: 2000, + mask: false + }); + }) + }, + onShow() { + this.setData({ + showbutton: false + }) + }, + onShareAppMessage: function (options) { + var that = this; + var shareObj = { + title: that.data.data.title, + path: `/pages/index/index?couponChannelId=${that.data.couponChannelId}&couponId=${that.data.couponId}`, + success: function (res) { + if (res.errMsg == 'shareAppMessage:ok') { } + }, + fail: function (error) { + if (res.errMsg == 'shareAppMessage:fail cancel') { } else if (res.errMsg == 'shareAppMessage:fail') { } + } + }; + // 来自页面内的按钮的转发 + if (options.from == 'button') { + var eData = options.target.dataset.id; + var couponId = options.target.dataset.couponid; + shareObj.path = `/pages/index/index?couponChannelId=${eData}&couponId=${couponId}`; + } + // 返回shareObj + return shareObj; + }, + +}); \ No newline at end of file diff --git a/pages/cardListDetail/CardListDetail.json b/pages/cardListDetail/CardListDetail.json new file mode 100644 index 0000000..c82f53b --- /dev/null +++ b/pages/cardListDetail/CardListDetail.json @@ -0,0 +1,3 @@ +{ + "navigationBarTitleText": "卡详情" +} \ No newline at end of file diff --git a/pages/cardListDetail/CardListDetail.wxml b/pages/cardListDetail/CardListDetail.wxml new file mode 100644 index 0000000..9bc7994 --- /dev/null +++ b/pages/cardListDetail/CardListDetail.wxml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + 距结束还剩 : + + + {{day}}天 + {{hour}}: + {{min}}: + {{sec}} + + + {{day}}天 + {{hour}}: + {{min}}: + {{sec}} + + + {{data.title}} + {{data.subTitle}} + + 售价: + {{data.salePriceStr}} + + {{data.priceStr}}元 + {{data.priceStr}}小时 + + 剩余{{data.remainInventory}}件 + + 有效期:自领取之日起 + {{validDays}}天内有效 + 有效期: + {{validStartDate}}至{{validEndDate}} + + + 当次有效 + + + 使用条件: + 满{{data.usePriceStr}}元可用 + + + 限购条件: + 每人{{data.useLimitQuantity}}张 + + + + + + + + + 购买须知 + + + {{data.remark}} + + + + + \ No newline at end of file diff --git a/pages/cardListDetail/CardListDetail.wxss b/pages/cardListDetail/CardListDetail.wxss new file mode 100644 index 0000000..d0fa900 --- /dev/null +++ b/pages/cardListDetail/CardListDetail.wxss @@ -0,0 +1,435 @@ +@import "../../app.wxss"; +page { + background: #fff; +} + +.coupons { + width: 100%; + position: relative; + overflow: hidden; + padding-bottom: 170rpx; +} + +.banner { + position: relative; + width: 750rpx; + height: 534.5rpx; +} + +.banner image { + width: 100%; + height: 100%; +} + +.coupons_info { + width: 92%; + padding: 0 4%; + background: #fff; + border-top-left-radius: 20rpx; + border-top-right-radius: 20rpx; + margin-top: -25rpx; +} + +.fenxiang { + position: absolute; + right: 36rpx; + top: 27rpx; + width: 77rpx; +} + +.fenxiang image { + width: 50rpx; + position: absolute; + top: 0; + right: 0; +} + +.user-motto { + width: 100rpx; + border: 0; + background: none; + height: 60rpx; + color: #fff; +} + +.user-motto::after { + border: none; +} + +.title { + display: block; + font-size: 32rpx; + color: #000; + letter-spacing: 1.09rpx; + line-height: 45rpx; + width: 542rpx; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + padding-top: 30rpx; +} + +.subTitle { + display: block; + width: 588rpx; + /* height: 37rpx; */ + font-size: 26rpx; + color: #999; + letter-spacing: 1.16rpx; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + padding: 6rpx 0; +} + +.rest { + font-size: 24rpx; + color: #919191; + letter-spacing: 0; + height: 70rpx; + line-height: 70rpx; + /* border-bottom: 1px solid #eee; */ + border-bottom: 1px solid #f9f9f9; +} + +.restNum { + font-size: 24rpx; + color: #999; + letter-spacing: 1.16rpx; + text-align: right; +} + +.time { + font-size: 24rpx; + color: #333; + letter-spacing: 0; + line-height: 33rpx; + display: inline-block; +} + +.txt01 { + font-size: 24rpx; + color: #919191; + letter-spacing: 0; +} + +.price { + font-size: 24rpx; + color: #999; + letter-spacing: 0; +} + +.salePriceStr { + font-size: 24rpx; + color: #999; + letter-spacing: 0; +} + +.salePriceStr .pri01 { + font-size: 40rpx; + color: #ff4949; + letter-spacing: 0; + margin-left: 10rpx; +} + +.salePriceStr .yuan { + font-size: 24rpx; + color: #ff4949; + letter-spacing: 0; +} + +.price text { + font-size: 24rpx; + color: #333; + letter-spacing: 0; +} + +.throgh { + text-decoration: line-through; + margin-left: 10rpx; +} + +.posi { + position: relative; + width: 92%; + margin: 0 auto; +} + +.fl { + float: left; +} + +.fr { + float: right; +} + +.posi>view:nth-child(2) { + width: 100%; + height: 87rpx; + display: flex; + justify-content: space-between; + border-top: 1px solid #f6f6f6; + line-height: 87rpx; +} + +.posi>view:nth-child(2) text:nth-child(1) { + font-size: 30rpx; + color: #a9a9a9; +} + +.posi>view:nth-child(2) text:nth-child(2) { + font-size: 30rpx; + color: #a9a9a9; +} + +.posi_logo { + width: 100%; + display: flex; + padding: 20rpx 0; + background: #fff; + height: 100rpx; + margin-bottom: 20rpx; +} + +.posi_logo view:nth-child(1) { + width: 100rpx; + height: 100rpx; + border-radius: 16rpx; +} + +.posi_logo view:nth-child(1) image { + display: block; + width: 100rpx; + height: 100rpx; + border-radius: 16rpx; + border: 1px solid #e5e5e5; +} + +.posi_logo view:nth-child(2) { + display: flex; + flex-direction: column; + flex: 8; + padding-left: 30rpx; +} + +.posi_logo view:nth-child(2) text:nth-child(1) { + font-size: 32rpx; + color: #333; + letter-spacing: 0; +} + +.posi_logo view:nth-child(2) text:nth-child(2) { + font-size: 24rpx; + color: #b8b8b8; + padding-top: 3rpx; + width: 450rpx; + height: 36rpx; + overflow: hidden; +} + +.notes view:nth-child(1) { + width: 92%; + height: 87rpx; + padding: 0 4%; + line-height: 87rpx; + background: #fff; +} + +.active { + opacity: 0.6; +} + +.notes view:nth-child(1) text { + font-size: 24rpx; + color: #333; + letter-spacing: 0; +} + +.notes view:nth-child(2) { + width: 92%; + padding: 0 4%; + background: #fff; + display: flex; + flex-direction: column; +} + +.notes view:nth-child(2)>text { + font-size: 24rpx; + color: #919191; + letter-spacing: 0; + line-height: 42rpx; +} + +.buy-view { + background: #fff; + height: 96rpx; + bottom: 0; + left: 0; + right: 0; + padding-bottom: 22rpx; + padding-top: 22rpx; +} + +.buy { + position: relative; + background: #00c0ff; + height: 94rpx; + width: 670rpx; + margin: 0 auto 30rpx; + color: #fff; + font-size: 36rpx; + line-height: 94rpx; + border-radius: 61rpx; +} + +.tel { + right: 0; + top: 0; + bottom: 0; + margin: auto; + width: 50rpx; + height: 50rpx; +} + +.txt { + margin-right: 30rpx; +} +.distance{ + border: none; + border-radius:16rpx; + width: 600rpx; + padding: 16rpx 6rpx 0 0; +} +.distance .txt01{ + display: block; + font-size: 26rpx; + color: #ff4949; +} +.clock{ + width: 116rpx!important; + vertical-align: middle; + margin-right: 10rpx; + margin-top: -4rpx; +} +.qiang{ + position: inline-block; + width: 60rpx; + height: 40rpx; + line-height: 40rpx; + color: #ff4949; + text-align: center; + font-size: 28rpx; + margin-right: 10rpx; +} +.times{ + display: inline-block; + color: #ff4949; + font-weight:bold; + font-size: 26rpx; + text-align:center; +} +.times text{ + display: inline-block; + margin: 6rpx; + width: 46rpx; + height: 56rpx; + text-align: center; + font-size: 28rpx; + line-height: 60rpx; + border-radius:12rpx; + color: #fff; + font-weight:bold; + background: #ff4949; +} + +.b1 { + position: fixed; + top: 0px; + bottom: 0px; + left: 0px; + right: 0px; + background: rgba(0, 0, 0, 0.8); + overflow: hidden; + z-index: 10; +} + +.con { + position: absolute; + top: 35rpx; + right: 0; + bottom: 0; + left: 0; + margin: auto; + width: 587rpx; +} + +.con .image{ + display: block; + width: 100%; +} + +.img { + margin-top: -50rpx; +} +.question { + display: block; + width: 587rpx; + background: #fff; + border-bottom-left-radius: 22rpx; + border-bottom-right-radius: 22rpx; + overflow: hidden; +} + +.ques { + display: block; + width: 511rpx; + margin: 0 auto; + height: 95rpx; + line-height: 95rpx; + font-size: 30rpx; + color: #333; + border-bottom: 1rpx solid #eee; +} + +.titles { + width: 511rpx; + display: block; + text-align: center; + height: 50rpx; + margin: 0 auto; + padding-top:10rpx; + padding-bottom:20rpx; + font-size: 32rpx; + font-weight: bold; + line-height: 41rpx; + border-bottom: 1rpx solid #eee; +} +.quessss >view:last-child{ + border-bottom:0; +} +.close{ + position: relative; + z-index: 10000; + display: block; + width: 70rpx; +} +.ques_gou{ + position: absolute; + width: 20rpx; + top: 160rpx; + left: 23rpx; +} +.btns{ + color: #f8755b; + font-weight: bold; + font-size: 30rpx!important; + text-align: center!important; +} +.radios{ + display: block; + font-size:28rpx; + height: 95rpx; + line-height: 95rpx; + color: #333; + text-indent: .5em; +} \ No newline at end of file diff --git a/pages/discountCardList/discountCardList.js b/pages/discountCardList/discountCardList.js new file mode 100644 index 0000000..8a5049c --- /dev/null +++ b/pages/discountCardList/discountCardList.js @@ -0,0 +1,142 @@ +const util = require("../../utils/util.js"); +const config = require("../../config/config.js"); +const Http = require("../../utils/HttpBasics"); +let app = getApp(); +Page({ + data: { + tabs: [{ + key: 0, + name: "A卡" + }, + { + key: 1, + name: "礼品卡" + }, + { + key: 2, + name: "折扣卡" + }, + { + key: 3, + name: "D卡" + } + ], + list: [], + current: "0", + current_scroll: "0", + page: 1, + allow_load: true, + loading: true, //"上拉加载"的变量,默认false,隐藏 + content: "", + mystatus: '', + showPage: false + }, + onLoad() { + this.getList(0, 1); + }, + onShow: function () { + let that = this; + wx.setStorage({ + key: 'couponNum', + data: "couponNum1", + }) + wx.hideTabBarRedDot({ + index: 2 + }) + }, + //点击跳转到券详情页面 + gotouse: function (e) { + if (this.data.mystatus == '' || this.data.mystatus == 'undefined') { + var mystatus = e.currentTarget.dataset.couponorderstatus; + } else { + var mystatus = this.data.mystatus; + } + wx.navigateTo({ + url: `/pages/couponorder/detail/index?quancode=${ + e.currentTarget.dataset.quancode}&couponorderstatus=${mystatus}` + }); + }, + getList(key, pageNum) { + var that = this; + if (that.data.allow_load) { + that.setData({ + loading: true, + content: "小主,我在玩命加载中...", + }); + Http.get({ + url: config.api.couponOrderList, + data: { + pageNum: pageNum, + pageSize: 6, + couponOrderStatus: key + } + }) + .then(res => { + if (res.code == 200) { + that.setData({ + showPage: true + }) + } + res.data.list.map(file => { + file.expiredTime = util.fmtDate(file.expiredTime); + }); + setTimeout(function () { + that.setData({ + loading: false + }); + }, 1400); + if (pageNum >= res.data.pages) { + that.setData({ + allow_load: false + }); + } + if (pageNum == 1) { + that.setData({ + list: [] + }) + } + var tmpArr = that.data.list; + tmpArr.push.apply(tmpArr, res.data.list); + that.setData({ + list: tmpArr + }) + }) + .catch(err => { + wx.showModal({ + title: '提示', + content: err.errMsg, + showCancel: false + }) + }) + } else { + that.setData({ + loading: true, + content: "——— 再拉裤子就掉了啦 ———" + }); + setTimeout(function () { + that.setData({ + loading: false + }); + }, 1400); + } + }, + handleChangeScroll({ + detail + }) { + this.setData({ + list: [], + allow_load: true, + current_scroll: detail.key, + page: 1, + }); + this.getList(detail.key, 1); + }, + onReachBottom: function () { + var that = this; + that.data.page++; + that.setData({ + page: that.data.page + }); + that.getList(that.data.current_scroll, that.data.page); + } +}); \ No newline at end of file diff --git a/pages/discountCardList/discountCardList.json b/pages/discountCardList/discountCardList.json new file mode 100644 index 0000000..6080989 --- /dev/null +++ b/pages/discountCardList/discountCardList.json @@ -0,0 +1,7 @@ +{ + "usingComponents": { + "i-tab": "../../../dist/tab/index", + "i-tabs": "../../../dist/tabs/index" + }, + "navigationBarTitleText": "折扣卡列表" +} \ No newline at end of file diff --git a/pages/discountCardList/discountCardList.wxml b/pages/discountCardList/discountCardList.wxml new file mode 100644 index 0000000..9c7d592 --- /dev/null +++ b/pages/discountCardList/discountCardList.wxml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + 请您敬请期待 + 我们正在筹备一大波优惠活动 + + + + + + + + + + {{item.title}} + + + + + + + + {{content}} + + + + \ No newline at end of file diff --git a/pages/discountCardList/discountCardList.wxss b/pages/discountCardList/discountCardList.wxss new file mode 100644 index 0000000..2803473 --- /dev/null +++ b/pages/discountCardList/discountCardList.wxss @@ -0,0 +1,226 @@ +.header image{ + width: 100%; +} +.market { + width: 100%; + height: 100%; + /* background: #f5f5f5; */ +} + +.tabs { + width: 100% !important; + height: 88rpx; + text-align: center; + margin-bottom: 30rpx; +} + +.i-tab { + width: 25% !important; + display: inline-block; +} + +.section { + position: relative; + width: 48%; +} +.cards >view:nth-of-type(2n){ + float: right; +} +.cards>view:nth-of-type(2n+1){ + float: left; +} +.cards>view{ + margin-bottom: 30rpx; +} +.mms { + background: #fff; + padding: 0; + border-radius: 16rpx; + border-top: 8rpx solid #02b7ff; + box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.10); +} + +.expiretime { + display: block; + width: 100%; + text-align: left; + text-indent: 1em; + font-size: 22rpx; + color: #333; + letter-spacing: 0; +} + +.liness { + display: block; + width: 100%; +} + +.detail_msg { + width: 100%; + display: block; +} + +.detail_msg image { + display: block; + width: 100%; + height: 200rpx!important; +} +.detail_msg text{ + display: block; + font-size:28rpx; + height: 80rpx; + line-height: 40rpx; + color: #666; + padding:16rpx 20rpx 0; +} +.info view:nth-child(1) { + display: flex; + justify-content: space-between; + padding: 0 2%; +} + +.info { + width: 100%; +} + +.info view:nth-child(1) text { + font-size: 32rpx; + line-height: 32rpx; + height: 32rpx; + color: #333; + letter-spacing: 0; + width: 400rpx; + display: inline-block; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} + +.info view:nth-child(2) { + padding-left: 2%; + font-size: 22rpx; + color: #333; + letter-spacing: 0; + margin-top: 6rpx; + display: inline-block; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + width: 400rpx; +} + +.info view:nth-child(3) { + margin-left: 20rpx; +} + +.btns { + position: absolute; + right: 57rpx; + top: 38rpx; + width: 120rpx; + height: 48rpx; + line-height: 48rpx; + text-align: center; + border: 2rpx solid #02c0ff; + border-radius: 60rpx; + color: #02c0ff; + font-size: 28rpx; +} +.buycardbtn{ + display: flex; + flex: 2; +} +.buycardbtn button{ + flex: 1; + font-size: 28rpx; + height: 70rpx; + line-height: 70rpx; + background:#02c0ff!important; + border:0; + color:#fff!important; + margin-top: 20rpx; +} +.buycardbtn button text{ + margin-left: 10rpx; +} +.active { + color: #fff; + background: #02c0ff; +} + +.txt1 { + font-size: 34rpx; + color: #666; + letter-spacing: 0; +} + +.nocoupon image { + width: 300rpx; + display: block; + margin: 3% auto 0; +} + +.txt001 { + display: block; + line-height: 48rpx; + font-size: 34rpx; + color: #333; + letter-spacing: 0; + text-align: center; +} + +.txt002 { + display: block; + margin-top: 1%; + font-size: 28rpx; + color: #999; + letter-spacing: 0; + line-height: 40rpx; + text-align: center; +} + +.nocoupon button { + background: #00c0ff; + color: #fff; + font-style: 30rpx; + width: 100%; + border-radius: 60rpx; +} + +.loading { + text-align: center; + height: 80rpx; + line-height: 80rpx; + font-size: 26rpx; + color: #999; +} + +.loading image { + width: 60rpx; + height: 60rpx; + vertical-align: middle; + margin-right: 10rpx; +} + +.active { + opacity: 0.6; +} + +.nav { + position: absolute; + bottom: 3.3%; + left: 0; + right: 0; + margin: auto; + width: 670rpx; + border-radius: 60rpx; + background: #02c0ff; + font-size: 32px; + color: #fff; + text-align: center; + line-height: 32px; +} +.cards{ + margin-top: 30rpx; + padding: 0 30rpx; +} diff --git a/pages/index/index.json b/pages/index/index.json index 101cd23..a1eae9a 100644 --- a/pages/index/index.json +++ b/pages/index/index.json @@ -1,6 +1,7 @@ { "usingComponents": { "c-banner": "../../components/banner/index", + "discount-card": "../../components/discountCard/index", "c-rushToBuy": "./rushToBuy/index", "c-coupons": "./coupons/index", "g-entry": "../../components/gameentry/gentry" diff --git a/pages/index/index.wxml b/pages/index/index.wxml index 1d6d922..37cfcef 100644 --- a/pages/index/index.wxml +++ b/pages/index/index.wxml @@ -1,6 +1,8 @@ + + @@ -8,6 +10,6 @@ - + \ No newline at end of file