update List

This commit is contained in:
梁灏 2019-06-08 16:29:19 +08:00
parent c501f03c9d
commit 4d4b814baa
2 changed files with 82 additions and 52 deletions

View file

@ -1,9 +1,25 @@
<template>
<li class="ivu-list-item" :class="classes">
<slot></slot>
<ul class="ivu-list-item-action" v-if="$slots.action">
<slot name="action"></slot>
</ul>
<template v-if="itemLayout === 'vertical' && $slots.extra">
<div class="ivu-list-item-main">
<slot></slot>
<ul class="ivu-list-item-action" v-if="$slots.action">
<slot name="action"></slot>
</ul>
</div>
<div class="ivu-list-item-extra">
<slot name="extra"></slot>
</div>
</template>
<template v-else>
<slot></slot>
<ul class="ivu-list-item-action" v-if="$slots.action">
<slot name="action"></slot>
</ul>
<div class="ivu-list-item-extra">
<slot name="extra"></slot>
</div>
</template>
</li>
</template>
<script>
@ -14,15 +30,26 @@
},
computed: {
itemLayout () {
return this.ListInstance.itemLayout;
},
isItemContainsTextNode () {
let result;
this.$slots.default.forEach(item => {
if (typeof item === 'string') {
result = true;
}
});
return result;
},
isFlexMode () {
const extra = this.$slots.extra;
const itemLayout = this.ListInstance.itemLayout;
if (itemLayout === 'vertical') {
if (this.itemLayout === 'vertical') {
return !!extra;
}
return !this.$slots.default;
return !this.isItemContainsTextNode;
},
classes () {
return [