feat: migrate app routes and business modules
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import { createRequestError } from './request-client.js'
|
||||
import { normalizeResponseText } from './response-normalizers.js'
|
||||
|
||||
export const normalizeRegionParentCode = (value) => {
|
||||
if (value === undefined || value === null || value === '') return '0'
|
||||
if (typeof value !== 'string' || !value.trim()) throw new TypeError('地区父级标识无效')
|
||||
return value.trim()
|
||||
}
|
||||
|
||||
export const normalizeRegionCode = (value) => {
|
||||
if (typeof value !== 'string' || !value.trim()) throw new TypeError('行政区划编码无效')
|
||||
return value.trim()
|
||||
}
|
||||
|
||||
export const normalizeRegionSelectorItems = (value) => {
|
||||
if (!Array.isArray(value)) {
|
||||
throw createRequestError('地区选择响应不是列表', 'REGION_RESPONSE_INVALID')
|
||||
}
|
||||
return value.map((item) => {
|
||||
if (!item || typeof item !== 'object' || Array.isArray(item)) {
|
||||
throw createRequestError('地区选择响应包含无效条目', 'REGION_RESPONSE_INVALID')
|
||||
}
|
||||
const regionCode = normalizeResponseText(item.regionCode ?? item.value, 'regionCode')
|
||||
const label = normalizeResponseText(item.label ?? item.regionName, 'label')
|
||||
if (!regionCode || !label) {
|
||||
throw createRequestError('地区选择响应缺少地区名称或标识', 'REGION_RESPONSE_INVALID')
|
||||
}
|
||||
return {
|
||||
regionCode,
|
||||
label,
|
||||
parentCode: normalizeResponseText(item.parentCode, 'parentCode'),
|
||||
leaf: item.leaf === true,
|
||||
regionLevel: Number.isInteger(item.regionLevel) ? item.regionLevel : null
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user