From e32ada5186e1090927301706c2d65144926d26c3 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 28 二月 2024 08:39:38 +0800
Subject: [PATCH] Merge branch 'master' of http://47.97.1.152:5880/r/zy-asrs-master

---
 zy-asrs-flow/src/pages/User/Login/index.jsx |   82 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 72 insertions(+), 10 deletions(-)

diff --git a/zy-asrs-flow/src/pages/User/Login/index.jsx b/zy-asrs-flow/src/pages/User/Login/index.jsx
index 38c1558..de71cd0 100644
--- a/zy-asrs-flow/src/pages/User/Login/index.jsx
+++ b/zy-asrs-flow/src/pages/User/Login/index.jsx
@@ -9,6 +9,7 @@
     ProFormCaptcha,
     ProFormCheckbox,
     ProFormText,
+    ProFormSelect
 } from '@ant-design/pro-components';
 import { Button, Divider, Alert, Tabs, message, theme, Form } from 'antd';
 import { useState, useEffect } from 'react';
@@ -17,8 +18,10 @@
 import { request } from '@umijs/max';
 import { setToken } from '@/utils/token-util'
 import { PROJECT_NAME } from '@/config/setting'
+import Http from '@/utils/http';
 
-import logo from './logo.png'
+import logo from '/public/img/logo.png'
+import logoBg from '/public/login-bg.mp4'
 
 const LoginMessage = ({ content }) => {
     return (
@@ -45,6 +48,11 @@
         const storedValue = localStorage.getItem('rememberMe');
         return storedValue !== null ? JSON.parse(storedValue) : true;
     });
+    const [rememberData, setRememberData] = useState(() => {
+        const storedValue = localStorage.getItem('rememberData');
+        return storedValue !== null ? JSON.parse(storedValue) : true;
+    });
+    const [hostList, setHostList] = useState([]);
 
     useEffect(() => {
         form.setFieldsValue({
@@ -52,6 +60,31 @@
         });
         localStorage.setItem('rememberMe', JSON.stringify(rememberMe));
     }, [rememberMe])
+
+    useEffect(() => {
+        form.setFieldsValue({
+            username: rememberData.username,
+            password: rememberData.password
+        });
+        localStorage.setItem('rememberData', JSON.stringify(rememberData));
+    }, [rememberData])
+
+    useEffect(() => {
+        const fetchHostList = async () => {
+            const resp = await Http.doGet('api/auth/host');
+            const list = resp.data.map(item => ({
+                label: item.name,
+                value: item.id
+            }));
+            setHostList(list);
+            if (list && list.length > 0) {
+                form.setFieldsValue({
+                    hostId: list[0].value
+                });
+            }
+        }
+        fetchHostList();
+    }, []);
 
     const fetchUserInfo = async () => {
         const userInfo = await initialState?.fetchUserInfo?.();
@@ -65,6 +98,7 @@
         }
     };
 
+
     const handleSubmit = async (values) => {
         try {
             const r = await request('/api/login', {
@@ -76,6 +110,13 @@
             })
 
             if (r.code === 200) {
+                localStorage.removeItem("rememberData");
+                if (rememberMe) {
+                    setRememberData({
+                        username: values.username,
+                        password: values.password
+                    })
+                }
                 message.success(intl.formatMessage({
                     id: 'pages.login.success',
                     defaultMessage: '鐧诲綍鎴愬姛锛�',
@@ -105,21 +146,18 @@
         >
             <LoginFormPage
                 form={form}
-                backgroundImageUrl="https://mdn.alipayobjects.com/huamei_gcee1x/afts/img/A*y0ZTS6WLwvgAAAAAAAAAAAAADml6AQ/fmt.webp"
                 logo={logo}
-                backgroundVideoUrl="https://gw.alipayobjects.com/v/huamei_gcee1x/afts/video/jXRBRK_VAwoAAAAAAAAAAAAAK4eUAQBr"
+                backgroundVideoUrl={logoBg}
                 // title="闄嗘檽娑�"
                 // subTitle="闄嗘檽娑�..."
                 containerStyle={{
                     backgroundColor: 'rgba(0, 0, 0,0.65)',
                     backdropFilter: 'blur(4px)',
                 }}
-                initialValues={{
-                    username: 'root',
-                    password: '123456',
-                }}
                 onFinish={async (values) => {
                     await handleSubmit(values);
+                }}
+                initialValue={{
                 }}
             >
                 <Tabs
@@ -132,6 +170,18 @@
                 </Tabs>
                 {loginType === 'account' && (
                     <>
+                        <ProFormSelect
+                            className="centered-select"
+                            name="hostId"
+                            placeholder="鏈烘瀯锛�"
+                            rules={[
+                                {
+                                    required: true,
+                                    message: '璇烽�夋嫨鏈烘瀯!',
+                                },
+                            ]}
+                            options={hostList}
+                        />
                         <ProFormText
                             name="username"
                             fieldProps={{
@@ -145,7 +195,7 @@
                                     />
                                 ),
                             }}
-                            placeholder={'鐢ㄦ埛鍚�: root'}
+                            placeholder={'鐢ㄦ埛鍚�: '}
                             rules={[
                                 {
                                     required: true,
@@ -166,7 +216,7 @@
                                     />
                                 ),
                             }}
-                            placeholder={'瀵嗙爜: 123456'}
+                            placeholder={'瀵嗙爜: '}
                             rules={[
                                 {
                                     required: true,
@@ -183,6 +233,18 @@
                 )}
                 {loginType === 'phone' && (
                     <>
+                        <ProFormSelect
+                            className="centered-select"
+                            name="hostId"
+                            placeholder="鏈烘瀯锛�"
+                            rules={[
+                                {
+                                    required: true,
+                                    message: '璇烽�夋嫨鏈烘瀯!',
+                                },
+                            ]}
+                            options={hostList}
+                        />
                         <ProFormText
                             fieldProps={{
                                 size: 'large',
@@ -270,4 +332,4 @@
             <Page />
         </ProConfigProvider>
     );
-};
\ No newline at end of file
+};

--
Gitblit v1.9.1