YaolongHan hace 4 años
padre
commit
9a019da5a0

+ 1 - 1
package.json

@@ -9,7 +9,7 @@
     },
     "dependencies": {
         "@saga-web/base": "2.1.19",
-        "@saga-web/big": "1.0.39",
+        "@saga-web/big": "1.0.40",
         "@saga-web/draw": "2.1.94",
         "@saga-web/feng-map": "1.0.11",
         "@saga-web/graph": "2.1.82",

+ 3 - 2
public/systemConf.js

@@ -25,8 +25,9 @@ var __systemConf = {
     conf: {
         // 编辑器地址
         // TODO: 修改为对应的地址
-        editerUrl: 'http://192.168.200.1:9910/wandaEditer/',
-        wandaBmGuideUrl: ' http://192.168.200.89:8081/wandaBmGuide',
+        // editerUrl: 'http://192.168.200.1:9910/wandaEditer/',
+        editerUrl: 'http://192.168.200.89:8081/wandaEditer/',
+        wandaBmGuideUrl: 'http://192.168.200.89:8080/wandaBmGuide',
     },
 }
 window.__systemConf = __systemConf

+ 6 - 2
src/assets/css/rotation.css

@@ -67,6 +67,9 @@
   margin-bottom: 10px;
   position: relative;
 }
+.overview .view-box .view-left .lb-left img {
+  width: 100%;
+}
 .overview .view-box .view-left .lb-left .lb-icon {
   z-index: 99;
   position: absolute;
@@ -186,7 +189,7 @@
   flex-direction: column;
 }
 .overview .view-box .view-right .view-right-box .lb-right {
-  height: 38%;
+  flex: 1;
   margin-top: 12px;
   margin-bottom: 10px;
   position: relative;
@@ -210,9 +213,10 @@
   right: 10px;
 }
 .overview .view-box .view-right .view-right-box .lb-right-bottom {
-  flex: 1;
+  height: 53%;
   background: #ffffff;
   padding: 12px 16px;
+  overflow: hidden;
 }
 .overview .view-box .view-right .view-right-box .lb-right-bottom nav {
   width: 161px;

+ 7 - 2
src/assets/css/rotation.less

@@ -63,6 +63,10 @@
                 margin-top: 12px;
                 margin-bottom: 10px;
                 position: relative;
+                img {
+                    width: 100%;
+                    // height: 100%;
+                }
                 .lb-icon {
                     z-index: 99;
                     position: absolute;
@@ -182,7 +186,7 @@
                 display: flex;
                 flex-direction: column;
                 .lb-right {
-                    height: 38%;
+                    flex: 1;
                     margin-top: 12px;
                     margin-bottom: 10px;
                     position: relative;
@@ -206,9 +210,10 @@
                     }
                 }
                 .lb-right-bottom {
-                    flex: 1;
+                    height: 53%;
                     background: #ffffff;
                     padding: 12px 16px;
+                    overflow: hidden;
                     nav {
                         width: 161px;
                         height: 32px;

+ 53 - 69
src/components/Legend/src/legend.vue

@@ -37,30 +37,28 @@
                 </div>
             </el-collapse-transition>
         </div>
-        <div class='edit_map' v-if='systemName != "土建系统"'>
-            <div class='hover-div'>
-                <!-- 备注编辑器 -->
-                <span @click='legendClik'>
-                    <img src='@/assets/imgs/bjbg.png' alt />
-                </span>
-                <!-- 编辑图例 -->
-                <el-tooltip class='item' effect='dark' content='编辑图例' placement='left'>
-                    <span @click='editTl'>
-                        <img src='@/assets/imgs/bjtl.png' alt />
-                    </span>
-                </el-tooltip>
-            </div>
+        <div class='edit_map'>
+            <!-- 备注编辑器 -->
+            <el-tooltip effect='dark' content='编辑备注' placement='left'>
+                <span v-if='systemName != "土建系统"' class='bjtk' @click='legendClik'>备注</span>
+            </el-tooltip>
+            <!-- 编辑图例 -->
+            <el-tooltip effect='dark' content='编辑图例' placement='left'>
+                <p v-if='systemName != "土建系统"' @click='editTl' class='tltk'>
+                    <img src='@/assets/imgs/bjtl.png' alt />
+                </p>
+            </el-tooltip>
             <!-- 编辑平面图 -->
-            <el-tooltip @click='goToEditer' v-if='editPmt' class='item' effect='dark' content='编辑平面图' placement='left'>
-                <span class='edit-icon'>
-                    <a-icon type='edit' style='color:#fff' />
+            <el-tooltip v-if='editPmt' class='bjpmt' effect='dark' content='编辑平面图' placement='left'>
+                <span class='edit-icon' @click='goToEditer'>
+                    <i class='el-icon-edit' style='color:#fff;font-size:16px;'></i>
                 </span>
             </el-tooltip>
-            <span v-else @click='goToEditer' class='edit-icon2'>
-                <a-icon type='edit' style='color:#fff' />
+            <span v-else class='edit-icon2'>
+                <i class='el-icon-edit' style='color:#fff;font-size:16px;'></i>
             </span>
-            <legend-remarks @queryMarks='queryMarks' ref='EditdMarks'></legend-remarks>
         </div>
+        <legend-remarks @queryMarks='queryMarks' ref='EditdMarks'></legend-remarks>
     </div>
 </template>
 <script>
@@ -90,7 +88,7 @@ export default {
             multipleSelection: [],
             editText: '',
             editSwitch: false,
-            editPmt: false
+            editPmt: true //是否有跳转道图例库的权限
         }
     },
     computed: {
@@ -109,7 +107,7 @@ export default {
             let params = {
                 postParams: {
                     categoryId: 'NTXT',
-                    projectId: '1'
+                    projectId: this.$store.state.plazaId
                 }
             }
             queryRead(params).then(res => {
@@ -125,21 +123,11 @@ export default {
                     } else {
                         this.remarksText = `${this.text1}${this.text2}${note}`
                     }
-                    // if (note.search(this.text2) != -1) {
-                    //     this.remarksText = `${note}`
-                    // } else {
-                    //     this.remarksText = `${this.text2}${note}`
-                    // }
                 } else {
                     this.remarksText = `${this.text1}${this.text2}`
                 }
-                console.log(this.remarksText)
             })
         },
-        dump() {},
-        editChange(val) {
-            this.editText = val
-        },
         // 点击展示图例框
         showTl() {
             this.show = !this.show
@@ -151,6 +139,7 @@ export default {
         cance() {
             this.show2 = false
         },
+        // 编辑图例
         editTl() {
             this.show = false
             this.show2 = true
@@ -162,8 +151,7 @@ export default {
          */
         goToEditer() {
             let FloorID = this.$cookie.get('floorMapId') || 'f1'
-            let categoryId = this.$cookie.get('categoryId') || 'LCGN'
-            console.log(this.fmapID)
+            let categoryId = this.$cookie.get('categoryId')
             const { conf } = window.__systemConf,
                 { editerUrl } = conf
             let data = `categoryId=${categoryId}&projectId=${this.plazaId}&BuildingID=1&FloorID=${FloorID}&fmapID=${this.fmapID}`
@@ -185,8 +173,8 @@ export default {
         queryView(flag) {
             let postParams = {}
             let data = {
-                graphId: '1',
-                projectId: '1',
+                graphId: this.$cookie.get('graphId'),
+                projectId: this.$store.state.plazaId,
                 flag: flag
             }
             queryStatis({ data, postParams }).then(res => {
@@ -205,8 +193,8 @@ export default {
         queryEditNum(flag) {
             let postParams = {}
             let data = {
-                graphId: '1',
-                projectId: '1',
+                graphId: this.$cookie.get('graphId'),
+                projectId: this.$store.state.plazaId,
                 flag: flag
             }
             queryStatis({ data, postParams }).then(res => {
@@ -310,39 +298,35 @@ export default {
     .edit-icon {
         cursor: pointer;
     }
-    .hover-div {
-        position: absolute;
-        bottom: 58px;
-        .icon1 {
-            width: 40px;
-            height: 40px;
-            background: rgba(255, 255, 255, 1);
-            box-shadow: 0px 2px 4px 0px rgba(31, 36, 41, 0.06);
-            border: 1px solid rgba(31, 36, 41, 0.2);
-            font-size: 16px;
-            display: inline-block;
-            color: #646c73;
-            border-radius: 50%;
-            text-align: center;
-            line-height: 40px;
-            cursor: pointer;
-        }
-        .icon2 {
-            width: 40px;
-            height: 40px;
-            background: rgba(255, 255, 255, 1);
-            box-shadow: 0px 2px 4px 0px rgba(31, 36, 41, 0.06);
-            border: 1px solid rgba(31, 36, 41, 0.2);
-            font-size: 16px;
-            display: inline-block;
-            color: #646c73;
-            border-radius: 50%;
-            text-align: center;
-            line-height: 40px;
-            margin-top: 15px;
-            cursor: pointer;
-        }
+    .bjtk {
+        width: 40px;
+        height: 40px;
+        display: inline-block;
+        text-align: center;
+        background: rgba(255, 255, 255, 1);
+        box-shadow: 0px 2px 15px 0px rgba(31, 36, 41, 0.08);
+        border-radius: 90px;
+        line-height: 40px;
+        font-size: 12px;
+        margin: 0 auto;
+        cursor: pointer;
+        border: 1px solid #ccc;
+        margin-left: 4px;
+        margin-bottom: 8px;
+        margin-top: 10px;
+        display: none;
     }
+    .tltk {
+        margin-bottom: 10px;
+        display: none;
+        cursor: pointer;
+    }
+}
+.edit_map:hover .tltk {
+    display: block;
+}
+.edit_map:hover .bjtk {
+    display: block;
 }
 </style>
 <style lang="less">

+ 26 - 18
src/components/PicLarge/src/picLarge.vue

@@ -4,23 +4,25 @@
 *@info:大图预览
 */
 <template>
-    <el-dialog title='图片预览' width='1080px' :visible.sync='dialogVisible' :close-on-click-modal='false' append-to-body>
-        <div class='pic-list'>
-            <div class='pic-left'>
-                <ul v-for='(item,index) in imgUrl' :key='index'>
-                    <li @click='getIndex(item.url)'>
-                        <img :src='item.url' />
-                    </li>
-                    <span>{{item.name}}</span>
-                </ul>
-            </div>
-            <div class='pic-right'>
-                <div class='pic-right-img'>
-                    <img :src='ImgUrl' />
+    <div class='tpyl'>
+        <el-dialog title='图片预览' width='90%' :visible.sync='dialogVisible' :close-on-click-modal='false' append-to-body>
+            <div class='pic-list'>
+                <div class='pic-left'>
+                    <ul v-for='(item,index) in imgUrl' :key='index'>
+                        <li @click='getIndex(item.url)'>
+                            <img :src='item.url' />
+                        </li>
+                        <!-- <span>{{item.name}}</span> -->
+                    </ul>
+                </div>
+                <div class='pic-right'>
+                    <div class='pic-right-img'>
+                        <img :src='ImgUrl' />
+                    </div>
                 </div>
             </div>
-        </div>
-    </el-dialog>
+        </el-dialog>
+    </div>
 </template>
 <script>
 export default {
@@ -58,7 +60,7 @@ export default {
 <style lang="less" scoped>
 .pic-list {
     width: 100%;
-    height: 600px;
+    // height: 700px;
     display: flex;
     justify-content: space-between;
     .pic-left {
@@ -115,7 +117,13 @@ export default {
 }
 </style>
 <style lang="less">
-.el-dialog__body {
-    padding: 0;
+.tpyl {
+    .el-dialog {
+        height: 80%;
+        margin-top: 5vh !important;
+    }
+    .el-dialog__body {
+        padding: 0;
+    }
 }
 </style>

+ 8 - 3
src/components/Rotation/src/rotation.vue

@@ -6,7 +6,10 @@
 <template>
     <div class='rotation'>
         <div v-if='rotationImg.length==1' height='100%'>
-            <img src='../../../assets/imgs/survey_pop1.png' alt />
+            <!-- <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
+            />-->
         </div>
         <el-carousel v-else trigger='click' style='height:100%' :interval='5000' arrow='always'>
             <el-carousel-item v-for='(item,index) in rotationImg' :key='index'>
@@ -14,13 +17,15 @@
             </el-carousel-item>
         </el-carousel>
     </div>
-</template>
+</template>s
 <script>
 export default {
     name: 'Rotation',
     props: ['rotationImg'],
     data() {
-        return {}
+        return {
+            rotationImgs: [{ url: require('@/assets/images/login_back.png') }]
+        }
     },
     mounted() {
         console.log(this.rotationImg)

+ 20 - 11
src/components/editLengend.vue

@@ -7,7 +7,7 @@
     <div class='view'>
         <div class='legend-tab2'>
             <div class='legend-table2-box'>
-                <div class='legend-table2' v-if='editTable.length>0'>
+                <div class='legend-table2' v-if='editTable.length>=0'>
                     <el-table
                         v-loading='loading'
                         :header-cell-style='{background:"rgba(2,91,170,0.1)",fontFamily:"PingFangSC-Medium,PingFang SC;",color:"rgba(0,0,0,0.85);",fontSize:"12px"}'
@@ -22,20 +22,29 @@
                         </el-table-column>
                         <el-table-column prop label='数量'>
                             <template slot-scope='{row}'>
-                                <div style='width:50px' v-if='row.Num==0'>
-                                    <el-input @change='changeTable(row)' v-model='row.Num' size='mini'></el-input>
-                                </div>
-                                <div v-else-if='row.Num==1' class='nullData'>
-                                    <el-input @change='changeTable(row)' v-model='row.Num' size='mini'></el-input>
-                                </div>
-                                <div v-else-if='row.Num==2' class='redData'>
-                                    <el-tooltip class='item' effect='dark' :content='`当前图例 ${row.Num} 与平面图中的不一致,平面图中为xx`' placement='top'>
+                                <div v-if='row.IsModify'>
+                                    <div v-if='row.Num!=row.RealNum ' class='redData'>
+                                        <el-tooltip class='item' effect='dark' :content='`当前图例 ${row.Num} 与平面图中的不一致,平面图中为xx`' placement='top'>
+                                            <el-input @change='changeTable(row)' v-model='row.Num' size='mini'></el-input>
+                                        </el-tooltip>
+                                    </div>
+                                    <div v-else-if='!row.Num' class='nullData'>
                                         <el-input @change='changeTable(row)' v-model='row.Num' size='mini'></el-input>
-                                    </el-tooltip>
+                                    </div>
+                                    <div v-else style='width:50px'>
+                                        <el-input @change='changeTable(row)' v-model='row.Num' size='mini'></el-input>
+                                    </div>
                                 </div>
+
                                 <!-- 第二部分数据 -->
                                 <div v-else>
-                                    <el-tooltip class='item' effect='dark' :content='`当前图例 ${row.Num},从平面图中直接获取,如需编辑请修改平面图`' placement='top'>
+                                    <el-tooltip
+                                        v-if='!row.IsModify'
+                                        class='item'
+                                        effect='dark'
+                                        :content='`当前图例 ${row.Num},从平面图中直接获取,如需编辑请修改平面图`'
+                                        placement='top'
+                                    >
                                         <div class='dataTwo'>{{row.Num}}</div>
                                     </el-tooltip>
                                 </div>

+ 30 - 18
src/components/floorList.vue

@@ -45,7 +45,7 @@ export default {
         }
     },
     mounted() {
-        this.removeBottom(-5)
+        this.removeBottom(-1)
         this.tabFloor()
     },
     computed: {
@@ -53,9 +53,13 @@ export default {
     },
     methods: {
         tabFloor(item = this.floor, index) {
-            console.log(item)
-            this.showT = true
-            this.showB = true
+            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
@@ -63,7 +67,12 @@ export default {
             this.$emit('emitFloor', item)
         },
         removeTop(num) {
-            this.num = 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) {
@@ -73,12 +82,17 @@ export default {
                 this.showT = false
             }
             if (this.num <= 0) {
-                animate(innerbox, { marginTop: 28 * this.num }, 500, function() {})
+                animate(innerbox, { marginTop: 32 * this.num }, 500, function() {})
             }
         },
         removeBottom(num) {
             console.log(num)
-            this.num = 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)) {
@@ -88,7 +102,7 @@ export default {
                 this.showB = false
             }
             if (this.num > -(inner.length - 4)) {
-                animate(innerbox, { marginTop: 28 * this.num }, 500, function() {})
+                animate(innerbox, { marginTop: 32 * this.num }, 500, function() {})
             }
         }
     }
@@ -112,17 +126,16 @@ export default {
         .floor-out {
             height: 160px;
             overflow: hidden;
-            overflow-y: auto;
+            // overflow-y: auto;
             position: relative;
-            &::-webkit-scrollbar {
-                display: none;
-            }
+            // &::-webkit-scrollbar {
+            //     display: none;
+            // }
 
             .floor-center {
                 .floor-item {
                     width: 36px;
-                    height: 28px;
-                    margin: 3px 0;
+                    height: 32px;
                     cursor: pointer;
                 }
             }
@@ -139,7 +152,7 @@ export default {
             right: 0;
             width: 100%;
             cursor: pointer;
-            margin-top: 5px;
+            line-height: 26px;
         }
         .icon-bottom {
             text-align: center;
@@ -151,15 +164,14 @@ export default {
             bottom: 0;
             right: 0;
             width: 100%;
-            margin-bottom: 5px;
             cursor: pointer;
-            line-height: 28px;
+            line-height: 26px;
         }
         .isActive {
             border-radius: 4px;
             color: #025baa;
             background: #e1f2ff;
-            line-height: 28px;
+            line-height: 32px;
         }
     }
 }

+ 44 - 34
src/components/floorMap/index.vue

@@ -1,8 +1,8 @@
 <!-- 底图 -->
 <template>
     <div id='floor_base' v-loading='loading' ref='graphy'>
-        <div id='fengMap'></div>
-        <canvas id='canvas' :width='canvasWidth' :height='canvasHeight' tabindex='0'></canvas>
+        <div :id='`fengMap${id}`' class='fengMap'></div>
+        <canvas :id='`canvas${id}`' :width='canvasWidth' :height='canvasHeight' tabindex='0'></canvas>
         <!-- 地图底部操作按钮 -->
         <div class='strip-bottom'>
             <canvasFun @fit='fit' @savePng='savePng' @saveSvg='saveSvg' @saveJson='saveJson' @scale='scale' ref='canvasFun'></canvasFun>
@@ -32,13 +32,20 @@ export default {
             mapServerURL: `/wdfn`,
             canvasWidth: 1100,
             canvasHeight: 800,
-            loading: false,
+            loading: false, // 限制重复查询
             view: null,
-            isQuerying: false, // 限制重复查询
-            urlMsg: {}
-            // fmapID:'1001012_42'
+            urlMsg: {},
+            canvasID: 'canvas'
+            // fmapID:'1001012_42',
         }
     },
+    props: {
+        id: {
+            default: '1',
+            type: String
+        },
+        loadName: 
+    },
     components: { RoomBox, canvasFun },
     computed: {
         ...mapGetters(['plazaId', 'fmapID'])
@@ -46,6 +53,11 @@ export default {
     methods: {
         ...mapActions(['getfmapID']),
         init(floorid) {
+            if (this.loading) {
+                console.log('正在查询...')
+                return
+            }
+            this.loading = true
             if (!this.fmapID) {
                 this.getfmapID().then(() => {
                     this.urlMsg.fmapID = this.fmapID
@@ -56,19 +68,13 @@ export default {
             this.getMap(floorid)
         },
         getMap(floorid) {
-            if (this.isQuerying) {
-                console.log('正在查询...')
-                return
-            }
-            this.isQuerying = true
             this.clearGraphy()
             this.scene = new FloorScene()
             this.scene.selectContainer.connect('listChange', this, this.listChange)
-            if (!fengmap) {
-
-                fengmap = new SFengParser('fengMap', `${this.mapServerURL}/fmap/${this.fmapID}`, this.key, this.appName, null)
-                fengmap.loadMap(this.fmapID, res => {
-                    this.floorList = res
+            if (!fengmap || this.canvasID != `canvas${this.id}`) {
+                this.canvasID = `canvas${this.id}`
+                fengmap = new SFengParser(`fengMap${this.id}`, `${this.mapServerURL}/fmap/${this.fmapID}`, this.key, this.appName, null)
+                fengmap.loadMap(this.fmapID, () => {
                     this.parserData(floorid)
                 })
                 // 获取主题数据
@@ -76,38 +82,36 @@ export default {
                     console.log('获取rf成功', res)
                 })
                 this.readGroup().then(data => {
+                    if (data.data.Data.length > 0) {
+                        console.log(data.data.Data[0].ID)
+                        this.$cookie.set('graphId', data.data.Data[0].ID, 3)
+                    }
                     const parserData = new STopologyParser(null)
                     parserData.parseData(data.data.Data[0].Elements)
                     // 多边形
                     parserData.zoneLegendList.forEach(t => {
                         this.scene.addItem(t)
-                        this.scene.Nodes.push(t)
                     })
                     // 增加文字
                     parserData.textMarkerList.forEach(t => {
                         this.scene.addItem(t)
-                        this.scene.Markers.push(t)
                     })
                     // 增加图片
                     parserData.imageMarkerList.forEach(t => {
                         this.scene.addItem(t)
-                        this.scene.Markers.push(t)
                     })
                     // 增加直线
                     parserData.lineMarkerList.forEach(t => {
                         this.scene.addItem(t)
-                        this.scene.Markers.push(t)
                     })
                     // 增加图标类图例
                     parserData.imageLegendList.forEach(t => {
                         this.scene.addItem(t)
-                        this.scene.Nodes.push(t)
                     })
                     // 增加管线类
                     // 增加图标类图例
                     parserData.relationList.forEach(t => {
                         this.scene.addItem(t)
-                        this.scene.Relations.push(t)
                     })
                     this.view.fitSceneToView()
                 })
@@ -124,11 +128,10 @@ export default {
                     this.view.scene = this.scene
                     this.view.fitSceneToView()
                     this.loading = false
-                    this.isQuerying = false
                 }
             } else {
-                if (this.floorList[floor]) {
-                    fengmap.parseData(this.floorList[floor], res => {
+                if (fengmap.gnameToGid[floor]) {
+                    fengmap.parseData(fengmap.gnameToGid[floor], res => {
                         if (res.err) {
                             console.log(res.err)
                             return
@@ -147,7 +150,6 @@ export default {
                         this.view.scene = this.scene
                         this.view.fitSceneToView()
                         this.loading = false
-                        this.isQuerying = false
                         console.log('success')
                     })
                 } else {
@@ -160,7 +162,7 @@ export default {
                 this.view.scene = null
                 return
             }
-            this.view = new FloorView('canvas')
+            this.view = new FloorView(`canvas${this.id}`)
         },
         listChange(item, ev) {
             let name = ev[0][0].data.Name
@@ -174,15 +176,16 @@ export default {
         },
         // 保存为png
         savePng() {
-            this.view.saveImage(`1.png`, 'png')
+            this.view.saveImage(`${this.loadName}.png`, 'png')
+            console.log(`${this.loadName}.png`)
         },
         // 保存为svg
         saveSvg() {
-            this.view.saveSceneSvg(`1.svg`, 6400, 4800)
+            this.view.saveSceneSvg(`${this.loadName}.svg`, 6400, 4800)
         },
         // 保存为json
         saveJson() {
-            this.view.saveFloorJson(`1.json`)
+            this.view.saveFloorJson(`${this.loadName}.json`)
         },
         // 缩放
         scale(val) {
@@ -195,7 +198,8 @@ export default {
         // 读取数据
         readGroup() {
             const data = {
-                categoryId: this.urlMsg.categoryId,
+                // categoryId: this.urlMsg.categoryId,
+                categoryId: this.$cookie.get('categoryId'),
                 projectId: this.urlMsg.ProjectID
             }
             return readGroup(data)
@@ -203,17 +207,23 @@ export default {
     },
     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 = this.$refs.graphy.offsetHeight
+            this.canvasHeight = 900 + 'px'
+            console.log(this.canvasWidth)
+            console.log(this.canvasHeight)
         }
     },
     created() {
         this.urlMsg = {
-            categoryId: this.$cookie.get('categoryId') || 'LCGN',
+            // categoryId: this.$cookie.get('categoryId') || 'LCGN',
+            categoryId: this.$cookie.get('categoryId'),
             ProjectID: this.plazaId,
             BuildingID: '1',
             FloorID: this.$cookie.get('floorMapId') || 'f1',
@@ -226,7 +236,7 @@ export default {
 <style lang="less" scoped>
 #floor_base {
     position: relative;
-    #fengMap {
+    .fengMap {
         position: fixed;
         width: 100px;
         height: 100px;

+ 2 - 2
src/components/legendremarks.vue

@@ -49,8 +49,8 @@ export default {
         markUpdate(val) {
             let params = {
                 postParams: {
-                    graphId: '1',
-                    projectId: '1',
+                    graphId: this.$cookie.get('graphId'),
+                    projectId: this.$store.state.plazaId,
                     Note: val
                 }
             }

+ 5 - 0
src/components/menuList.vue

@@ -100,6 +100,11 @@ export default {
         },
         clickEventAcitve(item) {
             console.log(item)
+            if (item.name == '楼层功能') {
+                this.$cookie.set('categoryId', 'LCGN', 3)
+            } else {
+                this.$cookie.set('categoryId', 'GDXT', 3)
+            }
             this.list.forEach(ele => {
                 ele.state = false
             })

+ 63 - 64
src/lib/parsers/STopologyParser.ts

@@ -1,43 +1,43 @@
-import { ElementData } from "../types/ElementData";
-import { Legend } from "../types/Legend";
-import { Marker } from "../types/Marker";
-import { Relation } from "../types/Relation";
-import { SGraphElementType } from "../enums/SGraphElementType";
-import { SMarkerType } from "../enums/SMarkerType";
-import { SParser, SRelation } from '@saga-web/big/lib';
-import { SNoneLegendItem } from '../items/SNoneLegendItem';
-import { SLineLegendItem } from '../items/SLineLegendItem';
-import { SZoneLegendItem } from '../items/SZoneLegendItem';
-import { SImageLegendItem } from '../items/SImageLegendItem';
-import { SImageMarkerItem } from '../items/SImageMarkerItem';
-import { SLineMarkerItem } from '../items/SLineMarkerItem';
-import { STextMarkerItem } from '../items/STextMarkerItem';
-import { TipelineItem } from '../items/TipelineItem';
-import { ItemOrder } from "@saga-web/big";
-import { SItemStatus } from "@saga-web/big";
+import { ElementData } from '../types/ElementData'
+import { Legend } from '../types/Legend'
+import { Marker } from '../types/Marker'
+import { Relation } from '../types/Relation'
+import { SGraphElementType } from '../enums/SGraphElementType'
+import { SMarkerType } from '../enums/SMarkerType'
+import { SParser, SRelation } from '@saga-web/big/lib'
+import { SNoneLegendItem } from '../items/SNoneLegendItem'
+import { SLineLegendItem } from '../items/SLineLegendItem'
+import { SZoneLegendItem } from '../items/SZoneLegendItem'
+import { SImageLegendItem } from '../items/SImageLegendItem'
+import { SImageMarkerItem } from '../items/SImageMarkerItem'
+import { SLineMarkerItem } from '../items/SLineMarkerItem'
+import { STextMarkerItem } from '../items/STextMarkerItem'
+import { TipelineItem } from '../items/TipelineItem'
+import { ItemOrder } from '@saga-web/big'
+import { SItemStatus } from '@saga-web/big'
 /**
  * 拓扑图信息解析器
  *
  */
 export class STopologyParser extends SParser {
     /** 图例list(非图例类型)   */
-    noneLegendList: SNoneLegendItem[] = [];
+    noneLegendList: SNoneLegendItem[] = []
     /** 图例list(线类型)   */
-    lineLegendList: SLineLegendItem[] = [];
+    lineLegendList: SLineLegendItem[] = []
     /** 图例list(区域类型)   */
-    zoneLegendList: SZoneLegendItem[] = [];
+    zoneLegendList: SZoneLegendItem[] = []
     /** 图例list(图标类型)   */
-    imageLegendList: SImageLegendItem[] = [];
+    imageLegendList: SImageLegendItem[] = []
 
     /** 标识list(图类型)   */
-    imageMarkerList: SImageMarkerItem[] = [];
+    imageMarkerList: SImageMarkerItem[] = []
     /** 标识list(线类型)   */
-    lineMarkerList: SLineMarkerItem[] = [];
+    lineMarkerList: SLineMarkerItem[] = []
     /** 标识list(文本类型)   */
-    textMarkerList: STextMarkerItem[] = [];
+    textMarkerList: STextMarkerItem[] = []
 
     /** 管线关系对象关系list   */
-    relationList: SRelation[] = [];
+    relationList: SRelation[] = []
 
     /**
      * 解析数据
@@ -47,18 +47,18 @@ export class STopologyParser extends SParser {
     parseData(data: ElementData): void {
         if (data.Nodes) {
             data.Nodes.forEach((t: Legend): void => {
-                this.addLegend(t);
-            });
+                this.addLegend(t)
+            })
         }
         if (data.Markers) {
             data.Markers.forEach((t: Marker): void => {
-                this.addMarker(t);
-            });
+                this.addMarker(t)
+            })
         }
         if (data.Relations) {
             data.Relations.forEach((t: Relation): void => {
-                this.addRelation(t);
-            });
+                this.addRelation(t)
+            })
         }
     } // Function parseData()
 
@@ -69,24 +69,23 @@ export class STopologyParser extends SParser {
      * */
     private addLegend(t: Legend): void {
         if (t.GraphElementType == 'None') {
-            let item = new SNoneLegendItem(null, t);
-            this.noneLegendList.push(item);
+            let item = new SNoneLegendItem(null, t)
+            this.noneLegendList.push(item)
         } else if (t.GraphElementType == 'Line') {
-            let item = new TipelineItem(null, t);
-            item.selectable = true;
-            item.status = 0;
-            item.zOrder == ItemOrder.polylineOrder;
-            alert(123)
-            this.relationList.push(item);
-        } else if (t.GraphElementType == "Zone") {
-            let item = new SZoneLegendItem(null, t);
-            item.selectable = true;
-            item.zOrder == ItemOrder.polygonOrder;
-            this.zoneLegendList.push(item);
+            let item = new TipelineItem(null, t)
+            item.selectable = true
+            item.status = 0
+            item.zOrder == ItemOrder.polylineOrder
+            this.relationList.push(item)
+        } else if (t.GraphElementType == 'Zone') {
+            let item = new SZoneLegendItem(null, t)
+            item.selectable = true
+            item.zOrder == ItemOrder.polygonOrder
+            this.zoneLegendList.push(item)
         } else if (t.GraphElementType == 'Image') {
-            let item = new SImageLegendItem(null, t);
-            item.selectable = true;
-            this.imageLegendList.push(item);
+            let item = new SImageLegendItem(null, t)
+            item.selectable = true
+            this.imageLegendList.push(item)
         }
     } // Function addNode()
 
@@ -96,21 +95,21 @@ export class STopologyParser extends SParser {
      * @param   t       标识对象数据
      * */
     private addMarker(t: Marker): void {
-        if (t.Type == "Image") {
-            let item = new SImageMarkerItem(null, t);
-            this.imageMarkerList.push(item);
-            item.selectable = true;
-            item.zOrder = ItemOrder.imageOrder;
-        } else if (t.Type == "Line") {
-            let item = new SLineMarkerItem(null, t);
-            item.selectable = true;
-            item.zOrder = ItemOrder.lineOrder;
-            this.lineMarkerList.push(item);
-        } else if (t.Type == "Text") {
-            let item = new STextMarkerItem(null, t);
-            item.selectable = true;
-            item.zOrder = ItemOrder.lineOrder;
-            this.textMarkerList.push(item);
+        if (t.Type == 'Image') {
+            let item = new SImageMarkerItem(null, t)
+            this.imageMarkerList.push(item)
+            item.selectable = true
+            item.zOrder = ItemOrder.imageOrder
+        } else if (t.Type == 'Line') {
+            let item = new SLineMarkerItem(null, t)
+            item.selectable = true
+            item.zOrder = ItemOrder.lineOrder
+            this.lineMarkerList.push(item)
+        } else if (t.Type == 'Text') {
+            let item = new STextMarkerItem(null, t)
+            item.selectable = true
+            item.zOrder = ItemOrder.lineOrder
+            this.textMarkerList.push(item)
         }
     } // Function addMarker()
 
@@ -120,7 +119,7 @@ export class STopologyParser extends SParser {
      * @param   t       管线关系对象数据
      * */
     private addRelation(t: Relation): void {
-        let item = new TipelineItem(null, t);
-        this.relationList.push(item);
+        let item = new TipelineItem(null, t)
+        this.relationList.push(item)
     } // Function addRelation()
 } // class STopologyParser

+ 1 - 1
src/utils/plugins/components.js

@@ -557,7 +557,7 @@ var system = [
         {
             name: '燃气系统',
             smsxt: '1007',
-            categoryId: 'LCFB',
+            categoryId: 'RQXT',
             id: 7,
             icon: require('@/assets/imgs/cdrq.png'),
             icon1: require('@/assets/imgs/cdrq2.png'),

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

@@ -15,7 +15,7 @@
             <!-- 没有tab的页面 -->
             <div v-if='Object.keys(dialogInfo).length>0 && dialogInfo.children.length==0' style='margin:16px 24px 0 24px'>
                 <!-- 原理图 -->
-                <div v-if='dialogInfo.id.slice(2,4)=="YL"' style='width:100%;height:600px;overflow:hidden'>
+                <div v-if='dialogInfo.id.slice(2,4)=="YL"' style='width:100%;height:90vh;overflow:hidden'>
                     <rotation :rotationImg='rotationImg'></rotation>
                 </div>
                 <!-- 土建系统主要材料清单 -->
@@ -179,7 +179,7 @@ export default {
                 case '消防系统':
                     getParams.system = '1003'
                     break
-                case '弱系统':
+                case '弱系统':
                     getParams.system = '1004'
                     break
                 case '电梯系统':
@@ -188,6 +188,9 @@ export default {
                 case '燃气系统':
                     getParams.system = '1007'
                     break
+                case '土建系统':
+                    getParams.system = '1008'
+                    break
             }
             if (this.systemName == '给排水系统') {
                 getParams.system = '1005'

+ 11 - 3
src/views/equipment/index.vue

@@ -34,7 +34,7 @@
                         <div class='legend-boxs'>
                             <Legend :systemName='systemName'></Legend>
                         </div>
-                        <floorMap ref='floorMap'></floorMap>
+                        <floorMap ref='floorMap' :id='"equip"' :loadName='loadName'></floorMap>
                         <div class='additional-box' v-if='fqPic.length>0'>
                             <div class='additional' @click='additionalColl'>
                                 <img src='../../assets/imgs/bg.png' alt />
@@ -78,7 +78,8 @@ export default {
             brand: [], //品牌
             manufacturer: [],
             show: false,
-            fqPic: []
+            fqPic: [],
+            loadName: ''
         }
     },
     components: { floorList, eqDialog, floorMap, editList },
@@ -94,11 +95,13 @@ export default {
             if (this.smsxt == '1003' || this.smsxt == '1004') {
                 this.Index()
             }
+            this.init()
         },
         emitFloor(item) {
             console.log('item', item)
             this.floorInfo = item
-            this.$refs.floorMap.init(this.floorInfo.gname)
+            // this.$refs.floorMap.init(this.floorInfo.gname)
+            this.init()
         },
         dialogVisible(eve) {
             console.log(eve)
@@ -121,10 +124,14 @@ export default {
                 console.log('分区图', res)
                 this.fqPic = res.data
             })
+        },
+        init() {
+            this.loadName = `设备设施-${this.systemName}-${this.floorInfo.code}`
         }
     },
     mounted() {
         this.everySystem = this.system[0].children
+        this.init()
         // this.$refs.floorMap.init(this.floorInfo.gname)
     }
 }
@@ -134,6 +141,7 @@ export default {
     background: rgba(242, 245, 247, 1);
     display: flex;
     flex: 1;
+    overflow: hidden;
     .eq-top {
         margin-left: 260px;
         padding-top: 24px;

+ 9 - 4
src/views/floorFunc/index.vue

@@ -7,7 +7,7 @@
         <div class='legend-boxs'>
             <Legend></Legend>
         </div>
-        <floor-list @emitFloor='emitFloor'></floor-list>
+        <floor-list @emitFloor='emitFloor' :id='"floor"'></floor-list>
         <!-- <div class='additional-box'>
             <div class='additional' @click='additionalColl'>
                 <img src='../../assets/imgs/bg.png' alt />
@@ -16,7 +16,7 @@
                 <div v-if='show' class='add-img'>我是放附加数据图片哒。。。</div>
             </el-collapse-transition>
         </div>-->
-        <floorMap ref='floorMap'></floorMap>
+        <floorMap ref='floorMap' :loadName='loadName'></floorMap>
     </div>
 </template>
 <script>
@@ -31,21 +31,26 @@ export default {
             floorInfo: {
                 gname: 'f1',
                 code: 'F1'
-            }
+            },
+            loadName: ''
         }
     },
     methods: {
         emitFloor(item) {
             this.floorInfo = item
             this.$refs.floorMap.init(this.floorInfo.gname)
+            this.init()
         },
         additionalColl() {
             this.show = !this.show
+        },
+        init() {
+            this.loadName = `楼层功能-${this.floorInfo.code}`
         }
     },
     mounted() {
+        this.init()
         this.$refs.floorMap.init(this.floorInfo.gname)
-        this.Index()
     }
 }
 </script>

+ 35 - 15
src/views/other/zhsxDialog.vue

@@ -1,6 +1,6 @@
 <template>
-    <div>
-        <el-dialog title='综合记录事项' :visible.sync='visible'>
+    <div class='zhsx-log'>
+        <el-dialog title='综合记录事项' width='70%' :visible.sync='visible'>
             <div class='top'></div>
             <div class='bottom'>
                 <p>1.各级政府部门在广场检查中口头及书面提出的工作要求,整改事项</p>
@@ -8,11 +8,11 @@
                 <p>3.相关政府强制性检测的按时完成情况及检测中提出的问题</p>
                 <p>4.广场安全质量第三方检测过程中列出的整改事项</p>
                 <div class='bottom-table'>
-                    <el-table :data='tableData' style='width: 100%'>
+                    <el-table :data='tableData' height='500' style='width:100%;' :span-method='objectSpanMethod' border v-if='tableData.length>0'>
                         <el-table-column label='序号' type='index' width='50'></el-table-column>
-                        <el-table-column prop='name' label='检测事项' width='140'></el-table-column>
-                        <el-table-column prop='type' label='主管部门' width='90'></el-table-column>
-                        <el-table-column prop='thing' label='记录事项' :show-overflow-tooltip='true'></el-table-column>
+                        <el-table-column prop='jcsx' label='检测事项' :show-overflow-tooltip='true'></el-table-column>
+                        <el-table-column prop='zgbm' label='主管部门' :show-overflow-tooltip='true'></el-table-column>
+                        <el-table-column prop='jlsx' label='记录事项' :show-overflow-tooltip='true'></el-table-column>
                     </el-table>
                 </div>
             </div>
@@ -21,22 +21,38 @@
 </template>
 <script>
 export default {
+    props: ['tableData'],
     data() {
         return {
-            visible: false,
-            tableData: [
-                { name: '消防检测 电气安', type: '政府', thing: '1)检测结论2)检测主要项目及标准3)不合格项的具体内容及二次复检的安排' },
-                { name: '消防检测 电气安', type: '政府', thing: '1)检测结论2)检测主要项目及标准3)不合格项的具体内容及二次复检的安排' },
-                { name: '消防检测 电气安', type: '政府', thing: '1)检测结论2)检测主要项目及标准3)不合格项的具体内容及二次复检的安排' },
-                { name: '消防检测 电气安', type: '政府', thing: '1)检测结论2)检测主要项目及标准3)不合格项的具体内容及二次复检的安排' },
-                { name: '消防检测 电气安', type: '政府', thing: '1)检测结论2)检测主要项目及标准3)不合格项的具体内容及二次复检的安排' },
-                { name: '消防检测 电气安', type: '政府', thing: '1)检测结论2)检测主要项目及标准3)不合格项的具体内容及二次复检的安排' }
-            ]
+            visible: false
         }
     },
     methods: {
         open() {
             this.visible = true
+        },
+        objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+            if (columnIndex === 2) {
+                if (rowIndex > 0 && row[column.property] === this.tableData[rowIndex - 1][column.property]) {
+                    return {
+                        rowspan: 0,
+                        colspan: 0
+                    }
+                } else {
+                    let rows = 1
+                    for (let i = rowIndex; i < this.tableData.length - 1; i++) {
+                        if (row[column.property] === this.tableData[i + 1][column.property]) {
+                            rows++
+                        }
+                    }
+                    return {
+                        rowspan: rows,
+                        colspan: 1
+                    }
+                }
+            } else if (columnIndex == 3) {
+                console.log(row, column)
+            }
         }
     }
 }
@@ -61,4 +77,8 @@ export default {
         margin-top: 12px;
     }
 }
+</style>
+<style lang="less">
+.zhsx-log {
+}
 </style>

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

@@ -20,7 +20,7 @@
                 <img src='../../assets/imgs/zy1.png' alt />
             </div>
         </div>
-        <zhsx-dialog ref='Dialog'></zhsx-dialog>
+        <zhsx-dialog ref='Dialog' :tableData='tableData'></zhsx-dialog>
     </div>
 </template>
 <script>
@@ -33,7 +33,8 @@ import { queryZhsxjl } from '@/api/other.js'
 export default {
     data() {
         return {
-            activeName: '1'
+            activeName: '1',
+            tableData: []
         }
     },
     props: ['everySystem'],
@@ -45,6 +46,7 @@ export default {
             }
             queryZhsxjl(params).then(res => {
                 console.log('综合事项弹框', res)
+                this.tableData = res.data
             })
             this.$refs.Dialog.open()
         },

+ 28 - 13
src/views/overview/picModal.vue

@@ -1,8 +1,14 @@
 <template>
-    <el-dialog :visible.sync='dialogVisible' width='90%' :close-on-click-modal='false' :show-close='false'>
-        <rotation v-if='rotationImg.length>0' :rotationImg='rotationImg' style='height:600px;'></rotation>
-        <span class='close' @click='close'>X</span>
-    </el-dialog>
+    <div class='picDia'>
+        <el-dialog :visible.sync='dialogVisible' width='90%' :close-on-click-modal='false' :show-close='false'>
+            <!-- <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
+            />-->
+            <rotation v-if='rotationImg.length>0' :rotationImg='rotationImg' style='height:700px;'></rotation>
+            <span class='close' @click='close'>X</span>
+        </el-dialog>
+    </div>
 </template>
 
 <script>
@@ -27,26 +33,35 @@ export default {
 </script>
 
 <style lang="less" scoped>
+.picDia {
+    img {
+        width: 100%;
+        height: 100%;
+    }
+}
 .close {
     display: block;
     position: absolute;
     right: -40px;
     font-size: 20px;
     color: #fff;
-    top: -100px;
+    top: -30px;
     z-index: 10;
     cursor: pointer;
 }
 </style>
 <style lang='less'>
-.el-dialog {
-    height: 600px;
-    position: relative;
-    .el-dialog__header {
-        padding: 0;
-    }
-    .el-dialog__body {
-        padding: 0;
+.picDia {
+    .el-dialog {
+        height: 90%;
+        margin-top: 5vh !important;
+        position: relative;
+        .el-dialog__header {
+            padding: 0;
+        }
+        .el-dialog__body {
+            padding: 0;
+        }
     }
 }
 </style>

+ 15 - 4
src/views/room/index.vue

@@ -7,7 +7,7 @@
     <div class='compute-box'>
         <el-dialog :title='`${systemName}`||"机房"' :visible.sync='visible' :fullscreen='true'>
             <div class='compute-span'></div>
-            <div class='compute-zf'></div>
+            <div class='compute-zf' @click='jumpFloor'></div>
             <div class='compute-tab'>
                 <el-tabs v-model='activeName' @tab-click='handleClick'>
                     <el-tab-pane label='机房布置图' name='1'>
@@ -474,7 +474,8 @@ export default {
             rwksrq: '',
             rwwcrq: '',
             ycgdtbsj: '',
-            ycgdyssj: ''
+            ycgdyssj: '',
+            smsxtArr: []
         }
     },
     components: {
@@ -772,7 +773,7 @@ export default {
             this.department = []
             let postParams = [
                 {
-                    columnName: { status2: 'status2', zt: 'zt' },
+                    columnName: { status: 'status', zt: 'zt' },
                     tableName: 'v_glsms_wbzy'
                 }
             ]
@@ -807,6 +808,7 @@ export default {
             })
         },
         init() {
+            this.smsxtArr = []
             let params = {
                 getParams: {
                     locationid: '5209',
@@ -814,12 +816,20 @@ export default {
                 }
             }
             querySystem(params).then(res => {
-                console.log('系统', res)
+                console.log('系统', res.data[0])
+                this.smsxtArr = res.data[0]
             })
         },
         open(name) {
             this.visible = true
             this.systemName = name
+        },
+        jumpFloor() {
+            if (location.pathname.split('/')[3] == 'equipment') {
+                this.$router.push({ path: '/home/floorFunc' })
+            } else {
+                this.$router.push({ path: '/home/equipment' })
+            }
         }
     },
     mounted() {
@@ -926,6 +936,7 @@ export default {
 .compute-box {
     .el-dialog {
         padding: 16px 20px 20px;
+        overflow: hidden;
         .el-dialog__header {
             padding: 0;
             font-size: 16px;

+ 8 - 11
src/views/room/room1.vue

@@ -1,8 +1,6 @@
 <template>
-    <div class='jf-box'>
-        <div class='jf-inner'>
-            <rotation :rotationImg='tableImg'></rotation>
-        </div>
+    <div class='jf-inner' style='width:100%;height:85vh;overflow:hidden'>
+        <rotation :rotationImg='tableImg'></rotation>
     </div>
 </template>
 <script>
@@ -18,13 +16,12 @@ export default {
 }
 </script>
 <style lang="less" scoped>
-.jf-box {
-    .jf-inner {
-        width: 1076px;
-        height: 566px;
-        margin: 0 auto;
-        margin-top: 8px;
-    }
+.jf-inner {
+    width: 100%;
+    height: 700px;
+    overflow: hidden;
+    margin: 0 auto;
+    margin-top: 8px;
 }
 </style>
 <style lang="less">

+ 5 - 1
src/views/room/room3.vue

@@ -41,7 +41,7 @@
                 @current-change='pageChanged'
             ></el-pagination>
         </div>
-        <el-dialog width='1200px' style='height:100%' title='设备清单' :visible.sync='innerVisible' append-to-body>
+        <el-dialog width='90%' title='设备清单' :visible.sync='innerVisible' append-to-body>
             <detail v-if='type_code' :type_code='type_code'></detail>
         </el-dialog>
     </div>
@@ -86,5 +86,9 @@ export default {
         justify-content: flex-end;
         margin-top: 28px;
     }
+    .el-dialog {
+        height: 95% !important;
+        margin-top: 50px;
+    }
 }
 </style>