feat: update appraisal ordering and payment flows
This commit is contained in:
@@ -2,10 +2,12 @@ import { parseUploadResponse, request } from "../utils/request";
|
||||
import { buildAuthHeaders } from "../utils/auth";
|
||||
import { resolveApiBaseUrl } from "../utils/env";
|
||||
import { resolveOrderSourceChannel } from "../utils/order-source";
|
||||
import type { PaymentLaunchInfo } from "./app";
|
||||
|
||||
export interface CatalogOption {
|
||||
brand_id?: number;
|
||||
brand_name?: string;
|
||||
brand_en_name?: string;
|
||||
}
|
||||
|
||||
export interface CategoryOption {
|
||||
@@ -36,6 +38,10 @@ export interface DraftDetail {
|
||||
draft_id: number;
|
||||
service_provider: string;
|
||||
service_mode: string;
|
||||
price_package_id: number;
|
||||
price_package_name: string;
|
||||
price_package_code: string;
|
||||
price_package_price: number;
|
||||
current_step: number;
|
||||
product_info: Record<string, any>;
|
||||
extra_info: Record<string, any>;
|
||||
@@ -48,6 +54,9 @@ export interface PreviewData {
|
||||
service_summary: {
|
||||
service_provider: string;
|
||||
service_provider_text: string;
|
||||
price_package_id: number;
|
||||
price_package_name: string;
|
||||
price_package_code: string;
|
||||
};
|
||||
product_summary: {
|
||||
product_name: string;
|
||||
@@ -71,23 +80,60 @@ export interface PreviewData {
|
||||
}>;
|
||||
}
|
||||
|
||||
export interface AppraisalServicePackage {
|
||||
id: number;
|
||||
service_provider: string;
|
||||
service_provider_text: string;
|
||||
package_name: string;
|
||||
package_code: string;
|
||||
price: number;
|
||||
description: string;
|
||||
is_enabled: boolean;
|
||||
is_default: boolean;
|
||||
sort_order: number;
|
||||
sla_hours: number;
|
||||
}
|
||||
|
||||
export interface AppraisalServiceConfig {
|
||||
service_provider: string;
|
||||
service_provider_text: string;
|
||||
price: number;
|
||||
sla_hours: number;
|
||||
default_package_id: number;
|
||||
default_package: AppraisalServicePackage | null;
|
||||
packages: AppraisalServicePackage[];
|
||||
}
|
||||
|
||||
export interface SubmitResult {
|
||||
order_id: number;
|
||||
order_no: string;
|
||||
appraisal_no: string;
|
||||
pay_amount: number;
|
||||
next_status: string;
|
||||
payment: PaymentLaunchInfo | null;
|
||||
payment_launch_failed?: boolean;
|
||||
payment_error?: string;
|
||||
}
|
||||
|
||||
export const appraisalApi = {
|
||||
createDraft(serviceProvider: string) {
|
||||
return request<{ draft_id: number; service_provider: string; service_mode: string }>(
|
||||
createDraft(serviceProvider: string, pricePackageId?: number, pricePackageCode?: string) {
|
||||
return request<{
|
||||
draft_id: number;
|
||||
service_provider: string;
|
||||
service_mode: string;
|
||||
price_package_id: number;
|
||||
price_package_name: string;
|
||||
price_package_code: string;
|
||||
price_package_price: number;
|
||||
}>(
|
||||
"/api/app/appraisal/draft/create",
|
||||
{
|
||||
method: "POST",
|
||||
data: {
|
||||
service_provider: serviceProvider,
|
||||
service_mode: "physical",
|
||||
price_package_id: pricePackageId || undefined,
|
||||
price_package_code: pricePackageCode || undefined,
|
||||
},
|
||||
},
|
||||
);
|
||||
@@ -111,6 +157,9 @@ export const appraisalApi = {
|
||||
getCategories() {
|
||||
return request<{ list: CategoryOption[] }>("/api/app/catalog/categories");
|
||||
},
|
||||
getServiceConfigs() {
|
||||
return request<{ list: AppraisalServiceConfig[] }>("/api/app/appraisal/service-configs");
|
||||
},
|
||||
getUploadTemplate(categoryId: number, serviceProvider: string) {
|
||||
return request<{ template_id: number; required_items: UploadItem[]; optional_items: UploadItem[] }>(
|
||||
"/api/app/appraisal/upload-template",
|
||||
|
||||
Reference in New Issue
Block a user