mirror of
https://github.com/yangjian102621/geekai.git
synced 2025-09-17 16:56:38 +08:00
feat: hide more navigator items
This commit is contained in:
parent
9eb1353455
commit
fe64b203da
@ -8,6 +8,7 @@
|
|||||||
* Bug修复:修复思维导图格式乱码问题
|
* Bug修复:修复思维导图格式乱码问题
|
||||||
* 功能新增:支持从应用列表直接和某个应用对话
|
* 功能新增:支持从应用列表直接和某个应用对话
|
||||||
* 功能优化:优化算力日志的页面和首页的UI
|
* 功能优化:优化算力日志的页面和首页的UI
|
||||||
|
* 功能新增:支持思维导图导出 PNG 图片下载
|
||||||
|
|
||||||
## v4.0.3
|
## v4.0.3
|
||||||
|
|
||||||
|
BIN
web/public/images/menu/more.png
Normal file
BIN
web/public/images/menu/more.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 KiB |
@ -1,8 +1,8 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: "iconfont"; /* Project id 4125778 */
|
font-family: "iconfont"; /* Project id 4125778 */
|
||||||
src: url('iconfont.woff2?t=1713751571578') format('woff2'),
|
src: url('iconfont.woff2?t=1713766977199') format('woff2'),
|
||||||
url('iconfont.woff?t=1713751571578') format('woff'),
|
url('iconfont.woff?t=1713766977199') format('woff'),
|
||||||
url('iconfont.ttf?t=1713751571578') format('truetype');
|
url('iconfont.ttf?t=1713766977199') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconfont {
|
.iconfont {
|
||||||
@ -13,6 +13,10 @@
|
|||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon-more:before {
|
||||||
|
content: "\e63c";
|
||||||
|
}
|
||||||
|
|
||||||
.icon-mj:before {
|
.icon-mj:before {
|
||||||
content: "\e643";
|
content: "\e643";
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
@ -5,6 +5,13 @@
|
|||||||
"css_prefix_text": "icon-",
|
"css_prefix_text": "icon-",
|
||||||
"description": "",
|
"description": "",
|
||||||
"glyphs": [
|
"glyphs": [
|
||||||
|
{
|
||||||
|
"icon_id": "1421807",
|
||||||
|
"name": "更多",
|
||||||
|
"font_class": "more",
|
||||||
|
"unicode": "e63c",
|
||||||
|
"unicode_decimal": 58940
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"icon_id": "36264781",
|
"icon_id": "36264781",
|
||||||
"name": "MidJourney",
|
"name": "MidJourney",
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -6,12 +6,36 @@
|
|||||||
<div class="divider"></div>
|
<div class="divider"></div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="nav-items">
|
<ul class="nav-items">
|
||||||
<li v-for="item in navs" :key="item.url">
|
<li v-for="item in mainNavs" :key="item.url">
|
||||||
<a @click="changeNav(item)" :class="item.url === curPath ? 'active' : ''">
|
<a @click="changeNav(item)" :class="item.url === curPath ? 'active' : ''">
|
||||||
<el-image :src="item.icon" style="width: 30px;height: 30px"/>
|
<el-image :src="item.icon" style="width: 30px;height: 30px"/>
|
||||||
</a>
|
</a>
|
||||||
<div :class="item.url === curPath ? 'title active' : 'title'">{{ item.name }}</div>
|
<div :class="item.url === curPath ? 'title active' : 'title'">{{ item.name }}</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<el-popover
|
||||||
|
v-if="moreNavs.length > 0"
|
||||||
|
placement="right-end"
|
||||||
|
trigger="hover"
|
||||||
|
>
|
||||||
|
<template #reference>
|
||||||
|
<li>
|
||||||
|
<a class="active">
|
||||||
|
<el-image src="/images/menu/more.png" style="width: 30px;height: 30px"/>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</template>
|
||||||
|
<template #default>
|
||||||
|
<ul class="more-menus">
|
||||||
|
<li v-for="item in moreNavs" :key="item.url" :class="item.url === curPath ? 'active' : ''">
|
||||||
|
<a @click="changeNav(item)">
|
||||||
|
<el-image :src="item.icon" style="width: 20px;height: 20px"/>
|
||||||
|
<span :class="item.url === curPath ? 'title active' : 'title'">{{ item.name }}</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</template>
|
||||||
|
</el-popover>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
@ -33,7 +57,8 @@ import {ElMessage} from "element-plus";
|
|||||||
|
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const logo = ref('/images/logo.png');
|
const logo = ref('/images/logo.png');
|
||||||
const navs = ref([])
|
const mainNavs = ref([])
|
||||||
|
const moreNavs = ref([])
|
||||||
const curPath = ref(router.currentRoute.value.path)
|
const curPath = ref(router.currentRoute.value.path)
|
||||||
|
|
||||||
const changeNav = (item) => {
|
const changeNav = (item) => {
|
||||||
@ -49,7 +74,11 @@ onMounted(() => {
|
|||||||
})
|
})
|
||||||
// 获取菜单
|
// 获取菜单
|
||||||
httpGet("/api/menu/list").then(res => {
|
httpGet("/api/menu/list").then(res => {
|
||||||
navs.value = res.data
|
mainNavs.value = res.data
|
||||||
|
if (res.data.length > 7) {
|
||||||
|
mainNavs.value = res.data.slice(0, 7)
|
||||||
|
moreNavs.value = res.data.slice(7)
|
||||||
|
}
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
ElMessage.error("获取系统菜单失败:" + e.message)
|
ElMessage.error("获取系统菜单失败:" + e.message)
|
||||||
})
|
})
|
||||||
@ -132,6 +161,7 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
@ -142,4 +172,29 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-popper {
|
||||||
|
.more-menus {
|
||||||
|
li {
|
||||||
|
padding 10px 15px
|
||||||
|
cursor pointer
|
||||||
|
border-radius 5px
|
||||||
|
margin 5px 0
|
||||||
|
|
||||||
|
.el-image {
|
||||||
|
position: relative
|
||||||
|
top 5px
|
||||||
|
right 5px
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color #f1f1f1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
li.active {
|
||||||
|
background-color #f1f1f1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -69,7 +69,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import {onMounted, ref} from "vue"
|
import {onMounted, ref} from "vue"
|
||||||
import {dateFormat} from "@/utils/libs";
|
import {dateFormat} from "@/utils/libs";
|
||||||
import {Back, DocumentCopy, Search} from "@element-plus/icons-vue";
|
import {Search} from "@element-plus/icons-vue";
|
||||||
import Clipboard from "clipboard";
|
import Clipboard from "clipboard";
|
||||||
import {ElMessage} from "element-plus";
|
import {ElMessage} from "element-plus";
|
||||||
import {httpPost} from "@/utils/http";
|
import {httpPost} from "@/utils/http";
|
||||||
@ -84,7 +84,7 @@ const query = ref({
|
|||||||
model: "",
|
model: "",
|
||||||
date: []
|
date: []
|
||||||
})
|
})
|
||||||
const tagColors = ref(["", "success", "primary", "danger", "info", "warning"])
|
const tagColors = ref(["", "success", "", "danger", "info", "warning"])
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
fetchData()
|
fetchData()
|
||||||
|
Loading…
Reference in New Issue
Block a user