@@ -11,6 +11,7 @@ import { ConfigProvider, Layout } from 'antd';
1111import { contrastBackground , contrastText } from "comps/controls/styleControlConstants" ;
1212import { useRef , useState } from "react" ;
1313import { LowcoderAppView } from "appView/LowcoderAppView" ;
14+ import { getBackgroundStyle } from "@lowcoder-ee/util/styleUtils" ;
1415
1516const { Header, Content, Footer, Sider } = Layout ;
1617
@@ -30,12 +31,7 @@ const getStyle = (style: ContainerStyleType) => {
3031 border-radius : ${ style . radius } ;
3132 overflow : hidden;
3233 padding : ${ style . padding } ;
33- ${ style . background && `background-color: ${ style . background } ;` }
34- ${ style . backgroundImage && `background-image: url(${ style . backgroundImage } );` }
35- ${ style . backgroundImageRepeat && `background-repeat: ${ style . backgroundImageRepeat } ;` }
36- ${ style . backgroundImageSize && `background-size: ${ style . backgroundImageSize } ;` }
37- ${ style . backgroundImagePosition && `background-position: ${ style . backgroundImagePosition } ;` }
38- ${ style . backgroundImageOrigin && `background-origin: ${ style . backgroundImageOrigin } ;` }
34+ ${ style && getBackgroundStyle ( style ) }
3935 ` ;
4036} ;
4137
@@ -51,14 +47,30 @@ const Wrapper = styled.div<{ $style: ContainerStyleType,$animationStyle:Animatio
5147 #pageLayout::-webkit-scrollbar {
5248 display: ${ ( props ) => props . $mainScrollbars ? "block" : "none" } ;
5349 }
50+
51+ .ant-layout {
52+ background: transparent;
53+ }
5454` ;
5555
5656const HeaderInnerGrid = styled ( InnerGrid ) < {
57- $backgroundColor : string
57+ $backgroundColor : string ,
58+ $headerBackgroundImage : string ,
59+ $headerBackgroundImageSize : string ,
60+ $headerBackgroundImageRepeat : string ,
61+ $headerBackgroundImageOrigin : string ,
62+ $headerBackgroundImagePosition : string ,
5863 } > `
5964 overflow: visible;
60- ${ ( props ) => props . $backgroundColor && `background-color: ${ props . $backgroundColor } ;` }
6165 border-radius: 0;
66+ ${ props => getBackgroundStyle ( {
67+ background : props . $backgroundColor ,
68+ backgroundImage : props . $headerBackgroundImage ,
69+ backgroundImageSize : props . $headerBackgroundImageSize ,
70+ backgroundImageRepeat : props . $headerBackgroundImageRepeat ,
71+ backgroundImageOrigin : props . $headerBackgroundImageOrigin ,
72+ backgroundImagePosition : props . $headerBackgroundImagePosition ,
73+ } ) }
6274` ;
6375
6476const SiderInnerGrid = styled ( InnerGrid ) < {
@@ -70,25 +82,40 @@ const SiderInnerGrid = styled(InnerGrid)<{
7082 $siderBackgroundImageOrigin : string ;
7183 } > `
7284 overflow: auto;
73- ${ ( props ) => props . $backgroundColor && `background-color: ${ props . $backgroundColor } ;` }
7485 border-radius: 0;
75- ${ ( props ) => props . $siderBackgroundImage && `background-image: url(${ props . $siderBackgroundImage } );` }
76- ${ ( props ) => props . $siderBackgroundImageRepeat && `background-repeat: ${ props . $siderBackgroundImageRepeat } ;` }
77- ${ ( props ) => props . $siderBackgroundImageSize && `background-size: ${ props . $siderBackgroundImageSize } ;` }
78- ${ ( props ) => props . $siderBackgroundImagePosition && `background-position: ${ props . $siderBackgroundImagePosition } ;` }
79- ${ ( props ) => props . $siderBackgroundImageOrigin && `background-origin: ${ props . $siderBackgroundImageOrigin } ;` }
86+ ${ props => getBackgroundStyle ( {
87+ background : props . $backgroundColor ,
88+ backgroundImage : props . $siderBackgroundImage ,
89+ backgroundImageSize : props . $siderBackgroundImageSize ,
90+ backgroundImageRepeat : props . $siderBackgroundImageRepeat ,
91+ backgroundImageOrigin : props . $siderBackgroundImageOrigin ,
92+ backgroundImagePosition : props . $siderBackgroundImagePosition ,
93+ } ) }
8094` ;
8195
8296const BodyInnerGrid = styled ( InnerGrid ) < {
8397 $showBorder : boolean ;
84- $backgroundColor : string ;
8598 $borderColor : string ;
8699 $borderWidth : string ;
100+ $backgroundColor : string ;
101+ $bodyBackgroundImage : string ;
102+ $bodyBackgroundImageRepeat : string ;
103+ $bodyBackgroundImageSize : string ;
104+ $bodyBackgroundImagePosition : string ;
105+ $bodyBackgroundImageOrigin : string ;
87106} > `
88107 border-top: ${ ( props ) => `${ props . $showBorder ? props . $borderWidth : 0 } solid ${ props . $borderColor } ` } ;
89108 flex: 1;
90- ${ ( props ) => props . $backgroundColor && `background-color: ${ props . $backgroundColor } ;` }
91109 border-radius: 0;
110+
111+ ${ props => getBackgroundStyle ( {
112+ background : props . $backgroundColor ,
113+ backgroundImage : props . $bodyBackgroundImage ,
114+ backgroundImageSize : props . $bodyBackgroundImageSize ,
115+ backgroundImageRepeat : props . $bodyBackgroundImageRepeat ,
116+ backgroundImageOrigin : props . $bodyBackgroundImageOrigin ,
117+ backgroundImagePosition : props . $bodyBackgroundImagePosition ,
118+ } ) }
92119` ;
93120
94121const FooterInnerGrid = styled ( InnerGrid ) < {
@@ -104,13 +131,15 @@ const FooterInnerGrid = styled(InnerGrid)<{
104131} > `
105132 border-top: ${ ( props ) => `${ props . $showBorder ? props . $borderWidth : 0 } solid ${ props . $borderColor } ` } ;
106133 overflow: visible;
107- ${ ( props ) => props . $backgroundColor && `background-color: ${ props . $backgroundColor } ;` }
108134 border-radius: 0;
109- ${ ( props ) => props . $footerBackgroundImage && `background-image: url(${ props . $footerBackgroundImage } );` }
110- ${ ( props ) => props . $footerBackgroundImageRepeat && `background-repeat: ${ props . $footerBackgroundImageRepeat } ;` }
111- ${ ( props ) => props . $footerBackgroundImageSize && `background-size: ${ props . $footerBackgroundImageSize } ;` }
112- ${ ( props ) => props . $footerBackgroundImagePosition && `background-position: ${ props . $footerBackgroundImagePosition } ;` }
113- ${ ( props ) => props . $footerBackgroundImageOrigin && `background-origin: ${ props . $footerBackgroundImageOrigin } ;` }
135+ ${ props => getBackgroundStyle ( {
136+ background : props . $backgroundColor ,
137+ backgroundImage : props . $footerBackgroundImage ,
138+ backgroundImageSize : props . $footerBackgroundImageSize ,
139+ backgroundImageRepeat : props . $footerBackgroundImageRepeat ,
140+ backgroundImageOrigin : props . $footerBackgroundImageOrigin ,
141+ backgroundImagePosition : props . $footerBackgroundImagePosition ,
142+ } ) }
114143` ;
115144
116145export type LayoutProps = LayoutViewProps & {
@@ -205,10 +234,15 @@ export function PageLayout(props: LayoutProps & { siderCollapsed: boolean; setSi
205234 horizontalGridCells = { horizontalGridCells }
206235 autoHeight = { true }
207236 emptyRows = { 5 }
208- minHeight = "46px "
237+ minHeight = "60px "
209238 containerPadding = { [ 0 , 0 ] }
210239 showName = { { bottom : showFooter ? 20 : 0 } }
211240 $backgroundColor = { headerStyle ?. headerBackground || 'transparent' }
241+ $headerBackgroundImage = { headerStyle ?. headerBackgroundImage }
242+ $headerBackgroundImageRepeat = { headerStyle ?. headerBackgroundImageRepeat }
243+ $headerBackgroundImageSize = { headerStyle ?. headerBackgroundImageSize }
244+ $headerBackgroundImagePosition = { headerStyle ?. headerBackgroundImagePosition }
245+ $headerBackgroundImageOrigin = { headerStyle ?. headerBackgroundImageOrigin }
212246 style = { { padding : headerStyle . containerHeaderPadding } } />
213247 </ Header >
214248 </ BackgroundColorContext . Provider >
@@ -271,6 +305,11 @@ export function PageLayout(props: LayoutProps & { siderCollapsed: boolean; setSi
271305 containerPadding = { [ 0 , 0 ] }
272306 hintPlaceholder = { props . hintPlaceholder ?? HintPlaceHolder }
273307 $backgroundColor = { bodyStyle ?. background || 'transparent' }
308+ $bodyBackgroundImage = { bodyStyle ?. backgroundImage }
309+ $bodyBackgroundImageRepeat = { bodyStyle ?. backgroundImageRepeat }
310+ $bodyBackgroundImageSize = { bodyStyle ?. backgroundImageSize }
311+ $bodyBackgroundImagePosition = { bodyStyle ?. backgroundImagePosition }
312+ $bodyBackgroundImageOrigin = { bodyStyle ?. backgroundImageOrigin }
274313 $borderColor = { style ?. border }
275314 $borderWidth = { style ?. borderWidth }
276315 style = { { padding : bodyStyle . containerBodyPadding } } />
@@ -335,6 +374,11 @@ export function PageLayout(props: LayoutProps & { siderCollapsed: boolean; setSi
335374 containerPadding = { [ 0 , 0 ] }
336375 hintPlaceholder = { props . hintPlaceholder ?? HintPlaceHolder }
337376 $backgroundColor = { bodyStyle ?. background || 'transparent' }
377+ $bodyBackgroundImage = { bodyStyle ?. backgroundImage }
378+ $bodyBackgroundImageRepeat = { bodyStyle ?. backgroundImageRepeat }
379+ $bodyBackgroundImageSize = { bodyStyle ?. backgroundImageSize }
380+ $bodyBackgroundImagePosition = { bodyStyle ?. backgroundImagePosition }
381+ $bodyBackgroundImageOrigin = { bodyStyle ?. backgroundImageOrigin }
338382 $borderColor = { style ?. border }
339383 $borderWidth = { style ?. borderWidth }
340384 style = { { padding : bodyStyle . containerBodyPadding } } />
0 commit comments