From 98247bb0b4da9a322c97867262c1a76c53ace520 Mon Sep 17 00:00:00 2001
From: web <candymxq888@outlook.com>
Date: 星期三, 26 三月 2025 17:05:18 +0800
Subject: [PATCH] fix: 生态报表

---
 src/views/screen/temperature/report/index.vue |  102 +++++++++++++++++++++++++-------------------------
 1 files changed, 51 insertions(+), 51 deletions(-)

diff --git a/src/views/screen/temperature/report/index.vue b/src/views/screen/temperature/report/index.vue
index 061c394..47c0271 100644
--- a/src/views/screen/temperature/report/index.vue
+++ b/src/views/screen/temperature/report/index.vue
@@ -1,91 +1,91 @@
 <script setup>
-import {ref} from "vue";
+import {ref, onMounted} from "vue";
+import {getTemperaturePointList} from "@/api/screen/index.js";
+import {getFlowReportList} from "@/api/screen/report/index.js";
 import Table from '@/components/Table/index.vue'
 
-const selectType = ref(1);
-const typeOption = ref([
-    { label: '水电站流量监测点', value: 1 },
-    { label: '新扎口流量监测点', value: 2 },
+const cascaderOption = { label: 'pointName', value: 'id', children: 'childrenList', checkStrictly: true, expandTrigger: 'hover', emitPath: false }; //级联选择器配置
+const typeOption = ref([])
+const timeOption = ref([
+    { label: '小时', value: 1 },
+    { label: '日', value: 2 },
+    { label: '月', value: 3 },
+    { label: '季度', value: 4 },
+    { label: '年', value: 5 },
 ])
-const time = ref()
+const timeVal = ref([])
+const searchData = reactive({
+    pointId: '',
+    dateType: 2,
+    createTimeRange: ''
+})
+const tableRef = ref(null); //表格实例
 let tableHead = [
-    { prop: 'code', label: '流速 (m/s)' },
-    { prop: 'shebei', label: '瞬时流量 (m³/h)', },
-    { prop: 'content', label: '累计流量 (m³)' },
-    { prop: 'sure', label: '采集点' },
-    { prop: 'time', label: '采集时间' },
+    { prop: 'flowVelocity', label: '流速 (m/s)' },
+    { prop: 'newFlow', label: '瞬时流量 (m³/h)', },
+    { prop: 'totalFlow', label: '累计流量 (m³)' },
+    { prop: 'pointName', label: '采集点' },
+    { prop: 'uploadTimeView', label: '采集时间' },
 ]
 
-const getTableData = () => {
-    return new Promise(resolve => {
-        let arr = {
-            data:{
-                list: [
-                    { code: '201', shebei: '雷达水位计', content: '设备离线', time: '2025-02-08', sure: 1 },
-                    { code: '202', shebei: '雷达水位计', content: '设备离线', time: '2025-02-08', sure: 2 },
-                    { code: '203', shebei: '雷达水位计', content: '设备离线', time: '2025-02-08', sure: 3 },
-                    { code: '204', shebei: '雷达水位计', content: '设备离线', time: '2025-02-08', sure: 1 },
-                    { code: '205', shebei: '雷达水位计', content: '设备离线', time: '2025-02-08', sure: 1 },
-                    { code: '206', shebei: '雷达水位计', content: '设备离线', time: '2025-02-08', sure: 1 },
-                    { code: '207', shebei: '雷达水位计', content: '设备离线', time: '2025-02-08', sure: 1 },
-                    { code: '208', shebei: '雷达水位计', content: '设备离线', time: '2025-02-08', sure: 2 },
-                    { code: '209', shebei: '雷达水位计', content: '设备离线', time: '2025-02-08', sure: 3 },
-                    { code: '2010', shebei: '雷达水位计', content: '设备离线', time: '2025-02-08', sure: 3 },
-                ]
-            },
-            total: 30,
-        }
-        resolve(arr)
+// 获取监测点
+const getPoint = () => {
+    getTemperaturePointList().then(res => {
+        typeOption.value = res.data
     })
 }
 
+// 搜索数据
+const searchTable = () => {
+    if(timeVal.value && timeVal.value.length > 0) {
+        searchData.createTimeRange = timeVal.value[0] + '~' + timeVal.value[1]
+    } else {
+        searchData.createTimeRange = ''
+    }
+    tableRef.value.getData()
+}
+
+onMounted(() => {
+    getPoint()
+})
 </script>
 
 <template>
     <div class="report">
         <div class="report-tool">
+            <el-cascader size="large" v-model="searchData.pointId" :options="typeOption" :show-all-levels="false" :props="cascaderOption" clearable />
             <el-select
-                v-model="selectType"
+                v-model="searchData.dateType"
                 class="tool-select"
                 size="large"
-                placeholder="Select"
-                style="width: 20rem"
+                placeholder="请选择"
+                clearable
+                style="width: 15rem"
             >
                 <el-option
-                    v-for="item in typeOption"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
-                />
-            </el-select>
-            <el-select
-                v-model="selectType"
-                class="tool-select"
-                size="large"
-                placeholder="Select"
-                style="width: 20rem"
-            >
-                <el-option
-                    v-for="item in typeOption"
+                    v-for="item in timeOption"
                     :key="item.value"
                     :label="item.label"
                     :value="item.value"
                 />
             </el-select>
             <el-date-picker
-                v-model="time"
+                v-model="timeVal"
                 type="datetimerange"
                 format="YYYY-MM-DD HH:mm:ss"
+                value-format="YYYY-MM-DD HH:mm:ss"
                 size="large"
                 style="width: 30rem"
+                clearable
                 range-separator="至"
                 start-placeholder="开始时间"
                 end-placeholder="结束时间"
             />
+            <el-button type="primary" size="large" style="width: 6rem" @click="searchTable">搜索</el-button>
             <el-button type="success" size="large" style="width: 6rem">一键导出</el-button>
         </div>
         <div class="report-table">
-            <Table :getList="getTableData" :headList="tableHead"></Table>
+            <Table ref="tableRef" :getList="getFlowReportList" :headList="tableHead" :searchData="searchData"></Table>
         </div>
     </div>
 </template>

--
Gitblit v1.9.3