dykj-outsource-12123/pages/index/index.vue
2024-06-28 11:18:46 +08:00

379 lines
10 KiB
Vue

<template>
<view class="content" :style="{ backgroundPositionY: -44 + safeAreaInsets.top + 'px' }">
<view class="top" :style="{ paddingTop: safeAreaInsets.top + 'px' }">
<view style="color: #fff; width: 120rpx">哈尔滨</view>
<!-- <uni-search-bar class="search" bgColor="#EEEEEE" radius="100" placeholder="搜索" clearButton="none"
cancelButton="none" @confirm="search" /> -->
<up-search placeholder="搜索" bgColor="#EEEEEE" height="25" searchIconSize="18" :showAction="false"></up-search>
<image src="../../static/on.png" style="width: 80rpx; height: 60rpx"></image>
</view>
<view class="card">
<view class="card-content" @click="myCar">
<view class="card-content-top">
<image style="width: 50rpx; height: 40rpx" src="../../static/c5.png" />
<text style="margin-left: 30rpx">黑A00000</text>
</view>
<view class="card-content-bottom">
<view style="font-size: 26rpx; display: flex; justify-content: space-between; align-items: center">
<text>未处理违法</text>
<view>
<text style="margin-right: 8rpx; font-size: 32rpx">0</text>
</view>
</view>
<view style="font-size: 26rpx; display: flex; justify-content: space-between; align-items: center">
<text>车辆状态</text>
<text>正常</text>
</view>
</view>
</view>
<view class="card-content" @click="drivingLicence">
<view class="card-content-top" style="justify-content: space-between">
<view style="display: flex; align-items: center">
<image style="width: 50rpx; height: 50rpx" src="../../static/jiashizheng.png" />
<text style="margin-left: 30rpx">驾驶证</text>
</view>
<image style="width: 10rpx; height: 20rpx" src="../../static/zv1.png" />
</view>
<view class="card-content-bottom">
<view style="font-size: 26rpx; display: flex; justify-content: space-between; align-items: center">
<text>累计积分</text>
<view>
<text style="margin-right: 8rpx; font-size: 32rpx">0</text>
</view>
</view>
<view style="font-size: 26rpx; display: flex; justify-content: space-between; align-items: center">
<text>累计积分</text>
<text>正常</text>
</view>
</view>
</view>
</view>
<view class="business" style="padding: 10rpx 20rpx">
<view v-for="(item, index) in businessList" :key="index" class="grid-item">
<view class="business-content" @click="closedclick(item.id)">
<image style="width: 70rpx; height: 70rpx; margin-bottom: 20rpx" :src="item.img" />
<text style="font-size: 12px; color: #696967">{{ item.text }}</text>
</view>
</view>
</view>
<view class="information">
<view class="information-top">
<view style="margin-left: 20rpx">
<text style="font-weight: 600; font-size: 34rpx">资讯中心</text>
<text style="font-size: 24rpx; font-weight: 400; color: #9b9b9b; margin-left: 50rpx">最新实时地方交通资讯</text>
</view>
<uni-icons type="right" size="20" color="#acacac" style="margin-right: 20rpx"></uni-icons>
</view>
<view class="information-content">
<uni-swiper-dot :info="info" :current="current" :dots-styles="{ selectedBackgroundColor: '#2065b1', backgroundColor: '#e6e6e6' }" field="content" mode="default">
<swiper class="swiper-box" @change="change">
<swiper-item v-for="(item, index) in info" :key="index">
<view class="swiper-item" style="margin-right: 20rpx">
<image :src="item.Image" style="width: 200rpx; height: 170rpx; margin-left: 20rpx; border-radius: 10rpx"></image>
<view class="swiper-text">
<text>{{ item.content }}</text>
<view style="width: 100%; display: flex; justify-content: flex-end; color: #cecdd3; font-size: 28rpx">
{{ '2024-06-14' }}
</view>
</view>
</view>
</swiper-item>
</swiper>
</uni-swiper-dot>
</view>
<view class="bottom">
<view class="bottom-top">
<view style="border-bottom: 1rpx solid #adc1d8; width: 60rpx" />
<text style="color: #adc1d8; margin: 0 10rpx">\\\\</text>
<view style="border-bottom: 1px solid #adc1d8; width: 360rpx" />
</view>
<view class="bottom-center">
<view class="center-content">
<view class="icon">
<image src="../../static/dl.png" style="width: 30rpx; height: 30rpx"></image>
</view>
<view class="text">
<text style="color: #8ca9cd; font-size: 24rpx; display: inline-block; text-align: center">未来会有更过服务,更好的体验现在快把我分享给帮你的好友吧</text>
</view>
</view>
</view>
<view class="bottom-bottom">
<view style="border-bottom: 1rpx solid #e5e5e8; width: 25%" />
<text style="color: #727272; margin: 0 10rpx; font-size: 24rpx">交管12123版本v3.1.1 B603</text>
<view style="border-bottom: 1px solid #e5e5e8; width: 25%" />
</view>
</view>
</view>
<image src="../../static/hp1.png" style="width: 100rpx; height: 100rpx" class="kefu"></image>
<TabBar />
</view>
</template>
<script setup>
import TabBar from '@/components/tabBar/index.vue';
import { ref } from 'vue';
const { safeAreaInsets } = uni.getSystemInfoSync();
const dotStyle = ref({});
const businessList = ref([
{
img: '../../static/6w1.png',
text: '事故视频\n快处',
id: '1'
},
{
img: '../../static/ax3.png',
text: '违法处理\n\n',
id: '2'
},
{
img: '../../static/q2.png',
text: '罚款缴纳\n\n',
id: '3'
},
{
img: '../../static/5i.png',
text: '驾驶证电\n子版',
id: '4'
},
{
img: '../../static/az.png',
text: '学法减分\n\n',
id: '5'
},
{
img: '../../static/zx1.png',
text: '免检车申领\n检验标志',
id: '6'
},
{
img: '../../static/621.png',
text: '驾驶证补\n领换',
id: '7'
},
{
img: '../../static/jf.png',
text: '机动车检\n验预约',
id: '8'
},
{
img: '../../static/pj.png',
text: '满分学习\n考试',
id: '9'
},
{
img: '../../static/KG.png',
text: '更多\n\n',
id: '10'
}
]);
const info = [
{
Image: '../../static/wq.png',
content: '公安部8项公安交管便民利企改革新措施解读'
},
{
Image: '../../static/wq.png',
content: '公安部8项公安交管便民利企改革新措施解读'
},
{
Image: '../../static/wq.png',
content: '公安部8项公安交管便民利企改革新措施解读'
}
];
const current = ref(0);
const change = (e) => {
current.value = e.detail.current;
};
const drivingLicence = () => {
uni.navigateTo({
url: './components/drivingLicence'
});
};
const myCar = ()=>{
uni.navigateTo({
url: './components/myCar'
});
}
const closedclick = (id) => {
if (id == 10) {
uni.navigateTo({
url: './components/businessCenter'
});
}
};
</script>
<style lang="scss">
.content {
width: 710rpx;
background-image: url(@/static/index-bgd.png);
background-size: contain;
background-repeat: no-repeat;
border-radius: 0 0 40rpx 40rpx;
padding: 0 20rpx;
.top {
width: 100%;
height: 100rpx;
display: flex;
align-items: center;
padding: 10rpx 0;
.search {
width: 84%;
}
}
.card {
width: 100%;
height: 200rpx;
display: flex;
justify-content: space-between;
.card-content {
width: 39%;
height: 90%;
border: 1px solid #fffff8;
border-radius: 20rpx;
color: #fffff8;
padding: 0 30rpx;
display: flex;
flex-direction: column;
.card-content-top {
height: 40%;
width: 100%;
display: flex;
align-items: center;
}
.card-content-bottom {
height: 50%;
width: 100%;
display: flex;
flex-direction: column;
justify-content: space-around;
}
}
}
.business {
margin: 3% 0;
height: 380rpx;
background-color: #fff;
border: 1px solid #ebeef0;
border-radius: 20rpx;
box-shadow: 0px 0px 30px 5px rgba(0, 0, 0, 0.1);
display: grid;
grid-template-columns: repeat(5, 1fr);
/* 列间隔 */
.grid-item {
border-radius: 5px;
}
.business-content {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
/* 新增样式 */
white-space: pre-wrap;
/* 或者使用 'normal' */
word-break: normal;
/* 或者使用 'break-word' */
text-align: center;
/* 文字居中对齐 */
}
}
.information {
width: 100%;
height: 300rpx;
background-color: #fff;
border: 1px solid #ebebeb;
border-radius: 20rpx;
box-shadow: 0px 0px 30px 5px rgba(0, 0, 0, 0.1);
.information-top {
width: 100%;
height: 25%;
border-bottom: 1px solid #f4f3f5;
display: flex;
align-items: center;
justify-content: space-between;
}
.information-content {
width: 100%;
height: 65%;
display: flex;
margin-bottom: 50rpx;
.swiper-item {
display: flex;
padding: 20rpx 0;
}
.swiper-text {
width: 60%;
margin-left: 20rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
}
}
}
.bottom {
width: 100%;
height: 300rpx;
.bottom-top {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.bottom-center {
width: 100%;
height: 80rpx;
display: flex;
justify-content: center;
.center-content {
width: 430rpx;
display: flex;
.icon {
width: 30%;
height: 80%;
display: flex;
align-items: center;
justify-content: center;
}
}
}
.bottom-bottom {
width: 100%;
margin-top: 30rpx;
display: flex;
align-items: center;
justify-content: center;
}
}
}
.kefu {
position: absolute;
right: 20rpx;
bottom: 120rpx;
}
</style>