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