<template>  
    <view class="container">  
	
		<view class="user-section">
			<view class="bg">
				<image class="bg_ware" src="https://moyv.top/wechat/images/bg_wave.gif"></image>
			</view>
			<view class="user-info-box">
				<view class="portrait-box">
					<image v-if="userInfo" class="portrait" :src="userInfo.avatarUrl"></image>
					<u-avatar v-else class="portrait" text=""></u-avatar>
				</view>
				<view class="info-box">
					<view @click="toLogin" class="username">{{hasLogin? (userInfo.nickname || '点击设置昵称') : '立即登录' }}</view>
				</view>
				<view class="qr-wrap">
					<text class="cuIcon-qrcode"  @click="qrClick(userInfo)"></text>
				</view>
			</view>
			
		</view>
		<view 
			class="cover-container"
		>
		<!-- :style="[{
			transform: coverTransform,
			transition: coverTransition
		}]"
		@touchstart="coverTouchstart"
		@touchmove="coverTouchmove"
		@touchend="coverTouchend" -->
			<!-- <image class="arc" src="/static/arc.png"></image> -->
<!-- 列表 -->
						<view class="cu-list menu text-left solid-top">
						<view class='cu-item' @click='myAccount'>
							<view>
								<text class="cuIcon-sponsor icon text-grey"></text>
								<text class="text-grey">我的名头</text>
							</view>
							<view class = 'tip_text cuIcon-right' ></view>
						</view>
						<view class="cu-item" v-for="(item, index) in gridList" v-if="item.show" :key="index" @click="gridClick(item, index)" hover-class="common-hover" :hover-stay-time="50">
							<view>
								<text :class="item.icon" class="grid_icon icon text-grey"></text>
                                <text class="text-grey">{{item.name}}</text>
							</view>
							<view>
								<text v-if='item.num==4&&taskTip' class='badge_user'>{{taskTip}}</text>
								<text v-if='item.num==2&&contractTip' class='badge_user'>{{contractTip}}</text>
								<text class = 'tip_text cuIcon-right' ></text>
							</view>
							
						</view>
						
						<!-- <view class='cu-item' @click='scanCode'>
							<view>
								<text class="cuIcon-scan icon text-grey"></text>
							    <text class="text-grey">扫一扫</text>
							</view>
							<view class = 'tip_text cuIcon-right' ></view>
						</view> -->
						</view>
						<view style='text-align:center;'>
							<navigator url="/pages/sale/webview?can_share=false&url=https://liangxin.zthymaoyi.com/userAgreement.html" class="path" hover-class="navigator-hover">《服务协议》</navigator>|<navigator url="/pages/sale/webview?can_share=false&url=https://liangxin.zthymaoyi.com/screctAgreement.html"
						 class="path" hover-class="navigator-hover">《隐私政策》</navigator>
						</view>
		</view>
		<neil-modal
			:show="inputShow" 
			@close="cancel" 
			:style="{display:inputStatus}"
			title="点击按钮开启客服对话" 
			showCancel="true"
			>
			<!-- <input v-model="inputContent" style="margin:20upx;"  placeholder="请输入昵称" /> -->
			<button open-type='contact' class="margin:20upx;bg-green">
				<text class="cuIcon-phone">联系我们</text>
			</button>
			
		</neil-modal>
    </view>  
	
</template>  
<script>  
    import dragButton from "@/components/drag-button/drag-button.vue";
	import neilModal from '@/components/neil-modal/neil-modal.vue';
    import {  
        mapState 
    } from 'vuex';  
	let startY = 0, moveY = 0, pageAtTop = true;
    export default {
		components: {
			neilModal,
			dragButton
		},
		data(){
			return {
				inputShow: false,
				modalName:'',
				mycarStyle:'',
				feild: undefined,
				inputContent: '',
				coverTransform: 'translateY(0px)',
				coverTransition: '0s',
				moving: false,
				footprintList: [],
				isVip: false,
				userInfoTmp:[],
				inputStatus:'none',
				carInfo:[],
				gridList: [
						{
							num:0,
							name: '货源信息',
							icon:'cuIcon-apps',
							tips: 0,
							url:'/pages/tran/my_tran?TabCur=0',
							show:false
						},
						{
							num:1,
							name: '承运信息',
							icon:'cuIcon-calendar',
							tips: 0,
							url:'/pages/tran/my_tran?TabCur=1',
							show:false
						},
						{
							num:2,
							name: '我的合同',
							icon:'cuIcon-copy',
							tips: 0,
							url:'/pageB/contract/contract',
							show:true
						},
						{
							num:3,
							name: '消息列表',
							icon:'cuIcon-news',
							tips: 0,
							url:'/pages/user/message',
							show:false
						},
						{
							num:4,
							name: '任务中心',
							icon:'cuIcon-copy',
							tips: 0,
							url:`/pages/user/task`,
							show:true
						},
						{
							num:5,
							name: '我的车辆',
							icon:'cuIcon-deliver',
							tips: 0,
							url:'',
							show:false
						},
						{
							num:6,
							name: '联系我们',
							icon:'cuIcon-phone',
							tips: 0,
							url:'/pages/user/contact',
							show:false
						},
						{
							num:7,
							name: '退出登录',
							icon:'cuIcon-exit',
							tips: 0,
							url:'',
							show:true
						},
						
					],
					showTran:true,
					companyId:1,
					current: 4
			}
		},
		
		onShow() {
			uni.showTabBar()
			this.loadData()
		},
		onLoad(){
		},
		// #ifndef MP
		onNavigationBarButtonTap(e) {
			const index = e.index;
			if (index === 0) {
				this.navTo('/pages/set/set');
			}else if(index === 1){
				// #ifdef APP-PLUS
				const pages = getCurrentPages();
				const page = pages[pages.length - 1];
				const currentWebview = page.$getAppWebview();
				currentWebview.hideTitleNViewButtonRedDot({
					index
				});
				// #endif
				uni.navigateTo({
					url: '/pages/notice/notice'
				})
			}
		},
		// #endif
        computed: {
			...mapState(['hasLogin','userInfo'])
		},
        methods: {
			zhibo() {
				uni.navigateTo({
					url: `/pageB/video/broadcast`
				})
			},
			look() {
				uni.navigateTo({
					url: `/pageB/video/look`
				})
			},
			contactUs() {
				const that = this
				uni.makePhoneCall({	 	
				 	// 手机号
				    phoneNumber: '18241771147', 			
					// 成功回调
					success: (res) => {
					},			
					// 失败回调
					fail: (res) => {
					}					
				  });
			},
			loadData(){
				const that = this
				if(uni.getStorageSync("PageCur")){
					that.PageCur = uni.getStorageSync("PageCur");
				}
				that.userInfoTmp = uni.getStorageSync("userInfo")
				uni.showLoading({
					title: '正在加载',
					mask:true
				})
				that.$api.request('integral', 'getIndexData', failres => {
					that.$api.msg(failres.errmsg)
					uni.hideLoading()
				}).then(res => {
					let data = res.data
					uni.setStorageSync("message", data.message);
					uni.setStorageSync("task", data.task);
					uni.setStorageSync("contract", data.contract);
					uni.setStorageSync('showTran', data.showTran);
					
					that.showTran = data.showTran
					that.gridList[4].tips = data.task
					that.gridList[2].tips = data.contract
					that.companyId = data.companyId
					uni.hideLoading()
				
				})
			},
			gridClick (item, index) {	
				var that = this
				if(item.name == "退出登录"){
					this.logout()
					return;
				}
				else if(item.name == "联系我们"){
					//#ifdef MP
						this.inputShow = true
						this.inputStatus = 'inline'
						this.feild = "nickname"
						this.inputContent = ''
					//#endif
					//#ifdef APP-PLUS
						this.contactUs()
					//#endif
					return;
				}
				else if(item.name == '我的车辆'){
					const that = this
					uni.showLoading({
						title: '正在加载',
						mask:true
					})
					that.$api.request('tran', 'getMyCarList', failres => {
						that.$api.msg(failres.errmsg)
						uni.hideLoading()
					}).then(res => {
						that.carInfo = res.data
						if(that.carInfo.length == 0){
							that.$api.msg('暂无车辆信息')
						}
						else{
							var height = that.carInfo.length * 100
							var width = 500
							that.mycarStyle = "height:"+height+"rpx;width:" + width+"rpx"
							that.modalName = 'MycarModal'
						}
						
						uni.hideLoading()
					})
					
					return;
				}
				if(item.url){
					uni.navigateTo({
						url: item.url+`?companyId=${that.companyId}`
					})
				}
				
			},
			toLogin() {
				if (!this.hasLogin) {
					uni.navigateTo({
						url: '/pages/public/login'
					})
				}
				else if(!this.userInfo.nickname){
					this.inputShow = true
					this.inputStatus = 'inline'
					this.feild = "nickname"
					this.inputContent = ''
				}
			},
			confirm() {
				const that = this
				if (!that.inputContent) {
					that.$api.msg('输入不能为空')
					return
				}
				let obj = {}
				obj[that.feild] = that.inputContent
				that.$api.request('user', 'syncUserInfo', obj).then(res => {
					that.userInfo.nickname = that.inputContent
					that.inputContent = ''
					that.$store.commit('login', that.userInfo)
				})
			},
			cancel() {
				this.inputShow = false
				this.inputStatus = 'none'
				this.genderShow = false
			},
			myAccount(){
				uni.navigateTo({
					url: `/pageA/pages/contract`
				})
			},
			logout() {
				const that = this
				uni.showModal({
					title: '询问',
					content: '您确定要退出吗？',
					cancelText: '取消',
					confirmText: '确定',
					success: (e) => {
						if (e.confirm) {
							uni.clearStorageSync();
							that.$store.commit('logout')
							that.$api.logout()
						}
					}
				})
			},

			/**
			 * 统一跳转接口,拦截未登录路由
			 * navigator标签现在默认没有转场动画，所以用view
			 */
			navTo(url){
				if(!this.hasLogin){
					url = '/pages/public/login';
				}
				uni.navigateTo({  
					url
				})
			}, 
			mycarClick(carNo){
				this.modalName = null
				uni.navigateTo({
					url: `/pageB/car/mycar_detail?carNo=${carNo}`
				})
				
			},
			qrClick(userInfo){
				this.modalName = null
				uni.navigateTo({
					url: `/pages/user/qr`
				})
				
			},
			scanCode(){
				uni.scanCode({
				    success: function (res) {
						uni.navigateTo({
							url: res.result
						})
				    }
				})
			},
			hideModal(e) {
				this.modalName = null
			},
        }  
    }  
</script>  
<style lang='scss' scoped>
	.cu-tag.badge {
	    right: 26rpx;
	}
	.path {
		color: #007aff;
		display: inline-block;
		text-align: center;
	}
	.icon{
		margin-right:10rpx;
	}
	.portrait-box{
		margin-top:20rpx;
	}
	.qr-wrap{
		margin-top:20upx;
		color:#fff;
		font-size: 32rpx;
	}
	.cu-list{
		/* height: 483rpx;
		overflow-y: scroll; */
		margin-top: 42rpx;
		margin-bottom:80rpx;
	}
	.badge_user{
		color: #fff;
		background-color: #dc3545;
		display: inline-block;
		padding: .25em .4em;
		font-size: 75%;
		font-weight: 700;
		line-height: 1;
		text-align: center;
		white-space: nowrap;
		vertical-align: top;
		border-radius: 50%;
		transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
	}
	@keyframes move_wave {
	    0% {
	        transform: translateX(0) translateZ(0) scaleY(1)
	    }
	    50% {
	        transform: translateX(-25%) translateZ(0) scaleY(0.55)
	    }
	    100% {
	        transform: translateX(-50%) translateZ(0) scaleY(1)
	    }
	}
	.bg {
		position: relative;
		height:300rpx;
		/* background: linear-gradient(to bottom, #56ccf2, #2f80ed); */
		/*background: linear-gradient(to bottom, #0be9fe, #4bb0fe); */
	    background: linear-gradient(to bottom, #d5f8ff, #56ccf2);
		
	}
	.bg_ware {
	  position: absolute;
	  left: 0;
	  bottom: -2rpx;
	  width: 100%;
	  mix-blend-mode: screen;
	  height: 224rpx;
	}
	%flex-center {
	 display:flex;
	 flex-direction: column;
	 justify-content: center;
	 align-items: center;
	}
	%section {
	  display:flex;
	  justify-content: space-around;
	  align-content: center;
	  background: #fff;
	  border-radius: 10upx;
	}
	.grid-item-box {
		flex: 1;
		/* position: relative;
 */
		/* #ifndef APP-NVUE */
		display: flex;
		/* #endif */
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding: 15px 0;
	}
	.image {
		width: 80rpx;
		height: 80rpx;
	}

	.text {
		font-size: 26rpx;
		margin-top: 10rpx;
	}
	.user-section{
		height: 520upx;
		padding: 100upx 30upx 0;
		position:relative;
		.bg{
			position:absolute;
			left: 0;
			top: 0;
			width: 100%;
			height: 100%;
			filter: blur(1px);
			box-shadow: 0px 1px 8px #ccc;
			/* background:linear-gradient(#0eb0c9,#126bae); */
			/* opacity: .7; */
		}
	}
	.user-info-box{
		height: 180upx;
		/* display:flex; */
		/* align-items:center; */
		text-align:center;
		position:relative;
		z-index: 1;
		.portrait{
			width: 130upx;
			height: 130upx;
			border:5upx solid #fff;
			border-radius: 50%;
		}
		.username{
			font-size: $font-lg + 3upx;
			color: #fff;
			margin-top: 20upx;
		}
	}

	.vip-card-box{
		display:flex;
		flex-direction: column;
		color: #f7d680;
		height: 240upx;
		background: linear-gradient(left, rgba(0,0,0,.7), rgba(0,0,0,.8));
		border-radius: 16upx 16upx 0 0;
		overflow: hidden;
		position: relative;
		padding: 20upx 24upx;
		.card-bg{
			position:absolute;
			top: 20upx;
			right: 0;
			width: 380upx;
			height: 260upx;
		}
		.b-btn{
			position: absolute;
			right: 20upx;
			top: 16upx;
			width: 132upx;
			height: 40upx;
			text-align: center;
			line-height: 40upx;
			font-size: 22upx;
			color: #36343c;
			border-radius: 20px;
			background: linear-gradient(left, #f9e6af, #ffd465);
			z-index: 1;
		}
		.tit{
			font-size: $font-base+2upx;
			color: #f7d680;
			margin-bottom: 28upx;
			.yticon{
				color: #f6e5a3;
				margin-right: 16upx;
			}
		}
		.e-b{
			font-size: $font-sm;
			color: #d8cba9;
			margin-top: 10upx;
		}
	}
	.cover-container{
		padding-bottom: 200upx;
		.arc{
			position:absolute;
			left: 0;
			top: -34upx;
			width: 100%;
			height: 36upx;
		}
	}
	.tj-sction{
		@extend %section;
		.tj-item{
			@extend %flex-center;
			flex-direction: column;
			height: 140upx;
			font-size: $font-sm;
			color: #75787d;
		}
		.num{
			font-size: $font-lg;
			color: $font-color-dark;
			margin-bottom: 8upx;
		}
	}
	.order-section{
		@extend %section;
		padding: 28upx 0;
		margin-top: 20upx;
		.order-item{
			@extend %flex-center;
			width: 120upx;
			height: 120upx;
			border-radius: 10upx;
			font-size: $font-sm;
			color: $font-color-dark;
		}
		.yticon{
			font-size: 48upx;
			margin-bottom: 18upx;
			color: #fa436a;
		}
		.icon-shouhoutuikuan{
			font-size:44upx;
		}
	}
	.history-section{
		padding: 30upx 0 0;
		margin-top: 20upx;
		background: #fff;
		border-radius:10upx;
		.sec-header{
			display:flex;
			align-items: center;
			font-size: $font-base;
			color: $font-color-dark;
			line-height: 40upx;
			margin-left: 30upx;
			.yticon{
				font-size: 44upx;
				color: #5eba8f;
				margin-right: 16upx;
				line-height: 40upx;
			}
		}
		.h-list{
			white-space: nowrap;
			padding: 30upx 30upx 0;
			image{
				display:inline-block;
				width: 160upx;
				height: 160upx;
				margin-right: 20upx;
				border-radius: 10upx;
			}
		}
	}
	.grid{
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		/* border-top: 2upx solid rgba(172,172,172,.2); */
		.grid-item-3{
			box-sizing: border-box;
			width: calc(100% / 3);
			border-bottom: 2upx solid rgba(172,172,172,.2);
			border-right: 2upx solid rgba(172,172,172,.2);
			text-align: center;
			padding: 40upx 0;
			position: relative;
			/* view{
				font-size: $font-sm;
				margin-top: 16upx;
				color: $font-color-dark;
			} */
			.grid_icon{
				font-size: 48upx;
				margin-bottom: 18upx;
				color: #fa436a;
			}
			.tip_text{
				display: block;
				padding: 4upx 8upx;
				text-align: center;
				border-radius: 36upx;
				font-size: 24upx;
				background-color: #fa436a;
				color: rgba(255,255,255,1);
				position: absolute;
				right: 6upx;
				top: 6upx;
			}
		}
		.grid-item-3:nth-child(3n + 3),.grid-item-4:nth-child(4n + 4){
			border-right: none;
		}
	}
</style>