|
@@ -0,0 +1,245 @@
|
|
|
|
|
+<template>
|
|
|
|
|
+ <div class="water-station-popup-container" v-if="visible">
|
|
|
|
|
+ <div class="water-station-popup-title">
|
|
|
|
|
+ <span class="title-text">水文监测点</span>
|
|
|
|
|
+ <img src="@/assets/image/common/close.png" style="cursor: pointer" alt="" @click="visible = false" />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="water-station-popup-content">
|
|
|
|
|
+ <el-radio-group v-model="typeVal" size="mini">
|
|
|
|
|
+ <el-radio-button label="1">实时监测信息</el-radio-button>
|
|
|
|
|
+ <el-radio-button label="2">周边监控查询</el-radio-button>
|
|
|
|
|
+ </el-radio-group>
|
|
|
|
|
+ <div class="monitoring-info-container" v-if="typeVal === '1'">
|
|
|
|
|
+ <div class="info-panel">
|
|
|
|
|
+ <el-row :gutter="10">
|
|
|
|
|
+ <el-col :span="8" class="label-col">
|
|
|
|
|
+ <div class="label">实时高程:</div>
|
|
|
|
|
+ <div class="value"><span>300</span><span>m</span></div>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="8" class="label-col">
|
|
|
|
|
+ <div class="label">1小时雨量:</div>
|
|
|
|
|
+ <div class="value"><span>300</span><span>mm</span></div>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="8" class="label-col">
|
|
|
|
|
+ <div class="label">实时流量:</div>
|
|
|
|
|
+ <div class="value"><span>300</span><span>m³/s</span></div>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ <el-row :gutter="10">
|
|
|
|
|
+ <el-col :span="8" class="label-col">
|
|
|
|
|
+ <div class="label">昨日最高:</div>
|
|
|
|
|
+ <div class="value"><span>0</span><span>m</span></div>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="8" class="label-col">
|
|
|
|
|
+ <div class="label">当天雨量:</div>
|
|
|
|
|
+ <div class="value"><span>300</span><span>mm</span></div>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="8" class="label-col">
|
|
|
|
|
+ <div class="label">实时流速:</div>
|
|
|
|
|
+ <div class="value"><span>0</span><span>m³/s</span></div>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="info-chart">
|
|
|
|
|
+ <LineChart style="height: 2.05rem" />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="monitor-container" v-else>
|
|
|
|
|
+ <div class="monitor-search">
|
|
|
|
|
+ <span>查询半径</span>
|
|
|
|
|
+ <div class="input-bg">
|
|
|
|
|
+ <el-input v-model="radius" size="mini" placeholder="输入半径"></el-input>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <span> km </span>
|
|
|
|
|
+ <el-button type="primary" size="mini" @click="search">查询</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="monitor-list">
|
|
|
|
|
+ <ul>
|
|
|
|
|
+ <li v-for="(item, index) in monitorList" :key="index">
|
|
|
|
|
+ <span>新建18米-点位32332432{{ item }}</span>
|
|
|
|
|
+ </li>
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="monitor-video">
|
|
|
|
|
+ <!-- <EasyPlayer
|
|
|
|
|
+ :ref="item.videoId"
|
|
|
|
|
+ :playerName="item.sources[0].camera.name"
|
|
|
|
|
+ :videoUrl="item.sources[0].src"
|
|
|
|
|
+ class="video-player screenshot"
|
|
|
|
|
+ live
|
|
|
|
|
+ speed
|
|
|
|
|
+ :easyStretch="easyStretch"
|
|
|
|
|
+ :has-audio="!item.sources[0].src.includes('.flv')"
|
|
|
|
|
+ :reconnection="true"
|
|
|
|
|
+ @click.native.stop
|
|
|
|
|
+ /> -->
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</template>
|
|
|
|
|
+
|
|
|
|
|
+<script>
|
|
|
|
|
+import LineChart from './line-chart'
|
|
|
|
|
+// import { getCameraDeviceList } from '@/api/cameraApi'
|
|
|
|
|
+import { warning } from '@/utils'
|
|
|
|
|
+let graphicsLayer = null
|
|
|
|
|
+export default {
|
|
|
|
|
+ name: 'WaterStationPopup',
|
|
|
|
|
+ components: { LineChart },
|
|
|
|
|
+ data() {
|
|
|
|
|
+ return {
|
|
|
|
|
+ visible: false,
|
|
|
|
|
+ typeVal: '1',
|
|
|
|
|
+ radius: '',
|
|
|
|
|
+ monitorList: [1, 2, 3, 4, 5, 6, 7, 9, 66, 67, 67, 76],
|
|
|
|
|
+ stationGraphic: {}
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ mounted() {
|
|
|
|
|
+ this.$globalEventBus.$on('clickWaterStation', (data) => {
|
|
|
|
|
+ this.visible = true
|
|
|
|
|
+ this.stationGraphic = data.graphic
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ destroyed() {
|
|
|
|
|
+ this.$globalEventBus.$off('clickWaterStation')
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ search() {
|
|
|
|
|
+ if (this.radius === '') {
|
|
|
|
|
+ warning('请输入查询半径')
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ this.addCameraToMap()
|
|
|
|
|
+ // const params = { longitude: 113.07634141539151, latitude: 28.18518024316094, visualRadius: this.radius * 1000 }
|
|
|
|
|
+ // getCameraDeviceList(params).then((res) => {
|
|
|
|
|
+ // console.log(res)
|
|
|
|
|
+ // })
|
|
|
|
|
+ },
|
|
|
|
|
+ addCameraToMap() {
|
|
|
|
|
+ if (graphicsLayer) {
|
|
|
|
|
+ window.map.removeLayer(graphicsLayer)
|
|
|
|
|
+ }
|
|
|
|
|
+ graphicsLayer = new this.mars3d.layer.GraphicLayer()
|
|
|
|
|
+ window.map.addLayer(graphicsLayer)
|
|
|
|
|
+ const graphic = new this.mars3d.graphic.CircleEntity({
|
|
|
|
|
+ position: this.stationGraphic.coordinate,
|
|
|
|
|
+ style: {
|
|
|
|
|
+ radius: this.radius * 1000,
|
|
|
|
|
+ color: '#498EE3',
|
|
|
|
|
+ opacity: 0.2,
|
|
|
|
|
+ outline: true,
|
|
|
|
|
+ outlineWidth: 1,
|
|
|
|
|
+ outlineColor: '#4D7BFF',
|
|
|
|
|
+ clampToGround: true
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ graphicsLayer.addGraphic(graphic)
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+</script>
|
|
|
|
|
+
|
|
|
|
|
+<style scoped lang="scss">
|
|
|
|
|
+.water-station-popup-container {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: 50%;
|
|
|
|
|
+ left: 50%;
|
|
|
|
|
+ transform: translate(-50%, -80%);
|
|
|
|
|
+ width: px-to-rem(600);
|
|
|
|
|
+ z-index: 9999;
|
|
|
|
|
+ .water-station-popup-title {
|
|
|
|
|
+ background: url('@/assets/image/common/popup_title_bg.png') no-repeat;
|
|
|
|
|
+ background-size: 100% 100%;
|
|
|
|
|
+ height: px-to-rem(39);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding: 0 px-to-rem(20);
|
|
|
|
|
+ font-size: px-to-rem(16);
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ .title-text {
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ margin-left: px-to-rem(20);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .water-station-popup-content {
|
|
|
|
|
+ height: px-to-rem(354);
|
|
|
|
|
+ background: rgba(#233d6c, 0.8);
|
|
|
|
|
+ padding: px-to-rem(10);
|
|
|
|
|
+ :deep(.el-radio-button__inner) {
|
|
|
|
|
+ background: transparent;
|
|
|
|
|
+ color: #4f9fff;
|
|
|
|
|
+ border-color: #4f9fff;
|
|
|
|
|
+ font-size: px-to-rem(14);
|
|
|
|
|
+ }
|
|
|
|
|
+ :deep(.el-radio-button__orig-radio:checked + .el-radio-button__inner) {
|
|
|
|
|
+ background-color: #4f9fff;
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ }
|
|
|
|
|
+ .monitoring-info-container {
|
|
|
|
|
+ .info-panel {
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ margin: px-to-rem(10);
|
|
|
|
|
+ .label-col {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ margin-bottom: px-to-rem(10);
|
|
|
|
|
+ font-size: px-to-rem(16);
|
|
|
|
|
+ .value {
|
|
|
|
|
+ & > span:nth-child(1) {
|
|
|
|
|
+ color: #488de1;
|
|
|
|
|
+ margin-right: px-to-rem(6);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .monitor-container {
|
|
|
|
|
+ .monitor-search {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ margin: px-to-rem(10);
|
|
|
|
|
+ border-bottom: px-to-rem(1) solid #4d628b;
|
|
|
|
|
+ .input-bg {
|
|
|
|
|
+ margin: px-to-rem(10) 0;
|
|
|
|
|
+ background: url('@/assets/image/safety-inspection/search-bg.png') no-repeat 0 0 / 100% 100%;
|
|
|
|
|
+ :deep(.el-input__inner) {
|
|
|
|
|
+ background: transparent;
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ border: none;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ span {
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ margin-right: px-to-rem(10);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .monitor-list {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ ul {
|
|
|
|
|
+ width: px-to-rem(180);
|
|
|
|
|
+ height: px-to-rem(230);
|
|
|
|
|
+ overflow-y: auto;
|
|
|
|
|
+ border-right: px-to-rem(1) solid #4d628b;
|
|
|
|
|
+ li {
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ padding: px-to-rem(10);
|
|
|
|
|
+ height: px-to-rem(36);
|
|
|
|
|
+ line-height: px-to-rem(16);
|
|
|
|
|
+ font-size: px-to-rem(16);
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ &:hover {
|
|
|
|
|
+ background-color: #498ee3;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|