代码拉取完成,页面将自动刷新
'use strict'
const fs = require('fs')
const path = require('path')
const division = require('./data/division.json')
const street = require('./data/street.json')
/**
* 获取省份数据
* @Author https://github.com/modood
* @DateTime 2016-10-08 15:50
*/
function getProvinces () {
return division.filter(a => a[4] === '000000').map(a => { return { code: a[0], name: a[1] } })
}
/**
* 获取城市数据
* @Author https://github.com/modood
* @DateTime 2016-10-08 17:58
*/
function getCities () {
return division.filter(a => a[2]).map(a => { return { code: a[0], name: a[2], parent_code: a[4] } })
}
/**
* 获取区县数据
* @Author https://github.com/modood
* @DateTime 2016-10-08 18:10
*/
function getAreas () {
return division.filter(a => a[3]).map(a => { return { code: a[0], name: a[3], parent_code: a[4] } })
}
/**
* 获取乡镇(街道)数据
* @Author https://github.com/modood
* @DateTime 2016-10-09 15:08
*/
function getStreets () {
return street.map(a => { return { code: a[0], name: a[1], pinyin: a[3], parent_code: a[2]} })
}
/**
* 获取省市二级联动数据
* @Author https://github.com/modood
* @DateTime 2016-10-09 15:25
*/
function getAddressPC () {
const doc = {}
const provinces = getProvinces()
const cities = getCities()
provinces.forEach(p => doc[p.name] = cities.filter(c => p.code === c.parent_code).map(c => c.name))
return doc
}
/**
* 获取省市区三级联动数据
* @Author https://github.com/modood
* @DateTime 2016-10-09 16:00
*/
function getAddressPCA () {
const doc = {}
const provinces = getProvinces()
const cities = getCities()
const areas = getAreas()
provinces.forEach(p => {
doc[p.name] = {}
cities.filter(c => p.code === c.parent_code).forEach(c => {
doc[p.name][c.name] = areas.filter(a => c.code === a.parent_code).map(a => a.name)
})
})
return doc
}
/**
* 获取省市区镇四级联动数据
* @Author https://github.com/modood
* @DateTime 2016-10-09 16:09
*/
function getAddressPCAS () {
const doc = {}
const provinces = getProvinces()
const cities = getCities()
const areas = getAreas()
const streets = getStreets()
provinces.forEach(p => {
doc[p.name] = {}
cities.filter(c => p.code === c.parent_code).forEach(c => {
doc[p.name][c.name] = {}
areas.filter(a => c.code === a.parent_code).forEach(a => {
doc[p.name][c.name][a.name] = streets.filter(s => a.code === s.parent_code).map(s => s.name)
})
})
})
return doc
}
/**
* 输出 JSON 文件
* @Author https://github.com/modood
* @DateTime 2016-10-08 17:16
*/
function outputJSON () {
fs.writeFileSync(path.resolve(__dirname, 'dist/provinces.min.json'), JSON.stringify(getProvinces()))
fs.writeFileSync(path.resolve(__dirname, 'dist/cities.min.json'), JSON.stringify(getCities()))
fs.writeFileSync(path.resolve(__dirname, 'dist/areas.min.json'), JSON.stringify(getAreas()))
fs.writeFileSync(path.resolve(__dirname, 'dist/streets.min.json'), JSON.stringify(getStreets()))
fs.writeFileSync(path.resolve(__dirname, 'dist/address2.min.json'), JSON.stringify(getAddressPC()))
fs.writeFileSync(path.resolve(__dirname, 'dist/address3.min.json'), JSON.stringify(getAddressPCA()))
fs.writeFileSync(path.resolve(__dirname, 'dist/address4.min.json'), JSON.stringify(getAddressPCAS()))
console.log('It\'s saved!')
}
module.exports = {
outputJSON,
provinces: require(path.resolve(__dirname, 'dist/provinces.min.json')),
cities: require(path.resolve(__dirname, 'dist/cities.min.json')),
areas: require(path.resolve(__dirname, 'dist/areas.min.json')),
streets: require(path.resolve(__dirname, 'dist/streets.min.json')),
address2: require(path.resolve(__dirname, 'dist/address2.min.json')),
address3: require(path.resolve(__dirname, 'dist/address3.min.json')),
address4: require(path.resolve(__dirname, 'dist/address4.min.json')),
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。