diff --git a/packages/fes-plugin-layout/src/index.js b/packages/fes-plugin-layout/src/index.js
index cc55ae20..9c6dc193 100644
--- a/packages/fes-plugin-layout/src/index.js
+++ b/packages/fes-plugin-layout/src/index.js
@@ -50,13 +50,6 @@ export default (api) => {
}`,
});
- api.writeTmpFile({
- path: absFilePath,
- content: Mustache.render(readFileSync(join(__dirname, 'runtime/views/index.tpl'), 'utf-8'), {
- REPLACE_USER_CONFIG: JSON.stringify(userConfig),
- }),
- });
-
api.writeTmpFile({
path: absConfigFilePath,
content: Mustache.render(readFileSync(join(__dirname, 'runtime/helpers/getConfig.tpl'), 'utf-8'), {
diff --git a/packages/fes-plugin-layout/src/runtime/helpers/fillMenu.js b/packages/fes-plugin-layout/src/runtime/helpers/fillMenu.js
index cbf7da55..366dfa4f 100644
--- a/packages/fes-plugin-layout/src/runtime/helpers/fillMenu.js
+++ b/packages/fes-plugin-layout/src/runtime/helpers/fillMenu.js
@@ -29,27 +29,16 @@ const fillMenuByRoute = (menuConfig, routeConfig, dep = 0) => {
menuConfig.forEach((menu) => {
const pageConfig = {};
if (menu.name) {
- Object.assign(
- pageConfig,
- getMetaByName(routeConfig, menu.name)
- );
+ Object.assign(pageConfig, getMetaByName(routeConfig, menu.name));
}
// menu的配置优先级高,当menu存在配置时,忽略页面的配置
Object.keys(pageConfig).forEach((prop) => {
- if (
- menu[prop] === undefined
- || menu[prop] === null
- || menu[prop] === ''
- ) {
+ if (menu[prop] === undefined || menu[prop] === null || menu[prop] === '') {
menu[prop] = pageConfig[prop];
}
});
if (menu.children && menu.children.length > 0) {
- menu.children = fillMenuByRoute(
- menu.children,
- routeConfig,
- dep
- );
+ menu.children = fillMenuByRoute(menu.children, routeConfig, dep);
}
arr.push(menu);
});
diff --git a/packages/fes-plugin-layout/src/runtime/views/BaseLayout.vue b/packages/fes-plugin-layout/src/runtime/views/BaseLayout.vue
index 9fbdad27..cb9b6fac 100644
--- a/packages/fes-plugin-layout/src/runtime/views/BaseLayout.vue
+++ b/packages/fes-plugin-layout/src/runtime/views/BaseLayout.vue
@@ -189,14 +189,14 @@ export default {
return [];
},
},
- title: {
- type: String,
- default: '',
- },
locale: {
type: Boolean,
default: false,
},
+ title: {
+ type: String,
+ default: '',
+ },
logo: {
type: String,
default: defaultLogo,
diff --git a/packages/fes-plugin-layout/src/runtime/views/index.jsx b/packages/fes-plugin-layout/src/runtime/views/index.jsx
new file mode 100644
index 00000000..03ec2029
--- /dev/null
+++ b/packages/fes-plugin-layout/src/runtime/views/index.jsx
@@ -0,0 +1,54 @@
+import { unref, defineComponent, computed } from 'vue';
+import { plugin } from '@@/core/coreExports';
+import { getRoutes } from '@@/core/routes/routes';
+// eslint-disable-next-line import/extensions
+import getConfig from '../helpers/getConfig';
+import fillMenu from '../helpers/fillMenu';
+import BaseLayout from './BaseLayout.vue';
+
+const Layout = defineComponent({
+ name: 'Layout',
+ setup() {
+ const config = getConfig();
+
+ const menus = typeof config.menus === 'function' ? config.menus() : config.menus;
+
+ const routes = getRoutes();
+
+ // 把路由的 meta 合并到 menu 配置中
+ const filledMenuRef = computed(() => fillMenu(unref(menus) ?? [], routes));
+
+ const localeShared = plugin.getShared('locale');
+
+ return () => {
+ const slots = {
+ renderCustom: config.renderCustom,
+ locale: () => {
+ if (localeShared) {
+ return ;
+ }
+ return null;
+ },
+ };
+ return (
+
+ );
+ };
+ },
+});
+
+export default Layout;
diff --git a/packages/fes-plugin-layout/src/runtime/views/index.tpl b/packages/fes-plugin-layout/src/runtime/views/index.tpl
deleted file mode 100644
index d1315d37..00000000
--- a/packages/fes-plugin-layout/src/runtime/views/index.tpl
+++ /dev/null
@@ -1,44 +0,0 @@
-import { ref, defineComponent, computed } from 'vue';
-import { plugin } from '@@/core/coreExports';
-import { getRoutes } from '@@/core/routes/routes';
-import BaseLayout from './BaseLayout.vue';
-// eslint-disable-next-line import/extensions
-import getConfig from '../helpers/getConfig';
-import fillMenu from '../helpers/fillMenu';
-
-const Layout = defineComponent({
- name: 'Layout',
- setup() {
- const initConfig = {{{REPLACE_USER_CONFIG}}}
- const config = {...initConfig, ...getConfig()};
-
- let menusRef = ref(config.menus);
- // 如果运行时配置了,则需要处理
- if (config.menus && typeof config.menus === 'function') {
- menusRef = ref(config.menus());
- }
- // 把路由的meta合并到menu配置中
- const filledMenuRef = computed(() => fillMenu(menusRef.value, getRoutes()));
-
- const localeShared = plugin.getShared('locale');
-
- const renderCustom = config.renderCustom;
-
- delete config.renderCustom;
-
- return () => {
- const slots = {
- renderCustom,
- locale: () => {
- if (localeShared) {
- return ;
- }
- return null;
- },
- };
- return ;
- };
- },
-});
-
-export default Layout;
diff --git a/packages/fes-template-vite/src/pages/editor.vue b/packages/fes-template-vite/src/pages/editor.vue
index 6aed5d6b..f97d091c 100644
--- a/packages/fes-template-vite/src/pages/editor.vue
+++ b/packages/fes-template-vite/src/pages/editor.vue
@@ -1,12 +1,6 @@
-
- {{json}}
+
+ {{ json }}
{
@@ -21,7 +15,7 @@ import { MonacoEditor } from '@fesjs/fes';
export default {
components: {
- MonacoEditor
+ MonacoEditor,
},
setup() {
const editorRef = ref();
@@ -35,8 +29,8 @@ export default {
return {
editorRef,
json,
- language
+ language,
};
- }
+ },
};
diff --git a/packages/fes-template/.fes.js b/packages/fes-template/.fes.js
index cbbdf551..75b7ddd4 100644
--- a/packages/fes-template/.fes.js
+++ b/packages/fes-template/.fes.js
@@ -1,9 +1,7 @@
import { defineBuildConfig } from '@fesjs/fes';
export default defineBuildConfig({
- swc: {
- loader: {},
- },
+ swc: false,
targets: {
chrome: '78',
},
diff --git a/packages/fes-template/src/app.jsx b/packages/fes-template/src/app.jsx
index f022c455..fb89d5ec 100644
--- a/packages/fes-template/src/app.jsx
+++ b/packages/fes-template/src/app.jsx
@@ -21,7 +21,10 @@ export const beforeRender = {
export const layout = (layoutConfig, { initialState }) => ({
...layoutConfig,
- renderCustom: () => ,
+ renderCustom: (props) => {
+ console.log(props);
+ return ;
+ },
menus: () => {
const menusRef = ref(layoutConfig.menus);
watch(