From d92ab3161161f1f038680c6b52e5baf5a259f574 Mon Sep 17 00:00:00 2001
From: Liuyi <candymxq888@outlook.com>
Date: 星期六, 21 十二月 2024 16:55:28 +0800
Subject: [PATCH] 添加设备维护及巡检新增功能

---
 pages/index/index.vue |  896 ++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 699 insertions(+), 197 deletions(-)

diff --git a/pages/index/index.vue b/pages/index/index.vue
index 004c816..9ab5d85 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -1,7 +1,8 @@
 <script setup>
     import { onMounted, ref } from "vue";
-	import { getVipInfoApi,getUserInfo } from '../../api/index.js'
-	import { onShow } from '@dcloudio/uni-app'
+	import { BASE_URL } from '../../config/baseUrl';
+	import { getVipInfoApi,getUserInfo,reportLossApi,removeBindingApi,buyWaterApi } from '../../api/index.js'
+	import { onShow,getCurrentPages } from '@dcloudio/uni-app'
 	//状态栏高度
 	const topHeight = ref(0)
 	function getTopHeight(){
@@ -14,54 +15,95 @@
 	 * 会员卡相关
 	 */
 	const cardInfo = ref({
-		userName:'',
+		//用户档案信息
+		id:'',
+		userName:'微信用户',
 		headImg:'',
+		userPhone:'',
+		integral:'',
 		
 		waterCardNumber:'',
 		balance:'',
 		count:'',
-		userPhone:'',
+		state:'',//state:true:挂失,false:正常
+		cardType:'',//卡类型01卡消费 02计次消费 03游客消费 04电子卡
+		userCardType:'',//userCardType:true:共享卡,false:正常卡
 	})
+	// const showHeadImg = ref(BASE_URL + '/upload' + cardInfo.value.headImg)
+	const isLoss = ref(false)
 	const isVip = ref(false)
+	const isShareCard = ref(false)
 	//获取会员卡信息
-	async function getVipInfo(){
-		let res = await getUserInfo()
-		cardInfo.value.userName = res.data.userInfo.userName
-		cardInfo.value.headImg = res.data.userInfo.headImg
-		cardInfo.value.userPhone = res.data.userInfo.userPhone
-		if(res.data.userInfo.waterCardNumber){
-			let res1 = await getVipInfoApi()
-			cardInfo.value.waterCardNumber = res1.data.userInfo.waterCardNumber
-			if(res1.data.cardType == 1){
-				cardInfo.value.balance = res1.data.balance
-			}else if(res1.data.cardType == 2){
-				cardInfo.value.count = res1.data.count
+	 async function getVipInfo(){
+		await getVipInfoApi().then((res) =>{
+			console.log('会员卡信息响应',res)
+			if(res.code == 200 && res.data.id){
+				//用户信息处理存储
+				cardInfo.value.waterCardNumber = res.data.cardNumber
+				cardInfo.value.cardType = res.data.cardType
+				cardInfo.value.state = res.data.state == 2 ? true : false//state:2:挂失,1:正常 
+				cardInfo.value.userCardType = res.data.userCardType == 2 ? true : false //userCardType:2:共享卡,1:正常卡
+				
+				//数据使用
+				isLoss.value = cardInfo.value.state 
+				isShareCard.value = cardInfo.value.userCardType
+				
+				 //判断费用卡还是计次卡
+				if(res.data.cardType == 1){
+					cardInfo.value.balance = res.data.balance
+				}else if(res.data.cardType == 2){
+					cardInfo.value.count = res.data.count
+				}
+				isVip.value = true
+				console.log('会员卡及用户信息',cardInfo.value)
 			}
-			isVip.value = true
-		}else{
-			isVip.value = false
-		}
+		})
+	}
+	//获取用户信息
+	async function getInfo(){
+		 await getUserInfo().then(async(res) =>{
+			 console.log('用户信息响应',res)
+			if(res.code == 200){
+				cardInfo.value.userName = res.data.userInfo.userName ?  res.data.userInfo.userName : cardInfo.value.userName
+				cardInfo.value.headImg = res.data.userInfo.headImg
+				cardInfo.value.integral = res.data.userInfo.integral
+				cardInfo.value.userPhone = res.data.userInfo.userPhone
+				cardInfo.value.id = res.data.userInfo.id
+				await getVipInfo()
+				console.log('用户信息',cardInfo.value)
+				uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value))
+			}
+		})
 	}
 	/**
 	 * 扫码取水相关
 	 */
 	function toScan(){
-		uni.navigateTo({
-			url:'/pages/scanWater/index'
-		})
+		//调用二维码扫描接口
+		uni.scanCode({
+			scanType: ['qrCode'],
+			success: async function (res) {
+				let code = res.result.split('=')[1]
+				console.log('条码内容:' + res.result,'code',code);
+				uni.navigateTo({
+							url:`/pages/scanWater/index?facilityCode=${code}`
+						})
+			}
+		});
 	}
 	/**
 	 * 功能列表相关
 	 */
 	const functionList = ref([
-		{text:'余额记录',icon:'../../static/images/index/icon31.png',url:'/pages/balanceRecord/index'},
-		{text:'消费记录',icon:'../../static/images/index/icon32.png',url:''},
-		{text:'充值记录',icon:'../../static/images/index/icon33.png',url:''},
-		{text:'账户共享',icon:'../../static/images/index/icon34.png',url:''},
-		{text:'优惠卷',icon:'../../static/images/index/icon35.png',url:''},
-		{text:'电子发票',icon:'../../static/images/index/icon36.png',url:''},
-		{text:'联系客服',icon:'../../static/images/index/icon37.png',url:''},
-		{text:'推广分佣',icon:'../../static/images/index/icon38.png',url:''},
+		//isUrl:1:页面跳转,2:弹窗功能,3:弹窗功能,4:未开发
+		{text:'余额记录',icon:'../../static/images/index/icon31.png',url:'/pages/functionList/balanceRecord/index',isUrl:1},
+		{text:'消费记录',icon:'../../static/images/index/icon32.png',url:'/pages/functionList/paymentRecord/index',isUrl:1},
+		{text:'充值记录',icon:'../../static/images/index/icon33.png',url:'/pages/functionList/rechargeRecord/index',isUrl:1},
+		{text:'水卡共享',icon:'../../static/images/index/icon34.png',url:'/pages/functionList/share/cardShare/index',isUrl:1},
+		{text:'故障上报',icon:'../../static/images/index/icon35.png',url:'/pages/infoBreakdown/index',isUrl:1},
+		{text:'优惠卷',icon:'../../static/images/index/icon36.png',url:'',isUrl:4},
+		{text:'卡挂失',icon:'../../static/images/index/icon37.png',url:'',isUrl:2},
+		{text:'卡解绑',icon:'../../static/images/index/icon38.png',url:'',isUrl:3},
 	])
 	function navTo(itemUrl){
 		if(itemUrl){
@@ -70,77 +112,258 @@
 			})
 		}
 	}
-	//获取用户地理位置
-	async function getUserLocation(){
-		wx.getLocation({
-			type: 'wgs84',
-			success(res){
-			const latitude = res.latitude
-			const longitude = res.longitude
-			const speed = res.speed
-			const accuracy = res.accuracy
-			},
-			fail(e){
-				console.log('e',e)
+	//功能列表点击功能
+	async function setEvent(isUrl,url){
+		if(isUrl == 1){
+			navTo(url)
+		}else if(isUrl == 2){
+			if(cardInfo.value.waterCardNumber){
+				//不是共享卡且未挂失
+				if(!isShareCard.value && !cardInfo.value.state){
+					uni.showModal({
+							title: '会员卡挂失',
+							content: '确认挂失会员卡?',
+							success: async function(res) {
+							if (res.confirm) {
+								await reportLossApi(cardInfo.value.waterCardNumber).then(async(res) =>{
+									if(res.code == 200){
+										uni.showToast({
+											title: '已挂失',
+											duration: 2000,
+										});
+										await getVipInfoApi().then((res) =>{
+											if(res.code == 200){
+												if(res.data.state == 2){
+													isLoss.value = true
+												}
+											}
+										})
+									}
+								})
+							}
+						}
+					})
+				}else if(isShareCard.value){
+					uni.showToast({
+						title:'共享卡无权限',
+						icon:'none'
+					})
+				}else if(cardInfo.value.state){
+					uni.showToast({
+						title:'已挂失',
+						icon:'none'
+					})
+				}
+			}else{
+				uni.showToast({
+					title:'未绑定会员卡!',
+					icon:'none'
+				})
 			}
+		}else if(isUrl == 3){
+			if(cardInfo.value.waterCardNumber){
+				//判断是否是分享卡:分享卡不许注销
+				if(!isShareCard.value){
+					uni.showModal({
+							title: '会员卡注销',
+							content: '确认注销会员卡?',
+							success: async function(res){
+							if (res.confirm) {
+								await removeBindingApi(cardInfo.value.waterCardNumber).then(async(res) =>{
+									if(res.code == 200){
+										uni.showToast({
+											title: '已注销',
+											duration: 2000,
+											icon:'none',
+										});
+										await getVipInfoApi().then((res) =>{
+											if(res.code == 200){
+												if(!res.data.id){
+													isVip.value = false
+													cardInfo.value.balance = ''
+													cardInfo.value.count = ''
+													cardInfo.value.waterCardNumber = ''
+													uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value))
+												}
+											}
+										})
+									}
+								})
+							}
+						}
+					})
+				}else{
+					uni.showToast({
+						title:'共享卡无权限',
+						icon:'none'
+					})
+				}
+			}else{
+				uni.showToast({
+					title:'未绑定会员卡!',
+					icon:'none'
+				})
+			}
+		}else{
+			upGrade()
+		}
+	}
+	function upGrade(){
+		uni.showToast({
+			title: '该功能正在升级中!',
+			duration: 1000,
+			icon:'none',
+		});
+	}
+	//申请获取用户位置权限----------------------------------------------------
+	let userLocation = {
+		lat:'',
+		lon:'',
+	}
+	function getUserLocation(){
+		// 请求用户授权,第一次进入首页会有位置授权的提示
+		uni.authorize({
+		  scope: 'scope.userLocation',
+		  success() {
+			 console.log("成功授权位置信息1")
+			 storageLocation()
+		  },
+		  fail() {
+			  console.log("用户拒绝授权位置信息,再次提示用户授权")
+			  showToast()
+		  }
 		})
-		console.log('location')
+		//获取用户位置并存储
+		function storageLocation(){
+			uni.getLocation({
+				type:'gcj02',
+				isHighAccuracy:true,
+				success:(res) =>{
+					userLocation.lat = res.latitude
+					userLocation.lon = res.longitude
+					uni.setStorageSync('userLocation',JSON.stringify(userLocation))
+				},
+				fail:() =>{
+					showToast()
+				}
+			})
+		}
+		//用户拒绝授权
+		function showToast(){
+			uni.showModal({
+				title: "请求授权当前位置",
+				content: "请求获取您的位置,加载附近饮水设备信息!",
+				confirmText: "前往设置",
+				success: (res) => {
+					if (res.confirm) {
+						uni.openSetting({
+							 success:(res1) =>{ //打开设置成功
+								if (res1.authSetting['scope.userLocation']){
+									console.log('用户二次授权成功')
+									setTimeout(() =>{
+										storageLocation()
+									},1000)
+								}else{
+									showToast()
+									console.log('用户拒绝授权')
+								}
+							},
+						})
+					}else{
+						uni.showToast({
+							title: '请先授权!',
+							duration: 2000,
+							icon:'none'
+						});
+						showToast()
+					}
+				},
+			});
+		}
 	}
 	onMounted( async() =>{
+		console.log('空用户信息',cardInfo.value)
+		uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value))
 		getTopHeight()
-		await getVipInfo()
-		// await getUserLocation()
+		await getInfo()
+		await getUserLocation()
+		console.log('onMounted','用户存储本地数据',JSON.parse(uni.getStorageSync('userInfo')))
 	})
 	onShow(async() =>{
-	await getVipInfo()
+		getTopHeight()
+		await getInfo()
+		console.log('onShow','用户存储本地数据',JSON.parse(uni.getStorageSync('userInfo')))
 	})
+	uni.showShareMenu({
+	  withShareTicket: true,
+	  menus: ['shareAppMessage', 'shareTimeline'],
+	  success: function () {
+	    // console.log('分享菜单显示成功');
+	  },
+	  fail: function (err) {
+	    // console.error('分享菜单显示失败', err);
+	  }
+	});
 </script>
 
 <template>
 	<view class="container">
 		<view class="content">
 			<view class="card-box" :style="{paddingTop:topHeight + 'rpx'}">
-				<view class="user-info">
-					<image class="user-img" src='../../static/images/index/hend1.png' alt=''></image>
-					<text>{{cardInfo.userName}}</text>
-					<image class="uesr-more"src="../../static/images/index/back.png"></image>
+				<view class="user-info" >
+					<image v-if="cardInfo.headImg" class="user-img" :src= "BASE_URL + '/upload' + cardInfo.headImg" alt=''></image>
+					<image v-else class="user-img" src='../../static/images/index/head.png' alt=''></image>
+					<text @click="navTo('/pages/userInfo/index')">{{cardInfo.userName}}</text>
+					<image @click="navTo('/pages/userInfo/index')" class="user-more"src="../../static/images/index/back.png"></image>
 				</view>
-				<view class="card" @click="navTo('/pages/userInfo/index')">
-					<view class="card-content">
-						<view class="card-left">
-							<view class="left-top">
-								<view>
-									<image src="../../static/images/index/code1.png" alt=""></image>
-									<text>会员卡</text>
+				<view class="card">
+					<image class="card-bg" src="../../static/images/index/card11.png" alt=""></image>
+					<view v-if="isVip" class="card-detail">
+						<view class="card-top">
+							<view class="vip">VIP</view>
+							<view class="top-right">
+								<view v-if="isShareCard" class="card-name">
+									<text>共享卡</text>
+									<text v-if="isLoss">[已挂失]</text>
 								</view>
-								<view>ID:{{cardInfo.waterCardNumber}}</view>
+								<view v-if="!isShareCard" class="card-name">
+									<text>会员卡</text>
+									<text v-if="isLoss" class="card-loss">[已挂失]</text>
+								</view>
+								<view class="card-num">
+									卡号:{{cardInfo.waterCardNumber}}
+								</view>
 							</view>
-							<view></view>
 						</view>
-						<view class="card-right">
-							<view></view>
-							<view></view>
+						<view class="card-bottom">
+							<view class="bottom-left">
+								<text class="bottom-left-text">余额:</text>
+								<text class="bottom-left-money">{{cardInfo.balance}}</text>
+							</view>
+							<view v-if="!isShareCard" @click="navTo('/pages/recharge/index')" class="card-btn">充值</view>
 						</view>
+					</view>
+					<view v-if="!isVip" class="card-none">
+						<view class="card-none-top"><text>未绑定会员卡</text></view>
+						<view class="card-none-bottom"><view @click="navTo('/pages/addCard/index')" class="card-btn">去绑定</view></view>
 					</view>
 				</view>
 			</view>
+			<!-- 功能区 -->
 			<view class="function-box1">
-				<view class="box1-bg box1-one" @click="navTo('/pages/sendWater/index')">
-					<image src="../../static/images/index/home21.png" alt=""></image>
+				<view class="box1-bg box1-one" @click="upGrade">
+					<image class="box-one-image1" src="../../static/images/index/home21.svg" alt=""></image>
 					<view>送水到家</view>
 				</view>
-				<view class="box1-bg box1-two">
-					<view>账户余额(元)</view>
-					<view class="recharge">
-						<text>¥</text>
-						<text>120.00</text>
-					</view>
-					<view @click="navTo('/pages/recharge/index')">
-						充值
-					</view>
+				<view @click="navTo('/pages/facilityList/index')" class="box1-bg box1-two">
+					<image class="box-one-image2" src="../../static/images/index/icon22.svg" alt=""></image>
+					<view>附近设备</view>
 				</view>
-				<view class="box1-bg box1-three" @click="toScan()">
-					<image src="../../static/images/index/icon23.png" alt=""></image>
+			</view>
+			<!-- 扫码取水 -->
+			<view class="scan-box">
+				<view class="scan" @click="toScan()">
+					<image class="scan-img" src="../../static/images/index/scan.png"></image>
 					<view>扫码取水</view>
 				</view>
 			</view>
@@ -148,31 +371,35 @@
 				<view class="box2-title"><text>功能列表</text></view>
 				<view class="box2-content">
 					<block v-for="(item,index) in functionList" :key="index">
-						<view class="box2-item"  @click="navTo(item.url)">
-							<image :src= "item.icon" alt=""></image>
+						<view class="box2-item"  @click="setEvent(item.isUrl,item.url)">
+							<view class="box2-item-img"><image class="box2-image" :src= "item.icon" alt=""></image></view>
 							<view class="box2-item-text">{{item.text}}</view>
 						</view>
 					</block>
 				</view>
 			</view>
-			<view class="advertisement-box"><image src="../../static/images/index/bg4.png" alt=""></image></view>
+			<!-- 积分商城 -->
+			<view class="advertisement-box" @click="navTo('/pagesPoints/pointsMall/index')">
+				<image class="banner-img" src="../../static/images/index/point-banner.png"></image>
+			</view>
 			<view class="service-box">
 				<view class="service-title"><text>服务指南</text></view>
 				<view class="service-content">
-					<view class="service-bg">
+					<view class="service-bg" @click="navTo('/pages/station/index')">
 						<view>
-							<image src="../../static/images/index/icon51.png" alt=""></image>
+							<image src="../../static/images/index/icon51.svg" alt=""></image>
 							<text>附近站点</text>
 						</view>
-						<view class="service-info">蔡家供水服务中心正在营业中……</view>
+						<view class="service-info">服务中心正在营业中……</view>
 						<view>
 							<text>查看更多</text>
 							<image src="../../static/images/index/more-info5.png" alt=""></image>
 						</view>
 					</view>
-					<view class="service-bg">
+					<view class="service-bg" @click="upGrade">
+					<!-- <view class="service-bg" @click="navTo('/pages/counterRecharge/index')"> -->
 							<view>
-								<image src="../../static/images/index/notice5.png" alt=""></image>
+								<image src="../../static/images/index/notice5.svg" alt=""></image>
 								<text>公示公告</text>
 							</view>
 							<view class="service-info">停水公告的部分摘要的内容展示……</view>
@@ -184,35 +411,18 @@
 				</view>
 			</view>
 		</view>
-		
-		<!-- 微信授权弹窗 -->
-		<!-- <uni-popup ref="popupRef" background-color="#fff">
-			<view class="popup-content">
-				<text class="popup-title">微信登录</text>
-				<view class="hr"></view>
-				<view class="img-box"><img src="../../static/images/login/logo.png" alt="" class="img"/></view>
-				<view class="info-box">
-					<view class="info-text1">青源直饮水平台申请获取以下权限:</view>
-					<view class="hr2"></view>
-					<view class="info-text2">· 获得你的公开信息(昵称、头像、地区及性别)</view>
-					<view class="button-box">
-						<button  class="button1" @click="popupRef.close('bottom')">取消</button>
-						<button  class="button2" @click="wxLoginFn()">确定</button>
-					</view>
-				</view>
-			</view>
-		</uni-popup> -->
 	</view>
 </template>
 <style lang="scss" scoped>
 	.container{
 		width:100%;
-		height:100vh;
-		overflow:scroll;
+		// height:100vh;
+		// overflow-y:scroll;
 		.content{
 			width:100%;
-			height:100vh;
+			// height:100vh;
 			background:#F6F6F6;
+			overflow:scroll;
 			.card-box{
 				width: 100%;
 				height: auto;
@@ -222,137 +432,317 @@
 				.user-info{
 					width:100%;
 					height:100rpx;
-					// background: #06BF5E;
-					display: flex;
 					align-items: center;
 					padding-left:15rpx;
 					box-sizing: border-box;
 					margin-bottom: 14rpx;
+					display:flex;
 					.user-img{
 						width:90rpx;
 						height:90rpx;
+						border-radius:50%;
 						margin-right:20rpx;
 					}
 					text{
 						margin-right:20rpx;
 						color: #fff;
 					}
-					.uesr-more{
+					.user-more{
 						width: 12rpx;
-						height: 28rpx;;
+						height: 28rpx;
 					}
 				}
 				.card{
 					width: 100%;
-					height: 290rpx;
-					background-image: url("../../static/images/index/card1.png");
-					background-repeat: no-repeat;
-					background-size: 100% 100%;
-					.card-content{
+					height: 256rpx;
+					position:relative;
+					.card-bg{
+						height:256rpx;
+						width:100%;
+						top:0;
+						position: absolute;
+						z-index:1;
+					}
+					.card-none{
 						width: 100%;
-						height: 100%;
+						height:100%;
+						padding:38rpx;
 						box-sizing: border-box;
-						padding:15rpx;
 						display: flex;
-						justify-content:space-between;
-						.card-left{
-							height:100%;
+						flex-direction: column;
+						justify-content:space-around;
+						color:#fff;
+						z-index:2;
+						.card-none-top{
+							font-size:40rpx;
+							font-weight:600;
+							z-index:2;
+							letter-spacing:2rpx;
+						}
+						.card-none-bottom{
 							display: flex;
-							justify-content:space-between;
-							flex-direction:column;
-							align-items:flex-start;
-							.left-top{
-								display: flex;
-								flex-direction: column;
-								view:first-child{
-									display: flex;
-									align-items: center;
-									image{
-										width:70rpx;
-										height:70rpx;
-									}
-									text{
-										font-weight: 300;
-										font-size: 36rpx;
-										color: #FFFFFF;
-									}
-								}
+							justify-content: flex-end;
+							z-index:2;
+							.card-btn{
+								width: 196rpx;
+								height: 80rpx;
+								background: linear-gradient( to right,#338AFD 0%, #65A7FD 100%);
+								border-radius: 40rpx;
+								text-align: center;
+								line-height: 80rpx;
+								font-size:44rpx;
+								letter-spacing:3rpx;
+								font-weight:500;
 							}
 						}
 					}
+					.card-detail{
+						width: 100%;
+						height:100%;
+						padding:38rpx;
+						box-sizing: border-box;
+						display: flex;
+						flex-direction: column;
+						justify-content: center;
+						color:#fff;
+						z-index:2;
+						.card-top{
+							width:100%;
+							display: flex;
+							align-items: center;
+							z-index:2;
+							.vip{
+								font-size:114rpx;
+								font-weight: 600;
+							}
+							.top-right{
+								display: flex;
+								flex-direction: column;
+								justify-content: center;
+								margin-left:20rpx;
+								.card-name{
+									font-size:40rpx;
+									font-weight:400;
+									.card-loss{
+										font-size:34rpx;
+										font-weight:600;
+										margin-left:10rpx;
+										letter-spacing:2rpx;
+										color: #333434;
+									}
+								}
+								.card-num{
+									font-size:34rpx;
+									font-weight:400;
+								}
+							}
+						}
+						.card-bottom{
+							width:100%;
+							display: flex;
+							align-items: center;
+							justify-content: space-between;
+							z-index: 2;
+							.bottom-left{
+								display: flex;
+								align-items:center;
+								.bottom-left-text{
+									font-size:40rpx;
+									font-weight:400;
+									letter-spacing:2rpx;
+								}
+								.bottom-left-money{
+									font-size:60rpx;
+									font-weight:600;
+								}
+							}
+							.card-btn{
+								width: 196rpx;
+								height: 80rpx;
+								background: linear-gradient( 270deg, #65B5FD 0%, #338AFD 100%, #65A7FD 100%);
+								border-radius: 40rpx;
+								text-align: center;
+								line-height: 80rpx;
+								font-size:48rpx;
+								letter-spacing:6rpx;
+							}
+						}
+					}
+					// .share-card{
+					// 	position:absolute;
+					// 	top:16rpx;
+					// 	left:28rpx;
+					// 	z-index:100;
+					// 	font-weight:400;
+					// 	font-size: 36rpx;
+					// 	color: #FFFFFF;
+					// }
+					// .card-content{
+					// 	width: 100%;
+					// 	height: 100%;
+					// 	box-sizing: border-box;
+					// 	padding:20rpx 15rpx;
+					// 	display: flex;
+					// 	justify-content:space-between;
+					// 	font-weight: 300;
+					// 	font-size: 30rpx;
+					// 	color: #FFFFFF;
+					// 	z-index:100;
+					// 	.card-left{
+					// 		height:100%;
+					// 		display: flex;
+					// 		justify-content:space-between;
+					// 		flex-direction:column;
+					// 		align-items:flex-start;
+					// 		z-index:100;
+					// 		.left-top{
+					// 			display: flex;
+					// 			flex-direction: column;
+					// 			view:first-child{
+					// 				display: flex;
+					// 				align-items: center;
+					// 				image{
+					// 					width:48rpx;
+					// 					height:48rpx;
+					// 				}
+					// 				text{
+					// 					font-weight:400;
+					// 					font-size: 36rpx;
+					// 					color: #FFFFFF;
+					// 				}
+					// 				.lossed{
+					// 					color:#fff;
+					// 				}
+					// 			}
+					// 			view:last-child{
+					// 				margin-left:10rpx;
+					// 				font-size: 26rpx;
+					// 				font-weight:500;
+					// 			}
+					// 		}
+					// 	}
+					// 	.card-right{
+					// 		display: flex;
+					// 		justify-content: space-between;
+					// 		align-items:flex-end;
+					// 		flex-direction: column;
+					// 		height:100%;
+					// 		z-index:100;
+					// 		.card-right-top{
+					// 			align-items:flex-end;
+					// 			display: flex;
+					// 			justify-content: space-between;
+					// 			flex-direction: column;
+					// 			font-size:34rpx;
+					// 			.user-add-card{
+					// 				display:flex;
+					// 				align-items:center;
+					// 				height:52rpx;
+					// 				font-size:28rpx;
+					// 				background:linear-gradient(to right,#B1D9FD 0%,#65A7FD 70%,#65A7FD 100%);
+					// 				border-radius:50rpx;
+					// 				padding: 0 20rpx;
+					// 				image{
+					// 					width:36rpx;
+					// 					height:36rpx;
+					// 					margin-right:6rpx;
+					// 					opacity:0.8;
+					// 				}
+					// 				text{
+					// 					color:#FFF;
+					// 				}
+					// 			}
+					// 			text:last-child{
+					// 				font-weight:500;
+					// 			}
+					// 		}
+					// 		.card-right-bottom{
+					// 			width:137rpx;
+					// 			height:56rpx;
+					// 			background:linear-gradient(to right,#65A7FD ,#B1D9FD);
+					// 			border-radius:50rpx;
+					// 			text-align: center;
+					// 			line-height: 56rpx;
+					// 			color:#212DDE;
+					// 			font-weight: 400;
+					// 		}
+					// 	}
+					// }
 				}
 			}
 			.function-box1{
 				width:100%;
 				box-sizing:border-box;
-				height: 215rpx;
-				padding: 20rpx 32rpx 15rpx;
+				height: 172rpx;
+				padding: 20rpx 32rpx 22rpx;
 				// background: rgba(85, 170, 0, 0.1);
 				display:flex;
 				justify-content: space-between;
 				align-items:center;
+				font-size:36rpx;
+				font-weight:500;
+				color: #4d4d4d;
+				letter-spacing:2rpx;
 				.box1-bg{
-					width:212rpx;
-					height:180rpx;
+					width:326rpx;
+					height:130rpx;
 					border-radius:24rpx;
 					background: #fff;
-					box-shadow:0 0 12rpx 2rpx rgba(13,118,255,0.16);
+					box-shadow:0 0 12rpx 3rpx rgba(13,118,255,0.16);
 				}
 				.box1-one{
-					font-weight: 300;
-					font-size: 32rpx;
-					color: #000000;
 					text-align: center;
 					display: flex;
-					flex-direction:column;
 					align-items: center;
 					justify-content: center;
-					image{
+					justify-content:space-evenly;
+					.box-one-image1{
 						width: 86rpx;
-						height: 78rpx;
-						margin-bottom:20rpx;
+						height: 86rpx;
 					}
 				}
 				.box1-two{
-					box-sizing: border-box;
-					padding:25rpx 0 10rpx;
 					display: flex;
-					flex-direction:column;
 					align-items:center;
-					justify-content:space-around;
-					view:first-child{
-						font-weight: 300;
-						font-size: 24rpx;
-						color: #464646;
-						text-align: center;
-						margin-bottom:10rpx;
+					justify-content:space-evenly;
+					.box-one-image2{
+						width:96rpx;
+						height: 96rpx;
+						// margin-bottom:20rpx;
 					}
-					.recharge{
-						text:first-child{
-							font-weight: 500;
-							font-size: 32rpx;
-							color: #000;
-						}
-						text:last-child{
-							font-weight: 300;
-							font-size: 32rpx;
-							color: #2269E5;
-						}
-					}
-					view:last-child{
-						width: 140rpx;
-						height: 80rpx;
-						font-weight:300;
-						font-size: 24rpx;
-						color: #000141;
-						background-image: url('../../static/images/index/icon22.png');
-						background-repeat: no-repeat;
-						background-position: center;
-						background-size: 100% 100%;
-						text-align:center;
-						line-height:80rpx;
-						margin-top:10rpx;
-					}
+					// view:first-child{
+					// 	font-weight: 300;
+					// 	font-size: 24rpx;
+					// 	color: #464646;
+					// 	text-align: center;
+					// 	margin-bottom:10rpx;
+					// }
+					// .recharge{
+					// 	text:first-child{
+					// 		font-weight: 500;
+					// 		font-size: 32rpx;
+					// 		color: #000;
+					// 	}
+					// 	text:last-child{
+					// 		font-weight: 300;
+					// 		font-size: 32rpx;
+					// 		color: #2269E5;
+					// 	}
+					// }
+					// view:last-child{
+					// 	width: 140rpx;
+					// 	height: 70rpx;
+					// 	font-weight:300;
+					// 	font-size: 24rpx;
+					// 	color: #000141;
+					// 	background-image: url('../../static/images/index/icon22.png');
+					// 	background-repeat: no-repeat;
+					// 	background-position: center;
+					// 	background-size: 100% 100%;
+					// 	text-align:center;
+					// 	line-height:70rpx;
+					// 	margin-top:10rpx;
+					// }
 				}
 				.box1-three{
 					font-weight: 300;
@@ -370,11 +760,35 @@
 					}
 				}
 			}
+			.scan-box{
+				width:100%;
+				height:116rpx;
+				padding:0 42rpx 16rpx;
+				box-sizing: border-box;
+				.scan{
+					width:100%;
+					height:100rpx;
+					background: #1678FF;	
+					border-radius:178rpx;
+					display: flex;
+					justify-content: center;
+					align-items: center;
+					color: #fff;
+					font-size:44rpx;
+					font-weight:500;
+					letter-spacing:1rpx;
+					.scan-img{
+						width:44rpx;
+						height:44rpx;
+						margin-right:20rpx;
+					}
+				}
+			}
 			.function-box2{
 				width:100%;
 				box-sizing:border-box;
-				height: 429rpx;//374 + 44 + 距离 + 底部padding32
-				padding:0 32rpx 15rpx;
+				height: 420rpx;//374 + 44 + 距离 + 底部padding32
+				padding:0 32rpx 0;
 				// background: rgba(46, 121, 170, 0.5);
 				.box2-title{
 					width: 100%;
@@ -404,30 +818,118 @@
 						flex-direction:column;
 						justify-content:space-between;
 						align-items: center;
-						image{
-							width: 90rpx;
-							height:90rpx;
+						.box2-item-img{
+							width: 100rpx;
+							height:100rpx;
+							display: flex;
+							justify-content: center;
+							align-items: center;
+							// background:linear-gradient(to right,#18acff,#639fff);
+							background: #5EA1FA;
+							border-radius:50%;
+							.box2-image{
+								width: 48rpx;
+								height:48rpx;
+							}
 						}
 						.box2-item-text{
 							width:100%;
 							height: 40rpx;
 							font-weight: 300;
-							font-size: 28rpx;
-							color: #000000;
+							font-size:30rpx;
+							color: #3e3e3e;
 							text-align: center;
+							font-weight:600;
 						}
 					}
 				}
 			}
 			.advertisement-box{
 				width:100%;
-				height: 188rpx;
+				height:188rpx;
 				padding:0 32rpx 10rpx; 
 				box-sizing: border-box;
-				image{
-					width:100%;
-					height: 178rpx;
+				display: flex;
+				justify-content:center;
+				.banner-img{
+					width:686rpx;
+					height:178rpx;
 				}
+				// .point-advert{
+				// 	width:640rpx;
+				// 	height:136rpx;
+				// 	border-radius:10rpx;
+				// 	background:linear-gradient(140deg,#5c9dff 0%,#b5dcff 30%,#52aafc 70%,#b5dcff 90%,#5daffc 100%);
+				// 	display: flex;
+				// 	justify-content: space-around;
+				// 	align-items: center;
+				// 	box-shadow: 0 0 4rpx 2rpx #4978de;
+				// 	.advert-title{
+				// 		display: flex;
+				// 		flex-direction: column;
+				// 		align-items: center;
+				// 		color: #fff;
+				// 		font-size:46rpx;
+				// 		font-weight:800;
+				// 		text-shadow:4rpx 2rpx #5EA1FA;
+				// 		.advert-title2{
+				// 			margin-top:10rpx;
+				// 			font-size:28rpx;
+				// 			font-weight:500;
+				// 			width:180rpx;
+				// 			height:40rpx;
+				// 			background: #5c9dff;
+				// 			display: flex;
+				// 			align-items: center;
+				// 			justify-content: center;
+				// 			border-radius:30rpx;
+				// 			letter-spacing:2rpx;
+				// 		}
+				// 	}
+				// 	.advert-image{
+				// 		width:200rpx;
+				// 		height:100%;
+				// 		// background: #76bfa1;
+				// 		position: relative;
+				// 		.image-icon1{
+				// 			position:absolute;
+				// 			left: calc(50% - 65rpx);
+				// 			top: calc(50% - 65rpx);
+				// 			width:130rpx;
+				// 			height:130rpx;
+				// 			transform: rotate(20deg);
+				// 		}
+				// 		.image-icon2{
+				// 			position:absolute;
+				// 			left:60%;
+				// 			top: calc(50% - 30rpx);
+				// 			width:90rpx;
+				// 			height:90rpx;
+				// 			transform: rotate(-10deg);
+				// 		}
+				// 		.image-icon3{
+				// 			position:absolute;
+				// 			left: calc(50% - 100rpx);
+				// 			top: 30%;
+				// 			width:80rpx;
+				// 			height:80rpx;
+				// 			transform: rotate(-10deg);
+				// 		}
+				// 		.image-icon4{
+				// 			position:absolute;
+				// 			left:140%;
+				// 			top: 60%;
+				// 			width:50rpx;
+				// 			height:50rpx;
+				// 			transform: rotate(5deg);
+				// 		}
+				// 	}
+				// }
+				// image{
+				// 	width:320rpx;
+				// 	height:136rpx;
+				// 	border-radius:10rpx;
+				// }
 			}
 			.service-box{
 				width: 100%;

--
Gitblit v1.9.3