소스 검색

解决冲突

fujunwen 4 년 전
부모
커밋
e3ec546d8e
45개의 변경된 파일3936개의 추가작업 그리고 2115개의 파일을 삭제
  1. 5 5
      package.json
  2. 14 1
      src/api/equipmentList.js
  3. 16 18
      src/api/httputils.js
  4. 7 3
      src/api/room.js
  5. 4 3
      src/components/Legend/src/legend.vue
  6. 0 113
      src/components/edit.vue
  7. 19 21
      src/components/editLengend.vue
  8. 12 12
      src/components/floorListOther.vue
  9. 66 33
      src/components/floorMap/index.vue
  10. 3 6
      src/components/legendremarks.vue
  11. 0 98
      src/components/marksEnduit.vue
  12. 16 4
      src/components/menuList.vue
  13. 0 16
      src/components/viewLengend.vue
  14. 15 1
      src/router/index.js
  15. 13 1
      src/store/index.js
  16. 145 53
      src/utils/plugins/components.js
  17. 37 10
      src/views/equipment/eqDialog.vue
  18. 12 15
      src/views/equipment/fenbuPic.vue
  19. 1 2
      src/views/equipment/index.vue
  20. 20 24
      src/views/equipment/table/djspTable.vue
  21. 280 148
      src/views/equipment/table/eqDetaileDialog.vue
  22. 47 27
      src/views/equipment/table/eqListTable.vue
  23. 311 0
      src/views/equipment/table/equipDetail.vue
  24. 117 7
      src/views/equipment/table/inputDIalog.vue
  25. 31 36
      src/views/equipment/table/otherTable.vue
  26. 450 0
      src/views/equipment/table/rcwbTable.vue
  27. 553 0
      src/views/equipment/table/rcwxTable.vue
  28. 50 30
      src/views/equipment/table/standTable.vue
  29. 1 2
      src/views/equipment/table/tjTable.vue
  30. 45 36
      src/views/equipment/table/wbTable.vue
  31. 33 28
      src/views/equipment/table/wxTable.vue
  32. 14 26
      src/views/equipment/table/zwTable.vue
  33. 4 0
      src/views/floorFunc/index.vue
  34. 4 1
      src/views/legendLibrary/index.vue
  35. 7 4
      src/views/other/index.vue
  36. 0 5
      src/views/overview/index.vue
  37. 0 1
      src/views/overview/picModal.vue
  38. 0 0
      src/views/overview/viewRotation.vue
  39. 1 1
      src/views/room/detail.vue
  40. 1324 1153
      src/views/room/index.vue
  41. 1 0
      src/views/room/room2.vue
  42. 1 0
      src/views/room/room3.vue
  43. 232 148
      src/views/room/room4.vue
  44. 1 0
      src/views/room/room5.vue
  45. 24 23
      vue.config.js

+ 5 - 5
package.json

@@ -11,11 +11,11 @@
     },
     "dependencies": {
         "@mapbox/geojson-merge": "^1.1.1",
-        "@saga-web/base": "2.1.25",
-        "@saga-web/big": "1.0.107",
-        "@saga-web/draw": "2.1.106",
-        "@saga-web/feng-map": "1.0.38",
-        "@saga-web/graph": "2.1.123",
+        "@saga-web/base": "2.1.27",
+        "@saga-web/big": "1.0.112",
+        "@saga-web/draw": "2.1.107",
+        "@saga-web/feng-map": "1.0.45",
+        "@saga-web/graph": "2.1.125",
         "ant-design-vue": "^1.4.10",
         "axios": "^0.19.2",
         "core-js": "^3.4.4",

+ 14 - 1
src/api/equipmentList.js

@@ -9,6 +9,12 @@ export function queryEquipmentList({ data, postParams }) {
 export function queryAsset({ data, postParams }) {
     return httputils.fetchJson(`/data/sms_asset/query`, data, postParams)
 }
+
+// 设备设施-主要设备清单详情(不过滤设备类型)
+export function queryAssetAll({ data, postParams }) {
+    return httputils.fetchJson(`/data/sms_asset/queryByClassStructure`, data, postParams)
+}
+
 // 设备设施-主要材料清单
 export function queryMaterialList({ getParams }) {
     return httputils.getJson(`/data/sms_material/query`, getParams)
@@ -23,7 +29,14 @@ export function queryWbsms({ data, getParams }) {
 export function queryWx({ data, getParams }) {
     return httputils.getJson(`/data/sms_wx/query`, data, getParams)
 }
-
+// 设备设施-维修专业事项
+export function queryWxzy({ data, getParams }) {
+    return httputils.fetchJson(`/data/sms_wxzy/query`, data, getParams)
+}
+//设备设施-维修-查图片
+export function queryWxzyImg({ data, getParams }) {
+    return httputils.getJson(`/data/sms_wxzy/queryImg`, data, getParams)
+}
 // 设备设施-专维
 export function queryZw({ data, getParams }) {
     return httputils.getJson(`/data/sms_zw/query`, data, getParams)

+ 16 - 18
src/api/httputils.js

@@ -1,9 +1,7 @@
 import axios from 'axios'
 import store from '@/store'
 import router from '@/router'
-import {
-    MessageBox
-} from 'element-ui'
+import { MessageBox } from 'element-ui'
 
 var CancelToken = axios.CancelToken
 var cancel
@@ -24,8 +22,8 @@ axiosservice.interceptors.request.use(
     (config) => {
         config.withCredentials = true // 允许携带token ,这个是解决跨域产生的相关问题
         let isPreview = null
-        let token = store.getters['ssoToken'];
-        if (store.getters['isPreview'] == "null" || store.getters['isPreview'] == "" || store.getters['isPreview'] == null) {
+        let token = store.getters['ssoToken']
+        if (store.getters['isPreview'] == 'null' || store.getters['isPreview'] == '' || store.getters['isPreview'] == null) {
             isPreview = false
         } else {
             isPreview = store.getters['isPreview']
@@ -44,16 +42,16 @@ axiosservice.interceptors.request.use(
 )
 
 axiosservice.interceptors.response.use(
-    function (res) {
+    function(res) {
         //在这里对返回的数据进行处理
-        let resp = res.data;
+        let resp = res.data
         if (resp.result === 'unauthc') {
             store.commit('logined', false)
             MessageBox.confirm('未登陆或登陆信息已失效, 是否重新登陆?', '提示', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
-                    type: 'error',
-                })
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'error',
+            })
                 .then((resp) => {
                     window.location.reload()
                 })
@@ -63,14 +61,14 @@ axiosservice.interceptors.response.use(
         } else if (resp.error == 'Unauthorized') {
             MessageBox.alert('无权操作', {
                 title: '警告',
-                type: 'error'
+                type: 'error',
             })
         }
         return res
     },
-    function (err) {
+    function(err) {
         if (err.response.status == 401) {
-            store.commit('SETISREQUESTtAUTH', 'err');
+            store.commit('SETISREQUESTtAUTH', 'err')
             router.push({
                 path: '404',
             })
@@ -166,7 +164,7 @@ export default {
         // 响应类型:arraybuffer, blob
         axiosservice
             .post(url, requestData, {
-                responseType: 'blob'
+                responseType: 'blob',
             })
             .then((resp) => {
                 let headers = resp.headers
@@ -177,7 +175,7 @@ export default {
                 } else {
                     //console.log("下载文件:", resp)
                     const blob = new Blob([resp.data], {
-                        type: contentType
+                        type: contentType,
                     })
                     const contentDisposition = resp.headers['content-disposition']
                     let fileName = 'unknown'
@@ -187,7 +185,7 @@ export default {
                     downFile(blob, fileName)
                 }
             })
-            .catch(function (error) {})
+            .catch(function(error) {})
     },
     axios: axiosservice,
-}
+}

+ 7 - 3
src/api/room.js

@@ -38,9 +38,13 @@ export function queryWxjf({ getParams }) {
     return httputils.getJson(`/data/sms_wx/query`, getParams)
 }
 
-// 机房-维保记录
-export function queryWb({ data, postParams }) {
-    return httputils.fetchJson(`/data/sms_wbzy/query`, data, postParams)
+//机房-维保记录
+// export function queryWb2({ data, postParams }) {
+//     return httputils.fetchJson(`/data/sms_wbzy/query`, data, postParams)
+// }
+//设备设施-日常维保
+export function queryWb({ getParams }) {
+    return httputils.getJson(`/data/sms_wbzy/query`, getParams)
 }
 // 查询位置属于哪个系统
 export function querySystem({ getParams }) {

+ 4 - 3
src/components/Legend/src/legend.vue

@@ -28,6 +28,7 @@
                         v-if='editTable.length>0'
                         :loading='loading1'
                         ref='editLen'
+                        :floorInfo='type=="0"?floorInfo:""'
                         :editTable='editTable'
                         @saveNum='saveNum'
                         :tableHeigth='tableHeigth'
@@ -69,7 +70,7 @@
                 effect='dark'
                 content='新增分布图1'
                 placement='left'
-                v-if='floorSelect.length!=floors.length && type==0'
+                v-if='floorSelect2.length!=floors.length && type==0'
             >
                 <p class='tltk' style='margin-left: -5px;' @click='addFloor'>
                     <img src='@/assets/imgs/bjj.png' alt />
@@ -143,7 +144,7 @@ export default {
             'remarksText',
             'plazaId',
             'fmapID',
-            'floorSelect',
+            'floorSelect2',
             'isMessage',
             'ssoToken',
             'showView',
@@ -273,7 +274,7 @@ export default {
         },
         formatFloor() {
             this.floorSelectAble = []
-            this.floorSelectAble = this.floorSelect.filter((item) => {
+            this.floorSelectAble = this.floorSelect2.filter((item) => {
                 const hit = this.floors.find((i) => i.gname == item.id)
                 return !hit
             })

+ 0 - 113
src/components/edit.vue

@@ -1,113 +0,0 @@
-<!-- 楼层功能右下侧hove的时候出现编辑平面图-->
-<template>
-    <div class='edit_map'>
-        <el-tooltip class='item' effect='dark' content='编辑平面图' placement='left'>
-            <span class='edit-icon'>
-                <i class='el-icon-edit'></i>
-                <span v-if='len>0'></span>
-            </span>
-        </el-tooltip>
-        <div class='hover-div'>
-            <span class='icon1' @click='legendClik'>
-                <a-icon type='form' />
-            </span>
-            <el-tooltip class='item' effect='dark' content='编辑图例' placement='left'>
-                <span class='icon2' @click='dump'>
-                    <a-icon type='form' />
-                </span>
-            </el-tooltip>
-        </div>
-        <remarks ref='EditdMarks'></remarks>
-    </div>
-</template>
-<script>
-import Remarks from './legendremarks'
-export default {
-    data() {
-        return {
-            len: 2,
-            text: '1.主要设备房包括:制冷机房、生活水泵房、消防泵房2.图例后的数字,代表此位置的数量'
-        }
-    },
-    methods: {
-        dump() {},
-        legendClik() {
-            this.$refs.EditdMarks.showModal()
-        }
-    },
-    components: {
-        Remarks
-    },
-    mounted() {}
-}
-</script>
-<style lang="less" scoped>
-.edit_map {
-    position: fixed;
-    bottom: 28px;
-    right: 28px;
-    z-index: 2;
-    .edit-icon {
-        width: 48px;
-        height: 48px;
-        background: linear-gradient(180deg, rgba(54, 156, 247, 1) 0%, rgba(2, 91, 170, 1) 100%);
-        box-shadow: 0px 2px 8px 0px rgba(31, 36, 41, 0.2);
-        border-radius: 50%;
-        text-align: center;
-        line-height: 48px;
-        display: inline-block;
-        cursor: pointer;
-        position: relative;
-        i {
-            color: #ffffff;
-            font-size: 20px;
-        }
-        span {
-            position: absolute;
-            right: 4px;
-            top: 2px;
-            width: 10px;
-            height: 10px;
-            display: inline-block;
-            background: #f54a45;
-            border-radius: 50%;
-        }
-    }
-    .hover-div {
-        position: absolute;
-        bottom: 58px;
-        right: 28px;
-        .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;
-        }
-    }
-}
-</style>
-<style lang="less">
-</style>

+ 19 - 21
src/components/editLengend.vue

@@ -124,18 +124,18 @@
 import { updateStatis } from '@/api/public.js'
 import { mapGetters } from 'vuex'
 export default {
-    props: ['editTable', 'loading', 'tableHeigth'],
+    props: ['editTable', 'loading', 'tableHeigth', 'floorInfo'],
     data() {
         return {
             value: false,
             tbData1: [],
             tbData2: [],
             tbData3: [],
-            editNum: []
+            editNum: [],
         }
     },
     computed: {
-        ...mapGetters(['plazaId'])
+        ...mapGetters(['plazaId']),
     },
     methods: {
         handleSelectionChange(val) {
@@ -147,7 +147,7 @@ export default {
                 this.$confirm('图例中的数据发生变化, 是否需要保存?', {
                     confirmButtonText: '保存',
                     cancelButtonText: '放弃修改',
-                    type: 'warning'
+                    type: 'warning',
                 })
                     .then(() => {
                         this.$emit('saveNum', this.editNum)
@@ -155,7 +155,7 @@ export default {
                     .catch(() => {
                         this.$message({
                             type: 'info',
-                            message: '已放弃修改'
+                            message: '已放弃修改',
                         })
                         this.editNum = []
                         this.$emit('saveNum', this.editNum)
@@ -173,44 +173,44 @@ export default {
         queryEdit(val) {
             let arr = []
             if (val.length > 0) {
-                val.forEach(e => {
+                val.forEach((e) => {
                     let obj = {
                         BuildingId: '1',
                         Num: e.Num == '' ? null : Number(e.Num),
                         GraphElementId: e.GraphElementId,
-                        FloorId: this.$cookie.get('floorMapId'),
+                        FloorId: this.floorInfo.gname ? this.floorInfo.gname : this.$cookie.get('floorMapId'),
                         ProjectId: e.ProjectId,
-                        CategoryId: e.GraphCategoryId
+                        CategoryId: e.GraphCategoryId,
                     }
                     arr.push(obj)
                 })
             }
             let params = {
                 postParams: {
-                    Content: arr
-                }
+                    Content: arr,
+                },
             }
 
             updateStatis(params)
-                .then(res => {
+                .then((res) => {
                     if (res.Result == 'success') {
                         this.$message({
                             message: '操作成功',
-                            type: 'success'
+                            type: 'success',
                         })
                         this.$emit('changeSwitch', true)
                         this.$store.commit('SETSHOWVIEW', 1)
                     } else {
                         this.$message({
                             message: '操作失败',
-                            type: 'error'
+                            type: 'error',
                         })
                     }
                 })
-                .catch(err => {
+                .catch((err) => {
                     this.$message({
                         message: err,
-                        type: 'error'
+                        type: 'error',
                     })
                 })
         },
@@ -230,7 +230,7 @@ export default {
         // 修改隐藏为0的项目的开关
         changeSwitch(val) {
             this.$emit('handleSwich2', val)
-        }
+        },
         // init() {
         // this.tbData1 = []
         // this.tbData2 = []
@@ -256,7 +256,6 @@ export default {
         // }
         // },
     },
-    mounted() {},
     watch: {
         editTable: {
             handler() {
@@ -264,7 +263,6 @@ export default {
                     let tabHeight = document.getElementById('lenged_tab').offsetHeight
                     let dom = document.getElementsByClassName('legend-tab2')[0]
                     let dom2 = document.getElementsByClassName('legend-table2')[0]
-                    console.log('tabHeight', tabHeight)
                     if (!dom) {
                         return
                     }
@@ -273,9 +271,9 @@ export default {
                 })
             },
             deep: true,
-            immediate: true
-        }
-    }
+            immediate: true,
+        },
+    },
 }
 </script>
 <style lang="less" scoped>

+ 12 - 12
src/components/floorListOther.vue

@@ -55,20 +55,20 @@ export default {
             floor: {
                 code: 'F1',
                 gcode: '1F',
-                gname: 'f1',
+                gcname: 'f1',
                 name: '第1层',
-                seq: 100
+                seq: 100,
             },
             currentFloorId: null,
             marginTop: 0,
             startTime: '',
-            endTime: ''
+            endTime: '',
         }
     },
     props: {
         floorsArr: {
-            type: Array
-        }
+            type: Array,
+        },
     },
     mounted() {
         this.init()
@@ -88,7 +88,7 @@ export default {
                 return false
             }
             this.floorIdArr = []
-            this.floorsArr.map(item => {
+            this.floorsArr.map((item) => {
                 this.floorIdArr.push(item.seq)
             })
             this.currentFloorId = this.floorsArr[0].seq
@@ -101,7 +101,7 @@ export default {
          */
         changeFloor(flag) {
             const len = this.floorIdArr.length
-            let index = this.floorIdArr.findIndex(item => item === this.currentFloorId)
+            let index = this.floorIdArr.findIndex((item) => item === this.currentFloorId)
             // 点击上箭头
             if (flag === 1) {
                 index--
@@ -152,12 +152,12 @@ export default {
          */
         handleCookie() {
             // return true
-            let currentFloor = this.floorsArr.filter(item => item.seq == this.currentFloorId)[0]
+            let currentFloor = this.floorsArr.filter((item) => item.seq == this.currentFloorId)[0]
             // this.$cookie.set('floorNow', currentFloor.code, 3)
-            // this.$cookie.set('floorMapId', currentFloor.gname, 3)
+            // this.$cookie.set('floorMapId', currentFloor.gcname, 3)
             // this.$cookie.set('currentFloorId', currentFloor.seq, 3)
             // this.floorId = this.$cookie.get('floorNow') || currentFloor.code
-            // this.floorMapIdName = this.$cookie.get('floorMapId') || currentFloor.gname
+            // this.floorMapIdName = this.$cookie.get('floorMapId') || currentFloor.gcname
             this.$emit('emitFloor', currentFloor)
         },
         /**
@@ -197,8 +197,8 @@ export default {
                 // 前 showNumber 条的margin-top设置为0
                 this.marginTop = 0
             }
-        }
-    }
+        },
+    },
 }
 </script>
 <style lang="less" scoped>

+ 66 - 33
src/components/floorMap/index.vue

@@ -8,6 +8,7 @@
             <canvasFun @fit='fit' @savePng='savePng' @saveSvg='saveSvg' @saveJson='saveJson' @scale='scale' @showText='showText' ref='canvasFun'></canvasFun>
         </div>
         <room-box ref='boxRoom'></room-box>
+        <equip-detail ref='equipDetail'></equip-detail>
         <el-popover ref='popover' placement='right' trigger='manual' v-model='visible' width='380'>
             <!-- <div style="text-align: right;margin-bottom: 10px;">
                 <span style="float: left;">对应的工程信息化信息</span>
@@ -16,10 +17,10 @@
 
             <div v-if='equipIds.length && !tabData.pointData.length' style='margin-top: 10px;'>
                 <el-table :data='tabData.tableData' max-height='235' style='width: 100%' @row-click='handleClickEquipDetail' v-loading='eqLoading'>
-                    <el-table-column prop='sbjc' label='设备简称' width='164' :show-overflow-tooltip='true'></el-table-column>
+                    <el-table-column prop='sbjc' label='设备简称' width='144' :show-overflow-tooltip='true'></el-table-column>
                     <el-table-column prop='sl' width='50' label='数量' :show-overflow-tooltip='true'></el-table-column>
-                    <el-table-column prop='sb_status' width='70' label='设备状态' :show-overflow-tooltip='true'></el-table-column>
-                    <el-table-column prop='sbglgs' width='70' label='管理归属' :show-overflow-tooltip='true'></el-table-column>
+                    <el-table-column prop='sb_status' width='80' label='设备状态' :show-overflow-tooltip='true'></el-table-column>
+                    <el-table-column prop='sbglgs' width='80' label='管理归属' :show-overflow-tooltip='true'></el-table-column>
                     <!-- <el-table-column prop="assetnum" width="80" label="设备内码" :show-overflow-tooltip='true'></el-table-column>
                     <el-table-column label="" width="80" :show-overflow-tooltip='true'>
                         <template slot-scope="scope">
@@ -88,13 +89,13 @@
 </template>
 <script>
 import { SFengParser, ProjectRf } from '@saga-web/feng-map'
-import { SFloorParser, ItemOrder, ItemColor, SPolygonItem } from '@saga-web/big'
+import { SFloorParser, ItemOrder, ItemColor, SPolygonItem, SBoardItem } from '@saga-web/big'
 import { FloorView } from '@/lib/FloorView'
 import { FloorScene } from '@/lib/FloorScene'
 import RoomBox from '@/views/room/index'
 import canvasFun from '@/components/floorMap/canvasFun'
 import { readGroup, queryStatis } from '@/api/public'
-import { queryShops, queryAsset } from '@/api/equipmentList.js'
+import { queryShops, queryAssetAll } from '@/api/equipmentList.js'
 import { STopologyParser } from '@/lib/parsers/STopologyParser'
 import { mapGetters, mapActions } from 'vuex'
 import { SImageItem, SImageShowType, SGraphItem } from '@saga-web/graph/lib'
@@ -102,6 +103,7 @@ import { SColor } from '@saga-web/draw/lib'
 import bus from '@/utils/bus.js'
 import { TipelineItem } from '../../lib/items/TipelineItem'
 import { SImageLegendItem } from '../../lib/items/SImageLegendItem'
+import equipDetail from '../../views/equipment/table/equipDetail'
 
 // import { uuid } from "@/components/mapClass/until";
 
@@ -155,7 +157,7 @@ export default {
         loadName: null,
         type: null,
     },
-    components: { RoomBox, canvasFun },
+    components: { RoomBox, canvasFun, equipDetail },
     computed: {
         ...mapGetters(['plazaId', 'fmapID', 'haveFengMap', 'bunkObj']),
     },
@@ -190,7 +192,7 @@ export default {
                     let postParams = {
                         assetnumList: this.equipIds,
                     }
-                    queryAsset({ data, postParams }).then((res) => {
+                    queryAssetAll({ data, postParams }).then((res) => {
                         this.tabData.tableData = res.data.data
                         this.eqLoading = false
                     })
@@ -213,10 +215,15 @@ export default {
         },
         // 查看浮层设备详情
         handleClickEquipDetail(row) {
-            if (row.assetuid) {
-                window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=assetdevic&uniqueid=${row.assetuid}`)
+            if (row.assetnum) {
+                this.$refs.equipDetail.open({ row: JSON.stringify(row) })
             }
         },
+        // handleClickEquipDetail(row) {
+        //     if (row.assetuid) {
+        //         window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=assetdevic&uniqueid=${row.assetuid}`)
+        //     }
+        // },
         // 查看浮层位置详情
         handleClickPointDeatil(point) {
             if (point.id && this.activeItem) this.$refs.boxRoom.open({ name: this.activeItem.name, type: this.type, location: point.id })
@@ -300,29 +307,26 @@ export default {
                         })
                         this.scene.addItem(imgItem)
                         this.view.scene = this.scene
-                    // this.view.fitSceneToView()
+                        // this.view.fitSceneToView()
                     } else {
-                      // 多张图
-                      try {
-                        // 初始化0
-                        this.count = 0;
-                        ProjectRf[pj].forEach(t => {
-                          const item = new SImageItem(
-                            null,
-                            `${this.mapServerURL}/webtheme/${this.fmapID}/${t.name}`
-                          );
-                          item.width = t.width
-                          item.height = t.height
-                          item.moveTo(t.x, t.y)
-                          item.connect("imgLoadOver", this, () => {
-                            this.countRf(ProjectRf[pj].length);
-                          });
-                          this.scene.addItem(item);
-                        })
-                        this.view.scene = this.scene;
-                      } catch(e) {
-                        console.log(e);
-                      }
+                        // 多张图
+                        try {
+                            // 初始化0
+                            this.count = 0
+                            ProjectRf[pj].forEach((t) => {
+                                const item = new SImageItem(null, `${this.mapServerURL}/webtheme/${this.fmapID}/${t.name}`)
+                                item.width = t.width
+                                item.height = t.height
+                                item.moveTo(t.x, t.y)
+                                item.connect('imgLoadOver', this, () => {
+                                    this.countRf(ProjectRf[pj].length)
+                                })
+                                this.scene.addItem(item)
+                            })
+                            this.view.scene = this.scene
+                        } catch (e) {
+                            console.log(e)
+                        }
                     }
                 } else {
                     // 屋顶图不为图片
@@ -336,7 +340,15 @@ export default {
                 }
             }
         }, // 解析底图
+        // 解析楼地板
+        loadBoard(floor) {
+            window.fengmapData.loadFloor(floor, (res) => {
+                const zone = new SBoardItem(null, res)
+                this.scene.addItem(zone)
+            })
+        },
         readBaseMap(floor) {
+            this.loadBoard(window.fengmapData.gnameToGid[floor])
             window.fengmapData.parseData(window.fengmapData.gnameToGid[floor], (res) => {
                 if (res.err) {
                     console.log('errr', res.err)
@@ -484,9 +496,9 @@ export default {
         countRf(len) {
             this.count++
             if (len == this.count) {
-                this.readGraph();
+                this.readGraph()
             } else {
-                console.log('所有图片未加载完成');
+                console.log('所有图片未加载完成')
             }
         },
         clearGraphy() {
@@ -678,6 +690,22 @@ export default {
                     })
             })
         },
+        /**
+         * @description 处理popover显隐
+         * 当点击位置不在canvas内部时 ( 如点击 页面空白,图例,楼层,设备设施左侧列表项时),将popover的display置为none,
+         * 当点击位置在canvas内部时,将popover的display设置为'block'
+         */
+        handlePopover(e) {
+            if (this.$refs.graphy.contains(e.target)) {
+                if (this.$refs.popover && this.$refs.popover.popperElm) {
+                    this.$refs.popover.popperElm.style.display = 'block'
+                }
+            } else {
+                if (this.$refs.popover && this.$refs.popover.popperElm) {
+                    this.$refs.popover.popperElm.style.display = 'none'
+                }
+            }
+        },
     },
     watch: {
         'view.scale': {
@@ -695,6 +723,11 @@ export default {
     mounted() {
         this.mapSize()
         this.getEvent()
+        // 添加监听点击事件,处理popover显隐
+        window.addEventListener('click', this.handlePopover, false)
+        this.$once('hook:beforeDestroy', () => {
+            window.removeEventListener('click', this.handlePopover)
+        })
     },
     created() {
         // document.addEventListener("mousedown", () => {

+ 3 - 6
src/components/legendremarks.vue

@@ -5,7 +5,7 @@
 */
 <template>
     <div class='editModel' v-if='visible'>
-        <a-modal v-model='visible' :title='title' :closable='false' :maskClosable='false' :width='648' :footer='null'>
+        <el-dialog append-to-body :visible.sync='visible' :title='title' :width='width' :showClose='false'>
             <div class='edit-x' @click='handlCancel'>X</div>
             <div class='edit_container' style='width:600px;height:156px'>
                 <quill-editor
@@ -22,7 +22,7 @@
                 <span @click='handlCancel'>取消</span>
                 <span @click='handleOk'>保存</span>
             </div>
-        </a-modal>
+        </el-dialog>
     </div>
 </template>
 <script>
@@ -34,6 +34,7 @@ export default {
     name: 'EditdMarks',
     data() {
         return {
+            width: '648px',
             valLen: 0, //输入字数限制
             remarksTexts: '', //展示的备注
             text1: '主要设备房包括:冷源机房,热源机房,开闭站,配变电所(室),发电机房,消防水泵房,消防高位水箱间,生活水泵房,慧云机房,垃圾房',
@@ -77,12 +78,8 @@ export default {
         },
         // val为传过来的备注
         showModal() {
-            // this.$emit('queryMarks')
-            // this.$emit('')
-            // return
             this.query()
             this.visible = true
-            // this.remarksTexts = this.remarksText
         },
         query() {
             if (this.remarksText) {

+ 0 - 98
src/components/marksEnduit.vue

@@ -1,98 +0,0 @@
-<template>
-    <div class='editor'>
-        <div ref='toolbar' class='toolbar'></div>
-        <div ref='editor' class='text'></div>
-        <span class='limitNum'>
-            <span>{{num}}</span>/200
-        </span>
-    </div>
-</template>
-
-<script>
-import E from 'wangeditor'
-export default {
-    name: 'editoritem',
-    data() {
-        return {
-            editor: null,
-            info_: null,
-            spanInfo: 0,
-            num: ''
-        }
-    },
-    model: {
-        prop: 'value',
-        event: 'change'
-    },
-    props: {
-        value: {
-            type: String,
-            default: ''
-        },
-        isClear: {
-            type: Boolean,
-            default: false
-        }
-    },
-    watch: {
-        isClear(val) {
-            if (val) {
-                this.editor.txt.clear()
-                this.info_ = null
-            }
-        },
-        value: function(value, e) {
-            if (value !== this.editor.txt.html()) {
-                this.editor.txt.html(this.value)
-            }
-        }
-    },
-    mounted() {
-        this.seteditor()
-        this.editor.txt.html(this.value)
-        this.num = this.value.replace(/<[^>]+>/g, '').length
-    },
-    methods: {
-        seteditor() {
-            this.editor = new E(this.$refs.toolbar, this.$refs.editor)
-            this.editor.customConfig.menus = ['bold', 'italic', 'foreColor']
-            this.editor.customConfig.onchangeTimeout = 100
-            this.editor.customConfig.onchange = html => {
-                this.info_ = html
-                this.num = this.info_.replace(/<[^>]+>/g, '').length
-                this.$emit('change', this.info_)
-            }
-            this.editor.customConfig.onfocus = html => {
-                this.info_ = html
-                this.$emit('change', this.info_)
-            }
-            this.editor.customConfig.onblur = html => {
-                this.info_ = html
-                this.$emit('change', this.info_)
-            }
-            this.editor.create()
-        }
-    }
-}
-</script>
-
-<style lang="less" scoped>
-.editor {
-    width: 100%;
-    height: 300px;
-    .toolbar {
-        border: 1px solid #ccc;
-    }
-    .text {
-        border: 1px solid #ccc;
-        height: 292px;
-    }
-    .limitNum {
-        display: flex;
-        justify-content: flex-end;
-        align-items: center;
-        margin-right: 12px;
-        margin-top: -25px;
-    }
-}
-</style>

+ 16 - 4
src/components/menuList.vue

@@ -13,7 +13,7 @@
             <div
                 v-for='(item, index) in list'
                 :key='index'
-                :class='{ "is-active": item.state }'
+                :class='{ "is-active": item.state,"hide-home-page":item.hideHomePage }'
                 @click='clickEventAcitve(item, index)'
             >{{ item.name }}</div>
         </div>
@@ -48,7 +48,9 @@ export default {
         return {
             state: '',
             list: [
-                { name: '', state: false, route: 'homepage' },
+                // { name: '', state: false, route: 'homepage' }, 
+                //TODO: 显示首页 liujiandong用户路由跳转处理
+                { name: '首页', state: false, route: 'homepage' },  
                 { name: '项目概况', state: false, route: 'overview' },
                 { name: '楼层功能', state: false, route: 'floorFunc' }, //楼层功能
                 { name: '设备设施', state: false, route: 'equipment' }, //设备设施
@@ -79,6 +81,11 @@ export default {
         $route: 'handleRoute'
     },
     created() {
+        console.log('menulist created,',this.$store.state.userInfo)
+        // 非liujiandong用户,隐藏首页入口
+        if(this.$store.state.userInfo.username !== 'liujiandong'){
+            this.$set(this.list,0,{ name: '', state: false, route: 'homepage', hideHomePage: true })
+        }
         this.currentTime()
     },
     mounted() {
@@ -256,9 +263,14 @@ export default {
             margin: 0 8px;
             cursor: pointer;
             transition: all 0.2s;
-            &:first-child {
+            // TODO: 取消隐藏 首页菜单,
+            /* &:first-child {
                 display: none;
-            }
+            } */
+        }
+        // 改为动态根据 : 用户不是liujiandong时,隐藏首页
+        .hide-home-page{
+            display: none;
         }
 
         .is-active {

+ 0 - 16
src/components/viewLengend.vue

@@ -108,26 +108,10 @@ export default {
     },
     computed: {
         ...mapGetters(['scpzTable', 'legendTable', 'remarksText']),
-        // tableHeight() {
-        //     if (window.screen.height > 1000) {
-        //         return 500
-        //     } else {
-        //         return 334
-        //     }
-        // },
-        // initText() {
-        // if (this.defaultComment) {
-        //     return this.defaultComment
-        // } else {
-        //     return this.remarksText
-        // }
-        // }
     },
-    mounted() {},
     updated() {
         this.setSelected()
     },
-    created() {},
 }
 </script>
 <style lang="less" scoped>

+ 15 - 1
src/router/index.js

@@ -1,6 +1,12 @@
 import Vue from "vue"
 import store from "@/store"
 import VueRouter from "vue-router"
+// 解决Vue-Router升级导致的Uncaught(in promise) navigation guard问题
+const originalPush = VueRouter.prototype.push
+VueRouter.prototype.push = function push (location, onResolve, onReject) {
+  if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
+  return originalPush.call(this, location).catch(err => err)
+}
 import {
     query
 } from "@/utils/query"
@@ -33,7 +39,15 @@ const routes = [
                 path: "homepage",
                 name: "项目首页",
                 component: () => import("../views/homepage"),
-                redirect: "/home/overview",
+                // TODO: 注释重定向到预览页面,liujiandong用户 路由跳转处理
+                // redirect: "/home/overview", 
+                beforeEnter (to,from,next){
+                    if (store.state.userInfo.username !== 'liujiandong') {
+                        next('/home/overview')
+                    } else {
+                        next()
+                    }
+                }
             },
             //概览
             {

+ 13 - 1
src/store/index.js

@@ -11,7 +11,7 @@ export default new Vuex.Store({
         ssoToken: 'admin:liujiandong',
         // ssoToken: '',
         // ssoToken: null,
-        plazaName: '',
+        plazaName: "",
         isPreview: false,
         lastRoute: '',
         isrequestAuth: null, // 是否请求登录校验接口
@@ -26,6 +26,7 @@ export default new Vuex.Store({
         projectName: '', //全局项目名称
         floorsArr: [], //楼层数组
         floorSelect: [], //楼层下拉框
+        floorSelect2: [], //分布图楼层下拉框
         fmapID: '',
         haveFengMap: -1, //是否有蜂鸟地图的数据 -1为等待 0 为失败 1 为成功
         isMessage: true, //是否有发布的图
@@ -51,6 +52,7 @@ export default new Vuex.Store({
         lastRoute: (state) => state.lastRoute,
         floorsArr: (state) => state.floorsArr,
         floorSelect: (state) => state.floorSelect,
+        floorSelect2: (state) => state.floorSelect2,
         plazaId: (state) => state.plazaId,
         plazas: (state) => state.plazas,
         fmapID: (state) => state.fmapID,
@@ -95,6 +97,10 @@ export default new Vuex.Store({
             // state.userInfo.employeename = palyload.employeename
             // state.userInfo.orgCode = palyload.orgCode
             // state.userInfo.username = palyload.username
+            // TODO: 设置用户名
+            if (palyload.username){
+                state.userInfo.username = palyload.username
+            }
         },
         SETISMESSAGE(state, data) {
             state.isMessage = data
@@ -102,15 +108,21 @@ export default new Vuex.Store({
         SETFLOORS(state, data) {
             let numArr = []
             state.floorSelect = []
+            state.floorSelect2 = []
             state.floorsArr = data
             if (data.length > 0) {
                 data.forEach((e) => {
                     let obj = {
+                        id: e.gcname,
+                        name: e.code,
+                    }
+                    let obj2 = {
                         id: e.gname,
                         name: e.code,
                     }
                     // 下拉框的楼层数组
                     state.floorSelect.push(obj)
+                    state.floorSelect2.push(obj2)
                     // 获取默认展示楼层
                     if (e.seq > 0) {
                         numArr.push(e.seq)

+ 145 - 53
src/utils/plugins/components.js

@@ -14,7 +14,7 @@ var system = [
                     param: { tab_code: "1592", type_code: "2010" },
                 },
                 {
-                    label: "变配电室内部设备清单",
+                    label: "主要设备清单",
                     children: [],
                     id: "GDQD",
                     param: { tab_code: "gd01" },
@@ -26,35 +26,45 @@ var system = [
                     param: { tab_code: "1592" },
                 },
                 {
-                    label: "维保事项",
+                    label: "主要设备维保事项",
                     id: "GDWB",
                     children: [
                         {
-                            label: "配电室内",
+                            label: "配电室内重要维保",
                             id: "GDWB1",
                             param: { tab_code: "1592", diff: "in" },
                         },
                         {
-                            label: "配电室外",
+                            label: "配电室外重要维保",
                             id: "GDWB2",
                             param: { tab_code: "1593", diff: "out" },
                         },
+                        {
+                            label: "日常维保事项",
+                            id: "RB",
+                            param: { tab_code: "rb", diff: "ourct2" },
+                        },
                     ],
                 },
                 {
-                    label: "维修事项",
+                    label: "主要设备维修事项",
                     id: "GDWX",
                     children: [
                         {
-                            label: "配电室内",
+                            label: "配电室内重要维修",
                             id: "GDWX1",
                             param: { tab_code: "1592", diff: "in" },
                         },
                         {
-                            label: "配电室外",
+                            label: "配电室外重要维修",
                             id: "GDWX2",
                             param: { tab_code: "1593", diff: "out" },
                         },
+                        {
+                            label: "日常维修事项",
+                            id: "RX",
+                            param: { tab_code: "rx", diff: "rc" },
+                        },
                     ],
                 },
                 {
@@ -132,34 +142,44 @@ var system = [
                     id: "NTQD",
                 },
                 {
-                    label: "维保事项",
+                    label: "主要设备维保事项",
                     children: [
                         {
-                            label: "冷源机房内",
+                            label: "冷源机房内重要维保",
                             id: "NTWB1",
                             param: { tab_code: "1592", diff: "in" },
                         },
                         {
-                            label: "冷源机房外",
+                            label: "冷源机房外重要维保",
                             id: "NTWB2",
                             param: { tab_code: "1593", diff: "out" },
                         },
+                        {
+                            label: "日常维保事项",
+                            id: "RB",
+                            param: { tab_code: "rb", diff: "rb" },
+                        },
                     ],
                     id: "NTWB",
                 },
                 {
-                    label: "维修事项",
+                    label: "主要设备维修事项",
                     children: [
                         {
-                            label: "冷源机房内",
+                            label: "冷源机房内重要维修",
                             id: "NTWX1",
                             param: { tab_code: "1592", diff: "in" },
                         },
                         {
-                            label: "冷源机房外",
+                            label: "冷源机房外重要维修",
                             id: "NTWX2",
                             param: { tab_code: "1593", diff: "out" },
                         },
+                        {
+                            label: "日常维修事项",
+                            id: "RX",
+                            param: { tab_code: "rx", diff: "rx" },
+                        },
                     ],
                     id: "NTWX",
                 },
@@ -233,35 +253,45 @@ var system = [
                     param: { tab_code: "xf01" },
                 },
                 {
-                    label: "维保事项",
+                    label: "主要设备维保事项",
                     id: "XFWB",
                     children: [
                         {
-                            label: "中控室/消防泵房内",
+                            label: "中控室/消防泵房内重要维保",
                             id: "XFWB1",
                             param: { tab_code: "1573", diff: "in" },
                         },
                         {
-                            label: "中控室/消防泵房外",
+                            label: "中控室/消防泵房外重要维保",
                             id: "XFWB2",
                             param: { tab_code: "1572", diff: "out" },
                         },
+                        {
+                            label: "日常维保事项",
+                            id: "RB",
+                            param: { tab_code: "rb", diff: "rb" },
+                        },
                     ],
                 },
                 {
-                    label: "维修事项",
+                    label: "主要设备维修事项",
                     id: "XFWX",
                     children: [
                         {
-                            label: "中控室/消防泵房内",
+                            label: "中控室/消防泵房内重要维修",
                             id: "XFWX1",
                             param: { tab_code: "1573", diff: "in" },
                         },
                         {
-                            label: "中控室/消防泵房外",
+                            label: "中控室/消防泵房外重要维修",
                             id: "XFWX2",
                             param: { tab_code: "1572", diff: "out" },
                         },
+                        {
+                            label: "日常维修事项",
+                            id: "RX",
+                            param: { tab_code: "rx", diff: "rx" },
+                        },
                     ],
                 },
                 {
@@ -339,35 +369,45 @@ var system = [
                     ],
                 },
                 {
-                    label: "维保事项",
+                    label: "主要设备维保事项",
                     id: "RDWB",
                     children: [
                         {
-                            label: "慧云机房内",
+                            label: "慧云机房内重要维保",
                             id: "RDWB1",
                             param: { tab_code: "1592", diff: "in" },
                         },
                         {
-                            label: "慧云机房外",
+                            label: "慧云机房外重要维保",
                             id: "RDWB2",
                             param: { tab_code: "1593", diff: "out" },
                         },
+                        {
+                            label: "日常维保事项",
+                            id: "RB",
+                            param: { tab_code: "rb", diff: "rb" },
+                        },
                     ],
                 },
                 {
-                    label: "维修事项",
+                    label: "主要设备维修事项",
                     id: "RDWX",
                     children: [
                         {
-                            label: "慧云机房内",
+                            label: "慧云机房内重要维修",
                             id: "RDWX1",
                             param: { tab_code: "1592", diff: "in" },
                         },
                         {
-                            label: "慧云机房外",
+                            label: "慧云机房外重要维修",
                             id: "RDWX2",
                             param: { tab_code: "1593", diff: "out" },
                         },
+                        {
+                            label: "日常维修事项",
+                            id: "RX",
+                            param: { tab_code: "rx", diff: "rx" },
+                        },
                     ],
                 },
                 {
@@ -425,35 +465,45 @@ var system = [
                     param: { tab_code: "gps01" },
                 },
                 {
-                    label: "维保事项",
+                    label: "主要设备维保事项",
                     id: "GSWB",
                     children: [
                         {
-                            label: "给水系统",
+                            label: "给水系统重要维保",
                             id: "GSWB1",
                             param: { tab_code: "gps01", diff: "gs" },
                         },
                         {
-                            label: "排水系统",
+                            label: "排水系统重要维保",
                             id: "GSWB2",
                             param: { tab_code: "gps02", diff: "ps" },
                         },
+                        {
+                            label: "日常维保事项",
+                            id: "RB",
+                            param: { tab_code: "rb", diff: "rb" },
+                        },
                     ],
                 },
                 {
-                    label: "维修事项",
+                    label: "主要设备维修事项",
                     id: "GSWX",
                     children: [
                         {
-                            label: "给水系统",
+                            label: "给水系统重要维修",
                             id: "GSWX1",
                             param: { tab_code: "1592", diff: "gs" },
                         },
                         {
-                            label: "排水系统",
+                            label: "排水系统重要维修",
                             id: "GSWX2",
                             param: { tab_code: "1593", diff: "ps" },
                         },
+                        {
+                            label: "日常维修事项",
+                            id: "RX",
+                            param: { tab_code: "rx", diff: "rx" },
+                        },
                     ],
                 },
                 {
@@ -516,18 +566,34 @@ var system = [
                     param: { tab_code: "dt01" },
                 },
                 {
-                    label: "维修及维保事项",
-                    id: "DTWX",
+                    label: "主要设备维保事项",
+                    id: "DTWB",
                     children: [
                         {
-                            label: "维保事项",
+                            label: "重要维保事项",
                             id: "DTWB1",
                             param: { tab_code: "dt01" },
                         },
                         {
-                            label: "维修事项",
-                            id: "DTWX2",
-                            param: { tab_code: "dt02" },
+                            label: "日常维保事项",
+                            id: "RB",
+                            param: { tab_code: "rb" },
+                        },
+                    ],
+                },
+                {
+                    label: "主要设备维修事项",
+                    id: "DTWX",
+                    children: [
+                        {
+                            label: "重要维修事项",
+                            id: "DTWX1",
+                            param: { tab_code: "dt01" },
+                        },
+                        {
+                            label: "日常维修事项",
+                            id: "RX",
+                            param: { tab_code: "rx" },
                         },
                     ],
                 },
@@ -576,18 +642,34 @@ var system = [
                     param: { tab_code: "rq01" },
                 },
                 {
-                    label: "维修及维保事项",
-                    id: "RQWX",
+                    label: "主要设备维保事项",
+                    id: "RQWB",
                     children: [
                         {
-                            label: "维保事项",
+                            label: "重要维保事项",
                             id: "RQWB1",
                             param: { tab_code: "1592" },
                         },
                         {
-                            label: "维修事项",
-                            id: "RQWX2",
-                            param: { tab_code: "1593" },
+                            label: "日常维保事项",
+                            id: "RB",
+                            param: { tab_code: "rb" },
+                        },
+                    ],
+                },
+                {
+                    label: "主要设备维修事项",
+                    id: "RQWX",
+                    children: [
+                        {
+                            label: "重要维修事项",
+                            id: "RQWX1",
+                            param: { tab_code: "1592" },
+                        },
+                        {
+                            label: "日常维修事项",
+                            id: "RX",
+                            param: { tab_code: "rx" },
                         },
                     ],
                 },
@@ -650,24 +732,34 @@ var system = [
                     ],
                 },
                 {
-                    label: "主要材料清单",
-                    id: "TJQD",
-                    children: [],
-                    param: { tab_code: "tj01" },
+                    label: "维保事项",
+                    id: "TJWB",
+                    children: [
+                        {
+                            label: "重要维保事项",
+                            id: "TJWB1",
+                            param: { tab_code: "1592" },
+                        },
+                        {
+                            label: "日常维保事项",
+                            id: "RB",
+                            param: { tab_code: "rb" },
+                        },
+                    ],
                 },
                 {
-                    label: "维修及维保事项",
+                    label: "维修事项",
                     id: "TJWX",
                     children: [
                         {
-                            label: "维保事项",
-                            id: "TJWB1",
+                            label: "重要维修事项",
+                            id: "TJWX1",
                             param: { tab_code: "1592" },
                         },
                         {
-                            label: "维修事项",
-                            id: "TJWX2",
-                            param: { tab_code: "1593" },
+                            label: "日常维修事项",
+                            id: "RX",
+                            param: { tab_code: "rx" },
                         },
                     ],
                 },

+ 37 - 10
src/views/equipment/eqDialog.vue

@@ -22,12 +22,14 @@
                     <rotation type='3' v-if='rotationImg.length>0' :size='sizePic' :rotationImg='rotationImg'></rotation>
                 </div>
                 <!-- 土建装饰主要材料清单 -->
-                <tj-table v-else-if='dialogInfo.id.slice(0,4)=="TJQD"' :param='param'></tj-table>
+                <!-- <tj-table v-else-if='dialogInfo.id.slice(0,4)=="TJQD"' :param='param'></tj-table> -->
                 <!-- 主要设备清单 标准设备表格 -->
                 <!-- 内部设备清单 -->
                 <standTable
                     v-else-if='dialogInfo.id.slice(2,4)=="QD"'
                     :param='param'
+                    :smsxt='smsxt'
+                    :diff='diff'
                     :major='dialogInfo.id'
                     :InfoName='`${systemName}-${dialogInfo.label}`'
                 ></standTable>
@@ -51,6 +53,8 @@
                             v-if='value.id.slice(0,4)=="RDQD"'
                             :InfoName='`${systemName}-${dialogInfo.label}`'
                             :param='param'
+                            :smsxt='smsxt'
+                            :diff='diff'
                             ref='list1'
                             major='弱电'
                         ></tableList>
@@ -58,13 +62,19 @@
                             v-else-if='value.id.slice(0,4)=="NTQD"'
                             :InfoName='`${systemName}-${dialogInfo.label}`'
                             :param='param'
+                            :smsxt='smsxt'
+                            :diff='diff'
                             ref='list2'
                             major='暖通'
                         ></tableList>
-                        <!-- 维保表格 -->
-                        <wb-table v-else-if='value.id.slice(2,4)=="WB"' :smsxt='smsxt' :tabLabel='tabLabel' :diff='diff' :major='dialogInfo.id'></wb-table>
-                        <!-- 维修的表格 -->
-                        <wx-table v-else-if='value.id.slice(2,4)=="WX"' :smsxt='smsxt' :tabLabel='tabLabel' :diff='diff' :major='dialogInfo.id'></wx-table>
+                        <!-- 重要维保表格 -->
+                        <wb-table v-else-if='value.id.slice(2,4)=="WB"' :smsxt='smsxt' :tabLabel='tabLabel' :assetnum='""' :diff='diff' :size='10'></wb-table>
+                        <!-- 日常维保表格 -->
+                        <rcwb-table v-else-if='value.id=="RB"' :smsxt='smsxt' :tabLabel='tabLabel' :diff='diff' :assetnum='""' :size='10'></rcwb-table>
+                        <!-- 重要维修的表格 -->
+                        <wx-table v-else-if='value.id.slice(2,4)=="WX"' :smsxt='smsxt' :tabLabel='tabLabel' :assetnum='""' :diff='diff' :size='10'></wx-table>
+                        <!-- 日常维修的表格 -->
+                        <rcwx-table v-else-if='value.id=="RX"' :smsxt='smsxt' :tabLabel='tabLabel' :diff='diff' :assetnum='""' :size='10'></rcwx-table>
                         <!-- 专维 -->
                         <zw-table v-else-if='value.id.slice(2,4)=="ZW"' :smsxt='smsxt' :tabLabel='tabLabel' :diff='difference' :major='dialogInfo.id'></zw-table>
                         <!-- 其他 -->
@@ -108,11 +118,13 @@
 import tableList from './table/eqListTable'
 import tjTable from './table/tjTable'
 import wbTable from './table/wbTable'
+import rcwbTable from './table/rcwbTable'
 import zwTable from './table/zwTable'
 import lookPage from './table/lookPageTable'
 import standTable from './table/standTable'
 import otherTable from './table/otherTable'
 import wxTable from './table/wxTable'
+import rcwxTable from './table/rcwxTable'
 import recordDialog from './table/recordDialog'
 import djspTable from './table/djspTable'
 import { queryPic, queryTab } from '@/api/public.js'
@@ -137,7 +149,21 @@ export default {
         }
     },
     mounted() {},
-    components: { tableList, tjTable, wbTable, zwTable, lookPage, standTable, otherTable, wxTable, recordDialog, djspTable, fenbuPic },
+    components: {
+        tableList,
+        tjTable,
+        wbTable,
+        zwTable,
+        lookPage,
+        rcwbTable,
+        rcwxTable,
+        standTable,
+        otherTable,
+        wxTable,
+        recordDialog,
+        djspTable,
+        fenbuPic,
+    },
     methods: {
         //打开弹窗
         showModal(item) {
@@ -173,14 +199,12 @@ export default {
             console.log(tab)
             if (this.param) {
                 this.param = tab.name
-            } else if (this.smsxt) {
-                this.smsxt = tab.name
             }
             this.activeName = tab.name
             //原理图的tab怎么传typecode
             if (this.dialogInfo.children.length > 0) {
-                this.dialogInfo.children.forEach(el=>{
-                    if(tab.label == el.label){
+                this.dialogInfo.children.forEach((el) => {
+                    if (tab.label == el.label) {
                         this.typecode = el.param.type_code
                     }
                 })
@@ -295,6 +319,9 @@ export default {
                     })
                 })
             }
+            if(this.smsxt != '1008'){
+                data.onlyMainAsset = true
+            }
             queryTab({ data, postParams }).then((res) => {
                 this.tabCount = []
                 let data = res.data.data || []

+ 12 - 15
src/views/equipment/fenbuPic.vue

@@ -2,7 +2,7 @@
     <div class='fenbu-box'>
         <!-- 图例 -->
         <div class='legend-boxs'>
-            <Legend :innerLeng='1' :floorInfo="floorInfo"  :floors='floors' type='0' :categoryId='`${typecode=="FBT1"?"FZQZL":"XFBFYCFL"}`'></Legend>
+            <Legend :innerLeng='1' :floorInfo='floorInfo' :floors='floors' type='0' :categoryId='`${typecode=="FBT1"?"FZQZL":"XFBFYCFL"}`'></Legend>
             <floor-list v-if='floors.length>0' :changeDataFlag='false' :floorsArr='floors' @emitFloor='emitFloor' :id='"floor"'></floor-list>
         </div>
         <div v-show='floors.length>0' class='canvas-box'>
@@ -24,19 +24,16 @@ export default {
     data() {
         return {
             show: false,
-            floorInfo: {
-                gname: 'f1',
-                code: 'F1'
-            },
+            floorInfo: {},
             loadName: '',
             type: '',
             floors: [],
-            modalHeight: 500 //适配底图
+            modalHeight: 500, //适配底图
         }
     },
     props: ['typecode'],
     computed: {
-        ...mapGetters(['floorsArr'])
+        ...mapGetters(['floorsArr']),
     },
     mounted() {
         if (window.screen.width > 1366) {
@@ -61,7 +58,7 @@ export default {
                 Distinct: true,
                 PageNumber: 1,
                 PageSize: 500,
-                Projection: ['floorId']
+                Projection: ['floorId'],
             }
             if (this.typecode == 'FBT1') {
                 postParams.Filters = `projectId =${this.$store.state.plazaId};categoryId='FZQZL';isPub=true`
@@ -71,27 +68,27 @@ export default {
             }
             let floor = []
             this.floors = []
-            queryPics({ postParams }).then(res => {
+            queryPics({ postParams }).then((res) => {
                 if (res.Total == 0) {
                     this.floors = []
                 } else {
                     floor = res.Content
-                    this.floorsArr.forEach(el => {
-                        floor.forEach(ele => {
+                    this.floorsArr.forEach((el) => {
+                        floor.forEach((ele) => {
                             if (ele.FloorId == el.gname) {
                                 this.floors.push({
                                     gname: el.gname,
                                     gcode: el.gcode,
                                     name: el.name,
                                     code: el.code,
-                                    seq: el.seq
+                                    seq: el.seq,
                                 })
                             }
                         })
                     })
                 }
                 this.floorInfo = this.floors[0]
-                // this.init()
+                console.log(this.floorInfo)
             })
         },
         init() {
@@ -102,8 +99,8 @@ export default {
             this.getFloorData()
             // 注释掉 floorMap init ,由楼层中的emitFloor方法去执行floorMap
             // this.$refs.floorMap.init(this.floorInfo.gname)
-        }
-    }
+        },
+    },
 }
 </script>
 <style lang="less">

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

@@ -76,7 +76,6 @@
 import floorList from '@/components/floorList.vue'
 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 { mapGetters } from 'vuex'
@@ -104,7 +103,7 @@ export default {
             ShowDialog: false, //是否显示弹窗
         }
     },
-    components: { floorList, eqDialog, floorMap, editList },
+    components: { floorList, eqDialog, floorMap },
     watch: {
         // 监听currentFloor变化,重新渲染楼层组件,解决 数据与视图不照应的问题
         /* '$store.state.currentFloor': {

+ 20 - 24
src/views/equipment/table/djspTable.vue

@@ -56,11 +56,11 @@ export default {
             innerVisible: false, //详情弹框
             shopsnum: '',
             welldes: '',
-            floorAllSelect: []
+            floorAllSelect: [],
         }
     },
     computed: {
-        ...mapGetters(['floorSelect', 'plazaId'])
+        ...mapGetters(['floorSelect', 'plazaId']),
     },
     props: ['param'],
     methods: {
@@ -69,24 +69,20 @@ export default {
                 if (row.col0count > 0) {
                     return {
                         rowspan: row.col0count,
-                        colspan: 1
+                        colspan: 1,
                     }
                 } else {
                     return {
                         rowspan: 0,
-                        colspan: 0
+                        colspan: 0,
                     }
                 }
             }
         },
-        pageChanged(page) {
-            this.currentPage = page
-            this.getList()
-        },
         getList() {
             let getParams = {
                 orderBy: `floor,0;welldesm,1;meterbox,1;`,
-                plazaId: this.plazaId
+                plazaId: this.plazaId,
             }
             if (this.floor && this.floor != 1) {
                 getParams.floor = this.floor
@@ -101,25 +97,25 @@ export default {
             if (getParams.keyword == '') {
                 delete getParams.keyword
             }
-            queryShops({ getParams }).then(res => {
+            queryShops({ getParams }).then((res) => {
                 console.log(res)
                 this.tableData = []
                 let floor = {}
                 res.data &&
-                    res.data.forEach(i => {
+                    res.data.forEach((i) => {
                         console.log(i)
-                        Object.keys(i).forEach(key => (floor[key] = 0)) // 初始化每一楼层个数为0
-                        Object.values(i).forEach(j => {
-                            Object.values(j).forEach(k => {
+                        Object.keys(i).forEach((key) => (floor[key] = 0)) // 初始化每一楼层个数为0
+                        Object.values(i).forEach((j) => {
+                            Object.values(j).forEach((k) => {
                                 console.log(k)
                                 this.tableData.push(k)
                             })
                         })
                     })
 
-                this.tableData.map(n => {
+                this.tableData.map((n) => {
                     if (floor[n.floor] === 0) {
-                        const count = this.tableData.filter(m => m.floor === n.floor).length
+                        const count = this.tableData.filter((m) => m.floor === n.floor).length
                         floor[n.floor] = count
                         n.col0count = count
                     } else {
@@ -133,12 +129,12 @@ export default {
             this.floorAllSelect = []
             this.floorAllSelect.push({
                 name: '全部',
-                id: '1'
+                id: '1',
             })
-            this.floorSelect.forEach(el => {
+            this.floorSelect.forEach((el) => {
                 this.floorAllSelect.push(el)
             })
-        }
+        },
     },
     watch: {
         param(newV, oldV) {
@@ -153,19 +149,19 @@ export default {
         // 监听 vuex 中currentFloor的变化,切换楼层后,更新下拉菜单
         '$store.state.currentFloor': {
             handler(newV, oldV) {
-                if (newV.gname !== oldV.gname) {
-                    this.floor = newV.gname
+                if (newV.gcname !== oldV.gcname) {
+                    this.floor = newV.gcname
                     this.getList()
                 }
             },
-            deep: true
-        }
+            deep: true,
+        },
     },
     mounted() {
         // this.floor = this.$cookie.get('floorMapId')
         this.getList()
         this.getFloorAllSelect()
-    }
+    },
 }
 </script>
 <style lang="less" scoped>

+ 280 - 148
src/views/equipment/table/eqDetaileDialog.vue

@@ -1,113 +1,127 @@
-
 <template>
     <!-- 详情页面 -->
     <div class='gdqd-dialog'>
         <div class='top'></div>
-        <div class='gdqd-dialog-top'>
-            <el-input
-                placeholder='搜索设备简称编号'
-                style='width:192px;margin-right:12px'
-                size='small'
-                prefix-icon='el-icon-search'
-                v-model='sbjc'
-                clearable
-                @keyup.enter.native='queryTableList'
-                @blur='queryTableList'
-            ></el-input>
-            <Select v-model='sbglgs' width='180' tipPlace='top' caption='管理归属:' size='small' :selectdata='sbglgsOption' @change='queryTableList'></Select>
-            <Select
-                width='160'
-                style='margin: 0 12px;'
-                v-model='status'
-                tipPlace='top'
-                caption='设备状态:'
-                size='small'
-                :selectdata='statusOption'
-                @change='queryTableList'
-            ></Select>
-            <el-input
-                placeholder='搜索品牌、型号'
-                style='width:180px;margin-right:12px'
-                size='small'
-                clearable
-                prefix-icon='el-icon-search'
-                v-model='brand'
-                @keyup.enter.native='queryTableList'
-                @blur='queryTableList'
-            ></el-input>
-            <Select
-                width='150'
-                style='margin-right:12px;'
-                v-model='floor'
-                tipPlace='top'
-                caption='楼层:'
-                size='small'
-                :selectdata='floorAllSelect'
-                @change='queryTableList'
-            ></Select>
-            <el-input
-                placeholder='搜索安装位置'
-                @keyup.enter.native='queryTableList'
-                @blur='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 class='gdqd-top'>
+            <div class='gdqd-dialog-top'>
+                <el-input
+                    placeholder='搜索设备简称编号'
+                    style='width:192px;margin-right:12px'
+                    size='small'
+                    prefix-icon='el-icon-search'
+                    v-model='sbjc'
+                    clearable
+                    @keyup.enter.native='queryTableList'
+                    @blur='queryTableList'
+                ></el-input>
+                <Select v-model='sbglgs' width='180' tipPlace='top' caption='管理归属:' size='small' :selectdata='sbglgsOption' @change='queryTableList'></Select>
+                <Select
+                    width='160'
+                    style='margin: 0 12px;'
+                    v-model='status'
+                    tipPlace='top'
+                    caption='设备状态:'
+                    size='small'
+                    :selectdata='statusOption'
+                    @change='queryTableList'
+                ></Select>
+                <el-input
+                    placeholder='搜索品牌、型号'
+                    style='width:180px;margin-right:12px'
+                    size='small'
+                    clearable
+                    prefix-icon='el-icon-search'
+                    v-model='brand'
+                    @keyup.enter.native='queryTableList'
+                    @blur='queryTableList'
+                ></el-input>
+                <Select
+                    width='150'
+                    style='margin-right:12px;'
+                    v-model='floor'
+                    tipPlace='top'
+                    caption='楼层:'
+                    size='small'
+                    :selectdata='floorAllSelect'
+                    @change='queryTableList'
+                ></Select>
+                <el-input
+                    placeholder='搜索安装位置'
+                    @keyup.enter.native='queryTableList'
+                    @blur='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>
+            <div class='gdqd-dialog-bottom'>
+                <!-- TODO: 宽度修改 -->
+                <el-table @row-click='innerTable' :data='tableData' :key='key' :border='true' style='width: 100%' :highlight-current-row='true'>
+                    <el-table-column type='index' label='序号' width='60'></el-table-column>
+                    <el-table-column prop='sbjc' label='设备名称' show-overflow-tooltip resizable min-width='338'>
+                        <template slot-scope='{row}'>{{row.sbjc || '--'}}</template>
+                    </el-table-column>
+                    <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='sbglgs' label='管理归属' show-overflow-tooltip resizable>
+                        <template slot-scope='{row}'>{{row.sbglgs || '--'}}</template>
+                    </el-table-column>
+                    <el-table-column prop='sb_status' label='设备状态' width='80' show-overflow-tooltip resizable>
+                        <template slot-scope='{row}'>{{row.sb_status || '--'}}</template>
+                    </el-table-column>
+                    <el-table-column prop='brand' label='品牌' show-overflow-tooltip resizable width='80'>
+                        <template slot-scope='{row}'>{{row.brand || '--'}}</template>
+                    </el-table-column>
+                    <el-table-column prop='sbxh' label='型号' show-overflow-tooltip resizable width='100'>
+                        <template slot-scope='{row}'>{{row.sbxh || '--'}}</template>
+                    </el-table-column>
+                    <el-table-column prop='floor' sortable label='楼层' width='70' show-overflow-tooltip resizable>
+                        <template slot-scope='{row}'>{{row.floorcode || '--'}}</template>
+                    </el-table-column>
+                    <el-table-column prop='wzjc' label='安装位置' show-overflow-tooltip resizable min-width='250'>
+                        <template slot-scope='{row}'>{{row.wzjc || '--'}}</template>
+                    </el-table-column>
+                    <el-table-column prop='manufacturer' label='生产厂商' show-overflow-tooltip resizable min-width='300'>
+                        <template slot-scope='{row}'>{{row.manufacturer || '--'}}</template>
+                    </el-table-column>
+                    <el-table-column prop='fws' label='服务商' show-overflow-tooltip resizable min-width='300'>
+                        <template slot-scope='{row}'>{{row.fws || '--'}}</template>
+                    </el-table-column>
+                    <el-table-column prop label='相关资料' show-overflow-tooltip resizable min-width='150'>
+                        <template slot-scope='{row}'>{{'--'}}</template>
+                    </el-table-column>
+                </el-table>
+            </div>
         </div>
-        <el-table @row-click='innerTable' :data='tableData' :border='true' style='width: 100%;amrgin-bottom:30px'>
-            <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
-            <el-table-column prop='sbjc' label='设备名称' show-overflow-tooltip resizable min-width='150'>
-                <template slot-scope='{row}'>{{row.sbjc || '--'}}</template>
-            </el-table-column>
-            <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='60'>
-                <template slot-scope='{row}'>{{row.sl>=0?row.sl:'--'}}</template>
-            </el-table-column>
-            <el-table-column prop='sbglgs' label='管理归属' show-overflow-tooltip resizable>
-                <template slot-scope='{row}'>{{row.sbglgs || '--'}}</template>
-            </el-table-column>
-            <el-table-column prop='sb_status' label='设备状态' width='80' show-overflow-tooltip resizable>
-                <template slot-scope='{row}'>{{row.sb_status || '--'}}</template>
-            </el-table-column>
-            <el-table-column prop='brand' label='品牌' show-overflow-tooltip resizable width='80'>
-                <template slot-scope='{row}'>{{row.brand || '--'}}</template>
-            </el-table-column>
-            <el-table-column prop='sbxh' label='型号' show-overflow-tooltip resizable width='80'>
-                <template slot-scope='{row}'>{{row.sbxh || '--'}}</template>
-            </el-table-column>
-            <el-table-column prop='floor' sortable label='楼层' width='70' show-overflow-tooltip resizable>
-                <template slot-scope='{row}'>{{row.floorcode || '--'}}</template>
-            </el-table-column>
-            <el-table-column prop='wzjc' label='安装位置' show-overflow-tooltip resizable min-width='150'>
-                <template slot-scope='{row}'>{{row.wzjc || '--'}}</template>
-            </el-table-column>
-            <el-table-column prop='manufacturer' label='生产厂商' show-overflow-tooltip resizable min-width='150'>
-                <template slot-scope='{row}'>{{row.manufacturer || '--'}}</template>
-            </el-table-column>
-            <el-table-column prop='fws' label='服务商' show-overflow-tooltip resizable min-width='150'>
-                <template slot-scope='{row}'>{{row.fws || '--'}}</template>
-            </el-table-column>
-            <el-table-column prop label='相关资料' show-overflow-tooltip resizable min-width='150'>
-                <template slot-scope='{row}'>{{'--'}}</template>
-            </el-table-column>
-        </el-table>
-        <div class='foot'>
-            <el-pagination
-                background
-                layout='prev, pager, next'
-                :total='total'
-                :current-page.sync="sonpage"
-                :page-size='size'
-                @prev-click='pageChanged'
-                @next-click='pageChanged'
-                @current-change='pageChanged'
-            ></el-pagination>
+        <!-- 底部表格 -->
+        <div class='table-bottom'>
+            <!-- 页签切换 -->
+            <div class='title'>
+                <div class='text'>维保:</div>
+                <div class='d-tab d-tab-left' :class='{active:currentTab === 0}' @click='changeTab(0)'>重要维保</div>
+                <div class='d-tab d-tab-right' :class='{active:currentTab === 1}' @click='changeTab(1)'>日常维保</div>
+                <div class='text text-r'>维修:</div>
+                <div class='d-tab d-tab-left' :class='{active:currentTab === 2}' @click='changeTab(2)'>重要维修</div>
+                <div class='d-tab d-tab-right' :class='{active:currentTab === 3}' @click='changeTab(3)'>日常维修</div>
+            </div>
+            <!--  动态显示各个表格组件 : 'wbTable', 'rcwbTable', 'wxTable', 'rcwxTable'  -->
+            <div class='table2-container'>
+                <component
+                    v-if='Object.keys(this.row).length>0'
+                    :is='currentComponent'
+                    :ref='currentComponent'
+                    :smsxt='smsxt'
+                    :tabLabel='tabLabel[currentComponent]'
+                    :diff='diff'
+                    :assetnum='assetnum'
+                    :size='size'
+                ></component>
+            </div>
         </div>
     </div>
 </template>
@@ -117,19 +131,14 @@ import { mapGetters } from 'vuex'
 import { queryAsset } from '@/api/equipmentList.js'
 import { querySelect } from '@/api/public.js'
 import inputDialog from './inputDIalog'
+import rcwbTable from './rcwbTable'
+import wbTable from './wbTable'
+import rcwxTable from './rcwxTable'
+import wxTable from './wxTable'
 export default {
     data() {
         return {
             tableData: [],
-            dataSelect2: [
-                { id: 'test1', name: '选择项' },
-                { id: 'test2', name: '单平米' },
-                { id: 'test3', name: '下级分项' },
-                { id: 'test4', name: '滑动平均滑动平均' },
-            ],
-            // page: 1,
-            size: 10,
-            total: 1,
             sbjc: '',
             brand: '',
             wzjc: '',
@@ -141,37 +150,56 @@ export default {
             sbglgsOption: [],
             statusOption: [],
             floorAllSelect: [],
+            activeId: '1',
+            activeName1: 'wb1',
+            activeName2: '',
+            visible: false,
+            key: 0,
+            assetnum: '', //区分设备的维修和维保关键
+            currentTab: 0, //选中页签,默认重要维保
+            currentComponent: 'wbTable', //选中的组件,默认 重要维保
+            componentArr: ['wbTable', 'rcwbTable', 'wxTable', 'rcwxTable'], //下部表格组件列表
+            tabLabel: {
+                //下部表格组件列表使用label
+                wbTable: '重要维保',
+                rcwbTable: '日常维保',
+                wxTable: '重要维修',
+                rcwxTable: '日常维保',
+            },
+            size: 5, //分页条数
         }
     },
     components: {
         Select,
         inputDialog,
+        rcwbTable,
+        wbTable,
+        rcwxTable,
+        wxTable,
     },
     computed: {
         ...mapGetters(['floorSelect']),
     },
-    props: ['row', 'major', 'sonpage'],
     mounted() {
         this.queryTableList()
-        this.tabFind()
         this.getFloorAllSelect()
+        this.tabFind()
+        if (document.body.clientWidth >= 1920) {
+            this.size = 9
+        }
     },
+    props: ['row', 'major', 'sign', 'smsxt', 'diff'],
     methods: {
         innerTable(row) {
-            console.log(row)
+            this.assetnum = row.assetnum
+            this.changeTab(0)
+            // this.$refs.wbTable.startMethods()
             if (row.assetuid) {
                 window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=assetdevic&uniqueid=${row.assetuid}`)
             }
         },
-        //序号的方法
-        indexMethod(index) {
-            if (this.sonpage) {
-                return (this.sonpage - 1) * this.size + index + 1
-            }
-        },
         //多余输入框监听
         confirm(fws, manufacturer) {
-            //console.log(fws, manufacturer, '------')
             this.fws = fws
             this.manufacturer = manufacturer
             this.queryTableList()
@@ -205,8 +233,10 @@ export default {
                 major: major,
                 plazaId: this.$store.state.plazaId,
             }
+            if (major != '土建') {
+                data.onlyMainAsset = true
+            }
             querySelect({ data, postParams }).then((res) => {
-                //console.log(res)
                 let sb_status = res.data.data.sms_asset.sb_status
                 let sbglgs = res.data.data.sms_asset.sbglgs
                 this.sbglgsOption = []
@@ -233,11 +263,8 @@ export default {
                 })
             })
         },
-        pageChanged(page) {
-            this.sonpage = page
-            this.queryTableList()
-        },
         queryTableList() {
+            console.log('queryTableList')
             let major
             if (this.major.slice(0, 2) == 'GD') {
                 major = '供电'
@@ -255,8 +282,10 @@ export default {
             let data = {
                 major: major,
                 plazaId: this.$store.state.plazaId,
-                page: this.sonpage,
-                size: this.size,
+            }
+            //区分主要设备
+            if (this.major != '土建') {
+                data.onlyMainAsset = true
             }
             //输入框搜索
             data.keyword = ''
@@ -296,9 +325,13 @@ export default {
                 postParams.status = this.status
             }
             queryAsset({ data, postParams }).then((res) => {
-                //console.log(res)
                 this.tableData = res.data.data
                 this.total = res.data.count
+                this.key++
+                if (this.tableData.length > 0) {
+                    this.assetnum = this.tableData[0].assetnum
+                    this.changeTab(0)
+                }
             })
         },
         getFloorAllSelect() {
@@ -310,12 +343,28 @@ export default {
             this.floorSelect.forEach((el) => {
                 this.floorAllSelect.push(el)
             })
-            console.log(this.floorAllSelect)
+        },
+        // 更改tab页签,切换组件
+        changeTab(index) {
+            this.currentTab = index
+            this.currentComponent = this.componentArr[index]
+            // --- 不需要执行,动态组件会自动执行
+            //如果有组件,执行表格组件的内部方法
+            // this.$nextTick(() => {
+            //     this.$refs[this.currentComponent] && this.$refs[this.currentComponent].startMethods()
+            // })
         },
     },
     watch: {
         row: {
             handler(newV, oldV) {
+                // console.log('handler', newV, oldV)
+                // 数据改变,重置表格,tab数据
+                if (JSON.stringify(newV) !== JSON.stringify(oldV)) {
+                    this.tableData = []
+                    this.currentTab = 0
+                    this.currentComponent = 'wbTable'
+                }
                 this.queryTableList()
                 this.getFloorAllSelect()
                 this.tabFind()
@@ -336,22 +385,70 @@ export default {
 </script>
 <style lang="less" scoped>
 .gdqd-dialog {
-    // padding: 16px 24px 40px;
-    // height: 610px;
-    .gdqd-dialog-top {
-        display: flex;
-        margin-bottom: 12px;
-    }
-    td {
-        overflow: hidden;
-        text-overflow: ellipsis;
-        white-space: nowrap;
+    display: flex;
+    flex-direction: column;
+    height: 90vh;
+    .gdqd-top {
+        .gdqd-dialog-bottom {
+            margin-top: 20px;
+            // 表格主体(数据列,不含表头),高度
+            /deep/.el-table__body-wrapper {
+                overflow: auto;
+                max-height: 13.6vh;
+            }
+        }
     }
-    .foot {
-        height: 32px;
+    // 底部表格
+    .table-bottom {
+        width: 100%;
+        flex: 1;
         display: flex;
-        justify-content: flex-end;
-        margin-top: 28px;
+        flex-direction: column;
+        // tab 样式
+        .title {
+            display: flex;
+            height: 70px;
+            line-height: 30px;
+            align-items: center;
+            padding: 15px 0;
+            // 维修维保文本
+            .text {
+                width: 50px;
+            }
+            .text-r {
+                margin-left: 100px;
+            }
+            // tab页签
+            .d-tab {
+                padding: 5px 16px;
+                height: 30px;
+                line-height: 22px;
+                font-size: 14px;
+                font-family: MicrosoftYaHei;
+                font-weight: 500;
+                color: #1f2429;
+                text-align: center;
+                border: 1px solid #c3c7cb;
+                cursor: pointer;
+            }
+            .d-tab-left {
+                border-radius: 4px 0 0 4px;
+            }
+            .d-tab-right {
+                border-radius: 0 4px 4px 0;
+            }
+            // 当前选中页签
+            .active {
+                color: #025baa !important;
+                border-color: #025baa !important;
+            }
+        }
+        //筛选+表格
+        .table2-container {
+            width: 100%;
+            flex: 1;
+            position: relative;
+        }
     }
 }
 @media screen and (max-width: 1600px) {
@@ -359,11 +456,46 @@ export default {
         padding: 4px 0;
     }
 }
+@media screen and (max-width: 1366px) {
+    .gdqd-dialog {
+        padding: 12px 24px 24px;
+        /deep/ .el-table td {
+            padding: 1px 0 !important;
+        }
+        .gdqd-dialog-bottom {
+            margin-top: 10px !important;
+        }
+        .table-bottom {
+            .title {
+                height: 60px !important;
+            }
+        }
+        // 底部表格的分页位置修改
+        /deep/ .rcwb-list .foot {
+            margin-top: 10px !important;
+        }
+    }
+}
 </style>
 <style lang="less">
 .gdqd-dialog {
-    /deep/.el-table td {
+    /deep/.el-table__body-wrapper td {
         cursor: pointer;
     }
+    .el-dialog__header {
+        padding: 16px 24px;
+        color: #fff;
+        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;
+        font-family: PingFangSC-Medium, PingFang SC;
+        font-weight: 500;
+        color: #fff;
+        line-height: 24px;
+    }
 }
 </style>

+ 47 - 27
src/views/equipment/table/eqListTable.vue

@@ -5,8 +5,8 @@
             <el-input
                 placeholder='搜索设备名称'
                 size='small'
-                @keyup.enter.native='getList'
-                @blur='getList'
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
                 prefix-icon='el-icon-search'
                 v-model='sbjc'
                 clearable
@@ -15,16 +15,16 @@
             <el-input
                 placeholder='搜索品牌型号'
                 size='small'
-                @keyup.enter.native='getList'
-                @blur='getList'
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
                 clearable
                 prefix-icon='el-icon-search'
                 v-model='keyword'
                 style='width:192px;margin-right:12px'
             ></el-input>
             <Select
-                @change='getList'
-                @cancel='getList'
+                @change='pageChanged(1)'
+                @cancel='pageChanged(1)'
                 v-model='floor'
                 style='margin-right:12px;'
                 width='160'
@@ -36,15 +36,15 @@
                 placeholder='搜索生产厂商'
                 clearable
                 size='small'
-                @keyup.enter.native='getList'
-                @blur='getList'
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
                 prefix-icon='el-icon-search'
                 v-model='manufacturer'
                 style='width:192px;'
             ></el-input>
         </div>
-        <div ref='tableBox' style='height: calc(100% - 115px);'>
-            <el-table :data='tableData' :max-height='tableMaxHeight' style='width: 100%' :border='true' @row-click='rowHandle'>
+        <div ref='tableBox'>
+            <el-table :data='tableData' style='width: 100%' :border='true' @row-click='rowHandle'>
                 <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
                 <el-table-column prop='type_name' label='设备名称' show-overflow-tooltip resizable width='250'>
                     <template slot-scope='{row}'>{{row.type_name || '--'}}</template>
@@ -75,25 +75,30 @@
                 layout='prev, pager, next'
                 :total='total'
                 :page-size='size'
+                :current-page='currentPage'
                 @prev-click='pageChanged'
                 @next-click='pageChanged'
                 @current-change='pageChanged'
             ></el-pagination>
         </div>
         <!-- 标准表格详情钻取表 -->
-        <el-dialog
+        <!-- <el-dialog
             width='1260px'
             :title='`${InfoName}-${type_name}`'
             style='height:900px!important;overflow: hidden;'
             :visible.sync='innerVisible'
             append-to-body
         >
-            <eq-detail ref='qdDialog' :row='row' :major='major' :sonpage='sonpage'></eq-detail>
+            <eq-detail ref='qdDialog' :row='row' :major='major' :smsxt='smsxt' :diff='diff' :sign='sign'></eq-detail>
+        </el-dialog>-->
+        <el-dialog width='100%' :title='`${type_name}设备清单`' :visible.sync='innerVisible' append-to-body :fullscreen='true'>
+            <eq-detail ref='qdDialog' :row='row' :major='major' :smsxt='smsxt' :diff='diff' :sign='sign'></eq-detail>
         </el-dialog>
     </div>
 </template>
 <script>
 import { Select } from 'meri-design'
+// import EqDetail from './eqDetaileDialog'
 import EqDetail from './eqDetaileDialog'
 import { queryEquipmentList } from '@/api/equipmentList.js'
 import { mapGetters } from 'vuex'
@@ -106,7 +111,6 @@ export default {
             tableData: [],
             total: 0,
             currentPage: 1,
-            sonpage:1,
             size: 10,
             innerVisible: false, //详情弹框
             keyword: '',
@@ -114,15 +118,15 @@ export default {
             sbjc: '',
             row: {},
             floor: '1',
-            tableMaxHeight: 0,
             type_name: '',
             floorAllSelect: [],
+            sign: 1,
         }
     },
     computed: {
         ...mapGetters(['floorSelect']),
     },
-    props: ['param', 'major', 'systemName', 'InfoName'],
+    props: ['param', 'major', 'systemName', 'InfoName', 'smsxt', 'diff'],
     methods: {
         indexMethod(index) {
             return (this.currentPage - 1) * this.size + index + 1
@@ -131,7 +135,7 @@ export default {
             this.type_name = row.type_name
             this.innerVisible = true
             this.row = row
-            this.sonpage = 1
+            this.sign = 1
         },
         pageChanged(page) {
             this.currentPage = page
@@ -147,6 +151,10 @@ export default {
                 plazaId: this.$store.state.plazaId,
                 major: this.major,
             }
+            //区分土建主要设备
+            if (this.smsxt != '1008') {
+                data.onlyMainAsset = true
+            }
             //下拉
             if (this.floor && this.floor != 1) {
                 postParams.gname = this.floor
@@ -187,10 +195,6 @@ export default {
             console.log(newV, oldV)
             if (newV !== oldV) {
                 this.getList()
-                this.$nextTick(() => {
-                    // 页面渲染完成后的回调
-                    this.tableMaxHeight = this.$refs.tableBox.offsetHeight
-                })
                 this.getFloorAllSelect()
             }
         },
@@ -201,8 +205,8 @@ export default {
         // 监听 vuex 中currentFloor的变化,切换楼层后,更新下拉菜单
         '$store.state.currentFloor': {
             handler(newV, oldV) {
-                if (newV.gname !== oldV.gname) {
-                    this.floor = newV.gname
+                if (newV.gcname !== oldV.gcname) {
+                    this.floor = newV.gcname
                     this.getList()
                 }
             },
@@ -212,10 +216,6 @@ export default {
     mounted() {
         // this.floor = this.$cookie.get('floorMapId')
         this.getList()
-        this.$nextTick(() => {
-            // 页面渲染完成后的回调
-            this.tableMaxHeight = this.$refs.tableBox.offsetHeight
-        })
         this.getFloorAllSelect()
     },
 }
@@ -238,6 +238,9 @@ export default {
         margin-top: 28px;
     }
 }
+/deep/ .el-dialog__body {
+    padding: 0;
+}
 @media screen and (max-width: 1600px) {
     /deep/ .el-dialog__body {
         padding: 0;
@@ -246,7 +249,8 @@ export default {
         padding: 4px 0;
     }
     /deep/ .el-dialog {
-        margin-top: 5vh !important;
+        // margin-top: 5vh !important;
+        margin-top: 0 !important;
     }
 }
 </style>
@@ -256,4 +260,20 @@ export default {
         cursor: pointer;
     }
 }
+// 弹窗头部样式修改
+.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;
+    padding-right: 6px;
+    padding-left: 24px;
+    font-weight: bold;
+    color: #fff;
+    font-weight: normal;
+}
 </style>

+ 311 - 0
src/views/equipment/table/equipDetail.vue

@@ -0,0 +1,311 @@
+
+<template>
+    <!-- 详情页面 -->
+    <div class='gdqd-dialog1'>
+        <el-dialog :title='`${row.sbjc}-设备详情`' :visible.sync='visible' :fullscreen='true'>
+            <div class='top'></div>
+            <div class='qdxq-top'>
+                <div class='gdqd-dialog-top'></div>
+                <div class='gdqd-dialog-bottom'>
+                    <el-table @row-click='innerTable' :data='tableData' :border='true' style='width: 100%'>
+                        <el-table-column type='index' label='序号' width='60'></el-table-column>
+                        <el-table-column prop='sbjc' label='设备名称' show-overflow-tooltip resizable min-width='338'>
+                            <template slot-scope='{row}'>{{row.sbjc || '--'}}</template>
+                        </el-table-column>
+                        <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='60'>
+                            <template slot-scope='{row}'>{{row.sl>=0?row.sl:'--'}}</template>
+                        </el-table-column>
+                        <el-table-column prop='sbglgs' label='管理归属' show-overflow-tooltip resizable>
+                            <template slot-scope='{row}'>{{row.sbglgs || '--'}}</template>
+                        </el-table-column>
+                        <el-table-column prop='sb_status' label='设备状态' width='80' show-overflow-tooltip resizable>
+                            <template slot-scope='{row}'>{{row.sb_status || '--'}}</template>
+                        </el-table-column>
+                        <el-table-column prop='brand' label='品牌' show-overflow-tooltip resizable width='80'>
+                            <template slot-scope='{row}'>{{row.brand || '--'}}</template>
+                        </el-table-column>
+                        <el-table-column prop='sbxh' label='型号' show-overflow-tooltip resizable width='100'>
+                            <template slot-scope='{row}'>{{row.sbxh || '--'}}</template>
+                        </el-table-column>
+                        <el-table-column prop='floor' sortable label='楼层' width='70' show-overflow-tooltip resizable>
+                            <template slot-scope='{row}'>{{row.floorcode || '--'}}</template>
+                        </el-table-column>
+                        <el-table-column prop='wzjc' label='安装位置' show-overflow-tooltip resizable min-width='250'>
+                            <template slot-scope='{row}'>{{row.wzjc || '--'}}</template>
+                        </el-table-column>
+                        <el-table-column prop='manufacturer' label='生产厂商' show-overflow-tooltip resizable min-width='300'>
+                            <template slot-scope='{row}'>{{row.manufacturer || '--'}}</template>
+                        </el-table-column>
+                        <el-table-column prop='fws' label='服务商' show-overflow-tooltip resizable min-width='300'>
+                            <template slot-scope='{row}'>{{row.fws || '--'}}</template>
+                        </el-table-column>
+                        <el-table-column prop label='相关资料' show-overflow-tooltip resizable min-width='150'>
+                            <template slot-scope='{row}'>{{'--'}}</template>
+                        </el-table-column>
+                    </el-table>
+                </div>
+            </div>
+            <div class='qdxq-bottom'>
+                <div class='wb-title'>
+                    <div class='tab-title' id='1' :class='activeId==1?"active-is":""' @click='tabClick(1)'>维保</div>
+                    <div class='tab-title' id='2' :class='activeId==2?"active-is":""' @click='tabClick(2)'>维修</div>
+                </div>
+                <div v-if='activeId==1'>
+                    <el-tabs v-model='activeName1' @tab-click='handleClickWb'>
+                        <el-tab-pane label='重要维保' name='wb1' v-if='Object.keys(this.row).length>0'>
+                            <wbTable ref='wb1' :smsxt='smsxt' tabLabel='重要维保' :diff='diff' :assetnum='row.assetnum' :size='3'></wbTable>
+                        </el-tab-pane>
+                        <el-tab-pane label='日常维保' name='wb2' v-if='Object.keys(this.row).length>0'>
+                            <rcwbTable ref='wb2' :smsxt='smsxt' tabLabel='日常维保' :diff='diff' :assetnum='row.assetnum' :size='3'></rcwbTable>
+                        </el-tab-pane>
+                    </el-tabs>
+                </div>
+                <div v-if='activeId==2'>
+                    <el-tabs v-model='activeName2' @tab-click='handleClickWx'>
+                        <el-tab-pane label='重要维修' name='wx1' v-if='Object.keys(this.row).length>0'>
+                            <wxTable ref='wx1' :smsxt='smsxt' tabLabel='重要维修' :diff='diff' :assetnum='row.assetnum' :size='3'></wxTable>
+                        </el-tab-pane>
+                        <el-tab-pane label='日常维修' name='wx2' v-if='Object.keys(this.row).length>0'>
+                            <rcwxTable ref='wx2' :smsxt='smsxt' tabLabel='日常维修' :diff='diff' :assetnum='row.assetnum' :size='3'></rcwxTable>
+                        </el-tab-pane>
+                    </el-tabs>
+                </div>
+            </div>
+        </el-dialog>
+    </div>
+</template>
+<script>
+import { Select } from 'meri-design'
+import { mapGetters } from 'vuex'
+import { queryAsset } from '@/api/equipmentList.js'
+import { querySelect } from '@/api/public.js'
+import inputDialog from './inputDIalog'
+import rcwbTable from './rcwbTable'
+import wbTable from './wbTable'
+import rcwxTable from './rcwxTable'
+import wxTable from './wxTable'
+export default {
+    data() {
+        return {
+            tableData: [],
+            dataSelect2: [
+                { id: 'test1', name: '选择项' },
+                { id: 'test2', name: '单平米' },
+                { id: 'test3', name: '下级分项' },
+                { id: 'test4', name: '滑动平均滑动平均' },
+            ],
+            // page: 1,
+            // size: 10,
+            // total: 1,
+            sbjc: '',
+            brand: '',
+            wzjc: '',
+            floor: '1',
+            status: '1',
+            manufacturer: '',
+            fws: '',
+            sbglgs: '1',
+            sbglgsOption: [],
+            statusOption: [],
+            floorAllSelect: [],
+            activeId: '1',
+            activeName1: 'wb1',
+            activeName2: 'wx1',
+            row: {},
+            visible: false,
+            smsxt: '',
+            diff: '',
+        }
+    },
+    components: {
+        Select,
+        inputDialog,
+        rcwbTable,
+        wbTable,
+        rcwxTable,
+        wxTable,
+    },
+    computed: {
+        ...mapGetters(['floorSelect']),
+    },
+    methods: {
+        tabClick(item) {
+            this.activeId = item
+        },
+        handleClickWb(label) {
+            if (this.$refs[`${label.name}`]) {
+                this.$refs[`${label.name}`].startMethods()
+            }
+        },
+        handleClickWx(label) {
+            if (this.$refs[`${label.name}`]) {
+                this.$refs[`${label.name}`].startMethods()
+            }
+        },
+        innerTable(row) {
+            if (row.assetuid) {
+                window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=assetdevic&uniqueid=${row.assetuid}`)
+            }
+        },
+        queryTableList() {
+            let data = {
+                plazaId: this.$store.state.plazaId,
+            }
+            let postParams = {
+                classstructureid: this.row.classstructureid,
+                type_code: this.row.type_code,
+                manufacturer: this.row.manufacturer || '--',
+                sbxh: this.row.sbxh || '--',
+                brand: this.row.brand || '--',
+                assetnum: this.assetnum,
+            }
+            //区分主要设备
+            if (this.smsxt != '1008') {
+                data.onlyMainAsset = true
+            }
+            queryAsset({ data, postParams }).then((res) => {
+                //console.log(res)
+                this.tableData = res.data.data
+                if (this.tableData.length > 0) {
+                    this.row = this.tableData[0]
+                    this.smsxt = this.row.system_code
+                    this.$refs.wb1.startMethods()
+                }
+                this.total = res.data.count
+            })
+        },
+        //弹框出现
+        open(row) {
+            this.visible = true
+            this.row = JSON.parse(row.row)
+            this.assetnum = this.row.assetnum
+            this.smsxt = this.row.system_code
+            console.log(this.smsxt)
+            this.queryTableList()
+        },
+    },
+}
+</script>
+<style lang="less" scoped>
+.gdqd-dialog1 {
+    display: flex;
+    flex-direction: column;
+    .qdxq-top {
+        .gdqd-dialog-top {
+            // margin-bottom: 20px;
+        }
+        .gdqd-dialog-bottom {
+            overflow: hidden;
+            //max-height: 12vh;
+        }
+    }
+    .qdxq-bottom {
+        flex: 1;
+        .wb-title {
+            display: flex;
+            height: 48px;
+            line-height: 48px;
+            background: #f5f6f7;
+            margin: 20px 0;
+            .tab-title {
+                padding: 4px 16px;
+            }
+            &:hover {
+                cursor: pointer;
+                color: #025baa;
+            }
+            .active-is {
+                color: #025baa;
+                border-bottom: 2px solid #025baa;
+                cursor: pointer;
+            }
+        }
+    }
+}
+@media screen and (max-width: 1600px) {
+    .gdqd-dialog td {
+        padding: 4px 0;
+    }
+}
+</style>
+<style lang="less">
+.gdqd-dialog1 {
+    /deep/.el-table td {
+        cursor: pointer;
+    }
+    .el-dialog__header {
+        padding: 16px 24px;
+        color: #fff;
+        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;
+        font-family: PingFangSC-Medium, PingFang SC;
+        font-weight: 500;
+        color: #fff;
+        line-height: 24px;
+    }
+    .qdxq-bottom {
+        .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),
+        .el-tabs--top .el-tabs__item.is-top:nth-child(2) {
+            padding-left: 16px;
+        }
+        .el-tabs--bottom .el-tabs__item.is-bottom:last-child,
+        .el-tabs--bottom .el-tabs__item.is-top:last-child,
+        .el-tabs--top .el-tabs__item.is-bottom:last-child,
+        .el-tabs--top .el-tabs__item.is-top:last-child {
+            padding-right: 16px;
+        }
+        .el-tabs__nav-wrap::after {
+            height: 0;
+        }
+        .el-tabs {
+            // height: 95vh;
+        }
+        .el-tabs__content {
+            height: 60vh !important;
+            overflow: scroll !important;
+            /deep/ .el-tab-pane > div {
+                height: 100% !important;
+            }
+        }
+        .is-active {
+            color: #025baa !important;
+            border-color: #025baa !important;
+        }
+        .el-tabs__item {
+            padding: 5px 16px;
+            height: 30px;
+            line-height: 22px;
+            font-size: 14px;
+            font-family: MicrosoftYaHei;
+            color: rgba(31, 36, 41, 1);
+            border: 1px solid rgba(195, 199, 203, 1);
+        }
+
+        /deep/ .el-tabs__item:last-child {
+            border-radius: 0px 4px 4px 0px;
+        }
+        /deep/ .el-tabs__item:nth-child(2) {
+            border-radius: 4px 0px 0px 4px;
+        }
+        .el-tab-pane {
+            height: 100% !important;
+        }
+        .el-tabs__active-bar {
+            background-color: transparent !important;
+        }
+    }
+}
+/deep/.el-dialog {
+    margin-top: 5vh !important;
+}
+</style>

+ 117 - 7
src/views/equipment/table/inputDIalog.vue

@@ -11,9 +11,9 @@
         <div
             v-if='dialogFormVisible'
             style='width:280px;height:250px;background:rgba(255,255,255,1);margin-top:40px;
-            box-shadow:0px 2px 10px 0px rgba(31,35,41,0.1);border:1px solid rgba(228,229,231,1);z-index:9999;
+            box-shadow:0px 2px 10px 0px rgba(31,35,41,0.1);border:1px solid rgba(228,229,231,1);z-index:10000;
             position:absolute;'
-            :style='`right:${type === 1 ? "40px" : "0"};`'
+            :style='`right:${type === 1 ? "40px" : "0"};height:${type === 6 || type === 5? "420px":"250px"}`'
         >
             <el-form style=' padding:20px 24px;' v-if='type==1'>
                 <p style='margin:0 0 8px 0'>生产厂商</p>
@@ -50,6 +50,7 @@
                 </el-select>
                 <p style='margin:16px 0 8px 0'>验收日期</p>
                 <el-date-picker
+                    clearable
                     style='width:232px'
                     v-model='inputForm.yssjwcsj'
                     value-format='yyyyMMdd'
@@ -60,7 +61,95 @@
                     end-placeholder
                 ></el-date-picker>
             </el-form>
-            <div style='position:absolute;bottom:24px;right:24px;z-index:9999'>
+            <el-form style=' padding: 20px 24px;' v-if='type==5'>
+                <p style='margin:16px 0 8px 0'>要求完成日期</p>
+                <el-date-picker
+                    clearable
+                    style='width:232px'
+                    v-model='inputForm.reportdate'
+                    value-format='yyyyMMdd'
+                    type='daterange'
+                    size='small'
+                    range-separator='-'
+                    start-placeholder
+                    end-placeholder
+                ></el-date-picker>
+                <p style='margin:16px 0 8px 0'>实际完工日期</p>
+                <el-date-picker
+                    clearable
+                    style='width:232px'
+                    v-model='inputForm.real'
+                    value-format='yyyyMMdd'
+                    type='daterange'
+                    size='small'
+                    range-separator='-'
+                    start-placeholder
+                    end-placeholder
+                ></el-date-picker>
+                <p style='margin:16px 0 8px 0'>位置名称编号</p>
+                <el-input
+                    placeholder='搜索位置名称编号'
+                    size='small'
+                    clearable
+                    prefix-icon='el-icon-search'
+                    v-model='inputForm.locationName'
+                    style='width:232px;margin-right:12px'
+                ></el-input>
+                <!-- 日常维保,执行搜索人放入筛选 -->
+                <p style='margin:16px 0 8px 0'>搜索执行人</p>
+                <el-input
+                    placeholder='搜索执行人'
+                    size='small'
+                    clearable
+                    prefix-icon='el-icon-search'
+                    v-model='inputForm.people'
+                    style='width:232px;margin-right:12px'
+                ></el-input>
+            </el-form>
+            <el-form style=' padding: 20px 24px;' v-if='type==6'>
+                <p style='margin:16px 0 8px 0'>任务完成日期</p>
+                <el-date-picker
+                    clearable
+                    style='width:232px'
+                    v-model='inputForm.complete'
+                    value-format='yyyyMMdd'
+                    type='daterange'
+                    size='small'
+                    range-separator='-'
+                    start-placeholder
+                    end-placeholder
+                ></el-date-picker>
+                <p style='margin:16px 0 8px 0'>异常工单编号</p>
+                <p>
+                    <el-input clearable placeholder='异常工单编号' size='small' prefix-icon='el-icon-search' v-model='inputForm.bill' style='width:232px;'></el-input>
+                </p>
+                <p style='margin:16px 0 8px 0'>异常工单填报日期</p>
+                <el-date-picker
+                    clearable
+                    value-format='yyyyMMdd'
+                    type='daterange'
+                    size='small'
+                    v-model='inputForm.ycgdtbsj'
+                    style='width:232px'
+                    range-separator='-'
+                    start-placeholder
+                    end-placeholder
+                ></el-date-picker>
+
+                <p style='margin:16px 0 8px 0'>异常工单验收日期</p>
+                <el-date-picker
+                    clearable
+                    value-format='yyyyMMdd'
+                    type='daterange'
+                    size='small'
+                    style='width:232px'
+                    range-separator='-'
+                    start-placeholder
+                    end-placeholder
+                    v-model='inputForm.ycgdyssj'
+                ></el-date-picker>
+            </el-form>
+            <div style='position:absolute;bottom:24px;right:24px;z-index:10000'>
                 <el-button @click='dialogFormVisible = false' size='small'>取 消</el-button>
                 <el-button type='primary' @click='confirm' size='small'>确 定</el-button>
             </div>
@@ -82,8 +171,18 @@ export default {
                 wonum: '',
                 ssfasm: '',
                 status: '1',
-                yssjwcsj: ''
-            }
+                yssjwcsj: '',
+                //6
+                complete: '',
+                bill: '',
+                ycgdtbsj: '',
+                ycgdyssj: '',
+                //5
+                reportdate: '',
+                real: '',
+                locationName: '',
+                people: '',
+            },
         }
     },
     props: ['type', 'statusOption'],
@@ -100,13 +199,24 @@ export default {
                 this.$emit('confirm', this.inputForm.wonum)
             } else if (this.type == 4) {
                 this.$emit('confirm', this.inputForm.status, this.inputForm.yssjwcsj)
+            } else if (this.type == 6) {
+                this.$emit('confirm', this.inputForm.complete, this.inputForm.bill, this.inputForm.ycgdtbsj, this.inputForm.ycgdyssj)
+            } else if (this.type == 5) {
+                this.$emit('confirm', this.inputForm.reportdate, this.inputForm.real, this.inputForm.locationName, this.inputForm.people)
             }
             this.dialogFormVisible = false
             this.inputForm.status = ''
             this.inputForm.yssjwcsj = ''
-        }
+            this.inputForm.complete = ''
+            this.inputForm.bill = ''
+            this.inputForm.ycgdtbsj = ''
+            this.inputForm.ycgdyssj = ''
+            this.inputForm.reportdate = ''
+            this.inputForm.real = ''
+            this.inputForm.locationName = ''
+        },
     },
-    mounted() {}
+    mounted() {},
 }
 </script>
 

+ 31 - 36
src/views/equipment/table/otherTable.vue

@@ -9,8 +9,8 @@
                 prefix-icon='el-icon-search'
                 v-model='keyword'
                 clearable
-                @keyup.enter.native='getList'
-                @blur='getList'
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
             ></el-input>
 
             <div class='picker-box'>
@@ -20,7 +20,7 @@
                     v-model='handledate'
                     value-format='yyyyMMdd'
                     type='daterange'
-                    @change='getList'
+                    @change='pageChanged(1)'
                     size='mini'
                     range-separator='-'
                     start-placeholder
@@ -34,11 +34,11 @@
                 v-model='handleresults'
                 :selectdata='handleOption'
                 :placeholder='"请选择"'
-                @change='getList'
+                @change='pageChanged(1)'
             ></Select>
         </div>
-        <div ref='tableBox' style='height: calc(100% - 115px);'>
-            <el-table :data='tableData' :max-height='tableMaxHeight' :border='true' style='width: 100%'>
+        <div ref='tableBox'>
+            <el-table :data='tableData' :border='true' style='width: 100%'>
                 <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
                 <el-table-column prop='lb' label='其他事项详情' align='center'>
                     <el-table-column prop='zlwfwe' label='记录事项' show-overflow-tooltip resizable min-width='320'>
@@ -78,6 +78,7 @@
                 layout='prev, pager, next'
                 :total='total'
                 :page-size='size'
+                :current-page='currentPage'
                 @prev-click='pageChanged'
                 @next-click='pageChanged'
                 @current-change='pageChanged'
@@ -104,12 +105,11 @@ export default {
             handleresults: '1',
             handledate: '',
             handleOption: [],
-            tableMaxHeight: 0
         }
     },
     props: ['major', 'smsxt', 'tabLabel'],
     computed: {
-        ...mapGetters(['floorSelect'])
+        ...mapGetters(['floorSelect']),
     },
     methods: {
         //序号的方法
@@ -127,8 +127,8 @@ export default {
                     // tab: this.major,
                     plazaId: this.$store.state.plazaId,
                     page: this.currentPage,
-                    size: this.size
-                }
+                    size: this.size,
+                },
             }
             //输入框
             getParams.data.keyword = ''
@@ -147,7 +147,7 @@ export default {
             if (this.handleresults && this.handleresults != 1) {
                 getParams.data.handleresults = this.handleresults
             }
-            queryQtsx(getParams).then(res => {
+            queryQtsx(getParams).then((res) => {
                 //console.log(res)
                 this.tableData = res.data ? res.data : []
                 this.total = res.count
@@ -158,11 +158,11 @@ export default {
             let postParams = [
                 {
                     columnName: { handleresults: 'handleresults' },
-                    params:{
-                        system:this.smsxt
+                    params: {
+                        system: this.smsxt,
                     },
-                    tableName: 'sms_qtsx' //视图名称
-                }
+                    tableName: 'sms_qtsx', //视图名称
+                },
             ]
             let major
             if (this.major.slice(0, 2) == 'GD') {
@@ -186,24 +186,27 @@ export default {
             }
             let data = {
                 major: major,
-                plazaId: this.$store.state.plazaId
+                plazaId: this.$store.state.plazaId,
             }
-            querySelect({ data, postParams }).then(res => {
+            if (major != '土建') {
+                data.onlyMainAsset = true
+            }
+            this.handleOption = []
+            this.handleOption.push({
+                id: '1',
+                name: '全部',
+            })
+            querySelect({ data, postParams }).then((res) => {
                 //console.log(res)
-                let handleresults = res.data.data.sms_qtsx.handleresults
-                this.handleOption = []
-                this.handleOption.push({
-                    id: '1',
-                    name: '全部'
-                })
-                handleresults.forEach(el => {
+                let handleresults = res.data && res.data.data && res.data.data.sms_qtsx ? res.data.data.sms_qtsx.handleresults : []
+                handleresults.forEach((el) => {
                     this.handleOption.push({
                         name: el.value,
-                        id: el.key
+                        id: el.key,
                     })
                 })
             })
-        }
+        },
     },
     watch: {
         smsxt(newV, oldV) {
@@ -216,25 +219,17 @@ export default {
             if (newV !== oldV) {
                 this.tabFind()
                 this.getList()
-                this.$nextTick(() => {
-                    // 页面渲染完成后的回调
-                    this.tableMaxHeight = this.$refs.tableBox.offsetHeight
-                })
             }
         },
         handleresults() {
             this.getList()
-        }
+        },
     },
     mounted() {
         this.tabFind()
         //console.log(this.smsxt)
         this.getList()
-        this.$nextTick(() => {
-            // 页面渲染完成后的回调
-            this.tableMaxHeight = this.$refs.tableBox.offsetHeight
-        })
-    }
+    },
 }
 </script>
 <style lang="less" scoped>

+ 450 - 0
src/views/equipment/table/rcwbTable.vue

@@ -0,0 +1,450 @@
+<!-- 维保 -->
+<template>
+    <div class='rcwb-list'>
+        <div class='eq-list-top'>
+            <el-input
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
+                clearable
+                placeholder='搜索设备名称或内码'
+                size='small'
+                prefix-icon='el-icon-search'
+                v-model='sbjc'
+                style='margin-right:12px;width:192px;'
+            ></el-input>
+            <el-input
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
+                clearable
+                placeholder='搜索事项记录描述'
+                size='small'
+                prefix-icon='el-icon-search'
+                v-model='matters'
+                style='margin-right:12px;width:192px;'
+            ></el-input>
+            <el-input
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
+                clearable
+                placeholder='搜索任务编号'
+                size='small'
+                prefix-icon='el-icon-search'
+                v-model='rwbh'
+                style='margin-right:12px;width:180px;'
+            ></el-input>
+            <Select
+                @change='pageChanged(1)'
+                width='160'
+                tipPlace='top'
+                v-model='status'
+                caption='任务状态:'
+                v-if='status.length>=0'
+                :selectdata='statusOption'
+                :placeholder='""'
+            ></Select>
+            <Select
+                @change='pageChanged(1)'
+                width='160'
+                tipPlace='top'
+                v-model='ischange'
+                caption='是否正常:'
+                :selectdata='changeOption'
+                :placeholder='""'
+                style='margin-right:12px'
+            ></Select>
+            <div class='picker-box'>
+                <span class='picker-span'>任务开始日期:</span>
+                <el-date-picker
+                    style='width:182px'
+                    v-model='reportdate'
+                    value-format='yyyyMMdd'
+                    type='daterange'
+                    @change='pageChanged(1)'
+                    size='mini'
+                    range-separator='-'
+                    start-placeholder
+                    end-placeholder
+                ></el-date-picker>
+            </div>
+            <input-dialog :type='6' @confirm='confirm'></input-dialog>
+        </div>
+        <div ref='tableBox'>
+            <el-table :data='tableData' :border='true' style='width: 100%' @row-click='innerTable'>
+                <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
+                <el-table-column prop label='设备名称' show-overflow-tooltip resizable min-width='434'>
+                    <template slot-scope='{row}'>{{row.sbmc||'--'}}</template>
+                </el-table-column>
+                <el-table-column prop label='设备内码' :show-overflow-tooltip='true' width='80'>
+                    <template slot-scope='{row}'>{{row.assetnum||'--'}}</template>
+                </el-table-column>
+                <el-table-column prop label='核心维保事项记录' :show-overflow-tooltip='true' min-width='225'>
+                    <template slot-scope='{row}'>{{row.matters||'--'}}</template>
+                </el-table-column>
+                <el-table-column prop label='现场照片' :show-overflow-tooltip='true' width='80'>
+                    <template slot-scope='{row}'>
+                        <div
+                            v-if='row.glsmsImage'
+                            style='cursor:pointer;color: #0091ff;'
+                            @click.stop='clickPic(row.glsmsImage)'
+                        >{{row.glsmsImage.length+'张'}}</div>
+                        <div v-else>{{'--'}}</div>
+                    </template>
+                </el-table-column>
+                <el-table-column prop label='维保任务' align='center'>
+                    <el-table-column prop label='任务编号' :show-overflow-tooltip='true'>
+                        <template slot-scope='{row}'>
+                            <div style='cursor:pointer;color: #0091ff;'>{{row.wb_gzglid||'--'}}</div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop label='维保任务名称' :show-overflow-tooltip='true' min-width='360'>
+                        <template slot-scope='{row}'>{{row.wbrwmc || '--'}}</template>
+                    </el-table-column>
+                    <el-table-column prop label='任务状态' :show-overflow-tooltip='true'>
+                        <template slot-scope='{row}'>{{row.status||'--'}}</template>
+                    </el-table-column>
+                    <el-table-column prop label='开始时间' :show-overflow-tooltip='true' width='130'>
+                        <template slot-scope='{row}'>{{row.sjkssj?formatterTime(row.sjkssj):'--'}}</template>
+                    </el-table-column>
+                    <el-table-column prop label='完成时间' :show-overflow-tooltip='true' width='130'>
+                        <template slot-scope='{row}'>{{row.sjwcsj?formatterTime(row.sjwcsj):'--'}}</template>
+                    </el-table-column>
+                    <el-table-column prop label='执行耗时(天)' :show-overflow-tooltip='true' min-width='130' :sortable='true'>
+                        <template slot-scope='{row}'>{{row.sjcxsjt||'--'}}</template>
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column prop label='是否正常' :show-overflow-tooltip='true' width='80'>
+                    <template slot-scope='{row}'>{{row.zt||'--'}}</template>
+                </el-table-column>
+                <el-table-column prop label='异常工单' align='center'>
+                    <el-table-column prop label='异常工单编号' :show-overflow-tooltip='true' min-width='110'>
+                        <template slot-scope='{row}'>
+                            <div @click='ycgd(row)'>{{row.wonum||'--'}}</div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop label='描述' :show-overflow-tooltip='true' width='900'>
+                        <template slot-scope='{row}'>{{row.description||'--'}}</template>
+                    </el-table-column>
+                    <el-table-column prop label='填报时间' :show-overflow-tooltip='true' width='130'>
+                        <template slot-scope='{row}'>{{row.reportdate?formatterTime(row.reportdate):'--'}}</template>
+                    </el-table-column>
+                    <el-table-column prop label='验收时间' :show-overflow-tooltip='true' width='130'>
+                        <template slot-scope='{row}'>{{row.sjjssj?formatterTime(row.sjjssj):'--'}}</template>
+                    </el-table-column>
+                </el-table-column>
+            </el-table>
+        </div>
+        <div class='foot'>
+            <el-pagination
+                background
+                layout='prev, pager, next'
+                :total='total'
+                :current-page='currentPage'
+                :page-size='size'
+                @prev-click='pageChanged'
+                @next-click='pageChanged'
+                @current-change='pageChanged'
+            ></el-pagination>
+            <pic-large :imgUrl='imgUrl' ref='picLargeOpen'></pic-large>
+        </div>
+    </div>
+</template>
+<script>
+import { queryWb } from '@/api/room.js'
+import { mapGetters } from 'vuex'
+import { Select } from 'meri-design'
+import inputDialog from './inputDIalog'
+import { formatterTime, number_format } from '@/utils/format.js'
+import { querySelect } from '@/api/public.js'
+export default {
+    components: { Select, inputDialog },
+    data() {
+        return {
+            tableData: [],
+            total: 0,
+            currentPage: 1,
+            reportdate: '',
+            ischange: '全部',
+            sbjc: '',
+            formatterTime,
+            number_format,
+            changeOption: [
+                {
+                    id: '2',
+                    name: '全部',
+                },
+            ],
+            statusOption: [],
+            status: '全部',
+            rwbh: '',
+            imgUrl: [],
+            allArr: [
+                {
+                    id: '全部',
+                    name: '全部',
+                },
+            ],
+            matters: '',
+            bill: '',
+            ycgdtbsj: '',
+            complete: '',
+            ycgdyssj: '',
+        }
+    },
+    props: ['smsxt', 'diff', 'tabLabel', 'size', 'assetnum'],
+    computed: {
+        ...mapGetters(['floorSelect', 'plazaId']),
+    },
+    methods: {
+        //序号的方法
+        indexMethod(index) {
+            return (this.currentPage - 1) * this.size + index + 1
+        },
+        //工单详情
+        innerTable(row) {
+            if (row.apptype == '外委' || row.apptype == '自维') {
+                if (row.wb_gzglid) {
+                    window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=WB_GZGL&uniqueid=${row.wb_gzglid}`)
+                }
+            } else if (row.apptype == '安全维保') {
+                window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=AQ_WB_GZGL&uniqueid=${row.wb_gzglid}`)
+            }
+        },
+        // 工单
+        ycgd(row) {
+            if (row.apptype == '外委' || row.apptype == '自维') {
+                if (row.wb_gzglid) {
+                    window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=WB_GZGL&uniqueid=${row.wb_gzglid}`)
+                }
+            } else if (row.apptype == '安全维保') {
+                window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=WB_GZGL&uniqueid=${row.wb_gzglid}`)
+            }
+        },
+        //多余输入框监听
+        confirm(complete, bill, ycgdtbsj, ycgdyssj) {
+            this.complete = complete
+            this.bill = bill
+            this.ycgdtbsj = ycgdtbsj
+            this.ycgdyssj = ycgdyssj
+            this.pageChanged(1)
+        },
+        pageChanged(page) {
+            this.currentPage = page
+            this.getList()
+        },
+        // 下拉框数据
+        changeSelect() {
+            this.department = []
+            let postParams = [
+                {
+                    columnName: { status: 'status', zt: 'zt' },
+                    tableName: 'sms_wbzy',
+                },
+            ]
+            let data = {
+                plazaId: this.plazaId,
+            }
+            if (this.smsxt != '1008') {
+                data.onlyMainAsset = true
+            }
+            querySelect({ data, postParams }).then((res) => {
+                let status = [],
+                    zt = [],
+                    arr = [],
+                    arr1 = []
+
+                status = res.data.data.sms_wbzy.status ? res.data.data.sms_wbzy.status : []
+                zt = res.data.data.sms_wbzy.zt ? res.data.data.sms_wbzy.zt : []
+                if (status.length > 0) {
+                    status.forEach((el) => {
+                        let obj = {
+                            id: el.key,
+                            name: el.value,
+                        }
+                        arr.push(obj)
+                    })
+                    this.statusOption = this.allArr.concat(arr)
+                }
+                if (zt.length > 0) {
+                    zt.forEach((el) => {
+                        console.log(el)
+                        let obj = {
+                            id: el.key,
+                            name: el.value,
+                        }
+                        arr1.push(obj)
+                    })
+                    this.changeOption = this.allArr.concat(arr1)
+                }
+            })
+        },
+        getList() {
+            let data = {
+                smsxt: this.smsxt,
+                plazaId: this.plazaId,
+                page: this.currentPage,
+                size: this.size,
+                orderBy: 'wb_gzglid,0;assetnum,1;reportedby,0;',
+            }
+            //区分主要设备和全部设备
+            if (this.smsxt != '1008') {
+                data.onlyMainAsset = true
+            }
+            if (this.assetnum) {
+                data.assetnum = this.assetnum
+            }
+            //下拉
+            if (this.ischange && this.ischange != '全部') {
+                data.zt = this.ischange
+            }
+            if (this.status && this.status != '全部') {
+                data.status = this.status
+            }
+            //工单填报时间
+            if (this.ycgdtbsj) {
+                data.reportdateStartDate = this.ycgdtbsj[0] + '000000'
+                data.reportdateEndDate = this.ycgdtbsj[1] + '000000'
+            }
+            //工单验收时间
+            if (this.ycgdyssj) {
+                data.sjjssjStartDate = this.ycgdyssj[0] + '000000'
+                data.sjjssjEndDate = this.ycgdyssj[1] + '000000'
+            }
+            //任务开始时间
+            if (this.reportdate) {
+                data.sjkssjStartDate = this.reportdate[0] + '000000'
+                data.sjkssjEndDate = this.reportdate[1] + '000000'
+            }
+            //任务完成时间
+            if (this.complete) {
+                data.sjwcsjStartDate = this.complete[0] + '000000'
+                data.sjwcsjEndDate = this.complete[1] + '000000'
+            }
+            //输入框
+            data.keyword = ''
+            if (this.sbjc) {
+                data.keyword += `${this.sbjc}:sbmc,assetnum;`
+            }
+            if (this.matters) {
+                data.keyword += `${this.matters}:description,matters;`
+            }
+            if (this.rwbh) {
+                data.keyword += `${this.rwbh}:wb_gzglid;`
+            }
+            if (this.bill) {
+                data.keyword += `${this.bill}:wonum;`
+            }
+            if (data.keyword == '') {
+                delete data.keyword
+            }
+            queryWb({ getParams: data }).then((res) => {
+                this.total = res.count
+                this.tableData = res.data ? res.data : []
+            })
+        },
+        clickPic(row) {
+            this.imgUrl = []
+            if (row) {
+                row.forEach((el) => {
+                    let obj = {
+                        name: el.description,
+                        url: el.url,
+                    }
+                    this.imgUrl.push(obj)
+                })
+            }
+            this.$refs.picLargeOpen.open(this.imgUrl)
+        },
+        startMethods() {
+            this.changeSelect()
+            this.getList()
+        },
+    },
+    watch: {
+        diff(newV, oldV) {
+            if (newV !== oldV) {
+                this.getList()
+            }
+        },
+        assetnum(newV, oldV) {
+            if (newV !== oldV) {
+                // this.tabFind()
+                this.getList()
+            }
+        },
+        tabLabel(newV, oldV) {
+            if (newV !== oldV) {
+                this.changeSelect()
+                this.getList()
+            }
+        },
+        ischange() {
+            this.getList()
+        },
+    },
+    mounted() {
+        console.log(this.assetnum)
+        this.startMethods()
+    },
+}
+</script>
+<style lang="less" scoped>
+.rcwb-list {
+    .eq-list-top {
+        display: flex;
+        margin-bottom: 12px;
+        .picker-box {
+            display: flex;
+            align-items: center;
+            background: #fff;
+            padding: 0 6px;
+            border: 1px solid #dcdfe6;
+            border-radius: 4px;
+            height: 32px;
+            box-sizing: border-box;
+            margin-right: 12px;
+            .picker-span {
+                margin-right: 6px;
+                color: rgba(0, 0, 0, 0.65);
+            }
+        }
+    }
+    td {
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+    }
+    .foot {
+        height: 32px;
+        display: flex;
+        justify-content: flex-end;
+        margin-top: 28px;
+    }
+}
+</style>
+<style lang="less" >
+.rcwb-list {
+    .picker-box {
+        .el-input__inner {
+            border: none;
+        }
+        .el-range-editor.el-input__inner {
+            padding: 3px 0px;
+        }
+        .el-icon-date {
+            display: none;
+        }
+        .el-range__close-icon {
+            position: absolute;
+            right: 0px;
+            top: 2px;
+        }
+        .el-range-editor--mini .el-range-input {
+            font-size: 14px;
+            color: rgb(31, 36, 41);
+        }
+    }
+    /deep/.el-table td {
+        cursor: pointer;
+    }
+}
+</style>

+ 553 - 0
src/views/equipment/table/rcwxTable.vue

@@ -0,0 +1,553 @@
+<!-- 维修-->
+<template>
+  <div class="rcwx-list">
+    <div class="eq-list-top">
+      <el-input
+        placeholder="搜索设备名称或内码"
+        size="small"
+        @keyup.enter.native="pageChanged(1)"
+        @blur="pageChanged(1)"
+        clearable
+        prefix-icon="el-icon-search"
+        v-model="sbjc"
+        style="width:192px;margin-right:12px"
+      ></el-input>
+      <el-input
+        placeholder="搜索位置名称或内码"
+        size="small"
+        @keyup.enter.native="pageChanged(1)"
+        @blur="pageChanged(1)"
+        clearable
+        prefix-icon="el-icon-search"
+        v-model="wzjc"
+        style="width:192px;margin-right:12px"
+      ></el-input>
+      <el-input
+        placeholder="搜索描述"
+        size="small"
+        clearable
+        @keyup.enter.native="pageChanged(1)"
+        @blur="pageChanged(1)"
+        prefix-icon="el-icon-search"
+        v-model="matters"
+        style="width:192px;margin-right:12px"
+      ></el-input>
+      <el-input
+        placeholder="搜索工单编号"
+        size="small"
+        clearable
+        @keyup.enter.native="pageChanged(1)"
+        @blur="pageChanged(1)"
+        prefix-icon="el-icon-search"
+        v-model="wonum2"
+        style="width:192px;margin-right:12px"
+      ></el-input>
+      <Select
+        @change="confirmMore"
+        @confirm="confirmMore"
+        style="margin-right:12px;"
+        v-model="status"
+        width="200"
+        tipPlace="top"
+        caption="任务状态描述:"
+        multiple
+        :selectdata="statusOption"
+      ></Select>
+      <Select
+        @change="pageChanged(1)"
+        style="margin-right:12px;"
+        v-model="source"
+        width="180"
+        tipPlace="top"
+        caption="报修来源:"
+        :selectdata="sourceOption"
+      ></Select>
+      <!-- <el-input
+                placeholder='搜索执行人'
+                size='small'
+                clearable
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
+                prefix-icon='el-icon-search'
+                v-model='people'
+                style='width:192px;margin-right:12px'
+      ></el-input>-->
+      <input-dialog :type="5" @confirm="confirm"></input-dialog>
+    </div>
+    <div ref="tableBox">
+      <el-table :data="tableData" :border="true" style="width: 100%" @row-click="innerTable">
+        <el-table-column type="index" label="序号" width="60" :index="indexMethod"></el-table-column>
+        <el-table-column prop="sbmc" label="设备名称" show-overflow-tooltip resizable min-width="100">
+          <template slot-scope="{row}">{{row.sbmc || '--'}}</template>
+        </el-table-column>
+        <el-table-column prop="matters" label="位置名称" width="240" show-overflow-tooltip resizable>
+          <template slot-scope="{row}">{{row.wzjc || '--'}}</template>
+        </el-table-column>
+        <el-table-column
+          prop="description"
+          label="问题描述"
+          show-overflow-tooltip
+          resizable
+          min-width="280"
+        >
+          <template slot-scope="{row}">{{row.description || '--'}}</template>
+        </el-table-column>
+        <el-table-column prop="brand" label="报修照片" width="80">
+          <template slot-scope="{row}">
+            <div
+              v-if="row.repair_photos_num"
+              style="cursor:pointer;color: #0091ff;"
+              @click.stop="clickPicRepair(row)"
+            >{{row.repair_photos_num+'张'}}</div>
+            <div v-else>{{'--'}}</div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="description"
+          label="任务状态描述"
+          show-overflow-tooltip
+          resizable
+          min-width="200"
+        >
+          <template slot-scope="{row}">{{row.status || '--'}}</template>
+        </el-table-column>
+        <el-table-column prop="brand" label="完工照片" width="80">
+          <template slot-scope="{row}">
+            <div
+              v-if="row.finish_photos_num"
+              style="cursor:pointer;color: #0091ff;"
+              @click.stop="clickPicFinish(row)"
+            >{{row.finish_photos_num+'张'}}</div>
+            <div v-else>{{'--'}}</div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="reportdate" label="要求完成时间" width="140">
+          <template slot-scope="{row}">{{row.schedfinish?formatterTime(row.schedfinish): '--'}}</template>
+        </el-table-column>
+        <el-table-column prop="sjjssj" label="实际完工时间" width="140">
+          <template slot-scope="{row}">{{row.wotjyssj?formatterTime(row.wotjyssj): '--'}}</template>
+        </el-table-column>
+        <el-table-column
+          prop="description"
+          label="报修来源"
+          show-overflow-tooltip
+          resizable
+          min-width="200"
+        >
+          <template slot-scope="{row}">{{row.bxfwlymc || '--'}}</template>
+        </el-table-column>
+        <el-table-column
+          prop="description"
+          label="执行人"
+          show-overflow-tooltip
+          resizable
+          min-width="80"
+        >
+          <template slot-scope="{row}">{{row.lead || '--'}}</template>
+        </el-table-column>
+        <el-table-column
+          prop="description"
+          label="工单编号"
+          show-overflow-tooltip
+          resizable
+          min-width="80"
+        >
+          <template slot-scope="{row}">
+            <div
+              v-if="row.wonum"
+              @click.stop="staff(row)"
+              style="cursor:pointer;color: #0091ff;"
+            >{{row.wonum}}</div>
+            <div v-else>{{'--'}}</div>
+          </template>
+        </el-table-column>
+        <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="description"
+          label="位置内码"
+          show-overflow-tooltip
+          resizable
+          min-width="80"
+        >
+          <template slot-scope="{row}">{{row.location || '--'}}</template>
+        </el-table-column>
+      </el-table>
+    </div>
+    <div class="foot">
+      <el-pagination
+        background
+        layout="prev, pager, next"
+        :total="total"
+        :page-size="size"
+        :current-page="currentPage"
+        @prev-click="pageChanged"
+        @next-click="pageChanged"
+        @current-change="pageChanged"
+      ></el-pagination>
+      <pic-large :imgUrl="imgUrl" ref="picLargeOpen"></pic-large>
+    </div>
+  </div>
+</template>
+<script>
+import { queryWxzy, queryWxzyImg } from "@/api/equipmentList.js";
+import { mapGetters } from "vuex";
+import inputDialog from "./inputDIalog";
+import { Select } from "meri-design";
+import { querySelect } from "@/api/public.js";
+import { formatterTime, number_format } from "@/utils/format.js";
+export default {
+  components: { Select, inputDialog },
+  data() {
+    return {
+      tableData: [],
+      total: 0,
+      currentPage: 1,
+      reportdate: "",
+      sjjssj: "",
+      sbjc: "",
+      wzjc: "",
+      matters: "",
+      wonum2: "",
+      wonum: "",
+      sourceOption: [],
+      statusOption: [],
+      source: "全部",
+      formatterTime,
+      number_format,
+      imgUrl: [],
+      people: "",
+      locationName: "",
+      keyword: "",
+      status: [], //搜索状态描述
+      getStatus: [
+        "新建",
+        "待派工",
+        "已派工",
+        "待验收",
+        "验收通过",
+        "工单执行退回",
+        "问题待解决",
+        "执行中"
+      ] //默认选项如果statusOption存在则写入status中
+    };
+  },
+  computed: {
+    ...mapGetters(["floorSelect"])
+  },
+  props: ["smsxt", "diff", "tabLabel", "size", "assetnum"],
+  methods: {
+    //序号的方法
+    indexMethod(index) {
+      return (this.currentPage - 1) * this.size + index + 1;
+    },
+    innerTable(row) {
+      if (row.workorderid) {
+        window.open(
+          `http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=JXWO&uniqueid=${row.workorderid}`
+        );
+      }
+    },
+    //跳转工单编号
+    staff(row) {
+      console.log(row);
+      if (row.wonum) {
+        window.open(
+          `http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=JXWO&uniqueid=${row.wonum}`
+        );
+      }
+    },
+    //多余输入框监听
+    confirm(reportdate, real, locationName, people) {
+      this.reportdate = reportdate;
+      this.sjjssj = real;
+      this.locationName = locationName;
+      this.people = people;
+      this.pageChanged(1);
+    },
+    pageChanged(page) {
+      this.currentPage = page;
+      this.getList();
+    },
+    getList() {
+      let getParams = {
+        data: {
+          smsxt: this.smsxt,
+          // diff: this.diff,
+          plazaId: this.$store.state.plazaId,
+          page: this.currentPage,
+          size: this.size
+        }
+      };
+      //区分主要设备和全部设备
+      if (this.smsxt != "1008") {
+        getParams.data.onlyMainAsset = true;
+      }
+      if (this.assetnum) {
+        getParams.data.assetnum = this.assetnum;
+      }
+      //下拉
+      if (this.reportdate) {
+        getParams.data.schedfinishStartDate = this.reportdate[0] + "000000";
+        getParams.data.schedfinishEndDate = this.reportdate[1] + "000000";
+      }
+      if (this.real) {
+        getParams.data.wotjyssjStartDate = this.real[0] + "000000";
+        getParams.data.wotjyssjEndDate = this.real[1] + "000000";
+      }
+      if (this.source && this.source != "全部") {
+        getParams.data.bxfwlymc = this.source;
+        getParams.data.bxfwly = this.source;
+      }
+      //输入框搜索
+      getParams.data.keyword = "";
+
+      if (this.sbjc) {
+        getParams.data.keyword += `${this.sbjc}:sbmc,assetnum;`;
+      }
+      if (this.wzjc) {
+        getParams.data.keyword += `${this.wzjc}:wzjc,location;`;
+      }
+      if (this.matters) {
+        getParams.data.keyword += `${this.matters}:description;`;
+      }
+      if (this.locationName) {
+        getParams.data.keyword += `${this.locationName}:location;`;
+      }
+      if (this.wonum2) {
+        getParams.data.keyword += `${this.wonum2}:wonum;`;
+      }
+      if (this.people) {
+        getParams.data.keyword += `${this.people}:lead;`;
+      }
+      if (getParams.data.keyword == "") {
+        delete getParams.data.keyword;
+      }
+      if (this.status.length) {
+        const data = {
+          status: this.status
+        };
+        getParams.getParams = data;
+      }
+      queryWxzy(getParams).then(res => {
+        this.tableData = res.data.data || [];
+        this.total = res.count;
+      });
+    },
+    clickPicRepair(row) {
+      let getParams = {
+        data: {
+          plazaId: this.$store.state.plazaId,
+          ticketuid: row.ticketuid,
+          type: 0,
+          workorderid: row.workorderid
+        }
+      };
+      queryWxzyImg(getParams).then(res => {
+        let url = res.data;
+        this.imgUrl = [];
+        if (url) {
+          url.forEach(el => {
+            let obj = {
+              name: el.description,
+              url: el.urlname
+            };
+            this.imgUrl.push(obj);
+          });
+        }
+        this.$refs.picLargeOpen.open(this.imgUrl);
+      });
+    },
+    clickPicFinish(row) {
+      let getParams = {
+        data: {
+          plazaId: this.plazaId,
+          ticketuid: row.ticketuid,
+          type: 1,
+          workorderid: row.workorderid
+        }
+      };
+      queryWxzyImg(getParams).then(res => {
+        let url = res.data;
+        this.imgUrl = [];
+        if (url) {
+          url.forEach(el => {
+            let obj = {
+              name: el.description,
+              url: el.urlname
+            };
+            this.imgUrl.push(obj);
+          });
+        }
+        this.$refs.picLargeOpen.open(this.imgUrl);
+      });
+    },
+    startMethods() {
+      this.tabFind();
+    },
+    //下拉框查询
+    tabFind() {
+      let postParams = [
+        {
+          columnName: { bxfwly: "bxfwlymc" },
+          params: {
+            smsxt: this.smsxt
+          },
+          tableName: "sms_wxzy" //视图名称
+        }
+      ];
+      let data = {
+        plazaId: this.$store.state.plazaId
+      };
+      if (this.smsxt != "1008") {
+        data.onlyMainAsset = true;
+      }
+      querySelect({ data, postParams }).then(res => {
+        //console.log(res)
+        let bxfwlymc =
+          res.data && res.data.data && res.data.data.sms_wxzy
+            ? res.data.data.sms_wxzy.bxfwly
+            : [];
+        this.sourceOption = [];
+        this.sourceOption.push({
+          name: "全部",
+          id: "全部"
+        });
+        bxfwlymc.forEach(el => {
+          this.sourceOption.push({
+            name: el.value,
+            id: el.key
+          });
+        });
+      });
+      // 2任务状态
+      let postParams2 = [
+        {
+          columnName: { status: "status" },
+          params: {
+            smsxt: this.smsxt
+          },
+          tableName: "sms_wxzy" //视图名称
+        }
+      ];
+      querySelect({ data, postParams: postParams2 }).then(res => {
+        let bxfwlymc =
+          res.data && res.data.data && res.data.data.sms_wxzy
+            ? res.data.data.sms_wxzy.status
+            : [];
+        this.statusOption = [];
+        // this.statusOption.push({
+        //   name: "全部",
+        //   id: "全部"
+        // });
+        bxfwlymc.forEach(el => {
+          this.statusOption.push({
+            name: el.value,
+            id: el.key
+          });
+        });
+        let status = [];
+        this.statusOption.forEach(item => {
+          if (this.getStatus.includes(item.id)) {
+            status.push(item.id);
+          }
+        });
+        this.status = status;
+        // 获取数据
+        this.getList();
+      });
+    },
+    confirmMore(val) {
+      const arr = [];
+      val.forEach(item => {
+        arr.push(item.id);
+      });
+      this.status = arr;
+      this.getList();
+    }
+  },
+  watch: {
+    diff(newV, oldV) {
+      if (newV !== oldV) {
+        this.startMethods();
+      }
+    },
+    assetnum(newV, oldV) {
+      if (newV !== oldV) {
+        // this.tabFind()
+        this.getList();
+      }
+    },
+    tabLabel(newV, oldV) {
+      if (newV !== oldV) {
+        this.startMethods();
+      }
+    }
+  },
+  mounted() {
+    this.startMethods();
+  }
+};
+</script>
+<style lang="less" scoped>
+.rcwx-list {
+  .eq-list-top {
+    display: flex;
+    margin-bottom: 12px;
+    .picker-box {
+      display: flex;
+      align-items: center;
+      background: #fff;
+      padding: 0 6px;
+      border: 1px solid #dcdfe6;
+      border-radius: 4px;
+      height: 32px;
+      box-sizing: border-box;
+      margin-right: 12px;
+      .picker-span {
+        margin-right: 6px;
+        color: rgba(0, 0, 0, 0.65);
+      }
+    }
+  }
+  td {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+  .foot {
+    height: 32px;
+    display: flex;
+    justify-content: flex-end;
+    margin-top: 28px;
+  }
+}
+</style>
+<style lang="less" >
+.rcwx-list {
+  .picker-box {
+    .el-input__inner {
+      border: none;
+    }
+    .el-range-editor.el-input__inner {
+      padding: 3px 0px;
+    }
+    .el-icon-date {
+      display: none;
+    }
+    .el-range__close-icon {
+      position: absolute;
+      right: 0px;
+      top: 2px;
+    }
+    .el-range-editor--mini .el-range-input {
+      font-size: 14px;
+      color: rgb(31, 36, 41);
+    }
+  }
+  /deep/.el-table td {
+    cursor: pointer;
+  }
+}
+</style>

+ 50 - 30
src/views/equipment/table/standTable.vue

@@ -5,8 +5,8 @@
             <el-input
                 placeholder='搜索设备名称'
                 size='small'
-                @keyup.enter.native='getList'
-                @blur='getList'
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
                 prefix-icon='el-icon-search'
                 v-model='sbjc'
                 clearable
@@ -16,15 +16,15 @@
                 placeholder='搜索品牌型号'
                 size='small'
                 clearable
-                @keyup.enter.native='getList'
-                @blur='getList'
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
                 prefix-icon='el-icon-search'
                 v-model='keyword'
                 style='width:192px;margin-right:12px'
             ></el-input>
             <Select
-                @change='getList'
-                @cancel='getList'
+                @change='pageChanged(1)'
+                @cancel='pageChanged(1)'
                 v-model='floor'
                 style='margin-right:12px;'
                 width='160'
@@ -36,15 +36,15 @@
                 clearable
                 placeholder='搜索生产厂商'
                 size='small'
-                @keyup.enter.native='getList'
-                @blur='getList'
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
                 prefix-icon='el-icon-search'
                 v-model='manufacturer'
                 style='width:192px;'
             ></el-input>
         </div>
-        <div ref='tableBox' style='height: calc(100% - 115px);'>
-            <el-table :data='tableData' :max-height='tableMaxHeight' :border='true' style='width: 100%' @row-click='rowHandle'>
+        <div ref='tableBox'>
+            <el-table :data='tableData' :border='true' style='width: 100%' @row-click='rowHandle'>
                 <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
                 <el-table-column prop label='设备名称' show-overflow-tooltip resizable min-width='300'>
                     <template slot-scope='{row}'>{{row.type_name || '--'}}</template>
@@ -73,25 +73,29 @@
                 layout='prev, pager, next'
                 :total='total'
                 :page-size='size'
+                :current-page='currentPage'
                 @prev-click='pageChanged'
                 @next-click='pageChanged'
                 @current-change='pageChanged'
             ></el-pagination>
         </div>
         <!-- 标准表格详情钻取表 -->
-        <el-dialog width='90%' style='height:900px;overflow: hidden;' :title='`${InfoName}-${type_name}`' :visible.sync='innerVisible' append-to-body>
-            <eq-detail ref='qdDialog' :row='row' :major='major' :sonpage='sonpage'></eq-detail>
+        <!-- <el-dialog width='90%' style='height:900px;overflow: hidden;' :title='`${InfoName}-${type_name}`' :visible.sync='innerVisible' append-to-body>
+            <eq-detail ref='qdDialog' :row='row' :major='major' :smsxt='smsxt' :diff='diff' :sign='sign'></eq-detail>
+        </el-dialog>-->
+        <!-- 标准表格详情钻取表,使用全屏弹窗 -->
+        <el-dialog width='100%' :title='`${type_name}设备清单`' :visible.sync='innerVisible' append-to-body :fullscreen='true'>
+            <eq-detail ref='qdDialog' :row='row' :major='major' :smsxt='smsxt' :diff='diff' :sign='sign'></eq-detail>
         </el-dialog>
     </div>
 </template>
 <script>
 import { queryEquipmentList } from '@/api/equipmentList.js'
+// import EqDetail from './eqDetaileDialog'
 import EqDetail from './eqDetaileDialog'
-
 import { mapGetters } from 'vuex'
 import { Select } from 'meri-design'
 import store from '../../../store/index'
-
 export default {
     data() {
         return {
@@ -99,7 +103,6 @@ export default {
             tableData: [],
             total: 0,
             currentPage: 1,
-            sonpage:1,
             size: 10,
             keyword: '',
             floor: '1',
@@ -107,11 +110,11 @@ export default {
             sbjc: '',
             manufacturer: '',
             type_name: '',
-            tableMaxHeight: 0,
             floorAllSelect: [],
+            sign: 1,
         }
     },
-    props: ['major', 'param', 'InfoName'],
+    props: ['major', 'param', 'InfoName', 'smsxt', 'diff'],
     components: { EqDetail, Select },
     computed: {
         ...mapGetters(['floorSelect']),
@@ -124,9 +127,9 @@ export default {
             this.type_name = row.type_name
             this.innerVisible = true
             this.row = row
-            this.sonpage = 1
+            this.sign = 1
         },
-        pageChanged(page, size) {
+        pageChanged(page) {
             this.currentPage = page
             this.getList()
         },
@@ -153,6 +156,10 @@ export default {
                 major: major,
                 // floor:this.floor
             }
+            //区分土建主要设备
+            if (this.smsxt != '1008') {
+                data.onlyMainAsset = true
+            }
             //下拉
             if (this.floor && this.floor != 1) {
                 postParams.gname = this.floor
@@ -192,10 +199,6 @@ export default {
         param(newV, oldV) {
             if (newV !== oldV) {
                 this.getList()
-                this.$nextTick(() => {
-                    // 页面渲染完成后的回调
-                    this.tableMaxHeight = this.$refs.tableBox.offsetHeight
-                })
                 this.getFloorAllSelect()
             }
         },
@@ -205,8 +208,8 @@ export default {
         // 监听 vuex 中currentFloor的变化,切换楼层后,更新下拉菜单
         '$store.state.currentFloor': {
             handler(newV, oldV) {
-                if (newV.gname !== oldV.gname) {
-                    this.floor = newV.gname
+                if (newV.gcname !== oldV.gcname) {
+                    this.floor = newV.gcname
                     this.getList()
                 }
             },
@@ -216,10 +219,6 @@ export default {
     mounted() {
         // this.floor = this.$cookie.get('floorMapId')
         this.getList()
-        this.$nextTick(() => {
-            // 页面渲染完成后的回调
-            this.tableMaxHeight = this.$refs.tableBox.offsetHeight
-        })
         this.getFloorAllSelect()
     },
 }
@@ -243,6 +242,9 @@ export default {
         margin-top: 28px;
     }
 }
+/deep/ .el-dialog__body {
+    padding: 0;
+}
 @media screen and (max-width: 1600px) {
     /deep/ .el-dialog__body {
         padding: 0;
@@ -251,7 +253,8 @@ export default {
         padding: 4px 0;
     }
     /deep/ .el-dialog {
-        margin-top: 5vh !important;
+        // margin-top: 5vh !important;
+        margin-top: 0 !important;
     }
 }
 </style>
@@ -261,4 +264,21 @@ export default {
         cursor: pointer;
     }
 }
+// 弹窗头部样式修改
+.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;
+    padding-right: 6px;
+    padding-left: 24px;
+    font-weight: bold;
+    color: #fff;
+    font-weight: normal;
+}
 </style>

+ 1 - 2
src/views/equipment/table/tjTable.vue

@@ -59,7 +59,6 @@ import { mapGetters } from 'vuex'
 export default {
     data() {
         return {
-            pageSize: 10,
             tableData: [],
             total: 0,
             currentPage: 1,
@@ -77,7 +76,7 @@ export default {
         indexMethod(index) {
             return (this.currentPage - 1) * this.size + index + 1
         },
-        pageChanged(page, size) {
+        pageChanged(page) {
             this.currentPage = page
             this.getList()
         },

+ 45 - 36
src/views/equipment/table/wbTable.vue

@@ -5,8 +5,8 @@
             <el-input
                 placeholder='搜索设备名称编号'
                 size='small'
-                @keyup.enter.native='getList'
-                @blur='getList'
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
                 prefix-icon='el-icon-search'
                 v-model='sbjc'
                 clearable
@@ -15,15 +15,15 @@
             <el-input
                 placeholder='搜索事项类型事项描述'
                 size='small'
-                @keyup.enter.native='getList'
-                @blur='getList'
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
                 clearable
                 prefix-icon='el-icon-search'
                 v-model='matters'
                 style='width:192px;margin-right:12px'
             ></el-input>
             <Select
-                @change='getList'
+                @change='pageChanged(1)'
                 v-model='ischange'
                 style='margin-right:12px'
                 width='220'
@@ -39,7 +39,7 @@
                     v-model='reportdate'
                     value-format='yyyyMMdd'
                     type='daterange'
-                    @change='getList'
+                    @change='pageChanged(1)'
                     size='mini'
                     range-separator='-'
                     start-placeholder
@@ -55,7 +55,7 @@
                     v-model='sjjssj'
                     value-format='yyyyMMdd'
                     type='daterange'
-                    @change='getList'
+                    @change='pageChanged(1)'
                     size='mini'
                     range-separator='-'
                     start-placeholder
@@ -64,8 +64,8 @@
             </div>
             <input-dialog :type='2' @confirm='confirm'></input-dialog>
         </div>
-        <div ref='tableBox' style='height: calc(100% - 115px);'>
-            <el-table :data='tableData' :max-height='tableMaxHeight' :border='true' style='width: 100%' @row-click='innerTable'>
+        <div ref='tableBox'>
+            <el-table :data='tableData' :border='true' style='width: 100%' @row-click='innerTable'>
                 <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
                 <el-table-column prop='sbmc' label='设备名称' show-overflow-tooltip resizable width='460'>
                     <template slot-scope='{row}'>{{row.sbmc || '--'}}</template>
@@ -126,6 +126,7 @@
                 layout='prev, pager, next'
                 :total='total'
                 :page-size='size'
+                :current-page='currentPage'
                 @prev-click='pageChanged'
                 @next-click='pageChanged'
                 @current-change='pageChanged'
@@ -147,7 +148,6 @@ export default {
             tableData: [],
             total: 0,
             currentPage: 1,
-            size: 10,
             sjjssj: '',
             reportdate: '',
             ischange: '2',
@@ -157,27 +157,26 @@ export default {
             changeOption: [
                 {
                     id: '2',
-                    name: '全部'
+                    name: '全部',
                 },
                 {
                     id: '1',
-                    name: '是'
+                    name: '是',
                 },
                 {
                     id: ' 0',
-                    name: '否'
-                }
+                    name: '否',
+                },
             ],
             imgUrl: [],
             shjc: '',
             gzglid: '',
             matters: '',
-            tableMaxHeight: 0
         }
     },
-    props: ['smsxt', 'major', 'diff', 'tabLabel'],
+    props: ['smsxt', 'diff', 'tabLabel', 'size', 'assetnum'],
     computed: {
-        ...mapGetters(['floorSelect'])
+        ...mapGetters(['floorSelect']),
     },
     methods: {
         //序号的方法
@@ -208,7 +207,7 @@ export default {
         //多余输入框监听
         confirm(gzglid) {
             this.gzglid = gzglid
-            this.getList()
+            this.pageChanged(1)
         },
         pageChanged(page) {
             this.currentPage = page
@@ -218,11 +217,20 @@ export default {
             let getParams = {
                 data: {
                     smsxt: this.smsxt,
-                    diff: this.diff,
                     plazaId: this.$store.state.plazaId,
                     page: this.currentPage,
-                    size: this.size
-                }
+                    size: this.size,
+                },
+            }
+            //区分主要设备和全部设备
+            if (this.smsxt != '1008') {
+                getParams.data.onlyMainAsset = true
+            }
+            if (this.diff) {
+                getParams.data.diff = this.diff
+            }
+            if (this.assetnum) {
+                getParams.data.assetnum = this.assetnum
             }
             //下拉
             if (this.ischange && this.ischange != 2) {
@@ -252,7 +260,7 @@ export default {
             if (getParams.data.keyword == '') {
                 delete getParams.data.keyword
             }
-            queryWbsms(getParams).then(res => {
+            queryWbsms(getParams).then((res) => {
                 this.tableData = res.data || []
                 this.total = res.count
             })
@@ -260,25 +268,24 @@ export default {
         clickPic(row) {
             this.imgUrl = []
             if (row) {
-                row.forEach(el => {
+                row.forEach((el) => {
                     let obj = {
                         name: el.description,
-                        url: el.url
+                        url: el.url,
                     }
                     this.imgUrl.push(obj)
                 })
             }
             this.$refs.picLargeOpen.open(this.imgUrl)
-        }
+        },
+        startMethods() {
+            this.getList()
+        },
     },
     watch: {
         diff(newV, oldV) {
             if (newV !== oldV) {
                 this.getList()
-                this.$nextTick(() => {
-                    // 页面渲染完成后的回调
-                    this.tableMaxHeight = this.$refs.tableBox.offsetHeight
-                })
             }
         },
         tabLabel(newV, oldV) {
@@ -287,17 +294,19 @@ export default {
                 this.getList()
             }
         },
+        assetnum(newV, oldV) {
+            if (newV !== oldV) {
+                // this.tabFind()
+                this.getList()
+            }
+        },
         ischange() {
             this.getList()
-        }
+        },
     },
     mounted() {
-        this.getList()
-        this.$nextTick(() => {
-            // 页面渲染完成后的回调
-            this.tableMaxHeight = this.$refs.tableBox.offsetHeight
-        })
-    }
+        this.startMethods()
+    },
 }
 </script>
 <style lang="less" scoped>

+ 33 - 28
src/views/equipment/table/wxTable.vue

@@ -5,8 +5,8 @@
             <el-input
                 placeholder='搜索设备名称编号'
                 size='small'
-                @keyup.enter.native='getList'
-                @blur='getList'
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
                 clearable
                 prefix-icon='el-icon-search'
                 v-model='sbjc'
@@ -16,14 +16,14 @@
                 placeholder='搜索事项类型事项描述'
                 size='small'
                 clearable
-                @keyup.enter.native='getList'
-                @blur='getList'
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
                 prefix-icon='el-icon-search'
                 v-model='matters'
                 style='width:192px;margin-right:12px'
             ></el-input>
             <Select
-                @change='getList'
+                @change='pageChanged(1)'
                 style='margin-right:12px;'
                 v-model='ischange'
                 width='220'
@@ -39,7 +39,7 @@
                     v-model='reportdate'
                     value-format='yyyyMMdd'
                     type='daterange'
-                    @change='getList'
+                    @change='pageChanged(1)'
                     size='mini'
                     range-separator='-'
                     start-placeholder
@@ -55,7 +55,7 @@
                     v-model='sjjssj'
                     value-format='yyyyMMdd'
                     type='daterange'
-                    @change='getList'
+                    @change='pageChanged(1)'
                     size='mini'
                     range-separator='-'
                     start-placeholder
@@ -64,8 +64,8 @@
             </div>
             <input-dialog :type='3' @confirm='confirm'></input-dialog>
         </div>
-        <div ref='tableBox' style='height: calc(100% - 115px);'>
-            <el-table :data='tableData' :max-height='tableMaxHeight' :border='true' style='width: 100%' @row-click='innerTable'>
+        <div ref='tableBox'>
+            <el-table :data='tableData' :border='true' style='width: 100%' @row-click='innerTable'>
                 <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
                 <el-table-column prop='sbmc' label='设备名称' show-overflow-tooltip resizable min-width='460'>
                     <template slot-scope='{row}'>{{row.sbmc || '--'}}</template>
@@ -114,7 +114,7 @@
                 </el-table-column>
                 <el-table-column prop='wonum' label='工单编号' show-overflow-tooltip resizable width='80'>
                     <template slot-scope='{row}'>
-                        <div v-if='row.wonum' @click.stop='staff' style='cursor:pointer;color: #0091ff;'>{{row.wonum}}</div>
+                        <div v-if='row.wonum' @click.stop='staff(row)' style='cursor:pointer;color: #0091ff;'>{{row.wonum}}</div>
                         <div v-else>{{'--'}}</div>
                     </template>
                 </el-table-column>
@@ -126,6 +126,7 @@
                 layout='prev, pager, next'
                 :total='total'
                 :page-size='size'
+                :current-page='currentPage'
                 @prev-click='pageChanged'
                 @next-click='pageChanged'
                 @current-change='pageChanged'
@@ -147,7 +148,6 @@ export default {
             tableData: [],
             total: 0,
             currentPage: 1,
-            size: 10,
             reportdate: '',
             sjjssj: '',
             ischange: '2',
@@ -172,13 +172,12 @@ export default {
                 },
             ],
             keyword: '',
-            tableMaxHeight: 0,
         }
     },
     computed: {
         ...mapGetters(['floorSelect']),
     },
-    props: ['smsxt', 'major', 'diff', 'tabLabel'],
+    props: ['smsxt', 'diff', 'tabLabel', 'size', 'assetnum'],
     methods: {
         //序号的方法
         indexMethod(index) {
@@ -198,7 +197,7 @@ export default {
         //多余输入框监听
         confirm(wonum) {
             this.wonum = wonum
-            this.getList()
+            this.pageChanged(1)
         },
         pageChanged(page) {
             this.currentPage = page
@@ -208,12 +207,21 @@ export default {
             let getParams = {
                 data: {
                     smsxt: this.smsxt,
-                    diff: this.diff,
                     plazaId: this.$store.state.plazaId,
                     page: this.currentPage,
                     size: this.size,
                 },
             }
+            //区分主要设备
+            if (this.smsxt != '1008') {
+                getParams.data.onlyMainAsset = true
+            }
+            if (this.diff) {
+                getParams.data.diff = this.diff
+            }
+            if (this.assetnum) {
+                getParams.data.assetnum = this.assetnum
+            }
             //下拉
             if (this.ischange && this.ischange != 2) {
                 getParams.data.ismodel = this.ischange
@@ -259,25 +267,26 @@ export default {
             }
             this.$refs.picLargeOpen.open(this.imgUrl)
         },
+        startMethods() {
+            this.getList()
+        },
     },
     watch: {
         diff(newV, oldV) {
             if (newV !== oldV) {
                 this.getList()
-                this.$nextTick(() => {
-                    // 页面渲染完成后的回调
-                    this.tableMaxHeight = this.$refs.tableBox.offsetHeight
-                })
             }
         },
         tabLabel(newV, oldV) {
             if (newV !== oldV) {
                 // this.tabFind()
                 this.getList()
-                this.$nextTick(() => {
-                    // 页面渲染完成后的回调
-                    this.tableMaxHeight = this.$refs.tableBox.offsetHeight
-                })
+            }
+        },
+        assetnum(newV, oldV) {
+            if (newV !== oldV) {
+                // this.tabFind()
+                this.getList()
             }
         },
         ischange() {
@@ -285,11 +294,7 @@ export default {
         },
     },
     mounted() {
-        this.getList()
-        this.$nextTick(() => {
-            // 页面渲染完成后的回调
-            this.tableMaxHeight = this.$refs.tableBox.offsetHeight
-        })
+        this.startMethods()
     },
 }
 </script>

+ 14 - 26
src/views/equipment/table/zwTable.vue

@@ -8,10 +8,10 @@
                 v-model='nd'
                 type='year'
                 placeholder='请选择年度'
-                @change='getList'
+                @change='pageChanged(1)'
                 style='width:180px;margin-right:12px'
             ></el-date-picker>
-            <Select width='160' tipPlace='top' v-model='lb' caption='类别:' :selectdata='lbOption' :placeholder='"请选择"' @change='getList'></Select>
+            <Select width='160' tipPlace='top' v-model='lb' caption='类别:' :selectdata='lbOption' :placeholder='"请选择"' @change='pageChanged(1)'></Select>
             <Select
                 width='160'
                 tipPlace='top'
@@ -20,7 +20,7 @@
                 :selectdata='xmOption'
                 :placeholder='"请选择"'
                 style='margin:0 12px'
-                @change='getList'
+                @change='pageChanged(1)'
             ></Select>
             <el-input
                 placeholder='搜索实施方案说明'
@@ -29,8 +29,8 @@
                 style='width:192px'
                 v-model='ssfasm'
                 clearable
-                @keyup.enter.native='getList'
-                @blur='getList'
+                @keyup.enter.native='pageChanged(1)'
+                @blur='pageChanged(1)'
             ></el-input>
             <!-- 当前阶段 -->
             <Select
@@ -42,7 +42,7 @@
                 :placeholder='"请选择"'
                 :selectdata='sxjdOption'
                 style='margin:0 12px'
-                @change='getList'
+                @change='getLpageChanged(1)'
             ></Select>
             <!-- placeholder='选择立项时间' -->
             <div class='picker-box'>
@@ -52,7 +52,7 @@
                     v-model='lxsjwcsj'
                     value-format='yyyyMMdd'
                     type='daterange'
-                    @change='getList'
+                    @change='pageChanged(1)'
                     size='mini'
                     range-separator='-'
                     start-placeholder
@@ -62,15 +62,8 @@
             <!-- placeholder='选择验收时间' -->
             <input-dialog v-if='statusOption.length>0' :statusOption='statusOption' :type='4' @confirm='confirm'></input-dialog>
         </div>
-        <div ref='tableBox' style='height: calc(100% - 115px);'>
-            <el-table
-                :data='tableData'
-                :max-height='tableMaxHeight'
-                :border='true'
-                style='width: 100%'
-                @row-click='innerTable'
-                v-if='tableData.length>=0'
-            >
+        <div ref='tableBox'>
+            <el-table :data='tableData' :border='true' style='width: 100%' @row-click='innerTable' v-if='tableData.length>=0'>
                 <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
                 <el-table-column prop='nd' label='年度' show-overflow-tooltip resizable width='60'>
                     <template slot-scope='{row}'>{{row.nd || '--'}}</template>
@@ -116,6 +109,7 @@
                 layout='prev, pager, next'
                 :total='total'
                 :page-size='size'
+                :current-page='currentPage'
                 @prev-click='pageChanged'
                 @next-click='pageChanged'
                 @current-change='pageChanged'
@@ -153,7 +147,6 @@ export default {
             sxjdOption: [],
             xmOption: [],
             lbOption: [],
-            tableMaxHeight: 0,
         }
     },
     computed: {
@@ -171,7 +164,7 @@ export default {
             this.yssjwcsj = yssjwcsj
             this.status = status
             console.log(this.status)
-            this.getList()
+            this.pageChanged(1)
         },
         pageChanged(page) {
             this.currentPage = page
@@ -217,6 +210,9 @@ export default {
                 major: major,
                 plazaId: this.$store.state.plazaId,
             }
+            if (this.major != '土建') {
+                data.onlyMainAsset = true
+            }
             querySelect({ data, postParams }).then((res) => {
                 //console.log(res)
                 let lb = res.data.data.sms_zw.lb
@@ -324,10 +320,6 @@ export default {
             if (newV !== oldV) {
                 this.tabFind()
                 this.getList()
-                this.$nextTick(() => {
-                    // 页面渲染完成后的回调
-                    this.tableMaxHeight = this.$refs.tableBox.offsetHeight
-                })
             }
         },
         tabLabel(newV, oldV) {
@@ -357,10 +349,6 @@ export default {
     mounted() {
         this.tabFind()
         this.getList()
-        this.$nextTick(() => {
-            // 页面渲染完成后的回调
-            this.tableMaxHeight = this.$refs.tableBox.offsetHeight
-        })
     },
 }
 </script>

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

@@ -41,14 +41,18 @@ export default {
         },
         init() {
             this.loadName = `楼层功能-${this.floorInfo.code}`
+            console.log(this.floorsArr.length)
+            console.log(this.$cookie.get('currentFloorId'))
             if (this.floorsArr.length > 0 && this.$cookie.get('currentFloorId')) {
                 this.floorInfo = this.floorsArr.find((item) => {
                     return this.$cookie.get('currentFloorId') == item.seq
                 })
+            } else {
             }
         },
     },
     mounted() {
+        console.log(this.floorInfo)
         this.init()
         this.$refs.floorMap.init(this.floorInfo.gname)
     },

+ 4 - 1
src/views/legendLibrary/index.vue

@@ -54,7 +54,7 @@
                         :returnParentNode='false'
                         :choseArea='true'
                         :data='deviceList'
-                        :lastStage='true'
+                        :lastStage='false'
                         @change='treeConfirmDevice'
                     />
                 </span>
@@ -652,6 +652,9 @@ export default {
 }
 </style>
 <style lang="less">
+.p-tree-svg {
+    margin-top: 3px !important;
+}
 @media screen and (max-height: 800px) {
     .legend-library-bottom {
         overflow-y: auto;

+ 7 - 4
src/views/other/index.vue

@@ -73,9 +73,9 @@ export default {
             this.systemName = item.name
         },
         emitFloor(item) {
-            this.queryPicter(item.gname)
+            this.queryPicter(item.gcname)
             this.floorInfo = item
-            this.picFloor = this.floorInfo.gname
+            this.picFloor = this.floorInfo.gcname
         },
         dialogVisible(item) {
             this.$refs.gcfzDialog.showModal(item)
@@ -102,12 +102,15 @@ export default {
                         tableName: 'glsms_proimgup',
                         params: {
                             module: '1004',
-                            floor: e.gname,
+                            floor: e.gcname,
                         },
                     }
                     postParams.push(obj)
                 })
             }
+             if(this.smsxt != '1008'){
+                data.onlyMainAsset = true
+            }
             queryTab({ data, postParams }).then((res) => {
                 //console.log('查询哪几层楼有图', res)
                 this.floorData = []
@@ -115,7 +118,7 @@ export default {
                 data.forEach((el) => {
                     if (el.count > 0) {
                         this.floorsArr.forEach((item) => {
-                            if (item.gname == el.params.floor) {
+                            if (item.gcname == el.params.floor) {
                                 this.floorData.push(item)
                             }
                         })

+ 0 - 5
src/views/overview/index.vue

@@ -201,8 +201,6 @@ export default {
                 }
             })
             data.map((item) => {
-                console.log(item)
-                // return
                 if (item.lxr) {
                     let lxr = item.lxr.split(',').join('\n\r')
                     item.lxr = lxr
@@ -269,7 +267,6 @@ export default {
             let params = {
                 getParams: {
                     plazaId: plazaId,
-                    // plazaId: '1000303'//这个id有3条数据
                 },
             }
             queryFact(params).then((res) => {
@@ -295,7 +292,6 @@ export default {
                         this.rowspan(5, 'lxdh')
                         this.rowspan(1, 'type')
                     }
-                    console.log(this.constructions)
                     this.shuzihuayijiao = res.shuzihuayijiao ? res.shuzihuayijiao : ''
                     if (res.plazaName) {
                         this.$store.commit('SETPLAZENAME', res.plazaName)
@@ -345,7 +341,6 @@ export default {
     watch: {
         '$store.state.plazaId': {
             handler(val, nel) {
-                console.log('val', val, nel)
                 this.query()
             },
             immediate: true,

+ 0 - 1
src/views/overview/picModal.vue

@@ -34,7 +34,6 @@ export default {
             this.dialogVisible = true
             this.rotationImg = params
             this.picType = type
-            console.log('params',params)
             if (this.rotationImg.length > 0) {
                 let img = new Image()
                 img.src = this.rotationImg[0].url

+ 0 - 0
src/views/overview/viewRotation.vue


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

@@ -266,7 +266,7 @@ export default {
                 // type_code: this.row.type_code
             }
             // if (this.floorChange) {
-            //     postParams.gname = this.floorChange
+            //     postParams.gcname = this.floorChange
             // }
             // if (this.row.floorcode) {
             //     postParams.floorcode = this.row.floorcode

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1324 - 1153
src/views/room/index.vue


+ 1 - 0
src/views/room/room2.vue

@@ -39,6 +39,7 @@
                 background
                 layout='prev, pager, next'
                 :total='total'
+                  :current-page.sync="page"
                 :page-size='size'
                 @prev-click='pageChanged'
                 @next-click='pageChanged'

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

@@ -37,6 +37,7 @@
                 layout='prev, pager, next'
                 :total='total'
                 :page-size='size'
+                :current-page.sync="page"
                 @prev-click='pageChanged'
                 @next-click='pageChanged'
                 @current-change='pageChanged'

+ 232 - 148
src/views/room/room4.vue

@@ -1,165 +1,249 @@
 <template>
-    <div class='compute-item'>
-        <div ref='tableBox4' class='compute-table'>
-            <el-table
-                :border='true'
-                v-loading='loading'
-                :max-height='tableMaxHeight'
-                :data='table4'
-                style='width: 100%'
-                @row-click='innerTable'
-                :header-cell-style='{background:"rgba(245,246,247,1)",fontFamily:"MicrosoftYaHei",color:"rgba(100,108,115,1)",lineHeight:"16px",fontSize:"12px"}'
-            >
-                <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
-                <el-table-column prop label='设备名称' show-overflow-tooltip resizable min-width='360'>
-                    <template slot-scope='{row}'>{{row.sbmc||'--'}}</template>
-                </el-table-column>
-                <el-table-column prop label='设备内码' show-overflow-tooltip resizable width='80'>
-                    <template slot-scope='{row}'>{{row.location||'--'}}</template>
-                </el-table-column>
-                <el-table-column prop label='事项类型' show-overflow-tooltip resizable min-width='120'>
-                    <template slot-scope='{row}'>{{row.matters||'--'}}</template>
-                </el-table-column>
-                <el-table-column prop label='事项描述' show-overflow-tooltip resizable min-width='310'>
-                    <template slot-scope='{row}'>{{row.description||'--'}}</template>
-                </el-table-column>
-                <el-table-column prop label='更换配件信息' align='center' show-overflow-tooltip resizable>
-                    <el-table-column prop label='是/否更换' show-overflow-tooltip resizable width='80'>
-                        <template slot-scope='{row}'>
-                            <div v-if='row.ismodel==0'>否</div>
-                            <div v-else-if='row.ismodel==1'>是</div>
-                            <div v-else>'--'</div>
-                        </template>
-                    </el-table-column>
-                    <el-table-column prop label='配件名称型号' min-width='100' show-overflow-tooltip resizable>
-                        <template slot-scope='{row}'>{{row.model||'--'}}</template>
-                    </el-table-column>
-                    <el-table-column prop label='数量' show-overflow-tooltip resizable width='80'>
-                        <template slot-scope='{row}'>{{row.sl>=0?row.sl:'--'}}</template>
-                    </el-table-column>
-                    <el-table-column prop label='费用(万元)' min-width='110' show-overflow-tooltip resizable>
-                        <template slot-scope='{row}'>{{row.cost?number_format(row.cost):'--'}}</template>
-                    </el-table-column>
-                    <el-table-column prop label='费用出处' show-overflow-tooltip resizable width='80'>
-                        <template slot-scope='{row}'>{{row.source||'--'}}</template>
-                    </el-table-column>
-                </el-table-column>
-                <el-table-column prop label='现场照片' show-overflow-tooltip resizable width='80'>
-                    <template slot-scope='{row}'>
-                        <div
-                            v-if='row.glsmsImage'
-                            style='cursor:pointer;color: #0091ff;'
-                            @click.stop='clickPic(row.glsmsImage)'
-                        >{{row.glsmsImage.length+'张'}}</div>
-                        <div v-else>{{'--'}}</div>
-                    </template>
-                </el-table-column>
-                <el-table-column prop label='填报时间' show-overflow-tooltip resizable width='130'>
-                    <template slot-scope='{row}'>{{row.reportdate?formatter(row.reportdate):'--'}}</template>
-                </el-table-column>
-                <el-table-column prop label='验收时间' show-overflow-tooltip width='130' resizable>
-                    <template slot-scope='{row}'>{{row.sjjssj?formatter(row.sjjssj):'--'}}</template>
-                </el-table-column>
-                <el-table-column prop label='工单编号' show-overflow-tooltip resizable width='80'>
-                    <template slot-scope='{row}'>{{row.wonum||'--'}}</template>
-                </el-table-column>
-            </el-table>
-        </div>
-        <pic-large ref='picLargeOpen'></pic-large>
+  <div class="compute-item">
+    <div ref="tableBox4" class="compute-table">
+      <el-table :data="table4" :border="true" style="width: 100%" @row-click="innerTable">
+        <el-table-column type="index" label="序号" width="60" :index="indexMethod"></el-table-column>
+        <el-table-column prop="sbmc" label="设备名称" show-overflow-tooltip resizable min-width="100">
+          <template slot-scope="{row}">{{row.sbmc || '--'}}</template>
+        </el-table-column>
+        <el-table-column prop="matters" label="位置名称" width="240" show-overflow-tooltip resizable>
+          <template slot-scope="{row}">{{row.wzjc || '--'}}</template>
+        </el-table-column>
+        <el-table-column
+          prop="description"
+          label="问题描述"
+          show-overflow-tooltip
+          resizable
+          min-width="280"
+        >
+          <template slot-scope="{row}">{{row.description || '--'}}</template>
+        </el-table-column>
+        <el-table-column prop="brand" label="报修照片" width="80">
+          <template slot-scope="{row}">
+            <div
+              v-if="row.repair_photos_num"
+              style="cursor:pointer;color: #0091ff;"
+              @click.stop="clickPicRepair(row)"
+            >{{row.repair_photos_num +'张'}}</div>
+            <div v-else>{{'--'}}</div>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="description"
+          label="任务状态描述"
+          show-overflow-tooltip
+          resizable
+          min-width="200"
+        >
+          <template slot-scope="{row}">{{row.status || '--'}}</template>
+        </el-table-column>
+        <el-table-column prop="brand" label="完工照片" width="80">
+          <template slot-scope="{row}">
+            <div
+              v-if="row.finish_photos_num"
+              style="cursor:pointer;color: #0091ff;"
+              @click.stop="clickPicFinish(row)"
+            >{{row.finish_photos_num +'张'}}</div>
+            <div v-else>{{'--'}}</div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="reportdate" label="要求完成时间" width="140">
+          <template slot-scope="{row}">{{row.schedfinish?formatterTime(row.schedfinish): '--'}}</template>
+        </el-table-column>
+        <el-table-column prop="sjjssj" label="实际完工时间" width="140">
+          <template slot-scope="{row}">{{row.wotjyssj?formatterTime(row.wotjyssj): '--'}}</template>
+        </el-table-column>
+        <el-table-column
+          prop="description"
+          label="报修来源"
+          show-overflow-tooltip
+          resizable
+          min-width="200"
+        >
+          <template slot-scope="{row}">{{row.bxfwlymc || '--'}}</template>
+        </el-table-column>
 
-        <div class='foot'>
-            <el-pagination
-                background
-                layout='prev, pager, next'
-                :total='total'
-                :page-size='size'
-                @prev-click='pageChanged'
-                @next-click='pageChanged'
-                @current-change='pageChanged'
-            ></el-pagination>
-        </div>
+        <el-table-column
+          prop="description"
+          label="执行人"
+          show-overflow-tooltip
+          resizable
+          min-width="80"
+        >
+          <template slot-scope="{row}">{{row.lead || '--'}}</template>
+        </el-table-column>
+        <el-table-column
+          prop="description"
+          label="工单编号"
+          show-overflow-tooltip
+          resizable
+          min-width="80"
+        >
+          <template slot-scope="{row}">
+            <div
+              v-if="row.wonum"
+              @click.stop="staff(row)"
+              style="cursor:pointer;color: #0091ff;"
+            >{{row.wonum}}</div>
+            <div v-else>{{'--'}}</div>
+          </template>
+        </el-table-column>
+        <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="description"
+          label="位置内码"
+          show-overflow-tooltip
+          resizable
+          min-width="80"
+        >
+          <template slot-scope="{row}">{{row.location || '--'}}</template>
+        </el-table-column>
+      </el-table>
     </div>
+    <pic-large ref="picLargeOpen"></pic-large>
+
+    <div class="foot">
+      <el-pagination
+        background
+        layout="prev, pager, next"
+        :total="total"
+        :page-size="size"
+        :current-page.sync="page"
+        @prev-click="pageChanged"
+        @next-click="pageChanged"
+        @current-change="pageChanged"
+      ></el-pagination>
+    </div>
+  </div>
 </template>
 <script>
 // import Select from '@/components/Select/Select.vue'
-import { Select } from 'meri-design'
-import moment from 'moment'
-import { number_format } from '@/utils/format.js'
-
+import { Select } from "meri-design";
+import moment from "moment";
+import { formatterTime, number_format } from "@/utils/format.js";
+import { queryWxzyImg } from "@/api/equipmentList.js";
 export default {
-    props: ['table4', 'total', 'page', 'size', 'loading'],
-    data() {
-        return {
-            dateVal: '',
-            value1: '',
-            searVal: '',
-            number_format,
-            tableMaxHeight: 0,
-            imgUrl: [],
-        }
+  props: ["table4", "sjjssj", "total", "page", "size", "loading"],
+  data() {
+    return {
+      dateVal: "",
+      value1: "",
+      searVal: "",
+      number_format,
+      formatterTime,
+      tableMaxHeight: 0,
+      imgUrl: []
+    };
+  },
+  components: { Select },
+  methods: {
+    indexMethod(index) {
+      return (this.page - 1) * this.size + index + 1;
     },
-    components: { Select },
-    methods: {
-        indexMethod(index) {
-            return (this.page - 1) * this.size + index + 1
-        },
-        formatter(date) {
-            return moment.unix(date / 1000).format('YYYY.MM.DD HH:mm')
-        },
-        pageChanged(page) {
-            this.$emit('Index3Emit', page)
-        },
-        //工单详情
-        innerTable(row) {
-            if (row.workorderid) {
-                window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=JXWO&uniqueid=WB_GZGL&uniqueid=${row.wb_gzglid}`)
-            }
-        },
-        clickPic(row) {
-            this.imgUrl = []
-            if (row) {
-                row.forEach((el) => {
-                    let obj = {
-                        name: el.description,
-                        url: el.url,
-                    }
-                    this.imgUrl.push(obj)
-                })
-            }
-            this.$refs.picLargeOpen.open(this.imgUrl)
-        },
-        computedHeight() {
-            this.$nextTick(() => {
-                // 页面渲染完成后的回调
-                this.tableMaxHeight = this.$refs.tableBox4.offsetHeight
-            })
-        },
+    formatter(date) {
+      return moment.unix(date / 1000).format("YYYY.MM.DD HH:mm");
     },
-    updated() {
-        this.$nextTick(() => {
-            // 页面渲染完成后的回调
-            this.tableMaxHeight = this.$refs.tableBox4.offsetHeight
-        })
+    pageChanged(page) {
+      this.$emit("Index3Emit", page);
     },
-}
+    //工单详情
+    innerTable(row) {
+      if (row.workorderid) {
+        window.open(
+          `http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=JXWO&uniqueid=${row.workorderid}`
+        );
+      }
+    },
+    //跳转工单编号
+    staff(row) {
+      if (row.wonum) {
+        window.open(
+          `http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=JXWO&uniqueid=${row.wonum}`
+        );
+      }
+    },
+    clickPicRepair(row) {
+      let getParams = {
+        data: {
+          plazaId: this.$store.state.plazaId,
+          ticketuid: row.ticketuid,
+          type: 0,
+          workorderid: row.workorderid
+        }
+      };
+      queryWxzyImg(getParams).then(res => {
+        let url = res.data;
+        this.imgUrl = [];
+        if (url) {
+          url.forEach(el => {
+            let obj = {
+              name: el.description,
+              url: el.urlname
+            };
+            this.imgUrl.push(obj);
+          });
+        }
+        this.$refs.picLargeOpen.open(this.imgUrl);
+      });
+    },
+    clickPicFinish(row) {
+      let getParams = {
+        data: {
+          plazaId: this.$store.state.plazaId,
+          ticketuid: row.ticketuid,
+          type: 1,
+          workorderid: row.workorderid
+        }
+      };
+      queryWxzyImg(getParams).then(res => {
+        let url = res.data;
+        this.imgUrl = [];
+        if (url) {
+          url.forEach(el => {
+            let obj = {
+              name: el.description,
+              url: el.urlname
+            };
+            this.imgUrl.push(obj);
+          });
+        }
+        this.$refs.picLargeOpen.open(this.imgUrl);
+      });
+    },
+    computedHeight() {
+      this.$nextTick(() => {
+        // 页面渲染完成后的回调
+        this.tableMaxHeight = this.$refs.tableBox4.offsetHeight;
+      });
+    }
+  },
+  updated() {
+    this.$nextTick(() => {
+      // 页面渲染完成后的回调
+      this.tableMaxHeight = this.$refs.tableBox4.offsetHeight;
+    });
+  }
+};
 </script>
 <style lang="less" scoped>
 </style>
 <style lang="less">
 .compute-item {
-    .compute-center {
-        display: flex;
-        align-items: center;
-        margin-bottom: 12px;
-    }
-    .foot {
-        height: 32px;
-        display: flex;
-        justify-content: flex-end;
-        margin-top: 28px;
-    }
-    /deep/.el-table td {
-        cursor: pointer;
-    }
+  .compute-center {
+    display: flex;
+    align-items: center;
+    margin-bottom: 12px;
+  }
+  .foot {
+    height: 32px;
+    display: flex;
+    justify-content: flex-end;
+    margin-top: 28px;
+  }
+  /deep/.el-table td {
+    cursor: pointer;
+  }
 }
 </style>

+ 1 - 0
src/views/room/room5.vue

@@ -78,6 +78,7 @@
                 background
                 layout='prev, pager, next'
                 :total='total'
+                :current-page.sync="page"
                 :page-size='size'
                 @prev-click='pageChanged'
                 @next-click='pageChanged'

+ 24 - 23
vue.config.js

@@ -1,4 +1,4 @@
-const CompressionPlugin = require('compression-webpack-plugin')
+const CompressionPlugin = require("compression-webpack-plugin")
 module.exports = {
     devServer: {
         port: 8090,
@@ -11,7 +11,7 @@ module.exports = {
                 changeOrigin: true,
                 secure: false,
                 pathRewrite: {
-                    '^/data': '/data',
+                    "^/data": "/data",
                 },
             },
             // // 工程信息化服务
@@ -24,27 +24,28 @@ module.exports = {
             //     },
             // },
             // 万达蜂鸟服务
-            '/wdfn': {
-                target: 'http://map.wanda.cn',
+            "/wdfn": {
+                target: "http://map.wanda.cn",
                 changeOrigin: true,
                 pathRewrite: {
-                    '^/wdfn': '/editor',
+                    "^/wdfn": "/editor",
                 },
             },
             // 图例库服务
-            '/serve': {
+            "/serve": {
                 // target: 'http://192.168.200.87:8088',
+            //    target: 'http://10.199.143.129:8080',
                 target: 'http://60.205.177.43:8080',
                 changeOrigin: true,
                 pathRewrite: {
-                    '^/serve': '',
+                    "^/serve": "",
                 },
             },
-            '/version': {
-                target: 'http://mapapp.wanda.cn/',
+            "/version": {
+                target: "http://mapapp.wanda.cn/",
                 changeOrigin: true,
                 pathRewrite: {
-                    '^/version': '/sgmap/mapversion',
+                    "^/version": "/sgmap/mapversion",
                 },
             },
         },
@@ -56,27 +57,27 @@ module.exports = {
         },
     },
     chainWebpack: (config) => {
-        const svgRule = config.module.rule('svg')
+        const svgRule = config.module.rule("svg")
         svgRule.uses.clear()
         svgRule
-            .use('babel-loader')
-            .loader('babel-loader')
+            .use("babel-loader")
+            .loader("babel-loader")
             .end()
-            .use('vue-svg-loader')
-            .loader('vue-svg-loader')
-        config.output.filename('static/js/[name].[hash].js').end()
-        config.output.chunkFilename('static/js/[name].[hash].js').end()
+            .use("vue-svg-loader")
+            .loader("vue-svg-loader")
+        config.output.filename("static/js/[name].[hash].js").end()
+        config.output.chunkFilename("static/js/[name].[hash].js").end()
     },
     lintOnSave: false,
-    publicPath: '/wandaBmGuide',
+    publicPath: "/wandaBmGuide",
     // 打包名称
-    outputDir: 'wandaBmGuide',
+    outputDir: "wandaBmGuide",
     // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
-    assetsDir: 'static',
+    assetsDir: "static",
     transpileDependencies: [
-        '@saga-web', // 指定对第三方依赖包进行babel-polyfill处理
-        '@ant-design',
-        'element-ui',
+        "@saga-web", // 指定对第三方依赖包进行babel-polyfill处理
+        "@ant-design",
+        "element-ui",
     ],
     productionSourceMap: false, //
     // CSS 相关选项