|
@@ -1,204 +1,206 @@
|
|
|
<template>
|
|
|
- <div class="menu-content">
|
|
|
- <div class="container">
|
|
|
- <div class="gradient-text title">过去24小时瞬时风(格点)分布图</div>
|
|
|
- <div class="textBase" style="padding-left: 90px; padding-bottom: 20px; margin-left: 60px; margin-top: -30px">
|
|
|
- 09月08日 14:00-09月09日 14:00
|
|
|
- </div>
|
|
|
-
|
|
|
- <div style="height: 1200px; overflow: auto">
|
|
|
- <div style="margin-left: 30px">
|
|
|
- <span>风流场</span>
|
|
|
- <img :src="switchStatus ? switchOn : switchOff" style="margin-left: 30px; cursor: pointer;" @click="switchControl" />
|
|
|
- </div>
|
|
|
- <div class="box-left">
|
|
|
- <el-select
|
|
|
- v-model="selectedTime"
|
|
|
- placeholder="请选择时间"
|
|
|
- class="custom-select"
|
|
|
- popper-class="custom-select-popper"
|
|
|
- :teleported="false"
|
|
|
- style="width: 1490px; margin-left: 30px"
|
|
|
- @change="handleYearChange"
|
|
|
- >
|
|
|
- <el-option v-for="item in wind_time" :label="item.label" :value="item.value" />
|
|
|
- </el-select>
|
|
|
+ <div>
|
|
|
+ <div class="menu-content">
|
|
|
+ <div class="container">
|
|
|
+ <div class="gradient-text title">过去24小时瞬时风(格点)分布图</div>
|
|
|
+ <div class="textBase" style="padding-left: 90px; padding-bottom: 20px; margin-left: 60px; margin-top: -30px">
|
|
|
+ 09月08日 14:00-09月09日 14:00
|
|
|
</div>
|
|
|
|
|
|
- <div class="forecast—box">
|
|
|
- <div class="text-box">
|
|
|
- 瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
|
- 瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
|
- 瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
|
- 瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
|
- 瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
|
- 瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
|
+ <div style="height: 1200px; overflow: auto">
|
|
|
+ <div style="margin-left: 30px">
|
|
|
+ <span>风流场</span>
|
|
|
+ <img :src="switchStatus ? switchOn : switchOff" style="margin-left: 30px; cursor: pointer;" @click="switchControl" />
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div style="display: flex; align-items: center">
|
|
|
- <div class="title-box" style="margin-top: 30px; flex: 1">
|
|
|
- <div class="gradient-text">瞬时风站点排行(过去24小时)</div>
|
|
|
+ <div class="box-left">
|
|
|
+ <el-select
|
|
|
+ v-model="selectedTime"
|
|
|
+ placeholder="请选择时间"
|
|
|
+ class="custom-select"
|
|
|
+ popper-class="custom-select-popper"
|
|
|
+ :teleported="false"
|
|
|
+ style="width: 1490px; margin-left: 30px"
|
|
|
+ @change="handleYearChange"
|
|
|
+ >
|
|
|
+ <el-option v-for="item in wind_time" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
</div>
|
|
|
- <div class="btn-box">
|
|
|
- <div class="btn" @click="handleShowMore">
|
|
|
- <i class="more-icon"></i>
|
|
|
- <div class="btn-text">更多</div>
|
|
|
- </div>
|
|
|
- <div class="btn" @click="exportData">
|
|
|
- <i class="export-icon"></i>
|
|
|
- <div class="btn-text">导出</div>
|
|
|
+
|
|
|
+ <div class="forecast—box">
|
|
|
+ <div class="text-box">
|
|
|
+ 瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
|
+ 瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
|
+ 瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
|
+ 瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
|
+ 瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
|
+ 瞬时风站点排行(过去24小时)瞬时风站点排行(过去24小时)
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="alert-details">
|
|
|
- <div class="common-table">
|
|
|
- <div class="table-header">
|
|
|
- <div class="td">类型</div>
|
|
|
- <div class="td">
|
|
|
- <el-select
|
|
|
- v-model="selectedLevel"
|
|
|
- placeholder="县区"
|
|
|
- size="large"
|
|
|
- class="custom-select2"
|
|
|
- popper-class="custom-select-popper2"
|
|
|
- :teleported="false"
|
|
|
- style="width: 180px"
|
|
|
- @change="fetchAlertDetails"
|
|
|
- >
|
|
|
- <el-option label="全部" value="" />
|
|
|
- <el-option v-for="item in alertLevels" :key="item.value" :label="item.name" :value="item.value" />
|
|
|
- </el-select>
|
|
|
+ <div style="display: flex; align-items: center">
|
|
|
+ <div class="title-box" style="margin-top: 30px; flex: 1">
|
|
|
+ <div class="gradient-text">瞬时风站点排行(过去24小时)</div>
|
|
|
+ </div>
|
|
|
+ <div class="btn-box">
|
|
|
+ <div class="btn" @click="handleShowMore">
|
|
|
+ <i class="more-icon"></i>
|
|
|
+ <div class="btn-text">更多</div>
|
|
|
+ </div>
|
|
|
+ <div class="btn" @click="exportData">
|
|
|
+ <i class="export-icon"></i>
|
|
|
+ <div class="btn-text">导出</div>
|
|
|
</div>
|
|
|
- <div class="td">站址</div>
|
|
|
- <div class="td">风速(m/s)</div>
|
|
|
</div>
|
|
|
- <div v-for="(item, index) in tableData" :key="index">
|
|
|
- <div class="tr">
|
|
|
+ </div>
|
|
|
+ <div class="alert-details">
|
|
|
+ <div class="common-table">
|
|
|
+ <div class="table-header">
|
|
|
+ <div class="td">类型</div>
|
|
|
<div class="td">
|
|
|
- <div :class="getRankClass(item.id)">{{ item.id }}</div>
|
|
|
+ <el-select
|
|
|
+ v-model="selectedLevel"
|
|
|
+ placeholder="县区"
|
|
|
+ size="large"
|
|
|
+ class="custom-select2"
|
|
|
+ popper-class="custom-select-popper2"
|
|
|
+ :teleported="false"
|
|
|
+ style="width: 180px"
|
|
|
+ @change="fetchAlertDetails"
|
|
|
+ >
|
|
|
+ <el-option label="全部" value="" />
|
|
|
+ <el-option v-for="item in alertLevels" :key="item.value" :label="item.name" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
</div>
|
|
|
- <div class="td">{{ item.district }}</div>
|
|
|
- <div class="td">{{ item.address }}</div>
|
|
|
- <div class="td">
|
|
|
- <div class="gradient-text">{{ item.speed }}</div>
|
|
|
+ <div class="td">站址</div>
|
|
|
+ <div class="td">风速(m/s)</div>
|
|
|
+ </div>
|
|
|
+ <div v-for="(item, index) in tableData" :key="index">
|
|
|
+ <div class="tr">
|
|
|
+ <div class="td">
|
|
|
+ <div :class="getRankClass(item.id)">{{ item.id }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="td">{{ item.district }}</div>
|
|
|
+ <div class="td">{{ item.address }}</div>
|
|
|
+ <div class="td">
|
|
|
+ <div class="gradient-text">{{ item.speed }}</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div style="display: flex; align-items: center">
|
|
|
- <div class="title-box" style="margin-top: 30px; flex: 1">
|
|
|
- <div class="gradient-text">空间分析</div>
|
|
|
- </div>
|
|
|
- <div class="btn-box">
|
|
|
- <div class="btn" @click="handleToShowDrawTools">
|
|
|
- <i class="more-icon"></i>
|
|
|
- <div class="btn-text">{{ !openSelect ? '开启圈选' : '结束圈选' }}</div>
|
|
|
+ <div style="display: flex; align-items: center">
|
|
|
+ <div class="title-box" style="margin-top: 30px; flex: 1">
|
|
|
+ <div class="gradient-text">空间分析</div>
|
|
|
</div>
|
|
|
- <div class="btn" @click="exportData">
|
|
|
- <i class="export-icon"></i>
|
|
|
- <div class="btn-text">导出</div>
|
|
|
+ <div class="btn-box">
|
|
|
+ <div class="btn" @click="handleToShowDrawTools">
|
|
|
+ <i class="more-icon"></i>
|
|
|
+ <div class="btn-text">{{ !openSelect ? '开启圈选' : '结束圈选' }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="btn" @click="exportData">
|
|
|
+ <i class="export-icon"></i>
|
|
|
+ <div class="btn-text">导出</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="data-box">
|
|
|
- <div>
|
|
|
- <div class="line1">
|
|
|
- <div class="line-item">2-3</div>
|
|
|
- <div class="line-item">4-5</div>
|
|
|
- <div class="line-item">6-7</div>
|
|
|
- <div class="line-item">8-9</div>
|
|
|
- <div class="line-item">10-11</div>
|
|
|
- <div class="line-item">12-13</div>
|
|
|
- <div class="line-item">>=14级</div>
|
|
|
- </div>
|
|
|
- <div ref="lineRef" class="line2" @mousemove="handleMouseMove" @mouseup="handleMouseUp" @mouseleave="handleMouseUp">
|
|
|
- <div class="line-item"></div>
|
|
|
- <div class="line-item"></div>
|
|
|
- <div class="line-item"></div>
|
|
|
- <div class="line-item"></div>
|
|
|
- <div class="line-item"></div>
|
|
|
- <div class="line-item"></div>
|
|
|
- <div class="line-item"></div>
|
|
|
- <div
|
|
|
- class="dot"
|
|
|
- :style="{ left: startLeft + 'px' }"
|
|
|
- @mousedown="
|
|
|
+ <div class="data-box">
|
|
|
+ <div>
|
|
|
+ <div class="line1">
|
|
|
+ <div class="line-item">2-3</div>
|
|
|
+ <div class="line-item">4-5</div>
|
|
|
+ <div class="line-item">6-7</div>
|
|
|
+ <div class="line-item">8-9</div>
|
|
|
+ <div class="line-item">10-11</div>
|
|
|
+ <div class="line-item">12-13</div>
|
|
|
+ <div class="line-item">>=14级</div>
|
|
|
+ </div>
|
|
|
+ <div ref="lineRef" class="line2" @mousemove="handleMouseMove" @mouseup="handleMouseUp" @mouseleave="handleMouseUp">
|
|
|
+ <div class="line-item"></div>
|
|
|
+ <div class="line-item"></div>
|
|
|
+ <div class="line-item"></div>
|
|
|
+ <div class="line-item"></div>
|
|
|
+ <div class="line-item"></div>
|
|
|
+ <div class="line-item"></div>
|
|
|
+ <div class="line-item"></div>
|
|
|
+ <div
|
|
|
+ class="dot"
|
|
|
+ :style="{ left: startLeft + 'px' }"
|
|
|
+ @mousedown="
|
|
|
(e) => {
|
|
|
handleMouseDown(e, 'start');
|
|
|
}
|
|
|
"
|
|
|
- ></div>
|
|
|
- <div
|
|
|
- class="dot"
|
|
|
- :style="{ left: endLeft + 'px' }"
|
|
|
- @mousedown="
|
|
|
+ ></div>
|
|
|
+ <div
|
|
|
+ class="dot"
|
|
|
+ :style="{ left: endLeft + 'px' }"
|
|
|
+ @mousedown="
|
|
|
(e) => {
|
|
|
handleMouseDown(e, 'end');
|
|
|
}
|
|
|
"
|
|
|
- ></div>
|
|
|
- </div>
|
|
|
- <div class="line3">
|
|
|
- <div class="line-item">1.6</div>
|
|
|
- <div class="line-item">5.5</div>
|
|
|
- <div class="line-item">10.8</div>
|
|
|
- <div class="line-item">17.2</div>
|
|
|
- <div class="line-item">24.5</div>
|
|
|
- <div class="line-item">32.7</div>
|
|
|
- <div class="line-item">
|
|
|
- <div>41.5</div>
|
|
|
- <div>(m/s)</div>
|
|
|
+ ></div>
|
|
|
+ </div>
|
|
|
+ <div class="line3">
|
|
|
+ <div class="line-item">1.6</div>
|
|
|
+ <div class="line-item">5.5</div>
|
|
|
+ <div class="line-item">10.8</div>
|
|
|
+ <div class="line-item">17.2</div>
|
|
|
+ <div class="line-item">24.5</div>
|
|
|
+ <div class="line-item">32.7</div>
|
|
|
+ <div class="line-item">
|
|
|
+ <div>41.5</div>
|
|
|
+ <div>(m/s)</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="analyze-data-container">
|
|
|
- <div class="item" @click="handleShowDetail">
|
|
|
- <div class="item-label">行政镇(个)</div>
|
|
|
- <div class="item-value">{{ validateNum(analysisData.townCount) }}</div>
|
|
|
- </div>
|
|
|
- <div class="item" @click="handleShowDetail">
|
|
|
- <div class="item-label">行政村(个)</div>
|
|
|
- <div class="item-value">{{ validateNum(analysisData.villageCount) }}</div>
|
|
|
- </div>
|
|
|
- <div class="item" @click="handleShowDetail">
|
|
|
- <div class="item-label">面积(km²)</div>
|
|
|
- <div class="item-value">{{ validateNum(analysisData.areaSize) }}</div>
|
|
|
- </div>
|
|
|
- <div class="item" @click="handleShowDetail">
|
|
|
- <div class="item-label">常住人口(万)</div>
|
|
|
- <div class="item-value">{{ validateNum(analysisData.populationSize) }}</div>
|
|
|
- </div>
|
|
|
- <div class="item" @click="handleShowDetail">
|
|
|
- <div class="item-label">GDP(万元)</div>
|
|
|
- <div class="item-value">{{ validateNum(analysisData.GDP) }}</div>
|
|
|
+ <div class="analyze-data-container">
|
|
|
+ <div class="item" @click="handleShowDetail">
|
|
|
+ <div class="item-label">行政镇(个)</div>
|
|
|
+ <div class="item-value">{{ validateNum(analysisData.townCount) }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="item" @click="handleShowDetail">
|
|
|
+ <div class="item-label">行政村(个)</div>
|
|
|
+ <div class="item-value">{{ validateNum(analysisData.villageCount) }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="item" @click="handleShowDetail">
|
|
|
+ <div class="item-label">面积(km²)</div>
|
|
|
+ <div class="item-value">{{ validateNum(analysisData.areaSize) }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="item" @click="handleShowDetail">
|
|
|
+ <div class="item-label">常住人口(万)</div>
|
|
|
+ <div class="item-value">{{ validateNum(analysisData.populationSize) }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="item" @click="handleShowDetail">
|
|
|
+ <div class="item-label">GDP(万元)</div>
|
|
|
+ <div class="item-value">{{ validateNum(analysisData.GDP) }}</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <WindSpeedRank v-if="showMore" v-model="showMore" />
|
|
|
- <Dialog v-model="showDetail" title="空间分析" hide-footer>
|
|
|
- <div class="common-table">
|
|
|
- <div class="table-header">
|
|
|
- <div class="td">序号</div>
|
|
|
- <div class="td">行政镇</div>
|
|
|
- <div class="td">行政村</div>
|
|
|
- <div class="td">常住人口(万)</div>
|
|
|
- <div class="td">面积(km2)</div>
|
|
|
- <div class="td">GDP(亿元)</div>
|
|
|
- </div>
|
|
|
- <div v-for="(item, index) in analysisData.townData" :key="index" class="tr">
|
|
|
- <div class="td">{{ index + 1 }}</div>
|
|
|
- <div class="td">{{ item.townName }}</div>
|
|
|
- <div class="td">{{ item.villageName ? item.villageName : '-' }}</div>
|
|
|
- <div class="td">{{ item.populationSize }}</div>
|
|
|
- <div class="td">{{ item.areaSize }}</div>
|
|
|
- <div class="td">{{ item.GDP }}</div>
|
|
|
+ <WindSpeedRank v-if="showMore" v-model="showMore" />
|
|
|
+ <Dialog v-model="showDetail" title="空间分析" hide-footer>
|
|
|
+ <div class="common-table">
|
|
|
+ <div class="table-header">
|
|
|
+ <div class="td">序号</div>
|
|
|
+ <div class="td">行政镇</div>
|
|
|
+ <div class="td">行政村</div>
|
|
|
+ <div class="td">常住人口(万)</div>
|
|
|
+ <div class="td">面积(km2)</div>
|
|
|
+ <div class="td">GDP(亿元)</div>
|
|
|
+ </div>
|
|
|
+ <div v-for="(item, index) in analysisData.townData" :key="index" class="tr">
|
|
|
+ <div class="td">{{ index + 1 }}</div>
|
|
|
+ <div class="td">{{ item.townName }}</div>
|
|
|
+ <div class="td">{{ item.villageName ? item.villageName : '-' }}</div>
|
|
|
+ <div class="td">{{ item.populationSize }}</div>
|
|
|
+ <div class="td">{{ item.areaSize }}</div>
|
|
|
+ <div class="td">{{ item.GDP }}</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </Dialog>
|
|
|
+ </Dialog>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|