|
@@ -9,7 +9,7 @@
|
|
|
<div style="height: 1400px; overflow: auto">
|
|
|
<div style="margin-left: 10px; color: #ffffff">
|
|
|
<span>风流场</span>
|
|
|
- <img :src="switchStatus ? switchOn : switchOff" style="margin-left: 10px" @click="switchControl" />
|
|
|
+ <img :src="switchStatus ? switchOn : switchOff" style="margin-left: 10px; cursor: pointer" @click="switchControl" />
|
|
|
</div>
|
|
|
<div class="box-left">
|
|
|
<el-select
|
|
@@ -26,7 +26,7 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="forecast—box">
|
|
|
- <div style="padding: 13px 13px; color: #ffffff">
|
|
|
+ <div class="text-box">
|
|
|
瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
|
瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
|
瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
@@ -54,7 +54,7 @@
|
|
|
<div class="common-table">
|
|
|
<div class="table-header">
|
|
|
<div class="td">类型</div>
|
|
|
- <div class="td" style="margin-left: -40px">
|
|
|
+ <div class="td">
|
|
|
<el-select
|
|
|
v-model="selectedLevel"
|
|
|
placeholder="县区"
|
|
@@ -203,26 +203,31 @@
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
import { onMounted, reactive } from 'vue';
|
|
|
-// import { getHelicopterList } from '@/api/globalMap/Helicopter';
|
|
|
+import { getHelicopterList } from '@/api/globalMap/Helicopter';
|
|
|
import switchOff from '@/assets/images/map/rightMenu/windMonitor/switch-off.png';
|
|
|
import switchOn from '@/assets/images/map/rightMenu/windMonitor/switch-on.png';
|
|
|
import WindSpeedRank from '@/views/globalMap/RightMenu/WindMonitor/windSpeedRank.vue';
|
|
|
+import { getRainfallTownNumCount } from '@/api/globalMap/rainMonitor';
|
|
|
+import { useDebounce } from '@vueuse/core';
|
|
|
+import BigNumber from 'bignumber.js';
|
|
|
+import { debounce } from '@/utils';
|
|
|
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
const { wind_time } = toRefs<any>(proxy?.useDict('wind_time'));
|
|
|
const selectedTime = ref();
|
|
|
const switchStatus = ref(false);
|
|
|
-const startLeft = ref(0);
|
|
|
-const endLeft = ref(1000);
|
|
|
-const lineRef = ref();
|
|
|
-const containerScale = inject('containerScale');
|
|
|
-let showMore = ref(false);
|
|
|
+const rainRange = reactive(['1.6', '50']);
|
|
|
const analyzeData = ref({
|
|
|
GDP: 0,
|
|
|
areaSize: 0,
|
|
|
populationSize: 0,
|
|
|
town_num: 0
|
|
|
});
|
|
|
+const startLeft = ref(0);
|
|
|
+const endLeft = ref(1351);
|
|
|
+const lineRef = ref();
|
|
|
+const containerScale = inject('containerScale');
|
|
|
+let showMore = ref(false);
|
|
|
const mouseStatus = reactive({
|
|
|
move: false,
|
|
|
type: '',
|
|
@@ -308,7 +313,7 @@ const handleMouseMove = (event) => {
|
|
|
if (mouseStatus.type === 'start') {
|
|
|
startLeft.value = value >= 0 ? value : 0;
|
|
|
} else {
|
|
|
- endLeft.value = value <= 1152 ? value : 1152;
|
|
|
+ endLeft.value = value <= 1351 ? value : 1351;
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -320,6 +325,54 @@ const handleMouseUp = (event) => {
|
|
|
mouseStatus.left = 0;
|
|
|
};
|
|
|
|
|
|
+const getRainRange = debounce(
|
|
|
+ () => {
|
|
|
+ getRainfallTownNumCount({
|
|
|
+ query: {
|
|
|
+ start_num: rainRange[0],
|
|
|
+ end_num: rainRange[1]
|
|
|
+ }
|
|
|
+ }).then((res) => {
|
|
|
+ analyzeData.value = res.rows[0];
|
|
|
+ });
|
|
|
+ },
|
|
|
+ 1000,
|
|
|
+ false
|
|
|
+);
|
|
|
+getRainRange();
|
|
|
+watch(startLeft, () => {
|
|
|
+ getNewRange(0, startLeft.value);
|
|
|
+ getRainRange();
|
|
|
+});
|
|
|
+watch(endLeft, () => {
|
|
|
+ getNewRange(1, endLeft.value);
|
|
|
+ getRainRange();
|
|
|
+});
|
|
|
+const getNewRange = (index, value) => {
|
|
|
+ if (value >= 0 && value < 193) {
|
|
|
+ const data = new BigNumber(value).dividedBy(new BigNumber(49.4)).toFixed(1.6);
|
|
|
+ rainRange[index] = data;
|
|
|
+ } else if (value >= 193 && value < 386) {
|
|
|
+ const data = new BigNumber(value).minus(new BigNumber(193)).dividedBy(new BigNumber(36.4)).plus(new BigNumber(5.5)).toFixed(1);
|
|
|
+ rainRange[index] = data;
|
|
|
+ } else if (value >= 386 && value < 579) {
|
|
|
+ const data = new BigNumber(value).minus(new BigNumber(386)).dividedBy(new BigNumber(25.3)).plus(new BigNumber(10.8)).toFixed(1);
|
|
|
+ rainRange[index] = data;
|
|
|
+ } else if (value >= 579 && value < 772) {
|
|
|
+ const data = new BigNumber(value).minus(new BigNumber(579)).dividedBy(new BigNumber(26.4)).plus(new BigNumber(17.2)).toFixed(1);
|
|
|
+ rainRange[index] = data;
|
|
|
+ } else if (value >= 772 && value < 965) {
|
|
|
+ const data = new BigNumber(value).minus(new BigNumber(772)).dividedBy(new BigNumber(23.5)).plus(new BigNumber(24.5)).toFixed(1);
|
|
|
+ rainRange[index] = data;
|
|
|
+ } else if (value >= 965 && value < 1158) {
|
|
|
+ const data = new BigNumber(value).minus(new BigNumber(965)).dividedBy(new BigNumber(21.9)).plus(new BigNumber(32.7)).toFixed(1);
|
|
|
+ rainRange[index] = data;
|
|
|
+ } else if (value >= 1158 && value < 1351) {
|
|
|
+ const data = new BigNumber(value).minus(new BigNumber(1158)).dividedBy(new BigNumber(22.7)).plus(new BigNumber(41.5)).toFixed(1);
|
|
|
+ rainRange[index] = data;
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
const handleShowMore = () => {
|
|
|
showMore.value = true;
|
|
|
};
|
|
@@ -660,7 +713,6 @@ onMounted(() => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//.title {
|
|
|
// font-size: 60px;
|
|
|
// position: absolute;
|
|
@@ -672,7 +724,13 @@ onMounted(() => {
|
|
|
background-size: 100% 100%;
|
|
|
height: 114px;
|
|
|
width: 546px;
|
|
|
- overflow: scroll;
|
|
|
+ margin-left: 10px;
|
|
|
+ padding: 10px 14px;
|
|
|
+ .text-box {
|
|
|
+ color: #ffffff;
|
|
|
+ height: 94px;
|
|
|
+ overflow: auto;
|
|
|
+ }
|
|
|
}
|
|
|
.box-left {
|
|
|
display: flex;
|
|
@@ -709,23 +767,24 @@ onMounted(() => {
|
|
|
display: flex;
|
|
|
justify-content: center;
|
|
|
align-items: center;
|
|
|
+ flex: unset;
|
|
|
&:nth-child(1) {
|
|
|
width: 45px;
|
|
|
}
|
|
|
&:nth-child(2) {
|
|
|
- width: 70px;
|
|
|
+ width: 100px;
|
|
|
}
|
|
|
&:nth-child(3) {
|
|
|
- width: 90px;
|
|
|
- }
|
|
|
- &:nth-child(4) {
|
|
|
flex: 1;
|
|
|
}
|
|
|
- &:nth-child(5) {
|
|
|
- width: 21px;
|
|
|
+ &:nth-child(4) {
|
|
|
+ width: 90px;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+.rank1,
|
|
|
+.rank2,
|
|
|
+.rank3,
|
|
|
.rank-other {
|
|
|
width: 16px;
|
|
|
height: 16px;
|
|
@@ -751,4 +810,82 @@ onMounted(() => {
|
|
|
.rank-other {
|
|
|
background: url('@/assets/images/map/rightMenu/rainMonitor/other.png') no-repeat;
|
|
|
}
|
|
|
+.data-box2 {
|
|
|
+ width: 550px;
|
|
|
+ height: 90px;
|
|
|
+ background: url('@/assets/images/map/rightMenu/rainMonitor/dataBox.png') no-repeat bottom;
|
|
|
+ background-size: 550px 46px;
|
|
|
+ display: flex;
|
|
|
+ padding: 0 27px;
|
|
|
+ align-items: center;
|
|
|
+ .data-item {
|
|
|
+ display: flex;
|
|
|
+ flex: 1;
|
|
|
+ .item-right {
|
|
|
+ margin-left: 5px;
|
|
|
+ .text-box {
|
|
|
+ display: flex;
|
|
|
+ margin-bottom: 5px;
|
|
|
+ .text1 {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #ffffff;
|
|
|
+ }
|
|
|
+ .text2 {
|
|
|
+ font-size: 12px;
|
|
|
+ color: #a7ccdf;
|
|
|
+ margin-left: 5px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .text3,
|
|
|
+ .text4,
|
|
|
+ .text5,
|
|
|
+ .text6 {
|
|
|
+ font-size: 14px;
|
|
|
+ font-family: BEBAS-1;
|
|
|
+ /* 设置字体透明 */
|
|
|
+ color: transparent;
|
|
|
+ /* 使用 -webkit-background-clip 属性将背景剪裁至文本形状 */
|
|
|
+ -webkit-background-clip: text;
|
|
|
+ /* 非Webkit内核浏览器需要使用标准前缀 */
|
|
|
+ background-clip: text;
|
|
|
+ /* 把当前元素设置为行内块,以便能够应用背景 */
|
|
|
+ display: inline-block;
|
|
|
+ }
|
|
|
+ .text3 {
|
|
|
+ background-image: linear-gradient(to bottom, #ffffff 25%, #e58400 100%);
|
|
|
+ }
|
|
|
+ .text4 {
|
|
|
+ background-image: linear-gradient(to bottom, #ffffff 25%, #6fe695 100%);
|
|
|
+ }
|
|
|
+ .text5 {
|
|
|
+ background-image: linear-gradient(to bottom, #ffffff 25%, #00fde8 100%);
|
|
|
+ }
|
|
|
+ .text6 {
|
|
|
+ background-image: linear-gradient(to bottom, #ffffff 25%, #2b72d6 100%);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .icon1 {
|
|
|
+ width: 52px !important;
|
|
|
+ height: 47px !important;
|
|
|
+ background: url('@/assets/images/map/rightMenu/rainMonitor/icon1.png') no-repeat;
|
|
|
+ }
|
|
|
+ .icon2 {
|
|
|
+ background: url('@/assets/images/map/rightMenu/rainMonitor/icon2.png') no-repeat;
|
|
|
+ }
|
|
|
+ .icon3 {
|
|
|
+ background: url('@/assets/images/map/rightMenu/rainMonitor/icon3.png') no-repeat;
|
|
|
+ }
|
|
|
+ .icon4 {
|
|
|
+ background: url('@/assets/images/map/rightMenu/rainMonitor/icon4.png') no-repeat;
|
|
|
+ }
|
|
|
+ .icon1,
|
|
|
+ .icon2,
|
|
|
+ .icon3,
|
|
|
+ .icon4 {
|
|
|
+ width: 56px;
|
|
|
+ height: 51px;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|