From 5c2531930dc7c87d0c39d116c84f87b507394eb9 Mon Sep 17 00:00:00 2001
From: Liuyi <candymxq888@outlook.com>
Date: 星期六, 12 十月 2024 08:57:18 +0800
Subject: [PATCH] 添加附近站点,添加消费记录,重写用户申请位置权限

---
 pages/userInfo/index.vue                               |  107 +++++
 unpackage/dist/dev/mp-weixin/pages/sendWater/index.js  |    2 
 App.vue                                                |   77 ++++
 unpackage/dist/dev/mp-weixin/pages/index/index.js      |   75 ++--
 pages/facilityList/index.vue                           |   69 ++--
 unpackage/dist/dev/mp-weixin/pages/addCard/index.js    |   28 +
 unpackage/dist/dev/mp-weixin/pages/recharge/index.wxml |    2 
 pages/index/index.vue                                  |  164 ++++-----
 unpackage/dist/dev/mp-weixin/pages/address/index.js    |    4 
 pages/balanceRecord/index.vue                          |    8 
 pages/sendWater/index.vue                              |    2 
 unpackage/dist/dev/mp-weixin/api/index.js              |   16 +
 unpackage/dist/dev/mp-weixin/pages/index/index.wxss    |   69 ++-
 pages.json                                             |   12 
 unpackage/dist/dev/mp-weixin/pages/index/index.wxml    |    2 
 unpackage/dist/dev/mp-weixin/app.js                    |   72 ++++
 unpackage/dist/dev/mp-weixin/config/baseUrl.js         |    2 
 unpackage/dist/dev/mp-weixin/app.json                  |    4 
 pages/addCard/index.vue                                |   22 
 pages/recharge/index.vue                               |   58 ++-
 /dev/null                                              |    0 
 unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml  |    2 
 unpackage/dist/dev/mp-weixin/pages/recharge/index.js   |   49 ++-
 api/index.js                                           |   22 +
 unpackage/dist/dev/mp-weixin/common/assets.js          |   52 +-
 25 files changed, 644 insertions(+), 276 deletions(-)

diff --git a/App.vue b/App.vue
index e636cbd..470a053 100644
--- a/App.vue
+++ b/App.vue
@@ -1,7 +1,9 @@
 <script setup>
 	import { onLaunch, onShow, onHide } from "@dcloudio/uni-app";
 	import { wxLoginApi } from './api/index.js'
-	onLaunch(() => {
+	
+	//用户打开小程序默认授权
+	function wxLogin(){
 		uni.removeStorageSync('openId');
 		if(!uni.getStorageSync('openId')){
 			wx.login({
@@ -14,10 +16,83 @@
 				  })
 				},
 				fail:(e) =>{
+					uni.showToast({
+						title: '登录失败,请退出重试!',
+						duration: 2000
+					});
 					console.log(e)
 				}
 			})
 		}
+	}
+	
+	//申请获取用户位置权限
+	let userLocation = {
+		lat:'',
+		lon:'',
+	}
+	function getUserLocation(){
+		// 请求用户授权,第一次进入会有位置授权的提示
+		uni.authorize({
+		  scope: 'scope.userLocation',
+		  success() {
+			 console.log("成功授权位置信息1")
+			 storageLocation()
+		  },
+		  fail() {
+			  console.log("用户拒绝授权位置信息,再次提示用户授权")
+			  showToast()
+		  }
+		})
+		//获取用户位置并存储
+		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('用户二次授权成功')
+									storageLocation()
+								}else{
+									showToast()
+									console.log('用户拒绝授权')
+								}
+							},
+						})
+					}else{
+						uni.showToast({
+							title: '请先授权!',
+							duration: 2000,
+							icon:'none'
+						});
+						showToast()
+					}
+				},
+			});
+		}
+	}
+	onLaunch(async() => {
+		await wxLogin()
+		await getUserLocation()
 	});
 	onShow(() => {
 	  console.log("App Show");
diff --git a/api/index.js b/api/index.js
index 4d94d89..cd3230a 100644
--- a/api/index.js
+++ b/api/index.js
@@ -38,8 +38,28 @@
 export function setAddressDefaultApi(id){
 	return request(`/userAddress/editDefault?id=${id}`,{},'GET')
 }
-//获取设备站点列表
+//获取设备列表
 export function searchFacilityApi(data){
 	return request('/waterFacility/search',data,'POST')
 }
+//获取设备站点、营业网点列表
+export function siteApi(data){
+	return request('/waterDrinkingSite/getSearchList',data,'POST')
+}
+//修改用户信息
+export function editUserInfoApi(data){
+	return request('/userArchives/modify',data,'POST')
+}
+//微信支付
+export function wxPayApi(data){
+	return request('/pay/service/wxPay',data,'POST')
+}
+//余额记录
+export function balanceChangeApi(data){
+	return request('/userCapitalChange/search',data,'POST')
+}
+//消费记录
+export function paymentChangeApi(date){
+	return request(`/paymentRecords/getListByUser?date=${date}`,{},'GET')
+}
 
diff --git a/pages.json b/pages.json
index b2b7d06..769fbd2 100644
--- a/pages.json
+++ b/pages.json
@@ -25,6 +25,12 @@
 			}
 		},
 		{
+			"path" : "pages/paymentRecord/index",
+			"style": {
+				"navigationStyle":"custom"
+			}
+		},
+		{
 			"path" : "pages/scanWater/index",
 			"style": {
 				"navigationStyle":"custom"
@@ -77,6 +83,12 @@
 			"style": {
 				"navigationStyle":"custom"
 			}
+		},
+		{
+			"path" : "pages/station/index",
+			"style": {
+				"navigationStyle":"custom"
+			}
 		}
 	],
 	"globalStyle": {
diff --git a/pages/addCard/index.vue b/pages/addCard/index.vue
index a9d81c4..d6d6f97 100644
--- a/pages/addCard/index.vue
+++ b/pages/addCard/index.vue
@@ -8,11 +8,21 @@
     userPhone:'',
     remark:'',
 })
+function toScan(){
+	// 调用二维码扫描接口
+	uni.scanCode({
+		scanType: ['qrCode'],
+		success: function (res) {
+			console.log('条码内容:' + res.result);
+			form.value.waterCardNumber = res.result
+		}
+	});
+}
 async function submit(){
 	await creatUserArchive(form.value).then((res) =>{
 		if(res.code == 200){
 			uni.showToast({
-				title: '绑定成功',
+				title: '添加成功!',
 				image: '../../static/images/other/success.svg',
 				duration:500     
 			})
@@ -33,7 +43,7 @@
 					<view class="form-item card-item">
 						<text>卡号:</text>
 						<input v-model="form.waterCardNumber" placeholder="请输入卡号"/>
-						<image src="../../static/images/addCard/code.png" alt=""></image>
+						<image @click="toScan()" src="../../static/images/addCard/code.png" alt=""></image>
 					</view>
 					<view class="form-item">
 						<text>姓名:</text>
@@ -43,14 +53,6 @@
 						<text>联系方式:</text>
 						<input v-model="form.userPhone" placeholder="请输入手机号"/>
 					</view>
-					<!-- <view class="form-item">
-						<text>区域:</text>
-						<input v-model="form.waterCardNumber" placeholder="请选择区域"/>
-					</view>
-					<view class="form-item">
-						<text>地址:</text>
-						<input v-model="form.waterCardNumber" placeholder="请输入地址"/>
-					</view> -->
 					<view class="form-item">
 						<text>备注:</text>
 						<input v-model="form.remark" placeholder="请输入内容"/>
diff --git a/pages/balanceRecord/index.vue b/pages/balanceRecord/index.vue
index f74f928..881dd1a 100644
--- a/pages/balanceRecord/index.vue
+++ b/pages/balanceRecord/index.vue
@@ -1,9 +1,17 @@
 <script setup>
 	import { ref } from 'vue'
+	import { balanceChangeApi } from '../../api/index.js'
 	//返回
 	function navBackTo(){
 		uni.navigateBack()
 	}
+	async function getBalanceList(){
+		await balanceChangeApi().then((res) =>{
+			if(res.code == 200){
+				// banlanceList.value = res.data.list
+			}
+		})
+	}
 	const banlanceList = ref([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15])
 </script>
 <template>
diff --git a/pages/facilityList/index.vue b/pages/facilityList/index.vue
index 7f39c05..d6ee2a7 100644
--- a/pages/facilityList/index.vue
+++ b/pages/facilityList/index.vue
@@ -10,7 +10,7 @@
 						</view>
 						<view class="item-info">
 							<view class="info-name">{{item.facilityName}}</view>
-							<view class="info-addr">
+							<view class="info-addr" @click="openMap(item.lat,item.lon)">
 								<text class="addr-text">地址:{{item.address}}</text>
 								<view>
 									<image src="../../static/images/index/icon22.png" alt=''></image>
@@ -28,47 +28,52 @@
 <script setup>
 	import { onMounted, ref } from 'vue'
 	import { searchFacilityApi } from '../../api/index.js'
-	const deviceList = ref([
-		{facilityName:'清源直饮水',address:'重庆市北碚区蔡家岗街道工业互联网产业园',distance:'30.12'},
-		{facilityName:'清源直饮水',address:'重庆市北碚区蔡家岗街道',distance:'30.12'},
-		{facilityName:'清源直饮水',address:'重庆市北碚区蔡家岗街道',distance:'30.12'},
-	])
-	const latitudeUser = ref()
-	const longitudeUser = ref()
-	// 根据经纬度计算距离,根据经纬度计算距离,参数分别为第一点的纬度,经度;第二点的纬度,经度
-	function getDistances(lat1, lng1, lat2, lng2) {
+	const deviceList = ref([])
+	const userLocation = ref()
+	//获取设备信息
+	async function getFacilityList(){
+		await searchFacilityApi({limit:20,page:1}).then((res1) =>{
+			if(res1.code == 200){
+				deviceList.value = []
+				res1.data.list.forEach((item) =>{
+					//计算用户与饮水设备距离
+					let preDistance = getDistances(userLocation.value.lat,userLocation.value.lon,item.latitude,item.longitude)
+					deviceList.value.push({
+						facilityName:item.facilityName,                                    
+						address:item.address,
+						distance:preDistance.km,
+						lat:item.latitude,
+						lon:item.longitude,
+					})
+				})
+				console.log('deviceList.value',deviceList.value)
+			}
+		})
+	}
+	// 根据经纬度计算距离,根据经纬度计算距离,参数分别为第一点的纬度,经度(用户);第二点的纬度,经度(设备)
+	function getDistances(lat1, lon1, lat2, lon2) {
 		let EARTH_RADIUS = 6378.137;// 地球半径
 		let radLat1 = lat1 * Math.PI / 180.0; //lat1 * Math.PI / 180.0=>弧度计算
 		let radLat2 = lat2 * Math.PI / 180.0;
 		let a = radLat1 - radLat2;
-		let b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
+		let b = lon1 * Math.PI / 180.0 - lon2 * Math.PI / 180.0;
 		let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
 		s = s * EARTH_RADIUS; 
 		s = Math.round(s * 10000) / 10000;// 输出为公里
 		return { m: s * 1000, km: Number(s.toFixed(2)) }
 	}
-	onMounted(async() =>{
-		uni.getLocation({type: 'gcj02'}).then(async(res) =>{
-			console.log('位置',res)
-			latitudeUser.value = res.latitude
-			longitudeUser.value = res.longitude
-			
-			await searchFacilityApi({limit:20,page:1}).then((res) =>{
-				if(res.code == 200){
-					// deviceList.value = []
-					res.data.list.forEach((item) =>{
-						
-						let preDistance = getDistances(latitudeUser.value,106.4003121,item.latitude,item.longitude)
-						deviceList.value.push({
-							facilityName:item.facilityName,
-							address:item.address,
-							distance:preDistance.km
-						})
-					})
-					console.log('deviceList.value',deviceList.value)
-				}
-			})
+	//打开地图导航
+	function openMap(lat,lon){
+		uni.openLocation({
+			latitude: parseFloat(lat),
+			longitude: parseFloat(lon),
+			scale:18
 		})
+	}
+	onMounted(async() =>{
+		userLocation.value = JSON.parse(uni.getStorageSync('userLocation'))
+		console.log('storage',userLocation.value)
+		await getFacilityList()
 	})
 </script>
 
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 56bf6c4..b9649d4 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -14,6 +14,7 @@
 	 * 会员卡相关
 	 */
 	const cardInfo = ref({
+		id:'',
 		userName:'',
 		headImg:'',
 		
@@ -26,23 +27,26 @@
 	//获取会员卡信息
 	async function getInfo(){
 		let res = await getUserInfo()
-		console.log('res',res.data)
-		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.cardNumber
-			if(res1.data.cardType == 1){
-				cardInfo.value.balance = res1.data.balance
-			}else if(res1.data.cardType == 2){
-				cardInfo.value.count = res1.data.count
+		if(res.code == 200){
+			console.log('res',res.data)
+			cardInfo.value.userName = res.data.userInfo.userName
+			cardInfo.value.headImg = res.data.userInfo.headImg
+			cardInfo.value.userPhone = res.data.userInfo.userPhone
+			cardInfo.value.id = res.data.userInfo.id
+			if(res.data.userInfo.waterCardNumber){
+				let res1 = await getVipInfoApi()
+				cardInfo.value.waterCardNumber = res1.data.cardNumber
+				if(res1.data.cardType == 1){
+					cardInfo.value.balance = res1.data.balance
+				}else if(res1.data.cardType == 2){
+					cardInfo.value.count = res1.data.count
+				}
+				isVip.value = true
+			}else{
+				isVip.value = false
 			}
-			isVip.value = true
-		}else{
-			isVip.value = false
+			uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value))
 		}
-		uni.setStorageSync('userInfo',JSON.stringify(cardInfo.value))
 	}
 	/**
 	 * 扫码取水相关
@@ -52,7 +56,6 @@
 		uni.scanCode({
 			scanType: ['qrCode'],
 			success: function (res) {
-				console.log('条码类型:' + res.scanType);
 				console.log('条码内容:' + res.result);
 				uni.navigateTo({
 					url:'/pages/scanWater/index'
@@ -65,7 +68,7 @@
 	 */
 	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/icon32.png',url:'/pages/paymentRecord/index'},
 		{text:'充值记录',icon:'../../static/images/index/icon33.png',url:''},
 		{text:'账户共享',icon:'../../static/images/index/icon34.png',url:''},
 		{text:'优惠卷',icon:'../../static/images/index/icon35.png',url:''},
@@ -80,26 +83,8 @@
 			})
 		}
 	}
-	//获取用户地理位置
-	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)
-			}
-		})
-		console.log('location')
-	}
 	onMounted( async() =>{
 		getTopHeight()
-		// await getInfo()
-		// await getUserLocation()
 	})
 	onShow(async() =>{
 		await getInfo()
@@ -114,8 +99,13 @@
 					<image class="user-img" src='../../static/images/index/hend1.png' alt=''></image>
 					<text>{{cardInfo.userName}}</text>
 					<image class="user-more"src="../../static/images/index/back.png"></image>
+					<view class="user-add-card" @click="navTo('/pages/addCard/index')">
+						<image src='../../static/images/index/vip-add.png' alt=''></image>
+						<text>添加会员卡</text>
+					</view>
 				</view>
 				<view class="card">
+					<image class="card-bg" src="../../static/images/index/card11.png" alt=""></image>
 					<view class="card-content">
 						<view class="card-left">
 							<view class="left-top">
@@ -129,17 +119,14 @@
 						</view>
 						<view class="card-right">
 							<view class="card-right-top">
-								<view @click="navTo('/pages/addCard/index')">
+								<!-- <view @click="navTo('/pages/addCard/index')">
 									<image src='../../static/images/index/vip-add.png' alt=''></image>
-									<span>添加会员卡</span>
-								</view>
-								<span>金额卡</span>
+									<text>添加会员卡</text>
+								</view> -->
+								<text>金额卡</text>
+								<text>{{cardInfo.balance}}元</text>
 							</view>
-							<view @click="navTo('/pages/recharge/index')">
-								<span>余额:</span>
-								<span class="card-balance">{{cardInfo.balance}}</span>
-								<span>元</span>
-							</view>
+							<view class="card-right-bottom" @click="navTo('/pages/recharge/index')">充值</view>
 						</view>
 					</view>
 				</view>
@@ -181,7 +168,7 @@
 			<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>
 							<text>附近站点</text>
@@ -206,24 +193,6 @@
 				</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>
@@ -250,6 +219,8 @@
 					padding-left:15rpx;
 					box-sizing: border-box;
 					margin-bottom: 14rpx;
+					display:flex;
+					position:relative;
 					.user-img{
 						width:90rpx;
 						height:90rpx;
@@ -263,13 +234,35 @@
 						width: 12rpx;
 						height: 28rpx;
 					}
+					.user-add-card{
+						display:flex;
+						align-items:center;
+						height:40rpx;
+						font-size:22rpx;
+						background:linear-gradient(to right,#B1D9FD,#65A7FD);
+						border-radius:50rpx;
+						padding: 0 8rpx;
+						position: absolute;
+						bottom:0;
+						right:0;
+						image{
+							width:28rpx;
+							height:28rpx;
+							margin-right:10rpx;
+						}
+					}
 				}
 				.card{
 					width: 100%;
 					height: 290rpx;
-					background-image: url("../../static/images/index/card1.png");
-					background-repeat: no-repeat;
-					background-size: 100% 100%;
+					position:relative;
+					.card-bg{
+						height:290rpx;
+						width:100%;
+						top:0;
+						position: absolute;
+						z-index:1;
+					}
 					.card-content{
 						width: 100%;
 						height: 100%;
@@ -280,12 +273,14 @@
 						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;
@@ -297,13 +292,15 @@
 										height:70rpx;
 									}
 									text{
-										font-weight: 300;
+										font-weight:400;
 										font-size: 36rpx;
 										color: #FFFFFF;
 									}
 								}
 								view:last-child{
 									margin-left:10rpx;
+									font-size: 26rpx;
+									font-weight:500;
 								}
 							}
 						}
@@ -313,29 +310,26 @@
 							align-items:flex-end;
 							flex-direction: column;
 							height:100%;
+							z-index:100;
 							.card-right-top{
-								align-items: center;
+								align-items:flex-end;
 								display: flex;
 								justify-content: space-between;
-								view{
-									background-color: #fff;
-									color: #5EA1FA;
-									border-radius:20rpx;
-									padding: 5rpx 8rpx;
-									align-items: center;
-									display: flex;
-									justify-content: space-around;
-									font-size:24rpx;
-									margin-right:10rpx;
-									image{
-											width:28rpx;
-											height:28rpx;
-											margin-right:10rpx;
-									}
+								flex-direction: column;
+								font-size:34rpx;
+								text:last-child{
+									font-weight:500;
 								}
 							}
-							.card-balance{
-								font-weight:600;
+							.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;
 							}
 						}
 					}
diff --git a/pages/recharge/index.vue b/pages/recharge/index.vue
index e05745f..ebffff7 100644
--- a/pages/recharge/index.vue
+++ b/pages/recharge/index.vue
@@ -1,5 +1,6 @@
 <script setup>
 	import{ ref ,onMounted} from 'vue'
+	import { wxPayApi } from '../../api/index.js'
 	
 	const choosedMoney = ref()
 	const disabled = ref(true)
@@ -38,26 +39,51 @@
 	const payMethod = ref()
 	const payList = ref([
 		// {text:"支付宝支付",value:1,checked:true,img:'../../static/images/recharge/pay.png'},
-		{text:"微信支付",value:2,checked:false,img:'../../static/images/recharge/wx.png'},
-		{text:"余额",value:3,checked:false,img:'../../static/images/recharge/balance.png'},
+		{text:"微信支付",value:2,checked:true,img:'../../static/images/recharge/wx.png'},
+		// {text:"余额",value:3,checked:false,img:'../../static/images/recharge/balance.png'},
 	])
-	function choosePay(index1){
-		payList.value.forEach((item,index) =>{
-			if(item.checked == true){
-				item.checked = false
-			}
-		})
-		payList.value[index1].checked = true
-		payMethod.value = payList.value[index1].value
-	}
-	function submit(){
+	// function choosePay(index1){
+	// 	payList.value.forEach((item,index) =>{
+	// 		if(item.checked == true){
+	// 			item.checked = false
+	// 		}
+	// 	})
+	// 	payList.value[index1].checked = true
+	// 	payMethod.value = payList.value[index1].value
+	// }
+	async function submit(){
 		let money = ''
 		if(disabled.value){
 			money = choosedMoney.value
 		}else{
 			money = otherMoney.value
 		}
-		console.log('money',money)
+		await wxPayApi({businessType:1,tradeAmount:money}).then((res) =>{
+			console.log('reswxpay',res)
+			
+			  //调用微信官方支付接口弹出付款界面,输入密码扣款
+			  wx.requestPayment({
+				  //预支付订单信息
+				  // appId: res.data.appId,
+				  timeStamp: res.data.timeStamp,     //时间戳 
+				  nonceStr: res.data.nonceStr,      //随机串     
+				  package: res.data.package,		//prepay_id
+				  signType: res.data.signType,		//签名算法MD5		
+				  paySign: res.data.paySign ,//微信签名 
+			     success (res) {
+			       if (res.errMsg == "requestPayment:ok"){
+			          console.log('支付成功', res)
+			       }else{
+			          console.log('支付失败')
+			       }
+			     },
+			     fail (res) { 
+			       console.log('支付失败', res)
+			     }
+			  })
+		})
+
+		
 	}
 </script>
 <template>
@@ -86,10 +112,10 @@
 					</view>
 				</view>
 				<view class="pay-methods">
-					<view class="money-title">
+					<!-- <view class="money-title">
 						<view class="title-icon"></view>
 						<view class="title-text">请选择支付方式</view>
-					</view>
+					</view> -->
 					<view class="methods-list">
 						<block v-for="(item,index) in payList">
 							<view class="pay-item">
@@ -97,7 +123,7 @@
 									<image :src="item.img" alt=""></image>
 									<view>{{item.text}}</view>
 								</view>
-								<radio :value="item.value" :checked="item.checked" @click="choosePay(index)"/>
+								<radio :value="item.value" :checked="item.checked"/>
 							</view>
 						</block>
 					</view>
diff --git a/pages/sendWater/index.vue b/pages/sendWater/index.vue
index f632688..40099c1 100644
--- a/pages/sendWater/index.vue
+++ b/pages/sendWater/index.vue
@@ -5,7 +5,7 @@
 			url:'/pages/preSendWater/index'
 		})
 	}
-	const isComplete = ref(true)
+	const isComplete = ref(false)
 	const isActive = ref({borderBottom:`3px solid #226AC9`})
 	function swatch(val){
 		if((val == 1 && !isComplete.value) || (val == 2 && isComplete.value)){
diff --git a/pages/userInfo/index.vue b/pages/userInfo/index.vue
index faba080..7dce482 100644
--- a/pages/userInfo/index.vue
+++ b/pages/userInfo/index.vue
@@ -1,7 +1,43 @@
 <script setup>
 	import { onMounted, ref } from 'vue'
-
+	import { editUserInfoApi,getUserInfo } from '../../api/index.js'
+	const isEdit = ref(false)
+	const editForm = ref({id:'',userName:'',userPhone:''})
 	const userInfo = ref(JSON.parse(uni.getStorageSync('userInfo')))
+	function edit(){
+		editForm.value.id = userInfo.value.id
+		editForm.value.userName = userInfo.value.userName
+		editForm.value.userPhone = userInfo.value.userPhone
+		isEdit.value = true
+	}
+	function cancel(){
+		isEdit.value = false
+		editForm.vlaue = {id:'',userName:'',userPhone:''}
+	}
+	async function submitEdit(){
+		await editUserInfoApi(editForm.value).then(async(res) =>{
+			
+			if(res.code == 200){
+				uni.showToast({
+					title: '修改成功!',
+					duration: 2000,
+				});
+				await getUserInfo().then((res) =>{
+					userInfo.value.userName = res.data.userInfo.userName
+					userInfo.value.userPhone = res.data.userInfo.userPhone
+					uni.setStorageSync('userInfo',JSON.stringify(userInfo.value))
+				})
+			}else{
+				uni.showToast({
+					title: '请求错误!请重试',
+					duration: 2000,
+					icon:'none'
+				});
+			}
+			isEdit.value = false
+			editForm.vlaue = {id:'',userName:'',userPhone:''}
+		})
+	}
 </script>
 <template>
 	<view class="container">
@@ -9,13 +45,16 @@
 		<view class="content">
 			<view class="info-box">
 				<view class="info-up">
-					<view>
+					<view class="info-img">
 						<text>头像</text>
 						<image src='../../static/logo.png' alt=''></image>
 					</view>
-					<view>
+					<view class="info-name">
 						<text>用户名称</text>
-						<text class="info-value">{{userInfo.userName}}</text>
+						<view>
+							<input v-if="isEdit" v-model="editForm.userName" placeholder="请输入新用户名"/>
+							<text v-else class="info-value">{{userInfo.userName}}</text>
+						</view>
 					</view>
 				</view>
 				<view class="info-list">
@@ -26,13 +65,16 @@
 					<view class="item">
 						<text>联系方式</text>
 						<view>
-							<text>{{userInfo.userPhone}}</text>
-							<image class="edit"src="../../static/images//other/more.png" alt=''></image>
+							<input v-if="isEdit" v-model="editForm.userPhone" placeholder="请输入新联系方式"/>
+							<text v-else>{{userInfo.userPhone}}</text>
+							<!-- <image class="edit"src="../../static/images//other/more.png" alt=''></image> -->
 						</view>
 					</view>
 				</view>
 			</view>
-			<view class="subBtn">确认修改</view>
+			<view v-if="!isEdit" @click="edit()" class="subBtn">修改</view>
+			<view v-if="isEdit" @click="cancel()" class="btn btn1">取消</view>
+			<view v-if="isEdit" @click="submitEdit()" class="btn btn2">确认修改</view>
 		</view>
 	</view>
 </template>
@@ -47,17 +89,29 @@
 			background:linear-gradient(to top,#FFFFFF,#E8EFFF);  
 			padding-top:36rpx;
 			position: relative;
+			box-sizing: border-box;
 			.info-value{
 				font-size:32rpx;
 				color: #777777;
 			}
-			.edit{
-				margin-left:15rpx;
-				width: 20rpx;
-				height:28rpx;
-			}
+			// .edit{
+			// 	margin-left:15rpx;
+			// 	width: 20rpx;
+			// 	height:28rpx;
+			// }
 			.info-box{
 				width: 100%;
+				//该页面公用input样式
+				input{
+					border-radius: 10rpx;
+					border:1px solid rgba(101, 156, 244, 0.2);
+					padding:5rpx 10rpx;
+					box-shadow: 0 0 12rpx 1rpx rgba(101, 156, 244, 0.2);
+					color: #777777;
+					height:50rpx;
+					line-height:50rpx;
+					width:300rpx;
+				}
 				.info-up{
 					height:308rpx;
 					width:100%;
@@ -70,7 +124,7 @@
 					box-sizing: border-box;
 					font-size: 32rpx;
 					color: #343434;
-					view:first-child{
+					.info-img{
 						width:100%;
 						display: flex;
 						justify-content:space-between;
@@ -81,7 +135,7 @@
 							border-radius: 50rpx;
 						}
 					}
-					view:last-child{
+					.info-name{
 						width:100%;
 						display: flex;
 						justify-content:space-between;
@@ -135,6 +189,31 @@
 				bottom:100rpx;
 				left:32rpx;
 			}
+			.btn{
+					width: 200rpx;
+					height: 70rpx;
+					border-radius: 32rpx;
+					text-align: center;
+					line-height: 70rpx;
+					letter-spacing:3rpx;
+					font-weight: 300;
+					font-size: 36rpx;
+					position: absolute;
+					bottom:100rpx;
+			}
+			.btn1{
+				color:#5EA1FA;
+				background:#FFFFFF;
+				position: absolute;
+				left:130rpx;
+				border:2rpx solid #5EA1FA;
+			}
+			.btn2{
+				color: #FFFFFF;
+				background:#5EA1FA;
+				position: absolute;
+				right:130rpx;
+			}
 		}
 	}
 </style>
diff --git a/static/images/index/card1.png b/static/images/index/card1.png
deleted file mode 100644
index 7c773f4..0000000
--- a/static/images/index/card1.png
+++ /dev/null
Binary files differ
diff --git a/unpackage/dist/dev/mp-weixin/api/index.js b/unpackage/dist/dev/mp-weixin/api/index.js
index 46c501f..16005e1 100644
--- a/unpackage/dist/dev/mp-weixin/api/index.js
+++ b/unpackage/dist/dev/mp-weixin/api/index.js
@@ -33,14 +33,30 @@
 function searchFacilityApi(data) {
   return util_request.request("/waterFacility/search", data, "POST");
 }
+function siteApi(data) {
+  return util_request.request("/waterDrinkingSite/getSearchList", data, "POST");
+}
+function editUserInfoApi(data) {
+  return util_request.request("/userArchives/modify", data, "POST");
+}
+function wxPayApi(data) {
+  return util_request.request("/pay/service/wxPay", data, "POST");
+}
+function paymentChangeApi(date) {
+  return util_request.request(`/paymentRecords/getListByUser?date=${date}`, {}, "GET");
+}
 exports.creatUserArchive = creatUserArchive;
 exports.deleteAddressApi = deleteAddressApi;
 exports.editAddressApi = editAddressApi;
+exports.editUserInfoApi = editUserInfoApi;
 exports.getAddressApi = getAddressApi;
 exports.getRegionApi = getRegionApi;
 exports.getUserInfo = getUserInfo;
 exports.getVipInfoApi = getVipInfoApi;
+exports.paymentChangeApi = paymentChangeApi;
 exports.searchAddress = searchAddress;
 exports.searchFacilityApi = searchFacilityApi;
 exports.setAddressDefaultApi = setAddressDefaultApi;
+exports.siteApi = siteApi;
 exports.wxLoginApi = wxLoginApi;
+exports.wxPayApi = wxPayApi;
diff --git a/unpackage/dist/dev/mp-weixin/app.js b/unpackage/dist/dev/mp-weixin/app.js
index 65c2a1e..c99035d 100644
--- a/unpackage/dist/dev/mp-weixin/app.js
+++ b/unpackage/dist/dev/mp-weixin/app.js
@@ -7,6 +7,7 @@
   "./pages/addCard/index.js";
   "./pages/userInfo/index.js";
   "./pages/balanceRecord/index.js";
+  "./pages/paymentRecord/index.js";
   "./pages/scanWater/index.js";
   "./pages/recharge/index.js";
   "./pages/sendWater/index.js";
@@ -16,11 +17,12 @@
   "./pages/addressLocate/index.js";
   "./pages/success/index.js";
   "./pages/facilityList/index.js";
+  "./pages/station/index.js";
 }
 const _sfc_main = {
   __name: "App",
   setup(__props) {
-    common_vendor.onLaunch(() => {
+    function wxLogin() {
       common_vendor.index.removeStorageSync("openId");
       if (!common_vendor.index.getStorageSync("openId")) {
         common_vendor.wx$1.login({
@@ -32,10 +34,78 @@
             });
           },
           fail: (e) => {
+            common_vendor.index.showToast({
+              title: "登录失败,请退出重试!",
+              duration: 2e3
+            });
             console.log(e);
           }
         });
       }
+    }
+    let userLocation = {
+      lat: "",
+      lon: ""
+    };
+    function getUserLocation() {
+      common_vendor.index.authorize({
+        scope: "scope.userLocation",
+        success() {
+          console.log("成功授权位置信息1");
+          storageLocation();
+        },
+        fail() {
+          console.log("用户拒绝授权位置信息,再次提示用户授权");
+          showToast();
+        }
+      });
+      function storageLocation() {
+        common_vendor.index.getLocation({
+          type: "gcj02",
+          isHighAccuracy: true,
+          success: (res) => {
+            userLocation.lat = res.latitude;
+            userLocation.lon = res.longitude;
+            common_vendor.index.setStorageSync("userLocation", JSON.stringify(userLocation));
+          },
+          fail: () => {
+            showToast();
+          }
+        });
+      }
+      function showToast() {
+        common_vendor.index.showModal({
+          title: "请求授权当前位置",
+          content: "我们需要获取地理位置信息,为您获取附近站点信息!",
+          confirmText: "前往设置",
+          success: (res) => {
+            if (res.confirm) {
+              common_vendor.index.openSetting({
+                success: (res1) => {
+                  if (res1.authSetting["scope.userLocation"]) {
+                    console.log("用户二次授权成功");
+                    storageLocation();
+                  } else {
+                    showToast();
+                    console.log("用户拒绝授权");
+                  }
+                }
+              });
+            } else {
+              common_vendor.index.showToast({
+                title: "请先授权!",
+                duration: 2e3,
+                icon: "none"
+              });
+              showToast();
+            }
+          }
+        });
+      }
+    }
+    common_vendor.onLaunch(async () => {
+      await wxLogin();
+      await getUserLocation();
     });
     common_vendor.onShow(() => {
       console.log("App Show");
diff --git a/unpackage/dist/dev/mp-weixin/app.json b/unpackage/dist/dev/mp-weixin/app.json
index 6c42930..b2dcc0b 100644
--- a/unpackage/dist/dev/mp-weixin/app.json
+++ b/unpackage/dist/dev/mp-weixin/app.json
@@ -4,6 +4,7 @@
     "pages/addCard/index",
     "pages/userInfo/index",
     "pages/balanceRecord/index",
+    "pages/paymentRecord/index",
     "pages/scanWater/index",
     "pages/recharge/index",
     "pages/sendWater/index",
@@ -12,7 +13,8 @@
     "pages/addressAdd/index",
     "pages/addressLocate/index",
     "pages/success/index",
-    "pages/facilityList/index"
+    "pages/facilityList/index",
+    "pages/station/index"
   ],
   "window": {
     "navigationStyle": "custom"
diff --git a/unpackage/dist/dev/mp-weixin/common/assets.js b/unpackage/dist/dev/mp-weixin/common/assets.js
index 42c2833..c76d5a5 100644
--- a/unpackage/dist/dev/mp-weixin/common/assets.js
+++ b/unpackage/dist/dev/mp-weixin/common/assets.js
@@ -1,39 +1,41 @@
 "use strict";
-const _imports_0$6 = "/static/images/index/hend1.png";
-const _imports_1$3 = "/static/images/index/back.png";
-const _imports_2 = "/static/images/index/code1.png";
-const _imports_3 = "/static/images/index/vip-add.png";
-const _imports_4 = "/static/images/index/home21.png";
-const _imports_1$2 = "/static/images/index/icon22.png";
-const _imports_6 = "/static/images/index/icon23.png";
-const _imports_7 = "/static/images/index/bg4.png";
-const _imports_8 = "/static/images/index/icon51.png";
-const _imports_9 = "/static/images/index/more-info5.png";
-const _imports_10 = "/static/images/index/notice5.png";
-const _imports_0$5 = "/static/images/addCard/code.png";
-const _imports_0$4 = "/static/logo.png";
-const _imports_1$1 = "/static/images/other/more.png";
+const _imports_0$7 = "/static/images/index/hend1.png";
+const _imports_1$2 = "/static/images/index/back.png";
+const _imports_2 = "/static/images/index/vip-add.png";
+const _imports_3 = "/static/images/index/card11.png";
+const _imports_4 = "/static/images/index/code1.png";
+const _imports_5 = "/static/images/index/home21.png";
+const _imports_1$1 = "/static/images/index/icon22.png";
+const _imports_7 = "/static/images/index/icon23.png";
+const _imports_8 = "/static/images/index/bg4.png";
+const _imports_9 = "/static/images/index/icon51.png";
+const _imports_10 = "/static/images/index/more-info5.png";
+const _imports_11 = "/static/images/index/notice5.png";
+const _imports_0$6 = "/static/images/addCard/code.png";
+const _imports_0$5 = "/static/logo.png";
+const _imports_0$4 = "/static/images/other/more.png";
 const _imports_0$3 = "/static/images/address/edit.png";
 const _imports_1 = "/static/images/address/delete.png";
 const _imports_0$2 = "/static/images/address/expand.png";
 const _imports_0$1 = "/static/images/other/success.svg";
 const _imports_0 = "/static/images/addCard/back.png";
 exports._imports_0 = _imports_0;
-exports._imports_0$1 = _imports_0$6;
-exports._imports_0$2 = _imports_0$5;
-exports._imports_0$3 = _imports_0$4;
-exports._imports_0$4 = _imports_0$3;
-exports._imports_0$5 = _imports_0$2;
-exports._imports_0$6 = _imports_0$1;
-exports._imports_1 = _imports_1$3;
-exports._imports_1$1 = _imports_1$2;
-exports._imports_1$2 = _imports_1$1;
-exports._imports_1$3 = _imports_1;
+exports._imports_0$1 = _imports_0$7;
+exports._imports_0$2 = _imports_0$6;
+exports._imports_0$3 = _imports_0$5;
+exports._imports_0$4 = _imports_0$4;
+exports._imports_0$5 = _imports_0$3;
+exports._imports_0$6 = _imports_0$2;
+exports._imports_0$7 = _imports_0$1;
+exports._imports_1 = _imports_1$2;
+exports._imports_1$1 = _imports_1$1;
+exports._imports_1$2 = _imports_1;
 exports._imports_10 = _imports_10;
+exports._imports_11 = _imports_11;
 exports._imports_2 = _imports_2;
 exports._imports_3 = _imports_3;
 exports._imports_4 = _imports_4;
-exports._imports_6 = _imports_6;
+exports._imports_5 = _imports_5;
 exports._imports_7 = _imports_7;
 exports._imports_8 = _imports_8;
 exports._imports_9 = _imports_9;
diff --git a/unpackage/dist/dev/mp-weixin/config/baseUrl.js b/unpackage/dist/dev/mp-weixin/config/baseUrl.js
index 4c47d63..0701120 100644
--- a/unpackage/dist/dev/mp-weixin/config/baseUrl.js
+++ b/unpackage/dist/dev/mp-weixin/config/baseUrl.js
@@ -1,3 +1,3 @@
 "use strict";
-const BASE_URL = "http://192.168.0.105:8031";
+const BASE_URL = "http://113.250.189.120:8031";
 exports.BASE_URL = BASE_URL;
diff --git a/unpackage/dist/dev/mp-weixin/pages/addCard/index.js b/unpackage/dist/dev/mp-weixin/pages/addCard/index.js
index fb13dd7..350a886 100644
--- a/unpackage/dist/dev/mp-weixin/pages/addCard/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/addCard/index.js
@@ -19,11 +19,20 @@
       userPhone: "",
       remark: ""
     });
+    function toScan() {
+      common_vendor.index.scanCode({
+        scanType: ["qrCode"],
+        success: function(res) {
+          console.log("条码内容:" + res.result);
+          form.value.waterCardNumber = res.result;
+        }
+      });
+    }
     async function submit() {
       await api_index.creatUserArchive(form.value).then((res) => {
         if (res.code == 200) {
           common_vendor.index.showToast({
-            title: "绑定成功",
+            title: "添加成功!",
             image: "../../static/images/other/success.svg",
             duration: 500
           });
@@ -40,14 +49,15 @@
         }),
         b: form.value.waterCardNumber,
         c: common_vendor.o(($event) => form.value.waterCardNumber = $event.detail.value),
-        d: common_assets._imports_0$2,
-        e: form.value.userName,
-        f: common_vendor.o(($event) => form.value.userName = $event.detail.value),
-        g: form.value.userPhone,
-        h: common_vendor.o(($event) => form.value.userPhone = $event.detail.value),
-        i: form.value.remark,
-        j: common_vendor.o(($event) => form.value.remark = $event.detail.value),
-        k: common_vendor.o(($event) => submit())
+        d: common_vendor.o(($event) => toScan()),
+        e: common_assets._imports_0$2,
+        f: form.value.userName,
+        g: common_vendor.o(($event) => form.value.userName = $event.detail.value),
+        h: form.value.userPhone,
+        i: common_vendor.o(($event) => form.value.userPhone = $event.detail.value),
+        j: form.value.remark,
+        k: common_vendor.o(($event) => form.value.remark = $event.detail.value),
+        l: common_vendor.o(($event) => submit())
       };
     };
   }
diff --git a/unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml b/unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml
index 8831a4f..61e7de0 100644
--- a/unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml
+++ b/unpackage/dist/dev/mp-weixin/pages/addCard/index.wxml
@@ -1 +1 @@
-<view class="container data-v-4c5e7c86"><view class="content data-v-4c5e7c86"><navbar wx:if="{{a}}" class="data-v-4c5e7c86" u-i="4c5e7c86-0" bind:__l="__l" u-p="{{a}}"></navbar><view class="main data-v-4c5e7c86"><view class="title data-v-4c5e7c86">请填写卡及个人信息</view><view class="form data-v-4c5e7c86"><view class="form-item card-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">卡号:</text><input class="data-v-4c5e7c86" placeholder="请输入卡号" value="{{b}}" bindinput="{{c}}"/><image class="data-v-4c5e7c86" src="{{d}}" alt=""></image></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">姓名:</text><input class="data-v-4c5e7c86" placeholder="请输入姓名" value="{{e}}" bindinput="{{f}}"/></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">联系方式:</text><input class="data-v-4c5e7c86" placeholder="请输入手机号" value="{{g}}" bindinput="{{h}}"/></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">备注:</text><input class="data-v-4c5e7c86" placeholder="请输入内容" value="{{i}}" bindinput="{{j}}"/></view></view><view class="tips data-v-4c5e7c86"><text class="data-v-4c5e7c86">1、完成实名认证,方便遗失挂失及补卡等。</text><text class="data-v-4c5e7c86">2、绑卡后,运营商可以看到您实名时填写的 姓名和电话。</text></view><view class="subBtn data-v-4c5e7c86" bindtap="{{k}}">提交信息</view></view></view></view>
\ No newline at end of file
+<view class="container data-v-4c5e7c86"><view class="content data-v-4c5e7c86"><navbar wx:if="{{a}}" class="data-v-4c5e7c86" u-i="4c5e7c86-0" bind:__l="__l" u-p="{{a}}"></navbar><view class="main data-v-4c5e7c86"><view class="title data-v-4c5e7c86">请填写卡及个人信息</view><view class="form data-v-4c5e7c86"><view class="form-item card-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">卡号:</text><input class="data-v-4c5e7c86" placeholder="请输入卡号" value="{{b}}" bindinput="{{c}}"/><image class="data-v-4c5e7c86" bindtap="{{d}}" src="{{e}}" alt=""></image></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">姓名:</text><input class="data-v-4c5e7c86" placeholder="请输入姓名" value="{{f}}" bindinput="{{g}}"/></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">联系方式:</text><input class="data-v-4c5e7c86" placeholder="请输入手机号" value="{{h}}" bindinput="{{i}}"/></view><view class="form-item data-v-4c5e7c86"><text class="data-v-4c5e7c86">备注:</text><input class="data-v-4c5e7c86" placeholder="请输入内容" value="{{j}}" bindinput="{{k}}"/></view></view><view class="tips data-v-4c5e7c86"><text class="data-v-4c5e7c86">1、完成实名认证,方便遗失挂失及补卡等。</text><text class="data-v-4c5e7c86">2、绑卡后,运营商可以看到您实名时填写的 姓名和电话。</text></view><view class="subBtn data-v-4c5e7c86" bindtap="{{l}}">提交信息</view></view></view></view>
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/address/index.js b/unpackage/dist/dev/mp-weixin/pages/address/index.js
index 703b211..a345192 100644
--- a/unpackage/dist/dev/mp-weixin/pages/address/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/address/index.js
@@ -88,8 +88,8 @@
             h: common_vendor.o(($event) => deleteAddress(item.id))
           };
         }),
-        c: common_assets._imports_0$4,
-        d: common_assets._imports_1$3,
+        c: common_assets._imports_0$5,
+        d: common_assets._imports_1$2,
         e: common_vendor.o(($event) => navToAdd())
       };
     };
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.js b/unpackage/dist/dev/mp-weixin/pages/index/index.js
index 5539ffc..66682be 100644
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/index/index.js
@@ -12,6 +12,7 @@
       }
     }
     const cardInfo = common_vendor.ref({
+      id: "",
       userName: "",
       headImg: "",
       waterCardNumber: "",
@@ -22,29 +23,31 @@
     const isVip = common_vendor.ref(false);
     async function getInfo() {
       let res = await api_index.getUserInfo();
-      console.log("res", res.data);
-      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 api_index.getVipInfoApi();
-        cardInfo.value.waterCardNumber = res1.data.cardNumber;
-        if (res1.data.cardType == 1) {
-          cardInfo.value.balance = res1.data.balance;
-        } else if (res1.data.cardType == 2) {
-          cardInfo.value.count = res1.data.count;
+      if (res.code == 200) {
+        console.log("res", res.data);
+        cardInfo.value.userName = res.data.userInfo.userName;
+        cardInfo.value.headImg = res.data.userInfo.headImg;
+        cardInfo.value.userPhone = res.data.userInfo.userPhone;
+        cardInfo.value.id = res.data.userInfo.id;
+        if (res.data.userInfo.waterCardNumber) {
+          let res1 = await api_index.getVipInfoApi();
+          cardInfo.value.waterCardNumber = res1.data.cardNumber;
+          if (res1.data.cardType == 1) {
+            cardInfo.value.balance = res1.data.balance;
+          } else if (res1.data.cardType == 2) {
+            cardInfo.value.count = res1.data.count;
+          }
+          isVip.value = true;
+        } else {
+          isVip.value = false;
         }
-        isVip.value = true;
-      } else {
-        isVip.value = false;
+        common_vendor.index.setStorageSync("userInfo", JSON.stringify(cardInfo.value));
       }
-      common_vendor.index.setStorageSync("userInfo", JSON.stringify(cardInfo.value));
     }
     function toScan() {
       common_vendor.index.scanCode({
         scanType: ["qrCode"],
         success: function(res) {
-          console.log("条码类型:" + res.scanType);
           console.log("条码内容:" + res.result);
           common_vendor.index.navigateTo({
             url: "/pages/scanWater/index"
@@ -54,7 +57,7 @@
     }
     const functionList = common_vendor.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/icon32.png", url: "/pages/paymentRecord/index" },
       { text: "充值记录", icon: "../../static/images/index/icon33.png", url: "" },
       { text: "账户共享", icon: "../../static/images/index/icon34.png", url: "" },
       { text: "优惠卷", icon: "../../static/images/index/icon35.png", url: "" },
@@ -80,22 +83,23 @@
         a: common_assets._imports_0$1,
         b: common_vendor.t(cardInfo.value.userName),
         c: common_assets._imports_1,
-        d: common_vendor.o(($event) => navTo("/pages/userInfo/index")),
-        e: common_assets._imports_2,
-        f: common_vendor.t(cardInfo.value.waterCardNumber),
-        g: common_vendor.t(cardInfo.value.userPhone),
-        h: common_assets._imports_3,
-        i: common_vendor.o(($event) => navTo("/pages/addCard/index")),
-        j: common_vendor.t(cardInfo.value.balance),
-        k: common_vendor.o(($event) => navTo("/pages/recharge/index")),
-        l: topHeight.value + "rpx",
-        m: common_assets._imports_4,
-        n: common_vendor.o(($event) => navTo("/pages/sendWater/index")),
-        o: common_assets._imports_1$1,
-        p: common_vendor.o(($event) => navTo("/pages/facilityList/index")),
-        q: common_assets._imports_6,
-        r: common_vendor.o(($event) => toScan()),
-        s: common_vendor.f(functionList.value, (item, index, i0) => {
+        d: common_assets._imports_2,
+        e: common_vendor.o(($event) => navTo("/pages/addCard/index")),
+        f: common_vendor.o(($event) => navTo("/pages/userInfo/index")),
+        g: common_assets._imports_3,
+        h: common_assets._imports_4,
+        i: common_vendor.t(cardInfo.value.waterCardNumber),
+        j: common_vendor.t(cardInfo.value.userPhone),
+        k: common_vendor.t(cardInfo.value.balance),
+        l: common_vendor.o(($event) => navTo("/pages/recharge/index")),
+        m: topHeight.value + "rpx",
+        n: common_assets._imports_5,
+        o: common_vendor.o(($event) => navTo("/pages/sendWater/index")),
+        p: common_assets._imports_1$1,
+        q: common_vendor.o(($event) => navTo("/pages/facilityList/index")),
+        r: common_assets._imports_7,
+        s: common_vendor.o(($event) => toScan()),
+        t: common_vendor.f(functionList.value, (item, index, i0) => {
           return {
             a: item.icon,
             b: common_vendor.t(item.text),
@@ -103,11 +107,12 @@
             d: index
           };
         }),
-        t: common_assets._imports_7,
         v: common_assets._imports_8,
         w: common_assets._imports_9,
         x: common_assets._imports_10,
-        y: common_assets._imports_9
+        y: common_vendor.o(($event) => navTo("/pages/station/index")),
+        z: common_assets._imports_11,
+        A: common_assets._imports_10
       };
     };
   }
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml
index 7dae729..f0187c0 100644
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml
+++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml
@@ -1 +1 @@
-<view class="container data-v-1cf27b2a"><view class="content data-v-1cf27b2a"><view class="card-box data-v-1cf27b2a" style="{{'padding-top:' + l}}"><view class="user-info data-v-1cf27b2a" bindtap="{{d}}"><image class="user-img data-v-1cf27b2a" src="{{a}}" alt=""></image><text class="data-v-1cf27b2a">{{b}}</text><image class="user-more data-v-1cf27b2a" src="{{c}}"></image></view><view class="card data-v-1cf27b2a"><view class="card-content data-v-1cf27b2a"><view class="card-left data-v-1cf27b2a"><view class="left-top data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{e}}" alt=""></image><text class="data-v-1cf27b2a">会员卡</text></view><view class="data-v-1cf27b2a">ID:{{f}}</view></view><view class="left-bottom data-v-1cf27b2a">电话:{{g}}</view></view><view class="card-right data-v-1cf27b2a"><view class="card-right-top data-v-1cf27b2a"><view class="data-v-1cf27b2a" bindtap="{{i}}"><image class="data-v-1cf27b2a" src="{{h}}" alt=""></image><label class="data-v-1cf27b2a">添加会员卡</label></view><label class="data-v-1cf27b2a">金额卡</label></view><view class="data-v-1cf27b2a" bindtap="{{k}}"><label class="data-v-1cf27b2a">余额:</label><label class="card-balance data-v-1cf27b2a">{{j}}</label><label class="data-v-1cf27b2a">元</label></view></view></view></view></view><view class="function-box1 data-v-1cf27b2a"><view class="box1-bg box1-one data-v-1cf27b2a" bindtap="{{n}}"><image class="data-v-1cf27b2a" src="{{m}}" alt=""></image><view class="data-v-1cf27b2a">送水到家</view></view><view bindtap="{{p}}" class="box1-bg box1-two data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{o}}" alt=""></image><view class="data-v-1cf27b2a">附近设备</view></view><view class="box1-bg box1-three data-v-1cf27b2a" bindtap="{{r}}"><image class="data-v-1cf27b2a" src="{{q}}" alt=""></image><view class="data-v-1cf27b2a">扫码取水</view></view></view><view class="function-box2 data-v-1cf27b2a"><view class="box2-title data-v-1cf27b2a"><text class="data-v-1cf27b2a">功能列表</text></view><view class="box2-content data-v-1cf27b2a"><block wx:for="{{s}}" wx:for-item="item" wx:key="d"><view class="box2-item data-v-1cf27b2a" bindtap="{{item.c}}"><image class="data-v-1cf27b2a" src="{{item.a}}" alt=""></image><view class="box2-item-text data-v-1cf27b2a">{{item.b}}</view></view></block></view></view><view class="advertisement-box data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{t}}" alt=""></image></view><view class="service-box data-v-1cf27b2a"><view class="service-title data-v-1cf27b2a"><text class="data-v-1cf27b2a">服务指南</text></view><view class="service-content data-v-1cf27b2a"><view class="service-bg data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{v}}" alt=""></image><text class="data-v-1cf27b2a">附近站点</text></view><view class="service-info data-v-1cf27b2a">蔡家供水服务中心正在营业中……</view><view class="data-v-1cf27b2a"><text class="data-v-1cf27b2a">查看更多</text><image class="data-v-1cf27b2a" src="{{w}}" alt=""></image></view></view><view class="service-bg data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{x}}" alt=""></image><text class="data-v-1cf27b2a">公示公告</text></view><view class="service-info data-v-1cf27b2a">停水公告的部分摘要的内容展示……</view><view class="data-v-1cf27b2a"><text class="data-v-1cf27b2a">查看更多</text><image class="data-v-1cf27b2a" src="{{y}}" alt=""></image></view></view></view></view></view></view>
\ No newline at end of file
+<view class="container data-v-1cf27b2a"><view class="content data-v-1cf27b2a"><view class="card-box data-v-1cf27b2a" style="{{'padding-top:' + m}}"><view class="user-info data-v-1cf27b2a" bindtap="{{f}}"><image class="user-img data-v-1cf27b2a" src="{{a}}" alt=""></image><text class="data-v-1cf27b2a">{{b}}</text><image class="user-more data-v-1cf27b2a" src="{{c}}"></image><view class="user-add-card data-v-1cf27b2a" bindtap="{{e}}"><image class="data-v-1cf27b2a" src="{{d}}" alt=""></image><text class="data-v-1cf27b2a">添加会员卡</text></view></view><view class="card data-v-1cf27b2a"><image class="card-bg data-v-1cf27b2a" src="{{g}}" alt=""></image><view class="card-content data-v-1cf27b2a"><view class="card-left data-v-1cf27b2a"><view class="left-top data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{h}}" alt=""></image><text class="data-v-1cf27b2a">会员卡</text></view><view class="data-v-1cf27b2a">ID:{{i}}</view></view><view class="left-bottom data-v-1cf27b2a">电话:{{j}}</view></view><view class="card-right data-v-1cf27b2a"><view class="card-right-top data-v-1cf27b2a"><text class="data-v-1cf27b2a">金额卡</text><text class="data-v-1cf27b2a">{{k}}元</text></view><view class="card-right-bottom data-v-1cf27b2a" bindtap="{{l}}">充值</view></view></view></view></view><view class="function-box1 data-v-1cf27b2a"><view class="box1-bg box1-one data-v-1cf27b2a" bindtap="{{o}}"><image class="data-v-1cf27b2a" src="{{n}}" alt=""></image><view class="data-v-1cf27b2a">送水到家</view></view><view bindtap="{{q}}" class="box1-bg box1-two data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{p}}" alt=""></image><view class="data-v-1cf27b2a">附近设备</view></view><view class="box1-bg box1-three data-v-1cf27b2a" bindtap="{{s}}"><image class="data-v-1cf27b2a" src="{{r}}" alt=""></image><view class="data-v-1cf27b2a">扫码取水</view></view></view><view class="function-box2 data-v-1cf27b2a"><view class="box2-title data-v-1cf27b2a"><text class="data-v-1cf27b2a">功能列表</text></view><view class="box2-content data-v-1cf27b2a"><block wx:for="{{t}}" wx:for-item="item" wx:key="d"><view class="box2-item data-v-1cf27b2a" bindtap="{{item.c}}"><image class="data-v-1cf27b2a" src="{{item.a}}" alt=""></image><view class="box2-item-text data-v-1cf27b2a">{{item.b}}</view></view></block></view></view><view class="advertisement-box data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{v}}" alt=""></image></view><view class="service-box data-v-1cf27b2a"><view class="service-title data-v-1cf27b2a"><text class="data-v-1cf27b2a">服务指南</text></view><view class="service-content data-v-1cf27b2a"><view class="service-bg data-v-1cf27b2a" bindtap="{{y}}"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{w}}" alt=""></image><text class="data-v-1cf27b2a">附近站点</text></view><view class="service-info data-v-1cf27b2a">蔡家供水服务中心正在营业中……</view><view class="data-v-1cf27b2a"><text class="data-v-1cf27b2a">查看更多</text><image class="data-v-1cf27b2a" src="{{x}}" alt=""></image></view></view><view class="service-bg data-v-1cf27b2a"><view class="data-v-1cf27b2a"><image class="data-v-1cf27b2a" src="{{z}}" alt=""></image><text class="data-v-1cf27b2a">公示公告</text></view><view class="service-info data-v-1cf27b2a">停水公告的部分摘要的内容展示……</view><view class="data-v-1cf27b2a"><text class="data-v-1cf27b2a">查看更多</text><image class="data-v-1cf27b2a" src="{{A}}" alt=""></image></view></view></view></view></view></view>
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
index 54d7136..9fb4980 100644
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
+++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
@@ -48,6 +48,8 @@
   padding-left: 15rpx;
   box-sizing: border-box;
   margin-bottom: 14rpx;
+  display: flex;
+  position: relative;
 }
 .container .content .card-box .user-info .user-img.data-v-1cf27b2a {
   width: 90rpx;
@@ -62,12 +64,34 @@
   width: 12rpx;
   height: 28rpx;
 }
+.container .content .card-box .user-info .user-add-card.data-v-1cf27b2a {
+  display: flex;
+  align-items: center;
+  height: 40rpx;
+  font-size: 22rpx;
+  background: linear-gradient(to right, #B1D9FD, #65A7FD);
+  border-radius: 50rpx;
+  padding: 0 8rpx;
+  position: absolute;
+  bottom: 0;
+  right: 0;
+}
+.container .content .card-box .user-info .user-add-card image.data-v-1cf27b2a {
+  width: 28rpx;
+  height: 28rpx;
+  margin-right: 10rpx;
+}
 .container .content .card-box .card.data-v-1cf27b2a {
   width: 100%;
   height: 290rpx;
-  background-image: url("data:image/png;base64,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");
-  background-repeat: no-repeat;
-  background-size: 100% 100%;
+  position: relative;
+}
+.container .content .card-box .card .card-bg.data-v-1cf27b2a {
+  height: 290rpx;
+  width: 100%;
+  top: 0;
+  position: absolute;
+  z-index: 1;
 }
 .container .content .card-box .card .card-content.data-v-1cf27b2a {
   width: 100%;
@@ -79,6 +103,7 @@
   font-weight: 300;
   font-size: 30rpx;
   color: #FFFFFF;
+  z-index: 100;
 }
 .container .content .card-box .card .card-content .card-left.data-v-1cf27b2a {
   height: 100%;
@@ -86,6 +111,7 @@
   justify-content: space-between;
   flex-direction: column;
   align-items: flex-start;
+  z-index: 100;
 }
 .container .content .card-box .card .card-content .card-left .left-top.data-v-1cf27b2a {
   display: flex;
@@ -100,12 +126,14 @@
   height: 70rpx;
 }
 .container .content .card-box .card .card-content .card-left .left-top view:first-child text.data-v-1cf27b2a {
-  font-weight: 300;
+  font-weight: 400;
   font-size: 36rpx;
   color: #FFFFFF;
 }
 .container .content .card-box .card .card-content .card-left .left-top view.data-v-1cf27b2a:last-child {
   margin-left: 10rpx;
+  font-size: 26rpx;
+  font-weight: 500;
 }
 .container .content .card-box .card .card-content .card-right.data-v-1cf27b2a {
   display: flex;
@@ -113,30 +141,27 @@
   align-items: flex-end;
   flex-direction: column;
   height: 100%;
+  z-index: 100;
 }
 .container .content .card-box .card .card-content .card-right .card-right-top.data-v-1cf27b2a {
-  align-items: center;
+  align-items: flex-end;
   display: flex;
   justify-content: space-between;
+  flex-direction: column;
+  font-size: 34rpx;
 }
-.container .content .card-box .card .card-content .card-right .card-right-top view.data-v-1cf27b2a {
-  background-color: #fff;
-  color: #5EA1FA;
-  border-radius: 20rpx;
-  padding: 5rpx 8rpx;
-  align-items: center;
-  display: flex;
-  justify-content: space-around;
-  font-size: 24rpx;
-  margin-right: 10rpx;
+.container .content .card-box .card .card-content .card-right .card-right-top text.data-v-1cf27b2a:last-child {
+  font-weight: 500;
 }
-.container .content .card-box .card .card-content .card-right .card-right-top view image.data-v-1cf27b2a {
-  width: 28rpx;
-  height: 28rpx;
-  margin-right: 10rpx;
-}
-.container .content .card-box .card .card-content .card-right .card-balance.data-v-1cf27b2a {
-  font-weight: 600;
+.container .content .card-box .card .card-content .card-right .card-right-bottom.data-v-1cf27b2a {
+  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;
 }
 .container .content .function-box1.data-v-1cf27b2a {
   width: 100%;
diff --git a/unpackage/dist/dev/mp-weixin/pages/recharge/index.js b/unpackage/dist/dev/mp-weixin/pages/recharge/index.js
index a60365c..9d34e6d 100644
--- a/unpackage/dist/dev/mp-weixin/pages/recharge/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/recharge/index.js
@@ -1,5 +1,6 @@
 "use strict";
 const common_vendor = require("../../common/vendor.js");
+const api_index = require("../../api/index.js");
 if (!Array) {
   const _easycom_navbar2 = common_vendor.resolveComponent("navbar");
   _easycom_navbar2();
@@ -42,29 +43,46 @@
       }
     }
     const otherMoney = common_vendor.ref();
-    const payMethod = common_vendor.ref();
+    common_vendor.ref();
     const payList = common_vendor.ref([
       // {text:"支付宝支付",value:1,checked:true,img:'../../static/images/recharge/pay.png'},
-      { text: "微信支付", value: 2, checked: false, img: "../../static/images/recharge/wx.png" },
-      { text: "余额", value: 3, checked: false, img: "../../static/images/recharge/balance.png" }
+      { text: "微信支付", value: 2, checked: true, img: "../../static/images/recharge/wx.png" }
+      // {text:"余额",value:3,checked:false,img:'../../static/images/recharge/balance.png'},
     ]);
-    function choosePay(index1) {
-      payList.value.forEach((item, index) => {
-        if (item.checked == true) {
-          item.checked = false;
-        }
-      });
-      payList.value[index1].checked = true;
-      payMethod.value = payList.value[index1].value;
-    }
-    function submit() {
+    async function submit() {
       let money = "";
       if (disabled.value) {
         money = choosedMoney.value;
       } else {
         money = otherMoney.value;
       }
-      console.log("money", money);
+      await api_index.wxPayApi({ businessType: 1, tradeAmount: money }).then((res) => {
+        console.log("reswxpay", res);
+        common_vendor.wx$1.requestPayment({
+          //预支付订单信息
+          // appId: res.data.appId,
+          timeStamp: res.data.timeStamp,
+          //时间戳 
+          nonceStr: res.data.nonceStr,
+          //随机串     
+          package: res.data.package,
+          //prepay_id
+          signType: res.data.signType,
+          //签名算法MD5		
+          paySign: res.data.paySign,
+          //微信签名 
+          success(res2) {
+            if (res2.errMsg == "requestPayment:ok") {
+              console.log("支付成功", res2);
+            } else {
+              console.log("支付失败");
+            }
+          },
+          fail(res2) {
+            console.log("支付失败", res2);
+          }
+        });
+      });
     }
     return (_ctx, _cache) => {
       return {
@@ -88,8 +106,7 @@
             a: item.img,
             b: common_vendor.t(item.text),
             c: item.value,
-            d: item.checked,
-            e: common_vendor.o(($event) => choosePay(index))
+            d: item.checked
           };
         }),
         h: common_vendor.o(($event) => submit())
diff --git a/unpackage/dist/dev/mp-weixin/pages/recharge/index.wxml b/unpackage/dist/dev/mp-weixin/pages/recharge/index.wxml
index f4524c0..d0c5a29 100644
--- a/unpackage/dist/dev/mp-weixin/pages/recharge/index.wxml
+++ b/unpackage/dist/dev/mp-weixin/pages/recharge/index.wxml
@@ -1 +1 @@
-<view class="container data-v-f06186df"><navbar wx:if="{{a}}" class="data-v-f06186df" u-i="f06186df-0" bind:__l="__l" u-p="{{a}}"></navbar><view class="content data-v-f06186df"><view class="main data-v-f06186df"><view class="money data-v-f06186df"><view class="money-title data-v-f06186df"><view class="title-icon data-v-f06186df"></view><view class="title-text data-v-f06186df">充值金额</view></view><view class="money-list data-v-f06186df"><block wx:for="{{b}}" wx:for-item="item" wx:key="d"><view class="money-box data-v-f06186df" style="{{item.b}}" bindtap="{{item.c}}">¥{{item.a}}</view></block></view></view><view class="other-money data-v-f06186df"><view class="money-title data-v-f06186df"><view class="title-icon data-v-f06186df"></view><view class="title-text data-v-f06186df">其他金额</view></view><view class="money-input data-v-f06186df"><input class="data-v-f06186df" disabled="{{c}}" focus="{{d}}" placeholder="请输入其他金额" value="{{e}}" bindinput="{{f}}"/></view></view><view class="pay-methods data-v-f06186df"><view class="money-title data-v-f06186df"><view class="title-icon data-v-f06186df"></view><view class="title-text data-v-f06186df">请选择支付方式</view></view><view class="methods-list data-v-f06186df"><block wx:for="{{g}}" wx:for-item="item"><view class="pay-item data-v-f06186df"><view class="pay-item-right data-v-f06186df"><image class="data-v-f06186df" src="{{item.a}}" alt=""></image><view class="data-v-f06186df">{{item.b}}</view></view><radio class="data-v-f06186df" value="{{item.c}}" checked="{{item.d}}" bindtap="{{item.e}}"/></view></block></view></view></view><view class="submit-btn data-v-f06186df" bindtap="{{h}}">立即充值</view></view></view>
\ No newline at end of file
+<view class="container data-v-f06186df"><navbar wx:if="{{a}}" class="data-v-f06186df" u-i="f06186df-0" bind:__l="__l" u-p="{{a}}"></navbar><view class="content data-v-f06186df"><view class="main data-v-f06186df"><view class="money data-v-f06186df"><view class="money-title data-v-f06186df"><view class="title-icon data-v-f06186df"></view><view class="title-text data-v-f06186df">充值金额</view></view><view class="money-list data-v-f06186df"><block wx:for="{{b}}" wx:for-item="item" wx:key="d"><view class="money-box data-v-f06186df" style="{{item.b}}" bindtap="{{item.c}}">¥{{item.a}}</view></block></view></view><view class="other-money data-v-f06186df"><view class="money-title data-v-f06186df"><view class="title-icon data-v-f06186df"></view><view class="title-text data-v-f06186df">其他金额</view></view><view class="money-input data-v-f06186df"><input class="data-v-f06186df" disabled="{{c}}" focus="{{d}}" placeholder="请输入其他金额" value="{{e}}" bindinput="{{f}}"/></view></view><view class="pay-methods data-v-f06186df"><view class="methods-list data-v-f06186df"><block wx:for="{{g}}" wx:for-item="item"><view class="pay-item data-v-f06186df"><view class="pay-item-right data-v-f06186df"><image class="data-v-f06186df" src="{{item.a}}" alt=""></image><view class="data-v-f06186df">{{item.b}}</view></view><radio class="data-v-f06186df" value="{{item.c}}" checked="{{item.d}}"/></view></block></view></view></view><view class="submit-btn data-v-f06186df" bindtap="{{h}}">立即充值</view></view></view>
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/sendWater/index.js b/unpackage/dist/dev/mp-weixin/pages/sendWater/index.js
index 15947bb..9e57bd7 100644
--- a/unpackage/dist/dev/mp-weixin/pages/sendWater/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/sendWater/index.js
@@ -16,7 +16,7 @@
         url: "/pages/preSendWater/index"
       });
     }
-    const isComplete = common_vendor.ref(true);
+    const isComplete = common_vendor.ref(false);
     const isActive = common_vendor.ref({ borderBottom: `3px solid #226AC9` });
     function swatch(val) {
       if (val == 1 && !isComplete.value || val == 2 && isComplete.value)
diff --git a/unpackage/dist/dev/mp-weixin/static/images/index/card1.png b/unpackage/dist/dev/mp-weixin/static/images/index/card1.png
deleted file mode 100644
index 7c773f4..0000000
--- a/unpackage/dist/dev/mp-weixin/static/images/index/card1.png
+++ /dev/null
Binary files differ

--
Gitblit v1.9.3