From 4d08457c4ef494b0b7b93fd8528eb60ca9c091ae Mon Sep 17 00:00:00 2001
From: guoapeng
Date: Wed, 16 Apr 2025 15:10:12 +0800
Subject: [PATCH] =?UTF-8?q?fix:=E8=93=9D=E7=89=99loading?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/pages/system/Setting.tsx | 30 +++++++++++++++++++++++++++---
src/pages/system/types.ts | 3 ++-
2 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/src/pages/system/Setting.tsx b/src/pages/system/Setting.tsx
index 5eb41e1..f31785f 100644
--- a/src/pages/system/Setting.tsx
+++ b/src/pages/system/Setting.tsx
@@ -8,6 +8,7 @@ import { useAppDispatch, useAppSelector } from "../../utils/hooks";
import { updateSystemAccountState, updateSystemOrgState } from '../../store/system/systemSlice';
import {createWebSocket, sharedWsUrl} from "../../services/socket";
import {start, stop, disconnect, connect} from "../../services/ble/ble";
+import {JointContent} from "antd/es/message/interface";
export default function Setting(){
useEffect(()=>{
queryRailData()
@@ -39,7 +40,12 @@ export default function Setting(){
// @ts-ignore
if (data.messageType === "STATE" && data.path === "/api/ble/ble-list") {
// @ts-ignore
- setBleList(data.data)
+ setBleList(data.data.map(item => {
+ return {
+ ...item,
+ loading: item.address === connecting,
+ }
+ }))
}
});
wsClient.connect();
@@ -178,13 +184,31 @@ export default function Setting(){
})
}
+ let connecting = ''
+
function bleConnect(address: string) {
+ setBleList(bleList.map(item => {
+ if (item.address === address) {
+ item.loading = true
+ }
+ return item
+ }))
+ connecting = address;
connect(address).then((res) => {
if (res.status !== 0) {
- message.error(res.data.info);
+ // @ts-ignore
+ message.error(res.data?.info || res.message)
return
}
message.success('蓝牙连接成功')
+ }).finally(() => {
+ setBleList(bleList.map(item => {
+ if (item.address === address) {
+ item.loading = false
+ }
+ return item
+ }))
+ connecting = '';
})
}
@@ -207,7 +231,7 @@ export default function Setting(){
{item.address}
{
- item.connect ? 已连接
:
+ item.connect ? 已连接
:
}
diff --git a/src/pages/system/types.ts b/src/pages/system/types.ts
index ce9c7e8..a000984 100644
--- a/src/pages/system/types.ts
+++ b/src/pages/system/types.ts
@@ -25,6 +25,7 @@ export type systemItem = {
export type bleItem = {
"name": string;
"address": string;
- "connect": boolean
+ "connect": boolean;
+ loading: boolean;
}