2
2
<div class =" flex items-center justify-center min-h-screen relative bg-gray-100" >
3
3
<div
4
4
class =" absolute inset-0 bg-cover bg-center bg-no-repeat"
5
- :style =" { backgroundImage: `url(${backgroundImage})` }"
5
+ :style ="
6
+ globalStore.themeConfig.loginBgType === 'color'
7
+ ? { backgroundColor: globalStore.themeConfig.loginBackground }
8
+ : { backgroundImage: `url(${loadImage('loginBackground')})` }
9
+ "
6
10
></div >
7
11
<div
8
12
:style =" { opacity: backgroundOpacity, width: containerWidth, height: containerHeight }"
9
13
class =" bg-white shadow-lg relative z-10 border border-gray-200 flex overflow-hidden"
10
14
>
11
15
<div class =" grid grid-cols-1 md:grid-cols-2 items-stretch w-full h-full" >
12
- <div v-if =" showLogo" >
13
- <img :src =" logoImage" class =" max-w-full max-h-full object-contain" />
16
+ <div v-if =" showLogo" class =" flex justify-center" >
17
+ <img
18
+ :src =" loadImage('loginImage')"
19
+ class =" max-w-full max-h-full object-cover bg-cover bg-center"
20
+ alt =" 1panel"
21
+ />
14
22
</div >
15
23
<div :class =" loginFormClass" >
16
24
<LoginForm ref =" loginRef" ></LoginForm >
@@ -25,10 +33,8 @@ import LoginForm from './components/login-form.vue';
25
33
import { ref , onMounted } from ' vue' ;
26
34
import { GlobalStore } from ' @/store' ;
27
35
28
- const gStore = GlobalStore ();
29
- const backgroundOpacity = ref (0.8 );
30
- const backgroundImage = ref (new URL (' @/assets/images/1panel-login-bg.jpg' , import .meta .url ).href );
31
- const logoImage = ref (new URL (' @/assets/images/1panel-login.jpg' , import .meta .url ).href );
36
+ const globalStore = GlobalStore ();
37
+ const backgroundOpacity = ref (1 );
32
38
33
39
const mySafetyCode = defineProps ({
34
40
code: {
@@ -40,10 +46,32 @@ const mySafetyCode = defineProps({
40
46
const getStatus = async () => {
41
47
let code = mySafetyCode .code ;
42
48
if (code != ' ' ) {
43
- gStore .entrance = code ;
49
+ globalStore .entrance = code ;
44
50
}
45
51
};
46
52
53
+ const loadImage = (name : string ) => {
54
+ switch (name ) {
55
+ case ' loginImage' :
56
+ if (globalStore .themeConfig .loginImage === ' loginImage' ) {
57
+ return ` /api/v2/images/loginImage?t=${Date .now ()} ` ;
58
+ }
59
+ return new URL (' @/assets/images/1panel-login.jpg' , import .meta .url ).href ;
60
+ case ' loginBackground' :
61
+ if (globalStore .themeConfig .loginBgType === ' image' ) {
62
+ if (globalStore .themeConfig .loginBackground === ' loginBackground' ) {
63
+ return ` /api/v2/images/loginBackground?t=${Date .now ()} ` ;
64
+ }
65
+ return new URL (' @/assets/images/1panel-login-bg.jpg' , import .meta .url ).href ;
66
+ } else if (globalStore .themeConfig .loginBgType === ' color' ) {
67
+ return globalStore .themeConfig .loginBackground ;
68
+ } else {
69
+ return new URL (' @/assets/images/1panel-login-bg.jpg' , import .meta .url ).href ;
70
+ }
71
+ }
72
+ return ' ' ;
73
+ };
74
+
47
75
onMounted (() => {
48
76
getStatus ();
49
77
});
0 commit comments