move computed value parentSubmenuNum from .vue to mixin.js

This commit is contained in:
zhigang.li 2018-01-19 15:56:57 +08:00
parent a163daa07a
commit acba45fed5
3 changed files with 14 additions and 10 deletions

View file

@ -3,12 +3,13 @@
</template> </template>
<script> <script>
import Emitter from '../../mixins/emitter'; import Emitter from '../../mixins/emitter';
import { findComponentUpward, findComponentsUpward } from '../../utils/assist'; import { findComponentUpward } from '../../utils/assist';
const prefixCls = 'ivu-menu'; const prefixCls = 'ivu-menu';
import mixin from './mixin';
export default { export default {
name: 'MenuItem', name: 'MenuItem',
mixins: [ Emitter ], mixins: [ Emitter, mixin ],
props: { props: {
name: { name: {
type: [String, Number], type: [String, Number],
@ -35,9 +36,6 @@
} }
]; ];
}, },
parentSubmenuNum () {
return findComponentsUpward(this, 'Submenu').length;
},
itemStyle () { itemStyle () {
return this.hasParentSubmenu ? { return this.hasParentSubmenu ? {
paddingLeft: 43 + (this.parentSubmenuNum - 1) * 24 + 'px' paddingLeft: 43 + (this.parentSubmenuNum - 1) * 24 + 'px'

View file

@ -0,0 +1,8 @@
import { findComponentsUpward } from '../../utils/assist';
export default {
computed: {
parentSubmenuNum () {
return findComponentsUpward(this, 'Submenu').length;
}
}
}

View file

@ -21,14 +21,15 @@
import Drop from '../select/dropdown.vue'; import Drop from '../select/dropdown.vue';
import Icon from '../icon/icon.vue'; import Icon from '../icon/icon.vue';
import CollapseTransition from '../base/collapse-transition'; import CollapseTransition from '../base/collapse-transition';
import { getStyle, findComponentUpward, findComponentsUpward, findComponentsDownward } from '../../utils/assist'; import { getStyle, findComponentUpward, findComponentsDownward } from '../../utils/assist';
import Emitter from '../../mixins/emitter'; import Emitter from '../../mixins/emitter';
import mixin from './mixin';
const prefixCls = 'ivu-menu'; const prefixCls = 'ivu-menu';
export default { export default {
name: 'Submenu', name: 'Submenu',
mixins: [ Emitter ], mixins: [ Emitter, mixin ],
components: { Icon, Drop, CollapseTransition }, components: { Icon, Drop, CollapseTransition },
props: { props: {
name: { name: {
@ -77,9 +78,6 @@
hasParentSubmenu () { hasParentSubmenu () {
return findComponentUpward(this, 'Submenu'); return findComponentUpward(this, 'Submenu');
}, },
parentSubmenuNum () {
return findComponentsUpward(this, 'Submenu').length;
},
titleStyle () { titleStyle () {
return this.hasParentSubmenu ? { return this.hasParentSubmenu ? {
paddingLeft: 43 + (this.parentSubmenuNum - 1) * 24 + 'px' paddingLeft: 43 + (this.parentSubmenuNum - 1) * 24 + 'px'