放心行(约客多 2026/6/22 最新版本改版)
zjk
2026-07-27 667b9df11d5e4d765ce95849f453eb470e990b38
feat(home): 优化首页定位名称显示,移除冗余省市区镇前缀

添加getTrimmedLocationName工具函数,从格式化地址中剥离省、市、区、乡镇等冗余前缀,保留更具体的位置描述,并在两处定位逻辑中应用该优化,让位置展示更简洁自然。
1个文件已修改
28 ■■■■■ 已修改文件
miniprogram/pages/home/home.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
miniprogram/pages/home/home.js
@@ -2021,6 +2021,25 @@
        }
        return cityInfo;
    },
    getTrimmedLocationName(formattedAddress, addressComponent = {}) {
        let address = String(formattedAddress || "").trim();
        const regionParts = [
            addressComponent.province,
            addressComponent.city,
            addressComponent.district,
            addressComponent.township,
        ];
        // 去掉 formatted_address 前缀中的省、市、区、乡镇,保留更具体的位置描述
        regionParts.forEach((part) => {
            const regionName = String(part || "").trim();
            if (regionName && address.startsWith(regionName)) {
                address = address.slice(regionName.length).trim();
            }
        });
        return address;
    },
    setSelectedOpenCity(cityInfo) {
        if (
            !cityInfo ||
@@ -2104,12 +2123,13 @@
            const regeocodeData = item && item.regeocodeData;
            const addressComponent = (regeocodeData && regeocodeData.addressComponent) || {};
            const pois = (regeocodeData && regeocodeData.pois) || [];
            const landmarkName = (item && item.name) || (pois[0] && pois[0].name) || addressComponent.township || "当前位置";
            const formattedAddress = (regeocodeData && regeocodeData.formatted_address) || "";
            const trimmedAddress = this.getTrimmedLocationName(formattedAddress, addressComponent);
            const landmarkName = trimmedAddress || (item && item.name) || (pois[0] && pois[0].name) || addressComponent.township || "当前位置";
            const city = addressComponent.city || addressComponent.province || "";
            const district = addressComponent.district || "";
            const province = addressComponent.province || "";
            const adcode = addressComponent.adcode || "";
            const formattedAddress = (regeocodeData && regeocodeData.formatted_address) || "";
            wx.setStorageSync("userLocation", `${longitude},${latitude}`);
            return {
                latitude,
@@ -3885,7 +3905,9 @@
                    const regeocodeData = item && item.regeocodeData;
                    const addressComponent = (regeocodeData && regeocodeData.addressComponent) || {};
                    const pois = (regeocodeData && regeocodeData.pois) || [];
                    const landmarkName = (item && item.name) || (pois[0] && pois[0].name) || addressComponent.township || "当前位置";
                    const formattedAddress = (regeocodeData && regeocodeData.formatted_address) || "";
                    const trimmedAddress = this.getTrimmedLocationName(formattedAddress, addressComponent);
                    const landmarkName = trimmedAddress || (item && item.name) || (pois[0] && pois[0].name) || addressComponent.township || "当前位置";
                    const city = addressComponent.city || addressComponent.province || "";
                    const district = addressComponent.district || "";
                    const province = addressComponent.province || "";