From 8ea19a6bb34daab1410f6186992a4c1e90299c92 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Wed, 14 Sep 2022 08:54:44 +0800
Subject: [PATCH] 服务器配置

---
 pages/clockSignIn/clockSignIn.vue |  460 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 455 insertions(+), 5 deletions(-)

diff --git a/pages/clockSignIn/clockSignIn.vue b/pages/clockSignIn/clockSignIn.vue
index 1dbaa93..4bc0e29 100644
--- a/pages/clockSignIn/clockSignIn.vue
+++ b/pages/clockSignIn/clockSignIn.vue
@@ -1,6 +1,54 @@
 <template>
 	<view class="content">
-		<web-view :src="urls"></web-view>
+		<!-- 自定义顶部导航栏 -->
+		<u-navbar 
+			:is-back="true" 
+			title="考勤打卡" 
+			:background="background"
+			back-icon-color="#FFF"
+			title-color="#FFF"
+			>
+			<view class="navbar-right" slot="right">考勤记录</view>	
+		</u-navbar>
+		<view class="clock-time-background"></view>
+		<view class="clock-time">
+			<view class="clock-info">
+				<view class="clock-left">
+					<view class="clock-up-radiu"></view>
+					<view class="clock-line"></view>
+					<view class="clock-down-radiu"></view>
+				</view>
+				<view class="clock-right">
+					<view class="up-time">上班时间:&nbsp;08:30</view>
+					<view class="clock-btn">
+						<view class="btn1">
+							<view class="btn0">
+								<view class="btn">
+									<view class="btn-title" @click="goClock()">打卡</view>
+									<view class="btn-time">{{nowTime}}</view>
+								</view>
+							</view>
+						</view>
+					</view>
+					<view class="clock-position-info">
+						<view class="clock-position-box">
+							<view class="clock-position" v-if="isPositionThan==true">
+								<image src="../../static/images/clock/position01.png"/>
+								&nbsp;您已进入考勤范围:&nbsp;{{address}}</view>
+							<view class="clock-position" v-if="isPositionThan==false">
+								<image src="../../static/images/clock/position01.png"/>
+								&nbsp;不在考勤范围:&nbsp;{{address}}</view>
+						</view>
+					</view>
+					
+					<view class="down-time">下班时间:&nbsp;18:00</view>
+				</view>
+			</view>
+		</view>
+		<iframe id="geoPage" width=0 height=0 frameborder=0  style="display:none;" scrolling="no"
+		    src="https://apis.map.qq.com/tools/geolocation?key=T7RBZ-62U3X-RSQ4P-ZZVCB-WE7JT-HRBOG&referer=myapp">
+		</iframe>
+		<!-- <web-view :src="urls"></web-view> -->
 	</view>
 </template>
 
@@ -8,18 +56,420 @@
 	export default {
 		data() {
 			return {
-				urls: ''
+				urls: '',
+				nowTime:'',
+				name:'',
+				code:'',
+				jd:'',
+				wd:'',
+				address:'',
+				isPositionThan:false,
+				background:{
+					backgroundColor:"#0BB9C8"
+				}
 			}
 		},
-		methods: {},
-		mounted() {},
+		mounted() {
+			//获取当前位置信息
+			this.getNowPosition();
+			//获取时钟
+			setInterval(() => {
+			    this.nowTime = this.getNowTime(3)
+			}, 1000);
+		},
 		onLoad: function(options) {
+			//获取个人信息
+			this.getOneselfInFo();
 			//long 转换为字符串
 			var code = JSON.stringify(this.$store.state.puserID.toString());
-			this.urls = "http://s16s652780.51mypc.cn/xcxjingqingmap_clock_sign_in/xcxmap.html?snumber="+code;
+			this.urls = "http://106.225.193.35:83/xcxjingqingmap_clock_sign_in/xcxmap.html?snumber="+code;
 		},
+		methods: {
+			//获取当前位置信息
+			getNowPosition(){
+				var that = this;
+				uni.getLocation({
+				    type: 'wgs84',
+					geocode:'true',
+				    success: function (res) {
+				        console.log('当前位置:' + res);
+				        console.log('当前位置longitude:' + res.longitude);
+				        console.log('当前位置latitude:' + res.latitude);
+						//114.921652006005 25.8457176283118
+						// that.jd =  '114.921652006005';
+						// that.wd =  '25.8457176283118';
+						that.jd =  res.longitude;
+						that.wd =  res.latitude;
+						//通过经纬度换算详细地址
+						that.getAddress();
+						//位置比对
+						that.positionThan();
+				    }
+				});
+			},
+			//返回上一页
+			goBack() {
+				uni.navigateBack({})
+			},
+			//通过经纬度换算详细地址
+			getAddress(){
+				var that = this;
+				uni.request({
+					url: `https://fmap.sf-express.com/rgeo/api`,
+					method: "GET",
+					data:{
+						x: that.jd,
+						y: that.wd,
+						ak: '1986afc8a5744263971b7f2482253dfc'
+					},
+					header:{
+						'Content-type':'application/x-www-form-urlencoded'
+					},
+					success(res) {
+						that.address = res.data.result.pois[0].name
+					}
+				})
+			},
+			//比对考勤位置
+			positionThan(){
+				var that = this;
+				uni.request({
+					url: this.$store.state.piAPI + `/attendance/positionThan`,
+					method: "GET",
+					data:{
+						number: this.code,
+						jd: this.jd,
+						wd: this.wd
+					},
+					header:{
+						'Content-type':'application/x-www-form-urlencoded'
+					},
+					success(resdata) {
+						//不在考勤范围内
+						resdata.data.data==true?that.isPositionThan = true:that.isPositionThan = false;
+					}
+				})
+			},
+			
+			//获取个人信息
+			getOneselfInFo() {
+			    var that = this;
+			    //保安信息查询
+				uni.request({
+					url:that.$store.state.piAPI + '/blade-user/details?id='+this.$store.state.puserID,
+					method:'POST',
+					success(resdata) {
+						that.name = resdata.data.data.realName;
+						that.code = resdata.data.data.code;
+					}
+				})
+			},
+			
+			//去打卡
+			goClock() {
+			    var that = this;
+			    uni.request({
+			    	url: this.$store.state.BaopiAPI + `/attendance/AppSave`,
+					method: "POST",
+					data:{
+					    number: this.code,
+					    name: this.name,
+					    clockTime: this.getNowTime(1),
+					    jd: this.jd,
+					    wd: this.wd,
+					    address: this.address
+					},
+					header:{
+						'Content-type':'application/x-www-form-urlencoded'
+					},
+					success(resdata) {
+						//不在考勤范围内
+						if (resdata.data.code == 400) {
+							uni.showToast({
+							    title: '不在考勤范围,打卡失败!',
+								icon:'none',
+							    duration: 2000
+							});
+						}
+						//打卡成功
+						if (resdata.data.code == 200) {
+							uni.showToast({
+							    title: '打卡成功!',
+								icon:'success',
+							    duration: 2000
+							});
+						}
+					}
+			    })
+			},
+			
+			//获取当前时间
+			getNowTime(type) {
+			    //1、获得当前时间,格式化时间
+			    var now = new Date();
+			    var year = now.getFullYear();
+			    var month = now.getMonth() + 1;
+			    if (month < 10) {
+			        month = "0" + month;
+			    }
+			    var date = now.getDate();
+			    if (date < 10) {
+			        date = "0" + date;
+			    }
+			    var hour = now.getHours();
+			    if (hour < 10) {
+			        hour = "0" + hour;
+			    }
+			    var minute = now.getMinutes();
+			    if (minute < 10) {
+			        minute = "0" + minute;
+			    }
+			    var second = now.getSeconds();
+			    if (second < 10) {
+			        second = "0" + second;
+			    }
+			    var nowstr = null;
+			    if (type == 1) {
+			        nowstr = year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second;
+			    }
+			    if (type == 2) {
+			        nowstr = year + "年" + month + "月" + date + "日 " + hour + ":" + minute + ":" + second;
+			    }
+				if (type == 3) {
+				    nowstr = hour + ":" + minute + ":" + second;
+				}
+			    return nowstr;
+			},
+		},
+		
 	}
 </script>
 
 <style>
+	page{
+		width: 100%;
+		height: 100%;
+		/* background-color: #FCFBFC; */
+		background-color: #F7f7f7;
+	}
+</style>
+
+<style lang="scss" scoped>
+	
+	.btn0{
+		width: 6.5rem;
+		height: 6.5rem;
+		// background-image: linear-gradient(to bottom,#C6F1E2,#C6F1E2);
+		background-color: #C6F1E2;
+		border-radius: 100px;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+	
+	.btn1{
+		width: 7rem;
+		height: 7rem;
+		// background-image: linear-gradient(to bottom,#EBF2F0,#EBF2F0);
+		background-color: #EBF2F0;
+		border-radius: 100px;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+	
+	
+	.navbar-right{
+		color: #fff;
+		font-size: 0.7rem;
+		margin-right: 1.5rem;
+		margin-top: 0.2rem;
+	}
+	
+	.content{
+		width: 100%;
+		height: 100%;
+		
+		.uni-nav-bar-info {
+			display: flex;
+			flex-direction: row;
+			align-items: center;
+			// background-color:#0078A8;
+			width: 92%;
+			margin: 0 auto;
+			height: 50px;
+			margin-top: 20px;
+			
+			.uni-nav-bar-left {
+				width: 15%;
+				display: flex;
+				justify-items: center;
+				
+				image {
+					background-color: #00BFFF;
+					width: 1.6rem;
+					height: 1.6rem;
+				}
+			}
+		
+			.title {
+				width: 70%;
+				font-weight: 550;
+				letter-spacing: 1px;
+				text-align: center;
+			}
+		
+		
+			.right {
+				width: 15%;
+				display: flex;
+				justify-items: center;
+				margin-top: 0.2rem;
+				
+				.title-right {
+					font-size: 0.8rem;
+					color: #808080;
+				}
+			}
+		
+		
+		}
+		
+		
+		.clock-time-background{
+			width: 100%;
+			height: 15rem;
+			// background-color: #F5F5F5;
+			background-color: #F3F3F3;
+		}
+		
+		
+		.clock-time{
+			width: 100%;
+			height: 20rem;
+			margin-top: -15rem;
+			// background-color: #0078A8;
+			
+			.clock-info{
+				width: 100%;
+				height: 100%;
+				display: flex;
+				flex-direction: row;
+				// margin: 0 auto;
+				
+				.clock-left{
+					width: 10%;
+					margin-top: -1rem;
+					margin-left: 8%;
+					display: flex;
+					flex-direction: column;
+					// background-color: #00FFFF;
+					align-items: center;
+					justify-content: center;
+					
+					.clock-up-radiu{
+						width: 0.9rem;
+						height: 0.9rem;
+						border-radius: 100px;
+						border: 2px solid #6DC7A9;
+					}
+					
+					.clock-line{
+						width: 1.5px;
+						height: 15rem;
+						background-color: #EDEDED;
+					}
+					
+					.clock-down-radiu{
+						width: 0.9rem;
+						height: 0.9rem;
+						border-radius: 100px;
+						border: 2px solid #6DC7A9;
+					}
+					
+				}
+				
+				.clock-right{
+					width: 64%;
+					height: 100%;
+					margin-top: 1rem;
+					display: flex;
+					flex-direction: column;
+					
+					.up-time{
+						width: 100%;
+						height: 1.5rem;
+						margin-top: -0.2rem;
+					}
+					
+					.clock-btn{
+						width: 100%;
+						height: 9.5rem;
+						display: flex;
+						justify-content: center;
+						align-items: center;
+						// background-color: #007AFF;
+						// margin-left: 5rem;
+						
+						
+						.btn{
+							width: 6rem;
+							height: 6rem;
+							border-radius: 100px;
+							color: #FFFFFF;
+							background-image: linear-gradient(to bottom,#0FD0E1,#0FD0E1);
+							display: flex;
+							flex-direction: column;
+							align-items: center;
+							justify-content: center;
+							
+							.btn-title{
+								font-size: 1.2rem;
+							}
+						}
+					}
+					
+					.clock-position-info{
+						width: 100%;
+						display: flex;
+						// align-items: center;
+						// justify-content: center;
+						text-align: center;
+					}
+					
+					.clock-position-box {
+						width: 100%;
+						display: flex;
+						justify-content: center;
+						font-size: 0.8rem;
+					}
+				
+					.clock-position{
+						height: 2rem;
+						// float: left;
+						// display: flex;
+						// align-items: center;
+						// justify-content: center;
+						
+						image{
+							width: 1.5rem;
+							height: 1.2rem;
+							float: left;
+							// margin-left: 2rem;
+						}
+						
+					}
+					
+					
+					.down-time{
+						height: 7rem;
+						line-height: 7rem;
+						
+						// margin-top: 2.3rem;
+					}
+				}
+			}
+		}
+	}
+	
 </style>
\ No newline at end of file

--
Gitblit v1.9.3