- 暂时移除未使用的变量

- 配置项目依赖
- 组织项目基础结构
- 完成auth页面书写

Change-Id: I132c32f131111121619eb69240ece0a39e295c36
diff --git a/src/feature/auth/Register.tsx b/src/feature/auth/Register.tsx
new file mode 100644
index 0000000..5b90c59
--- /dev/null
+++ b/src/feature/auth/Register.tsx
@@ -0,0 +1,149 @@
+import { useEffect, useState } from 'react';
+import { LockOutlined, MailOutlined, NumberOutlined, UserOutlined } from '@ant-design/icons';
+import { Button, Checkbox, Form, Input, Space } from 'antd';
+import { NavLink } from 'react-router';
+
+interface FormValues {
+    name: string;
+    email: string;
+    verifyCode: string;
+    password: string;
+    confirmPassword: string;
+    agreement: boolean;
+}
+
+function Register() {
+    const [countdown, setCountdown] = useState(0);
+    const [form] = Form.useForm<FormValues>();
+    const [emailStatues] = useState(false);
+
+    const sendVerificationCode = () => {
+        setCountdown(60)
+    }
+
+    // 发送表单倒计时
+    useEffect(() => {
+        if (countdown > 0) {
+            const timer = setTimeout(() => {
+                setCountdown(prev => prev - 1);
+            }, 1000);
+
+            return () => clearTimeout(timer);
+        }
+    }, [countdown]);
+
+
+    // 表单提交
+    const onFinish = (values: FormValues) => {
+        console.log('注册成功:', values);
+    };
+
+    return (
+        <Form
+            form={form}
+            style={{ maxWidth: 360 }}
+            onFinish={onFinish}
+            scrollToFirstError
+        >
+            <h2>注册</h2>
+
+            <Form.Item
+                name="name"
+                rules={[{ required: true, message: '请输入用户名' }]}
+            >
+                <Input prefix={<UserOutlined />} placeholder="请输入用户名" />
+            </Form.Item>
+
+            <Form.Item
+                name="email"
+
+                rules={[{ required: true, message: '请输入邮箱' }, { type: 'email', message: '邮箱格式错误' }]}
+            >
+                <Input
+                    prefix={<MailOutlined />}
+                    placeholder="请输入邮箱"
+                />
+            </Form.Item>
+
+            <Form.Item
+                name="verifyCode"
+                rules={[{ required: true, message: '请填写验证码' }]}
+            >
+                <Space direction="horizontal" size="small">
+                    <Input
+                        prefix={<NumberOutlined />}
+                        placeholder="请输入验证码"
+                        style={{ flex: 1 }}
+                    />
+                    <Button
+                        disabled={countdown > 0 || !emailStatues}
+                        onClick={sendVerificationCode}
+                        style={{ width: 120 }}
+                    >
+                        {countdown > 0 ? `${countdown}s后重试` : '发送验证码'}
+                    </Button>
+                </Space>
+            </Form.Item>
+
+            <Form.Item
+                name="password"
+                rules={[
+                    { required: true, message: '请输入密码' },
+                    { min: 6, message: '密码长度至少为6位' },
+                ]}
+            >
+                <Input.Password
+                    prefix={<LockOutlined />}
+                    placeholder="请输入密码"
+                />
+            </Form.Item>
+
+            <Form.Item
+                name="confirmPassword"
+                dependencies={['password']}
+                rules={[
+                    { required: true, message: '请确认密码' },
+                    ({ getFieldValue }) => ({
+                        validator(_, value) {
+                            if (!value || getFieldValue('password') === value) {
+                                return Promise.resolve();
+                            }
+                            return Promise.reject('两次输入的密码不一致');
+                        },
+                    }),
+                ]}
+            >
+                <Input.Password
+                    prefix={<LockOutlined />}
+                    placeholder="请确认密码"
+                />
+            </Form.Item>
+
+            <Form.Item
+                name="agreement"
+                valuePropName="checked"
+                rules={[
+                    {
+                        validator: (_, value) =>
+                            value ? Promise.resolve() : Promise.reject('请阅读并同意用户协议'),
+                    },
+                ]}
+            >
+                <Checkbox>我已阅读并同意用户协议:<a>《创驿平台用户协议》</a></Checkbox>
+            </Form.Item>
+
+            <Form.Item>
+                <Button
+                    type="primary"
+                    htmlType="submit"
+                    style={{ width: '100%' }}
+                >
+                    注册
+                </Button>
+                或 <NavLink to='/login'>返回登录</NavLink>
+            </Form.Item>
+        </Form>
+    );
+}
+
+export default Register;    
\ No newline at end of file