diff --git a/frontend/admin-web/src/types/system-account.types.ts b/frontend/admin-web/src/types/system-account.types.ts index 005eac00..7825bc82 100644 --- a/frontend/admin-web/src/types/system-account.types.ts +++ b/frontend/admin-web/src/types/system-account.types.ts @@ -470,9 +470,135 @@ export const PROVINCE_CODE_NAMES: Record = { '820000': '澳门特别行政区', }; +/** + * 城市行政区划代码到城市名称的映射 + * 格式:6位区划代码 -> 城市名称 + */ +const CITY_CODE_NAMES: Record = { + // 北京市 + '110100': '北京市', + // 天津市 + '120100': '天津市', + // 河北省 + '130100': '石家庄市', '130200': '唐山市', '130300': '秦皇岛市', '130400': '邯郸市', + '130500': '邢台市', '130600': '保定市', '130700': '张家口市', '130800': '承德市', + '130900': '沧州市', '131000': '廊坊市', '131100': '衡水市', + // 山西省 + '140100': '太原市', '140200': '大同市', '140300': '阳泉市', '140400': '长治市', + '140500': '晋城市', '140600': '朔州市', '140700': '晋中市', '140800': '运城市', + '140900': '忻州市', '141000': '临汾市', '141100': '吕梁市', + // 内蒙古 + '150100': '呼和浩特市', '150200': '包头市', '150300': '乌海市', '150400': '赤峰市', + '150500': '通辽市', '150600': '鄂尔多斯市', '150700': '呼伦贝尔市', '150800': '巴彦淖尔市', + '150900': '乌兰察布市', + // 辽宁省 + '210100': '沈阳市', '210200': '大连市', '210300': '鞍山市', '210400': '抚顺市', + '210500': '本溪市', '210600': '丹东市', '210700': '锦州市', '210800': '营口市', + '210900': '阜新市', '211000': '辽阳市', '211100': '盘锦市', '211200': '铁岭市', + '211300': '朝阳市', '211400': '葫芦岛市', + // 吉林省 + '220100': '长春市', '220200': '吉林市', '220300': '四平市', '220400': '辽源市', + '220500': '通化市', '220600': '白山市', '220700': '松原市', '220800': '白城市', + // 黑龙江省 + '230100': '哈尔滨市', '230200': '齐齐哈尔市', '230300': '鸡西市', '230400': '鹤岗市', + '230500': '双鸭山市', '230600': '大庆市', '230700': '伊春市', '230800': '佳木斯市', + '230900': '七台河市', '231000': '牡丹江市', '231100': '黑河市', '231200': '绥化市', + // 上海市 + '310100': '上海市', + // 江苏省 + '320100': '南京市', '320200': '无锡市', '320300': '徐州市', '320400': '常州市', + '320500': '苏州市', '320600': '南通市', '320700': '连云港市', '320800': '淮安市', + '320900': '盐城市', '321000': '扬州市', '321100': '镇江市', '321200': '泰州市', + '321300': '宿迁市', + // 浙江省 + '330100': '杭州市', '330200': '宁波市', '330300': '温州市', '330400': '嘉兴市', + '330500': '湖州市', '330600': '绍兴市', '330700': '金华市', '330800': '衢州市', + '330900': '舟山市', '331000': '台州市', '331100': '丽水市', + // 安徽省 + '340100': '合肥市', '340200': '芜湖市', '340300': '蚌埠市', '340400': '淮南市', + '340500': '马鞍山市', '340600': '淮北市', '340700': '铜陵市', '340800': '安庆市', + '341000': '黄山市', '341100': '滁州市', '341200': '阜阳市', '341300': '宿州市', + '341500': '六安市', '341600': '亳州市', '341700': '池州市', '341800': '宣城市', + // 福建省 + '350100': '福州市', '350200': '厦门市', '350300': '莆田市', '350400': '三明市', + '350500': '泉州市', '350600': '漳州市', '350700': '南平市', '350800': '龙岩市', + '350900': '宁德市', + // 江西省 + '360100': '南昌市', '360200': '景德镇市', '360300': '萍乡市', '360400': '九江市', + '360500': '新余市', '360600': '鹰潭市', '360700': '赣州市', '360800': '吉安市', + '360900': '宜春市', '361000': '抚州市', '361100': '上饶市', + // 山东省 + '370100': '济南市', '370200': '青岛市', '370300': '淄博市', '370400': '枣庄市', + '370500': '东营市', '370600': '烟台市', '370700': '潍坊市', '370800': '济宁市', + '370900': '泰安市', '371000': '威海市', '371100': '日照市', '371300': '临沂市', + '371400': '德州市', '371500': '聊城市', '371600': '滨州市', '371700': '菏泽市', + // 河南省 + '410100': '郑州市', '410200': '开封市', '410300': '洛阳市', '410400': '平顶山市', + '410500': '安阳市', '410600': '鹤壁市', '410700': '新乡市', '410800': '焦作市', + '410900': '濮阳市', '411000': '许昌市', '411100': '漯河市', '411200': '三门峡市', + '411300': '南阳市', '411400': '商丘市', '411500': '信阳市', '411600': '周口市', + '411700': '驻马店市', + // 湖北省 + '420100': '武汉市', '420200': '黄石市', '420300': '十堰市', '420500': '宜昌市', + '420600': '襄阳市', '420700': '鄂州市', '420800': '荆门市', '420900': '孝感市', + '421000': '荆州市', '421100': '黄冈市', '421200': '咸宁市', '421300': '随州市', + // 湖南省 + '430100': '长沙市', '430200': '株洲市', '430300': '湘潭市', '430400': '衡阳市', + '430500': '邵阳市', '430600': '岳阳市', '430700': '常德市', '430800': '张家界市', + '430900': '益阳市', '431000': '郴州市', '431100': '永州市', '431200': '怀化市', + '431300': '娄底市', + // 广东省 + '440100': '广州市', '440200': '韶关市', '440300': '深圳市', '440400': '珠海市', + '440500': '汕头市', '440600': '佛山市', '440700': '江门市', '440800': '湛江市', + '440900': '茂名市', '441200': '肇庆市', '441300': '惠州市', '441400': '梅州市', + '441500': '汕尾市', '441600': '河源市', '441700': '阳江市', '441800': '清远市', + '441900': '东莞市', '442000': '中山市', '445100': '潮州市', '445200': '揭阳市', + '445300': '云浮市', + // 广西壮族自治区 + '450100': '南宁市', '450200': '柳州市', '450300': '桂林市', '450400': '梧州市', + '450500': '北海市', '450600': '防城港市', '450700': '钦州市', '450800': '贵港市', + '450900': '玉林市', '451000': '百色市', '451100': '贺州市', '451200': '河池市', + '451300': '来宾市', '451400': '崇左市', + // 海南省 + '460100': '海口市', '460200': '三亚市', '460300': '三沙市', '460400': '儋州市', + // 重庆市 + '500100': '重庆市', + // 四川省 + '510100': '成都市', '510300': '自贡市', '510400': '攀枝花市', '510500': '泸州市', + '510600': '德阳市', '510700': '绵阳市', '510800': '广元市', '510900': '遂宁市', + '511000': '内江市', '511100': '乐山市', '511300': '南充市', '511400': '眉山市', + '511500': '宜宾市', '511600': '广安市', '511700': '达州市', '511800': '雅安市', + '511900': '巴中市', '512000': '资阳市', + // 贵州省 + '520100': '贵阳市', '520200': '六盘水市', '520300': '遵义市', '520400': '安顺市', + '520500': '毕节市', '520600': '铜仁市', + // 云南省 + '530100': '昆明市', '530300': '曲靖市', '530400': '玉溪市', '530500': '保山市', + '530600': '昭通市', '530700': '丽江市', '530800': '普洱市', '530900': '临沧市', + // 西藏自治区 + '540100': '拉萨市', '540200': '日喀则市', '540300': '昌都市', '540400': '林芝市', + '540500': '山南市', '540600': '那曲市', + // 陕西省 + '610100': '西安市', '610200': '铜川市', '610300': '宝鸡市', '610400': '咸阳市', + '610500': '渭南市', '610600': '延安市', '610700': '汉中市', '610800': '榆林市', + '610900': '安康市', '611000': '商洛市', + // 甘肃省 + '620100': '兰州市', '620200': '嘉峪关市', '620300': '金昌市', '620400': '白银市', + '620500': '天水市', '620600': '武威市', '620700': '张掖市', '620800': '平凉市', + '620900': '酒泉市', '621000': '庆阳市', '621100': '定西市', '621200': '陇南市', + // 青海省 + '630100': '西宁市', '630200': '海东市', + // 宁夏回族自治区 + '640100': '银川市', '640200': '石嘴山市', '640300': '吴忠市', '640400': '固原市', + '640500': '中卫市', + // 新疆维吾尔自治区 + '650100': '乌鲁木齐市', '650200': '克拉玛依市', '650400': '吐鲁番市', '650500': '哈密市', +}; + /** * 获取账户显示名称(同时保留编码) * 格式:名称 (编码) + * [2026-01-07] 更新:市级账户显示真实城市名称 */ export function getAccountDisplayName(accountSequence: string): string { // 检查是否是系统账户 @@ -481,19 +607,21 @@ export function getAccountDisplayName(accountSequence: string): string { } // 检查是否是6位数字的区域代码(如 330100) if (/^\d{6}$/.test(accountSequence)) { + // 先尝试查找城市名称 + const cityName = CITY_CODE_NAMES[accountSequence]; + if (cityName) { + return `${cityName} (${accountSequence})`; + } + // 尝试省级代码 const provinceCode = accountSequence.substring(0, 2); const cityPart = accountSequence.substring(2, 4); const provinceName = PROVINCE_CODE_NAMES[provinceCode]; if (provinceName) { - // 判断是省级还是市级 const shortProvinceName = provinceName.replace(/省|市|自治区|特别行政区|壮族|回族|维吾尔/g, ''); if (cityPart === '00') { // 省级 return `${shortProvinceName}省 (${accountSequence})`; - } else { - // 市级 - 只显示省份简称 + 市级标识 - return `${shortProvinceName}市级 (${accountSequence})`; } } } @@ -503,16 +631,23 @@ export function getAccountDisplayName(accountSequence: string): string { const prefix = accountSequence.charAt(0); const regionCode = accountSequence.substring(1); // 后6位是区域代码 const provinceCode = regionCode.substring(0, 2); - const cityPart = regionCode.substring(2, 4); const provinceName = PROVINCE_CODE_NAMES[provinceCode]; + if (prefix === '8') { + // 市区域账户 - 优先查找城市名称 + const cityName = CITY_CODE_NAMES[regionCode]; + if (cityName) { + return `${cityName} (${accountSequence})`; + } + } + if (provinceName) { const shortProvinceName = provinceName.replace(/省|市|自治区|特别行政区|壮族|回族|维吾尔/g, ''); if (prefix === '9') { // 省区域账户 return `${shortProvinceName}省级 (${accountSequence})`; } else if (prefix === '8') { - // 市区域账户 + // 市区域账户(无法找到城市名称时的fallback) return `${shortProvinceName}市级 (${accountSequence})`; } }