浏览代码

申请退款报错修复

wenjie 5 天之前
父节点
当前提交
fec9fda457

二进制
images/icon/apply.png


二进制
images/icon/car.png


+ 22 - 0
pages/afterSales/afterSales.js

@@ -92,6 +92,28 @@ Page({
     })
 
   },
+
+    /**
+   * 再次申请
+   */
+  applyAgain: function (e) {
+    let refundId = e.currentTarget.dataset.refundid
+    var item = {}
+      item.orderNumber = this.data.orderNumber;
+      item.actualTotal = this.data.actualTotal;
+      item.transfee = this.data.transfee;
+      item.status = this.data.status; //订单状态
+      item.orderItemDtos = this.data.orderItemDtos;
+      item.orderScore = this.data.orderScore,  // 整单积分
+      item.userAddrDto = this.data.userAddrDto,  // 用户信息
+      //拿到存储在本地的订单项数据
+      wx.setStorageSync("refundItem", item);
+
+    wx.redirectTo({ //通过wx.redirectTo实现跳转(关闭当前页面,跳转到应用内某个页面)
+      url: '/pages/applyRefund/applyRefund?refundId=' + refundId,
+    })
+
+  },
   
 
 

+ 4 - 1
pages/afterSales/afterSales.wxml

@@ -62,9 +62,12 @@
       </view>
 
       <!-- <view class="btn-box" wx:if="{{item.returnMoneySts == 10}}"> -->
-      <view class="btn-box" >
+      <view class="btn-box" wx:if="{{item.returnMoneySts == 10}}">
         <view class="cancel-btn" data-refundSn="{{item.refundSn}}" bindtap="cancelApplication">取消申请</view>
       </view>
+      <!-- <view class="btn-box" wx:if="{{item.returnMoneySts == 40}}">
+        <view class="cancel-btn" data-refundId="{{item.refundId}}" bindtap="applyAgain">再次申请</view>
+      </view> -->
       
     </view>
 

+ 29 - 18
pages/applyRefund/applyRefund.js

@@ -32,13 +32,15 @@ Page({
       {name:'未在约定时间送达'},
     ],
     buyerReason: '', //退款原因
-    total:0
+    total:0,
+    refundId:0,//再次申请售后id
   },
 
   /**
    * 生命周期函数--监听页面加载
    */
   onLoad(options) {
+    let refundId = options.refundId || 0
     var refundItem = wx.getStorageSync("refundItem");
     console.log('拿到缓存里的订单项数据refundItem:',refundItem)
     refundItem.orderItemDtos.forEach(item=>{
@@ -46,6 +48,7 @@ Page({
       item.checked = true
     })
     this.setData({
+      refundId,
       refundItem: refundItem,
       orderNumber: refundItem.orderNumber,
       goodsNum: refundItem.prodCount,
@@ -98,26 +101,34 @@ Page({
           "skuPrice": item.price,
           "orderItemId": item.orderItemId,
         })
-        goodsNum+=num
+        goodsNum+=item.num
       }
     })
-   
+
+    let data = {
+      orderNumber: this.data.orderNumber, //订单编号
+      applyType: this.data.applyType, //退款方式(1:仅退款 2退款退货)
+      isReceiver: this.data.applyType == 1?0:1, //货物状态(1:已收到货 0:未收到货)
+      buyerReason: this.data.reasonList[this.data.buyerReason].name, //退款原因
+      goodsNum: this.data.goodsNum, //退款数量(0或不传值则为全部数量)
+      refundAmount: this.data.refundItem.actualTotal, //退款金额
+      buyerMobile: this.data.refundItem.userAddrDto.mobile, //手机号码(默认当前订单手机号码)
+      buyerDesc: this.data.buyerDesc, //备注说明
+      photoFiles: pics, //凭证图片列表
+      refundType: 1, //退款单类型(1:整单退款,2:单个物品退款)
+      orderRefundSkuList: orderRefundSkuList
+    }
+    if(this.data.refundId){//再次申请
+      data.refundId = this.data.refundId
+       console.log('再次申请');
+    }else{
+       console.log('申请');
+
+    }
     var params = {
-      url: "/p/orderRefund/apply",
+      url:this.data.refundId?"/p/orderRefund/applyAgain": "/p/orderRefund/apply",
       method: "POST",
-      data: {
-        orderNumber: this.data.orderNumber, //订单编号
-        applyType: this.data.applyType, //退款方式(1:仅退款 2退款退货)
-        isReceiver: this.data.applyType == 1?0:1, //货物状态(1:已收到货 0:未收到货)
-        buyerReason: this.data.reasonList[this.data.buyerReason].name, //退款原因
-        goodsNum: this.data.goodsNum, //退款数量(0或不传值则为全部数量)
-        refundAmount: this.data.refundItem.actualTotal, //退款金额
-        buyerMobile: this.data.refundItem.userAddrDto.mobile, //手机号码(默认当前订单手机号码)
-        buyerDesc: this.data.buyerDesc, //备注说明
-        photoFiles: pics, //凭证图片列表
-        refundType: 1, //退款单类型(1:整单退款,2:单个物品退款)
-        orderRefundSkuList: orderRefundSkuList
-      },
+      data,
       callBack: (res) => {
         wx.hideLoading();
         // 去到我的退款订单页面
@@ -278,7 +289,7 @@ Page({
           total+=item.price*item.num
         }
       })
-      
+
       this.setData({
         total
       })

+ 93 - 37
pages/order-detail/order-detail.js

@@ -7,7 +7,16 @@ Page({
    * 页面的初始数据
    */
   data: {
-    
+    statusObject: {
+      0: '待支付',
+      20: '订单已接单',
+      30: '订单待配送',
+      40: '订单配送中',
+      50: '订单取消待审核',
+      60: '订单已取消',
+      70: '订单已送达',
+      80: '订单已完成'
+    },
     dvyType:'',//配送方式
     orderItemDtos: [],
     remarks: "",
@@ -121,6 +130,34 @@ Page({
     http.request(params);
   },
 
+   //删除已完成||已取消的订单
+   delOrderList: function (e) {
+    var ths = this
+    wx.showModal({
+      title: '',
+      content: '确定要删除此订单吗?',
+      confirmColor: "#FF941A",
+      success(res) {
+        if (res.confirm) {
+          var ordernum = e.currentTarget.dataset.ordernum;
+          wx.showLoading();
+          var params = {
+            url: "/p/myOrder/" + ordernum,
+            method: "DELETE",
+            data: {},
+            callBack: function (res) {
+              ths.loadOrderData(ths.data.sts, 1);
+              wx.hideLoading();
+            }
+          }
+          http.request(params);
+        } else if (res.cancel) {
+          console.log('用户点击取消')
+        }
+      }
+    })
+  },
+
     /**
    * 取消订单
    */
@@ -160,10 +197,6 @@ Page({
    * 申请退款
    */
   applyRefund: function(e) {
-    var refundType = e.currentTarget.dataset.refundtype // 退款类型 1整单  2单个物品
-    var status = this.data.status
-    this.loadOrderDetail(this.data.orderNumber)  //请求订单详情数据
-    if (e.currentTarget.dataset.refundtype == 1) { //整单退款
       var item = {}
       item.orderNumber = this.data.orderNumber;
       item.actualTotal = this.data.actualTotal;
@@ -174,41 +207,62 @@ Page({
       item.userAddrDto = this.data.userAddrDto,  // 用户信息
       //拿到存储在本地的订单项数据
       wx.setStorageSync("refundItem", item);
-      // console.log('订单详情页获取到的整单退item:',item)
-    } else if(e.currentTarget.dataset.refundtype == 2) { //单个商品退款
-      this.applyLastProdRefund() //是否最后一个商品执行单个商品退款
-      console.log('isLastProd:',this.data.isLastProd)
-      // 将数据存储到本地
-      var item = e.currentTarget.dataset.item;
-      if(this.data.orderItemDtos.length == 1) {
-        item.addTransfee = true
-      }else {
-        item.addTransfee = false
-      }
-      item.orderNumber = this.data.orderNumber;
-      item.transfee = this.data.transfee;
-      item.status = this.data.status; //订单状态
-      item.isLastProd = this.data.isLastProd?this.data.isLastProd:undefined //是否最后一款商品
-      //拿到存储在本地的订单项数据
-      wx.setStorageSync("refundItem", item);
-      console.log(item)
-      console.log(item.actualTotal)
-    }
-    /**
-     * 判断跳转页面(根据订单是否已发货)
-     */
-    var type = e.currentTarget.dataset.type;
-    
-    // if (status == 2) {   //待发货,直接跳转到申请页,不需要选择退货方式
+ 
       wx.redirectTo({ //通过wx.redirectTo实现跳转(关闭当前页面,跳转到应用内某个页面)
-        url: '/pages/applyRefund/applyRefund?type=' + type + '&refundType=' + refundType,
+        url: '/pages/applyRefund/applyRefund',
       })
-    // } else  {  //已发货,跳转到选择退货方式页
-    //   wx.redirectTo({
-    //     url: '/pages/chooseRefundWay/chooseRefundWay?refundType=' + refundType
-    //   })
-    // }
+ 
   },
+  // applyRefund: function(e) {
+  //   var refundType = e.currentTarget.dataset.refundtype // 退款类型 1整单  2单个物品
+  //   var status = this.data.status
+  //   this.loadOrderDetail(this.data.orderNumber)  //请求订单详情数据
+  //   if (e.currentTarget.dataset.refundtype == 1) { //整单退款
+  //     var item = {}
+  //     item.orderNumber = this.data.orderNumber;
+  //     item.actualTotal = this.data.actualTotal;
+  //     item.transfee = this.data.transfee;
+  //     item.status = this.data.status; //订单状态
+  //     item.orderItemDtos = this.data.orderItemDtos;
+  //     item.orderScore = this.data.orderScore,  // 整单积分
+  //     item.userAddrDto = this.data.userAddrDto,  // 用户信息
+  //     //拿到存储在本地的订单项数据
+  //     wx.setStorageSync("refundItem", item);
+  //     // console.log('订单详情页获取到的整单退item:',item)
+  //   } else if(e.currentTarget.dataset.refundtype == 2) { //单个商品退款
+  //     this.applyLastProdRefund() //是否最后一个商品执行单个商品退款
+  //     console.log('isLastProd:',this.data.isLastProd)
+  //     // 将数据存储到本地
+  //     var item = e.currentTarget.dataset.item;
+  //     if(this.data.orderItemDtos.length == 1) {
+  //       item.addTransfee = true
+  //     }else {
+  //       item.addTransfee = false
+  //     }
+  //     item.orderNumber = this.data.orderNumber;
+  //     item.transfee = this.data.transfee;
+  //     item.status = this.data.status; //订单状态
+  //     item.isLastProd = this.data.isLastProd?this.data.isLastProd:undefined //是否最后一款商品
+  //     //拿到存储在本地的订单项数据
+  //     wx.setStorageSync("refundItem", item);
+  //     console.log(item)
+  //     console.log(item.actualTotal)
+  //   }
+  //   /**
+  //    * 判断跳转页面(根据订单是否已发货)
+  //    */
+  //   var type = e.currentTarget.dataset.type;
+    
+  //   // if (status == 2) {   //待发货,直接跳转到申请页,不需要选择退货方式
+  //     wx.redirectTo({ //通过wx.redirectTo实现跳转(关闭当前页面,跳转到应用内某个页面)
+  //       url: '/pages/applyRefund/applyRefund?type=' + type + '&refundType=' + refundType,
+  //     })
+  //   // } else  {  //已发货,跳转到选择退货方式页
+  //   //   wx.redirectTo({
+  //   //     url: '/pages/chooseRefundWay/chooseRefundWay?refundType=' + refundType
+  //   //   })
+  //   // }
+  // },
 
 
   /**
@@ -270,6 +324,7 @@ Page({
           orderItemDtos: res.orderItemDtos,
           createTime: res.createTime,
           status: res.status,
+          // status: res.status,//海博订单状态
           productTotalAmount: res.total, //所有商品总额
           transfee: res.transfee, //运费
           reduceAmount: res.reduceAmount,
@@ -278,6 +333,7 @@ Page({
           canRefund: res.canRefund,
           canAllRefund: res.canAllRefund,
           orderScore: res.orderScore, // 整单使用积分
+
         });
         
         wx.hideLoading();

+ 15 - 8
pages/order-detail/order-detail.wxml

@@ -3,9 +3,9 @@
   <!-- 地址 -->
   <view class='order-detail'>
     
-    <view class="order-sts">{{['','待支付','待发货','待收货','已完成','已完成','已取消','拼团中'][status]}}</view>
+    <view class="order-sts">{{statusObject[status]}}</view>
 
-    <view class="pay-box" wx:if="{{status == 1}}">
+    <view class="pay-box" wx:if="{{status == 0}}">
     
       <view class="pay-btn-box">
         <view class="cancel-btn" bindtap="onCancelOrder">取消订单</view>
@@ -14,24 +14,31 @@
     </view>
 
     <view class="oprate-box box">
-      <!-- <view class="item">
+      <view class="item" wx:if="{{status == 0}}" bindtap="onCancelOrder">
         <image class="icon" src="../../images/icon/del-icon.png" mode=""/>
         <view class="label">
           删除订单
         </view>
-      </view> -->
-      <button class='item' open-type="contact" wx:if="{{status >= 2&&status <= 5}}">
+      </view>
+      <button class='item' open-type="contact" wx:if="{{status >= 20&&status != 60}}">
         <image class="icon" src="../../images/icon/chat-icon.png" mode=""/>
         <view class="label">
           联系商家
         </view>
      </button>
-      <view class="item" wx:if="{{status == 4}}">
+     <view class="item" wx:if="{{status !=0}}" bind:tap="applyRefund">
+        <image class="icon" src="../../images/icon/apply.png" mode=""/>
+        <view class="label">
+          申请售后
+        </view>
+      </view>
+      <!-- <view class="item" wx:if="{{status != 0}}">
         <image class="icon" src="../../images/icon/buy-icon.png" mode=""/>
         <view class="label">
           再次购买
         </view>
-      </view>
+      </view> -->
+      
     </view>
 
     <view class='delivery-addr box'>
@@ -101,7 +108,7 @@
       </block>
       <view class='prod-foot'>
         <view class='btn'>
-          <button wx:if="{{item.status==1}}" class="button" bindtap="onCancelOrder" data-ordernum="{{item.primaryOrderNo}}" hover-class='none'>取消订单</button>
+          <button wx:if="{{item.status==0}}" class="button" bindtap="onCancelOrder" data-ordernum="{{item.primaryOrderNo}}" hover-class='none'>取消订单</button>
           <!-- <button wx:if="{{item.status==1}}" class="button warn" bindtap="onConfirmReceive" data-ordernum="{{item.primaryOrderNo}}" hover-class='none'>再次购买</button> -->
           <button wx:if="{{item.status==1}}" class="button warn" bindtap="onPayAgain" data-ordernum="{{item.primaryOrderNo}}" hover-class='none'>付款</button>
           <button wx:if="{{item.status==3 || item.status==5}}" class="button" bindtap="toDeliveryPage" data-ordernum="{{item.primaryOrderNo}}" hover-class='none'>查看物流</button>

+ 1 - 1
pages/order-detail/order-detail.wxss

@@ -107,7 +107,7 @@ page {
 .order-detail {
   margin-bottom: 120rpx;
   font-size: 30rpx;
-  padding: 20rpx 24rpx;
+  padding: 20rpx 24rpx 200rpx;
   background: #F9F9F9;
   min-height: 100vh;
   color: #222;

+ 10 - 0
pages/orderList/orderList.js

@@ -7,6 +7,16 @@ Page({
    * 页面的初始数据
    */
   data: {
+    statusObject: {
+      0: '待支付',
+      20: '订单已接单',
+      30: '订单待配送',
+      40: '订单配送中',
+      50: '订单取消待审核',
+      60: '订单已取消',
+      70: '订单已送达',
+      80: '订单已完成'
+    },
     list: [],
     current: 1,
     pages: 0,

+ 16 - 11
pages/orderList/orderList.wxml

@@ -24,7 +24,8 @@
             <view class="shop-name">{{item.shopName}}</view>
           </view>
           <view class='order-state'>
-            <text class="order-sts {{item.status<5?'red':''}}">{{['','待支付','待发货','待收货','待评价','已完成','已取消','拼团中'][item.status]}}</text>
+            <!-- <text class="order-sts {{item.status<5?'red':''}}">{{['','待支付','待发货','待收货','待评价','已完成','已取消','拼团中'][item.status]}}</text> -->
+            <text class="order-sts red {{item.hbOrderStatus ==60?'red':''}}">{{statusObject[item.hbOrderStatus]}}</text>
             <!-- 退款状态 -->
             <view class="red">
               <text wx:if="{{item.returnMoneySts==0}}"></text>
@@ -33,15 +34,19 @@
               <text wx:if="{{item.returnMoneySts==-1}}">(退款关闭)</text>
             </view>
             <!-- /退款状态 -->
-            <view class='clear-btn' wx:if="{{item.status==5 || item.status==6}}">
+            <view class='clear-btn' wx:if="{{item.hbOrderStatus==80 || item.hbOrderStatus==60}}">
               <image src='../../images/icon/clear-his.png' class='clear-list-btn' bindtap='delOrderList' data-ordernum="{{item.orderNumber}}"></image>
             </view>
           </view>
         </view>
         <!-- 订单编号 -->
-        <view class="order-num">
+        <!-- <view class="order-num">
           <text>订单编号:{{item.orderNumber}}</text>
-          <!-- 原订单状态位置 -->
+        </view> -->
+        <view class="delivery-info" wx:if="{{item.hbOrderStatus>0&&item.hbOrderStatus<50}}">
+          <view class="title-box">  <image src='../../images/icon/car.png' class='icon'/>  预计{{item.estimatedTimeStr + ' ' + item.estimatedTime}}前可送达</view>
+          <view class="desc">您的订单预计{{item.estimatedTimeStr + ' ' + item.estimatedTime}}前送达</view>
+          <view class="time">{{item.payTime}}</view>
         </view>
         <!-- 商品列表 -->
         <!-- 一个订单单个商品的显示 -->
@@ -107,16 +112,16 @@
           </view>
         </view>
         <!-- end 商品列表 -->
-        <view class='prod-foot' wx:if="{{item.status == 1 || item.status == 2 || item.status == 3 || item.status==5 || (item.status==5 && item.orderItemDtos[0].commSts==0)}}">
+        <view class='prod-foot' wx:if="{{item.hbOrderStatus == 0 || item.hbOrderStatus == 20 || item.hbOrderStatus == 30 || item.hbOrderStatus==40 || item.hbOrderStatus==80  || (item.status==5 && item.orderItemDtos[0].commSts==0)}}">
           <view class='btn'>
-            <text wx:if="{{item.status == 2 }}" class="button" bindtap="onRefundOrder" data-ordernum="{{item.orderNumber}}" hover-class='none'>取消订单</text>
-            <text wx:if="{{item.status==1}}" class="button" bindtap="onCancelOrder" data-ordernum="{{item.orderNumber}}" hover-class='none'>取消订单</text>
+            <text wx:if="{{item.hbOrderStatus == 20 }}" class="button" bindtap="onRefundOrder" data-ordernum="{{item.orderNumber}}" hover-class='none'>取消订单</text>
+            <text wx:if="{{item.hbOrderStatus==0}}" class="button" bindtap="onCancelOrder" data-ordernum="{{item.orderNumber}}" hover-class='none'>取消订单</text>
             <!-- <text class="button warn" bindtap="" data-ordernum="{{item.orderNumber}}" hover-class='none'>再次购买</text> -->
-            <text wx:if="{{item.status==1}}" class="button warn" data-ordertype="{{item.orderType}}" bindtap="onPayAgain" data-ordernum="{{item.orderNumber}}" hover-class='none'>付款</text>
-            <text wx:if="{{item.status==3 || item.status==5}}" class="button" bindtap="toDeliveryPage" data-lat="{{item.latitude}}" data-lon="{{item.longitude}}" data-ordernum="{{item.orderNumber}}" hover-class='none'>查看物流</text>
-            <text wx:if="{{item.status==3}}" class="button warn" bindtap="onConfirmReceive" data-ordernum="{{item.orderNumber}}" hover-class='none'>确认收货</text>
+            <text wx:if="{{item.hbOrderStatus==0}}" class="button warn" data-ordertype="{{item.orderType}}" bindtap="onPayAgain" data-ordernum="{{item.orderNumber}}" hover-class='none'>付款</text>
+            <!-- <text wx:if="{{item.hbOrderStatus==20 ||item.hbOrderStatus==30 ||item.hbOrderStatus==40 || item.hbOrderStatus==80}}" class="button" bindtap="toDeliveryPage" data-lat="{{item.latitude}}" data-lon="{{item.longitude}}" data-ordernum="{{item.orderNumber}}" hover-class='none'>查看物流</text> -->
+            <text wx:if="{{item.hbOrderStatus==3}}" class="button warn" bindtap="onConfirmReceive" data-ordernum="{{item.orderNumber}}" hover-class='none'>确认收货</text>
             <!-- 评价status==5 -->
-            <text wx:if="{{item.status==5 && item.orderItemDtos[0].commSts==0}}" class="button warn" bindtap="onComment" data-info="{{item.orderItemDtos}}" data-ordernum="{{item.orderNumber}}" hover-class='none'>评价</text>
+            <text wx:if="{{item.hbOrderStatus==80 && item.orderItemDtos[0].commSts==0}}" class="button warn" bindtap="onComment" data-info="{{item.orderItemDtos}}" data-ordernum="{{item.orderNumber}}" hover-class='none'>评价</text>
           </view>
         </view>
       </view>

+ 30 - 0
pages/orderList/orderList.wxss

@@ -61,6 +61,36 @@ padding: 0 24rpx;
   align-items: center;
 }
 
+.delivery-info{
+  background: #F9F9F9;
+  border-radius: 16rpx 16rpx 16rpx 16rpx;
+  margin-top: 20rpx;
+  padding: 24rpx;
+  margin-bottom: 20rpx;
+
+}
+.delivery-info .title-box{
+  display: flex;
+  font-weight: bold;
+  font-size: 28rpx;
+  color: #222222;
+}
+.delivery-info .title-box .icon{
+  width: 36rpx;
+  height: 36rpx;
+  margin-right: 20rpx;
+}
+.delivery-info .desc{
+  font-size: 24rpx;
+  color: #AAAAAA;
+  margin-top: 14rpx;
+}
+.delivery-info .time{
+  font-size: 24rpx;
+  color: #AAAAAA;
+  margin-top: 14rpx;
+}
+
 .shop-icon {
   width: 36rpx;
   height: 36rpx;

+ 4 - 4
utils/config.js

@@ -2,13 +2,13 @@
 // var domain = "https://shop-h5.zswllife.cn/api"; //统一接口域名,正式环境 
 // var wsDomain = "wss://shop-h5.zswllife.cn/api"; //统一接口域名,正式环境 
 
-// var domain = "https://bus.qlapp.cn"; //统一接口域名,测试环境 
-// var wsDomain = "wss://shop-h5.dev.zswllife.cn/api"; //统一接口域名,测试环境 
+var domain = "https://bus.qlapp.cn"; //统一接口域名,测试环境 
+var wsDomain = "wss://shop-h5.dev.zswllife.cn/api"; //统一接口域名,测试环境 
 // var domain = "https://shop.haimamart.com/api"; //统一接口域名,正式环境 
 // var wsDomain = "wss://shop.haimamart.com/api"; //统一接口域名,正式环境 
 
-var domain = "http://192.168.1.205:8112"; //统一接口域名,测试环境
-var wsDomain = "ws://192.168.1.120:8112"; //统一接口域名,测试环境
+// var domain = "http://192.168.1.120:8086"; //统一接口域名,测试环境
+// var wsDomain = "ws://192.168.1.120:8086"; //统一接口域名,测试环境
 
 var picDomain = "http://img-test.gz-yami.com/";//图片域名