Browse Source

换电脑前提交

wenjie 1 month ago
parent
commit
e103c1fae7
100 changed files with 206 additions and 24 deletions
  1. 24 0
      app.js
  2. 7 7
      app.json
  3. 30 7
      components/tabbar/tabbar.js
  4. BIN
      images/icon/activity-bg.png
  5. BIN
      images/icon/car-btn.png
  6. BIN
      images/icon/car.png
  7. BIN
      images/icon/chat-icon.png
  8. BIN
      images/icon/chat.png
  9. BIN
      images/icon/clear-his.png
  10. BIN
      images/icon/clear-his12.png
  11. BIN
      images/icon/close-white.png
  12. BIN
      images/icon/close.png
  13. BIN
      images/icon/close2.png
  14. BIN
      images/icon/comm-result.png
  15. BIN
      images/icon/copy.png
  16. BIN
      images/icon/coupon-banner.png
  17. BIN
      images/icon/coupon-bg.png
  18. BIN
      images/icon/coupon-ot.png
  19. BIN
      images/icon/coupon-received.png
  20. BIN
      images/icon/coupon-robbed.png
  21. BIN
      images/icon/coupon-used.png
  22. BIN
      images/icon/erweima.png
  23. BIN
      images/icon/flash-banner.png
  24. BIN
      images/icon/flash-bg.png
  25. BIN
      images/icon/getCoupon.png
  26. BIN
      images/icon/gift.png
  27. BIN
      images/icon/good-icon.png
  28. BIN
      images/icon/goumaihuiyuan@2x.png
  29. BIN
      images/icon/grade.png
  30. BIN
      images/icon/group-banner.png
  31. BIN
      images/icon/group-bg.png
  32. BIN
      images/icon/head01.png
  33. BIN
      images/icon/head04.png
  34. BIN
      images/icon/hot-icon.png
  35. BIN
      images/icon/hotsell03.png
  36. BIN
      images/icon/integral-icon.png
  37. BIN
      images/icon/integral.png
  38. BIN
      images/icon/jifen.png
  39. BIN
      images/icon/logo.png
  40. BIN
      images/icon/menu-01.png
  41. BIN
      images/icon/menu-02.png
  42. BIN
      images/icon/menu-03.png
  43. BIN
      images/icon/menu-04.png
  44. BIN
      images/icon/miaosha.png
  45. BIN
      images/icon/more.png
  46. BIN
      images/icon/myCoupon.png
  47. BIN
      images/icon/new-icon.png
  48. BIN
      images/icon/new.png
  49. BIN
      images/icon/none.png
  50. BIN
      images/icon/play-red.png
  51. BIN
      images/icon/plus-sign.png
  52. BIN
      images/icon/position.png
  53. BIN
      images/icon/price_bg.png
  54. BIN
      images/icon/prod-col-red.png
  55. BIN
      images/icon/prod-col.png
  56. BIN
      images/icon/redPack.png
  57. BIN
      images/icon/refund.png
  58. BIN
      images/icon/refunds.png
  59. BIN
      images/icon/revise.png
  60. BIN
      images/icon/rmb-icon.png
  61. BIN
      images/icon/search-col.png
  62. BIN
      images/icon/search-col2.png
  63. BIN
      images/icon/search.png
  64. BIN
      images/icon/seckill.png
  65. BIN
      images/icon/sender-icon.png
  66. BIN
      images/icon/sender.png
  67. BIN
      images/icon/setting.png
  68. BIN
      images/icon/share-prod.png
  69. BIN
      images/icon/shop-car.png
  70. BIN
      images/icon/shop-customer-service.png
  71. BIN
      images/icon/shop-icon.png
  72. BIN
      images/icon/shop.png
  73. BIN
      images/icon/shopPosition.png
  74. BIN
      images/icon/sort1.png
  75. BIN
      images/icon/sort2.png
  76. BIN
      images/icon/spell-group-order.png
  77. BIN
      images/icon/star-empty.png
  78. BIN
      images/icon/star-red.png
  79. BIN
      images/icon/thumb (1).png
  80. BIN
      images/icon/thumb.png
  81. BIN
      images/icon/ticket.png
  82. BIN
      images/icon/toComment.png
  83. BIN
      images/icon/toDelivery.png
  84. BIN
      images/icon/toPay.png
  85. BIN
      images/icon/toTake.png
  86. BIN
      images/icon/top-icon.png
  87. BIN
      images/icon/top1.png
  88. BIN
      images/icon/tuiguang01.png
  89. BIN
      images/icon/tuiguang02.png
  90. BIN
      images/icon/tuiguang03.png
  91. BIN
      images/icon/up-arrow.png
  92. BIN
      images/icon/user-bg.png
  93. BIN
      images/icon/user-icon.png
  94. BIN
      images/icon/warn.png
  95. BIN
      images/icon/weixin.png
  96. BIN
      images/icon/white-arr.png
  97. BIN
      images/icon/write.png
  98. 83 1
      pages/DetailsOfRefund/DetailsOfRefund.js
  99. 50 8
      pages/DetailsOfRefund/DetailsOfRefund.wxml
  100. 12 1
      pages/DetailsOfRefund/DetailsOfRefund.wxss

+ 24 - 0
app.js

@@ -2,6 +2,7 @@
 var http = require("utils/http.js");
 App({
   onLaunch: function () {
+    this.eventPool = {}; // 事件池:key=事件名,value=回调数组
     http.getToken();
     //自定义导航栏 获取设备顶部窗口的高度(不同设备窗口高度不一样,根据这个来设置自定义导航栏的高度)
     const windowInfo = wx.getWindowInfo()
@@ -18,5 +19,28 @@ App({
     totalCartCount: 0,
     statusBarHeight: 0,
     navBarHeight: 0,
+  },
+    // 注册事件:只避免“同一实例重复注册同一回调”
+  on(eventName, callback) {
+    if (!this.eventPool[eventName]) this.eventPool[eventName] = [];
+    // 只判断当前回调是否已存在,不影响其他实例的回调
+    const isExist = this.eventPool[eventName].some(cb => cb === callback);
+    if (!isExist) {
+      this.eventPool[eventName].push(callback);
+    }
+  },
+
+  // 触发事件:所有注册的回调都会执行(但同一时间只有1个实例活跃)
+  emit(eventName, data) {
+    const callbacks = this.eventPool[eventName] || [];
+    // 调试用:查看当前注册的回调数(同一时间通常为1,切换页面时可能短暂为2)
+    console.log(`事件${eventName}当前回调数:`, callbacks.length);
+    callbacks.forEach(callback => callback(data));
+  },
+
+  // 精准移除:只删当前实例的回调,不影响其他实例
+  off(eventName, callback) {
+    const callbacks = this.eventPool[eventName] || [];
+    this.eventPool[eventName] = callbacks.filter(cb => cb !== callback);
   }
 })

+ 7 - 7
app.json

@@ -19,7 +19,6 @@
     "pages/prod/prod",
     "pages/login/login",
     "pages/couponCenter/couponCenter",
-    "pages/prod-classify/prod-classify",
     "pages/recent-news/recent-news",
     "pages/news-detail/news-detail",
     "pages/dis-center/dis-center",
@@ -27,14 +26,11 @@
     "pages/income-details/income-details",
     "pages/take-notes/take-notes",
     "pages/draw-rule/draw-rule",
-    "pages/promotion-order/promotion-order",
-    "pages/promotionProd/promotionProd",
     "pages/applyDist/applyDist",
     "pages/applyDistCon/applyDistCon",
     "pages/InvitationCards/InvitationCards",
     "pages/withdrawal/withdrawal",
     "pages/claimer/claimer",
-    "pages/spellGroupDetails/spellGroupDetails",
     "pages/confirmOrder/confirmOrder",
     "pages/snapUpList/snapUpList",
     "pages/snapUpDetail/snapUpDetail",
@@ -45,7 +41,6 @@
     "pages/DetailsOfRefund/DetailsOfRefund",
     "pages/chooseRefundWay/chooseRefundWay",
     "pages/writeReturnLogistics/writeReturnLogistics",
-    "pages/spellMembersDetails/spellMembersDetails",
     "pages/groupConfirmOrder/groupConfirmOrder",
     "pages/shopCollect/shopCollect",
     "pages/openAShop/openAShop",
@@ -58,9 +53,7 @@
     "pages/specialDiscount/specialDiscount",
     "pages/shopCategory/shopCategory",
     "pages/sub-category/sub-category",
-    "pages/aBulkList/aBulkList",
     "pages/alterShopPassword/alterShopPassword",
-    "pages/salesmanLevel/salesmanLevel",
     "pages/accountLogin/accountLogin",
     "components/IntegralGoodsList/IntegralGoodsList",
     "pages/register/register",
@@ -93,6 +86,12 @@
       ]
     }
   ],
+  "plugins": {
+    "logisticsPlugin": {
+      "version": "2.3.0",
+      "provider": "wx9ad912bf20548d92"
+    }
+  },
   "window": {
     "backgroundTextStyle": "light",
     "navigationBarBackgroundColor": "#006CE8",
@@ -156,6 +155,7 @@
     "van-steps": "@vant/weapp/steps/index",
     "van-empty": "@vant/weapp/empty/index",
     "van-toast": "@vant/weapp/toast/index",
+    "van-count-down": "@vant/weapp/count-down/index",
     "navbar": "/components/topNavtar/topNavtar",
     "tabbar": "/components/tabbar/tabbar",
     "van-loading": "@vant/weapp/loading/index",

+ 30 - 7
components/tabbar/tabbar.js

@@ -1,4 +1,5 @@
 // components/tabbar/tabbar.js
+const app = getApp();
 Component({
   options: {
     styleIsolation: 'apply-shared' // 页面样式影响组件,组件样式不影响页面
@@ -28,6 +29,9 @@ Component({
       console.log(1111111,url);
       wx.switchTab({
         url,
+        complete(e){
+          console.log(1111111,url,e);
+        }
       })
     },
     /**
@@ -41,20 +45,39 @@ Component({
   },
   pageLifetimes: {
     show: function() {
-      // 页面被展示
-      var app = getApp();
-      this.setData({
-        num:app.globalData.totalCartCount
-      })
-      
+      const that = this;
+      // 2. 从本地取初始数量
+      const initNum = app.globalData.totalCartCount || 0;
+      that.setData({ num: initNum });
+  
+      // 3. 注册回调(用箭头函数,确保引用唯一,不会每次创建新函数)
+      this.updateCartCallback = (newNum) => {
+          console.log('updateCartCallback');
+  
+        that.setData({ num: newNum });
+        app.globalData.totalCartCount = newNum;
+      };
+      app.on('updateCartNum', this.updateCartCallback);
     },
     hide: function() {
-      // 页面被隐藏
+       // 只移除当前实例的回调,不影响其他页面的 TabBar 实例
+       if (this.updateCartCallback) {
+        app.off('updateCartNum', this.updateCartCallback);
+      }
     },
     resize: function(size) {
       // 页面尺寸变化
     }
   },
+  attached() {
+  
+  },
+   // 组件卸载时(极端情况兜底)
+   detached() {
+    if (this.updateCartCallback) {
+      app.off('updateCartNum', this.updateCartCallback);
+    }
+  },
 
   /**
    * 生命周期函数--监听页面加载

BIN
images/icon/activity-bg.png


BIN
images/icon/car-btn.png


BIN
images/icon/car.png


BIN
images/icon/chat-icon.png


BIN
images/icon/chat.png


BIN
images/icon/clear-his.png


BIN
images/icon/clear-his12.png


BIN
images/icon/close-white.png


BIN
images/icon/close.png


BIN
images/icon/close2.png


BIN
images/icon/comm-result.png


BIN
images/icon/copy.png


BIN
images/icon/coupon-banner.png


BIN
images/icon/coupon-bg.png


BIN
images/icon/coupon-ot.png


BIN
images/icon/coupon-received.png


BIN
images/icon/coupon-robbed.png


BIN
images/icon/coupon-used.png


BIN
images/icon/erweima.png


BIN
images/icon/flash-banner.png


BIN
images/icon/flash-bg.png


BIN
images/icon/getCoupon.png


BIN
images/icon/gift.png


BIN
images/icon/good-icon.png


BIN
images/icon/goumaihuiyuan@2x.png


BIN
images/icon/grade.png


BIN
images/icon/group-banner.png


BIN
images/icon/group-bg.png


BIN
images/icon/head01.png


BIN
images/icon/head04.png


BIN
images/icon/hot-icon.png


BIN
images/icon/hotsell03.png


BIN
images/icon/integral-icon.png


BIN
images/icon/integral.png


BIN
images/icon/jifen.png


BIN
images/icon/logo.png


BIN
images/icon/menu-01.png


BIN
images/icon/menu-02.png


BIN
images/icon/menu-03.png


BIN
images/icon/menu-04.png


BIN
images/icon/miaosha.png


BIN
images/icon/more.png


BIN
images/icon/myCoupon.png


BIN
images/icon/new-icon.png


BIN
images/icon/new.png


BIN
images/icon/none.png


BIN
images/icon/play-red.png


BIN
images/icon/plus-sign.png


BIN
images/icon/position.png


BIN
images/icon/price_bg.png


BIN
images/icon/prod-col-red.png


BIN
images/icon/prod-col.png


BIN
images/icon/redPack.png


BIN
images/icon/refund.png


BIN
images/icon/refunds.png


BIN
images/icon/revise.png


BIN
images/icon/rmb-icon.png


BIN
images/icon/search-col.png


BIN
images/icon/search-col2.png


BIN
images/icon/search.png


BIN
images/icon/seckill.png


BIN
images/icon/sender-icon.png


BIN
images/icon/sender.png


BIN
images/icon/setting.png


BIN
images/icon/share-prod.png


BIN
images/icon/shop-car.png


BIN
images/icon/shop-customer-service.png


BIN
images/icon/shop-icon.png


BIN
images/icon/shop.png


BIN
images/icon/shopPosition.png


BIN
images/icon/sort1.png


BIN
images/icon/sort2.png


BIN
images/icon/spell-group-order.png


BIN
images/icon/star-empty.png


BIN
images/icon/star-red.png


BIN
images/icon/thumb (1).png


BIN
images/icon/thumb.png


BIN
images/icon/ticket.png


BIN
images/icon/toComment.png


BIN
images/icon/toDelivery.png


BIN
images/icon/toPay.png


BIN
images/icon/toTake.png


BIN
images/icon/top-icon.png


BIN
images/icon/top1.png


BIN
images/icon/tuiguang01.png


BIN
images/icon/tuiguang02.png


BIN
images/icon/tuiguang03.png


BIN
images/icon/up-arrow.png


BIN
images/icon/user-bg.png


BIN
images/icon/user-icon.png


BIN
images/icon/warn.png


BIN
images/icon/weixin.png


BIN
images/icon/white-arr.png


BIN
images/icon/write.png


+ 83 - 1
pages/DetailsOfRefund/DetailsOfRefund.js

@@ -56,6 +56,7 @@ Page({
     selectTimeshow: false,
     time: '',//取件时间
     userAddr: '',//取件地址
+    shopInfo:null,
     sendInfo: {},
     currentSelectedIndex: -1, // 初始没有选中项,索引设为 -1
     cancelPay: false,
@@ -114,6 +115,62 @@ Page({
     //获取退款申请详情
     this.getRefundDetail()
 
+  },
+  // 配送退货提交
+  submit(e){
+    console.log(e);
+    if(!this.data.time){
+      return wx.showToast({
+        title:'请选择时间',
+        icon:'none'
+      })
+    }else if(!e.currentTarget.dataset.info){
+      return wx.showToast({
+        title:'请选择收件地址',
+        icon:'none'
+      })
+    }
+    let that = this
+    var params = {
+      url: "/p/appointment",
+      method: "POST",
+      data: {
+        appointmentTime:that.data.time,
+        deliveryAddress:e.currentTarget.dataset.info.address+e.currentTarget.dataset.info.addressName,
+        customerName:e.currentTarget.dataset.info.receiver,
+        refundNumber:that.data.refundSn,
+        phoneNumber:e.currentTarget.dataset.info.mobile,
+        refundMethod:1,
+      },
+      callBack: (res)=> {
+         //获取退款申请详情
+         that.getRefundDetail()
+      }
+    }
+    http.request(params);
+  },
+  // 获取配送退货填写内容
+  getRefundWriteInfo(){
+    let that = this
+    var params = {
+      url: "/p/appointment/"+this.data.refundSn,
+      method: "GET",
+      data: {
+      },
+      callBack: (res)=> {
+        let userAddr = {}
+        userAddr.addrDetail = ''
+        userAddr.addressName = res.data.deliveryAddress
+        userAddr.receiver =  res.data.customerName
+        userAddr.mobile =  res.data.phoneNumber
+        that.setData({
+          time:res.data.appointmentTime,
+          userAddr
+        })
+        console.log(that.data.time);
+      }
+    }
+    http.request(params);
   },
    /**
    * 获取退款申请详情
@@ -141,6 +198,13 @@ Page({
         if(res.refundDelivery.imgs){
           refundPhotoFiles = res.refundDelivery.imgs.split(',')
         }
+        if(res.returnMoneySts == 65&&res.applyType == 2&&dvyType==1){//快递寄回
+          ths.getShopAddress(res.refundDelivery.shopId)
+        }else if(res.returnMoneySts == 65&&res.applyType == 2&&res.dvyType==3&&res.isReturnLogistics){
+          ths.getRefundWriteInfo()
+        }
+        ths.getRefundWriteInfo()
+
         ths.setData({
           applyTime: res.applyTime, //申请时间
           applyType: res.applyType, //申请类型:1,仅退款,2退款退货
@@ -173,7 +237,24 @@ Page({
           sendPay:res.refundDelivery.deyNu //物流编号,判断是否提交成功
         })
         wx.hideLoading();
-        ths.get_countDown()
+        // ths.get_countDown()
+      }
+    };
+    http.request(params);
+  },
+
+  // 获取退货地址
+  getShopAddress(shopId){
+    var ths = this;
+    var params = {
+      url: "/p/refundAddr/info/"+shopId,
+      method: "GET",
+      callBack: res => {
+        if(res.code == 200){
+          ths.setData({
+            shopInfo:res.data
+          })
+        }
       }
     };
     http.request(params);
@@ -328,6 +409,7 @@ Page({
       url: `/pages/writeReturnLogistics/writeReturnLogistics?refundSn=${refundSn}&shopId=${this.data.refundDelivery.shopId}&type=${type}`,
     })
   },
+
   
 
   /**

+ 50 - 8
pages/DetailsOfRefund/DetailsOfRefund.wxml

@@ -14,6 +14,7 @@
     </view>
   </view>
 
+  <!-- <view class="write-info box" > -->
   <view class="write-info box" wx:if="{{returnMoneySts == 65&&applyType == 2&&dvyType==3&&!isReturnLogistics}}">
     <view class="sub-title">配送信息</view>
     <view class="form-box">
@@ -53,10 +54,49 @@
     <view class="notice">无需支付配送费</view>
     <view class="desc">1.因个人原因退货,需客户承担商品返还商家的运费</view>
     <view class="desc">2.请确保商品不影响二次销售,否则商家会拒绝收货</view>
-    <view class="btn">提交</view>
+    <view class="btn" data-info="{{userAddr}}" bind:tap="submit">提交</view>
   </view>
 
-  <!-- <view class="write-info-box box" wx:if="{{applyType == 2&&!isReturnLogistics}}"> -->
+  <!-- <view class="write-info box" wx:if="{{isReturnLogistics}}"> -->
+  <view class="write-info box" wx:if="{{returnMoneySts == 65&&applyType == 2&&dvyType==3&&isReturnLogistics}}">
+    <view class="sub-title">配送信息</view>
+    <view class="form-box">
+      <view class="form-item">
+        <view class="label">
+          <view class="icon">*</view>
+          取件时间
+        </view>
+        <view class="value {{time?'black':''}}" data-type="time">
+          {{time||'请选择时间'}}
+        </view>
+      </view>
+      <view class="form-item">
+        <view class="label">
+          <view class="icon">*</view>
+          取件地址
+        </view>
+        <view class="value-box">
+          <view class="value {{userAddr?'black':''}}" data-type="address">
+            {{userAddr?userAddr.addressName+userAddr.addrDetail:'请选择取件地址'}}
+          </view>
+          <view class="value {{userAddr?'black':''}}" wx:if="{{userAddr}}">
+            {{userAddr.receiver + ' ' +userAddr.mobile}}  
+          </view>
+        </view>
+      </view>
+      <view class="form-item">
+        <view class="label">
+          <view class="icon">*</view>
+          退货方式
+        </view>
+        <view class="value black">
+          上门取件 
+        </view>
+      </view>
+    </view>
+  </view>
+
+  <!-- <view class="write-info-box box" wx:if="{{!isReturnLogistics}}"> -->
   <view class="write-info-box box" wx:if="{{returnMoneySts == 65&&applyType == 2&&dvyType==1&&!isReturnLogistics}}">
     <view class="sub-title">退货方式</view>
     <view class="btn-box">
@@ -69,15 +109,15 @@
     <view class="shop-info">
       <view class="sub-title">退货地址</view>
       <view class="name-box">
-        <view class="name">杨锦新 </view>
-        <view class="tel">18900000000</view>
+        <view class="name">{{shopInfo.receiverName}} </view>
+        <view class="tel">{{shopInfo.receiverMobile}}</view>
       </view>
-      <view class="address">贵州省-贵阳市-观山湖区富力中心A座3401</view>
+      <view class="address">{{shopInfo.province}}-{{shopInfo.city}}-{{shopInfo.area}}{{shopInfo.addr}}</view>
     </view>
   
   </view>
   <!-- 已填写 -->
-  <!-- <view class="write-info-box box" wx:if="{{applyType == 2&&isReturnLogistics}}"> -->
+  <!-- <view class="write-info-box box" wx:if="{{isReturnLogistics}}"> -->
   <view class="write-info-box box" wx:if="{{returnMoneySts == 65&&applyType == 2&&dvyType==1&&isReturnLogistics}}">
     <view class="title-box">
       <view class="sub-title">退货方式</view>
@@ -148,7 +188,7 @@
             <view class="price">单价:¥{{item.price}}</view>
           </view>
           <view class="price-box">
-            <view class="price">¥{{((item.productCount*100)*(item.price*100))/10000}}</view>
+            <view class="price">¥{{calc.preciseMultiply(item.productCount,item.price)}}</view>
             <view class="num">x{{item.productCount}}</view>
           </view>
         </view>
@@ -215,4 +255,6 @@
     </view>
   </van-popup>
 
-</view>
+</view>
+
+<wxs module="calc" src="../../wxs/calc.wxs" />

+ 12 - 1
pages/DetailsOfRefund/DetailsOfRefund.wxss

@@ -63,6 +63,7 @@
   display: flex;
   font-size: 28rpx;
   color: #222222;
+  width: 150rpx;
 }
 .DetailsOfRefund .write-info .form-box .form-item .label .icon{
   color: #FF4D3A;
@@ -73,6 +74,14 @@
   font-size: 28rpx;
   color: #AAAAAA;
 }
+.DetailsOfRefund .form-box .form-item .value-box{
+  flex: 1;
+  padding-left: 40rpx;
+  text-align: right;
+  display: flex;
+  flex-direction: column;
+  align-items: flex-end;
+}
 .DetailsOfRefund .write-info .form-box .form-item .value.black{
   color: #222222;
 }
@@ -448,4 +457,6 @@ popup-box {
   font-weight: bold;
   font-size: 28rpx;
   color: #222222;
-}
+}
+
+

Some files were not shown because too many files changed in this diff