|
@@ -116,9 +116,11 @@
|
|
|
import { onMounted, reactive, ref, watch } from "vue";
|
|
|
import { ElMessage, ElTable } from 'element-plus'
|
|
|
import { alarmFilterModel_SearchFilter, alarmFilterModel, PageInputAlarmFilterModel, PushRulesQuery } from "/@/api/admin/reportManagement/alarm/alarmDto";
|
|
|
-import { AlarmApi,PushRulesApi } from "/@/api/admin/reportManagement/alarm/alarmApi";
|
|
|
+import { AlarmApi } from "/@/api/admin/reportManagement/alarm/alarmApi";
|
|
|
import { useDynamicPageSize } from "/@/composables/useDynamicPageSize";
|
|
|
import router from "/@/router";
|
|
|
+import { PushRulesApi } from "/@/api/admin/reportManagement/alarm/alarmApi";
|
|
|
+import { ResultOutputBoolean } from "/@/api/admin/reportManagement/alarm/alarmDto";
|
|
|
|
|
|
const pushRulesApi = new PushRulesApi();
|
|
|
const tableRef = ref<InstanceType<typeof ElTable>>(); // 添加表格引用
|
|
@@ -270,50 +272,39 @@ const toList = () =>{
|
|
|
* 执行推送规则
|
|
|
*/
|
|
|
const handlePushRules = async () => {
|
|
|
- // 获取选中的行
|
|
|
const selection = tableRef.value?.getSelectionRows() || [];
|
|
|
-
|
|
|
+
|
|
|
if (selection.length === 0) {
|
|
|
- ElMessage.warning('请选择需要执行推送规则的报警记录');
|
|
|
+ ElMessage.warning('请至少选择一行数据');
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
- // 提取选中行的ID
|
|
|
- const alarmIds = selection.map(row => row.alarmHistoryID).filter(id => id);
|
|
|
-
|
|
|
- if (alarmIds.length === 0) {
|
|
|
- ElMessage.warning('选中的记录中没有有效的报警ID');
|
|
|
+
|
|
|
+ const alarmHistoryIDs: string[] = selection
|
|
|
+ .map(row => row.alarmHistoryID)
|
|
|
+ .filter((id): id is string => !!id);
|
|
|
+
|
|
|
+ if (alarmHistoryIDs.length === 0) {
|
|
|
+ ElMessage.warning('所选项中没有有效的报警历史ID');
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ const idsString = alarmHistoryIDs.join(',');
|
|
|
+
|
|
|
try {
|
|
|
- // 显示加载状态
|
|
|
- Data.loading = true;
|
|
|
-
|
|
|
- // 构建请求参数
|
|
|
- const queryParams: PushRulesQuery = {
|
|
|
- alarmHistoryID: alarmIds.join(','), // 将ID数组转为逗号分隔的字符串
|
|
|
- sdate: Data.Filter.CreateBeginTime || '', // 使用筛选器中的开始时间
|
|
|
- edate: Data.Filter.CreateEndTime || '', // 使用筛选器中的结束时间
|
|
|
- };
|
|
|
-
|
|
|
- // 调用API执行推送规则
|
|
|
- const result = await pushRulesApi.getPushRulesList(queryParams);
|
|
|
-
|
|
|
- // 处理成功响应
|
|
|
- if(result.success=true){
|
|
|
- ElMessage.success('推送规则执行成功');
|
|
|
- }
|
|
|
+ const res = await pushRulesApi.executePushRuleImmediately(undefined, {
|
|
|
+ query: {
|
|
|
+ alarmHistoryID: idsString,
|
|
|
+ },
|
|
|
+ });
|
|
|
|
|
|
- // 可以在这里添加其他处理逻辑,例如刷新列表
|
|
|
- await init();
|
|
|
-
|
|
|
+ if (res.success && res.data) {
|
|
|
+ ElMessage.success(`推送成功`);
|
|
|
+ } else {
|
|
|
+ ElMessage.error(`推送失败:${res.msg || '未知错误'}`);
|
|
|
+ }
|
|
|
} catch (error: any) {
|
|
|
- // 处理错误
|
|
|
- ElMessage.error(`推送规则执行失败: ${error.message || '未知错误'}`);
|
|
|
- } finally {
|
|
|
- // 隐藏加载状态
|
|
|
- Data.loading = false;
|
|
|
+ console.error('推送失败', error);
|
|
|
+ ElMessage.error('报警推送过程中发生异常');
|
|
|
}
|
|
|
};
|
|
|
|