diff --git a/app/app.json b/app/app.json
index 4efdfde..a128b06 100644
--- a/app/app.json
+++ b/app/app.json
@@ -1,10 +1,10 @@
{
"pages": [
- "pages/order/show",
- "pages/order/list",
- "pages/shop/show",
- "pages/mine/mine",
"pages/index/index",
+ "pages/shop/show",
+ "pages/order/list",
+ "pages/order/show",
+ "pages/mine/mine",
"pages/address/select",
"pages/order/quasi",
"pages/address/list",
diff --git a/app/pages/order/list.js b/app/pages/order/list.js
index eeece9a..8453be3 100644
--- a/app/pages/order/list.js
+++ b/app/pages/order/list.js
@@ -1,11 +1,11 @@
// pages/order/list.js
import { ORDER_STATES } from './constant'
import {
- getOrders
+ getOrders, getPayment
} from '../../utils/apis'
import {
- datetimeFormat
+ datetimeFormat, requestPayment
} from '../../utils/util'
var initData = {
@@ -21,6 +21,16 @@ Page({
},
onLoad: function (options) {
// 页面初始化 options为页面跳转所带来的参数
+ console.log('onLoad')
+ var that = this
+ getApp().getLoginInfo(loginInfo => {
+ that.setData({
+ loginInfo: loginInfo
+ })
+ if (loginInfo.is_login) {
+ that.initData()
+ }
+ })
},
onReady: function () {
// 页面渲染完成
@@ -32,10 +42,6 @@ Page({
that.setData({
loginInfo: loginInfo
})
- var {list} = that.data
- if (loginInfo.is_login && !list) {
- that.initData()
- }
})
},
onHide: function () {
@@ -45,6 +51,7 @@ Page({
// 页面关闭
},
initData(cb) {
+ this.setData(initData)
this.loadData(cb)
},
loadData(cb) {
@@ -80,6 +87,40 @@ Page({
}
})
},
+ onPayTap(e) {
+ var {id} = e.currentTarget
+ var that = this
+ var {list, loading} = this.data
+ if (loading) {
+ return;
+ }
+
+ this.setData({
+ loading: true
+ })
+ var {order_id} = list[id]
+ getPayment({
+ order_id,
+ success(data) {
+ requestPayment({
+ data,
+ success(data) {
+ that.initData()
+ },
+ complete() {
+ that.setData({
+ loading: false
+ })
+ }
+ })
+ },
+ error() {
+ that.setData({
+ loading: false
+ })
+ }
+ })
+ },
onReachBottom(e) {
var {
loginInfo: {is_login},
@@ -101,7 +142,10 @@ Page({
wx.stopPullDownRefresh()
}
},
+
callback(loginInfo) {
- this.setData(initData)
+ if (this.data.list) {
+ this.onLoad()
+ }
}
})
\ No newline at end of file
diff --git a/app/pages/order/list.wxml b/app/pages/order/list.wxml
index 013dfc6..9d3bd7b 100644
--- a/app/pages/order/list.wxml
+++ b/app/pages/order/list.wxml
@@ -17,8 +17,8 @@
-
- 去评论
+
+ 去评论
diff --git a/app/pages/order/quasi.js b/app/pages/order/quasi.js
index 8a2e201..6add4e1 100644
--- a/app/pages/order/quasi.js
+++ b/app/pages/order/quasi.js
@@ -5,7 +5,7 @@ import {
} from '../../utils/apis'
import {
- requestPayment
+ requestPayment, getCurrentPage
} from '../../utils/util'
Page({
data: {
@@ -106,8 +106,12 @@ Page({
that.setData({
loading: false
})
- wx.redirectTo({
- url: `/pages/order/show?id=${order_id}`
+ wx.switchTab({
+ url: '/pages/order/list',
+ success(res) {
+ var {callback} = getCurrentPage()
+ callback && callback()
+ }
})
}
})
diff --git a/app/pages/order/show.js b/app/pages/order/show.js
index 24eba97..c377c92 100644
--- a/app/pages/order/show.js
+++ b/app/pages/order/show.js
@@ -2,10 +2,11 @@
import Countdown from '../../utils/countdown'
import {
countdownFormat, datetimeFormat,
- makePhoneCall, requestPayment
+ makePhoneCall, requestPayment, confirm, alert
} from '../../utils/util'
import {
- getOrderInfo, getPayment
+ getOrderInfo, getPayment,
+ cancelOrder
} from '../../utils/apis'
Page({
data: {
@@ -23,7 +24,7 @@ Page({
},
onLoad: function (options) {
// 页面初始化 options为页面跳转所带来的参数
- this.id = options.id || 1409
+ this.id = options.id || 1413
this.loadData()
},
onReady: function () {
@@ -55,6 +56,7 @@ Page({
},
initCountdown(count) {
+ var that = this
this.setData({
count
})
@@ -63,6 +65,9 @@ Page({
this.setData({
countLabel: countdownFormat(count)
})
+ }, () => {
+ console.log('complete')
+ that.loadData()
})
this.countdown = countdown
},
@@ -85,6 +90,9 @@ Page({
wx.setNavigationBarTitle({
title: data['seller_name'],
})
+ if (that.countdown) {
+ that.countdown.stop()
+ }
if (data.left_time > 0) {
that.initCountdown(+data.left_time)
}
@@ -131,11 +139,12 @@ Page({
getPayment({
order_id,
success(data) {
- wx.requestPayment({
+ requestPayment({
+ data,
success(data) {
that.loadData()
},
- complete () {
+ complete() {
that.setData({
loading: false
})
@@ -149,6 +158,23 @@ Page({
}
})
},
+ onCancelTap(e) {
+ var that = this;
+ var {info: {order_id, title}} = this.data
+ confirm({
+ content: `是否取消订单 ${title}`,
+ confirmText: '取消订单',
+ ok() {
+ cancelOrder({
+ order_id,
+ success(data) {
+ alert('取消订单成功')
+ that.loadData()
+ }
+ })
+ }
+ })
+ },
onPullDownRefresh() {
this.loadData(function () {
wx.stopPullDownRefresh()
diff --git a/app/pages/order/show.wxml b/app/pages/order/show.wxml
index c2b2a77..8b027e4 100644
--- a/app/pages/order/show.wxml
+++ b/app/pages/order/show.wxml
@@ -18,12 +18,13 @@
{{item.time_format}}
-
- 支付剩余时间
- {{countLabel}}
+
+ 支付剩余时间
+ 等待商家接单
+ {{countLabel}}
-
-
+
+
评价
diff --git a/app/pages/order/show.wxss b/app/pages/order/show.wxss
index dc8cc42..e96a8d3 100644
--- a/app/pages/order/show.wxss
+++ b/app/pages/order/show.wxss
@@ -134,6 +134,9 @@
left: 10px;
font-size: 0.8em;
}
+.order-show__left-time-label {
+ margin-left: 5px;
+}
.phone {
position: absolute;
diff --git a/app/utils/apis.js b/app/utils/apis.js
index bb9eb26..bba9c70 100644
--- a/app/utils/apis.js
+++ b/app/utils/apis.js
@@ -393,6 +393,29 @@ export function addOrder(options) {
})
}
+// 取消订单
+export function cancelOrder(options) {
+ var {
+ order_id,
+ success, error
+ } = options
+ getApp().getLoginInfo(loginInfo => {
+ if (!loginInfo.user_info) {
+ return alert('用户未登录')
+ }
+ var {user_id, user_token} = loginInfo.user_info
+ fetch({
+ url: 'index.php?m=Mall&c=Order&a=cancelOrder',
+ data: {
+ user_id, user_token,
+ order_id
+ },
+ success, error
+ })
+
+ })
+}
+
// 获取订单列表
export function getOrders(options) {
var {
diff --git a/app/utils/countdown.js b/app/utils/countdown.js
index fb78c56..6033e7c 100644
--- a/app/utils/countdown.js
+++ b/app/utils/countdown.js
@@ -1,26 +1,27 @@
export default class Countdown {
- constructor(page, prop) {
- this.page = page
- this.prop = prop
- }
+ constructor(page, prop) {
+ this.page = page
+ this.prop = prop
+ }
- start(cb) {
- var that = this;
- var {page, prop} = that
- var second = page.data[prop]
- if (second <= 0) {
- return
- }
- cb && cb(second)
- that.timer = setTimeout(function () {
- page.setData({
- [prop]: second - 1
- });
- that.start(cb);
- }, 1000)
+ start(cb, complete) {
+ var that = this;
+ var {page, prop} = that
+ var second = page.data[prop]
+ if (second <= 0) {
+ complete && complete()
+ return
}
+ cb && cb(second)
+ that.timer = setTimeout(function () {
+ page.setData({
+ [prop]: second - 1
+ });
+ that.start(cb, complete);
+ }, 1000)
+ }
- stop() {
- clearTimeout(this.timer)
- }
+ stop() {
+ clearTimeout(this.timer)
+ }
}
\ No newline at end of file
diff --git a/app/utils/util.js b/app/utils/util.js
index 3f3a781..d29de0e 100644
--- a/app/utils/util.js
+++ b/app/utils/util.js
@@ -161,6 +161,10 @@ export function getPrevPage() {
const pages = getCurrentPages()
return pages[pages.length - 2]
}
+export function getCurrentPage() {
+ const pages = getCurrentPages()
+ return pages[pages.length - 1]
+}
export function fetch(options) {
wx.request({