forked from ddrilling/asb_cloud_front
Фильтрация сообщений в шапке таблицы
This commit is contained in:
parent
f7900e36ca
commit
2818610b67
@ -10,8 +10,6 @@ import Notification from '../components/Notification'
|
|||||||
|
|
||||||
const {Option} = Select
|
const {Option} = Select
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Словарь категорий для строк таблицы
|
// Словарь категорий для строк таблицы
|
||||||
const categoryDictionary = {
|
const categoryDictionary = {
|
||||||
1: {title: 'Авария'},
|
1: {title: 'Авария'},
|
||||||
@ -19,54 +17,26 @@ const categoryDictionary = {
|
|||||||
3: {title: 'Информация'},
|
3: {title: 'Информация'},
|
||||||
}
|
}
|
||||||
|
|
||||||
// Конфигурация таблицы
|
|
||||||
const columns = [
|
|
||||||
{
|
|
||||||
title: 'Дата',
|
|
||||||
key: 'date',
|
|
||||||
dataIndex: 'date',
|
|
||||||
render: (item) => moment(item).format('DD MMM YYYY, HH:MM:ss'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Категория',
|
|
||||||
key: 'categoryId',
|
|
||||||
dataIndex: 'categoryId',
|
|
||||||
render: (_, item) => categoryDictionary[item.categoryId].title,
|
|
||||||
style: (_, item) => categoryDictionary[item.categoryId].style,
|
|
||||||
filters: [
|
|
||||||
{text: 'Авария', value: '1'},
|
|
||||||
{text: 'Предупреждение', value: '2'},
|
|
||||||
{text: 'Информация', value: '3'},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Сообщение',
|
|
||||||
key: 'message',
|
|
||||||
dataIndex: 'message',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Пользователь',
|
|
||||||
key: 'user',
|
|
||||||
dataIndex: 'user',
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
// Опции для фильра
|
|
||||||
|
|
||||||
// Данные для таблицы
|
// Данные для таблицы
|
||||||
export default function Messages() {
|
export default function Messages() {
|
||||||
let {id} = useParams()
|
let {id} = useParams()
|
||||||
const [messages, setMessages] = useState([])
|
const [messages, setMessages] = useState([])
|
||||||
|
const [filteredInfo, setFilteredInfo] = useState({})
|
||||||
const [loader] = useState(false)
|
const [loader] = useState(false)
|
||||||
|
|
||||||
const filterOptions = [
|
const filterOptions = [
|
||||||
{label: 'Авария', value: 1},
|
{label: 'Авария', value: '1'},
|
||||||
{label: 'Предупреждение', value: 2},
|
{label: 'Предупреждение', value: '2'},
|
||||||
{label: 'Информация', value: 3},
|
{label: 'Информация', value: '3'},
|
||||||
]
|
]
|
||||||
|
|
||||||
const children = filterOptions.map((line) => (<Option key={line.value}>{line.label}</Option>))
|
const children = filterOptions.map((line) => (<Option key={line.value}>{line.label}</Option>))
|
||||||
|
|
||||||
|
const handleChange = (filters) => {
|
||||||
|
setFilteredInfo({
|
||||||
|
filteredInfo: filters
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const handleReceiveMessages = (messages) => {
|
const handleReceiveMessages = (messages) => {
|
||||||
if (messages) {
|
if (messages) {
|
||||||
setMessages(messages.items)
|
setMessages(messages.items)
|
||||||
@ -87,6 +57,40 @@ export default function Messages() {
|
|||||||
}
|
}
|
||||||
}, [id])
|
}, [id])
|
||||||
|
|
||||||
|
const columns = [
|
||||||
|
{
|
||||||
|
title: 'Дата',
|
||||||
|
key: 'date',
|
||||||
|
dataIndex: 'date',
|
||||||
|
render: (item) => moment(item).format('DD MMM YYYY, HH:MM:ss'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Категория',
|
||||||
|
key: 'categoryId',
|
||||||
|
dataIndex: 'categoryId',
|
||||||
|
render: (_, item) => categoryDictionary[item.categoryId].title,
|
||||||
|
style: (_, item) => categoryDictionary[item.categoryId].style,
|
||||||
|
filters: [
|
||||||
|
{text: 'Авария', value: '1'},
|
||||||
|
{text: 'Предупреждение', value: '2'},
|
||||||
|
{text: 'Информация', value: '3'},
|
||||||
|
],
|
||||||
|
filteredValue: filteredInfo.categoryId,
|
||||||
|
onFilter: (value, record) => record.categoryId.toString() === value,
|
||||||
|
ellipsis: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Сообщение',
|
||||||
|
key: 'message',
|
||||||
|
dataIndex: 'message',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Пользователь',
|
||||||
|
key: 'user',
|
||||||
|
dataIndex: 'user',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<h2>Сообщения</h2>
|
<h2>Сообщения</h2>
|
||||||
@ -97,7 +101,7 @@ export default function Messages() {
|
|||||||
allowClear
|
allowClear
|
||||||
placeholder="Фильтр сообщений"
|
placeholder="Фильтр сообщений"
|
||||||
className="filter-selector"
|
className="filter-selector"
|
||||||
// onChange={messagesFilter}
|
onChange={handleChange}
|
||||||
>
|
>
|
||||||
{children}
|
{children}
|
||||||
</Select>
|
</Select>
|
||||||
|
Loading…
Reference in New Issue
Block a user