diff --git a/src/components/CrudTable/components/GenerateFormDialog.vue b/src/components/CrudTable/components/GenerateFormDialog.vue
index fbc640b..cf4210c 100644
--- a/src/components/CrudTable/components/GenerateFormDialog.vue
+++ b/src/components/CrudTable/components/GenerateFormDialog.vue
@@ -17,7 +17,7 @@
@@ -75,7 +75,7 @@ export default {
},
tableName: String,
dialogStatus: String,
- formValue: {
+ formValues: {
type: Object,
default: () => ({}),
},
@@ -110,32 +110,37 @@ export default {
});
},
},
- created() {
- // 如果select,radio,checkbox等组件为多选情况 后台返回逗号分隔字符串 => 数组
- for (const row of this.jsonData.list) {
- if (row.columns) {
- for (const column of row.columns) {
- const { list } = column;
- if (Array.isArray(list)) {
- list.forEach((citem) => {
- if (citem.options.multiple) {
- if (!Array.isArray(this.formValues[citem.model])
- && this.formValues[citem.model]) {
- this.formValues[citem.model] = this.formValues[citem.model].split(',');
- }
+
+ watch: {
+ formValues: {
+ deep: true,
+ immediate: true,
+ handler() {
+ // 如果select,radio,checkbox等组件为多选情况 后台返回逗号分隔字符串 => 数组
+ for (const row of this.jsonData.list) {
+ if (row.columns) {
+ for (const column of row.columns) {
+ const { list } = column;
+ if (Array.isArray(list)) {
+ list.forEach((citem) => {
+ if (citem.options.multiple) {
+ if (!Array.isArray(this.formValues[citem.model])
+ && this.formValues[citem.model]) {
+ this.formValues[citem.model] = this.formValues[citem.model].split(',');
+ }
+ }
+ });
}
- });
+ }
+ } else if (row.options.multiple) {
+ if (!Array.isArray(this.formValues[row.model])
+ && this.formValues[row.model]) {
+ this.formValues[row.model] = this.formValues[row.model].split(',');
+ }
}
}
- } else if (row.options.multiple) {
- if (!Array.isArray(this.formValues[row.model])
- && this.formValues[row.model]) {
- this.formValues[row.model] = this.formValues[row.model].split(',');
- }
- }
- }
- },
- watch: {
+ },
+ },
dialogFormVisible(val) {
this.visible = val;
},
@@ -148,6 +153,7 @@ export default {
},
},
}
+