Pārlūkot izejas kodu

Merge branch 'screen' of http://39.106.8.246:3003/web/ibms into screen

yangjunjing 5 gadi atpakaļ
vecāks
revīzija
4d590bdcd8

+ 0 - 43
src/components/screen/integrateresults/buildfloorList.vue

@@ -1,43 +0,0 @@
-<template>
-  <div class="buildfloor-list" v-loading="loading">
-    <el-scrollbar style="height:100%;">
-
-    </el-scrollbar>
-  </div>
-</template>
-
-<script>
-import { mapGetters } from 'vuex'
-import { getTabFunNumObjInstance } from '@/api/scan/request'
-
-export default {
-  computed: {
-    ...mapGetters('layout', ['userInfo', 'projectId', 'projects', 'userId'])
-  },
-  props: {
-    queryParams: {
-      type: Object
-    }
-  },
-  data() {
-    return {
-      loading: false,
-    }
-  },
-  methods:{
-    
-  },
-  watch: {
-    
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.buildfloor-list{
-  height: 100%;
-  /deep/ .el-scrollbar__wrap {
-    overflow-x: hidden;
-  }
-}
-</style>

+ 109 - 0
src/components/screen/integrateresults/exampleList.vue

@@ -0,0 +1,109 @@
+<template>
+  <div class="example-list" v-loading="loading">
+    <el-scrollbar style="height:100%;" v-if="exampleList && exampleList.length && queryParams.RelatedInstance">
+      <div v-for="item in exampleList" :key="item.ObjectID" :class="{'example-item':true,'active':item.active}" @click="handleChangeExample(item)"
+        :title="`${item.ObjectLocalName}(${item.BuildLocalName?item.BuildLocalName:item.BuildId?item.BuildId:'未明确建筑'}-${item.FloorLocalName?item.FloorLocalName:item.FloorId?item.FloorId:'未明确建筑'})`">
+        <span>{{`${item.ObjectLocalName}(${item.BuildLocalName?item.BuildLocalName:item.BuildId?item.BuildId:'未明确建筑'}-${item.FloorLocalName?item.FloorLocalName:item.FloorId?item.FloorId:'未明确建筑'})`}}</span>
+      </div>
+    </el-scrollbar>
+    <div class="no-data" v-else>
+      <div class="position-icon">
+        <i class="icon-wushuju iconfont"></i>
+        数据暂无
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { mapGetters } from 'vuex'
+import { getTabFunNumObjInstance } from '@/api/scan/request'
+
+export default {
+  computed: {
+    ...mapGetters('layout', ['userInfo', 'projectId', 'projects', 'userId'])
+  },
+  props: {
+    queryParams: {
+      type: Object
+    }
+  },
+  data() {
+    return {
+      loading: false,
+      exampleList: [],
+    }
+  },
+  methods:{
+    getExampleData() {
+      this.loading = true
+      if(this.queryParams.MeterFunc && this.queryParams.RelatedInstance){
+        getTabFunNumObjInstance({Filters: `MeterFuncid='${this.queryParams.MeterFunc}';Related='true'`}, res => {
+          this.loading = false
+          this.exampleList = res.Content.map(item => {
+            item.active = false
+            return item
+          })
+          if (this.exampleList.length) {
+            this.handleChangeExample(this.exampleList[0]);
+          }
+        })
+      } else {
+        this.loading = false
+      }
+    },
+    handleChangeExample(example) {
+      this.exampleList.map(item => {
+        example.ObjectID == item.ObjectID?item.active = true:item.active = false
+        return item
+      })
+      this.$emit('changeExample',example)
+    },
+  },
+  watch: {
+    'queryParams.MeterFunc': {
+      handler(newdata, olddata) {
+        this.exampleList = []
+        this.getExampleData()
+      },
+      immediate: true
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.example-list{
+  height: 100%;
+  line-height: 48px;
+  .no-data{
+    height: 100%;
+    text-align: center;
+    box-sizing: border-box;
+    position: relative;
+    .position-icon{
+      position: absolute;
+      top: 50%;
+      left: 50%;
+      transform: translate(-50%,-50%);
+    }
+  }
+  /deep/ .el-scrollbar__wrap {
+    overflow-x: hidden;
+  }
+  .example-item {
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    cursor: pointer;
+    span {
+      margin-left: 10px;
+    }
+  }
+  .example-item.active,
+  .example-item:hover {
+    background-color: #f5f7fa;
+    color: #000;
+  }
+}
+</style>

+ 1 - 1
src/components/screen/integrateresults/realtimeData.vue

@@ -34,7 +34,7 @@ export default {
           this.loading = false
           if(res.Content[0] && res.Content[0].Data){
             let data = res.Content[0].Data
-            this.newData = data.Data==null?data.Data:'' + (data.Unit?data.Unit:'')
+            this.newData = data.Data==null?'':data.Data + (data.Unit?data.Unit:'')
             this.lastTime = data.Time
           }
         })

+ 30 - 8
src/views/screen/splitscreen/integrateresults/index.vue

@@ -2,7 +2,7 @@
  * @Author: zhangyu
  * @Date: 2019-11-13 17:00:59
  * @Info: 系统集成成果辅助屏
- * @LastEditTime: 2019-11-15 11:10:58
+ * @LastEditTime: 2019-11-18 16:49:55
  -->
 <template>
   <div>
@@ -17,11 +17,19 @@
         <div class="data-box">
           <realtime-data :queryParams="queryParams"></realtime-data>
         </div>
-        <div class="buildFloor-box">
-          <buildfloor-list :queryParams="queryParams"></buildfloor-list>
+        <div class="example-box">
+          <example-list :queryParams="queryParams" @changeExample="handleChangeExample"></example-list>
+        </div>
+      </div>
+      <div class="content-right">
+        <canvas v-if="drawCanvas" height="100%" :width="canvasWidth" class="instanceMap" :id="form.instanceId" :k="refreshCanvas"></canvas>
+        <div class="no-data" v-else>
+          <div class="position-icon">
+            <i class="icon-wushuju iconfont"></i>
+            数据暂无
+          </div>
         </div>
       </div>
-      <div class="content-right"></div>
     </div>
   </div>
 </template>
@@ -29,12 +37,12 @@
 <script>
 import { mapGetters } from 'vuex'
 import realtimeData from '@/components/screen/integrateresults/realtimeData'
-import buildfloorList from '@/components/screen/integrateresults/buildfloorList'
+import exampleList from '@/components/screen/integrateresults/exampleList'
 
 export default {
   components: {
     realtimeData,
-    buildfloorList
+    exampleList
   },
   computed: {
     ...mapGetters('layout', ['userInfo', 'projectId', 'projects', 'userId'])
@@ -51,7 +59,9 @@ export default {
     }
   },
   methods:{
-    
+    handleChangeExample(example) {
+      console.log(example)
+    }
   },
   watch: {
     $route(to,from){
@@ -91,7 +101,7 @@ $borderColor: rgba(201, 201, 201, 1);
       height: 140px;
       margin-bottom: 15px;
     }
-    .buildFloor-box{
+    .example-box{
       flex-grow: 1;
       flex-shrink: 1;
       border: 1px solid $borderColor;
@@ -101,6 +111,18 @@ $borderColor: rgba(201, 201, 201, 1);
     flex-grow: 1;
     flex-shrink: 1;
     border: 1px solid $borderColor;
+    .no-data{
+      height: 100%;
+      text-align: center;
+      box-sizing: border-box;
+      position: relative;
+      .position-icon{
+        position: absolute;
+        top: 50%;
+        left: 50%;
+        transform: translate(-50%,-50%);
+      }
+    }
   }
 }
 </style>