Added 'Watch drilling program preview' button

This commit is contained in:
cult 2021-10-28 17:00:30 +05:00
parent 46dddceae4
commit dc53a0d0b2
2 changed files with 38 additions and 8 deletions

View File

@ -1,7 +1,7 @@
import {Button, Tooltip} from 'antd' import {Button, Tooltip} from 'antd'
import { FileExcelOutlined } from '@ant-design/icons' import { FileExcelOutlined } from '@ant-design/icons'
import { useEffect, useState } from "react" import { useEffect, useState } from "react"
import {invokeWebApiWrapperAsync} from '../../components/factory' 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'
@ -24,18 +24,24 @@ export default function DrillingProgram({idWell}) {
`Не удалось загрузить название скважины "${idWell}"` `Не удалось загрузить название скважины "${idWell}"`
), [idWell]) ), [idWell])
//const urlDownloadProgram =`/api/well/${idWell}/drillingProgram` const urlDownloadProgram =`/api/well/${idWell}/drillingProgram`
const downloadProgram = () => invokeWebApiWrapperAsync(async()=>{ const downloadProgram = () => invokeWebApiWrapperAsync(async()=>{
//await download(urlDownloadProgram) await download(urlDownloadProgram)
// Это временный функционал по просмотру программы бурения без скачивания.
// Наверняка его попросят убрать и нужно вернуть закомменченое скачивание файла выше.
var filWebUrl = await DrillingProgramService.get(idWell)
window.open(filWebUrl, '_blank')
}, },
setShowLoader, setShowLoader,
"Не удалось загрузить программу бурения") "Не удалось загрузить программу бурения")
const openProgramPreview = () => invokeWebApiWrapperAsync(async()=>{
var filWebUrl = await DrillingProgramService.getFileWebLink(idWell)
if(filWebUrl && filWebUrl.length)
window.open(filWebUrl, '_blank')
else
throw new Error()
},
setShowLoader,
"Программа бурения еще не сформирована. Перед просмотром сначала сформируйте программу.")
const filesUpdated = (files) =>{ const filesUpdated = (files) =>{
if(!files || files.length === 0){ if(!files || files.length === 0){
setTooltip('Нет файлов для формирования программы') setTooltip('Нет файлов для формирования программы')
@ -60,7 +66,7 @@ export default function DrillingProgram({idWell}) {
type="primary" type="primary"
onClick={downloadProgram} onClick={downloadProgram}
disabled={!downloadButtonEnabled}> disabled={!downloadButtonEnabled}>
Сформировать и просмотреть Сформировать и скачать
</Button> </Button>
</Tooltip> </Tooltip>
<Tooltip title={tooltip}> <Tooltip title={tooltip}>
@ -72,6 +78,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>

View File

@ -21,4 +21,20 @@ export class DrillingProgramService {
return result.body; return result.body;
} }
/**
* Возвращает ссылку на файл программы бурения в облаке
* @param idWell id скважины
* @returns string Success
* @throws ApiError
*/
public static async getFileWebLink(
idWell: number,
): Promise<string> {
const result = await __request({
method: 'GET',
path: `/api/well/${idWell}/drillingProgram/webUrl`,
});
return result.body;
}
} }