diff --git a/src/components/form-designer/designer.js b/src/components/form-designer/designer.js index 968faee..c9e29c6 100644 --- a/src/components/form-designer/designer.js +++ b/src/components/form-designer/designer.js @@ -91,6 +91,7 @@ export function createDesigner(vueInstance) { let modifiedFlag = false if (!!formJson && !!formJson.widgetList) { + this.formWidget.clearWidgetRefList() this.widgetList = formJson.widgetList modifiedFlag = true } diff --git a/src/components/form-designer/form-widget/container-widget/containerMixin.js b/src/components/form-designer/form-widget/container-widget/containerMixin.js index d4c75e7..2426325 100644 --- a/src/components/form-designer/form-widget/container-widget/containerMixin.js +++ b/src/components/form-designer/form-widget/container-widget/containerMixin.js @@ -61,6 +61,7 @@ export default { removeWidget() { if (!!this.parentList) { + const widgetRefName = this.designer.selectedWidgetName let nextSelected = null if (this.parentList.length === 1) { if (!!this.parentWidget) { @@ -74,10 +75,9 @@ export default { this.$nextTick(() => { this.parentList.splice(this.indexOfParentList, 1) - //if (!!nextSelected) { this.designer.setSelected(nextSelected) - //} + this.designer.formWidget.deleteWidgetRef(widgetRefName) //删除组件ref!!! this.designer.emitHistoryChange() }) } diff --git a/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue b/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue index d44c5aa..9b4ec8d 100644 --- a/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue +++ b/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue @@ -175,6 +175,7 @@ removeFieldWidget() { if (!!this.parentList) { + const fieldRefName = this.designer.selectedWidgetName let nextSelected = null if (this.parentList.length === 1) { if (!!this.parentWidget) { @@ -188,10 +189,9 @@ this.$nextTick(() => { this.parentList.splice(this.indexOfParentList, 1) - //if (!!nextSelected) { this.designer.setSelected(nextSelected) - //} + this.designer.formWidget.deleteWidgetRef(fieldRefName) //删除组件ref!!! this.designer.emitHistoryChange() }) } diff --git a/src/components/form-designer/form-widget/field-widget/static-content-wrapper.vue b/src/components/form-designer/form-widget/field-widget/static-content-wrapper.vue index a8c761c..9aaf3da 100644 --- a/src/components/form-designer/form-widget/field-widget/static-content-wrapper.vue +++ b/src/components/form-designer/form-widget/field-widget/static-content-wrapper.vue @@ -99,6 +99,7 @@ removeFieldWidget() { if (!!this.parentList) { + const fieldRefName = this.designer.selectedWidgetName let nextSelected = null if (this.parentList.length === 1) { if (!!this.parentWidget) { @@ -116,6 +117,7 @@ this.designer.setSelected(nextSelected) //} + this.designer.formWidget.deleteWidgetRef(fieldRefName) //删除组件ref!!! this.designer.emitHistoryChange() }) } diff --git a/src/components/form-designer/form-widget/index.vue b/src/components/form-designer/form-widget/index.vue index b42be0b..90ecafb 100644 --- a/src/components/form-designer/form-widget/index.vue +++ b/src/components/form-designer/form-widget/index.vue @@ -183,6 +183,10 @@ }) }, + deleteWidgetRef(widgetRefName) { + delete this.widgetRefList[widgetRefName] + }, + } } diff --git a/src/components/form-designer/index.vue b/src/components/form-designer/index.vue index de359ef..8ee68d3 100644 --- a/src/components/form-designer/index.vue +++ b/src/components/form-designer/index.vue @@ -287,7 +287,6 @@ } if (modifiedFlag) { - this.$refs.formRef.clearWidgetRefList() this.designer.emitHistoryChange() } } @@ -302,7 +301,6 @@ clearDesigner() { this.$refs.toolbarRef.clearFormWidget() - this.$refs.formRef.clearWidgetRefList() }, diff --git a/src/components/form-designer/toolbar-panel/index.vue b/src/components/form-designer/toolbar-panel/index.vue index 057af0d..42b93a2 100644 --- a/src/components/form-designer/toolbar-panel/index.vue +++ b/src/components/form-designer/toolbar-panel/index.vue @@ -424,6 +424,7 @@ clearFormWidget() { this.designer.clearDesigner() + this.designer.formWidget.clearWidgetRefList() }, previewForm() { diff --git a/src/utils/util.js b/src/utils/util.js index 9f6eba4..1f10847 100644 --- a/src/utils/util.js +++ b/src/utils/util.js @@ -352,7 +352,7 @@ export function getDefaultFormConfig() { size: '', labelAlign: 'label-left-align', cssCode: '', - customClass: '', + customClass: [], functions: '', layoutType: 'PC',