修复种子详情下载

Change-Id: I5673279933d639e1bf425fcaea3eabd447625bfc
diff --git a/src/pages/UserCenter/UserCenterPage.jsx b/src/pages/UserCenter/UserCenterPage.jsx
index b6fb20e..471d6c8 100644
--- a/src/pages/UserCenter/UserCenterPage.jsx
+++ b/src/pages/UserCenter/UserCenterPage.jsx
@@ -1,8 +1,8 @@
 import React, { useState } from 'react';
-import UserNav from './UserNav.jsx'; // 显式添加.jsx扩展名
+import UserNav from './UserNav.jsx'; 
 import UserProfile from './UserProfile.jsx';
 import NewbieTasks from './NewbieTasks.jsx';
-import Header from '../../components/Header.jsx'; // 假设Header也是JSX组件
+import Header from '../../components/Header.jsx'; 
 import './UserProfile.css';
 
 const UserCenterPage = () => {
diff --git a/src/pages/UserCenter/UserNav.jsx b/src/pages/UserCenter/UserNav.jsx
index c272424..63b83ca 100644
--- a/src/pages/UserCenter/UserNav.jsx
+++ b/src/pages/UserCenter/UserNav.jsx
@@ -5,14 +5,14 @@
 const UserNav = () => {
   const location = useLocation();
 
-  // 竖直导航栏的链接项(已添加“新手考核”)
+  // 竖直导航栏的链接项
   const navLinks = [
     { to: '/user/profile', label: '个人资料' },
     { to: '/user/dynamics', label: '我的动态' },
     { to: '/user/friends', label: '我的好友' },
     { to: '/user/groups', label: '我的群组' },
     { to: '/user/collections', label: '我的收藏' },
-    // { to: '/user/newbie-tasks', label: '新手考核' },
+    // { to: '/user/newbie-tasks', label: '用户考核' },
     { to: '/user/invite', label: '邀请新用户' },
     { to: '/user/recharge', label: '充值服务' },
   ];
diff --git a/src/pages/UserCenter/UserProfile.css b/src/pages/UserCenter/UserProfile.css
index cb71be7..edc04e1 100644
--- a/src/pages/UserCenter/UserProfile.css
+++ b/src/pages/UserCenter/UserProfile.css
@@ -7,7 +7,6 @@
   background: #333;
 }
 
-
 .right-content {
   flex: 3;
 }
@@ -63,15 +62,6 @@
   /* padding: 10% 20%; */
 }  
 
-/* .common-card {
-  background-color: #e9ded2;
-  border-radius: 16px;
-  margin: 0 auto;
-  margin-top: 40px;
-  padding: 10% 20%;
-  margin-left: 5%;
-  margin-right: 5%;
-} */
    
 .avatar-wrapper {
   position: relative;
diff --git a/src/pages/UserCenter/UserProfile.jsx b/src/pages/UserCenter/UserProfile.jsx
index bd87c99..cf52d99 100644
--- a/src/pages/UserCenter/UserProfile.jsx
+++ b/src/pages/UserCenter/UserProfile.jsx
@@ -264,6 +264,7 @@
 import React from 'react';
 import UserProfileBase from './UserProfileBase';
 import UserLevelExperience from './UserLevelExperience';
+import './UserProfile.css';
 
 const UserProfile = () => {
   const [userId, setUserId] = React.useState(null);
diff --git a/src/pages/UserCenter/UserRecharge.css b/src/pages/UserCenter/UserRecharge.css
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/pages/UserCenter/UserRecharge.css
diff --git a/src/pages/UserCenter/UserRecharge.jsx b/src/pages/UserCenter/UserRecharge.jsx
new file mode 100644
index 0000000..7a2f9b3
--- /dev/null
+++ b/src/pages/UserCenter/UserRecharge.jsx
@@ -0,0 +1,129 @@
+
+// export default Recharge;
+import React, { useState } from 'react';
+import axios from 'axios';
+import { useUser } from '../../context/UserContext';
+
+const UserRecharge = () => {
+  const [amount, setAmount] = useState('');
+  const [loading, setLoading] = useState(false);
+  const [message, setMessage] = useState('');
+  const [showPayDialog, setShowPayDialog] = useState(false);
+  const [payProcessing, setPayProcessing] = useState(false);
+
+  const { user } = useUser();
+  const userId = user?.userId;
+
+  // 点击提交充值,打开模拟支付弹窗
+  const handleSubmit = () => {
+    if (!userId) {
+      setMessage('未登录,无法充值');
+      return;
+    }
+    if (!amount || isNaN(amount) || Number(amount) <= 0) {
+      setMessage('请输入有效的充值金额');
+      return;
+    }
+    setMessage('');
+    setShowPayDialog(true);
+  };
+
+  // 模拟支付弹窗点击“确认支付”
+  const handlePayConfirm = async () => {
+    setPayProcessing(true);
+    setMessage('');
+
+    // 模拟支付等待 2 秒
+    setTimeout(async () => {
+      try {
+        // 支付成功后调用后端充值接口
+        const response = await axios.post('/echo/user/recharge', null, {
+          params: {
+            userId,
+            amount: Number(amount),
+          },
+        });
+
+        setMessage(response.data.message || '充值成功!');
+        setAmount('');
+      } catch (error) {
+        setMessage(error.response?.data?.message || '充值失败,请重试');
+      } finally {
+        setPayProcessing(false);
+        setShowPayDialog(false);
+      }
+    }, 2000);
+  };
+
+  // 取消支付弹窗
+  const handlePayCancel = () => {
+    setShowPayDialog(false);
+    setMessage('支付已取消');
+  };
+
+  return (
+    <div className="recharge-page" style={{ maxWidth: 400, margin: 'auto', padding: 20 }}>
+      <h2>充值服务</h2>
+      <div style={{ marginBottom: 12 }}>
+        <label>
+          充值金额:
+          <input
+            type="number"
+            min="1"
+            value={amount}
+            onChange={(e) => setAmount(e.target.value)}
+            disabled={loading || payProcessing}
+            style={{ marginLeft: 8, width: 120 }}
+          />
+        </label>
+      </div>
+      <button onClick={handleSubmit} disabled={loading || payProcessing}>
+        {loading || payProcessing ? '处理中...' : '提交充值'}
+      </button>
+
+      {message && <p style={{ marginTop: 12 }}>{message}</p>}
+
+      {/* 模拟支付弹窗 */}
+      {showPayDialog && (
+        <div
+          style={{
+            position: 'fixed',
+            top: 0, left: 0, right: 0, bottom: 0,
+            backgroundColor: 'rgba(0,0,0,0.5)',
+            display: 'flex',
+            justifyContent: 'center',
+            alignItems: 'center',
+            zIndex: 1000,
+          }}
+        >
+          <div
+            style={{
+              backgroundColor: '#fff',
+              padding: 20,
+              borderRadius: 8,
+              width: 300,
+              textAlign: 'center',
+              boxShadow: '0 0 10px rgba(0,0,0,0.25)',
+            }}
+          >
+            <h3>模拟支付</h3>
+            <p>支付金额:{amount} 元</p>
+
+            {payProcessing ? (
+              <p>支付处理中,请稍候...</p>
+            ) : (
+              <>
+                <button onClick={handlePayConfirm} style={{ marginRight: 10 }}>
+                  确认支付
+                </button>
+                <button onClick={handlePayCancel}>取消</button>
+              </>
+            )}
+          </div>
+        </div>
+      )}
+    </div>
+  );
+};
+
+export default UserRecharge;