@ceeed

Как мне сделать так чтобы при вызове метода у меня не пропадали данные в select?

У меня есть SELECT в котором пользователь выбирает юзера, после выводится таблица с данными. У меня есть так же кнопка EDIT, которая останавливает реактивное обновление таблицы. Есть так же кнопка CANCEL, которая возобновляет обновление таблицы. После того как я остановил таблицу кнопкой EDIT и заново потом возобновляю таблицу кнопкой CANCEL у меня пропадает user в SELECT. Дело в методе который возобновляет обновление данных. Как мне сделать так чтобы данные в SLELECT не пропадали после нажатия на кнопку CANCEL?

SELECT
<vSelect
    :modelValue="$store.state.calculator.users"
    :options="users"
    :label="$t('Select_user_admin')"
    @input="handleUsersSelect"
    class="underlying select-gradient"
  >
  </vSelect>

EDIT
<button class="btn test" @click="onClickEditButton">
      {{ $t("edit") }}
    </button>

CANCEL
<v-button
          class="button-cancel"
          @upGetStatisctics="cancelOrder"
          >{{ $t("back") }}</v-button
        >

Метод кнопки EDIT
onClickEditButton() {
  if (this.activeTab === 1) {
    this.isEditing = true;
    clearInterval(this.timerId);
  } else if (this.activeTab === 2) {
    this.isEditingPosition = true;
    clearInterval(this.timerId);
  }
},

Метод кнопки CANCEL
cancelOrder() {
  if (this.activeTab === 1) {
    this.isEditing = false;
    this.handleUsersSelect();
  } else if (this.activeTab === 2) {
    this.isEditingPosition = false;
    this.handleUsersSelect();
  }
},

Метод который сетит юзера
async handleUsersSelect(userId) {
  clearInterval(this.timerId);
  this.$store.commit("calculator/setUserSiteAdmin", userId);

  this.timerId = setInterval(async () => {
    const marginsResponse = await this.fetchCleintTableInfoByTab({
      userId,
      url: "/admin/margins",
    });
    const positionsResponse = await this.fetchCleintTableInfoByTab({
      userId,
      url: "/admin/positions",
    });
    console.log("$store", this.$store.state.calculator.users);
    this.margins = this.convertMargins(marginsResponse);
    this.positions = this.convertPositions(positionsResponse);
  }, 2000);
},
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы