Yansen vor 2 Jahren
Ursprung
Commit
f3e3ba438d

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

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

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

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

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

@@ -1,39 +1,59 @@
1
-import React from 'react';
1
+import React, { useEffect } from 'react';
2 2
 import { Helmet } from "react-helmet";
3 3
 import { useModel } from '@/store';
4 4
 import LoginForm from './LoginForm';
5 5
 import LoginEffect from './Effect';
6
-import './style.less'
6
+import './style.less';
7 7
 
8 8
 const year = new Date().getFullYear();
9 9
 
10 10
 export default (props) => {
11 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 33
   return (
17 34
     <div className='login-page'>
18 35
       <Helmet>
19 36
         <title>{config.appName}</title>
20 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 51
             </div>
29 52
           </div>
30
-          <div className="login-copyright">
31
-            {copyright}
53
+          <div className="login-card-right">
54
+            <LoginEffect />
32 55
           </div>
33 56
         </div>
34
-        <div className="login-card-right">
35
-          <LoginEffect />
36
-        </div>
37 57
       </div>
38 58
     </div>
39 59
   )

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

@@ -2,8 +2,22 @@
2 2
 .login-page {
3 3
   height: 100%;
4 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 22
   .login-card {
9 23
     width: 900px;
@@ -20,7 +34,7 @@
20 34
     background: rgba(255, 255, 255, 0.9);
21 35
   }
22 36
   .login-card-right {
23
-    background: rgba(0, 0, 0, .02);
37
+    background: #EFF6FA;
24 38
   }
25 39
 
26 40
   .login-form-box {