微信小程序商城15天从零实战视频课程-收货地址列表

微信小程序商城15天从零实战视频课程-收货地址列表

js代码

// pages/addr/addr.js
Page({ 
  data: {
    addrlist: [
      {
        id: 1,
        name: "公司",
        phone: "13516821613",
        postNo: "41000",
        province: "浙江",
        city: "杭州",
        area: "余杭区",
        street: "东岗路118号",
        desc: "雷恩国际科技创新园13xx",
        isDefault: true,
        isLast: false
      },
      {
        id: 2,
        name: "家里",
        phone: "13516821613",
        postNo: "41000",
        province: "浙江",
        city: "杭州",
        area: "余杭区",
        street: "星源北路",
        desc: "美耀湾1-xxx",
        isDefault: false,
        isLast: false
      },
      {
        id: 3,
        name: "大伯",
        phone: "18670321728",
        postNo: "41000",
        province: "浙江",
        city: "杭州",
        area: "余杭区",
        street: "藕花洲大姐",
        desc: "擎天半岛5-xxx",
        isDefault: false,
        isLast: true
      }
    ]
  },
  onLoad: function (options) {
    // 页面初始化 options为页面跳转所带来的参数
  },

  //重新加载服务端中的收获地址
  updateAddr: function () {
    var that = this;
    wx.showToast({
      title: "Loading...",
      icon: "loading",
      duration: 300000
    })
    wx.request({
      url: 'https://www.yaoyiwangluo.com/wx/addr_list.asp',
      //data: {},
      method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
      // header: {}, // 设置请求的 header
      success: function (res) {
        console.log('getlist:', res.data)
        for (var i = 0; i < res.data.length; i++) {
          var addr = res.data[i];
          if (i == res.data.length - 1) {
            addr.isLast = true;
          } else {
            addr.isLast = false;
          }
        }
        that.setData({
          addrlist: res.data
        })
      },
      fail: function () {
        // fail
        setTimeout(function () {
          wx.showToast({
            title: "获取地址失败",
            duration: 2000
          })
          // setTimeout(function () {
          //   wx.navigateBack({
          //     delta: 1, // 回退前 delta(默认为1) 页面
          //   })
          // }, 2000)
        }, 100)
      },
      complete: function () {
        // complete
        wx.hideToast();
      }
    })
  },

  onReady: function () {
    // 页面渲染完成
  },

  onShow: function () {
    // 页面显示
    //this.updateAddr();
  },

  onHide: function () {
    // 页面隐藏
  },

  onUnload: function () {
    // 页面关闭
  },

  onPullDownRefresh: function () {
    var that = this;
    setTimeout(function () {
      //that.updateAddr();
      wx.stopPullDownRefresh();
      console.log("stoppull")
    }, 2000)
  },
  
  //默认地址 处理函数
  beDefault: function (e) {
    //console.log(e.target)
    var id = e.target.dataset.id;
    var flag = e.detail.value
    if (flag) {
      console.log(id)
      wx.showToast({
        title: "Loading",
        icon: "loading",
        duration: 900000
      })
      var that = this;
      wx.request({
        //url: 'http://192.168.43.63:8080/Wxmini/addr_bedefault.do?id=' + id,
        // data: {},
        url: 'https://www.yaoyiwangluo.com/wx/addr_list.asp',
        method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
        header: {
          'content-type': 'application/json'
        }, // 设置请求的 header
        success: function (res) {

          var addrs = that.data.addrlist;
          console.log(addrs)
          for (var i = 0; i < addrs.length; i++) {
            //console.log(addrs[i])
            var addr = addrs[i]
            if (addr.id == id) {
              addr.isDefault = true;
              //console.log(addr)
            } else {
              addr.isDefault = false;
            }
            if (i == addrs.length - 1) {
              addr.isLast = true;
            } else {
              addr.isLast = false;
            }
          }
          console.log("over", addrs)
          that.setData({
            addrlist: addrs
          })
          setTimeout(function () {
            wx.showToast({
              title: "更改成功",
              duration: 1500
            })
          }, 100)
        },
        fail: function () {
          wx.showModal({
            content: "更改默认地址失败",
            showCancel: false
          })
        },
        complete: function () {
          wx.hideToast();
        }
      })
    }
  },

  //跳转到 新增页面
  navigateToAdd: function (e) {
    wx.navigateTo({
      url: '/pages/huiyuan/addr/edit'
    })
  },

  //跳转到 修改页面
  navigateToEdit: function (e) {
    var id = e.target.dataset.id;
    console.log(id)
    wx.navigateTo({
      url: '/pages/huiyuan/addr/edit?id=' + id
    })
  },

  //删除地址 函数
  delAddr: function (e) {
    var id = e.target.dataset.id;
    console.log(id)
    var that = this;
    wx.showModal({
      title: "警告",
      content: "是否删除该地址?",
      success: function (res) {
        if (res.confirm) {
          wx.showToast({
            title: "Loading",
            icon: "loading",
            duration: 900000
          })
          wx.request({
            //url: 'http://192.168.43.63:8080/Wxmini/addr_del.do?id=' + id,
            url:'http://www.yaoyiwangluo.com/wx/addr_list.asp',
            data: {},
            method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
            // header: {}, // 设置请求的 header
            success: function (res) {
              setTimeout(function () {
                wx.showToast({
                  title: "删除成功",
                  duration: 1500
                })
              }, 100)
              var addrs = that.data.addrlist;
              for (var i = 0; i < addrs.length; i++) {
                var addr = addrs[i]
                if (addr.id == id) {
                  addrs.splice(i, 1);
                }
              }
              //根据索引顺序更改对应的 isLast值,确保页面正确显示
              for (var i = 0; i < addrs.length; i++) {
                if (i == addrs.length - 1) {
                  addrs[i].isLast = true;
                } else {
                  addrs[i].isLast = false;
                }
              }

              console.log("over", addrs)
              that.setData({
                addrlist: addrs
              })

            },
            fail: function () {
              wx.showModal({
                content: "操作失败,未删除此地址!",
                showCancel: false
              })

            },
            complete: function () {
              wx.hideToast();
            }
          })
        }
      }
    })
  }
})

wxml代码

<view style='background:#eee;'>
 
  <!--pages/addr/addr.wxml-->
  <scroll-view id='addrlist' scroll-y="true">
    <block wx:for="{{addrlist}}" wx:key="addr">
      <view class='list-item' wx:if="{{item.isDefault}}">
        <view class='item-head'>
          <text>{{item.name}}</text>
          <text class='right'>18670321728</text>
        </view>
        <view class='item-desc'>
          <text>{{item.province}}省{{item.city}}市{{item.area}}</text>
          <text>{{item.street}}</text>
          <text>{{item.desc}}</text>
        </view>
        <view class='item-edit'>
          <view class='left chk-active'>
            <switch type="checkbox" disabled checked />
            <text class='ctr'>默认地址</text>
          </view>
          <view class='right'>
            <text class='icon_edit' bindtap="navigateToEdit" data-id="{{item.id}}">编辑</text> -
            <text class='icon_trash' bindtap="delAddr" data-id="{{item.id}}">删除</text>
          </view>
        </view>
      </view>
    </block>

    <block wx:for="{{addrlist}}" wx:key="addr">
      <view class='list-item' wx:if="{{item.isDefault==false}}">
        <view class='item-head'>
          <text>{{item.name}}</text>
          <text class='right'>18670321728</text>
        </view>
        <view class='item-desc'>
          <text>{{item.province}}省{{item.city}}市{{item.area}}</text>
          <text>{{item.street}}</text>
          <text>{{item.desc}}</text>
        </view>
        <view class='item-edit'>
          <view class='left'>
            <switch type="checkbox" bindchange="beDefault" data-id="{{item.id}}" checked="{{item.isDefault}}" />
            <text class='ctr'>设为默认</text>
          </view>
          <view class='right'>
            <text class='icon_edit' bindtap="navigateToEdit" data-id="{{item.id}}">编辑</text> -
            <text class='icon_trash' bindtap="delAddr" data-id="{{item.id}}">删除</text>
          </view>
        </view>
      </view>
    </block>

      <view class='list-item' >
        <view class='item-head'>
          <text>测试</text>
          <text class='right'>18670321728</text>
        </view>
        <view class='item-desc'>
          <text>浙江省杭州市江干区</text>
          <text>东岗路118号</text>
          <text>雷恩国际</text>
        </view>
        <view class='item-edit'>
          <view class='left'>
            <switch type="checkbox" bindchange="beDefault" data-id="1" checked="{{true}}" />
            <text class='ctr'>设为默认</text>
          </view>
          <view class='right'>
            <text  bindtap="navigateToEdit" data-id="1">编辑</text> -
            <text  bindtap="delAddr" data-id="1">删除</text>
          </view>
        </view>
      </view>

      <view class='kongbai'></view>

  </scroll-view>
  <view id='add' bindtap='navigateToAdd'>
    添加新地址
  </view>
</view>

wxss代码

/* pages/addr/addr.wxss */

#addrlist {
  height: 1146rpx;
  margin-bottom: 45rpx;
  color: #666;
  font-family: 'Times New Roman', Times, serif;
}

#add {
  padding: 30rpx 0px;
  text-align: center;
  background: #f31;
  color: white;
  position: absolute;
  width: 100%;
  bottom: 0px;
}

.list-item {
  font-size: 16px;
  padding: 30rpx;
  padding-bottom: 80rpx;
  margin-bottom: 30rpx;
  background: white;
}
.item-head {
  padding-bottom: 20rpx;
}
.item-desc {
  font-size: 16px;
}
.item-edit {
  margin-top: 20rpx;
  padding-top: 20rpx;
  border-top: 1px #ccc solid;
}
.right {
  padding-top: 10rpx;
  float: right;
  padding-right: 20rpx;
}
.left {
  float: left;
  vertical-align: middle;
}
.chk-active {
  color: #f31;
}
.ctr {
  position: relative;
  top: 6rpx;
}

.kongbai{ height: 50rpx;}

欢迎大家收看我的****:微信小程序商城15天从零实战视频课程
https://edu.****.net/course/detail/19437

微信小程序商城15天从零实战视频课程-收货地址列表