2025-01-20 16:42:05 +08:00

201 lines
4.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<swiper
class="swiper-container"
:indicator-dots="true"
:autoplay="true"
:interval="3000"
:duration="500"
indicator-active-color="#FFFFFF"
indicator-color="rgba(255, 255, 255, 0.4)"
>
<!-- 访客通行卡片 -->
<swiper-item>
<view class="visitor-card">
<view class="card-content">
<view class="card-left">
<text class="card-title">访客人员临时通行</text>
<text class="card-desc">使用访客管理来访轻松搞定</text>
<view class="card-btn">看详情 ></view>
</view>
<view class="card-right">
<image src="/static/images/visitor-illustration.png" mode="aspectFit" />
</view>
</view>
</view>
</swiper-item>
<swiper-item>
<view class="visitor-card">
<view class="card-content">
<view class="card-left">
<text class="card-title">通行权限使用说明</text>
<text class="card-desc">区分长期通行与临时通行,对长期通信人员下发通行权限</text>
<view class="card-btn">看详情 ></view>
</view>
<view class="card-right">
<image src="/static/images/visitor-illustration.png" mode="aspectFit" />
</view>
</view>
</view>
</swiper-item>
<!-- 提醒卡片 -->
<swiper-item>
<view class="remind-card">
<view class="card-header">
<text class="remind-tag">提醒</text>
<text class="remind-text">您有11条信息未同步到设备</text>
<image class="arrow-icon" src="/static/images/icon_white_right.png" mode="aspectFit" />
</view>
<view class="stats-container">
<view class="stat-item">
<text class="stat-num">2</text>
<text class="stat-label">人员/通行规则</text>
</view>
<view class="stat-item">
<text class="stat-num">0</text>
<text class="stat-label">人脸</text>
</view>
<view class="stat-item">
<text class="stat-num">7</text>
<text class="stat-label">指纹</text>
</view>
<view class="stat-item">
<text class="stat-num">0</text>
<text class="stat-label">卡片</text>
</view>
<view class="stat-item">
<text class="stat-num">2</text>
<text class="stat-label">密码</text>
</view>
</view>
</view>
</swiper-item>
</swiper>
</template>
<script setup lang="ts"></script>
<style lang="scss" scoped>
.swiper-container {
height: 140px;
overflow: hidden;
border-radius: 12px;
}
// .swiper-card {
// height: 100%;
// padding: 24px 16px;
// border-radius: 12px;
// }
.visitor-card {
height: 100%;
padding: 16px 16px;
background: linear-gradient(135deg, #4080ff 0%, #2b5cff 100%);
border-radius: 12px;
.card-content {
display: flex;
align-items: start;
justify-content: space-between;
height: 100%;
color: #fff;
.card-left {
display: flex;
flex-direction: column;
gap: 4px;
.card-title {
font-size: 18px;
font-weight: 500;
}
.card-desc {
font-size: 10px;
opacity: 0.8;
}
.card-btn {
width: fit-content;
padding: 4px 8px;
margin-top: 15px;
font-size: 12px;
background: rgba(255, 255, 255, 0.2);
border-radius: 12px;
}
}
.card-right {
width: 120px;
height: 120px;
image {
width: 100%;
height: 100%;
}
}
}
}
.remind-card {
height: 100%;
padding: 16px;
color: #fff;
background: linear-gradient(135deg, #4080ff 0%, #2b5cff 100%);
border-radius: 12px;
.card-header {
display: flex;
gap: 6px;
align-items: center;
padding: 4px;
margin-bottom: 10px;
background: rgba(255, 255, 255, 0.2);
border-radius: 4px;
.remind-tag {
padding: 2px 6px;
font-size: 11px;
// background: rgba(255, 255, 255, 0.2);
// border-radius: 4px;
}
.remind-text {
flex: 1;
font-size: 12px;
}
.arrow-icon {
width: 12px;
height: 12px;
}
}
.stats-container {
display: flex;
justify-content: space-between;
padding: 0 12px;
padding-top: 12px;
.stat-item {
display: flex;
flex-direction: column;
gap: 2px;
align-items: center;
.stat-num {
font-size: 18px;
font-weight: 500;
}
.stat-label {
font-size: 11px;
opacity: 0.8;
}
}
}
}
</style>