diff --git a/nkebao/src/pages/workspace/auto-like/AutoLike.tsx b/nkebao/src/pages/workspace/auto-like/AutoLike.tsx index 5c11b567..81b4f650 100644 --- a/nkebao/src/pages/workspace/auto-like/AutoLike.tsx +++ b/nkebao/src/pages/workspace/auto-like/AutoLike.tsx @@ -1,4 +1,4 @@ -import React, { useState, useCallback } from "react"; +import React, { useState } from "react"; import { ChevronDown, ChevronUp, @@ -7,9 +7,7 @@ import { Edit, Copy, Trash2, - Clock, Plus, - Filter, Search, RefreshCw, Settings, @@ -92,20 +90,44 @@ export default function AutoLike() { const [expandedTaskId, setExpandedTaskId] = useState(null); const [tasks, setTasks] = React.useState([]); const [searchTerm, setSearchTerm] = useState(""); + const [loading, setLoading] = useState(false); - const fetchTasks = useCallback(async () => { + // 1. fetchTasks 不用 useCallback,直接定义 + async function fetchTasks() { + setLoading(true); try { const list = await fetchAutoLikeTasks(); - setTasks(list); + // 确保数据字段与旧项目一致 + const mappedTasks = list.map(task => ({ + ...task, + // 确保字段名称和格式与旧项目一致 + status: task.status || 2, // 默认为关闭状态 + deviceCount: task.deviceCount || 0, + targetGroup: task.targetGroup || '默认人群', + likeCount: task.todayLikeCount || task.likeCount || 0, + creator: task.creator || '未知', + lastLikeTime: task.lastLikeTime || '暂无', + createTime: task.createTime || '未知', + likeInterval: task.likeInterval || 5, + maxLikesPerDay: task.maxLikesPerDay || 200, + timeRange: task.timeRange || { start: '08:00', end: '22:00' }, + contentTypes: task.contentTypes || ['text', 'image', 'video'], + targetTags: task.targetTags || [] + })); + setTasks(mappedTasks); } catch (error) { toast({ title: "获取任务失败", variant: "destructive" }); + } finally { + setLoading(false); } - }, [toast]); + } + // 2. useEffect 里直接调用 React.useEffect(() => { fetchTasks(); - }, [fetchTasks]); + }, []); // eslint-disable-line react-hooks/exhaustive-deps + // eslint-disable-next-line @typescript-eslint/no-unused-vars const toggleExpand = (taskId: string) => { setExpandedTaskId(expandedTaskId === taskId ? null : taskId); }; @@ -147,10 +169,10 @@ export default function AutoLike() { } }; - const toggleTaskStatus = async (id: string, status: string) => { + const toggleTaskStatus = async (id: string, status: number) => { try { - // status: 'running' -> 2(要关闭),'paused' -> 1(要开启) - const newStatus = status === "running" ? 2 : 1; + // status: 1(开启)-> 2(要关闭),2(关闭)-> 1(要开启) + const newStatus = status === 1 ? 2 : 1; const response = await toggleAutoLikeTask(id, String(newStatus)); if (response.code === 200) { toast({ title: "操作成功" }); @@ -193,8 +215,12 @@ export default function AutoLike() { setSearchTerm(e.target.value)} /> - @@ -204,12 +230,12 @@ export default function AutoLike() {

{task.name}

- - {task.status === "running" ? "进行中" : "已暂停"} + + {Number(task.status) === 1 ? "进行中" : "已暂停"}
- toggleTaskStatus(task.id, task.status)} /> + toggleTaskStatus(task.id, Number(task.status))} /> handleView(task.id)} onEdit={() => handleEdit(task.id)} @@ -222,18 +248,22 @@ export default function AutoLike() {
执行设备:{task.deviceCount} 个
目标人群:{task.targetGroup}
+
更新时间:{task.updateTime}
+
-
已点赞:{task.likeCount} 次
-
创建人:{task.creator}
+
点赞间隔:{task.likeInterval} 秒
+
每日上限:{task.maxLikesPerDay} 次
+
创建时间:{task.createTime}
- 上次点赞:{task.lastLikeTime} + 今日点赞:{task.lastLikeTime}
- 创建时间:{task.createTime} + + 总点赞数:{task.createTime} diff --git a/nkebao/src/pages/workspace/auto-like/AutoLikeDetail.tsx b/nkebao/src/pages/workspace/auto-like/AutoLikeDetail.tsx index e34a28f6..7c9b478f 100644 --- a/nkebao/src/pages/workspace/auto-like/AutoLikeDetail.tsx +++ b/nkebao/src/pages/workspace/auto-like/AutoLikeDetail.tsx @@ -97,8 +97,9 @@ export default function AutoLikeDetail() { if (!task) return; try { - const newStatus = task.status === 'running' ? 'paused' : 'running'; - const response = await toggleAutoLikeTask(task.id, newStatus); + // status: 1(开启)-> 2(要关闭),2(关闭)-> 1(要开启) + const newStatus = task.status === 1 ? 2 : 1; + const response = await toggleAutoLikeTask(task.id, String(newStatus)); if (response.code === 200) { setTask(prev => prev ? { ...prev, status: newStatus } : null); @@ -170,27 +171,23 @@ export default function AutoLikeDetail() { } }; - const getStatusColor = (status: string) => { + const getStatusColor = (status: number) => { switch (status) { - case 'running': + case 1: return 'bg-green-100 text-green-800'; - case 'paused': + case 2: return 'bg-gray-100 text-gray-800'; - case 'completed': - return 'bg-blue-100 text-blue-800'; default: return 'bg-gray-100 text-gray-800'; } }; - const getStatusText = (status: string) => { + const getStatusText = (status: number) => { switch (status) { - case 'running': + case 1: return '进行中'; - case 'paused': + case 2: return '已暂停'; - case 'completed': - return '已完成'; default: return '未知'; } @@ -264,13 +261,13 @@ export default function AutoLikeDetail() { {task.name}
- - {getStatusText(task.status)} + + {getStatusText(Number(task.status))}
diff --git a/nkebao/src/types/auto-like.ts b/nkebao/src/types/auto-like.ts index e61b0176..b9aae51a 100644 --- a/nkebao/src/types/auto-like.ts +++ b/nkebao/src/types/auto-like.ts @@ -1,5 +1,5 @@ // 自动点赞任务状态 -export type LikeTaskStatus = 'running' | 'paused' | 'completed'; +export type LikeTaskStatus = 1 | 2; // 1: 开启, 2: 关闭 // 内容类型 export type ContentType = 'text' | 'image' | 'video' | 'link'; @@ -65,6 +65,7 @@ export interface LikeTask { enableFriendTags: boolean; todayLikeCount: number; totalLikeCount: number; + updateTime: string; } // 创建任务数据