This commit is contained in:
winixt 2021-12-16 16:34:58 +08:00
commit e2465f6b2d
4 changed files with 69 additions and 20 deletions

1
.npmrc Normal file
View File

@ -0,0 +1 @@
registry=https://registry.npmmirror.com

View File

@ -109,35 +109,35 @@ export default {
}, },
``` ```
### footer #### footer
- **类型**`String` - **类型**`String`
- **默认值**`null` - **默认值**`null`
- **详情**:页面底部的文字。 - **详情**:页面底部的文字。
### theme #### theme
- **类型**`String` - **类型**`String`
- **默认值**`dark` - **默认值**`dark`
- **详情**:主题,可选有 `dark``light` - **详情**:主题,可选有 `dark``light`
### navigation #### navigation
- **类型**`String` - **类型**`String`
- **默认值**`side` - **默认值**`side`
- **详情**:页面布局类型,可选有 `side``top``mixin` - **详情**:页面布局类型,可选有 `side``top``mixin`
### fixedHeader #### fixedHeader
- **类型**`Boolean` - **类型**`Boolean`
- **默认值**`false` - **默认值**`false`
- **详情**:是否固定头部,不跟随页面滚动。 - **详情**:是否固定头部,不跟随页面滚动。
### fixedSideBar #### fixedSideBar
- **类型**`Boolean` - **类型**`Boolean`
- **默认值**`true` - **默认值**`true`
@ -179,7 +179,7 @@ export default {
- **详情**:菜单配置,子项具体配置如下: - **详情**:菜单配置,子项具体配置如下:
- **name**:菜单的名称。通过匹配 `name` 和路由元信息 [meta](http://localhost:8080/zh/guide/route.html#%E6%89%A9%E5%B1%95%E8%B7%AF%E7%94%B1%E5%85%83%E4%BF%A1%E6%81%AF) 中的 `name`,把菜单和路由关联起来,然后使用路由元信息补充菜单配置,比如 `title``path` 等。 - **name**:菜单的名称。通过匹配 `name` 和路由元信息 [meta](../../../guide/route.md#扩展路由元信息) 中的 `name`,把菜单和路由关联起来,然后使用路由元信息补充菜单配置,比如 `title``path` 等。
- **path**:菜单的路径,可配置第三方地址。 - **path**:菜单的路径,可配置第三方地址。
@ -211,6 +211,28 @@ export const layout = {
}; };
``` ```
#### top
- **类型**`String`
- **默认值**`true`
- **详情**:是否显示 top 区域。
#### side
- **类型**`String`
- **默认值**`true`
- **详情**:是否显示 side 区域。
#### top
- **类型**`String`
- **默认值**`true`
- **详情**:是否显示 top 区域。
#### customHeader #### customHeader
- **类型**Vue Component - **类型**Vue Component

View File

@ -109,35 +109,35 @@ export default {
}, },
``` ```
### footer #### footer
- **类型**`String` - **类型**`String`
- **默认值**`null` - **默认值**`null`
- **详情**:页面底部的文字。 - **详情**:页面底部的文字。
### theme #### theme
- **类型**`String` - **类型**`String`
- **默认值**`dark` - **默认值**`dark`
- **详情**:主题,可选有 `dark``light` - **详情**:主题,可选有 `dark``light`
### navigation #### navigation
- **类型**`String` - **类型**`String`
- **默认值**`side` - **默认值**`side`
- **详情**:页面布局类型,可选有 `side``top``mixin` - **详情**:页面布局类型,可选有 `side``top``mixin`
### fixedHeader #### fixedHeader
- **类型**`Boolean` - **类型**`Boolean`
- **默认值**`false` - **默认值**`false`
- **详情**:是否固定头部,不跟随页面滚动。 - **详情**:是否固定头部,不跟随页面滚动。
### fixedSideBar #### fixedSideBar
- **类型**`Boolean` - **类型**`Boolean`
- **默认值**`true` - **默认值**`true`
@ -211,6 +211,28 @@ export const layout = {
}; };
``` ```
#### top
- **类型**`String`
- **默认值**`true`
- **详情**:是否显示 top 区域。
#### side
- **类型**`String`
- **默认值**`true`
- **详情**:是否显示 side 区域。
#### top
- **类型**`String`
- **默认值**`true`
- **详情**:是否显示 top 区域。
#### customHeader #### customHeader
- **类型**Vue Component - **类型**Vue Component

View File

@ -70,7 +70,7 @@
<script> <script>
import { ref, computed } from 'vue'; import { ref, computed } from 'vue';
import { useRoute } from '@@/core/coreExports'; import { useRoute, plugin, ApplyPluginsType } from '@@/core/coreExports';
import Layout from 'ant-design-vue/lib/layout'; import Layout from 'ant-design-vue/lib/layout';
import 'ant-design-vue/lib/layout/style/css'; import 'ant-design-vue/lib/layout/style/css';
import Menu from './Menu'; import Menu from './Menu';
@ -135,26 +135,30 @@ export default {
setup(props) { setup(props) {
const collapsed = ref(false); const collapsed = ref(false);
const route = useRoute(); const route = useRoute();
const routeLayoutDefault = { const runtimeConfig = plugin.applyPlugins({
side: true, key: 'layout',
top: true, type: ApplyPluginsType.modify,
logo: true initialValue: {
}; side: true,
top: true,
logo: true
}
});
const routeLayout = computed(() => { const routeLayout = computed(() => {
let config; let config;
// meta layout true // meta layout true
const metaLayoutConfig = route.meta.layout === undefined ? true : route.meta.layout; const metaLayoutConfig = route.meta.layout === undefined ? true : route.meta.layout;
if (typeof metaLayoutConfig === 'boolean') { if (typeof metaLayoutConfig === 'boolean') {
config = metaLayoutConfig ? routeLayoutDefault : false; config = metaLayoutConfig ? runtimeConfig : false;
} else if (typeof metaLayoutConfig === 'object') { } else if (typeof metaLayoutConfig === 'object') {
config = { ...routeLayoutDefault, ...metaLayoutConfig }; config = { ...runtimeConfig, ...metaLayoutConfig };
} else { } else {
console.error('[plugin-layout]: meta layout must be object or boolean'); console.error('[plugin-layout]: meta layout must be object or boolean');
} }
// query layout false // query layout false
const routeQueryLayoutConfig = route.query.layout && JSON.parse(route.query.layout); const routeQueryLayoutConfig = route.query.layout && JSON.parse(route.query.layout);
if (typeof routeQueryLayoutConfig === 'boolean') { if (typeof routeQueryLayoutConfig === 'boolean') {
config = routeQueryLayoutConfig ? routeLayoutDefault : false; config = routeQueryLayoutConfig ? runtimeConfig : false;
} else if (typeof routeQueryLayoutConfig === 'object') { } else if (typeof routeQueryLayoutConfig === 'object') {
config = { ...config, ...routeQueryLayoutConfig }; config = { ...config, ...routeQueryLayoutConfig };
} else if (routeQueryLayoutConfig !== undefined) { } else if (routeQueryLayoutConfig !== undefined) {