replay class attr which using inline styles with computed props

This commit is contained in:
zhigang.li 2017-12-20 10:14:30 +08:00
parent 1c26d05c31
commit 76db49cd16

View file

@ -1,11 +1,11 @@
<template> <template>
<div <div
:class="wrapClasses" :class="wrapClasses"
:style="{width: siderWidth + 'px', minWidth: siderWidth + 'px', maxWidth: siderWidth + 'px', flex: '0 0 ' + siderWidth + 'px'}"> :style="wrapStyles">
<span v-show="showZeroTrigger" @click="toggleCollapse" :class="zeroWidthTriggerClasses"> <span v-show="showZeroTrigger" @click="toggleCollapse" :class="zeroWidthTriggerClasses">
<i class="ivu-icon ivu-icon-navicon-round"></i> <i class="ivu-icon ivu-icon-navicon-round"></i>
</span> </span>
<div :class="`${prefixCls}-children`"> <div :class="childClasses">
<slot></slot> <slot></slot>
</div> </div>
<div v-show="showBottomTrigger" :class="triggerClasses" @click="toggleCollapse" :style="{width: siderWidth + 'px'}"> <div v-show="showBottomTrigger" :class="triggerClasses" @click="toggleCollapse" :style="{width: siderWidth + 'px'}">
@ -72,12 +72,23 @@
this.isCollapsed ? `${prefixCls}-collapsed` : '' this.isCollapsed ? `${prefixCls}-collapsed` : ''
]; ];
}, },
wrapStyles () {
return {
width: `${this.siderWidth}px`,
minWidth: `${this.siderWidth}px`,
maxWidth: `${this.siderWidth}px`,
flex: `0 0 ${this.siderWidth}px`
};
},
triggerClasses () { triggerClasses () {
return [ return [
`${prefixCls}-trigger`, `${prefixCls}-trigger`,
this.isCollapsed ? `${prefixCls}-trigger-collapsed` : '', this.isCollapsed ? `${prefixCls}-trigger-collapsed` : '',
]; ];
}, },
childClasses () {
return `${this.prefixCls}-children`;
},
zeroWidthTriggerClasses () { zeroWidthTriggerClasses () {
return [ return [
`${prefixCls}-zero-width-trigger`, `${prefixCls}-zero-width-trigger`,
@ -129,6 +140,9 @@
on(window, 'resize', this.onWindowResize); on(window, 'resize', this.onWindowResize);
this.matchMedia(); this.matchMedia();
this.$emit('input', this.defaultCollapsed); this.$emit('input', this.defaultCollapsed);
if (this.defaultCollapsed) {
this.isCollapsed = true;
}
}, },
destroyed () { destroyed () {
off(window, 'resize', this.onWindowResize); off(window, 'resize', this.onWindowResize);