123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- import { Column } from 'element-plus'
- import { CommonData, CommonValue } from '~/common'
- import { RowClassGetter } from '../type'
- type CellClassGetter = (params: {
- column: Column<CommonData>
- columns: Column<CommonData>[]
- columnIndex: number
- cellData: CommonValue
- rowData: CommonData
- rowIndex: number
- }) => string
- export function useTableStyle(tableName?: string) {
- const rowClass = ({ row, rowIndex }) => {
- const classes: string[] = []
- if (tableName?.includes('Airport')) {
- if (row.hasTakenOff === 'Y' || row.hasLanded === 'Y') {
- classes.push('bg-gray')
- } else if (row.loadPlaneSureTime) {
- classes.push('bg-light')
- }
- }
- // if (tableName?.includes('FlightContainer')) {
- // if (rowIndex === 1) {
- // classes.push('row-warning')
- // }
- // }
- // if (tableName?.includes('FlightWaybill')) {
- // if (rowIndex === 0) {
- // classes.push('row-alarm')
- // }
- // if (rowIndex === 1) {
- // classes.push('row-warning')
- // }
- // }
- return classes.join(' ')
- }
- const cellClass = ({ row, column, rowIndex, columnIndex }) => {
- const classes: string[] = []
- const cellData = row[column.property]
- if (tableName?.includes('Airport')) {
- if ((['flightNO'] as CommonValue[]).includes(column.property)) {
- classes.push('cell-click')
- if (row.flightState === 'DLY') {
- classes.push('flight-state-delay')
- } else if (row.flightState === 'CAN') {
- classes.push('flight-state-cancel')
- }
- }
- if (
- (column.property === 'register' &&
- typeof cellData === 'string' &&
- cellData.split('/').some(char => Number(char) > 0)) ||
- ((['pullregisterTime', 'pullRegisterTime'] as CommonValue[]).includes(
- column.property
- ) &&
- typeof cellData === 'string')
- ) {
- classes.push('cell-warning')
- }
- if (
- tableName?.includes('DepartureAirport') &&
- (['depotJoin', 'resure'] as any[]).includes(column.property) &&
- (cellData ?? '') !== ''
- ) {
- if (cellData === row['stowage']) {
- classes.push('cell-success')
- } else if ((row['planeDownTime'] ?? '') !== '') {
- classes.push('cell-alarm')
- }
- }
- if (column.property === 'loadPlaneTime') {
- if (row['warningState'] === 'alarm') {
- classes.push('cell-alarm')
- }
- if (row['warningState'] === 'warning') {
- classes.push('cell-warning')
- }
- }
- }
- if (tableName?.includes('FlightContainer')) {
- if (['stowageNo'].includes(column.property)) {
- classes.push('cell-click')
- }
- }
- if (tableName?.includes('FlightWaybill')) {
- if (
- [
- 'stockCode',
- // 'stowageNum'
- ].includes(column.property)
- ) {
- classes.push('cell-click')
- }
- }
- // if (tableName?.includes('WaybillGoods')) {
- // if (['CargoSN'].includes(column.property)) {
- // classes.push('cell-click')
- // }
- // }
- if (tableName?.includes('ArrivalWaybillGoods')) {
- if (['C1'].includes(column.property)) {
- classes.push('cell-click')
- }
- }
- return classes.join(' ')
- }
- const rowClassV2: RowClassGetter = ({ columns, rowData, rowIndex }) => {
- const classes: string[] = []
- return classes.join(' ')
- }
- const cellClassV2: CellClassGetter = ({
- column,
- columns,
- columnIndex,
- cellData,
- rowData,
- rowIndex,
- }) => {
- const classes: string[] = []
- if ((['flightNO'] as any[]).includes(column.dataKey)) {
- classes.push('cell-click')
- }
- if (
- (column.dataKey === 'register' &&
- typeof cellData === 'string' &&
- cellData.split('/').some(char => Number(char) > 0)) ||
- ((['pullregisterTime', 'pullRegisterTime'] as any[]).includes(
- column.dataKey
- ) &&
- typeof cellData === 'string')
- ) {
- classes.push('cell-warning')
- }
- if (
- tableName?.includes('DepartureAirport') &&
- (['depotJoin', 'resure'] as any[]).includes(column.dataKey) &&
- (cellData ?? '') !== ''
- ) {
- if (cellData === rowData['stowage']) {
- classes.push('cell-success')
- } else if ((rowData['planeDownTime'] ?? '') !== '') {
- classes.push('cell-alarm')
- }
- }
- if (column.dataKey === 'loadPlaneTime') {
- if (rowData['warningState'] === 'alarm') {
- classes.push('cell-alarm')
- }
- if (rowData['warningState'] === 'warning') {
- classes.push('cell-warning')
- }
- }
- return classes.join(' ')
- }
- return {
- rowClass,
- cellClass,
- rowClassV2,
- cellClassV2,
- }
- }
|