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)