Skip to content

Commit 6767394

Browse files
committed
fix(settingDrawer): 修复页脚无法动态显隐
1 parent 852ef44 commit 6767394

File tree

5 files changed

+17
-13
lines changed

5 files changed

+17
-13
lines changed

src/components/SettingDrawer/RegionalChange.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ const RegionalSetting: React.FC<{
1111
const formatMessage = getFormatMessage();
1212
const regionalSetting = ['header', 'footer', 'menu', 'menuHeader'];
1313

14-
// 目前版本 settingDrawer 脚本配置 footer 有问题. 关了无法展示. 移除
15-
regionalSetting.splice(regionalSetting.indexOf('footer'), 1);
1614
// 默认自己绑定在顶栏, 关闭了自己就没了
1715
regionalSetting.splice(regionalSetting.indexOf('header'), 1);
1816

src/components/SettingDrawer/index.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import { useModel } from 'umi';
1616
import ConfigUtils from '@/utils/ConfigUtils';
1717
import type { BodyProps, MergerSettingsType, SettingDrawerProps } from './typings';
1818
import { LayoutSetting as LayoutSettingUtils } from '@/utils/Ballcat';
19+
import type { Settings as LayoutSettings } from '@ant-design/pro-layout';
1920

2021
export const getFormatMessage = (): ((data: { id: string; defaultMessage?: string }) => string) => {
2122
const formatMessage = ({ id }: { id: string; defaultMessage?: string }): string => {
@@ -97,7 +98,7 @@ const SettingDrawer: React.FC<SettingDrawerProps> = (props) => {
9798
const { hideColors, hideHintAlert, hideCopyButton, getContainer, prefixCls = 'ant-pro' } = props;
9899

99100
const { initialState, setInitialState } = useModel('@@initialState');
100-
const layoutSetting = initialState?.settings || ConfigUtils.settings;
101+
const layoutSetting: Partial<LayoutSettings> = initialState?.settings || ConfigUtils.settings;
101102

102103
const [show, setShow] = useMergedState(false, {
103104
value: props.collapse,
@@ -134,8 +135,10 @@ const SettingDrawer: React.FC<SettingDrawerProps> = (props) => {
134135
const nextState = { ...layoutSetting };
135136
nextState[key] = value;
136137

137-
if (key === 'navTheme') {
138-
nextState.primaryColor = 'daybreak';
138+
if (value === undefined) {
139+
delete nextState[key];
140+
} else {
141+
nextState[key] = value;
139142
}
140143

141144
if (key === 'layout') {

src/layouts/BasicLayout.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ const renderMenuItem = (collapsed: boolean, title: string, hasSub: boolean, icon
7878
);
7979
};
8080

81+
const footerRender = () => <Footer />;
82+
8183
const BasicLayout: React.FC<BasicLayoutProps> = (props) => {
8284
const {
8385
children,
@@ -157,7 +159,8 @@ const BasicLayout: React.FC<BasicLayoutProps> = (props) => {
157159

158160
setInitialState({
159161
...initialState,
160-
settings: { ...settings, ...initialState.settings },
162+
// @ts-ignore
163+
settings: { footerRender, ...settings, ...initialState.settings },
161164
routerLoad: true,
162165
menuFirst: getFirstUrl(initialState.menuArray),
163166
});
@@ -170,19 +173,18 @@ const BasicLayout: React.FC<BasicLayoutProps> = (props) => {
170173

171174
return (
172175
<ProLayout
176+
footerRender={footerRender}
177+
{...(initialState?.settings || settings)}
173178
logo={settings.logo}
174-
{...settings}
175-
{...initialState?.settings}
176179
formatMessage={I18n.getIntl().formatMessage}
177-
footerRender={() => <Footer />}
178180
{...props}
179181
route={route}
180182
collapsedButtonRender={false}
181183
collapsed={collapsed}
182184
onCollapse={setCollapsed}
183-
contentStyle={{ marginTop: initialState?.settings.multiTab ? '56px' : undefined }}
185+
contentStyle={{ marginTop: initialState?.settings?.multiTab ? '56px' : undefined }}
184186
headerRender={(headerProps, defaultDom) => {
185-
if (initialState?.settings.multiTab) {
187+
if (initialState?.settings?.multiTab) {
186188
return (
187189
<>
188190
{defaultDom}

src/typings.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { MenuDataItem } from '@ant-design/pro-layout';
22
import type { SysDictData, SysDictDataHash } from './services/ballcat/system';
3+
import type { ProjectSetting } from 'config/settings';
34

45
declare module 'slash2';
56
declare module '*.css';
@@ -70,7 +71,7 @@ export type TreeNode<T> = {
7071

7172
declare namespace GLOBAL {
7273
type Is = {
73-
settings?: Partial<LayoutSettings>;
74+
settings?: Partial<ProjectSetting>;
7475
menuArray?: MenuDataItem[];
7576
menuFirst: string;
7677
routerLoad?: boolean;

src/utils/Ballcat.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export const LayoutSetting = {
111111
}
112112
return { ...settings };
113113
},
114-
set: (ps: ProjectSetting) => {
114+
set: (ps: Partial<ProjectSetting>) => {
115115
set(layout_setting_key, JSON.stringify(ps));
116116
},
117117
};

0 commit comments

Comments
 (0)