From 285a9afa943793fc8eb751da5bbca08baf3a9ec3 Mon Sep 17 00:00:00 2001 From: Kiyan Date: Mon, 15 May 2017 15:17:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/app.json | 8 +++--- app/pages/order/list.js | 58 ++++++++++++++++++++++++++++++++++----- app/pages/order/list.wxml | 4 +-- app/pages/order/quasi.js | 10 +++++-- app/pages/order/show.js | 36 ++++++++++++++++++++---- app/pages/order/show.wxml | 11 ++++---- app/pages/order/show.wxss | 3 ++ app/utils/apis.js | 23 ++++++++++++++++ app/utils/countdown.js | 43 +++++++++++++++-------------- app/utils/util.js | 4 +++ 10 files changed, 153 insertions(+), 47 deletions(-) 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({