Skip to content

Commit f451cc5

Browse files
committed
1. 修复编辑配置修改乘法系数或加法系数时,modbus协议对只读测点调用写入方法的bug
2. 对IEC104协议客户端和服务端增加异步支持 3. 修复前端错误提示显示两次的问题
1 parent db61823 commit f451cc5

23 files changed

+318
-140
lines changed

data/ems.db

0 Bytes
Binary file not shown.

front/src/components/device/AddDeviceDialog.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,8 @@ const handleSubmit = async () => {
170170
dialogVisible.value = false;
171171
window.location.reload();
172172
} catch (e: any) {
173-
ElMessage.error(e.message || '操作失败');
173+
console.error(e.message || '操作失败');
174+
// error message is handled by global interceptor
174175
} finally { loading.value = false; }
175176
});
176177
};

front/src/components/device/AddDeviceGroupDialog.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,8 @@ const handleSubmit = async () => {
145145
emit('success');
146146
handleClose();
147147
} catch (e: any) {
148-
ElMessage.error(e.message || '操作失败');
148+
console.error(e.message || '操作失败');
149+
// error message is handled by global interceptor
149150
} finally { loading.value = false; }
150151
});
151152
};

front/src/components/device/Slave.vue

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -544,15 +544,10 @@ const handleManualRead = async () => {
544544
}
545545
546546
// 检查设备连接状态
547-
try {
548-
const deviceInfo = await getDeviceInfo(routeName.value);
549-
const serverStatus = deviceInfo?.get("server_status");
550-
if (!serverStatus) {
551-
ElMessage.error("设备未连接,请先启动设备后再进行读取操作");
552-
return;
553-
}
554-
} catch (e) {
555-
ElMessage.error("无法获取设备状态,请检查后端服务");
547+
const deviceInfo = await getDeviceInfo(routeName.value);
548+
const serverStatus = deviceInfo?.get("server_status");
549+
if (!serverStatus) {
550+
ElMessage.error("设备未连接,请先启动设备后再进行读取操作");
556551
return;
557552
}
558553

front/src/components/device/Table.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,8 @@ const handleReadPoint = async (pointCode: string) => {
407407
ElMessage.error('读取失败,请检查连接状态');
408408
}
409409
} catch (e) {
410-
ElMessage.error('读取失败');
410+
console.error('读取失败:', e);
411+
// error message is handled by global interceptor
411412
} finally {
412413
readingPoints[pointCode] = false;
413414
}
@@ -442,7 +443,6 @@ const handleDeletePoint = async (pointCode: string) => {
442443
ElMessage.error('删除失败');
443444
}
444445
} catch (e) {
445-
ElMessage.error('删除失败');
446446
} finally {
447447
deletingPoints[pointCode] = false;
448448
}

front/src/components/point/PointChangeHistory.vue

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,8 @@ const loadHistory = async () => {
114114
}
115115
}
116116
} catch (error: any) {
117-
ElMessage.error('加载变更历史失败: ' + error.message);
117+
console.error('加载变更历史失败:', error);
118+
// error message is handled by global interceptor
118119
} finally {
119120
loading.value = false;
120121
}
@@ -128,7 +129,8 @@ const handleConfigChange = async () => {
128129
loadHistory();
129130
}
130131
} catch (error: any) {
131-
ElMessage.error('更新配置失败: ' + error.message);
132+
console.error('更新配置失败:', error);
133+
// error message is handled by global interceptor
132134
}
133135
};
134136
@@ -145,7 +147,8 @@ const handleClear = () => {
145147
loadHistory();
146148
}
147149
} catch (error: any) {
148-
ElMessage.error('清空失败: ' + error.message);
150+
console.error('清空失败:', error);
151+
// error message is handled by global interceptor
149152
}
150153
}).catch(() => {});
151154
};

front/src/components/point/PointMappingConfig.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ const fetchMapping = async () => {
211211
}
212212
} catch (error) {
213213
console.error(error);
214-
ElMessage.error('获取映射信息失败');
214+
// error message is handled by global interceptor
215215
} finally {
216216
loading.value = false;
217217
}
@@ -324,7 +324,7 @@ const saveMapping = async () => {
324324
fetchMapping();
325325
} catch (error) {
326326
console.error(error);
327-
ElMessage.error('保存失败');
327+
// error message is handled by global interceptor
328328
} finally {
329329
saving.value = false;
330330
}
@@ -341,7 +341,7 @@ const handleDeleteMapping = async () => {
341341
emit('update-success');
342342
} catch (error) {
343343
console.error(error);
344-
ElMessage.error('删除失败');
344+
// error message is handled by global interceptor
345345
}
346346
};
347347

front/src/components/point/PointSimulator.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ const loadPointInfo = async () => {
197197
}
198198
} catch (error) {
199199
console.error('加载点信息失败:', error);
200-
ElMessage.error('加载点信息失败');
200+
// error message is handled by global interceptor
201201
}
202202
};
203203
@@ -240,7 +240,7 @@ const saveSettings = async () => {
240240
}
241241
} catch (error) {
242242
console.error('保存设置失败:', error);
243-
ElMessage.error('保存设置失败');
243+
// error message is handled by global interceptor
244244
}
245245
};
246246

front/src/views/Device.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ const toggleDevice = async () => {
166166
}
167167
} catch (error: any) {
168168
console.error(error);
169-
ElMessage.error(error.message || "操作失败");
169+
// error message is handled by global interceptor
170170
}
171171
finally { isDeviceProcessing.value = false; }
172172
};
@@ -188,7 +188,7 @@ const fetchDeviceInfo = async () => {
188188
simulationStatusStr.value = simuStatus === true ? "运行中" : "停止";
189189
} catch (error: any) {
190190
console.error(error);
191-
ElMessage.error("获取设备信息失败: " + (error.message || "未知错误"));
191+
// error message is handled by global interceptor
192192
}
193193
};
194194

front/src/views/SideBar.vue

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,8 @@ const fetchDeviceGroupTree = async () => {
215215
});
216216
}
217217
} catch (error: any) {
218-
ElMessage.error('获取设备组失败: ' + error.message);
218+
console.error('获取设备组失败:', error);
219+
// error message is handled by global interceptor
219220
}
220221
};
221222
@@ -264,21 +265,15 @@ const handleGroupCommand = async (command: string, data: TreeNode) => {
264265
};
265266
266267
const handleBatchOperation = async (groupId: number, operation: 'start' | 'stop' | 'reset') => {
267-
try {
268268
await batchDeviceOperation(groupId, operation);
269269
ElMessage.success(`${operation === 'start' ? '启动' : '停止'}成功`);
270-
} catch (error: any) {
271-
ElMessage.error('操作失败: ' + error.message);
272-
}
273270
};
274271
275272
const handleDeleteGroup = async (data: TreeNode) => {
276-
try {
277273
await ElMessageBox.confirm(`确定删除组 "${data.name}"?`, '提示', { type: 'warning' });
278274
await deleteDeviceGroup(data.id, false);
279275
ElMessage.success('成功');
280276
await fetchDeviceGroupTree();
281-
} catch {}
282277
};
283278
284279
const handleEditDevice = (data: TreeNode) => handleEditDeviceByName(data.name);
@@ -292,14 +287,12 @@ const handleEditDeviceByName = async (deviceName: string) => {
292287
293288
const handleDeleteDevice = (data: TreeNode) => handleDeleteDeviceByName(data.name);
294289
const handleDeleteDeviceByName = async (deviceName: string) => {
295-
try {
296-
await ElMessageBox.confirm(`确定删除 "${deviceName}"?`, '提示', { type: 'warning' });
297-
const channel = (await getChannelList()).find(c => c.name === deviceName);
298-
if (channel) {
299-
await deleteChannel(channel.id);
300-
window.location.reload();
301-
}
302-
} catch {}
290+
await ElMessageBox.confirm(`确定删除 "${deviceName}"?`, '提示', { type: 'warning' });
291+
const channel = (await getChannelList()).find(c => c.name === deviceName);
292+
if (channel) {
293+
await deleteChannel(channel.id);
294+
window.location.reload();
295+
}
303296
};
304297
305298
const handleDeviceAdded = async (deviceName: string, isEdit?: boolean, oldName?: string) => {

0 commit comments

Comments
 (0)