微信小程序商城15天从零实战视频课程-添加地址

微信小程序商城15天从零实战视频课程-添加地址

js代码

// pages/addr/edit/edit.js
Page({ 
  data: {
    addr: {},
    provinces: [
      "浙江",
      "湖南"
    ],
    citys: [
      "杭州",
      "长沙"
    ],
    areas: [
      "余杭区",
      "开福区"
    ],
    streets: [
      "星桥镇",
      "芙蓉北路",
      "湘江中路"
    ],
    street_idx: 0,
    province_idx: 0,
    city_idx: 0,
    area_idx: 0
  },

  onLoad: function (options) {
    // 页面初始化 options为页面跳转所带来的参数
    //console.log(options)
    if (options.id) {
      this.setData({
        "addr.id": options.id
      })
    }
    var id = this.data.addr.id;
    if (id) {
      var that = this;
      wx.showToast({
        title: "Loading...",
        icon: "loading",
        duration: 900000
      })
      wx.request({
        url: 'http://www.yaoyiwangluo.com/wx/addr_info.asp?id=' + id,
        // data: {},
        method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
        // header: {}, // 设置请求的 header
        success: function (res) {
          // success
          console.log(res.data[0]);
          that.setData({
            addr: res.data[0]
          })
        },
        fail: function () {
          // fail
          wx.showModal({
            content: "数据加载失败,请检查网络后重试!",
            showCancel: false,
            success: function (res) {
              wx.navigateBack({
                delta: 1, // 回退前 delta(默认为1) 页面
              })
            }
          })
        },
        complete: function () {
          // complete
          wx.hideToast();
          var addr = that.data.addr;
          var provinces = that.data.provinces;
          var areas = that.data.areas;
          var citys = that.data.citys;
          var streets = that.data.streets;
          var province_idx = 0;
          var city_idx = 0;
          var area_idx = 0;
          var street_idx = 0;
          //记得移走到success里面
          for (var i = 0; i < provinces.length; i++) {
            if (provinces[i] == addr.province) {
              province_idx = i;
              break;
            }
          }
          for (var i = 0; i < citys.length; i++) {
            if (citys[i] == addr.city) {
              city_idx = i;
              break;
            }
          }
          for (var i = 0; i < areas.length; i++) {
            if (areas[i] == addr.area) {
              area_idx = i;
              break;
            }
          }
          for (var i = 0; i < streets.length; i++) {
            if (streets[i] == addr.street) {
              street_idx = i;
              break;
            }
          }
          that.setData({
            "province_idx": province_idx,
            "city_idx": city_idx,
            "area_idx": area_idx,
            "street_idx": street_idx,
          })
        }
      })
    } else {
      wx.setNavigationBarTitle({
        title: '新增地址'
      })
    }
  },
  onReady: function () {
    // 页面渲染完成
  },
  onShow: function () {
    // 页面显示
  },
  onHide: function () {
    // 页面隐藏
  },
  onUnload: function () {
    // 页面关闭
  },
  provinceChange: function (e) {
    var idx = e.detail.value;
    console.log(idx);
    this.setData({
      province_idx: idx
    })
  },
  cityChange: function (e) {
    var idx = e.detail.value;
    console.log(idx);
    this.setData({
      city_idx: idx
    })
  },
  areaChange: function (e) {
    var idx = e.detail.value;
    console.log(idx);
    this.setData({
      area_idx: idx
    })
  },
  streetChange: function (e) {
    var idx = e.detail.value;
    console.log(idx);
    this.setData({
      street_idx: idx
    })
  },

  //保存地址 
  saveAddr: function (e) {
    console.log(e)
    var provinces = this.data.provinces;
    var areas = this.data.areas;
    var citys = this.data.citys;
    var streets = this.data.streets;

    var addr = e.detail.value;
    addr.province = provinces[addr.province];
    addr.area = areas[addr.area];
    addr.city = citys[addr.city];
    addr.street = streets[addr.street];
    var id = this.data.addr.id;
    addr.id = id;
    console.log(addr)
    wx.showToast({
      title: "Loading...",
      icon: "loading",
      duration: 900000
    })
    wx.request({
      url: 'http://www.yaoyiwangluo.com/wx/txt.asp',
      data: addr,
      method: 'get', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
      // header: {}, // 设置请求的 header
      success: function (res) {
        setTimeout(function () {
          if (res.data.flag == 'true') {
            wx.showToast({
              title: "保存成功",
              duration: 1500
            })
            setTimeout(function () {
              wx.navigateBack({
                delta: 1, // 回退前 delta(默认为1) 页面
              })
            }, 2000)
          } else {
            wx.showToast({
              title: "操作失败",
              duration: 1500
            })
          }
        }, 100)
      },
      fail: function () {
        // fail
        wx.showModal({
          content: "操作失败,未保存成功,请检查网络后重试",
          showCancel: false
        })
      },
      complete: function () {
        // complete
        wx.hideToast();
      }
    })
  },
  delAddr: function (e) {
    var id = e.target.dataset.id;
    console.log(id)
    wx.showToast({
      title: "Loading...",
      icon: "loading",
      duration: 900000
    })
    wx.request({
      url: 'http://localhost:8080/Wxmini/addr_del.do?id=' + id,
      // data: {},
      method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
      // header: {}, // 设置请求的 header
      success: function (res) {
        setTimeout(function () {
          wx.showToast({
            title: "删除成功",
            duration: 1500
          })
          setTimeout(function () {
            wx.navigateBack({
              delta: 1, // 回退前 delta(默认为1) 页面
            })
          }, 2000)
        }, 100)
      },
      fail: function () {
        wx.showModal({
          content: "操作失败,未删除该地址,请检查网络后重试",
          showCancel: false
        })
      },
      complete: function () {
        // complete
        wx.hideToast();
      }
    })
  }
})

wxml代码

 <form bindsubmit="saveAddr">

    <view id='edit'>
      <view class='edit-item'>
        <text>收货人</text>
        <input type="text" maxlength="13" placeholder="请输入姓名" name="name" value="{{addr.name}}" />
      </view>
      <view class='hr'></view>

      <view class='edit-item'>
        <text>联系电话</text>
        <input type="text" maxlength="11" placeholder="请输入联系电话" name="phone" value="{{addr.phone}}" />
      </view>
      <view class='hr'></view>

      <view class='edit-item'>
        <text>所在地区</text>
        <picker mode="selector" name='area' value='{{area_idx}}' range="{{areas}}" bindchange="areaChange">
          <view class='picker_last'>
            {{areas[area_idx]}}
          </view>
        </picker>
        <picker mode="selector" name='city' value='{{city_idx}}' range="{{citys}}" bindchange="cityChange">
          <view>
            {{citys[city_idx]}}
          </view>
        </picker>
        <picker mode="selector" name='province' value='{{province_idx}}' range="{{provinces}}" bindchange="provinceChange">
          <view>
            {{provinces[province_idx]}}
          </view>
        </picker>
      </view>
      <view class='hr'></view>


      <view class='edit-item'>
        <textarea name="desc" maxlength="500" placeholder="请输入详细地址" style="height:200rpx;" value="{{addr.desc}}" />
      </view>
    </view>

    <view id='default'>
      设为默认地址
      <switch type="switch" checked="{{addr.isDefault}}" name="isDefault" />
    </view>

    <view id='del' wx:if="{{addr.id}}">
      <text data-id="{{addr.id}}" bindtap="delAddr">删除地址</text>
    </view>
    
    <view id='submit'>
      <button type="primary" form-type="submit">保存</button>
    </view>

  </form>

wxss代码

/* pages/addr/edit/edit.wxss */
#edit{
    background: white;
    font-size: 18px;
    font-family: 'Times New Roman', Times, serif;
}

.edit-item{
    clear: both;
    padding: 12rpx 0rpx;
}

.edit-item text{
    line-height: 30px;
    padding-left: 25rpx;
    float: left;
}

.edit-item input{
    float: right;
    position: relative;
}

.edit-item picker{
    float: right;
    padding-right: 30rpx;
    padding-top: 8rpx;
    color:#666;
}

.edit-item textarea{
    padding-top: 25rpx;
    padding-left: 25rpx;
}

.picker_last{
    padding-right: 30rpx;
}

.hr{
    position: relative;
    width: 100%;
    height: 1px;
    background: #ccc;
    top: 52rpx;
}

#default{
    margin: 10px 0px;
    padding: 20rpx;
    background: white;
    clear: both;
    font-size: 18px;
}

#default switch{
    float: right;
    position: relative;
    bottom: 10rpx;
}

#del{
    margin: 20px 0px;
    padding: 20rpx;
    background: white;
    color:red;
    font-size: 18px;
}

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

微信小程序商城15天从零实战视频课程-添加地址