feat(alarm-page): confirm alarm
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { userClient, ndmClient } from '@/apis/client';
|
||||
import type { PageParams, NdmDeviceAlarmLogPageQuery, PageResult, NdmDeviceAlarmLogResultVO } from '@/apis/models';
|
||||
import type { PageParams, NdmDeviceAlarmLogPageQuery, PageResult, NdmDeviceAlarmLogResultVO, NdmDeviceAlarmLogUpdateVO } from '@/apis/models';
|
||||
|
||||
export const postNdmDeviceAlarmLogPage = async (stationCode: string, pageQuery: PageParams<NdmDeviceAlarmLogPageQuery>, signal?: AbortSignal) => {
|
||||
const endpoint = '/api/ndm/ndmDeviceAlarmLog/page';
|
||||
@@ -21,6 +21,24 @@ export const postNdmDeviceAlarmLogPage = async (stationCode: string, pageQuery:
|
||||
return alarmData;
|
||||
};
|
||||
|
||||
export const putNdmDeviceAlarmLog = async (stationCode: string, updateVO: NdmDeviceAlarmLogUpdateVO) => {
|
||||
const endpoint = '/api/ndm/ndmDeviceAlarmLog';
|
||||
if (!stationCode) {
|
||||
const resp = await userClient.put<NdmDeviceAlarmLogResultVO>(endpoint, updateVO);
|
||||
const [err, alarmData] = resp;
|
||||
if (err || !alarmData) {
|
||||
throw err;
|
||||
}
|
||||
return alarmData;
|
||||
}
|
||||
const resp = await ndmClient.put<NdmDeviceAlarmLogResultVO>(`/${stationCode}${endpoint}`, updateVO);
|
||||
const [err, alarmData] = resp;
|
||||
if (err || !alarmData) {
|
||||
throw err;
|
||||
}
|
||||
return alarmData;
|
||||
};
|
||||
|
||||
export const ndmDeviceAlarmLogDefaultExportByTemplate = async (stationCode: string, pageQuery: PageParams<NdmDeviceAlarmLogPageQuery>) => {
|
||||
const endpoint = '/api/ndm/ndmDeviceAlarmLog/defaultExportByTemplate';
|
||||
if (!stationCode) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import type { NdmDeviceAlarmLogResultVO } from '@/apis/models';
|
||||
import { ndmDeviceAlarmLogDefaultExportByTemplate, postNdmDeviceAlarmLogPage } from '@/apis/requests';
|
||||
import { ndmDeviceAlarmLogDefaultExportByTemplate, postNdmDeviceAlarmLogPage, putNdmDeviceAlarmLog } from '@/apis/requests';
|
||||
import { FaultLevel } from '@/enums/fault-level';
|
||||
import { AlarmType } from '@/enums/alarm-type';
|
||||
import { DeviceType, DeviceTypeCode, DeviceTypeName, tryGetDeviceTypeVal, type DeviceTypeVal } from '@/enums/device-type';
|
||||
@@ -10,7 +10,7 @@ import { downloadByData } from '@/utils/download';
|
||||
import { useMutation } from '@tanstack/vue-query';
|
||||
import dayjs from 'dayjs';
|
||||
import type { DataTableColumns, DataTableRowData, PaginationProps, SelectOption, TagProps } from 'naive-ui';
|
||||
import { NForm, NInput, NButton, NSpace, NDataTable, NFormItemGi, NGrid, NSelect, NGridItem, NDatePicker, NTag } from 'naive-ui';
|
||||
import { NForm, NInput, NButton, NSpace, NDataTable, NFormItemGi, NGrid, NSelect, NGridItem, NDatePicker, NTag, NPopconfirm } from 'naive-ui';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { ref, reactive, onBeforeMount, h, computed, watch } from 'vue';
|
||||
|
||||
@@ -173,7 +173,23 @@ const tableColumns: DataTableColumns<NdmDeviceAlarmLogResultVO> = [
|
||||
key: 'alarmConfirm',
|
||||
align: 'center',
|
||||
render: (rowData) => {
|
||||
return rowData.alarmConfirm === '1' ? '已确认' : '未确认';
|
||||
if (rowData.alarmConfirm === '1') {
|
||||
return h(NTag, { type: 'default' }, { default: () => '已确认' });
|
||||
}
|
||||
const { id } = rowData;
|
||||
return h(
|
||||
NPopconfirm,
|
||||
{
|
||||
onPositiveClick: () => {
|
||||
rowData.alarmConfirm = '1';
|
||||
confirmAlarm({ id });
|
||||
},
|
||||
},
|
||||
{
|
||||
trigger: () => h(NButton, { type: 'info', size: 'small' }, { default: () => '确认' }),
|
||||
default: () => '确认告警?',
|
||||
},
|
||||
);
|
||||
},
|
||||
},
|
||||
// { title: '设备ID', key: 'deviceId' },
|
||||
@@ -241,6 +257,26 @@ const onClickQuery = () => {
|
||||
getAlarmList();
|
||||
};
|
||||
|
||||
const { mutate: confirmAlarm } = useMutation({
|
||||
mutationFn: async (params: { id?: string }) => {
|
||||
await putNdmDeviceAlarmLog('', {
|
||||
id: params.id,
|
||||
alarmConfirm: '1',
|
||||
});
|
||||
},
|
||||
onError: (error, variables) => {
|
||||
console.error(error);
|
||||
window.$message.error(error.message);
|
||||
const { id } = variables;
|
||||
if (id) {
|
||||
const alarmLog = tableData.value.find((item) => item.id === id);
|
||||
if (alarmLog) {
|
||||
alarmLog['alarmConfirm'] = '2';
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
const { mutate: downloadTableData, isPending: isDownloading } = useMutation({
|
||||
mutationFn: async () => {
|
||||
const data = await ndmDeviceAlarmLogDefaultExportByTemplate('', {
|
||||
|
||||
Reference in New Issue
Block a user