| | |
| | | <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> |