zjk
2026-05-19 a461aed892f779039278ad30286f020f5daf88fd
feat(robotaxi/share-trip): 添加白名单校验并调整首页返回逻辑

新增获取用户Robotaxi白名单状态的API接口,在分享页登录后校验白名单权限,并根据结果调整首页跳转路径。
2个文件已修改
34 ■■■■■ 已修改文件
src/robotaxi/api/home.ts 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/share-trip/index.tsx 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/api/home.ts
@@ -142,3 +142,12 @@
        method: 'GET'
    }, true);
}
// 获取用户是否是白名单用户
export const isWhiteList = async () => {
    return request({
        url: _ROBOTAXI_HOST + '/operation/api/v1/mini-program/whitelist/getUserWhitelist',
        method: 'GET'
    }, true);
}
src/robotaxi/pages/share-trip/index.tsx
@@ -9,8 +9,10 @@
import useShareTripRuntime from './hooks/use-share-trip-runtime';
import ShareTripView from './components/share-trip-view';
import { TripStatus } from '../begin-route/constants/trip-status';
import { isWhiteList } from '../../api/home';
import { subscribeAfterOrderSuccess } from '../../../utils/subscribe';
import { checkOtp } from '../../../utils/tools';
import { jumpToHome } from '../../../utils/jump';
type StatusRule = {
  showPickup: boolean;
@@ -34,11 +36,25 @@
  const [showReminder, setShowReminder] = useState(true); // 是否展示提醒
  const [tripStatus, setTripStatus] = useState<TripStatus>(TripStatus.PublishRoute); // 当前行程状态
  const [authReady, setAuthReady] = useState(false); // 登录校验通过后才允许加载分享页
  const [isRobotaxiWhiteList, setIsRobotaxiWhiteList] = useState(false); // 用户是否命中 Robotaxi 白名单
  useDidShow(() => {
    // 分享页需要先登录,登录成功后小程序会返回当前页并再次触发校验
    void checkOtp(true).then((otp) => {
      setAuthReady(Boolean(otp));
      const hasLogin = Boolean(otp);
      setAuthReady(hasLogin);
      if (!hasLogin) {
        setIsRobotaxiWhiteList(false);
        return;
      }
      // 登录成功后校验白名单,控制左上角 home 返回落点
      void isWhiteList()
        .then((res: boolean) => {
          setIsRobotaxiWhiteList(!res);
        })
        .catch(() => {
          setIsRobotaxiWhiteList(false);
        });
    });
  });
@@ -169,7 +185,12 @@
  }); // 地图浮层视图委托
  const goHome = () => {
    Taro.reLaunch({ url: '/pages/robotaxi/home/index' });
    if (isRobotaxiWhiteList) {
      Taro.reLaunch({ url: '/pages/robotaxi/home/index' });
      return;
    }
    // 非白名单用户先回到小鹏汽车首页,页面内容后续再补充
    jumpToHome();
  }; // 返回首页
  const handleContactService = () => {