feat: 处理语法校验

This commit is contained in:
笔记本里的永平
2025-07-07 14:29:28 +08:00
parent 5b8969f4a6
commit c29fbd1bbb
11 changed files with 11884 additions and 44 deletions

View File

@@ -1,9 +1,9 @@
import React, { useState, useEffect, useRef, useCallback } from 'react';
import React, { useState, useEffect, useRef } from 'react';
import { useParams } from 'react-router-dom';
import PageHeader from '@/components/PageHeader';
import BackButton from '@/components/BackButton';
import { useSimpleBack } from '@/hooks/useBackNavigation';
import { ChevronLeft, Smartphone, Battery, Wifi, MessageCircle, Users, Settings, History, RefreshCw, Loader2 } from 'lucide-react';
import { Smartphone, Battery, Wifi, MessageCircle, Users, Settings, History, RefreshCw, Loader2 } from 'lucide-react';
import { devicesApi, fetchDeviceDetail, fetchDeviceRelatedAccounts, fetchDeviceHandleLogs, updateDeviceTaskConfig } from '@/api/devices';
import { useToast } from '@/components/ui/toast';
@@ -73,7 +73,7 @@ export default function DeviceDetail() {
momentsSync: false,
aiChat: false
});
const [tabChangeLoading, setTabChangeLoading] = useState(false);
const [accountPage, setAccountPage] = useState(1);
const [hasMoreAccounts, setHasMoreAccounts] = useState(true);
const accountsPerPage = 10;
@@ -277,7 +277,7 @@ export default function DeviceDetail() {
return () => {
observer.disconnect();
};
}, [hasMoreLogs, logsLoading]);
}, [hasMoreLogs, logsLoading, loadMoreLogs]);
// 获取任务配置
const fetchTaskConfig = async () => {
@@ -305,7 +305,6 @@ export default function DeviceDetail() {
// 标签页切换处理
const handleTabChange = (value: string) => {
setActiveTab(value);
setTabChangeLoading(true);
setTimeout(() => {
if (value === "accounts" && device && (!device.wechatAccounts || device.wechatAccounts.length === 0)) {
@@ -315,7 +314,6 @@ export default function DeviceDetail() {
setHasMoreLogs(true);
fetchHandleLogs();
}
setTabChangeLoading(false);
}, 100);
};
@@ -421,7 +419,7 @@ export default function DeviceDetail() {
return () => {
observer.disconnect();
};
}, [hasMoreAccounts, accountsLoading]);
}, [hasMoreAccounts, accountsLoading, loadMoreAccounts]);
if (loading) {
return (

View File

@@ -1,6 +1,6 @@
import React, { useState, useEffect, useRef, useCallback } from 'react';
import { useNavigate } from 'react-router-dom';
import { Plus, Search, RefreshCw, QrCode, Smartphone, Loader2, AlertTriangle, Trash2, X } from 'lucide-react';
import { Plus, Search, RefreshCw, QrCode, Loader2, AlertTriangle, X } from 'lucide-react';
import { devicesApi } from '@/api';
import { useToast } from '@/components/ui/toast';
import PageHeader from '@/components/PageHeader';
@@ -27,6 +27,7 @@ export default function Devices() {
});
const [searchQuery, setSearchQuery] = useState("");
const [statusFilter, setStatusFilter] = useState("all");
// 恢复分页功能
const [currentPage, setCurrentPage] = useState(1);
const [selectedDeviceId, setSelectedDeviceId] = useState<number | null>(null);
const [isLoading, setIsLoading] = useState(false);