forked from ddrilling/asb_cloud_front
69 lines
2.2 KiB
JavaScript
69 lines
2.2 KiB
JavaScript
import { useState, useEffect } from 'react'
|
||
import {
|
||
makeNumericMinMax,
|
||
makeNumericStartEnd
|
||
} from '../../components/Table'
|
||
import LoaderPortal from '../../components/LoaderPortal'
|
||
import { invokeWebApiWrapperAsync } from '../../components/factory'
|
||
import { EditableTable } from '../../components/Table'
|
||
import { DrillFlowChartService } from '../../services/api'
|
||
|
||
const columns = [
|
||
makeNumericStartEnd('Глубина, м', 'depth'),
|
||
makeNumericMinMax('Нагрузка, т', 'axialLoad'),
|
||
makeNumericMinMax('Давление, атм', 'pressure'),
|
||
makeNumericMinMax('Момент на ВСП, кН·м', 'rotorTorque'),
|
||
makeNumericMinMax('Обороты на ВСП, об/мин', 'rotorSpeed'),
|
||
makeNumericMinMax('Расход, л/с', 'flow')
|
||
]
|
||
|
||
export const DrillProcessFlow = ({idWell}) => {
|
||
const [flows, setFlows] = useState([])
|
||
const [showLoader, setShowLoader] = useState(false)
|
||
|
||
const updateFlows = () => invokeWebApiWrapperAsync(
|
||
async () => {
|
||
const flows = await DrillFlowChartService.get(idWell)
|
||
setFlows(Array.isArray(flows) ? flows : [])
|
||
},
|
||
setShowLoader,
|
||
'Не удалось загрузить режимно-технологическую карту скважины'
|
||
)
|
||
|
||
useEffect(updateFlows, [idWell])
|
||
|
||
const onAdd = async (flow) => {
|
||
flow.idWell = idWell
|
||
await DrillFlowChartService.insert(idWell, flow)
|
||
updateFlows()
|
||
}
|
||
|
||
const onEdit = async (flow) => {
|
||
if (!flow.id) return
|
||
flow.idWell = idWell
|
||
await DrillFlowChartService.edit(idWell, flow)
|
||
updateFlows()
|
||
}
|
||
|
||
const onDelete = async (flow) => {
|
||
if (!flow.id) return
|
||
await DrillFlowChartService.delete(idWell, flow.id)
|
||
updateFlows()
|
||
}
|
||
|
||
return (
|
||
<LoaderPortal show={showLoader}>
|
||
<EditableTable
|
||
size={'small'}
|
||
bordered
|
||
columns={columns}
|
||
dataSource={flows}
|
||
onRowAdd={onAdd}
|
||
onRowEdit={onEdit}
|
||
onRowDelete={onDelete}
|
||
pagination={false}
|
||
/>
|
||
</LoaderPortal>
|
||
)
|
||
}
|