- {t(element?.meta?.locale || '')}
+ {t(
+ collapsed.value
+ ? element?.meta?.collapsedLocale || element?.meta?.locale || ''
+ : element?.meta?.locale || ''
+ )}
{xPack.value
? orgTrigger(element, menuSwitchOrgVisible, () => (
) : (
goto(element)}>
- {t(element?.meta?.locale || '')}
+ {t(
+ collapsed.value
+ ? element?.meta?.collapsedLocale || element?.meta?.locale || ''
+ : element?.meta?.locale || ''
+ )}
);
@@ -461,7 +474,11 @@
key={element?.name}
v-slots={{
icon,
- title: () => h('div', t(element?.meta?.locale || '')),
+ title: () =>
+ h(
+ 'div',
+ t(collapsed.value ? element?.meta?.collapsedLocale || '' : element?.meta?.locale || '')
+ ),
}}
class={BOTTOM_MENU_LIST.includes(element?.name as string) ? 'arco-menu-inline--bottom' : ''}
>
@@ -496,11 +513,11 @@
'popup-offset': -4,
}}
v-slots={{
- 'collapse-icon': () => (appStore.menuCollapse ?
:
),
+ 'collapse-icon': () => (collapsed.value ?
:
),
}}
>
-
{renderSubMenu()}
-
{personalInfoMenu()}
+
{renderSubMenu()}
+
{personalInfoMenu()}
{personalInfoDrawer()}
>
@@ -551,7 +568,7 @@
margin-right: 8px;
.arco-icon {
&:not(.arco-icon-down) {
- font-size: 18px;
+ font-size: 16px;
}
color: var(--color-text-4);
@@ -590,11 +607,26 @@
.arco-menu-overflow-sub-menu {
min-width: 60px;
}
- .arco-menu-collapsed {
- width: 72px;
- .arco-avatar,
- .arco-icon {
- margin-right: 2px !important;
+ .arco-menu-vertical.arco-menu-collapsed {
+ width: 56px;
+ .arco-menu-inner {
+ @apply !p-0;
+
+ padding-bottom: 32px !important;
+ .arco-menu-item,
+ .arco-menu-inline--bottom {
+ @apply flex-col p-0;
+
+ gap: 4px;
+ line-height: normal;
+ padding: 8px 14px;
+ .arco-menu-icon {
+ @apply mr-0;
+ }
+ .arco-menu-title {
+ @apply opacity-100;
+ }
+ }
}
}
.arco-menu {
diff --git a/frontend/src/locale/en-US/index.ts b/frontend/src/locale/en-US/index.ts
index c0cfa6d2a2..5edc70a880 100644
--- a/frontend/src/locale/en-US/index.ts
+++ b/frontend/src/locale/en-US/index.ts
@@ -21,11 +21,14 @@ export default {
message: {
'menu.workbench': 'Workbench',
'menu.testPlan': 'Test Plan',
+ 'menu.testPlanShort': 'Plan',
'menu.bugManagement': 'Bug',
+ 'menu.bugManagementShort': 'Bug',
'menu.bugManagement.bugDetail': 'Bug',
'menu.bugManagement.bugRecycle': 'Recycle',
'menu.caseManagement': 'Functional',
'menu.apiTest': 'API Test',
+ 'menu.apiTestShort': 'API',
'menu.apiTest.debug': 'Debug',
'menu.apiTest.debug.debug': 'Debug',
'menu.apiTest.management': 'API',
@@ -36,6 +39,7 @@ export default {
'menu.uiTest': 'UI Test',
'menu.performanceTest': 'Performance Test',
'menu.projectManagement': 'Project',
+ 'menu.projectManagementShort': 'Project',
'menu.projectManagement.fileManagement': 'File',
'menu.projectManagement.messageManagement': 'Message',
'menu.projectManagement.commonScript': 'Common Script',
@@ -60,7 +64,9 @@ export default {
'menu.projectManagement.taskCenter': 'Task center',
'menu.projectManagement.environmentManagement': 'Environment',
'menu.settings': 'Settings',
+ 'menu.settingsShort': 'System',
'menu.settings.system': 'System',
+ 'menu.settings.systemManagement': 'System Management',
'menu.settings.system.usergroup': 'User Group',
'menu.settings.system.authorizedManagement': 'Authorized',
'menu.settings.system.pluginManager': 'Plugin',
@@ -72,6 +78,7 @@ export default {
'menu.settings.system.parameter': 'System Parameter',
'menu.settings.system.log': 'Log',
'menu.settings.organization': 'Organization',
+ 'menu.settings.organizationManagement': 'Organization Management',
'menu.settings.organization.member': 'Member',
'menu.settings.organization.userGroup': 'User Group',
'menu.settings.organization.project': 'Project',
diff --git a/frontend/src/locale/zh-CN/index.ts b/frontend/src/locale/zh-CN/index.ts
index cd7686482e..a7f725e50a 100644
--- a/frontend/src/locale/zh-CN/index.ts
+++ b/frontend/src/locale/zh-CN/index.ts
@@ -20,12 +20,16 @@ export default {
message: {
'menu.workbench': '工作台',
'menu.testPlan': '测试计划',
+ 'menu.testPlanShort': '计划',
'menu.testPlan.testPlanDetail': '测试计划详情',
'menu.bugManagement': '缺陷管理',
+ 'menu.bugManagementShort': '缺陷',
'menu.bugManagement.bugDetail': '缺陷',
'menu.bugManagement.bugRecycle': '回收站',
- 'menu.caseManagement': '用例管理',
+ 'menu.caseManagement': '测试用例',
+ 'menu.caseManagementShort': '用例',
'menu.apiTest': '接口测试',
+ 'menu.apiTestShort': '接口',
'menu.apiTest.debug': '调试',
'menu.apiTest.debug.debug': '调试',
'menu.apiTest.management': '定义',
@@ -40,6 +44,7 @@ export default {
'menu.loadTest': '性能测试',
'menu.performanceTest': '性能测试',
'menu.projectManagement': '项目管理',
+ 'menu.projectManagementShort': '项目',
'menu.projectManagement.templateManager': '模板管理',
'menu.projectManagement.log': '日志',
'menu.projectManagement.taskCenter': '任务中心',
@@ -63,7 +68,9 @@ export default {
'menu.caseManagement.caseManagementCaseDetail': '用例详情',
'menu.projectManagement.projectPermission': '项目与权限',
'menu.settings': '系统设置',
+ 'menu.settingsShort': '系统',
'menu.settings.system': '系统',
+ 'menu.settings.systemManagement': '系统管理',
'menu.settings.system.user': '用户',
'menu.settings.system.usergroup': '用户组',
'menu.settings.system.authorizedManagement': '授权',
@@ -75,6 +82,7 @@ export default {
'menu.settings.system.parameter': '系统参数',
'menu.settings.system.log': '日志',
'menu.settings.organization': '组织',
+ 'menu.settings.organizationManagement': '组织管理',
'menu.settings.organization.member': '成员',
'menu.settings.organization.userGroup': '用户组',
'menu.settings.organization.project': '项目',
diff --git a/frontend/src/router/routes/modules/apiTest.ts b/frontend/src/router/routes/modules/apiTest.ts
index 821161faa6..368778c901 100644
--- a/frontend/src/router/routes/modules/apiTest.ts
+++ b/frontend/src/router/routes/modules/apiTest.ts
@@ -10,7 +10,8 @@ const ApiTest: AppRouteRecordRaw = {
component: DEFAULT_LAYOUT,
meta: {
locale: 'menu.apiTest',
- icon: 'icon-icon_api-test-filled',
+ collapsedLocale: 'menu.apiTestShort',
+ icon: 'icon-icon_api-test-filled1',
order: 4,
hideChildrenInMenu: true,
roles: [
diff --git a/frontend/src/router/routes/modules/bugManagement.ts b/frontend/src/router/routes/modules/bugManagement.ts
index 4a1adb7c69..70926885a8 100644
--- a/frontend/src/router/routes/modules/bugManagement.ts
+++ b/frontend/src/router/routes/modules/bugManagement.ts
@@ -10,6 +10,7 @@ const BugManagement: AppRouteRecordRaw = {
component: DEFAULT_LAYOUT,
meta: {
locale: 'menu.bugManagement',
+ collapsedLocale: 'menu.bugManagementShort',
icon: 'icon-icon_defect',
order: 7,
roles: ['PROJECT_BUG:READ'],
diff --git a/frontend/src/router/routes/modules/caseManagement.ts b/frontend/src/router/routes/modules/caseManagement.ts
index 0277419a4a..78ee9de92e 100644
--- a/frontend/src/router/routes/modules/caseManagement.ts
+++ b/frontend/src/router/routes/modules/caseManagement.ts
@@ -10,7 +10,8 @@ const CaseManagement: AppRouteRecordRaw = {
component: DEFAULT_LAYOUT,
meta: {
locale: 'menu.caseManagement',
- icon: 'icon-icon_functional_testing',
+ collapsedLocale: 'menu.caseManagementShort',
+ icon: 'icon-icon_functional_testing1',
order: 3,
hideChildrenInMenu: true,
roles: ['FUNCTIONAL_CASE:READ', 'CASE_REVIEW:READ'],
diff --git a/frontend/src/router/routes/modules/projectManagement.ts b/frontend/src/router/routes/modules/projectManagement.ts
index 66f309ae79..e75d04cb6b 100644
--- a/frontend/src/router/routes/modules/projectManagement.ts
+++ b/frontend/src/router/routes/modules/projectManagement.ts
@@ -10,8 +10,9 @@ const ProjectManagement: AppRouteRecordRaw = {
component: DEFAULT_LAYOUT,
meta: {
locale: 'menu.projectManagement',
+ collapsedLocale: 'menu.projectManagementShort',
icon: 'icon-icon_project-settings-filled',
- order: 2,
+ order: 1,
hideChildrenInMenu: true,
roles: [
'PROJECT_BASE_INFO:READ',
diff --git a/frontend/src/router/routes/modules/setting.ts b/frontend/src/router/routes/modules/setting.ts
index dadbea0f75..2982fc907a 100644
--- a/frontend/src/router/routes/modules/setting.ts
+++ b/frontend/src/router/routes/modules/setting.ts
@@ -9,6 +9,7 @@ const Setting: AppRouteRecordRaw = {
component: DEFAULT_LAYOUT,
meta: {
locale: 'menu.settings',
+ collapsedLocale: 'menu.settingsShort',
icon: 'icon-a-icon_system_settings',
order: 8,
roles: [
@@ -39,6 +40,7 @@ const Setting: AppRouteRecordRaw = {
component: null,
meta: {
locale: 'menu.settings.system',
+ collapsedLocale: 'menu.settings.systemManagement',
roles: [
'SYSTEM_USER:READ',
'SYSTEM_USER_ROLE:READ',
@@ -182,6 +184,7 @@ const Setting: AppRouteRecordRaw = {
component: null,
meta: {
locale: 'menu.settings.organization',
+ collapsedLocale: 'menu.settings.organizationManagement',
roles: [
'ORGANIZATION_MEMBER:READ',
'ORGANIZATION_USER_ROLE:READ',
diff --git a/frontend/src/router/routes/modules/testPlan.ts b/frontend/src/router/routes/modules/testPlan.ts
index 9fe4431d32..6099b05783 100644
--- a/frontend/src/router/routes/modules/testPlan.ts
+++ b/frontend/src/router/routes/modules/testPlan.ts
@@ -10,8 +10,9 @@ const TestPlan: AppRouteRecordRaw = {
component: DEFAULT_LAYOUT,
meta: {
locale: 'menu.testPlan',
- icon: 'icon-icon_test-tracking_filled',
- order: 1,
+ collapsedLocale: 'menu.testPlanShort',
+ icon: 'icon-a-icon_test-tracking_filled1',
+ order: 2,
hideChildrenInMenu: true,
roles: ['*'],
},
diff --git a/frontend/src/router/routes/types.ts b/frontend/src/router/routes/types.ts
index 850736e264..ff57f3336b 100644
--- a/frontend/src/router/routes/types.ts
+++ b/frontend/src/router/routes/types.ts
@@ -14,6 +14,7 @@ export interface RouteMeta {
requiresAuth?: boolean; // 是否需要权限,默认需要
icon?: string; // 菜单icon
locale?: string; // 国际化语言单词
+ collapsedLocale?: string; // 收起时的国际化语言单词
hideInMenu?: boolean; // 此路由不在菜单展示
hideChildrenInMenu?: boolean; // 子路由不展示在菜单
activeMenu?: string; // 激活状态
diff --git a/frontend/src/router/typings.d.ts b/frontend/src/router/typings.d.ts
index 405643517e..c8fd819fda 100644
--- a/frontend/src/router/typings.d.ts
+++ b/frontend/src/router/typings.d.ts
@@ -6,6 +6,7 @@ declare module 'vue-router' {
requiresAuth?: boolean; // 是否需要权限,默认需要
icon?: string; // 菜单icon
locale?: string; // 国际化语言单词
+ collapsedLocale?: string; // 收起时的国际化语言单词
hideInMenu?: boolean; // 此路由不在菜单展示
hideChildrenInMenu?: boolean; // 子路由不展示在菜单
activeMenu?: string; // 激活状态
diff --git a/frontend/src/store/modules/app/index.ts b/frontend/src/store/modules/app/index.ts
index 600ebc204d..9b71f59f7b 100644
--- a/frontend/src/store/modules/app/index.ts
+++ b/frontend/src/store/modules/app/index.ts
@@ -383,7 +383,7 @@ const useAppStore = defineStore('app', {
},
},
persist: {
- paths: ['currentOrgId', 'currentProjectId', 'pageConfig'],
+ paths: ['currentOrgId', 'currentProjectId', 'pageConfig', 'menuCollapse'],
},
});
diff --git a/frontend/src/store/modules/app/types.ts b/frontend/src/store/modules/app/types.ts
index 1251fc6980..da712a2985 100644
--- a/frontend/src/store/modules/app/types.ts
+++ b/frontend/src/store/modules/app/types.ts
@@ -4,7 +4,6 @@ import type { BreadcrumbItem } from '@/components/business/ms-breadcrumb/types';
import { EnvConfig, EnvironmentItem } from '@/models/projectManagement/environmental';
import type { LoginConfig, PageConfig, PlatformConfig, ThemeConfig } from '@/models/setting/config';
import { ProjectListItem } from '@/models/setting/project';
-import type { TaskCenterEnum } from '@/enums/taskCenter';
import type { RouteRecordNormalized, RouteRecordRaw } from 'vue-router';
diff --git a/frontend/src/views/case-management/caseManagementFeature/components/caseTable.vue b/frontend/src/views/case-management/caseManagementFeature/components/caseTable.vue
index 68306d9c2d..1543409bcf 100644
--- a/frontend/src/views/case-management/caseManagementFeature/components/caseTable.vue
+++ b/frontend/src/views/case-management/caseManagementFeature/components/caseTable.vue
@@ -95,7 +95,7 @@
{{ statusIconMap[record.reviewStatus]?.statusText || '' }}
-
+