|
@@ -6,7 +6,17 @@
|
|
|
<device-info ref="device-info" />
|
|
|
</div>
|
|
|
<div class="main">
|
|
|
- <Map ref="map" />
|
|
|
+ <Map ref="map" class="map-component" />
|
|
|
+ <div class="wave-wrap">
|
|
|
+ <el-carousel indicator-position="none" :autoplay="false" arrow="always" @change="showWave">
|
|
|
+ <el-carousel-item v-for="(item,idx) in sensorlist" :key="idx" class="carousel-item" height="100%">
|
|
|
+ <div class="wave-item">
|
|
|
+ <div class="waveChart-title">{{ item.goafSensorName }}</div>
|
|
|
+ <WaveChart :ref="'wave-chart-'+idx" key="idx" :chart-id="'wave-chart-'+idx" />
|
|
|
+ </div>
|
|
|
+ </el-carousel-item>
|
|
|
+ </el-carousel>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="side-right">
|
|
|
<sensor-status ref="sensor-status" />
|
|
@@ -15,17 +25,17 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
-import mixins from '@/mixin/mqtt.js'
|
|
|
+// import mixins from '@/mixin/mqtt.js'
|
|
|
import { Uint8ArrayToString } from '@/utils'
|
|
|
-
|
|
|
-import { getSensorlist } from '@/api/goaf/sensor'
|
|
|
+import { getSensorlist, getWavedata } from '@/api/goaf/sensor'
|
|
|
import {
|
|
|
SensorStatus,
|
|
|
SensorWarningInfo,
|
|
|
Map,
|
|
|
SensorStatusCircle,
|
|
|
DeviceState,
|
|
|
- DeviceInfo
|
|
|
+ DeviceInfo,
|
|
|
+ WaveChart
|
|
|
} from './components'
|
|
|
export default {
|
|
|
name: 'Home',
|
|
@@ -35,12 +45,14 @@ export default {
|
|
|
Map,
|
|
|
SensorStatusCircle,
|
|
|
DeviceState,
|
|
|
- DeviceInfo
|
|
|
+ DeviceInfo,
|
|
|
+ WaveChart
|
|
|
},
|
|
|
- mixins: [mixins],
|
|
|
+ // mixins: [mixins],
|
|
|
data() {
|
|
|
return {
|
|
|
reportData: [],
|
|
|
+ sensorlist: [],
|
|
|
WarniStatisticsdata: {
|
|
|
fish: 100
|
|
|
}
|
|
@@ -52,9 +64,6 @@ export default {
|
|
|
methods: {
|
|
|
init() {
|
|
|
this.initChart()
|
|
|
- this.initMqtt({
|
|
|
- mqttResponse: this.mqttResponse
|
|
|
- })
|
|
|
getSensorlist().then((res) => {
|
|
|
const { data } = res
|
|
|
this.$nextTick(() => {
|
|
@@ -62,6 +71,19 @@ export default {
|
|
|
this.$refs['sensor-status-circle'].loadData(data)
|
|
|
this.$refs['device-info'].loadData(data)
|
|
|
})
|
|
|
+ let tableData = []
|
|
|
+ for (let i = 0; i < data.length; i++) {
|
|
|
+ tableData = tableData.concat(data[i].goafSensorData.map((item, index) => {
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ goafDevName: data[i].goafDevName,
|
|
|
+ goafDevTypename: data[i].goafDevTypename,
|
|
|
+ index, len: data[i].goafSensorData.length
|
|
|
+ }
|
|
|
+ }))
|
|
|
+ }
|
|
|
+ this.sensorlist = tableData
|
|
|
+ this.showWave(0)
|
|
|
})
|
|
|
this.$nextTick(() => {
|
|
|
this.$refs['sensor-warning-info'].loadData()
|
|
@@ -73,6 +95,21 @@ export default {
|
|
|
this.$refs['sensor-status'].reload()
|
|
|
})
|
|
|
},
|
|
|
+ showWave(index) {
|
|
|
+ if (this.sensorlist.length < 1) return
|
|
|
+ const params = this.sensorlist[index]
|
|
|
+ const chartName = 'wave-chart-' + index
|
|
|
+ getWavedata(params.goafDataId).then((resp) => {
|
|
|
+ const { data } = resp
|
|
|
+ const x = data.tdWaveValueX.split(',').map(item => parseFloat((item / 100).toFixed(2)))
|
|
|
+ const y = data.tdWaveValueY.split(',').map(item => parseFloat((item / 100).toFixed(2)))
|
|
|
+ const z = data.tdWaveValueZ.split(',').map(item => parseFloat((item / 100).toFixed(2)))
|
|
|
+ const params = { x, y, z }
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs[chartName][0].show(params)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
mqttResponse(topic, message) {
|
|
|
if (!message.includes('{')) {
|
|
|
return
|
|
@@ -88,6 +125,11 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
+<style>
|
|
|
+.leaflet-control-container{
|
|
|
+ display: none;
|
|
|
+}
|
|
|
+</style>
|
|
|
<style lang="scss" scoped>
|
|
|
::v-deep.home-view{
|
|
|
width: 100%;
|
|
@@ -311,12 +353,25 @@ export default {
|
|
|
height: 100%;
|
|
|
flex:1;
|
|
|
padding: 0 14px;
|
|
|
- #map{
|
|
|
+ .map-component{
|
|
|
+ height: 66.6%;
|
|
|
+ }
|
|
|
+ .wave-wrap{
|
|
|
+ height: 33.3%;
|
|
|
+ box-shadow: 0 0 3px rgb(133, 132, 132);
|
|
|
+ border-top: 1px solid #eaeaea;
|
|
|
+ background-color: #fff;
|
|
|
+ .waveChart-title{
|
|
|
width: 100%;
|
|
|
+ position: absolute;
|
|
|
+ padding: 5px;
|
|
|
+ background-color: #fff;
|
|
|
+ color: #000;
|
|
|
+ }
|
|
|
+ .wave-item{
|
|
|
height: 100%;
|
|
|
- // background-image: url(./images/home/map.png);
|
|
|
- background-size: 100% 100%;
|
|
|
- background-repeat: no-repeat;
|
|
|
+ background-color: #fff;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|