editTask (task, index) {
v-model="editidTask.title"
task.title = this.editTask.title
Вижу, имена свойств/методов подобраны грамотно - перепутать невозможно.
this.tasks.map((task, index) => {
if (index === this.editidTask.id) {
Во-первых - зачем перебирать массив, если вам известен индекс элемента? Кстати, очень умно - хранить индекс в свойстве с именем "id".
Во-вторых - не боитесь обновить что-то не то? Работаете с массивом tasks, используя индекс, полученный при работе с tasksFiltered.
UPD.
Исправляем:
При сохранении копируем свойства редактируемого объекта, а не метода, начинающего процесс редактирования (серьёзно, как можно было перепутать?).
К чёрту индекс, всё равно удалять с его помощью не получится - для этого нужен индекс в исходном массиве, а не отфильтрованном. Ищем нужный элемент непосредственно в момент сохранения.
Напрямую к заявленной проблеме не относится, но сказать стоит:
Имеет смысл оформить модальное окно как отдельный компонент - упрощаем компонент с таблицей, получаем возможность переиспользовать окно в других местах. Содержимое (текстовые поля) передаём внутрь через слот.
<list
Почему list, если этот компонент работает с одним элементом массива? Не понимаете, в чём разница между "один" и "несколько"?
:tasks="task"
Почему tasks, если передаёте один объект? Повторю свой вопрос - не понимаете, в чём разница между "один" и "несколько"?
:key="task.title"
Что, одинаковых title'ов быть не может? Может. Пусть здесь вместо вводимого пользователем текста будет автоматически генерируемый id.
v-show="isModal"
Отдельное свойство для управления состоянием модального окна не нужно, достаточно редактируемого объекта - окно открывается, если он не
null
.
task.date = this.editTask.date
task.title = this.editTask.title
Завтра потребуется редактировать третье свойство - будете копипастить? Перечислять вручную ничего не надо, есть же
Object.assign
.