vue2 выделить обновленные строки - PullRequest
0 голосов
/ 28 июня 2018

Я ищу способ выделить обновленные строки для пользователя в vue2. В настоящее время я генерирую таблицу с помощью v-for:

<table class="table temptable">
      <tbody v-if="this.tempItems">
      <tr>
          <th>SKU</th>
          <th>QTY</th>
      </tr>
      <tr v-for="item in this.tempItems" :class="{ rowFlash: item.rowUpdated }">
      <td data-title="SKU">@{{ item.sku }}</td>
      <td data-title="QTY">@{{ item.qty }}</td>
      </tr>
      </tbody>
</table>

Я пробовал переход, переходную группу. Самое близкое, что у меня есть, это использование :class="{ rowFlash: item.rowUpdated }" к <tr>, но я не нашел способа получить окончательный результат.

В конечном итоге я ищу строку, которая будет выделена (background-color: red) либо при вставке, либо при обновлении, а затем исчезнет через несколько секунд назад в белый цвет.

EDIT

Мой код JS выглядит следующим образом:

this.vm.tempItems[response.data.sku].qty += 1;

Это инициируется через API сканера. Поэтому, когда сканирование запускается, оно отправляет код в сценарий и возвращает SKU продукта. Экземпляр vue запускается только на этой странице моего сайта, поэтому в данный момент я не использую шаблон vue. Все это JS выполняется в скрипте нижнего колонтитула страницы.

РЕДАКТИРОВАТЬ 2

У меня что-то работает, но я не думаю, что это отличное решение!

JS

this.vm.tempItems[response.data.sku].rowUpdated = false;
setTimeout(function(){ this.vm.tempItems[response.data.sku].rowUpdated = true; }, 50);

CSS

.rowRed{
    background: #ee815b;
}

.rowFade {
    background: white !important;
    transition: 1.5s !important;
}

Изменяя класс строки с помощью :class="{ rowFlash: item.rowUpdated }", а затем немедленно возвращая его обратно, я получаю эффект затухания красной подсветки. Это кажется грязным, и мне не нравится идея иметь setTimeout там. Однако без тайм-аута я не уверен, как заставить атрибут vue изменить значение на false после того, как ему присвоено значение true?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...