diff --git a/frontend/package.json b/frontend/package.json index f827cecd..8e9fc0ed 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,7 +13,7 @@ "@element-plus/icons-vue": "^2.3.1", "@logicflow/core": "^2.0.16", "@logicflow/extension": "^2.0.21", - "@vueuse/core": "^13.5.0", + "@vueuse/core": "^13.6.0", "@xterm/addon-fit": "^0.10.0", "@xterm/addon-search": "^0.15.0", "@xterm/addon-web-links": "^0.11.0", @@ -24,13 +24,12 @@ "crypto-js": "^4.2.0", "dayjs": "^1.11.13", "echarts": "^5.6.0", - "element-plus": "^2.10.4", + "element-plus": "^2.10.5", "js-base64": "^3.7.7", "jsencrypt": "^3.3.2", - "mitt": "^3.0.1", "monaco-editor": "^0.52.2", "monaco-sql-languages": "^0.15.1", - "monaco-themes": "^0.4.5", + "monaco-themes": "^0.4.6", "nprogress": "^0.2.0", "pinia": "^3.0.3", "qrcode.vue": "^3.6.0", @@ -38,7 +37,7 @@ "sortablejs": "^1.15.6", "sql-formatter": "^15.6.5", "trzsz": "^1.1.5", - "uuid": "^9.0.1", + "uuid": "^11.1.0", "vue": "^v3.6.0-alpha.2", "vue-i18n": "^11.1.11", "vue-router": "^4.5.1", @@ -52,20 +51,20 @@ "@types/sortablejs": "^1.15.8", "@typescript-eslint/eslint-plugin": "^8.35.0", "@typescript-eslint/parser": "^8.35.0", - "@vitejs/plugin-vue": "^6.0.0", - "@vue/compiler-sfc": "^3.5.17", + "@vitejs/plugin-vue": "^6.0.1", + "@vue/compiler-sfc": "^3.5.18", "autoprefixer": "^10.4.21", - "code-inspector-plugin": "^0.20.12", + "code-inspector-plugin": "^1.0.4", "eslint": "^9.29.0", - "eslint-plugin-vue": "^10.2.0", + "eslint-plugin-vue": "^10.4.0", "postcss": "^8.5.6", "prettier": "^3.6.1", "sass": "^1.89.2", "tailwindcss": "^4.1.11", - "typescript": "^5.8.3", + "typescript": "^5.9.2", "vite": "npm:rolldown-vite@latest", "vite-plugin-progress": "0.0.7", - "vue-eslint-parser": "^10.1.4" + "vue-eslint-parser": "^10.2.0" }, "browserslist": [ "> 1%", diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 1b0485f2..852843cf 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -2,38 +2,34 @@
- + - + - - +
- + diff --git a/frontend/src/components/SearchForm/components/SearchFormItem.vue b/frontend/src/components/pagetable/SearchForm/components/SearchFormItem.vue similarity index 100% rename from frontend/src/components/SearchForm/components/SearchFormItem.vue rename to frontend/src/components/pagetable/SearchForm/components/SearchFormItem.vue diff --git a/frontend/src/components/SearchForm/index.ts b/frontend/src/components/pagetable/SearchForm/index.ts similarity index 100% rename from frontend/src/components/SearchForm/index.ts rename to frontend/src/components/pagetable/SearchForm/index.ts diff --git a/frontend/src/components/SearchForm/index.vue b/frontend/src/components/pagetable/SearchForm/index.vue similarity index 95% rename from frontend/src/components/SearchForm/index.vue rename to frontend/src/components/pagetable/SearchForm/index.vue index 1961448c..a443d7f0 100644 --- a/frontend/src/components/SearchForm/index.vue +++ b/frontend/src/components/pagetable/SearchForm/index.vue @@ -37,11 +37,11 @@ diff --git a/frontend/src/layout/component/columnsAside.vue b/frontend/src/layout/component/columnsAside.vue index 2051e261..74bcfcf5 100644 --- a/frontend/src/layout/component/columnsAside.vue +++ b/frontend/src/layout/component/columnsAside.vue @@ -1,7 +1,7 @@ - - diff --git a/frontend/src/layout/component/main.vue b/frontend/src/layout/component/main.vue index 9c2df5e6..c1a2941d 100644 --- a/frontend/src/layout/component/main.vue +++ b/frontend/src/layout/component/main.vue @@ -1,17 +1,8 @@ diff --git a/frontend/src/layout/lockScreen/index.vue b/frontend/src/layout/lockScreen/index.vue deleted file mode 100644 index d6321710..00000000 --- a/frontend/src/layout/lockScreen/index.vue +++ /dev/null @@ -1,352 +0,0 @@ - - - - - diff --git a/frontend/src/layout/logo/index.vue b/frontend/src/layout/logo/index.vue index fb67b6f2..6cc9f0c3 100644 --- a/frontend/src/layout/logo/index.vue +++ b/frontend/src/layout/logo/index.vue @@ -18,7 +18,6 @@ import { computed } from 'vue'; import { storeToRefs } from 'pinia'; import { useThemeConfig } from '@/store/themeConfig'; import config from '@/common/config'; -import mittBus from '@/common/utils/mitt'; const { themeConfig } = storeToRefs(useThemeConfig()); @@ -30,7 +29,6 @@ const setShowLogo = computed(() => { // logo 点击实现菜单展开/收起 const onThemeConfigChange = () => { if (themeConfig.value.layout === 'transverse') return false; - mittBus.emit('onMenuClick'); themeConfig.value.isCollapse = !themeConfig.value.isCollapse; }; diff --git a/frontend/src/layout/main/classic.vue b/frontend/src/layout/main/classic.vue index 31a0c469..da37183f 100644 --- a/frontend/src/layout/main/classic.vue +++ b/frontend/src/layout/main/classic.vue @@ -19,6 +19,11 @@ import Aside from '@/layout/component/aside.vue'; import Header from '@/layout/component/header.vue'; import Main from '@/layout/component/main.vue'; import TagsView from '@/layout/navBars/tagsView/tagsView.vue'; +import { provide, ref } from 'vue'; const { themeConfig } = storeToRefs(useThemeConfig()); + +// 提供 classic 布局的菜单数据 +const classicMenuData = ref(null); +provide('classicMenuData', classicMenuData); diff --git a/frontend/src/layout/main/columns.vue b/frontend/src/layout/main/columns.vue index 03a9997a..0d1e63d3 100644 --- a/frontend/src/layout/main/columns.vue +++ b/frontend/src/layout/main/columns.vue @@ -14,13 +14,17 @@ diff --git a/frontend/src/layout/navBars/breadcrumb/setings.vue b/frontend/src/layout/navBars/breadcrumb/setings.vue index a6857425..87db57b3 100644 --- a/frontend/src/layout/navBars/breadcrumb/setings.vue +++ b/frontend/src/layout/navBars/breadcrumb/setings.vue @@ -134,15 +134,6 @@ -
-
- {{ $t('layout.config.menuBarActiveColor') }} -
-
- -
-
-
{{ $t('layout.config.isMenuBarColorGradual') }} @@ -236,23 +227,6 @@
-
-
- {{ $t('layout.config.isLockScreen') }} -
-
- -
-
-
-
- {{ $t('layout.config.lockScreenTime') }} -
-
- - -
-
{{ $t('layout.config.interfaceDisplay') }} @@ -309,7 +283,7 @@ {{ $t('layout.config.isSortableTagsView') }}
- +
@@ -451,19 +425,60 @@ + diff --git a/frontend/src/layout/navBars/tagsView/tagsView.vue b/frontend/src/layout/navBars/tagsView/tagsView.vue index e9c301a6..02e78334 100644 --- a/frontend/src/layout/navBars/tagsView/tagsView.vue +++ b/frontend/src/layout/navBars/tagsView/tagsView.vue @@ -46,12 +46,11 @@ @@ -122,19 +116,42 @@ onBeforeRouteUpdate((to) => { overflow: hidden; margin-right: 30px; - ::v-deep(.el-scrollbar__bar.is-vertical) { - display: none; - } - - ::v-deep(a) { - width: 100%; - } - - .el-menu.el-menu--horizontal { - display: flex; + .horizontal-menu { + border: none !important; height: 100%; width: 100%; box-sizing: border-box; + + ::v-deep(.el-menu-item) { + height: 42px; + line-height: 42px; + padding: 0 15px !important; + margin: 0 5px; + border-radius: 6px; + display: flex; + align-items: center; + } + + ::v-deep(.el-sub-menu__title) { + height: 42px; + line-height: 42px; + padding: 0 25px 0 15px !important; /* 右边留出更多空间给箭头图标 */ + margin: 0 5px; + border-radius: 6px; + display: flex; + align-items: center; + } + + ::v-deep(.el-sub-menu__icon-arrow) { + right: 5px !important; + margin-top: -5px !important; + } + + ::v-deep(.el-menu-item.is-active), + ::v-deep(.el-sub-menu.is-active .el-sub-menu__title) { + color: #409eff; + background-color: rgba(64, 158, 255, 0.1); + } } } diff --git a/frontend/src/layout/navMenu/subItem.vue b/frontend/src/layout/navMenu/subItem.vue index 3c55c811..033b45d6 100644 --- a/frontend/src/layout/navMenu/subItem.vue +++ b/frontend/src/layout/navMenu/subItem.vue @@ -13,7 +13,7 @@ {{ $t(val.meta.title) }} {{ $t(val.meta.title) }} @@ -34,7 +34,6 @@ import { storeToRefs } from 'pinia'; import { useThemeConfig } from '@/store/themeConfig'; import { useRoute, onBeforeRouteUpdate } from 'vue-router'; import SubItem from '@/layout/navMenu/subItem.vue'; -import mittBus from '@/common/utils/mitt'; // 定义父组件传过来的值 const props = defineProps({ @@ -46,23 +45,29 @@ const props = defineProps({ }); const { themeConfig } = storeToRefs(useThemeConfig()); + const route = useRoute(); + const state = reactive({ defaultActive: route.path, }); + // 获取父级菜单数据 const menuLists = computed(() => { return props.menuList; }); + // 设置菜单的收起/展开 const setIsCollapse = computed(() => { return document.body.clientWidth < 1000 ? false : themeConfig.value.isCollapse; }); + // 路由更新时 onBeforeRouteUpdate((to) => { state.defaultActive = to.path; - mittBus.emit('onMenuClick'); const clientWidth = document.body.clientWidth; - if (clientWidth < 1000) themeConfig.value.isCollapse = false; + if (clientWidth < 1000) { + themeConfig.value.isCollapse = false; + } }); diff --git a/frontend/src/layout/routerView/iframes.vue b/frontend/src/layout/routerView/iframes.vue index 05793710..5de682e0 100644 --- a/frontend/src/layout/routerView/iframes.vue +++ b/frontend/src/layout/routerView/iframes.vue @@ -1,59 +1,114 @@