diff --git a/src/pages/Messages.jsx b/src/pages/Messages.jsx
index 28c4616..53e6bc8 100644
--- a/src/pages/Messages.jsx
+++ b/src/pages/Messages.jsx
@@ -1,14 +1,16 @@
-import {Button, Table, Select} from 'antd';
+import {Button, Table, Select, DatePicker, ConfigProvider} from 'antd';
import {MessageService} from '../services/api'
import {useState, useEffect} from 'react'
import {useParams} from 'react-router-dom'
-import {Subscribe} from '../services/signalr'
import Loader from '../components/Loader'
-import moment from 'moment'
import '../styles/message.css'
-import Notification from '../components/Notification'
+import notify from '../components/notify'
+import locale from "antd/lib/locale/ru_RU";
+import moment from 'moment'
const {Option} = Select
+const pageSize = 26
+const {RangePicker} = DatePicker;
// Словарь категорий для строк таблицы
const categoryDictionary = {
@@ -17,79 +19,94 @@ const categoryDictionary = {
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,
+ ellipsis: true,
+ },
+ {
+ title: 'Сообщение',
+ key: 'message',
+ dataIndex: 'message',
+ },
+ {
+ title: 'Пользователь',
+ key: 'user',
+ dataIndex: 'user',
+ },
+];
+
+const filterOptions = [
+ {label: 'Авария', value: 1},
+ {label: 'Предупреждение', value: 2},
+ {label: 'Информация', value: 3},
+]
+
// Данные для таблицы
export default function Messages() {
let {id} = useParams()
const [messages, setMessages] = useState([])
- const [filteredInfo, setFilteredInfo] = useState({})
- const [loader] = useState(false)
- const filterOptions = [
- {label: 'Авария', value: '1'},
- {label: 'Предупреждение', value: '2'},
- {label: 'Информация', value: '3'},
- ]
+ const [pagination, setPagination] = useState(null)
+ const [page, setPage] = useState(1)
+ const [range, setRange] = useState([])
+ const [categories, setCategories] = useState([])
- const children = filterOptions.map((line) => ())
+ const [loader, setLoader] = useState(false)
- const handleChange = (filters) => {
- setFilteredInfo({
- filteredInfo: filters
- })
+
+ const children = filterOptions.map((line) => )
+
+ const onChangeRange = (range) => {
+ setRange(range)
}
- const handleReceiveMessages = (messages) => {
- if (messages) {
- setMessages(messages.items)
+ const GetMessages = async() => {
+ setLoader(true)
+ try {
+ let begin = null
+ let end = null
+ if(range?.length>1){
+ begin = range[0].toISOString()
+ end = range[1].toISOString()
+ }
+ let paginatedMessages = await MessageService.getMessage(`${id}`,
+ (page - 1) * pageSize,
+ pageSize,
+ categories,
+ begin,
+ end)
+ setMessages(paginatedMessages.items.map(m => {
+ return {
+ key: m.id,
+ categoryids: categoryDictionary[m.categoryId],
+ begin: m.date,
+ ...m
+ }
+ }))
+ setPagination({
+ total: paginatedMessages.count,
+ current: Math.floor(paginatedMessages.skip / pageSize),
+ })
+ } catch (ex) {
+ notify(`Не удалось загрузить сообщения по скважине "${id}"`, 'error')
+ console.log(ex)
}
+ setLoader(false)
}
useEffect(() => {
- MessageService.getMessage(id)
- .then(handleReceiveMessages)
- .catch((ex) => {
- Notification(`Не удалось загрузить сообщения по скважине "${id}"`, 'error')
- console.log(ex)
- })
-
- let unSubscribeMessagesHub = Subscribe('ReceiveMessages', `well_${id}`, handleReceiveMessages)
- return () => {
- unSubscribeMessagesHub()
- }
- }, [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',
- },
- ];
+ GetMessages()
+ }, [page, categories, range])
return (
<>
@@ -101,10 +118,16 @@ export default function Messages() {
allowClear
placeholder="Фильтр сообщений"
className="filter-selector"
- onChange={handleChange}
- >
+ value={categories}
+ onChange = {setCategories}>
{children}
+
+
+