种子列表优化、添加用户充值
Change-Id: I602e9eef78efe3527c320352d4522244d41ae807
diff --git a/src/pages/UserCenter/NewbieTasks.css b/src/pages/UserCenter/NewbieTasks.css
deleted file mode 100644
index 660cec3..0000000
--- a/src/pages/UserCenter/NewbieTasks.css
+++ /dev/null
@@ -1,20 +0,0 @@
-
-.task-btn {
- margin-right: 8px;
- padding: 6px 12px;
- border: none;
- border-radius: 6px;
- background-color: #4a90e2;
- color: white;
- cursor: pointer;
-}
-
-.task-btn:hover {
- background-color: #357abd;
-}
-
-.loading {
- text-align: center;
- font-size: 18px;
- color: #333;
-}
diff --git a/src/pages/UserCenter/NewbieTasks.jsx b/src/pages/UserCenter/NewbieTasks.jsx
deleted file mode 100644
index 768f95a..0000000
--- a/src/pages/UserCenter/NewbieTasks.jsx
+++ /dev/null
@@ -1,327 +0,0 @@
-// import React, { useEffect, useState } from 'react';
-// import axios from 'axios';
-// import Header from '../../components/Header';
-// import './UserProfile.css'; // 复用个人资料页面的样式
-// import UserNav from './UserNav';
-
-// const NewbieTasks = () => {
-// const [tasks, setTasks] = useState([]);
-// const [experience, setExperience] = useState({});
-// const [currentStep, setCurrentStep] = useState({});
-// const [loading, setLoading] = useState(true);
-
-// const baseURL = '/echo/task/tutorial';
-// const userId = 1;
-
-// // 获取所有任务
-// const fetchTasks = async () => {
-// try {
-// const response = await axios.get(`${baseURL}/getAllTasks`, {
-// params: { user_id: userId },
-// });
-// setTasks(response.data.tasks || []);
-// } catch (error) {
-// console.error('获取任务失败:', error);
-// }
-// };
-
-// // 获取经验与等级信息
-// const fetchExperience = async () => {
-// try {
-// const response = await axios.get(`${baseURL}/getAllTasks`, {
-// params: { user_id: userId },
-// });
-// setExperience(response.data || {});
-// } catch (error) {
-// console.error('获取经验失败:', error);
-// }
-// };
-
-// // 获取当前引导步骤
-// const fetchCurrentStep = async () => {
-// try {
-// const response = await axios.get(`${baseURL}/getNewStep`, {
-// params: { user_id: userId },
-// });
-// setCurrentStep(response.data || {});
-// } catch (error) {
-// console.error('获取引导步骤失败:', error);
-// }
-// };
-
-// // 更新任务状态
-// const updateStatus = async (taskId) => {
-// try {
-// await axios.post(`${baseURL}/updateStatus`, {
-// user_id: userId,
-// task_id: taskId,
-// });
-// await fetchTasks();
-// await fetchExperience();
-// } catch (error) {
-// console.error('更新状态失败:', error);
-// }
-// };
-
-// // 提交任务进度
-// const updateProgress = async (taskId, progress) => {
-// try {
-// await axios.post(`${baseURL}/updateProgress`, {
-// user_id: userId,
-// task_id: taskId,
-// progress,
-// });
-// await fetchTasks();
-// } catch (error) {
-// console.error('更新进度失败:', error);
-// }
-// };
-
-// // 领取奖励
-// const claimReward = async (taskId) => {
-// try {
-// await axios.post(`${baseURL}/rewardClaim`, {
-// user_id: userId,
-// task_id: taskId,
-// });
-// await fetchTasks();
-// await fetchExperience();
-// } catch (error) {
-// console.error('领取奖励失败:', error);
-// }
-// };
-
-// // 查看奖励是否已发放
-// const checkRewardStatus = async (taskId) => {
-// try {
-// const response = await axios.post(`${baseURL}/rewardReview`, {
-// user_id: userId,
-// task_id: taskId,
-// });
-// alert(response.data.message || '已完成');
-// } catch (error) {
-// console.error('查看失败:', error);
-// }
-// };
-
-// // 页面初始化
-// useEffect(() => {
-// const init = async () => {
-// await fetchTasks();
-// await fetchExperience();
-// await fetchCurrentStep();
-// setLoading(false);
-// };
-// init();
-// }, []);
-
-// if (loading) return <p className="loading">加载中...</p>;
-
-// return (
-// <div className="user-profile-container">
-// <Header />
-// <div className="user-center">
-// <div className="user-nav-container">
-// <UserNav activeKey="newbieTasks" onSelect={() => {}} />
-// </div>
-
-// <div className="common-card right-content">
-// <div className="profile-header">
-// <h1>🎯 新手考核</h1>
-// </div>
-
-// <div className="profile-details">
-// <p><strong>当前经验:</strong>{experience.current_experience}</p>
-// <p><strong>等级:</strong>{experience.level}</p>
-// <p><strong>奖励经验:</strong>{experience.reward?.experience || 0}</p>
-// <p><strong>奖励积分:</strong>{experience.reward?.points || 0}</p>
-// </div>
-
-// <div className="profile-details">
-// <p><strong>🧭 当前引导步骤:</strong>{currentStep.current_step}</p>
-// <p>{currentStep.step_description}</p>
-// </div>
-
-// <div className="profile-details">
-// <h2>任务列表</h2>
-// <ul>
-// {tasks.map(task => (
-// <li key={task.task_id} style={{ marginBottom: '20px' }}>
-// <p><strong>任务:</strong>{task.title}</p>
-// <p><strong>描述:</strong>{task.description}</p>
-// <p><strong>进度:</strong>{task.progress}%</p>
-// <p><strong>状态:</strong>{task.status}</p>
-// <p><strong>奖励:</strong>经验 {task.reward.experience},积分 {task.reward.points}</p>
-
-// <div style={{ marginTop: '10px' }}>
-// <button className="task-btn" onClick={() => updateStatus(task.task_id)}>更新状态</button>
-// <button className="task-btn" onClick={() => updateProgress(task.task_id, 100)}>提交进度</button>
-// <button className="task-btn" onClick={() => claimReward(task.task_id)}>领取奖励</button>
-// <button className="task-btn" onClick={() => checkRewardStatus(task.task_id)}>查看奖励是否已发放</button>
-// </div>
-// </li>
-// ))}
-// </ul>
-// </div>
-// </div>
-// </div>
-// </div>
-// );
-// };
-
-// export default NewbieTasks;
-
-import React, { useEffect, useState } from 'react';
-import axios from 'axios';
-import './UserProfile.css'; // 继续复用样式
-
-const NewbieTasks = () => {
- const [tasks, setTasks] = useState([]);
- const [experience, setExperience] = useState({});
- const [currentStep, setCurrentStep] = useState({});
- const [loading, setLoading] = useState(true);
-
- const baseURL = '/echo/task/tutorial';
- const userId = 1;
-
- const fetchTasks = async () => {
- try {
- const response = await axios.get(`${baseURL}/getAllTasks`, {
- params: { user_id: userId },
- });
- setTasks(response.data.tasks || []);
- } catch (error) {
- console.error('获取任务失败:', error);
- }
- };
-
- const fetchExperience = async () => {
- try {
- const response = await axios.get(`${baseURL}/getAllTasks`, {
- params: { user_id: userId },
- });
- setExperience(response.data || {});
- } catch (error) {
- console.error('获取经验失败:', error);
- }
- };
-
- const fetchCurrentStep = async () => {
- try {
- const response = await axios.get(`${baseURL}/getNewStep`, {
- params: { user_id: userId },
- });
- setCurrentStep(response.data || {});
- } catch (error) {
- console.error('获取引导步骤失败:', error);
- }
- };
-
- const updateStatus = async (taskId) => {
- try {
- await axios.post(`${baseURL}/updateStatus`, {
- user_id: userId,
- task_id: taskId,
- });
- await fetchTasks();
- await fetchExperience();
- } catch (error) {
- console.error('更新状态失败:', error);
- }
- };
-
- const updateProgress = async (taskId, progress) => {
- try {
- await axios.post(`${baseURL}/updateProgress`, {
- user_id: userId,
- task_id: taskId,
- progress,
- });
- await fetchTasks();
- } catch (error) {
- console.error('更新进度失败:', error);
- }
- };
-
- const claimReward = async (taskId) => {
- try {
- await axios.post(`${baseURL}/rewardClaim`, {
- user_id: userId,
- task_id: taskId,
- });
- await fetchTasks();
- await fetchExperience();
- } catch (error) {
- console.error('领取奖励失败:', error);
- }
- };
-
- const checkRewardStatus = async (taskId) => {
- try {
- const response = await axios.post(`${baseURL}/rewardReview`, {
- user_id: userId,
- task_id: taskId,
- });
- alert(response.data.message || '已完成');
- } catch (error) {
- console.error('查看失败:', error);
- }
- };
-
- useEffect(() => {
- const init = async () => {
- await fetchTasks();
- await fetchExperience();
- await fetchCurrentStep();
- setLoading(false);
- };
- init();
- }, []);
-
- if (loading) return <p className="loading">加载中...</p>;
-
- return (
- <div className="common-card right-content">
- <div className="profile-header">
- <h1>🎯 新手考核</h1>
- </div>
-
- <div className="profile-details">
- <p><strong>当前经验:</strong>{experience.current_experience}</p>
- <p><strong>等级:</strong>{experience.level}</p>
- <p><strong>奖励经验:</strong>{experience.reward?.experience || 0}</p>
- <p><strong>奖励积分:</strong>{experience.reward?.points || 0}</p>
- </div>
-
- <div className="profile-details">
- <p><strong>🧭 当前引导步骤:</strong>{currentStep.current_step}</p>
- <p>{currentStep.step_description}</p>
- </div>
-
- <div className="profile-details">
- <h2>任务列表</h2>
- <ul>
- {tasks.map(task => (
- <li key={task.task_id} style={{ marginBottom: '20px', borderBottom: '1px solid #eee', paddingBottom: '10px' }}>
- <p><strong>任务:</strong>{task.title}</p>
- <p><strong>描述:</strong>{task.description}</p>
- <p><strong>进度:</strong>{task.progress}%</p>
- <p><strong>状态:</strong>{task.status}</p>
- <p><strong>奖励:</strong>经验 {task.reward.experience},积分 {task.reward.points}</p>
-
- <div className="task-btn-group">
- <button className="task-btn" onClick={() => updateStatus(task.task_id)}>更新状态</button>
- <button className="task-btn" onClick={() => updateProgress(task.task_id, 100)}>提交进度</button>
- <button className="task-btn" onClick={() => claimReward(task.task_id)}>领取奖励</button>
- <button className="task-btn" onClick={() => checkRewardStatus(task.task_id)}>查看奖励状态</button>
- </div>
- </li>
- ))}
- </ul>
- </div>
- </div>
- );
-};
-
-export default NewbieTasks;
-
diff --git a/src/pages/UserCenter/UserNav.jsx b/src/pages/UserCenter/UserNav.jsx
index 3456195..c272424 100644
--- a/src/pages/UserCenter/UserNav.jsx
+++ b/src/pages/UserCenter/UserNav.jsx
@@ -14,6 +14,7 @@
{ to: '/user/collections', label: '我的收藏' },
// { to: '/user/newbie-tasks', label: '新手考核' },
{ to: '/user/invite', label: '邀请新用户' },
+ { to: '/user/recharge', label: '充值服务' },
];
// 判断路径是否是当前活动页面