with-status.vue 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <el-table :data="tableData" style="width: 100%" :row-class-name="tableRowClassName">
  3. <el-table-column prop="date" label="Date" width="180" />
  4. <el-table-column prop="name" label="Name" width="180" />
  5. <el-table-column prop="address" label="Address" />
  6. </el-table>
  7. </template>
  8. <script lang="ts" setup>
  9. interface User {
  10. date: string
  11. name: string
  12. address: string
  13. }
  14. const tableRowClassName = ({ row, rowIndex }: { row: User; rowIndex: number }) => {
  15. if (rowIndex === 1) {
  16. return 'warning-row'
  17. } else if (rowIndex === 3) {
  18. return 'success-row'
  19. }
  20. return ''
  21. }
  22. const tableData: User[] = [
  23. {
  24. date: '2016-05-03',
  25. name: 'Tom',
  26. address: 'No. 189, Grove St, Los Angeles',
  27. },
  28. {
  29. date: '2016-05-02',
  30. name: 'Tom',
  31. address: 'No. 189, Grove St, Los Angeles',
  32. },
  33. {
  34. date: '2016-05-04',
  35. name: 'Tom',
  36. address: 'No. 189, Grove St, Los Angeles',
  37. },
  38. {
  39. date: '2016-05-01',
  40. name: 'Tom',
  41. address: 'No. 189, Grove St, Los Angeles',
  42. },
  43. ]
  44. </script>
  45. <style>
  46. .el-table .warning-row {
  47. --el-table-tr-bg-color: var(--el-color-warning-light-9);
  48. }
  49. .el-table .success-row {
  50. --el-table-tr-bg-color: var(--el-color-success-light-9);
  51. }
  52. </style>