From dc53a0d0b2167e8b6d6a4dc263d64d17836080b1 Mon Sep 17 00:00:00 2001 From: cult Date: Thu, 28 Oct 2021 17:00:30 +0500 Subject: [PATCH] Added 'Watch drilling program preview' button --- src/pages/Documents/DrillingProgram.jsx | 30 ++++++++++++++----- .../api/services/DrillingProgramService.ts | 16 ++++++++++ 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/src/pages/Documents/DrillingProgram.jsx b/src/pages/Documents/DrillingProgram.jsx index 23f8fe9..a06240d 100644 --- a/src/pages/Documents/DrillingProgram.jsx +++ b/src/pages/Documents/DrillingProgram.jsx @@ -1,7 +1,7 @@ import {Button, Tooltip} from 'antd' import { FileExcelOutlined } from '@ant-design/icons' import { useEffect, useState } from "react" -import {invokeWebApiWrapperAsync} from '../../components/factory' +import {invokeWebApiWrapperAsync, download} from '../../components/factory' import DocumentsTemplate from './DocumentsTemplate' import LoaderPortal from '../../components/LoaderPortal' import { Flex } from '../../components/Grid' @@ -24,18 +24,24 @@ export default function DrillingProgram({idWell}) { `Не удалось загрузить название скважины "${idWell}"` ), [idWell]) - //const urlDownloadProgram =`/api/well/${idWell}/drillingProgram` + const urlDownloadProgram =`/api/well/${idWell}/drillingProgram` const downloadProgram = () => invokeWebApiWrapperAsync(async()=>{ - //await download(urlDownloadProgram) - // Это временный функционал по просмотру программы бурения без скачивания. - // Наверняка его попросят убрать и нужно вернуть закомменченое скачивание файла выше. - var filWebUrl = await DrillingProgramService.get(idWell) - window.open(filWebUrl, '_blank') + await download(urlDownloadProgram) }, 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) =>{ if(!files || files.length === 0){ setTooltip('Нет файлов для формирования программы') @@ -60,7 +66,7 @@ export default function DrillingProgram({idWell}) { type="primary" onClick={downloadProgram} disabled={!downloadButtonEnabled}> - Сформировать и просмотреть + Сформировать и скачать @@ -72,6 +78,14 @@ export default function DrillingProgram({idWell}) { Программа бурения {wellLabel}.xlsx + + + diff --git a/src/services/api/services/DrillingProgramService.ts b/src/services/api/services/DrillingProgramService.ts index 284346c..22d5db4 100644 --- a/src/services/api/services/DrillingProgramService.ts +++ b/src/services/api/services/DrillingProgramService.ts @@ -21,4 +21,20 @@ export class DrillingProgramService { return result.body; } + /** + * Возвращает ссылку на файл программы бурения в облаке + * @param idWell id скважины + * @returns string Success + * @throws ApiError + */ + public static async getFileWebLink( + idWell: number, + ): Promise { + const result = await __request({ + method: 'GET', + path: `/api/well/${idWell}/drillingProgram/webUrl`, + }); + return result.body; + } + } \ No newline at end of file