From 12ef397af7532693c8c9ca64911994c8fad628b1 Mon Sep 17 00:00:00 2001
From: xiebin <123456>
Date: Wed, 24 Aug 2022 11:47:14 +0800
Subject: [PATCH] 基地设备总览取消选择地块,增加显示基地所有设备,优化点击事件

---
 src/views/equipment/index.vue |  212 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 129 insertions(+), 83 deletions(-)

diff --git a/src/views/equipment/index.vue b/src/views/equipment/index.vue
index c1b8e23..3d7cedf 100644
--- a/src/views/equipment/index.vue
+++ b/src/views/equipment/index.vue
@@ -8,20 +8,21 @@
                 </span>
             </div>
             <div class="title">
-                <el-select
-                    class="equipment-plot-select"
-                    v-model="plotName"
-                    placeholder="选择地块"
-                    @change="landChangeValue($event)"
-                >
-                    <el-option
-                        v-for="(item, index) in plotList"
-                        :key="index"
-                        :label="item.landName"
-                        :value="item.id"
-                    ></el-option>
-                </el-select>
-<!-- 
+                    {{currentDetails.farmName}}
+<!--                <el-select-->
+<!--                    class="equipment-plot-select"-->
+<!--                    v-model="plotName"-->
+<!--                    placeholder="选择地块"-->
+<!--                    @change="landChangeValue($event)"-->
+<!--                >-->
+<!--                    <el-option-->
+<!--                        v-for="(item, index) in plotList"-->
+<!--                        :key="index"-->
+<!--                        :label="item.landName"-->
+<!--                        :value="item.id"-->
+<!--                    ></el-option>-->
+<!--                </el-select>-->
+<!--
                 <el-select
                     class="equipment-plot-select"
                     v-model="farmName"
@@ -217,14 +218,14 @@
 
 <script>
 
+// import {
+//     getLandList
+// } from '@/api/land/land'
+// import {
+//     getFarmList
+// } from '@/api/farm/farmingrecord'
 import {
-    getLandList
-} from '@/api/land/land'
-import {
-    getFarmList
-} from '@/api/farm/farmingrecord'
-import {
-    getStationAndVideoByLandId,
+    getStationAndVideoByLandId, getStationAndVideoList,
     getStationDateByStcd
 } from '@/api/equipment/equipment'
 import flvjs from 'flv.js'
@@ -234,12 +235,13 @@
 export default {
     data () {
         return {
+            flvPlayer: null,
             plotNameObj: {},
             plotName: '',
             plotList: [],
-            farmNameObj:{},
-            farmName:"",
-            farmList:[],
+            farmNameObj: {},
+            farmName: '',
+            farmList: [],
             currentDetails: {},
             echartsBosShow: false,
             vidList: [],
@@ -252,7 +254,9 @@
     },
     created () {
         this.getParams()
-        this.getLandList()
+        this.getStationAndVideoList()
+        // 获取地块列表,目前抛弃方法,换成显示基地名称
+        // this.getLandList()
         // this.getFarmList()
     },
     mounted () {
@@ -402,17 +406,45 @@
             this.echartsBosShow = true
         },
         // 地块change方法
-        landChangeValue (value) {
-            this.getStationAndVideoByLandId(value, 'ALL')
-        },
+        // landChangeValue (value) {
+        //     this.getStationAndVideoByLandId(value, 'ALL')
+        // },
+
         // 获取地块列表
-        getLandList () {
-            const farmId = this.currentDetails.id
-            getLandList(farmId).then((res) => {
-                this.plotList = res.data.data
-                this.plotNameObj = this.plotList[0]
-                this.plotName = this.plotNameObj.id
-                this.getStationAndVideoByLandId(this.plotNameObj.id, 'ALL')
+        // getLandList () {
+        //     const farmId = this.currentDetails.id
+        //     getLandList(farmId).then((res) => {
+        //         this.plotList = res.data.data
+        //         this.plotNameObj = this.plotList[0]
+        //         this.plotName = this.plotNameObj.id
+        //         this.getStationAndVideoByLandId(this.plotNameObj.id, 'ALL')
+        //     })
+        // },
+
+        // 获取基地所有监控设备和监测设备
+        getStationAndVideoList () {
+            const params = {
+                type: 'ALL',
+                farmId: this.currentDetails.id
+            }
+            getStationAndVideoList(params).then((res) => {
+                if (res.data.code == 200) {
+                    this.isChoose = 0
+                    this.vidList = res.data.data.vidList
+                    this.staList = res.data.data.staList
+                    if (this.staList != null && this.staList.length > 0) {
+                        this.$nextTick(() => {
+                            this.getStationDateByStcd(this.staList[0].stcd)
+                        })
+                    } else {
+                        this.stationData = []
+                    }
+                    if (this.vidList != null) {
+                        this.$nextTick(() => {
+                            this.playFlvVideo(this.vidList)
+                        })
+                    }
+                }
             })
         },
         // farmChangeValue(value){
@@ -442,37 +474,38 @@
         // },
 
         // 根据地块id查询监控和监测设备
-        getStationAndVideoByLandId (id, type) {
-            getStationAndVideoByLandId(id, type).then((res) => {
-                if (res.data.code == 200) {
-                    this.isChoose = 0
-                    this.vidList = res.data.data.vidList
-                    this.staList = res.data.data.staList
-                    if (this.staList != null && this.staList.length > 0) {
-                        this.$nextTick(() => {
-                            this.getStationDateByStcd(this.staList[0].stcd)
-                        })
-                    } else {
-                        this.stationData = []
-                    }
-                    if (this.vidList != null) {
-                        console.log('111112222', this.vidList[0].wssFlv)
-                        this.$nextTick(() => {
-                            this.playFlvVideo(this.vidList)
-                            console.log('555666777', this.vidList)//true
-                        })
-                    }
-                }
-            })
-        },
+        // getStationAndVideoByLandId (id, type) {
+        //     getStationAndVideoByLandId(id, type).then((res) => {
+        //         if (res.data.code == 200) {
+        //             this.isChoose = 0
+        //             this.vidList = res.data.data.vidList
+        //             this.staList = res.data.data.staList
+        //             if (this.staList != null && this.staList.length > 0) {
+        //                 this.$nextTick(() => {
+        //                     this.getStationDateByStcd(this.staList[0].stcd)
+        //                 })
+        //             } else {
+        //                 this.stationData = []
+        //             }
+        //             if (this.vidList != null) {
+        //                 this.$nextTick(() => {
+        //                     this.playFlvVideo(this.vidList)
+        //                 })
+        //             }
+        //         }
+        //     })
+        // },
+
         // 点击获取对应监测设备数据
         getStaList (index, id) {
             this.isChoose = index
-            let loadingInstance = Loading.service({ fullscreen: false, target: '.nape-boxs', text: '正在加载数据...', background: '#091a2b' })
-            this.getStationDateByStcd(id)
+            this.stationData = [] // 清空数据
+            const loadingInstance = Loading.service({ fullscreen: false, target: '.nape-boxs', text: '正在加载数据...', background: '#091a2b' })
+
             this.$nextTick(() => {
                 setTimeout(() => {
                     loadingInstance.close()
+                    this.getStationDateByStcd(id)
                 }, 2000)
             })
         },
@@ -538,32 +571,45 @@
         },
         // flv视频播放
         playFlvVideo (arr) {
-            console.log('778899', arr)//true
-            console.log('77889900wssFlv', arr[0].wssFlv)//true
-            console.log('77889900flv', arr[0].flv)//true
-            console.log('77889900webRtc', arr[0].webRtc)//true
+            // 先销毁
+            if (this.flvPlayer) {
+                this.flvPlayer.pause()
+                this.flvPlayer.unload()
+                this.flvPlayer.detachMediaElement()
+                this.flvPlayer.destroy()
+                this.flvPlayer = null
+            }
             if (flvjs.isSupported()) {
-                var arr = this.vidList
+                // var arr = this.vidList
                 arr.forEach((item, index) => {
-                    var videoElement = document.getElementById(`videoElement${index}`)
-                    console.log('335588', arr[index].wssFlv)//true
-                    var flvPlayer = flvjs.createPlayer({
-                        type: 'flv',
-                        isLive: true,
-                        hasAudio: false,
-                        stashInitialSize: 128,
-                        url: arr[index].wssFlv
-                        // url: arr[index].wssFlv
-                        // url: 'https://www.ainfo.top:700/rtp/34020000001110000301_34020000001320000001.flv'
+                    console.log(item.wssFlv,11112233)
+                    if (item.wssFlv) {
+                        var videoElement = document.getElementById(`videoElement${index}`)
+                        this.flvPlayer = flvjs.createPlayer({
+                            type: 'flv',
+                            isLive: true,
+                            hasAudio: false,
+                            stashInitialSize: 128,
+                            url: arr[index].wssFlv
+                            // url: arr[index].wssFlv
+                            // url: 'https://www.ainfo.top:700/rtp/34020000001110000301_34020000001320000001.flv'
 
-
-                    }, {
-                        enableStashBuffer: false,
-                        fixAudioTimestampGap: false
-                    })
-                    flvPlayer.attachMediaElement(videoElement)
-                    flvPlayer.load()
-                    flvPlayer.play()
+                        }, {
+                            enableStashBuffer: false,
+                            fixAudioTimestampGap: false
+                        })
+                        this.flvPlayer.attachMediaElement(videoElement)
+                        this.flvPlayer.load()
+                        this.flvPlayer.play()
+                        // 【flvjs播放器事件侦听】   关闭flv没有效果
+                        // this.flvPlayer.on(flvjs.Events.ERROR, (errorType, errorDetail, errorInfo) => {
+                        //     this.flvPlayer.pause()
+                        //     this.flvPlayer.unload()
+                        //     this.flvPlayer.detachMediaElement()
+                        //     this.flvPlayer.destroy()
+                        //     this.flvPlayer = null
+                        // })
+                    }
                 })
             }
         }

--
Gitblit v1.9.3