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

385 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>
<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(1)">
<view class="card-content-top">
<image @click.stop="myCar(0)" style="width: 50rpx; height: 40rpx" src="../../static/car.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 :val="0" />
</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 = (val) => {
uni.navigateTo({
url: `./components/myCar?judge=${val}`,
});
};
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: 240rpx;
}
</style>