add css module compile rule and a login guard

Change-Id: I5c99e236f92d3b6c6d0060b36cf90a252df93a95
diff --git a/src/views/login/index.tsx b/src/views/login/index.tsx
index 9c1abc2..4cb66a5 100644
--- a/src/views/login/index.tsx
+++ b/src/views/login/index.tsx
@@ -1,29 +1,37 @@
 import React, { useEffect } from 'react';
 import { useApi } from '@/hooks/request';
 import request from '@/utils/request';
-import {userLogin} from '@/api/user';
+import { userLogin } from '@/api/user';
 import { useAppDispatch } from '@/hooks/store';
+import { RootState } from '@/store';
+import style from './login.module.css';
+import { useSelector } from 'react-redux';
+import { useNavigate } from 'react-router';
 
 const Login: React.FC = () => {
-
     const dispatch = useAppDispatch();
     const { data, loading, error, refresh } = useApi(() => request.post(userLogin), false);
 
+    const nav = useNavigate();
     const handleLogin = async () => {
-        // 点击时调用 execute 发起请求
         const res = await refresh();
         console.log(res);
-        // 请求完成后可以使用返回的数据进行分发
         dispatch({ type: "user/login", payload: res });
+        nav('/');
+        
     };
+    const userName = useSelector((state: RootState) => state.user.userName);
+
     return (
-        <div>
-            <input type='email'></input>
-            <input></input>
-            <button onClick={handleLogin}>Login</button>
+
+        <div className={style.form}>
+            <img alt = "logo"></img>
+            <input type="email" className={style.email} placeholder="Enter your email" />
+            <input type="password" className={style.password} placeholder="Enter your password" />
+            <button className={style.submit} onClick={handleLogin}>Login</button>
             <button>Register</button>
         </div>
     );
-}
+};
 
 export default Login;
\ No newline at end of file