diff --git a/CHANGELOG.en-US.md b/CHANGELOG.en-US.md index 074da733e..81084546d 100644 --- a/CHANGELOG.en-US.md +++ b/CHANGELOG.en-US.md @@ -10,6 +10,14 @@ --- +## 2.2.0-beta.2 + +`2021-06-08` + +- 🐞 Fix PageHeader display extension problem [4de73](https://github.com/vueComponent/ant-design-vue/commit/4de7737907d485d3dd3be44b70e599cc53edb171) +- 🐞 Fix the problem that some components cannot be rendered normally under Vue3.1[#4173](https://github.com/vueComponent/ant-design-vue/issues/4173) +- 🐞 Fix Menu.Divider name error problem [6c5c84](https://github.com/vueComponent/ant-design-vue/commit/6c5c84a3fc4b8abcd7aed0922852a64e0ac293c7) + ## 2.2.0-beta.1 `2021-06-17` diff --git a/CHANGELOG.zh-CN.md b/CHANGELOG.zh-CN.md index b59af8294..9305bf8eb 100644 --- a/CHANGELOG.zh-CN.md +++ b/CHANGELOG.zh-CN.md @@ -10,9 +10,17 @@ --- +## 2.2.0-beta.2 + +`2021-06-08` + +- 🐞 修复 PageHeader 显示多余字符问题 [4de773](https://github.com/vueComponent/ant-design-vue/commit/4de7737907d485d3dd3be44b70e599cc53edb171) +- 🐞 修复部分组件不能在 Vue3.1 下不能正常渲染问题 [#4173](https://github.com/vueComponent/ant-design-vue/issues/4173) +- 🐞 修复 Menu.Divider 名称错误问题 [6c5c84](https://github.com/vueComponent/ant-design-vue/commit/6c5c84a3fc4b8abcd7aed0922852a64e0ac293c7) + ## 2.2.0-beta.1 -`2021-06-17` +`2021-06-07` - 🔥🔥🔥 虚拟 Table 独立库发布 https://www.npmjs.com/package/@surely-vue/table , 该组件是一个独立的库,目前文档示例尚未完善,他是一个完全 ts 开发的组件,有较好的类型提示,npm 上已有 API 文档,着急使用的的可以摸索着用起来了,这里有个在线体验示例,https://store.antdv.com/pro/preview/list/big-table-list - 🔥🔥🔥 重构大量组件,源码更加易读,性能更优,ts 类型更加全面 diff --git a/components/auto-complete/index.tsx b/components/auto-complete/index.tsx index aa4a45277..8409f3d84 100644 --- a/components/auto-complete/index.tsx +++ b/components/auto-complete/index.tsx @@ -42,7 +42,7 @@ const AutoComplete = defineComponent({ OptGroup: { ...OptGroup, name: 'AAutoCompleteOptGroup' }, setup(props, { slots }) { warning( - !('dataSource' in props || 'dataSource' in slots), + !(props.dataSource !== undefined || 'dataSource' in slots), 'AutoComplete', '`dataSource` is deprecated, please use `options` instead.', ); diff --git a/components/form/Form.tsx b/components/form/Form.tsx index a8e99a851..9ec2f69e5 100755 --- a/components/form/Form.tsx +++ b/components/form/Form.tsx @@ -96,7 +96,7 @@ const Form = defineComponent({ }), Item: FormItem, emits: ['finishFailed', 'submit', 'finish'], - setup(props, { emit, slots, expose }) { + setup(props, { emit, slots, expose, attrs }) { const size = useInjectSize(props); const { prefixCls, direction, form: contextForm } = useConfigInject('form', props); const requiredMark = computed(() => props.requiredMark === '' || props.requiredMark); @@ -339,7 +339,7 @@ const Form = defineComponent({ return () => { return ( -
+ {slots.default?.()}
); diff --git a/components/layout/layout.tsx b/components/layout/layout.tsx index 6c79bbf36..0b37e1c04 100644 --- a/components/layout/layout.tsx +++ b/components/layout/layout.tsx @@ -27,9 +27,9 @@ function generator({ suffixCls, tagName, name }: GeneratorArgument) { const { prefixCls } = useConfigInject(suffixCls, props); return () => { const basicComponentProps = { + ...props, prefixCls: prefixCls.value, tagName, - ...props, }; return {slots.default?.()}; }; diff --git a/components/menu/src/Divider.tsx b/components/menu/src/Divider.tsx index 8e9d99ad5..bdd8409f3 100644 --- a/components/menu/src/Divider.tsx +++ b/components/menu/src/Divider.tsx @@ -1,7 +1,7 @@ import { defineComponent } from 'vue'; export default defineComponent({ - name: 'Divider', + name: 'AMenuDivider', props: { prefixCls: String, }, diff --git a/components/menu/src/Menu.tsx b/components/menu/src/Menu.tsx index 26d7a2dc4..5dd595ebe 100644 --- a/components/menu/src/Menu.tsx +++ b/components/menu/src/Menu.tsx @@ -123,7 +123,7 @@ export default defineComponent({ { immediate: true }, ); watchEffect(() => { - if ('activeKey' in props) { + if (props.activeKey !== undefined) { let keys = []; const menuInfo = props.activeKey ? (keyMapStore.value[props.activeKey] as UnwrapRef) @@ -194,7 +194,7 @@ export default defineComponent({ selectedKeys: newSelectedKeys, }; if (!shallowEqual(newSelectedKeys, mergedSelectedKeys.value)) { - if (!('selectedKeys' in props)) { + if (props.selectedKeys === undefined) { mergedSelectedKeys.value = newSelectedKeys; } emit('update:selectedKeys', newSelectedKeys); @@ -223,11 +223,10 @@ export default defineComponent({ ); const changeActiveKeys = (keys: Key[]) => { - if ('activeKey' in props) { - emit('update:activeKey', keys[keys.length - 1]); - } else { + if (props.activeKey === undefined) { activeKeys.value = keys; } + emit('update:activeKey', keys[keys.length - 1]); }; const disabled = computed(() => !!props.disabled); const isRtl = computed(() => direction.value === 'rtl'); diff --git a/components/page-header/index.tsx b/components/page-header/index.tsx index 5c2148c12..9411b566e 100644 --- a/components/page-header/index.tsx +++ b/components/page-header/index.tsx @@ -145,7 +145,7 @@ const PageHeader = defineComponent({
{renderBreadcrumb()} {renderTitle()} - {children.length && renderChildren(children)} + {children.length ? renderChildren(children) : null} {renderFooter()}
diff --git a/components/switch/index.tsx b/components/switch/index.tsx index 82c3d5063..7112c0c28 100644 --- a/components/switch/index.tsx +++ b/components/switch/index.tsx @@ -7,6 +7,7 @@ import { computed, onMounted, nextTick, + watch, } from 'vue'; import LoadingOutlined from '@ant-design/icons-vue/LoadingOutlined'; import PropTypes from '../_util/vue-types'; @@ -27,7 +28,6 @@ const switchProps = { checkedChildren: PropTypes.any, unCheckedChildren: PropTypes.any, tabindex: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), - defaultChecked: PropTypes.looseBool, autofocus: PropTypes.looseBool, loading: PropTypes.looseBool, checked: PropTypes.looseBool, @@ -59,6 +59,14 @@ const Switch = defineComponent({ '`value` is not validate prop, do you mean `checked`?', ); }); + const checked = ref(props.checked !== undefined ? !!props.checked : !!attrs.defaultChecked); + + watch( + () => props.checked, + () => { + checked.value = !!props.checked; + }, + ); const configProvider = inject('configProvider', defaultConfigProvider); const { getPrefixCls } = configProvider; @@ -75,9 +83,6 @@ const Switch = defineComponent({ const prefixCls = computed(() => { return getPrefixCls('switch', props.prefixCls); }); - const checked = computed(() => { - return 'checked' in props ? !!props.checked : !!props.defaultChecked; - }); onMounted(() => { nextTick(() => { @@ -91,6 +96,9 @@ const Switch = defineComponent({ if (props.disabled) { return; } + if (props.checked === undefined) { + checked.value = check; + } emit('update:checked', check); emit('change', check, e); }; diff --git a/components/tag/index.tsx b/components/tag/index.tsx index ca8bd3e7f..f0c24c43a 100644 --- a/components/tag/index.tsx +++ b/components/tag/index.tsx @@ -44,6 +44,7 @@ export type TagProps = HTMLAttributes & Partial({ ); watchEffect(() => { - if (!('content' in props)) { + if (props.content === undefined) { warning( !props.editable, 'Typography', @@ -437,7 +437,7 @@ const Base = defineComponent({ const { editing } = editable.value; const children = props.ellipsis || props.editable - ? 'content' in props + ? props.content !== undefined ? props.content : slots.default?.() : slots.default diff --git a/package.json b/package.json index b02a3aeab..94e3ee0a8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ant-design-vue", - "version": "2.2.0-beta.1", + "version": "2.2.0-beta.2", "title": "Ant Design Vue", "description": "An enterprise-class UI design language and Vue-based implementation", "keywords": [ @@ -58,8 +58,8 @@ }, "homepage": "https://www.antdv.com/", "peerDependencies": { - "@vue/compiler-sfc": ">=3.0.9", - "vue": ">=3.0.9" + "@vue/compiler-sfc": ">=3.1.0", + "vue": ">=3.1.0" }, "devDependencies": { "@babel/cli": "^7.8.4", @@ -89,7 +89,7 @@ "@typescript-eslint/parser": "^4.1.0", "@vue/babel-plugin-jsx": "^1.0.0", "@vue/cli-plugin-eslint": "^4.0.0", - "@vue/compiler-sfc": "^3.0.9", + "@vue/compiler-sfc": "^3.1.0", "@vue/eslint-config-prettier": "^6.0.0", "@vue/eslint-config-typescript": "^7.0.0", "@vue/test-utils": "^2.0.0-0", @@ -179,7 +179,7 @@ "umi-mock-middleware": "^1.0.0", "umi-request": "^1.3.5", "url-loader": "^3.0.0", - "vue": "^3.0.9", + "vue": "^3.1.0", "vue-antd-md-loader": "^1.2.1-beta.1", "vue-clipboard2": "0.3.1", "vue-draggable-resizable": "^2.1.0",