feat: update collapse

pull/2682/head
tanjinzhou 2020-07-16 16:24:44 +08:00
parent cc1f21845a
commit 10b25b0ec7
8 changed files with 25 additions and 9 deletions

@ -1 +1 @@
Subproject commit f2b37285a631c364fdc6eef119aeb0fab0793da0 Subproject commit 59b0f4906bf50dcd93edfd55ec9ae26ed9578d21

View File

@ -83,3 +83,7 @@ v-model -> v-model:value
## Collapse ## Collapse
v-model -> v-model:activeKey v-model -> v-model:activeKey
## List
renderItem(item, index) => renderItem({item, index}) 该用单参数

View File

@ -14,6 +14,7 @@ import { ConfigConsumerProps } from '../config-provider';
export default { export default {
name: 'ACollapse', name: 'ACollapse',
inheritAttrs: false,
props: initDefaultProps(collapseProps(), { props: initDefaultProps(collapseProps(), {
bordered: true, bordered: true,
openAnimation: animation, openAnimation: animation,
@ -39,8 +40,9 @@ export default {
const { prefixCls: customizePrefixCls, bordered, expandIconPosition } = this; const { prefixCls: customizePrefixCls, bordered, expandIconPosition } = this;
const getPrefixCls = this.configProvider.getPrefixCls; const getPrefixCls = this.configProvider.getPrefixCls;
const prefixCls = getPrefixCls('collapse', customizePrefixCls); const prefixCls = getPrefixCls('collapse', customizePrefixCls);
const { class: className, ...restAttrs } = this.$attrs;
const collapseClassName = { const collapseClassName = {
[className]: className,
[`${prefixCls}-borderless`]: !bordered, [`${prefixCls}-borderless`]: !bordered,
[`${prefixCls}-icon-position-${expandIconPosition}`]: true, [`${prefixCls}-icon-position-${expandIconPosition}`]: true,
}; };
@ -49,6 +51,7 @@ export default {
prefixCls, prefixCls,
expandIcon: panelProps => this.renderExpandIcon(panelProps, prefixCls), expandIcon: panelProps => this.renderExpandIcon(panelProps, prefixCls),
class: collapseClassName, class: collapseClassName,
...restAttrs,
}; };
return <VcCollapse {...rcCollapeProps}>{getSlot(this)}</VcCollapse>; return <VcCollapse {...rcCollapeProps}>{getSlot(this)}</VcCollapse>;

View File

@ -5,6 +5,7 @@ import { ConfigConsumerProps } from '../config-provider';
export default { export default {
name: 'ACollapsePanel', name: 'ACollapsePanel',
inheritAttrs: false,
props: { props: {
...panelProps(), ...panelProps(),
}, },
@ -17,8 +18,9 @@ export default {
const { prefixCls: customizePrefixCls, showArrow = true } = this; const { prefixCls: customizePrefixCls, showArrow = true } = this;
const getPrefixCls = this.configProvider.getPrefixCls; const getPrefixCls = this.configProvider.getPrefixCls;
const prefixCls = getPrefixCls('collapse', customizePrefixCls); const prefixCls = getPrefixCls('collapse', customizePrefixCls);
const { class: className, ...restAttrs } = this.$attrs;
const collapsePanelClassName = { const collapsePanelClassName = {
[className]: className,
[`${prefixCls}-no-arrow`]: !showArrow, [`${prefixCls}-no-arrow`]: !showArrow,
}; };
@ -28,6 +30,7 @@ export default {
prefixCls, prefixCls,
extra: getComponent(this, 'extra'), extra: getComponent(this, 'extra'),
class: collapsePanelClassName, class: collapsePanelClassName,
...restAttrs,
}; };
return <VcCollapse.Panel {...rcCollapePanelProps}>{getSlot(this)}</VcCollapse.Panel>; return <VcCollapse.Panel {...rcCollapePanelProps}>{getSlot(this)}</VcCollapse.Panel>;
}, },

View File

@ -20,6 +20,7 @@ function _toArray(activeKey) {
export default { export default {
name: 'Collapse', name: 'Collapse',
mixins: [BaseMixin], mixins: [BaseMixin],
inheritAttrs: false,
props: initDefaultProps(collapseProps(), { props: initDefaultProps(collapseProps(), {
prefixCls: 'rc-collapse', prefixCls: 'rc-collapse',
accordion: false, accordion: false,
@ -108,8 +109,9 @@ export default {
}, },
getItems() { getItems() {
const newChildren = []; const newChildren = [];
getSlot(this) && const children = getSlot(this);
getSlot(this).forEach((child, index) => { children &&
children.forEach((child, index) => {
newChildren.push(this.getNewChild(child, index)); newChildren.push(this.getNewChild(child, index));
}); });
return newChildren; return newChildren;
@ -122,11 +124,13 @@ export default {
}, },
render() { render() {
const { prefixCls, accordion } = this.$props; const { prefixCls, accordion } = this.$props;
const { class: className, style } = this.$attrs;
const collapseClassName = { const collapseClassName = {
[prefixCls]: true, [prefixCls]: true,
[className]: className,
}; };
return ( return (
<div class={collapseClassName} role={accordion ? 'tablist' : null}> <div class={collapseClassName} style={style} role={accordion ? 'tablist' : null}>
{this.getItems()} {this.getItems()}
</div> </div>
); );

View File

@ -23,10 +23,10 @@ function animate(node, show, transitionName, done) {
function animation(prefixCls) { function animation(prefixCls) {
return { return {
enter(node, done) { onEnter(node, done) {
return animate(node, true, `${prefixCls}-anim`, done); return animate(node, true, `${prefixCls}-anim`, done);
}, },
leave(node, done) { onLeave(node, done) {
return animate(node, false, `${prefixCls}-anim`, done); return animate(node, false, `${prefixCls}-anim`, done);
}, },
}; };

View File

@ -4,7 +4,7 @@
</div> </div>
</template> </template>
<script> <script>
import demo from '../antdv-demo/docs/list/demo/basic'; import demo from '../antdv-demo/docs/list/demo/grid';
export default { export default {
components: { components: {

View File

@ -25,6 +25,7 @@ import {
Pagination, Pagination,
List, List,
Collapse, Collapse,
Card,
Avatar, Avatar,
notification, notification,
message, message,
@ -72,4 +73,5 @@ app
.use(List) .use(List)
.use(Collapse) .use(Collapse)
.use(Avatar) .use(Avatar)
.use(Card)
.mount('#app'); .mount('#app');