Kaynağa Gözat

下拉框、图例

guoxiaohuan 5 yıl önce
ebeveyn
işleme
3a576c8c8e

+ 11 - 1
src/api/public.js

@@ -24,5 +24,15 @@ export function queryStatis({ data, postParams }) {
 
 // 更新图例系统信息
 export function updateStatis({ postParams }) {
-    return httputils.fetchJson(`/serve/graphElement/statistic/update`, postParams)
+    return httputils.postJson(`/serve/graphElement/statistic/update`, postParams)
+}
+
+// 查询系统图备注-(后期可能不需要)
+export function queryRead({ postParams }) {
+    return httputils.fetchJson(`/serve/graph/read`, postParams)
+}
+
+// 修改系统图备注
+export function updateRead({ postParams }) {
+    return httputils.postJson(`/serve/graph/updateNote`, postParams)
 }

+ 8 - 0
src/api/room.js

@@ -9,14 +9,22 @@ export function xx({ getParams }) {
 export function queryDygjcxline({ getParams }) {
     return httputils.getJson(`/api/data/glsms_dygjcxline/query`, getParams)
 }
+
 // 机房-机房内核心设备
 export function queryHxsb({ data, postParams }) {
+    return httputils.fetchJson(`/api/data/glsms_asset/queryStatistics`, data, postParams)
+}
+
+// 机房-机房内核心设备钻取表
+export function queryHxsbDetail({ data, postParams }) {
     return httputils.fetchJson(`/api/data/glsms_asset/query`, data, postParams)
 }
+
 // 机房-维修记录
 export function xxx({ getParams }) {
     return httputils.getJson(`/api/data/v_glsms_zhsxjl/query`, getParams)
 }
+
 // 机房-维保记录
 export function xxxx({ getParams }) {
     return httputils.getJson(`/api/data/v_glsms_zhsxjl/query`, getParams)

+ 18 - 4
src/components/Editor/src/editor.vue

@@ -38,7 +38,7 @@ export default {
         return {
             valLen: 0,
             inputVal: this.text.length,
-            content: '注:' + this.text,
+            content: '',
             editorOption: {
                 modules: {
                     toolbar: [['bold', 'underline'], [{ color: [] }]]
@@ -48,17 +48,31 @@ export default {
             }
         }
     },
+    mounted() {
+        this.content = this.text
+    },
     methods: {
-        onEditorReady(editor) {},
-        onEditorBlur(val) {},
-        onEditorFocus(val) {},
+        onEditorReady(editor) {
+            console.log(editor)
+        },
+        onEditorBlur(val) {
+            console.log(val)
+        },
+        onEditorFocus(val) {
+            console.log(val)
+        },
         onEditorChange(val) {
+            console.log(val.html)
             val.quill.deleteText(200, 6)
             if (this.content === '') {
                 this.valLen = 0
             } else {
                 this.valLen = val.quill.getLength() - 1
             }
+            if (val.html) {
+                this.content = val.html
+                this.$emit('updateNote', this.content)
+            }
         }
     }
 }

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

@@ -22,7 +22,15 @@
             </el-collapse-transition>
             <el-collapse-transition>
                 <div v-if='show2'>
-                    <lengend-edit v-if='editTable.length>=0' :loading='loading1' ref='editLen' @saveNum='saveNum' @cance='cance' :editText='editText'></lengend-edit>
+                    <lengend-edit
+                        @handleSwich2='handleSwich2'
+                        v-if='editTable.length>=0'
+                        :loading='loading1'
+                        ref='editLen'
+                        @saveNum='saveNum'
+                        @cance='cance'
+                        :editTable='editTable'
+                    ></lengend-edit>
                 </div>
             </el-collapse-transition>
         </div>
@@ -34,29 +42,35 @@
             </el-tooltip>
 
             <div class='hover-div'>
+                <!-- 备注编辑器 -->
                 <span @click='legendClik'>
                     <img src='@/assets/imgs/bjbg.png' alt />
                 </span>
+                <!-- 编辑图例 -->
                 <el-tooltip class='item' effect='dark' content='编辑图例' placement='left'>
                     <span @click='editTl'>
                         <img src='@/assets/imgs/bjtl.png' alt />
                     </span>
                 </el-tooltip>
             </div>
-            <remarks ref='EditdMarks' @editChange='editChange'></remarks>
+            <legend-remarks ref='EditdMarks'></legend-remarks>
         </div>
     </div>
 </template>
 <script>
 import lengendView from '@/components/viewLengend'
-import Remarks from '@/components/legendremarks'
+import legendRemarks from '@/components/legendremarks'
 import lengendEdit from '@/components/editLengend'
-import { queryStatis, updateStatis } from '@/api/public.js'
+import { queryStatis, updateStatis, queryRead } from '@/api/public.js'
+
 export default {
     name: 'Legend',
     data() {
         return {
-            text: '1.主要设备房包括:制冷机房、生活水泵房、消防泵房2.图例后    的数字,代表此位置的数量',
+            remarksText: '', //查询出来的备注
+            text1:
+                '<p>1.主要设备房包括:冷源机房,热源机房,开闭站,配变电所(室),发电机房,消防水泵房,消防高位水箱间,生活水泵房,慧云机房,垃圾房</p>',
+            text2: '<p>2.图例后×的数字,代表此位置的数量</p>',
             show: false,
             show2: false,
             dataSelect2: [
@@ -65,33 +79,69 @@ export default {
                 { id: 'test3', name: '下级分项' },
                 { id: 'test4', name: '滑动平均滑动平均' }
             ],
-            loading: false,
-            loading1: false,
+            loading: true,
+            loading1: true,
             viewTable: [],
-            editTable: [{}],
+            editTable: [],
             tbData1: [],
             tbData2: [],
             tbData3: [],
             multipleSelection: [],
-            editText: ''
+            editText: '',
+            editSwitch: false
         }
     },
-    components: { lengendView, Remarks, lengendEdit },
+    components: { lengendView, legendRemarks, lengendEdit },
     methods: {
         testClick(data) {},
         legendClik() {
-            this.$refs.EditdMarks.showModal()
+            this.$refs.EditdMarks.showModal(this.remarksText)
+        },
+        // 查询备注
+        queryMarks() {
+            let params = {
+                postParams: {
+                    graphId: '1',
+                    projectId: '1'
+                }
+            }
+            queryRead(params).then(res => {
+                console.log('备注', res.data.Data[0].Note)
+                // 打开底图备注编辑重新查询
+                // 有备注->判断底图->判断要展示的文字是否备注中的吻合->加/不加
+                // 无备注->判断平面图->是否展示默认文案
+                if (res.data.Data[0].Note) {
+                    let note = res.data.Data[0].Note
+                    if (1 == 1 && 2 == 2) {
+                        this.remarksText = `${this.text1}${this.text2}${note}`
+                    } else if (1 == 1) {
+                        this.remarksText = `${this.text1}${note}`
+                    } else {
+                        this.remarksText = `${this.text2}${note}`
+                    }
+                } else {
+                    if (1 == 1 && 2 == 2) {
+                        this.remarksText = `${this.text1}${this.text2}`
+                    } else if (1 == 1) {
+                        this.remarksText = `${this.text1}`
+                    } else {
+                        this.remarksText = `${this.text2}`
+                    }
+                }
+            })
         },
         dump() {},
         editChange(val) {
             this.editText = val
         },
+        // 展示图例
         showTl() {
             this.show = !this.show
             if (this.show) {
                 this.show2 = false
             }
-            this.queryView(true)
+            this.queryView(false)
+            this.queryMarks()
         },
         cance() {
             this.show2 = false
@@ -99,41 +149,82 @@ export default {
         editTl() {
             this.show = false
             this.show2 = true
+            this.queryEditNum(true)
         },
         handleSwich(val) {
-            this.queryView(val)
+            console.log(val)
+            this.queryView(!val)
+        },
+        handleSwich2(val) {
+            this.editSwitch = val
+            this.queryEditNum(!this.editSwitch)
         },
         // 查询图例
         queryView(flag) {
             let postParams = {}
-            if (flag) {
-                postParams.Filters = "graphId='1';projectId='1';Num!=0"
-            } else {
-                postParams.Filters = "graphId='1';projectId='1'"
+            let data = {
+                graphId: '1',
+                projectId: '1',
+                flag: flag
             }
-            let data = {}
             queryStatis({ data, postParams }).then(res => {
                 this.loading = false
-                this.loading1 = false
                 console.log('图例', res)
-                this.viewTable = res.data.Content
-                this.editTable = res.data.Content
+                this.viewTable = res.data.Data
             })
         },
+        // 查询编辑状态图例
+        queryEditNum(flag) {
+            let postParams = {}
+            let data = {
+                graphId: '1',
+                projectId: '1',
+                flag: flag
+            }
+            queryStatis({ data, postParams })
+                .then(res => {
+                    console.log('编辑图例数', res)
+                    this.loading1 = false
+                    this.editTable = res.data.Data
+                    console.log(this.editTable)
+                })
+                .catch(err => {
+                    console.log(err)
+                })
+        },
         // 编辑数量
         queryEdit(val) {
-            let postParams = {
-                Content: val
+            let params = {
+                postParams: {
+                    Content: val
+                }
             }
-            updateStatis({ postParams }).then(res => {
-                console.log('编辑', res)
+            // console.log(postParams)
+            // return
+            updateStatis(params).then(res => {
+                if (res.Result == 'success') {
+                    console.log('更新图例', res)
+                    this.$message({
+                        message: '编辑图例成功',
+                        type: 'success'
+                    })
+                    this.queryEditNum(this.editSwitch)
+                } else {
+                    this.$message({
+                        message: '编辑图例失败',
+                        type: 'error'
+                    })
+                }
             })
         },
         saveNum(val) {
+            // this.editSwitch = val
             this.queryEdit(val)
         }
     },
-    mounted() {}
+    mounted() {
+        // this.queryMarks()
+    }
 }
 </script>
 <style lang="less" scoped>
@@ -161,14 +252,20 @@ export default {
         top: 0;
         right: 44px;
         .legend-table {
-            padding-top: 16px;
-            padding-left: 16px;
-            padding-right: 16px;
+            padding: 16px;
+            height: 546px;
             width: 420px;
+            overflow: auto;
+            overflow: hidden;
+            overflow-y: auto;
+            position: relative;
             background: rgba(255, 255, 255, 1);
             box-shadow: 0px 2px 8px 0px rgba(31, 36, 41, 0.06);
             border-radius: 2px;
             border: 1px solid rgba(228, 229, 231, 1);
+            &::-webkit-scrollbar {
+                display: none;
+            }
         }
     }
 }

+ 8 - 8
src/components/editLengend.vue

@@ -7,13 +7,13 @@
     <div class='view'>
         <div class='legend-tab2'>
             <div class='legend-table2-box'>
-                <div class='legend-table2' v-if='tbData1.length>=0'>
+                <div class='legend-table2' v-if='editTable.length>0'>
                     <el-table
                         v-loading='loading'
                         :header-cell-style='{background:"rgba(2,91,170,0.1)",fontFamily:"PingFangSC-Medium,PingFang SC;",color:"rgba(0,0,0,0.85);",fontSize:"12px"}'
                         ref='multipleTable'
                         height='430px'
-                        :data='tbData1'
+                        :data='editTable'
                         tooltip-effect='dark'
                         @selection-change='handleSelectionChange'
                     >
@@ -75,12 +75,13 @@
             </div>
 
             <div class='swich'>
-                <el-switch v-model='value' @change='witchChange'></el-switch>
+                <el-switch v-model='value' @change='changeSwitch'></el-switch>
                 <span>隐藏数量为0的项目</span>
             </div>
             <div class='legendFoot'>
                 <el-button size='mini' @click='cancel'>取消</el-button>
-                <el-button size='mini' @click='save' type='primary'>保存</el-button>
+                <el-button size='mini' v-if='editNum.length<=0' disabled type='primary'>保存</el-button>
+                <el-button size='mini' v-else @click='save' type='primary'>保存</el-button>
             </div>
         </div>
     </div>
@@ -113,7 +114,9 @@ export default {
                 return item
             }, [])
         },
-        witchChange(val) {
+        changeSwitch(val) {
+            console.log(val)
+            this.$emit('handleSwich2', val)
             console.log(val)
         },
         save() {
@@ -144,9 +147,6 @@ export default {
                 // }
             }
         }
-    },
-    mounted() {
-        // this.init()
     }
 }
 </script>

+ 129 - 21
src/components/legendremarks.vue

@@ -6,44 +6,130 @@
 <template>
     <div class='editModel'>
         <a-modal v-model='visible' :title='title' @ok='handleOk' ok-text='保存' cancel-text='取消' :maskClosable='false' :width='648'>
-            <!-- <wd-editor :width='width' :height='height' :text='content'></wd-editor> -->
-            <markEditorBar v-model='detail' :isClear='isClear' @change='change'></markEditorBar>
+            <!-- <wd-editor :width='width' :height='height' :text='text' @updateNote='updateNote'></wd-editor> -->
+            <!-- <markEditorBar v-model='detail' :isClear='isClear' @change='change'></markEditorBar> -->
+            <div class='edit_container' style='width:600px;height:156px'>
+                <quill-editor
+                    v-model='EditdMarks'
+                    :options='editorOption'
+                    @blur='onEditorBlur($event)'
+                    @focus='onEditorFocus($event)'
+                    @change='onEditorChange($event)'
+                    @ready='onEditorReady($event)'
+                ></quill-editor>
+                <p class='p1'>{{valLen}}/200</p>
+            </div>
         </a-modal>
     </div>
 </template>
 <script>
-import markEditorBar from '@/components/marksEnduit'
-
+// import markEditorBar from '@/components/marksEnduit'
+import { updateRead } from '@/api/public.js'
 export default {
     name: 'EditdMarks',
     data() {
         return {
-            editText: '',
+            valLen: 0, //输入字数限制
+            // inputVal: this.text.length,
+            // content: '',
+            editorOption: {
+                modules: {
+                    toolbar: [['bold', 'underline'], [{ color: [] }]]
+                },
+                theme: 'snow',
+                placeholder: '请输入内容...'
+            },
+            EditdMarks: '', //传过来的查询备注
+            // editText: '',
             title: '编辑图例备注',
-            visible: false,
-            width: '600px',
-            height: '156px',
-            content: '1.主要设备房包括:制冷机房、生活水泵房、消防泵房2.图例后的数字,代表此位置的数量',
-            isClear: false,
-            detail: '<p>刚开始的。。。</p><p>第二条数据的。。。</p>'
+            visible: false
+            // width: '600px',
+            // height: '156px'
+            // content:
+            // '<p>1.主要设备房包括:冷源机房,热源机房,开闭站,配变电所(室),发电机房,消防水泵房,消防高位水箱间,生活水泵房,慧云机房,垃圾房</p>',
+            // isClear: false,
+            // detail: ''
         }
     },
-    components: { markEditorBar },
+    // components: { markEditorBar },
     methods: {
-        change(val) {
-            this.editText = this.detail + val
-            this.$emit('editChange', this.editText)
-            console.log('传给后台的', val)
-            console.log(typeof val)
-        },
-        showModal() {
+        // change(val) {
+        //     this.editText = this.detail + val
+        //     this.$emit('editChange', this.editText)
+        //     console.log('传给后台的', val)
+        //     console.log(typeof val)
+        // },
+
+        // val为传过来的备注
+        showModal(val) {
             this.visible = true
+            this.EditdMarks = val
+            console.log(val)
+        },
+        // updateNote(val) {
+        //     this.content = val
+        //     // this.markUpdate(val)
+        // },
+
+        // 更新底图备注
+        markUpdate(val) {
+            let params = {
+                postParams: {
+                    graphId: '1',
+                    projectId: '1',
+                    Note: val
+                }
+            }
+            updateRead(params).then(res => {
+                console.log('更新备注', res)
+                // this.$message('更新成功')
+                this.$message({
+                    showClose: true,
+                    message: '更新成功',
+                    type: 'success'
+                })
+            })
         },
+        // 点击保存
         handleOk() {
-            this.visible = false
+            this.markUpdate(this.EditdMarks)
+            // this.visible = false
+        },
+        onEditorReady(editor) {
+            console.log(editor)
+        },
+        onEditorBlur(val) {
+            console.log(val)
+        },
+        onEditorFocus(val) {
+            console.log(val)
+        },
+        onEditorChange(val) {
+            console.log(val.html)
+            val.quill.deleteText(200, 6)
+            if (this.EditdMarks === '') {
+                this.valLen = 0
+            } else {
+                this.valLen = val.quill.getLength() - 1
+            }
+            if (val.html) {
+                this.EditdMarks = val.html
+                this.$emit('updateNote', this.EditdMarks)
+            }
         }
     },
-    mounted() {}
+    mounted() {
+        // console.log(this.text)
+        // this.detail =
+        //     '<p>1.主要设备房包括:冷源机房,热源机房,开闭站,配变电所(室),发电机房,消防水泵房,消防高位水箱间,生活水泵房,慧云机房,垃圾房</p>' +
+        //     '<p>2.图例后×的数字,代表此位置的数量</p>'
+        // console.log(
+        //     this.detail.search(
+        //         '<p>1.主要设备房包括:冷源机房,热源机房,开闭站,配变电所(室),发电机房,消防水泵房,消防高位水箱间,生活水泵房,慧云机房,垃圾房</p>'
+        //     ) != -1
+        // ) // true
+        // this.content = this.text
+    }
 }
 </script>
 
@@ -53,5 +139,27 @@ export default {
     .ant-modal-body {
         padding: 0 24px 35px !important;
     }
+    .edit_container {
+        .ql-editor {
+            padding: 12px 15px 4px;
+        }
+        .ql-toolbar.ql-snow .ql-formats {
+            margin-right: 0px;
+        }
+    }
+}
+</style>
+<style lang="less" scoped>
+.edit_container {
+    margin: 10px 0 0;
+    .p1 {
+        position: absolute;
+        bottom: 65px;
+        right: 30px;
+        margin-bottom: 0;
+    }
+}
+.quill-editor {
+    height: 130px;
 }
 </style>

+ 43 - 16
src/components/viewLengend.vue

@@ -10,9 +10,8 @@
             ref='dataTable'
             :data='viewTable'
             tooltip-effect='dark'
-            style='width:100%'
+            style='width:100%;'
             @selection-change='handleSelectionChange'
-            height='400px'
             :header-cell-style='{background:"rgba(2,91,170,0.1)",fontFamily:"PingFangSC-Medium,PingFang SC;",color:"rgba(0,0,0,0.85);",fontSize:"12px"}'
         >
             <el-table-column type='selection' width='45'></el-table-column>
@@ -38,38 +37,57 @@
             </el-table-column>
         </el-table>
         <div class='swich'>
-            <el-switch v-model='swich' @change='handleSwich'></el-switch>
+            <el-switch v-model='swich' @change='handleSwich(swich)'></el-switch>
             <span>隐藏数量为0的项目</span>
         </div>
         <div class='remark'>
-            <span style='font-weight:bold'>注:</span>
-            <!-- <div>
-                1.主要设备房包括:制冷机房、生活水泵房、消防泵房
-                <br />2.图例后 的数字,代表此位置的数量
-                <br />3.图例后 的数字,代表此位置的数量
-            </div>-->
-            <div v-html='editText'></div>
+            <span class='remark-title'>注:</span>
+            <div v-html='markNote' class='remark-text'></div>
         </div>
     </div>
 </template>
 <script>
+import { queryRead } from '@/api/public.js'
 export default {
     props: ['viewTable', 'loading', 'editText'],
     data() {
         return {
             swich: true,
-            multipleSelection: []
+            multipleSelection: [],
+            text1:
+                '<p>1.主要设备房包括:冷源机房,热源机房,开闭站,配变电所(室),发电机房,消防水泵房,消防高位水箱间,生活水泵房,慧云机房,垃圾房</p>',
+            text2: '<p>2.图例后×的数字,代表此位置的数量</p>',
+            // note: '',
+            markNote: '' //展示的备注
+            // textNote: ''
         }
     },
     methods: {
         handleSelectionChange(val) {
             this.multipleSelection = val
         },
-        handleSwich() {
-            this.$emit('changeSwitch', this.swich)
+        handleSwich(val) {
+            this.$emit('changeSwitch', val)
+        },
+        queryMarks() {
+            let params = {
+                postParams: {
+                    graphId: '1',
+                    projectId: '1'
+                }
+            }
+            queryRead(params).then(res => {
+                console.log('备注', res.data.Data[0].Note)
+                if (res.data.Data[0].Note) {
+                    console.log(res.data.Data[0].Note)
+                }
+            })
         }
     },
-    mounted() {}
+    mounted() {
+        // this.queryMarks()
+        // this.textNote = `${this.text1}${this.text2}`
+    }
 }
 </script>
 <style lang="less" scoped>
@@ -79,7 +97,7 @@ export default {
         justify-content: flex-end;
         align-items: center;
         margin-top: 8px;
-        margin-right: 0;
+        margin-right: 4px;
         margin-bottom: 12px;
         span {
             margin-left: 8px;
@@ -90,8 +108,17 @@ export default {
         font-family: MicrosoftYaHeiSemibold;
         color: rgba(31, 35, 41, 1);
         line-height: 16px;
-        margin: 0px 0 16px 0;
         display: flex;
+        .remark-title {
+            font-weight: bold;
+        }
+        .remark-text {
+            white-space: normal;
+            word-break: break-all;
+            p {
+                padding: 0;
+            }
+        }
     }
     .Url-img {
         width: 20px;

+ 20 - 0
src/views/other/zhsxOther.vue

@@ -29,6 +29,7 @@ import Select from '@/components/Select/Select.vue'
 import ZhsxDialog from './zhsxDialog'
 import zhsxOtherTable1 from './zhsxOtherTable1'
 import zhsxOtherTable2 from './zhsxOtherTable2'
+import { querySelect } from '@/api/public.js'
 export default {
     data() {
         return {
@@ -47,10 +48,29 @@ export default {
             } else if (tab.index == '1') {
                 this.$refs.tableZhsx2[0].dsfjc()
             }
+        },
+        changeSelect() {
+            let postParams = [
+                {
+                    columnName: { brand: 'brand', manufacturer: 'manufacturer' }, //列名称
+                    params: {
+                        // tab_code: '1572'
+                    },
+                    tableName: 'glsms_asset' //视图名称
+                }
+            ]
+            let data = {
+                // major: '弱电',
+                plazaId: '1001145'
+            }
+            querySelect({ data, postParams }).then(res => {
+                console.log('部门', res)
+            })
         }
     },
     mounted() {
         this.$refs.tableZhsx1[0].getZhjl()
+        this.changeSelect()
     }
 }
 </script>

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

@@ -201,6 +201,7 @@ export default {
             let params = {
                 getParams: {
                     plazaId: this.$store.state.plazaId
+                    // plazaId: '1000303'//这个id有3条数据
                 }
             }
             queryFact(params).then(res => {

+ 161 - 22
src/views/room/detail.vue

@@ -2,19 +2,48 @@
     <div class='gdqd-dialog'>
         <div class='top'></div>
         <div class='gdqd-dialog-top'>
-            <Select width='120' style='margin-right:12px' tipPlace='top' caption='楼层:' size='small' :selectdata='floorSelect'></Select>
-            <Select width='224' style='margin-right:12px' tipPlace='top' caption='管理归属' size='small' :selectdata='dataSelect2'></Select>
-            <Select width='224' style='margin-right:12px' tipPlace='top' caption='设备状态' size='small' :selectdata='dataSelect2'></Select>
+            <Select
+                width='120'
+                style='margin-right:12px'
+                tipPlace='top'
+                caption='楼层:'
+                size='small'
+                @change='changeFloorStr'
+                v-model='floorStr'
+                :selectdata='floorSelect'
+            ></Select>
+            <Select
+                width='224'
+                v-model='sbglgsStr'
+                style='margin-right:12px'
+                v-if='sbglgs.length>0'
+                tipPlace='top'
+                caption='管理归属'
+                @change='changeSbglgsStr'
+                size='small'
+                :selectdata='sbglgs'
+            ></Select>
+            <Select
+                width='224'
+                style='margin-right:12px'
+                v-if='sb_status.length>0'
+                tipPlace='top'
+                caption='设备状态'
+                size='small'
+                @change='changeSb_status'
+                v-model='statusStr'
+                :selectdata='sb_status'
+            ></Select>
             <el-input placeholder='请输入设备简称、设备编号、品牌、型号、安装位置、生产厂商、服务商搜索' style='width:490px;' size='small' prefix-icon='el-icon-search' v-model='input'></el-input>
         </div>
         <el-table
-            v-loading='loading'
-            :data='tableData'
+            v-loading='loadingDetail'
+            :data='detailData'
             style='width:100%;margin-top:12px'
             :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='50'></el-table-column>
-            <el-table-column prop='sbjc' label='设备简称'>
+            <el-table-column prop='sbjc' label='设备简称' :show-overflow-tooltip='true'>
                 <template slot-scope='{row}'>{{row.sbjc||'--'}}</template>
             </el-table-column>
             <el-table-column prop='sbbh' label='设备编号'>
@@ -41,30 +70,47 @@
             <el-table-column prop='wzqy' label='安装位置'>
                 <template slot-scope='{row}'>{{row.wzqy||'--'}}</template>
             </el-table-column>
-            <el-table-column prop='manufacturer' label='生产厂商'>
+            <el-table-column prop='manufacturer' label='生产厂商' :show-overflow-tooltip='true'>
                 <template slot-scope='{row}'>{{row.manufacturer||'--'}}</template>
             </el-table-column>
-            <el-table-column prop='fws' label='服务商'>
+            <el-table-column prop='fws' label='服务商' :show-overflow-tooltip='true'>
                 <template slot-scope='{row}'>{{row.fws||'--'}}</template>
             </el-table-column>
         </el-table>
+        <div class='foot'>
+            <el-pagination
+                background
+                layout='prev, pager, next'
+                :total='totalDetail'
+                :page-size='sizeDetail'
+                @prev-click='pageChanged'
+                @next-click='pageChanged'
+                @current-change='pageChanged'
+            ></el-pagination>
+        </div>
     </div>
 </template>
 <script>
 import Select from '@/components/Select/Select.vue'
+import { querySelect } from '@/api/public.js'
 import { mapGetters } from 'vuex'
+import { queryHxsbDetail } from '@/api/room.js'
+
 export default {
+    props: ['type_code'],
     data() {
         return {
-            loading: false,
-            tableData: [],
-            dataSelect2: [
-                { id: 'test1', name: '选择项' },
-                { id: 'test2', name: '单平米' },
-                { id: 'test3', name: '下级分项' },
-                { id: 'test4', name: '滑动平均滑动平均' }
-            ],
-            input: ''
+            sb_status: [],
+            sbglgs: [],
+            input: '',
+            floorStr: '',
+            sbglgsStr: '',
+            statusStr: '',
+            loadingDetail: true,
+            totalDetail: 0,
+            pageDetail: 1,
+            sizeDetail: 10,
+            detailData: []
         }
     },
     components: {
@@ -73,21 +119,114 @@ export default {
     computed: {
         ...mapGetters(['floorSelect'])
     },
-    mounted() {},
+    mounted() {
+        if (this.type_code) {
+            this.queryDetail()
+            this.query()
+        }
+    },
     methods: {
-        open() {
-            this.visible = true
+        // 改变楼层
+        changeFloorStr() {
+            this.queryDetail()
+        },
+        // 改变管理归属
+        changeSbglgsStr() {
+            this.queryDetail()
+        },
+        // 改变设备状态
+        changeSb_status() {
+            this.queryDetail()
+        },
+        // 点击分页
+        pageChanged(page) {
+            this.pageDetail = page
+            this.queryDetail()
+        },
+        // 设备详情
+        queryDetail() {
+            this.detailData = []
+            let postParams = {
+                type_code: this.type_code //自定义分类内码 主要设备清单必传
+            }
+            if (this.floorStr) {
+                postParams.floor = this.floorStr
+            }
+            if (this.sbglgsStr) {
+                postParams.sbglgs = this.sbglgsStr
+            }
+            if (this.statusStr) {
+                postParams.sb_status = this.statusStr
+            }
+
+            let data = {
+                plazaId: this.$store.state.plazaId,
+                page: this.pageDetail,
+                size: this.sizeDetail
+            }
+            queryHxsbDetail({ data, postParams }).then(res => {
+                console.log('钻取表', res)
+                this.loadingDetail = false
+                this.detailData = res.data.data
+                this.totalDetail = res.data.count
+            })
+        },
+        // 下拉框数据
+        query() {
+            let postParams = [
+                {
+                    columnName: { sbglgs: 'sbglgs', sb_status: 'sb_status' },
+                    params: {
+                        type_code: this.type_code
+                    },
+                    tableName: 'glsms_asset'
+                }
+            ]
+            let data = {
+                plazaId: this.$store.state.plazaId
+            }
+            querySelect({ data, postParams }).then(res => {
+                console.log('管理归属', res)
+                if (res.data.data) {
+                    let sb_status = [],
+                        sbglgs = []
+                    sb_status = res.data.data.glsms_asset.sb_status ? res.data.data.glsms_asset.sb_status : []
+                    sbglgs = res.data.data.glsms_asset.sbglgs ? res.data.data.glsms_asset.sbglgs : []
+                    if (sb_status.length > 0) {
+                        sb_status.forEach(el => {
+                            let obj = {
+                                id: el.key,
+                                name: el.value
+                            }
+                            this.sb_status.push(obj)
+                        })
+                    }
+                    if (sbglgs.length > 0) {
+                        sbglgs.forEach(el => {
+                            let obj = {
+                                id: el.key,
+                                name: el.value
+                            }
+                            this.sbglgs.push(obj)
+                        })
+                    }
+                }
+            })
         }
     }
 }
 </script>
 <style lang="less" scoped>
 .gdqd-dialog {
-    .top {
-    }
     .gdqd-dialog-top {
         display: flex;
     }
+    .foot {
+        height: 32px;
+        display: flex;
+        justify-content: flex-end;
+        margin-top: 28px;
+    }
 }
 </style>
 <style lang="less">

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

@@ -151,7 +151,6 @@ export default {
             let postParams = {}
             let data = {
                 plazaId: this.$store.state.plazaId,
-                major: '弱电',
                 page: this.page2,
                 size: this.size2
             }

+ 9 - 4
src/views/room/room3.vue

@@ -6,7 +6,7 @@
         </div>
         <div class='compute-table'>
             <el-table
-                @row-click='innerVisible = true'
+                @row-click='innerTable'
                 v-loading='loading'
                 :data='table3'
                 style='width: 100%'
@@ -44,8 +44,8 @@
                 @current-change='pageChanged'
             ></el-pagination>
         </div>
-        <el-dialog width='1200px' style='height:80%' title='设备清单' :visible.sync='innerVisible' append-to-body>
-            <detail></detail>
+        <el-dialog width='1200px' style='height:100%' title='设备清单' :visible.sync='innerVisible' append-to-body>
+            <detail v-if='type_code' :type_code='type_code'></detail>
         </el-dialog>
     </div>
 </template>
@@ -60,7 +60,8 @@ export default {
     data() {
         return {
             searVal: '',
-            innerVisible: true
+            innerVisible: false,
+            type_code: ''
         }
     },
     computed: {
@@ -70,6 +71,10 @@ export default {
     methods: {
         pageChanged(page) {
             this.$emit('Index2Emit', page)
+        },
+        innerTable(row) {
+            this.type_code = row.type_code
+            this.innerVisible = true
         }
     },
     mounted() {}

+ 7 - 8
src/views/room/room4.vue

@@ -3,7 +3,7 @@
         <div class='compute-center'>
             <el-date-picker size='small' v-model='value1' type='date' placeholder='填报时间' style='margin-right:12px;width:150px'></el-date-picker>
             <el-date-picker size='small' v-model='value1' type='date' placeholder='验收时间' style='margin-right:12px;width:150px'></el-date-picker>
-            <Select width='146' tipPlace='top' caption='是否更换:' :selectdata='dataSelect2' :placeholder='"请选择"' style='margin-right:12px'></Select>
+            <Select width='146' tipPlace='top' caption='是否更换:' :selectdata='isReplaceData' :placeholder='"请选择"' style='margin-right:12px'></Select>
             <el-input placeholder='请输入设备名称、设备编号、重要事项记录、描述工单编号搜索' size='small' prefix-icon='el-icon-search' v-model='searVal' style='width:410px'></el-input>
         </div>
         <div class='compute-table'>
@@ -52,13 +52,12 @@ export default {
     data() {
         return {
             value1: '',
-            dataSelect2: [
-                { id: 'test1', name: '选择项' },
-                { id: 'test2', name: '单平米' },
-                { id: 'test3', name: '下级分项' },
-                { id: 'test4', name: '滑动平均滑动平均' }
-            ],
-            searVal: ''
+            searVal: '',
+            // 是否更换配件
+            isReplaceData: [
+                { id: '1', name: '是' },
+                { id: '0', name: '否' }
+            ]
         }
     },
     components: { Select },

+ 17 - 14
vue.config.js

@@ -1,29 +1,32 @@
 module.exports = {
     devServer: {
         proxy: {
-            "/api": {
-                target: "http://192.168.200.87:9003",
+            '/api': {
+                target: 'http://192.168.200.87:9003',
                 changeOrigin: true,
                 secure: false,
                 pathRewrite: {
-                    "^/api": "",
+                    '^/api': '',
                 },
             },
-            "/wanda": {
-                target: "http://map.wanda.cn/editor/fmap/1001724_29",
+            '/wanda': {
+                target: 'http://map.wanda.cn/editor/fmap/1001724_29',
                 changeOrigin: true,
                 pathRewrite: {
-                    "^/wanda": "",
+                    '^/wanda': '',
                 },
             },
-            "/serve": {
-                target: "http://192.168.200.87:8088/topology-wanda",
+            '/serve': {
+                target: 'http://192.168.200.87:8088/topology-wanda',
                 changeOrigin: true,
                 secure: false,
                 pathRewrite: {
-                    "^/serve": "",
+                    '^/serve': '',
                 },
             },
+            // host: '192.168.200.82',
+            host: 'localhost',
+            port: 8080,
         },
         // 关闭esline
         overlay: {
@@ -32,14 +35,14 @@ 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")
+            .use('vue-svg-loader')
+            .loader('vue-svg-loader')
     },
     lintOnSave: false,
     publicPath: '/dist',