У меня проблема в Element-ui, когда я хочу использовать V-for в el-column-table

Привет У меня есть проблема в Element-UI Когда я хочу использовать V-для В el-column-table я использую Axios и заполнить массив (список), а затем я использую этот массив для данных El-таблицы все вещи хорошо, но один из массива Элемент - это массив (роли), когда я пытаюсь показать содержимое этого массива, используя v-for, у меня есть проблема и я получаю сообщение об ошибке или не показываю ничего, что это мой код

<template>
<div class="container">
    <div class="row justify-content-center mt-4">
      <div class="col-md-12">
        <div class="card">
          <div class="card-header">
            <h3 class="card-title">{{trans('user.cardTitle')}}</h3>
            <!-- /.card-tools -->
                <div class="card-tools">
                    <el-button type="success"
                    size="mini"
                    @click="createUser">{{trans('app.addBtnLbl')}} <i class="fas fa-plus fa-fw"></i></el-button>
                    <el-button type="primary"
                    size="mini"
                    @click="activeUser">{{trans('app.activeBtnLbl')}} <i class="fa fa-lightbulb"></i></el-button>
                </div>                
            </div>
          <!-- /.card-header -->
          <div class="card-body table-responsive p-0">
            <el-table
                :data="list.filter(data => !search || data.username.toLowerCase().includes(search.toLowerCase())|| data.email.toLowerCase().includes(search.toLowerCase()))"
                :default-sort = "{prop: 'username', order: 'descending'}"
                style="width: 100%" @selection-change="handleSelectionChange">
                <el-table-column
                    type="selection"
                    width="55">
                </el-table-column>
                <el-table-column
                  :label="trans('user.username')"
                  sortable
                  prop="username">
                </el-table-column>
                <el-table-column
                  :label="trans('user.email')"
                  sortable
                  prop="email">
                </el-table-column>
                <el-table-column
                  :label="trans('user.profileName')"
                  sortable
                  prop="profile_name">
                </el-table-column>
                <el-table-column :label="trans('user.roles')" sortable                     
                >
                <el-table-column v-for="(item,index) of list.roles" 
                :prop="item[index].name" 
                :label="item[index].description"
                :key="index">
                </el-table-column>                   
                </el-table-column>
                <el-table-column
                    prop="active"
                    :label="trans('user.status')"
                    width="100"
                    :filters="[{ text: 'فعال', value: '1' }, { text: 'غیرفعال', value: '0' }]"
                    :filter-method="filterActive"
                    filter-placement="bottom-end">
                    <template slot-scope="scope">
                        <el-tag
                        :type="scope.row.active === '1' ? 'success' : 'danger'"
                        disable-transitions><span v-if="scope.row.active=='1'">فعال</span><span v-else>غیرفعال</span></el-tag>
                    </template>
                </el-table-column>
                <el-table-column class="float-left"
                  align="right">
                  <template slot="header" slot-scope="scope">
                    <el-input
                      v-model="search"
                      :placeholder="trans('app.searchPlaceholder')"/>
                    <el-input name="id" type="hidden" v-model.number="form.id" autocomplete="off"></el-input>
                  </template>
                  <template slot-scope="scope" class="float-left">
                    <el-button
                    size="mini"
                    @click="editUser(scope.row)">{{trans('app.editBtnLbl')}} <i class="fa fa-edit blue"></i></el-button>
                    <el-button
                      size="mini"
                      type="danger"
                      @click="deleteUser(scope.row)">{{trans('app.deleteBtnLbl')}} <i class="fa fa-trash red"></i></el-button>                        
                  </template>                    
                </el-table-column>
                <infinite-loading
                slot="append"
                @infinite="infiniteHandler"
                force-use-infinite-wrapper=".el-table__body-wrapper">
                <div slot="no-more"></div>
                </infinite-loading>
              </el-table>
             <p id="demo"> {{selectedRole()}}</p>

              <div class="block">
                   <!-- <el-pagination
                        background
                        layout="prev, pager, next"
                        prev-text="<"
                        next-text=">"
                        :page-size="1"
                        :total="10"
                        :data="tableData">
                    </el-pagination>-->              
              </div>
          </div>
          <!-- /.card-body -->
        </div>
        <!-- /.card -->
      </div>
    </div>
</div>

<script>
  export default 
  {
    data(){
        return{
            warningAlert : trans('app.warningAlert'),
            cancelAlert : trans('app.cancelAlert'),
            noticTxt : trans('app.noticTxt'),
            cancelButtonText : trans('app.cancelButtonText'),
            confirmButtonText : trans('app.confirmButtonText'),
            form: {
                id: '',
                active:'',
                username: '',
                email: '',
                profile_name: '',
                profileId:'',                    
            },
            items: [],             
            tableData:[],
            search: '',
            page: 1,
            list: [],
            newsType: 'story',
            infiniteId: +new Date(),
            multipleSelection:[],
        }
        },
        methods :{


        infiniteHandler($state) {
            axios.get("../api/profile/users", {
                params: {
                page: this.page,
                },
            }).then(({ data }) => {
                    if (data.data.length) {
                    this.page += 1;
                    this.list.unshift(...data.data.reverse());
                    $state.loaded();
                } else {
                    $state.complete();
                }
            });
        }

0 ответов

Другие вопросы по тегам