From 85c5640b7cf517e64be6a54d1ce79e9d7d823c91 Mon Sep 17 00:00:00 2001 From: wanchun <445436867@qq.com> Date: Tue, 4 Jan 2022 19:45:15 +0800 Subject: [PATCH 1/6] =?UTF-8?q?chore:=20=E9=A1=B9=E7=9B=AE=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E4=BE=9D=E8=B5=96core-js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/create-fes-app/templates/app/h5/.npmrc | 1 + packages/create-fes-app/templates/app/h5/package.json | 3 ++- packages/create-fes-app/templates/app/pc/.fes.js | 1 + packages/create-fes-app/templates/app/pc/.npmrc | 1 + packages/create-fes-app/templates/app/pc/package.json | 3 ++- packages/create-fes-app/templates/app/pc/src/global.less | 3 +++ packages/fes-preset-built-in/package.json | 3 ++- 7 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 packages/create-fes-app/templates/app/h5/.npmrc create mode 100644 packages/create-fes-app/templates/app/pc/.npmrc create mode 100644 packages/create-fes-app/templates/app/pc/src/global.less 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-preset-built-in/package.json b/packages/fes-preset-built-in/package.json index e56a7ae3..8a0afedb 100644 --- a/packages/fes-preset-built-in/package.json +++ b/packages/fes-preset-built-in/package.json @@ -73,6 +73,7 @@ "webpackbar": "^5.0.0-3" }, "peerDependencies": { - "@vue/compiler-sfc": "^3.0.5" + "@vue/compiler-sfc": "^3.0.5", + "core-js": "^3.8.3" } } From e60c48b255636278a9384ac1ce740eb4a1e9f1f1 Mon Sep 17 00:00:00 2001 From: wanchun <445436867@qq.com> Date: Tue, 4 Jan 2022 19:46:42 +0800 Subject: [PATCH 2/6] chore(release): publish - @fesjs/create-fes-app@2.1.2 - @fesjs/preset-built-in@2.0.13 - @fesjs/fes@2.0.14 --- packages/create-fes-app/package.json | 2 +- packages/fes-preset-built-in/package.json | 2 +- packages/fes/package.json | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) 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/fes-preset-built-in/package.json b/packages/fes-preset-built-in/package.json index 8a0afedb..9c3150f6 100644 --- a/packages/fes-preset-built-in/package.json +++ b/packages/fes-preset-built-in/package.json @@ -1,6 +1,6 @@ { "name": "@fesjs/preset-built-in", - "version": "2.0.12", + "version": "2.0.13", "description": "@fesjs/preset-built-in", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/fes/package.json b/packages/fes/package.json index 70acc3d1..0524e066 100644 --- a/packages/fes/package.json +++ b/packages/fes/package.json @@ -1,6 +1,6 @@ { "name": "@fesjs/fes", - "version": "2.0.13", + "version": "2.0.14", "description": "一个好用的前端管理台快速开发框架", "preferGlobal": true, "scripts": { @@ -39,7 +39,7 @@ ], "dependencies": { "@fesjs/compiler": "^2.0.3", - "@fesjs/preset-built-in": "^2.0.12", + "@fesjs/preset-built-in": "^2.0.13", "@fesjs/runtime": "^2.0.2", "@fesjs/utils": "^2.0.3", "resolve-cwd": "^3.0.0" From d17941ca0ac5cff3976f4e22e56eed7ea721d7d6 Mon Sep 17 00:00:00 2001 From: wanchun <445436867@qq.com> Date: Wed, 5 Jan 2022 11:12:09 +0800 Subject: [PATCH 3/6] =?UTF-8?q?feat:=20=E5=BD=93build-in=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=98=E5=8C=96=E6=97=B6,=E7=BC=93=E5=AD=98=E5=A4=B1?= =?UTF-8?q?=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugins/commands/webpackConfig/index.js | 1 + packages/fes-template/.fes.js | 15 +++--- packages/fes-template/src/locales/en-US.js | 3 +- packages/fes-template/src/locales/zh-CN.js | 3 +- packages/fes-template/src/pages/mock.vue | 49 +++++++++++++++++++ 5 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 packages/fes-template/src/pages/mock.vue diff --git a/packages/fes-preset-built-in/src/plugins/commands/webpackConfig/index.js b/packages/fes-preset-built-in/src/plugins/commands/webpackConfig/index.js index 0ad8ea00..6ee2a43e 100644 --- a/packages/fes-preset-built-in/src/plugins/commands/webpackConfig/index.js +++ b/packages/fes-preset-built-in/src/plugins/commands/webpackConfig/index.js @@ -82,6 +82,7 @@ export default async function getConfig({ // --------------- cache ----------- webpackConfig.cache({ type: 'filesystem', + version: require('../../../../package.json').version, cacheDirectory: join(cwd, '.cache/webpack') }); diff --git a/packages/fes-template/.fes.js b/packages/fes-template/.fes.js index 585a5af4..5f4f505b 100644 --- a/packages/fes-template/.fes.js +++ b/packages/fes-template/.fes.js @@ -1,7 +1,7 @@ // .fes.js 只负责管理编译时配置,只能使用plain Object export default { - // exportStatic: {}, + // exportStatic: {}, define: { __DEV__: false }, @@ -15,7 +15,7 @@ export default { access: { roles: { admin: ['*'], - menuTest: ['/','/menuTest'] + menuTest: ['/', '/menuTest'] } }, request: { @@ -54,18 +54,21 @@ export default { path: 'https://www.baidu.com' }, { - title: '菜单权限测试', + name: 'mock' + }, + { + title: '菜单权限测试', children: [ { title: '子菜单', - path: '/menuTest', + path: '/menuTest' }, { title: '子菜单a', path: '/menuTest/a' - }, + } ] - }, + }, { name: 'cssModule' } diff --git a/packages/fes-template/src/locales/en-US.js b/packages/fes-template/src/locales/en-US.js index 0d39017e..e3efe619 100644 --- a/packages/fes-template/src/locales/en-US.js +++ b/packages/fes-template/src/locales/en-US.js @@ -3,5 +3,6 @@ export default { home: 'home', store: 'store', editor: 'editor', - externalLink: 'externalLink' + externalLink: 'externalLink', + mock: 'mock' }; diff --git a/packages/fes-template/src/locales/zh-CN.js b/packages/fes-template/src/locales/zh-CN.js index be54ef9f..55fc4666 100644 --- a/packages/fes-template/src/locales/zh-CN.js +++ b/packages/fes-template/src/locales/zh-CN.js @@ -3,5 +3,6 @@ export default { home: '首页', store: '状态管理', editor: '编辑器', - externalLink: '外部链接' + externalLink: '外部链接', + mock: '代理' }; diff --git a/packages/fes-template/src/pages/mock.vue b/packages/fes-template/src/pages/mock.vue new file mode 100644 index 00000000..0e48ff61 --- /dev/null +++ b/packages/fes-template/src/pages/mock.vue @@ -0,0 +1,49 @@ + + +{ + "name": "mock", + "title": "$mock" +} + + From a0a045ff4ac8c8ed4f0d29bb04625a50dae5ed68 Mon Sep 17 00:00:00 2001 From: wanchun <445436867@qq.com> Date: Wed, 5 Jan 2022 16:38:02 +0800 Subject: [PATCH 4/6] =?UTF-8?q?feat(plugin-layout):=20=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=85=8D=E7=BD=AE=E9=A2=9D=E5=A4=96=E7=9A=84?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/fes-template/.fes.js | 5 ++-- packages/fes-template/src/pages/route/@id.vue | 23 +++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 packages/fes-template/src/pages/route/@id.vue diff --git a/packages/fes-template/.fes.js b/packages/fes-template/.fes.js index 5f4f505b..cd2ca5f8 100644 --- a/packages/fes-template/.fes.js +++ b/packages/fes-template/.fes.js @@ -10,7 +10,7 @@ export default { title: '海贼王' }, router: { - mode: 'history' + mode: 'hash' }, access: { roles: { @@ -39,7 +39,8 @@ export default { menus: [ { name: 'index', - icon: '/wine-outline.svg' + icon: '/wine-outline.svg', + match: ['/route/*'] }, { name: 'store' diff --git a/packages/fes-template/src/pages/route/@id.vue b/packages/fes-template/src/pages/route/@id.vue new file mode 100644 index 00000000..0bb17929 --- /dev/null +++ b/packages/fes-template/src/pages/route/@id.vue @@ -0,0 +1,23 @@ + + +{ + "name": "activeRoute", + "title": "动态路由" +} + + From 66494ce4b27728dca83dc7a5c4b829a40abe15c0 Mon Sep 17 00:00:00 2001 From: wanchun <445436867@qq.com> Date: Wed, 5 Jan 2022 16:38:20 +0800 Subject: [PATCH 5/6] =?UTF-8?q?feat(plugin-layout):=20=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=85=8D=E7=BD=AE=E9=A2=9D=E5=A4=96=E7=9A=84?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/reference/plugin/plugins/layout.md | 17 ++++++++++---- docs/zh/reference/plugin/plugins/layout.md | 17 ++++++++++---- .../src/runtime/helpers/utils.js | 9 +++++++ .../src/runtime/views/BaseLayout.vue | 14 +++++------ .../src/runtime/views/Menu.vue | 22 ++++++++++++++++-- .../src/plugins/commands/dev/fes.png | Bin 33821 -> 51741 bytes 6 files changed, 62 insertions(+), 17 deletions(-) create mode 100644 packages/fes-plugin-layout/src/runtime/helpers/utils.js 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/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 @@