fix: заявки в разработке (склад/снабжение, часть кадров) отображаются заблокированными плитками
Tests / frontend-test (push) Successful in 1m11s
Tests / frontend-test (push) Successful in 1m11s
This commit is contained in:
@@ -46,6 +46,31 @@
|
||||
}
|
||||
}
|
||||
|
||||
.tileDisabled {
|
||||
cursor: not-allowed;
|
||||
background: $gray-50;
|
||||
|
||||
&:hover {
|
||||
box-shadow: $sh-1;
|
||||
transform: none;
|
||||
border-color: $gray-200;
|
||||
}
|
||||
|
||||
&:hover::before {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.tileIcon {
|
||||
background: $gray-100;
|
||||
border-color: $gray-200;
|
||||
color: $gray-400;
|
||||
}
|
||||
|
||||
.tileTitle {
|
||||
color: $gray-400;
|
||||
}
|
||||
}
|
||||
|
||||
.tileIcon {
|
||||
flex-shrink: 0;
|
||||
display: flex;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import * as React from 'react';
|
||||
import styles from './RequestGrid.module.scss';
|
||||
import { Icon } from '@tnsu/ui-kit';
|
||||
import { Badge, Icon } from '@tnsu/ui-kit';
|
||||
import { IRequestType } from '../../models/types';
|
||||
|
||||
interface IRequestGridProps {
|
||||
@@ -19,7 +19,8 @@ export const RequestGrid: React.FC<IRequestGridProps> = ({ requests, onSelect })
|
||||
<button
|
||||
key={request.id}
|
||||
type="button"
|
||||
className={styles.tile}
|
||||
className={request.comingSoon ? `${styles.tile} ${styles.tileDisabled}` : styles.tile}
|
||||
disabled={request.comingSoon}
|
||||
onClick={() => onSelect(request)}
|
||||
>
|
||||
<span className={styles.tileIcon}>
|
||||
@@ -27,11 +28,19 @@ export const RequestGrid: React.FC<IRequestGridProps> = ({ requests, onSelect })
|
||||
</span>
|
||||
<span className={styles.tileBody}>
|
||||
<span className={styles.tileTitle}>{request.title}</span>
|
||||
{request.description && <span className={styles.tileDesc}>{request.description}</span>}
|
||||
</span>
|
||||
<span className={styles.tileArrow}>
|
||||
<Icon name="chevron-right" size="sm" />
|
||||
{request.comingSoon ? (
|
||||
<Badge variant="muted" size="sm">
|
||||
В разработке
|
||||
</Badge>
|
||||
) : (
|
||||
request.description && <span className={styles.tileDesc}>{request.description}</span>
|
||||
)}
|
||||
</span>
|
||||
{!request.comingSoon && (
|
||||
<span className={styles.tileArrow}>
|
||||
<Icon name="chevron-right" size="sm" />
|
||||
</span>
|
||||
)}
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
|
||||
@@ -17,14 +17,32 @@ export const REQUEST_TYPES: IRequestType[] = [
|
||||
// Отдел кадров
|
||||
{ id: 'hr-vacation', categoryId: 'hr', title: 'Заявка на трудовой отпуск', icon: 'calendar' },
|
||||
{ id: 'hr-unpaid-leave', categoryId: 'hr', title: 'Заявка на отпуск без содержания', icon: 'document' },
|
||||
{ id: 'hr-dismissal', categoryId: 'hr', title: 'Заявление на увольнение', icon: 'document' },
|
||||
{ id: 'clearance-form', categoryId: 'hr', title: 'Обходной лист', icon: 'clipboard' },
|
||||
{ id: 'hr-transfer', categoryId: 'hr', title: 'Заявка на перемещение сотрудника', icon: 'people' },
|
||||
{ id: 'hr-dismissal', categoryId: 'hr', title: 'Заявление на увольнение', icon: 'document', comingSoon: true },
|
||||
{ id: 'clearance-form', categoryId: 'hr', title: 'Обходной лист', icon: 'clipboard', comingSoon: true },
|
||||
{
|
||||
id: 'hr-transfer',
|
||||
categoryId: 'hr',
|
||||
title: 'Заявка на перемещение сотрудника',
|
||||
icon: 'people',
|
||||
comingSoon: true
|
||||
},
|
||||
|
||||
// Склад / Снабжение
|
||||
{ id: 'wh-tmc-transfer', categoryId: 'warehouse', title: 'СЗ на перемещение ТМЦ', icon: 'send' },
|
||||
{ id: 'wh-service-request', categoryId: 'warehouse', title: 'Заявка на услуги', icon: 'document' },
|
||||
{ id: 'wh-concrete-request', categoryId: 'warehouse', title: 'Заявка на бетон', icon: 'vehicle' }
|
||||
{ id: 'wh-tmc-transfer', categoryId: 'warehouse', title: 'СЗ на перемещение ТМЦ', icon: 'send', comingSoon: true },
|
||||
{
|
||||
id: 'wh-service-request',
|
||||
categoryId: 'warehouse',
|
||||
title: 'Заявка на услуги',
|
||||
icon: 'document',
|
||||
comingSoon: true
|
||||
},
|
||||
{
|
||||
id: 'wh-concrete-request',
|
||||
categoryId: 'warehouse',
|
||||
title: 'Заявка на бетон',
|
||||
icon: 'vehicle',
|
||||
comingSoon: true
|
||||
}
|
||||
];
|
||||
|
||||
/** Заявки, относящиеся к указанной категории. */
|
||||
|
||||
@@ -19,6 +19,8 @@ export interface IRequestType {
|
||||
/** Короткое пояснение под заголовком плитки. Необязательно. */
|
||||
description?: string;
|
||||
icon: IconName;
|
||||
/** Заявка ещё не готова к использованию: плитка видна, но заблокирована. */
|
||||
comingSoon?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user