From d7c437755192a1445f54268dd06c58ef94093bb7 Mon Sep 17 00:00:00 2001
From: tanjinzhou <415800467@qq.com>
Date: Tue, 28 Jul 2020 18:37:07 +0800
Subject: [PATCH] fix: confirm throw error & renderEmpty error
---
antdv-demo | 2 +-
.../config-provider/__tests__/index.test.js | 4 ++--
components/config-provider/index.jsx | 17 ++++++-----------
components/locale-provider/index.jsx | 6 ++----
components/modal/confirm.js | 10 ++++------
components/style.js | 3 +--
examples/App.vue | 2 +-
webpack.config.js | 9 +++++++++
8 files changed, 26 insertions(+), 27 deletions(-)
diff --git a/antdv-demo b/antdv-demo
index 51cd1e3ae..568de59ac 160000
--- a/antdv-demo
+++ b/antdv-demo
@@ -1 +1 @@
-Subproject commit 51cd1e3aea790432b220a7233ba189899438f031
+Subproject commit 568de59ace46dcb555a5728153f69482b2732515
diff --git a/components/config-provider/__tests__/index.test.js b/components/config-provider/__tests__/index.test.js
index 7e0dd49e8..99d3b6364 100644
--- a/components/config-provider/__tests__/index.test.js
+++ b/components/config-provider/__tests__/index.test.js
@@ -25,7 +25,7 @@ describe('ConfigProvider', () => {
);
},
});
- expect(wrapper.find({ name: 'Wave' }).vm.csp).toBe(csp);
+ expect(wrapper.findComponent('Wave').vm.csp).toBe(csp);
});
it('autoInsertSpaceInButton', () => {
@@ -39,6 +39,6 @@ describe('ConfigProvider', () => {
},
});
- expect(wrapper.find({ name: 'AButton' }).text()).toBe('确定');
+ expect(wrapper.findComponent('AButton').text()).toBe('确定');
});
});
diff --git a/components/config-provider/index.jsx b/components/config-provider/index.jsx
index 4935993aa..eb7e7f714 100644
--- a/components/config-provider/index.jsx
+++ b/components/config-provider/index.jsx
@@ -27,18 +27,13 @@ const ConfigProvider = {
pageHeader: PropTypes.object,
transformCellText: PropTypes.func,
},
- setup(props) {
- const configProvider = reactive({
- ...props,
- getPrefixCls: undefined,
- renderEmpty: undefined,
- });
- provide('configProvider', configProvider);
- return { configProvider };
- },
created() {
- this.configProvider.getPrefixCls = this.getPrefixCls;
- this.configProvider.renderEmpty = this.renderEmpty;
+ this.configProvider = reactive({
+ ...this.$props,
+ getPrefixCls: this.getPrefixCls,
+ renderEmpty: this.renderEmptyComponent,
+ });
+ provide('configProvider', this.configProvider);
},
watch: {
...getWatch([
diff --git a/components/locale-provider/index.jsx b/components/locale-provider/index.jsx
index be64afd40..fa7787aca 100644
--- a/components/locale-provider/index.jsx
+++ b/components/locale-provider/index.jsx
@@ -46,13 +46,10 @@ const LocaleProvider = {
},
};
},
- created() {
- provide('localeData', this.$data);
- },
watch: {
locale(val) {
this.antLocale = {
- ...this.locale,
+ ...val,
exist: true,
};
setMomentLocale(val);
@@ -60,6 +57,7 @@ const LocaleProvider = {
},
},
created() {
+ provide('localeData', this.$data);
const { locale } = this;
setMomentLocale(locale);
changeConfirmLocale(locale && locale.Modal);
diff --git a/components/modal/confirm.js b/components/modal/confirm.js
index 5ffee6215..1afd8ab13 100644
--- a/components/modal/confirm.js
+++ b/components/modal/confirm.js
@@ -6,8 +6,6 @@ import Omit from 'omit.js';
export default function confirm(config) {
const div = document.createElement('div');
- const el = document.createElement('div');
- div.appendChild(el);
document.body.appendChild(div);
let currentConfig = { ...Omit(config, ['parentContext']), close, visible: true };
@@ -25,7 +23,7 @@ export default function confirm(config) {
}
function destroy(...args) {
if (confirmDialogInstance && div.parentNode) {
- confirmDialogInstance.unmount(div);
+ confirmDialogInstance.vIf = false; // hack destroy
confirmDialogInstance = null;
div.parentNode.removeChild(div);
}
@@ -47,14 +45,14 @@ export default function confirm(config) {
return createApp({
parent: config.parentContext,
data() {
- return { confirmDialogProps };
+ return { confirmDialogProps, vIf: true };
},
render() {
// 先解构,避免报错,原因不详
const cdProps = { ...this.confirmDialogProps };
- return ;
+ return this.vIf ? : null;
},
- }).mount(el);
+ }).mount(div);
}
confirmDialogInstance = render(currentConfig);
diff --git a/components/style.js b/components/style.js
index acf4fc160..c65a0cfb9 100644
--- a/components/style.js
+++ b/components/style.js
@@ -45,7 +45,6 @@ import './transfer/style';
import './tree/style';
import './upload/style';
import './layout/style';
-import './form/style';
import './anchor/style';
import './list/style';
import './carousel/style';
@@ -59,5 +58,5 @@ import './statistic/style';
import './result/style';
import './descriptions/style';
import './page-header/style';
-import './form-model/style';
+import './form/style';
// import './color-picker/style';
diff --git a/examples/App.vue b/examples/App.vue
index e3416a046..622f757f6 100644
--- a/examples/App.vue
+++ b/examples/App.vue
@@ -4,7 +4,7 @@