【vue2+antvx6】注意点

一、监听数据

监听节点1的数据是否改变,如果改变,节点2也要跟着改变。

注意:如果修改数据的时候使用了{ overwrite: true },则会监听不到数据的改变,因为overwrite: true表示覆盖,就没有了之前的记录,也就监听不到数据的改变了。

节点1

input () {
      this.node.setData({
        nodedatas: {
          inputList: this.startform.list,
          outputList: this.startform.list,
          indexnum: this.indexnum,
        },
      }); // 将数据保存到节点数据中
    },

节点2

mounted () {
    this.node = this.getNode(); //当前节点
    this.getGraph1 = this.getGraph(); //Graph实例
    this.nodeData = this.node.store.data.data.nodedatas; //节点信息赋值
    // this.title = this.node.store.data.label;
    this.title = this.generatenode(this.node);
    this.Llmform.list = this.nodeData.inputList; //赋值页面数据,输入
    this.outform.list = this.nodeData.outputList; //赋值页面数据,输出
    this.ruleForm.tishi = this.nodeData.tishi; //赋值页面数据,输出
    this.indexnum = this.nodeData.indexnum; //输入每一个参数唯一的标志
    this.select();
    this.$nextTick(() => {
      this.getsize();
    });
    // 监听外部修改本节点数据
    this.getGraph1.on("node:change:data", (cell) => {
      if (
        cell.node.shape === "start-node" ||
        cell.node.shape === "llmTongyi-node" ||
        cell.node.shape === "code-node"
      ) {
        // 开始节点的数据
        let startnode = cell.node.store.data.data.nodedatas.outputList;
        let startID = cell.node.id;
        this.getGraph1.getNodes().forEach((node) => {
          if (node.shape === "llmTongyi-node") {
            // 页面有多个code-node,代码引用另一个代码,则正在修改该的代码不能修改
            if (startID !== this.node.id) {
              this.select();
              if (this.Llmform.list.length > 0) {
                startnode.forEach((i) => {
                  this.Llmform.list.forEach((j, ind) => {
                    if (j.value) {
                      let a = j.value.substr(1);
                      let b = a.substring(0, a.length - 1).split(",");

                      if (b[0] === startID && i.index === j.index) {
                        // j.parameter_type = i.parameter_type;
                        j.description = i.parameter_name;

                        let c = JSON.parse(j.customfields);
                        c[1] = i.parameter_name;
                        j.customfields = JSON.stringify(c);
                        j.relDesc = JSON.parse(j.customfields)
                        b[2] = i.parameter_name;
                        j.value = "[" + b + "]";
                      }
                    }
                  });
                });
              }
              this.node.setData({
                nodedatas: {
                  inputList: this.Llmform.list,
                  outputList: this.outform.list,
                  tishi: this.ruleForm.tishi,
                  indexnum: this.indexnum,
                },
              }); // 将数据保存到节点数据中
            }
          }
        });
      }
    });
  },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值