// @ts-nocheck import _areaList from './city-china.json'; export const areaList = _areaList // #ifndef UNI-APP-X type UTSJSONObject = Record // #endif // #ifdef UNI-APP-X type Object = UTSJSONObject // #endif type AreaList = { province_list : Map; city_list : Map; county_list : Map; } // type CascaderOption = { // text : string; // value : string; // children ?: CascaderOption[]; // }; const makeOption = ( label : string, value : string, children ?: UTSJSONObject[], ) : UTSJSONObject => ({ label, value, children, }); export function useCascaderAreaData() : UTSJSONObject[] { const city = areaList['city_list'] as UTSJSONObject const county = areaList['county_list'] as UTSJSONObject const province = areaList['province_list'] as UTSJSONObject const provinceMap = new Map(); Object.keys(province).forEach((code) => { provinceMap.set(code.slice(0, 2), makeOption(`${province[code]}`, code, [])); }); const cityMap = new Map(); Object.keys(city).forEach((code) => { const option = makeOption(`${city[code]}`, code, []); cityMap.set(code.slice(0, 4), option); const _province = provinceMap.get(code.slice(0, 2)); if (_province != null) { (_province['children'] as UTSJSONObject[]).push(option) } }); Object.keys(county).forEach((code) => { const _city = cityMap.get(code.slice(0, 4)); if (_city != null) { (_city['children'] as UTSJSONObject[]).push(makeOption(`${county[code]}`, code, null)); } }); // #ifndef APP-ANDROID || APP-IOS return Array.from(provinceMap.values()); // #endif // #ifdef APP-ANDROID || APP-IOS const obj : UTSJSONObject[] = [] provinceMap.forEach((value, code) => { obj.push(value) }) return obj // #endif }