diff --git a/Cunkebao/app/workspace/auto-like/[id]/page.tsx b/Cunkebao/app/workspace/auto-like/[id]/page.tsx index 04cb2b30..caed09bd 100644 --- a/Cunkebao/app/workspace/auto-like/[id]/page.tsx +++ b/Cunkebao/app/workspace/auto-like/[id]/page.tsx @@ -6,152 +6,98 @@ import { Card } from "@/components/ui/card" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Avatar } from "@/components/ui/avatar" -import { useRouter } from "next/navigation" +import { useRouter, useParams } from "next/navigation" import { Skeleton } from "@/components/ui/skeleton" import { format } from "date-fns" import { Badge } from "@/components/ui/badge" import { Separator } from "@/components/ui/separator" import Image from "next/image" import { cn } from "@/lib/utils" +import { api } from "@/lib/api" +import { showToast } from "@/lib/toast" -// 模拟数据接口 +// API响应数据接口 interface LikeRecord { id: number - user: { - avatar: string - nickname: string - } - likedBy: { - avatar: string - nickname: string - } + workbenchId: number + momentsId: number + snsId: string + wechatAccountId: number + wechatFriendId: number likeTime: string - content: { - type: 'text' | 'image' | 'text-image' - text?: string - images?: string[] + content: string + resUrls: string[] + momentTime: string + userName: string + operatorName: string + operatorAvatar: string + friendName: string + friendAvatar: string +} + +interface LikeRecordsResponse { + code: number + msg: string + data: { + list: LikeRecord[] + total: number } } -// 模拟数据 -const mockLikeRecords: LikeRecord[] = [ - { - id: 1, - user: { - avatar: "https://api.dicebear.com/7.x/avataaars/svg?seed=Alice", - nickname: "小红花" - }, - likedBy: { - avatar: "https://api.dicebear.com/7.x/avataaars/svg?seed=Bob", - nickname: "蓝色海洋" - }, - likeTime: "2023-12-15T10:30:00", - content: { - type: "text", - text: "今天天气真好,阳光明媚!想出去走走看看这个美丽的世界。" - } - }, - { - id: 2, - user: { - avatar: "https://api.dicebear.com/7.x/avataaars/svg?seed=Charlie", - nickname: "绿野仙踪" - }, - likedBy: { - avatar: "https://api.dicebear.com/7.x/avataaars/svg?seed=David", - nickname: "快乐精灵" - }, - likeTime: "2023-12-14T15:45:00", - content: { - type: "image", - images: ["https://picsum.photos/id/237/300/200", "https://picsum.photos/id/238/300/200"] - } - }, - { - id: 3, - user: { - avatar: "https://api.dicebear.com/7.x/avataaars/svg?seed=Eve", - nickname: "紫色梦想" - }, - likedBy: { - avatar: "https://api.dicebear.com/7.x/avataaars/svg?seed=Frank", - nickname: "阳光男孩" - }, - likeTime: "2023-12-13T09:15:00", - content: { - type: "text-image", - text: "分享一下我的旅行照片,希望大家喜欢!", - images: ["https://picsum.photos/id/239/300/200"] - } - }, - { - id: 4, - user: { - avatar: "https://api.dicebear.com/7.x/avataaars/svg?seed=Grace", - nickname: "月光星辰" - }, - likedBy: { - avatar: "https://api.dicebear.com/7.x/avataaars/svg?seed=Henry", - nickname: "风之子" - }, - likeTime: "2023-12-12T18:20:00", - content: { - type: "text", - text: "学习编程真的很有趣,每天都有新发现。希望能和大家一起进步!" - } - }, - { - id: 5, - user: { - avatar: "https://api.dicebear.com/7.x/avataaars/svg?seed=Ivy", - nickname: "彩虹糖果" - }, - likedBy: { - avatar: "https://api.dicebear.com/7.x/avataaars/svg?seed=Jack", - nickname: "幸运草" - }, - likeTime: "2023-12-11T11:05:00", - content: { - type: "text-image", - text: "今天做了一道新菜,味道超级赞!分享食谱:先准备好所有食材...", - images: ["https://picsum.photos/id/240/300/200", "https://picsum.photos/id/241/300/200"] - } - } -]; - export default function LikeRecordsPage() { const router = useRouter() + const params = useParams<{ id: string }>() + const workbenchId = params?.id || "" + const [loading, setLoading] = useState(false) const [searchTerm, setSearchTerm] = useState("") - const [records, setRecords] = useState(mockLikeRecords) + const [records, setRecords] = useState([]) const [currentPage, setCurrentPage] = useState(1) - const [total, setTotal] = useState(mockLikeRecords.length) + const [total, setTotal] = useState(0) const pageSize = 10 - // 模拟加载数据 + // 加载点赞记录数据 const fetchRecords = async (page: number, searchTerm?: string) => { - setLoading(true) - // 模拟API请求延迟 - await new Promise(resolve => setTimeout(resolve, 800)) - - // 实际项目中这里应该调用真实API - let filteredRecords = [...mockLikeRecords] - if (searchTerm) { - filteredRecords = mockLikeRecords.filter(record => - record.user.nickname.includes(searchTerm) || - record.likedBy.nickname.includes(searchTerm) || - (record.content.text && record.content.text.includes(searchTerm)) - ) + if (!workbenchId) { + showToast("任务ID无效", "error") + return } - setRecords(filteredRecords) - setTotal(filteredRecords.length) - setLoading(false) + const loadingToast = showToast("正在加载点赞记录...", "loading", true); + try { + setLoading(true) + const queryParams = new URLSearchParams({ + workbenchId: workbenchId, + page: page.toString(), + limit: pageSize.toString() + }) + + if (searchTerm) { + queryParams.append('keyword', searchTerm) + } + + const response = await api.get(`/v1/workbench/like-records?${queryParams.toString()}`) + + if (response.code === 200) { + setRecords(response.data.list) + setTotal(response.data.total) + } else { + showToast(response.msg || "获取点赞记录失败", "error") + } + } catch (error: any) { + console.error("获取点赞记录失败:", error) + showToast(error?.message || "请检查网络连接", "error") + } finally { + loadingToast.remove(); + setLoading(false) + } } useEffect(() => { - fetchRecords(currentPage, searchTerm) - }, [currentPage]) + if (workbenchId) { + fetchRecords(currentPage, searchTerm) + } + }, [currentPage, workbenchId]) const handleSearch = () => { setCurrentPage(1) @@ -181,7 +127,7 @@ export default function LikeRecordsPage() {
setSearchTerm(e.target.value)} @@ -232,48 +178,52 @@ export default function LikeRecordsPage() { records.map(record => (
-
+
{record.user.nickname} -
-
{record.user.nickname}
+
+
{record.friendName}
内容发布者
- - {format(new Date(record.likeTime), 'yyyy-MM-dd HH:mm')} + + {format(new Date(record.momentTime || record.likeTime), 'yyyy-MM-dd HH:mm')}
- {record.content.text && ( + {record.content && (

- {record.content.text} + {record.content}

)} - {record.content.images && record.content.images.length > 0 && ( + {record.resUrls && record.resUrls.length > 0 && (
- {record.content.images.map((image, idx) => ( -
+ {record.resUrls.slice(0, 9).map((image, idx) => ( +
{`内容图片
))} @@ -282,17 +232,17 @@ export default function LikeRecordsPage() {
- + {record.likedBy.nickname} -
- {record.likedBy.nickname} +
+ {record.operatorName} 点赞了这条内容
diff --git a/Cunkebao/app/workspace/auto-like/components/basic-settings.tsx b/Cunkebao/app/workspace/auto-like/components/basic-settings.tsx index cbb75369..522ad538 100644 --- a/Cunkebao/app/workspace/auto-like/components/basic-settings.tsx +++ b/Cunkebao/app/workspace/auto-like/components/basic-settings.tsx @@ -40,11 +40,11 @@ export function BasicSettings({ formData, onChange, onNext }: BasicSettingsProps } const incrementMaxLikes = () => { - onChange({ maxLikesPerDay: Math.min(formData.maxLikesPerDay + 10, 200) }) + onChange({ maxLikesPerDay: Math.min(formData.maxLikesPerDay + 100, 10000) }) } const decrementMaxLikes = () => { - onChange({ maxLikesPerDay: Math.max(formData.maxLikesPerDay - 10, 10) }) + onChange({ maxLikesPerDay: Math.max(formData.maxLikesPerDay - 100, 10) }) } const incrementFriendMaxLikes = () => { @@ -124,7 +124,7 @@ export function BasicSettings({ formData, onChange, onNext }: BasicSettingsProps id="max-likes" type="number" min={10} - max={200} + max={10000} value={formData.maxLikesPerDay} onChange={(e) => onChange({ maxLikesPerDay: Number.parseInt(e.target.value) || 10 })} className="h-12 rounded-none border-x-0 border-gray-200 text-center" @@ -143,7 +143,7 @@ export function BasicSettings({ formData, onChange, onNext }: BasicSettingsProps
-

设置每天最多点赞的次数

+

设置每天最多点赞的次数,支持手动输入(最大10000次)

diff --git a/Cunkebao/app/workspace/auto-like/page.tsx b/Cunkebao/app/workspace/auto-like/page.tsx index 21832fb6..483eb44c 100644 --- a/Cunkebao/app/workspace/auto-like/page.tsx +++ b/Cunkebao/app/workspace/auto-like/page.tsx @@ -309,17 +309,17 @@ export default function AutoLikePage() {
创建时间:{task.createTime}
- +
-
+
今日点赞: {task.config.todayLikeCount || 0} 次
-
+
总点赞数: {task.config.totalLikeCount || 0} 次 @@ -364,8 +364,8 @@ export default function AutoLikePage() {
- {task.config.targetGroups.map((tag) => ( - + {task.config.targetGroups.map((tag, index) => ( + {tag} ))} @@ -391,8 +391,8 @@ export default function AutoLikePage() {
- {task.config.contentTypes.map((type) => ( - + {task.config.contentTypes.map((type, index) => ( + {type === "text" ? "文字" : type === "image" ? "图片" : "视频"} ))}