From 4a8dbb6a9d9c30127fe0551f81f29e3a340b87c5 Mon Sep 17 00:00:00 2001 From: Devil Date: Fri, 4 Oct 2019 20:50:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=94=AE=E5=90=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Order.php | 7 +- application/api/controller/Orderaftersale.php | 191 ++++++++++++++++++ public/appmini/old/weixin/app.js | 2 + public/appmini/old/weixin/app.json | 8 +- .../images/user-index-nav-order-icon-101.png | Bin 0 -> 2421 bytes .../old/weixin/pages/user-order/user-order.js | 16 ++ .../weixin/pages/user-order/user-order.wxml | 1 + .../weixin/pages/user-order/user-order.wxss | 7 + .../user-orderaftersale-detail.js | 88 ++++++++ .../user-orderaftersale-detail.json | 3 + .../user-orderaftersale-detail.wxml | 2 + .../user-orderaftersale-detail.wxss | 1 + .../user-orderaftersale.js | 66 ++++++ .../user-orderaftersale.json | 3 + .../user-orderaftersale.wxml | 2 + .../user-orderaftersale.wxss | 1 + public/appmini/old/weixin/pages/user/user.js | 9 +- .../appmini/old/weixin/pages/user/user.wxml | 2 +- .../appmini/old/weixin/pages/user/user.wxss | 2 +- 19 files changed, 399 insertions(+), 12 deletions(-) create mode 100644 application/api/controller/Orderaftersale.php create mode 100644 public/appmini/old/weixin/images/user-index-nav-order-icon-101.png create mode 100644 public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.js create mode 100644 public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.json create mode 100644 public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.wxml create mode 100644 public/appmini/old/weixin/pages/user-orderaftersale-detail/user-orderaftersale-detail.wxss create mode 100644 public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.js create mode 100644 public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.json create mode 100644 public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.wxml create mode 100644 public/appmini/old/weixin/pages/user-orderaftersale/user-orderaftersale.wxss diff --git a/application/api/controller/Order.php b/application/api/controller/Order.php index e5996bf16..0ec34935b 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 000000000..f64e60126 --- /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 c38b4e506..d450326aa 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 daae64076..9fd615c3b 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 GIT binary patch literal 2421 zcmZuzX*kq-8~**r3}bB=OSYQqgiJ)%8T=JlvNX2H5-*}GnPaap^qxUUiAset6xmB1 zg@!_D!We6uFh~X`Q!}!>m0suLdtL8`=YBri_j5hZm*=|g9Cx>)l443?002oRN7!?x zQ~oKm@D6s_guDYl)XE9AJ&}Cs^F8a!Q!s`S@nfKon2FTk;+7&E?VL59(S&Vn?T!{X zI~OEq2gU>z!H!7F9!=RNP8b?YD$<0s1#73sWtVh`W|a=Xgve zlVxfgtO-JPmm(<}fD;ckMWllW4krA z$>ZdWZ*Ns)g(>sgte2eU7SqDxgslsn*lV-40Uv1VrYr#R?&>oJ+n2E@%AYTgUC9;+erlvdr z=&l0$DsoAq%Pd!{)esDsnVk)g2JaIPo&A1ML64{#6*`k;i!}+*t+CA3`pkw#QXo-| z`YBZ;3u?Q8dV2L(_Lu60oQ3u5kls6PXB3T&uN;sL{F+hLHH~cy05$Rr`BWO$6x_wj z@=<_uWzVGpYX2!L%BQts)@U405HOxG6jol;4u4==3+KL)9DRn5TFGDuN_9}38U!@( z-}bAhFOr`fWvK1app&KeJA3kA^;kxz_ZBO!bkRWmVb&YZ^XJbOu}bF-+t6sW*vYlI zCmd1($`Nw^F|#hE6!S}^jf6kA!7*oT=^Rs z03+9}+?m*VeqsFUUKe{XnEvg$?kf3$KznNFlNsS`voCPHRNHg?rQ)58X;rJG)=#ag zcFO(RzCqoHTSnzN7k#|@2#T8vZWS)ebGvNC* zO=bHte z$^aA8=y)iC7<8z1;s8YSa?dc(0{@5F4{_=Pl$Dj!`0I>lX47!b&I_ZdB-kZsaa-1b zt=x>1x^W5+Q66J3TMM=L9Z`6kH&@6_LN+b(TdSb!#J=7&Dn#K?r|7o((4Yy zr>Pxj(iEnex%V#{hAmvSkdfncv+Pkn;=?hUnLXDcrZ6rZHZ57kwDej5K3Wy?Ubu5$ zku(3QP8=b*KyZMa89ae@uyIEnf^y$-d!a$^Yt6pF6BjBhY4t+E-k3z&Eq(F*P_;6( zL1*R+Sf-XcGh6mhYW8tU_$W#k(zmCxDUYcDZs-yf(XBP{^**CFFTxV6M;F(( z-y#8xw)pMpfLzVJj_?sh*xB1Gp^XGwHoM!7r6^g~I!c99h?$6;M1gneXlkG9KBdP> zy4UqsYm7(yCA_g$b3$?5>E+L3P=POG<6M4XJCH2ze#F-GxLmyuj^v$?D_Rvc&X_y= z=_4jxzi)s`xGkC9uT6_0a670gwB*zBcRZ?|zVinXMNb0*Tq*Vb6vIV=Jdkk2fNh21 zqPKJufG9tItaCg9i1|x@&!<44P&a~xa@@`RdpFK}LEt&jQ;t`NQ;^=WKVBFu4s53{{SEU^lZ|uqg>Q>BMQ-UyomL@;HAbG?wDFVBQ-2||A#Z*eA1J{D z<%6LG^M_kX+$_%C6W4j!HxTMxCeA z{s{bYe_{sSQNObq873c0%zg&qp*ci1s#l+)Sl|cP168w+4XnDZu8#!eienTCmJmws zzC|1TyI)_g83>6A+r}ZK8*5s=D87nU*&Cxb(_t$>Q69gV`<_C8qz(8l*>6*~>AdgJ zB&)WZ2pTHVZrPy53q)Q!SQ42F2D3*_o~QzYYT+hqS*Tp}VN10eRPMlxr0XJxSkG9G zdkA9Q4L0nBq-a%6(=AXGdEJVf2Wa5x_`-oK1`IrpU|pp_NkMAfvMlhgysTB?X$hjL zZZt-XrOyy1;fVVK9-yjy?UC=E(eH5x!*1Bgr3VcvCh8GxBLHqmcah z7+%%QT2-0go+{B=8h3cdw+H_5?NcjHAdZOUgt-F5353%vc(eTPF`7g;$Rc0BaAK&b zgOOEPrva0b@$X4@a)wB6WraHpzpl5mAcz;qwWG!m(b?svfd*LfY4Nwlf+yW0Gj{(& atsS`C(R&C_FW{{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 0f72eea39..b052afd8c 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 000000000..5ff1bcad6 --- /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 000000000..331ad4f3d --- /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 000000000..fc453ca4a --- /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 000000000..a2f209ad5 --- /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 000000000..95e857d8a --- /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 000000000..8835af069 --- /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 000000000..a8f1ac6ca --- /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 000000000..7904dd170 --- /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 781e7c743..c003370fe 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 3cd93d9a2..dcb2c8378 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 08a377738..5b593a0df 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 { -- GitLab