【从0到1打造vue element-ui管理后台 】第十六课 编写信息列表table部分

288 阅读1分钟

第十六课 编写信息列表table部分

一、编写src/view/book/bookinfo.vue,的table部分

 <div class="bookinfo" style="width:100%;" max-height="380">
        <el-table :data="bookinfolist">
            <el-table-column fixed label="序号" type="index"></el-table-column>
            <el-table-column label="书号" prop="bookISBN"></el-table-column>
            <el-table-column label="书名" prop="bookName"></el-table-column>
            <el-table-column label="作者" prop="autor"></el-table-column>
            <el-table-column label="出版社" prop="press"></el-table-column>
            <el-table-column label="出版日期" prop="publicationdate"></el-table-column>
            <el-table-column label="价格" prop="price"></el-table-column>
            <el-table-column label="数量" prop="quantity"></el-table-column>
            <el-table-column label="图书类型" prop="bookType">
                <template slot-scope="scope">
                    <span>{{scope.row.bookType | bookTypeFilter}}</span>
                </template>
            </el-table-column>
             <el-table-column label="操作" width="150" fixed="right">
                 <template slot-scope="scope">
                     <el-button size="mini" type="primary" @click="handleEdit(scope.row.id)">编辑</el-button>
                     <el-button size="mini" type="danger" @click="handleDelete(scope.row.id)">删除</el-button>
                 </template>
             </el-table-column>
        </el-table>
    </div>

二、编写table字段中图书类型的过滤器

不要写在data中,因为过滤器中获取不到this,需要把bookTypeOptions放在页面中的最上方
const bookTypeOptions = [
    {type:'1',name:"1类"},
    {type:'2',name:"2类"},
    {type:'3',name:"3类"},
    {type:'4',name:"4类"}
]

 filters:{
        bookTypeFilter(type){
            const bookTypeobj = bookTypeOptions.find(obj=>obj.type===type)
            return bookTypeobj?bookTypeobj.name:null
        }
    },

image.png