aleyds 3 år sedan
förälder
incheckning
8d2606b807

+ 3 - 0
common/apiurl.js

@@ -20,6 +20,9 @@ const apiurl = {
 	
 	//收费员密码修改
 	modifyPwdUrl:'/payee/payeeinfo/modifyPwd',
+	//我的业绩
+	// achievementUrl:'/payee/payeeinfo/achievement',
+	achievementUrl:'http://127.0.0.1:4523/mock/385524/payeeinfo/achievement',
 	
 	//收费员打卡路段信息
 	punchInfoUrl:'/payee/payeeinfo/punchInfo/',

+ 2 - 0
common/http.api.js

@@ -35,6 +35,7 @@ const install = (Vue, vm) => {
 	
 	let qiniuUpload = (params = {}) => vm.$u.post(apiurl.qiniuUploadUrl, params);
 	
+	let achievement = (params = {}) => vm.$u.post(apiurl.achievementUrl, params);
 	let printIn = (params = {}) => vm.$u.get(apiurl.printIn + params.orderId);
 	
 	// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
@@ -54,6 +55,7 @@ const install = (Vue, vm) => {
 		parkInConfirm,
 		parkInInfo,
 		qiniuUpload,
+		achievement
 		printIn
 	};
 }

+ 15 - 1
pages.json

@@ -23,7 +23,7 @@
 		{
 			"path": "pages/modifypwd/modifypwd",
 			"style": {
-				// "navigationStyle":"custom",// 隐藏系统导航栏
+				"navigationStyle":"custom",// 隐藏系统导航栏
 				"navigationBarTitleText": "密码修改"
 			}
 		},
@@ -62,6 +62,13 @@
 				"navigationBarTitleText": "拍照取证"
 			}
 		},
+		{
+			"path": "pages/ownersquery/ownersquery",
+			"style": {
+				"navigationStyle":"custom",// 隐藏系统导航栏
+				"navigationBarTitleText": "车主查询"
+			}
+		},
 		{
 			"path": "pages/attence/attence",
 			"style": {
@@ -75,6 +82,13 @@
 				"navigationStyle":"custom",// 隐藏系统导航栏
 				"navigationBarTitleText": "设置"
 			}
+		},
+		{
+			"path": "pages/performance/performance",
+			"style": {
+				"navigationStyle":"custom",// 隐藏系统导航栏
+				"navigationBarTitleText": "我的业绩"
+			}
 		}
 	],
 	"globalStyle": {

+ 5 - 5
pages/attence/attence.scss

@@ -11,17 +11,17 @@ page{
 	.payeeinfo-text{
 		margin-left: 19rpx;
 		.name{
-			font-size: 30rpx;
+			font-size: 36rpx;
 			font-weight: 500;
 			color: #5B5B5B;
-			line-height: 42rpx;
+			line-height: 50rpx;
 			letter-spacing: 1px;
 		}
 		.id{
-			font-size: 24rpx;
+			font-size: 30rpx;
 			font-weight: 400;
 			color: #5B5B5B;
-			line-height: 33rpx;
+			line-height: 42rpx;
 			letter-spacing: 1px;
 		}
 	}
@@ -40,7 +40,7 @@ page{
 		flex: 1;
 		height: 105rpx;
 		padding: 20rpx 23rpx 0;
-		background: #F4F4F4;
+		background: #E2F2FF;
 		border-radius: 10rpx;
 		font-weight: 400;
 		letter-spacing: 1px;

+ 19 - 6
pages/attence/attence.vue

@@ -6,7 +6,7 @@
 		:custom-back="customBack" 
 		:border-bottom="false"
 		back-icon-color="#CCE8FF" 
-		:background="{background: '#008CFF' }">
+		:background="{background: 'linear-gradient(145deg, #41AFF9 0%, #2D8CFB 100%)' }">
 		</u-navbar>
 		
 		<view class="wrap">
@@ -48,7 +48,7 @@
 					<u-icon name="checkmark-circle-fill" color="#da0808" size="28"></u-icon>
 					您已超出考勤范围:{{payeeinfo.roadName}}
 				</view>
-				<view class="statistics u-flex">
+				<!-- <view class="statistics u-flex">
 					<view class="statistics-item">
 						<view class="statistics-item-til">本月已打卡</view>
 						<view class="statistics-item-con">
@@ -63,15 +63,17 @@
 						</view>
 					</view>
-				</view>
+				</view> -->
+				
+				<map id="navmap" scale="13" :latitude="latitude" :longitude="longitude" :markers="covers" ></map>
 			</view>
 			
 		</view>
-		<u-bottom color="#949494">
+	<!-- 	<u-bottom color="#949494">
 			<view class="bottom" slot="content">
 				城市智慧停车 版权所有
 			</view>
-		</u-bottom>
+		</u-bottom> -->
 		
 		<u-popup class="remark" v-model="remarkPopupShow" @close="remarkClose" mode="bottom">
 			<u-button class="submit-btn" type="primary" size="mini" @click="getPunchIn">打卡</u-button>
@@ -105,6 +107,10 @@
 				remarkTip:'',
 				remark:'',
 				workType:1,
+				// 地图
+				covers: [],
+				latitude: '',
+				longitude: '',
 			}
 		},
 		onLoad(){
@@ -249,7 +255,14 @@
 					// 	type: 'success',
 					// });
 					this.payeeinfo ={...this.payeeinfo,...res.data};
-					
+					// console.log('getPunchInfo res',res);
+					this.latitude = res.data.latitude;
+					this.longitude = res.data.longitude;
+					let mark = {
+						latitude:res.data.latitude,
+						longitude:res.data.longitude
+					};
+					this.covers.push(mark);
 					if(!res.data.isPunchIn){//还未打上班卡
 						this.workType = 1;
 					}

+ 1 - 1
pages/getin/getin.vue

@@ -6,7 +6,7 @@
 		 :custom-back="customBack" 
 		 :border-bottom="false" 
 		 back-icon-color="#CCE8FF" 
-		 :background="{background: '#008CFF' }"></u-navbar>
+		 :background="{background: 'linear-gradient(145deg, #41AFF9 0%, #2D8CFB 100%)' }"></u-navbar>
 		<view class="car-info u-flex">
 			<view class="car-info-img" @click="getPic">
 				<u-image :src="carImg" mode="aspectFit" width="100%" height="100%"></u-image>

+ 1 - 1
pages/getout/getout.vue

@@ -6,7 +6,7 @@
 		 :custom-back="customBack" 
 		 :border-bottom="false" 
 		 back-icon-color="#CCE8FF" 
-		 :background="{background: '#008CFF' }"></u-navbar>
+		 :background="{background: 'linear-gradient(145deg, #41AFF9 0%, #2D8CFB 100%)' }"></u-navbar>
 		<u-empty class="u-m-t-80" text="暂无停车" mode="data" v-if="roadspaceList.length == 0"></u-empty>
 		<view class="roadspace-list wrap">
 			<view class="roadspace-list-item" :class="{used:item.placeStatus==1}" @click="roadspaceClick(item)" v-for="item in roadspaceList" :key="item.id">

+ 20 - 9
pages/index/index.scss

@@ -3,17 +3,28 @@
 	padding: 98rpx 20rpx 0 30rpx;
 	.payee-no{
 		margin-left: 23rpx;
-		font-size: 26rpx;
+		font-size: 30rpx;
 		font-weight: 400;
-		color: #FFFFFF;
-		line-height: 37rpx;
+		color: rgba(255,255,255,.7);
+		line-height: 42rpx;
 		letter-spacing: 1px;
 	}
+	.addr{
+		font-size: 28rpx;
+		font-weight: 400;
+		color: #FFFFFF;
+		line-height: 40rpx;
+		.u-icon{
+			margin-right: 18rpx;
+		}
+	}
 }
 .header{
-	height: 332rpx;
 	background-color: RGBA(47, 144, 250, 1);
 	color: #fff;
+	.header-total{
+		padding-bottom: 92rpx;
+	}
 }
 
 .notice{
@@ -26,17 +37,17 @@
 .feature-list{
 	margin-top: 50rpx;
 	.feature-item{
-		width: 30%;
-		margin-bottom: 34rpx;
+		width: 50%;
+		margin-bottom: 39rpx;
 		display: flex;
 		justify-content: center;
 		flex-wrap: wrap;
 		.feature-item-text{
-			margin-top: 8rpx;
+			margin-top: 17rpx;
 			width: 100%;
 			text-align: center;
-			font-size: 30rpx;
-			line-height: 42rpx;
+			font-size: 32rpx;
+			line-height: 45rpx;
 			color: #444;
 		}
 	}

+ 20 - 18
pages/index/index.vue

@@ -7,13 +7,13 @@
 				</view>
 				<view class="u-flex-1" @click="login($store.state.vuex_hasLogin)">
 					<view class="u-font-18 u-p-b-20"><b>智慧停车</b><span class="payee-no">工号:{{ userInfo.payeeNo || '请登录' }}</span></view>
-					<view class="u-font-14 u-flex">
-						<u-icon class="u-m-r-18" name="map-fill" color="#fff" size="38"></u-icon>
+					<view class="addr u-flex">
+						<u-icon name="map-fill" color="#fff" size="38"></u-icon>
 						{{ theRoad.roadName || '暂无' }}
 					</view>
 				</view>
 				<view class="u-m-l-10 u-p-10">
-					<u-icon name="arrow-right" color="#fff" size="28"></u-icon>
+					<u-icon name="arrow-right" color="rgba(255,255,255,.7)" size="28"></u-icon>
 				</view>
 			</view>	
 			<view class="header-total u-flex wrap">
@@ -32,49 +32,51 @@
 					<u-notice-bar mode="vertical" :list="noticeList" :more-icon="true" :volume-icon="false" bg-color="#fff" color="#373737"></u-notice-bar>
 				</view>
 			</view>
-			<view class="feature-list u-flex u-flex-wrap u-row-between">
-				<view class="feature-item" @click="openPage('pages/attence/attence')">
-					<u-image width="120rpx" height="120rpx" src="/static/img/index-feature-01.png"></u-image>
-					<view class="feature-item-text">签到打卡</view>
-				</view>
+			<view class="feature-list u-flex u-flex-wrap u-row-between">				
 				<!-- <view class="feature-item" @click="speaks('贵AF113Z')">
-					<u-image width="120rpx" height="120rpx" src="/static/img/index-feature-02.png"></u-image>
+					<u-image width="160rpx" height="160rpx" src="/static/img/index-feature-02.png"></u-image>
 					<view class="feature-item-text">拍照取证</view>
 				</view> -->
 				<!-- <view class="feature-item" @click="$refs.uToast.show({title: '建设中'})">
-					<u-image width="120rpx" height="120rpx" src="/static/img/index-feature-03.png"></u-image>
+					<u-image width="160rpx" height="160rpx" src="/static/img/index-feature-03.png"></u-image>
 					<view class="feature-item-text">缴费</view>
 				</view> -->
 				<!-- <view class="feature-item" @click="$refs.uToast.show({title: '建设中'})">
-					<u-image width="120rpx" height="120rpx" src="/static/img/index-feature-04.png"></u-image>
+					<u-image width="160rpx" height="160rpx" src="/static/img/index-feature-04.png"></u-image>
 					<view class="feature-item-text">车位管理</view>
 				</view> -->
 				<view class="feature-item" @click="openPage('pages/parking/parking')">
-					<u-image width="120rpx" height="120rpx" src="/static/img/index-feature-05.png"></u-image>
+					<u-image width="160rpx" height="160rpx" src="/static/img/index-feature-05.png"></u-image>
 					<view class="feature-item-text">车辆入场</view>
 				</view>
 				<view class="feature-item" @click="openPage('pages/getout/getout')">
-					<u-image width="120rpx" height="120rpx" src="/static/img/index-feature-06.png"></u-image>
+					<u-image width="160rpx" height="160rpx" src="/static/img/index-feature-06.png"></u-image>
 					<view class="feature-item-text">车辆出场</view>
 				</view>
+				<view class="feature-item" @click="openPage('pages/attence/attence')">
+					<u-image width="160rpx" height="160rpx" src="/static/img/index-feature-01.png"></u-image>
+					<view class="feature-item-text">签到打卡</view>
+				</view>
 				<!-- <view class="feature-item" @click="openPage('pages/modifypwd/modifypwd')">
-					<u-image width="120rpx" height="120rpx" src="/static/img/index-feature-07.png"></u-image>
+					<u-image width="160rpx" height="160rpx" src="/static/img/index-feature-07.png"></u-image>
 					<view class="feature-item-text">密码修改</view>
 				</view> -->
+				<view class="feature-item" @click="openPage('pages/ownersquery/ownersquery')">
+					<u-image width="160rpx" height="160rpx" src="/static/img/index-feature-10.png"></u-image>
 				<view class="feature-item" @click="onPrint()">
 					<u-image width="120rpx" height="120rpx" src="/static/img/index-feature-10.png"></u-image>
 					<view class="feature-item-text">车主查询</view>
 				</view>	
-				<view class="feature-item" @click="$refs.uToast.show({title: '建设中'})">
-					<u-image width="120rpx" height="120rpx" src="/static/img/index-feature-11.png"></u-image>
+				<view class="feature-item" @click="openPage('pages/performance/performance')">
+					<u-image width="160rpx" height="160rpx" src="/static/img/index-feature-11.png"></u-image>
 					<view class="feature-item-text">我的业绩</view>
 				</view>	
 				<view class="feature-item" @click="openPage('pages/setting/setting')">
-					<u-image width="120rpx" height="120rpx" src="/static/img/index-feature-08.png"></u-image>
+					<u-image width="160rpx" height="160rpx" src="/static/img/index-feature-08.png"></u-image>
 					<view class="feature-item-text">设置</view>
 				</view>
 				<!-- <view class="feature-item" @click="logout">
-					<u-image width="120rpx" height="120rpx" src="/static/img/index-feature-09.png"></u-image>
+					<u-image width="160rpx" height="160rpx" src="/static/img/index-feature-09.png"></u-image>
 					<view class="feature-item-text">退出登录</view>
 				</view>	 -->			
 			</view>

+ 2 - 2
pages/login/login.vue

@@ -69,8 +69,8 @@
 		methods: {
 
 			handleLogin(){
-				// this.form.deviceNo = '1122334455';
-				this.form.deviceNo = device?.getDeviceInfo()?.deviceId;
+				this.form.deviceNo = '123456789';
+				// this.form.deviceNo = device?.getDeviceInfo()?.deviceId;
 				this.$u.api.login(this.form)
 				.then(res=>{
 					this.$refs.uToast.show({

+ 13 - 0
pages/modifypwd/modifypwd.vue

@@ -1,5 +1,12 @@
 <template>
 	<view>
+		<u-navbar
+		 title="修改密码" 
+		 title-color="#fff" 
+		 :custom-back="customBack" 
+		 :border-bottom="false" 
+		 back-icon-color="#CCE8FF" 
+		 :background="{background: 'linear-gradient(145deg, #41AFF9 0%, #2D8CFB 100%)' }"></u-navbar>
 		<u-form :model="form" ref="uForm">
 			<u-form-item class="u-m-t-40 u-m-b-40" label="原密码:" label-width="180rpx">
 				<u-input v-model="form.oldPassword" placeholder="请输入原密码"/>
@@ -32,6 +39,12 @@
 			
 		},
 		methods:{
+			customBack(){
+				this.$u.route({
+					// type:'switchTab',
+					url: 'pages/setting/setting'
+				});
+			},
 			submit(){
 				let param = {
 					oldPassword:this.form.oldPassword,

+ 48 - 0
pages/ownersquery/ownersquery.scss

@@ -0,0 +1,48 @@
+.taking-pictures{
+	margin: 147rpx auto 79rpx;
+	width: 288rpx;
+	height: 288rpx;
+	background: url(../../static/img/choose-image.png) no-repeat;
+	background-size: contain;
+	text-align: center;
+	color: #fff;
+	font-size: 30rpx;
+	line-height: 42rpx;
+	padding-top: 177rpx;
+}
+
+.title{
+	margin-bottom: 30rpx;
+	border-top: 1px solid #F5F5F5;
+	text-align: center;
+	padding-top: 65rpx;
+	font-size: 36rpx;
+	font-weight: 500;
+	color: #3E3E3E;
+	line-height: 50rpx;
+	letter-spacing: 1px;
+}
+
+// 汽车号码输入框
+.new-plate-number{	
+	margin-bottom: 70rpx;
+}
+.message-input-wrap{
+	margin: 0 -40rpx;
+}
+.message-input-wrap /deep/ .u-input ~ uni-view:last-of-type .u-char-item{
+	background-color: #E8FFE8;
+}
+
+.bottom-btn{
+	height: 85rpx;
+	line-height: 85rpx;
+	background: #3397FA;
+	box-shadow: 0px 9rpx 9rpx 0px rgba(0, 0, 0, 0.03);
+	border-radius: 10rpx;
+	text-align: center;
+	font-size: 28rpx;
+	font-weight: 500;
+	color: #FFF;
+	letter-spacing: 1px
+}

+ 141 - 0
pages/ownersquery/ownersquery.vue

@@ -0,0 +1,141 @@
+<template>
+	<view>
+		<u-navbar
+		 title="车主查询" 
+		 title-color="#fff" 
+		 :custom-back="customBack" 
+		 :border-bottom="false" 
+		 back-icon-color="#CCE8FF" 
+		 :background="{background: 'linear-gradient(145deg, #41AFF9 0%, #2D8CFB 100%)' }"></u-navbar>
+		<view class="taking-pictures" @click="getPic">点击拍照</view>
+		<view class="wrap">
+			<view class="title">手输车牌号</view>
+			<view class="new-plate-number">
+				<view class="message-input-wrap" @click="messageInputClick">
+					<u-message-input :maxlength="8" width="70" font-size="50" :disabled-keyboard="true" v-model="newPlateNumber"></u-message-input>
+				</view>				
+				<u-keyboard ref="uKeyboard" mode="car" @change="keyboardChange" @backspace="backspace" v-model="keyboardshow"></u-keyboard>
+			</view>
+			<view class="bottom-btn" @click="submit">确认</view>
+		</view>
+		
+		<u-toast ref="uToast" />
+	</view>
+</template>
+
+<script>
+	export default{
+		data(){
+			return{
+				keyboardshow:false,
+				newPlateNumber:'',
+				spaceId:'',
+				vehicleClor:''
+			}
+		},
+		onLoad(page){
+			this.spaceId = page.spaceId;
+			
+		},
+		methods:{
+			customBack(){
+				this.$u.route({
+					// type:'switchTab',
+					url: 'pages/index/index'
+				});
+			},
+			getPic(){
+				let that = this;
+				uni.chooseImage({
+					count: 1, //默认9
+					sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
+					sourceType: ['camera'], //
+					success: function (res) {
+						// console.log('img',res)
+						uni.showLoading({});
+						const tempFilePaths = res.tempFilePaths;
+						// 若多选,需循环调用uni.uploadFile ,因微信小程序只支持单文件上传
+						uni.uploadFile({
+							url: `${that.config.fileUrl}/baidu/ocr`,
+							filePath: tempFilePaths[0],
+							name: 'file',
+							formData: {
+								'test': 'test'  // 上传附带参数
+							},
+							success: (res) => {
+								// 根据接口具体返回格式   赋值具体对应url
+								// alert(uploadFileRes.data);
+								let resobj=eval("("+res.data+")");
+								uni.hideLoading();
+								if(resobj.code==200){
+									console.log(resobj);
+									that.newPlateNumber = resobj.data.vehicleNo;
+									that.vehicleClor = resobj.data.vehicleClor;
+								}else{
+									that.$refs.uToast.show({
+										title: resobj.msg,
+										type: 'error'
+									});
+								}
+								
+								console.log(res);
+							},
+							fail: (err) => {
+								that.$refs.uToast.show({
+									title:err.msg,
+									type: 'error'
+								});
+								uni.hideLoading();
+							}
+						});
+					}
+				});
+					
+				
+			},
+			messageInputClick(){
+				this.keyboardshow = true;
+			},
+			// 按键被点击(点击退格键不会触发此事件)
+			keyboardChange(val) {
+				// 将每次按键的值拼接到value变量中,注意+=写法
+				this.newPlateNumber += val;
+				console.log(this.newPlateNumber);
+			},
+			// 退格键被点击
+			backspace() {
+				// 删除value的最后一个字符
+				if(this.newPlateNumber.length) this.newPlateNumber = this.newPlateNumber.substr(0, this.newPlateNumber.length - 1);
+				console.log(this.newPlateNumber);
+			},
+			submit(){
+				let param ={
+					spaceId:this.spaceId,
+					vehicleNo:this.newPlateNumber,
+					
+				};
+				this.$u.api.entrance(param)
+				.then(res=>{
+					this.$refs.uToast.show({
+						title: res.msg,
+						type: 'success',
+						url:'pages/getout/getout'
+					});
+					console.log('entrance',res)
+				}).catch(err=>{
+					this.$refs.uToast.show({
+						title: err.msg,
+						type: 'error',
+						url:'pages/parking/parking'
+					});
+					console.log('entrance ',err)
+				});
+			}
+			
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import "./ownersquery.scss";
+</style>

+ 1 - 1
pages/parking/parking.vue

@@ -6,7 +6,7 @@
 		 :custom-back="customBack" 
 		 :border-bottom="false" 
 		 back-icon-color="#CCE8FF" 
-		 :background="{background: '#008CFF' }"></u-navbar>
+		 :background="{background: 'linear-gradient(145deg, #41AFF9 0%, #2D8CFB 100%)' }"></u-navbar>
 		<u-empty class="u-m-t-80" text="暂无车位" mode="data" v-if="roadspaceList.length == 0"></u-empty>
 		<view class="roadspace-list wrap">
 			<view class="roadspace-list-item" @click="roadspaceClick(item)" v-for="(item,index) in roadspaceList" :key="index + item.id">

+ 104 - 0
pages/performance/performance.scss

@@ -0,0 +1,104 @@
+page{background-color: #F4F4F4;}
+.info-wrap{
+	background: linear-gradient(145deg, #41AFF9 0%, #2D8CFB 100%);
+}
+.info{
+	padding: 20rpx 40rpx 217rpx;
+	.payee-no{
+		font-size: 50rpx;
+		font-weight: 500;
+		color: #FFFFFF;
+		line-height: 70rpx;
+		letter-spacing: 2rpx;
+		text-align: center;
+	}
+	.current-time{
+		font-size: 24rpx;
+		font-weight: 400;
+		color: rgba(255,255,255,.5);
+		line-height: 33rpx;
+	}
+}
+
+// .calendar-wrap{
+// 	position: relative;
+// 	padding: 0 40rpx;
+// 	margin-top: -185rpx;
+// 	.u-drawer{
+// 		position: static;
+// 	}
+// 	/deep/ .u-mask{
+// 		display: none;
+// 	}
+// 	/deep/ .u-drawer-content{
+// 		position: static;
+// 		border-radius:20rpx!important;
+// 	}
+// 	/deep/ .u-calendar__bottom{
+// 		display: none; 
+// 	}
+// 	/deep/ .u-close,
+// 	/deep/ .u-calendar__header{
+// 		display: none;
+// 	}
+// }
+
+.statistics{
+	background: #FFFFFF;
+	border-radius: 15rpx;
+	text-align: center;
+	padding: 40rpx 0 50rpx;
+	margin: -185rpx 40rpx 19rpx;
+	font-weight: 400;
+	.statistics-title{
+		font-size: 24rpx;
+		color: #8E8E8E;
+		line-height: 33rpx;
+	}
+	.statistics-total{
+		font-size: 26rpx;
+		color: #8E8E8E;
+		line-height: 37rpx;
+		margin-bottom: 16rpx;
+		.number{
+			font-size: 60rpx;
+			color: #3397FA;
+			line-height: 84rpx;
+			letter-spacing: 2rpx;
+		}
+	}
+	.statistics-item-cell{
+		flex: 1;
+		.til{
+			font-size: 26rpx;
+			color: #8E8E8E;
+			line-height: 37rpx;
+		}
+		.con{
+			font-size: 30rpx;
+			color: #3397FA;
+			line-height: 42rpx;
+		}
+	}
+	.statistics-item-cell + .statistics-item-cell{
+		border-left: 1px solid rgba(151, 151, 151, .3);
+	}
+}
+
+.time{
+	margin: 20rpx 40rpx;
+	background: #FFFFFF;
+	box-shadow: 0px 10rpx 5rpx 0px rgba(0, 0, 0, 0.05);
+	border-radius: 15rpx;
+	height: 119rpx;
+	line-height: 119rpx;
+	text-align: center;
+	font-size: 30rpx;
+	color: #3D3D3D;
+	.dd{
+		color: #FA751D;
+	}
+	.u-icon{
+		margin-left: 10rpx;
+	}
+}

+ 132 - 0
pages/performance/performance.vue

@@ -0,0 +1,132 @@
+<template>
+	<view>
+		<view class="info-wrap">
+			<u-navbar
+			 title="我的业绩" 
+			 title-color="#fff" 
+			 :custom-back="customBack" 
+			 :border-bottom="false" 
+			 back-icon-color="#CCE8FF" 
+			 :background="{background: 'none' }"></u-navbar>
+			<view class="info">
+				<view class="payee-no">工号:{{vuexUser.payeeNo}}</view>
+				<!-- <view class="current-time">{{$u.timeFormat(currentTime, 'yyyy年mm月dd日 hh:MM:ss')}}</view> -->
+			</view>
+		</view>
+		<!-- <view class="calendar-wrap">
+			<u-calendar v-model="calendarShow" mode="date" @change="calendarChange"></u-calendar>
+		</view> -->
+		<view class="statistics">
+			<view class="statistics-title">实收数(聚合)</view>
+			<view class="statistics-total">
+				<span class="number">1380.30</span>
+				元
+			</view>
+			<view class="statistics-item u-flex">
+				<view class="statistics-item-cell">
+					<view class="til">入场数</view>
+					<view class="con">26</view>
+				</view>
+				<view class="statistics-item-cell">
+					<view class="til">出场数</view>
+					<view class="con">18</view>
+				</view>
+				<view class="statistics-item-cell">
+					<view class="til">应收数</view>
+					<view class="con">2215.00</view>
+				</view>
+			</view>
+		</view>
+		<view class="time" @click="selectTime">
+			{{pickerYear}}年{{pickerMonth}}月<span class="dd">{{pickerDay}}</span>日
+			<u-icon name="arrow-down-fill" color="#3D3D3D" size="28"></u-icon>
+		</view>
+		
+		<u-picker v-model="pickerShow" mode="time" :params="pickerParams" @confirm="confirmTime"></u-picker>
+		<u-toast ref="uToast" />
+	</view>
+</template>
+
+<script>
+	export default{
+		data(){
+			return{
+				vuexUser:'',
+				currentTime: new Date().getTime(),
+				calendarShow:true,
+				pickerShow:false,
+				pickerParams: {
+					year: true,
+					month: true,
+					day: true,
+					hour: false,
+					minute: false,
+					second: false
+				},
+				pickerYear:'',
+				pickerMonth:'',
+				pickerDay:'',
+				achievementData:'',
+				
+			}
+		},
+		onLoad(){
+			this.vuexUser = this.$store.state.vuex_user;
+			let date = new Date().getTime();
+			this.pickerYear = this.$u.timeFormat(date, 'yyyy');
+			this.pickerMonth = this.$u.timeFormat(date, 'mm');
+			this.pickerDay = this.$u.timeFormat(date, 'dd');
+			this.handleAchievement();
+		},
+		onShow(){
+			
+		},
+		methods:{
+			customBack(){
+				this.$u.route({
+					// type:'switchTab',
+					url: 'pages/index/index'
+				});
+			},
+			calendarChange(e){
+				console.log('e',e);
+				this.calendarShow = true;
+			},
+			selectTime(){
+				this.pickerShow = true;
+			},
+			confirmTime(e){
+				console.log('confirmTime e',e);
+				this.pickerYear = e.year;
+				this.pickerMonth = e.month;
+				this.pickerDay = e.day;
+			},
+			handleAchievement(){
+				this.$u.api.achievement()
+				.then(res=>{
+					this.$refs.uToast.show({
+						title: res.msg,
+						type: 'success',
+					});
+					console.log('achievement',res)
+				}).catch(err=>{
+					this.$refs.uToast.show({
+						title: err.msg,
+						type: 'error',
+					});
+					console.log('achievement ',err)
+				});
+			}
+			
+		},
+		computed:{
+			theTime(){
+				return this.pickerYear+this.pickerMonth+this.pickerDay
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	@import  './performance.scss'
+</style>

+ 1 - 1
pages/setting/setting.vue

@@ -7,7 +7,7 @@
 		:custom-back="customBack" 
 		:border-bottom="false" 
 		back-icon-color="#CCE8FF" 
-		:background="{background: '#008CFF' }"></u-navbar>
+		:background="{background: 'linear-gradient(145deg, #41AFF9 0%, #2D8CFB 100%)' }"></u-navbar>
 		
 		<view class="cell-group" style="margin-top: 30rpx;">
 			<u-cell-group>				

+ 2 - 0
uview-ui/components/u-calendar/u-calendar.vue

@@ -418,7 +418,9 @@
 							this.isStart = true;
 						}
 					}
+					// this.btnFix();
 				}
+				
 			},
 			close() {
 				// 修改通过v-model绑定的父组件变量的值为false,从而隐藏日历弹窗