hejianhao
2026-04-02 2ae488b93fe68f95e9db5d803f2fc64892c1e55b
refactor: 将高德地图密钥移至环境配置并统一引用

将硬编码的 AMAP_KEY 从常量文件移至开发和生产环境的配置文件,并通过统一导出的常量引用。同时修复隐私弹窗中协议类型提交逻辑,使其动态基于勾选状态提交,并增加"全部勾选"文本的点击事件。
6个文件已修改
28 ■■■■■ 已修改文件
config/dev.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config/prod.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/api.ts 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/robotaxi/home/components/privacy-popup/index.tsx 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/site-search/index.tsx 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/Robotaxi-public-method.ts 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config/dev.js
@@ -23,6 +23,7 @@
// const ROBOTAXI_WS_HOST = '"ws://221.182.45.100:8888/websocket"';
const ROBOTAXI_HOST = '"https://rt-api.deploy-test.xiaopeng.com"';
const ROBOTAXI_WS_HOST = '"wss://rt-ws.deploy-test.xiaopeng.com/websocket"';
const AMAP_KEY = '"8157fdfa13878d3f7bf69c560c8a846a"';
const XP_APPID_MAP = {
  weapp: '"xp_cs_wom"',
@@ -92,6 +93,7 @@
    ADMIN_OSS_HOST,
    ROBOTAXI_HOST,
    ROBOTAXI_WS_HOST,
    AMAP_KEY,
  },
  mini: {
    // webpackChain (chain) {
config/prod.js
@@ -18,6 +18,7 @@
const ROBOTAXI_HOST = '"https://rt-api.xiaopeng.com"';
const ROBOTAXI_WS_HOST = '"wss://rt-api.xiaopeng.com/websocket"';
const AMAP_KEY = '"8157fdfa13878d3f7bf69c560c8a846a"';
const XP_APPID_MAP = {
  weapp: '"xp_cs_wom"', // 用户中心登录appId
@@ -85,6 +86,7 @@
    ADMIN_OSS_HOST,
    ROBOTAXI_HOST,
    ROBOTAXI_WS_HOST,
    AMAP_KEY,
  },
  mini: {
    // module: {
src/constants/api.ts
@@ -41,6 +41,10 @@
//@ts-ignore
export const _ROBOTAXI_WS_HOST = ROBOTAXI_WS_HOST
// 高德地图KEY
//@ts-ignore
export const _AMAP_KEY = AMAP_KEY
// pic CDN
export const CDN = 'https://s.xiaopeng.com/xp-fe/mini'
// 官渠通用 oss 资源前缀
@@ -127,9 +131,5 @@
// 上报新注册用户位置信息
export const API_REGISTER_REPORT_POSITION= `${_MINI_HOST}/api/register/report`
// 高德地图KEY
export const AMAP_KEY = '8157fdfa13878d3f7bf69c560c8a846a'
src/pages/robotaxi/home/components/privacy-popup/index.tsx
@@ -74,7 +74,7 @@
      Taro.showToast({ title: '请先同意全部协议', icon: 'none' });
      return
    };
    submitAgreement({ type: [1, 2, 3, 4, 7] }).then((res: any) => {
    submitAgreement({ type: Object.keys(isAgree).map(Number) }).then((res: any) => {
      reportEvent('RT_xcx_protocol_click', {
        status_code: 1
      })
@@ -137,7 +137,7 @@
          <View className='link-item'>
            <Image onClick={checkAll} className='item-radio' src={isAllAgree ? check : uncheck}
              mode='aspectFill' />
            <View className='item-name'>全部勾选</View>
            <View onClick={checkAll} className='item-name'>全部勾选</View>
          </View>
        </View>
src/robotaxi/pages/site-search/index.tsx
@@ -8,7 +8,7 @@
import { getStartPoints, getEndPoints, queryPointByName } from '../../api/site-search';
import { formatDistance, debounce, getDistance } from '../../../utils/Robotaxi-public-method';
import { getOrderDistance } from '../../api/select-map-site';
import { AMAP_KEY, _UID } from '../../../constants/api';
import { _AMAP_KEY, _UID } from '../../../constants/api';
import amapFile from '../../../libs/amap-wx.130.js';
import { checkOtp } from '../../../utils/tools';
import TipPopup from '../select-map-site/components/tip-popup';
@@ -139,7 +139,7 @@
        setSiteList([]);
      }
      const myAmapFun = new amapFile.AMapWX({ key: AMAP_KEY });
      const myAmapFun = new amapFile.AMapWX({ key: _AMAP_KEY });
      myAmapFun.getPoiAround({
        querykeywords: queryVal,
        location: `${longitude},${latitude}`,
src/utils/Robotaxi-public-method.ts
@@ -1,5 +1,5 @@
import amapFile from '../libs/amap-wx.130.js';
import { AMAP_KEY, _ROBOTAXI_HOST, _UID } from '../constants/api';
import { _AMAP_KEY, _ROBOTAXI_HOST, _UID } from '../constants/api';
import Taro from '@tarojs/taro';
import request from './request';
import { getFenceCheck, getNearestSite } from '../robotaxi/api/home';
@@ -171,7 +171,7 @@
// 获取位置的逆地理编码
export const getAddressByLocation = (longitude: number, latitude: number): Promise<any> => {
  return new Promise((resolve, reject) => {
    const myAmapFun = new amapFile.AMapWX({ key: AMAP_KEY });
    const myAmapFun = new amapFile.AMapWX({ key: _AMAP_KEY });
    myAmapFun.getRegeo({
      location: `${longitude},${latitude}`,
      success: (data) => {
@@ -346,7 +346,7 @@
// 获取步行规划路线
export const getWalkingRoute = (origin: string, destination: string): Promise<{ points: any[], duration: number, distance: number }> => {
  return new Promise((resolve, reject) => {
    const myAmapFun = new amapFile.AMapWX({ key: AMAP_KEY });
    const myAmapFun = new amapFile.AMapWX({ key: _AMAP_KEY });
    myAmapFun.getWalkingRoute({
      origin: origin,
      destination: destination,
@@ -370,7 +370,7 @@
// 获取城市中心经纬度
export const getCityLocation = (cityName: string): Promise<{ latitude: number, longitude: number }> => {
  return new Promise((resolve, reject) => {
    const myAmapFun = new amapFile.AMapWX({ key: AMAP_KEY });
    const myAmapFun = new amapFile.AMapWX({ key: _AMAP_KEY });
    myAmapFun.getInputtips({
      keywords: cityName,
      city: cityName,