530 lines
11 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>
<view class="fullHeight personContent">
<image src="/static/personManage/titleBG.png" class="titleBg"></image>
<headers :showBack="true" :themeType="'white'">
<view class="headerName">
车辆管理
</view>
</headers>
<view class="topBox" :style="{ 'margin-top': (200-statusBarHeight-44 - 110) + 'px' }">
<image src="/static/personManage/left.png" class="topBoxBG" v-show="tabIndex==0"></image>
<image src="/static/personManage/right.png" class="topBoxBG" v-show="tabIndex==1"></image>
<view class="item item1">
<view class="itemInner" @click="tabIndex=0">
<view class="">
<view class="txt" :class="tabIndex==0?'active':''">
今日总进场次数
</view>
<view class="num">
{{statictisData.innum}}
</view>
</view>
</view>
<view class="itemInner" @click="tabIndex=1">
<view class="">
<view class="txt" :class="tabIndex==1?'active':''">
今日总出场次数
</view>
<view class="num">
{{statictisData.outnum}}
</view>
</view>
</view>
</view>
<view class="item item2">
<view class="itemInner">
<view class="" v-if="tabIndex==0">
<view class="txt">
<text>外来车辆进场车次</text>
</view>
<view class="num">
{{statictisData.wlcInNum}}
</view>
</view>
<view class="" v-else>
<view class="txt">
<text>外来车辆出场车次</text>
</view>
<view class="num">
{{statictisData.wlcOutNum}}
</view>
</view>
</view>
<view class="itemInner" v-if="tabIndex==0">
<view class="">
<view class="txt">
<text>固定车辆进场车次</text>
</view>
<view class="num">
{{statictisData.gdcInNum}}
</view>
</view>
</view>
<view class="itemInner" v-else>
<view class="">
<view class="txt">
<text>固定车辆出场车次</text>
</view>
<view class="num">
{{statictisData.gdcOutNum}}
</view>
</view>
</view>
</view>
<view class="item item3">
<view class="itemInner">
<view class="" v-if="tabIndex==0">
<view class="txt">
<text>长期车进场车次</text>
</view>
<view class="num">
{{statictisData.cqcInNum}}
</view>
</view>
<view class="" v-else>
<view class="txt">
<text>长期车出场车次</text>
</view>
<view class="num">
{{statictisData.cqcOutNum}}
</view>
</view>
</view>
<view class="itemInner">
<view class="" v-if="tabIndex==0">
<view class="txt">
临时车进场车次
</view>
<view class="num">
{{statictisData.lscInNum}}
</view>
</view>
<view class="" v-else>
<view class="txt">
临时车出场车次
</view>
<view class="num">
{{statictisData.lscOutNum}}
</view>
</view>
</view>
</view>
</view>
<view class="middleBox" v-if="COMPANY != 'longguang' && COMPANY != 'nanchang'">
<view class="box" @click="viewWorkerAnalysis">
<image src="/static/card.png" class="img" style="width: 40rpx;height: 19px;"></image>
<view class="data-count">
<view @click="toCarList(1)">
<text>固定车总数</text>
<text>{{carstatictisData.gdcNum}}</text>
</view>
<view @click="toCarList(2)">
<text>长期车总数</text>
<text>{{carstatictisData.cqcNum}}</text>
</view>
<view @click="toCarList(3)">
<text>临时车总数</text>
<text>{{carstatictisData.lscNum}}</text>
</view>
</view>
</view>
</view>
<view class="box operateBox">
<!-- <view class="item" @click="viewSafeMange">
<view class="imgBox">
<image src="/static/personManage/aqjy.png" mode="" style="width: 29px;height: 40rpx;"></image>
</view>
<view class="txt">
安全教育
</view>
</view> -->
<!-- <view v-if="COMPANY != 'longguang'" class="item" @click="goClockIn" v-show="mobileAttendance==0">
<view class="imgBox">
<image src="/static/personManage/ydkq.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
</view>
<view class="txt">
移动考勤
</view>
</view>
<view class="item" v-if="COMPANY == 'longguang'" @click="viewTeamList" v-show="mobileAttendance==0">
<view class="imgBox">
<image src="/static/personManage/cdw.png" mode="" style="width: 24rpx;height: 24rpx;"></image>
</view>
<view class="txt">
查队伍
</view>
</view> -->
<view class="item" @click="viewRecord(0)">
<view class="imgBox">
<image src="/static/carManage/icon1.png" mode="" style="width: 70rpx;height: 50rpx;"></image>
</view>
<view class="txt">
车辆通行记录
</view>
</view>
<view class="item" @click="viewRecord(1)">
<view class="imgBox">
<image src="/static/carManage/icon2.png" mode="" style="width: 80rpx;height: 70rpx;"></image>
</view>
<view class="txt">
车辆黑白名单统计
</view>
</view>
</view>
<!-- <view class="tabBarBox">
<view class="item active">
<image src="/static/personManage/index.png" class="img"></image>
<view class="txt">
首页
</view>
</view>
<view class="item" @click="queryStaff">
<image src="/static/personManage/search.png" class="img"></image>
<view class="txt">
查人员
</view>
</view>
</view> -->
<view class="tabBarBox" v-if="COMPANY == 'agjt'">
<view class="item active">
<image src="/static/personManage/index.png" class="img"></image>
<view class="txt">
首页
</view>
</view>
<view class="item" @click="queryStaff">
<image src="/static/personManage/search.png" class="img"></image>
<view class="txt">
查车辆
</view>
</view>
<!-- <view class="item">
<image src="/static/personManage/location.png" class="img"></image>
<view class="txt">
定位
</view>
</view> -->
</view>
<levitatedsphere :x="100" :y="80"></levitatedsphere>
</view>
</template>
<script>
import levitatedsphere from "@/components/levitatedsphere/levitatedsphere.vue"
import headers from "../../../components/headers/headers.vue"
export default {
data() {
return {
projectDetail: null,
statictisData: {},
statusBarHeight: 0,
tabIndex: 0,
mobileAttendance:1,//是否能移动考勤0是1否
carstatictisData: {}
};
},
onLoad() {
this.statusBarHeight = uni.getStorageSync('systemInfo').statusBarHeight
this.projectDetail = JSON.parse(uni.getStorageSync('projectDetail'))
this.mobileAttendance=JSON.parse(uni.getStorageSync('userInfo')).mobileAttendance
this.loadData()
this.loadCarData()
},
methods: {
loadCarData(){
var that = this
this.sendRequest({
url: 'xmgl/carInfo/countCarModuleType',
data: {
projectSn: this.projectDetail.projectSn
},
method: "POST",
success(res) {
that.carstatictisData = res.result
console.log('获取的数据',that.carstatictisData);
}
})
},
loadData() {
var that = this
this.sendRequest({
url: 'xmgl/carPassRecord/getTodayOutInNumber',
data: {
projectSn: this.projectDetail.projectSn
},
method: "GET",
success(res) {
that.statictisData = res.result
console.log('获取的数据',that.statictisData);
}
})
},
viewWorkerAnalysis() {
uni.navigateTo({
url: './workerAnalysis'
})
},
viewSafeMange() {
uni.navigateTo({
url: './safetyEducationManage/index'
})
},
viewTeamList() {
uni.navigateTo({
url: './searchTeam/teamList'
})
},
goClockIn() {
var userInfo = JSON.parse(uni.getStorageSync('userInfo'))
if (userInfo.accountType == 6) {
uni.navigateTo({
url: './clockIn?faceScore='
})
// uni.navigateTo({
// url:'./faceRecognition'
// })
} else {
uni.showModal({
title: '提示',
content: '只有项目子账号才能使用该功能!'
})
}
},
toCarList(carType){
uni.navigateTo({
url: './index?listType=1' + '&carType=' + carType
})
},
viewRecord(type) {
uni.navigateTo({
url: './index?listType=' + type
})
},
safeMeeting(){
uni.navigateTo({
url:'../../videoManage/safeMeeting?sn='+this.projectDetail.projectSn
})
},
viewVideo(){
uni.navigateTo({
url: '../../videoManage/videoList?sn='+this.projectDetail.projectSn+'&pageType=backEnd'
})
},
//查询人员
queryStaff(){
uni.navigateTo({
url: './queryStaff'
})
},
}
}
</script>
<style lang="scss" scoped>
.personContent {
color: $uni-text-color2;
font-size: 30rpx;
:deep(.headerBox){
background-color: transparent;
border-bottom: none;
}
}
.titleBg {
width: 100%;
position: absolute;
top: 0;
left: 0;
height: 200px;
}
.middleBox {
display: flex;
align-items: center;
margin: 30rpx;
.box {
flex: 1;
display: inline-flex;
align-items: center;
height: 65px;
&:first-child {
margin-right: 10rpx;
}
.img {
margin-right: 16rpx;
margin-left: 40rpx;
}
.data-count{
flex: 1;
display: flex;
justify-content: space-around;
>view{
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text:nth-child(1){
color: #3C3C3C;
font-size: 28rpx ;
}
text:nth-child(2){
color: #5382F6;
font-size: 30rpx ;
}
}
}
}
}
.box {
box-shadow: 0 4px 24px 0px rgba(212, 220, 236, 0.69);
border-radius: 16rpx;
}
.operateBox {
display: flex;
align-items: center;
font-size: 24rpx;
height: 96px;
margin: 0 30rpx;
.item {
flex: 1;
.imgBox {
height: 24rpx;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 20rpx;
}
.txt {
text-align: center;
}
}
}
.tabBarBox {
display: flex;
align-items: center;
font-size: 24rpx;
border-top: 1px solid rgba(151, 151, 151, 0.2);
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 64rpx;
.item {
flex: 1;
// display: inline-flex;
text-align: center;
color: rgba(148, 149, 173, 1);
.img {
width: 70rpx;
height: 70rpx;
}
&.active {
color: rgba(72, 141, 236, 1);
}
}
}
.topBox {
margin: 0 10rpx;
position: relative;
height: 270px;
z-index: 4;
.topBoxBG {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
}
.item {
margin: 0 20rpx;
display: flex;
.itemInner {
display: inline-flex;
flex: 1;
align-items: center;
justify-content: center;
&:first-child {
border-right: 1px solid rgba(55, 45, 102, 0.1);
}
}
.txt {
color: rgba(55, 45, 102, 0.6);
font-size: 30rpx;
text-align: center;
}
.active {
color: rgba(55, 45, 102, 1);
font-weight: bold;
}
.num {
font-size: 40rpx;
font-weight: bold;
text-align: center;
}
}
.item1 {
height: calc(33% - 20rpx);
padding-top: 20rpx;
.itemInner {
&:first-child {
border-right: none;
}
}
}
.item2 {
height: 20%;
margin: 4% 20rpx;
// padding-bottom: 2%;
// .itemInner{
// padding-bottom: 20rpx;
// }
}
.item3 {
padding-top: 4%;
height: 20%;
position: relative;
&::after {
content: "";
position: absolute;
left: 5%;
width: 90%;
top: 0px;
border-top: 1px solid rgba(55, 45, 102, 0.1);
}
}
}
</style>