增加了手机操作端

This commit is contained in:
wushumin
2026-05-15 14:01:36 +08:00
parent 9aac78b8da
commit dd56e0861b
107 changed files with 23547 additions and 346 deletions

View File

@@ -12,6 +12,103 @@ export interface AdminLoginResponse {
admin_info: AdminSessionInfo;
}
export interface AdminFileAsset {
file_id: string;
file_url: string;
thumbnail_url: string;
name?: string;
file_type?: string;
mime_type?: string;
}
export interface AdminTransferFlowSummary {
id: number;
internal_tag_no: string;
flow_status: string;
current_stage: string;
current_stage_text: string;
current_location: string;
current_location_text: string;
inbound_by_name: string;
inbound_at: string;
zhongjian_outbound_by_name: string;
zhongjian_outbound_at: string;
zhongjian_inbound_by_name: string;
zhongjian_inbound_at: string;
appraisal_started_by_name: string;
appraisal_started_at: string;
report_published_by_name: string;
report_published_at: string;
return_confirmed_by_name: string;
return_confirmed_at: string;
return_shipped_by_name: string;
return_shipped_at: string;
}
export interface AdminWarehouseWorkbenchContext {
order_info: {
id: number;
order_no: string;
appraisal_no: string;
service_provider: string;
service_provider_text: string;
source_channel: string;
source_channel_text: string;
source_customer_id: string;
order_status: string;
display_status: string;
};
product_info: {
product_name: string;
category_name: string;
brand_name: string;
color: string;
size_spec: string;
serial_no: string;
};
logistics_info: null | {
express_company: string;
tracking_no: string;
tracking_status: string;
};
return_address: null | {
consignee: string;
mobile: string;
full_address: string;
};
return_logistics: null | {
express_company: string;
tracking_no: string;
tracking_status: string;
};
transfer_flow: null | AdminTransferFlowSummary;
report_info: null | {
id: number;
report_no: string;
report_title: string;
report_status: string;
publish_time: string;
zhongjian_report_no: string;
report_entry_admin_name: string;
report_entered_at: string;
zhongjian_report_files: AdminFileAsset[];
};
flow_logs?: Array<{
id: number;
action_code: string;
action_text: string;
before_stage: string;
before_location: string;
after_stage: string;
after_location: string;
operator_name: string;
remark: string;
created_at: string;
}>;
next_action?: string;
next_action_text?: string;
}
export interface AdminOrderListItem {
id: number;
order_no: string;
@@ -277,6 +374,9 @@ export interface AdminReportListItem {
service_provider_text: string;
institution_name: string;
publish_time: string;
zhongjian_report_no: string;
report_entry_admin_name: string;
report_entered_at: string;
product_name: string;
category_name: string;
brand_name: string;
@@ -296,6 +396,10 @@ export interface AdminReportDetail {
service_provider_text: string;
institution_name: string;
publish_time: string;
zhongjian_report_no: string;
report_entry_admin_id: number;
report_entry_admin_name: string;
report_entered_at: string;
};
product_info: Record<string, any>;
result_info: Record<string, any>;
@@ -309,6 +413,7 @@ export interface AdminReportDetail {
file_type?: string;
mime_type?: string;
}>;
zhongjian_report_files: AdminFileAsset[];
risk_notice_text: string;
verify_info: {
verify_status: string;
@@ -556,6 +661,13 @@ export interface AdminAppraisalTaskDetail {
}>;
};
material_tag: null | AdminMaterialTagCode;
zhongjian_report: {
report_no: string;
report_entry_admin_id: number;
report_entry_admin_name: string;
report_entered_at: string;
files: AdminFileAsset[];
};
}
export interface AdminAppraisalTaskResultPayload {
@@ -934,7 +1046,18 @@ export interface AdminMaterialTagCode {
batch_id: number;
qr_token: string;
qr_url: string;
qr_image_url: string;
qr_image_path: string;
qr_image_status: string;
qr_image_status_text: string;
qr_image_error: string;
qr_image_generated_at: string;
verify_code: string;
status: string;
status_text: string;
invalidated_at: string;
invalidated_by_name: string;
invalid_reason: string;
bind_status: string;
bind_status_text: string;
report_id: number;
@@ -951,7 +1074,21 @@ export interface AdminMaterialBatchItem {
id: number;
batch_no: string;
total_count: number;
status: string;
status_text: string;
invalidated_at: string;
invalidated_by_name: string;
invalid_reason: string;
package_status: string;
package_status_text: string;
package_url: string;
package_error: string;
package_generated_at: string;
package_purged_at: string;
bound_count: number;
qr_image_generated_count: number;
qr_image_failed_count: number;
qr_image_pending_count: number;
download_count: number;
remark: string;
created_by_name: string;
@@ -965,6 +1102,20 @@ export interface AdminMaterialBatchDetail {
id: number;
batch_no: string;
total_count: number;
status: string;
status_text: string;
invalidated_at: string;
invalidated_by_name: string;
invalid_reason: string;
package_status: string;
package_status_text: string;
package_url: string;
package_error: string;
package_generated_at: string;
package_purged_at: string;
qr_image_generated_count: number;
qr_image_failed_count: number;
qr_image_pending_count: number;
download_count: number;
remark: string;
created_by_name: string;
@@ -1513,6 +1664,41 @@ export const adminApi = {
};
}>;
},
publishAppraisalTaskWithMaterialTag(data: { id: number; qr_input: string }) {
return request.post("/api/admin/appraisal-task/material-tag/publish", data) as Promise<{
code: number;
message: string;
data: {
id: number;
material_tag: AdminMaterialTagCode;
report: AdminPublishReportResponse;
};
}>;
},
scanAppraisalTransferTag(internalTagNo: string) {
return request.post("/api/admin/appraisal-task/transfer-tag/scan", {
internal_tag_no: internalTagNo,
}) as Promise<{
code: number;
message: string;
data: {
task_id: number;
order_id: number;
service_provider: string;
service_provider_text: string;
};
}>;
},
saveZhongjianAppraisalReport(data: { id: number; zhongjian_report_no: string; report_files: AdminFileAsset[] }) {
return request.post("/api/admin/appraisal-task/zhongjian-report/save", data) as Promise<{
code: number;
message: string;
data: {
id: number;
report: AdminPublishReportResponse;
};
}>;
},
uploadAppraisalEvidenceFile(file: File) {
const formData = new FormData();
formData.append("file", file);
@@ -1542,6 +1728,65 @@ export const adminApi = {
data: { file_url: string };
}>;
},
lookupWarehouseInbound(trackingNo: string) {
return request.get("/api/admin/warehouse-workbench/inbound/lookup", {
params: { tracking_no: trackingNo },
}) as Promise<{
code: number;
message: string;
data: AdminWarehouseWorkbenchContext;
}>;
},
receiveWarehouseInbound(data: { tracking_no: string; internal_tag_no: string }) {
return request.post("/api/admin/warehouse-workbench/inbound/receive", data) as Promise<{
code: number;
message: string;
data: AdminWarehouseWorkbenchContext;
}>;
},
lookupZhongjianWarehouseTransfer(internalTagNo: string) {
return request.get("/api/admin/warehouse-workbench/zhongjian/lookup", {
params: { internal_tag_no: internalTagNo },
}) as Promise<{
code: number;
message: string;
data: AdminWarehouseWorkbenchContext;
}>;
},
zhongjianWarehouseOutbound(internalTagNo: string) {
return request.post("/api/admin/warehouse-workbench/zhongjian/outbound", {
internal_tag_no: internalTagNo,
}) as Promise<{ code: number; message: string; data: AdminWarehouseWorkbenchContext }>;
},
zhongjianWarehouseInbound(internalTagNo: string) {
return request.post("/api/admin/warehouse-workbench/zhongjian/inbound", {
internal_tag_no: internalTagNo,
}) as Promise<{ code: number; message: string; data: AdminWarehouseWorkbenchContext }>;
},
lookupWarehouseReturn(internalTagNo: string) {
return request.get("/api/admin/warehouse-workbench/return/lookup", {
params: { internal_tag_no: internalTagNo },
}) as Promise<{ code: number; message: string; data: AdminWarehouseWorkbenchContext }>;
},
verifyWarehouseReturnMaterialTag(data: { internal_tag_no: string; qr_input: string }) {
return request.post("/api/admin/warehouse-workbench/return/material-tag/verify", data) as Promise<{
code: number;
message: string;
data: AdminWarehouseWorkbenchContext;
}>;
},
confirmWarehouseReturnZhongjian(internalTagNo: string) {
return request.post("/api/admin/warehouse-workbench/return/zhongjian/confirm", {
internal_tag_no: internalTagNo,
}) as Promise<{ code: number; message: string; data: AdminWarehouseWorkbenchContext }>;
},
shipWarehouseReturn(data: { internal_tag_no: string; express_company: string; tracking_no: string }) {
return request.post("/api/admin/warehouse-workbench/return/ship", data) as Promise<{
code: number;
message: string;
data: AdminWarehouseWorkbenchContext;
}>;
},
requestAppraisalTaskSupplement(data: AdminAppraisalTaskSupplementPayload) {
return request.post("/api/admin/appraisal-task/request-supplement", data) as Promise<{
code: number;
@@ -1863,11 +2108,43 @@ export const adminApi = {
};
}>;
},
downloadMaterialBatch(id: number) {
return request.get("/api/admin/material/batch/download", {
prepareMaterialBatchDownload(id: number) {
return request.get("/api/admin/material/batch/download-link", {
params: { id },
responseType: "blob",
}) as Promise<Blob>;
}) as Promise<{
code: number;
message: string;
data: {
filename: string;
url: string;
size: number;
};
}>;
},
invalidateMaterialBatch(data: { id: number; reason: string }) {
return request.post("/api/admin/material/batch/invalidate", data) as Promise<{
code: number;
message: string;
data: {
id: number;
status: string;
status_text: string;
invalidated_at: string;
};
}>;
},
invalidateMaterialTag(data: { id: number; reason: string }) {
return request.post("/api/admin/material/tag/invalidate", data) as Promise<{
code: number;
message: string;
data: {
id: number;
batch_id: number;
status: string;
status_text: string;
invalidated_at: string;
};
}>;
},
getAccessOverview() {
return request.get("/api/admin/access/overview") as Promise<{