Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
basic-vue-admin
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Basic
basic-vue-admin
Commits
0419a070
提交
0419a070
authored
1月 01, 2021
作者:
vben
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(menu): add mixSideTrigger setting
上级
799a694b
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
42 行增加
和
3 行删除
+42
-3
CHANGELOG.zh_CN.md
CHANGELOG.zh_CN.md
+6
-0
useMenuSetting.ts
src/hooks/setting/useMenuSetting.ts
+3
-0
MixSider.vue
src/layouts/default/sider/MixSider.vue
+30
-3
projectSetting.ts
src/settings/projectSetting.ts
+2
-0
config.d.ts
src/types/config.d.ts
+1
-0
没有找到文件。
CHANGELOG.zh_CN.md
浏览文件 @
0419a070
## Wip
### ✨ Features
-
新增
`mixSideTrigger`
配置。用于配置左侧混合模式菜单打开方式。可选
`hover`
,默认
`click`
## 2.0.0-rc.15 (2020-12-31)
## 2.0.0-rc.15 (2020-12-31)
### ✨ 表格破坏性更新
### ✨ 表格破坏性更新
...
...
src/hooks/setting/useMenuSetting.ts
浏览文件 @
0419a070
...
@@ -33,6 +33,8 @@ const getSplit = computed(() => unref(getMenuSetting).split);
...
@@ -33,6 +33,8 @@ const getSplit = computed(() => unref(getMenuSetting).split);
const
getMenuBgColor
=
computed
(()
=>
unref
(
getMenuSetting
).
bgColor
);
const
getMenuBgColor
=
computed
(()
=>
unref
(
getMenuSetting
).
bgColor
);
const
getMixSideTrigger
=
computed
(()
=>
unref
(
getMenuSetting
).
mixSideTrigger
);
const
getCanDrag
=
computed
(()
=>
unref
(
getMenuSetting
).
canDrag
);
const
getCanDrag
=
computed
(()
=>
unref
(
getMenuSetting
).
canDrag
);
const
getAccordion
=
computed
(()
=>
unref
(
getMenuSetting
).
accordion
);
const
getAccordion
=
computed
(()
=>
unref
(
getMenuSetting
).
accordion
);
...
@@ -145,5 +147,6 @@ export function useMenuSetting() {
...
@@ -145,5 +147,6 @@ export function useMenuSetting() {
getIsMixMode
,
getIsMixMode
,
getIsMixSidebar
,
getIsMixSidebar
,
getCloseMixSidebarOnChange
,
getCloseMixSidebarOnChange
,
getMixSideTrigger
,
};
};
}
}
src/layouts/default/sider/MixSider.vue
浏览文件 @
0419a070
...
@@ -10,6 +10,7 @@
...
@@ -10,6 +10,7 @@
open: openMenu,
open: openMenu,
},
},
]"
]"
v-bind="getMenuEvents"
>
>
<AppLogo
:showTitle=
"false"
:class=
"`$
{prefixCls}-logo`" />
<AppLogo
:showTitle=
"false"
:class=
"`$
{prefixCls}-logo`" />
<ScrollContainer>
<ScrollContainer>
...
@@ -23,7 +24,7 @@
...
@@ -23,7 +24,7 @@
]"
]"
v-for="item in menuModules"
v-for="item in menuModules"
:key="item.path"
:key="item.path"
@click="hanldeModuleClick(item.path
)"
v-bind="getItemEvents(item
)"
>
>
<MenuTag
:item=
"item"
:showTitle=
"false"
:isHorizontal=
"false"
/>
<MenuTag
:item=
"item"
:showTitle=
"false"
:isHorizontal=
"false"
/>
<g-icon
<g-icon
...
@@ -112,6 +113,7 @@
...
@@ -112,6 +113,7 @@
getCanDrag
,
getCanDrag
,
getCloseMixSidebarOnChange
,
getCloseMixSidebarOnChange
,
getMenuTheme
,
getMenuTheme
,
getMixSideTrigger
,
}
=
useMenuSetting
();
}
=
useMenuSetting
();
const
{
title
}
=
useGlobSetting
();
const
{
title
}
=
useGlobSetting
();
...
@@ -125,6 +127,16 @@
...
@@ -125,6 +127,16 @@
}
}
);
);
const
getMenuEvents
=
computed
(()
=>
{
return
unref
(
getMixSideTrigger
)
===
'hover'
?
{
onMouseleave
:
()
=>
{
openMenu
.
value
=
false
;
},
}
:
{};
});
const
getShowDragBar
=
computed
(()
=>
unref
(
getCanDrag
));
const
getShowDragBar
=
computed
(()
=>
unref
(
getCanDrag
));
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
...
@@ -139,11 +151,13 @@
...
@@ -139,11 +151,13 @@
}
}
});
});
async
function
hanldeModuleClick
(
path
:
string
)
{
async
function
hanldeModuleClick
(
path
:
string
,
hover
=
false
)
{
const
children
=
await
getChildrenMenus
(
path
);
const
children
=
await
getChildrenMenus
(
path
);
if
(
unref
(
activePath
)
===
path
)
{
if
(
unref
(
activePath
)
===
path
)
{
openMenu
.
value
=
!
unref
(
openMenu
);
if
(
!
hover
)
{
openMenu
.
value
=
!
unref
(
openMenu
);
}
if
(
!
unref
(
openMenu
))
{
if
(
!
unref
(
openMenu
))
{
setActive
();
setActive
();
}
}
...
@@ -178,6 +192,17 @@
...
@@ -178,6 +192,17 @@
setActive
();
setActive
();
}
}
function
getItemEvents
(
item
:
Menu
)
{
if
(
unref
(
getMixSideTrigger
)
===
'hover'
)
{
return
{
onMouseenter
:
()
=>
hanldeModuleClick
(
item
.
path
,
true
),
};
}
return
{
onClick
:
()
=>
hanldeModuleClick
(
item
.
path
),
};
}
return
{
return
{
t
,
t
,
prefixCls
,
prefixCls
,
...
@@ -194,6 +219,8 @@
...
@@ -194,6 +219,8 @@
title
,
title
,
openMenu
,
openMenu
,
getMenuTheme
,
getMenuTheme
,
getItemEvents
,
getMenuEvents
,
};
};
},
},
});
});
...
...
src/settings/projectSetting.ts
浏览文件 @
0419a070
...
@@ -108,6 +108,8 @@ const setting: ProjectConfig = {
...
@@ -108,6 +108,8 @@ const setting: ProjectConfig = {
accordion
:
true
,
accordion
:
true
,
// Switch page to close menu
// Switch page to close menu
closeMixSidebarOnChange
:
false
,
closeMixSidebarOnChange
:
false
,
// Module opening method ‘click’ |'hover'
mixSideTrigger
:
'hover'
,
},
},
// Multi-label
// Multi-label
...
...
src/types/config.d.ts
浏览文件 @
0419a070
...
@@ -20,6 +20,7 @@ export interface MenuSetting {
...
@@ -20,6 +20,7 @@ export interface MenuSetting {
accordion
:
boolean
;
accordion
:
boolean
;
closeMixSidebarOnChange
:
boolean
;
closeMixSidebarOnChange
:
boolean
;
collapsedShowTitle
:
boolean
;
collapsedShowTitle
:
boolean
;
mixSideTrigger
:
'click'
|
'hover'
;
}
}
export
interface
MultiTabsSetting
{
export
interface
MultiTabsSetting
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论