|
@@ -26,7 +26,7 @@
|
|
}}</div>
|
|
}}</div>
|
|
<div class="top_item">经度:{{ selectPlatform?.as_lon }}</div>
|
|
<div class="top_item">经度:{{ selectPlatform?.as_lon }}</div>
|
|
<div class="top_item">纬度:{{ selectPlatform?.as_lat }}</div>
|
|
<div class="top_item">纬度:{{ selectPlatform?.as_lat }}</div>
|
|
- <div class="top_item">观测时间:{{ formatDate(dataItemInfo?.data_time_i, 2) }}</div>
|
|
|
|
|
|
+ <div class="top_item">观测时间:{{dataItemInfo&&dataItemInfo.data_time_i? formatDate(dataItemInfo?.data_time_i, 2):'--' }}</div>
|
|
</div>
|
|
</div>
|
|
<div class="header-button-ri">
|
|
<div class="header-button-ri">
|
|
<slot name="toolButton">
|
|
<slot name="toolButton">
|
|
@@ -43,15 +43,15 @@
|
|
<div class="mt15">
|
|
<div class="mt15">
|
|
<div style="height: 200px;">
|
|
<div style="height: 200px;">
|
|
|
|
|
|
- <div v-if="dataItemInfo && dataItemInfo[601] === '--' && dataItemInfo[602] === '--' && dataItemInfo[603] === '--' && dataItemInfo[604] === '--' && dataItemInfo[605] === '--'"
|
|
|
|
- style="text-align: center;margin-bottom: 40px;padding-top: 10px;font-weight: bold;">
|
|
|
|
- 无明显天气现象</div>
|
|
|
|
- <div class="wweatherBox" style="margin-bottom: 20px;padding-top: 10px;" v-else>
|
|
|
|
- <div class="weatherItem" v-if="dataItemInfo && dataItemInfo[601] != '--'">{{
|
|
|
|
- getYenSymbolLaterCharacters(dataItemInfo.data_list.find(item => item.data_id ==
|
|
|
|
- 601)?.remark) }}
|
|
|
|
|
|
+ <!-- <div v-if="dataItemInfo && dataItemInfo[601] === '--' && dataItemInfo[602] === '--' && dataItemInfo[603] === '--' && dataItemInfo[604] === '--' && dataItemInfo[605] === '--'" -->
|
|
|
|
+
|
|
|
|
+ <div class="wweatherBox" style="padding-top: 10px;"
|
|
|
|
+ v-if="dangerWeather && dangerWeather.length > 0"
|
|
|
|
+ :style="{ marginBottom: dangerWeather && dangerWeather.length <= 2 ? '40px' : '20px' }">
|
|
|
|
+ <div class="weatherItem" v-for="item in dangerWeather" :key="item.data_id">{{
|
|
|
|
+ getYenSymbolLaterCharacters(item.remark) }}
|
|
</div>
|
|
</div>
|
|
- <div class="weatherItem" v-if="dataItemInfo && dataItemInfo[602] != '--'">{{
|
|
|
|
|
|
+ <!-- <div class="weatherItem" v-if="dataItemInfo && dataItemInfo[602] != '--'">{{
|
|
getYenSymbolLaterCharacters(dataItemInfo.data_list.find(item => item.data_id ==
|
|
getYenSymbolLaterCharacters(dataItemInfo.data_list.find(item => item.data_id ==
|
|
602)?.remark) }}
|
|
602)?.remark) }}
|
|
</div>
|
|
</div>
|
|
@@ -66,9 +66,12 @@
|
|
<div class="weatherItem" v-if="dataItemInfo && dataItemInfo[605] != '--'">{{
|
|
<div class="weatherItem" v-if="dataItemInfo && dataItemInfo[605] != '--'">{{
|
|
getYenSymbolLaterCharacters(dataItemInfo.data_list.find(item => item.data_id ==
|
|
getYenSymbolLaterCharacters(dataItemInfo.data_list.find(item => item.data_id ==
|
|
605)?.remark) }}
|
|
605)?.remark) }}
|
|
- </div>
|
|
|
|
|
|
+ </div> -->
|
|
|
|
|
|
</div>
|
|
</div>
|
|
|
|
+ <div v-else
|
|
|
|
+ style="text-align: center;margin-bottom: 40px;padding-top: 10px;font-weight: bold;">
|
|
|
|
+ 无明显天气现象</div>
|
|
|
|
|
|
<div style="font-weight: bold;">危险天气</div>
|
|
<div style="font-weight: bold;">危险天气</div>
|
|
<div v-if="!weatherInfoArr || weatherInfoArr.length <= 0"
|
|
<div v-if="!weatherInfoArr || weatherInfoArr.length <= 0"
|
|
@@ -87,10 +90,10 @@
|
|
<div style="font-weight: bold;">瞬时风 ( m/s )</div>
|
|
<div style="font-weight: bold;">瞬时风 ( m/s )</div>
|
|
<div class="mt15 box1">
|
|
<div class="mt15 box1">
|
|
<div ref="windSpeed" class="ve-ring" style="height: 200px"></div>
|
|
<div ref="windSpeed" class="ve-ring" style="height: 200px"></div>
|
|
- <div class="icon icon1" v-if="dataItemInfo && dataItemInfo[9]">{{ dataItemInfo[9] }}
|
|
|
|
|
|
+ <div class="icon icon1">{{ dataItemInfo&&dataItemInfo[9]?dataItemInfo[9]:'--' }}
|
|
<span>°</span>
|
|
<span>°</span>
|
|
</div>
|
|
</div>
|
|
- <div class="icon icon2" v-if="dataItemInfo && dataItemInfo[8]">{{ dataItemInfo[8] }}
|
|
|
|
|
|
+ <div class="icon icon2" >{{ dataItemInfo&&dataItemInfo[8]?dataItemInfo[8]:'--' }}
|
|
<span>m/s</span>
|
|
<span>m/s</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -173,12 +176,12 @@
|
|
</el-row>
|
|
</el-row>
|
|
|
|
|
|
<el-row :gutter="15">
|
|
<el-row :gutter="15">
|
|
- <el-col :xs="12" :sm="8" :md="8" :lg="4" :xl="4" v-for="item in selectElement" :key="item.data_id">
|
|
|
|
|
|
+ <el-col :xs="12" :sm="8" :md="8" :lg="4" :xl="4" v-for="item in selectElement.length>0?selectElement:customizeColumns" :key="item.data_id">
|
|
<div class="chart_item info_box zhuti">
|
|
<div class="chart_item info_box zhuti">
|
|
<div class="info_title">{{ item.data_name }} ( {{ item.data_unit }} )</div>
|
|
<div class="info_title">{{ item.data_name }} ( {{ item.data_unit }} )</div>
|
|
<div class="mt15 ">
|
|
<div class="mt15 ">
|
|
<div class="info_content">
|
|
<div class="info_content">
|
|
- {{ item.data_value }}
|
|
|
|
|
|
+ {{ item.data_value?item.data_value: '--' }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -317,9 +320,10 @@
|
|
</el-option>
|
|
</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</div>
|
|
</div>
|
|
- <div class="mt15">
|
|
|
|
- <div ref="wind" class="ve-ring" style="height: 200px"></div>
|
|
|
|
|
|
+ <div class="mt15" >
|
|
|
|
+ <div ref="wind" class="ve-ring" style="height: 200px" ></div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :xs="12" :sm="8" :md="8" :lg="8">
|
|
<el-col :xs="12" :sm="8" :md="8" :lg="8">
|
|
@@ -333,8 +337,8 @@
|
|
</el-option>
|
|
</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</div>
|
|
</div>
|
|
- <div class="mt15">
|
|
|
|
- <div ref="tempLine" class="ve-ring" style="height: 200px"></div>
|
|
|
|
|
|
+ <div class="mt15" >
|
|
|
|
+ <div ref="tempLine" class="ve-ring" style="height: 200px" ></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -514,12 +518,36 @@ import { ref, computed, onMounted, reactive, watch, onDeactivated, onActivated }
|
|
import { useGlobalStore } from "@/stores/modules/global";
|
|
import { useGlobalStore } from "@/stores/modules/global";
|
|
import { getDataItemList, getPlatformList, getRgDataList, getTacRecordList } from "@/api/modules/allData";
|
|
import { getDataItemList, getPlatformList, getRgDataList, getTacRecordList } from "@/api/modules/allData";
|
|
import { Platform } from "@/api/interface";
|
|
import { Platform } from "@/api/interface";
|
|
|
|
+
|
|
|
|
+import { ElLoading } from "element-plus";
|
|
|
|
+
|
|
|
|
+/* 全局请求 loading */
|
|
|
|
+const loading=ref()
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * @description 开启 Loading
|
|
|
|
+ * */
|
|
|
|
+const startFullLoading = () => {
|
|
|
|
+ loading.value = ElLoading.service({
|
|
|
|
+ fullscreen: true,
|
|
|
|
+ lock: true,
|
|
|
|
+ text: "Loading",
|
|
|
|
+ background: "rgba(0, 0, 0, 0.7)"
|
|
|
|
+ });
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * @description 结束 Loading
|
|
|
|
+ * */
|
|
|
|
+const endFullLoading = () => {
|
|
|
|
+ loading.value.close();
|
|
|
|
+};
|
|
const timeValue = ref(1);
|
|
const timeValue = ref(1);
|
|
|
|
|
|
const queryInfo = ref(0)
|
|
const queryInfo = ref(0)
|
|
const pageable = ref({
|
|
const pageable = ref({
|
|
data_type: true,
|
|
data_type: true,
|
|
- time_order: 0,
|
|
|
|
|
|
+ time_order: 1,
|
|
as_code: undefined,
|
|
as_code: undefined,
|
|
data_items: [],
|
|
data_items: [],
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
@@ -916,28 +944,7 @@ let historyColumns = [
|
|
isSelected: true
|
|
isSelected: true
|
|
},
|
|
},
|
|
]
|
|
]
|
|
-// 定义风级表
|
|
|
|
-const windScale = [
|
|
|
|
- { start: 0.0, end: 0.2, level: 0 },
|
|
|
|
- { start: 0.3, end: 1.5, level: 1 },
|
|
|
|
- { start: 1.6, end: 3.3, level: 2 },
|
|
|
|
- { start: 3.4, end: 5.4, level: 3 },
|
|
|
|
- { start: 5.5, end: 7.9, level: 4 },
|
|
|
|
- { start: 8.0, end: 10.7, level: 5 },
|
|
|
|
- { start: 10.8, end: 13.8, level: 6 },
|
|
|
|
- { start: 13.9, end: 17.1, level: 7 },
|
|
|
|
- { start: 17.2, end: 20.7, level: 8 },
|
|
|
|
- { start: 20.8, end: 24.4, level: 9 },
|
|
|
|
- { start: 24.5, end: 28.4, level: 10 },
|
|
|
|
- { start: 28.5, end: 32.6, level: 11 },
|
|
|
|
- { start: 32.7, end: 36.9, level: 12 },
|
|
|
|
- { start: 37.0, end: 41.4, level: 13 },
|
|
|
|
- { start: 41.5, end: 46.1, level: 14 },
|
|
|
|
- { start: 46.2, end: 50.9, level: 15 },
|
|
|
|
- { start: 51.0, end: 56.0, level: 16 },
|
|
|
|
- // 对于最后一个范围,我们可以使用Number.MAX_SAFE_INTEGER来表示DBL_MAX
|
|
|
|
- { start: 56.1, end: Number.MAX_SAFE_INTEGER, level: 17 }
|
|
|
|
-];
|
|
|
|
|
|
+
|
|
|
|
|
|
const dataTypeList = [
|
|
const dataTypeList = [
|
|
{
|
|
{
|
|
@@ -976,13 +983,35 @@ function findLabelByValue(noticeTypeList, value) {
|
|
|
|
|
|
// 判断风级的方法
|
|
// 判断风级的方法
|
|
function getWindLevel(windSpeed) {
|
|
function getWindLevel(windSpeed) {
|
|
|
|
+ // 定义风级表
|
|
|
|
+ const windScale = [
|
|
|
|
+ { start: 0.0, end: 0.2, level: 0 },
|
|
|
|
+ { start: 0.3, end: 1.5, level: 1 },
|
|
|
|
+ { start: 1.6, end: 3.3, level: 2 },
|
|
|
|
+ { start: 3.4, end: 5.4, level: 3 },
|
|
|
|
+ { start: 5.5, end: 7.9, level: 4 },
|
|
|
|
+ { start: 8.0, end: 10.7, level: 5 },
|
|
|
|
+ { start: 10.8, end: 13.8, level: 6 },
|
|
|
|
+ { start: 13.9, end: 17.1, level: 7 },
|
|
|
|
+ { start: 17.2, end: 20.7, level: 8 },
|
|
|
|
+ { start: 20.8, end: 24.4, level: 9 },
|
|
|
|
+ { start: 24.5, end: 28.4, level: 10 },
|
|
|
|
+ { start: 28.5, end: 32.6, level: 11 },
|
|
|
|
+ { start: 32.7, end: 36.9, level: 12 },
|
|
|
|
+ { start: 37.0, end: 41.4, level: 13 },
|
|
|
|
+ { start: 41.5, end: 46.1, level: 14 },
|
|
|
|
+ { start: 46.2, end: 50.9, level: 15 },
|
|
|
|
+ { start: 51.0, end: 56.0, level: 16 },
|
|
|
|
+ // 对于最后一个范围,我们可以使用Number.MAX_SAFE_INTEGER来表示DBL_MAX
|
|
|
|
+ { start: 56.1, end: Number.MAX_SAFE_INTEGER, level: 17 }
|
|
|
|
+ ];
|
|
for (let i = 0; i < windScale.length; i++) {
|
|
for (let i = 0; i < windScale.length; i++) {
|
|
- if (windSpeed >= windScale[i].start && (windSpeed < windScale[i].end || windSpeed === Number.MAX_SAFE_INTEGER)) {
|
|
|
|
|
|
+ if (Number(windSpeed) >= Number(windScale[i].start) && (Number(windSpeed) <= Number(windScale[i].end) || Number(windSpeed) === Number.MAX_SAFE_INTEGER)) {
|
|
return windScale[i].level;
|
|
return windScale[i].level;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// 如果没有匹配到任何风级(理论上不应该发生),返回-1或其他错误码
|
|
// 如果没有匹配到任何风级(理论上不应该发生),返回-1或其他错误码
|
|
- return -1;
|
|
|
|
|
|
+ return '--';
|
|
}
|
|
}
|
|
// const updateColumns = () => {
|
|
// const updateColumns = () => {
|
|
// pageable.value.data_items = [...customizeColumns.value,...defaultColumns];
|
|
// pageable.value.data_items = [...customizeColumns.value,...defaultColumns];
|
|
@@ -992,7 +1021,7 @@ function getWindLevel(windSpeed) {
|
|
const copiedCustomizeColumns = ref<any>([...customizeColumns.value]);
|
|
const copiedCustomizeColumns = ref<any>([...customizeColumns.value]);
|
|
// 查询自动站列表
|
|
// 查询自动站列表
|
|
const queryas = ref<Platform>({
|
|
const queryas = ref<Platform>({
|
|
- pageSize: 50,
|
|
|
|
|
|
+ pageSize: 5000,
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
currentpage: 1
|
|
currentpage: 1
|
|
})
|
|
})
|
|
@@ -1002,20 +1031,26 @@ const platformList = ref<any>([])
|
|
const selectPlatform = ref()
|
|
const selectPlatform = ref()
|
|
|
|
|
|
const getPlatforms = async () => {
|
|
const getPlatforms = async () => {
|
|
|
|
+ startFullLoading()
|
|
|
|
+
|
|
const { data } = await getPlatformList(queryas.value);
|
|
const { data } = await getPlatformList(queryas.value);
|
|
|
|
+
|
|
platformList.value = data.list
|
|
platformList.value = data.list
|
|
pageable.value.as_code = data.list[0].as_code
|
|
pageable.value.as_code = data.list[0].as_code
|
|
selectPlatform.value = data.list[0]
|
|
selectPlatform.value = data.list[0]
|
|
getList()
|
|
getList()
|
|
- getHistoryList()
|
|
|
|
|
|
+ // getHistoryList()
|
|
weatherInfo()
|
|
weatherInfo()
|
|
|
|
+ endFullLoading()
|
|
|
|
+
|
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
-const changeStation = () => {
|
|
|
|
|
|
+const changeStation = (e) => {
|
|
|
|
+ selectPlatform.value = platformList.value.find(item => item.as_code === e);
|
|
// pageable.value.as_code = selectPlatform.value.as_code
|
|
// pageable.value.as_code = selectPlatform.value.as_code
|
|
getList()
|
|
getList()
|
|
- getHistoryList()
|
|
|
|
|
|
+ // getHistoryList()
|
|
weatherInfo()
|
|
weatherInfo()
|
|
}
|
|
}
|
|
const changeTime = () => {
|
|
const changeTime = () => {
|
|
@@ -1050,40 +1085,42 @@ function getYenSymbolLaterCharacters(inputString) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// 获取指定时间戳之前的时间戳
|
|
// 获取指定时间戳之前的时间戳
|
|
-function getTimeStamp(type) {
|
|
|
|
- const now = new Date();
|
|
|
|
- let timestamp;
|
|
|
|
|
|
+function getTimeStamp(type, timestamp) {
|
|
|
|
+ let date = new Date(timestamp * 1000); // 将秒的时间戳转换为毫秒的时间戳
|
|
|
|
+ let now = date;
|
|
|
|
+
|
|
|
|
+ let timestampResult;
|
|
|
|
|
|
switch (type) {
|
|
switch (type) {
|
|
case 0:
|
|
case 0:
|
|
// 获取当前时间的时间戳
|
|
// 获取当前时间的时间戳
|
|
- timestamp = Math.floor(now.getTime() / 1000);
|
|
|
|
|
|
+ timestampResult = Math.floor(now.getTime() / 1000);
|
|
break;
|
|
break;
|
|
case 1:
|
|
case 1:
|
|
// 获取30分钟之前的时间戳
|
|
// 获取30分钟之前的时间戳
|
|
now.setMinutes(now.getMinutes() - 30);
|
|
now.setMinutes(now.getMinutes() - 30);
|
|
- timestamp = Math.floor(now.getTime() / 1000);
|
|
|
|
|
|
+ timestampResult = Math.floor(now.getTime() / 1000);
|
|
break;
|
|
break;
|
|
case 2:
|
|
case 2:
|
|
// 获取24小时之前的整点时间戳
|
|
// 获取24小时之前的整点时间戳
|
|
now.setHours(now.getHours() - 24, 0, 0, 0);
|
|
now.setHours(now.getHours() - 24, 0, 0, 0);
|
|
- timestamp = Math.floor(now.getTime() / 1000);
|
|
|
|
|
|
+ timestampResult = Math.floor(now.getTime() / 1000);
|
|
break;
|
|
break;
|
|
case 3:
|
|
case 3:
|
|
// 获取48小时之前的整点时间戳
|
|
// 获取48小时之前的整点时间戳
|
|
now.setHours(now.getHours() - 48, 0, 0, 0);
|
|
now.setHours(now.getHours() - 48, 0, 0, 0);
|
|
- timestamp = Math.floor(now.getTime() / 1000);
|
|
|
|
|
|
+ timestampResult = Math.floor(now.getTime() / 1000);
|
|
break;
|
|
break;
|
|
case 4:
|
|
case 4:
|
|
// 获取现在的整点时间戳
|
|
// 获取现在的整点时间戳
|
|
now.setMinutes(0, 0, 0);
|
|
now.setMinutes(0, 0, 0);
|
|
- timestamp = Math.floor(now.getTime() / 1000);
|
|
|
|
|
|
+ timestampResult = Math.floor(now.getTime() / 1000);
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
throw new Error('Invalid type');
|
|
throw new Error('Invalid type');
|
|
}
|
|
}
|
|
|
|
|
|
- return timestamp;
|
|
|
|
|
|
+ return timestampResult;
|
|
}
|
|
}
|
|
|
|
|
|
// 获取指定id的数组
|
|
// 获取指定id的数组
|
|
@@ -1098,8 +1135,9 @@ const getAllRgDataList = async () => {
|
|
const { data } = await getRgDataList();
|
|
const { data } = await getRgDataList();
|
|
elementList.value = data.list
|
|
elementList.value = data.list
|
|
};
|
|
};
|
|
-const dataItemInfo = ref()
|
|
|
|
|
|
+const dataItemInfo = ref<any>({})
|
|
const selectElement = ref()
|
|
const selectElement = ref()
|
|
|
|
+const dangerWeather = ref()
|
|
const getList = async () => {
|
|
const getList = async () => {
|
|
const arr = [...customizeColumns.value, ...defaultColumns].reduce((acc, item) => {
|
|
const arr = [...customizeColumns.value, ...defaultColumns].reduce((acc, item) => {
|
|
if (!acc.some(existingItem => existingItem.data_id === item.data_id)) {
|
|
if (!acc.some(existingItem => existingItem.data_id === item.data_id)) {
|
|
@@ -1107,16 +1145,27 @@ const getList = async () => {
|
|
}
|
|
}
|
|
return acc;
|
|
return acc;
|
|
}, []);
|
|
}, []);
|
|
- const { data } = await getDataItemList({ ...pageable.value, as_code_list: [pageable.value.as_code], data_items: arr });
|
|
|
|
- dataItemInfo.value = data.list[0]
|
|
|
|
|
|
+ const res = await getDataItemList({ ...pageable.value, as_code_list: [pageable.value.as_code], data_items: arr });
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ dataItemInfo.value = res.data.list ? (res.data.list.length === 0 ? {} : res.data.list[0]) : {};
|
|
|
|
+ // console.log(dataItemInfo.value, 555);
|
|
|
|
+
|
|
showTemp()
|
|
showTemp()
|
|
showHumidity()
|
|
showHumidity()
|
|
showPressure()
|
|
showPressure()
|
|
showWindSpeed()
|
|
showWindSpeed()
|
|
currentValue.value = dataItemInfo.value[312] && dataItemInfo.value[312] != 0 && dataItemInfo.value[312] != '--' ? dataItemInfo.value[302] : dataItemInfo.value[302] && dataItemInfo.value[302] != 0 ? dataItemInfo.value[302] : 0
|
|
currentValue.value = dataItemInfo.value[312] && dataItemInfo.value[312] != 0 && dataItemInfo.value[312] != '--' ? dataItemInfo.value[302] : dataItemInfo.value[302] && dataItemInfo.value[302] != 0 ? dataItemInfo.value[302] : 0
|
|
mincurrentValue.value = dataItemInfo.value[311] && dataItemInfo.value[311] != 0 && dataItemInfo.value[311] != '--' ? dataItemInfo.value[301] : dataItemInfo.value[301] && dataItemInfo.value[301] != 0 ? dataItemInfo.value[302] : 0
|
|
mincurrentValue.value = dataItemInfo.value[311] && dataItemInfo.value[311] != 0 && dataItemInfo.value[311] != '--' ? dataItemInfo.value[301] : dataItemInfo.value[301] && dataItemInfo.value[301] != 0 ? dataItemInfo.value[302] : 0
|
|
- selectElement.value = dataItemInfo.value.data_list.filter(itemB => customizeColumns.value.some(itemA => itemA.data_id === itemB.data_id));
|
|
|
|
|
|
+ selectElement.value = res.data.list?dataItemInfo.value?.data_list.filter(itemB => customizeColumns.value.some(itemA => itemA.data_id === itemB.data_id)):[];
|
|
|
|
+ const ids = [601, 602, 603, 604, 605]
|
|
|
|
+ dangerWeather.value = res.data.list?dataItemInfo.value.data_list
|
|
|
|
+ .filter(item => ids.includes(item.data_id) && item.data_value !== '--')
|
|
|
|
+ .map(item => item):[]
|
|
|
|
|
|
|
|
+ // .filter(item => ids.includes(item.data_id) && getYenSymbolLaterCharacters(item.remark) !== '无明显天气现象')
|
|
|
|
+ getHistoryList()
|
|
};
|
|
};
|
|
|
|
|
|
function adjustValue(value) {
|
|
function adjustValue(value) {
|
|
@@ -1128,19 +1177,22 @@ function adjustValue(value) {
|
|
return 360 - value;
|
|
return 360 - value;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+const showChart=ref(false)
|
|
const timeArr = ref()
|
|
const timeArr = ref()
|
|
const tempLineArr = ref()
|
|
const tempLineArr = ref()
|
|
const humidityLineArr = ref()
|
|
const humidityLineArr = ref()
|
|
const pressureLineArr = ref()
|
|
const pressureLineArr = ref()
|
|
const windLineArr = ref()
|
|
const windLineArr = ref()
|
|
const getHistoryList = async () => {
|
|
const getHistoryList = async () => {
|
|
|
|
+ showChart.value=false
|
|
const arr = [...customizeColumns.value, ...defaultColumns].reduce((acc, item) => {
|
|
const arr = [...customizeColumns.value, ...defaultColumns].reduce((acc, item) => {
|
|
if (!acc.some(existingItem => existingItem.data_id === item.data_id)) {
|
|
if (!acc.some(existingItem => existingItem.data_id === item.data_id)) {
|
|
acc.push(item);
|
|
acc.push(item);
|
|
}
|
|
}
|
|
return acc;
|
|
return acc;
|
|
}, []);
|
|
}, []);
|
|
- const { data } = await getDataItemList({ ...pageable.value, pageSize: 99, as_code_list: [pageable.value.as_code], data_items: historyColumns, data_type: false, begin_time: getTimeStamp(timeValue.value), end_time: getTimeStamp(timeValue.value === 1 ? 0 : 4), time_space: timeValue.value == 1 ? 1 : 60 });
|
|
|
|
|
|
+ const { data } = await getDataItemList({ ...pageable.value, pageSize: 99, as_code_list: [pageable.value.as_code], data_items: historyColumns, data_type: false, begin_time: getTimeStamp(timeValue.value,dataItemInfo.value.data_time_i), end_time: getTimeStamp(timeValue.value == 1 ? 0 : 4,dataItemInfo.value.data_time_i), time_space: timeValue.value == 1 ? 1 : 60 });
|
|
timeArr.value = data.list?.map(item => {
|
|
timeArr.value = data.list?.map(item => {
|
|
return formatDate(item.data_time_i, 1)
|
|
return formatDate(item.data_time_i, 1)
|
|
})
|
|
})
|
|
@@ -1161,10 +1213,11 @@ const getHistoryList = async () => {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
|
|
-
|
|
|
|
showTempLine()
|
|
showTempLine()
|
|
showPressureLine()
|
|
showPressureLine()
|
|
showWind()
|
|
showWind()
|
|
|
|
+ showChart.value=true
|
|
|
|
+
|
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
@@ -1195,13 +1248,13 @@ const handleSetting = () => {
|
|
dialog.visible = true;
|
|
dialog.visible = true;
|
|
}
|
|
}
|
|
|
|
|
|
-const submitForm = () => {
|
|
|
|
|
|
+const submitForm = async () => {
|
|
dialog.visible = false;
|
|
dialog.visible = false;
|
|
customizeColumns.value = [...copiedCustomizeColumns.value]
|
|
customizeColumns.value = [...copiedCustomizeColumns.value]
|
|
// updateColumns()
|
|
// updateColumns()
|
|
- getList()
|
|
|
|
- weatherInfo()
|
|
|
|
- getHistoryList()
|
|
|
|
|
|
+ await getList()
|
|
|
|
+ await weatherInfo()
|
|
|
|
+ // await getHistoryList()
|
|
saveCustomizeColumns()
|
|
saveCustomizeColumns()
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1240,8 +1293,8 @@ const options = [{
|
|
value: 3,
|
|
value: 3,
|
|
label: '48小时'
|
|
label: '48小时'
|
|
}]
|
|
}]
|
|
-const currentValue = ref(20);
|
|
|
|
-const mincurrentValue = ref(2)
|
|
|
|
|
|
+const currentValue = ref(0);
|
|
|
|
+const mincurrentValue = ref(0)
|
|
|
|
|
|
const gradientStyle = computed(() => {
|
|
const gradientStyle = computed(() => {
|
|
return {
|
|
return {
|
|
@@ -1398,7 +1451,7 @@ const showPressure = () => {
|
|
},
|
|
},
|
|
data: [
|
|
data: [
|
|
{
|
|
{
|
|
- value: dataItemInfo.value[202]
|
|
|
|
|
|
+ value: dataItemInfo.value&&dataItemInfo.value[202]?dataItemInfo.value[202]:'--'
|
|
}
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
@@ -1537,7 +1590,7 @@ const showHumidity = () => {
|
|
},
|
|
},
|
|
data: [
|
|
data: [
|
|
{
|
|
{
|
|
- value: dataItemInfo.value[106]
|
|
|
|
|
|
+ value: dataItemInfo.value&&dataItemInfo.value[106]?dataItemInfo.value[106]:'--'
|
|
}
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
@@ -1682,16 +1735,15 @@ const showWindSpeed = () => {
|
|
detail: {
|
|
detail: {
|
|
offsetCenter: [-12, 5],
|
|
offsetCenter: [-12, 5],
|
|
valueAnimation: true,
|
|
valueAnimation: true,
|
|
- formatter: getWindLevel(dataItemInfo.value[8]),
|
|
|
|
|
|
+ formatter: getWindLevel(dataItemInfo.value&&dataItemInfo.value[8]?dataItemInfo.value[8]:-1).toString(),
|
|
// formatter:'2' ,
|
|
// formatter:'2' ,
|
|
color: isDark.value ? '#fff' : "#000",
|
|
color: isDark.value ? '#fff' : "#000",
|
|
-
|
|
|
|
// fontSize: 10,
|
|
// fontSize: 10,
|
|
},
|
|
},
|
|
data: [
|
|
data: [
|
|
{
|
|
{
|
|
// value:270,
|
|
// value:270,
|
|
- value: dataItemInfo.value[9] == 'C' ? 0 : dataItemInfo.value[9],
|
|
|
|
|
|
+ value: dataItemInfo.value&&dataItemInfo.value[9] == 'C' ? 0 : Number(dataItemInfo.value[9]),
|
|
name: '级',
|
|
name: '级',
|
|
detail: {
|
|
detail: {
|
|
fontSize: 40,
|
|
fontSize: 40,
|
|
@@ -1830,6 +1882,16 @@ const showWind = () => {
|
|
},]
|
|
},]
|
|
let mychart = echarts.init(wind.value);
|
|
let mychart = echarts.init(wind.value);
|
|
let option = {
|
|
let option = {
|
|
|
|
+ title: {
|
|
|
|
+ text: '暂无数据',
|
|
|
|
+ show:!timeArr.value?true:false,
|
|
|
|
+ x: 'center',
|
|
|
|
+ y: 'center',
|
|
|
|
+ textStyle: {
|
|
|
|
+ fontSize: 14,
|
|
|
|
+ fontWeight: 'normal',
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
|
|
grid: {
|
|
grid: {
|
|
left: '10',
|
|
left: '10',
|
|
@@ -1891,7 +1953,6 @@ const showWind = () => {
|
|
data: windLineArr.value,
|
|
data: windLineArr.value,
|
|
type: 'line',
|
|
type: 'line',
|
|
smooth: true, //这句就是让曲线变平滑的
|
|
smooth: true, //这句就是让曲线变平滑的
|
|
- // symbol: "image://" + require("../../../assets/img/weather/wind.png"),
|
|
|
|
symbol: 'path://M4.866,0,0,15.193l4.866-4.449L9.738,15.2Z',
|
|
symbol: 'path://M4.866,0,0,15.193l4.866-4.449L9.738,15.2Z',
|
|
symbolSize: 11,
|
|
symbolSize: 11,
|
|
//折线样式
|
|
//折线样式
|
|
@@ -2037,7 +2098,7 @@ const showTemp = () => {
|
|
|
|
|
|
data: [
|
|
data: [
|
|
{
|
|
{
|
|
- value: dataItemInfo.value[101]
|
|
|
|
|
|
+ value: dataItemInfo.value&&dataItemInfo.value[101]?dataItemInfo.value[101]:0,
|
|
}
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
@@ -2072,6 +2133,16 @@ const showTempLine = () => {
|
|
|
|
|
|
let mychart = echarts.init(tempLine.value);
|
|
let mychart = echarts.init(tempLine.value);
|
|
let option = {
|
|
let option = {
|
|
|
|
+ title: {
|
|
|
|
+ text: '暂无数据',
|
|
|
|
+ show:!timeArr.value?true:false,
|
|
|
|
+ x: 'center',
|
|
|
|
+ y: 'center',
|
|
|
|
+ textStyle: {
|
|
|
|
+ fontSize: 14,
|
|
|
|
+ fontWeight: 'normal',
|
|
|
|
+ }
|
|
|
|
+ },
|
|
// 直角坐标系内绘图网格
|
|
// 直角坐标系内绘图网格
|
|
// grid: {
|
|
// grid: {
|
|
// show: true,
|
|
// show: true,
|
|
@@ -2213,6 +2284,16 @@ const showPressureLine = () => {
|
|
|
|
|
|
let mychart = echarts.init(pressureLine.value);
|
|
let mychart = echarts.init(pressureLine.value);
|
|
let option = {
|
|
let option = {
|
|
|
|
+ title: {
|
|
|
|
+ text: '暂无数据',
|
|
|
|
+ show:!timeArr.value?true:false,
|
|
|
|
+ x: 'center',
|
|
|
|
+ y: 'center',
|
|
|
|
+ textStyle: {
|
|
|
|
+ fontSize: 14,
|
|
|
|
+ fontWeight: 'normal',
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
|
|
grid: {
|
|
grid: {
|
|
left: '10',
|
|
left: '10',
|
|
@@ -2304,11 +2385,11 @@ onMounted(() => {
|
|
getAllRgDataList()
|
|
getAllRgDataList()
|
|
|
|
|
|
|
|
|
|
- // showTemp()
|
|
|
|
|
|
+ showTemp()
|
|
// showWind()
|
|
// showWind()
|
|
- // showWindSpeed()
|
|
|
|
- // showHumidity()
|
|
|
|
- // showPressure()
|
|
|
|
|
|
+ showWindSpeed()
|
|
|
|
+ showHumidity()
|
|
|
|
+ showPressure()
|
|
// showTempLine()
|
|
// showTempLine()
|
|
// showPressureLine()
|
|
// showPressureLine()
|
|
})
|
|
})
|
|
@@ -2333,8 +2414,8 @@ onActivated(() => {
|
|
intervalId = setInterval(() => {
|
|
intervalId = setInterval(() => {
|
|
getList();
|
|
getList();
|
|
weatherInfo()
|
|
weatherInfo()
|
|
- getHistoryList()
|
|
|
|
- }, 60 * 1000);
|
|
|
|
|
|
+ // getHistoryList()
|
|
|
|
+ }, 600 * 1000);
|
|
});
|
|
});
|
|
|
|
|
|
onDeactivated(() => {
|
|
onDeactivated(() => {
|