【操盘手端】提示框优化

This commit is contained in:
Ghost
2025-04-10 17:33:48 +08:00
parent 3dcc4cb966
commit f8f1c9acb4
3 changed files with 54 additions and 8 deletions

View File

@@ -10,6 +10,7 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@
import { ScrollArea } from "@/components/ui/scroll-area"
import { Checkbox } from "@/components/ui/checkbox"
import { api } from "@/lib/api"
import { showToast } from "@/lib/toast"
interface ServerDevice {
id: number
@@ -51,6 +52,7 @@ export function DeviceSelectionDialog({ open, onOpenChange, selectedDevices, onS
}, [open, selectedDevices])
const fetchDevices = async () => {
const loadingToast = showToast("正在加载设备列表...", "loading", true);
try {
setLoading(true)
const response = await api.get<{code: number, msg: string, data: {list: ServerDevice[], total: number}}>('/v1/devices?page=1&limit=100')
@@ -65,10 +67,14 @@ export function DeviceSelectionDialog({ open, onOpenChange, selectedDevices, onS
totalFriend: device.totalFriend || 0
}))
setDevices(transformedDevices)
} else {
showToast(response.msg || "获取设备列表失败", "error")
}
} catch (error) {
} catch (error: any) {
console.error('获取设备列表失败:', error)
showToast(error?.message || "请检查网络连接", "error")
} finally {
loadingToast.remove();
setLoading(false)
}
}

View File

@@ -83,6 +83,7 @@ export default function AutoLikePage() {
const pageSize = 10
const fetchTasks = async (page: number, name?: string) => {
const loadingToast = showToast("正在加载任务列表...", "loading", true);
try {
setLoading(true)
const queryParams = new URLSearchParams({
@@ -105,6 +106,7 @@ export default function AutoLikePage() {
console.error("获取任务列表失败:", error)
showToast(error?.message || "请检查网络连接", "error")
} finally {
loadingToast.remove();
setLoading(false)
}
}
@@ -127,18 +129,22 @@ export default function AutoLikePage() {
}
const handleDelete = async (taskId: number) => {
const loadingToast = showToast("正在删除任务...", "loading", true);
try {
const response = await api.delete<ApiResponse>(`/v1/workbench/delete?id=${taskId}`)
if (response.code === 200) {
// 删除成功后刷新列表
loadingToast.remove();
fetchTasks(currentPage, searchName)
showToast(response.msg || "已成功删除点赞任务", "success")
} else {
loadingToast.remove();
showToast(response.msg || "请稍后再试", "error")
}
} catch (error: any) {
console.error("删除任务失败:", error)
loadingToast.remove();
showToast(error?.message || "请检查网络连接", "error")
}
}
@@ -152,6 +158,7 @@ export default function AutoLikePage() {
}
const handleCopy = async (taskId: number) => {
const loadingToast = showToast("正在复制任务...", "loading", true);
try {
const response = await api.post<ApiResponse>('/v1/workbench/copy', {
id: taskId
@@ -159,18 +166,22 @@ export default function AutoLikePage() {
if (response.code === 200) {
// 复制成功后刷新列表
loadingToast.remove();
fetchTasks(currentPage, searchName)
showToast(response.msg || "已成功复制点赞任务", "success")
} else {
loadingToast.remove();
showToast(response.msg || "请稍后再试", "error")
}
} catch (error: any) {
console.error("复制任务失败:", error)
loadingToast.remove();
showToast(error?.message || "请检查网络连接", "error")
}
}
const toggleTaskStatus = async (taskId: number, currentStatus: number) => {
const loadingToast = showToast("正在更新任务状态...", "loading", true);
try {
const response = await api.post<ApiResponse>('/v1/workbench/update-status', {
id: taskId,
@@ -186,12 +197,15 @@ export default function AutoLikePage() {
))
const newStatus = currentStatus === 1 ? 2 : 1
loadingToast.remove();
showToast(response.msg || `任务${newStatus === 1 ? "已启动" : "已暂停"}`, "success")
} else {
loadingToast.remove();
showToast(response.msg || "请稍后再试", "error")
}
} catch (error: any) {
console.error("更新任务状态失败:", error)
loadingToast.remove();
showToast(error?.message || "请检查网络连接", "error")
}
}