export function isEnglishLocale(i18n) { return !!(i18n && i18n.locale === 'en-US') } export function getDictLabel(item, isEn) { if (!item) return '' if (isEn) { return item.dict_value_en || item.dict_value_zh || item.dict_value || '' } return item.dict_value_zh || item.dict_value || item.dict_value_en || '' } export function extractConsultOptionList(res) { if (res && Array.isArray(res.data)) return res.data if (res && res.data && Array.isArray(res.data.data)) return res.data.data return [] } export function normalizeDictOptions(list, type) { return list .filter(item => item && item.dict_type === type) .sort((a, b) => Number(a.sort_order || 0) - Number(b.sort_order || 0)) .map(item => ({ id: String(item.dict_key), nameZh: item.dict_value_zh || item.dict_value || '', nameEn: item.dict_value_en || item.dict_value_zh || item.dict_value || '' })) } export function parseDirectionParts(label, isEn) { if (!label) { return { title: '', desc: '' } } const text = String(label) if (isEn) { const match = text.match(/^(.+?)\s*\((.+)\)\s*$/) return match ? { title: match[1].trim(), desc: match[2].trim() } : { title: text, desc: '' } } const match = text.match(/^(.+?)((.+?))$/) return match ? { title: match[1].trim(), desc: match[2].trim() } : { title: text, desc: '' } } export function normalizeDirectionOptions(list) { return list .filter(item => item && item.dict_type === 'direction') .sort((a, b) => Number(a.sort_order || 0) - Number(b.sort_order || 0)) .map(item => { const nameZh = item.dict_value_zh || item.dict_value || '' const nameEn = item.dict_value_en || nameZh const parts = parseDirectionParts(nameZh, false) return { id: String(item.dict_key), nameZh, nameEn, titleZh: parts.title, descZh: parts.desc, titleEn: parseDirectionParts(nameEn, true).title, descEn: parseDirectionParts(nameEn, true).desc } }) } export function localizeDictOptions(options, isEn) { return (options || []).map(item => ({ ...item, name: isEn ? item.nameEn : item.nameZh })) } export function localizeDirectionOptions(options, isEn) { return (options || []).map(item => ({ ...item, name: isEn ? item.nameEn : item.nameZh, title: isEn ? item.titleEn : item.titleZh, desc: isEn ? item.descEn : item.descZh })) }