feat(alarm-page): confirm alarm
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { userClient, ndmClient } from '@/apis/client';
|
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) => {
|
export const postNdmDeviceAlarmLogPage = async (stationCode: string, pageQuery: PageParams<NdmDeviceAlarmLogPageQuery>, signal?: AbortSignal) => {
|
||||||
const endpoint = '/api/ndm/ndmDeviceAlarmLog/page';
|
const endpoint = '/api/ndm/ndmDeviceAlarmLog/page';
|
||||||
@@ -21,6 +21,24 @@ export const postNdmDeviceAlarmLogPage = async (stationCode: string, pageQuery:
|
|||||||
return alarmData;
|
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>) => {
|
export const ndmDeviceAlarmLogDefaultExportByTemplate = async (stationCode: string, pageQuery: PageParams<NdmDeviceAlarmLogPageQuery>) => {
|
||||||
const endpoint = '/api/ndm/ndmDeviceAlarmLog/defaultExportByTemplate';
|
const endpoint = '/api/ndm/ndmDeviceAlarmLog/defaultExportByTemplate';
|
||||||
if (!stationCode) {
|
if (!stationCode) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import type { NdmDeviceAlarmLogResultVO } from '@/apis/models';
|
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 { FaultLevel } from '@/enums/fault-level';
|
||||||
import { AlarmType } from '@/enums/alarm-type';
|
import { AlarmType } from '@/enums/alarm-type';
|
||||||
import { DeviceType, DeviceTypeCode, DeviceTypeName, tryGetDeviceTypeVal, type DeviceTypeVal } from '@/enums/device-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 { useMutation } from '@tanstack/vue-query';
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import type { DataTableColumns, DataTableRowData, PaginationProps, SelectOption, TagProps } from 'naive-ui';
|
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 { storeToRefs } from 'pinia';
|
||||||
import { ref, reactive, onBeforeMount, h, computed, watch } from 'vue';
|
import { ref, reactive, onBeforeMount, h, computed, watch } from 'vue';
|
||||||
|
|
||||||
@@ -173,7 +173,23 @@ const tableColumns: DataTableColumns<NdmDeviceAlarmLogResultVO> = [
|
|||||||
key: 'alarmConfirm',
|
key: 'alarmConfirm',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
render: (rowData) => {
|
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' },
|
// { title: '设备ID', key: 'deviceId' },
|
||||||
@@ -241,6 +257,26 @@ const onClickQuery = () => {
|
|||||||
getAlarmList();
|
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({
|
const { mutate: downloadTableData, isPending: isDownloading } = useMutation({
|
||||||
mutationFn: async () => {
|
mutationFn: async () => {
|
||||||
const data = await ndmDeviceAlarmLogDefaultExportByTemplate('', {
|
const data = await ndmDeviceAlarmLogDefaultExportByTemplate('', {
|
||||||
|
|||||||
Reference in New Issue
Block a user