cityList.js 6.9 KB
import {
  request
} from '../../request/index.js'
const a = getApp()
Page({
  data: {
    imagesUrl: a.globalData.baseUrl,
    //下面是字母排序
    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: ['北京', '上海', '广州', '深圳', '成都', '杭州'],
    locateCity: '',
    hotCity: [],
    cityInput: [],
    letterCITY: [],
    DingWei: '', // 推荐定位
    DWcity: '', // 定位城市
    kw: '',
  },
  onShow() {
    this.getPromotion()
    this.getletter()
    this.getDingWei()
    this.getDWcity()
    let that = this,
      cityOrTime = wx.getStorageSync('locatecity') || {},
      time = new Date().getTime(),
      city = '';
    if (!cityOrTime.time || (time - cityOrTime.time > 1800000)) { //每隔30分钟请求一次定位
      // this.getLocate();
    } else { //如果未满30分钟,那么直接从本地缓存里取值
      that.setData({
        locateCity: cityOrTime.city
      })
    }
  },
  async getPromotion() { // 获取热门城市
    let that = this;
    try {
      const {
        data: {
          data
        }
      } = await
      request({
        url: 'api/citys/hotCity',
      })
      that.setData({
        hotCity: data
      })
      // //  console.log(that.data.hotCity, "城市");
    } catch (err) {
      //  console.log(err);
      that.setData({
        msg: err.msg
      })
      that.popMaskTest()
    }
  },
  async getDingWei() { //推荐位置
    let that = this;
    try {
      const {
        data: {
          data
        }
      } = await
      request({
        url: 'api/citys/tuiCity',
      })
      that.setData({
        DingWei: data
      })
      // //  console.log(that.data.DingWei, "推荐位置");

    } catch (err) {
      //  console.log(err);
      that.setData({
        msg: err.msg
      })
      that.popMaskTest()
    }
  },
  async getDWcity() { //定位城市
    let that = this;
    try {
      const {
        data: {
          data
        }
      } = await
      request({
        url: 'api/citys/dingWei',
      })
      that.setData({
        DWcity: data
      })
      // //  console.log(that.data.DWcity, "定位城市");

    } catch (err) {
      //  console.log(err);
      that.setData({
        msg: err.msg
      })
      that.popMaskTest()
    }
  },
  async getletter() { // 获取城市a-z
    let that = this;
    try {
      const {
        data: {
          data
        }
      } = await
      request({
        url: 'api/citys/allCity',
      })
      that.setData({
        letterCITY: data
      })
      // //  console.log(that.data.letterCITY, "城市a-z");
    } catch (err) {
      //  console.log(err);
      that.setData({
        msg: err.msg
      })
      that.popMaskTest()
    }
  },
  userNameInput() {
    wx.navigateTo({
      url: '/pages/addVehicle/addVehicle'
    })
  },
  //点击城市
  async cityTap(e) {
    const val = e.currentTarget.dataset.val.id || '';
    let types = e.currentTarget.dataset.types || '';
    let Index = e.currentTarget.dataset.index || '';
    let that = this;
    try {
      const {
        data
      } = await request({
        url: 'api/citys/updateCity',
        data: {
          id: val
        }
      })
      that.setData({
        msg: data.msg
      });
      // //  console.log(data);
      that.pagednull()
      that.popMaskTest()
    } catch (err) {
      that.setData({
        msg: err.msg
      })
      that.popMaskTest()
    }


  },
  pagednull() {
    let pages = getCurrentPages(); //获取当前页面pages里的所有信息。
    let prevPage = pages[pages.length - 2]; //prevPage 是获取上一个页面的js里面的pages的所有信息。-2 是上一个页面,-3是上上个页面以此类推。                                                           
    prevPage.setData({ // 将我们想要传递的参数在这里直接setData。上个页面就会执行这里的操作。
      // city_id: val,
    }) //上一个页面内执行setData操作,将我们想要的信息保存住。当我们返回去的时候,页面已经处理完毕。
    //最后就是返回上一个页面。
    wx.navigateBack({
      delta: 1, // 返回上一级页面。
      success: function () {
        //  console.log('成功!')
      }
    })
  },
  //点击城市字母
  letterTap(e) {
    const Item = e.currentTarget.dataset.item;
    this.setData({
      cityListId: Item
    });
    // //  console.log("..............." + this.data.cityListId);
  },
  popMaskTest() {
    wx.showToast({
      title: this.data.msg,
      duration: 1500,
      icon: '',
      mask: true //是否有透明蒙层,默认为false 
      //如果有透明蒙层,弹窗的期间不能点击文档内容 
    })
  },


})