Преглед изворни кода

位置标签整理创建页

LXXXY пре 5 година
родитељ
комит
30735628a9

+ 19 - 6
src/router/system.js

@@ -44,6 +44,8 @@ import buildAssets from '@/views/data_admin/buildAssets'
 import buildLog from '@/views/data_admin/buildLog'
 import buildData from '@/views/data_admin/buildData'
 import buildGraphy from '@/views/data_admin/buildGraphy'
+import updatePointZone from '@/views/data_admin/buildGraphy/updatePointZone'
+import createPointZone from '@/views/data_admin/buildGraphy/createPointZone'
 
 /**  台账管理 */
 import systemLedger from '@/views/ledger/system'
@@ -84,15 +86,14 @@ import dataUtil from '@/views/business_space/dataUtil'
 const OwnerManage = () =>
     import ('@/views/market/owner/manage')
 
-export default [
-    { 
-        path: '/', 
-        name: '', 
-        component: LayoutMain, 
+export default [{
+        path: '/',
+        name: '',
+        component: LayoutMain,
         children: [
             { path: '', name: 'blank', component: Dasboard },
             { path: 'allDetails', name: "allDetails", component: MsgAllDetails, meta: { keepAlive: false, breadcrumbs: [{ label: '消息中心' }] } }
-        ] 
+        ]
     },
     //{ path: '/login', name: 'Login', component: Login },
     { path: '/auth', name: 'auth', component: auth },
@@ -258,6 +259,18 @@ export default [
                 name: 'buildLog',
                 component: buildLog,
                 meta: { keepAlive: false, breadcrumbs: [{ label: '扫楼作业', path: '/floor' }, { label: '扫楼日志查看' }] }
+            },
+            {
+                path: 'updatePointZone',
+                name: 'updatePointZone',
+                component: updatePointZone,
+                meta: { keepAlive: false, breadcrumbs: [{ label: '扫楼作业', path: '/floor' }, { label: '现场数据整理', path: '/floor/data' }, { label: '位置标签整理', path: '/floor/plan' }, { label: '维护业务空间信息' }] }
+            },
+            {
+                path: 'createPointZone',
+                name: 'createPointZone',
+                component: createPointZone,
+                meta: { keepAlive: false, breadcrumbs: [{ label: '扫楼作业', path: '/floor' }, { label: '现场数据整理', path: '/floor/data' }, { label: '位置标签整理', path: '/floor/plan' }, { label: '创建业务空间' }] }
             }
         ]
     },

+ 171 - 0
src/views/data_admin/buildGraphy/createPointZone.vue

@@ -0,0 +1,171 @@
+<template>
+  <div id="createPoint">
+    <div class="condition">
+      <div class="header">
+        <el-button style="float:left;" size="small" type="default" icon="el-icon-back" @click="goBack"></el-button>
+        <el-button size="small" style="float:right" @click="createZone">创建</el-button>
+      </div>
+      <el-scrollbar style="height:calc(100% - 43px)">
+        <div class="item">
+          <span>基本信息:</span>
+          <div>
+            <label><span style="color:red;">*</span>业务空间名称</label>
+            <el-input placeholder="请输入业务空间名称" v-model="zoneName" clearable style="width:215px;margin-right:10px;"></el-input>
+            <label>业务空间编码</label>
+            <el-input placeholder="请输入业务空间编码" v-model="zoneLocalId" clearable style="width:215px;margin-right:10px;"></el-input>
+          </div>
+          <div>
+            <label><span style="color:red;">*</span>所属建筑楼层</label>
+            <el-cascader placeholder='请选择' :options="options" @change="changeFloor" :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;">
+              <el-option v-for="item in spaceList" :key="item.Code" :label="item.Name" :value="item.Code">
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <div class="item">
+          <span>其它可补充信息:</span>
+          <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'">
+            <div class="suppMsg">
+              <label>使用面积:</label>
+              <el-input placeholder="请输入使用面积" v-model="zoneName" clearable style="width:215px;margin-right:10px;"></el-input>
+            </div>
+            <div class="suppMsg" >
+              <label>备注文字:</label>
+              <el-input placeholder="请输入备注文字" v-model="zoneName" clearable style="width:215px;margin-right:10px;"></el-input>
+            </div>
+            <div class="suppMsg" >
+              <label>所属租户:</label>
+              <el-input placeholder="请输入所属租户" v-model="zoneName" clearable style="width:215px;margin-right:10px;"></el-input>
+            </div>
+            <div class="suppMsg" >
+              <label>配电容量:</label>
+              <el-input placeholder="请输入配电容量" v-model="zoneName" clearable style="width:215px;margin-right:10px;"></el-input>
+            </div>
+          </div>
+        </div>
+        <div class="item">
+          <p>位置标签图片信息:</p>
+          <locationPointMsg :pointObj="$route.params.item"></locationPointMsg>
+        </div>
+      </el-scrollbar>
+    </div>
+  </div>
+</template>
+
+<script>
+import spaceSelect from "@/components/ledger/lib/spaceSelect";
+import locationPointMsg from '@/views/data_admin/buildGraphy/locationPointMsg'
+import { queryDictionaryHead, buildingQuery, shaftSpaceTypeQuery, shaftSpaceBuildingQuery } from '@/api/scan/request';
+import { mapGetters } from 'vuex'
+export default {
+  data() {
+    return {
+      floorProps: {
+        value: 'BuildID',
+        label: 'BuildLocalName',
+        children: 'Floor'
+      },
+      options: [],//建筑楼层
+      spaceList: [],//空间列表
+      space: '',//当前空间
+      buildFloor: [],//建筑楼层信息
+      zoneName: '',//业务空间名称
+      zoneLocalId: '',//业务空间编码
+      showEx: 'el-icon-arrow-down',//下拉菜单
+    }
+  },
+  computed: {
+    ...mapGetters("layout", ["projectId"])
+  },
+  props: {
+
+  },
+  components: {
+    spaceSelect,
+    locationPointMsg
+  },
+  created() {
+    this.options = this.$route.params.floorData
+    this.getSpaceList();
+    console.log(this.$route.params.item)
+    console.log(this.$route.params.floorData)
+  },
+  methods: {
+    //创建
+    createZone(){
+      let param = {
+
+      }
+    },
+    //获取空间列表
+    getSpaceList() {
+      let pa = {
+        Filters: `parentId='Space'`
+      }
+      queryDictionaryHead(pa, res => {
+        this.spaceList = res.Content.filter((item => { return item.Name != '元空间' }));
+      });
+    },
+    //选择楼层
+    changeFloor(val) {
+
+    },
+    //返回
+    goBack() {
+      this.$router.push({
+        name: "buildGraphy",
+        params:{nowBuildFloor: this.$route.params.nowBuildFloor}
+      })
+    }
+  },
+  watch: {
+    projectId: {
+      handler(val) {
+        this.goBack();
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+.condition {
+  position: relative;
+  padding: 10px 10px;
+  display: flex;
+  height: calc(100% - 22px);
+  flex-direction: column;
+  border: 1px solid #dfe6ec;
+  background: #fff;
+  .header {
+    padding-bottom: 10px;
+    border-bottom: 1px solid rgba(0, 0, 0, 0.5);
+    span {
+      line-height: 33px;
+      margin-left: 15px;
+    }
+    /deep/ .buildFloor {
+      line-height: 32px;
+    }
+  }
+}
+/deep/ .el-scrollbar__wrap {
+  overflow-x: hidden;
+}
+.item {
+  padding: 10px 10px;
+  label {
+    display: inline-block;
+    padding: 5px 10px;
+    width:100px;
+  }
+}
+.suppMsg{
+  display:inline-block;
+  position:relative;
+}
+</style>

Разлика између датотеке није приказан због своје велике величине
+ 511 - 494
src/views/data_admin/buildGraphy/graphyTabs.vue


+ 6 - 26
src/views/data_admin/buildGraphy/index.vue

@@ -8,14 +8,14 @@
         </div> -->
     <div class='search-title'>
       <span class="p12">建筑楼层</span>
-      <el-cascader placeholder='请选择' :options="options" @change="changeFloor" filterable :props="props" ref="buildfloor"></el-cascader>
+      <el-cascader placeholder='请选择' v-model="buildVlaue" :options="options" @change="changeFloor" filterable :props="props" ref="buildfloor"></el-cascader>
     </div>
     <div class="graphy-view">
       <div class="graphy-main">
         <graphy-canvas v-if="show" @getDetails="getDetails" @resetPoint="resetPoint" ref="canvas"></graphy-canvas>
       </div>
       <div class="graphy-right">
-        <graphy-tabs v-show="show" ref="tabs" :pointParam="pointParam" @setFalg="setFalg" @getLocation="getLocation" @getPointList="sendPointList">
+        <graphy-tabs v-show="show" ref="tabs" :floorOption="options" :pointParam="pointParam" @setFalg="setFalg" @getLocation="getLocation" @getPointList="sendPointList">
         </graphy-tabs>
       </div>
     </div>
@@ -106,29 +106,6 @@ export default {
     getList() {
       let param = {
         Cascade: [
-          { Name: "floor", Orders: 'FloorSequenceID desc' }
-        ],
-        PageNumber: 1,
-        PageSize: 50
-      }
-      buildingQuery(this.param, res => {
-        res.Content.map(t => {
-          if (t.Floor && t.Floor.length) {
-            t.Floor = t.Floor.map(item => {
-              if (item.FloorID == this.FloorID) return
-              item.BuildID = item.FloorID
-              item.BuildLocalName = item.FloorLocalName || item.FloorName
-              return item
-            }).filter(it => it)
-          }
-        })
-        this.options = res.Content
-      })
-    },
-    //获取建筑列表
-    getList() {
-      let param = {
-        Cascade: [
           { Name: "floor", Orders: "FloorSequenceID desc", }
         ],
         PageNumber: 1,
@@ -146,6 +123,10 @@ export default {
           }
         })
         this.options = res.Content
+        if(this.$route.params.nowBuildFloor){
+          this.changeFloor(this.$route.params.nowBuildFloor)
+          this.buildVlaue = this.$route.params.nowBuildFloor
+        }
       })
     },
     changeValue() {
@@ -161,7 +142,6 @@ export default {
       this.pointParam.fllorName = data.name;
       this.pointParam.buildingData = data.buildingData
       this.$refs.tabs.reset(this.pointParam, data.map);
-      console.log('无情',data.map,this.map)
       if (this.map != data.map) {
         this.map = data.map;
         this.$refs.canvas.getData(data);

+ 80 - 0
src/views/data_admin/buildGraphy/locationPointMsg.vue

@@ -0,0 +1,80 @@
+<template>
+  <div id="locationPointMsg" style="width:100%;border:1px solid rgb(204,204,204)">
+    <div style="padding:5px 10px;border-bottom:1px solid rgb(204,204,204);">
+      <label class="item">位置标签名称:{{pointObj.Name}}</label>
+      <label class="item">本地编码:{{pointObj.Id}}</label>
+      <label class="item">备注:{{pointObj.Name}}</label>
+    </div>
+    <div style="padding:5px 10px;">
+      <p>勾选需要补充到业务空间的图片信息</p>
+      <div v-if="pointObj.ImageList.length">
+        <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange"><span style="padding-left:20px">全选</span></el-checkbox>
+        <div style="margin: 15px 0;"></div>
+        <el-checkbox-group v-model="choImg" @change="handleCheckedCitiesChange">
+          <el-checkbox v-for="item in pointObj.ImageList" :label="item" :key="item.key">
+            <div style="max-width:250px;height:250px;float:left;">
+              <el-image :src="`/image-service/common/image_get?systemId=dataPlatform&key=${item.Key}`" style="height:250px;"></el-image>
+            </div>
+          </el-checkbox>
+        </el-checkbox-group>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+const cityOptions = ['上海', '北京', '广州', '深圳'];
+export default {
+  data() {
+    return {
+      isIndeterminate: false,
+      checkAll: false,
+      choImg: [],//选中的图片
+    }
+  },
+  props: {
+    pointObj: {},//标签对象
+  },
+  created() {
+    console.log(this.pointObj)
+  },
+  methods: {
+    //是否全选
+    handleCheckAllChange(val) {
+      this.choImg = val ? this.pointObj.ImageList : [];
+      this.isIndeterminate = false;
+
+    },
+    //选中
+    handleCheckedCitiesChange(value) {
+      let checkedCount = value.length;
+      this.checkAll = checkedCount === this.pointObj.ImageList.length;
+      this.isIndeterminate = checkedCount > 0 && checkedCount < this.pointObj.ImageList.length;
+    },
+    //获取选中的图片
+    getChoImg(){
+      return this.choImg;
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+#locationPointMsg {
+  /deep/ .el-checkbox__input {
+    position: absolute;
+    left: 10px;
+  }
+  /deep/ .el-checkbox__inner {
+    width: 20px;
+    height: 20px;
+  }
+  /deep/ .el-checkbox__inner::after {
+    left: 7px;
+    top: 4px;
+  }
+  .item{
+    padding-right:20px;
+  }
+}
+</style>

+ 82 - 0
src/views/data_admin/buildGraphy/updatePointZone.vue

@@ -0,0 +1,82 @@
+<template>
+  <div id="updatePoint">
+    <div class="condition">
+      <div class="header">
+        <el-button style="float:left;" size="small" type="default" icon="el-icon-back" @click="goBack"></el-button>
+        <el-button size="small" style="float:right" @click="dialogVisible = true">更新</el-button>
+      </div>
+      <el-scrollbar style="height:calc(100% - 43px)">
+        <div>
+          this is
+        </div>
+      </el-scrollbar>
+    </div>
+  </div>
+</template>
+
+<script>
+
+import { queryDictionaryHead, buildingQuery, shaftSpaceTypeQuery, shaftSpaceBuildingQuery } from '@/api/scan/request';
+import { mapGetters } from 'vuex'
+export default {
+  data() {
+    return {
+
+    }
+  },
+  computed: {
+    ...mapGetters("layout", ["projectId"])
+  },
+  props: {
+
+  },
+  components: {
+
+  },
+  created() {
+    console.log(this.$route.params.item)
+  },
+  methods: {
+    //返回
+    goBack() {
+      this.$router.push({
+        path:'/floor/plan'
+      })
+    }
+  },
+  watch: {
+    projectId:{
+      handler(val){
+        this.goBack();
+      }
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+.condition {
+  position: relative;
+  padding: 10px 10px;
+  display: flex;
+  height: calc(100% - 22px);
+  flex-direction: column;
+  border: 1px solid #dfe6ec;
+  background: #fff;
+  .header {
+    padding-bottom: 10px;
+    border-bottom: 1px solid rgba(0, 0, 0, 0.5);
+    span {
+      line-height: 33px;
+      margin-left: 15px;
+    }
+    /deep/ .buildFloor {
+      line-height: 32px;
+    }
+  }
+  
+}
+/deep/ .el-scrollbar__wrap {
+  overflow-x: hidden;
+}
+</style>

+ 0 - 8
src/views/ledger/cenotelist/relatedSpace.vue

@@ -93,7 +93,6 @@ export default {
     cenoteGraphy
   },
   created() {
-    this.load();
     this.getSpaceData();
   },
   methods: {
@@ -205,10 +204,6 @@ export default {
       this.space = val;
       this.loadBuildingData();
     },
-    //加载数据
-    load() {
-
-    },
     //更换建筑
     changeBuilding(bid) {
       this.buildingList.map(item => {
@@ -219,12 +214,10 @@ export default {
           }
         }
       })
-      this.load();
     },
     //更换楼层
     changeFloor(fid) {
       this.floor = fid;
-      this.load();
     },
     //取消编辑
     cancelEdit(){
@@ -250,7 +243,6 @@ export default {
         this.changeSpace(this.spaceList[0].Code);
       }
       this.isMyTab = val;
-      this.load();
     },
     //返回
     goBack() {