|
@@ -1,13 +1,14 @@
|
|
|
<script setup lang="ts">
|
|
|
import { useCommonStoreHook } from "@/store";
|
|
|
|
|
|
-const { currentMenu, currentProjectId, currentExecutionId } =
|
|
|
+const { currentMenuIndex, currentProjectId, currentExecutionId } =
|
|
|
toRefs(useCommonStoreHook());
|
|
|
|
|
|
interface MenuItem {
|
|
|
name: string;
|
|
|
icon: string;
|
|
|
route: string;
|
|
|
+ index: number;
|
|
|
}
|
|
|
|
|
|
const menus = ref<MenuItem[]>([
|
|
@@ -15,50 +16,69 @@ const menus = ref<MenuItem[]>([
|
|
|
name: "首页",
|
|
|
icon: "home",
|
|
|
route: "/main/home",
|
|
|
+ index: 0,
|
|
|
},
|
|
|
{
|
|
|
name: "测试执行",
|
|
|
icon: "run-test",
|
|
|
route: "/main/run-test",
|
|
|
+ index: 1,
|
|
|
},
|
|
|
{
|
|
|
name: "数据管理",
|
|
|
icon: "data-manager",
|
|
|
route: "/main/data-manager",
|
|
|
+ index: 2,
|
|
|
},
|
|
|
{
|
|
|
name: "工程配置",
|
|
|
icon: "project-config",
|
|
|
route: "/main/project-config",
|
|
|
+ index: 3,
|
|
|
},
|
|
|
{
|
|
|
name: "报告模版",
|
|
|
icon: "report-template",
|
|
|
route: "/main/report-template",
|
|
|
+ index: 4,
|
|
|
},
|
|
|
{
|
|
|
name: "人员管理",
|
|
|
icon: "person-manager",
|
|
|
route: "/main/person-manager",
|
|
|
+ index: 5,
|
|
|
},
|
|
|
]);
|
|
|
|
|
|
const router = useRouter();
|
|
|
const handleMenuClick = (menu: MenuItem) => {
|
|
|
- if (menu.route != currentMenu.value.route) {
|
|
|
+ if (menu.index != currentMenuIndex.value) {
|
|
|
// 如果工程配置没有值,就不跳转,并提示 && !currentProjectId.value
|
|
|
- if (menu.route === "/main/project-config" && !currentProjectId.value) {
|
|
|
- ElMessage.warning("请先在首页选择工程");
|
|
|
- return;
|
|
|
- }
|
|
|
+ if (menu.index === 3) {
|
|
|
+ if (!currentProjectId.value) {
|
|
|
+ ElMessage.warning("请先在首页选择工程");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ router.push({
|
|
|
+ name: "ProjectConfig",
|
|
|
+ params: { engineerId: currentProjectId.value },
|
|
|
+ });
|
|
|
+ } else if (menu.index === 1) {
|
|
|
+ if (!currentExecutionId.value) {
|
|
|
+ ElMessage.warning("请先在首页执行工程");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ router.push({
|
|
|
+ name: "RunTestPage",
|
|
|
+ params: { engineerId: currentExecutionId.value },
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 其他菜单都可以跳转
|
|
|
|
|
|
- if (menu.route === "/main/run-test" && !currentExecutionId.value) {
|
|
|
- ElMessage.warning("请先在首页执行工程");
|
|
|
- return;
|
|
|
+ router.push(menu.route);
|
|
|
}
|
|
|
|
|
|
- currentMenu.value = menu;
|
|
|
- router.push(menu.route);
|
|
|
+ currentMenuIndex.value = menu.index;
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
@@ -77,12 +97,12 @@ const handleMenuClick = (menu: MenuItem) => {
|
|
|
:icon-class="menu.icon"
|
|
|
size="24"
|
|
|
:style="{
|
|
|
- color: menu.route === currentMenu.route ? 'white' : '#AFB9D0',
|
|
|
+ color: menu.index === currentMenuIndex ? 'white' : '#AFB9D0',
|
|
|
}"
|
|
|
/>
|
|
|
<div
|
|
|
class="name"
|
|
|
- :class="[menu.route === currentMenu.route ? 'selected' : 'normal']"
|
|
|
+ :class="[menu.index === currentMenuIndex ? 'selected' : 'normal']"
|
|
|
>
|
|
|
{{ menu.name }}
|
|
|
</div>
|