diff --git a/packages/fes-plugin-layout/package.json b/packages/fes-plugin-layout/package.json
index b1e8d1d7..699a14a7 100644
--- a/packages/fes-plugin-layout/package.json
+++ b/packages/fes-plugin-layout/package.json
@@ -31,8 +31,9 @@
},
"peerDependencies": {
"@ant-design/icons-vue": "^6.0.0",
- "@fesjs/fes": "^2.0.0",
"ant-design-vue": "^2.2.0",
+ "@fesjs/fes": "^2.0.0",
+ "@fesjs/fes-design": "^0.1.2",
"vue": "^3.0.5"
}
}
diff --git a/packages/fes-plugin-layout/src/runtime/assets/logo.png b/packages/fes-plugin-layout/src/runtime/assets/logo.png
index 4958e971..ad480536 100644
Binary files a/packages/fes-plugin-layout/src/runtime/assets/logo.png and b/packages/fes-plugin-layout/src/runtime/assets/logo.png differ
diff --git a/packages/fes-plugin-layout/src/runtime/helpers/pluginAccess.js b/packages/fes-plugin-layout/src/runtime/helpers/pluginAccess.js
index 5fb67c92..7b14a599 100644
--- a/packages/fes-plugin-layout/src/runtime/helpers/pluginAccess.js
+++ b/packages/fes-plugin-layout/src/runtime/helpers/pluginAccess.js
@@ -1,4 +1,4 @@
-import { unref, computed } from 'vue';
+import { computed, ref } from 'vue';
// eslint-disable-next-line
import { useAccess } from '../../plugin-access/core';
@@ -9,32 +9,26 @@ if (!useAccess) {
}
export const hasAccessByMenuItem = (item) => {
- let res;
- if (item.path && (!item.children || item.children.length === 0)) {
- res = useAccess(item.path);
- } else if (item.children && item.children.length > 0) {
- res = computed(() => item.children.some((child) => {
+ const hasChild = item.children && item.children.length;
+ if (item.path && !hasChild) {
+ return useAccess(item.path);
+ }
+ if (hasChild) {
+ return computed(() => item.children.some((child) => {
const rst = hasAccessByMenuItem(child);
return rst && rst.value;
}));
}
- return res;
+ return ref(true);
};
-const _addAccessTag = (arr) => {
- if (Array.isArray(arr)) {
- arr.forEach((item) => {
- item.access = hasAccessByMenuItem(item);
- if (item.children && item.children.length > 0) {
- _addAccessTag(item.children);
- }
- });
+export const transform = menus => menus.map((menu) => {
+ const hasAccess = hasAccessByMenuItem(menu);
+ if (!hasAccess.value) {
+ return false;
}
-};
-
-export const transform = (menus) => {
- const originData = unref(menus);
- _addAccessTag(originData);
-
- return originData;
-};
+ if (menu.children) {
+ menu.children = transform(menu.children);
+ }
+ return menu;
+}).filter(Boolean);
diff --git a/packages/fes-plugin-layout/src/runtime/helpers/pluginLocale.js b/packages/fes-plugin-layout/src/runtime/helpers/pluginLocale.js
index 5dd18b4e..6722e8c4 100644
--- a/packages/fes-plugin-layout/src/runtime/helpers/pluginLocale.js
+++ b/packages/fes-plugin-layout/src/runtime/helpers/pluginLocale.js
@@ -1,7 +1,5 @@
-import { unref, computed } from 'vue';
import { plugin } from '@@/core/coreExports';
-
export const transTitle = (name) => {
const sharedLocale = plugin.getShared('locale');
if (sharedLocale) {
@@ -12,22 +10,14 @@ export const transTitle = (name) => {
};
-const _transform = (arr) => {
- if (Array.isArray(arr)) {
- arr.forEach((item) => {
- if (item.title) {
- item._title = item.title;
- item.title = computed(() => transTitle(item._title));
- }
- if (item.children && item.children.length > 0) {
- _transform(item.children);
- }
- });
+export const transform = menus => menus.map((menu) => {
+ const copy = {
+ ...menu,
+ _label: menu.label,
+ label: transTitle(menu.label)
+ };
+ if (menu.children) {
+ copy.children = transform(menu.children);
}
-};
-
-export const transform = (menus) => {
- const originData = unref(menus);
- _transform(originData);
- return originData;
-};
+ return copy;
+});
diff --git a/packages/fes-plugin-layout/src/runtime/views/403.vue b/packages/fes-plugin-layout/src/runtime/views/403.vue
index a40e0e2f..879616cb 100644
--- a/packages/fes-plugin-layout/src/runtime/views/403.vue
+++ b/packages/fes-plugin-layout/src/runtime/views/403.vue
@@ -1,7 +1,7 @@
- 上一页
+ 上一页
@@ -14,13 +14,12 @@
import { useRouter } from '@@/core/coreExports';
import Result from 'ant-design-vue/lib/result';
import 'ant-design-vue/lib/result/style/css';
-import Button from 'ant-design-vue/lib/button';
-import 'ant-design-vue/lib/button/style/css';
+import { FButton } from '@fesjs/fes-design';
export default {
components: {
[Result.name]: Result,
- [Button.name]: Button
+ FButton
},
setup() {
const router = useRouter();
diff --git a/packages/fes-plugin-layout/src/runtime/views/404.vue b/packages/fes-plugin-layout/src/runtime/views/404.vue
index 41a73851..9abb2ece 100644
--- a/packages/fes-plugin-layout/src/runtime/views/404.vue
+++ b/packages/fes-plugin-layout/src/runtime/views/404.vue
@@ -1,7 +1,7 @@
- 上一页
+ 上一页
@@ -14,13 +14,12 @@
import { useRouter } from '@@/core/coreExports';
import Result from 'ant-design-vue/lib/result';
import 'ant-design-vue/lib/result/style/css';
-import Button from 'ant-design-vue/lib/button';
-import 'ant-design-vue/lib/button/style/css';
+import { FButton } from '@fesjs/fes-design';
export default {
components: {
[Result.name]: Result,
- [Button.name]: Button
+ FButton
},
setup() {
const router = useRouter();
diff --git a/packages/fes-plugin-layout/src/runtime/views/BaseLayout.vue b/packages/fes-plugin-layout/src/runtime/views/BaseLayout.vue
index cd3ae9e8..954fad49 100644
--- a/packages/fes-plugin-layout/src/runtime/views/BaseLayout.vue
+++ b/packages/fes-plugin-layout/src/runtime/views/BaseLayout.vue
@@ -1,68 +1,126 @@
-
-
-
-
+
+
-
+
![]()
-
{{title}}
+
{{title}}
-
-
-
-
-
-