Skip to content

Commit 5452491

Browse files
committed
fix(lib): 修复antd表单不实时校验
1 parent 5c06294 commit 5452491

File tree

2 files changed

+27
-5
lines changed

2 files changed

+27
-5
lines changed

packages/lib/vue3/vue3-core/src/components/Widget.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,24 @@ export default {
329329
}
330330
}
331331
},
332-
...otherAttrs
332+
...otherAttrs ? (() => Object.keys(otherAttrs).reduce((pre, k) => {
333+
pre[k] = otherAttrs[k];
334+
335+
// 保证ui配置同名方法 ui方法先执行
336+
[
337+
props.widgetAttrs[k],
338+
props.uiProps[k]
339+
].forEach((uiConfFn) => {
340+
if (uiConfFn && typeof uiConfFn === 'function') {
341+
pre[k] = (...args) => {
342+
uiConfFn(...args);
343+
pre[k](...args);
344+
};
345+
}
346+
});
347+
348+
return pre;
349+
}, {}))() : {}
333350
},
334351
{
335352
...(props.renderScopedSlots ? (

packages/lib/vue3/vue3-form-ant/src/index.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,17 @@ const globalOptions = {
9797
// @blur="() => {$refs.name.onFieldBlur()}"
9898
// @change="() => {$refs.name.onFieldChange()}"
9999
return slots.default.call(this, {
100-
onBlur: (event) => {
101-
const prevDescription = event.target.previousElementSibling;
102-
// 存在 description,需要 hack 事件
103-
if (prevDescription && prevDescription.classList.contains('genFromWidget_des')) {
100+
onBlur: () => {
101+
if (formItemRef.value.$el.querySelector('.genFromWidget_des')) {
102+
// 存在 description,需要手动触发校验事件
104103
formItemRef.value.onFieldBlur();
105104
}
105+
},
106+
onChange: () => {
107+
if (formItemRef.value.$el.querySelector('.genFromWidget_des')) {
108+
// 存在 description,需要手动触发校验事件
109+
formItemRef.value.onFieldChange();
110+
}
106111
}
107112
});
108113
}

0 commit comments

Comments
 (0)