diff --git a/CHANGELOG.md b/CHANGELOG.md index 91f33be8..f8157a92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # 更新日志 +## v4.0.7 + +* 功能优化:添加导航菜单的时候支持框入外部链接,并支持上传自定义菜单图片 +* + ## v4.0.6 * Bug修复:修复PC端画廊页面的瀑布流组件样式错乱问题 diff --git a/database/update-v4.0.7.sql b/database/update-v4.0.7.sql new file mode 100644 index 00000000..e69de29b diff --git a/web/public/images/menu/bbs.png b/web/public/images/menu/bbs.png new file mode 100644 index 00000000..a9d44662 Binary files /dev/null and b/web/public/images/menu/bbs.png differ diff --git a/web/public/images/menu/docs.png b/web/public/images/menu/docs.png new file mode 100644 index 00000000..d11deacc Binary files /dev/null and b/web/public/images/menu/docs.png differ diff --git a/web/src/router.js b/web/src/router.js index 3f31698c..a03c5ec6 100644 --- a/web/src/router.js +++ b/web/src/router.js @@ -81,6 +81,11 @@ const routes = [ meta: {title: 'DALLE-3'}, component: () => import('@/views/Dalle.vue'), }, + { + name: 'ExternalLink', + path: '/external', + component: () => import('@/views/ExternalPage.vue'), + }, ] }, { diff --git a/web/src/views/ExternalPage.vue b/web/src/views/ExternalPage.vue new file mode 100644 index 00000000..134386df --- /dev/null +++ b/web/src/views/ExternalPage.vue @@ -0,0 +1,38 @@ + + + + diff --git a/web/src/views/Home.vue b/web/src/views/Home.vue index 12d332e0..620804f2 100644 --- a/web/src/views/Home.vue +++ b/web/src/views/Home.vue @@ -61,9 +61,16 @@ const mainNavs = ref([]) const moreNavs = ref([]) const curPath = ref(router.currentRoute.value.path) +if (curPath.value === "/external") { + curPath.value = router.currentRoute.value.query.url +} const changeNav = (item) => { curPath.value = item.url - router.push(item.url) + if (item.url.indexOf("http") !== -1) { // 外部链接 + router.push({name: 'ExternalLink', query: {url: item.url}}) + } else { + router.push(item.url) + } } onMounted(() => { @@ -75,9 +82,11 @@ onMounted(() => { // 获取菜单 httpGet("/api/menu/list").then(res => { mainNavs.value = res.data - if (res.data.length > 7) { - mainNavs.value = res.data.slice(0, 7) - moreNavs.value = res.data.slice(7) + // 根据窗口的高度计算应该显示多少菜单 + const rows = Math.floor((window.innerHeight - 90) / 90) + if (res.data.length > rows) { + mainNavs.value = res.data.slice(0, rows) + moreNavs.value = res.data.slice(rows) } }).catch(e => { ElMessage.error("获取系统菜单失败:" + e.message)