mirror of
https://github.com/WeBankFinTech/fes.js.git
synced 2025-10-15 03:32:11 +08:00
feat(plugin-layout): 菜单支持配置默认展开等
This commit is contained in:
parent
9b03236654
commit
3fa247d7fe
@ -20,7 +20,7 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fesjs/fes": "^2.0.0",
|
"@fesjs/fes": "^2.0.0",
|
||||||
"@fesjs/plugin-layout": "^2.0.0"
|
"@fesjs/plugin-layout": "^4.0.0"
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -115,7 +115,12 @@ export default {
|
|||||||
name: 'store'
|
name: 'store'
|
||||||
}, {
|
}, {
|
||||||
name: 'simpleList'
|
name: 'simpleList'
|
||||||
}]
|
}],
|
||||||
|
menuConfig: {
|
||||||
|
defaultExpandAll: false,
|
||||||
|
expandedKeys: [],
|
||||||
|
accordion: false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -219,7 +224,19 @@ export default {
|
|||||||
```
|
```
|
||||||
|
|
||||||
- **children**:子菜单配置。
|
- **children**:子菜单配置。
|
||||||
|
|
||||||
|
#### menusConfig
|
||||||
|
- **类型**:`Object`
|
||||||
|
|
||||||
|
- **默认值**:`{}`
|
||||||
|
|
||||||
|
- **详情**:菜单的配置:
|
||||||
|
|
||||||
|
- **defaultExpandAll**:是否默认展开全部菜单。
|
||||||
|
|
||||||
|
- **expandedKeys**:配置默认展开的菜单,需要传子项是菜单路径的数组。
|
||||||
|
|
||||||
|
- **accordion**:是否只保持一个子菜单的展开。
|
||||||
|
|
||||||
### 运行时配置
|
### 运行时配置
|
||||||
在 `app.js` 中配置:
|
在 `app.js` 中配置:
|
||||||
@ -231,6 +248,38 @@ export const layout = {
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### menus
|
||||||
|
- **类型**:`(defaultMenus: [] )=> Ref | []`
|
||||||
|
|
||||||
|
- **详情**:运行时修改菜单,入参是默认菜单配置(.fes.js中的menu配置),需要返回一个`Ref`或者数组。
|
||||||
|
|
||||||
|
```js
|
||||||
|
import { ClusterOutlined } from '@fesjs/fes-design/icon'
|
||||||
|
export const layout = layoutConfig => ({
|
||||||
|
...layoutConfig,
|
||||||
|
customHeader: <UserCenter />,
|
||||||
|
menus: (defaultMenuData) => {
|
||||||
|
const menusRef = ref(defaultMenuData);
|
||||||
|
watch(() => layoutConfig.initialState.userName, () => {
|
||||||
|
menusRef.value = [{
|
||||||
|
name: 'store',
|
||||||
|
icon: <ClusterOutlined />
|
||||||
|
}];
|
||||||
|
});
|
||||||
|
return menusRef;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
```
|
||||||
|
`layoutConfig.initialState` 是 `beforeRender.action`执行后创建的应用初始状态数据。
|
||||||
|
|
||||||
|
如果菜单需要根据某些状态动态改变,则返回`Ref`,否则只需要返回数组。
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
在运行时配置菜单中的icon,需要传组件本身,而不是组件的名称。
|
||||||
|
:::tip
|
||||||
|
|
||||||
|
|
||||||
#### header
|
#### header
|
||||||
- **类型**:`String`
|
- **类型**:`String`
|
||||||
|
|
||||||
|
@ -20,6 +20,9 @@
|
|||||||
:collapsed="collapsedRef"
|
:collapsed="collapsedRef"
|
||||||
mode="vertical"
|
mode="vertical"
|
||||||
:inverted="theme === 'dark'"
|
:inverted="theme === 'dark'"
|
||||||
|
:expandedKeys="menuConfig?.expandedKeys"
|
||||||
|
:defaultExpandAll="menuConfig?.defaultExpandAll"
|
||||||
|
:accordion="menuConfig?.accordion"
|
||||||
/>
|
/>
|
||||||
</f-aside>
|
</f-aside>
|
||||||
<f-layout
|
<f-layout
|
||||||
@ -70,6 +73,9 @@
|
|||||||
:menus="menus"
|
:menus="menus"
|
||||||
mode="horizontal"
|
mode="horizontal"
|
||||||
:inverted="theme === 'dark'"
|
:inverted="theme === 'dark'"
|
||||||
|
:expandedKeys="menuConfig?.expandedKeys"
|
||||||
|
:defaultExpandAll="menuConfig?.defaultExpandAll"
|
||||||
|
:accordion="menuConfig?.accordion"
|
||||||
/>
|
/>
|
||||||
<div class="layout-header-custom">
|
<div class="layout-header-custom">
|
||||||
<slot name="customHeader"></slot>
|
<slot name="customHeader"></slot>
|
||||||
@ -124,6 +130,9 @@
|
|||||||
:menus="menus"
|
:menus="menus"
|
||||||
:collapsed="collapsedRef"
|
:collapsed="collapsedRef"
|
||||||
mode="vertical"
|
mode="vertical"
|
||||||
|
:expandedKeys="menuConfig?.expandedKeys"
|
||||||
|
:defaultExpandAll="menuConfig?.defaultExpandAll"
|
||||||
|
:accordion="menuConfig?.accordion"
|
||||||
/>
|
/>
|
||||||
</f-aside>
|
</f-aside>
|
||||||
<f-layout
|
<f-layout
|
||||||
@ -208,7 +217,10 @@ export default {
|
|||||||
type: Number,
|
type: Number,
|
||||||
default: 200
|
default: 200
|
||||||
},
|
},
|
||||||
footer: String
|
footer: String,
|
||||||
|
menuConfig: {
|
||||||
|
type: Object
|
||||||
|
}
|
||||||
},
|
},
|
||||||
setup(props) {
|
setup(props) {
|
||||||
const headerRef = ref();
|
const headerRef = ref();
|
||||||
|
@ -72,7 +72,10 @@ export default {
|
|||||||
{
|
{
|
||||||
name: 'pinia'
|
name: 'pinia'
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
menuConfig: {
|
||||||
|
defaultExpandAll: false
|
||||||
|
}
|
||||||
},
|
},
|
||||||
locale: {
|
locale: {
|
||||||
legacy: true
|
legacy: true
|
||||||
|
Loading…
x
Reference in New Issue
Block a user