Explorar el Código

选择编辑 不区分设备跟位置

xiebeibei hace 4 años
padre
commit
e65a650d0e
Se han modificado 3 ficheros con 176 adiciones y 87 borrados
  1. 26 13
      src/components/edit/attr_select.vue
  2. 78 31
      src/components/edit/edit-dialog.vue
  3. 72 43
      src/views/drafts.vue

+ 26 - 13
src/components/edit/attr_select.vue

@@ -288,7 +288,7 @@
         </a-collapse-panel>
       </a-collapse>
     </div>
-    <editDialog  ref="dialog" :attrCards="attrCards" :typeEdit="type" :getmajorId="getmajorId" :sysNum="imageNum" :key="new Date().getTime()"/>
+    <editDialog  ref="dialog" :attrCards="attrCards"  :sysNum="imageNum" :key="new Date().getTime()"/>
     <!--    <editDialog ref="dialog" :typeEdit="2" :getmajorId="'1001'" :sysNum="5" />-->
   </div>
 </template>
@@ -530,43 +530,56 @@ export default {
           }
         }
       }
-      const  location =[];
+      const  locationList =[];
+      const  assetnumList =[];
       let  params ={};
+      this.attrCards = [];
       Item.data.AttachObjectIds.map(item=>{
-        location.push(item.id)
+        if(item.type=='Zone'){
+          locationList.push(item.id)
+        }else if(item.type=='Image'){
+          assetnumList.push(item.id)
+        }
+
       })
-     if(newval.itemType == 'Zone'){
+     // if(newval.itemType == 'Zone'){
        this.spinning = true;
-       if(location.length){
-         params = {locationList:location}
+       if(locationList.length){
+         params = {locationList:locationList}
        }else{
          params = {locationList:['']};
        }
        queryGlsmsLocation({plazaId: getUrlMsg().projectId},params).then(res=>{
          this.spinning = false;
          if(res.data.result =='success'){
-           this.attrCards = res.data.data||[];
+           console.log(res.data);
+           if(res.data.data && res.data.data.length){
+             this.attrCards =  this.attrCards.concat(res.data.data)
+           }
          }else{
            this.$message.error('工程信息化中的位置信息获取失败')
          }
        })
-     }else if(newval.itemType == 'Image'){
+     // }else if(newval.itemType == 'Image'){
        this.spinning = true;
-       if(location.length){
-         params = {assetnumList:location}
+       if(assetnumList.length){
+         params = {assetnumList:assetnumList}
        }else{
          params = {assetnumList:['']};
        }
        queryGlsmsAsset({plazaId: getUrlMsg().projectId},params).then(res=>{
          this.spinning = false;
          if(res.data.result =='success'){
-           this.attrCards = res.data.data||[];
+           console.log(res.data);
+           if(res.data.data &&res.data.data.length){
+             this.attrCards = this.attrCards.concat(res.data.data)
+           }
          }else{
            this.$message.error('工程信息化中的设备信息获取失败')
          }
        })
-     }
-
+     // }
+      console.log(this.attrCards);
     }
   }
 };

+ 78 - 31
src/components/edit/edit-dialog.vue

@@ -12,15 +12,29 @@
       <div class="left">
         <div class="header">
           <div class="select">
-            <Select style="margin: 0 10px"
-                    v-model="majorId"
-                    @change="handleMajor"
-                    :hideClear='true'
-                    :selectdata="majorList"
-                    :placeholder="'请选择'"
-                    class="search-select"
-                    width="236" isReadOnly
-            />
+            <a-select style="width: 236px;margin: 0 10px" >
+              <a-select-opt-group>
+                <span slot="label">设备设施</span>
+                <a-select-option v-for="item in majorList" :value="item.id" @click="handleChange(item)">
+                  {{item.name}}
+                </a-select-option>
+              </a-select-opt-group>
+              <a-select-opt-group>
+                <span slot="label">位置区域</span>
+                <a-select-option v-for="item in locationList" :value="item.id" @click="handleChange(item)">
+                  {{item.name}}
+                </a-select-option>
+              </a-select-opt-group>
+            </a-select>
+<!--            <Select style="margin: 0 10px"-->
+<!--                    v-model="majorId"-->
+<!--                    @change="handleMajor"-->
+<!--                    :hideClear='true'-->
+<!--                    :selectdata="majorList"-->
+<!--                    :placeholder="'请选择'"-->
+<!--                    class="search-select"-->
+<!--                    width="236" isReadOnly-->
+<!--            />-->
           </div>
           <div class="search">
             <Select
@@ -41,7 +55,7 @@
           <searchTree  @getTreeId="getTreeId" :treeData="treeData"/>
         </div>
         <div class="checkbox">
-          <a-table :pagination="false" :row-key='typeEdit=="Zone"?"location":"assetnum"' :columns="typeEdit=='Image'?columnsSys:columnsLocal" :data-source="tableData"  :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,onSelect:onSelect }" :scroll="{ y: 340 }"  :loading="loading"/>
+          <a-table :pagination="false" :row-key='typeEdit=="Zone"?"location":"assetnum"' :columns="typeEdit=='Image'?columnsSys:typeEdit=='Zone'?columnsLocal:objSys" :data-source="tableData"  :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,onSelect:onSelect }" :scroll="{ y: 340 }"  :loading="loading"/>
           <a-pagination v-if="total>0" v-model="page" :total="total" show-less-items style="margin-left: auto;"  @change="handleTableChange"/>
         </div>
       </div>
@@ -72,8 +86,6 @@
         name: "edit-dialog",
         components: {searchTree},
       props:{
-        typeEdit:String , //用于区分是设备 还是  位置
-        getmajorId:String, //专业Id
         sysNum:Number ,//设备总数
         attrCards:Array
       },
@@ -87,10 +99,26 @@
                 dataFloor: [],
                 plainOptions: ['福建三明万达-供电系统-6楼-工程信息化中的区域编码ND182472e83742', '福建三明万达-供电系统-6楼-工程信息化中的区域编码ND18247283742'],
                 majorList: [],
+               locationList: [],
                 checkedList: [],
               keyword:'',
               classstructureid:'',
               locfl:'',
+              objSys : [
+                {
+                  title: '对象名称',
+                  dataIndex: 'sbjc',
+                  key: 'sbjc',
+                  width: '75%',
+                  scopedSlots: { customRender: 'sbjc' },
+                },
+                {
+                  title: '对象内码',
+                  dataIndex: 'sbjbm',
+                  key: 'sbjbm',
+                  width: '25%',
+                },
+              ],
               columnsSys : [
                 {
                   title: '设备名称',
@@ -130,13 +158,9 @@
               selectedRowKeys :[],
               arrList:[],
               selectList:[],
+              typeEdit:'',
             }
         },
-        computed:{
-          majorId(){
-            return this.typeEdit=='Zone'?'位置区域': this.getmajorId
-          },
-        },
       watch:{
         floorId(val){
           if(val==''){
@@ -157,9 +181,14 @@
                     let arr = [];
                     arr = JSON.parse(JSON.stringify( this.arrList))
                   arr.map(item =>{
-                      lists.push({id:item.location||item.assetnum,name:item.wzjc||item.sbjc})
+                    if(item.wzjc){
+                      lists.push({id:item.location||item.assetnum,name:item.wzjc||item.sbjc,type:'Zone'})
+                    }if(item.sbjc){
+                      lists.push({id:item.location||item.assetnum,name:item.wzjc||item.sbjc,type:'Image'})
+                    }
                     })
-                    bus.$emit('changeAttachObjectIds',lists)
+                  console.log(lists);
+                  bus.$emit('changeAttachObjectIds',lists)
                     bus.$emit('updateAttachMsg',lists)
                 },1000);
             },
@@ -167,10 +196,17 @@
                 this.visible = false;
               let arr = [];
               let lists = [];
+              console.log(this.selectList);
               arr = JSON.parse(JSON.stringify( this.selectList))
               arr.map(item =>{
-                lists.push({id:item.location||item.assetnum,name:item.wzjc||item.sbjc})
+                if(item.wzjc){
+                  lists.push({id:item.location||item.assetnum,name:item.wzjc||item.sbjc,type:'Zone'})
+                }if(item.sbjc){
+                  lists.push({id:item.location||item.assetnum,name:item.wzjc||item.sbjc,type:'Image'})
+                }
+
               })
+              console.log(lists);
               bus.$emit('changeAttachObjectIds',lists)
             },
             onSearch(value) {
@@ -179,6 +215,12 @@
             ChangeCheckbox(val) {
                 console.log(val)
             },
+          handleChange(val){
+            console.log(val);
+            this.tableData = [];
+            this.typeEdit = val.type;
+            this.getQuerySmsxtBy(val.id,val.type)
+          },
             handleMajor(val) {
               this.tableData = [];
               this.getQuerySmsxtBy(val.id)
@@ -272,6 +314,9 @@
                 this.$message.error('不能超过设备数')
                 return false;
               }
+            selectedRows.map(item=>{
+              item.type=this.typeEdit;
+            })
             this.arrList = [...this.arrList,...selectedRows]
             const obj = {}
             if(this.typeEdit=='Zone'){
@@ -318,7 +363,7 @@
           },
           //获取设备大类和位置大类
           getQuerySmsxt(){
-              if (this.typeEdit=='Image'){
+              // if (this.typeEdit=='Image'){
                 getQuerySmsxt({}).then(res =>{
                   if(res.result == 'success'){
                     if(res.data){
@@ -326,12 +371,13 @@
                       data.map(item=>{
                         item.id = item.code;
                         item.name = item.name;
+                        item.type='Image';
                       })
                       this.majorList  = data;
                     }
                   }
                 })
-              }else if(this.typeEdit =='Zone'){
+              // }else if(this.typeEdit =='Zone'){
 
                 queryWzfldl({}).then(res =>{
                 if(res.result == 'success'){
@@ -340,17 +386,18 @@
                     data.map(item=>{
                       item.id = item.dl;
                       item.name = item.dl;
+                      item.type='Zone'
                     })
-                    this.majorList  = data;
+                    this.locationList  = data;
                   }
                 }
               })
-            }
+            // }
 
           },
          // 获取设备大类下的分类和位置大类下的分类
-          getQuerySmsxtBy(smsxt){
-              if(this.typeEdit=='Image'){
+          getQuerySmsxtBy(smsxt,type){
+              if(type=='Image'){
               const data = {
                 smsxt:smsxt
               }
@@ -375,7 +422,7 @@
                   this.$message.error('获取失败');
                 }
               })
-            }else if(this.typeEdit=='Zone'){
+            }else if(type=='Zone'){
                 const data = {
                   dl:smsxt
                 }
@@ -413,10 +460,10 @@
             this.selectedRowKeys = [];
           }
           this.getQuerySmsxt();
-          //如果有专业就带过来
-          if(this.majorId){
-            this.getQuerySmsxtBy(this.majorId)
-          }
+          // //如果有专业就带过来
+          // if(this.majorId){
+          //   this.getQuerySmsxtBy(this.majorId)
+          // }
           this.getPlazaFloor();
 
         }

+ 72 - 43
src/views/drafts.vue

@@ -3,7 +3,8 @@
     <div class="tit">草稿箱</div>
     <div class="conent">
       <div class="left-nav">
-        <Tree :data="treeData" @change="change"></Tree>
+        <Tree :data="treeData" @change="change" v-if="treeData.length"></Tree>
+        <div v-else style="text-align: center;margin-top: 20px;">暂无数据</div>
         <!--          <el-tree ref="tree" :data="treeData" :props="defaultProps" @node-click="handleNodeClick"  node-key="id"    :expand-on-click-node="false"-->
         <!--                   :current-node-key="currentNodekey"-->
         <!--                   :default-expanded-keys="expandedkeys">-->
@@ -150,6 +151,12 @@ export default {
     // },
     //初始化获取蜂鸟所有底图数据
     init() {
+      const loadings = Loading.service({
+        lock: true,
+        text: "Loading",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)"
+      });
       // const loadings = this.$loading({type: 'global'});
       document.getElementById(`canvas`).focus();
       this.scene = new EditScence();
@@ -170,6 +177,7 @@ export default {
           )
           .then(response => {
             // 获取楼层数据数据
+            loadings.close();
             this.getTreeData();
           });
       });
@@ -270,59 +278,78 @@ export default {
       console.log(items);
     },
     getTreeData() {
+      const loadings = Loading.service({
+        lock: true,
+        text: "Loading",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)"
+      });
       queryDraftGroup({ projectId: this.projectId }).then(res => {
         console.log(res);
+        loadings.close();
         if (res.Result == "success") {
           const data = res.Data;
-          (function recursion(newObj) {
-            newObj.map(function(item, index) {
-              item.id = item.Id || item.Gname;
-              item.name = item.Gcode;
+          this.systemName = '';
+          this.floorName = '';
+          this.floorId = '';
+          this.categoryId = '';
+          if(data.length){
+            (function recursion(newObj) {
+              newObj.map(function(item, index) {
+                item.id = item.Id || item.Gname;
+                item.name = item.Gcode;
 
-              item.checked = false;
-              if (item.Category && item.Category.length > 0) {
-                item.children = item.Category;
-                item.open = false;
-                recursion(item.Category);
-              }
-            });
-          })(data);
-          data.forEach(ele => {
-            ele.children.forEach(item => {
-              if (item.children) {
-                item.children.forEach(item1 => {
-                  item1.id = item.Id + item1.Gname;
-                });
-              } else {
-                item.id = ele.Id + item.Gname;
-              }
+                item.checked = false;
+                if (item.Category && item.Category.length > 0) {
+                  item.children = item.Category;
+                  item.open = false;
+                  recursion(item.Category);
+                }
+              });
+            })(data);
+            data.forEach(ele => {
+              ele.children.forEach(item => {
+                if (item.children) {
+                  item.children.forEach(item1 => {
+                    item1.id = item.Id + item1.Gname;
+                  });
+                } else {
+                  item.id = ele.Id + item.Gname;
+                }
+              });
             });
-          });
-          this.treeData = data;
-          if (this.treeData[0].children[0].children) {
-            this.treeData[0].open = true;
-            this.treeData[0].children[0].open = true;
-            this.treeData[0].children[0].children[0].checked = "checked";
-            this.systemName = this.treeData[0].children[0].Gcode;
-            this.floorName = this.treeData[0].children[0].children[0].Gcode;
-            this.floorId = this.treeData[0].children[0].Gname;
-            this.categoryId = this.treeData[0].children[0].Id;
-            // this.getLegend();
-            this.checkFloor(this.treeData[0].children[0].children[0].Gname);
-          } else {
-            this.treeData[0].open = true;
-            this.treeData[0].children[0].checked = "checked";
-            this.systemName = this.treeData[0].Gcode;
-            this.floorName = this.treeData[0].children[0].Gcode;
-            this.floorId = this.treeData[0].Gname;
-            this.categoryId = this.treeData[0].Id;
-            // this.getLegend();
-            this.checkFloor(this.treeData[0].children[0].Gname);
+            this.treeData = data;
+            if ( this.treeData[0].children[0].children) {
+              this.treeData[0].open = true;
+              this.treeData[0].children[0].open = true;
+              this.treeData[0].children[0].children[0].checked = "checked";
+              this.systemName = this.treeData[0].children[0].Gcode;
+              this.floorName = this.treeData[0].children[0].children[0].Gcode;
+              this.floorId = this.treeData[0].children[0].children[0].Gname;
+              this.categoryId = this.treeData[0].children[0].Id;
+              // this.getLegend();
+              this.checkFloor(this.treeData[0].children[0].children[0].Gname);
+            } else {
+              this.treeData[0].open = true;
+              this.treeData[0].children[0].checked = "checked";
+              this.systemName = this.treeData[0].Gcode;
+              this.floorName = this.treeData[0].children[0].Gcode;
+              this.floorId = this.treeData[0].children[0].Gname;
+              this.categoryId = this.treeData[0].Id;
+              // this.getLegend();
+              this.checkFloor(this.treeData[0].children[0].Gname);
+            }
+          }else{
+            this.treeData = data;
           }
+
         } else {
           this.treeData = [];
           this.$message.error("获取楼层结构失败");
         }
+      }).catch(()=>{
+        loadings.close();
+        this.$message.error('请求失败')
       });
     },
     //获取补充图例
@@ -364,6 +391,7 @@ export default {
         if (res.Result == "success") {
           this.$message.success("删除成功");
           this.getTreeData();
+          this.init();
           this.legendData = [];
         } else {
           this.$message.error(res.Message);
@@ -378,6 +406,7 @@ export default {
         spinner: "el-icon-loading",
         background: "rgba(0, 0, 0, 0.7)"
       });
+      console.log(this.floorId);
       const data = {
         BuildingID: this.BuildingID,
         CategoryID: this.categoryId,