mat/frontend/src/utils/region.js

29 lines
709 B
JavaScript

import { codeToText, regionData } from 'element-china-area-data'
const buildMap = (nodes, map) => {
nodes.forEach((node) => {
if (node?.value && node?.label) {
map[node.value] = node.label
}
if (node?.children?.length) {
buildMap(node.children, map)
}
})
}
const fallbackMap = {}
if (!codeToText && Array.isArray(regionData)) {
buildMap(regionData, fallbackMap)
}
export const regionLabel = (code) => {
if (!code) return ''
const mapping = codeToText || fallbackMap
return mapping?.[code] || code
}
export const formatRegion = (province, city, district) => {
const parts = [province, city, district].filter(Boolean).map(regionLabel)
return parts.join(' ')
}