ai-c/pages/city-selector/city-selector.js
2026-02-02 18:21:32 +08:00

152 lines
5.9 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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()
}
})