diff --git a/src/components/theme-switch.vue b/src/components/global/theme-switch.vue
similarity index 100%
rename from src/components/theme-switch.vue
rename to src/components/global/theme-switch.vue
diff --git a/src/layouts/app-layout.vue b/src/layouts/app-layout.vue
index 670e02c..cd45504 100644
--- a/src/layouts/app-layout.vue
+++ b/src/layouts/app-layout.vue
@@ -5,34 +5,77 @@ function renderIcon(icon: Component): () => VNode {
@@ -119,7 +176,19 @@ const toDashboardPage = () => router.push('/');
-
+
diff --git a/src/pages/alarm-page.vue b/src/pages/alarm-page.vue
index 9ec1df9..fd857eb 100644
--- a/src/pages/alarm-page.vue
+++ b/src/pages/alarm-page.vue
@@ -3,6 +3,7 @@ import type { NdmDeviceAlarmLogResultVO } from '@/apis/models';
import { ndmDeviceAlarmLogDefaultExportByTemplate, postNdmDeviceAlarmLogPage } from '@/apis/requests';
import { JAVA_INTEGER_MAX_VALUE } from '@/constants';
import { DeviceType, DeviceTypeCode, DeviceTypeName, type DeviceTypeVal } from '@/enums/device-type';
+import { useCurrentAlarmsStore } from '@/stores/current-alarms';
import { useStationStore } from '@/stores/station';
import { downloadByData } from '@/utils/download';
import { useMutation } from '@tanstack/vue-query';
@@ -10,7 +11,16 @@ import dayjs from 'dayjs';
import type { DataTableColumns, DataTableRowData, PaginationProps, SelectOption } from 'naive-ui';
import { NForm, NInput, NButton, NSpace, NDataTable, NFormItemGi, NGrid, NSelect, NGridItem, NDatePicker } from 'naive-ui';
import { storeToRefs } from 'pinia';
-import { ref, reactive, onBeforeMount, h, computed } from 'vue';
+import { ref, reactive, onBeforeMount, h, computed, watch } from 'vue';
+
+const currentAlarmsStore = useCurrentAlarmsStore();
+const { needReload } = storeToRefs(currentAlarmsStore);
+watch(needReload, async (newVal) => {
+ if (newVal) {
+ needReload.value = false;
+ onClickReset();
+ }
+});
const stationStore = useStationStore();
const { stationList } = storeToRefs(stationStore);
@@ -27,7 +37,7 @@ const searchFields = reactive({
deviceType_in: [] as string[],
deviceName_like: '',
// deviceId_likeRight: '',
- alarmDate: [dayjs().startOf('date').subtract(7, 'day').valueOf(), dayjs().endOf('date').valueOf()] as [number, number],
+ alarmDate: [dayjs().startOf('date').valueOf(), dayjs().endOf('date').valueOf()] as [number, number],
});
const resetSearchFields = () => {
searchFields.stationCode_in = [];
@@ -35,6 +45,21 @@ const resetSearchFields = () => {
searchFields.deviceName_like = '';
searchFields.alarmDate = [dayjs().startOf('date').subtract(7, 'day').valueOf(), dayjs().endOf('date').valueOf()];
};
+const onDateChange = (value: [number, number] | null) => {
+ if (!value || value.length !== 2) {
+ return;
+ }
+ const [start, end] = value;
+ const diffDays = dayjs(end).diff(dayjs(start), 'day');
+ if (diffDays > 7) {
+ // 如果超过7天,自动调整结束时间
+ const adjustedEnd = dayjs(start).add(7, 'day').valueOf();
+ searchFields.alarmDate = [start, adjustedEnd];
+ window.$message.warning('时间范围不能超过7天,已自动调整');
+ } else {
+ searchFields.alarmDate = value;
+ }
+};
const tableColumns: DataTableColumns = [
{ title: '告警流水号', key: 'alarmNo' },
@@ -205,7 +230,7 @@ onBeforeMount(() => getAlarmList());
-
+
diff --git a/src/pages/login-page.vue b/src/pages/login-page.vue
index cb63ebf..f0efebf 100644
--- a/src/pages/login-page.vue
+++ b/src/pages/login-page.vue
@@ -1,7 +1,7 @@