diff --git a/packages/scheme/index.vue b/packages/scheme/index.vue
index 65404f2..bc4268a 100644
--- a/packages/scheme/index.vue
+++ b/packages/scheme/index.vue
@@ -109,7 +109,8 @@
:lock-scroll="false"
:close-on-click-modal="false"
@closed="onDialogClosed"
- v-bind="dialogProps"
+ @close="onDialogClose"
+ v-bind="_dialogProps"
>
@@ -179,9 +180,7 @@ const propsKeys = ['tableProps', 'filterProps', 'formProps', 'viewProps', 'dialo
propsKeys.forEach(key => {
propsMap[key] = {
type: Object,
- default: function() {
- return {};
- },
+ default: () => ({}),
};
});
const apiKeys = ['searchApi', 'submitApi', 'addApi', 'modifyApi', 'getApi', 'viewApi', 'deleteApi'];
@@ -228,6 +227,7 @@ export default {
dialogType: 'none',
dialogLoading: false,
dialogTitle: '',
+ dialogPropsHack: {},
currentPage: 1,
pageSize: 10,
total: 0,
@@ -355,6 +355,12 @@ export default {
}
return this.alias || this.zAlias || {};
},
+ _dialogProps() {
+ return {
+ ...this.dialogProps,
+ ...this.dialogPropsHack,
+ };
+ },
},
methods: {
get,
@@ -590,28 +596,33 @@ export default {
.catch(() => {});
},
// 打开弹出框
- openDialog(type, title) {
+ openDialog(type, title, config) {
this.dialogVisible = true;
this.dialogRender = true;
this.dialogType = type;
this.dialogTitle = title;
+ this.dialogPropsHack = config || {};
this.$emit('dialog-change', type);
},
// 关闭弹出框
closeDialog() {
this.dialogVisible = false;
- this.dialogRender = false;
- this.dialogType = 'none';
- this.$emit('dialog-change', 'none');
},
// 清空表单
clearEditForm() {
this.editForm = {};
this.$emit('update:formModel', {});
},
+ // 弹出框关闭
+ onDialogClose() {
+ this.dialogType = 'none';
+ this.dialogRender = false;
+ this.$emit('dialog-change', 'none');
+ },
// 弹出框关闭动画结束
onDialogClosed() {
this.clearEditForm();
+ this.dialogPropsHack = {};
},
// 分页-每页个数
handleSizeChange(val) {
--
libgit2 0.21.0