Проект vue запрещает повторное нажатие кнопки в течение 3 секунд.

Запретить пользователям нажимать кнопку публикации несколько раз

<el-кнопка

            размер = «мини»

            icon="el-icon-collection"

            тип="основной"

            класс="м-l4"

            стиль="z-индекс: 9"

            @click="saveNote(2)"

            :disabled="abledBut"

            >Подготовить и опубликовать</el-button>

         

данные() {

    возвращаться {

      abledBut: false, //Временно сохранить и сохранить, true значит запрещено, false значит не запрещено

      time: 0, //Устанавливаем начальное время на 0

      таймер: ноль,

      }

}

 //временно и сохраняем

    saveNote (saveType) {

      // console.log(this.ruleForm);

      пусть юг = document.getElementById("юг").value;

      пусть данные = {

        SuId: юг,

        тип: this.addType,

        тип публикации: тип сохранения,

        Идентификатор статьи: this.checkItem.id,

        заголовок: this.checkItem.title,

        titleSub: this.checkItem.titlesub,

        содержимое: this.checkItem.content,

        путь к файлу: this.checkItem.путь к файлу,

        CoverImg: this.checkItem.coverimg,

        userAllAccounts: this.ruleForm.userAllAccounts,

      };

      // console.log(данные);

      this.$api.savaOrAdd(data).then((res) => {

        если (res.code == 0) {

          this.showNotice("Сохранено успешно!", false);

          this.getNoteList();

          возвращаться;

        }

        this.showNotice(res.msg || "Сохранить не удалось!");

      });

      this.abledBut = true; // Отключено

      это.время = 3;

      это.таймер1();

      console.log("Нажмите и удерживайте несколько секунд, чтобы отключить");

    },

    таймер1() {

      //Функция, которая не может продолжать нажимать в течение 60 секунд после кода подтверждения

      если (это.время > 0) {

        на этот раз--;

        this.timer = setTimeout(this.timer1, 1000); 

      } еще {

        это.время = 0;

        this.abledBut = ложь;

        ClearTimeout(this.timer);

      }

    },

 

 Я эксперт в области питания, поэтому, если я ошибаюсь, поправьте меня!

Guess you like

Origin blog.csdn.net/m0_45218136/article/details/126241433