huanggang 7 jaren geleden
bovenliggende
commit
76c63d7ffb

+ 2 - 1
app.json

@@ -13,7 +13,8 @@
     "pages/confirmOrder/confirmOrder",
     "pages/order_tabs/orderTabs",
     "pages/address/address",
-    "pages/addAddress/addAddress"
+    "pages/addAddress/addAddress",
+    "pages/orderPaySn/orderPaySn"
   ],
   "window": {
     "backgroundTextStyle": "dark",

+ 1 - 1
pages/components/blocks/tabs/tabs.json

@@ -1,6 +1,6 @@
 {
   "component": true,
   "usingComponents": {
-    "searchBox": "..//search/search"
+
   }
 }

+ 0 - 1
pages/components/blocks/tabs/tabs.wxml

@@ -1,6 +1,5 @@
 
 <view>
-  <searchBox></searchBox>
   <scroll-view class="scroll-view_H" scroll-x="true" style="width: 100%">
     <view 
       wx:for="{{tabs}}" 

+ 1 - 0
pages/index/index.js

@@ -17,6 +17,7 @@ Page({
       act: 'index',
       op: 'tabs'
     }, function (res) {
+      console.log(res);
       if (res.code == 200) {
         self.getDatas(res.datas.tabs[0].special_id);
         self.setData({

+ 2 - 1
pages/index/index.json

@@ -1,6 +1,7 @@
 {
   "usingComponents": {
     "tabs" : "../components/blocks/tabs/tabs",
-    "blockList" : "../components/blockList/blockList"   
+    "blockList" : "../components/blockList/blockList",
+    "searchBox": "../components/blocks/search/search"   
   }
 }

+ 1 - 0
pages/index/index.wxml

@@ -1,5 +1,6 @@
 <!--index.wxml-->
 <view>
+  <searchBox></searchBox>
   <tabs tabs="{{tabs}}" bind:myevent="onMyEvent"></tabs>
   <view class='clear_fixed'></view> 
   <blockList summery="{{summery}}" special_datas="{{special_datas}}"> </blockList> 

+ 1 - 1
pages/index/index.wxss

@@ -20,5 +20,5 @@
   margin-top: 200px;
 }
 .clear_fixed {
-  height: 152rpx;
+  height: 139rpx;
 }

+ 141 - 0
pages/orderPaySn/orderPaySn.js

@@ -0,0 +1,141 @@
+const getReq = require('./../../config.js').getReq
+let appInstance = getApp()
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    goods_id: '',
+    ifcart: '',
+    num: '',
+    datas: {},
+    goods_list: [],
+    firstLoad: true,
+    defaultAddress: null
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    let goods_id = options.goods_id || ''
+    let iscart = options.iscart || ''
+    let num = options.num || ''
+    let cart_id = options.cart_id || ''
+    this.setData({
+      goods_id,
+      ifcart: iscart,
+      num
+    })
+    this.getDatas(goods_id, iscart, num, cart_id)
+  },
+  getDatas(goods_id, ifcart, num, cart_id) {
+    wx.showLoading({
+      title: '加载中',
+    })
+    var self = this
+    let goods_datas = '';
+    if (ifcart == 0) {
+      goods_datas = goods_id + '|' + num;
+    }
+    else {
+      goods_datas = cart_id;
+    }
+    getReq({
+      act: 'member_buy',
+      op: 'step_first',
+      curpage: 1,
+      cart_id: goods_datas,
+      ifcart,
+    }, function (res) {
+      wx.hideLoading()
+      if (res.code == 200) {
+        let datas = res.datas
+        let goods_list = self.getGoodsList(datas.summary, datas.goods_list)
+        self.setData({
+          datas,
+          goods_list,
+          firstLoad: false,
+          defaultAddress: datas.address
+        })
+
+      }
+      else {
+        wx.showToast({
+          icon: 'none',
+          title: res.message,
+          duration: 2000
+        })
+      }
+    })
+  },
+  getGoodsList(summary, goods_list) {
+    let newGoodsList = []
+    goods_list.map((item, index) => {
+      summary.filter((list, key) => {
+        if (item.goods_id == list.goods_id) {
+          let goods_item = list
+          goods_item.goods_num = item.goods_num
+          newGoodsList.push(goods_item)
+          return true
+        }
+      })
+    })
+    return newGoodsList
+
+  },
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function () {
+    if (!this.data.firstLoad) {
+      let defaultAddress = appInstance.globalData.defaultAddress
+      this.setData({
+        defaultAddress
+      })
+    }
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function () {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function () {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage: function () {
+
+  }
+})

+ 1 - 0
pages/orderPaySn/orderPaySn.json

@@ -0,0 +1 @@
+{}

+ 76 - 0
pages/orderPaySn/orderPaySn.wxml

@@ -0,0 +1,76 @@
+<!--pages/confirmOrder/confirmOrder.wxml-->
+<view class="check_order">
+  <navigator url="/pages/address/address">
+    <view class="address_wrap" wx:if="{{defaultAddress}}">
+      <image class="adress-icon" src="../../image/address-icon.jpeg"></image>
+      <view>
+        <view>
+          <text>{{defaultAddress.true_name}}</text>
+          <text class="ml8">{{defaultAddress.mob_phone}}</text>
+        </view>
+        <view class="mt10">{{defaultAddress.area_info}}{{defaultAddress.address}}</view>
+      </view>
+    </view>
+    <view wx:else class="address_none">
+      <icon type="warn" size="23" />
+      <text decode="{{true}}">&nbsp;&nbsp;请填写收货人信息</text>
+    </view>
+  </navigator>
+
+
+  <view class="mt20">
+    <view class="payment_method payment-1px-b">
+      <view>红包支付</view>
+      <icon type="success" size="20" color="red" />
+    </view>
+    <view class="payment_method">
+      <view>微信支付</view>
+      <icon type="success" size="20" color="red" />
+    </view>
+  </view>
+
+  <view class="mt20 bacfff" wx:for="{{goods_list}}" wx:for-index="idx" wx:key="idx">
+    <view class="order_goods_content vux-1px-b">
+      <image class="order_content_img" src="{{item.goods_image_url}}"></image>
+      <view class="order_content_middle">
+        <view>{{item.goods_mobile_name}}</view>
+        <view class="order_letter_pro">{{item.goods_spec}}</view>
+        <view>
+          <text class="f30 coleb4e4f">¥{{item.act_type == 0?item.bonus_price:item.goods_promotion_price}}</text>
+          <text decode="{{true}}" class="cola7">&nbsp;&nbsp;天猫价{{item.goods_price}}</text>
+        </view>
+      </view>
+      <view class="order_content_nums">x{{item.goods_num}}</view>
+    </view>
+  </view>
+  <view class="packet_price-tips bacfff" wx:if="{{datas.payinfo.gap_desc}}">{{datas.payinfo.gap_desc}}~</view>
+  <view class="order_entry mt20">
+    <view class="expenses_info">
+      <view>商品总价</view>
+      <view class="coleb4e4f">¥ {{datas.payinfo['goods_amount']}}</view>
+    </view>
+    <view class="expenses_info" wx:for="{{datas.payinfo['bonus_rates']}}" wx:for-index="idx" wx:key="idx">
+      <view>
+        <text class="bonus_bg"><text class="bonus_rate">{{item.rate}}%</text></text>
+        <text>红包抵扣</text>
+      </view>
+      <view class="col09BB07">- ¥ {{item.total}}</view>
+    </view>
+    <view class="expenses_info">
+      <view>运费</view>
+      <view class="coleb4e4f">+ ¥ {{datas.payinfo['freight']}}</view>
+    </view>
+  </view>
+
+  <view class="order_pay">
+    <view class="default_address" wx:if="{{datas.address}}">配送至:{{datas.address.area_info}}{{datas.address.address}}</view>
+    <view class="just_buy">
+      <view class="just_buy_left">
+        <text>应付: </text>
+        <text class="coleb4e4f">¥ {{datas.payinfo['pay_cash_pred']}}</text>
+      </view>
+      <view class="just_buy_right">去付款</view>
+    </view>
+  </view>
+
+</view>

+ 1 - 0
pages/orderPaySn/orderPaySn.wxss

@@ -0,0 +1 @@
+@import "../confirmOrder/confirmOrder.wxss";

+ 247 - 18
pages/order_tabs/orderTabs.js

@@ -6,30 +6,113 @@ Page({
    * 页面的初始数据
    */
   data: {
-      hasmore:false,
-      orders:[],
-      addTimes:[],
-      curpage:1
+    hasmore: false,
+    orders: [],
+    addTimes: [],
+    curpage: 1,
+    tabs: [
+      {
+        name: "全部",
+        type: ""
+      },
+      {
+        name: "待付款",
+        type: 'state_new'
+      },
+      {
+        name: "待发货",
+        type: 'state_pay'
+      },
+      {
+        name: "待收货",
+        type: 'state_send'
+      },
+      {
+        name: "已收货",
+        type: 'state_success'
+      }
+    ],
+    selectedIndex: 0,
+    state_type: '',
+    tabs_title: '',
+    loading: false
   },
 
   /**
    * 生命周期函数--监听页面加载
    */
   onLoad: function (options) {
-    this.req_datas();
+    let state_type = options.state_type || this.data.state_type;
+    switch (state_type) {
+      case '': {
+        this.setData({
+          selectedIndex: 0,
+          state_type,
+          tabs_title: '全部'
+        })
+        break;
+      }
+      case 'state_new': {
+        this.setData({
+          selectedIndex: 1,
+          state_type,
+          tabs_title: '待付款'
+        })
+        break;
+      }
+      case 'state_pay': {
+        this.setData({
+          selectedIndex: 2,
+          state_type,
+          tabs_title: '待发货'
+        })
+        break;
+      }
+      case 'state_send': {
+        this.setData({
+          selectedIndex: 3,
+          state_type,
+          tabs_title: '待收货'
+        })
+        break;
+      }
+      case 'state_success': {
+        this.setData({
+          selectedIndex: 4,
+          state_type,
+          tabs_title: '已收货'
+        })
+        break;
+      }
+    }
+    this.req_datas(state_type);
   },
 
-  req_datas(){
+  req_datas(type) {
+    this.setData({
+      loading: true
+    });
     wx.showLoading({
       title: '加载中',
     });
+    if (type != this.data.state_type) {
+      this.setData({
+        hasmore: false,
+        orders: [],
+        addTimes: [],
+        curpage: 1,
+        state_type: type
+      });
+    }
     let self = this;
     getReq({
       act: 'member_order',
       op: 'list',
       page: 15,
-      curpage: this.data.curpage
+      curpage: this.data.curpage,
+      state_type: type
     }, function (res) {
+      // console.log(res);
       let orders = res.datas.orders;
       let addTimes = [];
       let hasmore = false;
@@ -48,8 +131,10 @@ Page({
         hasmore,
         curpage,
         orders: self.data.orders.concat(orders),
-        addTimes: self.data.addTimes.concat(addTimes)
+        addTimes: self.data.addTimes.concat(addTimes),
+        loading: false
       });
+
       wx.hideLoading();
     })
   },
@@ -58,56 +143,200 @@ Page({
    * 生命周期函数--监听页面初次渲染完成
    */
   onReady: function () {
-  
+
   },
 
   /**
    * 生命周期函数--监听页面显示
    */
   onShow: function () {
-  
+
   },
 
   /**
    * 生命周期函数--监听页面隐藏
    */
   onHide: function () {
-  
+
   },
 
   /**
    * 生命周期函数--监听页面卸载
    */
   onUnload: function () {
-  
+
   },
 
   /**
    * 页面相关事件处理函数--监听用户下拉动作
    */
   onPullDownRefresh: function () {
-  
+
   },
 
   /**
    * 页面上拉触底事件的处理函数
    */
   onReachBottom: function () {
-    this.req_datas();
+    if (this.data.hasmore) {
+      this.req_datas(this.data.state_type);
+    }
   },
 
   /**
    * 用户点击右上角分享
    */
   onShareAppMessage: function () {
-  
+
   },
 
-  timeFormat(time){
-    let date = new Date(time*1000);
+  timeFormat(time) {
+    let date = new Date(time * 1000);
     let year = date.getFullYear();
-    let month = date.getMonth()+1;
+    let month = date.getMonth() + 1;
     let day = date.getDate();
     return `${year}-${month}-${day}`;
+  },
+
+  selectTab(e) {
+    let index = e.target.dataset.index;
+    let type = e.target.dataset.type;
+    if (type == this.data.state_type) {
+      return;
+    }
+    else {
+      switch (type) {
+        case '': {
+          this.setData({
+            selectedIndex: index,
+            tabs_title: '全部'
+          })
+          break;
+        }
+        case 'state_new': {
+          this.setData({
+            selectedIndex: index,
+            tabs_title: '待付款'
+          })
+          break;
+        }
+        case 'state_pay': {
+          this.setData({
+            selectedIndex: index,
+            tabs_title: '待发货'
+          })
+          break;
+        }
+        case 'state_send': {
+          this.setData({
+            selectedIndex: index,
+            tabs_title: '待收货'
+          })
+          break;
+        }
+        case 'state_success': {
+          this.setData({
+            selectedIndex: index,
+            tabs_title: '已收货'
+          })
+          break;
+        }
+      }
+      this.req_datas(type);
+    }
+  },
+  change_order_state(action, order_id, index) {
+    let self = this;
+    getReq({
+      act: 'member_order',
+      op: 'change_state',
+      act_type: action,
+      order_id: order_id
+    }, function (res) {
+      if (res.code != 200) {
+        wx.showToast({
+          title: res.message,
+          icon: 'none'
+        })
+      }
+      else {
+        let orders = self.data.orders;
+        let addTimes = self.data.addTimes;
+        orders.splice(index, 1);
+        addTimes.splice(index, 1);
+        self.setData({
+          orders,
+          addTimes
+        })
+      }
+    })
+  },
+  order_action(e) {
+    const action = e.target.dataset.action;
+    const order_id = e.target.dataset.orderid;
+    const order_sn = e.target.dataset.sordersn;
+    const pay_sn = e.target.dataset.paysn;
+    const index = e.target.dataset.index;
+    let self = this;
+    switch (action) {
+      case "if_delete": {
+        wx.showModal({
+          title: "提示",
+          content: "您确定要删除该订单吗?",
+          success: function (res) {
+            if (res.confirm) {
+              self.change_order_state(action, order_id, index);
+            }
+            else if (res.cancel) {
+              return;
+            }
+          }
+        })
+        break;
+      }
+      case "if_deliver": {
+        let url = encodeURIComponent("https://passport.lrlz.com/mobile/index.php?act=member_order&op=search_deliver&order_id=");
+        wx.navigateTo({
+          url: `/pages/webView/webView?url=${url}${order_id}`
+        })
+        break;
+      }
+      case "if_cancel": {
+        wx.showModal({
+          title: "提示",
+          content: "您确定要取消该订单吗?",
+          success: function (res) {
+            if (res.confirm) {
+              self.change_order_state(action, order_id, index);
+            }
+            else if (res.cancel) {
+              return;
+            }
+          }
+        })
+        break;
+      }
+      case "if_receive": {
+        wx.showModal({
+          title: "提示",
+          content: "您确定收货吗?",
+          success: function (res) {
+            if (res.confirm) {
+              self.change_order_state(action, order_id, index);
+            }
+            else if (res.cancel) {
+              return;
+            }
+          }
+        })
+        break;
+      }
+      case "if_payment": {
+        wx.navigateTo({
+          url: `/pages/order_/confirmOrder?pay_sn=${pay_sn}`
+        })
+      }
+
+    }
   }
 })

+ 4 - 1
pages/order_tabs/orderTabs.json

@@ -1,3 +1,6 @@
 {
-  "navigationBarTitleText": "我的订单"
+  "navigationBarTitleText": "我的订单",
+  "usingComponents": {
+    
+  }
 }

+ 15 - 5
pages/order_tabs/orderTabs.wxml

@@ -1,8 +1,14 @@
-<view class="order_list">
-  <block wx:key="{{index}}" wx:for="{{orders}}">
+<view class='tabs vux-1px-b'>
+  <block wx:key="{{index}}" wx:for="{{tabs}}">
+    <view class='tabs_item {{selectedIndex == index?"selected":""}}' data-type="{{item.type}}" data-index="{{index}}" bindtap='selectTab'>{{item.name}}</view>
+  </block>
+</view>
+<view style='height:88rpx;'></view>
+<view class="order_list" wx:if="{{orders.length > 0}}">
+  <block wx:key="{{index}}" wx:for-index="idx" wx:for="{{orders}}">
     <view class='order_item'>
       <view class='order_time'>
-          <text class='add_time'>{{addTimes[index]}}</text>
+          <text class='add_time'>{{addTimes[idx]}}</text>
           <text class='state_desc'>{{item.order_info.state_desc}}</text>
       </view>
       <block wx:key="{{index}}" wx:for-item="goods_list"  wx:for="{{item.order_goods}}">
@@ -28,9 +34,13 @@
         <text>共{{item.order_goods.length}}件 合计:<text class='order_amount'>¥{{item.order_info.order_amount}}</text> (含运费¥{{item.order_info.shipping_fee}})</text>
       </view>
       <view class='order_handle'>
-        <text>删除订单</text>
-        <text>查看物流</text>
+        <block wx:key="{{index}}" wx:for="{{item.actions}}" wx:for-item="action">
+          <text data-action="{{action.action}}" data-orderid="{{item.order_info.order_id}}" data-ordersn="{{item.order_info.order_sn}}" data-index="{{idx}}" data-paysn="{{item.order_info.pay_sn}}" bindtap='order_action'>{{action.title}}</text>  
+        </block> 
       </view>
     </view>
   </block>    
 </view>
+<view class='empty_order' wx:if="{{orders.length <= 0 && loading == false}}">
+  <text>您不存在{{tabs_title}}的订单</text>
+</view>

+ 34 - 0
pages/order_tabs/orderTabs.wxss

@@ -79,4 +79,38 @@
 }
 .order_amount {
   color: #eb4e4f;
+}
+
+.tabs {
+  display: flex;
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 88rpx;
+  line-height: 88rpx;
+  background: #ffffff;
+  font-size: 28rpx;
+  text-align: center;
+  z-index: 10;
+}
+
+.tabs view {
+  flex: 1;
+}
+
+.selected {
+  color: #eb4e4f;
+  border-bottom: 3px solid #eb4e4f; 
+}
+
+.empty_order {
+  text-align: center;
+  font-size: 30rpx;
+}
+
+.empty_order text {
+  display: block;
+  height: 300rpx;
+  line-height: 300rpx;
 }

+ 16 - 16
pages/person/person.js

@@ -19,6 +19,20 @@ Page({
    * 生命周期函数--监听页面加载
    */
   onLoad: function (options) {
+  
+  },
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function () {
+  
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function () {
     const userInfo = app.globalData.userInfo;
     const nickName = userInfo.nickName;
     const avatarUrl = userInfo.avatarUrl;
@@ -30,27 +44,13 @@ Page({
       if (res.code == 200) {
         self.setData({
           userInfo: { nickName, avatarUrl },
-          bonus_rate:res.datas.bonus_rate
+          bonus_rate: res.datas.bonus_rate
         })
       }
     })
   },
 
   /**
-   * 生命周期函数--监听页面初次渲染完成
-   */
-  onReady: function () {
-  
-  },
-
-  /**
-   * 生命周期函数--监听页面显示
-   */
-  onShow: function () {
-  
-  },
-
-  /**
    * 生命周期函数--监听页面隐藏
    */
   onHide: function () {
@@ -97,7 +97,7 @@ Page({
   },
   skip_all_order(){
     wx.navigateTo({
-      url: '/pages/order_tabs/orderTabs'
+      url: '/pages/order_tabs/orderTabs?state_type=""'
     })
   }
 })

+ 24 - 16
pages/person/person.wxml

@@ -17,28 +17,36 @@
 
   <view class='order_info'>
     <view>
-      <image style='width:35rpx;' mode='widthFix' src='../../image/person/payments_due_icon.png'></image>
-      <view>
-        <text>待付款</text>
-      </view>
+      <navigator url="/pages/order_tabs/orderTabs?state_type=state_new">
+        <image style='width:35rpx;' mode='widthFix' src='../../image/person/payments_due_icon.png'></image>
+        <view>
+          <text>待付款</text>
+        </view>
+      </navigator>
     </view>
     <view>
-      <image style='width:35rpx;' mode='widthFix' src='../../image/person/shipping_term_icon.png'></image>
-      <view>
-        <text>待发货</text>
-      </view>
+      <navigator url="/pages/order_tabs/orderTabs?state_type=state_pay">
+        <image style='width:35rpx;' mode='widthFix' src='../../image/person/shipping_term_icon.png'></image>
+        <view>
+          <text>待发货</text>
+        </view>
+      </navigator>  
     </view>
     <view>
-      <image style='width:35rpx;' mode='widthFix' src='../../image/person/goods_receipt_icon.png'></image>
-      <view>
-        <text>待收货</text>
-      </view>
+      <navigator url="/pages/order_tabs/orderTabs?state_type=state_send">
+        <image style='width:35rpx;' mode='widthFix' src='../../image/person/goods_receipt_icon.png'></image>
+        <view>
+          <text>待收货</text>
+        </view>
+      </navigator>
     </view>
     <view>
-      <image style='width:32rpx;' mode='widthFix' src='../../image/person/evaluated_icon.png'></image>
-      <view>
-        <text>已收货</text>
-      </view>
+      <navigator url="/pages/order_tabs/orderTabs?state_type=state_success">
+        <image style='width:32rpx;' mode='widthFix' src='../../image/person/evaluated_icon.png'></image>
+        <view>
+          <text>已收货</text>
+        </view>
+      </navigator>
     </view>
     <view>
       <image style='width:35rpx;' mode='widthFix' src='../../image/person/refund_terms_icon.png'></image>