diff --git a/packages/editor/src/fields/DataSourceFields.vue b/packages/editor/src/fields/DataSourceFields.vue
index b5f84884..b16ca1d9 100644
--- a/packages/editor/src/fields/DataSourceFields.vue
+++ b/packages/editor/src/fields/DataSourceFields.vue
@@ -3,6 +3,7 @@
@@ -17,14 +18,25 @@
:width="width"
@submit="fieldChange"
>
+
+
diff --git a/packages/editor/src/fields/DataSourceMocks.vue b/packages/editor/src/fields/DataSourceMocks.vue
index d9ed6764..d9c280ec 100644
--- a/packages/editor/src/fields/DataSourceMocks.vue
+++ b/packages/editor/src/fields/DataSourceMocks.vue
@@ -27,6 +27,7 @@ import { TMagicButton, tMagicMessageBox, TMagicSwitch } from '@tmagic/design';
import { type FieldProps, type FormConfig, type FormState, MFormDrawer } from '@tmagic/form';
import type { MockSchema } from '@tmagic/schema';
import { MagicTable } from '@tmagic/table';
+import { getDefaultValueFromFields } from '@tmagic/utils';
import { Services } from '@editor/type';
@@ -131,11 +132,7 @@ const columns = [
}),
listeners: (row: MockSchema, index: number) => ({
'update:modelValue': (v: boolean) => {
- formChangeHandler({
- ...row,
- enable: v,
- index,
- });
+ toggleEnable(row, v, index);
},
}),
},
@@ -168,7 +165,9 @@ const columns = [
];
const newHandler = () => {
- formValues.value = {};
+ formValues.value = {
+ data: getDefaultValueFromFields(props.model.fields || []),
+ };
drawerTitle.value = '新增Mock';
addDialog.value?.show();
};
@@ -184,4 +183,18 @@ const formChangeHandler = ({ index, ...value }: Record) => {
emit('change', props.model[props.name]);
};
+
+const toggleEnable = (row: MockSchema, enable: boolean, index: number) => {
+ if (enable) {
+ props.model[props.name].forEach((item: MockSchema) => {
+ item.enable = false;
+ });
+ }
+
+ formChangeHandler({
+ ...row,
+ enable,
+ index,
+ });
+};