1.在一个uni-Card下面,动态生成多个actions。其中uni-Card也有多个动态生成。
2.要求将action的两个text分开,即前一个图标靠近第一个text,第二个text靠最右侧
以下代码供参考,求完善代码
<template>
<view class="container">
<view v-for="(cardData, index) in cardsData" :key="index" class="card-container">
<uni-card :title="cardData.title" :extra="cardData.extra" :thumbnail="avatar" @click="onClick">
<view slot="actions" class="card-actions">
<view v-for="(action, actionIndex) in cardData.actions" class="card-actions-item" :key="actionIndex" @click="actionsClick('S')">
<uni-icons :type="action.icon" size="18" color="#999"></uni-icons>
<text>{{action.actuator}}</text>
<text>{{action.val}}</text>
</view>
</view>
</uni-card>
</view>
</view>
</template>
<script>
export default {
data() {
return {
avatar: '/static/actuator2.png',
cardsData: [
{
title: 'ps' ,
subtitle:'12ml',
extra:'OFF(%0)',
rate:'89(0R/M)',
actions:[ // 动作项数组,可以根据实际情况调整数据格式和内容
{ icon: 'arrow-down', actuator: 'apple', val:'89(0R/M)', action: 'S' },
]
}
]
};
}
}
</script>
<style lang="scss">
.container {
overflow: hidden;
}
.custom-cover {
flex: 1;
flex-direction: row;
position: relative;
}
.cover-content {
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 40px;
background-color: rgba($color: #000000, $alpha: 0.4);
display: flex;
flex-direction: row;
align-items: center;
padding-left: 15px;
font-size: 14px;
color: #fff;
}
.card-actions {
display: flex;
flex-direction: row;
justify-content: space-around;
align-items: center;
height: 45px;
border-top: 1px #eee solid;
}
.card-actions-item {
display: flex;
flex-direction: row;
align-items: center;
}
.card-actions-item-text {
font-size: 12px;
color: #666;
margin-left: 5px;
}
.cover-image {
flex: 1;
height: 150px;
}
.no-border {
border-width: 0;
}
</style>