diff --git a/components/form/admin/logic.block.tsx b/components/form/admin/logic.block.tsx index 95d3eb5..d3ceb91 100644 --- a/components/form/admin/logic.block.tsx +++ b/components/form/admin/logic.block.tsx @@ -1,6 +1,7 @@ import { DeleteOutlined } from '@ant-design/icons' import { Alert, Button, Checkbox, Form, Mentions, Popconfirm, Select } from 'antd' import { FormInstance } from 'antd/lib/form' +import FormItemContext from 'rc-field-form/lib/FieldContext' import { FieldData } from 'rc-field-form/lib/interface' import React from 'react' import { useTranslation } from 'react-i18next' @@ -45,6 +46,8 @@ export const LogicBlock: React.FC = (props) => { {(form) => { + const context = React.useContext(FormItemContext) + try { const defaults = {} @@ -57,7 +60,7 @@ export const LogicBlock: React.FC = (props) => { }) const result = evaluator( - form.getFieldValue([...form.prefixName, field.name as string, 'formula']), + form.getFieldValue([...context.prefixName, field.name as string, 'formula']), defaults ) @@ -73,7 +76,13 @@ export const LogicBlock: React.FC = (props) => { /> ) } catch (e) { - return + return ( + + ) } }} @@ -100,80 +109,100 @@ export const LogicBlock: React.FC = (props) => { /> - {(form) => ( - + ) + }} - {(form) => ( - - )} + {(form) => { + const context = React.useContext(FormItemContext) + + return ( + + ) + }} - {(form) => ( - - )} + {(form) => { + const context = React.useContext(FormItemContext) + + return ( + + ) + }} - {(form) => ( - - )} + {(form) => { + const context = React.useContext(FormItemContext) + + return ( + + ) + }} diff --git a/components/form/admin/types/slider.type.tsx b/components/form/admin/types/slider.type.tsx index 78560a7..b44cb94 100644 --- a/components/form/admin/types/slider.type.tsx +++ b/components/form/admin/types/slider.type.tsx @@ -1,4 +1,5 @@ import { Form, InputNumber, Slider } from 'antd' +import FormItemContext from 'rc-field-form/lib/FieldContext' import React from 'react' import { useTranslation } from 'react-i18next' import { AdminFieldTypeProps } from './type.props' @@ -10,11 +11,11 @@ export const SliderType: React.FC = (props) => {
{(form) => { + const context = React.useContext(FormItemContext) + const getValue = (name, defaultValue: number): number => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - const current = form.getFieldValue([ - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - ...form['prefixName'], + const current: unknown = form.getFieldValue([ + ...context.prefixName, props.field.name as string, 'optionKeys', name, @@ -24,7 +25,7 @@ export const SliderType: React.FC = (props) => { return defaultValue } - return parseFloat(current) + return parseFloat(current as string) } const max = getValue('max', 100)