152 lines
5.9 KiB
JavaScript
152 lines
5.9 KiB
JavaScript
// pages/city-selector/city-selector.js - 城市选择页面
|
||
|
||
Page({
|
||
data: {
|
||
statusBarHeight: 44,
|
||
navBarHeight: 44,
|
||
totalNavHeight: 88,
|
||
|
||
// 当前选中的城市
|
||
selectedCity: '',
|
||
|
||
// 热门城市(一线城市)
|
||
hotCities: [
|
||
'北京市', '上海市', '广州市', '深圳市', '杭州市', '长沙市'
|
||
],
|
||
|
||
// 全国主要城市(按首字母分组)
|
||
cityGroups: [
|
||
{
|
||
letter: 'A',
|
||
cities: ['鞍山市', '安庆市', '安阳市', '安顺市']
|
||
},
|
||
{
|
||
letter: 'B',
|
||
cities: ['北京市', '保定市', '包头市', '蚌埠市', '宝鸡市', '本溪市', '滨州市']
|
||
},
|
||
{
|
||
letter: 'C',
|
||
cities: ['重庆市', '成都市', '长沙市', '长春市', '常州市', '沧州市', '承德市', '赤峰市', '潮州市', '郴州市', '滁州市', '常德市']
|
||
},
|
||
{
|
||
letter: 'D',
|
||
cities: ['大连市', '东莞市', '大庆市', '大同市', '丹东市', '德州市', '东营市', '德阳市', '达州市']
|
||
},
|
||
{
|
||
letter: 'F',
|
||
cities: ['佛山市', '福州市', '抚顺市', '阜阳市', '抚州市', '防城港市']
|
||
},
|
||
{
|
||
letter: 'G',
|
||
cities: ['广州市', '贵阳市', '桂林市', '赣州市', '广元市', '贵港市']
|
||
},
|
||
{
|
||
letter: 'H',
|
||
cities: ['杭州市', '哈尔滨市', '合肥市', '海口市', '呼和浩特市', '惠州市', '邯郸市', '衡阳市', '淮安市', '湖州市', '葫芦岛市', '淮南市', '黄石市', '菏泽市', '衡水市', '淮北市', '黄冈市', '怀化市', '鹤壁市', '河源市', '贺州市']
|
||
},
|
||
{
|
||
letter: 'J',
|
||
cities: ['济南市', '济宁市', '吉林市', '锦州市', '金华市', '嘉兴市', '江门市', '九江市', '焦作市', '荆州市', '吉安市', '揭阳市', '景德镇市', '晋中市', '晋城市', '荆门市', '鸡西市', '佳木斯市']
|
||
},
|
||
{
|
||
letter: 'K',
|
||
cities: ['昆明市', '开封市']
|
||
},
|
||
{
|
||
letter: 'L',
|
||
cities: ['兰州市', '洛阳市', '廊坊市', '临沂市', '柳州市', '连云港市', '聊城市', '泸州市', '漯河市', '娄底市', '六安市', '龙岩市', '莱芜市', '辽阳市', '丽水市', '六盘水市', '辽源市', '来宾市', '临汾市', '吕梁市']
|
||
},
|
||
{
|
||
letter: 'M',
|
||
cities: ['绵阳市', '茂名市', '梅州市', '马鞍山市', '牡丹江市', '眉山市']
|
||
},
|
||
{
|
||
letter: 'N',
|
||
cities: ['南京市', '宁波市', '南昌市', '南宁市', '南通市', '南阳市', '南充市', '宁德市', '内江市', '南平市']
|
||
},
|
||
{
|
||
letter: 'P',
|
||
cities: ['平顶山市', '盘锦市', '莆田市', '萍乡市', '濮阳市', '攀枝花市']
|
||
},
|
||
{
|
||
letter: 'Q',
|
||
cities: ['青岛市', '泉州市', '秦皇岛市', '齐齐哈尔市', '清远市', '曲靖市', '衢州市', '钦州市', '庆阳市']
|
||
},
|
||
{
|
||
letter: 'R',
|
||
cities: ['日照市']
|
||
},
|
||
{
|
||
letter: 'S',
|
||
cities: ['上海市', '深圳市', '苏州市', '沈阳市', '石家庄市', '汕头市', '绍兴市', '三亚市', '宿迁市', '商丘市', '十堰市', '韶关市', '遂宁市', '宿州市', '邵阳市', '上饶市', '汕尾市', '三明市', '朔州市', '四平市', '松原市', '随州市', '绥化市', '双鸭山市', '石嘴山市']
|
||
},
|
||
{
|
||
letter: 'T',
|
||
cities: ['天津市', '太原市', '唐山市', '泰安市', '台州市', '泰州市', '铁岭市', '通辽市', '通化市', '铜陵市', '铜川市', '铜仁市', '天水市']
|
||
},
|
||
{
|
||
letter: 'W',
|
||
cities: ['武汉市', '无锡市', '温州市', '潍坊市', '芜湖市', '威海市', '乌鲁木齐市', '梧州市', '渭南市', '乌海市', '乌兰察布市']
|
||
},
|
||
{
|
||
letter: 'X',
|
||
cities: ['西安市', '厦门市', '徐州市', '襄阳市', '新乡市', '湘潭市', '许昌市', '信阳市', '咸阳市', '孝感市', '邢台市', '咸宁市', '宣城市', '忻州市', '西宁市', '湘西土家族苗族自治州']
|
||
},
|
||
{
|
||
letter: 'Y',
|
||
cities: ['烟台市', '扬州市', '宜昌市', '盐城市', '银川市', '岳阳市', '运城市', '榆林市', '宜宾市', '阳江市', '玉林市', '宜春市', '营口市', '益阳市', '永州市', '玉溪市', '延安市', '鹰潭市', '伊春市', '云浮市', '阳泉市', '延边朝鲜族自治州']
|
||
},
|
||
{
|
||
letter: 'Z',
|
||
cities: ['郑州市', '珠海市', '中山市', '淄博市', '株洲市', '镇江市', '湛江市', '漳州市', '遵义市', '舟山市', '枣庄市', '张家口市', '周口市', '驻马店市', '肇庆市', '自贡市', '资阳市', '张家界市', '昭通市', '中卫市', '张掖市']
|
||
}
|
||
]
|
||
},
|
||
|
||
onLoad(options) {
|
||
// 获取导航栏高度
|
||
const systemInfo = wx.getSystemInfoSync()
|
||
const statusBarHeight = systemInfo.statusBarHeight || 44
|
||
const menuButton = wx.getMenuButtonBoundingClientRect()
|
||
const navBarHeight = menuButton.height + (menuButton.top - statusBarHeight) * 2
|
||
const totalNavHeight = statusBarHeight + navBarHeight
|
||
|
||
this.setData({
|
||
statusBarHeight,
|
||
navBarHeight,
|
||
totalNavHeight,
|
||
selectedCity: options.current || '深圳市'
|
||
})
|
||
},
|
||
|
||
/**
|
||
* 返回上一页
|
||
*/
|
||
onBack() {
|
||
wx.navigateBack()
|
||
},
|
||
|
||
/**
|
||
* 选择城市
|
||
*/
|
||
onSelectCity(e) {
|
||
const city = e.currentTarget.dataset.city
|
||
|
||
// 获取上一页面
|
||
const pages = getCurrentPages()
|
||
const prevPage = pages[pages.length - 2]
|
||
|
||
// 更新上一页面的城市数据
|
||
if (prevPage) {
|
||
prevPage.setData({ selectedCity: city })
|
||
// 如果上一页面有loadActivityList方法,调用它重新加载数据
|
||
if (typeof prevPage.loadActivityList === 'function') {
|
||
prevPage.loadActivityList()
|
||
}
|
||
}
|
||
|
||
// 返回上一页
|
||
wx.navigateBack()
|
||
}
|
||
})
|