<template>
	<view class="pad-x100">
		<!-- 头部 -->
		<status-nav :ifReturn="false" navBarTitle="打卡小程序" :titleColor="titleColor" :backgroudColor="backgroudColor"></status-nav>
		<view class="content">
			<!-- 打卡 -->
			<view class="sign-top font24 color-white" :style="{'padding-top':statusHeight+50+'px'}">
				<image src="/static/sign-bg.jpg" mode="aspectFill"></image>
				<view class="name font30 gd-name" v-if="isLoding">{{siteInfo.name}}</view>
				<view class="sign-btn orange" @tap="showRadioEv" v-if="buttonColor=='orange'">
					<text class="font56">打卡</text>
					<text>{{currenTime}}</text>
				</view>
				<view class="sign-btn green" @tap="showRadioEv" v-else-if="buttonColor=='green'">
					<text class="font56">已打卡</text>
					<text>{{currenTime}}</text>
				</view>
				<view class="sign-btn" @tap="showRadioEv" v-else>
					<text class="font56">打卡</text>
					<text>{{currenTime}}</text>
				</view>
				<view class="sign-site">
					<view class="sign-time">
						<text>{{currentDate}}</text>
						<text>{{currentWeek}}</text>
					</view>
					<view class="position" v-if="isLoding">
						<view class="warning" v-if="!siteInfo.name">
							<image src="/static/icon/icon-warning.png" mode="aspectFit"></image>
							<text class="color-yellow">不在范围内</text>
						</view>
						<view class="position-btn" @tap="getLocationEv(1)">
							<image src="/static/icon/icon-position.png" mode="aspectFit"></image>
							<text>重新定位</text>
						</view>
					</view>
				</view>
			</view>
			<!-- 打卡记录 -->
			<view class="sign-record bg-white">
				<view class="title">
					<image src="/static/icon/icon-sign.png" mode="aspectFit"></image>
					<text class="color-blue font28">今日打卡记录</text>
				</view>
				<view class="item font26" v-for="(item,index) in signList" :key="index">
					<view class="info">
						<text>{{item.type_text}}打卡:{{item.is_replenish==1?'补打卡':item.created_at.substr(item.created_at.length-8)}}</text>
						<text v-if="item.role!==0">打卡工地:{{item.worksite_name}}</text>
					</view>
					<view class="state" v-if="item.role!==0&&item.status==1">{{item.status_text}}</view>
					<view class="state color-blue" v-if="item.role!==0&&item.status==0">{{item.status_text}}</view>
					<view class="state color-red" v-if="item.role!==0&&item.status==-1">{{item.status_text}}</view>
				</view>
				<!-- 加载更多 -->
				<view class="more-tips font24" style="margin-bottom: 15rpx;" v-if="signList.length==0">今日没有打卡记录</view>
			</view>
			<!-- 打卡日历 -->
			<view class="sign-calendar">
				<sign-calendar ref="signCalendar" :daysIndex="daysIndex" @getDate="getDate"></sign-calendar>
			</view>
		</view>
		
		<!-- 打卡类型选择 -->
		<view class="pop-up-bg" v-if="showRadio">
			<view class="sign-cate bg-white">
				<view class="title font34">请确认打卡类型</view>
				<view class="txt font28">
					<view class="radio-item" @tap="changeSignType(index)" v-for="(item,index) in radioList" :key="index">
						<view :class="radioIndex==index?'checked':''"></view>
						<view>{{item.title}}</view>
					</view>
				</view>
				<!-- 审核按钮 -->
				<view class="sign-cate-btns color-white font30">
					<view class="btn" @tap="showRadio=false,radioIndex=0">取消</view>
					<view class="btn" @tap="signEv">确认</view>
				</view>
			</view>
		</view>
		
		<!-- 公告 -->
		<view class="pop-up-bg" v-if="ifNotice||ifWsNotice">
			<view class="safety-bulletin bg-white">
				<view class="title font34">{{ifNotice?'公告':'工地公告'}}</view>
				<view class="txt font24">
					<rich-text :nodes="ifNotice?notice:wsNotice"></rich-text>
				</view>
				<view class="close-btn font30 color-66" @tap="closeNotice">关闭</view>
			</view>
		</view>
		
		<!-- 安全告知 -->
		<view class="pop-up-bg" v-if="!isRead && safetyBulletin!==''">
			<view class="safety-bulletin bg-white">
				<view class="title font34">安全告知</view>
				<view class="txt font24">
					<rich-text :nodes="safetyBulletin"></rich-text>
				</view>
				<view class="close-btn font30 color-66" @tap="closeSafetyBulletin">关闭</view>
			</view>
		</view>
		
		<!-- 审核通知 -->
		<view class="pop-up-bg" v-if="isNotice">
			<view class="sign-cate bg-white">
				<view class="title font34">审核通知</view>
				<view class="txt notice-msg font28">不通过原因:{{noticeInfo.msg}}</view>
				<!-- 审核按钮 -->
				<view class="sign-cate-btns color-white font30">
					<view class="btn" @tap="closeEdit">取消</view>
					<view class="btn" @tap="editEv">修改</view>
				</view>
			</view>
		</view>
		
		<!-- 注册工人信息 -->
		<view class="pop-up-bg" v-if="ifRegister"> <!-- v-if="ifRegister" -->
			<view class="register-information font24 bg-white">
				<view class="item">
					<view class="title">姓名</view>
					<input class="input" type="text" v-model="registerObj.real_name" placeholder="请填写姓名">
				</view>
				<view class="item">
					<view class="title">电话号码</view>
					<input class="input" type="number" v-model="registerObj.mobile" placeholder="请填写电话号码">
				</view>
				<view class="item">
					<view class="title">身份证</view>
					<input class="input" type="text" v-model="registerObj.card_number" placeholder="请填写身份证号码">
				</view>
				<view class="item item-other" style="align-items: flex-start;">
					<view class="title" style="margin-top: 18rpx;">身份证正面</view>
					<view class="upload-box">
						<view class="img" v-if="registerObj.id_front!==''" @tap.stop="previewImage(baseHttps+registerObj.id_front)">
							<image :src="baseHttps+registerObj.id_front" mode="widthFix"></image>
							<image class="del-btn" src="/static/icon/icon-del.png" mode="widthFix" @tap.stop="delImg(index,'positive')"></image>
						</view>
						<view class="upload-btn" @tap="changeImg('positive')" v-else>
							<view class="bg">
								<image src="/static/id-front.jpg" mode="aspectFill"></image>
							</view>
							<view class="icon">
								<image src="/static/icon/icon-camera.png" mode="widthFix"></image>
								<text class="font22 color-white">拍摄身份证正面</text>
							</view>
						</view>
					</view>
				</view>
				<view class="item item-other" style="align-items: flex-start;">
					<view class="title" style="margin-top: 18rpx;">身份证反面</view>
					<view class="upload-box">
						<view class="img" v-if="registerObj.id_back!==''" @tap.stop="previewImage(baseHttps+registerObj.id_back)">
							<image :src="baseHttps+registerObj.id_back" mode="widthFix"></image>
							<image class="del-btn" src="/static/icon/icon-del.png" mode="widthFix" @tap.stop="delImg(index,'back')"></image>
						</view>
						<view class="upload-btn" @tap="changeImg('back')" v-else>
							<view class="bg">
								<image src="/static/id-back.jpg" mode="aspectFill"></image>
							</view>
							<view class="icon">
								<image src="/static/icon/icon-camera.png" mode="widthFix"></image>
								<text class="font22 color-white">拍摄身份证反面</text>
							</view>
						</view>
					</view>
				</view>
				<view class="item">
					<view class="title">技术岗位</view>
					<picker class="input" mode="selector" :range="positionList" @change="choicePosition" :value="positionIndex" :range-key="'name'">
						<view class="name">
							<text>{{positionList[positionIndex].name}}</text>
							<image src="/static/icon/icon-arrow-01.png" mode="aspectFit"></image>
						</view>
					</picker>
				</view>
				
				<view class="item">
					<view class="title">班组</view>
					<picker class="input" mode="selector" :range="teamList" @change="choiceTeam" :value="teamIndex" :range-key="'name'">
						<view class="name">
							<text>{{teamList[teamIndex].name}}</text>
							<image src="/static/icon/icon-arrow-01.png" mode="aspectFit"></image>
						</view>
					</picker>
				</view>
				<view class="item">
					<view class="title">证件名称</view>
					<input class="input" type="text" v-model="registerObj.certificate" placeholder="请填写证件名称">
				</view>
				<view class="item">
					<view class="title">工资</view>
					<input class="input" type="number" v-model="registerObj.pay" placeholder="请填写工资">
				</view>
				<view class="item">
					<view class="title">紧急联系人</view>
					<input class="input" type="text" v-model="registerObj.emergency_contact" placeholder="请填写紧急联系人">
				</view>
				<view class="item">
					<view class="title">联系人电话</view>
					<input class="input" type="number" v-model="registerObj.emergency_phone" placeholder="请填写联系人电话">
				</view>
				<view class="item">
					<view class="title">银行卡户名</view>
					<input class="input" type="text" v-model="registerObj.bank_card_name" placeholder="请填写银行卡户名">
				</view>
				<view class="item">
					<view class="title">银行卡号</view>
					<input class="input" type="number" v-model="registerObj.bank_card_number" placeholder="请填写银行卡号">
				</view>
				<view class="item">
					<view class="title">开户行</view>
					<input class="input" type="text" v-model="registerObj.bank_name" placeholder="请填写开户行">
				</view>
				<view class="item item-other" style="align-items: flex-start;">
					<view class="title" style="margin-top: 18rpx;">银行卡拍照</view>
					<view class="upload-box">
						<view class="img" v-if="registerObj.bank_card_img!==''" @tap.stop="previewImage(baseHttps+registerObj.bank_card_img)">
							<image :src="baseHttps+registerObj.bank_card_img" mode="widthFix"></image>
							<image class="del-btn" src="/static/icon/icon-del.png" mode="widthFix" @tap.stop="delImg(index,'bank')"></image>
						</view>
						<view class="upload-btn" @tap="changeImg('bank')" v-else>
							<view class="bg">
								<image src="/static/bank.jpg" mode="aspectFill"></image>
							</view>
							<view class="icon">
								<image src="/static/icon/icon-camera.png" mode="widthFix"></image>
								<text class="font22 color-white">拍摄银行卡</text>
							</view>
						</view>
					</view>
				</view>
				<view class="item item-other" style="align-items: flex-start;">
					<view class="title" style="margin-top: 18rpx;">工作经验</view>
					<textarea class="input textarea" v-model="registerObj.work_experience" placeholder="请填写工作经验"></textarea> 
				</view>
				<view class="item item-other" style="align-items: flex-start;">
					<view class="title" style="margin-top: 18rpx;">现住地址</view>
					<view class="addr-box">
						<picker mode="region" @change="changeAddress">
							<view class="addr-input">
								<view class="input-box">
									<input class="input-flex clips1" type="text" v-model="registerObj.province" disabled="true">
									<image src="/static/icon/icon-arrow-01.png" mode="widthFix"></image>
								</view>
								<view class="input-box">
									<input class="input-flex clips1" type="text" v-model="registerObj.city" disabled="true">
									<image src="/static/icon/icon-arrow-01.png" mode="widthFix"></image>
								</view>
								<view class="input-box">
									<input class="input-flex clips1" type="text" v-model="registerObj.area" disabled="true">
									<image src="/static/icon/icon-arrow-01.png" mode="widthFix"></image>
								</view>
							</view>
						</picker>
						<input class="input" type="text" v-model="registerObj.address_now" placeholder="请填写详细地址">
					</view>
				</view>
				<view class="register-btns color-white font30">
					<view class="btn cancel-btn bg-99" @tap="cancelRegister">取消</view>
					<view class="btn submit-btn bg-blue" @tap="submitRegister">提交</view>
				</view>
			</view>
		</view>
		
		<!-- 尾部 -->
		<tabbar :userType="userType"></tabbar>
	</view>
</template>
<script>
	import signCalendar from '@/components/sign-calendar/sign-calendar';
	import tabbar from '@/components/tabbar/tabbar';
	export default {
		components:{
			signCalendar,
			tabbar
		},
		data() {
			return {
				statusHeight:uni.getSystemInfoSync().statusBarHeight, //状态栏高度
				userType:'', //账户类型 工人:worker 负责人:director
				frontColor:'#ffffff', //状态栏文字颜色
				backgroudColor:'none', //导航栏背景
				titleColor:'#ffffff', //导航栏颜色
				radioList:[
					{title:'上午上班',type:'morning_on'},
					{title:'上午下班',type:'morning_off'},
					{title:'下午上班',type:'afternoon_on'},
					{title:'下午下班',type:'afternoon_off'}
				],//打卡类型
				radioIndex:0, //当前选择
				showRadio:false, //是否显示上班类型
				currentDate:'', //当前日期
				currentWeek:'', //当前星期几
				currenTime:'', //实时时间
				siteInfo:{}, //定位工地
				signList:[], //打卡记录
				safetyBulletin:'', //安全公告
				isRead:true, //是否已读安全公告
				userInfo:{
					checking:-1,
					role:-1
				}, //用户信息
				registerObj:{
					real_name:'',
					mobile:'',
					card_number:'',
					pay:'',
					position:-1,
					outsource_id:-1,
					emergency_contact:'',
					emergency_phone:'',
					bank_card_name:'',
					bank_card_number:'',
					bank_name:'',
					worksite_id:-1,
					work_experience:'',
					address_now:'',
					bank_card_img:'',
					id_front:'',
					id_back:'',
					certificate:'',
					province:'北京市', //省
					city:'北京市', //市
					area:'东城区',//区
				}, //工人注册信息
				
				 //显示图片
				bank_card_img:'',
				id_front:'',
				id_back:'',
				
				positionList:[], //技术岗位
				positionIndex:0, //当前技术岗位
				teamList:[], //班组
				teamIndex:0, //当前技术岗位
				flag:true, //是否能提交
				isLoding:false, //是否加载完成
				timer:false, //计时器状态
				noticeInfo:'', //审核通知
				isNotice:false, //是否显示通知
				notice:'', //公告
				ifNotice:false, //是否显示公告
				wsNotice:'', //工地公告
				ifWsNotice:false,// 是否显示工地公告
				stagingImg:'', //暂存img 
				ifRegister:false, //是否显示注册表
				buttonColor:'',//打卡按钮颜色
				baseHttps:`${getApp().globalData.hostapi}`,
				daysIndex:new Date().getDate(),
			}
		},
		onPageScroll(object){
			if(object.scrollTop >= 5){
				this.frontColor = '#000000';
				this.backgroudColor = '#ffffff';
				this.titleColor = '#3333333';
				// 改变状态栏
				this.changeStatusNav();
			}
			if(object.scrollTop <= 0){
				this.frontColor = '#ffffff';
				this.backgroudColor = 'none';
				this.titleColor = '#ffffff';
				// 改变状态栏
				this.changeStatusNav();
			}
		},
		onLoad(op) {
			if(op.userType){
				this.userType = op.userType;
			}
			if(op.apply=='join'){
				// 显示注册表
				this.ifRegister = true;
			}
			// 改变状态栏
			this.changeStatusNav();
			// 获取位置信息
			this.getLocationEv(0);
			// 获取工作岗位
			this.getPositionList();
			setTimeout(()=>{
				// 获取用户信息
				this.getUserInfo();
				// 获取打卡信息
				this.getSignInfo();
				// 获取打卡记录
				this.getSignList();
				// 获取班组
				this.getTeamList();
			},800)
		},
		onShow() {
			
		},
		onPullDownRefresh() {
			// 获取工资列表
			this.getSignList();	
			// 关闭下拉刷新
			uni.stopPullDownRefresh();
		},
		onShareAppMessage(res) {
			let shareObj = {
				title:'工地打卡',
				path: '/pages/pagehome/pagehome',
				imageUrl:'/static/share-logo.jpg',
			}
			// 返回shareObj
			return shareObj;
		},
		methods: {
			// 改变状态栏
			changeStatusNav(){
				wx.setNavigationBarColor({
				  frontColor: this.frontColor,
				  backgroundColor: 'none',
				})
			},
			
			// 获取用户信息
			getUserInfo(){
				this.$requst.post('/api/v1/user/info').then(res=>{
					if(res.code==0){
						console.log(res,'用户信息');
						if(res.data.role!==uni.getStorageSync('worker_role')){
							this.$toolAll.tools.showToast('身份已变更,正在切换');
							setTimeout(()=>{
								uni.reLaunch({
									url:'/pages/pagehome/pagehome'
								})
							},2000)
						}
						this.userInfo = res.data;
						if(this.userInfo.worksite_id==0){
							this.registerObj = this.userInfo;
							this.positionIndex = 0;
							this.registerObj.province = this.registerObj.province!==''?this.registerObj.province:'北京市';
							this.registerObj.city = this.registerObj.city!==''?this.registerObj.city:'北京市';
							this.registerObj.area = this.registerObj.area!==''?this.registerObj.area:'东城区';
							this.registerObj.pay = parseFloat(res.data.pay);
						}
					}
				})
			},
			
			// 选择省市区
			changeAddress(e){
				this.registerObj.province = e.detail.value[0];
				this.registerObj.city = e.detail.value[1];
				this.registerObj.area = e.detail.value[2];
			},
			
			// 授权位置信息
			getLocationEv(type){
				uni.getLocation({
					type: 'gcj02',
					isHighAccuracy:'true',
					success: (res)=>{
						console.log(res,'位置信息');
						if(type=='1'){
							this.$toolAll.tools.showToast('重新定位成功');
						}
						//获取工地列表
						this.getSiteEv(res.longitude,res.latitude);
					},
					complete: ()=>{
						// 判断是否查看安全公告
						if(uni.getStorageSync('readSafeNotice')){
							// 查询是否有通知
							this.getNoticeInfo();
						}else{
							this.isRead = false;
							// 获取安全告知
							this.getSafetyBulletin();
						}
					}
				});
			},
			
			//获取工地列表
			getSiteEv(lng,lat){
				this.$requst.get('/api/v1/common/get-current-worksite',{lng:lng,lat:lat}).then(res=>{
					if(res.code == 0){
						console.log(res,'定位工地信息');
						// 缓存工地id
						uni.setStorageSync('worksite_id',res.data.id);
						this.siteInfo = res.data;
						this.registerObj.worksite_id = res.data.id;
						this.isLoding = true;
						// 获取打卡记录
						this.getSignList();
						// 获取状态列表
						this.$refs.signCalendar.getStatusObj();
					}
				})
			},
			
			// 获取安全告知
			getSafetyBulletin(){
				if(!this.readSafeNotice){
					this.$requst.get('/api/v1/index/safe-notice').then(res=>{
						if(res.code == 0){
							console.log(res,'安全告知');
							this.safetyBulletin = res.data.content;
						}
					})
				}else{
					// 查询是否有通知
					this.getNoticeInfo();
				}
			},
			
			// 关闭安全告知
			closeSafetyBulletin(){
				this.isRead = true;
				// 缓存是否已读
				uni.setStorageSync('readSafeNotice',true);
				// 查询是否有通知
				this.getNoticeInfo();
			},
			
			// 查询是否有通知
			getNoticeInfo(){
				this.$requst.get('/api/v1/common/notice').then(res=>{
					if(res.code==0){
						console.log(res,'通知消息');
						if(res.data.notice==1){
							this.isNotice = true;
							this.noticeInfo = res.data;
						}else{
							// 获取公告
							this.getNotice();
						}
					}
				})
			},
			
			// 关闭通知
			closeEdit(){
				this.isNotice = false;
				// 获取公告
				this.getNotice();
			},
			
			// 修改审核资料
			editEv(){
				this.isNotice = false;
				// 显示注册表
				this.ifRegister = true;
				// 查询审核资料
				this.getCheckDetail();
			},
			
			// 获取公告
			getNotice(){
				this.$requst.get('/api/v1/index/notice').then(res=>{
					if(res.code==0){
						console.log(res,'公告');
						if(res.data.status==1){
							if(uni.getStorageSync('noticeVersion')!==res.data.version){
								this.ifNotice = true;
								uni.setStorageSync('noticeVersion',res.data.version);
								this.notice = res.data.content;
							}else{
								// 获取工地公告
								this.getWorksiteNotice();
							}
						}else{
							// 获取工地公告
							this.getWorksiteNotice();
						}
					}
				})
			},
			
			// 关闭公告||安全公告
			closeNotice(){
				if(!this.ifWsNotice){
					this.ifNotice = false;
					// 获取工地公告
					this.getWorksiteNotice();
				}else{
					this.ifWsNotice = false;
				}
				
			},
			
			// 获取工地公告
			getWorksiteNotice(){
				this.$requst.get('/api/v1/index/worksite-notice',{worksite_id:this.registerObj.worksite_id}).then(res=>{
					if(res.code==0){
						console.log(res,'工地公告');
						if(res.data!==null&&res.data.status==1){
							if(uni.getStorageSync('wsNoticeVersion')!==res.data.version){
								this.ifWsNotice = true;
								uni.setStorageSync('wsNoticeVersion',res.data.version);
								this.wsNotice = res.data.content;
							}
						}
					}
				})
			},
			
			
			// 查询审核资料
			getCheckDetail(){
				this.$requst.get('/api/v1/worker/check-detail',{id:this.noticeInfo.id}).then(res=>{
					if(res.code==0){
						console.log(res,'审核资料');
						this.registerObj = res.data;
						this.positionIndex =  this.positionList.findIndex(item=> item.id === res.data.position);
						this.registerObj.pay = parseFloat(res.data.pay);
					}
				})
			},
			
			// 获取技术岗位
			getPositionList(){
				this.$requst.get('/api/v1/common/position-list').then(res=>{
					if(res.code == 0){
						console.log(res,'技术岗位');
						this.positionList = res.data.list;
						this.registerObj.position = res.data.list[this.positionIndex].id;
						if(this.noticeInfo.notice==1){
							// 查询审核资料
							this.getCheckDetail();
						}
					}
				})
			},
			// 获取班组
			getTeamList(){
				let worksite_id = uni.getStorageSync('worksite_id');
				this.$requst.get('/api/v1/common/team',{worksite_id:worksite_id}).then(res=>{
					if(res.code == 0){
						console.log(res,'班组');
						this.teamList = res.data;
						this.registerObj.outsource_id = res.data[this.teamIndex].id;
						if(this.noticeInfo.notice==1){
							// 查询审核资料
							this.getCheckDetail();
						}
					}
				})
			},
			
			
			// 选择技术岗位
			choicePosition(e){
				this.positionIndex = e.detail.value;
				this.registerObj.position = this.positionList[e.detail.value].id;
			},
			
			//选择班组
			choiceTeam(e){
				this.teamIndex = e.detail.value;
				this.registerObj.outsource_id = this.teamList[e.detail.value].id;
			},
			// 提交注册信息
			submitRegister(){
				if(this.checkEmpty() && this.flag){
					this.flag = false;
					this.registerObj.worksite_id = uni.getStorageSync('worksite_id');
					let params = this.registerObj;
					console.log(this.registerObj.worksite_id)
					this.$requst.post('/api/v1/worker/register',params).then(res=>{
						if(res.code == 0){
							this.$toolAll.tools.showToast('提交成功');
							// 隐藏注册表
							this.ifRegister = false;
							setTimeout(()=>{
								this.flag = true;
							},2000)
						}else{
							this.$toolAll.tools.showToast(res.msg);
							setTimeout(()=>{
								this.flag = true;
							},2000)
						}
					})
				}
			},
			
			// 取消注册
			cancelRegister(){
				// 隐藏注册表
				uni.navigateBack({
					delta: 1 ,// 返回的页面数
					fail: () => {
						uni.reLaunch({
							url: '/pages/pagehome/pagehome'
						})
					}
				})
			},
			
			// 验证电话号
			checkEmpty(){
				let result = false;
				if(this.$toolAll.tools.isPhone(this.registerObj.mobile)) {
					this.$toolAll.tools.showToast('请正确填写电话号码');
				} else {
					result = true;
				}
				return result;
			},
			
			// 获取打卡信息
			getSignInfo(){
				this.$requst.get('/api/v1/user/sign-info').then(res=>{
					if(res.code == 0){
						console.log(res,'打卡信息');
						// 获取日期
						this.currentDate = res.data.info.today;
						// 获取星期几
						this.currentWeek = res.data.info.week;
						// 获取当前时间
						this.currenTime = res.data.info.now;
						// 服务端时间处理
						this.setIntervalEv();
					}
				})
			},
			
			// 服务端时间处理
			setIntervalEv(){
				// 改变计时器状态
				this.timer = true;
				if(this.timer){
					setInterval(()=>{
						let nowArr = this.currenTime.split(':');
						let hour = parseInt(nowArr[0]);
						let minute = parseInt(nowArr[1]);
						let second = parseInt(nowArr[2]);
						if(second<59){
							second++;
						}else{
							second = 0;
							if(minute<59){
								minute++;
							}else{
								minute = 0;
								if(hour<23){
									hour++;
								}else{
									hour = 0;
								}
							}
						}
						this.currenTime = `${hour<10?'0'+hour:hour}:${minute<10?'0'+minute:minute}:${second<10?'0'+second:second}`;
					},1000)
				}
			},
			
			// 获取打卡记录
			getSignList(){
				let params = {};
				if(uni.getStorageSync('worksite_id')){
					params = {
						worksite_id:uni.getStorageSync('worker_role')!==0?uni.getStorageSync('worksite_id'):0
					}
				}
				this.$requst.get('/api/v1/user/sign-today',params).then(res=>{
					if(res.code == 0){
						console.log(res,'打卡记录');
						// 获取打卡状态
						this.buttonColor = res.data.buttonColor;
						// 获取打卡记录列表
						this.signList = res.data.list;
					}
				})
			},
			
			// 唤起打卡弹窗
			showRadioEv(){
				if(this.userInfo.role!==0){
					if(this.signList.length<4){
						if(this.siteInfo.name){
							this.showRadio = true;
							this.radioIndex = 0;
						}else{
							this.$toolAll.tools.showToast('不在打卡范围内');
						}
					}else{
						this.$toolAll.tools.showToast('今日打卡已完成');
					}
				}else{
					this.showRadio = true;
					this.radioIndex = 0;
				}
			},
			
			// 改变上下班打卡
			changeSignType(index){
				if(this.radioIndex !== index){
					this.radioIndex = index;
				}
			},
			
			// 打卡
			signEv(){
				let params = {
					type:this.radioList[this.radioIndex].type,
					lat:this.siteInfo.lat,
					lng:this.siteInfo.lng,
					worksite_id:this.siteInfo.id
				}
				this.$requst.post('/api/v1/user/sign',params).then(res=>{
					if(res.code==0){
						this.showRadio = false;
						// 获取打卡记录
						this.getSignList();
						// 获取状态列表
						this.$refs.signCalendar.getStatusObj();
					}else{
						this.$toolAll.tools.showToast(res.msg);
					}
				})
			},
			
			// 选择图片
			changeImg(type){
				uni.chooseImage({
					count: 1, //默认9
					sourceType: ['album','camera'], //从相册选择
					success: (res)=> {
						this.stagingImg = res.tempFilePaths[0];
						// 上传图片
						this.uploadImg(type);
					}
				})
			},
			
			// 上传图片
			uploadImg(type){
				uni.showLoading({
					title: '上传中'
				});
				this.$requst.upload('/api/v1/file/upload/image',{path:this.stagingImg}).then(res=>{
					if(res.code==0) {
						if(type=='positive'){
							this.registerObj.id_front = res.data.src;
						}
						if(type=='back'){
							this.registerObj.id_back = res.data.src;
						}
						if(type=='bank'){
							this.registerObj.bank_card_img = res.data.src;
						}
					}
					uni.hideLoading();
				})
			},
			
			// 删除图片
			delImg(index,type){
				if(type=='positive'){
					this.registerObj.id_front = '';
				}
				if(type=='back'){
					this.registerObj.id_back = '';
				}
				if(type=='bank'){
					this.registerObj.bank_card_img = '';
				}
			},
			
			// 获取选择日期
			getDate(date){
				uni.navigateTo({
					url:`/pagesA/signRecord/signRecord?date=${date}&userType=${this.userType}`
				})
			},
			
			// 预览图片
			previewImage(url) {
				let urlArr = [url];
				uni.previewImage({
					current: 1, //预览图片的下标
					urls: urlArr //预览图片的地址,必须要数组形式,如果不是数组形式就转换成数组形式就可以
				})
			}
		}
	}
</script>
<style scoped>
	.gd-name {
		font-size: 38rpx;
	}
</style>