cxc-szcx-uniapp/pages/checkin/index.vue

232 lines
4.0 KiB
Vue

<template>
<view :class="['content',{'gray':store.isgray==1}]">
<customNav>
<view class="nav_box f-row aic">
<view class="back" @click="back">
<uni-icons type="left" size="20" color="#fff"></uni-icons>
</view>
<view class="avatar">
<image :src="store.userinfo.avatar" mode=""></image>
</view>
<view class="f-col">
<view class="name">
{{store.userinfo.realname}}
</view>
<view class="position">
{{store.role}}
</view>
</view>
</view>
</customNav>
<view class="time_box f-row aic jcb">
<view class="box">
<view class="time f-row aic">
<view class="">
上班 9:30
</view>
<image src="../../static/checkin/chenggong.png" mode=""></image>
</view>
<view class="text">
重庆市渝北区上弯路
</view>
</view>
<view class="box">
<view class="time f-row aic">
<view class="">
下班 16:30
</view>
<image src="../../static/checkin/shibai.png" mode=""></image>
</view>
<view class="text">
打卡已超时
</view>
</view>
</view>
<view class="checkin">
<view class=" f-col aic">
<view class="status f-col aic">
<!-- <image src="../../static/checkin/position1.png" mode=""></image>
<image src="../../static/checkin/position2.png" mode=""></image>
<image src="../../static/checkin/position3.png" mode=""></image> -->
<image src="../../static/checkin/position4.png" mode=""></image>
<text>打卡失败</text>
</view>
<view :class="['circle', 'f-col', 'aic','out','check','success','fail']">
<view class="title">
上班打卡
</view>
<view class="time">
9:00
</view>
<view class="ontime">
已超时
</view>
</view>
</view>
</view>
</view>
</template>
<script setup>
import {
useStore
} from '@/store';
const store = useStore();
import customNav from '../../bpm/customNav.vue';
const back = () => {
uni.navigateBack()
}
</script>
<style>
page {
background-color: #f8f8f8;
}
</style>
<style lang="scss" scoped>
.content {
padding-bottom: 120rpx;
}
.nav_box {
position: absolute;
bottom: 16rpx;
left: 0;
width: calc(100% - 60rpx);
}
.back {
padding-left: 30rpx;
}
image {
width: 64rpx;
height: 64rpx;
border-radius: 32rpx;
background-color: #fff;
margin-right: 20rpx;
margin-left: 50rpx;
}
.name {
font-size: 28rpx;
color: #FFFFFF;
}
.position {
font-size: 24rpx;
color: #FFFFFF;
}
.time_box {
padding: 30rpx;
.box {
padding: 40rpx 30rpx;
flex: 1;
box-shadow: 0rpx 2rpx 4rpx 0rpx rgba(0, 0, 0, 0.5);
border-radius: 16rpx;
}
.box:nth-child(1) {
border: 1rpx solid #3AC050;
background: #F5FFF7;
margin-right: 30rpx;
}
.box:nth-child(2) {
background: #FFF7F5;
border: 1rpx solid #F05C43;
}
.time {
font-size: 28rpx;
color: #333333;
image {
width: 28rpx;
height: 28rpx;
margin-left: 10rpx;
}
}
.text {
font-size: 24rpx;
color: #888888;
margin-top: 18rpx;
}
}
.checkin {
margin: 0 30rpx;
background: #FFFFFF;
box-shadow: 0rpx 2rpx 4rpx 0rpx rgba(0, 0, 0, 0.5);
border-radius: 16rpx;
height: 818rpx;
.status {
image {
width: 58rpx;
height: 69rpx;
margin-top: 71rpx;
}
font-weight: 600;
font-size: 46rpx;
color: #F05C43;
text {
margin-top: 23rpx;
}
}
.out {
background-image: url('../../static/checkin/circle1.png');
}
.check {
background-image: url('../../static/checkin/circle2.png');
}
.success {
background-image: url('../../static/checkin/circle3.png');
}
.fail {
background-image: url('../../static/checkin/circle4.png');
}
.circle {
width: 350rpx;
height: 350rpx;
background-size: 350rpx 350rpx;
margin-top: 150rpx;
.title,
.time {
font-weight: 600;
font-size: 46rpx;
color: #333333;
}
.title {
margin-top: 80rpx;
}
.time {
margin-top: 8rpx;
}
.ontime {
font-size: 28rpx;
color: #888888;
margin-top: 12rpx;
}
}
}
</style>