selectcity.js 5.7 KB
// import qqmap from '../../utils/map.js';
const app = getApp()

Page({
  data: {
    //下面是字母排序
    letter: ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"],
    cityListId: '',
    //下面是城市列表信息,这里只是模拟数据
    citylist: [{ "letter": "A", "data": [{ "id": "v7", "cityName": "安徽" }] }, { "letter": "B", "data": [{ "id": "v10", "cityName": "巴中" }, { "id": "v4", "cityName": "包头" }, { "id": "v1", "cityName": "北京" }] }, { "letter": "C", "data": [{ "id": "v15", "cityName": "成都" }] }, { "letter": "D", "data": [{ "id": "v21", "cityName": "稻城" }] }, { "letter": "G", "data": [{ "id": "v17", "cityName": "广州" }, { "id": "v29", "cityName": "桂林" }] }, { "letter": "H", "data": [{ "id": "v9", "cityName": "海南" }, { "id": "v3", "cityName": "呼和浩特" }] }, { "letter": "L", "data": [{ "id": "v24", "cityName": "洛阳" }, { "id": "v20", "cityName": "拉萨" }, { "id": "v14", "cityName": "丽江" }] }, { "letter": "M", "data": [{ "id": "v13", "cityName": "眉山" }] }, { "letter": "N", "data": [{ "id": "v27", "cityName": "南京" }] }, { "letter": "S", "data": [{ "id": "v18", "cityName": "三亚" }, { "id": "v2", "cityName": "上海" }] }, { "letter": "T", "data": [{ "id": "v5", "cityName": "天津" }] }, { "letter": "W", "data": [{ "id": "v12", "cityName": "乌鲁木齐" }, { "id": "v25", "cityName": "武汉" }] }, { "letter": "X", "data": [{ "id": "v23", "cityName": "西安" }, { "id": "v28", "cityName": "香港" }, { "id": "v19", "cityName": "厦门" }] }, { "letter": "Z", "data": [{ "id": "v8", "cityName": "张家口" }] }],
    //下面是热门城市数据,模拟数据
    newcity: ['北京', '上海', '广州', '深圳', '成都', '杭州'],
    // citySel: '全国',
    locateCity: '',
    currentCity:'',
    history_list:[],
    hot_list:[]
  },
  //获取用户当前位置
  getcity() {
    let that = this;
    wx.getLocation({
      type: 'gcj02',
      success: function (res) {
        // 经纬度
        var latitude = res.latitude
        var longitude = res.longitude

        var aK = that.data.aK
        wx.request({
          url: 'https://api.map.baidu.com/geocoder/v2/?ak=y8jPDTMIuAnaVscUztce1RKfNx8v5sok&location=' + latitude + ',' + longitude + '&output=json',
          data: {},
          header: {
            'content-type': 'application/json'
          },
          success: function (res) {
            console.log('1234567890', res)
            var province = res.data.result.addressComponent.province;
            let district = res.data.result.addressComponent.district
            that.setData({
              currentCity: province
            })
            wx.setStorageSync('city', province)
            wx.request({
              // url: 'xxx' + city,
              // data: {},
              // header: {
              //   'content-type': 'application/json'
              // },
              // success: function (res) {
              //   that.setData({
              //     county: res.data,
              //   })
              // },
            })
          }
        })

      },
      fail: function () {
        wx.showToast({
          title: '授权失败,请打开GPS重新进入页面授权',
          icon: 'none',
          duration: 2000
        })
      }
    })
  },

  //点击城市
  cityTap(e) {
    console.log(e)
    const val = e.currentTarget.dataset.val || '',
      types = e.currentTarget.dataset.types || '',
      Index = e.currentTarget.dataset.index || '',
      that = this;
    let city = this.data.citySel;
    let newcity = e.currentTarget.dataset.val.cityName;
    console.log(newcity)
    if (newcity != undefined) {
      wx.setStorageSync("cityname", newcity);
    }

   
    let url = 'index/Index/set_city', params = {
      city: newcity,

    }
    app.post(url, params).then((res) => {
      console.log(res);



    }).catch((err) => {

    })

    wx.navigateBack({
      checked:true
    })
  },

  //点击热门城市
  cityTaphot(e){
    console.log(e)
    let newcity = e.currentTarget.dataset.val;
    console.log(newcity)
    if (newcity != undefined) {
      wx.setStorageSync("cityname", newcity);
    }


    let url = 'index/Index/set_city', params = {
      city: newcity,

    }
    app.post(url, params).then((res) => {
      console.log(res);



    }).catch((err) => {

    })

    wx.navigateBack({
      checked: true
    })
  },
  //点击历史记录
  cityTaphistory(e){
    let newcity = e.currentTarget.dataset.val;
    console.log(newcity)
    if (newcity != undefined) {
      wx.setStorageSync("cityname", newcity);
    }

    wx.navigateBack({
      checked: true
    })
  },
  //点击城市字母
  letterTap(e) {
    const Item = e.currentTarget.dataset.item;
    this.setData({
      cityListId: Item
    });
    console.log("..............." + this.data.cityListId);
  },
  //调用定位

  //获取热门城市

  gethotcity() {
    let that = this;
    var url = 'index/Index/get_city';
    var params = {
    }
    app.post(url, params).then((res) => {
      console.log(res);
      that.setData({
        hot_list: res.hot_city,
        history_list: res.history_list
      })

      console.log(that.data.newcity)


    }).catch((err) => {

    })

  },

  onShow() {
    console.log(getApp());
    let that = this,
      cityOrTime = wx.getStorageSync('locatecity') || {},
      time = new Date().getTime(),
      city = '';
    if (!cityOrTime.time || (time - cityOrTime.time > 1800000)) {//每隔30分钟请求一次定位
      
    } else {//如果未满30分钟,那么直接从本地缓存里取值
      that.setData({
        locateCity: cityOrTime.city
      })
    }
    that.getcity()

    that.gethotcity()

  }
})