useTableStyle.ts 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import { Column } from 'element-plus'
  2. import { CommonData, CommonTableColumn, CommonValue } from '~/common'
  3. type RowClassGetter = (param: {
  4. columns: CommonTableColumn[]
  5. rowData: any
  6. rowIndex: number
  7. }) => string
  8. type CellClassGetter = (params: {
  9. column: Column<CommonData>
  10. columns: Column<CommonData>[]
  11. columnIndex: number
  12. cellData: CommonValue
  13. rowData: CommonData
  14. rowIndex: number
  15. }) => string
  16. export function useTableStyle(tableName?: string) {
  17. const rowClass = ({ row, rowIndex }) => {
  18. const classes: string[] = []
  19. // if (tableName?.includes('FlightContainer')) {
  20. // if (rowIndex === 1) {
  21. // classes.push('row-warning')
  22. // }
  23. // }
  24. // if (tableName?.includes('FlightWaybill')) {
  25. // if (rowIndex === 0) {
  26. // classes.push('row-alarm')
  27. // }
  28. // if (rowIndex === 1) {
  29. // classes.push('row-warning')
  30. // }
  31. // }
  32. return classes.join(' ')
  33. }
  34. const cellClass = ({ row, column, rowIndex, columnIndex }) => {
  35. const classes: string[] = []
  36. if (tableName?.includes('FlightContainer')) {
  37. if (['stowageNo'].includes(column.property)) {
  38. classes.push('cell-click')
  39. }
  40. }
  41. if (tableName?.includes('FlightWaybill')) {
  42. if (['stockCode', 'stowageNum'].includes(column.property)) {
  43. classes.push('cell-click')
  44. }
  45. }
  46. // if (tableName?.includes('WaybillGoods')) {
  47. // if (['CargoSN'].includes(column.property)) {
  48. // classes.push('cell-click')
  49. // }
  50. // }
  51. if (tableName?.includes('ArrivalWaybillGoods')) {
  52. if (['C1'].includes(column.property)) {
  53. classes.push('cell-click')
  54. }
  55. }
  56. return classes.join(' ')
  57. }
  58. const rowClassV2: RowClassGetter = ({ columns, rowData, rowIndex }) => {
  59. const classes: string[] = []
  60. // if (tableName?.includes('Airport')) {
  61. // if (rowIndex <= 1) {
  62. // classes.push('bg-gray')
  63. // }
  64. // if (rowIndex === 1) {
  65. // classes.push('underline-red')
  66. // }
  67. // }
  68. return classes.join(' ')
  69. }
  70. const cellClassV2: CellClassGetter = ({
  71. column,
  72. columns,
  73. columnIndex,
  74. cellData,
  75. rowData,
  76. rowIndex,
  77. }) => {
  78. const classes: string[] = []
  79. // if ((['4/243', '0/6'] as any[]).includes(cellData)) {
  80. // classes.push('cell-warning')
  81. // }
  82. // if ((['5/357'] as any).includes(cellData)) {
  83. // classes.push('cell-alarm')
  84. // }
  85. if ((['flightNO'] as any).includes(column.dataKey)) {
  86. classes.push('cell-click')
  87. }
  88. return classes.join(' ')
  89. }
  90. return {
  91. rowClass,
  92. cellClass,
  93. rowClassV2,
  94. cellClassV2,
  95. }
  96. }