// 数据来源 // https://github.com/modood/Administrative-divisions-of-China import areas from './areas.json' export interface IArea { name: string code: string children?: IArea[] } class Area { /** * 初始化一个 area 类,如果传入,则指定省份地区。如果不传,则为全国 * @param provinceName 省份名称(全称) */ constructor(private provinceName?: string) {} /** * 获取省份地区数据 * @param provinceName 省份名称(全称),如果名称错误,返回空数组 */ public static getProvince(provinceName: string): IArea[] { if (provinceName == '' || provinceName == '全国') { return areas } const result = areas.find((v) => v.name === provinceName)?.children || [] if (!result.length) { if (process.env.NODE_ENV !== 'production') { // eslint-disable-next-line no-console console.warn(`找不到省份 '${provinceName}'`) } } return result } /** * 获取当前实例下的地区数据 */ public areas(): IArea[] { if (!this.provinceName) { return areas } return Area.getProvince(this.provinceName) } } export { Area } export default new Area()