Files
hupeng d0b337c596 v1.0
2023-10-11 11:27:47 +08:00

102 lines
1.8 KiB
Vue

<template>
<container>
<view class="activity">
<view class="activity-header">
<view class="activity-header-info">
<view class="activity-header-title">
{{ title }}
</view>
<view class="activity-header-subtitle">
{{ subtitle }}
</view>
</view>
<view
class="activity-header-more"
@tap="handleMoreClick"
>
<view class="activity-header-more-info">{{ more }}</view>
<img
class="image"
src="@/static/images/next.png"
alt=""
>
</view>
</view>
<view class="activity-body">
<slot></slot>
</view>
</view>
</container>
</template>
<script setup>
import { ref } from 'vue';
const props = defineProps(["title", "subtitle", 'more'])
const title = ref(props.title)
const subtitle = ref(props.subtitle)
const more = ref(props.more)
const emit = defineEmits(['moreClick'])
const handleMoreClick = () => {
emit('moreClick')
}
</script>
<style lang="less">
.activity {
&-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20rpx;
&-info {
flex: 1;
display: flex;
align-items: flex-end;
}
&-title {
line-height: 45rpx;
font-size: 32rpx;
color: #333333;
}
&-subtitle {
margin-left: 10rpx;
line-height: 33rpx;
font-size: 24rpx;
color: #EE6D46;
}
&-more {
display: flex;
align-items: center;
&-info {
line-height: 33rpx;
font-size: 24rpx;
color: #999999;
}
.image {
margin-left: 10rpx;
display: block;
width: 20rpx;
height: 20rpx;
}
}
&-body {}
}
}
</style>