|
@@ -4,9 +4,9 @@
|
|
|
<!-- 表格头部 操作按钮 -->
|
|
|
<div class="table-header">
|
|
|
<div class="header-button-lf">
|
|
|
- <el-form :model="queryParams" label-width="auto" :inline="true">
|
|
|
+ <el-form :model="pageable" label-width="auto" :inline="true">
|
|
|
<el-form-item label="自动站:">
|
|
|
- <el-select v-model="queryParams.name" filterable placeholder="请搜索自动站" remote reserve-keyword clearable style="width: 200px">
|
|
|
+ <el-select v-model="pageable.as_code_list" multiple collapse-tags filterable placeholder="请搜索自动站" remote reserve-keyword clearable style="width: 300px">
|
|
|
<el-option
|
|
|
v-for="item in platformList"
|
|
|
:key="item.as_code"
|
|
@@ -34,11 +34,16 @@
|
|
|
<el-table stripe ref="tableRef" :border="true" :data="processTableData" size="small" @sort-change="handleSortChange">
|
|
|
<el-table-column align="left" label="序号" width="80px" :show-overflow-tooltip="true">
|
|
|
<template #default="scope">
|
|
|
- {{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
|
|
|
+ {{ (pageable.pageNum - 1) * pageable.pageSize + scope.$index + 1 }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<template v-for="item in columns" :key="item">
|
|
|
<el-table-column v-bind="item" :align="item.align ?? 'left'" :reserve-selection="item.type == 'selection'" :sortable="item.sortable" :show-overflow-tooltip="true">
|
|
|
+ <template #default="scope">
|
|
|
+ <template v-if="item.prop === 'data_time_i'">
|
|
|
+ {{formatDate(scope.row.data_time_i)}}
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
</el-table-column>
|
|
|
</template>
|
|
|
<!-- 无数据 -->
|
|
@@ -61,27 +66,109 @@
|
|
|
<el-tabs tab-position="left" class="demo-tabs" style="height: 100%">
|
|
|
<el-tab-pane label="风">
|
|
|
<div class="container-tag">
|
|
|
- <div class="item-tag">2分钟平均风速</div>
|
|
|
- <div class="item-tag-active">2分钟平均风向</div>
|
|
|
- <div class="item-tag">10分钟平均风速</div>
|
|
|
- <div class="item-tag">10分钟平均风向</div>
|
|
|
- <div class="item-tag">小时最大风速</div>
|
|
|
- <div class="item-tag-active">小时最大风速的风向</div>
|
|
|
- <div class="item-tag">小时极大风速出现时间</div>
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='风'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="温湿度">
|
|
|
+ <div class="container-tag">
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='温湿度'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="气压">
|
|
|
+ <div class="container-tag">
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='气压'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="降水">
|
|
|
+ <div class="container-tag">
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='降水'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="云">
|
|
|
+ <div class="container-tag">
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='云'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="能见度">
|
|
|
+ <div class="container-tag">
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='能见度'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="天气现象">
|
|
|
+ <div class="container-tag">
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='天气现象'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="积雪">
|
|
|
+ <div class="container-tag">
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='积雪'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="地面温度">
|
|
|
+ <div class="container-tag">
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='地面温度'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="大气电场">
|
|
|
+ <div class="container-tag">
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='大气电场'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="闪电">
|
|
|
+ <div class="container-tag">
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='闪电'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="日照">
|
|
|
+ <div class="container-tag">
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='日照'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="总辐射">
|
|
|
+ <div class="container-tag">
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='总辐射'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="日照文">
|
|
|
+ <div class="container-tag">
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='日照文'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ </el-tab-pane>
|
|
|
+ <el-tab-pane label="水文">
|
|
|
+ <div class="container-tag">
|
|
|
+ <template v-for="item in elementList" :key="item.id" >
|
|
|
+ <div v-if="item.data_type==='水文'" :class="item.isSelected?'item-tag-active':'item-tag'" @click="toggleSelection(item)" >{{item.data_name}}</div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
- <el-tab-pane label="温湿度">Config</el-tab-pane>
|
|
|
- <el-tab-pane label="气压">Role</el-tab-pane>
|
|
|
- <el-tab-pane label="降水">Task</el-tab-pane>
|
|
|
- <el-tab-pane label="云">Task</el-tab-pane>
|
|
|
- <el-tab-pane label="能见度">Task</el-tab-pane>
|
|
|
- <el-tab-pane label="天气现象">Task</el-tab-pane>
|
|
|
- <el-tab-pane label="积雪">Task</el-tab-pane>
|
|
|
- <el-tab-pane label="地面温度">Task</el-tab-pane>
|
|
|
- <el-tab-pane label="大气电场">Task</el-tab-pane>
|
|
|
- <el-tab-pane label="闪电">Task</el-tab-pane>
|
|
|
- <el-tab-pane label="日照">Task</el-tab-pane>
|
|
|
- <el-tab-pane label="总辐射">Task</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</div>
|
|
|
<template #footer>
|
|
@@ -99,22 +186,14 @@ import Pagination from "@/components/ProTable/components/Pagination.vue";
|
|
|
import {ref, reactive, onMounted} from "vue";
|
|
|
import { ColumnProps } from "@/components/ProTable/interface";
|
|
|
import {ElTable} from "element-plus";
|
|
|
-import {getPlatformList} from "@/api/modules/allData";
|
|
|
-import { Platform } from "@/api/interface";
|
|
|
+import {getDataItemList, getPlatformList, getRgDataList} from "@/api/modules/allData";
|
|
|
+import { Platform} from "@/api/interface";
|
|
|
const tableRef = ref<InstanceType<typeof ElTable>>();
|
|
|
const dialog = reactive<any>({
|
|
|
visible: false,
|
|
|
title: ''
|
|
|
});
|
|
|
|
|
|
-const handleSetting = () => {
|
|
|
- dialog.title = "列表字段设置"
|
|
|
- dialog.visible = true;
|
|
|
-}
|
|
|
-
|
|
|
-const submitForm = () => {
|
|
|
-
|
|
|
-}
|
|
|
|
|
|
const cancel = () => {
|
|
|
dialog.visible = false;
|
|
@@ -128,34 +207,37 @@ const handleSortChange = ({ column, prop, order }) =>{
|
|
|
}
|
|
|
|
|
|
const pageable = ref<any>({
|
|
|
+ data_type: 0,
|
|
|
+ time_order: 0,
|
|
|
+ as_code_list:undefined,
|
|
|
+ data_items:[],
|
|
|
pageNum: 1,
|
|
|
pageSize: 20,
|
|
|
- total: 22
|
|
|
-});
|
|
|
-
|
|
|
-const queryParams = ref({
|
|
|
- name: "",
|
|
|
- pageNum: 1,
|
|
|
- pageSize: 20,
|
|
|
- total: 22
|
|
|
+ total: 0
|
|
|
});
|
|
|
|
|
|
// 查询功能
|
|
|
const handleQuery = () => {
|
|
|
- queryParams.value.pageNum = 1;
|
|
|
+ pageable.value.pageNum = 1;
|
|
|
+ getList();
|
|
|
+
|
|
|
};
|
|
|
|
|
|
-//搜索功能
|
|
|
+//重置功能
|
|
|
const resetQuery = () => {
|
|
|
- queryParams.value.pageNum = 1;
|
|
|
+ pageable.value.pageNum = 1;
|
|
|
+ pageable.value.as_code_list = undefined
|
|
|
+ getList();
|
|
|
};
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* @description 每页条数改变
|
|
|
* @param {Number} val 当前条数
|
|
|
* @return void
|
|
|
* */
|
|
|
const handleSizeChange = (val: number) => {
|
|
|
+ console.log("=====");
|
|
|
console.log(val);
|
|
|
};
|
|
|
|
|
@@ -165,295 +247,82 @@ const handleSizeChange = (val: number) => {
|
|
|
* @return void
|
|
|
* */
|
|
|
const handleCurrentChange = (val: number) => {
|
|
|
+ pageable.value.pageNum = val
|
|
|
+ console.log("=====1");
|
|
|
console.log(val);
|
|
|
};
|
|
|
|
|
|
-const processTableData = ref([
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
- {
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
- },
|
|
|
+const processTableData = ref([]);
|
|
|
+
|
|
|
+// 表格配置项
|
|
|
+let columns = reactive<ColumnProps[]>([]);
|
|
|
+
|
|
|
+//自定义部分表头
|
|
|
+let customizeColumns= ref<any>([
|
|
|
{
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
+ data_r_table: "SHI_SHI_LIU_YAO_SU_SHU_JU",
|
|
|
+ data_id: 31,
|
|
|
+ data_type: "风",
|
|
|
+ data_item: "DI_2_GE_10_FEN_ZHONG_PING_JUN_FENG_SU",
|
|
|
+ data_name: "第2个10分钟平均风速",
|
|
|
+ data_unit: "m/s",
|
|
|
+ data_h_table: "LI_SHI_LIU_YAO_SU_SHU_JU",
|
|
|
+ data_value: "",
|
|
|
+ data_order: 0,
|
|
|
+ data_condition: 0
|
|
|
},
|
|
|
{
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
+ data_r_table: "SHI_SHI_LIU_YAO_SU_SHU_JU",
|
|
|
+ data_id: 2,
|
|
|
+ data_type: "风",
|
|
|
+ data_item: "ER_FEN_ZHONG_PING_JUN_FENG_XIANG",
|
|
|
+ data_name: "2分钟风向",
|
|
|
+ data_unit: "°",
|
|
|
+ data_h_table: "LI_SHI_LIU_YAO_SU_SHU_JU",
|
|
|
+ data_value: "",
|
|
|
+ data_order: 0,
|
|
|
+ data_condition: 0
|
|
|
},
|
|
|
{
|
|
|
- id: "681913747276782417",
|
|
|
- a: "测试本地",
|
|
|
- b: "RS001",
|
|
|
- c: "公园",
|
|
|
- d: "2024-09-02 22:57",
|
|
|
- e: "0.2",
|
|
|
- f: "150",
|
|
|
- g: "25.3",
|
|
|
- h: "61",
|
|
|
- i: "17.2"
|
|
|
+ data_id: 1,
|
|
|
+ data_r_table: "SHI_SHI_LIU_YAO_SU_SHU_JU",
|
|
|
+ data_type: "风",
|
|
|
+ data_name: "2分钟风速",
|
|
|
+ data_item: "ER_FEN_ZHONG_PING_JUN_FENG_SU",
|
|
|
+ data_unit: "m/s",
|
|
|
+ data_h_table: "LI_SHI_LIU_YAO_SU_SHU_JU",
|
|
|
+ data_value: "",
|
|
|
+ data_order: 0,
|
|
|
+ data_condition: 0
|
|
|
}
|
|
|
-]);
|
|
|
+])
|
|
|
|
|
|
-// 表格配置项
|
|
|
-const columns = reactive<ColumnProps[]>([
|
|
|
- { prop: "a", label: "站名" },
|
|
|
- { prop: "b", label: "站号" },
|
|
|
- { prop: "c", label: "地址" },
|
|
|
- { prop: "d", label: "观测时间" },
|
|
|
- { prop: "e", label: "瞬风风速(m/s)",sortable: true },
|
|
|
- { prop: "f", label: "瞬风方向(°)",sortable: true },
|
|
|
- { prop: "g", label: "气温(℃)",sortable: true },
|
|
|
- { prop: "h", label: "相对湿度(%)" ,sortable: true},
|
|
|
- { prop: "i", label: "漏点温度(℃)",sortable: true }
|
|
|
-]);
|
|
|
|
|
|
+const updateColumns = () => {
|
|
|
+ const column = [
|
|
|
+ { prop: "as_name", label: "站名", width: 100 },
|
|
|
+ { prop: "as_code", label: "站号", width: 100 },
|
|
|
+ { prop: "data_time_i", label: "观测时间", width: 170 }
|
|
|
+ ];
|
|
|
|
|
|
+ const newColumns = customizeColumns.value.map(item => ({
|
|
|
+ prop: item.data_id,
|
|
|
+ label: item.data_name +'('+item.data_unit+')',
|
|
|
+ sortable: true,
|
|
|
+ width: calculateTextLengthInPixels(item.data_name)
|
|
|
+ }));
|
|
|
|
|
|
+ columns = [...column, ...newColumns];
|
|
|
+ pageable.value.data_items = [...customizeColumns.value];
|
|
|
+ getList();
|
|
|
+}
|
|
|
+
|
|
|
+//操作 自定义部分表头
|
|
|
+const copiedCustomizeColumns = ref<any>([...customizeColumns.value]);
|
|
|
|
|
|
// 查询自动站列表
|
|
|
const queryas = ref<Platform>({
|
|
|
- pagesize: 20,
|
|
|
+ pagesize: 50,
|
|
|
currentpage: 1
|
|
|
})
|
|
|
|
|
@@ -461,11 +330,83 @@ const platformList =ref<any>([])
|
|
|
|
|
|
const getPlatforms = async () => {
|
|
|
const { data } = await getPlatformList(queryas.value);
|
|
|
- platformList.value = data
|
|
|
+ platformList.value = data.list
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+// 查询所有人工要素字典表
|
|
|
+const elementList =ref<any>([])
|
|
|
+const getAllRgDataList = async () => {
|
|
|
+ const { data } = await getRgDataList();
|
|
|
+ elementList.value = data.list
|
|
|
+};
|
|
|
+
|
|
|
+const getList = async () => {
|
|
|
+ const { data } = await getDataItemList(pageable.value);
|
|
|
+ processTableData.value = data.list
|
|
|
+ if(processTableData.value){
|
|
|
+ const result = processTableData.value[0].data_list.map(item => ({
|
|
|
+ [item.data_id]: item.data_value
|
|
|
+ }));
|
|
|
+ console.log(result);
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
+// 要素的选中和取消
|
|
|
+const toggleSelection=(item)=> {
|
|
|
+ item.isSelected=!item.isSelected
|
|
|
+ if(item.isSelected){
|
|
|
+ //添加
|
|
|
+ copiedCustomizeColumns.value.push(item)
|
|
|
+ }else {
|
|
|
+ //删除
|
|
|
+ copiedCustomizeColumns.value= copiedCustomizeColumns.value.filter(column => column.data_id !== item.data_id);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+const handleSetting = () => {
|
|
|
+ elementList.value.forEach(element => {
|
|
|
+ const column = copiedCustomizeColumns.value.find(col => col.data_id === element.data_id);
|
|
|
+ if (column) {
|
|
|
+ element.isSelected = true;
|
|
|
+ } else {
|
|
|
+ element.isSelected = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ dialog.title = "列表字段设置"
|
|
|
+ dialog.visible = true;
|
|
|
+}
|
|
|
+
|
|
|
+const submitForm = () => {
|
|
|
+ dialog.visible = false;
|
|
|
+ customizeColumns.value = [...copiedCustomizeColumns.value]
|
|
|
+ updateColumns()
|
|
|
+}
|
|
|
+
|
|
|
+// 大概计算字符串长度
|
|
|
+function calculateTextLengthInPixels(text) {
|
|
|
+ return (text.length * 14)+100;
|
|
|
+}
|
|
|
+
|
|
|
+//时间戳转换为指定格式的日期字符串
|
|
|
+function formatDate(timestamp) {
|
|
|
+ const date = new Date(timestamp * 1000); // 将时间戳转换为毫秒
|
|
|
+ const year = date.getFullYear();
|
|
|
+ const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
|
+ const day = String(date.getDate()).padStart(2, '0');
|
|
|
+ const hours = String(date.getHours()).padStart(2, '0');
|
|
|
+ const minutes = String(date.getMinutes()).padStart(2, '0');
|
|
|
+ return `${year}-${month}-${day} ${hours}:${minutes}`;
|
|
|
+}
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
+ updateColumns()
|
|
|
getPlatforms()
|
|
|
+ getAllRgDataList()
|
|
|
})
|
|
|
|
|
|
+
|
|
|
+
|
|
|
</script>
|