ai-coding
2026-07-29 1f95b656262fe4b009463da92ae147f9a47e2df7
refactor(api): 将反馈相关接口抽离为独立模块

Co-Authored-By: 何宏文 <hehw@xiaopeng.com>
2个文件已添加
4个文件已修改
66 ■■■■■ 已修改文件
src/robotaxi/api/begin-route.ts 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/api/feedback.ts 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/api/types/begin-route.ts 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/api/types/feedback.ts 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/begin-route/components/evaluate-popup.tsx 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/pages/feedback/index.tsx 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/robotaxi/api/begin-route.ts
@@ -34,10 +34,8 @@
    ShareQueryOrderInfoPayload,
    ShareQueryOrderInfoResponse,
    ShareQueryOrderRouteResponse,
    SubmitComplaintPayload,
    SubmitFeedbackResponse,
    SubmitOrderCommentPayload,
    FeedbackTypeItem,
    UnlockVehiclePayload,
    UnlockVehicleResponse,
    OrderPaymentResponse,
@@ -274,30 +272,11 @@
    }, true);
}
// 提交订单投诉
export const submitComplaint = async (
    payload: SubmitComplaintPayload
): Promise<SubmitFeedbackResponse> => {
    return request({
        url: _ROBOTAXI_HOST + `/operation/base/v1/mini-program/complaint/submit`,
        method: 'POST',
        payload
    }, true);
}
// 获取订单评价类型
export const getOrderCommentType = async (evaluateDimension: number): Promise<OrderCommentTypeItem[]> => {
    return request({
        // url: _ROBOTAXI_HOST + `/operation/base/v1/mini-program/feedback-type/getList`,
        url: _ROBOTAXI_HOST + `/operation/base/v1/mini-program/evaluateTag/list?evaluateDimension=${evaluateDimension}`,
        method: 'GET'
    }, true);
}
// 获取意见反馈启用中的问题类型列表
export const getFeedbackTypeList = async (): Promise<FeedbackTypeItem[]> => {
    return request({
        url: _ROBOTAXI_HOST + `/operation/base/v1/mini-program/feedback-type/getList`,
        method: 'GET'
    }, true);
}
src/robotaxi/api/feedback.ts
New file
@@ -0,0 +1,23 @@
import request from '../../utils/request';
import { _ROBOTAXI_HOST } from '../../constants/api';
import type { SubmitComplaintPayload, SubmitFeedbackResponse } from './types/begin-route';
import type { FeedbackTypeItem } from './types/feedback';
// 提交订单投诉
export const submitComplaint = async (
    payload: SubmitComplaintPayload
): Promise<SubmitFeedbackResponse> => {
    return request({
        url: _ROBOTAXI_HOST + `/operation/base/v1/mini-program/complaint/submit`,
        method: 'POST',
        payload
    }, true);
}
// 获取意见反馈启用中的问题类型列表
export const getFeedbackTypeList = async (): Promise<FeedbackTypeItem[]> => {
    return request({
        url: _ROBOTAXI_HOST + `/operation/base/v1/mini-program/feedback-type/getList`,
        method: 'GET'
    }, true);
}
src/robotaxi/api/types/begin-route.ts
@@ -417,14 +417,6 @@
    feedbackType?: string;
}
/** 意见反馈问题类型项。 */
export interface FeedbackTypeItem extends ExtendableRecord {
    /** 类型 ID。 */
    id?: number | string;
    /** 类型名称。 */
    feedbackType?: string;
}
/** 支付请求。 */
export interface GetOrderPaymentPayload {
    /** 订单 ID。 */
src/robotaxi/api/types/feedback.ts
New file
@@ -0,0 +1,9 @@
import type { ExtendableRecord } from './begin-route';
/** 意见反馈问题类型项。 */
export interface FeedbackTypeItem extends ExtendableRecord {
    /** 类型 ID。 */
    id?: number | string;
    /** 类型名称。 */
    feedbackType?: string;
}
src/robotaxi/pages/begin-route/components/evaluate-popup.tsx
@@ -3,7 +3,8 @@
import { View, Text, Image, Textarea } from '@tarojs/components';
import { useEffect, useRef, useState } from 'react';
import './css-folder/evaluate-popup.less'
import { getOrderCommentType, submitComplaint, submitOrderComment } from '../../../api/begin-route';
import { getOrderCommentType, submitOrderComment } from '../../../api/begin-route';
import { submitComplaint } from '../../../api/feedback';
import { _ROBOTAXI_HOST } from '../../../../constants/api';
import useImageUpload from '../../../hooks/use-image-upload';
import { getOrderId } from '../../../utils/order';
src/robotaxi/pages/feedback/index.tsx
@@ -3,7 +3,7 @@
import { useEffect, useMemo, useRef, useState } from 'react';
import CustomNavbar from '../../../components/custom-navbar';
import { withRobotaxiWhitelist } from '../../../utils/whitelist';
import { getFeedbackTypeList, submitComplaint } from '../../api/begin-route';
import { getFeedbackTypeList, submitComplaint } from '../../api/feedback';
import { _ROBOTAXI_HOST } from '../../../constants/api';
import useMediaUpload from './hooks/use-media-upload';
import './index.less';