diff --git a/docs/reference/plugin/plugins/layout.md b/docs/reference/plugin/plugins/layout.md
index be8a079d..146c5fe2 100644
--- a/docs/reference/plugin/plugins/layout.md
+++ b/docs/reference/plugin/plugins/layout.md
@@ -56,21 +56,21 @@ export default {
}
```
-如果只是不想展示`side`,则:
+如果只是不想展示`sidebar`,则:
```
{
"layout": {
- "side": false
+ "sidebar": false
}
}
```
`layout`的可选配置有:
-- **side**: 左侧区域
+- **sidebar**: 左侧区域,从v4.0.0开始,之前名称叫`side`
-- **top**: 头部区域
+- **header**: 头部区域,,从v4.0.0开始,之前名称叫`top`
- **logo**:logo和标题区域。
@@ -182,6 +182,15 @@ export default {
- **name**:菜单的名称。通过匹配 `name` 和路由元信息 [meta](../../../guide/route.md#扩展路由元信息) 中的 `name`,把菜单和路由关联起来,然后使用路由元信息补充菜单配置,比如 `title`、`path` 等。
- **path**:菜单的路径,可配置第三方地址。
+
+ - **match**:额外匹配的路径,当前路由命中匹配规则时,此菜单高亮。 (v4.0.0+)
+
+```
+{
+ path: '/product',
+ match: ['/product/*', '/product/create']
+}
+```
- **title**:菜单的标题,如果同时使用[国际化插件](./locale.md),而且`title`的值以`$`开头,则使用`$`后面的内容去匹配语言设置。
diff --git a/docs/zh/reference/plugin/plugins/layout.md b/docs/zh/reference/plugin/plugins/layout.md
index be8a079d..146c5fe2 100644
--- a/docs/zh/reference/plugin/plugins/layout.md
+++ b/docs/zh/reference/plugin/plugins/layout.md
@@ -56,21 +56,21 @@ export default {
}
```
-如果只是不想展示`side`,则:
+如果只是不想展示`sidebar`,则:
```
{
"layout": {
- "side": false
+ "sidebar": false
}
}
```
`layout`的可选配置有:
-- **side**: 左侧区域
+- **sidebar**: 左侧区域,从v4.0.0开始,之前名称叫`side`
-- **top**: 头部区域
+- **header**: 头部区域,,从v4.0.0开始,之前名称叫`top`
- **logo**:logo和标题区域。
@@ -182,6 +182,15 @@ export default {
- **name**:菜单的名称。通过匹配 `name` 和路由元信息 [meta](../../../guide/route.md#扩展路由元信息) 中的 `name`,把菜单和路由关联起来,然后使用路由元信息补充菜单配置,比如 `title`、`path` 等。
- **path**:菜单的路径,可配置第三方地址。
+
+ - **match**:额外匹配的路径,当前路由命中匹配规则时,此菜单高亮。 (v4.0.0+)
+
+```
+{
+ path: '/product',
+ match: ['/product/*', '/product/create']
+}
+```
- **title**:菜单的标题,如果同时使用[国际化插件](./locale.md),而且`title`的值以`$`开头,则使用`$`后面的内容去匹配语言设置。
diff --git a/packages/create-fes-app/package.json b/packages/create-fes-app/package.json
index cd7f0c79..a579f10f 100644
--- a/packages/create-fes-app/package.json
+++ b/packages/create-fes-app/package.json
@@ -1,6 +1,6 @@
{
"name": "@fesjs/create-fes-app",
- "version": "2.1.1",
+ "version": "2.1.2",
"description": "create a app base on fes.js",
"main": "lib/index.js",
"files": [
diff --git a/packages/create-fes-app/templates/app/h5/.npmrc b/packages/create-fes-app/templates/app/h5/.npmrc
new file mode 100644
index 00000000..276285cd
--- /dev/null
+++ b/packages/create-fes-app/templates/app/h5/.npmrc
@@ -0,0 +1 @@
+public-hoist-pattern[]=@babel/*
\ No newline at end of file
diff --git a/packages/create-fes-app/templates/app/h5/package.json b/packages/create-fes-app/templates/app/h5/package.json
index d3693a1e..b3e4454d 100644
--- a/packages/create-fes-app/templates/app/h5/package.json
+++ b/packages/create-fes-app/templates/app/h5/package.json
@@ -48,7 +48,8 @@
"@fesjs/fes": "^2.0.0",
"@fesjs/plugin-icon": "^2.0.0",
"@fesjs/plugin-request": "^2.0.0",
- "vue": "^3.2.6"
+ "vue": "^3.2.6",
+ "core-js": "^3.8.3"
},
"private": true
}
\ No newline at end of file
diff --git a/packages/create-fes-app/templates/app/pc/.fes.js b/packages/create-fes-app/templates/app/pc/.fes.js
index 8ed730dd..07496fb8 100644
--- a/packages/create-fes-app/templates/app/pc/.fes.js
+++ b/packages/create-fes-app/templates/app/pc/.fes.js
@@ -12,6 +12,7 @@ export default {
layout: {
title: "Fes.js",
footer: 'Created by MumbleFE',
+ navigation: 'mixin',
multiTabs: false,
menus: [{
name: 'index'
diff --git a/packages/create-fes-app/templates/app/pc/.npmrc b/packages/create-fes-app/templates/app/pc/.npmrc
new file mode 100644
index 00000000..276285cd
--- /dev/null
+++ b/packages/create-fes-app/templates/app/pc/.npmrc
@@ -0,0 +1 @@
+public-hoist-pattern[]=@babel/*
\ No newline at end of file
diff --git a/packages/create-fes-app/templates/app/pc/package.json b/packages/create-fes-app/templates/app/pc/package.json
index d3510602..6cfcba85 100644
--- a/packages/create-fes-app/templates/app/pc/package.json
+++ b/packages/create-fes-app/templates/app/pc/package.json
@@ -53,7 +53,8 @@
"@fesjs/plugin-model": "^2.0.0",
"@fesjs/plugin-enums": "^2.0.0",
"@fesjs/fes-design": "^0.1.10",
- "vue": "^3.2.6"
+ "vue": "^3.2.6",
+ "core-js": "^3.8.3"
},
"private": true
}
\ No newline at end of file
diff --git a/packages/create-fes-app/templates/app/pc/src/global.less b/packages/create-fes-app/templates/app/pc/src/global.less
new file mode 100644
index 00000000..17ec2261
--- /dev/null
+++ b/packages/create-fes-app/templates/app/pc/src/global.less
@@ -0,0 +1,3 @@
+body, html {
+ margin: 0;
+}
\ No newline at end of file
diff --git a/packages/fes-plugin-layout/package.json b/packages/fes-plugin-layout/package.json
index fd855508..fd3a40af 100644
--- a/packages/fes-plugin-layout/package.json
+++ b/packages/fes-plugin-layout/package.json
@@ -1,6 +1,6 @@
{
"name": "@fesjs/plugin-layout",
- "version": "3.0.0",
+ "version": "4.0.0",
"description": "@fesjs/plugin-layout",
"main": "lib/index.js",
"files": [
diff --git a/packages/fes-plugin-layout/src/runtime/helpers/utils.js b/packages/fes-plugin-layout/src/runtime/helpers/utils.js
new file mode 100644
index 00000000..e8b16aa7
--- /dev/null
+++ b/packages/fes-plugin-layout/src/runtime/helpers/utils.js
@@ -0,0 +1,9 @@
+export const flatNodes = (nodes = []) => nodes.reduce((res, node) => {
+ res.push(node);
+ if (node.children) {
+ res = res.concat(
+ flatNodes(node.children)
+ );
+ }
+ return res;
+}, []);
diff --git a/packages/fes-plugin-layout/src/runtime/views/BaseLayout.vue b/packages/fes-plugin-layout/src/runtime/views/BaseLayout.vue
index 21f3bc9f..53a357db 100644
--- a/packages/fes-plugin-layout/src/runtime/views/BaseLayout.vue
+++ b/packages/fes-plugin-layout/src/runtime/views/BaseLayout.vue
@@ -2,7 +2,7 @@