WebApp【公共组件库】@前端(For Git Submodule)
Tevin
2022-02-21 58cec38eef64d74f77fd2688911dff380f1b2a24
forms/chinaArea/ChinaLocations.js
@@ -1,11 +1,12 @@
/**
 * ChinaLocations
 * ChinaLocations For Normal
 * @author Tevin
 */
import ChinaLocationData from './ChinaLocationData.json';
const locationTree = [];
Object.keys(ChinaLocationData).forEach((code1) => {
    const province = {
        label: ChinaLocationData[code1].name,
@@ -17,6 +18,7 @@
        const city = {
            label: children1[code2].name,
            value: code2,
            area: children1[code2].area,  // 电话区码
            children: [],
        };
        if (typeof children1[code2].children !== 'undefined') {
@@ -34,7 +36,12 @@
});
export default {
    locationTree,
    onReady(callback) {
        callback();
    },
    getLocationTree() {
        return locationTree;
    },
    // 获取省市区拼合文本
    getRegionText(regions) {
        if (regions.length === 0) {
@@ -43,12 +50,17 @@
        let address = '';
        let tempLocationData = ChinaLocationData;
        regions.forEach((code) => {
            if (typeof tempLocationData[code].name === 'string') {
                address += tempLocationData[code].name;
            if (!code || !tempLocationData[code]) {
                address.push('');
                tempLocationData = [];
            } else {
                address += tempLocationData[code];
                if (typeof tempLocationData[code].name === 'string') {
                    address += tempLocationData[code].name;
                } else {
                    address += tempLocationData[code];
                }
                tempLocationData = tempLocationData[code].children;
            }
            tempLocationData = tempLocationData[code].children;
        });
        return address;
    },
@@ -63,15 +75,17 @@
        let address = [];
        let tempLocationData = ChinaLocationData;
        regions.forEach((code) => {
            if (!tempLocationData[code]) {
                return;
            }
            if (typeof tempLocationData[code].name === 'string') {
                address.push(tempLocationData[code].name);
            if (!code || !tempLocationData[code]) {
                address.push('');
                tempLocationData = [];
            } else {
                address.push(tempLocationData[code]);
                if (typeof tempLocationData[code].name === 'string') {
                    address.push(tempLocationData[code].name);
                } else {
                    address.push(tempLocationData[code]);
                }
                tempLocationData = tempLocationData[code].children;
            }
            tempLocationData = tempLocationData[code].children;
        });
        return address;
    },
@@ -96,7 +110,7 @@
                            if (provinceChildren[cityCode].name === regions[1]) {
                                codes[1] = cityCode;
                                // 区
                                const areaChildren = provinceChildren[cityCode].children;
                                const areaChildren = provinceChildren[cityCode].children || [];
                                for (let areaCode in areaChildren) {
                                    if (areaChildren.hasOwnProperty(areaCode)) {
                                        if (areaChildren[areaCode] === regions[2]) {
@@ -115,4 +129,33 @@
        }
        return codes;
    },
    // 电话区码
    getRegionsArea(regions) {
        if (typeof regions === 'string') {
            regions = regions.split(',');
        }
        if (!regions || regions.length === 0 || !regions[0]) {
            return '';
        }
        let area = '';
        // 省
        for (let provinceCode in ChinaLocationData) {
            if (ChinaLocationData.hasOwnProperty(provinceCode)) {
                if (provinceCode === regions[0]) {
                    // 市
                    const provinceChildren = ChinaLocationData[provinceCode].children;
                    for (let cityCode in provinceChildren) {
                        if (provinceChildren.hasOwnProperty(cityCode)) {
                            if (cityCode === regions[1]) {
                                area = provinceChildren[cityCode].area;
                                break;
                            }
                        }
                    }
                    break;
                }
            }
        }
        return area;
    },
};