diff --git a/src/pages/Documents/DrillingProgram.jsx b/src/pages/Documents/DrillingProgram.jsx index 4c23f49..09adc6c 100644 --- a/src/pages/Documents/DrillingProgram.jsx +++ b/src/pages/Documents/DrillingProgram.jsx @@ -5,7 +5,7 @@ import {invokeWebApiWrapperAsync, download} from '../../components/factory' import DocumentsTemplate from './DocumentsTemplate' import LoaderPortal from '../../components/LoaderPortal' import { Flex } from '../../components/Grid' -import { WellService } from '../../services/api' +import {DrillingProgramService, WellService} from '../../services/api' const idFileCategoryDrillingProgramItems = 13; @@ -28,10 +28,17 @@ export default function DrillingProgram({idWell}) { const downloadProgram = () => invokeWebApiWrapperAsync(async()=>{ await download(urlDownloadProgram) - }, + }, setShowLoader, "Не удалось загрузить программу бурения") + const openProgramPreview = () => invokeWebApiWrapperAsync(async()=>{ + const filWebUrl = await DrillingProgramService.getFileWebLink(idWell) + window.open(filWebUrl, '_blank') + }, + setShowLoader, + "Не удалось создать быстрый просмотр программы") + const filesUpdated = (files) =>{ if(!files || files.length === 0){ setTooltip('Нет файлов для формирования программы') @@ -68,6 +75,14 @@ export default function DrillingProgram({idWell}) { Программа бурения {wellLabel}.xlsx + + + diff --git a/src/pages/Messages.jsx b/src/pages/Messages.jsx index 20603c5..366206b 100644 --- a/src/pages/Messages.jsx +++ b/src/pages/Messages.jsx @@ -14,38 +14,44 @@ const { Search } = Input // Словарь категорий для строк таблицы const categoryDictionary = { - 1: {title: 'Авария'}, + 1: {title: 'Важное'}, 2: {title: 'Предупреждение'}, 3: {title: 'Информация'}, } -const columns = [ +// Конфигурация таблицы +export const columns = [ { - width: '10%', + width: '10rem', title: 'Дата', key: 'date', dataIndex: 'date', render: item => moment(item).format('DD MMM YYYY, HH:mm:ss'), + sorter: (a, b) => new Date(b.date) - new Date(a.date), + sortDirections: ['descend', 'ascend'], }, { - width: '10%', + width: '10rem', title: 'Глубина', key: 'wellDepth', dataIndex: 'wellDepth', render: depth => {depth.toFixed(2)} м., }, { - width: '10%', + width: '10rem', title: 'Категория', key: 'categoryId', dataIndex: 'categoryId', render: (_, item) => categoryDictionary[item.categoryId].title, - style: (_, item) => categoryDictionary[item.categoryId].style, + style: (_, item) => categoryDictionary[item.categoryId]?.style, + sorter: (a, b) => a.categoryId - b.categoryId, + sortDirections: ['descend', 'ascend'], ellipsis: true, }, { title: 'Сообщение', key: 'message', dataIndex: 'message', + onFilter: (value, record) => record.name.indexOf(value) === 0, }, { - width: '10%', + width: '10rem', title: 'Пользователь', key: 'user', dataIndex: 'user', diff --git a/src/pages/TelemetryView/ActiveMessagesOnline.jsx b/src/pages/TelemetryView/ActiveMessagesOnline.jsx index 73df56a..e112409 100644 --- a/src/pages/TelemetryView/ActiveMessagesOnline.jsx +++ b/src/pages/TelemetryView/ActiveMessagesOnline.jsx @@ -1,51 +1,14 @@ import {useState, useEffect} from 'react' -import {Table} from "antd"; -import moment from 'moment' +import {Table} from 'antd' import LoaderPortal from '../../components/LoaderPortal' import {invokeWebApiWrapperAsync} from '../../components/factory' +import {columns} from '../Messages' import {Subscribe} from '../../services/signalr' import {MessageService} from '../../services/api' import '../../styles/message.css' -// Словарь категорий для строк таблицы -const categoryDictionary = { - 1: {title: 'Важное'}, - 2: {title: 'Предупреждение'}, - 3: {title: 'Информация'}, -} - -// Конфигурация таблицы -const columns = [ - { - title: 'Дата', - dataIndex: 'date', - render: (item) => moment(item).format('DD MMM YYYY, HH:mm:ss'), - sorter: (a, b) => new Date(b.date) - new Date(a.date), - sortDirections: ['descend', 'ascend'], - }, { - title: 'Глубина', - key: 'wellDepth', - dataIndex: 'wellDepth', - render: depth => Глубина {depth.toFixed(2)} м., - }, { - title: 'Категория', - dataIndex: 'categoryId', - render: (_, item) => categoryDictionary[item.categoryId]?.title, - style: (_, item) => categoryDictionary[item.categoryId]?.style, - sorter: (a, b) => a.categoryId - b.categoryId, - sortDirections: ['descend', 'ascend'], - }, { - title: 'Сообщение', - dataIndex: 'message', - onFilter: (value, record) => record.name.indexOf(value) === 0, - }, { - title: 'Пользователь', - dataIndex: 'user', - }, -]; - export default function ActiveMessagesOnline({idWell}) { const [messages, setMessages] = useState([]) const [loader, setLoader] = useState(false) @@ -56,7 +19,7 @@ export default function ActiveMessagesOnline({idWell}) { } } - useEffect(() => { + useEffect(() => { invokeWebApiWrapperAsync( async () => { const messages = await MessageService.getMessages(idWell, 0, 4) diff --git a/src/services/api/services/DrillingProgramService.ts b/src/services/api/services/DrillingProgramService.ts index c460cfc..22d5db4 100644 --- a/src/services/api/services/DrillingProgramService.ts +++ b/src/services/api/services/DrillingProgramService.ts @@ -22,7 +22,7 @@ export class DrillingProgramService { } /** - * Создает программу бурения + * Возвращает ссылку на файл программы бурения в облаке * @param idWell id скважины * @returns string Success * @throws ApiError