فهرست منبع

Merge branch 'develop' of http://39.106.8.246:3003/web/wanda-bm-guide into develop

YaolongHan 4 سال پیش
والد
کامیت
ab0baaaf99
47فایلهای تغییر یافته به همراه789 افزوده شده و 387 حذف شده
  1. 3 2
      public/systemConf.js
  2. 23 1
      src/App.vue
  3. 38 38
      src/api/httputils.js
  4. 8 1
      src/api/legendLibrary.js
  5. 8 1
      src/assets/css/rotation.less
  6. BIN
      src/assets/imgs/logo_tu.png
  7. BIN
      src/assets/imgs/menu.png
  8. 6 6
      src/components/Legend/src/legend.vue
  9. 0 1
      src/components/Rotation/index.js
  10. 6 1
      src/components/Rotation/src/rotation.vue
  11. 24 48
      src/components/floorList.vue
  12. 287 0
      src/components/floorListOther.vue
  13. 24 22
      src/components/floorMap/index.vue
  14. 5 5
      src/components/mapClass/EditScence.js
  15. 31 20
      src/components/menuList.vue
  16. 5 6
      src/views/equipment/eqDialog.vue
  17. 14 8
      src/views/equipment/index.vue
  18. 4 4
      src/views/equipment/legendBox.vue
  19. 3 3
      src/views/equipment/table/eqDetaileDialog.vue
  20. 9 5
      src/views/equipment/table/eqListTable.vue
  21. 1 1
      src/views/equipment/table/lookPageTable.vue
  22. 3 3
      src/views/equipment/table/otherTable.vue
  23. 1 1
      src/views/equipment/table/recordDialog.vue
  24. 1 1
      src/views/equipment/table/standTable.vue
  25. 3 3
      src/views/equipment/table/wbTable.vue
  26. 2 2
      src/views/equipment/table/wxTable.vue
  27. 1 1
      src/views/equipment/table/zwTable.vue
  28. 8 3
      src/views/floorFunc/index.vue
  29. 0 1
      src/views/index.vue
  30. 18 8
      src/views/legendLibrary/addForm.vue
  31. 13 13
      src/views/legendLibrary/addLegend.vue
  32. 41 8
      src/views/legendLibrary/index.vue
  33. 1 1
      src/views/legendRules/addList.vue
  34. 3 3
      src/views/other/gcfzDialog.vue
  35. 86 19
      src/views/other/index.vue
  36. 2 2
      src/views/other/otherDialog.vue
  37. 31 1
      src/views/other/zhsxDialog.vue
  38. 11 2
      src/views/other/zhsxOther.vue
  39. 4 4
      src/views/other/zhsxOtherTable1.vue
  40. 7 12
      src/views/other/zhsxOtherTable2.vue
  41. 1 1
      src/views/overview/index.vue
  42. 3 2
      src/views/overview/picModal.vue
  43. 8 10
      src/views/room/detail.vue
  44. 38 42
      src/views/room/index.vue
  45. 0 68
      src/views/room/inputDialog.vue
  46. 2 2
      src/views/room/room4.vue
  47. 2 1
      vue.config.js

+ 3 - 2
public/systemConf.js

@@ -27,7 +27,8 @@ var __systemConf = {
         // TODO: 修改为对应的地址
         // editerUrl: 'http://192.168.200.1:9910/wandaEditer/',
         editerUrl: 'http://192.168.200.89:8081/wandaEditer/',
-        wandaBmGuideUrl: 'http://192.168.200.89:8080/wandaBmGuide',
+        // wandaBmGuideUrl: 'http://192.168.200.89:8080/wandaBmGuide',
+        wandaBmGuideUrl: 'http://192.168.200.100:8080/wandaBmGuide',
     },
 }
-window.__systemConf = __systemConf
+window.__systemConf = __systemConf

+ 23 - 1
src/App.vue

@@ -3,7 +3,29 @@
         <router-view />
     </div>
 </template>
-
+<script>
+export default {
+    data() {
+        return {}
+    },
+    mounted() {
+        // 监听页面刷新事件
+        window.addEventListener('unload', this.unload)
+        // 页面加载完成后,移除session里的存储的信息
+        window.addEventListener('load', this.load)
+    },
+    methods: {
+        unload() {
+            // const { userInfo, projectId, menuStatus,manualAutoMode } = this.$store.state;
+            const state = this.$store.state
+            sessionStorage.setItem('state', JSON.stringify(state))
+        },
+        load() {
+            sessionStorage.clear()
+        }
+    }
+}
+</script>
 <style lang="less">
 body,
 h1,

+ 38 - 38
src/api/httputils.js

@@ -1,6 +1,6 @@
-import axios from "axios"
-import store from "@/store"
-import { MessageBox } from "element-ui"
+import axios from 'axios'
+import store from '@/store'
+import { MessageBox } from 'element-ui'
 
 var CancelToken = axios.CancelToken
 var cancel
@@ -20,10 +20,10 @@ const axiosservice = axios.create({
 axiosservice.interceptors.request.use(
     (config) => {
         config.withCredentials = true // 允许携带token ,这个是解决跨域产生的相关问题
-        let token = store.getters["token"]
+        let token = store.getters['token']
         if (token) {
             config.headers = {
-                "sso-token": token,
+                'sso-token': token,
             }
         }
         return config
@@ -36,33 +36,33 @@ axiosservice.interceptors.request.use(
 axiosservice.interceptors.response.use(
     function(res) {
         //在这里对返回的数据进行处理
-        //console.log('axios interceptors res = ', res.status, res)
+        //// //console.log('axios interceptors res = ', res.status, res)
         let resp = res.data
-        if (resp.result === "unauthc") {
-            store.commit("logined", false)
-            MessageBox.confirm("未登陆或登陆信息已失效, 是否重新登陆?", "提示", {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
-                type: "error",
+        if (resp.result === 'unauthc') {
+            store.commit('logined', false)
+            MessageBox.confirm('未登陆或登陆信息已失效, 是否重新登陆?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'error',
             })
                 .then((resp) => {
-                    //console.log('--------------------------- confirm', resp)
+                    //// //console.log('--------------------------- confirm', resp)
                     //router.push('/login')
                     window.location.reload()
                 })
                 .catch((error) => {
-                    //console.log('--------------------------- cancel', error)
-                    console.log("")
+                    //// //console.log('--------------------------- cancel', error)
+                    // //console.log("")
                 })
-        } else if (resp.result == "unauthorization") {
-            MessageBox.alert("无权操作", { title: "警告", type: "error" })
+        } else if (resp.result == 'unauthorization') {
+            MessageBox.alert('无权操作', { title: '警告', type: 'error' })
         }
-        //console.log('axios interceptors resp2 = ', resp.success, resp.errorCode, resp.errorMessage, res)
+        //// //console.log('axios interceptors resp2 = ', resp.success, resp.errorCode, resp.errorMessage, res)
         return res
     },
     function(err) {
         //Do something with response error
-        console.log("axios interceptors err = ", err)
+        // //console.log("axios interceptors err = ", err)
         return Promise.reject(err)
     }
 )
@@ -70,11 +70,11 @@ axiosservice.interceptors.response.use(
 /* 下载方法 */
 function downFile(blob, fileName) {
     // 非IE下载
-    if ("download" in document.createElement("a")) {
-        let link = document.createElement("a")
+    if ('download' in document.createElement('a')) {
+        let link = document.createElement('a')
         link.href = window.URL.createObjectURL(blob) // 创建下载的链接
         link.download = fileName // 下载后文件名
-        link.style.display = "none"
+        link.style.display = 'none'
         document.body.appendChild(link)
         link.click() // 点击下载
         window.URL.revokeObjectURL(link.href) // 释放掉blob对象
@@ -89,7 +89,7 @@ export default {
     //获取cookie
     getCookie(name) {
         var arr,
-            reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)")
+            reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)')
         if ((arr = document.cookie.match(reg))) {
             return unescape(arr[2])
         } else {
@@ -103,7 +103,7 @@ export default {
             let response = await axiosservice({
                 url,
                 params,
-                method: "get",
+                method: 'get',
             })
             return response.data
         } catch (err) {
@@ -115,7 +115,7 @@ export default {
             let response = await axiosservice({
                 url,
                 data,
-                method: "post",
+                method: 'post',
             })
             return response.data
         } catch (err) {
@@ -128,7 +128,7 @@ export default {
                 url,
                 params,
                 data,
-                method: "post",
+                method: 'post',
             })
             return response
         } catch (err) {
@@ -140,9 +140,9 @@ export default {
             let response = await axiosservice({
                 url,
                 data,
-                method: "post",
+                method: 'post',
                 headers: {
-                    "Content-Type": "multipart/form-data",
+                    'Content-Type': 'multipart/form-data',
                 },
             })
             return response.data
@@ -153,30 +153,30 @@ export default {
     download(url, requestData) {
         // 响应类型:arraybuffer, blob
         axiosservice
-            .post(url, requestData, { responseType: "blob" })
+            .post(url, requestData, { responseType: 'blob' })
             .then((resp) => {
                 let headers = resp.headers
-                let contentType = headers["content-type"]
+                let contentType = headers['content-type']
 
-                console.log("响应头信息", headers)
+                // //console.log("响应头信息", headers)
                 if (!resp.data) {
-                    console.error("响应异常:", resp)
+                    console.error('响应异常:', resp)
                     return false
                 } else {
-                    console.log("下载文件:", resp)
+                    // //console.log("下载文件:", resp)
                     const blob = new Blob([resp.data], { type: contentType })
 
-                    const contentDisposition = resp.headers["content-disposition"]
-                    let fileName = "unknown"
+                    const contentDisposition = resp.headers['content-disposition']
+                    let fileName = 'unknown'
                     if (contentDisposition) {
-                        fileName = window.decodeURI(resp.headers["content-disposition"].split("=")[1])
+                        fileName = window.decodeURI(resp.headers['content-disposition'].split('=')[1])
                     }
-                    console.log("文件名称:", fileName)
+                    // //console.log("文件名称:", fileName)
                     downFile(blob, fileName)
                 }
             })
             .catch(function(error) {
-                console.log(error)
+                // //console.log(error)
             })
     },
     axios: axiosservice,

+ 8 - 1
src/api/legendLibrary.js

@@ -11,6 +11,12 @@ export function createLegend({
 }) {
     return httputils.postJson(`/serve/topology-wanda/graphElement/create`, postParams)
 }
+// 图例库-新增
+// export function createLegend({
+//     postParams
+// }) {
+//     return httputils.postJson(`/serve/topology-wanda/graphElement/create`, postParams)
+// }
 //图例库-更新
 export function updateLegend({
     postParams
@@ -78,7 +84,8 @@ export function getVisualization({
 export function groupByCategory({
     getParams
 }) {
-    return httputils.getJson(`/serve/topology-wanda/graphRelation/groupByCategory`, getParams)
+    // return httputils.getJson(`/serve/topology-wanda/graphRelation/groupByCategory`, getParams)
+    return httputils.getJson(`/serve/topology-wanda/graphElement/groupByInfoSystem`, getParams)
 }
 // 图例搜索
 export function graphElementSearch({

+ 8 - 1
src/assets/css/rotation.less

@@ -1,7 +1,8 @@
 .overview {
     background: #f2f5f7;
     padding: 16px 20px 20px 20px;
-    height: 100%;
+    // height: 100%;
+    height: calc(100% - 48px);
     width: 100%;
     .view-title {
         display: flex;
@@ -59,6 +60,10 @@
             flex-direction: column;
             .lb-left {
                 width: 100%;
+                // TODO: lb-left
+                // max-height: 300px;
+                height: 66%;
+                // overflow: hidden;
                 flex: 1;
                 margin-top: 12px;
                 margin-bottom: 10px;
@@ -188,6 +193,8 @@
                 flex-direction: column;
                 .lb-right {
                     flex: 1;
+                    // TODO: lb-right
+                    height: 47%;
                     margin-top: 12px;
                     margin-bottom: 10px;
                     position: relative;

BIN
src/assets/imgs/logo_tu.png


BIN
src/assets/imgs/menu.png


+ 6 - 6
src/components/Legend/src/legend.vue

@@ -106,12 +106,12 @@ export default {
         queryMarks() {
             let params = {
                 postParams: {
-                    categoryId: 'NTXT',
+                    categoryId: this.$cookie.get('categoryId'),
                     projectId: this.$store.state.plazaId
                 }
             }
             queryRead(params).then(res => {
-                console.log('备注', res.data.Data[0].Note)
+                //console.log('备注', res.data.Data[0].Note)
                 if (res.data.Data[0].Note) {
                     let note = res.data.Data[0].Note
                     if (note.search(this.text1) != -1 && note.search(this.text2) != -1) {
@@ -159,7 +159,7 @@ export default {
             window.open(url, true)
         },
         isShow2() {
-            console.log(this.isShow2)
+            //console.log(this.isShow2)
             this.show2 = !this.show2
         },
         handleSwich(val) {
@@ -179,7 +179,7 @@ export default {
             }
             queryStatis({ data, postParams }).then(res => {
                 this.loading = false
-                console.log('图例', res)
+                //console.log('图例', res)
                 this.viewTable = res.data.Data ? res.data.Data : []
                 this.$nextTick(() => {
                     if (this.$refs.viewLengend) {
@@ -198,7 +198,7 @@ export default {
                 flag: flag
             }
             queryStatis({ data, postParams }).then(res => {
-                console.log('编辑图例数', res)
+                //console.log('编辑图例数', res)
                 this.loading1 = false
                 this.editTable = res.data.Data ? res.data.Data : []
             })
@@ -212,7 +212,7 @@ export default {
             }
             updateStatis(params).then(res => {
                 if (res.Result == 'success') {
-                    console.log('更新图例', res)
+                    //console.log('更新图例', res)
                     this.$message({
                         message: '编辑图例成功',
                         type: 'success'

+ 0 - 1
src/components/Rotation/index.js

@@ -2,5 +2,4 @@ import Rotation from './src/rotation.vue'
 Rotation.install = function(Vue) {
     Vue.component(Rotation.name, Rotation)
 }
-console.log(Rotation)
 export default Rotation

+ 6 - 1
src/components/Rotation/src/rotation.vue

@@ -5,7 +5,7 @@
 */
 <template>
     <div class='rotation'>
-        <div v-if='rotationImg.length==1' height='100%'>
+        <div v-if='rotationImg.length==1' class='rotationCon'>
             <!-- <img
                 src='https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1592807833&di=5adf17cda9f46c37696da5b1d0aec9dc&src=http://a3.att.hudong.com/14/75/01300000164186121366756803686.jpg'
                 alt
@@ -33,7 +33,12 @@ export default {
 </script>
 <style lang="less" scoped>
 .rotation {
+    width: 100%;
     height: 100%;
+    overflow: hidden;
+    .rotationCon {
+        height: 100%;
+    }
     img {
         width: 100%;
         height: 100%;

+ 24 - 48
src/components/floorList.vue

@@ -7,8 +7,11 @@
     <div class='floor-box'>
         <div class='floor-list'>
             <!-- <i class='el-icon-caret-top icon-top' v-if='showT' @click='removeTop(num)'></i> -->
-            <i class='el-icon-caret-top icon-top' v-if='showT' @click='changeFloor(1)'></i>
-            <i class='el-icon-caret-top icon-top' v-else style='color:#ccc'></i>
+            <div v-if='floorsArr.length>5'>
+                <i class='el-icon-caret-top icon-top' v-if='showT' @click='changeFloor(1)'></i>
+                <i class='el-icon-caret-top icon-top' v-else style='color:#ccc'></i>
+            </div>
+
             <div class='floor-out'>
                 <div class='floor-center'>
                     <div
@@ -21,14 +24,15 @@
                 </div>
             </div>
             <!-- <i class='el-icon-caret-bottom icon-bottom' v-if='showB' @click='removeBottom(num)'></i> -->
-            <i class='el-icon-caret-bottom icon-bottom' v-if='showB' @click='changeFloor(-1)'></i>
-            <i class='el-icon-caret-bottom icon-bottom' v-else style='color:#ccc'></i>
+            <div v-if='floorsArr.length>5'>
+                <i class='el-icon-caret-bottom icon-bottom' v-if='showB' @click='changeFloor(-1)'></i>
+                <i class='el-icon-caret-bottom icon-bottom' v-else style='color:#ccc'></i>
+            </div>
         </div>
     </div>
 </template>
 <script>
 import { animate } from '@/utils/animate.js'
-import { mapGetters } from 'vuex'
 export default {
     data() {
         return {
@@ -44,37 +48,31 @@ export default {
                 name: '第1层',
                 seq: 100
             },
-            currentFloorId: null,
-            floorIdArr: []
+            currentFloorId: null
         }
     },
+    props: ['floorsArr'],
     mounted() {
-        // this.removeBottom(-1)
-        // this.tabFloor()
-        console.log(`floorsArr---------------:\n`, this.floorsArr)
         this.init()
     },
     watch: {
         // 监听floorsArr的变化
-        /* floorsArr: {
-            handler(newVal, oldVal) {
-                this.init()
-            },
-            deep: true,
-            immediate: true
-        } */
-    },
-    computed: {
-        ...mapGetters(['floorsArr'])
+        // '$store.state.floorsArr': {
+        //     handler(newV, oldV) {
+        //         newV && this.init()
+        //     },
+        //     deep: true
+        // }
     },
     methods: {
         init() {
-            window.vm = this
+            if (!this.floorsArr.length) {
+                return false
+            }
             this.floorIdArr = []
             this.floorsArr.map(item => {
                 this.floorIdArr.push(item.seq)
             })
-            console.log('cookie:', this.$cookie.get('currentFloorId'))
             this.currentFloorId = Number(this.$cookie.get('currentFloorId') || 100)
             this.changeFloor(0)
         },
@@ -84,7 +82,6 @@ export default {
          * @description 点击图例下方的,上下切换按钮
          */
         changeFloor(flag) {
-            console.log(this.floorIdArr)
             const len = this.floorIdArr.length
             let index = this.floorIdArr.findIndex(item => item === this.currentFloorId)
             // 点击上箭头
@@ -98,9 +95,6 @@ export default {
             }
             // 数据处理
             this.handleCookie()
-            // debugger
-            console.log('---------------index:', index, '--------------')
-            console.log('---------------floorIdArr:', this.floorIdArr, '--------------')
             //楼层位置处理,
             const inner = document.querySelectorAll('.floor-item')
             const innerbox = document.querySelector('.floor-center')
@@ -113,7 +107,8 @@ export default {
             // flag 为0时,timer设置为0
             flag === 0 && (timer = 0)
             if (index >= showNumber - 1) {
-                index < len - 1 && animate(innerbox, { marginTop: -height * (index - (showNumber - 2)) }, timer)
+                animate(innerbox, { marginTop: -height * (index - (showNumber - 2)) }, timer)
+                // index < len - 1 && animate(innerbox, { marginTop: -height * (index - (showNumber - 2)) }, timer)
             } else {
                 // 前 showNumber 条的margin-top设置为0
                 animate(innerbox, { marginTop: 0 }, 500)
@@ -138,7 +133,6 @@ export default {
                 //  最后一条的 下箭头设置为禁用
                 case len - 1:
                     this.currentFloorId = this.floorIdArr[len - 1]
-                    console.log('currentFloorId', this.currentFloorId)
                     this.showT = true
                     this.showB = false
                     break
@@ -155,9 +149,6 @@ export default {
          */
         handleCookie() {
             let currentFloor = this.floorsArr.filter(item => item.seq == this.currentFloorId)[0]
-            console.log('------------------------')
-            console.log('currentFloor', currentFloor)
-            console.log('------------------------')
             this.$cookie.set('floorNow', currentFloor.code, 3)
             this.$cookie.set('floorMapId', currentFloor.gname, 3)
             this.$cookie.set('currentFloorId', currentFloor.seq, 3)
@@ -175,23 +166,8 @@ export default {
             this.handleCookie()
             this.handleUpDownStatus(index, this.floorIdArr.length)
         },
-        /* tabFloor(item = this.floor, index) {
-            console.log(this.num)
-            if (this.num <= -1) {
-                this.showT = true
-            }
-            if (this.num > -1) {
-                this.showB = true
-            }
-            this.$cookie.set('floorNow', item.code, 3)
-            this.$cookie.set('floorMapId', item.gname, 3)
-            this.floorId = this.$cookie.get('floorNow') || item.code
-            this.floorMapIdName = this.$cookie.get('floorMapId') || item.gname
-            this.$emit('emitFloor', item)
-        }, */
-
         removeTop(num) {
-            console.log(num)
+            //console.log(num)
             if (num == -1) {
                 this.num = num
                 this.showT = false
@@ -210,7 +186,7 @@ export default {
             }
         },
         removeBottom(num) {
-            console.log(num)
+            //console.log(num)
             // let num = 0
             if (num == -2) {
                 this.num = num

+ 287 - 0
src/components/floorListOther.vue

@@ -0,0 +1,287 @@
+/**
+*@author:Guoxiaohuan
+*@date:2020.06.02
+*@info:楼层列表
+*/
+<template>
+    <div class='floor-box'>
+        <div class='floor-list'>
+            <!-- <i class='el-icon-caret-top icon-top' v-if='showT' @click='removeTop(num)'></i> -->
+            <div v-if='floorsArr.length>5'>
+                <i class='el-icon-caret-top icon-top' v-if='showT' @click='changeFloor(1)'></i>
+                <i class='el-icon-caret-top icon-top' v-else style='color:#ccc'></i>
+            </div>
+
+            <div class='floor-out'>
+                <div class='floor-center'>
+                    <div
+                        class='floor-item'
+                        :class='item.seq == currentFloorId?"isActive":""'
+                        @click='tabFloor(item,index)'
+                        v-for='(item,index) in floorsArr'
+                        :key='index'
+                    >{{item.code}}</div>
+                </div>
+            </div>
+            <!-- <i class='el-icon-caret-bottom icon-bottom' v-if='showB' @click='removeBottom(num)'></i> -->
+            <div v-if='floorsArr.length>5'>
+                <i class='el-icon-caret-bottom icon-bottom' v-if='showB' @click='changeFloor(-1)'></i>
+                <i class='el-icon-caret-bottom icon-bottom' v-else style='color:#ccc'></i>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+import { animate } from '@/utils/animate.js'
+export default {
+    data() {
+        return {
+            floorId: 'F1',
+            showT: true,
+            showB: true,
+            num: 0,
+            floorMapIdName: '',
+            floor: {
+                code: 'F1',
+                gcode: '1F',
+                gname: 'f1',
+                name: '第1层',
+                seq: 100
+            },
+            currentFloorId: null
+        }
+    },
+    props: ['floorsArr'],
+    mounted() {
+        //console.log('this.floorsArrthis.floorsArrthis.floorsArrthis.floorsArr', this.floorsArr)
+        // this.removeBottom(-1)
+        // this.tabFloor()
+        this.init()
+    },
+    watch: {
+        // 监听floorsArr的变化
+        // '$store.state.floorsArr': {
+        //     handler(newV, oldV) {
+        //         newV && this.init()
+        //     },
+        //     deep: true
+        // }
+    },
+    methods: {
+        init() {
+            if (!this.floorsArr.length) {
+                return false
+            }
+            this.floorIdArr = []
+            this.floorsArr.map(item => {
+                this.floorIdArr.push(item.seq)
+            })
+            // this.currentFloorId = Number(this.$cookie.get('currentFloorId') || 100)
+            this.currentFloorId = this.floorsArr[0].seq
+            this.changeFloor(0)
+        },
+        /**
+         * @name changeFloor
+         * @param {Number} flag 1:向上滚动楼层, -1向下滚动 , 0:进入页面初始化时,执行位置处理
+         * @description 点击图例下方的,上下切换按钮
+         */
+        changeFloor(flag) {
+            const len = this.floorIdArr.length
+            let index = this.floorIdArr.findIndex(item => item === this.currentFloorId)
+            // 点击上箭头
+            if (flag === 1) {
+                index--
+                this.currentFloorId = this.floorIdArr[index]
+            } else if (flag === -1) {
+                //点击下箭头
+                index++
+                this.currentFloorId = this.floorIdArr[index]
+            }
+            // 数据处理
+            this.handleCookie()
+            //楼层位置处理,
+            const inner = document.querySelectorAll('.floor-item')
+            const innerbox = document.querySelector('.floor-center')
+            // 页面显示5条,当第五条以上,进行marginTop修改
+            // index从0开始
+            // TODO: 需要修改可以修改这里,配置页面样式,修改showNumber和height
+            let showNumber = 5, //页面中展示的楼层条数
+                height = 32, //一个楼层的div标签高度
+                timer = 500 //动画时长
+            // flag 为0时,timer设置为0
+            flag === 0 && (timer = 0)
+            if (index >= showNumber - 1) {
+                animate(innerbox, { marginTop: -height * (index - (showNumber - 2)) }, timer)
+                // index < len - 1 && animate(innerbox, { marginTop: -height * (index - (showNumber - 2)) }, timer)
+            } else {
+                // 前 showNumber 条的margin-top设置为0
+                animate(innerbox, { marginTop: 0 }, 500)
+            }
+            // 处理上下按钮禁用逻辑
+            this.handleUpDownStatus(index, len)
+        },
+        /**
+         * @name handleUpDownStatus
+         * @param { Number } index 当前楼层在floorIdArr中的下标
+         * @param { Number } len    floorIdArr的长度
+         * @description 处理上下按钮禁用逻辑
+         */
+        handleUpDownStatus(index, len) {
+            switch (index) {
+                // 第一条的上箭头禁用
+                case 0:
+                    this.currentFloorId = this.floorIdArr[0]
+                    this.showT = false
+                    this.showB = true
+                    break
+                //  最后一条的 下箭头设置为禁用
+                case len - 1:
+                    this.currentFloorId = this.floorIdArr[len - 1]
+                    this.showT = true
+                    this.showB = false
+                    break
+                // 默认都可以点击
+                default:
+                    this.showT = true
+                    this.showB = true
+                    break
+            }
+        },
+        /**
+         * @name handleCookie
+         * @description cookie数据处理
+         */
+        handleCookie() {
+            let currentFloor = this.floorsArr.filter(item => item.seq == this.currentFloorId)[0]
+            // this.$cookie.set('floorNow', currentFloor.code, 3)
+            // this.$cookie.set('floorMapId', currentFloor.gname, 3)
+            // this.$cookie.set('currentFloorId', currentFloor.seq, 3)
+            // this.floorId = this.$cookie.get('floorNow') || currentFloor.code
+            // this.floorMapIdName = this.$cookie.get('floorMapId') || currentFloor.gname
+            this.$emit('emitFloor', currentFloor)
+        },
+        /**
+         * @name tabFloor
+         * @param {Object} 选中的楼层信息
+         * @param {Number} 楼层信息在floorsArr数组中的位置
+         */
+        tabFloor(item, index) {
+            this.currentFloorId = this.floorIdArr[index]
+            this.handleCookie()
+            this.handleUpDownStatus(index, this.floorIdArr.length)
+        },
+        removeTop(num) {
+            //console.log(num)
+            if (num == -1) {
+                this.num = num
+                this.showT = false
+                this.showB = true
+            }
+            var inner = document.querySelectorAll('.floor-item')
+            var innerbox = document.querySelector('.floor-center')
+            if (this.num < 0) {
+                this.num++
+            } else {
+                this.num = 0
+                this.showT = false
+            }
+            if (this.num <= 0) {
+                animate(innerbox, { marginTop: 32 * this.num }, 500, function() {})
+            }
+        },
+        removeBottom(num) {
+            //console.log(num)
+            // let num = 0
+            if (num == -2) {
+                this.num = num
+                this.showB = false
+                this.showT = true
+            }
+            var inner = document.querySelectorAll('.floor-item')
+            var innerbox = document.querySelector('.floor-center')
+            if (this.num > -(inner.length - 4)) {
+                this.num--
+            } else {
+                this.num = -(inner.length - 4)
+                this.showB = false
+            }
+            if (this.num > -(inner.length - 4)) {
+                animate(innerbox, { marginTop: 32 * this.num }, 500, function() {})
+            }
+        }
+    }
+}
+</script>
+<style lang="less" scoped>
+.floor-box {
+    position: fixed;
+    right: 32px;
+    top: 196px;
+    z-index: 2;
+    .floor-list {
+        width: 44px;
+        // height: 212px;
+        // height: 312px;
+        background: rgba(255, 255, 255, 1);
+        box-shadow: 0px 2px 15px 0px rgba(31, 36, 41, 0.08);
+        border-radius: 2px;
+        position: relative;
+        padding: 28px 4px;
+        text-align: center;
+        .floor-out {
+            // height: 160px;
+            // height: 312px;
+            //TODO:
+            overflow: hidden;
+            // overflow-y: auto;
+            position: relative;
+            // &::-webkit-scrollbar {
+            //     display: none;
+            // }
+
+            .floor-center {
+                // TODO:
+                // margin-top: 0 !important;
+                .floor-item {
+                    width: 36px;
+                    height: 32px;
+                    cursor: pointer;
+                }
+            }
+        }
+
+        .icon-top {
+            text-align: center;
+            font-size: 18px;
+            margin: 0 auto;
+            display: flex;
+            justify-content: center;
+            position: absolute;
+            top: 0;
+            right: 0;
+            width: 100%;
+            cursor: pointer;
+            line-height: 26px;
+        }
+        .icon-bottom {
+            text-align: center;
+            font-size: 18px;
+            margin: 0 auto;
+            display: flex;
+            justify-content: center;
+            position: absolute;
+            bottom: 0;
+            right: 0;
+            width: 100%;
+            cursor: pointer;
+            line-height: 26px;
+        }
+        .isActive {
+            border-radius: 4px;
+            color: #025baa;
+            background: #e1f2ff;
+            line-height: 32px;
+        }
+    }
+}
+</style>

+ 24 - 22
src/components/floorMap/index.vue

@@ -44,7 +44,8 @@ export default {
             default: '1',
             type: String
         },
-        loadName:null
+        loadName: null,
+        type: null
     },
     components: { RoomBox, canvasFun },
     computed: {
@@ -54,7 +55,7 @@ export default {
         ...mapActions(['getfmapID']),
         init(floorid) {
             if (this.loading) {
-                console.log('正在查询...')
+                //console.log('正在查询...')
                 return
             }
             this.loading = true
@@ -79,11 +80,11 @@ export default {
                 })
                 // 获取主题数据
                 fengmap.loadTheme(`${this.mapServerURL}/webtheme/${this.fmapID}/${this.fmapID}.theme`).then(res => {
-                    console.log('获取rf成功', res)
+                    //console.log('获取rf成功', res)
                 })
                 this.readGroup().then(data => {
                     if (data.data.Data.length > 0) {
-                        console.log(data.data.Data[0].ID)
+                        //console.log(data.data.Data[0].ID)
                         this.$cookie.set('graphId', data.data.Data[0].ID, 3)
                     }
                     const parserData = new STopologyParser(null)
@@ -133,7 +134,7 @@ export default {
                 if (fengmap.gnameToGid[floor]) {
                     fengmap.parseData(fengmap.gnameToGid[floor], res => {
                         if (res.err) {
-                            console.log(res.err)
+                            //console.log(res.err)
                             return
                         }
                         const fParser = new SFloorParser(null)
@@ -150,10 +151,10 @@ export default {
                         this.view.scene = this.scene
                         this.view.fitSceneToView()
                         this.loading = false
-                        console.log('success')
+                        //console.log('success')
                     })
                 } else {
-                    console.log('楼层不正确')
+                    //console.log('楼层不正确')
                 }
             }
         },
@@ -166,8 +167,10 @@ export default {
         },
         listChange(item, ev) {
             let name = ev[0][0].data.Name
+            console.log(item, ev)
+
             if (name.slice(name.length - 2, name.length) == '机房') {
-                this.$refs.boxRoom.open(name)
+                this.$refs.boxRoom.open({ name: name, type: this.type })
             }
         },
         // 适配底图到窗口
@@ -177,7 +180,7 @@ export default {
         // 保存为png
         savePng() {
             this.view.saveImage(`${this.loadName}.png`, 'png')
-            console.log(`${this.loadName}.png`)
+            //console.log(`${this.loadName}.png`)
         },
         // 保存为svg
         saveSvg() {
@@ -203,22 +206,21 @@ export default {
                 projectId: this.urlMsg.ProjectID
             }
             return readGroup(data)
+        },
+        // 地图尺寸
+        mapSize() {
+            if (window.screen.height == '768') {
+                this.canvasWidth = this.$refs.graphy.offsetWidth
+                this.canvasHeight = this.$refs.graphy.offsetHeight - 100
+            } else {
+                this.canvasWidth = this.$refs.graphy.offsetWidth
+                this.canvasHeight = 900 + 'px'
+            }
         }
     },
     watch: {},
     mounted() {
-        console.log(window.screen.height)
-        if (window.screen.height == '768') {
-            this.canvasWidth = this.$refs.graphy.offsetWidth
-            this.canvasHeight = this.$refs.graphy.offsetHeight - 100
-            console.log(this.canvasWidth)
-            console.log(this.canvasHeight)
-        } else {
-            this.canvasWidth = this.$refs.graphy.offsetWidth
-            this.canvasHeight = 900 + 'px'
-            console.log(this.canvasWidth)
-            console.log(this.canvasHeight)
-        }
+        this.mapSize()
     },
     created() {
         this.urlMsg = {
@@ -229,7 +231,7 @@ export default {
             FloorID: this.$cookie.get('floorMapId') || 'f1',
             fmapID: this.fmapID
         }
-        console.log('this.urlMsg', this.urlMsg)
+        //console.log('this.urlMsg', this.urlMsg)
     }
 }
 </script>

+ 5 - 5
src/components/mapClass/EditScence.js

@@ -61,7 +61,7 @@ export class EditScence extends SGraphScene {
     ;
     set setlegend(obj) {
         this._legend = obj;
-        console.log('aaaaaa', obj);
+        //console.log('aaaaaa', obj);
     }
     /**
      * 监听变化
@@ -71,7 +71,7 @@ export class EditScence extends SGraphScene {
         let itemType = 'equipment';
         if (obj.itemList[0] instanceof STextMarkerItem) {
             itemType = 'baseText';
-            console.log('obj.itemList[0]', itemType, obj.itemList[0]);
+            //console.log('obj.itemList[0]', itemType, obj.itemList[0]);
         }
         else if (obj.itemList[0] instanceof SImageMarkerItem) {
             itemType = 'baseImage';
@@ -281,7 +281,7 @@ export class EditScence extends SGraphScene {
      * 增加图标lenged图标
      */
     addIconItem(event) {
-        console.log('this._legend.url', this._legend);
+        //console.log('this._legend.url', this._legend);
         const LegendData = {
             ID: uuid(),
             Name: this._legend.Name,
@@ -449,7 +449,7 @@ export class EditScence extends SGraphScene {
      * @param val string border类型
      */
     upadataLengedName(val) {
-        console.log('xxxxxxx', val, this.focusItem);
+        //console.log('xxxxxxx', val, this.focusItem);
         if (this.focusItem && this.focusItem.data) {
             this.focusItem.text = val;
         }
@@ -498,7 +498,7 @@ export class EditScence extends SGraphScene {
      * 提取item
      */
     extractItem() {
-        console.log(this);
+        //console.log(this);
     }
     /**
      * 保存数据

+ 31 - 20
src/components/menuList.vue

@@ -39,6 +39,7 @@
 <script>
 import { formatTime } from '@/utils/format.js'
 import { mapGetters } from 'vuex'
+import moment from 'moment'
 export default {
     data() {
         return {
@@ -54,31 +55,44 @@ export default {
             times: `${new Date().getFullYear()}.${formatTime(new Date().getMonth() + 1)}.${formatTime(new Date().getDate())} ${formatTime(
                 new Date().getHours()
             )}:${formatTime(new Date().getMinutes())}`,
-            value: 190
+            value: 190,
+            // 路由词典
+            dict: {
+                first: 1,
+                overview: 2,
+                floorFunc: 3,
+                equipment: 4,
+                other: 5,
+                analysis: 6
+            }
         }
     },
     computed: {
         ...mapGetters(['plazas', 'plazaId'])
     },
-    created() {},
+    watch: {
+        $route: 'handleRoute'
+    },
+    created() {
+        this.currentTime()
+    },
     mounted() {
-        let val = ''
-        if (location.pathname.split('/')[3] == 'first') {
-            this.modelNum(1)
-        } else if (location.pathname.split('/')[3] == 'overview') {
-            this.modelNum(2)
-        } else if (location.pathname.split('/')[3] == 'floorFunc') {
-            this.modelNum(3)
-        } else if (location.pathname.split('/')[3] == 'equipment') {
-            this.modelNum(4)
-        } else if (location.pathname.split('/')[3] == 'other') {
-            this.modelNum(5)
-        } else if (location.pathname.split('/')[3] == 'analysis') {
-            this.modelNum(6)
-        }
-        console.log(this.plazas)
+        window.vm = this
+        this.handleRoute(this.$route)
     },
     methods: {
+        currentTime() {
+            this.times = moment().format('YYYY.MM.DD HH:mm')
+            setTimeout(this.currentTime, 1000)
+        },
+        handleRoute(newRouter) {
+            if (!newRouter) {
+                return false
+            }
+            const { path } = newRouter
+            let router = path.split('home/')[1]
+            this.modelNum(this.dict[router])
+        },
         formatter(str, arrv) {
             if (str && arrv) {
                 const Objs = arrv.find(e => e && e.plazaid == str)
@@ -88,7 +102,6 @@ export default {
             }
         },
         modelNum(val) {
-            console.log(val)
             this.list = this.list.map((item, index) => {
                 if (val == index + 1) {
                     item.state = true
@@ -99,7 +112,6 @@ export default {
             })
         },
         clickEventAcitve(item) {
-            console.log(item)
             if (item.name == '楼层功能') {
                 this.$cookie.set('categoryId', 'LCGN', 3)
             } else {
@@ -116,7 +128,6 @@ export default {
         dumpLegend() {
             const { conf } = window.__systemConf,
                 { wandaBmGuideUrl } = conf
-            // this.$router.push({ path: `/home/legendLibrary` })
             window.open(`${wandaBmGuideUrl}/home/legendLibrary`, true)
         }
     },

+ 5 - 6
src/views/equipment/eqDialog.vue

@@ -21,6 +21,7 @@
                 <!-- 土建系统主要材料清单 -->
                 <tj-table v-else-if='dialogInfo.id.slice(0,4)=="TJQD"' :param='param'></tj-table>
                 <!-- 主要设备清单 标准设备表格 -->
+                <!-- 内部设备清单 -->
                 <standTable v-else-if='dialogInfo.id.slice(2,4)=="QD"' :param='param' :major='dialogInfo.id'></standTable>
                 <!-- 电井商铺范围清单 -->
                 <djsp-table v-else-if='dialogInfo.id.slice(0,4)=="GJSP"' :param='param'></djsp-table>
@@ -111,7 +112,7 @@ export default {
             this.visible = false
         },
         modalConfirm() {
-            console.log('alertConfirm')
+            //console.log('alertConfirm')
         },
         //打开弹窗
         showModal(item) {
@@ -133,13 +134,11 @@ export default {
                     this.initImage(this.typecode)
                 }
             }
-            console.log(this.dialogInfo)
+            //console.log(this.dialogInfo)
             this.param = this.activeName
         },
         //点击tab函数
         handleClick(tab) {
-            console.log(tab)
-            // console.log('============================================')
             if (this.param) {
                 this.param = tab.name
             } else if (this.smsxt) {
@@ -157,7 +156,7 @@ export default {
             this.tabLabel = tab.label
         },
         // tabClick(e) {
-        //     console.log(e.label, e.name, '-----.')
+        //     //console.log(e.label, e.name, '-----.')
         // },
         visibalBox() {
             this.$refs.Dialog.open(this.dialogInfo.id)
@@ -229,7 +228,7 @@ export default {
             }
 
             queryTab({ data, postParams }).then(res => {
-                console.log(res)
+                //console.log(res)
             })
         }
     }

+ 14 - 8
src/views/equipment/index.vue

@@ -25,7 +25,6 @@
             <div class='eq-right'>
                 <div class='eq-right-bottom'>
                     <div class='title-box'>
-                        <!-- <img src='@/assets/imgs/mainIcon.png' /> -->
                         <div class='eq-title'>
                             <span>{{floorInfo.code}}</span>
                         </div>
@@ -34,7 +33,7 @@
                         <div class='legend-boxs'>
                             <Legend :systemName='systemName'></Legend>
                         </div>
-                        <floorMap ref='floorMap' :id='"equip"' :loadName='loadName'></floorMap>
+                        <floorMap ref='floorMap' :id='"equip"' :loadName='loadName' :type='"system"'></floorMap>
                         <div class='additional-box' v-if='fqPic.length>0'>
                             <div class='additional' @click='additionalColl'>
                                 <img src='../../assets/imgs/bg.png' alt />
@@ -44,10 +43,9 @@
                             </el-collapse-transition>
                         </div>
                     </div>
-                    <floor-list @emitFloor='emitFloor'></floor-list>
+                    <floor-list v-if='floorsArr.length>0' :floorsArr='floorsArr' @emitFloor='emitFloor' id='system'></floor-list>
                 </div>
             </div>
-            <!-- <editList></editList> -->
         </div>
         <eq-dialog ref='dialog' :systemName='systemName' :smsxt='smsxt'></eq-dialog>
     </div>
@@ -60,6 +58,7 @@ import eqDialog from './eqDialog'
 import editList from '@/components/edit.vue'
 import { system } from '@/utils/plugins/components.js'
 import { queryPic } from '@/api/public.js'
+import { mapGetters } from 'vuex'
 
 export default {
     data() {
@@ -79,7 +78,8 @@ export default {
             manufacturer: [],
             show: false,
             fqPic: [],
-            loadName: ''
+            loadName: '',
+            type: ''
         }
     },
     components: { floorList, eqDialog, floorMap, editList },
@@ -98,13 +98,11 @@ export default {
             this.init()
         },
         emitFloor(item) {
-            console.log('item', item)
             this.floorInfo = item
             // this.$refs.floorMap.init(this.floorInfo.gname)
             this.init()
         },
         dialogVisible(eve) {
-            console.log(eve)
             this.$refs.dialog.showModal(eve)
         },
         additionalColl() {
@@ -121,18 +119,26 @@ export default {
                 getParams.system = this.smsxt
             }
             queryPic({ getParams }).then(res => {
-                console.log('分区图', res)
+                //console.log('分区图', res)
                 this.fqPic = res.data
             })
         },
         init() {
             this.loadName = `设备设施-${this.systemName}-${this.floorInfo.code}`
+        },
+        // 从设备设施进入的机房
+        queryType(val) {
+            this.type = val
+            console.log(this.type)
         }
     },
     mounted() {
         this.everySystem = this.system[0].children
         this.init()
         // this.$refs.floorMap.init(this.floorInfo.gname)
+    },
+    computed: {
+        ...mapGetters(['floorsArr'])
     }
 }
 </script>

+ 4 - 4
src/views/equipment/legendBox.vue

@@ -110,13 +110,13 @@ export default {
             ],
             rowSelection: {
                 onChange: (selectedRowKeys, selectedRows) => {
-                    console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows)
+                    //console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows)
                 },
                 onSelect: (record, selected, selectedRows) => {
-                    console.log(record, selected, selectedRows)
+                    //console.log(record, selected, selectedRows)
                 },
                 onSelectAll: (selected, selectedRows, changeRows) => {
-                    console.log(selected, selectedRows, changeRows)
+                    //console.log(selected, selectedRows, changeRows)
                 }
             }
         }
@@ -124,7 +124,7 @@ export default {
     computed: {},
     methods: {
         changeSwitch(checked) {
-            console.log(`a-switch to ${checked}`)
+            //console.log(`a-switch to ${checked}`)
         },
         open() {
             this.isShow = !this.isShow

+ 3 - 3
src/views/equipment/table/eqDetaileDialog.vue

@@ -142,7 +142,7 @@ export default {
     methods: {
         //多余输入框监听
         confirm(fws, manufacturer) {
-            console.log(fws, manufacturer, '------')
+            //console.log(fws, manufacturer, '------')
             this.fws = fws
             this.manufacturer = manufacturer
             this.queryTableList()
@@ -177,7 +177,7 @@ export default {
                 plazaId: this.$store.state.plazaId
             }
             querySelect({ data, postParams }).then(res => {
-                console.log(res)
+                //console.log(res)
                 let sb_status = res.data.data.glsms_asset.sb_status
                 let sbglgs = res.data.data.glsms_asset.sbglgs
                 this.sbglgsOption = []
@@ -259,7 +259,7 @@ export default {
                 postParams.status = this.status
             }
             queryAsset({ data, postParams }).then(res => {
-                console.log(res)
+                //console.log(res)
                 this.tableData = res.data.data
                 this.total = res.data.count
             })

+ 9 - 5
src/views/equipment/table/eqListTable.vue

@@ -32,9 +32,9 @@
             ></el-input>
         </div>
         <el-table :data='tableData' style='width: 100%' :border='true' @row-click='rowHandle'>
-            <el-table-column type='index' label='序号' width='80'></el-table-column>
-            <el-table-column prop='classqc' label='设备名称' width='160'>
-                <template slot-scope='{row}'>{{row.classqc || '--'}}</template>
+            <el-table-column type='index' label='序号' width='50'></el-table-column>
+            <el-table-column prop='type_name' label='设备名称' show-overflow-tooltip resizable width='160'>
+                <template slot-scope='{row}'>{{row.type_name || '--'}}</template>
             </el-table-column>
             <el-table-column prop='sl' label='数量' width='100'>
                 <template slot-scope='{row}'>{{row.sl || '--'}}</template>
@@ -106,7 +106,7 @@ export default {
     props: ['param', 'major'],
     methods: {
         rowHandle(row) {
-            console.log(row)
+            //console.log(row)
             this.innerVisible = true
             this.row = row
         },
@@ -126,8 +126,10 @@ export default {
             }
             //下拉
             if (this.floor) {
+                console.log(this.floor)
                 postParams.floor = this.floor
             }
+            console.log(this.floor)
             //输入框搜索
             data.keyword = ''
             if (this.keyword) {
@@ -144,7 +146,7 @@ export default {
             }
 
             queryEquipmentList({ data, postParams }).then(res => {
-                console.log(res)
+                //console.log(res)
                 this.tableData = res.data.data
                 this.total = res.data.count
             })
@@ -152,6 +154,7 @@ export default {
     },
     watch: {
         param(newV, oldV) {
+            console.log(newV, oldV)
             if (newV !== oldV) {
                 this.getList()
             }
@@ -159,6 +162,7 @@ export default {
     },
     mounted() {
         this.getList()
+        console.log(this.param)
     }
 }
 </script>

+ 1 - 1
src/views/equipment/table/lookPageTable.vue

@@ -81,7 +81,7 @@ export default {
                 major: this.major
             }
             queryEquipmentList({ data, postParams }).then(res => {
-                console.log(res)
+                //console.log(res)
                 this.tableData = res.data.data
                 this.total = res.data.count
             })

+ 3 - 3
src/views/equipment/table/otherTable.vue

@@ -139,7 +139,7 @@ export default {
                 getParams.data.handleresults = this.handleresults
             }
             queryQtsx(getParams).then(res => {
-                console.log(res)
+                //console.log(res)
                 this.tableData = res.data ? res.data : []
                 this.total = res.count
             })
@@ -177,7 +177,7 @@ export default {
                 plazaId: this.$store.state.plazaId
             }
             querySelect({ data, postParams }).then(res => {
-                console.log(res)
+                //console.log(res)
                 let handleresults = res.data.data.glsms_qtsx.handleresults
                 this.handleOption = []
                 handleresults.forEach(el => {
@@ -205,7 +205,7 @@ export default {
     },
     mounted() {
         this.tabFind()
-        console.log(this.smsxt)
+        //console.log(this.smsxt)
         this.getList()
     }
 }

+ 1 - 1
src/views/equipment/table/recordDialog.vue

@@ -94,7 +94,7 @@ export default {
                     })
                 })
             })
-            console.log(this.tabName)
+            //console.log(this.tabName)
         }
     },
     mounted() {}

+ 1 - 1
src/views/equipment/table/standTable.vue

@@ -99,7 +99,7 @@ export default {
     },
     methods: {
         rowHandle(row) {
-            console.log(row)
+            //console.log(row)
             this.innerVisible = true
             this.row = row
         },

+ 3 - 3
src/views/equipment/table/wbTable.vue

@@ -70,7 +70,7 @@
             <el-table-column prop='assetnum' label='设备编码' show-overflow-tooltip resizable>
                 <template slot-scope='{row}'>{{row.assetnum || '--'}}</template>
             </el-table-column>
-            <el-table-column prop='matters' label='重要事项记录' show-overflow-tooltip resizable>
+            <el-table-column prop='matters' label='重要事项记录' width='130' show-overflow-tooltip resizable>
                 <template slot-scope='{row}'>{{row.matters || '--'}}</template>
             </el-table-column>
             <el-table-column prop='description' label='描述' show-overflow-tooltip resizable>
@@ -80,7 +80,7 @@
                 <el-table-column prop='ischangepj' label='是/否更换'>
                     <template slot-scope='{row}'>{{row.ischangepj || '--'}}</template>
                 </el-table-column>
-                <el-table-column prop='model' label='配件名称型号' show-overflow-tooltip resizable>
+                <el-table-column prop='model' label='配件名称型号' width='130' show-overflow-tooltip resizable>
                     <template slot-scope='{row}'>{{row.model || '--'}}</template>
                 </el-table-column>
                 <el-table-column prop='sl' label='数量'>
@@ -212,7 +212,7 @@ export default {
             }
             queryWbsms(getParams).then(res => {
                 this.tableData = res.data || []
-                console.log(this.tableData)
+                //console.log(this.tableData)
                 this.total = res.count
             })
         },

+ 2 - 2
src/views/equipment/table/wxTable.vue

@@ -78,7 +78,7 @@
             <el-table-column prop='assetnum' label='设备编码' show-overflow-tooltip resizable>
                 <template slot-scope='{row}'>{{row.assetnum || '--'}}</template>
             </el-table-column>
-            <el-table-column prop='matters' label='重要事项记录' show-overflow-tooltip resizable>
+            <el-table-column prop='matters' label='重要事项记录' width='130' show-overflow-tooltip resizable>
                 <template slot-scope='{row}'>{{row.matters || '--'}}</template>
             </el-table-column>
             <el-table-column prop='description' label='描述' show-overflow-tooltip resizable>
@@ -88,7 +88,7 @@
                 <el-table-column prop='ischangepj' label='是/否更换'>
                     <template slot-scope='{row}'>{{row.ischangepj || '--'}}</template>
                 </el-table-column>
-                <el-table-column prop='model' label='配件名称型号' show-overflow-tooltip resizable>
+                <el-table-column prop='model' label='配件名称型号' width='130' show-overflow-tooltip resizable>
                     <template slot-scope='{row}'>{{row.model || '--'}}</template>
                 </el-table-column>
                 <el-table-column prop='sl' label='数量'>

+ 1 - 1
src/views/equipment/table/zwTable.vue

@@ -192,7 +192,7 @@ export default {
                 plazaId: this.$store.state.plazaId
             }
             querySelect({ data, postParams }).then(res => {
-                console.log(res)
+                //console.log(res)
                 let lb = res.data.data.v_glsms_zw.lb
                 let xm = res.data.data.v_glsms_zw.xm
                 let sxjd = res.data.data.v_glsms_zw.sxjd

+ 8 - 3
src/views/floorFunc/index.vue

@@ -7,7 +7,7 @@
         <div class='legend-boxs'>
             <Legend></Legend>
         </div>
-        <floor-list @emitFloor='emitFloor' :id='"floor"'></floor-list>
+        <floor-list v-if='floorsArr.length>0' :floorsArr='floorsArr' :type='1' @emitFloor='emitFloor' :id='"floor"'></floor-list>
         <!-- <div class='additional-box'>
             <div class='additional' @click='additionalColl'>
                 <img src='../../assets/imgs/bg.png' alt />
@@ -16,12 +16,13 @@
                 <div v-if='show' class='add-img'>我是放附加数据图片哒。。。</div>
             </el-collapse-transition>
         </div>-->
-        <floorMap ref='floorMap' :loadName='loadName'></floorMap>
+        <floorMap ref='floorMap' :loadName='loadName' :type='"floor"'></floorMap>
     </div>
 </template>
 <script>
 import floorMap from '@/components/floorMap/index.vue'
 import floorList from '@/components/floorList.vue'
+import { mapGetters } from 'vuex'
 
 export default {
     components: { floorMap, floorList },
@@ -32,9 +33,13 @@ export default {
                 gname: 'f1',
                 code: 'F1'
             },
-            loadName: ''
+            loadName: '',
+            type: ''
         }
     },
+    computed: {
+        ...mapGetters(['floorsArr'])
+    },
     methods: {
         emitFloor(item) {
             this.floorInfo = item

+ 0 - 1
src/views/index.vue

@@ -34,7 +34,6 @@ export default {
     },
     methods: {
         handlerouterName(val) {
-            console.log(val)
             this.routerName = val
             if (val == 'de') {
                 this.modelNum = 3

+ 18 - 8
src/views/legendLibrary/addForm.vue

@@ -102,10 +102,8 @@
                     <TreeSelect
                         tipPlace='top'
                         width='200'
-                        class='aaaaa'
                         style=' margin-right:48px;'
-                        :notNull='true'
-                        :returnParentNode='false'
+                        :returnParentNode='true'
                         :isShowAllChoice='true'
                         :choseArea='true'
                         :data='deviceList'
@@ -230,7 +228,7 @@ export default {
             })
         },
         handleRemove(file, fileList) {
-            // console.log(file, fileList, 'file')
+            // //console.log(file, fileList, 'file')
         },
         getFile(file) {
             this.file = file.file
@@ -348,7 +346,7 @@ export default {
             }
         },
         base64ToFile(dataurl, filename) {
-            console.log(dataurl, 'url')
+            //console.log(dataurl, 'url')
             let arr = dataurl.split(',')
             let mime = arr[0].match(/:(.*?);/)[1]
             if (!filename) {
@@ -389,7 +387,7 @@ export default {
         },
         // 铺位可视化
         treeConfirm(data) {
-            console.log(data, 'data')
+            //console.log(data, 'data')
             this.$set(this.ruleForm, 'InfoTypeId', data)
         },
         //专业
@@ -399,9 +397,21 @@ export default {
         //位置/设备
         treeConfirmDevice(id, info) {
             // this.$set(this.ruleForm, 'InfoLocal', data)
+            let InfoSystem = []
+            let InfoLocal = []
+            for (let i = 0; i < info.length; i++) {
+                let type = info[i]
+                if (type.name.includes('/')) {
+                    InfoLocal.push(type)
+                    this.$set(this.ruleForm, 'InfoLocal', InfoLocal)
+                } else {
+                    InfoSystem.push(type)
+                    this.$set(this.ruleForm, 'InfoSystem', InfoSystem)
+                }
+            }
         },
         focusChange(status) {
-            // console.log('focusChange', status)
+            // //console.log('focusChange', status)
         },
         visualization() {
             getVisualization({}).then(res => {
@@ -431,7 +441,7 @@ export default {
             }
         },
         focusChange(status) {
-            console.log('focusChange', status)
+            //console.log('focusChange', status)
         }
     },
     mounted() {

+ 13 - 13
src/views/legendLibrary/addLegend.vue

@@ -41,9 +41,9 @@ export default {
                 Url: '',
                 LineWidth: '',
                 LineDash: '',
-                InfoTypeId: [] //铺位可视化typeid
-                // InfoLocal: [], //工程信息化位置与设备分类
-                // InfoSystem: [] //工程信息化专业/系统
+                InfoTypeId: [], //铺位可视化typeid
+                InfoLocal: [], //工程信息化位置与设备分类
+                InfoSystem: [] //工程信息化专业/系统
             },
             title: '',
             GraphCategoryId: 'DTXT',
@@ -56,7 +56,7 @@ export default {
         open(row, title, GraphCategoryId) {
             this.title = title
             this.GraphCategoryId = GraphCategoryId
-            console.log(title)
+            //console.log(title)
             if (GraphCategoryId) {
                 groupByCategory({}).then(res => {
                     this.treeData = []
@@ -72,9 +72,9 @@ export default {
                     FillColor: '#ffffff',
                     Color: '#ffffff',
                     Url: '',
-                    InfoTypeId: [] //铺位可视化typeid
-                    // InfoLocal: [], //工程信息化位置与设备分类
-                    // InfoSystem: [] //工程信息化专业/系统
+                    InfoTypeId: [], //铺位可视化typeid
+                    InfoLocal: [], //工程信息化位置与设备分类
+                    InfoSystem: [] //工程信息化专业/系统
                 }
             } else if (title == '添加图例库') {
                 this.dialogVisible = true
@@ -85,9 +85,9 @@ export default {
                     FillColor: '#ffffff',
                     Color: '#ffffff',
                     Url: '',
-                    InfoTypeId: [] //铺位可视化typeid
-                    // InfoLocal: [], //工程信息化位置与设备分类
-                    // InfoSystem: [] //工程信息化专业/系统
+                    InfoTypeId: [], //铺位可视化typeid
+                    InfoLocal: [], //工程信息化位置与设备分类
+                    InfoSystem: [] //工程信息化专业/系统
                 }
             } else if (title == '修改图例库') {
                 this.dialogVisible = true
@@ -112,9 +112,9 @@ export default {
                 FillColor: '#ffffff',
                 Color: '#ffffff',
                 Url: '',
-                InfoTypeId: [] //铺位可视化typeid
-                // InfoLocal: [], //工程信息化位置与设备分类
-                // InfoSystem: [] //工程信息化专业/系统
+                InfoTypeId: [], //铺位可视化typeid
+                InfoLocal: [], //工程信息化位置与设备分类
+                InfoSystem: [] //工程信息化专业/系统
             }
             this.$refs.add.fileList = []
         },

+ 41 - 8
src/views/legendLibrary/index.vue

@@ -1,5 +1,14 @@
 <template>
     <div class='legend-library'>
+        <div class='nav'>
+            <img class='img-menu' src='@/assets/imgs/menu.png' alt />
+            <el-divider direction='vertical'></el-divider>
+            <img class='img-logo' src='@/assets/imgs/logo_tu.png' alt />
+            <span style='color:#1F2329'>万达管理说明书</span>
+            <span class='circular'></span>
+            <span style='color:#1F2329'>图例库管理</span>
+            <i class='el-icon-caret-bottom'></i>
+        </div>
         <div class='legend-library-top'>
             图例库管理
             <span class='library-btn'>
@@ -39,7 +48,7 @@
                         width='280'
                         style='margin:0 12px'
                         :isShowAllChoice='true'
-                        :returnParentNode='true'
+                        :returnParentNode='false'
                         :choseArea='true'
                         :data='deviceList'
                         :hideClear='true'
@@ -345,15 +354,18 @@ export default {
         //位置/设备
         treeConfirmDevice(id, info) {
             // console.log(id, info)
-
-            // id.forEach(i => {
-            //     let id = i.substring(0, 4)
-            //     // 1 位置 2 设备
-            //     if (i[i.length - 1] == 1) {
-            //         this.InfoLocals = id
+            // var a = []
+            // var d = []
+            // for (let i = 0; i < info.length; i++) {
+            //     let type = info[i]
+            //     if (type.name.includes('/')) {
+            //         a.push(type)
             //     } else {
+            //         d.push(type)
             //     }
-            // })
+            // }
+            // console.log('a:', a, 'd:', d)
+
             this.InfoLocals = id
             this.getTableList()
         },
@@ -380,6 +392,27 @@ export default {
     display: flex;
     flex-direction: column;
     height: 100%;
+    .nav {
+        height: 48px;
+        line-height: 48px;
+        width: 100%;
+        background: #fff;
+        margin-left: 17px;
+        .img-menu {
+            margin-right: 9px;
+        }
+        .img-logo {
+            margin: 0 9px;
+        }
+        .circular {
+            display: inline-block;
+            width: 4px;
+            height: 4px;
+            background: rgba(195, 198, 203, 1);
+            border-radius: 50%;
+            margin: 0 8px 3px 8px;
+        }
+    }
     .legend-library-top {
         height: 48px;
         background: rgba(247, 249, 250, 1);

+ 1 - 1
src/views/legendRules/addList.vue

@@ -36,7 +36,7 @@ export default {
             }
             this.data = []
             getTransfer({ getParams }).then(res => {
-                console.log(res)
+                //console.log(res)
                 let content = res.Content
                 content.forEach(el => {
                     this.data.push({

+ 3 - 3
src/views/other/gcfzDialog.vue

@@ -58,14 +58,14 @@ export default {
 
             querygcfzyfhz({ getParams }).then(res => {
                 if (res.result == 'success') {
-                    console.log('汇总统计报', res)
+                    //console.log('汇总统计报', res)
                     this.loading = false
                     this.hztjTable = res.data ? res.data : []
                 }
             })
         },
         changeEmit(val) {
-            console.log(val)
+            //console.log(val)
             if (val.floors) {
                 this.floors = val.floors
             }
@@ -96,7 +96,7 @@ export default {
             }
             queryfzyfchange({ getParams }).then(res => {
                 if (res.result == 'success') {
-                    console.log('变更记录', res)
+                    //console.log('变更记录', res)
                     this.total = res.count
                     this.loading = false
                     this.bgjlTable = res.data ? res.data : []

+ 86 - 19
src/views/other/index.vue

@@ -16,8 +16,8 @@
                 </ul>
             </div>
             <!-- 楼层 -->
-            <div class='other-right' v-if='matterId!=1 && picFloorImg.length>0'>
-                <floor-list @emitFloor='emitFloor'></floor-list>
+            <div class='other-right' v-if='matterId!=1'>
+                <floor-list-other v-if='floorData.length>0' :floorsArr='floorData' @emitFloor='emitFloor' :type='2'></floor-list-other>
             </div>
             <!-- 图例 -->
             <!-- <div class='legend-boxs' v-if='matterId!=1'>
@@ -41,9 +41,10 @@
 import ZhsxOther from './zhsxOther'
 import GcfzDialog from './gcfzDialog'
 import OtherDialog from './otherDialog'
-import { queryPic } from '@/api/public.js'
-import floorList from '@/components/floorList.vue'
+import { queryPic, queryTab } from '@/api/public.js'
+import floorListOther from '@/components/floorListOther.vue'
 import { matter } from '@/utils/plugins/components.js'
+import { mapGetters } from 'vuex'
 export default {
     data() {
         return {
@@ -57,10 +58,11 @@ export default {
             },
             picFloor: '',
             picFloorImg: [],
-            dialogInfo: {}
+            dialogInfo: {},
+            floorData: []
         }
     },
-    components: { floorList, OtherDialog, ZhsxOther, GcfzDialog },
+    components: { floorListOther, OtherDialog, ZhsxOther, GcfzDialog },
     methods: {
         tabSyatem(item) {
             this.matterId = item.id
@@ -68,36 +70,101 @@ export default {
             this.systemName = item.name
         },
         emitFloor(item) {
-            console.log(item)
-            this.queryPicter()
+            this.queryPicter(item.gname)
             this.floorInfo = item
             this.picFloor = this.floorInfo.gname
         },
         dialogVisible(item) {
             this.$refs.gcfzDialog.showModal(item)
         },
-        queryPicter() {
+        queryPicter(floor) {
             this.picFloor = this.$cookie.get('floorNow')
             let getParams = {
                 module: '1004',
-                floor: this.picFloor,
-                plazaId: this.$store.state.plazaId
+                floor: floor,
+                plazaId: this.plazaId
             }
             queryPic({ getParams }).then(res => {
-                console.log('库房管理图', res)
-                this.picFloorImg = res.data
-                console.log(this.picFloorImg)
-                if (this.picFloorImg) {
-                    console.log(1111)
-                } else {
-                    console.log(222222)
+                //console.log('库房管理图', res)
+                this.picFloorImg = res.data[0].url ? res.data[0].url : ''
+                //console.log('this.picFloorImg', this.picFloorImg)
+            })
+        },
+        // 查询哪几个楼层有库房图
+        tabSize() {
+            let data = { plazaId: this.plazaId }
+            let postParams = [
+                {
+                    tableName: 'glsms_proimgup',
+                    params: { module: '1004', floor: 'f1' }
+                },
+                {
+                    tableName: 'glsms_proimgup',
+                    params: { module: '1004', floor: 'f2' }
+                },
+                {
+                    tableName: 'glsms_proimgup',
+                    params: { module: '1004', floor: 'f3' }
+                },
+                {
+                    tableName: 'glsms_proimgup',
+                    params: { module: '1004', floor: 'f4' }
+                },
+                {
+                    tableName: 'glsms_proimgup',
+                    params: { module: '1004', floor: 'f5' }
+                },
+                {
+                    tableName: 'glsms_proimgup',
+                    params: { module: '1004', floor: 'f6' }
+                },
+                {
+                    tableName: 'glsms_proimgup',
+                    params: { module: '1004', floor: 'b1' }
+                },
+                {
+                    tableName: 'glsms_proimgup',
+                    params: { module: '1004', floor: 'b2' }
                 }
+            ]
+            queryTab({ data, postParams }).then(res => {
+                //console.log('查询哪几层楼有图', res)
+                this.floorData = []
+                let data = res.data.data
+                data.forEach(el => {
+                    //console.log(el)
+                    // gcode: "4F"
+                    // name: "第4层"
+                    // seq: 400
+                    if (el.count > 0) {
+                        let obj = {
+                            gname: el.params.floor,
+                            code: el.params.floor.toUpperCase(),
+                            gcode: el.params.floor
+                                .toUpperCase()
+                                .split('')
+                                .reverse()
+                                .join(''),
+                            seq:
+                                el.params.floor.substring(1, 2) == 'b'
+                                    ? el.params.floor.substring(1, 2) + '00'
+                                    : -el.params.floor.substring(1, 2) + '00'
+                        }
+                        //console.log(obj)
+                        this.floorData.push(obj)
+                    }
+                })
+                //console.log('查询哪几层楼有图', this.floorData)
             })
         }
     },
+    computed: {
+        ...mapGetters(['floorsArr', 'plazaId'])
+    },
     mounted() {
         this.everySystem = this.matter[0].children
-        this.queryPicter()
+        // this.queryPicter()
+        this.tabSize()
     }
 }
 </script>

+ 2 - 2
src/views/other/otherDialog.vue

@@ -34,11 +34,11 @@ export default {
             this.dialogInfo = item
             if (Object.keys(this.dialogInfo).length > 0) {
                 this.activeName = this.dialogInfo.children[0].id
-                console.log(this.activeName)
+                //console.log(this.activeName)
             }
         },
         handleClick(tab, event) {
-            console.log(tab, event)
+            //console.log(tab, event)
         }
     }
 }

+ 31 - 1
src/views/other/zhsxDialog.vue

@@ -31,8 +31,22 @@ export default {
         open() {
             this.visible = true
         },
+        /**
+         * @name objectSpanMethod
+         * @param { Object } row        当前行
+         * @param { Object } column     当前列
+         * @param {  Number } rowIndex   当前行号
+         * @param { Number } columnIndex    当前列号
+         * @return { Array,Object }
+         * @description 通过给table传入span-method方法可以实现合并行或列,方法的参数是一个对象,
+         * 里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。
+         * 该函数可以返回一个包含两个元素的数组,第一个元素代表rowspan,
+         * 第二个元素代表colspan。 也可以返回一个键名为rowspan和colspan的对象。
+         */
         objectSpanMethod({ row, column, rowIndex, columnIndex }) {
-            if (columnIndex === 2 || columnIndex === 3) {
+            // 取出 tableData的长度, 合并记录事项 表格 使用
+            let { length } = this.tableData || 1
+            if (columnIndex === 2) {
                 if (rowIndex > 0 && row[column.property] === this.tableData[rowIndex - 1][column.property]) {
                     return {
                         rowspan: 0,
@@ -50,6 +64,9 @@ export default {
                         colspan: 1
                     }
                 }
+            } else if (columnIndex === 3) {
+                // 记录事项表格合并
+                return { rowspan: length, colspan: 1 }
             }
         }
     }
@@ -73,6 +90,19 @@ export default {
     }
     .bottom-table {
         margin-top: 12px;
+        // element-ui table 组件 记录事项样式修改, 换行,fixed到页面中部
+        /deep/ .el-table__row:first-child {
+            td:last-child {
+                div {
+                    white-space: pre-wrap;
+                    word-wrap: break-word;
+                    word-break: break-all;
+                    position: fixed;
+                    top: 50%;
+                    transform: translateY(-50%);
+                }
+            }
+        }
     }
 }
 </style>

+ 11 - 2
src/views/other/zhsxOther.vue

@@ -45,8 +45,17 @@ export default {
                 getParams: {}
             }
             queryZhsxjl(params).then(res => {
-                console.log('综合事项弹框', res)
-                this.tableData = res.data
+                let arr = []
+                //console.log('综合事项弹框', res)
+                this.tableData = res.data || []
+                // 将tableData中的第三项都设置为相同的数据
+                this.tableData.map(item => {
+                    arr.push(item.jlsx)
+                })
+                arr = [...new Set(arr)]
+                this.tableData.map(item => {
+                    item.jlsx = arr.join('\n\r')
+                })
             })
             this.$refs.Dialog.open()
         },

+ 4 - 4
src/views/other/zhsxOtherTable1.vue

@@ -116,7 +116,7 @@ export default {
         },
         rowClick() {},
         changeData(val) {
-            console.log(val)
+            //console.log(val)
         },
         // 综合记录
         getZhjl() {
@@ -142,7 +142,7 @@ export default {
                     this.total = res.count
                     this.zhjlTable = res.data ? res.data : []
                 }
-                console.log('综合记录', res)
+                //console.log('综合记录', res)
             })
         },
         pageChanged(page) {
@@ -161,7 +161,7 @@ export default {
                 plazaId: this.$store.state.plazaId
             }
             querySelect({ data, postParams }).then(res => {
-                console.log('政府部门', res)
+                //console.log('政府部门', res)
                 let department = []
                 department = res.data.data.v_glsms_zhsxjl.department ? res.data.data.v_glsms_zhsxjl.department : []
                 if (department.length > 0) {
@@ -172,7 +172,7 @@ export default {
                         }
                         this.department.push(obj)
                     })
-                    console.log(this.department)
+                    //console.log(this.department)
                 }
             })
         },

+ 7 - 12
src/views/other/zhsxOtherTable2.vue

@@ -17,7 +17,7 @@
                 size='small'
                 v-model='ztdsf'
                 style='margin-right:12px'
-                v-if='status2.length>=0'
+                v-if='status2.length>0'
                 :selectdata='status2'
                 :placeholder='"请选择"'
                 @change='dsfjc'
@@ -27,7 +27,7 @@
                 width='200'
                 tipPlace='top'
                 caption='部门'
-                v-if='zgbm.length>=0'
+                v-if='zgbm.length>0'
                 size='small'
                 v-model='bmdsf'
                 style='margin-right:12px'
@@ -91,12 +91,6 @@ export default {
     data() {
         return {
             loading: true,
-            dataSelect2: [
-                { id: 'test1', name: '选择项' },
-                { id: 'test2', name: '单平米' },
-                { id: 'test3', name: '下级分项' },
-                { id: 'test4', name: '滑动平均滑动平均' }
-            ],
             searVal: '',
             dsfTable: [],
             total: 0,
@@ -137,7 +131,7 @@ export default {
                     this.total = res.count
                     this.dsfTable = res.data ? res.data : []
                 }
-                console.log('第三方', res)
+                //console.log('第三方', res)
             })
         },
         pageChanged(page) {
@@ -148,7 +142,7 @@ export default {
             this.department = []
             let postParams = [
                 {
-                    columnName: { status2: 'status2', zgbm: 'zgbm', conclusion: 'conclusion' },
+                    columnName: { status: 'status', zgbm: 'zgbm', conclusion: 'conclusion' },
                     tableName: 'v_glsms_dsfrw'
                 }
             ]
@@ -156,11 +150,11 @@ export default {
                 plazaId: this.$store.state.plazaId
             }
             querySelect({ data, postParams }).then(res => {
-                console.log('下拉框', res)
+                //console.log('下拉框', res)
                 let status2 = [],
                     zgbm = [],
                     conclusion = []
-                status2 = res.data.data.v_glsms_dsfrw.status2 ? res.data.data.v_glsms_dsfrw.status2 : []
+                status2 = res.data.data.v_glsms_dsfrw.status ? res.data.data.v_glsms_dsfrw.status : []
                 zgbm = res.data.data.v_glsms_dsfrw.zgbm ? res.data.data.v_glsms_dsfrw.zgbm : []
                 conclusion = res.data.data.v_glsms_dsfrw.conclusion ? res.data.data.v_glsms_dsfrw.conclusion : []
                 if (status2.length > 0) {
@@ -172,6 +166,7 @@ export default {
                         this.status2.push(obj)
                     })
                 }
+                //console.log(this.status2)
                 if (zgbm.length > 0) {
                     zgbm.forEach(el => {
                         let obj = {

+ 1 - 1
src/views/overview/index.vue

@@ -243,7 +243,7 @@ export default {
 }
 </script>
 <style lang="less" scoped>
-@import '../../assets/css/rotation.css';
+@import '../../assets/css/rotation.less';
 </style>
 <style lang="less">
 .view-right-bottom {

+ 3 - 2
src/views/overview/picModal.vue

@@ -5,7 +5,7 @@
                 src='https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1592807833&di=5adf17cda9f46c37696da5b1d0aec9dc&src=http://a3.att.hudong.com/14/75/01300000164186121366756803686.jpg'
                 alt
             />-->
-            <rotation v-if='rotationImg.length>0' :rotationImg='rotationImg' style='height:700px;'></rotation>
+            <rotation v-if='rotationImg.length>0' :rotationImg='rotationImg' style='height:100%;'></rotation>
             <span class='close' @click='close'>X</span>
         </el-dialog>
     </div>
@@ -53,7 +53,7 @@ export default {
 <style lang='less'>
 .picDia {
     .el-dialog {
-        height: 90%;
+        height: 88%;
         margin-top: 5vh !important;
         position: relative;
         .el-dialog__header {
@@ -61,6 +61,7 @@ export default {
         }
         .el-dialog__body {
             padding: 0;
+            height: 100%;
         }
     }
 }

+ 8 - 10
src/views/room/detail.vue

@@ -15,7 +15,7 @@
                 width='146'
                 v-model='sbglgsStr'
                 style='margin-right:12px'
-                v-if='sbglgs.length>0'
+                v-if='sbglgs.length>=0'
                 tipPlace='top'
                 caption='管理归属'
                 @change='changeSbglgsStr'
@@ -25,7 +25,7 @@
             <Select
                 width='146'
                 style='margin-right:12px'
-                v-if='sb_status.length>0'
+                v-if='sb_status.length>=0'
                 tipPlace='top'
                 caption='设备状态'
                 size='small'
@@ -163,7 +163,6 @@ import Select from '@/components/Select/Select.vue'
 import { querySelect } from '@/api/public.js'
 import { mapGetters } from 'vuex'
 import { queryHxsbDetail } from '@/api/room.js'
-import InputDialog from './inputDialog'
 
 export default {
     props: ['type_code'],
@@ -193,11 +192,10 @@ export default {
         }
     },
     components: {
-        Select,
-        InputDialog
+        Select
     },
     computed: {
-        ...mapGetters(['floorSelect'])
+        ...mapGetters(['floorSelect', 'plazaId'])
     },
     mounted() {
         if (this.type_code) {
@@ -233,7 +231,7 @@ export default {
                 type_code: this.type_code //自定义分类内码 主要设备清单必传
             }
             let data = {
-                plazaId: this.$store.state.plazaId,
+                plazaId: this.plazaId,
                 page: this.pageDetail,
                 size: this.sizeDetail
             }
@@ -291,7 +289,7 @@ export default {
             }
 
             queryHxsbDetail({ data, postParams }).then(res => {
-                console.log('钻取表', res)
+                //console.log('钻取表', res)
                 this.loadingDetail = false
                 this.detailData = res.data.data ? res.data.data : []
                 this.totalDetail = res.data.count
@@ -309,10 +307,10 @@ export default {
                 }
             ]
             let data = {
-                plazaId: this.$store.state.plazaId
+                plazaId: this.plazaId
             }
             querySelect({ data, postParams }).then(res => {
-                console.log('管理归属', res)
+                //console.log('管理归属', res)
                 if (res.data.data) {
                     let sb_status = [],
                         sbglgs = []

+ 38 - 42
src/views/room/index.vue

@@ -7,13 +7,16 @@
     <div class='compute-box'>
         <el-dialog :title='`${systemName}`||"机房"' :visible.sync='visible' :fullscreen='true'>
             <div class='compute-span'></div>
-            <div class='compute-zf' @click='jumpFloor'></div>
+            <el-tooltip class='item' effect='dark' :content='content' placement='top'>
+                <div class='compute-zf' @click='jumpFloor'></div>
+            </el-tooltip>
+
             <div class='compute-tab'>
                 <el-tabs v-model='activeName' @tab-click='handleClick'>
-                    <el-tab-pane label='机房布置图' name='1'>
+                    <el-tab-pane label='机房布置图' name='1' v-if='tableImg.length>0'>
                         <room-table1 v-if='tableImg.length>=0' :tableImg='tableImg'></room-table1>
                     </el-tab-pane>
-                    <el-tab-pane label='配电室低压柜及出线明细表' name='2'>
+                    <el-tab-pane label='配电室低压柜及出线明细表' name='2' v-if='systemName=="配电室机房"'>
                         <div class='compute-center'>
                             <Select
                                 width='200'
@@ -407,11 +410,11 @@ import roomTable4 from './room4'
 import roomTable5 from './room5'
 import { mapGetters } from 'vuex'
 import { querySelect, queryPic } from '@/api/public.js'
-import InputDialog from './inputDialog'
 
 export default {
     data() {
         return {
+            content: '',
             activeName: '1',
             visible: false,
             dialogFormVisible: false,
@@ -494,11 +497,10 @@ export default {
         roomTable2,
         roomTable3,
         roomTable4,
-        roomTable5,
-        InputDialog
+        roomTable5
     },
     computed: {
-        ...mapGetters(['floorSelect'])
+        ...mapGetters(['floorSelect', 'plazaId'])
     },
     methods: {
         handleClick(tab) {
@@ -515,6 +517,7 @@ export default {
                 this.changeSelect()
             }
         },
+        // 右上角的筛选点击按钮
         show() {
             this.dialogFormVisible = !this.dialogFormVisible
         },
@@ -525,11 +528,10 @@ export default {
                 location: '1809',
                 module: '1002',
                 system: '1002',
-                // floor: this.picFloor,
-                plazaId: this.$store.state.plazaId
+                plazaId: this.plazaId
             }
             queryPic({ getParams }).then(res => {
-                console.log('机房布置图', res)
+                //console.log('机房布置图', res)
                 this.tableImg = res.data ? res.data : []
             })
         },
@@ -537,7 +539,7 @@ export default {
         Index1() {
             let getParams = {
                 location: '1890',
-                plazaId: this.$store.state.plazaId,
+                plazaId: this.plazaId,
                 page: this.page1,
                 size: this.size1
             }
@@ -577,7 +579,7 @@ export default {
                     this.loading1 = false
                     this.total1 = res.count
                     this.table2 = res.data ? res.data : []
-                    console.log('明细表', res)
+                    //console.log('明细表', res)
                 }
             })
         },
@@ -586,7 +588,7 @@ export default {
             let postParams = {}
             let data = {
                 location: '1890',
-                plazaId: this.$store.state.plazaId,
+                plazaId: this.plazaId,
                 page: this.page2,
                 size: this.size2
             }
@@ -615,7 +617,7 @@ export default {
                 data.floor = this.floorChange
             }
             queryHxsb({ data, postParams }).then(res => {
-                console.log('核心设备', res)
+                // console.log('核心设备', res)
                 this.loading2 = false
                 this.total2 = res.data.count
                 this.table3 = res.data.data ? res.data.data : []
@@ -637,12 +639,12 @@ export default {
             this.page4 = val
             this.Index4()
         },
-        // 维修
+        // 机房维修记录
         Index3() {
             let getParams = {
                 location: '1890',
                 // plazaId: '1001145',
-                plazaId: this.$store.state.plazaId,
+                plazaId: this.plazaId,
                 page: this.page3,
                 size: this.size3,
                 orderBy: 'sjjssj,0;location,1'
@@ -677,7 +679,7 @@ export default {
                 getParams.sjjssjEndDate = this.yssjDate[1] + '000000'
             }
             queryWxjf({ getParams }).then(res => {
-                console.log('维修', res)
+                //console.log('维修', res)
                 if (res.result == 'success') {
                     this.loading3 = false
                     this.total3 = res.count
@@ -685,26 +687,12 @@ export default {
                 }
             })
         },
-        changeIndex3(val) {
-            if (val.type == 'wx') {
-                if (val.msInput4) {
-                    this.msInput4 = val.msInput4
-                }
-                if (val.zysxInput4) {
-                    this.zysxInput4 = val.zysxInput4
-                }
-                if (val.gdbhInput4) {
-                    this.gdbhInput4 = val.gdbhInput4
-                }
-                this.Index3()
-            }
-        },
-        // 维保
+        // 机房维保记录
         Index4() {
             let postParams = {}
             let data = {
                 location: '1890',
-                plazaId: this.$store.state.plazaId,
+                plazaId: this.plazaId,
                 page: this.page4,
                 size: this.size4,
                 orderBy: 'wb_gzglid,0;assetnum,1;reportedby,0;'
@@ -768,7 +756,7 @@ export default {
                 }
             }
             queryWb({ data, postParams }).then(res => {
-                console.log('维保', res)
+                //console.log('维保', res)
                 this.loading4 = false
                 this.total4 = res.data.count
                 this.table5 = res.data.data ? res.data.data : []
@@ -780,6 +768,7 @@ export default {
         confirm2() {
             this.Index4()
         },
+        // 下拉框数据
         changeSelect() {
             this.department = []
             let postParams = [
@@ -789,10 +778,10 @@ export default {
                 }
             ]
             let data = {
-                plazaId: this.$store.state.plazaId
+                plazaId: this.plazaId
             }
             querySelect({ data, postParams }).then(res => {
-                console.log('下拉框', res)
+                //console.log('下拉框', res)
                 let status = [],
                     zt = []
 
@@ -818,23 +807,32 @@ export default {
                 }
             })
         },
+        // 查询楼层功能下的机房属于哪类设备
         init() {
             this.smsxtArr = []
             let params = {
                 getParams: {
                     locationid: '5209',
-                    plazaId: this.$store.state.plazaId
+                    plazaId: this.plazaId
                 }
             }
             querySystem(params).then(res => {
-                console.log('系统', res.data[0])
                 this.smsxtArr = res.data[0]
+                this.content = `查看${this.$cookie.get('floorNow')}层${this.smsxtArr.smsxtname}分布图`
             })
         },
+        // 打开机房弹框
         open(name) {
             this.visible = true
-            this.systemName = name
+            this.systemName = name.name
+            if (name.type == 'floor') {
+                this.init()
+            } else if (name.type == 'system') {
+                let floor = this.$cookie.get('floorNow')
+                this.content = `查看${floor}层楼层功能图`
+            }
         },
+        // 机房右上角的跳转 如果是在楼层功能打开的机房则要跳转到设备设施对应的系统\楼层 反之亦然
         jumpFloor() {
             if (location.pathname.split('/')[3] == 'equipment') {
                 this.$router.push({ path: '/home/floorFunc' })
@@ -844,10 +842,8 @@ export default {
         }
     },
     mounted() {
-        this.init()
         this.Index()
-    },
-    watch: {}
+    }
 }
 </script>
 <style lang="less" scoped>

+ 0 - 68
src/views/room/inputDialog.vue

@@ -1,68 +0,0 @@
-<template>
-    <div class='input-dialog'>
-        <div @click='show' style='color: #c3c7cb;cursor: pointer;position:absolute;top:-45px;right:0px;'>
-            <img src='@/assets/imgs/select.png' />
-            筛选
-        </div>
-        <div
-            v-if='dialogFormVisible'
-            style='width:280px;height:450px;background:rgba(255,255,255,1);
-            box-shadow:0px 2px 10px 0px rgba(31,35,41,0.1);border:1px solid rgba(228,229,231,1);z-index:9999;
-            position:absolute;top:0px;right:0px;'
-        >
-            <el-form style=' padding: 20px 24px;'>
-                <p style='margin:16px 0 8px 0'>安装位置</p>
-                <el-input placeholder='搜索安装位置' style='width:192px;margin-right:12px' size='small' prefix-icon='el-icon-search' v-model='keyword'></el-input>
-                <p style='margin:16px 0 8px 0'>生产厂商</p>
-                <el-input placeholder='搜索生产厂商' style='width:192px;margin-right:12px' size='small' prefix-icon='el-icon-search' v-model='keyword'></el-input>
-                <p style='margin:16px 0 8px 0'>服务商</p>
-                <el-input placeholder='搜索服务商' style='width:192px;margin-right:12px' size='small' prefix-icon='el-icon-search' v-model='keyword'></el-input>
-                <p style='margin:16px 0 8px 0'>设备编号</p>
-                <el-input placeholder='搜索设备编号' style='width:192px;margin-right:12px' size='small' prefix-icon='el-icon-search' v-model='keyword'></el-input>
-            </el-form>
-
-            <div style='position:absolute;bottom:40px;right:47px;z-index:9999'>
-                <el-button @click='dialogFormVisible = false' size='small'>取 消</el-button>
-                <el-button type='primary' @click='confirm' size='small'>确 定</el-button>
-            </div>
-        </div>
-    </div>
-</template>
-
-<script>
-export default {
-    data() {
-        return {
-            dialogFormVisible: false,
-            form: {},
-            formLabelWidth: '232px',
-            search: {
-                type: 'wx',
-                msInput4: '',
-                zysxInput4: '',
-                gdbhInput4: ''
-            }
-        }
-    },
-    props: ['type'],
-    methods: {
-        show() {
-            this.dialogFormVisible = !this.dialogFormVisible
-        },
-        confirm() {
-            this.dialogFormVisible = false
-            console.log(this.type)
-            if (this.type == 'wx') {
-                this.$emit('changeIndex3', this.search)
-            }
-        }
-    },
-    mounted() {}
-}
-</script>
-
-<style lang="less" scoped>
-.input-dialog {
-    position: relative;
-}
-</style>

+ 2 - 2
src/views/room/room4.vue

@@ -15,7 +15,7 @@
                 <el-table-column prop label='设备编号' show-overflow-tooltip resizable>
                     <template slot-scope='{row}'>{{row.location||'--'}}</template>
                 </el-table-column>
-                <el-table-column prop label='重要事项记录' min-width='110' show-overflow-tooltip resizable>
+                <el-table-column prop label='重要事项记录' width='130' show-overflow-tooltip resizable>
                     <template slot-scope='{row}'>{{row.matters||'--'}}</template>
                 </el-table-column>
                 <el-table-column prop label='描述' show-overflow-tooltip resizable>
@@ -25,7 +25,7 @@
                     <el-table-column prop label='是/否更换' show-overflow-tooltip resizable>
                         <template slot-scope='{row}'>{{row.ismodel||'--'}}</template>
                     </el-table-column>
-                    <el-table-column prop label='配件名称型号' min-width='110' show-overflow-tooltip resizable>
+                    <el-table-column prop label='配件名称型号' width='130' min-width='110' show-overflow-tooltip resizable>
                         <template slot-scope='{row}'>{{row.model||'--'}}</template>
                     </el-table-column>
                     <el-table-column prop label='数量' show-overflow-tooltip resizable>

+ 2 - 1
vue.config.js

@@ -18,6 +18,7 @@ module.exports = {
             },
             '/serve': {
                 target: 'http://192.168.200.87:8088',
+                // target: 'http://192.168.200.83:8085',
                 changeOrigin: true,
                 pathRewrite: {
                     '^/serve': '',
@@ -54,4 +55,4 @@ module.exports = {
     outputDir: 'wandaBmGuide',
     // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
     assetsDir: 'static',
-}
+}