import {Table, Select, DatePicker, ConfigProvider} from 'antd'; import {AnalyticsService} from '../services/api' import {useState, useEffect} from 'react' import {useParams} from 'react-router-dom' import notify from '../components/notify' import LoaderPortal from '../components/LoaderPortal' import locale from "antd/lib/locale/ru_RU"; import moment from 'moment' import '../styles/message.css' const {Option} = Select const pageSize = 26 const {RangePicker} = DatePicker; const columns = [ { title: 'Название операции', key: 'name', dataIndex: 'name', }, { title: 'Дата начала операции', key: 'beginDate', dataIndex: 'beginDate', render: (item) => moment.utc(item).local().format('DD MMM YYYY, HH:mm:ss') }, { title: 'Дата окончания операции', key: 'endDate', dataIndex: 'endDate', render: (item) => moment.utc(item).local().format('DD MMM YYYY, HH:mm:ss') }, { title: 'Глубина скважины в начале операции', key: 'beginWellDepth', dataIndex: 'startWellDepth', }, { title: 'Глубина скважины в конце операции', key: 'endWellDepth', dataIndex: 'endWellDepth', } ]; const filterOptions = [ {label: 'Невозможно определить операцию', value: 1}, {label: 'Роторное бурение', value: 2}, {label: 'Слайдирование', value: 3}, {label: 'Подъем с проработкой', value: 4}, {label: 'Спуск с проработкой', value: 5}, {label: 'Подъем с промывкой', value: 6}, {label: 'Спуск с промывкой', value: 7}, {label: 'Спуск в скважину', value: 8}, {label: 'Спуск с вращением', value: 9}, {label: 'Подъем из скважины', value: 10}, {label: 'Подъем с вращением', value: 11}, {label: 'Промывка в покое', value: 12}, {label: 'Промывка с вращением', value: 13}, {label: 'Удержание в клиньях', value: 14}, {label: 'Неподвижное состояние', value: 15}, {label: 'Вращение без циркуляции', value: 16}, {label: 'На поверхности', value: 17} ] export default function WellAnalysis() { let {id} = useParams() const [page, setPage] = useState(1) const [range, setRange] = useState([]) const [categories, setCategories] = useState([]) const [pagination, setPagination] = useState(null) const [operations, setOperations] = useState([]) const [loader, setLoader] = useState(false) const children = filterOptions.map((line) => ) const onChangeRange = (range) => { setRange(range) } useEffect(() => { const GetOperations = async () => { setLoader(true) try { let begin = null let end = null if (range?.length > 1) { begin = range[0].toISOString() end = range[1].toISOString() } await AnalyticsService.getOperationsByWell( `${id}`, (page-1) * pageSize, pageSize, categories, begin, end).then((paginatedOperations) => { setOperations(paginatedOperations?.items.map(o => { return { key: o.id, begin: o.date, ...o } })) setPagination({ total: paginatedOperations?.count, current: Math.floor(paginatedOperations?.skip / pageSize), }) } ) } catch (ex) { notify(`Не удалось загрузить операции по скважине "${id}"`, 'error') console.log(ex) } setLoader(false) } GetOperations() }, [id, categories, range, page]) return(<>