Yansen vor 2 Jahren
Ursprung
Commit
f3e3ba438d

+ 1
- 1
public/particles/particles.json Datei anzeigen

54
     },
54
     },
55
     "move": {
55
     "move": {
56
       "enable": true,
56
       "enable": true,
57
-      "speed": 6,
57
+      "speed": 2,
58
       "direction": "none",
58
       "direction": "none",
59
       "random": false,
59
       "random": false,
60
       "straight": false,
60
       "straight": false,

+ 3
- 3
src/layouts/AuthLayout/index.jsx Datei anzeigen

18
   // const isReady = true
18
   // const isReady = true
19
 
19
 
20
   const currentRoute = useRoute();
20
   const currentRoute = useRoute();
21
+  const titleTemplate = `%s - ${config.appName}`
21
   const pageTitle = currentRoute && currentRoute.meta ? currentRoute.meta.title : undefined;
22
   const pageTitle = currentRoute && currentRoute.meta ? currentRoute.meta.title : undefined;
22
-  const fullTitle = pageTitle ? `${pageTitle} | ${config.appName}` : config.appName;
23
 
23
 
24
   useEffect(() => {
24
   useEffect(() => {
25
     if (!user) {
25
     if (!user) {
29
 
29
 
30
   return (
30
   return (
31
     <Spin spinning={!user} size="large">
31
     <Spin spinning={!user} size="large">
32
-      <Helmet>
33
-        <title>{fullTitle}</title>
32
+      <Helmet titleTemplate={titleTemplate} defaultTitle={config.appName}>
33
+        <title>{pageTitle}</title>
34
       </Helmet>
34
       </Helmet>
35
       <RequireLogin>
35
       <RequireLogin>
36
         <div className='main-layout'>
36
         <div className='main-layout'>

+ 36
- 16
src/pages/login/index.jsx Datei anzeigen

1
-import React from 'react';
1
+import React, { useEffect } from 'react';
2
 import { Helmet } from "react-helmet";
2
 import { Helmet } from "react-helmet";
3
 import { useModel } from '@/store';
3
 import { useModel } from '@/store';
4
 import LoginForm from './LoginForm';
4
 import LoginForm from './LoginForm';
5
 import LoginEffect from './Effect';
5
 import LoginEffect from './Effect';
6
-import './style.less'
6
+import './style.less';
7
 
7
 
8
 const year = new Date().getFullYear();
8
 const year = new Date().getFullYear();
9
 
9
 
10
 export default (props) => {
10
 export default (props) => {
11
   const { config } = useModel('system');
11
   const { config } = useModel('system');
12
 
12
 
13
-  const title = `欢迎使用${config.appName}`
14
-  const copyright = `${config.company} @ ${year}`
13
+  const baseUrl = import.meta.env.BASE_URL;
14
+  const title = `欢迎使用${config.appName}`;
15
+  const copyright = `${config.company} @ ${year}`;
16
+
17
+  useEffect(() => {
18
+    const oScript = document.createElement("script");
19
+    oScript.type = "text\/javascript";
20
+    oScript.onload = () => {
21
+      particlesJS.load('particles-js', `${baseUrl}particles/particles.json`, function() {
22
+        console.log('callback - particles.js config loaded');
23
+      });
24
+    }
25
+    document.querySelector('head').appendChild(oScript);
26
+    oScript.src = `${baseUrl}particles/particles.min.js`;
27
+
28
+    return () => {
29
+      document.querySelector('head').removeChild(oScript);
30
+    }
31
+  }, [])
15
 
32
 
16
   return (
33
   return (
17
     <div className='login-page'>
34
     <div className='login-page'>
18
       <Helmet>
35
       <Helmet>
19
         <title>{config.appName}</title>
36
         <title>{config.appName}</title>
20
       </Helmet>
37
       </Helmet>
21
-      <div className="login-card">
22
-        <div className="login-card-left">
23
-          <div className="login-form-box">
24
-            <div className="login-form">
25
-              <h2>登录系统</h2>
26
-              <div className="login-subtitle">{title}</div>
27
-              <LoginForm />
38
+      <div id="particles-js"></div>
39
+      <div className="login-page-container">
40
+        <div className="login-card">
41
+          <div className="login-card-left">
42
+            <div className="login-form-box">
43
+              <div className="login-form">
44
+                <h2>登录系统</h2>
45
+                <div className="login-subtitle">{title}</div>
46
+                <LoginForm />
47
+              </div>
48
+            </div>
49
+            <div className="login-copyright">
50
+              {copyright}
28
             </div>
51
             </div>
29
           </div>
52
           </div>
30
-          <div className="login-copyright">
31
-            {copyright}
53
+          <div className="login-card-right">
54
+            <LoginEffect />
32
           </div>
55
           </div>
33
         </div>
56
         </div>
34
-        <div className="login-card-right">
35
-          <LoginEffect />
36
-        </div>
37
       </div>
57
       </div>
38
     </div>
58
     </div>
39
   )
59
   )

+ 17
- 3
src/pages/login/style.less Datei anzeigen

2
 .login-page {
2
 .login-page {
3
   height: 100%;
3
   height: 100%;
4
   background: linear-gradient(#fff, #e6f7ff);
4
   background: linear-gradient(#fff, #e6f7ff);
5
-  display: grid;
6
-  place-items: center;
5
+
6
+  #particles-js {
7
+    position: absolute;
8
+    top: 0;
9
+    left: 0;
10
+    width: 100%;
11
+    height: 100%;
12
+  }
13
+
14
+  .login-page-container {
15
+    height: 100%;
16
+    display: grid;
17
+    place-items: center;
18
+    position: relative;
19
+    z-index: 10;
20
+  }
7
 
21
 
8
   .login-card {
22
   .login-card {
9
     width: 900px;
23
     width: 900px;
20
     background: rgba(255, 255, 255, 0.9);
34
     background: rgba(255, 255, 255, 0.9);
21
   }
35
   }
22
   .login-card-right {
36
   .login-card-right {
23
-    background: rgba(0, 0, 0, .02);
37
+    background: #EFF6FA;
24
   }
38
   }
25
 
39
 
26
   .login-form-box {
40
   .login-form-box {