Files
income_payments_client/src/components/_util/Area.js
T
2021-09-01 19:02:12 +08:00

79 lines
1.5 KiB
JavaScript

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