Commit 37b6b7d9d5b210f0c5af36837fc9ea676fb81a2a
1 parent
036d3f05
Exists in
master
and in
3 other branches
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 = ['tableProps', 'filterProps', 'formProps', 'viewProps', 'dialo | @@ -179,9 +180,7 @@ const propsKeys = ['tableProps', 'filterProps', 'formProps', 'viewProps', '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) { |