/** * 获取行政区划 * @param {Boolean} allOption 是否在头部添加“全部”选项 * @param {Number} level 获取的分类深度,范围 1 - 4 * @returns */ function enumLocation(allOption = true, level = 4) { const l = _enumLocation(); if (!allOption) { l.shift(); } _deleteByLevel(l, level, 1); return l; } function _enumLocation() { return [ { label: '全部', value: [null, '全部'], }, { label: '上海市', value: ['31', '上海市'], children: [ { label: '上海市', value: ['3100', '上海市'], children: [ { label: '金山区', value: ['310116', '金山区'], children: [ { label: '张堰镇', value: ['310116103', '张堰镇'] }, { label: '亭林镇', value: ['310116104', '亭林镇'] }, { label: '吕巷镇', value: ['310116105', '吕巷镇'] }, { label: '廊下镇', value: ['310116107', '廊下镇'] }, { label: '高新区', value: ['310116503', '高新区'] }, { label: '金山卫镇', value: ['310116109', '金山卫镇'] }, { label: '漕泾镇', value: ['310116112', '漕泾镇'] }, { label: '山阳镇', value: ['310116113', '山阳镇'] , children:[ { label: '万达广场', value: ['31011611301', '万达广场'], }, ]}, { label: '石化街道', value: ['310116001', '石化街道'] }, { label: '朱泾镇', value: ['310116101', '朱泾镇'] }, { label: '枫泾镇', value: ['310116102', '枫泾镇'] }, { label: '碳谷绿湾', value: ['9000', '碳谷绿湾'] }, ], }, { label: '徐汇区', value: ['310104', '徐汇区'], children: [ { label: '漕河泾新兴技术开发区', value: ['310104501', '漕河泾新兴技术开发区'], }, { label: '湖南路街道', value: ['310104004', '湖南路街道'] }, { label: '天平路街道', value: ['310104003', '天平路街道'] }, { label: '虹梅路街道', value: ['310104012', '虹梅路街道'] }, { label: '枫林路街道', value: ['310104008', '枫林路街道'] }, { label: '斜土路街道', value: ['310104007', '斜土路街道'] }, { label: '长桥街道', value: ['310104010', '长桥街道'] }, { label: '田林街道', value: ['310104011', '田林街道'] , children:[ { label: '田尚坊', value: ['31010401101', '田尚坊'], }, ]}, { label: '康健新村街道', value: ['310104013', '康健新村街道'] }, { label: '徐家汇街道', value: ['310104014', '徐家汇街道'] , children:[ { label: '天钥桥', value: ['31010401401', '天钥桥'], }, ]}, { label: '凌云路街道', value: ['310104015', '凌云路街道'] }, { label: '龙华街道', value: ['310104016', '龙华街道'] }, { label: '漕河泾街道', value: ['310104017', '漕河泾街道'] }, { label: '华泾镇', value: ['310104103', '华泾镇'] }, ], }, { label: '静安区', value: ['310106', '静安区'], children: [ { label: '大宁路街道', value: ['310106019', '大宁路街道'] , children:[ { label: '久光中心', value: ['31010601901', '久光中心'], }, ]}, { label: '彭浦新村街道', value: ['310106020', '彭浦新村街道'] }, { label: '临汾路街道', value: ['310106021', '临汾路街道'] }, { label: '芷江西路街道', value: ['310106022', '芷江西路街道'] }, { label: '彭浦镇', value: ['310106101', '彭浦镇'] , children:[ { label: '大融城', value: ['31010610101', '大融城'], }, ]}, { label: '江宁路街道', value: ['310106006', '江宁路街道'] }, { label: '石门二路街道', value: ['310106011', '石门二路街道'] }, { label: '南京西路街道', value: ['310106012', '南京西路街道'] , children:[ { label: 'X88', value: ['31010601201', 'X88'], }, ]}, { label: '静安寺街道', value: ['310106013', '静安寺街道'] }, { label: '曹家渡街道', value: ['310106014', '曹家渡街道'] , children:[ { label: '889', value: ['31010601401', '889'], }, ]}, { label: '天目西路街道', value: ['310106015', '天目西路街道'] }, { label: '北站街道', value: ['310106016', '北站街道'] , children:[ { label: '大悦城', value: ['31010601601', '大悦城'], }, ]}, { label: '宝山路街道', value: ['310106017', '宝山路街道'] }, { label: '共和新路街道', value: ['310106018', '共和新路街道'] }, ], }, { label: '普陀区', value: ['310107', '普陀区'], children: [ { label: '曹杨新村街道', value: ['310107005', '曹杨新村街道'] }, { label: '万里街道', value: ['310107021', '万里街道'] }, { label: '真如镇街道', value: ['310107022', '真如镇街道'] }, { label: '长征镇', value: ['310107102', '长征镇'] }, { label: '桃浦镇', value: ['310107103', '桃浦镇'] }, { label: '石泉路街道', value: ['310107017', '石泉路街道'] }, { label: '甘泉路街道', value: ['310107016', '甘泉路街道'] }, { label: '长寿路街道', value: ['310107015', '长寿路街道'] }, { label: '长风新村街道', value: ['310107014', '长风新村街道'] }, { label: '宜川路街道', value: ['310107020', '宜川路街道'] }, ], }, { label: '闵行区', value: ['310112', '闵行区'], children: [ { label: '江川路街道', value: ['310112001', '江川路街道'] }, { label: '古美街道', value: ['310112006', '古美街道'] }, { label: '新虹街道', value: ['310112008', '新虹街道'] }, { label: '浦锦街道', value: ['310112009', '浦锦街道'] }, { label: '莘庄镇', value: ['310112101', '莘庄镇'] }, { label: '七宝镇', value: ['310112102', '七宝镇'] }, { label: '颛桥镇', value: ['310112103', '颛桥镇'] }, { label: '华漕镇', value: ['310112106', '华漕镇'] }, { label: '虹桥镇', value: ['310112107', '虹桥镇'] }, { label: '梅陇镇', value: ['310112108', '梅陇镇'] }, { label: '吴泾镇', value: ['310112110', '吴泾镇'] }, { label: '马桥镇', value: ['310112112', '马桥镇'] }, { label: '浦江镇', value: ['310112114', '浦江镇'] }, { label: '莘庄工业区', value: ['310112501', '莘庄工业区'] }, ], }, { label: '长宁区', value: ['310105', '长宁区'], children: [ { label: '华阳路街道', value: ['310105001', '华阳路街道'] }, { label: '江苏路街道', value: ['310105002', '江苏路街道'] }, { label: '新华路街道', value: ['310105004', '新华路街道'] }, { label: '周家桥街道', value: ['310105005', '周家桥街道'] }, { label: '天山路街道', value: ['310105006', '天山路街道'] }, { label: '仙霞新村街道', value: ['310105008', '仙霞新村街道'] }, { label: '虹桥街道', value: ['310105009', '虹桥街道'] }, { label: '程家桥街道', value: ['310105010', '程家桥街道'] }, { label: '北新泾街道', value: ['310105011', '北新泾街道'] }, { label: '新泾镇', value: ['310105102', '新泾镇'] }, ], }, { label: '宝山区', value: ['310113', '宝山区'], children: [], }, { label: '嘉定区', value: ['310114', '嘉定区'], children: [], }, ], }, ], }, ]; } // 按照需求的定位精度返回对应数据 function _deleteByLevel(locations, level, step) { if (step == level) { locations.forEach((l) => { if (l.children) { l.children = undefined; } }); return; } else { step++; locations.forEach((l) => { if (l.children) { _deleteByLevel(l.children, level, step); } }); } } export { enumLocation };