diff --git a/application/api/controller/Order.php b/application/api/controller/Order.php index e5996bf16163ac321965405abfbd51e71d33cba2..0ec34935b565d1b85c14c4f7fac78c8f1ec8de82 100755 --- a/application/api/controller/Order.php +++ b/application/api/controller/Order.php @@ -66,9 +66,10 @@ class Order extends Common // 获取列表 $data_params = array( - 'm' => $start, - 'n' => $number, - 'where' => $where, + 'm' => $start, + 'n' => $number, + 'where' => $where, + 'is_orderaftersale' => 1, ); $data = OrderService::OrderList($data_params); diff --git a/application/api/controller/Orderaftersale.php b/application/api/controller/Orderaftersale.php new file mode 100644 index 0000000000000000000000000000000000000000..f64e60126500d0bdb4462728c4d449607debaada --- /dev/null +++ b/application/api/controller/Orderaftersale.php @@ -0,0 +1,191 @@ +IsLogin(); + } + + /** + * 订单列表 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @date 2018-09-28 + * @desc description + */ + public function Index() + { + // 参数 + $params = $this->data_post; + $params['user'] = $this->user; + $params['user_type'] = 'user'; + + // 分页 + $number = 10; + $page = max(1, isset($this->data_post['page']) ? intval($this->data_post['page']) : 1); + + // 条件 + $where = OrderService::OrderListWhere($params); + + // 获取总数 + $total = OrderAftersaleService::OrderAftersaleTotal($where); + $page_total = ceil($total/$number); + $start = intval(($page-1)*$number); + + // 获取列表 + $data_params = array( + 'm' => $start, + 'n' => $number, + 'where' => $where, + 'is_orderaftersale' => 1, + ); + $data = OrderAftersaleService::OrderAftersaleList($data_params); + + // 返回数据 + $result = [ + 'total' => $total, + 'page_total' => $page_total, + 'data' => $data['data'], + 'aftersale_type_list' => lang('common_order_aftersale_type_list'), + ]; + return DataReturn('success', 0, $result); + } + + /** + * 售后页面 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @date 2019-05-21 + * @desc description + */ + public function Aftersale() + { + $order_id = isset($this->data_post['oid']) ? intval($this->data_post['oid']) : 0; + $order_detail_id = isset($this->data_post['did']) ? intval($this->data_post['did']) : 0; + $ret = OrderAftersaleService::OrdferGoodsRow($order_id, $order_detail_id, $this->user['id']); + if($ret['code'] == 0) + { + // 获取当前订单商品售后最新的一条纪录 + $data_params = [ + 'm' => 0, + 'n' => 1, + 'where' => [ + ['order_detail_id', '=', $order_detail_id], + ['user_id', '=', $this->user['id']], + ], + ]; + $new_aftersale = OrderAftersaleService::OrderAftersaleList($data_params); + if(!empty($new_aftersale['data'][0])) + { + $new_aftersale_data = $new_aftersale['data'][0]; + $new_aftersale_data['tips_msg'] = OrderAftersaleService::OrderAftersaleTipsMsg($new_aftersale_data); + } else { + $new_aftersale_data = []; + } + + // 进度 + $step_data = OrderAftersaleService::OrderAftersaleStep($new_aftersale_data); + + // 可退款退货 + $returned = OrderAftersaleService::OrderAftersaleCalculation($order_id, $order_detail_id); + + // 仅退款原因 + $return_only_money_reason = MyC('home_order_aftersale_return_only_money_reason'); + + // 退款退货原因 + $return_money_goods_reason = MyC('home_order_aftersale_return_money_goods_reason'); + + // 返回数据 + $result = [ + 'order_data' => $ret['data'], + 'new_aftersale_data' => $new_aftersale_data, + 'step_data' => $step_data, + 'returned_data' => $returned['data'], + 'return_only_money_reason' => empty($return_only_money_reason) ? [] : explode("\n", $return_only_money_reason), + 'return_money_goods_reason' => empty($return_money_goods_reason) ? [] : explode("\n", $return_money_goods_reason), + 'aftersale_type_list' => lang('common_order_aftersale_type_list'), + ]; + return DataReturn('success', 0, $result); + } + return DataReturn($ret['msg'], -1); + } + + /** + * 申请售后创建 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @date 2019-05-23 + * @desc description + */ + public function Create() + { + $params = $this->data_post; + $params['user'] = $this->user; + return OrderAftersaleService::AftersaleCreate($params); + } + + /** + * 用户退货 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @date 2019-05-23 + * @desc description + */ + public function Delivery() + { + $params = $this->data_post; + $params['user'] = $this->user; + return OrderAftersaleService::AftersaleDelivery($params); + } + + /** + * 订单取消 + * @author Devil + * @blog http://gong.gg/ + * @version 1.0.0 + * @date 2018-09-30 + * @desc description + */ + public function Cancel() + { + $params = $this->data_post; + $params['user'] = $this->user; + return OrderAftersaleService::AftersaleCancel($params); + } +} +?> \ No newline at end of file diff --git a/public/appmini/old/weixin/app.js b/public/appmini/old/weixin/app.js index c38b4e50673d828df2912aa7eef2d2516d3dabea..d450326aa0198d5b86a4439901bcce04c2a17237 100755 --- a/public/appmini/old/weixin/app.js +++ b/public/appmini/old/weixin/app.js @@ -57,6 +57,8 @@ App({ "user_integral": "我的积分", "user_goods_browse": "我的足迹", "goods_comment": "商品评论", + "user_orderaftersale": "退款/售后", + "user_orderaftersale_detail": "售后详情", }, // 请求地址 diff --git a/public/appmini/old/weixin/app.json b/public/appmini/old/weixin/app.json index daae64076bd5222808e153cf9aa4dd1bdc1db2a5..9fd615c3b7d1e7f57aee486dc4ed886cd178b789 100755 --- a/public/appmini/old/weixin/app.json +++ b/public/appmini/old/weixin/app.json @@ -1,9 +1,10 @@ { "pages": [ + "pages/user-order/user-order", + "pages/user/user", "pages/index/index", "pages/goods-category/goods-category", "pages/cart/cart", - "pages/user/user", "pages/web-view/web-view", "pages/login/login", "pages/paytips/paytips", @@ -14,7 +15,6 @@ "pages/buy/buy", "pages/user-address/user-address", "pages/user-address-save/user-address-save", - "pages/user-order/user-order", "pages/user-order-detail/user-order-detail", "pages/user-faovr/user-faovr", "pages/user-answer-list/user-answer-list", @@ -22,7 +22,9 @@ "pages/answer-form/answer-form", "pages/message/message", "pages/user-integral/user-integral", - "pages/user-goods-browse/user-goods-browse" + "pages/user-goods-browse/user-goods-browse", + "pages/user-orderaftersale/user-orderaftersale", + "pages/user-orderaftersale-detail/user-orderaftersale-detail" ], "window": { "navigationBarTitleText": "{{application_title}}", diff --git a/public/appmini/old/weixin/images/user-index-nav-order-icon-101.png b/public/appmini/old/weixin/images/user-index-nav-order-icon-101.png new file mode 100644 index 0000000000000000000000000000000000000000..d8cd649a284bf5f0150afd8d21c3733afab936e9 Binary files /dev/null and b/public/appmini/old/weixin/images/user-index-nav-order-icon-101.png differ diff --git a/public/appmini/old/weixin/pages/user-order/user-order.js b/public/appmini/old/weixin/pages/user-order/user-order.js index 31d025a988f3b88287eb976c1984ed822ffd8df6..1e3b91c962d3080b4d0b5e81c4d42fe5bd472485 100755 --- a/public/appmini/old/weixin/pages/user-order/user-order.js +++ b/public/appmini/old/weixin/pages/user-order/user-order.js @@ -370,4 +370,20 @@ Page({ }); this.get_data_list(1); }, + + // 售后订单事件 + orderaftersale_event(e) { + var oid = e.currentTarget.dataset.oid || 0; + var did = e.currentTarget.dataset.did || 0; + if(oid == 0 || did == 0) + { + app.showToast("参数有误"); + return false; + } + + // 进入售后页面 + wx.navigateTo({ + url: "/pages/user-orderaftersale-detail/user-orderaftersale-detail?oid=" + oid+"&did="+did + }); + }, }); diff --git a/public/appmini/old/weixin/pages/user-order/user-order.wxml b/public/appmini/old/weixin/pages/user-order/user-order.wxml index 017c2a2a1432288738619af05ca8990f4e27b005..5781bcf7c8f44265dffc264eaef239cc999d4eb6 100755 --- a/public/appmini/old/weixin/pages/user-order/user-order.wxml +++ b/public/appmini/old/weixin/pages/user-order/user-order.wxml @@ -24,6 +24,7 @@ {{spec.type}}:{{spec.value}} + {{detail.orderaftersale_btn_text}} ¥{{detail.price}} diff --git a/public/appmini/old/weixin/pages/user-order/user-order.wxss b/public/appmini/old/weixin/pages/user-order/user-order.wxss index 0f72eea39f20b1a8e95277a3b304fb713f0a19d0..b052afd8cb0bb17fc679973fae45f24d37a3e974 100755 --- a/public/appmini/old/weixin/pages/user-order/user-order.wxss +++ b/public/appmini/old/weixin/pages/user-order/user-order.wxss @@ -19,6 +19,7 @@ .goods-base { min-height: 160rpx; margin-left: 180rpx; + position: relative; } .goods-title { line-height: 36rpx; @@ -59,6 +60,12 @@ .item-operation button { padding: 0 35rpx; } +.orderaftersale-btn-text { + position: absolute; + right: 0; + bottom: 0; + color: #4d7fa7; +} /** * 支付方式 diff --git a/public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.js b/public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.js new file mode 100644 index 0000000000000000000000000000000000000000..5ff1bcad6502cbae5e15ce5d719b1f1f7accd4c6 --- /dev/null +++ b/public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.js @@ -0,0 +1,88 @@ +const app = getApp(); +Page({ + data: { + params: null, + data_list_loding_status: 1, + data_list_loding_msg: '', + data_bottom_line_status: false, + + order_data: [], + new_aftersale_data: [], + step_data: [], + returned_data: [], + return_only_money_reason: [], + return_money_goods_reason: [], + aftersale_type_list: [], + }, + + onLoad(params) { + this.setData({ params: params }); + this.init(); + }, + + onShow() { + wx.setNavigationBarTitle({ title: app.data.common_pages_title.user_orderaftersale_detail }); + }, + + init() { + var self = this; + wx.showLoading({ title: "加载中..." }); + this.setData({ + data_list_loding_status: 1 + }); + + wx.request({ + url: app.get_request_url("aftersale", "orderaftersale"), + method: "POST", + data: { + oid: this.data.params.oid, + did: this.data.params.did + }, + dataType: "json", + success: res => { + wx.hideLoading(); + wx.stopPullDownRefresh(); + if (res.data.code == 0) { + var data = res.data.data; + self.setData({ + data_list_loding_status: 3, + data_bottom_line_status: true, + data_list_loding_msg: '', + + order_data: data.order_data || [], + new_aftersale_data: data.new_aftersale_data || [], + step_data: data.step_data || [], + returned_data: data.returned_data || [], + return_only_money_reason: data.return_only_money_reason || [], + return_money_goods_reason: data.return_money_goods_reason || [], + aftersale_type_list: data.aftersale_type_list || [], + }); + } else { + self.setData({ + data_list_loding_status: 2, + data_bottom_line_status: false, + data_list_loding_msg: res.data.msg, + }); + app.showToast(res.data.msg); + } + }, + fail: () => { + wx.hideLoading(); + wx.stopPullDownRefresh(); + self.setData({ + data_list_loding_status: 2, + data_bottom_line_status: false, + data_list_loding_msg: '服务器请求出错', + }); + + app.showToast("服务器请求出错"); + } + }); + }, + + // 下拉刷新 + onPullDownRefresh() { + this.init(); + }, + +}); diff --git a/public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.json b/public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.json new file mode 100644 index 0000000000000000000000000000000000000000..331ad4f3d98660918818a7657404ac8cb0a6f312 --- /dev/null +++ b/public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.json @@ -0,0 +1,3 @@ +{ + "enablePullDownRefresh": true +} \ No newline at end of file diff --git a/public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.wxml b/public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.wxml new file mode 100644 index 0000000000000000000000000000000000000000..fc453ca4aaf2f0dddf242bddbd09752b01353b2b --- /dev/null +++ b/public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.wxml @@ -0,0 +1,2 @@ + +pages/user-orderaftersale-detail/user-orderaftersale-detail.wxml diff --git a/public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.wxss b/public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.wxss new file mode 100644 index 0000000000000000000000000000000000000000..a2f209ad5cad6b4e6259b3cabfd05573411077a2 --- /dev/null +++ b/public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.wxss @@ -0,0 +1 @@ +/* pages/user-orderaftersale-detail/user-orderaftersale-detail.wxss */ \ No newline at end of file diff --git a/public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.js b/public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.js new file mode 100644 index 0000000000000000000000000000000000000000..95e857d8ae34a2c1d44727bcdf342a6b006efe9e --- /dev/null +++ b/public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.js @@ -0,0 +1,66 @@ +const app = getApp(); +Page({ + + /** + * 页面的初始数据 + */ + data: { + + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad: function (options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.json b/public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.json new file mode 100644 index 0000000000000000000000000000000000000000..8835af0699ccec004cbe685ef938cd2d63ea7037 --- /dev/null +++ b/public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.wxml b/public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.wxml new file mode 100644 index 0000000000000000000000000000000000000000..a8f1ac6ca5d95881b22e8d4aa8a667257db8daad --- /dev/null +++ b/public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.wxml @@ -0,0 +1,2 @@ + +pages/user-orderaftersale.wxml diff --git a/public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.wxss b/public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.wxss new file mode 100644 index 0000000000000000000000000000000000000000..7904dd1707e57686aa14e8676c041214369a1383 --- /dev/null +++ b/public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.wxss @@ -0,0 +1 @@ +/* pages/user-orderaftersale.wxss */ \ No newline at end of file diff --git a/public/appmini/old/weixin/pages/user/user.js b/public/appmini/old/weixin/pages/user/user.js index 781e7c743d8240c4fabb2bb5465803ec6203f284..c003370feeb508d87f059f238db9f852a9ebaa0c 100755 --- a/public/appmini/old/weixin/pages/user/user.js +++ b/public/appmini/old/weixin/pages/user/user.js @@ -13,10 +13,11 @@ Page({ { name: "我的积分", url: "user-integral", count: 0 }, ], user_order_status_list: [ - { name: "待付款", status: 1, count: 0 }, - { name: "待发货", status: 2, count: 0 }, - { name: "待收货", status: 3, count: 0 }, - { name: "已完成", status: 4, count: 0 }, + { name: "待付款", status: 1, count: 0, url: "/pages/user-order/user-order?status=1" }, + { name: "待发货", status: 2, count: 0, url: "/pages/user-order/user-order?status=2" }, + { name: "待收货", status: 3, count: 0, url: "/pages/user-order/user-order?status=3" }, + { name: "已完成", status: 4, count: 0, url: "/pages/user-order/user-order?status=4" }, + { name: "退款/售后", status: 101, count: 0, url: "/pages/user-orderaftersale/user-orderaftersale" }, ], nav_lists: [ { diff --git a/public/appmini/old/weixin/pages/user/user.wxml b/public/appmini/old/weixin/pages/user/user.wxml index 3cd93d9a296eefdacfc97b9bceea69736328ab41..dcb2c837888bdb10c6d2ddc562c7232ff587d4e6 100755 --- a/public/appmini/old/weixin/pages/user/user.wxml +++ b/public/appmini/old/weixin/pages/user/user.wxml @@ -36,7 +36,7 @@ - + diff --git a/public/appmini/old/weixin/pages/user/user.wxss b/public/appmini/old/weixin/pages/user/user.wxss index 08a3777383678fc27d7141229f1a9a6bbf7851d4..5b593a0df8355f04809ded2c3fd20e900f266edc 100755 --- a/public/appmini/old/weixin/pages/user/user.wxss +++ b/public/appmini/old/weixin/pages/user/user.wxss @@ -76,7 +76,7 @@ padding: 15rpx 0; } .items-list .items { - width: 25%; + width: 20%; position: relative; } .items-list .items .items-icon {