Docker
Change-Id: I2aefd96a43bcf3a3c41c079ecfc04a3fee48bed6
diff --git a/src/components/selfStatus/selfStatus.tsx b/src/components/selfStatus/selfStatus.tsx
index a5156f4..3745736 100644
--- a/src/components/selfStatus/selfStatus.tsx
+++ b/src/components/selfStatus/selfStatus.tsx
@@ -1,12 +1,15 @@
import React from "react";
import { useAppSelector } from "../../hooks/store";
import style from "./style.module.css"
+import { useNavigate } from "react-router";
interface SelfStatusProps {
className?: string;
}
const SelfStatus: React.FC<SelfStatusProps> = () => {
+
+ const nav = useNavigate()
const userName = useAppSelector(state => state.user.userName);
const role = useAppSelector(state => state.user.role);
const uploadTraffic = useAppSelector(state => state.user.uploadTraffic);
@@ -14,10 +17,14 @@
const downloadPoints = useAppSelector(state => state.user.downloadPoints);
const avatar = useAppSelector(state => state.user.avatar);
+ function handleAvatarClick(){
+ nav('/homepage')
+ }
+
return (
<div className={style.container}>
<div className={style.left}>
- <img className={style.avatar} src={avatar} alt="User Avatar" />
+ <img className={style.avatar} onClick={handleAvatarClick} src={avatar} alt="User Avatar" />
</div>
<div className={style.right}>
<div className={style.info}>
diff --git a/src/components/upload/upload.module.css b/src/components/upload/upload.module.css
new file mode 100644
index 0000000..2fb6278
--- /dev/null
+++ b/src/components/upload/upload.module.css
@@ -0,0 +1,39 @@
+.uploadContainer {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ border: 2px dashed #1890ff;
+ padding: 40px;
+ border-radius: 8px;
+ background-color: #f0f5ff;
+ transition: border-color 0.3s;
+}
+
+.uploadContainer:hover {
+ border-color: #40a9ff;
+}
+
+.uploadLabel {
+ font-size: 16px;
+ margin-bottom: 10px;
+ color: #333;
+}
+
+.uploadInput {
+ display: none;
+}
+
+.uploadButton {
+ padding: 8px 16px;
+ background-color: #1890ff;
+ color: white;
+ border: none;
+ border-radius: 4px;
+ cursor: pointer;
+ font-size: 14px;
+}
+
+.uploadButton:hover {
+ background-color: #40a9ff;
+}
diff --git a/src/components/upload/upload.tsx b/src/components/upload/upload.tsx
new file mode 100644
index 0000000..708e9d1
--- /dev/null
+++ b/src/components/upload/upload.tsx
@@ -0,0 +1,44 @@
+// src/component/upload/upload.tsx
+import React, { useState } from 'react'
+import './upload.css'
+
+const UploadComponent: React.FC = () => {
+ const [selectedFile, setSelectedFile] = useState<File | null>(null)
+
+ const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {
+ if (e.target.files && e.target.files.length > 0) {
+ setSelectedFile(e.target.files[0])
+ }
+ }
+
+ const handleUpload = () => {
+ if (selectedFile) {
+ console.log('上传文件:', selectedFile)
+ // 此处可以添加实际上传逻辑
+ }
+ }
+
+ return (
+ <div className="uploadContainer">
+ <label className="uploadLabel" htmlFor="upload-input">请选择文件上传:</label>
+ <input
+ type="file"
+ id="upload-input"
+ className="uploadInput"
+ data-testid="upload-input"
+ onChange={handleFileChange}
+ />
+ <label htmlFor="upload-input">
+ <div
+ className="uploadButton"
+ data-testid="upload-button"
+ onClick={handleUpload}
+ >
+ 点击上传
+ </div>
+ </label>
+ </div>
+ )
+}
+
+export default UploadComponent