Реализация с vuex:
https://arslanoov.github.io/count-data-test/#/with-vuex
Реализация без vuex:
https://arslanoov.github.io/count-data-test/#/without-vuex
Ввести отрицательное кол-во или не числовое значение ни в один input нельзя
-
Если меняется цена, то пересчитывается общая сумма (сумма = цена * кол-во)
-
Если меняется кол-во, то пересчитывается общая сумма (сумма = цена * кол-во)
-
Если меняется общая сумма:
- Если при изменении общей суммы и цена и кол-во равно 0 - общую сумма меняется на 0
- Если цена = 0 (а кол-во != 0), цена меняется на: новая сумма / кол-во
- Иначе: Считаем предполагаемое кол-во (новая сумма / цена), если получилось целое число - меняем кол-во
- Если не целое, то кол-во округляется в меньшую сторону
- Если округленное кол-во = 0 - меняется кол-во и общая сумма на 0
- Кол-во != 0: кол-во меняется на округленное значение, считается новая цена (новая сумма / округленное кол-во)
Если сумма получилась нечетной, при отправке на "сервер" (session storage) возвращается success: false с сообщением об ошибке
События сортируются по времени, есть тип события, когда оно было создано и payload
Задержка (для имитации сервера) - 1с