import Vue from 'vue' /** * 省市区 */ export default class Area { /** * 构造器 * @param express */ constructor(pcaa) { if (!pcaa) { pcaa = Vue.prototype.$Jpcaa; } let arr = [] const province = pcaa['86'] Object.keys(province).map(key => { arr.push({id: key, text: province[key], pid: '86', index: 1}); const city = pcaa[key]; Object.keys(city).map(key2 => { arr.push({id: key2, text: city[key2], pid: key, index: 2}); const qu = pcaa[key2]; if (qu) { Object.keys(qu).map(key3 => { arr.push({id: key3, text: qu[key3], pid: key2, index: 3}); }) } }) }) this.all = arr; } get pca() { return this.all; } getCode(text) { if (!text || text.length == 0) { return '' } for (let item of this.all) { if (item.text === text) { return item.id; } } } getText(code) { if (!code || code.length == 0) { return '' } let arr = [] this.getAreaBycode(code, arr, 3); return arr.join('/') } getRealCode(code) { let arr = [] this.getPcode(code, arr, 3) return arr; } getPcode(id, arr, index) { for (let item of this.all) { if (item.id === id && item.index == index) { arr.unshift(id) if (item.pid != '86') { this.getPcode(item.pid, arr, --index) } } } } getAreaBycode(code, arr, index) { for (let item of this.all) { if (item.id === code && item.index == index) { arr.unshift(item.text); if (item.pid != '86') { this.getAreaBycode(item.pid, arr, --index) } } } } }