greenPro/pages/extUI/card/card.nvue

197 lines
6.4 KiB
Plaintext

<template>
<view class="container">
<uni-card :is-shadow="false" is-full>
<text class="uni-h6">卡片组件通用来显示完整独立的一段信息,同时让用户理解他的作用。例如一篇文章的预览图、作者信息、时间等,卡片通常是更复杂和更详细信息的入口点。</text>
</uni-card>
<uni-section title="基础卡片" type="line">
<uni-card :is-shadow="false">
<text class="uni-body">这是一个基础卡片示例,内容较少,此示例展示了一个没有任何属性不带阴影的卡片。</text>
</uni-card>
</uni-section>
<uni-section title="卡片标题+额外信息" type="line">
<uni-card title="基础卡片" extra="额外信息">
<text class="uni-body">这是一个基础卡片示例,此示例展示了一个标题加标题额外信息的标准卡片。</text>
</uni-card>
</uni-section>
<uni-section title="双标题卡片" type="line">
<uni-card title="基础卡片" sub-title="副标题" extra="额外信息" :thumbnail="avatar" @click="onClick">
<text class="uni-body">这是一个带头像和双标题的基础卡片,此示例展示了一个完整的卡片。</text>
</uni-card>
</uni-section>
<uni-section title="通栏卡片" type="line">
<uni-card title="基础卡片" :isFull="true" sub-title="副标题" extra="额外信息" :thumbnail="avatar">
<text class="uni-body">这是一个通栏卡片 ,通栏没有外边距,左右会贴合父元素。</text>
</uni-card>
</uni-section>
<uni-section title="卡片封面图+操作栏" type="line">
<uni-card :cover="cover" @click="onClick">
<!-- <image slot='cover' style="width: 100%;" :src="cover"></image> -->
<text class="uni-body">这是一个带封面和操作栏的卡片示例,此示例展示了封面插槽和操作栏插槽的用法。</text>
<view slot="actions" class="card-actions">
<view class="card-actions-item" @click="actionsClick('分享')">
<uni-icons type="redo" size="18" color="#999"></uni-icons>
<text class="card-actions-item-text">分享</text>
</view>
<view class="card-actions-item" @click="actionsClick('点赞')">
<uni-icons type="heart" size="18" color="#999"></uni-icons>
<text class="card-actions-item-text">点赞</text>
</view>
<view class="card-actions-item" @click="actionsClick('评论')">
<uni-icons type="chatbubble" size="18" color="#999"></uni-icons>
<text class="card-actions-item-text">评论</text>
</view>
</view>
</uni-card>
</uni-section>
<uni-section title="自定义卡片内容" type="line">
<uni-card title="基础卡片" sub-title="副标题" extra="额外信息" padding="10px 0" :thumbnail="avatar">
<template v-slot:title>
<uni-list>
<uni-list-item :show-switch="true" title="自定义标题" />
</uni-list>
</template>
<image style="width: 100%;" :src="cover"></image>
<text
class="uni-body uni-mt-5">卡片组件通用来显示完整独立的一段信息,同时让用户理解他的作用。例如一篇文章的预览图、作者信息、时间等,卡片通常是更复杂和更详细信息的入口点。</text>
<view slot="actions" class="card-actions">
<view class="card-actions-item" @click="actionsClick('分享')">
<uni-icons type="redo" size="18" color="#999"></uni-icons>
<text class="card-actions-item-text">分享</text>
</view>
<view class="card-actions-item" @click="actionsClick('点赞')">
<uni-icons type="heart" size="18" color="#999"></uni-icons>
<text class="card-actions-item-text">点赞</text>
</view>
<view class="card-actions-item" @click="actionsClick('评论')">
<uni-icons type="chatbubble" size="18" color="#999"></uni-icons>
<text class="card-actions-item-text">评论</text>
</view>
</view>
</uni-card>
</uni-section>
<uni-section title="卡片+列表" type="line">
<uni-card padding="0" spacing="0">
<template v-slot:cover>
<view class="custom-cover">
<image class="cover-image" mode="aspectFill" :src="cover">
</image>
<view class="cover-content">
<text class="uni-subtitle uni-white">今日新闻热点</text>
</view>
</view>
</template>
<uni-list>
<uni-list-item title="今日新闻" showArrow></uni-list-item>
<uni-list-item title="今日新闻" showArrow></uni-list-item>
</uni-list>
<view slot="actions" class="card-actions no-border">
<view class="card-actions-item" @click="actionsClick('分享')">
<uni-icons type="redo" size="18" color="#999"></uni-icons>
<text class="card-actions-item-text">分享</text>
</view>
<view class="card-actions-item" @click="actionsClick('点赞')">
<uni-icons type="heart" size="18" color="#999"></uni-icons>
<text class="card-actions-item-text">点赞</text>
</view>
<view class="card-actions-item" @click="actionsClick('评论')">
<uni-icons type="chatbubble" size="18" color="#999"></uni-icons>
<text class="card-actions-item-text">评论</text>
</view>
</view>
</uni-card>
</uni-section>
</view>
</template>
<script>
export default {
components: {},
data() {
return {
cover: 'https://web-assets.dcloud.net.cn/unidoc/zh/shuijiao.jpg',
avatar: 'https://web-assets.dcloud.net.cn/unidoc/zh/unicloudlogo.png',
extraIcon: {
color: '#4cd964',
size: '22',
type: 'gear-filled'
}
}
},
methods: {
onClick(e) {
console.log(e)
},
actionsClick(text) {
uni.showToast({
title: text,
icon: 'none'
})
}
}
}
</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>