Browse Source

editer:fix>调试属性栏二级树接口

YaolongHan 4 years ago
parent
commit
9f15228944

+ 5 - 1
src/api/editer.ts

@@ -38,7 +38,11 @@ export function queryCategory(postParams: any): any {
 export function queryLegend(postParams: any): any {
     return httputils.postJson(`/meiku/legend/query`, postParams)
 }
-// 查询设备信息点
+// 查询设备的所有信息点数组
+export function queryDict(postParams: any): any {
+    return httputils.postJson(`/datacenter/dict/query`, postParams)
+}
+// 查询设备某个信息点详情的值 --- (用于点击图中信息点调用)
 export function queryEquipMsg(postParams: any): any {
     return httputils.postJson(`/datacenter/object/equip/query`, postParams)
 }

+ 45 - 39
src/components/editview/baseTopoEditer.vue

@@ -25,7 +25,7 @@ import {
 // import { SFloorParser } from "@persagy-web/big/lib";
 import topoTooltip from "./topoTooltip.vue";
 import { mapState, mapMutations } from "vuex";
-import base64ToFile from "@/utils/base64ToFile"
+import base64ToFile from "@/utils/base64ToFile";
 import { v1 as uuidv1 } from "uuid";
 import bus from "@/bus/bus";
 import {
@@ -35,7 +35,7 @@ import {
   getImageGroup,
   readPubGroup,
 } from "@/api/editer";
-import { publishGraph } from "@/api/home"
+import { publishGraph } from "@/api/home";
 export default {
   components: { topoTooltip },
   data() {
@@ -118,68 +118,68 @@ export default {
     //初始化bus绑定事件
     initBusEvent() {
       // 改变样式
-      bus.$off('updateStyle');
+      bus.$off("updateStyle");
       bus.$on("updateStyle", (type, val) => {
         this.scene.updateStyle(type, val);
       });
       // 撤销
-      bus.$off('topoUndo');
+      bus.$off("topoUndo");
       bus.$on("topoUndo", (val) => {
         this.scene.undo();
       });
       // 重做
-      bus.$off('topoRedo');
+      bus.$off("topoRedo");
       bus.$on("topoRedo", (val) => {
         this.scene.redo();
       });
       // 删除
-      bus.$off('deleteItem');
+      bus.$off("deleteItem");
       bus.$on("deleteItem", (val) => {
         this.scene.deleteItem();
       });
       // 复制
-      bus.$off('copy');
+      bus.$off("copy");
       bus.$on("copy", (val) => {
         this.scene.copy();
       });
       // 粘贴
-      bus.$off('paste');
+      bus.$off("paste");
       bus.$on("paste", (val) => {
         this.scene.paste();
       });
       // 保存
-      bus.$off('saveTopo');
+      bus.$off("saveTopo");
       bus.$on("saveTopo", (val) => {
-        this.saveTopoDraft()
+        this.saveTopoDraft();
       });
       // 设置实例置顶置底
-      bus.$off('setOrder');
+      bus.$off("setOrder");
       bus.$on("setOrder", (val) => {
         this.scene.setOrder(val);
       });
       // 设置实例status状态
-      bus.$off('setItemStatus');
+      bus.$off("setItemStatus");
       bus.$on("setItemStatus", (val) => {
         this.scene.setItemStatus();
       });
       // 下载图片
-      bus.$off('saveTopoImg');
+      bus.$off("saveTopoImg");
       bus.$on("saveTopoImg", () => {
         // 隐藏选择器
         this.scene.selectContainer.clear();
         setTimeout(() => {
           this.view.saveImage(`${this.topoContent.name}.png`, "png");
-        },80)
+        }, 80);
       });
       // 发布图片
-      bus.$off('issueTopo');
+      bus.$off("issueTopo");
       bus.$on("issueTopo", () => {
         this.saveTopoDraft().then(() => {
-          this.issueDraft()
-        })
+          this.issueDraft();
+        });
       });
       // 手动添加设备实例
-      bus.$off('addEquipment');
+      bus.$off("addEquipment");
       bus.$on("addEquipment", (val) => {
         this.addEquipmentList(val);
       });
@@ -203,7 +203,7 @@ export default {
     },
     // 读图成功回调
     getDataSuc(res) {
-      if(res.result == "failure") return;
+      if (res.result == "failure") return;
       this.SETCATEGROY(res.content.categoryId);
       this.topoContent = res.content;
       const parse = new PTopoParser();
@@ -223,11 +223,13 @@ export default {
       this.view.fitSceneToView();
     },
     // 保存草稿
-    saveTopoDraft(){
+    saveTopoDraft() {
       const uuid = uuidv1();
-      return Promise.all([this.generateSnap(uuid), this.saveDraft(uuid)]).then(vals => {
-        this.$message.success(`保存成功${vals[1].version}`);
-      })
+      return Promise.all([this.generateSnap(uuid), this.saveDraft(uuid)]).then(
+        (vals) => {
+          this.$message.success(`保存成功${vals[1].version}`);
+        }
+      );
     },
     // 生成快照
     generateSnap(uuid) {
@@ -235,7 +237,7 @@ export default {
       this.scene.selectContainer.clear();
       setTimeout(() => {
         // base64数据
-        const data = this.view.imageUrl('png');
+        const data = this.view.imageUrl("png");
         // 根据base64生成file
         const file = base64ToFile(data);
         const reader = new FileReader();
@@ -245,25 +247,28 @@ export default {
           reader.onloadend = function () {
             // 这个事件在读取结束后,无论成功或者失败都会触发
             if (reader.error) {
-              console.log('reader error', reader.error);
-              reject(reader.error)
+              console.log("reader error", reader.error);
+              reject(reader.error);
             } else {
               // 构造 XMLHttpRequest 对象,发送文件 Binary 数据
               const xhr = new XMLHttpRequest();
-              xhr.open("POST", `/image-service/common/image_upload?systemId=dataPlatform&secret=9e0891a7a8c8e885&overwrite=true&key=${uuid}.${imgType}`);
+              xhr.open(
+                "POST",
+                `/image-service/common/image_upload?systemId=dataPlatform&secret=9e0891a7a8c8e885&overwrite=true&key=${uuid}.${imgType}`
+              );
               xhr.send(reader.result);
               xhr.onreadystatechange = function () {
                 if (xhr.readyState == 4) {
                   if (xhr.status == 200) {
-                    resolve(xhr)
+                    resolve(xhr);
                   }
                 }
               };
             }
           };
           reader.readAsArrayBuffer(file);
-        })
-      },80)
+        });
+      }, 80);
     },
     // 保存草稿
     saveDraft(uuid) {
@@ -313,25 +318,25 @@ export default {
               },
             });
           }
-          resolve(res.entityList[0])
+          resolve(res.entityList[0]);
         });
-      })
+      });
     },
     // 发布草稿
-    issueDraft(){
+    issueDraft() {
       const pa = {
         graphId: this.graphId,
-        id: this.id
-      }
-      publishGraph(pa).then(res => {
-        this.$message.success('发布成功');
-      })
+        id: this.id,
+      };
+      publishGraph(pa).then((res) => {
+        this.$message.success("发布成功");
+      });
     },
     // 手动添加设备
     addEquipmentList(list) {
       const parse = new PTopoParser();
       list.forEach((item, i) => {
-       const x = (i + 1) * 100;
+        const x = (i + 1) * 100;
         let data = {
           /** 名称 */
           name: "基础设备",
@@ -345,6 +350,7 @@ export default {
           /** 由应用自己定义 */
           properties: {
             type: "BaseEquipment",
+            classCode: item.classCode, // 设备类型
           },
           style: {
             default: {

+ 47 - 19
src/components/editview/rightPropertyBar/BaseEquipment.vue

@@ -80,7 +80,7 @@
                     'el-icon-caret-bottom',
                   ]"
                 ></i>
-                <span>{{ item.msgType }}</span>
+                <span>{{ item.tagName }}</span>
               </div>
               <el-collapse-transition>
                 <ul class="list" v-show="item.showChildren">
@@ -89,7 +89,7 @@
                       :checked="a.checked ? 'checked' : 'uncheck'"
                       @change="changeCheck(a)"
                     />
-                    <p>{{ a.msgName }}</p>
+                    <p>{{ a.name }}</p>
                   </li>
                 </ul>
               </el-collapse-transition>
@@ -111,9 +111,9 @@
 </template>
 <script>
 import { msgData } from "./msgData.js";
-import { queryEquipMsg } from "@/api/editer";
+import { queryEquipMsg, queryDict } from "@/api/editer";
 export default {
-  props: ["InfoPointList", "EquipId"],
+  props: ["InfoPointList", "EquipData"],
   data() {
     return {
       activeName: "first",
@@ -160,20 +160,18 @@ export default {
     },
   },
   watch: {
-    EquipId(val) {
+    EquipData(val) {
       const data = {
-        Filters: `id = '${val}'`,
+        Type: val.properties.classCode,
       };
-      queryEquipMsg(data).then((res) => {
-        console.log("获取到相应的信息点数据", res);
-      });
-
-      // 模拟接口
-      setTimeout(() => {
+      queryDict(data).then((res) => {
         let arr = [];
         // 勾选设备中选中的对象
+        const msgData = res.content;
+        // 设置已经勾选数据
         if (this.InfoPointList && this.InfoPointList.length) {
           msgData.map((item) => {
+            item.checked = false;
             this.InfoPointList.forEach((a) => {
               if (a.id == item.id) {
                 item.checked = true;
@@ -181,22 +179,43 @@ export default {
             });
             return item;
           });
+        } else {
+          msgData.map((item) => {
+            item.checked = false;
+            return item;
+          });
         }
         //  生成二级树
         msgData.forEach((item) => {
+          const itemTag = item.secondTag
+            ? item.secondTag
+            : item.firstTag
+            ? item.firstTag
+            : "--";
           if (arr.length) {
             let index = -1;
             arr.forEach((aItem) => {
-              if (aItem.msgTypeId == item.msgTypeId) {
+              if (aItem.tag == itemTag) {
                 index = 1;
                 aItem.children.push(item);
                 aItem.number++;
               }
             });
+
             if (index == -1) {
+              const tag = item.secondTag
+                ? item.secondTag
+                : item.firstTag
+                ? item.firstTag
+                : "--";
+              const tagName = item.secondName
+                ? item.secondName
+                : item.firstName
+                ? item.firstName
+                : "--";
               let obj = {
-                msgTypeId: item.msgTypeId,
-                msgType: item.msgType,
+                tagName: tagName,
+                tag: tag,
                 children: [item],
                 number: 1,
                 showChildren: true,
@@ -204,9 +223,19 @@ export default {
               arr.push(obj);
             }
           } else {
+            const tag = item.secondTag
+              ? item.secondTag
+              : item.firstTag
+              ? item.firstTag
+              : "--";
+            const tagName = item.secondName
+              ? item.secondName
+              : item.firstName
+              ? item.firstName
+              : "--";
             let obj = {
-              msgTypeId: item.msgTypeId,
-              msgType: item.msgType,
+              tagName: tagName,
+              tag: tag,
               children: [],
               number: 1,
               showChildren: true,
@@ -216,8 +245,7 @@ export default {
           }
         });
         this.msgData = arr;
-        console.log("this.msgData", this.msgData);
-      }, 1000);
+      });
     },
   },
 };

+ 3 - 3
src/components/editview/rightPropertyBar/property.vue

@@ -43,7 +43,7 @@
     ></BaseImagePro>
     <BaseEquipment
       :InfoPointList="infoPointList"
-      :EquipId="equipId"
+      :EquipData="EquipData"
       v-show="itemType == 'BaseEquipment'"
     ></BaseEquipment>
   </div>
@@ -97,7 +97,7 @@ export default {
       begin: "", //开头样式
       end: "", //结尾样式
       infoPointList: [], //设备--信息点数组
-      equipId: "", //设备 id
+      EquipData: {}, //设备 id
     };
   },
   mounted() {
@@ -171,7 +171,7 @@ export default {
         } else {
           this.infoPointList = [];
         }
-        this.equipId = item.legendData.attachObjectIds[0];
+        this.EquipData = item.legendData;
       }
     },
   },