|
@@ -37,13 +37,21 @@
|
|
|
<div class="text">一周预报</div>
|
|
|
</div>
|
|
|
<div class="card-content3">
|
|
|
- <div v-for="(item, index) in weekForecast" :key="index" class="card-item">
|
|
|
+ <div
|
|
|
+ v-for="(item, index) in weekForecast"
|
|
|
+ :key="index"
|
|
|
+ class="card-item"
|
|
|
+ >
|
|
|
<div class="text1">{{ item.name }}</div>
|
|
|
- <div class="text1"><i :class="getClass(item.type1)" />{{ item.type1 }}</div>
|
|
|
+ <div class="text1">
|
|
|
+ <i :class="getClass(item.type1)" />{{ item.type1 }}
|
|
|
+ </div>
|
|
|
<div class="text1">{{ item.data1 }}℃</div>
|
|
|
<div class="text1">{{ item.data2 }}</div>
|
|
|
<div class="text1">|</div>
|
|
|
- <div class="text1"><i :class="getClass(item.type2)" />{{ item.type2 }}</div>
|
|
|
+ <div class="text1">
|
|
|
+ <i :class="getClass(item.type2)" />{{ item.type2 }}
|
|
|
+ </div>
|
|
|
<div class="text1">{{ item.data3 }}℃</div>
|
|
|
<div class="text1">{{ item.data4 }}</div>
|
|
|
</div>
|
|
@@ -105,9 +113,9 @@
|
|
|
<div class="card-item">
|
|
|
<i class="icon1" />
|
|
|
<div class="flex">
|
|
|
- <div class="text1">漫坝</div>
|
|
|
+ <div class="text1">{{ riverStatus[0].type }}</div>
|
|
|
<div class="text2 text-red">
|
|
|
- 30
|
|
|
+ {{ riverStatus[0].value }}
|
|
|
<div class="text3">个</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -115,9 +123,9 @@
|
|
|
<div class="card-item2">
|
|
|
<i class="icon2" />
|
|
|
<div class="flex">
|
|
|
- <div class="text1">超保证</div>
|
|
|
+ <div class="text1">{{ riverStatus[1].type }}</div>
|
|
|
<div class="text2 text-orange">
|
|
|
- 69
|
|
|
+ {{ riverStatus[1].value }}
|
|
|
<div class="text3">个</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -125,9 +133,9 @@
|
|
|
<div class="card-item3">
|
|
|
<i class="icon3" />
|
|
|
<div class="flex">
|
|
|
- <div class="text1">超警戒</div>
|
|
|
+ <div class="text1">{{ riverStatus[2].type }}</div>
|
|
|
<div class="text2 text-blue">
|
|
|
- 41
|
|
|
+ {{ riverStatus[2].value }}
|
|
|
<div class="text3">个</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -155,11 +163,15 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="易涝点名称" prop="flood_name" align="center" />
|
|
|
+ <el-table-column
|
|
|
+ label="易涝点名称"
|
|
|
+ prop="flood_name"
|
|
|
+ align="center"
|
|
|
+ />
|
|
|
<el-table-column label="提供单位" prop="unit" align="center" />
|
|
|
<el-table-column label="视频" prop="publicTime" align="center">
|
|
|
<template #default="scope">
|
|
|
- <div class="btn" @click="handlePlay">播放</div>
|
|
|
+ <div class="btn" @click="handlePlay(scope.row)">播放</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -181,7 +193,9 @@ import { onMounted, reactive, ref, watch } from "vue";
|
|
|
import { getTemperature } from "@/api/disasterRiskMonitor/windAndFloodPrevention";
|
|
|
import temp1 from "@/assets/temp1.jfif";
|
|
|
import { chartOption2 } from "./chartOptions";
|
|
|
-import {getEasyFlood} from "@/api/disasterRiskMonitor/easyFlood";
|
|
|
+import { getEasyFlood } from "@/api/disasterRiskMonitor/easyFlood";
|
|
|
+import router from "@/router";
|
|
|
+import { getRiverStatus } from "@/api/disasterRiskMonitor/riverInform";
|
|
|
|
|
|
let tabs = reactive([
|
|
|
{ name: "6h降水", value: "6h_precipitation" },
|
|
@@ -194,6 +208,7 @@ let tabs = reactive([
|
|
|
|
|
|
let tabActive = ref("hourly_temperature");
|
|
|
|
|
|
+const riverStatus = ref();
|
|
|
const liveMapState = reactive({
|
|
|
show: false,
|
|
|
activeIndex: 0,
|
|
@@ -202,13 +217,69 @@ const liveMapState = reactive({
|
|
|
data: []
|
|
|
});
|
|
|
let weekForecast = ref([
|
|
|
- { name: '今天', type1: '晴', data1: '32.6', data2: '小于3级', type2: '阴', data3: '32.6', data4: '小于3级' },
|
|
|
- { name: '今天', type1: '晴', data1: '32.6', data2: '小于3级', type2: '阴', data3: '32.6', data4: '小于3级' },
|
|
|
- { name: '今天', type1: '雷雨', data1: '32.6', data2: '小于3级', type2: '阴', data3: '32.6', data4: '小于3级' },
|
|
|
- { name: '今天', type1: '晴', data1: '32.6', data2: '小于3级', type2: '阴', data3: '32.6', data4: '小于3级' },
|
|
|
- { name: '今天', type1: '雷雨', data1: '32.6', data2: '小于3级', type2: '阴', data3: '32.6', data4: '小于3级' },
|
|
|
- { name: '今天', type1: '晴', data1: '32.6', data2: '小于3级', type2: '阴', data3: '32.6', data4: '小于3级' },
|
|
|
- { name: '今天', type1: '晴', data1: '32.6', data2: '小于3级', type2: '阴', data3: '32.6', data4: '小于3级' },
|
|
|
+ {
|
|
|
+ name: "今天",
|
|
|
+ type1: "晴",
|
|
|
+ data1: "32.6",
|
|
|
+ data2: "小于3级",
|
|
|
+ type2: "阴",
|
|
|
+ data3: "32.6",
|
|
|
+ data4: "小于3级"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "今天",
|
|
|
+ type1: "晴",
|
|
|
+ data1: "32.6",
|
|
|
+ data2: "小于3级",
|
|
|
+ type2: "阴",
|
|
|
+ data3: "32.6",
|
|
|
+ data4: "小于3级"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "今天",
|
|
|
+ type1: "雷雨",
|
|
|
+ data1: "32.6",
|
|
|
+ data2: "小于3级",
|
|
|
+ type2: "阴",
|
|
|
+ data3: "32.6",
|
|
|
+ data4: "小于3级"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "今天",
|
|
|
+ type1: "晴",
|
|
|
+ data1: "32.6",
|
|
|
+ data2: "小于3级",
|
|
|
+ type2: "阴",
|
|
|
+ data3: "32.6",
|
|
|
+ data4: "小于3级"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "今天",
|
|
|
+ type1: "雷雨",
|
|
|
+ data1: "32.6",
|
|
|
+ data2: "小于3级",
|
|
|
+ type2: "阴",
|
|
|
+ data3: "32.6",
|
|
|
+ data4: "小于3级"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "今天",
|
|
|
+ type1: "晴",
|
|
|
+ data1: "32.6",
|
|
|
+ data2: "小于3级",
|
|
|
+ type2: "阴",
|
|
|
+ data3: "32.6",
|
|
|
+ data4: "小于3级"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "今天",
|
|
|
+ type1: "晴",
|
|
|
+ data1: "32.6",
|
|
|
+ data2: "小于3级",
|
|
|
+ type2: "阴",
|
|
|
+ data3: "32.6",
|
|
|
+ data4: "小于3级"
|
|
|
+ }
|
|
|
]);
|
|
|
let detailsData = ref({
|
|
|
dataList: []
|
|
@@ -230,6 +301,12 @@ const queryParams2 = ref({
|
|
|
}
|
|
|
});
|
|
|
const option1 = ref(chartOption2);
|
|
|
+const getRiverDetail = () => {
|
|
|
+ getRiverStatus().then(res => {
|
|
|
+ riverStatus.value = res.rows;
|
|
|
+ });
|
|
|
+};
|
|
|
+getRiverDetail();
|
|
|
watch(
|
|
|
() => liveMapState.show,
|
|
|
() => {
|
|
@@ -249,17 +326,17 @@ const onSelectTypeConfirm = ({ selectedOptions }) => {
|
|
|
initData();
|
|
|
};
|
|
|
|
|
|
-const getClass = (name) => {
|
|
|
- let res = ''
|
|
|
- if (name === '晴') {
|
|
|
- res = 'icon1'
|
|
|
- } else if (name === '阴') {
|
|
|
- res = 'icon2'
|
|
|
- } else if (name === '雷雨') {
|
|
|
- res = 'icon3'
|
|
|
+const getClass = name => {
|
|
|
+ let res = "";
|
|
|
+ if (name === "晴") {
|
|
|
+ res = "icon1";
|
|
|
+ } else if (name === "阴") {
|
|
|
+ res = "icon2";
|
|
|
+ } else if (name === "雷雨") {
|
|
|
+ res = "icon3";
|
|
|
}
|
|
|
- return res
|
|
|
-}
|
|
|
+ return res;
|
|
|
+};
|
|
|
|
|
|
const initData = () => {
|
|
|
getTemperature({ args: tabActive.value }).then(res => {
|
|
@@ -365,7 +442,16 @@ const getTableRowClass = ({ rowIndex }) => {
|
|
|
return rowIndex % 2 === 0 ? "" : "common-table-tr";
|
|
|
};
|
|
|
|
|
|
-const handlePlay = id => {};
|
|
|
+const handlePlay = row => {
|
|
|
+ router.push({
|
|
|
+ name: "WindAndFloodPreventionView",
|
|
|
+ query: {
|
|
|
+ latitude: row.lat,
|
|
|
+ longitude: row.lng,
|
|
|
+ name: encodeURIComponent(row.flood_name)
|
|
|
+ }
|
|
|
+ });
|
|
|
+};
|
|
|
onMounted(() => {
|
|
|
initData();
|
|
|
});
|
|
@@ -395,7 +481,7 @@ onMounted(() => {
|
|
|
align-items: center;
|
|
|
border-top-left-radius: 4px;
|
|
|
border-top-right-radius: 4px;
|
|
|
- background-image: linear-gradient(180deg, #F3F7FD 0%, #FFFFFF 100%);
|
|
|
+ background-image: linear-gradient(180deg, #f3f7fd 0%, #ffffff 100%);
|
|
|
.icon-line {
|
|
|
display: inline-block;
|
|
|
width: 6px;
|
|
@@ -425,15 +511,20 @@ onMounted(() => {
|
|
|
justify-content: space-between;
|
|
|
align-items: center;
|
|
|
.card-item {
|
|
|
- background: url("@/assets/images/disasterRiskMonitor/windAndFloodPrevention/box1.png") no-repeat;
|
|
|
+ background: url("@/assets/images/disasterRiskMonitor/windAndFloodPrevention/box1.png")
|
|
|
+ no-repeat;
|
|
|
}
|
|
|
.card-item2 {
|
|
|
- background: url("@/assets/images/disasterRiskMonitor/windAndFloodPrevention/box2.png") no-repeat;
|
|
|
+ background: url("@/assets/images/disasterRiskMonitor/windAndFloodPrevention/box2.png")
|
|
|
+ no-repeat;
|
|
|
}
|
|
|
.card-item3 {
|
|
|
- background: url("@/assets/images/disasterRiskMonitor/windAndFloodPrevention/box3.png") no-repeat;
|
|
|
+ background: url("@/assets/images/disasterRiskMonitor/windAndFloodPrevention/box3.png")
|
|
|
+ no-repeat;
|
|
|
}
|
|
|
- .card-item, .card-item2, .card-item3 {
|
|
|
+ .card-item,
|
|
|
+ .card-item2,
|
|
|
+ .card-item3 {
|
|
|
width: 106px;
|
|
|
height: 71px;
|
|
|
|
|
@@ -454,7 +545,7 @@ onMounted(() => {
|
|
|
width: 25px;
|
|
|
height: 27px;
|
|
|
background: url("@/assets/images/disasterRiskMonitor/windAndFloodPrevention/icon2.png")
|
|
|
- no-repeat;
|
|
|
+ no-repeat;
|
|
|
background-size: 100% 100%;
|
|
|
}
|
|
|
.icon3 {
|
|
@@ -462,7 +553,7 @@ onMounted(() => {
|
|
|
width: 25px;
|
|
|
height: 26px;
|
|
|
background: url("@/assets/images/disasterRiskMonitor/windAndFloodPrevention/icon3.png")
|
|
|
- no-repeat;
|
|
|
+ no-repeat;
|
|
|
background-size: 100% 100%;
|
|
|
}
|
|
|
.flex {
|
|
@@ -505,9 +596,16 @@ onMounted(() => {
|
|
|
align-items: center;
|
|
|
min-width: 60px;
|
|
|
height: 194px;
|
|
|
- background-image: linear-gradient(180deg, #FFFFFF 0%, #F6F9FF 79%, #F8FAFF 100%);
|
|
|
- border: 2px solid #FFFFFF;
|
|
|
- box-shadow: 0 2px 1px -1px #bcd7ffb5, inset 0 1px 3px 6px #ace2ff08;
|
|
|
+ background-image: linear-gradient(
|
|
|
+ 180deg,
|
|
|
+ #ffffff 0%,
|
|
|
+ #f6f9ff 79%,
|
|
|
+ #f8faff 100%
|
|
|
+ );
|
|
|
+ border: 2px solid #ffffff;
|
|
|
+ box-shadow:
|
|
|
+ 0 2px 1px -1px #bcd7ffb5,
|
|
|
+ inset 0 1px 3px 6px #ace2ff08;
|
|
|
border-radius: 4px;
|
|
|
margin-left: 5px;
|
|
|
padding: 20px 5px;
|
|
@@ -519,7 +617,7 @@ onMounted(() => {
|
|
|
justify-content: center;
|
|
|
align-items: center;
|
|
|
font-size: 12px;
|
|
|
- color: #414F64;
|
|
|
+ color: #414f64;
|
|
|
line-height: 21px;
|
|
|
}
|
|
|
}
|