201 lines
4.8 KiB
Vue
201 lines
4.8 KiB
Vue
<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>
|