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