forked from ddrilling/asb_cloud_front
* Добавлена подгрузка автозаполняемых значений
* Исправлена ошибка с отсутствием 'key'
This commit is contained in:
parent
f9ddf172f5
commit
148dd2e96c
@ -16,9 +16,9 @@ const Item = memo(({ style, ...other }) => <RawItem style={{ margin: 0, ...style
|
||||
|
||||
const table1Columns = [
|
||||
makeGroupColumn('Отчётный период', [
|
||||
makeColumn('От (дата, время)', 'dateStart', { width: 200, render: (disabled) => (
|
||||
makeColumn('От (дата, время)', 'dateStart', { width: 200, render: (_, { disabled, onChange }) => (
|
||||
<Item name={'reportDate'}>
|
||||
<DatePicker disabled={disabled} format={'DD.MM.YYYY'} style={{ width: '100%' }} />
|
||||
<DatePicker disabled={disabled} format={'DD.MM.YYYY'} style={{ width: '100%' }} onChange={onChange} />
|
||||
</Item>
|
||||
)}),
|
||||
]),
|
||||
@ -52,9 +52,9 @@ const table2Columns = [
|
||||
]
|
||||
|
||||
const table2Data = [
|
||||
{ label: 'АПД (автоматическая подача долота), ч/м:', hours: 'workTimeSAUB', meters: 'penetrationSAUB' },
|
||||
{ label: 'Спин Мастер (осцилляция), ч/м:', hours: 'workTimeSpinMaster', meters: 'penetrationSpinMaster' },
|
||||
{ label: 'Торк Мастер (демпфирование), ч/м:', hours: 'workTimeTorkMaster', meters: 'penetrationTorkMaster' },
|
||||
{ key: '1', label: 'АПД (автоматическая подача долота), ч/м:', hours: 'workTimeSAUB', meters: 'penetrationSAUB' },
|
||||
{ key: '2', label: 'Спин Мастер (осцилляция), ч/м:', hours: 'workTimeSpinMaster', meters: 'penetrationSpinMaster' },
|
||||
{ key: '3', label: 'Торк Мастер (демпфирование), ч/м:', hours: 'workTimeTorkMaster', meters: 'penetrationTorkMaster' },
|
||||
]
|
||||
|
||||
const table3Columns = [
|
||||
@ -65,7 +65,7 @@ const table3Columns = [
|
||||
]),
|
||||
]
|
||||
|
||||
const table3Data = [{ sinking: 'penetrationInRotor', hours: 'numberDrillingHours', pressure: 'avgDiffDropRotor' }]
|
||||
const table3Data = [{ key: '', sinking: 'penetrationInRotor', hours: 'numberDrillingHours', pressure: 'avgDiffDropRotor' }]
|
||||
|
||||
const table4Columns = [
|
||||
makeGroupColumn('Бурение в слайде (за отчётный период) с использованием САУБ-1', [
|
||||
@ -75,7 +75,7 @@ const table4Columns = [
|
||||
]),
|
||||
]
|
||||
|
||||
const table4Data = [{ sinking: 'penetrationInSlide', hours: 'drillingTimeInRotor', pressure: 'avgDiffPressureSlide' }]
|
||||
const table4Data = [{ key: '', sinking: 'penetrationInSlide', hours: 'drillingTimeInRotor', pressure: 'avgDiffPressureSlide' }]
|
||||
|
||||
const table6Columns = [
|
||||
makeGroupColumn('БЕЗМЕТРАЖНЫЕ РАБОТЫ', [
|
||||
@ -87,11 +87,13 @@ const table6Columns = [
|
||||
]
|
||||
|
||||
const table6Data = [{
|
||||
key: '1',
|
||||
l_label: 'Норматив на одну операцию, (мин):',
|
||||
r_label: 'Норматив на одну операцию, (мин):',
|
||||
l_value: 'standardTimeBarrelPreparation',
|
||||
r_value: 'standardTimeExtension'
|
||||
}, {
|
||||
key: '2',
|
||||
l_label: 'Проработка при бур, факт (ч):',
|
||||
r_label: 'Наращивание, факт (ч):',
|
||||
l_value: 'actualTimeBarrelPreparation',
|
||||
@ -127,12 +129,14 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel }) => {
|
||||
|
||||
const idWell = useContext(IdWellContext)
|
||||
|
||||
useEffect(() => form.setFieldsValue(data ? {
|
||||
const setFields = useCallback((data) => form.setFieldsValue(data ? {
|
||||
...data,
|
||||
rotorDrillingModes: Array.isArray(data.rotorDrillingModes) ? data.rotorDrillingModes ?? [] : [],
|
||||
slideDrillingModes: Array.isArray(data.slideDrillingModes) ? data.slideDrillingModes ?? [] : [],
|
||||
reportDate: moment.utc(data.reportDate).local(),
|
||||
} : {}), [data, form])
|
||||
} : {}), [form])
|
||||
|
||||
useEffect(() => setFields(data), [data, setFields])
|
||||
|
||||
const onFormChange = useCallback(async () => await form.validateFields()
|
||||
.then(() => setIsInvalid(false))
|
||||
@ -152,6 +156,17 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel }) => {
|
||||
'Сохранение суточного рапорта',
|
||||
), [data, onDone, idWell])
|
||||
|
||||
const onDateChange = useCallback((date) => invokeWebApiWrapperAsync(
|
||||
async () => {
|
||||
if (data) return
|
||||
const newData = await DailyReportService.getOrGenerate(idWell, date.toISOString())
|
||||
setFields(newData)
|
||||
},
|
||||
setIsLoading,
|
||||
'Не удалось загрузить автозаполняемые данные для нового рапорта',
|
||||
'Получение автозаполняемых данных суточного рапорта',
|
||||
))
|
||||
|
||||
return (
|
||||
<Modal
|
||||
centered
|
||||
@ -176,7 +191,7 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel }) => {
|
||||
onChange={onFormChange}
|
||||
>
|
||||
<Item name={'reportDate'} label={'Дата рапорта'} rules={[{ required: true }]}>
|
||||
<DatePicker disabled={!!data} format={'DD.MM.YYYY'}/>
|
||||
<DatePicker disabled={!!data} format={'DD.MM.YYYY'} onChange={onDateChange} />
|
||||
</Item>
|
||||
<Divider />
|
||||
<Space direction={'vertical'} size={'middle'} style={{ width: '100%' }}>
|
||||
@ -186,7 +201,7 @@ export const ReportEditor = memo(({ visible, data, onDone, onCancel }) => {
|
||||
bordered
|
||||
size={'small'}
|
||||
columns={table1Columns}
|
||||
dataSource={[{ dateStart: !!data }]}
|
||||
dataSource={[{ key: '', disabled: !!data, onChange: onDateChange }]}
|
||||
pagination={false}
|
||||
/>
|
||||
<Item label={'Бурильщик 1 смена'} name={'firstDriller'}><Input /></Item>
|
||||
|
Loading…
Reference in New Issue
Block a user