Как исправить этот код, он делает что-то странное, и я не понимаю, почему. Laravel - PullRequest
0 голосов
/ 25 октября 2019

В этом коде предполагалось взять из 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>

Как это исправить, чтобы он добавлял только то, что было выбрано, а не остальное, также когда я нажимаю на кнопку добавления и ничего не выбрал, все получаетдобавил, что я уверен, что я чувствую по этому поводу, это может быть в любом случае либо добавить все или добавить ни одного.

1 Ответ

0 голосов
/ 25 октября 2019

вы можете попробовать это?

addCourses() {

   const courses = this.courses.filter((item) => {
   return this.selectedCourses.indexOf(item.id) > -1
   });

  courses.forEach((course) => {
  this.packageForm.package_courses.push({
     course_id: course.id,
     course: course,
     price: 0
  });
});
this.selectedCourses = [];
},
...