升级:升级 Arco Design Pro Vue 版本为 2.6.0(新增 TopMenu 顶部菜单栏功能,并修复部分 Bug,详情请参阅官方 CHANGELOG)

This commit is contained in:
2023-01-10 21:22:57 +08:00
parent 76fb698a37
commit 519124a3c7
13 changed files with 136 additions and 23 deletions

View File

@@ -50,6 +50,11 @@
if (key === 'menuFromServer' && value) {
await appStore.fetchServerMenuConfig();
}
if (key === 'topMenu') {
appStore.updateSettings({
menuCollapse: false,
});
}
appStore.updateSettings({ [key]: value });
};
</script>

View File

@@ -43,6 +43,11 @@
key: 'menu',
defaultVal: appStore.menu,
},
{
name: 'settings.topMenu',
key: 'topMenu',
defaultVal: appStore.topMenu,
},
{ name: 'settings.footer', key: 'footer', defaultVal: appStore.footer },
{ name: 'settings.tabBar', key: 'tabBar', defaultVal: appStore.tabBar },
{

View File

@@ -26,6 +26,7 @@
},
});
const topMenu = computed(() => appStore.topMenu);
const openKeys = ref<string[]>([]);
const selectedKey = ref<string[]>([]);
@@ -126,6 +127,7 @@
return () => (
<a-menu
mode={topMenu.value ? 'horizontal' : 'vertical'}
v-model:collapsed={collapsed.value}
v-model:open-keys={openKeys.value}
show-collapse-button={appStore.device !== 'mobile'}
@@ -133,7 +135,7 @@
selected-keys={selectedKey.value}
auto-open-selected={true}
level-indent={34}
style="height: 100%"
style="height: 100%; width:100%;"
onCollapse={setCollapse}
>
{renderSubMenu()}

View File

@@ -13,12 +13,15 @@
ContiNew Admin
</a-typography-title>
<icon-menu-fold
v-if="appStore.device === 'mobile'"
v-if="!topMenu && appStore.device === 'mobile'"
style="font-size: 22px; cursor: pointer"
@click="toggleDrawerMenu"
/>
</a-space>
</div>
<div class="center-side">
<Menu v-if="topMenu" />
</div>
<ul class="right-side">
<li>
<a-tooltip :content="$t('settings.search')">
@@ -186,6 +189,7 @@
import { LOCALE_OPTIONS } from '@/locale';
import useLocale from '@/hooks/locale';
import useUser from '@/hooks/user';
import Menu from '@/components/menu/index.vue';
import getAvatar from "@/utils/avatar";
import MessageBox from '../message-box/index.vue';
@@ -198,6 +202,7 @@
const theme = computed(() => {
return appStore.theme;
});
const topMenu = computed(() => appStore.topMenu && appStore.menu);
const isDark = useDark({
selector: 'body',
attribute: 'arco-theme',
@@ -259,6 +264,10 @@
padding-left: 20px;
}
.center-side {
flex: 1;
}
.right-side {
display: flex;
padding-right: 20px;

View File

@@ -3,6 +3,7 @@
"colorWeak": false,
"navbar": true,
"menu": true,
"topMenu": false,
"hideMenu": false,
"menuCollapse": false,
"footer": true,

View File

@@ -64,7 +64,7 @@
useResponsive(true);
const navbarHeight = `60px`;
const navbar = computed(() => appStore.navbar);
const renderMenu = computed(() => appStore.menu);
const renderMenu = computed(() => appStore.menu && !appStore.topMenu);
const hideMenu = computed(() => appStore.hideMenu);
const footer = computed(() => appStore.footer);
const menuWidth = computed(() => {

View File

@@ -12,6 +12,7 @@ export default {
'settings.navbar.screen.toExit': 'Click to exit the full screen mode',
'settings.navbar.alerts': 'alerts',
'settings.menu': 'Menu',
'settings.topMenu': 'Top Menu',
'settings.tabBar': 'Tab Bar',
'settings.footer': 'Footer',
'settings.otherSettings': 'Other Settings',

View File

@@ -12,6 +12,7 @@ export default {
'settings.navbar.screen.toExit': '点击退出全屏模式',
'settings.navbar.alerts': '消息通知',
'settings.menu': '菜单栏',
'settings.topMenu': '顶部菜单栏',
'settings.tabBar': '多页签',
'settings.footer': '底部',
'settings.otherSettings': '其他设置',

View File

@@ -5,6 +5,7 @@ export interface AppState {
colorWeak: boolean;
navbar: boolean;
menu: boolean;
topMenu: boolean;
hideMenu: boolean;
menuCollapse: boolean;
footer: boolean;

View File

@@ -70,7 +70,7 @@
<a-checkbox
checked="rememberMe"
:model-value="loginConfig.rememberMe"
@change="(setRememberMe as any)"
@change="setRememberMe as any"
>
{{ $t('login.form.rememberMe') }}
</a-checkbox>