Blame view
src/views/table/index.vue
2 KB
80a28914e init |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
<template> <div class="app-container"> <el-table v-loading="listLoading" :data="list" element-loading-text="Loading" border fit highlight-current-row > <el-table-column align="center" label="ID" width="95"> <template slot-scope="scope"> {{ scope.$index }} </template> </el-table-column> <el-table-column label="Title"> <template slot-scope="scope"> {{ scope.row.title }} </template> </el-table-column> <el-table-column label="Author" width="110" align="center"> <template slot-scope="scope"> <span>{{ scope.row.author }}</span> </template> </el-table-column> <el-table-column label="Pageviews" width="110" align="center"> <template slot-scope="scope"> {{ scope.row.pageviews }} </template> </el-table-column> <el-table-column class-name="status-col" label="Status" width="110" align="center"> <template slot-scope="scope"> <el-tag :type="scope.row.status | statusFilter">{{ scope.row.status }}</el-tag> </template> </el-table-column> <el-table-column align="center" prop="created_at" label="Display_time" width="200"> <template slot-scope="scope"> <i class="el-icon-time" /> <span>{{ scope.row.display_time }}</span> </template> </el-table-column> </el-table> </div> </template> <script> import { getList } from '@/api/table' export default { filters: { statusFilter(status) { const statusMap = { published: 'success', draft: 'gray', deleted: 'danger' } return statusMap[status] } }, data() { return { list: null, listLoading: true } }, created() { this.fetchData() }, methods: { fetchData() { this.listLoading = true getList().then(response => { this.list = response.data.items this.listLoading = false }) } } } </script> |