mirror of
https://gitee.com/dromara/go-view.git
synced 2025-02-24 00:02:51 +08:00
fix: 设置菜单折叠宽度
This commit is contained in:
parent
1298abd9e6
commit
58261fd3a3
@ -3,6 +3,6 @@ export type ListType = {
|
|||||||
type: string
|
type: string
|
||||||
name: string
|
name: string
|
||||||
desc: string
|
desc: string
|
||||||
value: boolean
|
value: any
|
||||||
tip: string
|
tip?: string
|
||||||
}
|
}
|
@ -17,7 +17,7 @@
|
|||||||
</n-space>
|
</n-space>
|
||||||
<n-space>
|
<n-space>
|
||||||
<n-text class="item-right">{{ item.desc }}</n-text>
|
<n-text class="item-right">{{ item.desc }}</n-text>
|
||||||
<n-tooltip trigger="hover">
|
<n-tooltip v-if="item.tip" trigger="hover">
|
||||||
<template #trigger>
|
<template #trigger>
|
||||||
<n-icon size="21">
|
<n-icon size="21">
|
||||||
<HelpOutlineIcon />
|
<HelpOutlineIcon />
|
||||||
@ -39,6 +39,7 @@
|
|||||||
import { reactive } from 'vue'
|
import { reactive } from 'vue'
|
||||||
import { ListType } from './index.d'
|
import { ListType } from './index.d'
|
||||||
import { useLangStore } from '@/store/modules/langStore/langStore'
|
import { useLangStore } from '@/store/modules/langStore/langStore'
|
||||||
|
import { useDesignStore } from '@/store/modules/designStore/designStore'
|
||||||
import { icon } from '@/plugins'
|
import { icon } from '@/plugins'
|
||||||
|
|
||||||
const { HelpOutlineIcon } = icon.ionicons5
|
const { HelpOutlineIcon } = icon.ionicons5
|
||||||
@ -50,6 +51,7 @@ defineProps({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const langStore = useLangStore()
|
const langStore = useLangStore()
|
||||||
|
const designStore = useDesignStore()
|
||||||
|
|
||||||
const list = reactive<ListType[]>([
|
const list = reactive<ListType[]>([
|
||||||
{
|
{
|
||||||
@ -58,7 +60,14 @@ const list = reactive<ListType[]>([
|
|||||||
type: 'switch',
|
type: 'switch',
|
||||||
name: '切换语言',
|
name: '切换语言',
|
||||||
desc: '切换语言是否重新加载页面',
|
desc: '切换语言是否重新加载页面',
|
||||||
tip: '不重载可能会导致部分区域语言切换失败'
|
tip: '不重载有较低可能性导致部分区域语言切换失败'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'aollapsed',
|
||||||
|
value: designStore.asideAllCollapsed,
|
||||||
|
type: 'switch',
|
||||||
|
name: '菜单折叠',
|
||||||
|
desc: '左侧菜单是否全部折叠',
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
@ -71,8 +80,8 @@ const handleChange = (e: Event, item: ListType) => {
|
|||||||
case 'lang':
|
case 'lang':
|
||||||
langStore.changeReload(item.value)
|
langStore.changeReload(item.value)
|
||||||
break
|
break
|
||||||
|
case 'aollapsed':
|
||||||
default:
|
designStore.changeAsideAllCollapsed()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -27,7 +27,7 @@ import { h, ref } from 'vue'
|
|||||||
import { NAvatar, NText } from 'naive-ui'
|
import { NAvatar, NText } from 'naive-ui'
|
||||||
import { renderIcon } from '@/utils'
|
import { renderIcon } from '@/utils'
|
||||||
import { openDoc, logout, renderLang } from '@/utils'
|
import { openDoc, logout, renderLang } from '@/utils'
|
||||||
import { SystemSet } from './components/SystemSet/index'
|
import { SystemSet } from '@/components/SystemSet/index'
|
||||||
|
|
||||||
import { icon } from '@/plugins'
|
import { icon } from '@/plugins'
|
||||||
const {
|
const {
|
||||||
|
@ -10,7 +10,7 @@ import en from './en/index'
|
|||||||
const langStorage: LangStateType = getLocalStorage(StorageEnum.GO_LANG_STORE)
|
const langStorage: LangStateType = getLocalStorage(StorageEnum.GO_LANG_STORE)
|
||||||
|
|
||||||
const i18n = createI18n({
|
const i18n = createI18n({
|
||||||
locale: langStorage.lang || lang,
|
locale: langStorage?.lang || lang,
|
||||||
globalInjection: true,
|
globalInjection: true,
|
||||||
messages: {
|
messages: {
|
||||||
zh: zh,
|
zh: zh,
|
||||||
|
@ -55,12 +55,11 @@ export const maskClosable = false
|
|||||||
// 侧边栏宽度
|
// 侧边栏宽度
|
||||||
export const asideWidth = '270'
|
export const asideWidth = '270'
|
||||||
|
|
||||||
// 侧边栏是否支持全持全部收缩
|
// 侧边栏折叠后的宽度,支持全部折叠会覆盖为 0
|
||||||
export const asideAllShrink = true
|
export const asideCollapsedWidth = '60'
|
||||||
|
|
||||||
// 侧边栏缩小后的宽度
|
// 侧边栏是否支持全持全部折叠
|
||||||
// 建议 0 或者 60,已经适配好了
|
export const asideAllCollapsed = true
|
||||||
export const asideCollapsedWidth = '0'
|
|
||||||
|
|
||||||
// 修改边框圆角
|
// 修改边框圆角
|
||||||
export const borderRadius = '6px'
|
export const borderRadius = '6px'
|
||||||
|
@ -10,5 +10,5 @@ export interface DesignStateType {
|
|||||||
//系统内置风格
|
//系统内置风格
|
||||||
appThemeList: string[]
|
appThemeList: string[]
|
||||||
// 侧边栏是否全收缩
|
// 侧边栏是否全收缩
|
||||||
asideAllShrink: boolean
|
asideAllCollapsed: boolean
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { defineStore } from 'pinia'
|
import { defineStore } from 'pinia'
|
||||||
import { store } from '@/store'
|
import { store } from '@/store'
|
||||||
import { theme, asideAllShrink } from '@/settings/designSetting'
|
import { theme, asideAllCollapsed, asideCollapsedWidth } from '@/settings/designSetting'
|
||||||
import { DesignStateType } from './designStore.d'
|
import { DesignStateType } from './designStore.d'
|
||||||
import { setLocalStorage, getLocalStorage } from '@/utils'
|
import { setLocalStorage, getLocalStorage } from '@/utils'
|
||||||
import { StorageEnum } from '@/enums/storageEnum'
|
import { StorageEnum } from '@/enums/storageEnum'
|
||||||
@ -25,7 +25,7 @@ export const useDesignStore = defineStore({
|
|||||||
// 颜色列表
|
// 颜色列表
|
||||||
appThemeList,
|
appThemeList,
|
||||||
// 侧边栏
|
// 侧边栏
|
||||||
asideAllShrink
|
asideAllCollapsed
|
||||||
},
|
},
|
||||||
getters: {
|
getters: {
|
||||||
getDarkTheme(e): boolean {
|
getDarkTheme(e): boolean {
|
||||||
@ -36,6 +36,9 @@ export const useDesignStore = defineStore({
|
|||||||
},
|
},
|
||||||
getAppThemeList(): string[] {
|
getAppThemeList(): string[] {
|
||||||
return this.appThemeList
|
return this.appThemeList
|
||||||
|
},
|
||||||
|
getAsideCollapsedWidth(): string {
|
||||||
|
return this.asideAllCollapsed ? '0' : asideCollapsedWidth
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
@ -44,8 +47,8 @@ export const useDesignStore = defineStore({
|
|||||||
this.themeName = this.darkTheme ? ThemeEnum.dark : ThemeEnum.light
|
this.themeName = this.darkTheme ? ThemeEnum.dark : ThemeEnum.light
|
||||||
setLocalStorage(GO_DESIGN_STORE, this.$state)
|
setLocalStorage(GO_DESIGN_STORE, this.$state)
|
||||||
},
|
},
|
||||||
changeAsideAllShrink(): void {
|
changeAsideAllCollapsed(): void {
|
||||||
this.asideAllShrink = !this.asideAllShrink
|
this.asideAllCollapsed = !this.asideAllCollapsed
|
||||||
setLocalStorage(GO_DESIGN_STORE, this.$state)
|
setLocalStorage(GO_DESIGN_STORE, this.$state)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
show-trigger="bar"
|
show-trigger="bar"
|
||||||
:collapsed="collapsed"
|
:collapsed="collapsed"
|
||||||
:native-scrollbar="false"
|
:native-scrollbar="false"
|
||||||
:collapsed-width="asideCollapsedWidth"
|
:collapsed-width="getAsideCollapsedWidth"
|
||||||
:width="asideWidth"
|
:width="asideWidth"
|
||||||
@collapse="collapsed = true"
|
@collapse="collapsed = true"
|
||||||
@expand="collapsed = false"
|
@expand="collapsed = false"
|
||||||
@ -19,7 +19,7 @@
|
|||||||
<n-menu
|
<n-menu
|
||||||
:value="menuValue"
|
:value="menuValue"
|
||||||
:options="menuOptions"
|
:options="menuOptions"
|
||||||
:collapsed-width="asideCollapsedWidth"
|
:collapsed-width="getAsideCollapsedWidth"
|
||||||
:collapsed-icon-size="22"
|
:collapsed-icon-size="22"
|
||||||
:default-expanded-keys="defaultExpandedKeys"
|
:default-expanded-keys="defaultExpandedKeys"
|
||||||
@update:value="handleUpdateValue"
|
@update:value="handleUpdateValue"
|
||||||
@ -34,14 +34,16 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, computed, onMounted } from 'vue'
|
import { ref, computed, onMounted, toRefs } from 'vue'
|
||||||
import { Create } from '../Create/index'
|
import { Create } from '../Create/index'
|
||||||
import { AsideFooter } from '../AsideFooter/index'
|
import { AsideFooter } from '../AsideFooter/index'
|
||||||
import { asideWidth, asideCollapsedWidth } from '@/settings/designSetting'
|
import { asideWidth, asideCollapsedWidth } from '@/settings/designSetting'
|
||||||
import { menuOptionsInit, expandedKeys } from './menu'
|
|
||||||
import { useRoute } from 'vue-router'
|
import { useRoute } from 'vue-router'
|
||||||
|
import { useDesignStore } from '@/store/modules/designStore/designStore'
|
||||||
|
import { menuOptionsInit, expandedKeys } from './menu'
|
||||||
|
|
||||||
const collapsed = ref<boolean>(false)
|
const collapsed = ref<boolean>(false)
|
||||||
|
const { getAsideCollapsedWidth } = toRefs(useDesignStore())
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const routeRame = computed(() => route.name)
|
const routeRame = computed(() => route.name)
|
||||||
|
Loading…
Reference in New Issue
Block a user