feat: filter out IDs in sub-forms (#2025)
This commit is contained in:
parent
84e52448f5
commit
8d4123d8d6
@ -33,6 +33,20 @@ export const AssociationFieldProvider = observer(
|
|||||||
setLoading(false);
|
setLoading(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// 如果是表单模板数据,使用子表单和子表格组件时,过滤掉关系 ID
|
||||||
|
if (field.value && field.form['__template'] && ['Nester', 'SubTable'].includes(currentMode)) {
|
||||||
|
if (['belongsTo', 'hasOne'].includes(collectionField.type)) {
|
||||||
|
if (field.value?.[collectionField.targetKey]) {
|
||||||
|
delete field.value[collectionField.targetKey];
|
||||||
|
}
|
||||||
|
} else if (['belongsToMany', 'hasMany'].includes(collectionField.type)) {
|
||||||
|
if (Array.isArray(field.value)) {
|
||||||
|
field.value.forEach((v) => {
|
||||||
|
delete v[collectionField.targetKey];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (field.value !== null && field.value !== undefined) {
|
if (field.value !== null && field.value !== undefined) {
|
||||||
// Nester 子表单时,如果没数据初始化一个 [null] 的占位
|
// Nester 子表单时,如果没数据初始化一个 [null] 的占位
|
||||||
if (currentMode === 'Nester' && Array.isArray(field.value)) {
|
if (currentMode === 'Nester' && Array.isArray(field.value)) {
|
||||||
|
@ -81,6 +81,7 @@ export const Templates = ({ style = {}, form }) => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (enabled && defaultTemplate) {
|
if (enabled && defaultTemplate) {
|
||||||
|
form.__template = true;
|
||||||
fetchTemplateData(api, defaultTemplate, t)
|
fetchTemplateData(api, defaultTemplate, t)
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
if (form && data) {
|
if (form && data) {
|
||||||
@ -106,6 +107,7 @@ export const Templates = ({ style = {}, form }) => {
|
|||||||
if (form && data) {
|
if (form && data) {
|
||||||
// 切换之前先把之前的数据清空
|
// 切换之前先把之前的数据清空
|
||||||
form.reset();
|
form.reset();
|
||||||
|
form.__template = true;
|
||||||
|
|
||||||
forEach(data, (value, key) => {
|
forEach(data, (value, key) => {
|
||||||
if (value) {
|
if (value) {
|
||||||
|
Loading…
Reference in New Issue
Block a user