<template>
|
<!-- 打卡 -->
|
<view class="punchTheClock">
|
<!-- 打卡按钮 -->
|
<view class="punchTheClock_container">
|
<view class="punchTheClock_btn"
|
@click="arrive">
|
<view>
|
<p>{{ coalStatus == 2 ? '已签到' : '签到/打卡' }}</p>
|
<p>{{ nowTime }}</p>
|
</view>
|
</view>
|
</view>
|
<view class="entrance-apply">
|
<view class="entrance-apply_block">
|
<u-button text="更换预约时间"
|
@click="entranceApply"></u-button>
|
</view>
|
</view>
|
</view>
|
</template>
|
|
<script>
|
import { todayDate } from '@/utils/util.js';
|
export default {
|
data() {
|
return {
|
nowTime: '',
|
coalStatus: 0,
|
punchTheClockObj: {
|
tmcoa: null,
|
latA: null,
|
latB: null
|
},
|
timeout: '2', //'1' 是超时 '2' 是未超时
|
entranceApplyParams: {
|
takeCoalId: '',
|
filedId: '',
|
deptId: '',
|
sendDate: '',
|
yyId: ''
|
},
|
yuYueSection: '', //预约时间段
|
};
|
},
|
onLoad(params) {
|
this.punchTheClockObj.tmcoa = params.tmId;
|
this.coalStatus = params.coalStatus;
|
this.timeout = params.timeout
|
this.entranceApplyParams.takeCoalId = params.orderPlanId
|
this.entranceApplyParams.filedId = params.filedId
|
this.entranceApplyParams.deptId = params.deptId
|
this.entranceApplyParams.sendDate = params.sendDate
|
this.entranceApplyParams.yyId = params.yyId
|
this.yuYueSection = params.yuYueSection
|
this.getSetting(); //获取授权
|
this.getFuzzyLocation(); //获取位置
|
this.todayDate(); //当前时间
|
},
|
methods: {
|
getSetting() {
|
// 获取权限信息
|
wx.getSetting({
|
success(res) {
|
if (!res.authSetting['scope.userFuzzyLocation']) {
|
wx.authorize({
|
scope: 'scope.userFuzzyLocation',
|
success(res) {
|
uni.showToast({
|
title: '授权成功!'
|
});
|
}
|
});
|
}
|
},
|
fail() {
|
console.log('获取失败');
|
}
|
});
|
},
|
getFuzzyLocation() {
|
let that = this;
|
wx.getFuzzyLocation({
|
type: 'wgs84',
|
success(res) {
|
console.log(res, '获取位置', that);
|
that.punchTheClockObj.latB = res.latitude;
|
that.punchTheClockObj.latA = res.longitude;
|
}
|
});
|
},
|
todayDate() {
|
setInterval(() => {
|
this.nowTime = todayDate('hms');
|
}, 1000);
|
},
|
// 签到
|
arrive() {
|
if (this.punchTheClockObj.latA && this.punchTheClockObj.latB) {
|
console.log(this.punchTheClockObj);
|
this.$reqPost('arrive', this.punchTheClockObj, 'params').then(res => {
|
console.log(res, '签到');
|
if (res.code == 0) {
|
this.$u.toast('签到成功');
|
setTimeout(() => {
|
uni.navigateBack({
|
delta: 1
|
});
|
}, 1000);
|
} else {
|
this.$u.toast(res.msg ? res.msg : '签到失败');
|
}
|
});
|
} else {
|
this.$u.toast('暂获取不到到当前位置');
|
}
|
},
|
entranceApply() {
|
if (this.coalStatus !== 2) {
|
this.$u.toast('请先签到')
|
return
|
}
|
if (this.timeout === '2') {
|
this.$u.toast('未超出预约时间,无需更换');
|
return
|
}
|
uni.navigateTo({
|
url: `/pages/driver-page/appointment/appointment?type=入场申请&takeCoalId=${this.entranceApplyParams.takeCoalId}&yyId=${this.entranceApplyParams.yyId}&filedId=${this.entranceApplyParams.filedId}&deptId=${
|
this.entranceApplyParams.deptId
|
}&sendDate=${this.entranceApplyParams.sendDate}&yuYueSection=${this.yuYueSection}`
|
});
|
}
|
}
|
};
|
</script>
|
|
<style lang="scss"
|
scoped>
|
.punchTheClock {
|
height: 100vh;
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
flex-direction: column;
|
|
.punchTheClock_container {
|
.punchTheClock_btn {
|
width: vww(240);
|
height: vww(240);
|
color: #ffffff;
|
font-size: vww(20);
|
border-radius: 50%;
|
background-color: #36d4e5;
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
|
p {
|
text-align: center;
|
}
|
}
|
|
.punchTheClock_text {
|
display: flex;
|
justify-content: center;
|
margin-top: vww(20);
|
color: #b8b8b8;
|
|
.text {
|
margin-left: vww(5);
|
}
|
}
|
}
|
|
.entrance-apply {
|
width: 100%;
|
display: flex;
|
justify-content: center;
|
position: fixed;
|
bottom: vww(50);
|
|
&_block {
|
width: 50%;
|
|
/deep/.u-button {
|
font-size: 28rpx;
|
font-weight: 300;
|
color: #ffffff !important;
|
background: #497bfb !important;
|
letter-spacing: 4rpx;
|
border-radius: 37rpx 37rpx 37rpx 37rpx !important;
|
box-shadow: 2rpx 3rpx 13rpx 0rpx rgba(43, 98, 239, 0.5), 0rpx 0rpx 9rpx 0rpx rgba(247, 250, 253, 0.29);
|
}
|
}
|
}
|
}
|
</style>
|