第 5 阶段:纠纷、通知与后台-1

This commit is contained in:
yml
2026-05-22 16:34:32 +08:00
parent 9ebdfab078
commit 99f9df7bcd
32 changed files with 1711 additions and 8 deletions
+46
View File
@@ -0,0 +1,46 @@
import { apiClient } from './client'
export interface Dispute {
id: number
order_id: number
order_no: string
title: string
initiator_id: number
target_user_id: number
type: string
status: string
description: string
evidence_urls?: string[]
arbitration_result: string
arbitration_remark: string
handled_by?: number
handled_at?: string
created_at: string
updated_at: string
}
interface ApiResponse<T> {
code: string
message: string
data: T
}
export async function createDispute(orderId: number, payload: { type: string; description: string; evidence_urls?: string[] }) {
const { data } = await apiClient.post<ApiResponse<Dispute>>(`/orders/${orderId}/dispute`, payload)
return data.data
}
export async function fetchDisputes() {
const { data } = await apiClient.get<ApiResponse<{ items: Dispute[] }>>('/disputes')
return data.data.items
}
export async function fetchAdminDisputes() {
const { data } = await apiClient.get<ApiResponse<{ items: Dispute[] }>>('/admin/disputes')
return data.data.items
}
export async function arbitrateDispute(id: number, payload: { result: string; remark: string }) {
const { data } = await apiClient.post<ApiResponse<Dispute>>(`/admin/disputes/${id}/arbitrate`, payload)
return data.data
}