extraction-address.js 4.8 KB
Newer Older
D
devil_gong 已提交
1 2 3 4 5 6 7 8
const app = getApp();
Page({
  data: {
    data_list_loding_status: 1,
    data_bottom_line_status: false,
    data_list: [],
    params: null,
    is_default: 0,
D
Devil 已提交
9 10 11 12

    user_location_cache_key: app.data.cache_userlocation_key,
    user_location: null,
    is_first: 1,
D
Devil 已提交
13
    home_extraction_address_position: 0,
D
devil_gong 已提交
14 15 16
  },

  onLoad(params) {
D
Devil 已提交
17 18
    this.setData({
      params: params,
D
Devil 已提交
19
      home_extraction_address_position: app.get_config('config.home_extraction_address_position', 0),
D
Devil 已提交
20 21 22 23 24 25 26 27
    });
  },

  onReady: function () {
    // 清除位置缓存信息
    my.removeStorage({key: this.data.user_location_cache_key});

    // 是否获取位置
D
Devil 已提交
28
    if((this.data.params.is_buy || 0) == 1 && this.data.home_extraction_address_position == 1)
D
Devil 已提交
29 30 31 32 33
    {
      my.navigateTo({
        url: '/pages/common/open-setting-location/open-setting-location'
      });
    }
D
devil_gong 已提交
34 35 36 37
  },

  onShow() {
    my.setNavigationBar({ title: app.data.common_pages_title.extraction_address });
D
Devil 已提交
38 39
    
    // 是否需要选择地理位置
D
Devil 已提交
40
    if(this.data.home_extraction_address_position == 1)
D
Devil 已提交
41 42 43 44 45 46 47 48 49 50 51 52
    {
      // 首次不请求数据
      if(this.data.is_first == 0)
      {
        this.user_location_init();
        this.init();
      }
    } else {
      this.init();
    }
    
    this.setData({ is_first: 0 });
D
devil_gong 已提交
53 54 55 56
  },

  // 初始化
  init() {
D
devil_gong 已提交
57
    var user = app.get_user_info(this, "init");
D
devil_gong 已提交
58 59 60 61 62 63 64 65 66 67 68
    if (user != false) {
      // 用户未绑定用户则转到登录页面
      if (app.user_is_need_login(user)) {
        my.redirectTo({
          url: "/pages/login/login?event_callback=init"
        });
        return false;
      } else {
        // 获取数据
        this.get_data_list();
      }
D
devil_gong 已提交
69
    } else {
D
devil_gong 已提交
70 71 72 73
      this.setData({
        data_list_loding_status: 0,
        data_bottom_line_status: false,
      });
D
devil_gong 已提交
74 75 76
    }
  },

D
Devil 已提交
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
  // 地址信息初始化
  user_location_init() {
    var result = my.getStorageSync(this.data.user_location_cache_key) || null;
    var data = null;
    if (result != null && (result.data || null) != null)
    {
      data = {
        name: result.data.name || null,
        address: result.data.address || null,
        lat: result.data.latitude || null,
        lng: result.data.longitude || null
      }
    }
    this.setData({user_location: data});
  },

D
devil_gong 已提交
93 94 95 96 97 98 99 100
  // 获取数据列表
  get_data_list() {
    // 加载loding
    my.showLoading({ title: "加载中..." });
    this.setData({
      data_list_loding_status: 1
    });

D
Devil 已提交
101 102 103 104 105 106 107 108 109 110
    // 获取数据
    var data = {};

    // 是否有坐标
    if((this.data.user_location || null) != null)
    {
      data['lng'] = this.data.user_location.lng;
      data['lat'] = this.data.user_location.lat;
    }

D
devil_gong 已提交
111 112 113 114
    // 获取数据
    my.request({
      url: app.get_request_url("extraction", "useraddress"),
      method: "POST",
D
Devil 已提交
115
      data: data,
D
devil_gong 已提交
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
      dataType: "json",
      success: res => {
        my.hideLoading();
        my.stopPullDownRefresh();
        if (res.data.code == 0) {
          if (res.data.data.length > 0) {
            // 获取当前默认地址
            var is_default = 0;
            for (var i in res.data.data) {
              if (res.data.data[i]['is_default'] == 1) {
                is_default = res.data.data[i]['id'];
              }
            }

            // 设置数据
            this.setData({
              data_list: res.data.data,
              is_default: is_default,
              data_list_loding_status: 3,
              data_bottom_line_status: true,
            });
          } else {
            this.setData({
              data_list_loding_status: 0
            });
          }
        } else {
          this.setData({
            data_list_loding_status: 0
          });
D
devil_gong 已提交
146
          if (app.is_login_check(res.data, this, 'get_data_list')) {
D
devil_gong 已提交
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
            app.showToast(res.data.msg);
          }
        }
      },
      fail: () => {
        my.hideLoading();
        my.stopPullDownRefresh();

        this.setData({
          data_list_loding_status: 2
        });
        app.showToast("服务器请求出错");
      }
    });
  },

  // 下拉刷新
  onPullDownRefresh() {
    this.get_data_list();
  },

  // 地图查看
  address_map_event(e) {
    var index = e.currentTarget.dataset.index || 0;
D
devil 已提交
171 172
    var data = this.data.data_list[index] || null;
    if (data == null)
D
devil_gong 已提交
173 174 175 176 177
    {
      app.showToast("地址有误");
      return false;
    }

D
devil 已提交
178
    // 打开地图
179
    var name = data.alias || data.name || '';
D
devil 已提交
180 181
    var address = (data.province_name || '') + (data.city_name || '') + (data.county_name || '') + (data.address || '');
    app.open_location(data.lng, data.lat, name, address);
D
devil_gong 已提交
182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197
  },

  // 地址内容事件
  address_conent_event(e) {
    var index = e.currentTarget.dataset.index || 0;
    var is_back = this.data.params.is_back || 0;
    if (is_back == 1) {
      my.setStorage({
        key: app.data.cache_buy_user_address_select_key,
        data: this.data.data_list[index]
      });
      my.navigateBack();
    }
  },

});