ZZJ
2021-12-20 832896ccaf8ac6a8ca31394e55577f064bc5eacf
src/components/giantTree/index.vue
@@ -5,6 +5,7 @@
      :show-checkbox="TreeDataPool.multiple"
      :readonly="TreeDataPool.readonly"
      :gb28181="gb28181"
      :setting="setting"
      @onCreated="handleCreated"
      @onClick="itemClick"
      @onCheck="itemCheck"
@@ -16,6 +17,7 @@
      @onImport="importCameras"
      @onExpand="itemExpand"
      @onCollapse="itemCollapse"
      @onShowPic="showCameraPic"
    />
    <div class="dialog-box-bg" v-show="showDialog" @click="hideDialogBox"></div>
    <div
@@ -26,7 +28,7 @@
      <el-card :body-style="{ padding: '10px' }">
        <el-form :model="dialogForm" size="mini" :rules="rules" ref="dialogForm" label-width="70px">
          <el-form-item label="名称:" prop="name">
            <el-input v-model="dialogForm.text"></el-input>
            <el-input v-model="dialogForm.text" oninput="if(value.length>10)value=value.slice(0,10)"></el-input>
          </el-form-item>
          <div class="text-center pb-2">
            <el-button size="mini" type="primary" @click="submitForm">保存</el-button>
@@ -39,7 +41,6 @@
</template>
<script>
// import VJstree from "./jsTree";
import ZTree from "./zTree/ztree"
export default {
@@ -66,11 +67,17 @@
    height: {
      type: Number,
      default: 0
    }
    },
    setting: {
      type: Object,
      require: false,
      default: function () {
        return {};
      },
    },
  },
  data () {
  data() {
    return {
      hoverNodeId: "",
      showDialog: false,
      clientX: 0,
      clientY: 0,
@@ -86,10 +93,8 @@
      curNodeTid: '',
    };
  },
  created () {
    // console.log(this.height, '树高度')
  created() {
    this.TreeDataPool.zTree = true;
    this.TreeDataPool.activeVideoIndex = sessionStorage.activeIndexVideo
      ? Number(sessionStorage.activeIndexVideo)
      : this.TreeDataPool.activeVideoIndex;
@@ -105,7 +110,7 @@
    handleCreated: function (ztreeObj) {
      let _this = this;
      this.ztreeObj = ztreeObj;
      // console.log("handleCreated")
      ztreeObj.expandAll(true)
      // onCreated 中操作ztreeObj对象展开第一个节点
      // ztreeObj.expandNode(ztreeObj.getNodes()[0], true);
@@ -117,13 +122,10 @@
        //摄像机信息更新信息后,如果节点位置有变tId就不准了,this.TreeDataPool.selectedNode此时还是旧的信息
        let ztreeNodes = ztreeObj.getNodes();
        //var curNodeTid = '';
        console.log(ztreeNodes)
        _this.findTidByIdFromArr(ztreeNodes);
        console.log('curNodeTid', _this.curNodeTid)
        this.TreeDataPool.selectedNode.tId = _this.curNodeTid;
        let node = this.ztreeObj.getNodeByTId(this.TreeDataPool.selectedNode.tId)
        console.log('selecBode', this.TreeDataPool.selectedNode)
        console.log('selectedNode.tId', this.TreeDataPool.selectedNode.tId)
        // 多选时, 选中单选单击的节点
        if (this.TreeDataPool.multiple) {
          this.ztreeObj.checkAllNodes(false);
@@ -134,7 +136,7 @@
      }
    },
    findTidByIdFromArr (arr) {
    findTidByIdFromArr(arr) {
      let len = arr.length;
      let _this = this;
      for (var i = 0; i < len; i++) {
@@ -142,17 +144,16 @@
          _this.curNodeTid = arr[i].tId;
          break;
        }
        if(arr[i].children){
        if (arr[i].children) {
          this.findTidByIdFromArr(arr[i].children);
        }
      }
    },
    onDblClick (evt, treeId, item) {
    onDblClick(evt, treeId, item) {
      if (item.type !== "4" || this.app !== "Camera") {
        return;
      }
      // console.log('activeForceChoose', this.TreeDataPool.activeForceChoose)
      this.TreeDataPool.activeVideoId = item.id;
      let videoArr = this.TreeDataPool.videoArr;
      let nullVideoIndex = "";
@@ -207,13 +208,13 @@
        this.TreeDataPool.activeVideoIndex = nullVideoIndex;
      }
    },
    addCamera (node) {
    addCamera(node) {
      this.$emit("addDevice", node);
    },
    importCameras (node) {
    importCameras(node) {
      this.$emit("import", node);
    },
    addNode (node) {
    addNode(node) {
      this.dialogForm = {
        text: "",
        method: "add",
@@ -221,7 +222,7 @@
      };
      this.showDialogBox(event);
    },
    editNode (node) {
    editNode(node) {
      this.dialogForm = {
        text: node.name,
        method: "edit",
@@ -231,10 +232,10 @@
      };
      this.showDialogBox(event);
    },
    delNode (node) {
    delNode(node) {
      this.TreeDataPool.del(node.id);
    },
    submitForm () {
    submitForm() {
      // 提交新增或者编辑区域节点表单
      this.$refs.dialogForm.validate(valid => {
        if (valid) {
@@ -254,19 +255,18 @@
      });
      this.hideDialogBox();
    },
    hideDialogBox () {
    hideDialogBox() {
      this.showDialog = false;
      this.dialogForm = { text: "" };
    },
    showDialogBox (event) {
    showDialogBox(event) {
      let { clientX = 0, offsetY = 0 } = event;
      // this.clientX = clientX - 120;
      this.clientX = 50;
      this.clientY = offsetY;
      this.showDialog = true;
    },
    itemClick (evt, treeId, treeNode) {
      console.log(evt, treeId)
    itemClick(evt, treeId, treeNode) {
      this.TreeDataPool.selectedNode = treeNode;
      this.TreeDataPool.treeType = this.treeName;
@@ -293,26 +293,36 @@
    //   this.TreeDataPool.updateZTreeCheckNodes([treeNode]);
    // },
    itemCheck (evt, treeId, treeNode) {
    itemCheck(evt, treeId, treeNode) {
      this.TreeDataPool.selectedNode = treeNode;
      this.TreeDataPool.treeType = this.treeName;
      debugger
      // 多选
      // this.ztreeObj.checkNode(treeNode, true, false, false);
      let checkedNodes = this.ztreeObj.getCheckedNodes(true);
      this.TreeDataPool.updateZTreeCheckNodes(checkedNodes);
      // 实时统计选中个数
      this.TreeDataPool.countCheckedNodes(checkedNodes);
      // 保存一份数据
      this.TreeDataPool.activeTreeData = this.ztreeObj.getNodes()
    },
    //展开
    itemExpand (e, id, node) {
      this.TreeDataPool.foldNodeList[node.id] = true
    },
    // 折叠
    itemCollapse (e, id, node) {
    itemExpand(e, id, node) {
      delete this.TreeDataPool.foldNodeList[node.id]
    },
    dropNode (node, item, draggedItem, e) {
    // 折叠
    itemCollapse(e, id, node) {
      this.TreeDataPool.foldNodeList[node.id] = true
    },
    dropNode(node, item, draggedItem, e) {
      // console.log('dropNode', node, item, draggedItem);
      this.TreeDataPool.dropNode(draggedItem.id, item.id)
    },
    showCameraPic(nodeId) {
      this.TreeDataPool.showBaseImage(nodeId)
    }
  }
};