| @@ -1,17 +1,17 @@ | |||||
| { | { | ||||
| "pages": [ | "pages": [ | ||||
| "pages/index/index", | |||||
| "pages/login/index", | |||||
| "pages/market/index", | |||||
| "pages/user/index", | |||||
| "pages/coupons/index/index", | |||||
| "pages/coupons/details/index", | |||||
| "pages/order/index/index", | |||||
| "pages/order/details/index", | |||||
| "pages/rushToBuy/index", | "pages/rushToBuy/index", | ||||
| "pages/shop/index/index", | |||||
| "pages/shop/details/index", | "pages/shop/details/index", | ||||
| "pages/success/index" | |||||
| "pages/shop/index/index", | |||||
| "pages/market/index", | |||||
| "pages/coupons/index/index", | |||||
| "pages/order/details/index", | |||||
| "pages/coupons/details/index", | |||||
| "pages/order/index/index", | |||||
| "pages/user/index", | |||||
| "pages/success/index", | |||||
| "pages/login/index", | |||||
| "pages/index/index" | |||||
| ], | ], | ||||
| "tabBar": { | "tabBar": { | ||||
| "color":"#9F9F9F", | "color":"#9F9F9F", | ||||
| @@ -88,3 +88,8 @@ | |||||
| view{ | view{ | ||||
| font-family: PingFangSC-Semibold; | font-family: PingFangSC-Semibold; | ||||
| } | } | ||||
| page{ | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| } | |||||
| @@ -1,183 +1,184 @@ | |||||
| const Promise = require('../utils/es6-promise.min').Promise | |||||
| let config = require("../config/config.js"); | |||||
| var app = getApp(); | |||||
| const func = { | |||||
| wxLogin: function (scene) { | |||||
| return new Promise((resolve, reject) => { | |||||
| wx.login({ | |||||
| success: function (res) { | |||||
| resolve(res) | |||||
| }, | |||||
| fail: function (err) { | |||||
| reject(err) | |||||
| }, | |||||
| complete: function (res) { | |||||
| //console.log("wxLogin complete:" + res) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| userLogin: function (code, source) { | |||||
| return new Promise((resolve, reject) => { | |||||
| wx.request({ | |||||
| url: config.api.login, | |||||
| data: { | |||||
| appId: app.globalData.appId, | |||||
| code: code, | |||||
| scene: scene, | |||||
| sceneAddress: sceneAddress | |||||
| }, | |||||
| method: "POST", | |||||
| success: function (res) { | |||||
| resolve(res) | |||||
| }, | |||||
| fail: function (err) { | |||||
| reject(err) | |||||
| }, | |||||
| complete: function (res) { | |||||
| //console.log("userLogin complete:" + res) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| /** | |||||
| * 授权后获取用户的昵称,unionId等信息 | |||||
| */ | |||||
| getUserInfo: function (encryptedData, iv) { | |||||
| console.log(app.globalData.openId) | |||||
| return new Promise((resolve, reject) => { | |||||
| wx.request({ | |||||
| url: config.api.getUserInfo, | |||||
| header: { | |||||
| "content-type": "application/json;charset=UTF-8", | |||||
| "token": app.globalData.token | |||||
| }, | |||||
| data: { | |||||
| encryptedData: encryptedData, | |||||
| iv: iv, | |||||
| }, | |||||
| method: "POST", | |||||
| success: function (res) { | |||||
| resolve(res) | |||||
| }, | |||||
| fail: function (err) { | |||||
| reject(err) | |||||
| }, | |||||
| complete: function (res) { | |||||
| //console.log("getUserInfo complete:" + res) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| /** | |||||
| * 授权后获取用户的手机号 | |||||
| */ | |||||
| getUserPhone: function (encryptedData, iv) { | |||||
| return new Promise((resolve, reject) => { | |||||
| wx.request({ | |||||
| url: config.api.getUserPhone + "?token=" + app.globalData.token, | |||||
| data: { | |||||
| encryptedData: encryptedData, | |||||
| iv: iv, | |||||
| }, | |||||
| header: { | |||||
| "content-type": "application/json;charset=UTF-8", | |||||
| "token": app.globalData.token | |||||
| }, | |||||
| method: "POST", | |||||
| success: function (res) { | |||||
| resolve(res) | |||||
| }, | |||||
| fail: function (err) { | |||||
| reject(err) | |||||
| }, | |||||
| complete: function (res) { | |||||
| //console.log("getUserInfo complete:" + res) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| /** | |||||
| * 优惠券查询 | |||||
| */ | |||||
| getCouponList: function (pageNum, pageSize) { | |||||
| return new Promise((resolve, reject) => { | |||||
| wx.request({ | |||||
| url: config.api.couponList, | |||||
| header: { | |||||
| "content-type": "application/json;charset=UTF-8", | |||||
| "token": app.globalData.token | |||||
| }, | |||||
| method: "Get", | |||||
| data: { | |||||
| pageNum: pageNum, | |||||
| pageSize: pageSize | |||||
| }, | |||||
| success: function (res) { | |||||
| resolve(res) | |||||
| }, | |||||
| fail: function (err) { | |||||
| reject(err) | |||||
| }, | |||||
| complete: function (res) { | |||||
| console.log(res) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| /** | |||||
| * 优惠券详情 | |||||
| */ | |||||
| getCouponDetail: function (couponId) { | |||||
| return new Promise((resolve, reject) => { | |||||
| wx.request({ | |||||
| url: config.api.couponDetail, | |||||
| header: { | |||||
| "content-type": "application/json;charset=UTF-8", | |||||
| "token": app.globalData.token | |||||
| }, | |||||
| method: "Get", | |||||
| data: { | |||||
| id: couponId | |||||
| }, | |||||
| success: function (res) { | |||||
| resolve(res) | |||||
| }, | |||||
| fail: function (err) { | |||||
| reject(err) | |||||
| }, | |||||
| complete: function (res) { | |||||
| console.log(res) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| /** | |||||
| * 订单下单 | |||||
| */ | |||||
| orderSave: function (couponId) { | |||||
| return new Promise((resolve, reject) => { | |||||
| wx.request({ | |||||
| url: config.api.orderSave, | |||||
| header: { | |||||
| "token": app.globalData.token | |||||
| }, | |||||
| method: "Post", | |||||
| data: { | |||||
| couponId: couponId, | |||||
| token: app.globalData.token | |||||
| }, | |||||
| success: function (res) { | |||||
| resolve(res) | |||||
| }, | |||||
| fail: function (err) { | |||||
| reject(err) | |||||
| }, | |||||
| complete: function (res) { | |||||
| console.log(res) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| } | |||||
| const Promise = require('../utils/es6-promise.min').Promise | |||||
| let config = require("../config/config.js"); | |||||
| var app = getApp(); | |||||
| const func = { | |||||
| wxLogin: function (scene) { | |||||
| return new Promise((resolve, reject) => { | |||||
| wx.login({ | |||||
| success: function (res) { | |||||
| resolve(res) | |||||
| }, | |||||
| fail: function (err) { | |||||
| reject(err) | |||||
| }, | |||||
| complete: function (res) { | |||||
| //console.log("wxLogin complete:" + res) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| /** | |||||
| * 授权后获取用户的昵称,unionId等信息 | |||||
| */ | |||||
| getUserInfo: function (encryptedData, iv) { | |||||
| console.log(app.globalData.openId) | |||||
| return new Promise((resolve, reject) => { | |||||
| wx.request({ | |||||
| url: config.api.getUserInfo, | |||||
| header: { | |||||
| "content-type": "application/json;charset=UTF-8", | |||||
| "token": app.globalData.token | |||||
| }, | |||||
| data: { | |||||
| encryptedData: encryptedData, | |||||
| iv: iv, | |||||
| }, | |||||
| method: "POST", | |||||
| success: function (res) { | |||||
| resolve(res) | |||||
| }, | |||||
| fail: function (err) { | |||||
| reject(err) | |||||
| }, | |||||
| complete: function (res) { | |||||
| //console.log("getUserInfo complete:" + res) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| /** | |||||
| * 授权后获取用户的手机号 | |||||
| */ | |||||
| getUserPhone: function (encryptedData, iv) { | |||||
| return new Promise((resolve, reject) => { | |||||
| wx.request({ | |||||
| url: config.api.getUserPhone, | |||||
| data: { | |||||
| encryptedData: encryptedData, | |||||
| iv: iv, | |||||
| }, | |||||
| header: { | |||||
| "content-type": "application/json;charset=UTF-8", | |||||
| "token": app.globalData.token | |||||
| }, | |||||
| method: "POST", | |||||
| success: function (res) { | |||||
| resolve(res) | |||||
| }, | |||||
| fail: function (err) { | |||||
| reject(err) | |||||
| }, | |||||
| complete: function (res) { | |||||
| //console.log("getUserInfo complete:" + res) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| /** | |||||
| * 优惠券查询 | |||||
| */ | |||||
| getCouponList: function (pageNum, pageSize) { | |||||
| return new Promise((resolve, reject) => { | |||||
| wx.request({ | |||||
| url: config.api.couponList, | |||||
| header: { | |||||
| "content-type": "application/json;charset=UTF-8", | |||||
| "token": app.globalData.token | |||||
| }, | |||||
| method: "Get", | |||||
| data: { | |||||
| pageNum: pageNum, | |||||
| pageSize: pageSize | |||||
| }, | |||||
| success: function (res) { | |||||
| resolve(res) | |||||
| }, | |||||
| fail: function (err) { | |||||
| reject(err) | |||||
| }, | |||||
| complete: function (res) { | |||||
| console.log(res) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| /** | |||||
| * 优惠券详情 | |||||
| */ | |||||
| getCouponDetail: function (couponId) { | |||||
| return new Promise((resolve, reject) => { | |||||
| wx.request({ | |||||
| url: config.api.couponDetail, | |||||
| header: { | |||||
| "content-type": "application/json;charset=UTF-8", | |||||
| "token": app.globalData.token | |||||
| }, | |||||
| method: "Get", | |||||
| data: { | |||||
| id: couponId | |||||
| }, | |||||
| success: function (res) { | |||||
| resolve(res) | |||||
| }, | |||||
| fail: function (err) { | |||||
| reject(err) | |||||
| }, | |||||
| complete: function (res) { | |||||
| console.log(res) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| /** | |||||
| * 订单下单 | |||||
| */ | |||||
| orderSave: function (couponId) { | |||||
| return new Promise((resolve, reject) => { | |||||
| wx.request({ | |||||
| url: config.api.orderSave, | |||||
| header: { | |||||
| "token": app.globalData.token | |||||
| }, | |||||
| method: "Post", | |||||
| data: { | |||||
| couponId: couponId, | |||||
| token: app.globalData.token | |||||
| }, | |||||
| success: function (res) { | |||||
| resolve(res) | |||||
| }, | |||||
| fail: function (err) { | |||||
| reject(err) | |||||
| }, | |||||
| complete: function (res) { | |||||
| console.log(res) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| payOrderCreate: function (orderId) { | |||||
| return new Promise((resolve, reject) => { | |||||
| wx.request({ | |||||
| url: config.api.payOrderCreate, | |||||
| header: { | |||||
| "token": app.globalData.token | |||||
| }, | |||||
| method: "Post", | |||||
| data: { | |||||
| orderId: orderId, | |||||
| token: app.globalData.token | |||||
| }, | |||||
| success: function (res) { | |||||
| resolve(res) | |||||
| }, | |||||
| fail: function (err) { | |||||
| reject(err) | |||||
| }, | |||||
| complete: function (res) { | |||||
| console.log(res) | |||||
| } | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| } | |||||
| module.exports = func; | module.exports = func; | ||||
| @@ -1,42 +1,50 @@ | |||||
| var url = 'https://ciformall.youlane.cn' | |||||
| //var url = 'http://localhost:8001' | |||||
| var apiPrefix = url + '/C/'; | |||||
| var config = { | |||||
| name: "富茂", | |||||
| api: { | |||||
| /** | |||||
| * 接口用途:login | |||||
| */ | |||||
| login: '/api/user/login', | |||||
| /** | |||||
| * 授权后获取用户的昵称,unionId等信息 | |||||
| */ | |||||
| getUserInfo: '/api/user/getUserInfo', | |||||
| /** | |||||
| * 接口用途:授权后获取用户的手机号 | |||||
| */ | |||||
| getUserPhone: '/api/user/getUserPhone', | |||||
| /** | |||||
| * 优惠券查询 | |||||
| */ | |||||
| couponList: '/wxCoupon/list', | |||||
| /** | |||||
| * 优惠券详情 | |||||
| */ | |||||
| couponDetail: '/wxCoupon/findById', | |||||
| /** | |||||
| * 下单 | |||||
| */ | |||||
| orderSave: '/wxOrder/save', | |||||
| }, | |||||
| weapp: { | |||||
| AppId: 'wx649b3be73c1afe47', | |||||
| } | |||||
| }; | |||||
| for (var key in config.api) { | |||||
| config.api[key] = apiPrefix + config.api[key]; | |||||
| } | |||||
| var url = 'https://ciformall.youlane.cn' | |||||
| //var url = 'http://localhost:8001' | |||||
| var apiPrefix = url + '/C/api'; | |||||
| var config = { | |||||
| name: "富茂", | |||||
| api: { | |||||
| /** | |||||
| * 接口用途:login | |||||
| */ | |||||
| login: '/user/login', | |||||
| /** | |||||
| * 授权后获取用户的昵称,unionId等信息 | |||||
| */ | |||||
| getUserInfo: '/user/getUserInfo', | |||||
| /** | |||||
| * 接口用途:授权后获取用户的手机号 | |||||
| */ | |||||
| getUserPhone: '/user/getUserPhone', | |||||
| /** | |||||
| * 优惠券查询 | |||||
| */ | |||||
| couponList: '/coupon/list', | |||||
| /** | |||||
| * 优惠券详情 | |||||
| */ | |||||
| couponDetail: '/coupon/findById', | |||||
| /** | |||||
| * 下订单 | |||||
| */ | |||||
| orderSave: '/order/save', | |||||
| /** | |||||
| * 支付订单 | |||||
| */ | |||||
| payOrderCreate: '/pay/create', | |||||
| /** | |||||
| * 订单列表 | |||||
| */ | |||||
| orderSave: '/order/list', | |||||
| }, | |||||
| weapp: { | |||||
| AppId: 'wx649b3be73c1afe47', | |||||
| } | |||||
| }; | |||||
| for (var key in config.api) { | |||||
| config.api[key] = apiPrefix + config.api[key]; | |||||
| } | |||||
| module.exports = config; | module.exports = config; | ||||
| @@ -1,41 +1,87 @@ | |||||
| let Common = require('../../../common/common.js') | |||||
| var app = getApp() | |||||
| Page({ | |||||
| data: { | |||||
| list:{}, | |||||
| couponId:null | |||||
| }, | |||||
| onLoad(e) { | |||||
| console.log(e.id) | |||||
| Common.getCouponDetail(e.id) | |||||
| .then(res =>{ | |||||
| console.log(res) | |||||
| this.setData({ | |||||
| list: res.data.data, | |||||
| couponId: e.id | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| aaa(){ | |||||
| wx.showLoading({ | |||||
| title: '加载中...', | |||||
| }) | |||||
| console.log(this.data.couponId) | |||||
| Common.orderSave(''+this.data.couponId) | |||||
| .then(res => { | |||||
| wx.hideLoading(); | |||||
| console.log(res) | |||||
| if (res.data.code == 200) { | |||||
| wx.showToast({ | |||||
| title: '购买成功', | |||||
| }) | |||||
| wx.navigateBack({ | |||||
| delta: 2 | |||||
| }) | |||||
| setTimeout(() => { | |||||
| wx.hideToast(); | |||||
| }, 2000) | |||||
| } | |||||
| }) | |||||
| } | |||||
| let Common = require('../../../common/common.js') | |||||
| var app = getApp() | |||||
| Page({ | |||||
| data: { | |||||
| list:{}, | |||||
| couponId:null | |||||
| }, | |||||
| onLoad(e) { | |||||
| console.log(e.id) | |||||
| Common.getCouponDetail(e.id) | |||||
| .then(res =>{ | |||||
| console.log(res) | |||||
| this.setData({ | |||||
| list: res.data.data, | |||||
| couponId: e.id | |||||
| }) | |||||
| }) | |||||
| }, | |||||
| orderfunc(){ | |||||
| wx.showLoading({ | |||||
| title: '加载中...', | |||||
| }) | |||||
| console.log(this.data.couponId) | |||||
| Common.orderSave(''+this.data.couponId) | |||||
| .then(res => { | |||||
| wx.hideLoading(); | |||||
| console.log(res) | |||||
| if (res.data.code == 200) { | |||||
| Common.payOrderCreate(res.data.data.id) | |||||
| .then(res =>{ | |||||
| wx.requestPayment({ | |||||
| timeStamp: res.data.data.timeStamp, | |||||
| nonceStr: res.data.data.nonceStr, | |||||
| package: res.data.data.package, | |||||
| signType: 'MD5', | |||||
| paySign: res.data.data.paySign, | |||||
| 'success': function (res) { | |||||
| console.log('支付成功'); | |||||
| wx.showToast({ | |||||
| title: '购买成功', | |||||
| duration: 2500 | |||||
| }) | |||||
| wx.navigateBack({ | |||||
| delta: 2 | |||||
| }) | |||||
| }, | |||||
| 'fail': function (res) { | |||||
| console.log('支付失败'); | |||||
| console.log(res) | |||||
| return; | |||||
| }, | |||||
| 'complete': function (res) { | |||||
| console.log('支付完成'); | |||||
| var url = that.data.url; | |||||
| console.log('get url', url) | |||||
| if (res.errMsg == 'requestPayment:ok') { | |||||
| wx.showModal({ | |||||
| title: '提示', | |||||
| content: '支付成功' | |||||
| }); | |||||
| if (url) { | |||||
| setTimeout(function () { | |||||
| wx.redirectTo({ | |||||
| url: '/pages' + url | |||||
| }); | |||||
| }, 2000) | |||||
| } else { | |||||
| setTimeout(() => { | |||||
| wx.navigateBack() | |||||
| }, 2000) | |||||
| } | |||||
| } | |||||
| return; | |||||
| } | |||||
| }) | |||||
| }) | |||||
| } else { | |||||
| wx.showToast({ | |||||
| title: res.data.message, | |||||
| duration: 3000 | |||||
| }) | |||||
| } | |||||
| }) | |||||
| } | |||||
| }) | }) | ||||
| @@ -1,6 +1,46 @@ | |||||
| <view class='coupons'> | |||||
| <image src='{{list.coverImg}}'></image> | |||||
| <text>{{list.subTitle}}</text> | |||||
| <text>{{list.title}}</text> | |||||
| <button bindtap='aaa'>下单</button> | |||||
| </view> | |||||
| <view class='coupons'> | |||||
| <view class='banner'> | |||||
| <image src='http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg'></image> | |||||
| </view> | |||||
| <view class='coupons_info'> | |||||
| <view> | |||||
| <text>黑椒牛排<text>限购一件</text></text> | |||||
| <text>剩余时间:<text>2天12小时25分钟</text></text> | |||||
| <text>剩余件数:<text>19件</text></text> | |||||
| </view> | |||||
| <view> | |||||
| <text>¥1.00</text> | |||||
| <text>¥59.00</text> | |||||
| </view> | |||||
| </view> | |||||
| <view class='posi'> | |||||
| <view class='posi_logo'> | |||||
| <view> | |||||
| <image src='http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg'></image> | |||||
| </view> | |||||
| <view> | |||||
| <text>iFORMALL(西单大悦城店)</text> | |||||
| <text>北京市西城区西单北大街131号</text> | |||||
| </view> | |||||
| </view> | |||||
| <view> | |||||
| <text>更多适用门店</text> | |||||
| <text class='iconfont icon-right'></text> | |||||
| </view> | |||||
| </view> | |||||
| <view class='notes'> | |||||
| <view> | |||||
| <text>购买须知</text> | |||||
| </view> | |||||
| <view> | |||||
| <text><text class='spot'></text>有效期2018.01.16 至 2018.09.20</text> | |||||
| <text><text class='spot'></text>除特价酒水及特价菜外全场通用</text> | |||||
| <text><text class='spot'></text>无需预约,消费g高峰时可能需要等位</text> | |||||
| <text><text class='spot'></text>没人最多购买2张</text> | |||||
| <text><text class='spot'></text>不可使用包间</text> | |||||
| <text><text class='spot'></text>堂食外带均可,可免费打包</text> | |||||
| <text><text class='spot'></text>每桌限用2张</text> | |||||
| </view> | |||||
| </view> | |||||
| <button bindtap='orderfunc' class='buy'>立即购买</button> | |||||
| </view> | |||||
| @@ -0,0 +1,190 @@ | |||||
| @import '../../../app.wxss'; | |||||
| .coupons { | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| position: absolute; | |||||
| background: #f6f6f6; | |||||
| } | |||||
| .banner { | |||||
| width: 100%; | |||||
| height: 465rpx; | |||||
| } | |||||
| .banner image { | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| } | |||||
| .coupons_info { | |||||
| width: 92%; | |||||
| height: 186rpx; | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| padding: 0 4%; | |||||
| background: #fff; | |||||
| } | |||||
| .coupons_info view { | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| } | |||||
| .coupons_info view:nth-child(1) text { | |||||
| font-size: 30rpx; | |||||
| margin-top: 3%; | |||||
| } | |||||
| .coupons_info view:nth-child(1) text:nth-child(1) text { | |||||
| color: #ff3434; | |||||
| font-size: 24rpx; | |||||
| border: 1px solid #ff3434; | |||||
| border-radius: 6rpx; | |||||
| margin-left: 2%; | |||||
| padding: 0 5rpx; | |||||
| } | |||||
| .coupons_info view:nth-child(1) text:nth-child(2), | |||||
| .coupons_info view:nth-child(1) text:nth-child(3) { | |||||
| color: #b8b8b8; | |||||
| font-size: 24rpx; | |||||
| margin-top: 4%; | |||||
| } | |||||
| .coupons_info view:nth-child(1) text:nth-child(2) text, | |||||
| .coupons_info view:nth-child(1) text:nth-child(3) text { | |||||
| color: #ff3434; | |||||
| font-size: 24rpx; | |||||
| } | |||||
| .coupons_info view:nth-child(2) text:nth-child(1) { | |||||
| font-size: 36rpx; | |||||
| color: #ff3434; | |||||
| margin-top: 40rpx; | |||||
| font-weight: bold; | |||||
| } | |||||
| .coupons_info view:nth-child(2) text:nth-child(2) { | |||||
| font-size: 24rpx; | |||||
| color: #b4b4b4; | |||||
| text-decoration: line-through; | |||||
| padding-left: 10rpx; | |||||
| padding-top: 4rpx; | |||||
| } | |||||
| .posi { | |||||
| width: 92%; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| padding: 0 4%; | |||||
| background: #fff; | |||||
| margin-top: 2%; | |||||
| } | |||||
| .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%; | |||||
| height: 156rpx; | |||||
| display: flex; | |||||
| margin-top: 30rpx; | |||||
| } | |||||
| .posi_logo view:nth-child(1) { | |||||
| width: 126rpx; | |||||
| height: 126rpx; | |||||
| border-radius: 50%; | |||||
| overflow: hidden; | |||||
| flex: 2; | |||||
| } | |||||
| .posi_logo view:nth-child(1) image { | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| } | |||||
| .posi_logo view:nth-child(2) { | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| flex: 8; | |||||
| padding-top: 20rpx; | |||||
| padding-left: 30rpx; | |||||
| } | |||||
| .posi_logo view:nth-child(2) text:nth-child(1) { | |||||
| font-size: 30rpx; | |||||
| } | |||||
| .posi_logo view:nth-child(2) text:nth-child(2) { | |||||
| font-size: 24rpx; | |||||
| color: #b8b8b8; | |||||
| padding-top: 10rpx; | |||||
| } | |||||
| .notes{ | |||||
| margin-top: 2%; | |||||
| } | |||||
| .notes view:nth-child(1){ | |||||
| width: 92%; | |||||
| height: 87rpx; | |||||
| padding: 0 4%; | |||||
| line-height: 87rpx; | |||||
| background: #fff; | |||||
| border-bottom: 1rpx solid #f5f5f5; | |||||
| border-top: 1rpx solid #f5f5f5; | |||||
| } | |||||
| .notes view:nth-child(1) text{ | |||||
| font-size: 30rpx; | |||||
| font-weight: bold; | |||||
| } | |||||
| .notes view:nth-child(2){ | |||||
| width: 92%; | |||||
| height: 400rpx; | |||||
| padding: 0 4%; | |||||
| background: #fff; | |||||
| border-bottom: 1rpx solid #f5f5f5; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| padding-top: 2%; | |||||
| } | |||||
| .notes view:nth-child(2)>text{ | |||||
| font-size: 28rpx; | |||||
| color: #A9A9A9; | |||||
| line-height: 56rpx; | |||||
| } | |||||
| .spot { | |||||
| width: 12rpx; | |||||
| height: 12rpx; | |||||
| display: inline-block; | |||||
| background: #A9A9A9; | |||||
| margin-right: 16rpx; | |||||
| position: relative; | |||||
| bottom: 4rpx; | |||||
| border-radius: 50%; | |||||
| } | |||||
| .buy { | |||||
| width: 100%; | |||||
| height: 88rpx; | |||||
| background: #00C0FF; | |||||
| color: #fff; | |||||
| font-size: 36rpx; | |||||
| line-height: 88rpx; | |||||
| } | |||||
| @@ -1,65 +1,56 @@ | |||||
| Page({ | Page({ | ||||
| /** | |||||
| * 页面的初始数据 | |||||
| */ | |||||
| data: { | data: { | ||||
| tabs: [{ | |||||
| key: 1, | |||||
| name: "未使用" | |||||
| }, | |||||
| { | |||||
| key: 2, | |||||
| name: "已使用" | |||||
| }, | |||||
| { | |||||
| key: 3, | |||||
| name: "已过期" | |||||
| }, | |||||
| { | |||||
| key: 4, | |||||
| name: "已退款" | |||||
| } | |||||
| ], | |||||
| list: [{ | |||||
| key: '1', | |||||
| data: [{ | |||||
| name: '111' | |||||
| }] | |||||
| }, | |||||
| { | |||||
| key: '2', | |||||
| data: [{ | |||||
| name: '222' | |||||
| }] | |||||
| }, | |||||
| { | |||||
| key: '3', | |||||
| data: [{ | |||||
| name: '333' | |||||
| }] | |||||
| } | |||||
| ], | |||||
| current: '', | |||||
| current_scroll: '1' | |||||
| }, | |||||
| handleChange({ | |||||
| detail | |||||
| }) { | |||||
| this.setData({ | |||||
| current: detail.key | |||||
| }); | |||||
| }, | |||||
| handleChangeScroll({ | |||||
| detail | |||||
| }) { | |||||
| this.setData({ | |||||
| current_scroll: detail.key | |||||
| }); | |||||
| }, | }, | ||||
| /** | |||||
| * 生命周期函数--监听页面加载 | |||||
| */ | |||||
| onLoad: function (options) { | |||||
| }, | |||||
| /** | |||||
| * 生命周期函数--监听页面初次渲染完成 | |||||
| */ | |||||
| onReady: function () { | |||||
| }, | |||||
| /** | |||||
| * 生命周期函数--监听页面显示 | |||||
| */ | |||||
| onShow: function () { | |||||
| }, | |||||
| /** | |||||
| * 生命周期函数--监听页面隐藏 | |||||
| */ | |||||
| onHide: function () { | |||||
| }, | |||||
| /** | |||||
| * 生命周期函数--监听页面卸载 | |||||
| */ | |||||
| onUnload: function () { | |||||
| }, | |||||
| /** | |||||
| * 页面相关事件处理函数--监听用户下拉动作 | |||||
| */ | |||||
| onPullDownRefresh: function () { | |||||
| }, | |||||
| /** | |||||
| * 页面上拉触底事件的处理函数 | |||||
| */ | |||||
| onReachBottom: function () { | |||||
| }, | |||||
| /** | |||||
| * 用户点击右上角分享 | |||||
| */ | |||||
| onShareAppMessage: function () { | |||||
| } | |||||
| }) | }) | ||||
| @@ -1,6 +1,8 @@ | |||||
| { | { | ||||
| "usingComponents": { | |||||
| }, | |||||
| "navigationBarTitleText": "我的优惠劵" | |||||
| } | |||||
| "usingComponents": { | |||||
| "i-tab": "../../../dist/tab/index", | |||||
| "i-tabs": "../../../dist/tabs/index", | |||||
| "c-coupons": "../../../components/coupons/index" | |||||
| }, | |||||
| "navigationBarTitleText": "我的优惠劵" | |||||
| } | |||||
| @@ -1 +1,41 @@ | |||||
| <text>pages/t/index.wxml</text> | |||||
| <view class="market"> | |||||
| <i-tabs class='tabs' current="{{ current_scroll }}" scroll bindchange="handleChangeScroll"> | |||||
| <i-tab class='i-tab' wx:for="{{tabs}}" wx:key="unique" key="{{item.key}}" title="{{item.name}}"></i-tab> | |||||
| </i-tabs> | |||||
| <view class='section'> | |||||
| <view class='detail_msg'> | |||||
| <view class='logo'> | |||||
| <image src='http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg'></image> | |||||
| </view> | |||||
| <view class='info'> | |||||
| <view> | |||||
| <text>黑椒牛排</text> | |||||
| </view> | |||||
| <view> | |||||
| <text>有效期至:</text>2018-07-10 11:30</view> | |||||
| <view> | |||||
| <text></text> | |||||
| <text>立即使用</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class='section'> | |||||
| <view class='detail_msg'> | |||||
| <view class='logo'> | |||||
| <image src='http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg'></image> | |||||
| </view> | |||||
| <view class='info'> | |||||
| <view> | |||||
| <text>黑椒牛排</text> | |||||
| </view> | |||||
| <view> | |||||
| <text>有效期至:</text>2018-07-10 11:30</view> | |||||
| <view> | |||||
| <text></text> | |||||
| <text>立即使用</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| @@ -0,0 +1,83 @@ | |||||
| .market { | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| } | |||||
| .tabs { | |||||
| width: 100% !important; | |||||
| height: 88rpx; | |||||
| text-align: center; | |||||
| } | |||||
| .i-tab { | |||||
| width: 25% !important; | |||||
| display: inline-block; | |||||
| } | |||||
| .section { | |||||
| margin-top: 2%; | |||||
| } | |||||
| .detail_msg { | |||||
| width: 92%; | |||||
| height: 220rpx !important; | |||||
| background: #fff; | |||||
| display: flex; | |||||
| padding: 0 4%; | |||||
| margin-top: 2%; | |||||
| border-bottom: 1px solid #ededed; | |||||
| } | |||||
| .logo { | |||||
| width: 248rpx; | |||||
| height: 184rpx; | |||||
| border-radius: 30rpx; | |||||
| } | |||||
| .logo image { | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| } | |||||
| .info view:nth-child(1) { | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| padding: 0 4%; | |||||
| } | |||||
| .info { | |||||
| width: 100%; | |||||
| } | |||||
| .info view:nth-child(1) text { | |||||
| font-size: 30rpx; | |||||
| } | |||||
| .info view:nth-child(2) { | |||||
| color: #ff3434; | |||||
| font-size: 24rpx; | |||||
| padding-left: 4%; | |||||
| margin-top: 1%; | |||||
| } | |||||
| .info view:nth-child(2) text { | |||||
| font-size: 22rpx; | |||||
| color: #b8b8b8; | |||||
| } | |||||
| .info view:nth-child(3) { | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| } | |||||
| .info view:nth-child(3) text:nth-child(2) { | |||||
| width: 170rpx; | |||||
| height: 50rpx; | |||||
| color: #fff; | |||||
| line-height: 50rpx; | |||||
| text-align: center; | |||||
| background: #00c0ff; | |||||
| border-radius: 10px; | |||||
| font-size: 28rpx; | |||||
| margin-top: 40rpx; | |||||
| } | |||||
| @@ -4,30 +4,54 @@ | |||||
| </i-tabs> | </i-tabs> | ||||
| <view class='section'> | <view class='section'> | ||||
| <view class='detail_msg'> | <view class='detail_msg'> | ||||
| <view> | |||||
| <view class='logo'> | |||||
| <image src='http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg'></image> | |||||
| </view> | |||||
| <view class='info'> | |||||
| <view> | <view> | ||||
| <image src='http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg'></image> | |||||
| <text>黑椒牛排</text> | |||||
| <text>等待付款</text> | |||||
| </view> | </view> | ||||
| <view> | <view> | ||||
| <view> | |||||
| <text>黑椒牛排</text> | |||||
| <text>等待付款</text> | |||||
| </view> | |||||
| <view> | |||||
| <text>购买数量:<text>1件</text></text> | |||||
| </view> | |||||
| <view> | |||||
| <text>下单时间:<text>2018-07-10 11:30</text></text> | |||||
| </view> | |||||
| <text>购买数量:</text>1件</view> | |||||
| <view> | |||||
| <text>下单时间:</text>2018-07-10 11:30</view> | |||||
| </view> | |||||
| </view> | |||||
| <view class='payment'> | |||||
| <view> | |||||
| <text>¥1.00</text> | |||||
| <text>¥59.00</text> | |||||
| </view> | |||||
| <view> | |||||
| <text>支付</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class='section'> | |||||
| <view class='detail_msg'> | |||||
| <view class='logo'> | |||||
| <image src='http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg'></image> | |||||
| </view> | |||||
| <view class='info'> | |||||
| <view> | |||||
| <text>黑椒牛排</text> | |||||
| <text>等待付款</text> | |||||
| </view> | </view> | ||||
| <view> | |||||
| <text>购买数量:</text>1件</view> | |||||
| <view> | |||||
| <text>下单时间:</text>2018-07-10 11:30</view> | |||||
| </view> | |||||
| </view> | |||||
| <view class='payment'> | |||||
| <view> | |||||
| <text>¥1.00</text> | |||||
| <text>¥59.00</text> | |||||
| </view> | </view> | ||||
| <view> | <view> | ||||
| <text>¥1.00 <text>¥59.90</text></text> | |||||
| <text>支付</text> | <text>支付</text> | ||||
| </view> | </view> | ||||
| </view> | </view> | ||||
| <!-- <view wx:for='{{list}}' wx:key='{{index}}' wx:if='{{current_scroll==item.key}}'> | |||||
| <text wx:for='{{item.data}}' wx:key='{{index}}'>{{item.name}}</text> | |||||
| </view> --> | |||||
| </view> | </view> | ||||
| </view> | </view> | ||||
| @@ -1,33 +1,114 @@ | |||||
| .market{ | |||||
| .market { | |||||
| width: 100%; | width: 100%; | ||||
| height: 100%; | |||||
| } | } | ||||
| .tabs{ | |||||
| width: 100%!important; | |||||
| .tabs { | |||||
| width: 100% !important; | |||||
| height: 88rpx; | height: 88rpx; | ||||
| text-align: center; | text-align: center; | ||||
| } | } | ||||
| .i-tab{ | |||||
| width: 30%!important; | |||||
| .i-tab { | |||||
| width: 30% !important; | |||||
| display: inline-block; | display: inline-block; | ||||
| } | } | ||||
| .detail_msg{ | |||||
| width: 100%; | |||||
| height: 416rpx!important; | |||||
| background: #fff; | |||||
| .section { | |||||
| margin-top: 2%; | margin-top: 2%; | ||||
| } | |||||
| .detail_msg { | |||||
| width: 92%; | |||||
| height: 220rpx !important; | |||||
| background: #fff; | |||||
| display: flex; | display: flex; | ||||
| flex-direction: column; | |||||
| margin: 0 4%; | |||||
| margin-top: 2%; | |||||
| border-bottom: 1px solid #ededed; | |||||
| } | } | ||||
| .detail_msg>view:nth-child(1) { | |||||
| width: 100%; | |||||
| height: 244rpx; | |||||
| } | |||||
| .detail_msg>view:nth-child(1) view:nth-child(1) { | |||||
| .logo { | |||||
| width: 248rpx; | width: 248rpx; | ||||
| height: 184rpx; | height: 184rpx; | ||||
| border-radius: 30rpx; | |||||
| } | } | ||||
| .detail_msg>view:nth-child(1)>view:nth-child(1) image{ | |||||
| .logo image { | |||||
| width: 100%; | width: 100%; | ||||
| height: 100%; | height: 100%; | ||||
| margin: 13.2% 0 0 13%; | |||||
| } | |||||
| } | |||||
| .info view:nth-child(1) { | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| padding: 0 4%; | |||||
| } | |||||
| .info { | |||||
| width: 100%; | |||||
| } | |||||
| .info view:nth-child(1) { | |||||
| margin-bottom: 72rpx; | |||||
| } | |||||
| .info view:nth-child(1) text { | |||||
| font-size: 30rpx; | |||||
| } | |||||
| .info view:nth-child(1) text:nth-child(2) { | |||||
| color: #ffae00; | |||||
| font-size: 24rpx; | |||||
| } | |||||
| .info view:nth-child(2), .info view:nth-child(3) { | |||||
| color: #ff3434; | |||||
| font-size: 24rpx; | |||||
| padding-left: 4%; | |||||
| } | |||||
| .info view:nth-child(2) text, .info view:nth-child(3) text { | |||||
| font-size: 22rpx; | |||||
| color: #b8b8b8; | |||||
| } | |||||
| .info view:nth-child(3) { | |||||
| margin-top: 5rpx; | |||||
| } | |||||
| .payment { | |||||
| width: 92%; | |||||
| height: 120rpx; | |||||
| line-height: 120rpx; | |||||
| padding: 0 4%; | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| border-bottom: 20rpx solid #EDEDED; | |||||
| } | |||||
| .payment view:nth-child(1) text:nth-child(1) { | |||||
| font-size: 36rpx; | |||||
| color: #ff3434; | |||||
| font-weight: bold; | |||||
| } | |||||
| .payment view:nth-child(1) text:nth-child(2) { | |||||
| font-size: 24rpx; | |||||
| color: #b4b4b4; | |||||
| padding-left: 18rpx; | |||||
| text-decoration: line-through; | |||||
| } | |||||
| .payment view:nth-child(2) { | |||||
| width: 114rpx; | |||||
| height: 50rpx; | |||||
| background: #00c0ff; | |||||
| border-radius: 10px; | |||||
| line-height: 38rpx; | |||||
| text-align: center; | |||||
| margin-top: 40rpx; | |||||
| } | |||||
| .payment view:nth-child(2) text { | |||||
| font-size: 28rpx; | |||||
| color: #fff; | |||||
| } | |||||
| @@ -1 +1,61 @@ | |||||
| <text>pages/t/index.wxml</text> | |||||
| <view class='order'> | |||||
| <view class='tips'> | |||||
| <text class='iconfont icon-choose'></text> | |||||
| <text>付款成功,请尽快到门店使用</text> | |||||
| </view> | |||||
| <view class='section'> | |||||
| <view class='detail_msg'> | |||||
| <view class='logo'> | |||||
| <image src='http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg'></image> | |||||
| </view> | |||||
| <view class='info'> | |||||
| <view> | |||||
| <text>黑椒牛排</text> | |||||
| </view> | |||||
| <view> | |||||
| <text>购买数量:</text>1件</view> | |||||
| <view> | |||||
| <text>下单时间:</text>2018-07-10 11:30</view> | |||||
| </view> | |||||
| </view> | |||||
| <view class='payment'> | |||||
| <view></view> | |||||
| <view> | |||||
| <text>¥1.00</text> | |||||
| <text>¥59.00</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class='classif'> | |||||
| <view> | |||||
| <text>有效期:</text> | |||||
| <text>2018-07-10 至 2018-07-10</text> | |||||
| </view> | |||||
| <view> | |||||
| <text>适用门店</text> | |||||
| <text class='iconfont icon-right'></text> | |||||
| </view> | |||||
| <view> | |||||
| <view> | |||||
| <text>兑换码:</text> | |||||
| <text>1234567890</text> | |||||
| </view> | |||||
| <view> | |||||
| <icon class='iconfont icon-dingweib'></icon> | |||||
| <icon class='iconfont icon-right'></icon> | |||||
| </view> | |||||
| </view> | |||||
| <view> | |||||
| <text>下单时间</text> | |||||
| <text>2018-07-10 11:30</text> | |||||
| </view> | |||||
| <view> | |||||
| <text>订单编号</text> | |||||
| <text>1234567890</text> | |||||
| </view> | |||||
| <view> | |||||
| <text>订单金额</text> | |||||
| <text>¥1.00</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| @@ -0,0 +1,145 @@ | |||||
| @import '../../../app.wxss'; | |||||
| .order { | |||||
| width: 100%; | |||||
| } | |||||
| .tips { | |||||
| width: 92%; | |||||
| height: 88rpx; | |||||
| background: #00C0FF; | |||||
| color: #fff; | |||||
| padding: 0 4%; | |||||
| line-height: 88rpx; | |||||
| } | |||||
| .tips text:nth-child(2) { | |||||
| font-size: 24rpx; | |||||
| padding-left: 16rpx; | |||||
| } | |||||
| .tips text:nth-child(1) { | |||||
| width: 32rpx; | |||||
| height: 32rpx; | |||||
| background: #fff; | |||||
| border-radius: 50%; | |||||
| color: #00C0FF; | |||||
| line-height: 32rpx; | |||||
| text-align: center; | |||||
| display: inline-block; | |||||
| font-size: 28rpx; | |||||
| } | |||||
| .section { | |||||
| margin-top: 2%; | |||||
| } | |||||
| .detail_msg { | |||||
| width: 92%; | |||||
| height: 220rpx !important; | |||||
| background: #fff; | |||||
| display: flex; | |||||
| margin: 0 4%; | |||||
| margin-top: 2%; | |||||
| border-bottom: 1px solid #ededed; | |||||
| } | |||||
| .logo { | |||||
| width: 248rpx; | |||||
| height: 184rpx; | |||||
| border-radius: 30rpx; | |||||
| } | |||||
| .logo image { | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| } | |||||
| .info view:nth-child(1) { | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| padding: 0 4%; | |||||
| } | |||||
| .info { | |||||
| width: 100%; | |||||
| } | |||||
| .info view:nth-child(1) { | |||||
| margin-bottom: 72rpx; | |||||
| } | |||||
| .info view:nth-child(1) text { | |||||
| font-size: 30rpx; | |||||
| } | |||||
| .info view:nth-child(1) text:nth-child(2) { | |||||
| color: #ffae00; | |||||
| font-size: 24rpx; | |||||
| } | |||||
| .info view:nth-child(2), .info view:nth-child(3) { | |||||
| color: #ff3434; | |||||
| font-size: 24rpx; | |||||
| padding-left: 4%; | |||||
| } | |||||
| .info view:nth-child(2) text, .info view:nth-child(3) text { | |||||
| font-size: 22rpx; | |||||
| color: #b8b8b8; | |||||
| } | |||||
| .info view:nth-child(3) { | |||||
| margin-top: 5rpx; | |||||
| } | |||||
| .payment { | |||||
| width: 92%; | |||||
| height: 120rpx; | |||||
| line-height: 120rpx; | |||||
| padding: 0 4%; | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| border-bottom: 20rpx solid #EDEDED; | |||||
| } | |||||
| .payment view:nth-child(2) text:nth-child(1) { | |||||
| font-size: 36rpx; | |||||
| color: #ff3434; | |||||
| font-weight: bold; | |||||
| } | |||||
| .payment view:nth-child(2) text:nth-child(2) { | |||||
| font-size: 24rpx; | |||||
| color: #b4b4b4; | |||||
| padding-left: 18rpx; | |||||
| text-decoration: line-through; | |||||
| } | |||||
| .classif { | |||||
| width: 100%; | |||||
| } | |||||
| .classif>view{ | |||||
| height: 88rpx; | |||||
| line-height: 88rpx; | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| padding-left: 4%; | |||||
| padding-right: 4%; | |||||
| } | |||||
| .classif>view text{ | |||||
| font-size: 30rpx; | |||||
| } | |||||
| .classif>view text:nth-child(2){ | |||||
| color: #B8B8B8; | |||||
| font-size: 30rpx; | |||||
| } | |||||
| .classif>view:nth-child(1) { | |||||
| display: block; | |||||
| } | |||||
| .classif>view:nth-child(1) text:nth-child(2) { | |||||
| padding-left: 15rpx; | |||||
| } | |||||
| .classif>view:nth-child(3),.classif>view:nth-child(4) { | |||||
| border-top: 20rpx solid #EDEDED; | |||||
| } | |||||
| .classif>view:nth-child(3) view text:nth-child(2) { | |||||
| padding-left: 15rpx; | |||||
| } | |||||
| .classif>view:nth-child(6) text:nth-child(2){ | |||||
| color: #FF3434; | |||||
| font-weight: bold; | |||||
| } | |||||
| @@ -3,4 +3,5 @@ | |||||
| }, | }, | ||||
| "navigationBarTitleText": "限时抢购" | "navigationBarTitleText": "限时抢购" | ||||
| } | } | ||||
| @@ -1 +1,85 @@ | |||||
| <text>pages/t/index.wxml</text> | |||||
| <!-- 限时抢购 --> | |||||
| <view class='flashSale'> | |||||
| <view class='flashSaleItemWrap'> | |||||
| <view class='flashSaleItem'> | |||||
| <view class='flashSaleItemTop'> | |||||
| <view class='flashSaleItemTopL'> | |||||
| <image src='/assets/img/food.png' class='food'></image> | |||||
| </view> | |||||
| <view class='flashSaleItemTopR'> | |||||
| <view class='flashSaleItemTopRTop'> | |||||
| <text class='foodname'>黑椒牛排</text> | |||||
| <text class='small'>小程序专享</text> | |||||
| </view> | |||||
| <view class='flashSaleItemTopRBottom'> | |||||
| <text class='presentPrice'>¥1.00</text> | |||||
| <text class='originalPrice'>¥59.00</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class='flashSaleItemBottom'> | |||||
| <view class='flashSaleItemBottomTop'><text class='remainingTime'>剩余时间:</text><text class='realRemainingTime'>2天 12小时25分钟</text></view> | |||||
| <view class='flashSaleItemBottomBottm'> | |||||
| <view><text class="remainingNumber">剩余件数:</text><text class='realnumber'>19件</text></view> | |||||
| <view class='buy'>购买</view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class='flashSaleItemWrap'> | |||||
| <view class='flashSaleItem'> | |||||
| <view class='flashSaleItemTop'> | |||||
| <view class='flashSaleItemTopL'> | |||||
| <image src='/assets/img/food.png' class='food'></image> | |||||
| </view> | |||||
| <view class='flashSaleItemTopR'> | |||||
| <view class='flashSaleItemTopRTop'> | |||||
| <text class='foodname'>黑椒牛排</text> | |||||
| <text class='small'>小程序专享</text> | |||||
| </view> | |||||
| <view class='flashSaleItemTopRBottom'> | |||||
| <text class='presentPrice'>¥1.00</text> | |||||
| <text class='originalPrice'>¥59.00</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class='flashSaleItemBottom'> | |||||
| <view class='flashSaleItemBottomTop'><text class='remainingTime'>剩余时间:</text><text class='realRemainingTime'>2天 12小时25分钟</text></view> | |||||
| <view class='flashSaleItemBottomBottm'> | |||||
| <view><text class="remainingNumber">剩余件数:</text><text class='realnumber'>19件</text></view> | |||||
| <view class='buy'>购买</view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class='flashSaleItemWrap'> | |||||
| <view class='flashSaleItem'> | |||||
| <view class='flashSaleItemTop'> | |||||
| <view class='flashSaleItemTopL'> | |||||
| <image src='/assets/img/food.png' class='food'></image> | |||||
| </view> | |||||
| <view class='flashSaleItemTopR'> | |||||
| <view class='flashSaleItemTopRTop'> | |||||
| <text class='foodname'>黑椒牛排</text> | |||||
| <text class='small'>小程序专享</text> | |||||
| </view> | |||||
| <view class='flashSaleItemTopRBottom'> | |||||
| <text class='presentPrice'>¥1.00</text> | |||||
| <text class='originalPrice'>¥59.00</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class='flashSaleItemBottom'> | |||||
| <view class='flashSaleItemBottomTop'><text class='remainingTime'>剩余时间:</text><text class='realRemainingTime'>2天12小时25分钟</text></view> | |||||
| <view class='flashSaleItemBottomBottm'> | |||||
| <view><text class="remainingNumber">剩余件数:</text><text class='realnumber'>19件</text></view> | |||||
| <view class='buy'>购买</view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| @@ -0,0 +1,104 @@ | |||||
| .flashSale{ | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| background: #fff; | |||||
| } | |||||
| .flashSaleItemWrap{ | |||||
| width: 100%; | |||||
| height: 410rpx; | |||||
| border-top: 1rpx solid #ededed; | |||||
| border-bottom: 1rpx solid #ededed; | |||||
| } | |||||
| .flashSaleItem{ | |||||
| width: 90%; | |||||
| height: 410rpx; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| background: #fff; | |||||
| margin: 0 auto; | |||||
| } | |||||
| .flashSaleItemTop{ | |||||
| display: flex; | |||||
| padding-top: 28rpx; | |||||
| flex-direction:row; | |||||
| padding-bottom: 25rpx; | |||||
| border-bottom: 1rpx solid #ededed; | |||||
| } | |||||
| .flashSaleItemTopL{ | |||||
| flex: 1; | |||||
| } | |||||
| .food{ | |||||
| width: 248rpx; | |||||
| height: 184rpx; | |||||
| } | |||||
| .flashSaleItemTopR{ | |||||
| flex: 2; | |||||
| flex-direction: column; | |||||
| margin-left: 20rpx; | |||||
| } | |||||
| .flashSaleItemTopRTop{ | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| } | |||||
| .foodname{ | |||||
| font-size: 34rpx; | |||||
| color: #000; | |||||
| } | |||||
| .small{ | |||||
| font-size: 24rpx; | |||||
| color: #00C0FF; | |||||
| margin-top: 15rpx; | |||||
| } | |||||
| .flashSaleItemTopRBottom{ | |||||
| margin-top: 50rpx; | |||||
| } | |||||
| .presentPrice{ | |||||
| font-size: 36rpx; | |||||
| color: #FF3434; | |||||
| } | |||||
| .originalPrice{ | |||||
| margin-left: 20rpx; | |||||
| color:#B4B4B4; | |||||
| text-decoration: line-through; | |||||
| font-size: 24rpx; | |||||
| } | |||||
| .flashSaleItemBottom{ | |||||
| margin-top: 20rpx; | |||||
| } | |||||
| .remainingTime{ | |||||
| font-size: 28rpx; | |||||
| color: #B4B4B4; | |||||
| } | |||||
| .realRemainingTime{ | |||||
| margin-left: 10rpx; | |||||
| color:#FF3434; | |||||
| font-size: 28rpx; | |||||
| } | |||||
| .flashSaleItemBottomBottm{ | |||||
| display: flex; | |||||
| flex-direction: row; | |||||
| } | |||||
| .remainingNumber{ | |||||
| font-size: 28rpx; | |||||
| color: #B4B4B4; | |||||
| } | |||||
| .realnumber{ | |||||
| margin-left: 10rpx; | |||||
| color: #FF3434; | |||||
| font-size: 28rpx; | |||||
| } | |||||
| .buy{ | |||||
| width:114rpx; | |||||
| height: 50rpx; | |||||
| line-height: 50rpx; | |||||
| text-align: center; | |||||
| background: #00C0FF; | |||||
| color: #fff; | |||||
| border-radius: 10rpx; | |||||
| margin-left: 350rpx; | |||||
| font-size: 28rpx; | |||||
| } | |||||
| @@ -1 +1,93 @@ | |||||
| <text>pages/t/index.wxml</text> | |||||
| <!-- 店铺详情页 --> | |||||
| <view class="spdetailContainer"> | |||||
| <!-- 头部 --> | |||||
| <view class='spheader'> | |||||
| <view class='spheaderL'><image src='/assets/img/splogo.png' class='splogo'></image></view> | |||||
| <view class='spheaderM'> | |||||
| <text class='shopname'>IFROMALL (西单大悦城店)</text> | |||||
| <text class='shopaddress'>北京市西城区西单北大街131号</text> | |||||
| </view> | |||||
| <view class='spheaderR'> | |||||
| <image src='/assets/img/spcode.png' class='spcode'></image> | |||||
| </view> | |||||
| </view> | |||||
| <!-- 到这里去 --> | |||||
| <view class='spheaderNext'> | |||||
| <view class='NextTop'><text>北京市西城区西单北大街131号</text></view> | |||||
| <view class='NextBottom'> | |||||
| <view class='NextBottomL'><image src='/assets/img/addresslogo.png' class='addresslogo'></image>12.5km</view> | |||||
| <view class='NextBottomM'><text>到这里去</text></view> | |||||
| <view class='NextBottomR'><image src='/assets/img/spphone.png' class='spphone'></image></view> | |||||
| </view> | |||||
| </view> | |||||
| <!-- 门店优惠 --> | |||||
| <view class='storeDiscount'> | |||||
| <view class='storeDiscountTitle'><text>门店优惠</text></view> | |||||
| <view class='storeDiscountCon'> | |||||
| <view class='storeDiscountConItem'> | |||||
| <view class='ConItemL'><image src='/assets/img/food.png' class='foodpng'></image></view> | |||||
| <view class='ConItemR'> | |||||
| <view class='ConItemRT'> | |||||
| <text>黑椒牛排</text> | |||||
| </view> | |||||
| <view class='ConItemRM'> | |||||
| <text class='presentPrice'>¥1.00</text> | |||||
| <text class='originalPrice'>59.00</text> | |||||
| </view> | |||||
| <view class='ConItemRB'> | |||||
| <text class='soldnum'>已售16张</text> | |||||
| <text class='buy'>购买</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class='storeDiscountConItem'> | |||||
| <view class='ConItemL'><image src='/assets/img/food.png' class='foodpng'></image></view> | |||||
| <view class='ConItemR'> | |||||
| <view class='ConItemRT'> | |||||
| <text>黑椒牛排</text> | |||||
| </view> | |||||
| <view class='ConItemRM'> | |||||
| <text class='presentPrice'>¥1.00</text> | |||||
| <text class='originalPrice'>59.00</text> | |||||
| </view> | |||||
| <view class='ConItemRB'> | |||||
| <text class='soldnum'>已售16张</text> | |||||
| <text class='buy'>购买</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class='storeDiscountConItem'> | |||||
| <view class='ConItemL'><image src='/assets/img/food.png' class='foodpng'></image></view> | |||||
| <view class='ConItemR'> | |||||
| <view class='ConItemRT'> | |||||
| <text>黑椒牛排</text> | |||||
| </view> | |||||
| <view class='ConItemRM'> | |||||
| <text class='presentPrice'>¥1.00</text> | |||||
| <text class='originalPrice'>59.00</text> | |||||
| </view> | |||||
| <view class='ConItemRB'> | |||||
| <text class='soldnum'>已售16张</text> | |||||
| <text class='buy'>购买</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class='storeDiscountConItem'> | |||||
| <view class='ConItemL'><image src='/assets/img/food.png' class='foodpng'></image></view> | |||||
| <view class='ConItemR'> | |||||
| <view class='ConItemRT'> | |||||
| <text>黑椒牛排</text> | |||||
| </view> | |||||
| <view class='ConItemRM'> | |||||
| <text class='presentPrice'>¥1.00</text> | |||||
| <text class='originalPrice'>59.00</text> | |||||
| </view> | |||||
| <view class='ConItemRB'> | |||||
| <text class='soldnum'>已售16张</text> | |||||
| <text class='buy'>购买</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| @@ -0,0 +1,174 @@ | |||||
| .spdetailContainer{ | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| background: #eee; | |||||
| } | |||||
| .spheader{ | |||||
| width: 100%; | |||||
| height: 186rpx; | |||||
| background: #fff; | |||||
| display: flex; | |||||
| flex-direction: row; | |||||
| } | |||||
| .spheaderL{ | |||||
| flex: 1; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| } | |||||
| .spheaderM{ | |||||
| flex: 2; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| justify-content: left; | |||||
| align-self: center; | |||||
| } | |||||
| .shopname{ | |||||
| font-size: 31rpx; | |||||
| color: #000; | |||||
| } | |||||
| .shopaddress{ | |||||
| font-size: 22rpx; | |||||
| color: #B8B8B8; | |||||
| margin-top: 20rpx; | |||||
| } | |||||
| .spheaderR{ | |||||
| flex: 1; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| } | |||||
| .splogo{ | |||||
| width: 150rpx; | |||||
| height: 150rpx; | |||||
| } | |||||
| .spcode{ | |||||
| width: 100rpx; | |||||
| height: 100rpx; | |||||
| } | |||||
| .spheaderNext{ | |||||
| width: 100%; | |||||
| height: 150rpx; | |||||
| background: #fff; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| padding-top: 10rpx; | |||||
| } | |||||
| .NextTop{ | |||||
| margin-left: 30rpx; | |||||
| font-size: 30rpx; | |||||
| color: #000; | |||||
| } | |||||
| .NextBottom{ | |||||
| margin-top: 23rpx; | |||||
| display: flex; | |||||
| flex-direction: row; | |||||
| margin-left: 30rpx; | |||||
| } | |||||
| .addresslogo{ | |||||
| width: 20rpx; | |||||
| height: 20rpx; | |||||
| } | |||||
| .spphone{ | |||||
| width: 44rpx; | |||||
| height: 44rpx; | |||||
| } | |||||
| .NextBottomL{ | |||||
| flex: 1; | |||||
| color: #c0c0c0; | |||||
| font-size: 22rpx; | |||||
| align-self: center; | |||||
| } | |||||
| .NextBottomM{ | |||||
| flex: 3.5; | |||||
| justify-content: left; | |||||
| font-size:22rpx; | |||||
| color: #00C0FF; | |||||
| align-self: center; | |||||
| border-top-width: 2rpx; | |||||
| border-color: #00C0FF; | |||||
| } | |||||
| .NextBottomR{ | |||||
| flex: .5 | |||||
| } | |||||
| .storeDiscount{ | |||||
| width: 100%; | |||||
| height: auto; | |||||
| background: #fff; | |||||
| margin-top: 30rpx | |||||
| } | |||||
| .storeDiscountTitle{ | |||||
| width: 100%; | |||||
| height: 87rpx; | |||||
| line-height: 87rpx; | |||||
| } | |||||
| .storeDiscountTitle text{ | |||||
| margin-left: 30rpx; | |||||
| font-size:28rpx; | |||||
| color: #000; | |||||
| border-bottom: 1px solid #fff; | |||||
| } | |||||
| .storeDiscountCon{ | |||||
| width: 100%; | |||||
| height: auto; | |||||
| background: #fff; | |||||
| flex-direction: column; | |||||
| } | |||||
| .storeDiscountConItem{ | |||||
| width: 100%; | |||||
| height: 244rpx; | |||||
| display: flex; | |||||
| flex-direction: row; | |||||
| } | |||||
| .ConItemL{ | |||||
| flex: 1; | |||||
| align-self: center; | |||||
| } | |||||
| .foodpng{ | |||||
| width: 248rpx; | |||||
| height: 184rpx; | |||||
| margin-left: 30rpx; | |||||
| } | |||||
| .ConItemR{ | |||||
| margin-top: 22rpx; | |||||
| flex: 4; | |||||
| padding-left: 20rpx; | |||||
| } | |||||
| .ConItemRT{ | |||||
| color: #000; | |||||
| font-size: 30rpx; | |||||
| } | |||||
| .ConItemRM{ | |||||
| margin-top: 10rpx; | |||||
| } | |||||
| .presentPrice{ | |||||
| font-size: 36rpx; | |||||
| color: #FF3434; | |||||
| margin-right: 20rpx; | |||||
| } | |||||
| .originalPrice{ | |||||
| font-size: 24rpx; | |||||
| color: #B4B4B4; | |||||
| text-decoration: line-through; | |||||
| } | |||||
| .ConItemRB{ | |||||
| margin-top: 35rpx; | |||||
| } | |||||
| .soldnum{ | |||||
| color: #585858; | |||||
| font-size: 22rpx; | |||||
| } | |||||
| .buy{ | |||||
| margin-left: 215rpx; | |||||
| background: #00C0FF; | |||||
| color: #fff; | |||||
| font-size: 28rpx; | |||||
| width: 114rpx; | |||||
| height: 50rpx; | |||||
| line-height: 50rpx; | |||||
| text-align: center; | |||||
| border-radius: 10rpx; | |||||
| display: inline-block; | |||||
| } | |||||
| @@ -1,65 +1,55 @@ | |||||
| Page({ | Page({ | ||||
| /** | |||||
| * 页面的初始数据 | |||||
| */ | |||||
| data: { | data: { | ||||
| tabs: [{ | |||||
| key: 1, | |||||
| name: "全部" | |||||
| }, | |||||
| { | |||||
| key: 2, | |||||
| name: "待付款" | |||||
| }, | |||||
| { | |||||
| key: 3, | |||||
| name: "已完成" | |||||
| } | |||||
| ], | |||||
| list: [ | |||||
| { | |||||
| key: '1', | |||||
| data: [ | |||||
| { | |||||
| name: '111' | |||||
| } | |||||
| ] | |||||
| }, | |||||
| { | |||||
| key: '2', | |||||
| data: [ | |||||
| { | |||||
| name: '222' | |||||
| } | |||||
| ] | |||||
| }, | |||||
| { | |||||
| key: '3', | |||||
| data: [ | |||||
| { | |||||
| name: '333' | |||||
| } | |||||
| ] | |||||
| } | |||||
| ], | |||||
| current: '', | |||||
| current_scroll: '1' | |||||
| }, | |||||
| handleChange({ detail }) { | |||||
| this.setData({ | |||||
| current: detail.key | |||||
| }); | |||||
| }, | |||||
| handleChangeScroll({ detail }) { | |||||
| this.setData({ | |||||
| current_scroll: detail.key | |||||
| }); | |||||
| }, | }, | ||||
| /** | |||||
| * 生命周期函数--监听页面加载 | |||||
| */ | |||||
| onLoad: function (options) { | |||||
| }, | |||||
| /** | |||||
| * 生命周期函数--监听页面初次渲染完成 | |||||
| */ | |||||
| onReady: function () { | |||||
| }, | |||||
| /** | |||||
| * 生命周期函数--监听页面显示 | |||||
| */ | |||||
| onShow: function () { | |||||
| }, | |||||
| /** | |||||
| * 生命周期函数--监听页面隐藏 | |||||
| */ | |||||
| onHide: function () { | |||||
| }, | |||||
| /** | |||||
| * 生命周期函数--监听页面卸载 | |||||
| */ | |||||
| onUnload: function () { | |||||
| }, | |||||
| /** | |||||
| * 页面相关事件处理函数--监听用户下拉动作 | |||||
| */ | |||||
| onPullDownRefresh: function () { | |||||
| }, | |||||
| /** | |||||
| * 页面上拉触底事件的处理函数 | |||||
| */ | |||||
| onReachBottom: function () { | |||||
| }, | |||||
| /** | |||||
| * 用户点击右上角分享 | |||||
| */ | |||||
| onShareAppMessage: function () { | |||||
| } | |||||
| }) | }) | ||||
| @@ -1,6 +1,8 @@ | |||||
| { | { | ||||
| "usingComponents": { | |||||
| }, | |||||
| "navigationBarTitleText": "我的优惠劵" | |||||
| } | |||||
| "usingComponents": { | |||||
| "i-tab": "../../../dist/tab/index", | |||||
| "i-tabs": "../../../dist/tabs/index", | |||||
| "c-coupons": "../../../components/coupons/index" | |||||
| }, | |||||
| "navigationBarTitleText": "我的订单" | |||||
| } | |||||
| @@ -1 +1,5 @@ | |||||
| <text>pages/t/index.wxml</text> | |||||
| <view class="market"> | |||||
| <i-tabs class='tabs' current="{{ current_scroll }}" scroll bindchange="handleChangeScroll"> | |||||
| <i-tab class='i-tab' wx:for="{{tabs}}" wx:key="unique" key="{{item.key}}" title="{{item.name}}"></i-tab> | |||||
| </i-tabs> | |||||
| </view> | |||||
| @@ -0,0 +1,15 @@ | |||||
| .market { | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| } | |||||
| .tabs { | |||||
| width: 100% !important; | |||||
| height: 88rpx; | |||||
| text-align: center; | |||||
| } | |||||
| .i-tab { | |||||
| width: 30% !important; | |||||
| display: inline-block; | |||||
| } | |||||
| @@ -1 +1,9 @@ | |||||
| <text>pages/t/index.wxml</text> | |||||
| <view class='success'> | |||||
| <view class='success_logo'> | |||||
| <icon class='iconfont icon-choose'></icon> | |||||
| <text>购买成功</text> | |||||
| </view> | |||||
| <button class='check'>查看订单</button> | |||||
| <button>继续逛逛</button> | |||||
| <button>去使用</button> | |||||
| </view> | |||||
| @@ -0,0 +1,47 @@ | |||||
| .success { | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| background: #f6f6f6; | |||||
| position: absolute; | |||||
| } | |||||
| .success_logo { | |||||
| width: 201rpx; | |||||
| height: 281rpx; | |||||
| margin: 10% auto; | |||||
| display: flex; | |||||
| flex-direction: column; | |||||
| margin-bottom: 20%; | |||||
| } | |||||
| .success_logo icon { | |||||
| width: 201rpx; | |||||
| height: 201rpx; | |||||
| background: #00c0ff; | |||||
| border-radius: 50%; | |||||
| color: #fff; | |||||
| font-size: 40px; | |||||
| text-align: center; | |||||
| line-height: 201rpx; | |||||
| } | |||||
| .success_logo text { | |||||
| font-size: 36rpx; | |||||
| text-align: center; | |||||
| padding-top: 3%; | |||||
| } | |||||
| .success button { | |||||
| width: 504rpx; | |||||
| height: 88rpx; | |||||
| background: #00c0ff; | |||||
| color: #fff; | |||||
| margin: 3% auto; | |||||
| font-size: 36rpx; | |||||
| } | |||||
| .check { | |||||
| background: #fff!important; | |||||
| color: #00c0ff!important; | |||||
| border:1px solid #00c0ff; | |||||
| } | |||||
| @@ -32,7 +32,7 @@ | |||||
| </view> | </view> | ||||
| <view class="margin"></view> | <view class="margin"></view> | ||||
| <view class="user-btns"> | <view class="user-btns"> | ||||
| <navigator url="/pages/market/index"> | |||||
| <navigator url="/pages/coupons/index/index"> | |||||
| <view class="user-btn app-border-bottom"> | <view class="user-btn app-border-bottom"> | ||||
| <view>卷包</view> | <view>卷包</view> | ||||
| <view> | <view> | ||||
| @@ -12,8 +12,8 @@ | |||||
| }, | }, | ||||
| "compileType": "miniprogram", | "compileType": "miniprogram", | ||||
| "libVersion": "2.2.2", | "libVersion": "2.2.2", | ||||
| "appid": "wx649b3be73c1afe47", | |||||
| "projectname": "C", | |||||
| "appid": "wxeaaa53abd537546b", | |||||
| "projectname": "2222", | |||||
| "isGameTourist": false, | "isGameTourist": false, | ||||
| "condition": { | "condition": { | ||||
| "search": { | "search": { | ||||