zhashaonan 7 лет назад
Родитель
Сommit
704c3e93d1

+ 5 - 1
app.js

@@ -104,6 +104,10 @@ App({
       openid:'',
       unionid:''
     },
-    userInfo: {}
+    userInfo: {},
+    defaultAddress: null
+  },
+  checkDefaultAddress(address) {
+    this.globalData.defaultAddress = address
   }
 })

+ 3 - 1
app.json

@@ -11,7 +11,9 @@
     "pages/brand/brand",
     "pages/comments/comments",
     "pages/search/search",
-    "pages/confirmOrder/confirmOrder"
+    "pages/confirmOrder/confirmOrder",
+    "pages/address/address",
+    "pages/addAddress/addAddress"
   ],
   "window": {
     "backgroundTextStyle": "dark",

+ 16 - 4
app.wxss

@@ -54,6 +54,18 @@ page {
 .f30 {
   font-size: 30rpx;
 }
+.ml8 {
+  margin-left: 8rpx;
+}
+.ml16 {
+  margin-left: 16rpx;
+}
+mr16 {
+  margin-right: 16rpx;
+}
+.mt8 {
+  margin-top: 8rpx;
+}
 .mt10 {
   margin-top: 10rpx;
 }
@@ -95,8 +107,8 @@ page {
   bottom: 0;
   right: 0;
   height: 1px;
-  border-bottom: 1px solid #c7c7c7;
-  color: #c7c7c7;
+  border-bottom: 1px solid #D9D9D9;
+  color: #D9D9D9;
   -webkit-transform-origin: 0 100%;
   transform-origin: 0 100%;
   -webkit-transform: scaleY(0.5);
@@ -109,8 +121,8 @@ page {
   bottom: 0;
   right: 0;
   height: 1px;
-  border-bottom: 1px solid #c7c7c7;
-  color: #c7c7c7;
+  border-bottom: 1px solid #D9D9D9;
+  color: #D9D9D9;
   -webkit-transform-origin: 0 100%;
   transform-origin: 0 100%;
   -webkit-transform: scaleY(0.5);

+ 113 - 0
pages/addAddress/addAddress.js

@@ -0,0 +1,113 @@
+// pages/addAddress/addAddress.js
+const date = new Date()
+const years = []
+const months = []
+const days = []
+
+for (let i = 1990; i <= date.getFullYear(); i++) {
+  years.push(i)
+}
+
+for (let i = 1; i <= 12; i++) {
+  months.push(i)
+}
+
+for (let i = 1; i <= 31; i++) {
+  days.push(i)
+}
+
+const getReq = require('./../../config.js').getReq
+
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    checked: true,
+    region: [],
+    years: years,
+    year: date.getFullYear(),
+    months: months,
+    month: 2,
+    days: days,
+    day: 2,
+    value: [9999, 1, 1]
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+
+  },
+  toggleChecked() {
+    this.setData({
+      checked: !this.data.checked
+    })
+  },
+  bindRegionChange: function (e) {
+    // console.log('picker发送选择改变,携带值为', e.detail.value)
+    this.setData({
+      region: e.detail.value
+    })
+  },
+  bindChange: function (e) {
+    const val = e.detail.value
+    this.setData({
+      year: this.data.years[val[0]],
+      month: this.data.months[val[1]],
+      day: this.data.days[val[2]]
+    })
+  },
+
+
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function () {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function () {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage: function () {
+
+  }
+})

+ 1 - 0
pages/addAddress/addAddress.json

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

+ 97 - 0
pages/addAddress/addAddress.wxml

@@ -0,0 +1,97 @@
+<!--pages/addAddress/addAddress.wxml-->
+<view>
+
+  <view class="info_cell-wrap bacfff">
+    <view class="info_cell vux-1px-b">
+      <view class="info_cell_lable">收件人:</view>
+      <view class="info_cell_content">
+        <input placeholder="请输入收件人" />
+      </view>
+    </view>
+  </view>
+
+  <view class="info_cell-wrap bacfff">
+    <view class="info_cell vux-1px-b">
+      <view class="info_cell_lable">手机号码:</view>
+      <view class="info_cell_content">
+        <input placeholder="请输入手机号码" />
+      </view>
+    </view>
+  </view>
+
+  <view class="info_cell-wrap bacfff">
+    <picker mode="region" bindchange="bindRegionChange" value="{{region}}">
+      <view class="info_cell vux-1px-b">
+        <view class="info_cell_lable">地区:</view>
+        <view class="info_cell_content common_cell_arrow">
+          <text>{{region[0]}}</text>
+          <text class="ml8">{{region[1]}}</text>
+          <text class="ml8">{{region[2]}}</text>
+        </view>
+      </view>
+    </picker>
+  </view>
+
+  <!-- <view class="info_cell-wrap bacfff">
+   <view>{{year}}年{{month}}月{{day}}日</view>
+    <picker-view indicator-style="height: 50rpx;" style="width: 100%; height: 300rpx;" value="{{value}}" bindchange="bindChange">
+      <picker-view-column>
+        <view wx:for="{{years}}" style="line-height: 50rpx">{{item}}年</view>
+      </picker-view-column>
+      <picker-view-column>
+        <view wx:for="{{months}}" style="line-height: 50rpx">{{item}}月</view>
+      </picker-view-column>
+      <picker-view-column>
+        <view wx:for="{{days}}" style="line-height: 50rpx">{{item}}日</view>
+      </picker-view-column>
+    </picker-view>
+
+  </view> -->
+
+  <view class="info_cell-wrap bacfff">
+    <view class="info_cell">
+      <view class="info_cell_lable">详细地址:</view>
+      <view class="info_cell_content">
+        <input auto-focus placeholder="请输入详细地址" />
+      </view>
+    </view>
+  </view>
+
+  <view class="checkbtn" bindtap='toggleChecked'>
+    <view class="check_icon-box">
+      <block wx:if="{{checked}}">
+        <icon type="success" size="18" color="#ff4e4e"></icon>
+      </block>
+      <block wx:else>
+        <view class="no_checked_icon"></view>
+      </block>
+    </view>
+    <text class="">设为默认地址</text>
+  </view>
+
+
+  <view class="picker_mask"></view>
+
+
+  <view class="picker_container">
+    <view class="picker_header">
+      <view class="picker_cancel">取消</view>
+      <view>完成</view>
+    </view>
+    <view class="bacfff" style="text-align:center">
+      <picker-view indicator-style="" style="width: 100%; height: 300rpx;" value="{{value}}" bindchange="bindChange">
+        <picker-view-column>
+          <view wx:for="{{years}}" style="line-height: 68rpx">{{item}}年</view>
+        </picker-view-column>
+        <picker-view-column>
+          <view wx:for="{{months}}" style="line-height: 68rpx">{{item}}月</view>
+        </picker-view-column>
+        <picker-view-column>
+          <view wx:for="{{days}}" style="line-height: 68rpx">{{item}}日</view>
+        </picker-view-column>
+      </picker-view>
+    </view>
+  </view>
+
+  <!-- <view class="add_address_btn">确认</view> -->
+</view>

+ 141 - 0
pages/addAddress/addAddress.wxss

@@ -0,0 +1,141 @@
+/* pages/addAddress/addAddress.wxss */
+@import "../address/address.wxss";
+
+.info_cell-wrap {
+  padding-left: 40rpx;
+}
+
+.info_cell {
+  display: -webkit-flex;
+  display: flex;
+  align-items: center;
+  line-height: 112rpx;
+  font-size: 28rpx;
+}
+
+.info_cell_lable {
+  width: 154rpx;
+}
+
+.info_cell_content {
+  -webkit-flex: 1;
+  flex: 1;
+}
+
+.checkbtn {
+  display: -webkit-flex;
+  display: flex;
+  align-items: center;
+  padding: 40rpx;
+  font-size: 24rpx;
+}
+
+.no_checked_icon {
+  width: 36rpx;
+  height: 36rpx;
+  border-radius: 50%;
+  border: 2rpx solid #eaeaea;
+}
+
+.check_icon-box {
+  display: -webkit-flex;
+  display: flex;
+  align-items: center;
+  width: 42rpx;
+  height: 42rpx;
+  margin-right: 4rpx;
+}
+
+.common_cell_arrow {
+  position: relative;
+}
+
+.common_cell_arrow::after {
+  content: " ";
+  display: inline-block;
+  height: 12rpx;
+  width: 12rpx;
+  border-width: 2rpx 2rpx 0 0;
+  border-color: #c8c8cd;
+  border-style: solid;
+  -webkit-transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0);
+  transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0);
+  position: absolute;
+  top: 50%;
+  margin-top: -8rpx;
+  right: 40rpx;
+}
+.area_flex {
+  display: inline-block;
+  width: 33%;
+}
+
+
+
+.picker_mask { 
+  position: fixed;
+  left: 0;
+  top:0;
+  height: 100%;
+  width: 100%;
+  background-color: rgba(0, 0, 0, 0.6);
+  z-index: 99;
+}
+.picker_container {
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  z-index: 100;
+}
+
+.picker_header {
+  display: -webkit-flex;  
+  display: flex;
+  justify-content: space-between;
+  padding: 0 30rpx;
+  line-height: 88rpx;
+  font-size: 32rpx;
+  color: #EB4E4F;
+  background: #fbf9fe;
+}
+.picker_header .picker_cancel {
+  color: #828282;
+}
+
+
+
+
+.animation-element {
+  display: flex;
+  position: fixed;
+  width: 100%;
+  height: 470rpx;
+  bottom: 0;
+  background-color: rgba(255, 255, 255, 1);
+}
+
+.animation-button {
+  top:20rpx;
+  width: 290rpx;
+  height: 100rpx;  
+  align-items:center;
+}
+
+
+.left-bt{
+  left: 30rpx;
+}
+.right-bt {
+  right: 30rpx;
+}
+
+.line{
+  display: block;
+  position: fixed;
+  height: 1rpx;
+  width: 100%;
+  margin-top: 89rpx; 
+  background-color: #eeeeee;
+}
+

+ 166 - 0
pages/address/address.js

@@ -0,0 +1,166 @@
+// pages/address/address.js
+const getReq = require('./../../config.js').getReq
+let appInstance = getApp()
+Page({
+
+  /**
+   * 页面的初始数据
+   */
+  data: {
+    address_list: [],
+    test_list: [
+      {
+        "address_id": "6386",
+        "member_id": "36490",
+        "true_name": "江海苗",
+        "area_id": "145",
+        "city_id": "39",
+        "area_info": "上海\t上海市\t徐汇区",
+        "handled": "0",
+        "address": "番禺路876号丽人丽妆",
+        "tel_phone": "",
+        "mob_phone": "13911129867",
+        "is_default": "1",
+        "dlyp_id": "0"
+      },
+      {
+        "address_id": "5630",
+        "member_id": "36490",
+        "true_name": "江海苗",
+        "area_id": "44",
+        "city_id": "36",
+        "area_info": "北京\t北京市\t海淀区",
+        "handled": "0",
+        "address": "清华大学",
+        "tel_phone": "",
+        "mob_phone": "18911779278",
+        "is_default": "0",
+        "dlyp_id": "0"
+      },
+      {
+        "address_id": "4184",
+        "member_id": "36490",
+        "true_name": "江海苗",
+        "area_id": "44",
+        "city_id": "36",
+        "area_info": "北京\t北京市\t海淀区",
+        "handled": "11",
+        "address": "西三旗建材城西路27号一单元",
+        "tel_phone": "",
+        "mob_phone": "13911129867",
+        "is_default": "0",
+        "dlyp_id": "0"
+      },
+      {
+        "address_id": "517",
+        "member_id": "36490",
+        "true_name": "江海苗",
+        "area_id": "145",
+        "city_id": "39",
+        "area_info": "上海\t上海市\t徐汇区",
+        "handled": "11",
+        "address": "番禺路900号",
+        "tel_phone": "",
+        "mob_phone": "13911129867",
+        "is_default": "0",
+        "dlyp_id": "0"
+      }
+    ]
+  },
+
+  /**
+   * 生命周期函数--监听页面加载
+   */
+  onLoad: function (options) {
+    this.getDatas()
+  },
+  getDatas() {
+    wx.showLoading({
+      title: '加载中',
+    })
+    var self = this
+    getReq({
+      act: 'member_address',
+      op: 'address_list'
+    }, function (res) {
+      wx.hideLoading()
+      if (res.code == 200) {
+        let address_list = res.datas.address_list
+        self.setData({
+          address_list
+        })
+
+      }
+      else {
+        wx.showToast({
+          icon: 'none',
+          title: res.message,
+          duration: 2000
+        })
+      }
+    })
+  },
+  check_address(e) {
+    let dataset = e.currentTarget.dataset 
+    let { address } = dataset
+    let true_name = dataset.truename
+    let mob_phone = dataset.mobphone
+    let area_info = dataset.areainfo
+    appInstance.checkDefaultAddress({
+      true_name,
+      mob_phone,
+      area_info,
+      address
+    })
+    wx.navigateBack()
+
+  },
+  /**
+   * 生命周期函数--监听页面初次渲染完成
+   */
+  onReady: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面显示
+   */
+  onShow: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面隐藏
+   */
+  onHide: function () {
+
+  },
+
+  /**
+   * 生命周期函数--监听页面卸载
+   */
+  onUnload: function () {
+
+  },
+
+  /**
+   * 页面相关事件处理函数--监听用户下拉动作
+   */
+  onPullDownRefresh: function () {
+
+  },
+
+  /**
+   * 页面上拉触底事件的处理函数
+   */
+  onReachBottom: function () {
+
+  },
+
+  /**
+   * 用户点击右上角分享
+   */
+  onShareAppMessage: function () {
+
+  }
+})

+ 1 - 0
pages/address/address.json

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

+ 29 - 0
pages/address/address.wxml

@@ -0,0 +1,29 @@
+<!--pages/address/address.wxml-->
+<view class="address_container">
+  <view class="adress_wrap vux-1px-b" wx:for="{{address_list}}" wx:for-index="idx" wx:key="idx" bindtap='check_address' data-truename="{{item.true_name}}" data-mobphone="{{item.mob_phone}}" data-areainfo="{{item.area_info}}" data-address="{{item.address}}"
+    data-addressid="{{item.address_id}}">
+    <view class="address_line">
+      <text>{{item.true_name}}</text>
+      <text class="ml8">{{item.mob_phone}}</text>
+    </view>
+    <view class="address_line mt8">
+      <text class="coleb4e4f" wx:if="{{item.is_default == 1}}">[默认地址]</text>
+      <text class="ml16">{{item.area_info}}{{item.address}}</text>
+    </view>
+  </view>
+
+  <!-- <view class="adress_wrap vux-1px-b" wx:for="{{test_list}}" wx:for-index="idx" wx:key="idx" bindtap='check_address' data-truename="{{item.true_name}}" data-mobphone="{{item.mob_phone}}" data-areainfo="{{item.area_info}}" data-address="{{item.address}}"
+    data-addressid="{{item.address_id}}">
+    <view class="address_line">
+      <text>{{item.true_name}}</text>
+      <text class="ml8">{{item.mob_phone}}</text>
+    </view>
+    <view class="address_line mt8">
+      <text class="coleb4e4f mr16" wx:if="{{item.is_default == 1}}">[默认地址]</text>
+      <text>{{item.area_info}}{{item.address}}</text>
+    </view>
+  </view> -->
+  <navigator url="/pages/addAddress/addAddress">
+    <view class="add_address_btn">添加地址</view>
+  </navigator>
+</view>

+ 27 - 0
pages/address/address.wxss

@@ -0,0 +1,27 @@
+/* pages/address/address.wxss */
+.address_container {
+  padding-bottom: 130rpx;
+}
+.adress_wrap {
+  padding: 20rpx;
+  font-size: 24rpx;
+  background: #fff;
+}
+
+.address_line {
+  display: flex;
+  align-items: center;
+  line-height: 38rpx;
+}
+
+.add_address_btn {
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  color: #fff;
+  background: #eb4e4f;
+  line-height: 92rpx;
+  text-align: center;
+  font-size: 30rpx;
+}

+ 13 - 7
pages/confirmOrder/confirmOrder.js

@@ -1,5 +1,6 @@
 // pages/confirmOrder/confirmOrder.js
 const getReq = require('./../../config.js').getReq
+let appInstance = getApp()
 Page({
 
   /**
@@ -10,7 +11,9 @@ Page({
     ifcart: '',
     num: '',
     datas: {},
-    goods_list: []
+    goods_list: [],
+    firstLoad: true,
+    defaultAddress: null
   },
 
   /**
@@ -27,7 +30,6 @@ Page({
       num
     })
     this.getDatas(goods_id, iscart, num, cart_id)
-    console.log(options)
   },
   getDatas(goods_id, ifcart, num, cart_id) {
     wx.showLoading({
@@ -49,15 +51,14 @@ Page({
       ifcart,
     }, function (res) {
       wx.hideLoading()
-      console.log('++++')
-      console.log(res)
       if (res.code == 200) {
         let datas = res.datas
         let goods_list = self.getGoodsList(datas.summary,datas.goods_list)
-        console.log(goods_list)
         self.setData({
           datas,
-          goods_list
+          goods_list,
+          firstLoad: false,
+          defaultAddress: datas.address
         })
 
       }
@@ -96,7 +97,12 @@ Page({
    * 生命周期函数--监听页面显示
    */
   onShow: function () {
-
+    if (!this.data.firstLoad) {
+      let defaultAddress = appInstance.globalData.defaultAddress
+      this.setData({
+        defaultAddress
+      })
+    }
   },
 
   /**

+ 27 - 20
pages/confirmOrder/confirmOrder.wxml

@@ -1,17 +1,22 @@
 <!--pages/confirmOrder/confirmOrder.wxml-->
 <view class="check_order">
-  <view class="address_wrap" wx:if="{{datas.address}}">
-    <image class="adress-icon" src="../../image/address-icon.jpeg"></image>
-    <view>
-      <view>江海苗 13911129867</view>
-      <view class="mt10">上海 上海市 徐汇区番禺路876号丽人丽妆</view>
+  <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>
-  <view wx:else class="address_none"> 
-    <icon type="warn" size="23"/>
-    <text decode="{{true}}">&nbsp;&nbsp;请填写收货人信息</text> 
-   </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">
@@ -35,23 +40,22 @@
           <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 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="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>
+        <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><text class="bonus_bg"><text class="bonus_rate">40%</text></text><text>红包抵扣</text></view>
-      <view class="col09BB07">- ¥ 3</view>
-    </view> -->
     <view class="expenses_info">
       <view>运费</view>
       <view class="coleb4e4f">+ ¥ {{datas.payinfo['freight']}}</view>
@@ -61,7 +65,10 @@
   <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_left">
+        <text>应付: </text>
+        <text class="coleb4e4f">¥ {{datas.payinfo['pay_cash_pred']}}</text>
+      </view>
       <view class="just_buy_right">去付款</view>
     </view>
   </view>