Yan4on
@Yan4on
Trainee Front-end dev

Vuetify @toggle-select-all — очистить чекбокс на втором клике?

Есть метод selectAllToggle, который который добавляет в таблицу строки, которые готовы к отправке, остальные блокирует.
Суть моей проблемы такая: Первым кликом я отметил эти строки , а вот как при повторном нажатие на кнопку, очистить таблицу сообразить не могу.
6122d7b3d1506423183228.jpeg

<v-data-table
        v-model="selectedDocs"
        v-if="edsList !== null"
        :headers="headers"
        :items="edsList"
        @click:row="showDetail"
        no-data-text="Нет документов"
        item-key="id"
        :server-items-length="totalDocuments"
        :loading="isLoading"
        :show-select="isSelect"
        class="main-table mt-4"
        :options.sync="options"
        hide-default-footer
        :page.sync="page"
        :items-per-page="itemsPerPage"
        @page-count="pageCount = $event"
        @toggle-select-all="selectAllToggle"
        :header-props="{
          'sort-icon':'mdi-swap-vertical'
        }"
      >
        <template v-slot:top>
          <span class="main-table__title">Результаты поиска</span>
        </template>
        <!-- eslint-disable-next-line -->
        <template v-slot:header.data-table-select="{props,on}">
          <v-simple-checkbox
            color="primary"
            v-ripple
            v-bind="props"
            v-on="on"
          ></v-simple-checkbox>
        </template>
        <!-- eslint-disable-next-line -->
        <template v-slot:item.data-table-select="{isSelected, select, item}">
          <v-simple-checkbox
            color="primary"
            v-ripple
            :value="isSelected"
            @input="select($event)"
            v-if="!checkStatusSendMix(item.tk) && checkStatusMix(item)"
          ></v-simple-checkbox>
          <v-simple-checkbox
            color="primary"
            disabled
            off-icon="mdi-close"
            v-else
          ></v-simple-checkbox>
        </template>


selectAllToggle(props) {
      if(this.selectedDocs.length != this.edsList.length - this.disabledCount) {
        this.selectedDocs = []
        props.items.forEach(item => {
          if(!this.checkStatusSendMix(item.tk) && this.checkStatusMix(item)) {
            this.selectedDocs.push(item)
            console.log('this.selectedDocs',this.selectedDocs)
          }
        })
      } else this.selectedDocs = []
    },
  • Вопрос задан
  • 328 просмотров
Решения вопроса 1
@inFureal
Считать количество кликов очевидно.
Если первый, выделить нужые.
Если второй, удалить из таблицы, сбросить счетчик на ноль
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы