修复溯源模块大量问题

This commit is contained in:
BBIT-Kai
2026-04-14 10:10:52 +08:00
parent 0a43f5e4b9
commit 1c68762421
26 changed files with 3413 additions and 463 deletions
@@ -1,6 +1,17 @@
import { requestClient } from '#/api/request';
export namespace TraceabilityApi {
export interface OssStoredValue {
bucketName: string;
objectName: string;
tempUrl?: string;
}
export interface FieldStyle {
bold?: boolean;
color?: string;
}
export interface Overview {
templateCount: number;
batchCount: number;
@@ -15,9 +26,12 @@ export namespace TraceabilityApi {
type: string;
required: boolean;
visible: boolean;
fixedPreset?: boolean;
placeholder?: string;
defaultValue?: any;
defaultPreviewUrl?: string;
options?: string[];
fieldStyle?: FieldStyle;
}
export interface TemplateNode {
@@ -31,6 +45,28 @@ export namespace TraceabilityApi {
fields: FieldDefinition[];
}
export interface PreviewNode {
id?: string;
sort?: number;
category: 'business' | 'public' | string;
name: string;
description: string;
consumerVisible: boolean;
values: Record<string, any>;
valuePreviewUrls?: Record<string, string>;
fields: FieldDefinition[];
}
export interface NodeLibraryItem {
id: string;
category: 'business' | 'public' | string;
name: string;
description: string;
consumerVisible: boolean;
fields: FieldDefinition[];
updatedAt: string;
}
export interface TemplateSummary {
id: string;
name: string;
@@ -38,6 +74,7 @@ export namespace TraceabilityApi {
productName: string;
industryName: string;
coverImage: string;
coverImagePreviewUrl?: string;
themeColor: string;
status: string;
nodeCount: number;
@@ -49,6 +86,24 @@ export namespace TraceabilityApi {
nodes: TemplateNode[];
}
export interface PreviewPageSummary {
id: string;
name: string;
previewCode: string;
description: string;
productName: string;
coverImage: string;
coverImagePreviewUrl?: string;
themeColor: string;
tags: string[];
publicUrl: string;
updatedAt: string;
}
export interface PreviewPageDetail extends PreviewPageSummary {
nodes: PreviewNode[];
}
export interface BatchStep {
id: string;
templateNodeId?: string;
@@ -61,6 +116,7 @@ export namespace TraceabilityApi {
status: string;
operatorName: string;
values: Record<string, any>;
valuePreviewUrls?: Record<string, string>;
completedAt: string;
fields: FieldDefinition[];
}
@@ -74,6 +130,7 @@ export namespace TraceabilityApi {
productName: string;
summary: string;
coverImage: string;
coverImagePreviewUrl?: string;
tags: string[];
status: string;
currentStep: number;
@@ -116,6 +173,18 @@ export namespace TraceabilityApi {
fileName?: string;
size?: number;
}
export interface FileAssetItem {
id: string;
assetType: string;
bucketName: string;
objectName: string;
fileName: string;
contentType: string;
size: number;
previewUrl: string;
createdAt: string;
}
}
export function getTraceabilityOverview() {
@@ -128,6 +197,68 @@ export function getTraceabilityTemplates() {
);
}
export function getTraceabilityPreviews() {
return requestClient.get<TraceabilityApi.PreviewPageSummary[]>(
'/traceability/previews',
);
}
export function getTraceabilityPreview(id: string) {
return requestClient.get<TraceabilityApi.PreviewPageDetail>(
`/traceability/previews/${id}`,
);
}
export function createTraceabilityPreview(
data: Omit<TraceabilityApi.PreviewPageDetail, 'id' | 'previewCode' | 'publicUrl' | 'updatedAt'>,
) {
return requestClient.post('/traceability/previews', data);
}
export function updateTraceabilityPreview(
id: string,
data: Omit<TraceabilityApi.PreviewPageDetail, 'id' | 'previewCode' | 'publicUrl' | 'updatedAt'>,
) {
return requestClient.post(`/traceability/previews/${id}`, data);
}
export function deleteTraceabilityPreview(id: string) {
return requestClient.delete(`/traceability/previews/${id}`);
}
export function syncTraceabilityPreviewToTemplate(id: string) {
return requestClient.post(`/traceability/previews/${id}/sync-template`);
}
export function getTraceabilityNodeLibrary() {
return requestClient.get<TraceabilityApi.NodeLibraryItem[]>(
'/traceability/node-library',
);
}
export function createTraceabilityNodeLibrary(
data: Omit<TraceabilityApi.NodeLibraryItem, 'id' | 'updatedAt'>,
) {
return requestClient.post<TraceabilityApi.NodeLibraryItem>(
'/traceability/node-library',
data,
);
}
export function updateTraceabilityNodeLibrary(
id: string,
data: Omit<TraceabilityApi.NodeLibraryItem, 'id' | 'updatedAt'>,
) {
return requestClient.post<TraceabilityApi.NodeLibraryItem>(
`/traceability/node-library/${id}`,
data,
);
}
export function deleteTraceabilityNodeLibrary(id: string) {
return requestClient.delete(`/traceability/node-library/${id}`);
}
export function getTraceabilityTemplate(id: string) {
return requestClient.get<TraceabilityApi.TemplateDetail>(
`/traceability/templates/${id}`,
@@ -144,7 +275,7 @@ export function updateTraceabilityTemplate(
id: string,
data: Omit<TraceabilityApi.TemplateDetail, 'batchCount' | 'id' | 'nodeCount' | 'updatedAt'>,
) {
return requestClient.put(`/traceability/templates/${id}`, data);
return requestClient.post(`/traceability/templates/${id}`, data);
}
export function deleteTraceabilityTemplate(id: string) {
@@ -180,7 +311,7 @@ export function deleteTraceabilityBatch(id: string) {
}
export function updateTraceabilityBatchBase(id: string, data: any) {
return requestClient.put(`/traceability/batches/${id}/base`, data);
return requestClient.post(`/traceability/batches/${id}/base`, data);
}
export function updateTraceabilityBatchStep(
@@ -193,7 +324,7 @@ export function updateTraceabilityBatchStep(
completedAt?: string;
},
) {
return requestClient.put(`/traceability/batches/${batchId}/steps/${stepId}`, data);
return requestClient.post(`/traceability/batches/${batchId}/steps/${stepId}`, data);
}
export function publishTraceabilityBatch(id: string) {
@@ -206,6 +337,12 @@ export function getTraceabilityPublicDetail(code: string) {
);
}
export function getTraceabilityPreviewDetail(code: string) {
return requestClient.get<TraceabilityApi.PublicDetail>(
`/traceability/public/preview/by-code/${code}`,
);
}
export function getTraceabilityFeedbackList() {
return requestClient.get<TraceabilityApi.FeedbackItem[]>(
'/traceability/feedback',
@@ -236,6 +373,17 @@ export function uploadTraceabilityImage(data: FormData) {
);
}
export function getTraceabilityFileAssets(assetType: string, limit = 24) {
return requestClient.get<TraceabilityApi.FileAssetItem[]>(
'/traceability/files/history',
{ params: { assetType, limit } },
);
}
export function deleteTraceabilityFileAsset(id: string) {
return requestClient.post<boolean>('/traceability/files/history/delete', { id });
}
export function getTraceabilityUploadToken(data: {
bucketName?: string;
objectName: string;