В этом коде предполагалось взять из el-select
того, что выбрал пользователь, и добавить его в другой массив, который будет заполнять el-table
, только то, что было выбрано.
В настоящее время этот код берет то, что было выбрано, и добавляет остальные к массиву, получил пример, если у меня есть a, b, c для выбора, и я выбираю a, b и c, добавленные в массив длястол вместо.
В этом коде используются вещи, с которыми я не очень хорошо знаком, поэтому не могу понять, где все идет не так.
addCourses() {
const currentCourses = this.packageForm.package_courses.map((item) => item.course_id);
const courses = this.courses.filter((item) => {
return this.selectedCourses.indexOf(item.id) && currentCourses.indexOf(item.id) < 0
});
courses.forEach((course) => {
this.packageForm.package_courses.push({
course_id: course.id,
course: course,
price: 0
});
});
this.selectedCourses = [];
},
Используемые массивы создаются вданные сценария в vue
courses: [],
selectedCourses: [],
package_courses
тоже есть в данных, но внутри формы и также просто package_courses: []
Это значение, в котором el-select иel-table
<el-row>
<el-col>
<el-select v-model="selectedCourses"
clearable
filterable
multiple
placeholder="Select">
<el-option
v-for="item in courses"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-col>
<el-col>
<el-button @click="addCourses()" type="danger">
Agregar Cursos
</el-button>
</el-col>
</el-row>
<el-table
:data="packageForm.package_courses"
show-summary
:summary-method="getSummaries"
border>
>all the other stuff in there
<el-table>
Как это исправить, чтобы он добавлял только то, что было выбрано, а не остальное, также когда я нажимаю на кнопку добавления и ничего не выбрал, все получаетдобавил, что я уверен, что я чувствую по этому поводу, это может быть в любом случае либо добавить все или добавить ни одного.