修改论坛、促销、登录,增加测试

Change-Id: I71883fc1da46a94db47f90a4cd61474c274a5b2c
diff --git a/src/pages/Forum/posts-create/CreatePost.jsx b/src/pages/Forum/posts-create/CreatePost.jsx
index e38c29a..b8e8c2a 100644
--- a/src/pages/Forum/posts-create/CreatePost.jsx
+++ b/src/pages/Forum/posts-create/CreatePost.jsx
@@ -1,89 +1,78 @@
-// // src/pages/Forum/CreatePost.jsx
 // import React, { useState } from 'react';
 // import axios from 'axios';
+// import './CreatePost.css'; // 如果你打算加样式
 
 // const API_BASE = process.env.REACT_APP_API_BASE;
 
-// const CreatePost = ({ userId }) => {
+// const CreatePost = ({ user_id }) => {
 //   const [title, setTitle] = useState('');
 //   const [content, setContent] = useState('');
-//   const [imgUrl, setImageUrl] = useState('');
-//   const [isAnonymous, setIsAnonymous] = useState(false);
+//   const [imageUrl, setImageUrl] = useState('');
+//   const [message, setMessage] = useState('');
+//   const [error, setError] = useState('');
 
 //   const handleSubmit = async (e) => {
 //     e.preventDefault();
+//     setMessage('');
+//     setError('');
+
+//     if (!title.trim() || !content.trim()) {
+//       setError('标题和内容不能为空');
+//       return;
+//     }
 
 //     try {
-//       const postData = {
+//       const res = await axios.post(`${API_BASE}/echo/forum/posts/${user_id}/createPost`, {
 //         title,
-//         postContent: content,
-//         postType: isAnonymous,
-//       };
+//         post_content: content,
+//         image_url: imageUrl
+//       });
 
-//       if (imgUrl.trim()) {
-//         postData.imgUrl = imgUrl;
-//       }
-
-//       const response = await axios.post(
-//         `${API_BASE}/echo/forum/posts/${userId}/createPost`,
-//         postData
-//       );
-      
-
-//       if (response.status === 201) {
-//         alert('帖子创建成功!');
-//         setTitle('');
-//         setContent('');
-//         setImageUrl('');
-//         setIsAnonymous(false);
-//       }
-//     } catch (error) {
-//       console.error('帖子创建失败:', error.response?.data || error.message);
-//       alert('创建失败,请重试');
-//     }    
+//       setMessage(`发帖成功,帖子ID:${res.data.post_id}`);
+//       setTitle('');
+//       setContent('');
+//       setImageUrl('');
+//     } catch (err) {
+//       console.error(err);
+//       setError(err.response?.data?.error || '发帖失败,请稍后重试');
+//     }
 //   };
 
 //   return (
-//     <div className="create-post">
-//       <h2>创建新帖子</h2>
-//       <form onSubmit={handleSubmit}>
-//         <div>
+//     <div className="create-post-container">
+//       <h2>发表新帖子</h2>
+//       <form onSubmit={handleSubmit} className="create-post-form">
+//         <div className="form-group">
 //           <label>标题:</label>
 //           <input
 //             type="text"
 //             value={title}
 //             onChange={(e) => setTitle(e.target.value)}
-//             required
+//             placeholder="输入帖子标题"
 //           />
 //         </div>
-//         <div>
+//         <div className="form-group">
 //           <label>内容:</label>
 //           <textarea
 //             value={content}
 //             onChange={(e) => setContent(e.target.value)}
-//             required
+//             placeholder="输入帖子内容"
 //           />
 //         </div>
-//         <div>
-//           <label>图片 URL(可选):</label>
+//         <div className="form-group">
+//           <label>图片链接(可选):</label>
 //           <input
 //             type="text"
-//             value={imgUrl}
+//             value={imageUrl}
 //             onChange={(e) => setImageUrl(e.target.value)}
+//             placeholder="例如:https://example.com/img.jpg"
 //           />
 //         </div>
-//         <div>
-//           <label>
-//             <input
-//               type="checkbox"
-//               checked={isAnonymous}
-//               onChange={(e) => setIsAnonymous(e.target.checked)}
-//             />
-//             匿名发布
-//           </label>
-//         </div>
 //         <button type="submit">发布</button>
 //       </form>
+
+//       {message && <p className="success-text">{message}</p>}
+//       {error && <p className="error-text">{error}</p>}
 //     </div>
 //   );
 // };
@@ -96,7 +85,7 @@
 
 const API_BASE = process.env.REACT_APP_API_BASE;
 
-const CreatePost = ({ userId }) => {
+const CreatePost = ({ user_id }) => {
   const [title, setTitle] = useState('');
   const [content, setContent] = useState('');
   const [imageUrl, setImageUrl] = useState('');
@@ -114,7 +103,7 @@
     }
 
     try {
-      const res = await axios.post(`${API_BASE}/echo/forum/posts/${userId}/createPost`, {
+      const res = await axios.post(`${API_BASE}/echo/forum/posts/${user_id}/createPost`, {
         title,
         post_content: content,
         image_url: imageUrl
@@ -135,8 +124,10 @@
       <h2>发表新帖子</h2>
       <form onSubmit={handleSubmit} className="create-post-form">
         <div className="form-group">
-          <label>标题:</label>
+          {/* 这里加上htmlFor,并给input加id */}
+          <label htmlFor="title">标题:</label>
           <input
+            id="title"  // 加id
             type="text"
             value={title}
             onChange={(e) => setTitle(e.target.value)}
@@ -144,16 +135,20 @@
           />
         </div>
         <div className="form-group">
-          <label>内容:</label>
+          {/* 同理,内容 */}
+          <label htmlFor="content">内容:</label>
           <textarea
+            id="content"  // 加id
             value={content}
             onChange={(e) => setContent(e.target.value)}
             placeholder="输入帖子内容"
           />
         </div>
         <div className="form-group">
-          <label>图片链接(可选):</label>
+          {/* 图片链接 */}
+          <label htmlFor="imageUrl">图片链接(可选):</label>
           <input
+            id="imageUrl"  // 加id
             type="text"
             value={imageUrl}
             onChange={(e) => setImageUrl(e.target.value)}