chore: sync release updates
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { request, uploadFile } from "../utils/request";
|
||||
import { request, uploadDirectFile, uploadFile } from "../utils/request";
|
||||
import type { AdminSessionInfo } from "../utils/auth";
|
||||
|
||||
export interface AdminLoginResponse {
|
||||
@@ -15,6 +15,56 @@ export interface AdminFileAsset {
|
||||
mime_type?: string;
|
||||
}
|
||||
|
||||
export interface AdminDirectUploadMeta {
|
||||
original_name?: string;
|
||||
file_size?: number;
|
||||
mime_type?: string;
|
||||
}
|
||||
|
||||
export type AdminUploadScene = "appraisal_evidence" | "zhongjian_report" | "warehouse_inbound_evidence" | "warehouse_return_packing";
|
||||
|
||||
export interface AdminDirectUploadPolicy {
|
||||
enabled: boolean;
|
||||
upload_url?: string;
|
||||
form_data?: Record<string, string | number>;
|
||||
asset?: AdminFileAsset;
|
||||
max_size?: number;
|
||||
max_size_text?: string;
|
||||
expires_at?: string;
|
||||
}
|
||||
|
||||
function filenameFromPath(filePath: string) {
|
||||
return filePath.split(/[\\/]/).pop() || `upload-${Date.now()}`;
|
||||
}
|
||||
|
||||
async function uploadManagedAdminFile(
|
||||
filePath: string,
|
||||
scene: AdminUploadScene,
|
||||
fallbackUrl: string,
|
||||
meta: AdminDirectUploadMeta = {},
|
||||
fallbackFormData: Record<string, string | number> = {},
|
||||
) {
|
||||
const policy = await request<AdminDirectUploadPolicy>("/api/admin/file-upload/direct-policy", {
|
||||
method: "POST",
|
||||
data: {
|
||||
upload_scene: scene,
|
||||
original_name: meta.original_name || filenameFromPath(filePath),
|
||||
file_size: meta.file_size || 0,
|
||||
mime_type: meta.mime_type || "",
|
||||
},
|
||||
});
|
||||
const formData = { ...fallbackFormData, upload_scene: scene };
|
||||
if (!policy.enabled) {
|
||||
return uploadFile<AdminFileAsset>(fallbackUrl, filePath, formData);
|
||||
}
|
||||
if (!policy.upload_url || !policy.form_data || !policy.asset) {
|
||||
throw new Error("OSS 上传签名无效,请稍后重试");
|
||||
}
|
||||
|
||||
await uploadDirectFile(policy.upload_url, filePath, policy.form_data);
|
||||
return policy.asset;
|
||||
}
|
||||
|
||||
export interface PaginatedList<T> {
|
||||
list: T[];
|
||||
total?: number;
|
||||
@@ -445,8 +495,13 @@ export const adminApi = {
|
||||
data,
|
||||
});
|
||||
},
|
||||
uploadWarehouseInboundEvidenceFile(filePath: string) {
|
||||
return uploadFile<AdminFileAsset>("/api/admin/warehouse-workbench/inbound/evidence/upload", filePath);
|
||||
uploadWarehouseInboundEvidenceFile(filePath: string, meta: AdminDirectUploadMeta = {}) {
|
||||
return uploadManagedAdminFile(
|
||||
filePath,
|
||||
"warehouse_inbound_evidence",
|
||||
"/api/admin/warehouse-workbench/inbound/evidence/upload",
|
||||
meta,
|
||||
);
|
||||
},
|
||||
lookupZhongjianWarehouseTransfer(internalTagNo: string) {
|
||||
return request<AdminWarehouseWorkbenchContext>("/api/admin/warehouse-workbench/zhongjian/lookup", {
|
||||
@@ -488,8 +543,13 @@ export const adminApi = {
|
||||
data: { internal_tag_no: internalTagNo },
|
||||
});
|
||||
},
|
||||
uploadWarehouseReturnPackingFile(filePath: string) {
|
||||
return uploadFile<AdminFileAsset>("/api/admin/warehouse-workbench/return/packing/upload", filePath);
|
||||
uploadWarehouseReturnPackingFile(filePath: string, meta: AdminDirectUploadMeta = {}) {
|
||||
return uploadManagedAdminFile(
|
||||
filePath,
|
||||
"warehouse_return_packing",
|
||||
"/api/admin/warehouse-workbench/return/packing/upload",
|
||||
meta,
|
||||
);
|
||||
},
|
||||
shipWarehouseReturn(data: { internal_tag_no: string; express_company: string; tracking_no: string; packing_attachments?: AdminFileAsset[] }) {
|
||||
return request<AdminWarehouseWorkbenchContext>("/api/admin/warehouse-workbench/return/ship", {
|
||||
@@ -530,8 +590,14 @@ export const adminApi = {
|
||||
data,
|
||||
});
|
||||
},
|
||||
uploadAppraisalEvidenceFile(filePath: string, taskId?: number) {
|
||||
return uploadFile<AdminFileAsset>("/api/admin/appraisal-task/evidence/upload", filePath, taskId ? { task_id: taskId } : {});
|
||||
uploadAppraisalEvidenceFile(
|
||||
filePath: string,
|
||||
taskId?: number,
|
||||
meta: AdminDirectUploadMeta = {},
|
||||
scene: AdminUploadScene = "appraisal_evidence",
|
||||
) {
|
||||
const formData: Record<string, string | number> = taskId ? { task_id: taskId } : {};
|
||||
return uploadManagedAdminFile(filePath, scene, "/api/admin/appraisal-task/evidence/upload", meta, formData);
|
||||
},
|
||||
deleteAppraisalEvidenceFile(fileUrl: string, taskId?: number) {
|
||||
return request<{ file_url: string }>("/api/admin/appraisal-task/evidence/delete", {
|
||||
|
||||
Reference in New Issue
Block a user