forked from ddrilling/asb_cloud_front
CF2-61 DrillingProgram кнопка загрузки доступна только при наличии excel файлов в DocumentsTemplate
This commit is contained in:
parent
75657398c6
commit
449a7566b6
@ -17,7 +17,7 @@ const pageSize = 12
|
||||
const { RangePicker } = DatePicker
|
||||
const { Search } = Input
|
||||
|
||||
export default function DocumentsTemplate({ idCategory, idWell, accept }) {
|
||||
export default function DocumentsTemplate({ idCategory, idWell, accept, onChange }) {
|
||||
const [page, setPage] = useState(1)
|
||||
const [filterDataRange, setFilterDataRange] = useState([])
|
||||
const [filterCompanyName, setFilterCompanyName] = useState([])
|
||||
@ -116,9 +116,7 @@ export default function DocumentsTemplate({ idCategory, idWell, accept }) {
|
||||
return
|
||||
|
||||
const filesInfos = paginatedFiles.items??[]
|
||||
|
||||
setFiles(filesInfos)
|
||||
|
||||
const newPagination = makePaginationObject(paginatedFiles)
|
||||
setPagination(newPagination)
|
||||
},
|
||||
@ -128,6 +126,10 @@ export default function DocumentsTemplate({ idCategory, idWell, accept }) {
|
||||
}
|
||||
|
||||
useEffect(update, [idWell, idCategory, page, filterDataRange, filterCompanyName, filterFileName])
|
||||
useEffect(()=>{
|
||||
if(onChange)
|
||||
onChange(files)
|
||||
}, [files, onChange])
|
||||
|
||||
const companies = [...new Set(files.map(file=>file.company))]
|
||||
.filter(company=>company)
|
||||
|
@ -1,4 +1,4 @@
|
||||
import {Button} from 'antd'
|
||||
import {Button, Tooltip} from 'antd'
|
||||
import { useState } from "react"
|
||||
import {invokeWebApiWrapperAsync, download} from '../../components/factory'
|
||||
import DocumentsTemplate from './DocumentsTemplate'
|
||||
@ -7,7 +7,9 @@ import LoaderPortal from '../../components/LoaderPortal'
|
||||
const idFileCategoryDrillingProgramItems = 13;
|
||||
|
||||
export default function DrillingProgram({idWell}) {
|
||||
const [downloadButtonEnabled, selDownloadButtonEnabled] = useState(false)
|
||||
const [showLoader, setShowLoader] = useState(false)
|
||||
const [tooltip, setTooltip] = useState('нет файлов для формирования')
|
||||
|
||||
const urlDownloadProgram =`/api/well/${idWell}/drillingProgram`
|
||||
|
||||
@ -17,11 +19,34 @@ export default function DrillingProgram({idWell}) {
|
||||
setShowLoader,
|
||||
"Не удалось загрузить программу бурения")
|
||||
|
||||
const filesUpdated = (files) =>{
|
||||
if(!files || files.length === 0){
|
||||
setTooltip('Нет файлов для формирования программы')
|
||||
selDownloadButtonEnabled(false)
|
||||
return
|
||||
}
|
||||
|
||||
if(files.every(fileInfo => fileInfo?.name.endsWith('.xlsx'))){
|
||||
setTooltip('Программа доступна для скачивания')
|
||||
selDownloadButtonEnabled(true)
|
||||
}
|
||||
else{
|
||||
setTooltip('Список файлов содержит недопустимые типы файлов')
|
||||
}
|
||||
}
|
||||
|
||||
return(<LoaderPortal show={showLoader}>
|
||||
<Button onClick={downloadProgram}>Сформировать программу бурения</Button>
|
||||
<Tooltip title={tooltip}>
|
||||
<Button
|
||||
onClick={downloadProgram}
|
||||
disabled={!downloadButtonEnabled}>
|
||||
Сформировать программу бурения
|
||||
</Button>
|
||||
</Tooltip>
|
||||
<DocumentsTemplate
|
||||
idWell={idWell}
|
||||
idCategory={idFileCategoryDrillingProgramItems}
|
||||
accept='.xlsx'/>
|
||||
accept='.xlsx'
|
||||
onChange={filesUpdated}/>
|
||||
</LoaderPortal>)
|
||||
}
|
Loading…
Reference in New Issue
Block a user