Explorar o código

Merge branch 'msg-sever' into dev

haojianlong %!s(int64=5) %!d(string=hai) anos
pai
achega
bbf92fa7db

+ 6 - 0
src/api/scan/request.js

@@ -189,6 +189,12 @@ export function zoneQueryByPoint(param, success) {
     http.postJson(url, param.data, success)
 }
 
+//更新业务空间图片
+export function updateZonePic(param, success) {
+    let url = `${baseUrl}/equip-component/space/update-space-picinfo`;
+    http.postJson(url, param, success)
+}
+
 //扫楼作业-位置标签-删除图片
 export function deleteLocationImg(param, success) {
     let url = `${baseUrl}/datacenter/location-point/delete-image`;

+ 135 - 0
src/components/data_admin/zoneInput.vue

@@ -0,0 +1,135 @@
+<template>
+  <div id="zoneinput">
+    <el-form label-position="left" :label-width="labelWidth" :model="form">
+      <div v-for="(titem, tkey) in inputTypeList" :key="tkey">
+        <h4>{{ tkey }}</h4>
+        <el-form-item v-for="(item, key) in titem" :key="key" :label="item.InfoPointName" class="input-item">
+          <el-input v-model="item.inputValue" v-if="item.InputMode == 'A1'|| item.InputMode == 'A2'" type="number">
+            <template slot="append" v-if="item.Unit">{{item.Unit}}</template>
+          </el-input>
+          <el-input v-model="item.inputValue" v-else-if="item.InputMode == 'B1' || item.InputMode == 'L' || item.InputMode == 'M'"></el-input>
+          <el-select v-model="item.inputValue" v-else-if="item.InputMode == 'D1L'" placeholder="请选择">
+            <el-option v-for="(soption,skey) in item.options" :key="skey" :label="soption.Name" :value="soption.Code">
+            </el-option>
+          </el-select>
+          <el-cascader v-model="item.inputValue" v-else-if="item.InputMode == 'D1'" placeholder="请选择"
+            :props="item.props" :options="item.options" filterable :show-all-levels="false"></el-cascader>
+          <el-input v-model="item.inputValue" v-else></el-input>
+        </el-form-item>
+      </div>
+    </el-form>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      form: {},
+      inputTypeList: {},//输入框表头种类
+      inputData: [],//所有输入框
+    }
+  },
+  props: {
+    labelWidth: {
+      default: "130px",
+      type: String
+    }
+  },
+  created() {
+  },
+  methods: {
+    //初始化
+    init(val) {
+      this.inputTypeList = {};
+      this.inputData = [];
+      this.inputData = val.concat()
+      this.filterInput();
+      this.inputGroup();
+    },
+    //数据过滤
+    filterInput() {
+      this.inputData = this.inputData.filter(item => {
+        return item.Editable == true && item.Visible == true && item.FirstName && item.InfoPointCode;
+      })
+      let numbersInput = ['A1', 'A2'];
+      let stringInput = ['B1', 'L', 'M'];
+      let arrayInput = ['D1'];
+      let cascaderInput = ['D1L'];
+      this.inputData.map(item => {
+        if (numbersInput.indexOf(item.InputMode) != -1) {
+          item.inputValue = null;
+        }
+        else if (stringInput.indexOf(item.InputMode) != -1) {
+          item.inputValue = '';
+        }
+        else if (arrayInput.indexOf(item.InputMode) != -1) {
+          let options = JSON.parse(item.DataSource)
+          item.inputValue = '';
+          item.options = options;
+        }
+        else if(cascaderInput.indexOf(item.InputMode) != -1){
+          let options = JSON.parse(item.DataSource);
+          if (options[0] && options[0].Content) {
+            item.props = {
+              value: 'Code',
+              label: 'Name',
+              children: 'Content'
+            }
+          }
+          item.options = options;
+          item.inputValue = [];
+        }
+        else {
+          item.inputValue = '';
+        }
+      });
+
+    },
+    //数据分组
+    inputGroup() {
+      this.inputData.map(item => {
+        if (!this.inputTypeList[item.FirstName]) {
+          this.inputTypeList[item.FirstName] = [];
+        }
+        this.inputTypeList[item.FirstName].push(item)
+      })
+      for (let key in this.inputTypeList) {
+        if (this.inputTypeList[key] instanceof Array) {
+          this.inputTypeList[key].sort((item1, item2) => { return item1.Sort < item2.Sort });
+        }
+      }
+    },
+    //父组件获取form
+    getFormData() {
+      let f = {}
+      for (let key in this.inputTypeList) {
+        this.inputTypeList[key].map(item => {
+          if (item.inputValue != '' && item.inputValue != null) {
+            if (item.inputValue instanceof Array) {
+              f[item.InfoPointCode] = item.inputValue.pop();
+            }
+            else {
+              f[item.InfoPointCode] = item.inputValue;
+            }
+          }
+        })
+      }
+      return f;
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+.input-item {
+  display: inline-block;
+  position: relative;
+  margin-right: 10px;
+}
+#zoneinput {
+  /deep/ .el-form-item__content {
+    width: 220px;
+  }
+}
+</style>

+ 22 - 35
src/views/data_admin/buildGraphy/createPointZone.vue

@@ -16,7 +16,7 @@
           </div>
           <div>
             <label><span style="color:red;">*</span>所属建筑楼层</label>
-            <el-cascader placeholder='请选择' :options="options" @change="changeFloor" :props="floorProps" filterable ref="buildfloor"
+            <el-cascader placeholder='请选择' v-model="buildFloor" :options="options" :props="floorProps" filterable ref="buildfloor"
               style="width:215px;margin-right:10px;"></el-cascader>
             <label><span style="color:red;">*</span>业务空间类型</label>
             <el-select v-model="space" placeholder="请选择空间" style="width:215px;margin-right:10px;" @change="changeSpace">
@@ -30,14 +30,8 @@
           <i style="cursor: pointer;" :class="showEx"
             @click="showEx = (showEx == 'el-icon-arrow-up' ? 'el-icon-arrow-down' : 'el-icon-arrow-up')"></i>
           <div v-show="showEx == 'el-icon-arrow-up'" v-loading="loadingOtherMsg">
-            <div v-if="otherList.length">
-              <div class="suppMsg" v-for="(item, key) in otherList" :key="key">
-                <label>{{item.InfoPointName}}:</label>
-                <el-input :placeholder="`请输入${item.InfoPointName}`" v-model="item.inputValue" clearable style="width:215px;margin-right:10px;">
-                </el-input>
-              </div>
-            </div>
-            <p v-else>请选择业务空间类型</p>
+            <zoneInput v-show="otherList.length" :inputList="otherList" labelWidth="140px" ref="zoneInput"></zoneInput>
+            <p v-show="!otherList.length">请选择业务空间类型</p>
           </div>
         </div>
         <div class="item">
@@ -53,6 +47,7 @@
 import locationPointMsg from '@/views/data_admin/buildGraphy/locationPointMsg'
 import { queryDictionaryHead, getDataDictionary, createZone } from '@/api/scan/request';
 import { mapGetters } from 'vuex'
+import zoneInput from '@/components/data_admin/zoneInput'
 export default {
   data() {
     return {
@@ -72,7 +67,6 @@ export default {
       RoomLocalName: '',//业务空间名称
       otherList: [],//可补充信息list
       loadingOtherMsg: false,
-      test: '1'
     }
   },
   computed: {
@@ -82,7 +76,8 @@ export default {
 
   },
   components: {
-    locationPointMsg
+    locationPointMsg,
+    zoneInput
   },
   created() {
     this.options = this.$route.params.floorData
@@ -97,33 +92,29 @@ export default {
           content: []
         }
       }
-      let reqData = {
-        Pic: {}
-      };
-      //图片信息
-      this.$refs.pointMsg.choImg.map((item,key) => {
-        reqData.Pic[`additionalProp${key + 1}`] = item;
-      })
-      //其他补充信息
-      this.otherList.map(item => {
-        if (item.inputValue) {
-          reqData[item.InfoPointCode] = item.inputValue;
-        }
-      });
+      let zObj = this.$refs.zoneInput.getFormData();
+      zObj.Pic = this.$refs.pointMsg.choImg.concat();
+      zObj.Pic = zObj.Pic.map(item => ({
+        Id: item.ObjectId,
+        Key: item.Key,
+        Name: item.Name,
+        Type: item.Type
+      }))
       if (this.RoomLocalName && this.buildFloor.length && this.space) {
-        reqData.RoomLocalName = this.RoomLocalName;
-        reqData.RoomLocalID = this.RoomLocalID;
-        reqData.BuildingId = this.buildFloor[0];
-        reqData.FloorId = this.buildFloor[1];
+        zObj.RoomLocalName = this.RoomLocalName;
+        zObj.RoomLocalID = this.RoomLocalID;
+        zObj.BuildingId = this.buildFloor[0];
+        zObj.FloorId = this.buildFloor[1];
         param.zone = this.space;
-        param.data.content = [reqData];
+        param.data.content = [zObj];
         createZone(param, res => {
           this.$message.success("创建成功");
+          this.$refs.pointMsg.clearImg();
           this.RoomLocalName = ''
           this.RoomLocalID = ''
           this.buildFloor = []
           this.space = ''
-          
+          this.otherList = []
         })
       }
       else if (!this.RoomLocalName) {
@@ -135,7 +126,6 @@ export default {
       else {
         this.$message("请选择业务空间类型");
       }
-      console.log(param);
     },
     //获取空间列表
     getSpaceList() {
@@ -146,10 +136,6 @@ export default {
         this.spaceList = res.Content.filter((item => { return item.Name != '元空间' }));
       });
     },
-    //选择楼层
-    changeFloor(val) {
-      this.buildFloor = val;
-    },
     //选择业务空间
     changeSpace(val) {
       this.space = val;
@@ -168,6 +154,7 @@ export default {
           return filterCode.indexOf(item.InfoPointCode) == -1
         });
         this.otherList = res.Content;
+        this.$refs.zoneInput.init(this.otherList);
       })
     },
     //返回

+ 10 - 9
src/views/data_admin/buildGraphy/graphyTabs.vue

@@ -31,7 +31,7 @@ getLocation 定位
             <div class="point">
               <span>{{item.Name}}</span>
               <el-button size="mini" @click="getDetails(item)" icon="el-icon-edit-outline"></el-button>
-              <el-button :disabled="!map" size="mini" @click="btnClick(item)"
+              <el-button :disabled="true" size="mini" @click="btnClick(item)"
                   :icon="item.X == 0 && item.Y == 0 ? 'el-icon-s-flag' : 'el-icon-place'"></el-button>
             </div>
           </div>
@@ -97,7 +97,7 @@ getLocation 定位
         <template v-for="(item,index) in installPic">
           <div class="point-image" :key="index">
             <i class="el-icon-delete" @click="delImage(index,installPic)"></i>
-            <img :src="'/image-service/common/image_get?systemId=dataPlatform&key='+ item.key +'&width=200&height=200'" alt>
+            <img :src="'/image-service/common/image_get?systemId=dataPlatform&key='+ item.Key +'&width=200&height=200'" alt>
           </div>
         </template>
         <load-img keyName="安装位置" @getKey="getKey"></load-img>
@@ -107,7 +107,7 @@ getLocation 定位
         <template v-for="(item,index) in panorama">
           <div class="point-image" :key="index">
             <i class="el-icon-delete" @click="delImage(index,panorama)"></i>
-            <img :src="'/image-service/common/image_get?systemId=dataPlatform&key='+ item.key +'&width=200&height=200'" alt>
+            <img :src="'/image-service/common/image_get?systemId=dataPlatform&key='+ item.Key +'&width=200&height=200'" alt>
           </div>
         </template>
         <load-img keyName="全景照片" @getKey="getKey"></load-img>
@@ -117,7 +117,7 @@ getLocation 定位
         <template v-for="(item,index) in rimPic">
           <div class="point-image" :key="index">
             <i class="el-icon-delete" @click="delImage(index,rimPic)"></i>
-            <img :src="'/image-service/common/image_get?systemId=dataPlatform&key='+ item.key +'&width=200&height=200'" alt>
+            <img :src="'/image-service/common/image_get?systemId=dataPlatform&key='+ item.Key +'&width=200&height=200'" alt>
           </div>
         </template>
         <load-img keyName="周边照片" @getKey="getKey"></load-img>
@@ -127,7 +127,7 @@ getLocation 定位
         <template v-for="(item,index) in videoPic">
           <div class="point-image" :key="index">
             <i class="el-icon-delete" @click="delImage(index,videoPic)"></i>
-            <img :src="'/image-service/common/image_get?systemId=dataPlatform&key='+ item.key +'&width=200&height=200'" alt>
+            <img :src="'/image-service/common/image_get?systemId=dataPlatform&key='+ item.Key +'&width=200&height=200'" alt>
           </div>
         </template>
         <load-img keyName="视频" @getKey="getKey"></load-img>
@@ -137,7 +137,7 @@ getLocation 定位
         <template v-for="(item,index) in elsePic">
           <div class="point-image" :key="index">
             <i class="el-icon-delete" @click="delImage(index,elsePic)"></i>
-            <img :src="'/image-service/common/image_get?systemId=dataPlatform&key='+ item.key +'&width=200&height=200'" alt>
+            <img :src="'/image-service/common/image_get?systemId=dataPlatform&key='+ item.Key +'&width=200&height=200'" alt>
           </div>
         </template>
         <load-img keyName="其他照片" @getKey="getKey"></load-img>
@@ -340,19 +340,20 @@ export default {
             Filters: `BuildId='${this.buildingData[0]}';floorId='${this.buildingData[1]}'`,
             "Cascade": [{ "Name": "imageList" }]
           };
-        if (this.index == "1") {
+        if (this.activeName2 != "point") {
           param.Filters =  `BuildId='${this.buildingData[0]}';floorId isNull`
         }
         this.isLoading = true;
         locationPointQuery(param, res => {
           this.isLoading = false;
-          if (this.index == "1") {
+          if (this.activeName2 != "point") {
             this.pointNoData = res.Content;
+            this.$emit("getPointList", []);
           }
           else {
             this.pointData = res.Content;
+            this.$emit("getPointList", res.Content);
           }
-          this.$emit("getPointList", res.Content);
         })
       }
     },

+ 5 - 1
src/views/data_admin/buildGraphy/locationPointMsg.vue

@@ -35,7 +35,6 @@ export default {
     pointObj: {},//标签对象
   },
   created() {
-    console.log(this.pointObj)
   },
   methods: {
     //是否全选
@@ -49,6 +48,11 @@ export default {
       this.checkAll = checkedCount === this.pointObj.ImageList.length;
       this.isIndeterminate = checkedCount > 0 && checkedCount < this.pointObj.ImageList.length;
     },
+    //清空选项
+    clearImg(){
+      this.choImg = [];
+      this.isIndeterminate = false;
+    }
   }
 }
 </script>

+ 46 - 27
src/views/data_admin/buildGraphy/updatePointZone.vue

@@ -9,15 +9,18 @@
         <div class="item">
           <p>将位置标签图片批量补充到业务空间:</p>
           <div v-for="item in zoneList" :key="item.objid" class="zone-item">
-            <el-tooltip class="item" effect="light" :content="item.RoomLocalName || item.RoomName" placement="top">
+            <el-tooltip class="item" effect="dark"
+              :content="`${item.Building.BuildLocalName} / ${item.Floor.FloorLocalName} / ${item.DClassDef.Name} / ${item.RoomLocalName}`"
+              placement="top">
               <p>{{item.RoomLocalName || item.RoomName}}</p>
             </el-tooltip>
-            <el-button type="info" icon="el-icon-delete" circle style="float:right;" size="mini" @click="deleteZone(item.RoomID)"></el-button>
+            <i class="el-icon-delete" circle style="float:right;line-height:32px;padding: 0 9px 0 0;cursor: pointer;" size="mini"
+              @click="deleteZone(item.RoomID)"></i>
           </div>
-          <div class="zone-item" style="border:none;">
+          <div class="zone-item" style="border:none;border-left:-4px;width:auto;">
             <el-cascader :props="zoneCascader" :show-all-levels="false" v-model="zoneCa" @change="changeCascader" filterable style="float:left;">
             </el-cascader>
-            <el-button type="primary" icon="el-icon-plus" circle style="float:right;" size="mini" @click="addZone"></el-button>
+            <el-button type="primary" icon="el-icon-plus" circle style="float:right;margin:2px 10px;" size="mini" @click="addZone"></el-button>
           </div>
         </div>
         <div class="item">
@@ -31,7 +34,7 @@
 
 <script>
 import locationPointMsg from '@/views/data_admin/buildGraphy/locationPointMsg'
-import { queryDictionaryHead, zoneQueryByPoint, queryZone } from '@/api/scan/request';
+import { queryDictionaryHead, zoneQueryByPoint, queryZone, updateZonePic } from '@/api/scan/request';
 import { mapGetters } from 'vuex'
 export default {
   data() {
@@ -64,20 +67,30 @@ export default {
   methods: {
     //创建
     updateZ() {
-      console.log(this.zoneList);
-      if (this.$refs.pointMsg.choImg.length && this.zoneList.length) {
-        let imgs = {};
-        this.$refs.pointMsg.choImg.map((item, key) => {
-          imgs[`additionalProp${key + 1}`] = item;
-        })
-        this.zoneList.map(item => {
-          item.Pic = imgs;
+      let imgs = this.$refs.pointMsg.choImg.concat();
+      imgs = imgs.map(item => ({
+        Id: item.ObjectId,
+        Key: item.Key,
+        Name: item.Name,
+        Type: item.Type
+      }))
+      if (imgs.length && this.zoneList.length) {
+        let zones = this.zoneList.map(item => {
+          if (item.Pic) {
+            item.Pic = item.Pic.concat(imgs);
+          }
+          else {
+            item.Pic = imgs;
+          }
+          return { RoomID: item.RoomID, Pic: item.Pic, ObjectType: item.ObjectType };
         })
         let param = {
-          data: {
-            content: this.zoneList
-          }
+          Content: zones
         }
+        updateZonePic(param, res => {
+          this.$message.success("更新成功");
+          this.$refs.pointMsg.clearImg();
+        })
       }
       else if (!this.$refs.pointMsg.choImg.length) {
         this.$message("请至少选择一张图片");
@@ -92,7 +105,10 @@ export default {
       let pa = {
         X: this.pointItem.X,
         Y: this.pointItem.Y,
-        data: { Filters: `buildingId = '${this.pointItem.BuildId}' and floorId = '${this.pointItem.FloorId}'` }
+        data: {
+          Filters: `buildingId = '${this.pointItem.BuildId}' and floorId = '${this.pointItem.FloorId}'`,
+          "Cascade": [{ "Name": "floor" }, { "Name": "building" }, { "Name": "objectTypeO" }]
+        }
       }
       zoneQueryByPoint(pa, res => {
         this.zoneList = res.Content;
@@ -151,11 +167,16 @@ export default {
           }
         }
         queryZone(pa, res => {
-          let nodes = res.Content.map(item => ({
-            value: item,
-            label: item.RoomLocalName || item.RoomName,
-            leaf: level >= 3
-          }))
+          let nodes = res.Content.map(item => {
+            item.Building = { BuildLocalName: node.parent.parent.label };
+            item.Floor = { FloorLocalName: node.parent.label };
+            item.DClassDef = { Name: node.label };
+            return {
+              value: item,
+              label: item.RoomLocalName || item.RoomName,
+              leaf: level >= 3
+            }
+          })
           resolve(nodes)
         })
       }
@@ -168,7 +189,6 @@ export default {
     addZone() {
       if (this.newZoneObj.RoomID && this.zoneList.findIndex((item) => (item.RoomID == this.newZoneObj.RoomID)) == -1) {
         this.zoneList.push(this.newZoneObj)
-        console.log(this.zoneList)
       }
       else if (!this.newZoneObj.RoomID) {
         this.$message("请选择业务空间后添加")
@@ -237,17 +257,16 @@ export default {
   display: inline-block;
   position: relative;
   width: 245px;
-  padding: 5px 10px;
-  margin: 0 5px 5px 0;
+  margin: 5px 15px 10px 0;
+  border: 1px solid rgb(220, 223, 230);
+  border-radius: 5px;
 }
 .zone-item p {
   width: 200px;
   float: left;
   height: 32px;
   overflow: hidden;
-  border: 1px solid rgb(220, 223, 230);
   padding-left: 15px;
   padding: 0 0 0 15px;
-  border-radius: 5px;
 }
 </style>

+ 18 - 4
src/views/ledger/cenotelist/relatedSpace.vue

@@ -14,10 +14,12 @@
           <addSpaceDialog :dialogVisible.sync="dialogVisible" ref="addSpaceDialog" @refresh="refresh" :params="cenoteObj" :spaceType="spaceType"
             :floorType="floorType"></addSpaceDialog>
         </div>
-        <el-select v-model="space" placeholder="请选择业务空间" @change="changeSpace" style="margin-left:15px;">
-          <el-option v-for="item in spaceList" :key="item.Code" :label="item.Name" :value="item.Code">
-          </el-option>
-        </el-select>
+        <el-badge :is-dot="showSpaceDot">
+          <el-select v-model="space" placeholder="请选择业务空间" @change="changeSpace" style="margin-left:15px;">
+            <el-option v-for="item in spaceList" :key="item.Code" :label="item.Name" :value="item.Code">
+            </el-option>
+          </el-select>
+        </el-badge>
       </div>
       <div class="saga-build-tab">
         <el-radio-group v-model="isMyTab" @change="changeRadio" style="width: 136px;">
@@ -26,9 +28,11 @@
         </el-radio-group>
       </div>
       <div v-show="isMyTab == 1" class="data-item">
+        <el-badge :is-dot="showBuildDot">
         <el-select v-model="building" placeholder="请选择建筑" @change="changeBuilding" v-loading="buildingLoading">
           <el-option v-for="item in buildingList" :key="item.value" :label="item.BuildLocalName" :value="item.BuildID"></el-option>
         </el-select>
+        </el-badge>
         <div style="height:calc(100% - 42px);margin:10px 0 0 0;width:100%;position:relative;">
           <el-scrollbar style="height:100%;width:148px;border:1px solid rgb(201,201,201);margin:0px;float:left;">
             <div class="floor" style="width:149px;height:100%;">
@@ -75,6 +79,8 @@ export default {
       spaceType: {},//空间种类
       floorType: {},//子组件楼层信息
       buildingLoading: false,//左侧列表加载
+      showSpaceDot:false,//空间提示红点
+      showBuildDot:false,//楼层提示红点
     }
   },
   computed: {
@@ -128,6 +134,9 @@ export default {
     showDefaultSpace() {
       if (this.spaceList.length) {
         this.space = this.spaceList[0].Code;
+        if(this.spaceList.length > 1 && this.cenoteObj.onlyRead){
+          this.showSpaceDot = true;
+        }
       }
       //处理空间类型
       this.spaceList.map(item => {
@@ -185,6 +194,9 @@ export default {
         if (this.buildingObj.Floor && this.buildingObj.Floor.length) {
           this.floor = this.buildingObj.Floor[0].FloorID;
         }
+        if(this.buildingList.length > 1 && this.cenoteObj.onlyRead){
+          this.showBuildDot = true;
+        }
       }
       this.buildingList.map(item => {
         if (item.BuildID && item.BuildLocalName) {
@@ -203,6 +215,7 @@ export default {
     changeSpace(val) {
       this.space = val;
       this.loadBuildingData();
+      this.showSpaceDot = false;
     },
     //更换建筑
     changeBuilding(bid) {
@@ -214,6 +227,7 @@ export default {
           }
         }
       })
+      this.showBuildDot = false;
     },
     //更换楼层
     changeFloor(fid) {

+ 3 - 3
src/views/ledger/cenotelist/relatedSpaceList.vue

@@ -1,13 +1,13 @@
 <template>
   <div id="relatedSpaceList" style="height:100%;">
     <div class="query">
-      <el-input v-model="keyword" placeholder="请输入关键词" @keyup.enter.native="getSpaceList" style="width:240px;margin:0 0 0 10px;">
+      <el-input v-model="keyword" placeholder="请输入关键词" @keyup.enter.native="getSpaceList" style="width:240px;margin:0 0;">
         <i slot="suffix" class="el-input__icon el-icon-search" @click="getSpaceList"></i>
       </el-input>
       <el-cascader v-model="Buildfloor" :options="buildingData" @change="handleChange"></el-cascader>
     </div>
     <div class="table-area" style="height:calc(100% - 52px)">
-      <el-scrollbar style="height:calc(100% - 40px);">
+      <el-scrollbar style="height:calc(100% - 48px);">
         <el-table :data="tableData" style="width: 100%;height:100%;" v-loading="loading" :header-cell-style="headerStyle">
           <el-table-column label='业务空间建筑楼层' show-overflow-tooltip min-width="200" header-align='center' align="center">
             <template slot-scope="scope">
@@ -32,7 +32,7 @@
       </el-scrollbar>
       <!-- 分页 -->
       <el-pagination @size-change="getSpaceList" @current-change="getSpaceList" :current-page="currentPage" :page-sizes="pageSizes"
-        :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="tableData.length" style="float:right;">
+        :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="tableData.length" style="float:right;padding:20px 20px 0 0;">
       </el-pagination>
     </div>
   </div>