From ebd0ec4f51288042b6fc5bf714b1febbb63cfacc Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Fri, 09 Jan 2026 18:03:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
applications/drone-command/src/views/dataCockpit/components/HistoryWarning.vue | 123 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 123 insertions(+), 0 deletions(-)
diff --git a/applications/drone-command/src/views/dataCockpit/components/HistoryWarning.vue b/applications/drone-command/src/views/dataCockpit/components/HistoryWarning.vue
new file mode 100644
index 0000000..01d5958
--- /dev/null
+++ b/applications/drone-command/src/views/dataCockpit/components/HistoryWarning.vue
@@ -0,0 +1,123 @@
+<template>
+ <div
+ class="history-warning"
+ v-loading="loading"
+ element-loading-background="rgba(5, 5, 15, 0.6)"
+ element-loading-text="加载中..."
+ >
+ <!-- 搜索区(设计稿红框) -->
+ <div class="search-box">
+ <!-- 关键字 -->
+ <el-input v-model="query.keyword" class="ztzf-data-cockpit-search-input" placeholder="请输入数据名称" clearable
+ @keyup.enter="onSearch">
+ </el-input>
+
+ <!-- 日期范围 -->
+ <el-date-picker v-model="query.dateRange"
+ class="ztzf-data-cockpit-date-picker"
+ popper-class="ztzf-data-cockpit-date-picker-popper"
+ type="daterange"
+ range-separator="~"
+ start-placeholder="创建开始日期" end-placeholder="结束日期" format="YYYY年MM月DD日" value-format="YYYY-MM-DD"
+ :clearable="true" @change="onSearch">
+ </el-date-picker>
+ </div>
+
+ <!-- 列表 -->
+ <div class="list-content">
+ <EmptyState v-if="!filteredList.length" />
+ <HistoryTemplate
+ v-else
+ v-for="(item, ind) in filteredList"
+ :key="item.id || ind"
+ :data="item"
+ @click="onCardClick"
+ />
+ </div>
+ </div>
+</template>
+
+<script setup>
+import { ref, computed, onMounted } from 'vue'
+import HistoryTemplate from './templateComponents/HistoryTemplate.vue'
+import { alarmLogApi } from '@/api/dataCockpit'
+import EmptyState from './EmptyState.vue'
+
+const historyWarningData = ref([])
+const loading = ref(false)
+const minLoadingMs = 400
+
+// 查询条件:keyword + dateRange(YYYY-MM-DD数组)
+const query = ref({
+ keyword: '',
+ dateRange: [] // [start, end]
+})
+
+const onSearch = () => {
+ fetchHistoryWarning()
+}
+
+const onCardClick = (item) => {
+ console.log('点击无人机卡片:', item.id)
+}
+
+const fetchHistoryWarning = async () => {
+ const startAt = Date.now()
+ loading.value = true
+ try {
+ const [startTime, endTime] = query.value.dateRange || []
+ const keyword = (query.value.keyword || '').trim()
+ const params = {
+ current: 1,
+ size: 20,
+ alarmType: '2',
+ startTime,
+ endTime,
+ droneName: keyword || undefined,
+ droneSerialNo: keyword || undefined
+ }
+ const res = await alarmLogApi(params)
+ const records = res?.data?.data?.records ?? []
+ historyWarningData.value = records
+ } finally {
+ const elapsed = Date.now() - startAt
+ if (elapsed < minLoadingMs) {
+ await new Promise((resolve) => setTimeout(resolve, minLoadingMs - elapsed))
+ }
+ loading.value = false
+ }
+}
+
+const filteredList = computed(() => {
+ return historyWarningData.value
+})
+
+onMounted(() => {
+ fetchHistoryWarning()
+})
+</script>
+
+<style scoped lang="scss">
+.history-warning {
+ display: flex;
+ flex-direction: column;
+ width: 100%;
+ height: 100%;
+
+ .search-box {
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+
+ ::v-deep(.ztzf-data-cockpit-date-picker) {
+ width: 100% !important;
+ }
+ }
+
+ .list-content {
+ height: 0;
+ flex: 1;
+ }
+}
+
+</style>
--
Gitblit v1.9.3