//ANRAN_REGION_DATA from cdn/jsdata // 深拷贝数组 // let scriptEle = document.createElement('script') // scriptEle.setAttribute('src', 'http://upload.ar.wqcms.com/cdn/jsdata/ar_region_data.js?ver=0.1') // document.getElementsByTagName('head')[0].appendChild(scriptEle) // // document.write(""); // require('http://tool.anran.io/cdn/jsdata/ar_region_data.js') import importScript from "@/utils/importScript" import regionInfo from "@/store/modules/region"; let regionScriptLoaded = false const initRegion = function (vueObj) { importScript(process.env.VUE_APP_SYSTEM_JS + `/cdn/jsdata/ar_region_data.js?ver=0.1`, () => { if (regionScriptLoaded) return true regionScriptLoaded = true let ANRAN_REGION_DATA = AR_REGION_DATA // 汉字转code大对象 const rootCode = '234' vueObj.$set(regionInfo.regionInfo.CodeToText, '', '全部') // 计算省 for (const prop in ANRAN_REGION_DATA[rootCode]) { regionInfo.regionInfo.regionData.push({ value: prop, label: ANRAN_REGION_DATA[rootCode][prop] }) regionInfo.regionInfo.CodeToText[prop] = ANRAN_REGION_DATA[rootCode][prop] regionInfo.regionInfo.TextToCode[ANRAN_REGION_DATA[rootCode][prop]] = { code: prop } regionInfo.regionInfo.TextToCode[ANRAN_REGION_DATA[rootCode][prop]]['全部'] = { code: '' } } // 计算市 for (let i = 0, len = regionInfo.regionInfo.regionData.length; i < len; i++) { const provinceCode = regionInfo.regionInfo.regionData[i].value const provinceText = regionInfo.regionInfo.regionData[i].label const provinceChildren = [] for (const prop in ANRAN_REGION_DATA[provinceCode]) { provinceChildren.push({ value: prop, label: ANRAN_REGION_DATA[provinceCode][prop] }) regionInfo.regionInfo.CodeToText[prop] = ANRAN_REGION_DATA[provinceCode][prop] regionInfo.regionInfo.TextToCode[provinceText][ANRAN_REGION_DATA[provinceCode][prop]] = { code: prop } regionInfo.regionInfo.TextToCode[provinceText][ANRAN_REGION_DATA[provinceCode][prop]]['全部'] = { code: '' } } if (provinceChildren.length) { regionInfo.regionInfo.regionData[i].children = provinceChildren } } regionInfo.regionInfo.provinceAndCityData = cloneArray(regionInfo.regionInfo.regionData) // 计算区 for (let i = 0, len = regionInfo.regionInfo.regionData.length; i < len; i++) { const province = regionInfo.regionInfo.regionData[i].children const provinceText = regionInfo.regionInfo.regionData[i].label if (province) { for (let j = 0, len = province.length; j < len; j++) { const cityCode = province[j].value const cityText = province[j].label const cityChildren = [] for (const prop in ANRAN_REGION_DATA[cityCode]) { cityChildren.push({ value: prop, label: ANRAN_REGION_DATA[cityCode][prop] }) regionInfo.regionInfo.CodeToText[prop] = ANRAN_REGION_DATA[cityCode][prop] regionInfo.regionInfo.TextToCode[provinceText][cityText][ANRAN_REGION_DATA[cityCode][prop]] = { code: prop } } if (cityChildren.length) { province[j].children = cityChildren } } } } // 添加“全部”选项 regionInfo.regionInfo.provinceAndCityDataPlus = cloneArray(regionInfo.regionInfo.provinceAndCityData) regionInfo.regionInfo.provinceAndCityDataPlus.unshift({ value: '', label: '全部' }) regionInfo.regionInfo.regionDataPlus = cloneArray(regionInfo.regionInfo.regionData) regionInfo.regionInfo.regionDataPlus.unshift({ value: '', label: '全部' }) }) } //let ANRAN_REGION_DATA = AR_REGION_DATA const cloneArray = function (obj) { const newArray = [] for (const i in obj) { newArray[i] = typeof obj[i] === 'object' ? cloneArray(obj[i]) : obj[i] } return newArray } export default initRegion