@@ -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": { | ||||