* Добавлена подгрузка автозаполняемых значений

* Исправлена ошибка с отсутствием 'key'
This commit is contained in:
goodmice 2022-04-19 19:26:35 +05:00
parent f9ddf172f5
commit 148dd2e96c

View File

@ -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>