Commit 9bdab4c1 authored by Sendya's avatar Sendya

fix: sidemenu theme

parent 0bd9c2e0
import { createApp } from 'vue'; import { createApp, reactive } from 'vue';
import 'ant-design-vue/dist/antd.less'; import 'ant-design-vue/dist/antd.less';
import './side-menu.less'; import './side-menu.less';
import { Layout, Input, message } from 'ant-design-vue'; import { Layout, Input, Space, Switch, message } from 'ant-design-vue';
import { menus } from './menus'; import { menus } from './menus';
import { default as SiderMenuWrapper } from '../src/SiderMenu'; import { default as SiderMenuWrapper } from '../src/SiderMenu';
import { useMenuState } from '../src/SiderMenu/BaseMenu'; import { useMenuState } from '../src/SiderMenu/BaseMenu';
import * as Icon from '@ant-design/icons-vue'; import * as Icon from '@ant-design/icons-vue';
import { MenuTheme } from '../src/typings';
const DemoComponent = { const DemoComponent = {
setup() { setup() {
...@@ -15,6 +16,9 @@ const DemoComponent = { ...@@ -15,6 +16,9 @@ const DemoComponent = {
openKeys: [''], openKeys: [''],
selectedKeys: ['/welcome'], selectedKeys: ['/welcome'],
}); });
const state = reactive({
theme: 'dark',
})
const handleCollapse = (collapsed: boolean) => { const handleCollapse = (collapsed: boolean) => {
menuState.collapsed = collapsed; menuState.collapsed = collapsed;
...@@ -29,13 +33,18 @@ const DemoComponent = { ...@@ -29,13 +33,18 @@ const DemoComponent = {
return () => ( return () => (
<div class="components"> <div class="components">
<h2># SideMenu</h2> <h2># SideMenu</h2>
<div>
<Space>
<Switch checked-children="dark" un-checked-children="light" checked={state.theme === 'dark'} onChange={() => { (state.theme = state.theme === 'dark' ? 'light' : 'dark')}} />
</Space>
</div>
<div class="demo" style="background: rgb(244,244,244); min-height: 400px;"> <div class="demo" style="background: rgb(244,244,244); min-height: 400px;">
<div class="container side-menu-demo"> <div class="container side-menu-demo">
<Layout class="ant-pro-basicLayout"> <Layout class="ant-pro-basicLayout">
<SiderMenuWrapper <SiderMenuWrapper
title={'Pro Layout'} title={'Pro Layout'}
layout={'side'} layout={'side'}
theme={'dark'} theme={state.theme as MenuTheme}
isMobile={false} isMobile={false}
collapsed={menuState.collapsed} collapsed={menuState.collapsed}
menuData={menus} menuData={menus}
...@@ -55,11 +64,11 @@ const DemoComponent = { ...@@ -55,11 +64,11 @@ const DemoComponent = {
}} /> }} />
</div> </div>
) : null} ) : null}
menuFooterRender={(props) => props.collapsed ? undefined : ( // menuFooterRender={(props) => props.collapsed ? undefined : (
<div style="color: #fff; padding: 8px 16px; overflow: hidden;"> // <div style="color: #fff; padding: 8px 16px; overflow: hidden;">
<span>自定义页脚</span> // <span>自定义页脚</span>
</div> // </div>
)} // )}
/> />
<Layout> <Layout>
<Layout.Header style="background: #fff; padding: 0; height: 48px; line-height: 48px;"></Layout.Header> <Layout.Header style="background: #fff; padding: 0; height: 48px; line-height: 48px;"></Layout.Header>
......
...@@ -103,14 +103,14 @@ const SiderMenu: FunctionalComponent<SiderMenuProps> = (props: SiderMenuProps) = ...@@ -103,14 +103,14 @@ const SiderMenu: FunctionalComponent<SiderMenuProps> = (props: SiderMenuProps) =
// const isMix = computed(() => props.layout === 'mix'); // const isMix = computed(() => props.layout === 'mix');
const fixed = computed(() => props.fixed); const fixed = computed(() => props.fixed);
const runtimeTheme = computed(() => (props.layout === 'mix' && 'light') || 'dark'); // const runtimeTheme = computed(() => (props.layout === 'mix' && 'light') || 'dark');
const runtimeSideWidth = computed(() => const runtimeSideWidth = computed(() =>
props.collapsed ? props.collapsedWidth : props.siderWidth, props.collapsed ? props.collapsedWidth : props.siderWidth,
); );
const classNames = ref({ const classNames = ref({
[baseClassName]: true, [baseClassName]: true,
[`${baseClassName}-${runtimeTheme.value}`]: true, [`${baseClassName}-${theme}`]: true,
[`${baseClassName}-${props.layout}`]: true, [`${baseClassName}-${props.layout}`]: true,
[`${baseClassName}-fixed`]: fixed, [`${baseClassName}-fixed`]: fixed,
}); });
......
...@@ -8,7 +8,6 @@ import SiderMenu, { SiderMenuProps, PrivateSiderMenuProps } from './SiderMenu'; ...@@ -8,7 +8,6 @@ import SiderMenu, { SiderMenuProps, PrivateSiderMenuProps } from './SiderMenu';
export type SiderMenuWrapperProps = SiderMenuProps & Partial<PrivateSiderMenuProps>; export type SiderMenuWrapperProps = SiderMenuProps & Partial<PrivateSiderMenuProps>;
const SiderMenuWrapper: FunctionalComponent<SiderMenuWrapperProps> = (props, { attrs }) => { const SiderMenuWrapper: FunctionalComponent<SiderMenuWrapperProps> = (props, { attrs }) => {
console.log('SiderMenuWrapper', props, attrs)
return props.isMobile ? ( return props.isMobile ? (
<Drawer> <Drawer>
<SiderMenu {...props} /> <SiderMenu {...props} />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment