zhiyong.zhou
2024-03-04 88063d681ca4d692c31a162ef5bf8b9bd41e5d11
src/views/admin/layout/process/ProcessTree.vue
@@ -14,7 +14,6 @@
import Subprocess from '@/views/common/process/nodes/SubprocessNode.vue'
import DefaultProps from "./DefaultNodeProps"
export default {
  name: "ProcessTree",
  components: {Node, Root, Approval, Task, Cc, Trigger, Concurrent, Condition, Inclusive, Delay, Empty, Subprocess},
@@ -40,6 +39,7 @@
    ]))
    return h('div', {class:{'_root': true}, ref:'_root'}, processTrees)
  },
  methods: {
    getDomTree(h, node) {
      this.toMapping(node);
@@ -88,6 +88,7 @@
    //解码渲染的时候插入dom到同级
    decodeAppendDom(h, node, dom, props = {}){
      props.config = node
      console.log("decodeAppendDom",props)
      dom.unshift(h(node.type.toLowerCase(), {
        props: props,
        ref: node.id,
@@ -106,7 +107,6 @@
    //id映射到map,用来向上遍历
    toMapping(node){
      if (node && node.id){
        //console.log("node=> " + node.id + " name:" + node.name + " type:" + node.type)
        this.nodeMap.set(node.id, node)
      }
    },
@@ -170,23 +170,22 @@
      return node.type === 'CONCURRENTS'
    },
    getRandomId(){
      console.log("tree生成节点id")
      return ' ';
      //return `HighDatas_${new Date().getTime().toString().substring(5)}${Math.round(Math.random()*9000+1000)}`
    },
    //选中一个节点
    selectNode(node){
      this.$store.commit('selectedNode', node)
      this.$store.commit('selectedNode', node);
      this.$emit('selectedNode', node)
    },
    //处理节点插入逻辑
    insertNode(type, parentNode){
      console.log("insertNode-parentNode",parentNode)
      this.$refs['_root'].click()
      let afterNode = parentNode.children
      console.log("afterNode",afterNode)
      //插入新节点
      parentNode.children = {
        id: this.getRandomId(),
        parentId: parentNode.id,
        props: {},
@@ -194,6 +193,7 @@
      }
      switch (type){
        case 'APPROVAL': this.insertApprovalNode(parentNode, afterNode); break;
        case 'SUBPROCESS' : this.insertApprovalNode(parentNode, afterNode); break;
        case 'TASK': this.insertTaskNode(parentNode); break;
@@ -216,15 +216,16 @@
          afterNode.parentId = parentNode.children.id
        }
        this.$set(parentNode.children, 'children', Object)
        console.log("parentNode.children",parentNode.children)
      }
      this.$forceUpdate()
    },
    insertApprovalNode(parentNode){
      this.$set(parentNode.children, "name", "审批人")
      console.log("tree-DefaultProps.APPROVAL_PROPS)",DefaultProps.APPROVAL_PROPS)
      this.$set(parentNode.children, "props", this.$deepCopy(DefaultProps.APPROVAL_PROPS))
      console.log("parentNode.children",parentNode.children)
    },
    insertTaskNode(parentNode){
      this.$set(parentNode.children, "name", "办理人")
@@ -258,6 +259,7 @@
          name: "条件1",
          children:{}
        },{
          id: this.getRandomId(),
          parentId: parentNode.children.id,
          type: "CONDITION",
@@ -339,7 +341,7 @@
    },
    //删除当前节点
    delNode(node){
      console.log("ProcessTree删除节点", node)
      //获取该节点的父节点
      let parentNode = this.nodeMap.get(node.parentId)
      if (parentNode){