forked from ddrilling/asb_cloud_front
глобальная переделка
This commit is contained in:
parent
b909f0fd03
commit
2cc9c0acee
@ -28,7 +28,7 @@
|
|||||||
"oug": "npx openapi -i http://46.146.209.148/swagger/v1/swagger.json -o src/services/api",
|
"oug": "npx openapi -i http://46.146.209.148/swagger/v1/swagger.json -o src/services/api",
|
||||||
"oug_dev": "npx openapi -i http://46.146.209.148:89/swagger/v1/swagger.json -o src/services/api"
|
"oug_dev": "npx openapi -i http://46.146.209.148:89/swagger/v1/swagger.json -o src/services/api"
|
||||||
},
|
},
|
||||||
"proxy": "http://46.146.209.148:89",
|
"proxy": "http://46.146.209.148:88",
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"extends": [
|
"extends": [
|
||||||
"react-app",
|
"react-app",
|
||||||
|
@ -9,21 +9,20 @@ import { makeColumn, makeGroupColumn } from '@components/Table'
|
|||||||
import { DailyReportService } from '@api'
|
import { DailyReportService } from '@api'
|
||||||
import { Tabs } from 'antd'
|
import { Tabs } from 'antd'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const { Item: RawItem } = Form
|
const { Item: RawItem } = Form
|
||||||
const { Summary } = Table
|
const { Summary } = Table
|
||||||
const { TabPane } = Tabs;
|
const { TabPane } = Tabs
|
||||||
|
|
||||||
const onChange = (key) => {
|
const onChange = (key) => {
|
||||||
console.log(key);
|
console.log(key)
|
||||||
};
|
}
|
||||||
|
|
||||||
const Item = memo(({ style, ...other }) => <RawItem style={{ margin: 0, ...style }} {...other} />)
|
const Item = memo(({ style, ...other }) => <RawItem style={{ margin: 0, ...style }} {...other} />)
|
||||||
|
|
||||||
const table1Columns = [
|
const table1Columns = [
|
||||||
makeGroupColumn('Отчётный период', [
|
makeGroupColumn('Отчётный период', [
|
||||||
makeColumn('От (дата, время)', 'dateStart', { width: 200, render: (_, { disabled, onChange, checkIsDateBusy }) => (
|
makeColumn('От (дата, время)', 'dateStart', {
|
||||||
|
width: 200,
|
||||||
|
render: (_, { disabled, onChange, checkIsDateBusy }) => (
|
||||||
<Item name={'reportDate'}>
|
<Item name={'reportDate'}>
|
||||||
<DatePicker
|
<DatePicker
|
||||||
onChange={onChange}
|
onChange={onChange}
|
||||||
@ -33,20 +32,35 @@ const table1Columns = [
|
|||||||
disabledDate={checkIsDateBusy}
|
disabledDate={checkIsDateBusy}
|
||||||
/>
|
/>
|
||||||
</Item>
|
</Item>
|
||||||
)}),
|
),
|
||||||
|
}),
|
||||||
]),
|
]),
|
||||||
makeGroupColumn('Забой за отчётный период, м', [
|
makeGroupColumn('Забой за отчётный период, м', [
|
||||||
makeColumn('От', 'depthStart', { width: 200, render: () => (
|
makeColumn('От', 'depthStart', {
|
||||||
|
width: 200,
|
||||||
|
render: () => (
|
||||||
<Item name={'wellDepthIntervalStartDate'}>
|
<Item name={'wellDepthIntervalStartDate'}>
|
||||||
<InputNumber style={{ width: '100%' }} />
|
<InputNumber style={{ width: '100%' }} />
|
||||||
</Item>
|
</Item>
|
||||||
)}),
|
),
|
||||||
makeColumn('До', 'depthEnd', { width: 200, render: () => (
|
}),
|
||||||
|
makeColumn('До', 'depthEnd', {
|
||||||
|
width: 200,
|
||||||
|
render: () => (
|
||||||
<Item name={'wellDepthIntervalFinishDate'}>
|
<Item name={'wellDepthIntervalFinishDate'}>
|
||||||
<InputNumber style={{ width: '100%' }} />
|
<InputNumber style={{ width: '100%' }} />
|
||||||
</Item>
|
</Item>
|
||||||
)}),
|
),
|
||||||
])
|
}),
|
||||||
|
]),
|
||||||
|
]
|
||||||
|
const names = [
|
||||||
|
['head', ['wellName', 'clusterName','contractor','countLaunchesMSE','customer','bottomholeDepth','verticalDepth','firstDriller','secondDriller','zenithAngle','azimuthAngle','penetrationSAUB','penetrationSpinMaster','penetrationTorkMaster','secondDriller','wellDepthIntervalFinishDate','wellDepthIntervalStartDate','workTimeSAUB','workTimeSpinMaster','workTimeTorkMaster','reportDate']],
|
||||||
|
['bha', ['bhaDescription','extensionDrillingOneBegin','extensionDrillingOneFinish','sluiceBegin','sluiceFinish','climbBegin','climbFinish','descentBegin','descentFinish','extensionDrillingTwoBegin','extensionDrillingTwoFinish']],
|
||||||
|
['noDrilling', ['actualTimeBarrelPreparation','actualTimeExtension','standardTimeBarrelPreparation','standardTimeExtension']],
|
||||||
|
['timeBalance', ['drilling','flushing','building','elaboration','extension','repair','knbk','spo','pzr','pzr','pgr','gis','ozc','engineeringWorks','takingMeasure','cementing','simple','npv']],
|
||||||
|
['saub', ['avgDiffDropRotor','avgDiffPressureSlide','declinesReasonsROP','deviationFromTVD','drillingTimeInRotor','declinesReasonsROP','extensionsCount','extensionsCount','penetrationInRotor','penetrationInSlide','rotorDrillingModes','rotorSlidePercent','reductionTimeDrilling','increaseSpeedSection','increaseSpeedDay','sectionDrillingTimeTotal','sectionPenetrationTotal','sectionROPPlan','slideDrillingModes','mspSection']],
|
||||||
|
['sign', ['drillingMaster','supervisor']],
|
||||||
]
|
]
|
||||||
|
|
||||||
const cellData = {
|
const cellData = {
|
||||||
@ -55,7 +69,15 @@ const cellData = {
|
|||||||
<Item name={name}>
|
<Item name={name}>
|
||||||
<InputNumber style={{ width: '100%' }} />
|
<InputNumber style={{ width: '100%' }} />
|
||||||
</Item>
|
</Item>
|
||||||
)
|
),
|
||||||
|
}
|
||||||
|
const Name1 = {
|
||||||
|
width: 200,
|
||||||
|
render: (name) => (
|
||||||
|
<Item name={name}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
const table2Columns = [
|
const table2Columns = [
|
||||||
@ -67,7 +89,12 @@ const table2Columns = [
|
|||||||
const table2Data = [
|
const table2Data = [
|
||||||
{ key: '1', label: 'АПД (автоматическая подача долота), ч/м:', hours: 'workTimeSAUB', meters: 'penetrationSAUB' },
|
{ key: '1', label: 'АПД (автоматическая подача долота), ч/м:', hours: 'workTimeSAUB', meters: 'penetrationSAUB' },
|
||||||
{ key: '2', label: 'Спин Мастер (осцилляция), ч/м:', hours: 'workTimeSpinMaster', meters: 'penetrationSpinMaster' },
|
{ key: '2', label: 'Спин Мастер (осцилляция), ч/м:', hours: 'workTimeSpinMaster', meters: 'penetrationSpinMaster' },
|
||||||
{ key: '3', label: 'Торк Мастер (демпфирование), ч/м:', hours: 'workTimeTorkMaster', meters: 'penetrationTorkMaster' },
|
{
|
||||||
|
key: '3',
|
||||||
|
label: 'Торк Мастер (демпфирование), ч/м:',
|
||||||
|
hours: 'workTimeTorkMaster',
|
||||||
|
meters: 'penetrationTorkMaster',
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const table3Columns = [
|
const table3Columns = [
|
||||||
@ -78,7 +105,9 @@ const table3Columns = [
|
|||||||
]),
|
]),
|
||||||
]
|
]
|
||||||
|
|
||||||
const table3Data = [{ key: '', sinking: 'penetrationInRotor', hours: 'numberDrillingHours', pressure: 'avgDiffDropRotor' }]
|
const table3Data = [
|
||||||
|
{ key: '', sinking: 'penetrationInRotor', hours: 'numberDrillingHours', pressure: 'avgDiffDropRotor' },
|
||||||
|
]
|
||||||
|
|
||||||
const table4Columns = [
|
const table4Columns = [
|
||||||
makeGroupColumn('Бурение в слайде (за отчётный период) с использованием САУБ-1', [
|
makeGroupColumn('Бурение в слайде (за отчётный период) с использованием САУБ-1', [
|
||||||
@ -88,10 +117,12 @@ const table4Columns = [
|
|||||||
]),
|
]),
|
||||||
]
|
]
|
||||||
|
|
||||||
const table4Data = [{ key: '', sinking: 'penetrationInSlide', hours: 'drillingTimeInRotor', pressure: 'avgDiffPressureSlide' }]
|
const table4Data = [
|
||||||
|
{ key: '', sinking: 'penetrationInSlide', hours: 'drillingTimeInRotor', pressure: 'avgDiffPressureSlide' },
|
||||||
|
]
|
||||||
|
|
||||||
const table6Columns = [
|
const table6Columns = [
|
||||||
makeGroupColumn('БЕЗМЕТРАЖНЫЕ РАБОТЫ', [
|
makeGroupColumn('', [
|
||||||
makeColumn('Подготовка ствола скважины к наращиванию', 'l_label', { colSpan: 2, width: 200 }),
|
makeColumn('Подготовка ствола скважины к наращиванию', 'l_label', { colSpan: 2, width: 200 }),
|
||||||
makeColumn('', 'l_value', { colSpan: 0, ...cellData }),
|
makeColumn('', 'l_value', { colSpan: 0, ...cellData }),
|
||||||
makeColumn('Наращивание', 'r_label', { colSpan: 2, width: 200 }),
|
makeColumn('Наращивание', 'r_label', { colSpan: 2, width: 200 }),
|
||||||
@ -99,30 +130,97 @@ const table6Columns = [
|
|||||||
]),
|
]),
|
||||||
]
|
]
|
||||||
|
|
||||||
const table6Data = [{
|
const table6Data = [
|
||||||
|
{
|
||||||
key: '1',
|
key: '1',
|
||||||
l_label: 'Норматив на одну операцию, (мин):',
|
l_label: 'Норматив на одну операцию, (мин):',
|
||||||
r_label: 'Норматив на одну операцию, (мин):',
|
r_label: 'Норматив на одну операцию, (мин):',
|
||||||
l_value: 'standardTimeBarrelPreparation',
|
l_value: 'standardTimeBarrelPreparation',
|
||||||
r_value: 'standardTimeExtension'
|
r_value: 'standardTimeExtension',
|
||||||
}, {
|
},
|
||||||
|
{
|
||||||
key: '2',
|
key: '2',
|
||||||
l_label: 'Проработка при бур, факт (ч):',
|
l_label: 'Проработка при бур, факт (ч):',
|
||||||
r_label: 'Наращивание, факт (ч):',
|
r_label: 'Наращивание, факт (ч):',
|
||||||
l_value: 'actualTimeBarrelPreparation',
|
l_value: 'actualTimeBarrelPreparation',
|
||||||
r_value: 'actualTimeExtension'
|
r_value: 'actualTimeExtension',
|
||||||
}]
|
},
|
||||||
|
]
|
||||||
|
const table10Columns = [
|
||||||
|
makeGroupColumn('', [
|
||||||
|
makeColumn('Бурение с наращиваниями в инт. 2195-2763м', 'l_label', { colSpan: 2, width: 200 }),
|
||||||
|
makeColumn('', 'l_value', { colSpan: 0, ...Name1 }),
|
||||||
|
makeColumn('Промывка', 'r_label', { colSpan: 2, width: 200 }),
|
||||||
|
makeColumn('', 'r_value', { colSpan: 0, ...Name1 }),
|
||||||
|
]),
|
||||||
|
]
|
||||||
|
|
||||||
const table6Summary = () => (
|
const table10Data = [
|
||||||
<Summary.Row>
|
{
|
||||||
<Summary.Cell colSpan={2}>
|
key: '1',
|
||||||
Краткие причины: доп проработки при переходе из слайда в ротор, в середине свечи.
|
l_label: 'Время начала:',
|
||||||
</Summary.Cell>
|
r_label: 'Время начала',
|
||||||
<Summary.Cell colSpan={2}>
|
l_value: 'extensionDrillingOneBegin',
|
||||||
Краткие причины: нехватка пальцев на обоих руках у первого помощника бурильщика.
|
r_value: 'extensionDrillingOneFinish',
|
||||||
</Summary.Cell>
|
},
|
||||||
</Summary.Row>
|
{
|
||||||
)
|
key: '2',
|
||||||
|
l_label: 'Время окончания',
|
||||||
|
r_label: 'Время окончания',
|
||||||
|
l_value: 'sluiceBegin',
|
||||||
|
r_value: 'sluiceFinish',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
const table11Columns = [
|
||||||
|
makeGroupColumn('', [
|
||||||
|
makeColumn('Подъем КНБК', 'l_label', { colSpan: 2, width: 200 }),
|
||||||
|
makeColumn('', 'l_value', { colSpan: 0, ...Name1 }),
|
||||||
|
makeColumn('Спуск КНБК', 'r_label', { colSpan: 2, width: 200 }),
|
||||||
|
makeColumn('', 'r_value', { colSpan: 0, ...Name1 }),
|
||||||
|
]),
|
||||||
|
]
|
||||||
|
|
||||||
|
const table11Data = [
|
||||||
|
{
|
||||||
|
key: '1',
|
||||||
|
l_label: 'Время начала:',
|
||||||
|
r_label: 'Время начала',
|
||||||
|
l_value: 'climbBegin',
|
||||||
|
r_value: 'climbFinish',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: '2',
|
||||||
|
l_label: 'Время окончания',
|
||||||
|
r_label: 'Время окончания',
|
||||||
|
l_value: 'descentBegin',
|
||||||
|
r_value: 'descentFinish',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
const table12Columns = [
|
||||||
|
makeGroupColumn('', [
|
||||||
|
makeColumn('Глубины забоя на окончание отчетного периода', 'l_label', { colSpan: 2, width: 200 }),
|
||||||
|
makeColumn('', 'l_value', { colSpan: 0, ...cellData }),
|
||||||
|
makeColumn('Углы на дату окончания отчетного периода', 'r_label', { colSpan: 2, width: 200 }),
|
||||||
|
makeColumn('', 'r_value', { colSpan: 0, ...cellData }),
|
||||||
|
]),
|
||||||
|
]
|
||||||
|
|
||||||
|
const table12Data = [
|
||||||
|
{
|
||||||
|
key: '1',
|
||||||
|
l_label: 'По стволу:',
|
||||||
|
r_label: 'По вертикали',
|
||||||
|
l_value: 'climbBegin',
|
||||||
|
r_value: 'climbFinish',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: '2',
|
||||||
|
l_label: 'Зенитный',
|
||||||
|
r_label: 'Азимутальный',
|
||||||
|
l_value: 'descentBegin',
|
||||||
|
r_value: 'descentFinish',
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
const table2Summary = () => (
|
const table2Summary = () => (
|
||||||
<Summary.Row>
|
<Summary.Row>
|
||||||
@ -142,35 +240,56 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel, checkIsDate
|
|||||||
|
|
||||||
const idWell = useIdWell()
|
const idWell = useIdWell()
|
||||||
|
|
||||||
const setFields = useCallback((data) => form.setFieldsValue(data ? {
|
const setFields = useCallback(
|
||||||
...data,
|
(data) =>
|
||||||
rotorDrillingModes: Array.isArray(data.rotorDrillingModes) ? data.rotorDrillingModes ?? [] : [],
|
form.setFieldsValue(
|
||||||
slideDrillingModes: Array.isArray(data.slideDrillingModes) ? data.slideDrillingModes ?? [] : [],
|
data
|
||||||
reportDate: moment.utc(data.reportDate).local(),
|
? {
|
||||||
} : {}), [form])
|
...data.head,
|
||||||
|
...data.bha,
|
||||||
|
...data.noDrilling,
|
||||||
|
...data.timeBalance,
|
||||||
|
...data.saub,
|
||||||
|
...data.sign,
|
||||||
|
reportDate: moment.utc(data.head.reportDate).local(),
|
||||||
|
}
|
||||||
|
: {}
|
||||||
|
),
|
||||||
|
[form]
|
||||||
|
)
|
||||||
|
|
||||||
useEffect(() => setFields(data), [data, setFields])
|
useEffect(() => setFields(data), [data, setFields])
|
||||||
|
|
||||||
const onFormChange = useCallback(async () => await form.validateFields()
|
const onFormChange = useCallback(
|
||||||
|
async () =>
|
||||||
|
await form
|
||||||
|
.validateFields()
|
||||||
.then(() => setIsInvalid(false))
|
.then(() => setIsInvalid(false))
|
||||||
.catch(() => setIsInvalid(true))
|
.catch(() => setIsInvalid(true)),
|
||||||
, [form])
|
[form]
|
||||||
|
)
|
||||||
|
|
||||||
const onFormFinish = useCallback((formData) => invokeWebApiWrapperAsync(
|
const onFormFinish = useCallback(
|
||||||
|
(formData) =>
|
||||||
|
invokeWebApiWrapperAsync(
|
||||||
async () => {
|
async () => {
|
||||||
if (data)
|
console.log(formData)
|
||||||
await DailyReportService.update(idWell, data.reportDate, formData)
|
const payload = Object.fromEntries(names.map(([head, names]) => [head, Object.fromEntries(names.map((name) => [name, formdata[name]]))]))
|
||||||
else
|
if (data) await DailyReportService.update(idWell, data.head.reportDate, payload)
|
||||||
await DailyReportService.add(idWell, formData)
|
else await DailyReportService.add(idWell, payload)
|
||||||
onDone?.(formData)
|
onDone?.(formData)
|
||||||
form.resetFields()
|
form.resetFields()
|
||||||
},
|
},
|
||||||
setIsLoading,
|
setIsLoading,
|
||||||
'Не удалось сохранить суточный рапорт',
|
'Не удалось сохранить суточный рапорт',
|
||||||
'Сохранение суточного рапорта',
|
'Сохранение суточного рапорта'
|
||||||
), [data, onDone, idWell, form])
|
),
|
||||||
|
[data, onDone, idWell, form]
|
||||||
|
)
|
||||||
|
|
||||||
const onDateChange = useCallback((date) => invokeWebApiWrapperAsync(
|
const onDateChange = useCallback(
|
||||||
|
(date) =>
|
||||||
|
invokeWebApiWrapperAsync(
|
||||||
async () => {
|
async () => {
|
||||||
if (data) return
|
if (data) return
|
||||||
const newData = await DailyReportService.getOrGenerate(idWell, date.format('YYYY-MM-DD') + 'Z')
|
const newData = await DailyReportService.getOrGenerate(idWell, date.format('YYYY-MM-DD') + 'Z')
|
||||||
@ -180,8 +299,10 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel, checkIsDate
|
|||||||
},
|
},
|
||||||
setIsLoading,
|
setIsLoading,
|
||||||
(e) => `Не удалось загрузить автозаполняемые данные для нового рапорта: ${e}`,
|
(e) => `Не удалось загрузить автозаполняемые данные для нового рапорта: ${e}`,
|
||||||
'Получение автозаполняемых данных суточного рапорта',
|
'Получение автозаполняемых данных суточного рапорта'
|
||||||
), [idWell, data, setFields, checkIsDateBusy])
|
),
|
||||||
|
[idWell, data, setFields, checkIsDateBusy]
|
||||||
|
)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal
|
<Modal
|
||||||
@ -190,9 +311,14 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel, checkIsDate
|
|||||||
visible={visible}
|
visible={visible}
|
||||||
onCancel={onCancel}
|
onCancel={onCancel}
|
||||||
okText={'Сохранить'}
|
okText={'Сохранить'}
|
||||||
title={data ?
|
title={
|
||||||
<>Суточная сводка бурения скважины № {data?.wellName} куст № {data?.clusterName}</> :
|
data ? (
|
||||||
|
<>
|
||||||
|
Суточная сводка бурения скважины № {data?.wellName} куст № {data?.clusterName}
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
<>Новая cуточная сводка бурения скважины</>
|
<>Новая cуточная сводка бурения скважины</>
|
||||||
|
)
|
||||||
}
|
}
|
||||||
onOk={form.submit}
|
onOk={form.submit}
|
||||||
okButtonProps={{
|
okButtonProps={{
|
||||||
@ -201,209 +327,8 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel, checkIsDate
|
|||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<LoaderPortal show={isLoading}>
|
<LoaderPortal show={isLoading}>
|
||||||
<Form
|
<Form form={form} onFinish={onFormFinish} onChange={onFormChange}>
|
||||||
form={form}
|
<Item name={'reportDate'} label={'Дата рапорта'} rules={[{ required: true }]}>
|
||||||
onFinish={onFormFinish}
|
|
||||||
onChange={onFormChange}
|
|
||||||
|
|
||||||
>
|
|
||||||
|
|
||||||
<Tabs defaultActiveKey="1" onChange={onChange}>
|
|
||||||
<TabPane tab="Заголовок" key="1">
|
|
||||||
<div>Имя скважины:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Имя кластера:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Заказчик:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Подрядчик:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Дата рапорта:</div>
|
|
||||||
<DatePicker
|
|
||||||
disabled={!!data}
|
|
||||||
format={'DD.MM.YYYY'}
|
|
||||||
onChange={onDateChange}
|
|
||||||
disabledDate={checkIsDateBusy}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Глубина забоя на дату начала интервала:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Глубина забоя на дату окончания интервала:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Глубина забоя по стволу на окончание отчетного периода:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Глубина забоя по вертикали на дату окончания отчетного периода:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Зенитный угол на дату окончания отчетного периода:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Азимутальный угол на дату окончания отчетного периода:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>ФИО бурильщиков:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>ФИО бурильщиков:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Время работы АПД:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Время работы спин мастер:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Время работы torqueMaster:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Количество метров пробуренных с включенным АПД:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Количество метров пробуренных с включенным Спин мастер:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Количество метров пробуренных с включенным torqueMaster:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}
|
|
||||||
/>
|
|
||||||
<Divider />
|
|
||||||
<div>Количество запусков МСЕ:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}
|
|
||||||
/>
|
|
||||||
</TabPane>
|
|
||||||
<TabPane tab="КНБК" key="2">
|
|
||||||
<div>КНБК описание:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/><Divider /><div>Бурение с наращиваниями в инт. 2195-2763м. Время начала:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/><Divider /><div>Бурение с наращиваниями в инт. 2195-2763м. Время окончания:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/><Divider /><div>Промывка. Время начала:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/><Divider /><div>Промывка. Время окончания:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/><Divider /><div>Подьем КНБК. Время начала:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/><Divider /><div>Подьем КНБК. Время окончания:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/><Divider /><div>Спуск КНБК. Время начала:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/><Divider /><div>Бурение с наращиваниями в инт. 2763-2850м. Время начала:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/><Divider /><div>Бурение с наращиваниями в инт. 2763-2850м. Время окончания:</div>
|
|
||||||
<Input.TextArea rows={1}
|
|
||||||
/>
|
|
||||||
</TabPane>
|
|
||||||
<TabPane tab="Безметражные работы" key="3">
|
|
||||||
<div>Нормативное время на одну операцию по подготовке ствола скважины к наращиванию:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/>
|
|
||||||
<Divider /><div>Нормативное время на одну операцию по наращиванию:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/><Divider />
|
|
||||||
<Divider /><div>Фактическое время проработок при подготовке ствола скважины к наращиванию.:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/><Divider />
|
|
||||||
<div>Фактическое время наращиваний:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/>
|
|
||||||
</TabPane>
|
|
||||||
<TabPane tab="Баланс времени" key="4">
|
|
||||||
<div>Бурение:</div>
|
|
||||||
<Input.TextArea rows={1}/>
|
|
||||||
<Divider /><div>Промывка:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<Divider /><div>Наращивание:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>Проработка:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>Расширка:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>Ремонт:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>КНБК:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>СПО:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>ПЗР:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>ПВО:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>ПГР:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>ГИС:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>ОЗЦ:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>Тех.работы:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>Снятие замера:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>Цементирование:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>Простой:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
<div>НПВ:</div>
|
|
||||||
<Input.TextArea rows={1}/><Divider />
|
|
||||||
</TabPane>
|
|
||||||
<TabPane tab="САУБ" key="5">
|
|
||||||
<div>Режимы бурения на роторе:</div>
|
|
||||||
<Input.TextArea rows={1}/>
|
|
||||||
<Divider /><div>Режимы бурения на слайде:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/>
|
|
||||||
<Divider /><div>Количество метров пробуренных в роторе за отчетный период:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/><Divider />
|
|
||||||
<div>Количество часов бурения в роторе за отчетный период:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/><Divider />
|
|
||||||
<div>Средний диф. перепад в роторе за отчетный период:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/><Divider />
|
|
||||||
<div>Количество метров пробуренных в слайде за отчетный период:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/><Divider />
|
|
||||||
<div>Время бурения в роторе за отчетный период:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/><Divider />
|
|
||||||
<div>Средний диф. перепад в слайде за отчетный период:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/><Divider />
|
|
||||||
<div>Плановая МСП за секцию:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/><Divider />
|
|
||||||
<div>Общее время бурения за секцию:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/><Divider />
|
|
||||||
<div>Общая проходка за секцию:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/><Divider />
|
|
||||||
<div>Количество наращиваний за отчетный период:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/><Divider />
|
|
||||||
<div>Отклонение относительно ГГД:</div>
|
|
||||||
<InputNumber style={{ width: '100%' }}/><Divider />
|
|
||||||
<div>Указываются все причины, которые влияют на снижение МСП.:</div>
|
|
||||||
<Input.TextArea rows={1}/>
|
|
||||||
</TabPane>
|
|
||||||
<TabPane tab="Подписи" key="6">
|
|
||||||
<div>ФИО Мастера буровой:</div>
|
|
||||||
<Input.TextArea rows={1}/>
|
|
||||||
<Divider /><div>ФИО супервайзера:</div>
|
|
||||||
<Input.TextArea rows={1}/>
|
|
||||||
</TabPane>
|
|
||||||
</Tabs>
|
|
||||||
|
|
||||||
{/* <Item name={'reportDate'} label={'Дата рапорта'} rules={[{ required: true }]}>
|
|
||||||
<DatePicker
|
<DatePicker
|
||||||
disabled={!!data}
|
disabled={!!data}
|
||||||
format={'DD.MM.YYYY'}
|
format={'DD.MM.YYYY'}
|
||||||
@ -411,10 +336,30 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel, checkIsDate
|
|||||||
disabledDate={checkIsDateBusy}
|
disabledDate={checkIsDateBusy}
|
||||||
/>
|
/>
|
||||||
</Item>
|
</Item>
|
||||||
<Divider />
|
<Tabs defaultActiveKey='1'>
|
||||||
<Space direction={'vertical'} size={'middle'} style={{ width: '100%' }}>
|
<TabPane tab='Заголовок' key='head' forceRender>
|
||||||
<Item name={'customer'} label={'Заказчк'}><Input /></Item>
|
<Descriptions bordered size={'small'} column={1}>
|
||||||
<Item name={'contractor'} label={'Подрядчик'}><Input /></Item>
|
<Descriptions.Item label={'Название скважины'}>
|
||||||
|
<Item name={'wellName'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Название куста'}>
|
||||||
|
<Item name={'clusterName'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Заказчик'}>
|
||||||
|
<Item name={'customer'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Подрядчик'}>
|
||||||
|
<Item name={'contractor'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
</Descriptions>
|
||||||
<Table
|
<Table
|
||||||
bordered
|
bordered
|
||||||
size={'small'}
|
size={'small'}
|
||||||
@ -422,8 +367,19 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel, checkIsDate
|
|||||||
dataSource={[{ key: '', disabled: !!data, onChange: onDateChange, checkIsDateBusy }]}
|
dataSource={[{ key: '', disabled: !!data, onChange: onDateChange, checkIsDateBusy }]}
|
||||||
pagination={false}
|
pagination={false}
|
||||||
/>
|
/>
|
||||||
<Item label={'Бурильщик 1 смена'} name={'firstDriller'}><Input /></Item>
|
<Table
|
||||||
<Item label={'Бурильщик 2 смена'} name={'secondDriller'}><Input /></Item>
|
bordered
|
||||||
|
size={'small'}
|
||||||
|
columns={table12Columns}
|
||||||
|
dataSource={table12Data}
|
||||||
|
pagination={false}
|
||||||
|
/>
|
||||||
|
<Item label={'Бурильщик 1 смена'} name={'firstDriller'}>
|
||||||
|
<Input />
|
||||||
|
</Item>
|
||||||
|
<Item label={'Бурильщик 2 смена'} name={'secondDriller'}>
|
||||||
|
<Input />
|
||||||
|
</Item>
|
||||||
|
|
||||||
<Table
|
<Table
|
||||||
bordered
|
bordered
|
||||||
@ -433,34 +389,172 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel, checkIsDate
|
|||||||
summary={table2Summary}
|
summary={table2Summary}
|
||||||
pagination={false}
|
pagination={false}
|
||||||
/>
|
/>
|
||||||
|
</TabPane>
|
||||||
<Item name={'bhaDescription'} label={'Описание КНБК'}>
|
<TabPane tab='КНБК' key='bha' forceRender>
|
||||||
<Input.TextArea rows={4} />
|
<Table
|
||||||
</Item>
|
bordered
|
||||||
|
size={'small'}
|
||||||
<Table bordered size={'small'} columns={table6Columns} dataSource={table6Data} pagination={false} summary={table6Summary} />
|
columns={table10Columns}
|
||||||
|
dataSource={table10Data}
|
||||||
<Descriptions column={1} size={'small'} bordered>
|
pagination={false}
|
||||||
<Descriptions.Item label={'Бурение в роторе:'}>
|
/>
|
||||||
<Item name={'rotorDrillingModes'}>
|
<Descriptions bordered size={'small'} column={1}>
|
||||||
<Select mode={'tags'} style={{ width: '100%' }} />
|
<Descriptions.Item label={'Бурение с наращиваниями в инт. 2763-2850м. Время начала'}>
|
||||||
|
<Item name={'extensionDrillingTwoBegin'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
</Item>
|
</Item>
|
||||||
</Descriptions.Item>
|
</Descriptions.Item>
|
||||||
<Descriptions.Item label={'Бурение в слайде:'}>
|
<Descriptions.Item label={'Бурение с наращиваниями в инт. 2763-2850м. Время окончания'}>
|
||||||
<Item name={'slideDrillingModes'}>
|
<Item name={'extensionDrillingTwoFinish'}>
|
||||||
<Select mode={'tags'} style={{ width: '100%' }} />
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'КНБК описание'}>
|
||||||
|
<Item name={'bhaDescription'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
</Item>
|
</Item>
|
||||||
</Descriptions.Item>
|
</Descriptions.Item>
|
||||||
</Descriptions>
|
</Descriptions>
|
||||||
|
<Table
|
||||||
<Table bordered size={'small'} columns={table3Columns} dataSource={table3Data} pagination={false} />
|
bordered
|
||||||
<Table bordered size={'small'} columns={table4Columns} dataSource={table4Data} pagination={false} />
|
size={'small'}
|
||||||
|
columns={table11Columns}
|
||||||
<Item label={'Плановая мех скорость'} name={'sectionROPPlan'}>
|
dataSource={table11Data}
|
||||||
<InputNumber style={{ width: '100%' }}/>
|
pagination={false}
|
||||||
|
/>
|
||||||
|
</TabPane>
|
||||||
|
<TabPane tab='Безметражные работы' key='noDrilling' forceRender>
|
||||||
|
<Table
|
||||||
|
bordered
|
||||||
|
size={'small'}
|
||||||
|
columns={table6Columns}
|
||||||
|
dataSource={table6Data}
|
||||||
|
pagination={false}
|
||||||
|
/>
|
||||||
|
</TabPane>
|
||||||
|
<TabPane tab='Баланс времени' key='4' forceRender>
|
||||||
|
<Descriptions bordered size={'small'} column={1}>
|
||||||
|
<Descriptions.Item label={'Бурение'}>
|
||||||
|
<Item name={'drilling'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
</Item>
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Время бурения за секцию'}>
|
||||||
|
<Item name={'sectionDrillingTimeTotal'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Промывка'}>
|
||||||
|
<Item name={'flushing'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Наращивание'}>
|
||||||
|
<Item name={'building'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Проработка'}>
|
||||||
|
<Item name={'elaboration'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Расширка'}>
|
||||||
|
<Item name={'extension'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Ремонт'}>
|
||||||
|
<Item name={'repair'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'КНБК'}>
|
||||||
|
<Item name={'knbk'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'СПО'}>
|
||||||
|
<Item name={'spo'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'ПЗР'}>
|
||||||
|
<Item name={'pzr'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'ПВО'}>
|
||||||
|
<Item name={'pvo'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'ПГР'}>
|
||||||
|
<Item name={'pgr'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'ГИС'}>
|
||||||
|
<Item name={'gis'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'ОЗЦ'}>
|
||||||
|
<Item name={'ozc'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Тех. работы'}>
|
||||||
|
<Item name={'engineeringWorks'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Снаятие замера'}>
|
||||||
|
<Item name={'takingMeasure'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Цементирование'}>
|
||||||
|
<Item name={'cementing'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Простой'}>
|
||||||
|
<Item name={'simple'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'НПВ'}>
|
||||||
|
<Item name={'npv'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
</Descriptions>
|
||||||
|
</TabPane>
|
||||||
|
<TabPane tab='блок Сауб' key='saub' forceRender>
|
||||||
|
<Divider />
|
||||||
|
|
||||||
|
<Table
|
||||||
|
bordered
|
||||||
|
size={'small'}
|
||||||
|
columns={table3Columns}
|
||||||
|
dataSource={table3Data}
|
||||||
|
pagination={false}
|
||||||
|
/>
|
||||||
|
<Table
|
||||||
|
bordered
|
||||||
|
size={'small'}
|
||||||
|
columns={table4Columns}
|
||||||
|
dataSource={table4Data}
|
||||||
|
pagination={false}
|
||||||
|
/>
|
||||||
|
|
||||||
<Descriptions bordered size={'small'} column={1}>
|
<Descriptions bordered size={'small'} column={1}>
|
||||||
|
<Descriptions.Item label={'Плановая МСП за секцию'}>
|
||||||
|
<Item name={'sectionROPPlan'}>
|
||||||
|
<InputNumber style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
<Descriptions.Item label={'Время бурения за секцию'}>
|
<Descriptions.Item label={'Время бурения за секцию'}>
|
||||||
<Item name={'sectionDrillingTimeTotal'}>
|
<Item name={'sectionDrillingTimeTotal'}>
|
||||||
<InputNumber style={{ width: '100%' }} />
|
<InputNumber style={{ width: '100%' }} />
|
||||||
@ -487,9 +581,54 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel, checkIsDate
|
|||||||
<Input.TextArea rows={4} />
|
<Input.TextArea rows={4} />
|
||||||
</Item>
|
</Item>
|
||||||
|
|
||||||
<Item label={'Мастер буровой'} name={'drillingMaster'}><Input /></Item>
|
<Descriptions bordered size={'small'} column={1}>
|
||||||
<Item label={'Супервайзер'} name={'supervisor'}><Input /></Item>
|
<Descriptions.Item label={'МСП'}>
|
||||||
</Space> */}
|
<Item name={'mspSection'}>
|
||||||
|
<Input />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Сокращение времени бурения за секцию, ч'}>
|
||||||
|
<Item name={'reductionTimeDrilling'}>
|
||||||
|
<Input />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Ротор/Слайд %'}>
|
||||||
|
<Item name={'rotorSlidePercent'}>
|
||||||
|
<Input />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Режимы бурения в роторе'}>
|
||||||
|
<Item name={'rotorDrillingModes'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Режимы бурения в слайде'}>
|
||||||
|
<Item name={'slideDrillingModes'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Увеличение мех скорости за секцию %'}>
|
||||||
|
<Item name={'increaseSpeedSection'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
<Descriptions.Item label={'Увеличение мех скорости за сутки %'}>
|
||||||
|
<Item name={'increaseSpeedDay'}>
|
||||||
|
<Input style={{ width: '100%' }} />
|
||||||
|
</Item>
|
||||||
|
</Descriptions.Item>
|
||||||
|
</Descriptions>
|
||||||
|
</TabPane>
|
||||||
|
<TabPane tab='Подписи' key='sign' forceRender>
|
||||||
|
<Item label={'ФИО Мастера буровой'} name={'drillingMaster'}>
|
||||||
|
<Input />
|
||||||
|
</Item>
|
||||||
|
<Divider />
|
||||||
|
<Item label={'ФИО супервайзера'} name={'supervisor'}>
|
||||||
|
<Input />
|
||||||
|
</Item>
|
||||||
|
</TabPane>
|
||||||
|
</Tabs>
|
||||||
</Form>
|
</Form>
|
||||||
</LoaderPortal>
|
</LoaderPortal>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
Loading…
Reference in New Issue
Block a user