Bladeren bron

'添加批量选中功能'

zhangyu 4 jaren geleden
bovenliggende
commit
b5a7d0d922

BIN
src/assets/images/selectSimilar.png


+ 12 - 8
src/components/baseEditer.vue

@@ -758,18 +758,22 @@ export default {
       bus.$on("itemAngle", ang => {
         this.scene.updateItemAng(ang);
       }),
-        // 更改item样式
-        bus.$on("changeLengendItem", item => {
-          this.scene.changeLengendItem(item);
-        }),
-        //复制操作
-        bus.$on("copymsg", () => {
-          this.scene.copy();
-        });
+      // 更改item样式
+      bus.$on("changeLengendItem", item => {
+        this.scene.changeLengendItem(item);
+      }),
+      //复制操作
+      bus.$on("copymsg", () => {
+        this.scene.copy();
+      });
       //粘贴操作
       bus.$on("stickmsg", () => {
         this.scene.paste();
       });
+      //选中同类
+      bus.$on("selectSimilar", () => {
+        this.scene.selectSimilar();
+      });
     },
     // 获取图最大最小值
     getGraphDetail() {

+ 8 - 0
src/components/edit/top_toolbar.vue

@@ -53,6 +53,10 @@
             <img class="lock" :src="require(`./../../assets/images/past.png`)" alt />
             <span>粘贴</span>
           </li> -->
+          <li @click="selectSimilar">
+            <img class="lock" :src="require(`./../../assets/images/selectSimilar.png`)" alt />
+            <span>批量选中</span>
+          </li>
           <li class="zoom-window">
             <div>
               <img
@@ -430,6 +434,10 @@ export default {
     stickmsg() {
       bus.$emit("stickmsg");
     },
+    // 选中同类
+    selectSimilar() {
+      bus.$emit("selectSimilar");
+    },
     // 删除item
     deleteItem() {
       bus.$emit("deleiteItem");

+ 15 - 0
src/components/mapClass/EditScence.ts

@@ -1389,6 +1389,21 @@ export class EditScence extends SGraphScene {
         }
     }
 
+    /** 同类选中    */
+    selectSimilar() {
+        let typeList = [...new Set(this.selectContainer.itemList.map(item => {return item.data.GraphElementId}).filter(d => {return d}))];
+        this.selectContainer.clear();
+        this.Nodes.forEach(item => {
+            if(typeList.indexOf(item.data.GraphElementId) != -1)
+            this.selectContainer.toggleItem(item);
+        });
+        this.Relations.forEach(item => {
+            if(typeList.indexOf(item.data.GraphElementId) != -1)
+            this.selectContainer.toggleItem(item);
+        });
+        document.getElementById(`canvas`).focus();
+    }
+
     /** 类型转换    */
     itemToType(obj: SGraphItem): String {
         if (obj instanceof STextMarkerItem) {