Skip to content

Commit ee67479

Browse files
committed
Fix bugs when clearing value
1 parent b2d0a7c commit ee67479

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

src/interface.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,9 @@ export default defineComponent({
103103
const expression = match.slice(2, -2).trim();
104104
return parseExpression(expression, values.value);
105105
});
106+
107+
errorMsg.value = null;
108+
106109
if (['integer', 'decimal', 'bigInteger'].includes(props.type)) {
107110
return parseInt(res) || 0;
108111
}

src/utils.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ function shouldUpdate(
2121
return false;
2222
}
2323

24-
for (const key of Object.keys(val)) {
24+
for (const key of Object.keys({ ...oldVal, ...val })) {
2525
if (
2626
key !== computedField &&
2727
checkFieldInTemplate(template, key) &&
@@ -74,10 +74,16 @@ export const useDeepValues = (
7474
return;
7575
}
7676

77+
for (const key of Object.keys(oldValObj)) {
78+
if (!(key in valObj)) {
79+
valObj[key] = null;
80+
}
81+
}
82+
7783
let relationalData: Record<string, any> = {};
78-
const pkFinal = values.value.id || pk;
84+
const pkFinal = valObj.id || pk;
7985

80-
for (const key of Object.keys(values.value)) {
86+
for (const key of Object.keys(valObj)) {
8187
const relation = relations.value.find((rel) => [rel.meta?.one_field, rel.meta?.many_field].includes(key));
8288

8389
if (!relation || !checkFieldInTemplate(template, key)) {
@@ -87,7 +93,7 @@ export const useDeepValues = (
8793
const isM2O = relation.collection === collection;
8894
const fieldName = isM2O ? relation.meta?.many_field : relation.meta?.one_field;
8995

90-
let fieldChanges = values.value[fieldName!] as IRelationUpdate ?? {
96+
let fieldChanges = valObj[fieldName!] as IRelationUpdate ?? {
9197
create: [],
9298
update: [],
9399
delete: [],
@@ -183,7 +189,7 @@ export const useDeepValues = (
183189
relationalData[key] = isM2O ? arrayOfData[0] : arrayOfData;
184190
}
185191

186-
finalValues.value = { ...values.value, ...relationalData };
192+
finalValues.value = { ...valObj, ...relationalData };
187193
},
188194
{
189195
deep: false,

0 commit comments

Comments
 (0)