ZZJ
2022-04-12 994e5e08cba4e6b9ce321b7cf5cb1ec8d19dfa22
src/views/hashrate/CameraManage/CameraRules/index.vue
@@ -82,11 +82,11 @@
                v-for="(data, index) in swipercanvasData"
                :key="index"
              >
                <b
                <!--  <b
                  class="video-title"
                  style="font-size: 14px; margin-top: -10px"
                  >{{ data.name }}</b
                >
                > -->
                <polygon-canvas
                  ref="canvas"
                  v-loading="loading"
@@ -149,10 +149,12 @@
              :rule="item"
              :id="'rule_' + index"
              :ruleType="'separate'"
              :cameraId="Camera.cameraId"
              @edit="editRules(item, index, 'separate')"
              @addSdk="addSdk('separate', index)"
              @backToOrigin="backToOrigin('separate', index)"
              @editSdk="editSdk($event, 'separate', index)"
              @deletRule="deletRule('separate', index)"
            ></RuleItem>
          </template>
@@ -188,7 +190,8 @@
              @edit="editRules(item, index, 'linkage')"
              @addSdk="addSdk('linkage', index)"
              @backToOrigin="backToOrigin('linkage', index)"
              @editSdk="editSdk($event, 'linkage', index, item.Cameras)"
              @editSdk="editSdk($event, 'linkage', index)"
              @deletRule="deletRule('linkage', index)"
              :id="'linkage_' + index"
            ></RuleItem>
          </div>
@@ -219,7 +222,7 @@
      @getEditSdk="getEditSdk"
      :editSdk="editSdkObj.sdk"
      :linkEditCamera="
        ruleType === 'linkage' && editSdkObj ? editSdkObj.cameras : null
        ruleType === 'linkage' && editSdkObj ? editSdkObj.camera_polygons : null
      "
      :Cameras="ruleType === 'linkage' ? Carmeras : [Camera]"
    ></SdkSettingBox>
@@ -342,7 +345,7 @@
      SeparateRules: [], //独立场景
      linkageRule: [], //联动场景
      cameraId: "",
      showSysInfo: false,
      showSysInfo: true,
      showCanvas: true,
      canvasWidth: 568,
      canvasHeight: 320,
@@ -358,8 +361,8 @@
    this.plumbIns = jsPlumb.getInstance();
  },
  mounted() {
    this.PollData.statistics();
    this.TaskMange.findAllSdk({ installed: true });
    // this.PollData.statistics();
    this.TaskMange.findAllSdk();
  },
  destroyed() {
    document.querySelector("html").style["min-width"] = "1280px";
@@ -523,6 +526,7 @@
      this.Camera = newCamera;
      this.SeparateRules = this.Camera.rules;
      this.$nextTick(() => {
        this.connectLine();
      });
@@ -546,7 +550,7 @@
      getLinkSceneRule({ cameraIds: [id] })
        .then((rsp) => {
          if (rsp && rsp.success) {
            rules = rsp.data;
            rules = rsp.data.rules;
            // 统一规则编辑的数据结构
            for (let i = 0; i < rules.length; i++) {
              rules[i].group_rules = rules[i].rules;
@@ -554,18 +558,12 @@
            this.linkageRule = rules;
            console.log(this.linkageRule);
            this.$set(this.Camera, "rules", this.Camera.rules.concat(rules));
            this.$nextTick(() => {
              this.connectLine2();
            });
            this.linkageRule.forEach((rule) => {
              rule.Cameras = [];
              rule.cameraIds.forEach((id) => {
                let newCamera = new VideoRuleData(id);
                rule.Cameras.push(newCamera);
              });
            });
          }
        })
@@ -921,6 +919,9 @@
        });
        if (rsp && rsp.success) {
          let rules = rsp.data.rules ? rsp.data.rules : [];
          rules.forEach((item) => {
            item.cameraIds = rsp.data.cameraInfo.id;
          });
          if (rules[index]) {
            this.SeparateRules[index] = rules[index];
          } else {
@@ -930,32 +931,25 @@
        this.$forceUpdate();
        this.connectLine();
      } else {
        getLinkSceneRule({ cameraIds: [this.Camera.cameraId] })
          .then((rsp) => {
            if (rsp && rsp.success) {
              let rules = rsp.data;
              console.log(rules);
              if (rules[index]) {
                console.log(1111);
                this.linkageRule[index] = rules[index];
                this.linkageRule.group_rules = this.linkageRule.rules;
              } else {
                console.log(2222);
                this.linkageRule.splice(index, 1);
              }
              this.$forceUpdate();
              this.connectLine2();
        getLinkSceneRule({ cameraIds: [this.Camera.cameraId] }).then((rsp) => {
          if (rsp && rsp.success) {
            let rules = rsp.data.rules ? rsp.data.rules : [];
            if (rules[index]) {
              this.linkageRule[index] = rules[index];
              this.linkageRule.group_rules = this.linkageRule.rules;
            } else {
              this.linkageRule.splice(index, 1);
            }
            console.log("失败");
          })
          .catch((err) => {
            console.log(err);
          });
            this.$forceUpdate();
            this.connectLine2();
          }
          console.log("失败");
        });
      }
    },
    // 编辑算法
    editSdk(sdkIndex, type, ruleIndex, Cameras) {
    editSdk(sdkIndex, type, ruleIndex) {
      this.addData = {};
      this.ruleType = type;
      if (type === "separate") {
@@ -970,13 +964,21 @@
          ruleIndex,
          sdkIndex,
          type,
          cameras: Cameras,
          camera_polygons: this.linkageRule[ruleIndex].camera_polygons,
          sdk: this.linkageRule[ruleIndex].rules[sdkIndex],
        };
      }
      this.showSdkBox = false;
      this.showSdkSettingBox = true;
    },
    deletRule(type, index) {
      if (type === "separate") {
        this.SeparateRules.splice(index, 1);
      } else {
        this.linkageRule.splice(index, 1);
      }
    },
    getEditSdk(newRule) {
@@ -1246,6 +1248,8 @@
  }
  .swiper-box-container2 {
    margin: 0;
    margin-top: -13px;
    width: 568px;
  }
@@ -1268,7 +1272,7 @@
    .swiper-next-border ::v-deep {
      position: absolute;
      bottom: 146px;
      right: 10px;
      right: 58px;
      cursor: pointer;
      z-index: 1;