BaseTable.vue 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <template>
  2. <div class="table">
  3. <div class="crumbs">
  4. <el-breadcrumb separator="/">
  5. <el-breadcrumb-item><i class="el-icon-menu"></i> 表格</el-breadcrumb-item>
  6. <el-breadcrumb-item>基础表格</el-breadcrumb-item>
  7. </el-breadcrumb>
  8. </div>
  9. <el-table :data="tableData" border style="width: 100%">
  10. <el-table-column prop="date" label="日期" sortable width="150">
  11. </el-table-column>
  12. <el-table-column prop="name" label="姓名" width="120">
  13. </el-table-column>
  14. <el-table-column prop="address" label="地址" :formatter="formatter">
  15. </el-table-column>
  16. <el-table-column prop="tag" label="标签" width="120"
  17. :filters="[{ text: '家', value: '家' }, { text: '公司', value: '公司' }]"
  18. :filter-method="filterTag">
  19. <template scope="scope">
  20. <el-tag :type="scope.row.tag === '家' ? 'primary' : 'success'" close-transition>{{scope.row.tag}}
  21. </el-tag>
  22. </template>
  23. </el-table-column>
  24. <el-table-column label="操作" width="180">
  25. <template scope="scope">
  26. <el-button size="small"
  27. @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
  28. <el-button size="small" type="danger"
  29. @click="handleDelete(scope.$index, scope.row)">删除</el-button>
  30. </template>
  31. </el-table-column>
  32. </el-table>
  33. <div class="pagination">
  34. <el-pagination
  35. layout="prev, pager, next"
  36. :total="1000">
  37. </el-pagination>
  38. </div>
  39. </div>
  40. </template>
  41. <script>
  42. export default {
  43. data() {
  44. return {
  45. tableData: [{
  46. date: '2017-02-02',
  47. name: '小天才',
  48. address: '东莞市长安镇步步高大道18号',
  49. tag: '家'
  50. }, {
  51. date: '2017-02-04',
  52. name: '小天才',
  53. address: '东莞市长安镇步步高大道17号',
  54. tag: '公司'
  55. }, {
  56. date: '2017-02-01',
  57. name: '小天才',
  58. address: '东莞市长安镇步步高大道19号',
  59. tag: '家'
  60. }, {
  61. date: '2017-02-03',
  62. name: '小天才',
  63. address: '东莞市长安镇步步高大道16号',
  64. tag: '公司'
  65. }]
  66. }
  67. },
  68. methods: {
  69. formatter(row, column) {
  70. return row.address;
  71. },
  72. filterTag(value, row) {
  73. return row.tag === value;
  74. },
  75. handleEdit(index, row) {
  76. this.$message('编辑第'+(index+1)+'行');
  77. },
  78. handleDelete(index, row) {
  79. this.$message.error('删除第'+(index+1)+'行');
  80. }
  81. }
  82. }
  83. </script>