@@ -11,6 +11,7 @@ import { ConfigProvider, Layout } from 'antd';
11
11
import { contrastBackground , contrastText } from "comps/controls/styleControlConstants" ;
12
12
import { useRef , useState } from "react" ;
13
13
import { LowcoderAppView } from "appView/LowcoderAppView" ;
14
+ import { getBackgroundStyle } from "@lowcoder-ee/util/styleUtils" ;
14
15
15
16
const { Header, Content, Footer, Sider} = Layout ;
16
17
@@ -30,12 +31,7 @@ const getStyle = (style: ContainerStyleType) => {
30
31
border-radius : ${ style . radius } ;
31
32
overflow : hidden;
32
33
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 ) }
39
35
` ;
40
36
} ;
41
37
@@ -51,14 +47,30 @@ const Wrapper = styled.div<{ $style: ContainerStyleType,$animationStyle:Animatio
51
47
#pageLayout::-webkit-scrollbar {
52
48
display:${ ( props ) => props . $mainScrollbars ?"block" :"none" } ;
53
49
}
50
+
51
+ .ant-layout {
52
+ background: transparent;
53
+ }
54
54
` ;
55
55
56
56
const HeaderInnerGrid = styled ( InnerGrid ) < {
57
- $backgroundColor :string
57
+ $backgroundColor :string ,
58
+ $headerBackgroundImage :string ,
59
+ $headerBackgroundImageSize :string ,
60
+ $headerBackgroundImageRepeat :string ,
61
+ $headerBackgroundImageOrigin :string ,
62
+ $headerBackgroundImagePosition :string ,
58
63
} > `
59
64
overflow: visible;
60
- ${ ( props ) => props . $backgroundColor && `background-color:${ props . $backgroundColor } ;` }
61
65
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
+ } ) }
62
74
` ;
63
75
64
76
const SiderInnerGrid = styled ( InnerGrid ) < {
@@ -70,25 +82,40 @@ const SiderInnerGrid = styled(InnerGrid)<{
70
82
$siderBackgroundImageOrigin :string ;
71
83
} > `
72
84
overflow: auto;
73
- ${ ( props ) => props . $backgroundColor && `background-color:${ props . $backgroundColor } ;` }
74
85
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
+ } ) }
80
94
` ;
81
95
82
96
const BodyInnerGrid = styled ( InnerGrid ) < {
83
97
$showBorder :boolean ;
84
- $backgroundColor :string ;
85
98
$borderColor :string ;
86
99
$borderWidth :string ;
100
+ $backgroundColor :string ;
101
+ $bodyBackgroundImage :string ;
102
+ $bodyBackgroundImageRepeat :string ;
103
+ $bodyBackgroundImageSize :string ;
104
+ $bodyBackgroundImagePosition :string ;
105
+ $bodyBackgroundImageOrigin :string ;
87
106
} > `
88
107
border-top:${ ( props ) => `${ props . $showBorder ?props . $borderWidth :0 } solid${ props . $borderColor } ` } ;
89
108
flex: 1;
90
- ${ ( props ) => props . $backgroundColor && `background-color:${ props . $backgroundColor } ;` }
91
109
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
+ } ) }
92
119
` ;
93
120
94
121
const FooterInnerGrid = styled ( InnerGrid ) < {
@@ -104,13 +131,15 @@ const FooterInnerGrid = styled(InnerGrid)<{
104
131
} > `
105
132
border-top:${ ( props ) => `${ props . $showBorder ?props . $borderWidth :0 } solid${ props . $borderColor } ` } ;
106
133
overflow: visible;
107
- ${ ( props ) => props . $backgroundColor && `background-color:${ props . $backgroundColor } ;` }
108
134
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
+ } ) }
114
143
` ;
115
144
116
145
export type LayoutProps = LayoutViewProps & {
@@ -205,10 +234,15 @@ export function PageLayout(props: LayoutProps & { siderCollapsed: boolean; setSi
205
234
horizontalGridCells = { horizontalGridCells }
206
235
autoHeight = { true }
207
236
emptyRows = { 5 }
208
- minHeight = "46px "
237
+ minHeight = "60px "
209
238
containerPadding = { [ 0 , 0 ] }
210
239
showName = { { bottom :showFooter ?20 :0 } }
211
240
$backgroundColor = { headerStyle ?. headerBackground || 'transparent' }
241
+ $headerBackgroundImage = { headerStyle ?. headerBackgroundImage }
242
+ $headerBackgroundImageRepeat = { headerStyle ?. headerBackgroundImageRepeat }
243
+ $headerBackgroundImageSize = { headerStyle ?. headerBackgroundImageSize }
244
+ $headerBackgroundImagePosition = { headerStyle ?. headerBackgroundImagePosition }
245
+ $headerBackgroundImageOrigin = { headerStyle ?. headerBackgroundImageOrigin }
212
246
style = { { padding :headerStyle . containerHeaderPadding } } />
213
247
</ Header >
214
248
</ BackgroundColorContext . Provider >
@@ -271,6 +305,11 @@ export function PageLayout(props: LayoutProps & { siderCollapsed: boolean; setSi
271
305
containerPadding = { [ 0 , 0 ] }
272
306
hintPlaceholder = { props . hintPlaceholder ?? HintPlaceHolder }
273
307
$backgroundColor = { bodyStyle ?. background || 'transparent' }
308
+ $bodyBackgroundImage = { bodyStyle ?. backgroundImage }
309
+ $bodyBackgroundImageRepeat = { bodyStyle ?. backgroundImageRepeat }
310
+ $bodyBackgroundImageSize = { bodyStyle ?. backgroundImageSize }
311
+ $bodyBackgroundImagePosition = { bodyStyle ?. backgroundImagePosition }
312
+ $bodyBackgroundImageOrigin = { bodyStyle ?. backgroundImageOrigin }
274
313
$borderColor = { style ?. border }
275
314
$borderWidth = { style ?. borderWidth }
276
315
style = { { padding :bodyStyle . containerBodyPadding } } />
@@ -335,6 +374,11 @@ export function PageLayout(props: LayoutProps & { siderCollapsed: boolean; setSi
335
374
containerPadding = { [ 0 , 0 ] }
336
375
hintPlaceholder = { props . hintPlaceholder ?? HintPlaceHolder }
337
376
$backgroundColor = { bodyStyle ?. background || 'transparent' }
377
+ $bodyBackgroundImage = { bodyStyle ?. backgroundImage }
378
+ $bodyBackgroundImageRepeat = { bodyStyle ?. backgroundImageRepeat }
379
+ $bodyBackgroundImageSize = { bodyStyle ?. backgroundImageSize }
380
+ $bodyBackgroundImagePosition = { bodyStyle ?. backgroundImagePosition }
381
+ $bodyBackgroundImageOrigin = { bodyStyle ?. backgroundImageOrigin }
338
382
$borderColor = { style ?. border }
339
383
$borderWidth = { style ?. borderWidth }
340
384
style = { { padding :bodyStyle . containerBodyPadding } } />