feat:回退操作

This commit is contained in:
许永平
2025-07-05 21:40:14 +08:00
parent 0385a4cfa9
commit 17ec8ecf25
13 changed files with 461 additions and 199 deletions

View File

@@ -1,6 +1,5 @@
import React, { useState, useEffect, useRef, useCallback } from 'react';
import { useParams, useNavigate } from 'react-router-dom';
import { smartGoBack, getBackButtonText } from '@/utils/navigation';
import { ChevronLeft, 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';
@@ -444,11 +443,11 @@ export default function DeviceDetail() {
ID为 "{id}"
</div>
<button
onClick={() => smartGoBack(navigate)}
onClick={() => navigate(-1)}
className="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-lg flex items-center gap-2 transition-colors"
>
<ChevronLeft className="h-4 w-4" />
{getBackButtonText()}
</button>
</div>
</div>
@@ -463,7 +462,7 @@ export default function DeviceDetail() {
<div className="flex items-center gap-3">
<button
className="p-2 hover:bg-gray-100 rounded-lg transition-colors"
onClick={() => smartGoBack(navigate)}
onClick={() => navigate(-1)}
>
<ChevronLeft className="h-5 w-5" />
</button>
@@ -714,7 +713,7 @@ export default function DeviceDetail() {
<div className="flex items-center justify-between">
<div className="font-medium truncate">{account.nickname}</div>
<span className={`px-2 py-1 text-xs rounded-full ${
account.wechatAliveText === '正常'
account.wechatAlive === 1
? "bg-green-100 text-green-700"
: "bg-red-100 text-red-700"
}`}>

View File

@@ -1,6 +1,5 @@
import React, { useState, useEffect, useRef, useCallback } from 'react';
import { useNavigate } from 'react-router-dom';
import { smartGoBack } from '@/utils/navigation';
import { ChevronLeft, Plus, Search, RefreshCw, QrCode, Smartphone, Loader2, AlertTriangle, Trash2, X } from 'lucide-react';
import { devicesApi } from '@/api';
import { useToast } from '@/components/ui/toast';
@@ -382,7 +381,7 @@ export default function Devices() {
<div className="flex items-center gap-3">
<button
className="p-2 hover:bg-gray-100 rounded-lg transition-colors"
onClick={() => smartGoBack(navigate)}
onClick={() => navigate(-1)}
>
<ChevronLeft className="h-5 w-5" />
</button>

View File

@@ -1,6 +1,5 @@
import React, { useEffect, useState } from 'react';
import { useParams, useNavigate } from 'react-router-dom';
import { smartGoBack } from '@/utils/navigation';
import { ArrowLeft, Users, TrendingUp, Calendar, Settings, Play, Pause, Edit } from 'lucide-react';
interface PlanData {
@@ -93,7 +92,7 @@ export default function PlanDetail() {
<div className="flex items-center justify-between p-4">
<div className="flex items-center">
<button
onClick={() => smartGoBack(navigate)}
onClick={() => navigate(-1)}
className="mr-3 p-1 hover:bg-gray-100 rounded"
>
<ArrowLeft className="h-5 w-5" />

View File

@@ -1,6 +1,5 @@
import React, { useState } from 'react';
import { useNavigate } from 'react-router-dom';
import { smartGoBack } from '../../utils/navigation';
import { ArrowLeft, Check } from 'lucide-react';
interface ScenarioOption {
@@ -88,7 +87,7 @@ export default function NewPlan() {
<header className="sticky top-0 z-10 bg-white border-b">
<div className="flex items-center p-4">
<button
onClick={() => smartGoBack(navigate)}
onClick={() => navigate(-1)}
className="mr-3 p-1 hover:bg-gray-100 rounded"
>
<ArrowLeft className="h-5 w-5" />

View File

@@ -1,6 +1,5 @@
import React, { useEffect, useState } from 'react';
import { useParams, useNavigate } from 'react-router-dom';
import { smartGoBack } from '../../utils/navigation';
import { ArrowLeft, Plus, Users, TrendingUp, Calendar } from 'lucide-react';
interface Plan {
@@ -171,7 +170,7 @@ export default function ScenarioDetail() {
<div className="flex items-center justify-between p-4">
<div className="flex items-center">
<button
onClick={() => smartGoBack(navigate)}
onClick={() => navigate(-1)}
className="mr-3 p-1 hover:bg-gray-100 rounded"
>
<ArrowLeft className="h-5 w-5" />

View File

@@ -110,7 +110,12 @@ export default function WechatAccountDetail() {
// 如果没有账号数据,返回上一页
useEffect(() => {
if (!currentAccount) {
navigate('/');
toast({
title: "数据错误",
description: "未找到账号信息,请重新选择",
variant: "destructive"
});
navigate('/wechat-accounts');
return;
}
}, [currentAccount, navigate, toast]);

View File

@@ -1,6 +1,5 @@
import React, { useState, useEffect, useRef, useCallback } from 'react';
import { useNavigate } from 'react-router-dom';
import { smartGoBack } from '@/utils/navigation';
import { ChevronLeft, Search, RefreshCw, ArrowRightLeft, AlertCircle, Loader2 } from 'lucide-react';
import { fetchWechatAccountList, transformWechatAccount } from '@/api/wechat-accounts';
import { useToast } from '@/components/ui/toast';
@@ -156,7 +155,7 @@ export default function WechatAccounts() {
<div className="flex items-center px-4 py-3">
<button
className="p-2 hover:bg-gray-100 rounded-lg transition-colors"
onClick={() => smartGoBack(navigate)}
onClick={() => navigate(-1)}
>
<ChevronLeft className="h-5 w-5" />
</button>