hulai-website/components/contact/ContactChannel.vue
刘涛 a25f3a77ce sync: 同步最新呼籁官网代码到仓库
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 21:57:35 +08:00

44 行
1.4 KiB
Vue

<template>
<CommonContentCard :class="{ 'channel-primary': channel.primary }">
<div class="channel">
<span v-if="channel.primary" class="channel-badge">推荐</span>
<h3 class="channel-label">{{ channel.label }}</h3>
<p class="channel-value">{{ channel.value }}</p>
<p v-if="channel.description" class="channel-desc">{{ channel.description }}</p>
<CommonQRCodeBlock
v-if="channel.qrImage"
:image="channel.qrImage"
:label="channel.label"
size="normal"
/>
</div>
</CommonContentCard>
</template>
<script setup>
defineProps({ channel: { type: Object, required: true } })
</script>
<style lang="less" scoped>
.channel { text-align: center; }
.channel-label { font-size: @font-size-md; color: @color-primary; margin-bottom: @space-sm; }
.channel-value { font-size: @font-size-base; color: @color-text-primary; font-weight: @font-weight-medium; margin-bottom: @space-xs; }
.channel-desc { font-size: @font-size-sm; color: @color-text-muted; margin-bottom: @space-md; }
.channel-primary {
border: 2px solid @color-primary;
position: relative;
}
.channel-badge {
display: inline-block;
padding: @space-xs @space-md;
font-size: @font-size-xs;
font-weight: @font-weight-medium;
color: #fff;
background: @color-primary;
border-radius: @border-radius-full;
margin-bottom: @space-md;
}
</style>