const app = getApp(); Component({ properties: { // 省份名称 pname: { type: String, value: '', }, // 省份ID pid: { type: String, value: '', }, // 城市名称 cname: { type: String, value: '', }, // 城市ID cid: { type: String, value: '', }, }, observers: { show(newVal: boolean) { this.triggerEvent('show', newVal); }, }, data: { show: false, word: '', imageUrl: app.globalData.imageUrl, Timestamp: app.globalData.Timestamp, active: 0, ProvinceName: '', ProvinceId: '', CityName: '', CityId: '', proList: { A: [ { name: '安徽省', code: '340000', }, { name: '澳门特别行政区', code: '820000', }, ], B: [ { name: '北京市', code: '110000', }, ], C: [ { name: '重庆市', code: '500000', }, ], F: [ { name: '福建省', code: '350000', }, ], G: [ { name: '甘肃省', code: '620000', }, { name: '广东省', code: '440000', }, { name: '广西壮族自治区', code: '450000', }, { name: '贵州省', code: '520000', }, ], H: [ { name: '海南省', code: '460000', }, { name: '河北省', code: '130000', }, { name: '河南省', code: '410000', }, { name: '黑龙江省', code: '230000', }, { name: '湖北省', code: '420000', }, { name: '湖南省', code: '430000', }, ], J: [ { name: '吉林省', code: '220000', }, { name: '江苏省', code: '320000', }, { name: '江西省', code: '360000', }, ], L: [ { name: '辽宁省', code: '210000', }, ], N: [ { name: '宁夏回族自治区', code: '640000', }, { name: '内蒙古自治区', code: '150000', }, ], Q: [ { name: '青海省', code: '630000', }, ], S: [ { name: '山东省', code: '370000', }, { name: '山西省', code: '140000', }, { name: '陕西省', code: '610000', }, { name: '上海市', code: '310000', }, { name: '四川省', code: '510000', }, ], T: [ { name: '天津市', code: '120000', }, { name: '台湾省', code: '710000', }, ], X: [ { name: '西藏自治区', code: '540000', }, { name: '新疆维吾尔自治区', code: '650000', }, { name: '香港特别行政区', code: '810000', }, ], Y: [ { name: '云南省', code: '530000', }, ], Z: [ { name: '浙江省', code: '330000', }, ], }, area: [] as any, range: [], scrollIntoView0: '', scrollIntoView1: '', }, methods: { handleShow() { this.setData({ show: true, ProvinceName: this.data.pname || '', ProvinceId: this.data.pid || '', CityName: this.data.cname || '', CityId: this.data.cid || '', scrollIntoView0: this.data.pid || '', scrollIntoView1: this.data.cid || '', }); this.getArea(); }, getArea() { wx.ajax({ method: 'GET', url: '/js/area.json', isJSON: true, }).then((res) => { this.setData({ area: res, }); this.getRangeList(); }); }, handleItem(e: any) { const { code, name } = e.currentTarget.dataset; this.setData({ ProvinceId: code, ProvinceName: name, CityId: '', CityName: '', }); this.getRangeList(); }, handleChangeCity(e: any) { const { code, name } = e.currentTarget.dataset; this.setData({ CityId: code, CityName: name, }); }, handleShare() { this.setData({ show: false, }); this.triggerEvent('ok', { ProvinceName: this.data.ProvinceName, ProvinceId: this.data.ProvinceId, CityName: this.data.CityName, CityId: this.data.CityId, }); }, handleSelect(e) { const { id } = e.currentTarget.dataset; this.setData({ word: id, scrollIntoView0: id, }); }, getRangeList() { const { area, ProvinceId } = this.data; if (!ProvinceId) return; const range = area.filter((item: any) => item.value == ProvinceId)[0].children; this.setData({ range, active: 1, scrollIntoView0: '', scrollIntoView1: `id${this.data.CityId}`, }); }, handleProvince() { this.setData({ active: 0, scrollIntoView0: this.data.word || `id${this.data.ProvinceId}`, scrollIntoView1: '', }); }, handleCity() { const { ProvinceId } = this.data; if (!ProvinceId) { wx.showToast({ title: '请先选择省份', icon: 'none', }); return; } this.getRangeList(); }, handleClose() { this.setData({ show: false, }); }, }, });