浏览代码

合并冲突

YaolongHan 4 年之前
父节点
当前提交
4a2ec715a3
共有 39 个文件被更改,包括 730 次插入330 次删除
  1. 5 0
      env.prod.js
  2. 5 0
      env.test.js
  3. 3 3
      package.json
  4. 二进制
      src/assets/imgs/zffz.png
  5. 63 29
      src/components/Legend/src/legend.vue
  6. 83 16
      src/components/PicLarge/src/picLarge.vue
  7. 二进制
      src/components/Rotation/src/3440.jpg
  8. 10 4
      src/components/Rotation/src/rotation.vue
  9. 8 6
      src/components/editLengend.vue
  10. 20 15
      src/components/floorList.vue
  11. 1 1
      src/components/floorMap/canvasFun.vue
  12. 2 1
      src/components/floorMap/index.vue
  13. 3 2
      src/components/legendremarks.vue
  14. 6 6
      src/components/menuList.vue
  15. 11 13
      src/components/viewLengend.vue
  16. 7 6
      src/lib/items/SFHFQZoneLegendItem.ts
  17. 6 6
      src/lib/items/SSCPZZoneLegendItem.ts
  18. 4 3
      src/lib/items/SZoneLegendItem.ts
  19. 9 4
      src/router/index.js
  20. 12 15
      src/store/index.js
  21. 5 2
      src/views/equipment/eqDialog.vue
  22. 1 1
      src/views/equipment/fenbuPic.vue
  23. 80 64
      src/views/equipment/index.vue
  24. 12 4
      src/views/equipment/table/eqDetaileDialog.vue
  25. 8 6
      src/views/equipment/table/tjTable.vue
  26. 7 7
      src/views/equipment/table/wbTable.vue
  27. 6 4
      src/views/equipment/table/wxTable.vue
  28. 1 6
      src/views/equipment/table/zwTable.vue
  29. 2 2
      src/views/floorFunc/index.vue
  30. 3 3
      src/views/legendLibrary/index.vue
  31. 57 11
      src/views/other/zhsxOtherTable1.vue
  32. 1 1
      src/views/other/zhsxOtherTable2.vue
  33. 2 1
      src/views/overview/index.vue
  34. 19 2
      src/views/overview/picModal.vue
  35. 2 2
      src/views/room/detail.vue
  36. 49 28
      src/views/room/index.vue
  37. 1 1
      src/views/room/room1.vue
  38. 1 1
      src/views/statistics/index.vue
  39. 215 54
      src/views/table/index.vue

+ 5 - 0
env.prod.js

@@ -0,0 +1,5 @@
+'use strict'
+module.exports = {
+    NODE_ENV: '"production"',
+    VUE_APP_TITLE="production"
+}

+ 5 - 0
env.test.js

@@ -0,0 +1,5 @@
+'use strict'
+module.exports = {
+    NODE_ENV: '"production"',
+    VUE_APP_TITLE="test"
+}

+ 3 - 3
package.json

@@ -12,10 +12,10 @@
     "dependencies": {
         "@mapbox/geojson-merge": "^1.1.1",
         "@saga-web/base": "2.1.22",
-        "@saga-web/big": "1.0.81",
-        "@saga-web/draw": "2.1.101",
+        "@saga-web/big": "1.0.86",
+        "@saga-web/draw": "2.1.102",
         "@saga-web/feng-map": "1.0.24",
-        "@saga-web/graph": "2.1.109",
+        "@saga-web/graph": "2.1.112",
         "ant-design-vue": "^1.4.10",
         "axios": "^0.19.2",
         "core-js": "^3.4.4",

二进制
src/assets/imgs/zffz.png


+ 63 - 29
src/components/Legend/src/legend.vue

@@ -14,7 +14,9 @@
                         <lengend-view @changeSwitch='handleSwich' :remarksText='remarksText' ref='viewLengend' :systemName='systemName'></lengend-view>
                     </div>
                     <div class='legend-table' v-show='systemName!="土建装饰"'>
-                        <lengend-view @changeSwitch='handleSwich' :remarksText='remarksText' ref='viewLengend' :systemName='systemName'></lengend-view>
+                        <div>
+                            <lengend-view @changeSwitch='handleSwich' :remarksText='remarksText' ref='viewLengend' :systemName='systemName'></lengend-view>
+                        </div>
                     </div>
                 </div>
             </el-collapse-transition>
@@ -254,6 +256,7 @@ export default {
         },
         // 查询备注
         queryMarks() {
+            this.remarksText = ''
             let postParams = {
                 categoryId: this.categoryId ? this.categoryId : this.$cookie.get('categoryId'),
                 projectId: this.$store.state.plazaId,
@@ -263,24 +266,35 @@ export default {
             }
             let data = {}
             queryRead({ data, postParams }).then(res => {
-                let remarksText = ''
                 if (res.data.Data && res.data.Data[0].Note) {
                     let Res = res.data ? res.data.Data[0].Note : ''
                     if (Res) {
                         // 返回有备注
-                        remarksText = Res
+                        this.remarksText = Res
+
+                        let defaultCom = ''
+                        if (this.planNum && this.typeNum) {
+                            defaultCom = `${Res}<ol style="padding-left: 1.5em;"><li>${this.text1}</li><li>${this.text2}</li></ol>`
+                        } else if (this.planNum) {
+                            defaultCom = `${Res}<ol  style="padding-left: 1.5em;"><li>${this.text1}</li></ol>`
+                        } else if (this.typeNum) {
+                            defaultCom = `${Res}<ol   style="padding-left: 1.5em;" ><li>${this.text2}</li></ol>`
+                        } else {
+                            defaultCom = Res
+                        }
+                        this.$store.commit('SETDEFAULTCOMMENT', defaultCom)
                     } else {
                         if (this.planNum && this.typeNum) {
-                            remarksText = `<p>1.${this.text1}</p><p>2.${this.text2}</p>`
+                            this.remarksText = `<ol style="padding-left: 1.5em;"><li>${this.text1}</li><li>${this.text2}</li></ol>`
                         } else if (this.planNum) {
-                            remarksText = `<p>1.${this.text1}</p>`
+                            this.remarksText = `<ol  style="padding-left: 1.5em;"><li>${this.text1}</li></ol>`
                         } else if (this.typeNum) {
-                            remarksText = `<p>1.${this.text2}</p>`
+                            this.remarksText = `<ol   style="padding-left: 1.5em;" ><li>${this.text2}</li></ol>`
                         } else {
-                            remarksText = ''
+                            this.remarksText = ''
                         }
                     }
-                    this.$store.commit('SETREMARKSTEXT', remarksText)
+                    this.$store.commit('SETREMARKSTEXT', this.remarksText)
                 }
             })
         },
@@ -322,8 +336,8 @@ export default {
 
             let FloorID = this.floor ? this.floor : this.$cookie.get('floorMapId') || 'f1'
             let categoryId = this.categoryId ? this.categoryId : this.$cookie.get('categoryId')
-            const { conf } = window.__systemConf;
-            const editerUrl = conf[process.env.NODE_ENV+'_editerUrl'];
+            const { conf } = window.__systemConf
+            const editerUrl = conf[process.env.NODE_ENV + '_editerUrl']
             let floorName = this.floorName ? this.floorName : this.$cookie.get('floorNow')
             let seq = this.$cookie.get('currentFloorId')
             let data = `categoryId=${categoryId}&projectId=${this.plazaId}&BuildingID=1&FloorID=${FloorID}&FloorName=${floorName}&fmapID=${this.fmapID}&seq=${seq}&token=${this.ssoToken}`
@@ -378,17 +392,20 @@ export default {
                         }
                     })
                 }
-                let remarksText = ''
+                // let remarksText = ''
+                this.remarksText = ''
+                this.$store.commit('SETREMARKSTEXT', '')
+
                 if (this.planNum && this.typeNum) {
-                    remarksText = `<p>1.${this.text1}</p><p>2.${this.text2}</p>`
+                    this.remarksText = `<ol style="padding-left: 1.5em;"><li>${this.text1}</li><li>${this.text2}</li></ol>`
                 } else if (this.planNum) {
-                    remarksText = `<p>1.${this.text1}</p>`
+                    this.remarksText = `<ol  style="padding-left: 1.5em;"><li>${this.text1}</li></ol>`
                 } else if (this.typeNum) {
-                    remarksText = `<p>1.${this.text2}</p>`
+                    this.remarksText = `<ol   style="padding-left: 1.5em;" ><li>${this.text2}</li></ol>`
                 } else {
-                    remarksText = ''
+                    this.remarksText = ''
                 }
-                this.$store.commit('SETREMARKSTEXT', remarksText)
+                this.$store.commit('SETREMARKSTEXT', this.remarksText)
                 this.$nextTick(() => {
                     if (this.$refs.viewLengend) {
                         this.$refs.viewLengend.setSelected()
@@ -490,6 +507,7 @@ export default {
         },
         queryRemarksMethods() {},
         init() {
+            this.remarksText = ''
             // 图例
             bus.$off('queryViewMethods') //解决触发多次监听
             bus.$on('queryViewMethods', () => {
@@ -498,23 +516,33 @@ export default {
             // 备注
             bus.$off('queryRemarksMethods')
             bus.$on('queryRemarksMethods', res => {
-                let remarksText = ''
                 if (res) {
                     // 返回有备注
-                    remarksText = res
+                    this.remarksText = res
+
+                    let defaultCom = ''
+                    if (this.planNum && this.typeNum) {
+                        defaultCom = `${res}<ol style="padding-left: 1.5em;"><li>${this.text1}</li><li>${this.text2}</li></ol>`
+                    } else if (this.planNum) {
+                        defaultCom = `${res}<ol  style="padding-left: 1.5em;"><li>${this.text1}</li></ol>`
+                    } else if (this.typeNum) {
+                        defaultCom = `${res}<ol   style="padding-left: 1.5em;" ><li>${this.text2}</li></ol>`
+                    } else {
+                        defaultCom = res
+                    }
+                    this.$store.commit('SETDEFAULTCOMMENT', defaultCom)
                 } else {
                     if (this.planNum && this.typeNum) {
-                        remarksText = `${this.text1}${this.text2}${res}`
+                        this.remarksText = `<ol style="padding-left: 1.5em;"><li>${this.text1}</li><li>${this.text2}</li></ol>`
                     } else if (this.planNum) {
-                        remarksText = `${this.text1}${res}`
+                        this.remarksText = `<ol  style="padding-left: 1.5em;"><li>${this.text1}</li></ol>`
                     } else if (this.typeNum) {
-                        remarksText = `${this.text2}${res}`
+                        this.remarksText = `<ol   style="padding-left: 1.5em;" ><li>${this.text2}</li></ol>`
                     } else {
-                        remarksText = ''
+                        this.remarksText = ''
                     }
                 }
-                console.log(remarksText)
-                this.$store.commit('SETREMARKSTEXT', remarksText)
+                this.$store.commit('SETREMARKSTEXT', this.remarksText)
             })
         },
         // 设置图例整体高度
@@ -557,13 +585,14 @@ export default {
 @red: rgb(255, 0, 0); //红色
 .legend-container {
     position: relative;
-    top: -23px;
+    // top: -23px;
     .legend {
         text-align: center;
         line-height: 44px;
         width: 44px;
         height: 44px;
         font-size: 14px;
+        margin-bottom: 8px;
         font-family: MicrosoftYaHei;
         color: rgba(2, 91, 170, 1);
         background: rgba(255, 255, 255, 1);
@@ -578,6 +607,7 @@ export default {
         cursor: pointer;
         width: 44px;
         height: 44px;
+        margin-bottom: 8px;
         background: linear-gradient(180deg, rgba(54, 156, 247, 1) 0%, rgba(2, 91, 170, 1) 100%);
         border-radius: 2px;
         font-size: 14px;
@@ -591,11 +621,9 @@ export default {
         right: 47px;
         .legend-table {
             padding: 16px;
-            // max-height: 768px;
             width: 385px;
-            // width: 420px;
+            max-height: 700px;
             overflow: auto;
-            overflow: hidden;
             overflow-y: auto;
             position: relative;
             background: rgba(255, 255, 255, 1);
@@ -608,7 +636,8 @@ export default {
         }
         .legend-table2 {
             padding: 16px;
-            height: 356px;
+            // height: 356px;
+            max-height: 700px;
             width: 385px;
             // width: 420px;
             overflow: auto;
@@ -809,6 +838,11 @@ export default {
         }
     }
 }
+@media screen and (max-width:1600px){
+    .legend-container .legend-tab .legend-table {
+        max-height: 546px;
+    }
+}
 </style>
 <style lang="less">
 .legend-container {

+ 83 - 16
src/components/PicLarge/src/picLarge.vue

@@ -9,15 +9,17 @@
             <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 @click='getIndex(item)'>
+                            <img :src='item.url' v-if='typeArr.includes(item.type)' />
+                            <span v-else></span>
                         </li>
-                        <!-- <span>{{item.name}}</span> -->
+                        <span>{{item.name}}</span>
                     </ul>
                 </div>
                 <div class='pic-right'>
                     <div class='pic-right-img'>
-                        <img :src='ImgUrl' />
+                        <img :src='ImgUrl' v-if='typeArr.includes(type)' />
+                        <p v-else class='no-image'>{{`此文件类型为${this.type}类型,无法展示`}}</p>
                     </div>
                 </div>
             </div>
@@ -27,19 +29,63 @@
 <script>
 export default {
     name: 'PicLarge',
-    props: ['imgUrl'],
+    // props: ['imgUrl'],
     data() {
         return {
             dialogVisible: false,
-            ImgUrl: ''
+            ImgUrl: '',
+            type: '',
+            imgUrl: [],
+            typeArr: ['png', 'jpg', 'jpeg'] //typeArr 图片类型
         }
     },
     methods: {
-        open() {
+        /**
+         * @description 打开弹窗事件,传入展示的图片信息
+         * @param {object} data 图片信息 
+                {
+                    name: '供电系统原理图.png',
+                    url: 'http://gcgl.wanda.cn/%E7%BB%B4%E4%BF%AE%E5%B7%A5%E5%8D%95%E4%B8%80/WORKORDER_846049_2019-11-19T15-37-42-716.jpg'
+                }
+         */
+        open(data) {
             this.dialogVisible = true
+            // 处理传入进来的数据
+            this.handleData(data)
+            // this.imgUrl = data
         },
         getIndex(imgUrl) {
-            this.ImgUrl = imgUrl
+            this.ImgUrl = imgUrl.url
+            this.type = imgUrl.type
+        },
+        /**
+         * @description 处理数据 --> 返回 name,url,type格式的json数据
+            [
+                { 
+                    name: 'xxx.png',
+                    url: '---',
+                    type: 'png'
+                },
+                ...
+            ]
+         */
+        handleData(data) {
+            let patternFileExtension = /\.([0-9a-z]+)(?:[\?#]|$)/i
+            data = data.map(item => {
+                let type = item.name.match(patternFileExtension)[1]
+                let obj = {
+                    name: item.name,
+                    url: item.url,
+                    type
+                }
+                return obj
+            })
+            this.imgUrl = data
+        }
+    },
+    mounted() {
+        if (this.imgUrl.length > 0) {
+            console.log(this.imgUrl)
         }
     },
     computed: {
@@ -50,7 +96,10 @@ export default {
     watch: {
         __imgUrl: {
             handler(newV, oldV) {
-                newV.length && (this.ImgUrl = this.imgUrl[0].url)
+                if (newV.length) {
+                    this.ImgUrl = newV[0].url
+                    this.type = newV[0].type
+                }
             },
             deep: true
         }
@@ -60,6 +109,7 @@ export default {
 <style lang="less" scoped>
 .pic-list {
     width: 100%;
+    height: 100%;
     // height: 700px;
     display: flex;
     justify-content: space-between;
@@ -101,22 +151,37 @@ export default {
     }
     .pic-right {
         flex: 1;
+        width: 100%;
+        height: 100%;
         background: rgba(245, 246, 247, 1);
         border-radius: 0px 0px 4px 0px;
-        padding: 60px 50px;
-        margin: auto auto;
+        // padding: 60px 50px;
+        // margin: auto auto;
         display: flex;
         justify-content: center;
         align-items: center;
         .pic-right-img {
-            width: 720px;
-            height: 540px;
+            // width: 720px;
+            // height: 540px;
+            width: 100%;
+            height: 100%;
             text-align: center;
             img {
-                max-width: 100%;
-                max-height: 100%;
+                width: 100%;
+                height: 100%;
+                object-fit: contain;
                 display: block;
-                margin: auto;
+                margin: 0 auto;
+                position: relative;
+                top: 50%;
+                transform: translateY(-50%);
+            }
+            // 无图片样式
+            .no-image {
+                position: relative;
+                margin: 0 auto;
+                top: 50%;
+                transform: translateY(-50%);
             }
         }
     }
@@ -130,6 +195,8 @@ export default {
         margin-top: 5vh !important;
         .el-dialog__body {
             padding: 10px;
+            height: calc(100% - 50px);
+            box-sizing: border-box;
         }
     }
 }

二进制
src/components/Rotation/src/3440.jpg


+ 10 - 4
src/components/Rotation/src/rotation.vue

@@ -5,10 +5,10 @@
 */
 <template>
     <div :class='[type==1?"rotationFull":(type==3?"rotationFullYlt":"rotation")]' class='wanda-rotation'>
-        <div v-if='rotationImg.length==1&&size=="width"' class='rotationConType'>
+        <div v-if='rotationImg.length==1&&size=="height"' class='rotationConType'>
             <img :src='rotationImg[0].url' alt />
         </div>
-        <div v-else-if='rotationImg.length==1&&size=="height"' class='rotationCon'>
+        <div v-else-if='rotationImg.length==1&&size=="width"' class='rotationCon'>
             <img :src='rotationImg[0].url' alt />
         </div>
         <!-- <el-carousel v-else trigger='click' style='height:100%;width:100%' :interval='5000' arrow='always' @change='changePic' :loop='false'>
@@ -16,7 +16,14 @@
                 <img :src='item.url' alt />
             </el-carousel-item>
         </el-carousel>-->
-        <el-carousel v-else style='height:100%;width:100%' :interval='5000' arrow='always' @change='changePic'>
+        <el-carousel
+            v-else
+            style='height:100%;width:100%'
+            :interval='5000'
+            :indicator-position='rotationImg.length == 1 ? "none":""'
+            :arrow='rotationImg.length == 1 ? "never":"always"'
+            @change='changePic'
+        >
             <el-carousel-item v-for='(item,index) in rotationImg' :key='index'>
                 <img :src='item.url' alt style='  width: 100%; height: 100%;object-fit: cover;' />
             </el-carousel-item>
@@ -61,7 +68,6 @@ export default {
         if (this.type == 2) {
             this.changePic(1)
         }
-        console.log(this.rotationImg, this.size)
     }
 }
 </script>

+ 8 - 6
src/components/editLengend.vue

@@ -31,17 +31,17 @@
                                             :content='`当前图例 ${row.Name} 与平面图中的不一致,平面图中为${row.RealNum}`'
                                             placement='top'
                                         >
-                                            <el-input @keyup.enter.native='changeTable(row)' v-model='row.Num' size='mini'></el-input>
+                                            <el-input @change='changeTable(row)' v-model='row.Num' size='mini'></el-input>
                                         </el-tooltip>
                                     </div>
                                     <div v-else-if='row.Num==null||row.RealNum==null'>
-                                        <el-input @keyup.enter.native='changeTable(row)' v-model='row.Num' size='mini'></el-input>
+                                        <el-input @change='changeTable(row)' v-model='row.Num' size='mini'></el-input>
                                     </div>
                                     <div v-else-if='!row.Num' class='nullData'>
-                                        <el-input @keyup.enter.native='changeTable(row)' v-model='row.Num' size='mini'></el-input>
+                                        <el-input @change='changeTable(row)' v-model='row.Num' size='mini'></el-input>
                                     </div>
                                     <div v-else style='width:50px'>
-                                        <el-input @keyup.enter.native='changeTable(row)' v-model='row.Num' size='mini'></el-input>
+                                        <el-input @change='changeTable(row)' v-model='row.Num' size='mini'></el-input>
                                     </div>
                                 </div>
 
@@ -270,12 +270,14 @@ export default {
 </script>
 <style lang="less" scoped>
 .view {
-    position: relative;
+    // position: relative;
     .legend-tab2 {
         width: 385px;
         position: absolute;
-        top: -44px;
+        top: 0;
         right: 47px;
+        width: 385px;
+        height: 460px;
         background: rgba(255, 255, 255, 1);
         box-shadow: 0px 2px 8px 0px rgba(31, 36, 41, 0.06);
         border-radius: 2px;

+ 20 - 15
src/components/floorList.vue

@@ -11,7 +11,7 @@
                 <img v-show='parseInt(marginTop) !== 0' v-repeat-click='increase' src='@/assets/imgs/iconBlackTop.png' alt />
                 <img class='disabled' v-show='parseInt(marginTop) === 0' src='@/assets/imgs/iconLightTop.png' alt />
             </div>
-            <div class='floor-out' :style='{ maxHeight:conHeight + "px",height:conHeight + "px" }'>
+            <div class='floor-out' :style='{ maxHeight:conHeight + "px;" }'>
                 <!--  放开marginTop样式  -->
                 <div class='floor-center' :style='{ marginTop : marginTop }'>
                     <div
@@ -69,8 +69,15 @@ export default {
         floorsArr: {
             type: Array,
             default: () => {
-                ;[]
+                return []
             }
+        },
+        // 默认true,
+        // 1. 切换楼层后,是否触发 cookie,vuex数据修改,
+        // 2. 在fenbuPic组件中为false, 1)不触发cookie,vuex , 2) 选中的楼层ID,为楼层列表数组floorIdArr的第0个
+        changeDataFlag: {
+            type: Boolean,
+            default: true
         }
     },
     computed: {
@@ -109,9 +116,9 @@ export default {
             })
             this.currentFloorId = Number(this.$cookie.get('currentFloorId') || 100)
             // bug fix 修复 fenbuPic 弹窗中,楼层不能选中的问题
-            // 如果 floorIdArr 不在 floorIdArr数组中, 使用 floorIdArr[0], 而不使用 cookie
+            // 如果 floorIdArr 不在 floorIdArr数组中,或者changeDataFlag为false(弹窗组件中的楼层组件),使用 floorIdArr[0], 而不使用 cookie
             let index = this.floorIdArr.findIndex(item => item === this.currentFloorId)
-            if (index === -1) {
+            if (index === -1 || !this.changeDataFlag) {
                 this.currentFloorId = this.floorIdArr[0]
             }
             // 修复在设备设施页面中,楼层组件不够 8个楼层时,出现的样式问题,
@@ -148,15 +155,17 @@ export default {
             this.handlePosition(flag, index, len)
         },
         handleCookie() {
-            // return true
             let currentFloor = this.floorsArr.filter(item => item.seq == this.currentFloorId)[0]
             if (currentFloor) {
-                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
-                store.commit('SETCURRENTFLOOR', currentFloor)
+                // 如果 changeDataFlag为true(不是在 分布图弹窗组件中的 楼层组件),设置cookie,vuex
+                if (this.changeDataFlag) {
+                    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
+                    store.commit('SETCURRENTFLOOR', currentFloor)
+                }
                 this.$emit('emitFloor', currentFloor)
             }
         },
@@ -223,10 +232,6 @@ export default {
 </script>
 <style lang="less" scoped>
 .floor-box {
-    position: fixed;
-    right: 32px;
-    top: 172px;
-    z-index: 99;
     .floor-list {
         width: 44px;
         // height: 212px;

+ 1 - 1
src/components/floorMap/canvasFun.vue

@@ -8,7 +8,7 @@
                     </i>
                     <el-dropdown-menu slot='dropdown'>
                         <el-dropdown-item command='savePng'>保存为png</el-dropdown-item>
-                        <el-dropdown-item command='saveSvg'>保存为svg</el-dropdown-item>
+                        <!-- <el-dropdown-item command='saveSvg'>保存为svg</el-dropdown-item> -->
                     </el-dropdown-menu>
                 </el-dropdown>
             </div>

+ 2 - 1
src/components/floorMap/index.vue

@@ -305,7 +305,8 @@ export default {
         },
         // 保存为png
         savePng() {
-            this.view.saveImage(`${this.loadName}.png`, 'png')
+            // this.view.saveImage(`${this.loadName}.png`, 'png')
+            this.view.saveImageSize(`${this.loadName}.png`, 'png', 1920*2, 1080*2)
             //console.log(`${this.loadName}.png`)
         },
         // 保存为svg

+ 3 - 2
src/components/legendremarks.vue

@@ -36,7 +36,7 @@ export default {
             remarksTexts: '', //展示的备注
             editorOption: {
                 modules: {
-                    toolbar: [['bold', 'underline'], [{ color: [] }]]
+                    toolbar: [['bold', 'underline'], [{ color: [] }], [{ list: 'ordered' }]]
                 },
                 theme: 'snow',
                 placeholder: '请输入内容...'
@@ -73,7 +73,7 @@ export default {
         },
         // val为传过来的备注
         showModal() {
-            this.$emit('queryView', false)
+            this.$emit('queryMarks')
             // this.$emit('')
             // return
             this.visible = true
@@ -107,6 +107,7 @@ export default {
         onEditorBlur(val) {},
         onEditorFocus(val) {},
         onEditorChange(val) {
+            console.log(val, 'val')
             val.quill.deleteText(200, 6)
             if (this.remarksTexts === '') {
                 this.valLen = 0

+ 6 - 6
src/components/menuList.vue

@@ -123,9 +123,9 @@ export default {
         },
         //入草稿箱
         toDrafts() {
-            const { conf } = window.__systemConf;
-                // { editerUrl } = conf;
-            const editerUrl = conf[process.env.NODE_ENV+'_editerUrl'];
+            const { conf } = window.__systemConf
+            // { editerUrl } = conf;
+            const editerUrl = conf[process.env.NODE_ENV + '_editerUrl']
             let data = `projectId=${this.plazaId}&fmapID=${this.fmapID}&token=${this.$store.state.ssoToken}`
             let url = editerUrl + 'drafts?' + encodeURIComponent(data)
             window.open(url, true)
@@ -177,8 +177,8 @@ export default {
         },
 
         dumpLegend() {
-            const { conf } = window.__systemConf;
-            const wandaBmGuideUrl = conf[process.env.NODE_ENV+'_wandaBmGuideUrl'];
+            const { conf } = window.__systemConf
+            const wandaBmGuideUrl = conf[process.env.NODE_ENV + '_wandaBmGuideUrl']
             window.open(`${wandaBmGuideUrl}home/legendLibrary?token=${this.$store.state.ssoToken}`, true)
         }
     }
@@ -286,7 +286,7 @@ export default {
                 border-radius: 90px;
                 font-size: 12px;
                 text-align: center;
-                line-height: 18px;
+                line-height: 16px;
                 color: #ffffff;
             }
         }

+ 11 - 13
src/components/viewLengend.vue

@@ -62,9 +62,9 @@
                 <el-switch v-model='swich' @change='handleSwich(swich)'></el-switch>
                 <span>隐藏数量为0的项目</span>
             </div>
-            <div class='remark' v-if='remarksText'>
+            <div class='remark' v-if='initText'>
                 <span class='remark-title'>注:</span>
-                <div :key='key' v-html='remarksText' class='remark-text'></div>
+                <div :key='Date.now()' v-html='initText' class='remark-text'></div>
             </div>
         </div>
     </div>
@@ -107,19 +107,17 @@ export default {
         }
     },
     computed: {
-        ...mapGetters(['scpzTable', 'legendTable', 'remarksText'])
+        ...mapGetters(['scpzTable', 'legendTable', 'remarksText', 'defaultComment']),
+        initText() {
+            if (this.defaultComment) {
+                return this.defaultComment
+            } else {
+                return this.remarksText
+            }
+        }
     },
     mounted() {},
-    watch: {
-        '$store.state.remarksText': {
-            handler(oVal, nVal) {
-                if (oVal != nVal) {
-                    this.key++
-                }
-            },
-            deep: true
-        }
-    }
+    created() {}
 }
 </script>
 <style lang="less" scoped>

+ 7 - 6
src/lib/items/SFHFQZoneLegendItem.ts

@@ -1,11 +1,11 @@
-import { SGraphItem, SLineStyle } from "@saga-web/graph/lib";
+import { SGraphItem, SLineStyle, STextOrigin } from '@saga-web/graph/lib';
 import { Legend } from '../types/Legend';
-import { SPainter, SColor, SFont, SPoint, SLineCapStyle } from "@saga-web/draw";
+import { SPainter, SColor, SFont, SPoint, SLineCapStyle } from '@saga-web/draw';
 import { STextItem } from '@saga-web/graph/lib';
-import { hexify } from "@/components/mapClass/until"
+import { hexify } from '@/components/mapClass/until';
 import { SItemStatus, ItemOrder, SPolygonItem } from '@saga-web/big/lib';
 /**
- *图例节点Item(区域类型 --防火分区)
+ * 图例节点Item(区域类型 --防火分区)
  *
  * * @author  张宇(taohuzy@163.com)
  */
@@ -119,8 +119,9 @@ export class SFHFQZoneLegendItem extends SPolygonItem {
      */
     constructor(parent: SGraphItem | null, data: Legend) {
         super(parent);
+        this.textItem.originPosition = STextOrigin.Centrum;
         this.textItem.isTransform = false;
-        this.zOrder = ItemOrder.polygonOrder;
+        this.zOrder = ItemOrder.polygonOrder - 0.00005;
         this.data = data;
         this.id = data.ID;
         this.name = data.Name;
@@ -249,4 +250,4 @@ export class SFHFQZoneLegendItem extends SPolygonItem {
             super.onDraw(painter);
         }
     }
-} // Class SZoneLegendItem
+} // Class SFHFQZoneLegendItem

+ 6 - 6
src/lib/items/SSCPZZoneLegendItem.ts

@@ -1,9 +1,8 @@
-
-import { SGraphItem, SLineStyle } from "@saga-web/graph/lib";
+import { SGraphItem, SLineStyle, STextOrigin } from '@saga-web/graph/lib';
 import { Legend } from '../types/Legend';
-import { SPainter, SColor, SFont, SPoint, SLineCapStyle } from "@saga-web/draw";
+import { SPainter, SColor, SFont, SPoint, SLineCapStyle } from '@saga-web/draw';
 import { STextItem } from '@saga-web/graph/lib';
-import { hexify } from "@/components/mapClass/until"
+import { hexify } from '@/components/mapClass/until';
 import { SItemStatus, ItemOrder, SPolygonItem } from '@saga-web/big/lib';
 /**
  * 图例节点Item(区域类型 --石材铺装)
@@ -128,8 +127,9 @@ export class SSCPZZoneLegendItem extends SPolygonItem {
      */
     constructor(parent: SGraphItem | null, data: Legend) {
         super(parent);
+        this.textItem.originPosition = STextOrigin.Centrum;
         this.textItem.isTransform = false;
-        this.zOrder = ItemOrder.polygonOrder;
+        this.zOrder = ItemOrder.polygonOrder - 0.0005;
         this.data = data;
         this.id = data.ID;
         this.name = data.Name;
@@ -258,4 +258,4 @@ export class SSCPZZoneLegendItem extends SPolygonItem {
             super.onDraw(painter);
         }
     }
-} // Class SZoneLegendItem
+} // Class SSCPZZoneLegendItem

+ 4 - 3
src/lib/items/SZoneLegendItem.ts

@@ -1,8 +1,8 @@
-import { SGraphItem, SLineStyle } from "@saga-web/graph/lib";
+import { SGraphItem, SLineStyle, STextOrigin } from '@saga-web/graph/lib';
 import { Legend } from '../types/Legend';
-import { SPainter, SColor, SFont, SPoint, SLineCapStyle } from "@saga-web/draw";
+import { SPainter, SColor, SFont, SPoint, SLineCapStyle } from '@saga-web/draw';
 import { STextItem } from '@saga-web/graph/lib';
-import { hexify } from "@/components/mapClass/until"
+import { hexify } from '@/components/mapClass/until';
 import { SItemStatus, ItemOrder, SPolygonItem } from '@saga-web/big/lib';
 /**
  * 图例节点Item(区域类型)
@@ -119,6 +119,7 @@ export class SZoneLegendItem extends SPolygonItem {
      */
     constructor(parent: SGraphItem | null, data: Legend) {
         super(parent);
+        this.textItem.originPosition = STextOrigin.Centrum;
         this.textItem.isTransform = false;
         this.zOrder = ItemOrder.polygonOrder;
         this.data = data;

+ 9 - 4
src/router/index.js

@@ -88,12 +88,17 @@ const router = new VueRouter({
 })
 const ignore = ['/404']
 router.beforeEach(async (to, from, next) => {
+    // 取出刷新时的 ssoToken, 路由拦截时app.vue 生命周期还没有执行,store中还没有数据,
+    let beforeunload = localStorage.getItem('beforeunload'),
+        __token = null
+    beforeunload && (__token = JSON.parse(beforeunload).ssoToken)
     if (!ignore.includes(to.path)) {
-        let token = store.getters['ssoToken'] || query().token;
+        let token = __token || store.getters['ssoToken'] || query().token
         // 开发环境模式token有模式值
-        if(process.env.NODE_ENV=='aly'|| process.env.NODE_ENV=='serve'){
+        if (process.env.NODE_ENV == 'aly' || process.env.NODE_ENV == 'serve') {
             token = 'admin:chuyushu'
-         }
+        }
+        // console.log('token====', token)
         if (token) {
             store.commit('SETSSOTOKEN', token)
             if (to.path == '/') {
@@ -118,7 +123,7 @@ router.beforeEach(async (to, from, next) => {
             }
             store.commit('SETLASTROUTER', lastRoute)
             let ssoServer = 'http://oauth.wanda-dev.cn'
-            if(process.env.NODE_ENV=="wanda_build"){
+            if (process.env.NODE_ENV == 'wanda_build') {
                 ssoServer = 'http://oauth.wanda.cn'
             }
             let systemcode = 'CAD156',

+ 12 - 15
src/store/index.js

@@ -1,13 +1,7 @@
 import Vue from 'vue'
 import Vuex from 'vuex'
-import {
-    login,
-    queryFloor,
-    queryfmapID
-} from '@/api/login.js'
-import {
-    queryBrand
-} from '@/api/public.js'
+import { login, queryFloor, queryfmapID } from '@/api/login.js'
+import { queryBrand } from '@/api/public.js'
 import axios from 'axios'
 import router from '../router'
 
@@ -38,6 +32,7 @@ export default new Vuex.Store({
         scpzTable: [], //土建装饰图例展示
         legendTable: [], //除土建装饰图例展示
         remarksText: '', //备注
+        defaultComment: '',
         bunkObj: {}, // 铺位名称
         currentFloor: {}, //当前选中的楼层信息
         accessLevel: -1, // 权限级别
@@ -49,7 +44,7 @@ export default new Vuex.Store({
         plazaName: (state) => state.plazaName,
         accessLevel: (state) => state.accessLevel,
         isPreview: (state) => state.isPreview,
-        ssoToken: (state) =>  state.ssoToken,
+        ssoToken: (state) => state.ssoToken,
         lastRoute: (state) => state.lastRoute,
         floorsArr: (state) => state.floorsArr,
         floorSelect: (state) => state.floorSelect,
@@ -61,6 +56,7 @@ export default new Vuex.Store({
         scpzTable: (state) => state.scpzTable,
         legendTable: (state) => state.legendTable,
         remarksText: (state) => state.remarksText,
+        defaultComment: (state) => state.defaultComment,
         bunkObj: (state) => state.bunkObj,
         showView: (state) => state.showView,
         isGetmap: (state) => state.isGetmap,
@@ -125,6 +121,9 @@ export default new Vuex.Store({
         SETREMARKSTEXT(state, data) {
             state.remarksText = data
         },
+        SETDEFAULTCOMMENT(state, data) {
+            state.defaultComment = data
+        },
         SETBUNKOBJ(state, data) {
             state.bunkObj = data
         },
@@ -154,12 +153,10 @@ export default new Vuex.Store({
     },
     actions: {
         // 获取项目列表、userId
-        async getUserInfo({
-            commit
-        }, palyload) {
+        async getUserInfo({ commit }, palyload) {
             await login({
-                    returnTree: true,
-                })
+                returnTree: true,
+            })
                 .then((res) => {
                     // 获取用户当前权限
                     console.log(res.result)
@@ -242,4 +239,4 @@ export default new Vuex.Store({
         },
     },
     modules: {},
-})
+})

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

@@ -212,7 +212,6 @@ export default {
             }
             queryPic({ getParams }).then(res => {
                 this.rotationImg = res.data || []
-                this.rotationImg[0].url
                 let img = new Image()
                 img.src = this.rotationImg[0].url
                 const vm = this
@@ -287,7 +286,7 @@ export default {
         padding-left: 24px;
         color: #000;
         font-weight: bold;
-        color: #646a73;
+        color: #fff;
         font-weight: normal;
     }
 }
@@ -302,6 +301,10 @@ export default {
 .dialog-container {
     .el-dialog__header {
         padding: 16px 24px;
+        background: linear-gradient(180deg, rgba(54, 156, 247, 1) 0%, rgba(2, 91, 170, 1) 100%);
+    }
+    .el-dialog__headerbtn .el-dialog__close {
+        color: #fff;
     }
     .el-dialog__title {
         font-size: 16px;

+ 1 - 1
src/views/equipment/fenbuPic.vue

@@ -4,7 +4,7 @@
         <div class='legend-boxs'>
             <Legend :innerLeng='1' :floors='floors' type='0' :categoryId='`${typecode=="FBT1"?"FZQZL":"XFBFYCFL"}`'></Legend>
         </div>
-        <floor-list v-if='floors.length>0' :floorsArr='floors' @emitFloor='emitFloor' :id='"floor"'></floor-list>
+        <floor-list v-if='floors.length>0' :changeDataFlag='false' :floorsArr='floors' @emitFloor='emitFloor' :id='"floor"'></floor-list>
         <div v-show='floors.length>0' class='canvas-box'>
             <floorMap ref='floorMap' :modalHeight='modalHeight' :loadName='""' :categoryId='`${typecode=="FBT1"?"FZQZL":"XFBFYCFL"}`' :type='"floor"'></floorMap>
         </div>

+ 80 - 64
src/views/equipment/index.vue

@@ -14,7 +14,8 @@
                 <ul v-for='(eve,index) in everySystem' :key='"o"+index'>
                     <li class='li-style' :class='{"is-active": eve.id}' @click='dialogVisible(eve)'>
                         <span class='circle'></span>
-                        <span class='hanzi'>{{eve.label}}</span>
+                        <el-button type='text' disabled class='hanzi2' v-if='eve.label=="查看图纸"' style='text-align:left'>{{eve.label}}</el-button>
+                        <span class='hanzi' v-else>{{eve.label}}</span>
                     </li>
                 </ul>
             </div>
@@ -27,6 +28,7 @@
                         </div>
                     </div>
                     <div class='eq-content'>
+                        <floorMap ref='floorMap' :id='"equip"' :loadName='loadName' :type='"system"'></floorMap>
                         <div class='legend-boxs'>
                             <Legend
                                 :key='keyLd'
@@ -35,26 +37,26 @@
                                 type='1'
                                 :editTips='`编辑${floorInfo.code}层${systemName}平面图`'
                             ></Legend>
-                        </div>
-                        <floorMap ref='floorMap' :id='"equip"' :loadName='loadName' :type='"system"'></floorMap>
-                        <div class='additional-box' v-if='fqPic.length>0'>
-                            <div class='additional2' @click='additionalColl' v-if='showView===3'>
-                                <img src='../../assets/imgs/bg2.png' alt />
-                            </div>
-                            <div class='additional' @click='additionalColl' v-else>
-                                <img src='../../assets/imgs/bg.png' alt />
-                            </div>
-                            <el-collapse-transition>
-                                <div v-if='showView===3' class='add-img-container'>
-                                    <div class='add-img'>
-                                        <img :src='fqPic[0].url' alt />
-                                    </div>
+                            <!-- 楼层切换组件 -->
+                            <floor-list :key='keyFL' v-if='floorsArr.length>0' :floorsArr='floorsArr' @emitFloor='emitFloor' id='system'></floor-list>
+
+                            <div class='additional-box' ref='additionalBox' v-if='fqPic.length>0'>
+                                <div class='additional2' @click='additionalColl' v-if='showView===3'>
+                                    <img src='../../assets/imgs/bg2.png' alt />
+                                </div>
+                                <div class='additional' @click='additionalColl' v-else>
+                                    <img src='../../assets/imgs/bg.png' alt />
                                 </div>
-                            </el-collapse-transition>
+                                <el-collapse-transition>
+                                    <div v-show='showView===3' class='add-img-container' ref='addImgContainer' :style='`bottom: ${bottomOffset}px;`'>
+                                        <div class='add-img' ref='addImg'>
+                                            <img :src='fqPic[0].url' alt />
+                                        </div>
+                                    </div>
+                                </el-collapse-transition>
+                            </div>
                         </div>
                     </div>
-                    <!-- 楼层切换组件 -->
-                    <floor-list :key='keyFL' v-if='floorsArr.length>0' :floorsArr='floorsArr' @emitFloor='emitFloor' id='system'></floor-list>
                 </div>
             </div>
         </div>
@@ -69,7 +71,7 @@ import floorMap from '@/components/floorMap/index.vue'
 import eqDialog from './eqDialog'
 import editList from '@/components/edit.vue'
 import { system } from '@/utils/plugins/components.js'
-import { queryPic,getPvUv } from '@/api/public.js'
+import { queryPic, getPvUv } from '@/api/public.js'
 import { mapGetters } from 'vuex'
 import store from '../../store'
 export default {
@@ -92,6 +94,7 @@ export default {
             loadName: '',
             type: '',
             objCount: [],
+            bottomOffset: 0,
             keyFL: 'keyFL' + new Date().getTime(),
             keyLd: 'keyLd_' + new Date().getTime(),
             ShowDialog: false //是否显示弹窗
@@ -120,20 +123,20 @@ export default {
             store.commit('SETCATEGORYID', item.categoryId)
             this.$refs.floorMap.init(this.floorInfo.gname)
             this.querySmsxt()
-            this.viewLengend();
-                  // 发送pvUv
-      let data = {
-        type: "equipmentRouter",
-        target: item.name,
-        parameter: item.categoryId
-      };
-      getPvUv(data)
-        .then(res => {
-          console.log("pvuv", res);
-        })
-        .catch(res => {
-          console.log("error", res);
-        });
+            this.viewLengend()
+            // 发送pvUv
+            let data = {
+                type: 'equipmentRouter',
+                target: item.name,
+                parameter: item.categoryId
+            }
+            getPvUv(data)
+                .then(res => {
+                    console.log('pvuv', res)
+                })
+                .catch(res => {
+                    console.log('error', res)
+                })
         },
         querySmsxt() {
             // 目前消防和弱电下面有特殊的数据表格
@@ -161,18 +164,18 @@ export default {
                     this.$refs.dialog.showModal(eve)
                 })
                 // pvuv接口记录
-                 let data = {
-        type: "modal",
-        target: eve.id,
-        parameter: eve.label
-      };
-      getPvUv(data)
-        .then(res => {
-          console.log("pvuv", res);
-        })
-        .catch(res => {
-          console.log("error", res);
-        });
+                let data = {
+                    type: 'modal',
+                    target: eve.id,
+                    parameter: eve.label
+                }
+                getPvUv(data)
+                    .then(res => {
+                        console.log('pvuv', res)
+                    })
+                    .catch(res => {
+                        console.log('error', res)
+                    })
             }
         },
         /**
@@ -182,13 +185,23 @@ export default {
          */
         closeModal(flag) {
             this.ShowDialog = false
-            this.keyFL = 'keyFL' + new Date().getTime()
+            // this.keyFL = 'keyFL' + new Date().getTime()
             this.keyLd = 'keyLd' + new Date().getTime()
         },
         //附加数据图片查看 showView为3展示状态
         additionalColl() {
             if (this.showView != 3) {
                 this.$store.commit('SETSHOWVIEW', 3)
+                this.$nextTick(() => {
+                    let p = this.$refs.additionalBox.offsetTop
+                    let d = this.$refs.addImgContainer.offsetHeight
+                    let bottomOffset = p + 44 - d
+                    if (bottomOffset >= 0) {
+                        this.bottomOffset = 0
+                    } else {
+                        this.bottomOffset = bottomOffset
+                    }
+                })
             } else {
                 this.$store.commit('SETSHOWVIEW', 0)
             }
@@ -340,7 +353,6 @@ export default {
         }
         .li-style {
             margin-left: 28px;
-            // padding: 9px 6px;
             cursor: pointer;
             .circle {
                 width: 6px;
@@ -359,6 +371,11 @@ export default {
                     background: linear-gradient(270deg, rgba(199, 217, 234, 0) 0%, rgba(199, 217, 234, 1) 100%);
                 }
             }
+            .hanzi2 {
+                padding: 10px 0 10px 6px;
+                width: 200px;
+                display: inline-block;
+            }
         }
 
         .eq-right {
@@ -408,15 +425,12 @@ export default {
                     }
                     .additional-box {
                         position: relative;
+                        margin-top: 8px;
                         .additional,
                         .additional2 {
                             width: 44px;
                             height: 44px;
                             border-radius: 2px;
-                            position: fixed;
-                            right: 32px;
-                            top: 528px;
-                            z-index: 2;
                             display: flex;
                             justify-content: center;
                             align-items: center;
@@ -435,29 +449,27 @@ export default {
                             box-shadow: 0px 2px 15px 0px rgba(31, 36, 41, 0.08);
                         }
                         .add-img-container {
-                            width: 560px;
-                            height: 360px;
-                            // max-height: calc(100% - 60px);
-                            // height: calc(100% - 60px);
-                            overflow: auto;
+                            width: 898px;
+                            max-height: 674px;
+                            overflow-y: auto;
                             background: #ffffff;
                             -webkit-box-shadow: 0px 2px 8px 0px rgba(31, 36, 41, 0.06);
                             box-shadow: 0px 2px 8px 0px rgba(31, 36, 41, 0.06);
                             border-radius: 2px;
                             border: 1px solid #e4e5e7;
                             position: absolute;
-                            right: 77px;
-                            bottom: 325px;
-                            z-index: 2;
-                            padding: 20px;
+                            right: 48px;
+                            bottom: 0;
+                            padding: 24px 20px;
+                            &::-webkit-scrollbar {
+                                display: none;
+                            }
                             .add-img {
-                                // padding: 0;
                                 width: 100%;
                                 height: 100%;
-                                overflow: scroll;
+                                overflow: hidden;
                                 img {
                                     width: 100%;
-                                    // max-height: 100%;
                                     display: block;
                                     margin: 0 auto;
                                 }
@@ -469,11 +481,15 @@ export default {
         }
     }
 }
-@media screen and (max-width: 1366px) {
+@media screen and (max-width: 1600px) {
     /*当屏幕尺寸小于1366px时,应用下面的CSS样式*/
     .eq-top {
         margin-left: 0 !important;
     }
+    #equipment .eq-bottom .eq-right .eq-right-bottom .eq-content .additional-box .add-img-container {
+        width: 640px;
+        max-height: 480px;
+    }
 }
 </style>
 <style lang="less">

+ 12 - 4
src/views/equipment/table/eqDetaileDialog.vue

@@ -43,7 +43,15 @@
                 :selectdata='floorSelect'
                 @change='queryTableList'
             ></Select>
-            <el-input placeholder='搜索安装位置' clearable style='width:180px;margin-right:12px' size='small' prefix-icon='el-icon-search' v-model='wzjc'></el-input>
+            <el-input
+                placeholder='搜索安装位置'
+                @keyup.enter.native='queryTableList'
+                clearable
+                style='width:180px;margin-right:12px'
+                size='small'
+                prefix-icon='el-icon-search'
+                v-model='wzjc'
+            ></el-input>
             <!-- 多余的筛选 -->
             <input-dialog :type='1' @confirm='confirm'></input-dialog>
         </div>
@@ -52,8 +60,8 @@
             <el-table-column prop='sbjc' label='设备名称' show-overflow-tooltip resizable width='230'>
                 <template slot-scope='{row}'>{{row.sbjc || '--'}}</template>
             </el-table-column>
-            <el-table-column prop='sbjbm' label='设备编号' show-overflow-tooltip resizable width='80'>
-                <template slot-scope='{row}'>{{row.sbjbm || '--'}}</template>
+            <el-table-column prop='assetnum' label='设备编号' show-overflow-tooltip resizable width='80'>
+                <template slot-scope='{row}'>{{row.assetnum || '--'}}</template>
             </el-table-column>
             <el-table-column prop='sl' label='数量' width='80'>
                 <template slot-scope='{row}'>{{row.sl>=0?row.sl:'--'}}</template>
@@ -83,7 +91,7 @@
                 <template slot-scope='{row}'>{{row.fws || '--'}}</template>
             </el-table-column>
             <el-table-column prop label='相关资料' show-overflow-tooltip resizable width='100'>
-                <template slot-scope='{row}'>{{ '--'}}</template>
+                <template slot-scope='{row}'>{{'--'}}</template>
             </el-table-column>
         </el-table>
         <div class='foot'>

+ 8 - 6
src/views/equipment/table/tjTable.vue

@@ -6,7 +6,7 @@
                 clearable
                 placeholder='搜索类别'
                 size='small'
-                @blur='getList'
+                @keyup.enter.native='getList'
                 prefix-icon='el-icon-search'
                 v-model='lb'
                 style='width:192px;margin-right:12px'
@@ -26,15 +26,17 @@
             <el-table-column prop='category' label='类别' show-overflow-tooltip resizable>
                 <template slot-scope='{row}'>{{row.category || '--'}}</template>
             </el-table-column>
-            <el-table-column prop='sl' label='数量'>
-                <template slot-scope='{row}'>{{row.sl>=0?row.sl:'--'}}</template>
+            <el-table-column prop='sl' label='数量' align='center' width='130'>
+                <template slot-scope='{row}'>
+                    <div style='text-align:right'>{{row.sl>=0?row.sl:'--'}}</div>
+                </template>
+            </el-table-column>
+            <el-table-column prop='unit' label='单位' width='130' align='center'>
+                <template slot-scope='{row}'>{{row.unit || '--'}}</template>
             </el-table-column>
             <el-table-column prop='brand' label='品牌'>
                 <template slot-scope='{row}'>{{row.brand || '--'}}</template>
             </el-table-column>
-            <el-table-column prop='unit' label='单位'>
-                <template slot-scope='{row}'>{{row.unit || '--'}}</template>
-            </el-table-column>
         </el-table>
         <div class='foot'>
             <el-pagination

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

@@ -5,7 +5,7 @@
             <el-input
                 placeholder='搜索设备名称编号'
                 size='small'
-                @blur='getList'
+                @keyup.enter.native='getList'
                 prefix-icon='el-icon-search'
                 v-model='sbjc'
                 clearable
@@ -96,7 +96,7 @@
             <el-table-column prop='brand' label='现场照片' width='70'>
                 <template slot-scope='{row}'>
                     <div v-if='row.glsmsImage' style='cursor:pointer;color: #0091ff;' @click='clickPic(row.glsmsImage)'>{{row.glsmsImage.length+'张'}}</div>
-                    <div v-else>{{'---'}}</div>
+                    <div v-else>{{'--'}}</div>
                 </template>
             </el-table-column>
             <el-table-column prop='reportdate' label='填报时间' width='140'>
@@ -107,7 +107,7 @@
             </el-table-column>
             <el-table-column prop='wonum' label='任务编号' show-overflow-tooltip resizable width='90'>
                 <template slot-scope='{row}'>
-                    <div @click='ycgd(row)'>{{row.wb_gzglid || '--'}}</div>
+                    <div @click='ycgd(row)' style='cursor:pointer;color: #0091ff;'>{{row.wb_gzglid || '--'}}</div>
                 </template>
             </el-table-column>
         </el-table>
@@ -225,11 +225,12 @@ export default {
             }
             //输入框
             getParams.data.keyword = ''
-            if (this.sbjx) {
-                getParams.data.keyword += `${this.sbjc}:sbjc,sbjbm;`
+            if (this.sbjc) {
+                console.log(this.sbjc)
+                getParams.data.keyword += `${this.sbjc}:sbmc,assetnum;`
             }
             if (this.matters) {
-                getParams.data.keyword += `${this.matters}:matters,description;`
+                getParams.data.keyword += `${this.matters}:sms.description,matters;`
             }
             if (this.gzglid) {
                 getParams.data.keyword += `${this.gzglid}:wb_gzglid;`
@@ -239,7 +240,6 @@ export default {
             }
             queryWbsms(getParams).then(res => {
                 this.tableData = res.data || []
-                //console.log(this.tableData)
                 this.total = res.count
             })
         },

+ 6 - 4
src/views/equipment/table/wxTable.vue

@@ -110,7 +110,9 @@
                 <template slot-scope='{row}'>{{row.sjjssj?formatter(row.sjjssj): '--'}}</template>
             </el-table-column>
             <el-table-column prop='wonum' label='工单编号' show-overflow-tooltip resizable width='80'>
-                <template slot-scope='{row}'>{{row.wonum || '--'}}</template>
+                <template slot-scope='{row}'>
+                    <div style='cursor:pointer;color: #0091ff;'>{{row.wonum || '--'}}</div>
+                </template>
             </el-table-column>
         </el-table>
         <div class='foot'>
@@ -211,11 +213,11 @@ export default {
             }
             //输入框搜索
             getParams.data.keyword = ''
-            if (this.sbjx) {
-                getParams.data.keyword += `${this.sbjc}:sbjc,sbjbm;`
+            if (this.sbjc) {
+                getParams.data.keyword += `${this.sbjc}:sbmc,assetnum;`
             }
             if (this.matters) {
-                getParams.data.keyword += `${this.matters}:matters,description`
+                getParams.data.keyword += `${this.matters}:description,matters;`
             }
             if (this.wonum) {
                 getParams.data.keyword += `${this.wonum}:wonum`

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

@@ -79,12 +79,7 @@
                 <template slot-scope='{row}'>{{row.sl>=0?row.sl:'--'}}</template>
             </el-table-column>
             <el-table-column prop='ssfasm' label='实施方案说明' show-overflow-tooltip resizable min-width='320'>
-                <template slot-scope='{row}'>
-                    <a
-                        :href='`http://10.199.204.167:7001/maximo/ui/?event=loadapp&value=GCZXWXLINE&uniqueid=${row.ssfasm}`'
-                        target='_blank'
-                    >{{row.ssfasm || '--'}}</a>
-                </template>
+                <template slot-scope='{row}'>{{row.ssfasm || '--'}}</template>
             </el-table-column>
             <el-table-column prop='sxjd' label='当前阶段' show-overflow-tooltip resizable width='80'>
                 <template slot-scope='{row}'>{{row.sxjd || '--'}}</template>

+ 2 - 2
src/views/floorFunc/index.vue

@@ -3,12 +3,12 @@
         <div class='lcgn-title'>
             <span class='span1'>{{floorInfo.code}}</span>
         </div>
+        <floorMap ref='floorMap' :loadName='loadName' :type='"floor"'></floorMap>
         <!-- 图例 -->
         <div class='legend-boxs'>
             <Legend :floors='floorsArr' type='1' :editTips='`编辑${floorInfo.code}层楼层功能平面图`'></Legend>
+            <floor-list v-if='floorsArr.length>0' :floorsArr='floorsArr' :type='1' @emitFloor='emitFloor' :id='"floor"'></floor-list>
         </div>
-        <floor-list v-if='floorsArr.length>0' :floorsArr='floorsArr' :type='1' @emitFloor='emitFloor' :id='"floor"'></floor-list>
-        <floorMap ref='floorMap' :loadName='loadName' :type='"floor"'></floorMap>
     </div>
 </template>
 <script>

+ 3 - 3
src/views/legendLibrary/index.vue

@@ -121,13 +121,13 @@
                 <el-table-column prop='Unit' label='单位' width='60'>
                     <template slot-scope='{row}'>{{row.Unit}}</template>
                 </el-table-column>
-                <el-table-column prop='position' label='对应广场说明书的位置' show-overflow-tooltip width='560'>
+                <el-table-column prop='position' label='对应广场说明书的位置' show-overflow-tooltip>
                     <template slot-scope='{row}'>
                         <span>{{ row.GraphCategorys.length?row.GraphCategorys.map(item => item.Name).join(' ,'):'' }}</span>
                     </template>
                 </el-table-column>
 
-                <el-table-column label='对应工程信息化中的专业/位置、设备分类' show-overflow-tooltip width='462'>
+                <el-table-column label='对应工程信息化中的专业/位置、设备分类' show-overflow-tooltip>
                     <template slot-scope='{row}'>
                         <span>{{row.InfoLocal.length?row.InfoLocal.map(item => item.name).join(' ,') :''}}</span>
                     </template>
@@ -138,7 +138,7 @@
                         </template>
                 </el-table-column>-->
 
-                <el-table-column prop='typeId' resizable label='铺位可视化typeid' width='364' show-overflow-tooltip>
+                <el-table-column prop='typeId' resizable label='铺位可视化typeid' show-overflow-tooltip>
                     <template slot-scope='{row}'>
                         <span>{{row.InfoTypes.length ?row.InfoTypes.map(item => `${item.Id }-${item.Name}`).join(' ,'):'' }}</span>
                     </template>

+ 57 - 11
src/views/other/zhsxOtherTable1.vue

@@ -63,16 +63,8 @@
             </el-table-column>
             <el-table-column prop label='附件' width='80'>
                 <template slot-scope='{row}'>
-                    <el-popover placement='right' trigger='hover' v-if='row.glsmsZhsxfj&&row.glsmsZhsxfj.length>0'>
-                        <div>
-                            <p
-                                style='color: rgba(0, 145, 255, 1);cursor: pointer;'
-                                v-for='(item,index) in row.glsmsZhsxfj'
-                                :key='index'
-                            >{{item.description}}</p>
-                        </div>
-                        <div class='fileOpen' slot='reference'>{{row.glsmsZhsxfj.length}}</div>
-                    </el-popover>
+                    <div v-if='row.glsmsImage' style='cursor:pointer;color: #0091ff;' @click='clickPic(row.glsmsImage)'>{{row.glsmsImage.length+'张'}}</div>
+                    <!-- <div style='cursor:pointer;color: #0091ff;' @click='clickPic'>{{5+'张'}}</div> -->
                     <div v-else>{{'--'}}</div>
                 </template>
             </el-table-column>
@@ -87,6 +79,8 @@
                 @next-click='pageChanged'
                 @current-change='pageChanged'
             ></el-pagination>
+            <pic-large ref='picLargeOpen'></pic-large>
+            <!-- <pic-large v-if='imgUrl.length>0' :imgUrl='imgUrl' ref='picLargeOpen'></pic-large> -->
         </div>
     </div>
 </template>
@@ -109,11 +103,63 @@ export default {
             size: 10,
             department: [],
             ssjlsx: '',
-            isOpen: true
+            isOpen: true,
+            imgUrl: [],
+            imgUrl2: [],
+            imgUrls: [
+                {
+                    name: '供电系统原理图.png',
+                    url:
+                        'http://10.199.204.168:9080/doclinks/MANAGEINS/2020061921294136524467354%E4%BE%9B%E7%94%B5%E7%B3%BB%E7%BB%9F%E5%8E%9F%E7%90%86%E5%9B%BE.png'
+                },
+                {
+                    name: '供电系统原理图.pdf',
+                    url: 'http://10.199.204.168:9080/doclinks/MANAGEINS/2020061921260429024467352%E5%8C%BA%E4%BD%8D%E5%9B%BE.png'
+                },
+                {
+                    name: '供电系统原理图.html',
+                    url:
+                        'http://10.199.204.168:9080/doclinks/MANAGEINS/2020061921294136524467354%E4%BE%9B%E7%94%B5%E7%B3%BB%E7%BB%9F%E5%8E%9F%E7%90%86%E5%9B%BE.png'
+                },
+                {
+                    name: '供电系统原理图.png',
+                    url:
+                        'http://10.199.204.168:9080/doclinks/MANAGEINS/2020061921294136524467354%E4%BE%9B%E7%94%B5%E7%B3%BB%E7%BB%9F%E5%8E%9F%E7%90%86%E5%9B%BE.png'
+                },
+                {
+                    name: '供电系统原理图.png',
+                    url: 'http://gcgl.wanda.cn/%E7%BB%B4%E4%BF%AE%E5%B7%A5%E5%8D%95%E4%B8%80/WORKORDER_846049_2019-11-19T15-37-42-716.jpg'
+                }
+            ]
         }
     },
     components: { Select },
     methods: {
+        clickPic() {
+            if (this.imgUrls.length > 0) {
+                this.$refs.picLargeOpen.open(this.imgUrls)
+            }
+            /* this.imgUrl = []
+            this.imgUrl2 = []
+            var patternFileExtension = /\.([0-9a-z]+)(?:[\?#]|$)/i
+            if (this.imgUrls.length > 0) {
+                this.imgUrls.forEach(el => {
+                    let name = el.name.match(patternFileExtension)[1]
+                    let obj = {
+                        name: el.name,
+                        url: el.url,
+                        type: name
+                    }
+                    this.imgUrl.push(obj)
+                })
+            }
+            console.log(this.imgUrl)
+            // var fileExtension = '供电系统原理图.html'.match(patternFileExtension)
+            // console.log(fileExtension[1])
+            if (this.imgUrl.length > 0) {
+                this.$refs.picLargeOpen.open(this.imgUrl)
+            } */
+        },
         formatter(date) {
             return moment.unix(date / 1000).format('YYYY.MM.DD')
         },

+ 1 - 1
src/views/other/zhsxOtherTable2.vue

@@ -3,7 +3,7 @@
         <div class='tab-top'>
             <el-input
                 clearable
-                @change='dsfjc'
+                @keyup.enter.native='dsfjc'
                 placeholder='搜索任务名称'
                 size='small'
                 prefix-icon='el-icon-search'

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

@@ -13,6 +13,7 @@
             <div class='view-button' @click='findxmzl'>
                 <img src='../../assets/imgs/wd.png' alt />
                 项目资料
+                <!-- <el-button type='info' plain disabled>项目资料</el-button> -->
             </div>
         </div>
         <div class='view-box'>
@@ -104,7 +105,7 @@
                                 <el-table-column prop='unit ' label='施工单位'>
                                     <template slot-scope='{row}'>{{row.unit ||'--'}}</template>
                                 </el-table-column>
-                                <el-table-column label='联系人' prop width='65'>
+                                <el-table-column label='联系人' prop width='65' :show-overflow-tooltip='true'>
                                     <template slot-scope='{row}'>{{row.lxr||'--'}}</template>
                                 </el-table-column>
                                 <el-table-column prop='phone' label='联系电话' width='110'>

+ 19 - 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 :key='key' :type='1' v-if='rotationImg.length>0' :rotationImg='rotationImg' style='height:100%;width:100%'></rotation>
+            <rotation :size='sizePic' :key='key' :type='3' v-if='rotationImg.length>0' :rotationImg='rotationImg' style='height:100%;width:100%'></rotation>
             <span class='close' @click='close'>X</span>
         </el-dialog>
     </div>
@@ -18,7 +18,9 @@ export default {
             dialogVisible: false,
             mode: 'top',
             rotationImg: [],
-            key: 1
+            key: 1,
+            sizePic: '',
+            imgInfo: {}
         }
     },
     methods: {
@@ -26,6 +28,21 @@ export default {
             this.key++
             this.dialogVisible = true
             this.rotationImg = params
+            if (this.rotationImg.length > 0) {
+                let img = new Image()
+                img.src = this.rotationImg[0].url
+                const vm = this
+                img.onload = function() {
+                    vm.$set(vm.imgInfo, 'width', img.width)
+                    vm.$set(vm.imgInfo, 'height', img.height)
+                    if (vm.imgInfo.width > vm.imgInfo.height) {
+                        vm.sizePic = 'width'
+                    } else {
+                        vm.sizePic = 'height'
+                    }
+                    console.log(vm.sizePic)
+                }
+            }
         },
         close() {
             this.dialogVisible = false

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

@@ -114,8 +114,8 @@
             <el-table-column prop='sbjc' label='设备名称' min-width='150' :show-overflow-tooltip='true' resizable>
                 <template slot-scope='{row}'>{{row.sbjc||'--'}}</template>
             </el-table-column>
-            <el-table-column prop='sbbh' label='设备编号' :show-overflow-tooltip='true'>
-                <template slot-scope='{row}'>{{row.sbbh||'--'}}</template>
+            <el-table-column prop='assetnum' label='设备编号' :show-overflow-tooltip='true'>
+                <template slot-scope='{row}'>{{row.assetnum||'--'}}</template>
             </el-table-column>
             <el-table-column prop='sl' label='数量' width='70' :show-overflow-tooltip='true'>
                 <template slot-scope='{row}'>{{row.sl||'--'}}</template>

+ 49 - 28
src/views/room/index.vue

@@ -691,6 +691,14 @@ export default {
                     getParams.keyword = `${this.zysxInput4}:matters,manufacturer`
                 }
             }
+            // 搜索工单编号
+            if (this.gdbhInput4) {
+                if (getParams.keyword) {
+                    getParams.keyword = `${getParams.keyword + ';' + this.gdbhInput4}:wonum`
+                } else {
+                    getParams.keyword = `${this.gdbhInput4}:wonum`
+                }
+            }
             // 填报时间
             if (this.tbsjDate) {
                 getParams.reportedbyStartDate = this.tbsjDate[0] + '000000'
@@ -877,47 +885,26 @@ export default {
 </script>
 <style lang="less" scoped>
 .compute-box {
-    /deep/ .el-dialog {
-        // padding: 16px 20px 20px;
-        overflow: hidden;
-        .el-dialog__header {
-            padding: 0;
-            font-size: 16px;
-            font-family: PingFangSC-Medium, PingFang SC;
-            font-weight: 500;
-            color: rgba(0, 0, 0, 0.85);
-            height: 60px;
-            line-height: 60px;
-            background: #f1f2f2;
-            padding-left: 20px;
-            // padding-bottom: 16px;
-        }
-        .el-dialog__headerbtn {
-            top: 0;
-        }
-        .el-dialog__body {
-            padding: 0 24px;
-            .is-active {
-                background: rgba(2, 91, 170, 0.15);
-            }
-        }
+    /deep/ .el-dialog__title {
+        color: #fff;
     }
     .compute-zf {
         width: 15px;
         height: 13px;
-        background: url('../../assets/imgs/zffx.png');
+        background: url('../../assets/imgs/zffz.png');
         background-repeat: no-repeat;
         background-size: 100% 100%;
         position: absolute;
         right: 74px;
-        top: 25px;
+        top: 24px;
         cursor: pointer;
         &::after {
             content: '';
             position: absolute;
+            top: -2px;
             right: -16px;
             width: 1px;
-            height: 16px;
+            height: 15px;
             background: rgba(216, 216, 216, 1);
         }
     }
@@ -995,17 +982,51 @@ export default {
 </style>
 <style lang="less">
 .compute-box {
+    .el-dialog__header {
+        padding: 16px 24px;
+        background: linear-gradient(180deg, rgba(54, 156, 247, 1) 0%, rgba(2, 91, 170, 1) 100%);
+    }
+    .el-dialog__headerbtn .el-dialog__close {
+        color: #fff;
+    }
     .compute-tab {
+        /deep/ .el-dialog {
+            // padding: 16px 20px 20px;
+            overflow: hidden;
+            .el-dialog__header {
+                padding: 0;
+                font-size: 16px;
+                font-family: PingFangSC-Medium, PingFang SC;
+                font-weight: 500;
+                // color: rgba(0, 0, 0, 0.85);
+                height: 60px;
+                line-height: 60px;
+                // background: #f1f2f2;
+                padding-left: 20px;
+                // padding-bottom: 16px;
+            }
+            .el-dialog__headerbtn {
+                top: 0;
+            }
+            .el-dialog__body {
+                padding: 0 24px;
+                .is-active {
+                    background: rgba(2, 91, 170, 0.15);
+                }
+            }
+        }
+
         .el-dialog__title {
             font-size: 16px;
             font-family: PingFangSC-Medium, PingFang SC;
             font-weight: 500;
-            color: rgba(0, 0, 0, 0.85);
+            color: #ffffff;
             line-height: 60px;
         }
         .el-dialog__body {
             padding: 0 24px;
         }
+
         .el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),
         .el-tabs--bottom .el-tabs__item.is-top:nth-child(2),
         .el-tabs--top .el-tabs__item.is-bottom:nth-child(2),

+ 1 - 1
src/views/room/room1.vue

@@ -1,6 +1,6 @@
 <template>
     <div class='jf-inner' style='width:100%;overflow:hidden'>
-        <rotation :rotationImg='tableImg' :type='3'></rotation>
+        <rotation size='width' :rotationImg='tableImg' :type='3'></rotation>
     </div>
 </template>
 <script>

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

@@ -1135,7 +1135,7 @@ export default {
                     border-radius: 90px;
                     font-size: 1.2rem;
                     text-align: center;
-                    line-height: 18px;
+                    line-height: 16px;
                     color: #ffffff;
                 }
             }

+ 215 - 54
src/views/table/index.vue

@@ -1,38 +1,111 @@
 <template>
     <div>
-        <h4>Table1</h4>
-        <h6>原数据</h6>
-        <el-table :data='tableData1' border style='width: 100%'>
-            <el-table-column prop='type' label='type' width='180'></el-table-column>
-            <el-table-column prop='professional' label='professional'></el-table-column>
-            <el-table-column prop='unit' label='unit'></el-table-column>
-            <el-table-column prop='seq0' label='seq0'></el-table-column>
-            <el-table-column prop='seq1' label='seq1'></el-table-column>
-            <el-table-column prop='seq2' label='seq2'></el-table-column>
-            <el-table-column prop='seq3' label='seq3'></el-table-column>
-            <el-table-column prop='seq4' label='seq4'></el-table-column>
-        </el-table>
-        <h6>合并数据</h6>
-        <el-table :data='tableData2' border style='width: 100%'>
-            <el-table-column prop='type' label='type' width='180'></el-table-column>
-            <el-table-column prop='professional' label='professional'></el-table-column>
-            <el-table-column prop='unit' label='unit'></el-table-column>
-            <el-table-column prop='seq0' label='seq0'></el-table-column>
-            <el-table-column prop='seq1' label='seq1'></el-table-column>
-            <el-table-column prop='seq2' label='seq2'></el-table-column>
-            <el-table-column prop='seq3' label='seq3'></el-table-column>
-            <el-table-column prop='seq4' label='seq4'></el-table-column>
-        </el-table>
-        <el-table :data='tableData2' :span-method='arraySpanMethod' border style='width: 100%'>
-            <el-table-column prop='type' label='type' width='180'></el-table-column>
-            <el-table-column prop='professional' label='professional'></el-table-column>
-            <el-table-column prop='unit' label='unit'></el-table-column>
-            <el-table-column prop='seq0' label='seq0'></el-table-column>
-            <el-table-column prop='seq1' label='seq1'></el-table-column>
-            <el-table-column prop='seq2' label='seq2'></el-table-column>
-            <el-table-column prop='seq3' label='seq3'></el-table-column>
-            <el-table-column prop='seq4' label='seq4'></el-table-column>
-        </el-table>
+        <div style='display:flex'>
+            <!-- <el-table
+                :data='tableData1'
+                :header-cell-style='{background:"rgba(245,246,247,1)",fontFamily:"MicrosoftYaHei",color:"rgba(100,108,115,1)",lineHeight:"16px",fontSize:"12px"}'
+                border
+                style='width: 100%'
+            >
+                <el-table-column prop='type' label='type' width='180'></el-table-column>
+                <el-table-column prop='professional' label='professional'></el-table-column>
+                <el-table-column prop='unit' label='unit'></el-table-column>
+                <el-table-column prop='seq0' label='seq0'></el-table-column>
+                <el-table-column prop='seq1' label='seq1'></el-table-column>
+                <el-table-column prop='seq2' label='seq2'></el-table-column>
+                <el-table-column prop='seq3' label='seq3'></el-table-column>
+                <el-table-column prop='seq4' label='seq4'></el-table-column>
+                <el-table-column prop='seq5' label='seq5'></el-table-column>
+                <el-table-column prop='seq6' label='seq6'></el-table-column>
+                <el-table-column label='联系人' prop width='65'>
+                    <template slot-scope='{row}'>{{row.lxr}}</template>
+                </el-table-column>
+                <el-table-column prop='phone' label='联系电话' width='110'>
+                    <template slot-scope='{row}'>{{row.lxdh}}</template>
+                </el-table-column>
+            </el-table>-->
+            <!-- <el-table
+                :data='tableData2'
+                :header-cell-style='{background:"rgba(245,246,247,1)",fontFamily:"MicrosoftYaHei",color:"rgba(100,108,115,1)",lineHeight:"16px",fontSize:"12px"}'
+                border
+                style='width: 100%'
+            >
+                <el-table-column prop='type' label='type' width='180'></el-table-column>
+                <el-table-column prop='professional' label='professional'></el-table-column>
+                <el-table-column prop='unit' label='unit'></el-table-column>
+                <el-table-column prop='seq0' label='seq0'></el-table-column>
+                <el-table-column prop='seq1' label='seq1'></el-table-column>
+                <el-table-column prop='seq2' label='seq2'></el-table-column>
+                <el-table-column prop='seq3' label='seq3'></el-table-column>
+                <el-table-column prop='seq4' label='seq4'></el-table-column>
+                <el-table-column prop='seq5' label='seq5'></el-table-column>
+                <el-table-column prop='seq6' label='seq6'></el-table-column>
+                <el-table-column label='联系人' prop width='65'>
+                    <template slot-scope='{row}'>{{row.lxr}}</template>
+                </el-table-column>
+                <el-table-column prop='phone' label='联系电话' width='110'>
+                    <template slot-scope='{row}'>{{row.lxdh}}</template>
+                </el-table-column>
+            </el-table>-->
+        </div>
+        <div style='display:flex'>
+            <!-- <el-table
+                :data='tableData2'
+                :span-method='arraySpanMethod'
+                :header-cell-style='{background:"rgba(245,246,247,1)",fontFamily:"MicrosoftYaHei",color:"rgba(100,108,115,1)",lineHeight:"16px",fontSize:"12px"}'
+                border
+                style='width: 100%'
+            >
+                <el-table-column prop='type' label='type' width='180'></el-table-column>
+                <el-table-column prop='professional' label='professional'></el-table-column>
+                <el-table-column prop='unit' label='unit'></el-table-column>
+                <el-table-column prop='seq0' label='seq0'></el-table-column>
+                <el-table-column prop='seq1' label='seq1'></el-table-column>
+                <el-table-column prop='seq2' label='seq2'></el-table-column>
+                <el-table-column prop='seq3' label='seq3'></el-table-column>
+                <el-table-column prop='seq4' label='seq4'></el-table-column>
+                <el-table-column prop='seq5' label='seq5'></el-table-column>
+                <el-table-column prop='seq6' label='seq6'></el-table-column>
+                <el-table-column label='联系人' prop width='65'>
+                    <template slot-scope='{row}'>{{row.lxr}}</template>
+                </el-table-column>
+                <el-table-column prop='phone' label='联系电话' width='110'>
+                    <template slot-scope='{row}'>{{row.lxdh}}</template>
+                </el-table-column>
+            </el-table>-->
+            <el-table
+                :data='tableData2'
+                :height='350'
+                :span-method='arraySpanMethod'
+                style='font-size:12px;width:60%'
+                border
+                :header-cell-style='{background:"rgba(245,246,247,1)",fontFamily:"MicrosoftYaHei",color:"rgba(100,108,115,1)",lineHeight:"16px",fontSize:"12px"}'
+            >
+                <!-- <el-table-column label='序号' width='50' type='index' align='left'></el-table-column> -->
+                <el-table-column label='总包/分包' width='100' prop='type'>
+                    <template slot-scope='{row}'>{{row.type||'--'}}</template>
+                </el-table-column>
+                <el-table-column label='专业' width='70' prop='professional'>
+                    <template slot-scope='{row}'>{{row.professional||'--'}}</template>
+                </el-table-column>
+                <el-table-column prop='unit ' label='施工单位'>
+                    <template slot-scope='{row}'>{{row.unit ||'--'}}</template>
+                </el-table-column>
+                <el-table-column label='联系人' prop width='65' :show-overflow-tooltip='true'>
+                    <template slot-scope='{row}'>{{row.lxr}}</template>
+                </el-table-column>
+                <el-table-column prop='phone' label='联系电话' width='110'>
+                    <template slot-scope='{row}'>{{row.lxdh}}</template>
+                </el-table-column>
+                <el-table-column prop='seq0' label='seq0'></el-table-column>
+                <el-table-column prop='seq1' label='seq1'></el-table-column>
+                <el-table-column prop='seq2' label='seq2'></el-table-column>
+                <el-table-column prop='seq3' label='seq3'></el-table-column>
+                <el-table-column prop='seq4' label='seq4'></el-table-column>
+                <el-table-column prop='seq5' label='seq5'></el-table-column>
+                <el-table-column prop='seq6' label='seq6'></el-table-column>
+            </el-table>
+        </div>
     </div>
 </template>
 <script>
@@ -49,12 +122,16 @@ export default {
     computed: {},
     methods: {
         arraySpanMethod({ row, column, rowIndex, columnIndex }) {
+            console.log('{ row, column, rowIndex, columnIndex }', { row, column, rowIndex, columnIndex })
             // console.log('span method rowIndex=', rowIndex, ', columnIndex=', columnIndex, JSON.stringify(row))
             if (columnIndex == 0) {
                 if (row.type == '总包') {
                     return [row.seq1, 1]
                 } else if (row.type == '分包') {
-                    return [1, 1]
+                    if (row.professional) {
+                        return [row.seq2, 1]
+                    }
+                    return [0, 1]
                 } else {
                     return [0, 1]
                 }
@@ -73,6 +150,20 @@ export default {
                     return [0, 1]
                 }
             }
+            if (columnIndex == 3) {
+                if (row.lxr) {
+                    return [row.seq4, 1]
+                } else {
+                    return [0, 1]
+                }
+            }
+            if (columnIndex == 4) {
+                if (row.lxdh) {
+                    return [row.seq5, 1]
+                } else {
+                    return [0, 1]
+                }
+            }
 
             return [1, 1]
         },
@@ -97,38 +188,78 @@ export default {
                 } else {
                     seq[flag] = seq[flag] + 1
                 }
+                flag = item.type + '-' + item.lxr
+                if (!seq[flag]) {
+                    seq[flag] = 1
+                } else {
+                    seq[flag] = seq[flag] + 1
+                }
+                flag = item.type + '-' + item.lxdh
+                if (!seq[flag]) {
+                    seq[flag] = 1
+                } else {
+                    seq[flag] = seq[flag] + 1
+                }
             })
 
             console.log(seq)
 
             data.forEach(item => {
+                console.log(item.type)
                 item.seq0 = item.type == '总包' ? 1 : 2
                 item.seq1 = seq[item.type]
                 item.seq2 = seq[item.type + '-' + item.professional]
                 item.seq3 = seq[item.type + '-' + item.unit]
-                item.seq4 = item.seq2 + item.seq3
+                item.seq4 = seq[item.type + '-' + item.lxr]
+                console.log(seq[item.type + '-' + item.lxr])
+                item.seq5 = seq[item.type + '-' + item.lxdh]
+                item.seq6 = item.seq4 + item.seq5
             })
-            data.forEach(item => console.log(JSON.stringify(item)))
+            // data.forEach(item => console.log(JSON.stringify(item)))
 
             data.sort((a, b) => {
                 if (a.seq0 != b.seq0) {
                     return a.seq0 - b.seq0
                 }
-                if (a.seq4 != b.seq4) {
-                    return a.seq4 - b.seq4
+                if (a.seq1 != b.seq1) {
+                    return a.seq1 - b.seq1
+                }
+                if (a.seq2 != b.seq2) {
+                    return a.seq2 - b.seq2
                 }
                 if (a.seq3 != b.seq3) {
                     return a.seq3 - b.seq3
                 }
-                if (a.seq2 != b.seq2) {
-                    return a.seq2 - b.seq2
+                if (a.seq4 != b.seq4) {
+                    return a.seq4 - b.seq4
                 }
+                if (a.seq5 != b.seq5) {
+                    return a.seq5 - b.seq5
+                }
+                if (a.seq6 != b.seq6) {
+                    return a.seq6 - b.seq6
+                }
+
                 let result = a.professional.localeCompare(b.professional)
                 if (result == 0) {
                     return a.unit.localeCompare(b.unit)
                 } else {
                     return result
                 }
+
+                let result1 = a.unit.localeCompare(b.unit)
+                if (result1 == 0) {
+                    return a.lxr.localeCompare(b.lxr)
+                } else {
+                    return result1
+                }
+
+                let result2 = a.lxr.localeCompare(b.lxr)
+                if (result2 == 0) {
+                    return a.lxdh.localeCompare(b.lxdh)
+                } else {
+                    return result2
+                }
             })
 
             let result = []
@@ -141,7 +272,15 @@ export default {
                 if (!temp) {
                     result.push(item)
                 } else {
-                    let content = { seq0: item.seq0, seq1: item.seq1, seq2: item.seq2, seq3: item.seq3, seq4: item.seq4 }
+                    let content = {
+                        seq0: item.seq0,
+                        seq1: item.seq1,
+                        seq2: item.seq2,
+                        seq3: item.seq3,
+                        seq4: item.seq4,
+                        seq5: item.seq5,
+                        seq6: item.seq6
+                    }
                     content.type = item.type == '分包' ? '分包' : null
                     if (item.professional != temp.professional) {
                         content.professional = item.professional
@@ -149,6 +288,12 @@ export default {
                     if (item.unit != temp.unit) {
                         content.unit = item.unit
                     }
+                    if (item.lxr != temp.lxr) {
+                        content.lxr = item.lxr
+                    }
+                    if (item.lxdh != temp.lxdh) {
+                        content.lxdh = item.lxdh
+                    }
                     result.push(content)
                 }
                 temp = data[i]
@@ -163,7 +308,15 @@ export default {
                     result.push(item)
                 } else {
                     let item = data[i]
-                    let content = { seq0: item.seq0, seq1: item.seq1, seq2: item.seq2, seq3: item.seq3, seq4: item.seq4 }
+                    let content = {
+                        seq0: item.seq0,
+                        seq1: item.seq1,
+                        seq2: item.seq2,
+                        seq3: item.seq3,
+                        seq4: item.seq4,
+                        seq5: item.seq5,
+                        seq6: item.seq6
+                    }
                     content.type = item.type == '分包' ? '分包' : null
                     if (item.professional != temp.professional) {
                         content.professional = item.professional
@@ -171,6 +324,13 @@ export default {
                     if (item.unit != temp.unit) {
                         content.unit = item.unit
                     }
+                    if (item.lxr != temp.lxr) {
+                        content.lxr = item.lxr
+                    }
+                    if (item.lxdh != temp.lxdh) {
+                        content.lxdh = item.lxdh
+                    }
+
                     result.push(content)
                 }
                 temp = data[i]
@@ -182,18 +342,19 @@ export default {
     created() {
         console.log('--------------------- Table1 created')
         let tableData = [
-            { siteid: '1000423', type: '总包', professional: '土建', unit: '中建二局' },
-            { siteid: '1000423', type: '分包', professional: '电梯', unit: '上海三菱' },
-            { siteid: '1000423', type: '总包', professional: '消防电', unit: '中建二局2' },
-            { siteid: '1000423', type: '总包', professional: '机电', unit: '中建二局' },
-            { siteid: '1000423', type: '分包', professional: '精装', unit: '深圳嘉信' },
-            { siteid: '1000423', type: '总包', professional: '给排水', unit: '中建二局' },
-            { siteid: '1000423', type: '分包', professional: '幕墙', unit: '中建二局' },
-            { siteid: '1000423', type: '分包', professional: '精装', unit: '深圳艺涛' },
-            { siteid: '1000423', type: '分包', professional: '采光顶', unit: '上海通用' },
-            { siteid: '1000423', type: '分包', professional: '空调', unit: '武汉三重' },
-            { siteid: '1000423', type: '总包', professional: '弱电', unit: '中建二局' },
-            { siteid: '1000423', type: '分包', professional: '消防水', unit: '辽宁强盾' }
+            { siteid: '1000423', type: '总包', professional: '土建', unit: '中建二局', lxr: '张善国1', lxdh: '136234577521' },
+            { siteid: '1000423', type: '分包', professional: '电梯', unit: '上海三菱', lxr: '张善国2', lxdh: '136234577522' },
+            { siteid: '1000423', type: '总包', professional: '消防电', unit: '中建二局', lxr: '张善国3', lxdh: '136234577523' },
+            { siteid: '1000423', type: '总包', professional: '机电', unit: '中建二局', lxr: '张善国4', lxdh: '136234577524' },
+            { siteid: '1000423', type: '总包', professional: '机电', unit: '中建二局', lxr: '张善国5', lxdh: '136234577525' },
+            { siteid: '1000423', type: '分包', professional: '精装', unit: '深圳嘉信', lxr: '张善国6', lxdh: '136234577526' },
+            { siteid: '1000423', type: '总包', professional: '给排水', unit: '中建二局', lxr: '张善国7', lxdh: '136234577521' },
+            { siteid: '1000423', type: '分包', professional: '幕墙', unit: '中建二局', lxr: '张善国8', lxdh: '136234577522' },
+            { siteid: '1000423', type: '分包', professional: '精装', unit: '深圳艺涛', lxr: '张善国9', lxdh: '136234577523' },
+            { siteid: '1000423', type: '分包', professional: '采光顶', unit: '上海通用', lxr: '张善国10', lxdh: '136234577524' },
+            { siteid: '1000423', type: '分包', professional: '空调', unit: '武汉三重', lxr: '张善国11', lxdh: '136234577525' },
+            { siteid: '1000423', type: '总包', professional: '弱电', unit: '中建二局', lxr: '张善国12', lxdh: '136234577526' },
+            { siteid: '1000423', type: '分包', professional: '消防水', unit: '辽宁强盾', lxr: '张善国13', lxdh: '136234577527' }
         ]
         this.parseTableData(tableData)
     },