feat(P25-2/P25-3/P26-2/P28-1/P24-2/P29-3): 落地内部OA够用版前端入口与运营页面
关联 Issue: P25-2, P25-3, P25-4, P26-2, P26-4, P28-1, P28-2, P28-3, P28-4, P24-2, P29-3
这个提交包含在:
@@ -1,4 +1,5 @@
|
||||
import { apiRequestData } from "./http";
|
||||
import type { PrecheckResponse, RiskFlag } from "./feeControl";
|
||||
|
||||
export type TravelRequestStatus = "draft" | "reviewing" | "approved" | "rejected";
|
||||
export type TravelTripType = "domestic" | "international";
|
||||
@@ -108,6 +109,7 @@ export type TravelRequestDetail = TravelRequestSummary & {
|
||||
canWithdraw: boolean;
|
||||
canManage: boolean;
|
||||
};
|
||||
riskFlags: RiskFlag[];
|
||||
};
|
||||
|
||||
export type TravelRequestListResponse = {
|
||||
@@ -160,6 +162,8 @@ export type TravelRequestSubmitResponse = {
|
||||
reservedAmount?: string;
|
||||
items?: Array<{ budgetPoolId: string; amount: string }>;
|
||||
};
|
||||
precheckDecision: "pass" | "warn" | "manual_review";
|
||||
openedRiskFlagCount: number;
|
||||
};
|
||||
|
||||
export type TravelRequestWithdrawResponse = {
|
||||
@@ -209,6 +213,13 @@ export async function updateTravelRequest(travelRequestId: string, payload: Part
|
||||
});
|
||||
}
|
||||
|
||||
export async function precheckTravelRequest(travelRequestId: string) {
|
||||
return apiRequestData<PrecheckResponse>(`/api/travel-requests/${travelRequestId}/precheck`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify({}),
|
||||
});
|
||||
}
|
||||
|
||||
export async function submitTravelRequest(travelRequestId: string) {
|
||||
return apiRequestData<TravelRequestSubmitResponse>(`/api/travel-requests/${travelRequestId}/submit`, {
|
||||
method: "POST",
|
||||
|
||||
在新工单中引用
屏蔽一个用户