diff --git a/src/pages/componentDevelopment/componentTest/index.tsx b/src/pages/componentDevelopment/componentTest/index.tsx index f653ed9..d0ff6a7 100644 --- a/src/pages/componentDevelopment/componentTest/index.tsx +++ b/src/pages/componentDevelopment/componentTest/index.tsx @@ -1,16 +1,20 @@ import React, { useState } from 'react'; import styles from './style/index.module.less'; -import { Button, Input, Radio, Space, Tag, Divider } from '@arco-design/web-react'; +import { Button, Input, Radio, Space, Tag, Divider, Breadcrumb } from '@arco-design/web-react'; import { IconSearch } from '@arco-design/web-react/icon'; import SideBar from '@/pages/componentDevelopment/componentTest/sideBar'; import InstanceList from '@/pages/componentDevelopment/componentTest/instanceList'; +import TestInstance from '@/pages/componentDevelopment/componentTest/testInstance'; const Group = Radio.Group; +const BreadcrumbItem = Breadcrumb.Item; const ComponentTest = () => { const [selectedIdentifier, setSelectedIdentifier] = useState(''); const [refreshKey, setRefreshKey] = useState(0); const [count, setCount] = useState({ total: 0, passed: 0, failed: 0 }); + const [currentView, setCurrentView] = useState<'list' | 'test'>('list'); + const [selectedInstance, setSelectedInstance] = useState(null); // 标签配置 const tagList = [ @@ -26,47 +30,86 @@ const ComponentTest = () => { setRefreshKey(prev => prev + 1); }; + // 处理前往测试 + const handleGoToTest = (instance: any) => { + setSelectedInstance(instance); + setCurrentView('test'); + }; + + // 返回列表 + const handleBackToList = () => { + setCurrentView('list'); + setSelectedInstance(null); + }; + return (
-
- - {tagList.map((item) => { - return ( - - {({ checked }) => { - return ( - - {item.label}{item.value} - - ); - }} - - ); - })} - - - }> - } - placeholder={'搜索'} - style={{ width: 236 }} - /> - - -
-
-
- setCount(value)} /> -
-
- + {/* 面包屑导航 */} + {currentView === 'test' && ( +
+ + + 组件测试 + + + {selectedInstance?.name || '测试实例'} + +
-
+ )} + + {currentView === 'list' ? ( + <> +
+ + {tagList.map((item) => { + return ( + + {({ checked }) => { + return ( + + {item.label}{item.value} + + ); + }} + + ); + })} + + + }> + } + placeholder={'搜索'} + style={{ width: 236 }} + /> + + +
+
+
+ setCount(value)} /> +
+
+ +
+
+ + ) : ( + + )}
); }; diff --git a/src/pages/componentDevelopment/componentTest/instanceList.tsx b/src/pages/componentDevelopment/componentTest/instanceList.tsx index fdd4cff..8c33bde 100644 --- a/src/pages/componentDevelopment/componentTest/instanceList.tsx +++ b/src/pages/componentDevelopment/componentTest/instanceList.tsx @@ -4,7 +4,11 @@ import { getTreeComponents } from '@/api/componentTestCase'; import { runStatusConstant, runStatusDic, runTypeConstant, runTypeDic } from '@/const/isdp/componentDeploy'; import dayjs from 'dayjs'; -const InstanceList = ({ identifier, refreshKey }: { identifier: string; refreshKey: number }) => { +const InstanceList = ({ identifier, refreshKey, onGoToTest }: { + identifier: string; + refreshKey: number; + onGoToTest: (instance: any) => void; +}) => { const [data, setData] = useState([]); const [loading, setLoading] = useState(false); @@ -80,6 +84,7 @@ const InstanceList = ({ identifier, refreshKey }: { identifier: string; refreshK record.runStatus === 'RUN' && ( ) ); diff --git a/src/pages/componentDevelopment/componentTest/test/data.ts b/src/pages/componentDevelopment/componentTest/test/data.ts deleted file mode 100644 index d8342e9..0000000 --- a/src/pages/componentDevelopment/componentTest/test/data.ts +++ /dev/null @@ -1,152 +0,0 @@ -export const menu = [ - { - 'id': '1770647707245903873', - 'tenantId': '000000', - 'parentId': '1658394185466220545', - 'code': 'component_classify', - 'dictKey': '设备数采与控制交互组件', - 'dictValue': '设备数采与控制交互组件', - 'title': '设备数采与控制交互组件', - 'sort': 0, - 'remark': '', - 'isSealed': -1, - 'isDeleted': -1, - 'parentName': '', - 'hasChildren': false - }, - { - 'id': '1770647743455330305', - 'tenantId': '000000', - 'parentId': '1658394185466220545', - 'code': 'component_classify', - 'dictKey': '视觉AI组件', - 'dictValue': '视觉AI组件', - 'title': '视觉AI组件', - 'sort': 1, - 'remark': '', - 'isSealed': -1, - 'isDeleted': -1, - 'parentName': '', - 'hasChildren': false - }, - { - 'id': '1770647774937776129', - 'tenantId': '000000', - 'parentId': '1658394185466220545', - 'code': 'component_classify', - 'dictKey': '运动规划组件', - 'dictValue': '运动规划组件', - 'title': '运动规划组件', - 'sort': 2, - 'remark': '', - 'isSealed': -1, - 'isDeleted': -1, - 'parentName': '', - 'hasChildren': false - }, - { - 'id': '1770647807334580225', - 'tenantId': '000000', - 'parentId': '1658394185466220545', - 'code': 'component_classify', - 'dictKey': '工艺知识服务组件', - 'dictValue': '工艺知识服务组件', - 'title': '工艺知识服务组件', - 'sort': 2, - 'remark': '', - 'isSealed': -1, - 'isDeleted': -1, - 'parentName': '', - 'hasChildren': false - }, - { - 'id': '1770647842776449026', - 'tenantId': '000000', - 'parentId': '1658394185466220545', - 'code': 'component_classify', - 'dictKey': '网络通信组件', - 'dictValue': '网络通信组件', - 'title': '网络通信组件', - 'sort': 4, - 'remark': '', - 'isSealed': -1, - 'isDeleted': -1, - 'parentName': '', - 'hasChildren': false - }, - { - 'id': '1770647878029574145', - 'tenantId': '000000', - 'parentId': '1658394185466220545', - 'code': 'component_classify', - 'dictKey': '数据存取组件', - 'dictValue': '数据存取组件', - 'title': '数据存取组件', - 'sort': 5, - 'remark': '', - 'isSealed': -1, - 'isDeleted': -1, - 'parentName': '', - 'hasChildren': false - }, - { - 'id': '1770647908987731969', - 'tenantId': '000000', - 'parentId': '1658394185466220545', - 'code': 'component_classify', - 'dictKey': '时序数据AI组件', - 'dictValue': '时序数据AI组件', - 'title': '时序数据AI组件', - 'sort': 6, - 'remark': '', - 'isSealed': -1, - 'isDeleted': -1, - 'parentName': '', - 'hasChildren': false - }, - { - 'id': '1770647940654727170', - 'tenantId': '000000', - 'parentId': '1658394185466220545', - 'code': 'component_classify', - 'dictKey': '文本数据AI组件', - 'dictValue': '文本数据AI组件', - 'title': '文本数据AI组件', - 'sort': 7, - 'remark': '', - 'isSealed': -1, - 'isDeleted': -1, - 'parentName': '', - 'hasChildren': false - }, - { - 'id': '1770648447733497858', - 'tenantId': '000000', - 'parentId': '1658394185466220545', - 'code': 'component_classify', - 'dictKey': '测试组件', - 'dictValue': '测试组件', - 'title': '测试组件', - 'sort': 999, - 'remark': '', - 'isSealed': -1, - 'isDeleted': -1, - 'parentName': '', - 'hasChildren': false - }, - { - 'id': '1938074918032830465', - 'tenantId': '000000', - 'parentId': '1658394185466220545', - 'code': 'component_classify', - 'dictKey': '监听组件', - 'dictValue': '监听组件', - 'title': '监听组件', - 'sort': 10, - 'remark': '', - 'isSealed': -1, - 'isDeleted': -1, - 'parentName': '', - 'hasChildren': false - } -]; \ No newline at end of file diff --git a/src/pages/componentDevelopment/componentTest/testInstance.tsx b/src/pages/componentDevelopment/componentTest/testInstance.tsx new file mode 100644 index 0000000..a458bd2 --- /dev/null +++ b/src/pages/componentDevelopment/componentTest/testInstance.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import { Button } from '@arco-design/web-react'; +import { IconLeft } from '@arco-design/web-react/icon'; + +const TestInstance = ({ instance, onBack }: { instance: any; onBack: () => void }) => { + return ( +
+
+ +
+

测试实例: {instance?.name}

+

实例标识: {instance?.identifier}

+

运行状态: {instance?.runStatus}

+

运行类型: {instance?.runType}

+ {/* 这里添加你的测试实例内容 */} +
+ ); +}; + +export default TestInstance; \ No newline at end of file