-
+
)
}
```
-既减少了类名的嵌套,又减少了HTML的嵌套,使代码逻辑更加清晰,易于理解与维护
+既减少了类名的嵌套,又减少了 HTML 的嵌套,使代码逻辑更加清晰,易于理解与维护,同时实现模块化和组件化
diff --git a/react-ui/src/stories/mockData.ts b/react-ui/src/stories/mockData.ts
index 3d910b06..11b5ffa2 100644
--- a/react-ui/src/stories/mockData.ts
+++ b/react-ui/src/stories/mockData.ts
@@ -546,3 +546,250 @@ export const codeListData = {
empty: false,
},
};
+
+export const serviceListData = {
+ code: 200,
+ msg: '操作成功',
+ data: {
+ content: [
+ {
+ id: 25,
+ service_name: '测试1224',
+ service_type: 'video',
+ service_type_name: '视频',
+ description: '测试',
+ create_by: 'admin',
+ update_by: 'admin',
+ create_time: '2024-12-24T16:01:02.000+08:00',
+ update_time: '2024-12-24T16:01:02.000+08:00',
+ state: 1,
+ version_count: 2,
+ },
+ {
+ id: 12,
+ service_name: '介电材料',
+ service_type: 'text',
+ service_type_name: '文本',
+ description: 'test',
+ create_by: 'admin',
+ update_by: 'admin',
+ create_time: '2024-11-27T09:30:23.000+08:00',
+ update_time: '2024-11-27T09:30:23.000+08:00',
+ state: 1,
+ version_count: 0,
+ },
+ {
+ id: 7,
+ service_name: '手写体识别',
+ service_type: 'image',
+ service_type_name: '图片',
+ description: '手写体识别服务',
+ create_by: 'admin',
+ update_by: 'admin',
+ create_time: '2024-10-10T10:14:00.000+08:00',
+ update_time: '2024-10-10T10:14:00.000+08:00',
+ state: 1,
+ version_count: 5,
+ },
+ ],
+ pageable: {
+ sort: {
+ unsorted: true,
+ sorted: false,
+ empty: true,
+ },
+ pageNumber: 0,
+ pageSize: 10,
+ offset: 0,
+ paged: true,
+ unpaged: false,
+ },
+ last: true,
+ totalPages: 1,
+ totalElements: 3,
+ sort: {
+ unsorted: true,
+ sorted: false,
+ empty: true,
+ },
+ first: true,
+ number: 0,
+ numberOfElements: 3,
+ size: 10,
+ empty: false,
+ },
+};
+
+export const computeResourceData = {
+ code: 200,
+ msg: '操作成功',
+ data: {
+ content: [
+ {
+ id: 15,
+ computing_resource: 'GPU',
+ standard:
+ '{"name":"CPU-GPU","value":{"detail_type":"3060","gpu":0,"cpu":1,"memory":"2GB"}}',
+ description: 'GPU: 0, CPU:1, 内存: 2GB',
+ create_by: 'admin',
+ create_time: '2024-04-19T00:00:00.000+08:00',
+ update_by: 'admin',
+ update_time: '2024-04-19T00:00:00.000+08:00',
+ state: 1,
+ used_state: null,
+ node: null,
+ },
+ {
+ id: 16,
+ computing_resource: 'GPU',
+ standard:
+ '{"name":"CPU-GPU","value":{"detail_type":"3060","gpu":0,"cpu":2,"memory":"4GB"}}',
+ description: 'GPU: 0, CPU:2, 内存: 4GB',
+ create_by: 'admin',
+ create_time: '2024-04-19T00:00:00.000+08:00',
+ update_by: 'admin',
+ update_time: '2024-04-19T00:00:00.000+08:00',
+ state: 1,
+ used_state: null,
+ node: null,
+ },
+ {
+ id: 17,
+ computing_resource: 'GPU',
+ standard:
+ '{"name":"CPU-GPU","value":{"detail_type":"3060","gpu":0,"cpu":4,"memory":"8GB"}}',
+ description: 'GPU: 0, CPU:4, 内存: 8GB',
+ create_by: 'admin',
+ create_time: '2024-04-19T00:00:00.000+08:00',
+ update_by: 'admin',
+ update_time: '2024-04-19T00:00:00.000+08:00',
+ state: 1,
+ used_state: null,
+ node: null,
+ },
+ {
+ id: 18,
+ computing_resource: 'GPU',
+ standard:
+ '{"name":"CPU-GPU","value":{"detail_type":"3060","gpu":1,"cpu":1,"memory":"2GB"}}',
+ description: 'GPU: 1, CPU:1, 内存: 2GB',
+ create_by: 'admin',
+ create_time: '2024-04-19T00:00:00.000+08:00',
+ update_by: 'admin',
+ update_time: '2024-04-19T00:00:00.000+08:00',
+ state: 1,
+ used_state: null,
+ node: null,
+ },
+ {
+ id: 19,
+ computing_resource: 'GPU',
+ standard:
+ '{"name":"CPU-GPU","value":{"detail_type":"3060","gpu":1,"cpu":2,"memory":"4GB"}}',
+ description: 'GPU: 1, CPU:2, 内存: 4GB',
+ create_by: 'admin',
+ create_time: '2024-04-19T00:00:00.000+08:00',
+ update_by: 'admin',
+ update_time: '2024-04-19T00:00:00.000+08:00',
+ state: 1,
+ used_state: null,
+ node: null,
+ },
+ {
+ id: 20,
+ computing_resource: 'GPU',
+ standard:
+ '{"name":"CPU-GPU","value":{"detail_type":"3060","gpu":1,"cpu":4,"memory":"8GB"}}',
+ description: 'GPU: 1, CPU:4, 内存: 8GB',
+ create_by: 'admin',
+ create_time: '2024-04-19T00:00:00.000+08:00',
+ update_by: 'admin',
+ update_time: '2024-04-19T00:00:00.000+08:00',
+ state: 1,
+ used_state: null,
+ node: null,
+ },
+ {
+ id: 21,
+ computing_resource: 'GPU',
+ standard:
+ '{"name":"CPU-GPU","value":{"detail_type":"3060","gpu":2,"cpu":2,"memory":"4GB"}}',
+ description: 'GPU: 2, CPU:2, 内存: 4GB',
+ create_by: 'admin',
+ create_time: '2024-04-19T00:00:00.000+08:00',
+ update_by: 'admin',
+ update_time: '2024-04-19T00:00:00.000+08:00',
+ state: 1,
+ used_state: null,
+ node: null,
+ },
+ {
+ id: 22,
+ computing_resource: 'GPU',
+ standard:
+ '{"name":"CPU-GPU","value":{"detail_type":"3060","gpu":2,"cpu":4,"memory":"8GB"}}',
+ description: 'GPU: 2, CPU:4, 内存: 8GB',
+ create_by: 'admin',
+ create_time: '2024-04-19T00:00:00.000+08:00',
+ update_by: 'admin',
+ update_time: '2024-04-19T00:00:00.000+08:00',
+ state: 1,
+ used_state: null,
+ node: null,
+ },
+ {
+ id: 23,
+ computing_resource: 'GPU',
+ standard:
+ '{"name":"CPU-GPU","value":{"detail_type":"RTX 3080 Ti","gpu":1,"cpu":1,"memory":"2GB"}}',
+ description: 'GPU: 1, CPU:1, 内存: 2GB, 显存: 12GB',
+ create_by: 'admin',
+ create_time: '2024-04-19T11:38:07.000+08:00',
+ update_by: 'admin',
+ update_time: '2024-04-19T11:38:07.000+08:00',
+ state: 1,
+ used_state: null,
+ node: null,
+ },
+ {
+ id: 24,
+ computing_resource: 'GPU',
+ standard:
+ '{"name":"CPU-GPU","value":{"detail_type":"RTX 3080","gpu":1,"cpu":2,"memory":"4GB"}}',
+ description: 'GPU: 1, CPU:2, 内存: 4GB, 显存: 10GB',
+ create_by: 'admin',
+ create_time: '2024-04-19T11:39:40.000+08:00',
+ update_by: 'admin',
+ update_time: '2024-04-19T11:39:40.000+08:00',
+ state: 1,
+ used_state: null,
+ node: null,
+ },
+ ],
+ pageable: {
+ sort: {
+ unsorted: true,
+ sorted: false,
+ empty: true,
+ },
+ pageNumber: 0,
+ pageSize: 1000,
+ offset: 0,
+ paged: true,
+ unpaged: false,
+ },
+ last: true,
+ totalPages: 1,
+ totalElements: 10,
+ sort: {
+ unsorted: true,
+ sorted: false,
+ empty: true,
+ },
+ first: true,
+ number: 0,
+ numberOfElements: 10,
+ size: 1000,
+ empty: false,
+ },
+};
diff --git a/react-ui/src/utils/format.ts b/react-ui/src/utils/format.ts
index 40d46fdc..7d37fbf5 100644
--- a/react-ui/src/utils/format.ts
+++ b/react-ui/src/utils/format.ts
@@ -122,14 +122,14 @@ export const formatBoolean = (value: boolean): string => {
return value ? '是' : '否';
};
-type FormatEnumFunc = (value: string | number) => string;
+type FormatEnumFunc = (value: string | number) => React.ReactNode;
// 格式化枚举
export const formatEnum = (
- options: { value: string | number; label: string }[],
+ options: { value?: string | number | null; label?: React.ReactNode }[],
): FormatEnumFunc => {
return (value: string | number) => {
const option = options.find((item) => item.value === value);
- return option ? option.label : '--';
+ return option && option.label ? option.label : '--';
};
};