解决avue-crud弹窗弹出前赋值失败

511 阅读1分钟

弹窗弹出之前,赋值。弹出后,表单内已有固定值。如下图

image.png

直接赋值有bug

bug在于,首次(页面刷新或页面初次打开)点击新增,弹窗会出现机房ID空白的情况;第二次以后才赋值成功

image.png

    beforeOpen(done, type) {
    //点击新增时触发
      if (["add"].includes(type)) {
          this.Form.roomId = 1491687885580775425;
      }
      done();
    },

解决方法

1.加定时器

这样可以实现首次打开,也可以赋值成功;但ID的显示会稍慢一会会。

 beforeOpen(done, type) {
      if (["add"].includes(type)) {
        setTimeout(()=>{
            this.frameForm.roomId = 1491687885580775425;
        },1000)
      }
      done();
    },
2.使用this.$set

这种方法最完美,不会有延迟

 beforeOpen(done, type) {
      if (["add"].includes(type)) {
        this.$set( this.frameForm,'roomId',1491687885580775425;)
      }
      done();
    },