forked from ddrilling/asb_cloud_front
Merge branch 'dev' into feature/CF2-87-Archive-page-redesign
This commit is contained in:
commit
4f0e30127c
@ -5,7 +5,7 @@ import {invokeWebApiWrapperAsync, download} from '../../components/factory'
|
|||||||
import DocumentsTemplate from './DocumentsTemplate'
|
import DocumentsTemplate from './DocumentsTemplate'
|
||||||
import LoaderPortal from '../../components/LoaderPortal'
|
import LoaderPortal from '../../components/LoaderPortal'
|
||||||
import { Flex } from '../../components/Grid'
|
import { Flex } from '../../components/Grid'
|
||||||
import { WellService } from '../../services/api'
|
import {DrillingProgramService, WellService} from '../../services/api'
|
||||||
|
|
||||||
const idFileCategoryDrillingProgramItems = 13;
|
const idFileCategoryDrillingProgramItems = 13;
|
||||||
|
|
||||||
@ -32,6 +32,13 @@ export default function DrillingProgram({idWell}) {
|
|||||||
setShowLoader,
|
setShowLoader,
|
||||||
"Не удалось загрузить программу бурения")
|
"Не удалось загрузить программу бурения")
|
||||||
|
|
||||||
|
const openProgramPreview = () => invokeWebApiWrapperAsync(async()=>{
|
||||||
|
const filWebUrl = await DrillingProgramService.getFileWebLink(idWell)
|
||||||
|
window.open(filWebUrl, '_blank')
|
||||||
|
},
|
||||||
|
setShowLoader,
|
||||||
|
"Не удалось создать быстрый просмотр программы")
|
||||||
|
|
||||||
const filesUpdated = (files) =>{
|
const filesUpdated = (files) =>{
|
||||||
if(!files || files.length === 0){
|
if(!files || files.length === 0){
|
||||||
setTooltip('Нет файлов для формирования программы')
|
setTooltip('Нет файлов для формирования программы')
|
||||||
@ -68,6 +75,14 @@ export default function DrillingProgram({idWell}) {
|
|||||||
Программа бурения {wellLabel}.xlsx
|
Программа бурения {wellLabel}.xlsx
|
||||||
</Button>
|
</Button>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
<Tooltip title="Перед просмотром программы бурения сначала сформируйте ее.">
|
||||||
|
<Button
|
||||||
|
type="primary"
|
||||||
|
onClick={openProgramPreview}
|
||||||
|
disabled={!downloadButtonEnabled}>
|
||||||
|
Сформировать и просмотреть
|
||||||
|
</Button>
|
||||||
|
</Tooltip>
|
||||||
</Flex>
|
</Flex>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -14,38 +14,44 @@ const { Search } = Input
|
|||||||
|
|
||||||
// Словарь категорий для строк таблицы
|
// Словарь категорий для строк таблицы
|
||||||
const categoryDictionary = {
|
const categoryDictionary = {
|
||||||
1: {title: 'Авария'},
|
1: {title: 'Важное'},
|
||||||
2: {title: 'Предупреждение'},
|
2: {title: 'Предупреждение'},
|
||||||
3: {title: 'Информация'},
|
3: {title: 'Информация'},
|
||||||
}
|
}
|
||||||
|
|
||||||
const columns = [
|
// Конфигурация таблицы
|
||||||
|
export const columns = [
|
||||||
{
|
{
|
||||||
width: '10%',
|
width: '10rem',
|
||||||
title: 'Дата',
|
title: 'Дата',
|
||||||
key: 'date',
|
key: 'date',
|
||||||
dataIndex: 'date',
|
dataIndex: 'date',
|
||||||
render: item => moment(item).format('DD MMM YYYY, HH:mm:ss'),
|
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: 'Глубина',
|
title: 'Глубина',
|
||||||
key: 'wellDepth',
|
key: 'wellDepth',
|
||||||
dataIndex: 'wellDepth',
|
dataIndex: 'wellDepth',
|
||||||
render: depth => <span>{depth.toFixed(2)} м.</span>,
|
render: depth => <span>{depth.toFixed(2)} м.</span>,
|
||||||
}, {
|
}, {
|
||||||
width: '10%',
|
width: '10rem',
|
||||||
title: 'Категория',
|
title: 'Категория',
|
||||||
key: 'categoryId',
|
key: 'categoryId',
|
||||||
dataIndex: 'categoryId',
|
dataIndex: 'categoryId',
|
||||||
render: (_, item) => categoryDictionary[item.categoryId].title,
|
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,
|
ellipsis: true,
|
||||||
}, {
|
}, {
|
||||||
title: 'Сообщение',
|
title: 'Сообщение',
|
||||||
key: 'message',
|
key: 'message',
|
||||||
dataIndex: 'message',
|
dataIndex: 'message',
|
||||||
|
onFilter: (value, record) => record.name.indexOf(value) === 0,
|
||||||
}, {
|
}, {
|
||||||
width: '10%',
|
width: '10rem',
|
||||||
title: 'Пользователь',
|
title: 'Пользователь',
|
||||||
key: 'user',
|
key: 'user',
|
||||||
dataIndex: 'user',
|
dataIndex: 'user',
|
||||||
|
@ -1,51 +1,14 @@
|
|||||||
import {useState, useEffect} from 'react'
|
import {useState, useEffect} from 'react'
|
||||||
import {Table} from "antd";
|
import {Table} from 'antd'
|
||||||
import moment from 'moment'
|
|
||||||
|
|
||||||
import LoaderPortal from '../../components/LoaderPortal'
|
import LoaderPortal from '../../components/LoaderPortal'
|
||||||
import {invokeWebApiWrapperAsync} from '../../components/factory'
|
import {invokeWebApiWrapperAsync} from '../../components/factory'
|
||||||
|
import {columns} from '../Messages'
|
||||||
|
|
||||||
import {Subscribe} from '../../services/signalr'
|
import {Subscribe} from '../../services/signalr'
|
||||||
import {MessageService} from '../../services/api'
|
import {MessageService} from '../../services/api'
|
||||||
import '../../styles/message.css'
|
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 => <span>Глубина {depth.toFixed(2)} м.</span>,
|
|
||||||
}, {
|
|
||||||
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}) {
|
export default function ActiveMessagesOnline({idWell}) {
|
||||||
const [messages, setMessages] = useState([])
|
const [messages, setMessages] = useState([])
|
||||||
const [loader, setLoader] = useState(false)
|
const [loader, setLoader] = useState(false)
|
||||||
|
@ -22,7 +22,7 @@ export class DrillingProgramService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Создает программу бурения
|
* Возвращает ссылку на файл программы бурения в облаке
|
||||||
* @param idWell id скважины
|
* @param idWell id скважины
|
||||||
* @returns string Success
|
* @returns string Success
|
||||||
* @throws ApiError
|
* @throws ApiError
|
||||||
|
Loading…
Reference in New Issue
Block a user