正文

1. 源码

  1. <template>
  2. <el-table :data="tableData" style="width: 100%" :header-cell-class-name='handleHeadAddClass' @sort-change='tableSortChange'>
  3. <el-table-column prop="date" label="日期" sortable width="180">
  4. </el-table-column>
  5. <el-table-column prop="name" label="姓名" sortable width="180">
  6. </el-table-column>
  7. <el-table-column prop="address" label="地址">
  8. </el-table-column>
  9. </el-table>
  10. </template>
  11. <script>
  12. export default {
  13. data() {
  14. return {
  15. tableData: [
  16. {
  17. date: "2016-05-02",
  18. name: "李小虎",
  19. address: "上海市普陀区金沙江路 1518 弄"
  20. },
  21. {
  22. date: "2016-05-04",
  23. name: "王小虎",
  24. address: "上海市普陀区金沙江路 1517 弄"
  25. },
  26. {
  27. date: "2016-05-01",
  28. name: "安小虎",
  29. address: "上海市普陀区金沙江路 1519 弄"
  30. },
  31. {
  32. date: "2016-05-03",
  33. name: "王小虎",
  34. address: "上海市普陀区金沙江路 1516 弄"
  35. }
  36. ],
  37. sortPropList: {}
  38. };
  39. },
  40. methods: {
  41. /**
  42. * 报表所有表头都可以进行排序,1 升;2 降
  43. */
  44. tableSortChange({ column, prop, order }) {
  45. let sortType = undefined;
  46. switch (order) {
  47. case "ascending":
  48. sortType = "1";
  49. break;
  50. case "descending":
  51. sortType = "2";
  52. break;
  53. default:
  54. break;
  55. }
  56. this.sortPropList[prop] = order;
  57. // 获取数据
  58. // this.$set(sortProp, 'sortType', sortType)
  59. // this.submitFilterForm();
  60. },
  61. /**
  62. * 增加多列排序
  63. */
  64. handleHeadAddClass({ column }) {
  65. if (this.sortPropList[column.property]) {
  66. column.order = this.sortPropList[column.property];
  67. }
  68. }
  69. }
  70. }
  71. </script>

在线地址

codepen 在线示例:element table 多列排序