* Дополнены названия полей TelemetryView

* Вынесен метод получения лейбла для TelemetryInfo
* Сменён тип смешивания проверки по правам и ролям
* WellIconState экспортирован из главного файла модуля components/icons
This commit is contained in:
Александр Сироткин 2021-12-21 15:37:23 +05:00
parent 997b701be4
commit 0e24780a91
4 changed files with 12 additions and 5 deletions

View File

@ -10,4 +10,4 @@ type PrivateMenuItemProps = {
} }
export const PrivateMenuItem: React.FC<PrivateMenuItemProps> = ({ roles, permission, mixing, ...props }) => export const PrivateMenuItem: React.FC<PrivateMenuItemProps> = ({ roles, permission, mixing, ...props }) =>
hasPermission(permission) || isInRole(roles) ? <Menu.Item {...props}/> : null hasPermission(permission) && isInRole(roles) ? <Menu.Item {...props}/> : null

View File

@ -53,7 +53,7 @@ export const UserMenu: React.FC<UserMenuProps> = ({ isAdmin }) => {
placement={'bottomRight'} placement={'bottomRight'}
overlay={( overlay={(
<Menu style={{ textAlign: 'right' }}> <Menu style={{ textAlign: 'right' }}>
<PrivateMenuItem roles={['admin']}> <PrivateMenuItem roles={'admin'}>
{isAdmin ? ( {isAdmin ? (
<Link to={'/'}>Вернуться на сайт</Link> <Link to={'/'}>Вернуться на сайт</Link>
) : ( ) : (

View File

@ -4,20 +4,27 @@ import { TelemetryInfoDto } from '../../services/api'
import { Grid, GridItem } from '../Grid' import { Grid, GridItem } from '../Grid'
const lables: { [labelKey: string]: string } = { const lables: { [labelKey: string]: string } = {
timeZoneId: 'Временная зона',
timeZoneOffsetTotalHours: 'Сдвиг временной зоны', timeZoneOffsetTotalHours: 'Сдвиг временной зоны',
drillingStartDate: 'Начало бурения', drillingStartDate: 'Начало бурения',
deposit: 'Месторождение', deposit: 'Месторождение',
cluster: 'Куст', cluster: 'Куст',
well: 'Скважина', well: 'Скважина',
customer: 'Заказчик', customer: 'Заказчик',
comment: 'Комментарий',
hmiVersion: 'Версия HMI',
saubPlcVersion: 'Версия САУБ',
spinPlcVersion: 'Версия Спин Мастер',
} }
export const getTelemetryLabel = (info?: TelemetryInfoDto) => info ? `${info.deposit} / ${info.cluster} / ${info.well}` : '---'
export type TelemetryViewProps = { export type TelemetryViewProps = {
info?: TelemetryInfoDto info?: TelemetryInfoDto
} }
export const TelemetryView = memo<TelemetryViewProps>(({ info }) => info ? ( export const TelemetryView = memo<TelemetryViewProps>(({ info }) => info ? (
<Tooltip title={ <Tooltip overlayInnerStyle={{ width: '400px' }} title={
<Grid> <Grid>
{(Object.keys(info) as Array<keyof TelemetryInfoDto>).map((key, i) => ( {(Object.keys(info) as Array<keyof TelemetryInfoDto>).map((key, i) => (
<> <>
@ -27,7 +34,7 @@ export const TelemetryView = memo<TelemetryViewProps>(({ info }) => info ? (
))} ))}
</Grid> </Grid>
}> }>
{info.deposit}/{info.cluster}/{info.well} {getTelemetryLabel(info)}
</Tooltip> </Tooltip>
) : ( ) : (
<Tooltip title={'нет данных'}>-</Tooltip> <Tooltip title={'нет данных'}>-</Tooltip>

View File

@ -1,5 +1,5 @@
export type { PointerIconColors, PointerIconProps } from './PointerIcon' export type { PointerIconColors, PointerIconProps } from './PointerIcon'
export type { WellIconColors, WellIconProps } from './WellIcon' export type { WellIconColors, WellIconProps, WellIconState } from './WellIcon'
export { PointerIcon } from './PointerIcon' export { PointerIcon } from './PointerIcon'
export { WellIcon } from './WellIcon' export { WellIcon } from './WellIcon'