WebApp【公共组件库】@前端(For Git Submodule)
Tevin
2023-07-31 ad01ea7d8ea42d9df787b6847c2d4272c5740c5b
地址联动组件,地址识别跟随升级
2 files modified
19 ■■■■ changed files
forms/chinaArea/CChinaArea.vue 4 ●●● patch | view | raw | blame | history
forms/chinaArea/SmartAddress.js 15 ●●●● patch | view | raw | blame | history
forms/chinaArea/CChinaArea.vue
@@ -226,8 +226,10 @@
                            address.province.replace(/省|市|自治区|特别行政区/g, ''),
                            address.city,
                            address.district,
                            address.street,
                        ];
                        if (this.level === 4) {
                            regions.push(address.street);
                        }
                        $locations.getRegionCodes(regions, codes => {
                            if (codes && codes.length > 0) {
                                $locations.getRegionNames(codes, names => {
forms/chinaArea/SmartAddress.js
@@ -139,6 +139,7 @@
    _checkAddress(list) {
        const adrLabelReg = /地址|详细地址|公司地址|联系地址|地区|所在地区/;
        $locations.getLocationTree(3, chinaTree => {
        for (let i = 0, item; (item = list[i]); i++) {
            if (!item.content) {
                continue;
@@ -150,19 +151,19 @@
                    break;
                }
            } else {
                if (this._isAddress(item.content)) {
                    this._parseAddress(item.content);
                    if (this._isAddress(chinaTree, item.content)) {
                        this._parseAddress(chinaTree, item.content);
                    list.splice(i, 1);
                    break;
                }
            }
        }
        })
    }
    _isAddress(content) {
    _isAddress(tree, content) {
        content = content.replace('中国', '');
        const provinceNames = $locations.getLocationTree()
            .map(lv1 => lv1.label.replace('特别行政区', '').replace('省', ''));
        const provinceNames = tree.map(lv1 => lv1.label.replace('特别行政区', '').replace('省', ''));
        for (let province of provinceNames) {
            if (content.indexOf(province) >= 0) {
                return true;
@@ -171,9 +172,8 @@
        return false;
    }
    _parseAddress(content) {
    _parseAddress(chinaTree, content) {
        content = content.replace('中国', '');
        const chinaTree = $locations.getLocationTree();
        // 省份处理 ---
        const provinceTailReg = /特别行政区|自治区|省|市$/;
        for (let province of chinaTree) {
@@ -221,6 +221,5 @@
            this.wordData.street = content;
        }
    }
}