diff --git a/components/apolloTable/component/Cell.tsx b/components/apolloTable/component/Cell.tsx index 0181afd82a77538848834b3e757db63319e98051..b0f3ad7ed87bbfb9c2931ad00e0baebe4c5cd363 100644 --- a/components/apolloTable/component/Cell.tsx +++ b/components/apolloTable/component/Cell.tsx @@ -48,6 +48,7 @@ const Cell = (props: CellProps) => { renderEditCell, cellRenderProps, readOnlyFlag, + columnAttrObj, } = columnConfig; const cellUnit = useRef(null); const [status, setStatus] = useState('detail'); @@ -94,22 +95,6 @@ const Cell = (props: CellProps) => { }; const changeValue = async (changedValue: any, optionValue: any) => { - // 校验必填项 - if (requiredFlag) { - if (!changedValue || changedValue.length === 0) { - message.error('该字段为必填项'); - resetEditStatus(); - return; - } - if (changedValue.length === 1) { - const data = changedValue[0]; - if (!data.value && !data.text && data.value !== 0) { - message.error('该字段为必填项'); - resetEditStatus(); - return; - } - } - } const extraData = FormHelper.changeTableData({ item: columnConfig, changedKey: columnName, @@ -367,6 +352,23 @@ const Cell = (props: CellProps) => { onChange={changeCellData} rowData={record} onEmitChange={(changedValue: any, optionValue: any, reset?: boolean) => { + // 校验必填项 + if (requiredFlag&&!changedValue) { + message.error('该字段为必填项'); + resetEditStatus(); + return; + } + // 校验规则 + if (columnAttrObj.rules) { + for (let i = 0; i < columnAttrObj.rules.length; i++) { + const rule = columnAttrObj.rules[i]; + if (rule.pattern && !rule.pattern.test(changedValue)) { + message.error(rule.message || '请按正确格式填写'); + resetEditStatus(); + return; + } + } + } const value = setFormat(editConfig, columnConfig, changedValue, optionValue); emitChangeCellData(value, optionValue, reset); }} diff --git a/components/apolloTable/editFormV3/index.tsx b/components/apolloTable/editFormV3/index.tsx index 6b6571c59ca406fbb3da3c210fd31a5d953d1849..f8961b262953e37bb542cac9f6111e3846776e2e 100644 --- a/components/apolloTable/editFormV3/index.tsx +++ b/components/apolloTable/editFormV3/index.tsx @@ -125,7 +125,6 @@ class FormWrap extends Component { value, renderEditForm, readOnlyFlag, - rules = [], validateFirst = true, validateTrigger = 'onChange', dynamicCellConfigDTO, @@ -196,7 +195,7 @@ class FormWrap extends Component { rules: [ { required: !!item.requiredFlag, message: '必填项不能为空' }, { validator: this.validateRequired.bind(this, item) }, - ...rules, + ...(item.columnAttrObj.rules || []), ], initialValue: getFormat(detailConfig, item, value), })(