Commit 37b6b7d9d5b210f0c5af36837fc9ea676fb81a2a

Authored by 刘汉宸
1 parent 036d3f05

fix: 修复Scheme弹出框关闭渲染问题

Showing 1 changed file with 19 additions and 8 deletions   Show diff stats
packages/scheme/index.vue
... ... @@ -109,7 +109,8 @@
109 109 :lock-scroll="false"
110 110 :close-on-click-modal="false"
111 111 @closed="onDialogClosed"
112   - v-bind="dialogProps"
  112 + @close="onDialogClose"
  113 + v-bind="_dialogProps"
113 114 >
114 115 <div v-loading="dialogLoading">
115 116 <!-- 自定义弹出框标题 -->
... ... @@ -179,9 +180,7 @@ const propsKeys = [&#39;tableProps&#39;, &#39;filterProps&#39;, &#39;formProps&#39;, &#39;viewProps&#39;, &#39;dialo
179 180 propsKeys.forEach(key => {
180 181 propsMap[key] = {
181 182 type: Object,
182   - default: function() {
183   - return {};
184   - },
  183 + default: () => ({}),
185 184 };
186 185 });
187 186 const apiKeys = ['searchApi', 'submitApi', 'addApi', 'modifyApi', 'getApi', 'viewApi', 'deleteApi'];
... ... @@ -228,6 +227,7 @@ export default {
228 227 dialogType: 'none',
229 228 dialogLoading: false,
230 229 dialogTitle: '',
  230 + dialogPropsHack: {},
231 231 currentPage: 1,
232 232 pageSize: 10,
233 233 total: 0,
... ... @@ -355,6 +355,12 @@ export default {
355 355 }
356 356 return this.alias || this.zAlias || {};
357 357 },
  358 + _dialogProps() {
  359 + return {
  360 + ...this.dialogProps,
  361 + ...this.dialogPropsHack,
  362 + };
  363 + },
358 364 },
359 365 methods: {
360 366 get,
... ... @@ -590,28 +596,33 @@ export default {
590 596 .catch(() => {});
591 597 },
592 598 // 打开弹出框
593   - openDialog(type, title) {
  599 + openDialog(type, title, config) {
594 600 this.dialogVisible = true;
595 601 this.dialogRender = true;
596 602 this.dialogType = type;
597 603 this.dialogTitle = title;
  604 + this.dialogPropsHack = config || {};
598 605 this.$emit('dialog-change', type);
599 606 },
600 607 // 关闭弹出框
601 608 closeDialog() {
602 609 this.dialogVisible = false;
603   - this.dialogRender = false;
604   - this.dialogType = 'none';
605   - this.$emit('dialog-change', 'none');
606 610 },
607 611 // 清空表单
608 612 clearEditForm() {
609 613 this.editForm = {};
610 614 this.$emit('update:formModel', {});
611 615 },
  616 + // 弹出框关闭
  617 + onDialogClose() {
  618 + this.dialogType = 'none';
  619 + this.dialogRender = false;
  620 + this.$emit('dialog-change', 'none');
  621 + },
612 622 // 弹出框关闭动画结束
613 623 onDialogClosed() {
614 624 this.clearEditForm();
  625 + this.dialogPropsHack = {};
615 626 },
616 627 // 分页-每页个数
617 628 handleSizeChange(val) {
... ...