feat(sgw): Add new services and utilities for ship, trip, and photo management
This commit is contained in:
48
src/pages/Slave/SGW/Trip/components/BadgeTripStatus.tsx
Normal file
48
src/pages/Slave/SGW/Trip/components/BadgeTripStatus.tsx
Normal file
@@ -0,0 +1,48 @@
|
||||
import { useIntl } from '@umijs/max';
|
||||
import type { BadgeProps } from 'antd';
|
||||
import { Badge } from 'antd';
|
||||
import React from 'react';
|
||||
|
||||
interface BadgeTripStatusProps {
|
||||
status?: number;
|
||||
}
|
||||
|
||||
const BadgeTripStatus: React.FC<BadgeTripStatusProps> = ({ status }) => {
|
||||
const intl = useIntl();
|
||||
// Khai báo kiểu cho map
|
||||
const statusBadgeMap: Record<number, BadgeProps> = {
|
||||
0: { status: 'default' }, // Đã khởi tạo
|
||||
1: { status: 'processing' }, // Chờ duyệt
|
||||
2: { status: 'success' }, // Đã duyệt
|
||||
3: { status: 'success' }, // Đang hoạt động
|
||||
4: { status: 'success' }, // Hoàn thành
|
||||
5: { status: 'error' }, // Đã huỷ
|
||||
};
|
||||
|
||||
const getBadgeProps = (status: number | undefined) => {
|
||||
switch (status) {
|
||||
case 0:
|
||||
return intl.formatMessage({ id: 'trip.badge.notApproved' });
|
||||
case 1:
|
||||
return intl.formatMessage({ id: 'trip.badge.waitingApproval' });
|
||||
case 2:
|
||||
return intl.formatMessage({ id: 'trip.badge.approved' });
|
||||
case 3:
|
||||
return intl.formatMessage({ id: 'trip.badge.active' });
|
||||
case 4:
|
||||
return intl.formatMessage({ id: 'trip.badge.completed' });
|
||||
case 5:
|
||||
return intl.formatMessage({ id: 'trip.badge.cancelled' });
|
||||
default:
|
||||
return intl.formatMessage({ id: 'trip.badge.unknown' });
|
||||
}
|
||||
};
|
||||
|
||||
const badgeProps: BadgeProps = statusBadgeMap[status ?? -1] || {
|
||||
status: 'default',
|
||||
};
|
||||
|
||||
return <Badge {...badgeProps} text={getBadgeProps(status)} />;
|
||||
};
|
||||
|
||||
export default BadgeTripStatus;
|
||||
Reference in New Issue
Block a user